|
楼主 |
发表于 2010-11-30 17:03:21
|
显示全部楼层
今天抽时间看了merge实现的RedHat代码,终于搞懂了,TMD RedHat那个不完成的文档真的很害人!
具体步骤如下:
- [root@rhelv6 ~]# pvs
- PV VG Fmt Attr PSize PFree
- /dev/sda2 vg_rhelv6 lvm2 a- 10.00g 1004.00m
- /dev/sda3 vg_rhelv6 lvm2 a- 9.80g 9.80g
- [root@rhelv6 ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- vg_rhelv6 2 5 0 wz--n- 19.80g 10.78g
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- test vg_rhelv6 -wi-ao 500.00m
- [root@rhelv6 ~]# mount
- /dev/mapper/vg_rhelv6-LogVol01 on / type ext4 (rw)
- proc on /proc type proc (rw)
- sysfs on /sys type sysfs (rw)
- devpts on /dev/pts type devpts (rw,gid=5,mode=620)
- tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
- /dev/sda1 on /boot type ext4 (rw)
- /dev/mapper/vg_rhelv6-LogVol03 on /home type ext4 (rw)
- /dev/mapper/vg_rhelv6-LogVol00 on /usr type ext4 (rw)
- none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
- sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
- /dev/sr0 on /media/RHEL_6.0 i386 Disc 1 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
- /dev/mapper/vg_rhelv6-test on /opt/real type ext4 (rw)
复制代码
以上是原始状态,测试的LV是/dev/mapper/vg_rhelv6-test(/dev/vg_rhelv6/test),挂接在/opt/real目录上
- [root@rhelv6 ~]# cd /opt/real
- [root@rhelv6 real]# cp /etc/hosts .
- [root@rhelv6 real]# cat /etc/hosts
- 172.16.69.129 rhelv6 # Added by NetworkManager
- 127.0.0.1 localhost.localdomain localhost
- ::1 rhelv6 localhost6.localdomain6 localhost6
复制代码
做个测试文件,用以比较
- [root@rhelv6 real]# cd
- [root@rhelv6 ~]# lvcreate -L 50M -s /dev/vg_rhelv6/test -n snap1
- Rounding up size to full physical extent 52.00 MiB
- Logical volume "snap1" created
复制代码
创建/dev/vg_rhelv6/test的snapshot为/dev/vg_rhelv6/snap1
- [root@rhelv6 ~]# mount /dev/vg_rhelv6/snap1 /opt/snap/
- [root@rhelv6 ~]# cd /opt/snap/
- [root@rhelv6 snap]# cat hosts
- 172.16.69.129 rhelv6 # Added by NetworkManager
- 127.0.0.1 localhost.localdomain localhost
- ::1 rhelv6 localhost6.localdomain6 localhost6
- [root@rhelv6 snap]# sed -i '1d' hosts
- [root@rhelv6 snap]# cat hosts
- 127.0.0.1 localhost.localdomain localhost
- ::1 rhelv6 localhost6.localdomain6 localhost6
复制代码
将/dev/vg_rhelv6/snap1挂接在/opt/snap上,然后删除测试文件hosts的第一行。
- [root@rhelv6 snap]# cd
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- snap1 vg_rhelv6 swi-ao 52.00m test 0.05
- test vg_rhelv6 owi-ao 500.00m
- [root@rhelv6 ~]# df
- Filesystem 1K-blocks Used Available Use% Mounted on
- /dev/mapper/vg_rhelv6-LogVol01
- 2064208 375604 1583748 20% /
- tmpfs 255784 420 255364 1% /dev/shm
- /dev/sda1 198337 24176 163921 13% /boot
- /dev/mapper/vg_rhelv6-LogVol03
- 476012 16332 435104 4% /home
- /dev/mapper/vg_rhelv6-LogVol00
- 5220944 2495540 2460188 51% /usr
- /dev/sr0 2862360 2862360 0 100% /media/RHEL_6.0 i386 Disc 1
- /dev/mapper/vg_rhelv6-test
- 495844 10500 459744 3% /opt/real
- /dev/mapper/vg_rhelv6-snap1
- 495844 10500 459744 3% /opt/snap
- [root@rhelv6 ~]# umount /opt/real
- [root@rhelv6 ~]# umount /opt/snap
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- snap1 vg_rhelv6 swi-a- 52.00m test 0.09
- test vg_rhelv6 owi-a- 500.00m
复制代码
查看其状态,并且umount LV及LV-snapshot
-
- [root@rhelv6 ~]# lvchange -an /dev/vg_rhelv6/test
复制代码
将LV设为disactive状态,这步很重要,但RedHat文档中没有提及!
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- snap1 vg_rhelv6 swi--- 52.00m test
- test vg_rhelv6 owi--- 500.00m
复制代码
确认LV及LV-snapshot没有open并设为disactive状态
-
- [root@rhelv6 ~]# lvconvert --merge /dev/vg_rhelv6/snap1
- Merging of volume snap1 started.
- Conversion starts after activation.
复制代码
可以merge了!
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- test vg_rhelv6 Owi--- 500.00m
复制代码
查看状态LV正在merge !
-
- [root@rhelv6 ~]# lvchange -ay /dev/vg_rhelv6/test
复制代码
将LV设回active状态,如果正常命令无返回,如果还没有merge完毕,你可能会看到错误提示!
- [root@rhelv6 ~]# lvs
- LV VG Attr LSize Origin Snap% Move Log Copy% Convert
- LogVol00 vg_rhelv6 -wi-ao 5.06g
- LogVol01 vg_rhelv6 -wi-ao 2.00g
- LogVol02 vg_rhelv6 -wi-ao 1.00g
- LogVol03 vg_rhelv6 -wi-ao 480.00m
- test vg_rhelv6 -wi-a- 500.00m
复制代码
正确执行完merge操作后,LV-snapshot设备会被自动删除。
-
- [root@rhelv6 ~]# mount /dev/vg_rhelv6/test /opt/real/
- [root@rhelv6 ~]# cd /opt/real/
- [root@rhelv6 real]# cat hosts
- 127.0.0.1 localhost.localdomain localhost
- ::1 rhelv6 localhost6.localdomain6 localhost6
- [root@rhelv6 real]#
复制代码
验证正确后,收工! |
|