How to mount 3PAR Virtual Copy onto RHEL Servers By Dusan Baljevic (dusan.baljevic@ieee.org) This was done as part of HP Edu labs as proof of concept that I prepared for 3PAR course. Testing Virtual Copy export to RHEL 5.x server with LVM… The most crucial command was vgimportclone on RHEL server… A. On Linux server check the WWNs: # cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.4 (Tikanga) # cat /sys/class/fc_host/host*/port_name 0x50014380167d7e94 0x50014380167d7e96 B. Go to 3PAR MC or CLI and create host definition for Linux server, based on the WWNs above… C. Then, within 3PAR MC or CLI export some VVs to Linux server. In This case, two volumes were exported: one fully provisioned, and one thin provisioned. D. Go to Linux server and check the new disks: # hp_rescan -a Rescanning /sys/class/scsi_host/host0 Rescanning /sys/class/scsi_host/host1 # multipath -l mpath1 (360002ac0000000000000000700002894) dm-3 3PARdata,VV [size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=0][active] \_ 0:0:0:1 sdb 8:16 [active][undef] \_ 0:0:1:1 sdd 8:48 [active][undef] mpath0 (360002ac0000000000000000f00002894) dm-2 3PARdata,VV [size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=0][active] \_ 0:0:0:0 sda 8:0 [active][undef] \_ 0:0:1:0 sdc 8:32 [active][undef] # pvscan PV /dev/cciss/c0d0p2 VG VolGroup00 lvm2 [136.56 GB / 0 free] Total: 1 [136.56 GB] / in use: 1 [136.56 GB] / in no VG: 0 [0 ] # pvcreate /dev/mapper/mpath0 Physical volume "/dev/mapper/mpath0" successfully created # pvcreate /dev/mapper/mpath1 Physical volume "/dev/mapper/mpath1" successfully created # pvscan PV /dev/cciss/c0d0p2 VG VolGroup00 lvm2 PV /dev/dm-2 lvm2 PV /dev/dm-3 lvm2 Total: 3 [140.56 GB] / in use: 1 [136.56 GB] / [136.56 GB / 0 free] [2.00 GB] [2.00 GB] in no VG: 2 [4.00 GB] # vgcreate vg3par00 /dev/mapper/mpath0 Volume group "vg3par00" successfully created # vgcreate vg3par01 /dev/mapper/mpath1 Volume group "vg3par01" successfully created # vgscan Reading all physical volumes. This may take a while... Found volume group "vg3par01" using metadata type lvm2 Found volume group "vg3par00" using metadata type lvm2 Found volume group "VolGroup00" using metadata type lvm2 # lvcreate -l 500 -n lv3par00 vg3par00 Logical volume "lv3par00" created # lvcreate -l 500 -n lv3par01 vg3par01 Logical volume "lv3par01" created # mkfs.ext3 -j /dev/vg3par00/lv3par00 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 256000 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=524288000 16 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 34 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mkfs.ext3 -j /dev/vg3par01/lv3par01 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 256000 inodes, 512000 blocks 25600 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=524288000 16 block groups 32768 blocks per group, 32768 fragments per group 16000 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mkdir /3parlv0 # mkdir /3parlv1 # cat /etc/fstab /dev/VolGroup00/LogVol00 / LABEL=/boot /boot tmpfs /dev/shm devpts /dev/pts sysfs /sys proc /proc /dev/VolGroup00/LogVol01 swap /dev/vg3par00/lv3par00 /3parlv0 /dev/vg3par01/lv3par01 /3parlv1 ext3 ext3 tmpfs devpts sysfs proc swap ext3 ext3 defaults defaults defaults gid=5,mode=620 defaults defaults defaults defaults defaults # mount -a # df Filesystem 1K-blocks /dev/mapper/VolGroup00-LogVol00 120807460 /dev/cciss/c0d0p1 101086 tmpfs 8219324 /dev/mapper/vg3par01-lv3par01 2015824 /dev/mapper/vg3par00-lv3par00 2015824 Used Available Use% Mounted on 3843816 110727896 16833 79034 0 8219324 4% / 18% /boot 0% /dev/shm 35808 1877616 2% /3parlv1 35808 1877616 2% /3parlv0 1 1 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 E. Go to 3PAR MC or CLI and create a Virtual Copy of one of the VVs exported to Linux server: inserv034 cli% showvv ---Rsvd(MB)---- -(MB)Id Name Prov Type CopyOf BsId Rd Detailed_State- Adm Snp Usr VSize 1 .srdata full base --1 RW normal 0 0 61440 61440 0 admin full base --0 RW normal 0 0 10240 10240 21 tariq-test01-FC tpvv base --21 RW normal 128 512 512 4096 22 tariq-test02-fc.0 tpvv base --22 RW normal 128 512 512 1024 23 tariq-test02-fc.1 tpvv base --23 RW normal 128 512 512 1024 24 tariq-test02-fc.2 tpvv base --24 RW normal 128 512 512 1024 25 tariq-test02-fc.3 tpvv base --25 RW normal 128 512 512 1024 26 tariq-test02-fc.4 tpvv base --26 RW normal 128 512 512 1024 3 TL_1_2G_Thick cpvv base --3 RW normal 128 512 2048 2048 28 TL_1_2G_Thick_VC snp vcopy TL_1_2G_Thick 3 RW normal ---2048 2 TL_1_4GB_TP tpvv base --2 RW normal 128 512 512 4096 7 TL_2_2G_Thick cpvv base --7 RW normal 128 512 2048 2048 31 Dusan-VC0 snp vcopy TL_2_2G_Thick 7 RW normal ---2048 4 TL_2_4GB_TP tpvv base --4 RW normal 128 512 512 4096 8 TL_3_2G_Thick_namechange cpvv base --8 RW normal 128 512 3072 3072 9 TL_4_2G_Thick cpvv base --9 RW normal 128 512 2048 2048 6 TL_4_4GB_TP tpvv base --6 RW normal 128 512 512 4096 10 TL_TPVV_1GB_1.0 tpvv base --10 RW normal 128 512 512 1024 11 TL_TPVV_1GB_1.1 tpvv base --11 RW normal 128 512 512 1024 12 TL_TPVV_1GB_1.2 tpvv base --12 RW normal 128 512 512 1024 13 TL_TPVV_1GB_1.3 tpvv base --13 RW normal 128 512 512 1024 14 TL_TPVV_1GB_1.4 tpvv base --14 RW normal 128 512 512 1024 15 TL_TPVV_2GB_Template tpvv base --15 RW normal 128 512 512 2048 16 TL_VV_CLI_4GB full base --16 RW normal 0 0 4096 4096 18 TL_VV_Multi_1.0 full base --18 RW normal 0 0 1024 1024 19 TL_VV_Multi_1.1 full base --19 RW normal 0 0 1024 1024 20 TL_VV_Multi_1.2 full base --20 RW normal 0 0 1024 1024 --------------------------------------------------------------------------------------------------27 total 2432 9728 95744 120832 Then… export Virtual Copy Dusan-VC0 to Linux host: inserv034 cli% showvlun Active VLUNs LunVVName HostName Status ID 0 TL_TPVV_2GB_Template linux host active 0 1 TL_2_2G_Thick linux host active 0 2 Dusan-VC0 linux host active 0 0 TL_TPVV_2GB_Template linux host active 0 -Host_WWN/iSCSI_Name- Port Type 50014380167D7E94 0:2:3 50014380167D7E94 0:2:3 50014380167D7E94 0:2:3 50014380167D7E94 1:2:3 1 TL_2_2G_Thick linux 50014380167D7E94 1:2:3 host active 0 2 Dusan-VC0 linux 50014380167D7E94 1:2:3 host active 0 0 tariq-test01-FC tariq-windows-host1 5001438003B0B394 0:2:3 host active 0 0 tariq-test01-FC tariq-windows-host1 5001438003B0B396 0:2:4 host active 0 0 tariq-test01-FC tariq-windows-host1 5001438003B0B394 1:2:3 host active 0 0 tariq-test01-FC tariq-windows-host1 5001438003B0B396 1:2:4 host active 0 0 TL_1_4GB_TP Windows_HostB 5001438003B0B390 0:2:3 host active 0 2 TL_4_4GB_TP Windows_HostB 5001438003B0B390 0:2:3 host active 0 3 TL_2_4GB_TP Windows_HostB 5001438003B0B390 0:2:3 host active 0 0 TL_1_4GB_TP Windows_HostB 5001438003B0B392 0:2:4 host active 0 2 TL_4_4GB_TP Windows_HostB 5001438003B0B392 0:2:4 host active 0 3 TL_2_4GB_TP Windows_HostB 5001438003B0B392 0:2:4 host active 0 0 TL_1_4GB_TP Windows_HostB 5001438003B0B390 1:2:3 host active 0 2 TL_4_4GB_TP Windows_HostB 5001438003B0B390 1:2:3 host active 0 3 TL_2_4GB_TP Windows_HostB 5001438003B0B390 1:2:3 host active 0 0 TL_1_4GB_TP Windows_HostB 5001438003B0B392 1:2:4 host active 0 2 TL_4_4GB_TP Windows_HostB 5001438003B0B392 1:2:4 host active 0 3 TL_2_4GB_TP Windows_HostB 5001438003B0B392 1:2:4 host active 0 -------------------------------------------------------------------------------------22 total VLUN Templates LunVVName HostName -Host_WWN/iSCSI_Name- Port Type 0 TL_TPVV_2GB_Template linux ------------------ host 1 TL_2_2G_Thick linux ------------------ host 2 Dusan-VC0 linux ------------------ host 0 tariq-test01-FC tariq-windows-host1 ------------------ host 0 TL_1_4GB_TP Windows_HostB ------------------ host 2 TL_4_4GB_TP Windows_HostB ------------------ host 3 TL_2_4GB_TP Windows_HostB ------------------ host ---------------------------------------------------------------------------7 total F. On Linux server: # hp_rescan –a # multipath -l mpath2 (360002ac0000000000000001f00002894) dm-6 3PARdata,VV [size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=0][active] \_ 0:0:0:2 sde 8:64 [active][undef] \_ 0:0:1:2 sdf 8:80 [active][undef] mpath1 (360002ac0000000000000000700002894) dm-3 3PARdata,VV [size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=0][active] \_ 0:0:0:1 sdb 8:16 [active][undef] \_ 0:0:1:1 sdd 8:48 [active][undef] mpath0 (360002ac0000000000000000f00002894) dm-2 3PARdata,VV [size=2.0G][features=1 queue_if_no_path][hwhandler=0][rw] \_ round-robin 0 [prio=0][active] \_ 0:0:0:0 sda 8:0 [active][undef] \_ 0:0:1:0 sdc 8:32 [active][undef] # vgscan Reading all physical volumes. This may take a while... Found duplicate PV sPqCNKe7AQY38Jb2xiXHqPJVJcXMhhif: using /dev/dm-6 not /dev/dm-3 Found volume group "vg3par01" using metadata type lvm2 Found volume group "vg3par00" using metadata type lvm2 Found volume group "VolGroup00" using metadata type lvm2 # pvscan Found duplicate PV sPqCNKe7AQY38Jb2xiXHqPJVJcXMhhif: using /dev/dm-6 not /dev/dm-3 PV /dev/dm-6 VG vg3par01 lvm2 [2.00 GB / 44.00 MB free] PV /dev/dm-2 VG vg3par00 lvm2 [2.00 GB / 44.00 MB free] PV /dev/cciss/c0d0p2 VG VolGroup00 lvm2 [136.56 GB / 0 free] Total: 3 [140.55 GB] / in use: 3 [140.55 GB] / in no VG: 0 [0 ] # lvscan Found duplicate PV sPqCNKe7AQY38Jb2xiXHqPJVJcXMhhif: using /dev/dm-6 not /dev/dm-3 ACTIVE '/dev/vg3par01/lv3par01' [1.95 GB] inherit ACTIVE '/dev/vg3par00/lv3par00' [1.95 GB] inherit ACTIVE '/dev/VolGroup00/LogVol00' [118.94 GB] inherit ACTIVE '/dev/VolGroup00/LogVol01' [17.62 GB] inherit # vgimportclone --basevgname vg3par00-snap /dev/dm-3 WARNING: Activation disabled. No device-mapper interaction will be attempted. Physical volume "/tmp/snap.STU18061/vgimport0" changed 1 physical volume changed / 0 physical volumes not changed WARNING: Activation disabled. No device-mapper interaction will be attempted. Volume group "vg3par01" successfully changed Volume group "vg3par01" successfully renamed to "vg3par00-snap" Reading all physical volumes. This may take a while... Found volume group "vg3par01" using metadata type lvm2 Found volume group "vg3par00-snap" using metadata type lvm2 Found volume group "vg3par00" using metadata type lvm2 Found volume group "VolGroup00" using metadata type lvm2 # vgchange -a y vg3par00-snap 1 logical volume(s) in volume group "vg3par00-snap" now active # cat /etc/fstab /dev/VolGroup00/LogVol00 / LABEL=/boot /boot tmpfs /dev/shm devpts /dev/pts sysfs /sys proc /proc /dev/VolGroup00/LogVol01 swap /dev/vg3par00/lv3par00 /3parlv0 /dev/vg3par01/lv3par01 /3parlv1 /dev/vg3par00-snap/lv3par01 /3parlv0-vc ext3 ext3 defaults ext3 defaults tmpfs defaults devpts gid=5,mode=620 sysfs defaults proc defaults swap defaults ext3 defaults ext3 defaults defaults 0 0 # mkdir /3parlv0-vc # mount –a # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 120807460 3843856 110727856 4% / /dev/cciss/c0d0p1 101086 16833 79034 18% /boot tmpfs 8219324 0 8219324 0% /dev/shm /dev/mapper/vg3par01-lv3par01 2015824 35808 1877616 2% /3parlv1 /dev/mapper/vg3par00-lv3par00 2015824 35808 1877616 2% /3parlv0 /dev/mapper/vg3par00--snap-lv3par01 2015824 35808 1877616 2% /3parlv0-vc 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0