Here is the real-life-production example of upgrading SunFire V240 from system based on Solaris Voluma Manager (SVM) to one based on a ZFS.
The system has running ClearCase software, which supports software configuration management of source code.
The SVM system is Solaris 9 and the new one will be of course Solaris 10.
So here is the file system layout (the V240 has 2 x 73G and 2 x 146G disks).

The info about operational environment file systems:
{host}/> df -F ufs -h
Filesystem size used avail capacity Mounted on
/dev/md/dsk/d0 486M 84M 353M 20% /
/dev/md/dsk/d3 1.5G 905M 529M 64% /usr
/dev/md/dsk/d4 1.5G 639M 795M 45% /var
/dev/md/dsk/d5 194G 174G 19G 91% /.0
|
{host}/> df -F lofs -h
Filesystem size used avail capacity Mounted on
/export/vobstore 194G 174G 19G 91% /vobstore
/export/viewstore 194G 174G 19G 91% /viewstore
/export/shipping 194G 174G 19G 91% /shipping
/export/ccase_rls 194G 174G 19G 91% /ccase_rls
|
{host}/> metastat -p
d5 -m d25 d15 1
d25 2 1 c1t1d0s5 \
1 c1t3d0s0
d15 2 1 c1t0d0s5 \
1 c1t2d0s0
d1 -m d11 d21 1
d11 1 1 c1t0d0s1
d21 1 1 c1t1d0s1
d4 -m d14 d24 1
d14 1 1 c1t0d0s4
d24 1 1 c1t1d0s4
d3 -m d13 d23 1
d13 1 1 c1t0d0s3
d23 1 1 c1t1d0s3
d0 -m d10 d20 1
d10 1 1 c1t0d0s0
d20 1 1 c1t1d0s0
|
{host}/> metadb -i
flags first blk block count
a m p luo r 16 8192 /dev/dsk/c1t0d0s7
a p luo r 8208 8192 /dev/dsk/c1t0d0s7
a p luo r 16 8192 /dev/dsk/c1t1d0s7
a p luo r 8208 8192 /dev/dsk/c1t1d0s7
|
>foreach i (0 1 3 4)
>metadetach d${i} d1${i}
>metaclear d1${i}
>end
d0: submirror d10 is detached
d10: Concat/Stripe is cleared
d1: submirror d11 is detached
d11: Concat/Stripe is cleared
d3: submirror d13 is detached
d13: Concat/Stripe is cleared
d4: submirror d14 is detached
d14: Concat/Stripe is cleared
|
>metadetach d5 d15
d5: submirror d15 is detached
>metaclear d15
d15: Concat/Stripe is cleared
> metastat -p
d5 -m d25 1
d25 2 1 c1t1d0s5 \
1 c1t3d0s0
d4 -m d24 1
d24 1 1 c1t1d0s4
d3 -m d23 1
d23 1 1 c1t1d0s3
d1 -m d21 1
d21 1 1 c1t1d0s1
d0 -m d20 1
d20 1 1 c1t1d0s0
|
| File system | Mount point | quota | owner | permissions | NFS options |
| space-CC/cc-pri/var_adm_rational | /var/adm/rational | 1 | root:root | 0755 | off |
| space-CC/cc-pri/vobstore | /vobstore | 400 | vobadm:ccusers | 0755 | rw=usershosts (one of our NIS netgroups) |
| space-CC/cc-pri/viewstore | /viewstore | 20 | vobadm:ccusers | 2775 | rw=usershosts |
| space-CC/cc-pri/ccase_rls | /ccase_rls | 20 | vobadm:ccusers | 0755 | ro |
| space-CC/cc-pri/vobadm | /vobadm | 5 | vobadm:ccusers | 0755 | off |
| space-CC/cc-pri/buildstore | /buildstore | 20 | vobadm:ccusers | 2775 | rw=usershosts |
| space-CC/cc-pri/shipping | /shipping | 5 | root:root | 0555 | off |
> zfs set compression=off space-CC/cc-pri/vobstore > zfs set compression=off space-CC/cc-pri/viewstore > zfs get compression space-CC/cc-pri/viewstore NAME PROPERTY VALUE SOURCE space-CC/cc-pri/viewstore compression off local > zfs get compression space-CC/cc-pri/vobstore NAME PROPERTY VALUE SOURCE space-CC/cc-pri/vobstore compression off local |
- If some disk(s) not visible, run .devfsadm..
- Services metainit/meta/mdmonitor has to run
> svcadm enable -r metainit meta mdmonitor
- Create SVM database replica on swap slice on disk1:
> metadb -afc 3 c1t1d0s1
- Create file /etc/lvm/md.tab and create metadevices from this file with command:
>metainit -a
>cat /etc/lvm/md.tab
# /.0
d25 2 1 c1t1d0s5 \
1 c1t3d0s0
# /var
d24 1 1 c1t1d0s4
# /usr
d23 1 1 c1t1d0s3
# /
d20 1 1 c1t1d0s0
> metainit -a
d25: Concat/Stripe is setup
d24: Concat/Stripe is setup
d23: Concat/Stripe is setup
d20: Concat/Stripe is setup
Create legacy mount points
>umask 22
>mkdir .p /legacy/root ; mkdir .p /legacy/usr
>mkdir .p /legacy/var ; mkdir .p /legacy/.0
Add lines to /etc/vfstab:
/dev/md/dsk/d20 /dev/md/rdsk/d20 /legacy/root ufs 1 no ro
/dev/md/dsk/d23 /dev/md/rdsk/d23 /legacy/usr ufs 1 no ro
/dev/md/dsk/d24 /dev/md/rdsk/d24 /legacy/var ufs 1 no ro
/dev/md/dsk/d25 /dev/md/rdsk/d25 /legacy/.0 ufs 2 no ro
Run:
mount /legacy/root
mount /legacy/usr
mount /legacy/var
mount /legacy/.0
|
> rsync -avH /legacy/.0/ccase_rls/ /ccase_rls/ > rsync -avH /legacy/root/home/vobadm/ /vobadm/ |
>rsync -avH /legacy/var/adm/rational/ /var/adm/rational/ >rsync -avH /legacy/.0/viewstore/ /viewstore/ >rsync -avH /legacy/.0/vobstore/ /vobstore/ >rsync -avH /legacy/.0/shipping/ /shipping/ |
> egrep mountd /lib/svc/method/nfs-server # Start up mountd and nfsd if anything is exported. /usr/lib/nfs/mountd .v |
boot-device=bootdisk mirrdisk use-nvramrc?=true nvramrc= devalias bootdisk /pci@1c,600000/scsi@2/disk@0,0:a devalias mirrdisk /pci@1c,600000/scsi@2/disk@1,0:a |
