How to reduce the size of a logical volume in solaris 9

Hi,
I have the following problem.
I just have a new machine with mirroring. The logical volume for /opt is dimensionned to 75 GB which is to much. I want a volume of 10 GB. How can I reduce the size ?
I tried to reduce the size of the slice from 75 GB to 10 GB, but the size of the logical volume does not decrease.
I tried to delete the logical volume and its submirrors to create them again with the right size, but I can delete only one submirror and not the second one.
Is there a way to do this ?
Thanks for your help.
Alain

What product are you using to administer the disks? What version of the software?

The software is SDS (I suppose : the commands are metainit, metattach ...) and the OS is Solaris 9 9/05 on SPARC.

well, there is no possibility to shrink UFS and as far as i know nothing to reduce the space of a metadevice

Thanks. That's what I guessed too.
What I did is the following :
unmount the file system ;
clear the mirroring with metadetach and metaclear ;
reduce the size of the initial slices from 75 GB to 15 GB ;
create new volumes on these slices ;
create the mirror with these volumes ;
mount the file system again.
It seems that it is working : the command metastat gives me a correct result. The only thing wrong is that the command df continues to see a volume of 75 GB !! I don't know why.
Is there something wrong ?

well, as i said, it is not possible to shrink an UFS... what you did, you reduced the volume and not the filesystem. UFS still thinks that there are 75G (with all blocks) and you will come in troubles when UFS wants to create a file behind the last actual block.... it is created at the time of file-system creation, all things are stored in your inode table... you cannot rebuild a inode table...

what you could do:
destroy your mirror and mount the single partition. mount the second partition on another mountpoint:

metaclear -r d100 << the mirror
#now create the smaller partition on the second disk with format;
metainit d10 1 1 c0t0d0s6 << the old big one
metainit d20 1 1 c0t1d0s6 << the smaller new one
mount /dev/md/dsk/d10 /mnt1
newfs /dev/md/rdsk/d20
mount /dev/md/dsk/d20 /mnt2
ufsdump 0f - /dev/md/rdsk/d10 | (cd /mnt2;ufsrestore xf -)
umount /mnt1
umount /mnt2
#destroy the old big one
metaclear d10
#now create a new mirror with the small partition and let the small one act as
#the primary for the mirror
metainit d100 -m d20
mount /dev/md/dsk/d100 /opt
#let's look the first disk like the 2nd one, only if there are no other different slices:
prtvtoc /dev/rdsk/c0t1d0s2 | fmthard -s - /dev/rdsk/c0t0d0s2
#reattach the old, now also a small one
metattach d100 d10

this should work, but be careful with fmthard, do this only if you have exactly the same disks and partitions

greetings PRESSY

Thanks a lot !
Your solution works perfectly. I have applied it this morning and all is perfect.
I have understood a lot of things with post.