本文系统 Centos 6.5 x64

LVM的镜像功能,有点儿类似于Raid1,即多块儿磁盘互相同步,确保资料不会丢失。

1、在此添加4块物理硬盘,每块2G空间

2、将sdb、sdc、sdd、sde 创建物理卷,将sdb、sdc、sdd 添加卷组到vmTest

[root@node4 ~]# pvcreate /dev/sdb   Physical volume "/dev/sdb" successfully created[root@node4 ~]# pvcreate /dev/sdc  Physical volume "/dev/sdc" successfully created[root@node4 ~]# pvcreate /dev/sdd  Physical volume "/dev/sdd" successfully created[root@node4 ~]# pvcreate /dev/sde  Physical volume "/dev/sde" successfully created
[root@node4 ~]# vgcreate vgTest /dev/sdb /dev/sdc /dev/sdd   Volume group "vgTest" successfully created[root@node4 ~]#

3、创建逻辑卷

[root@node4 ~]# lvcreate -L 1G -m1 -n lvTest vgTest /dev/sdb /dev/sdc /dev/sdd  Logical volume "lvTest" created

查看lvs信息

[root@node4 ~]# lvs -a -o +devices  LV                VG       Attr       LSize   Pool Origin Data%  Move Log         Cpy%Sync Convert Devices                                lv_root           VolGroup -wi-ao----   8.54g                                                      /dev/sda2(0)                           lv_swap           VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                        lvTest            vgTest   mwi-a-m---   1.00g                         lvTest_mlog   100.00         lvTest_mp_w_picpath_0(0),lvTest_mp_w_picpath_1(0)  [lvTest_mp_w_picpath_0] vgTest   iwi-aom---   1.00g                                                      /dev/sdb(0)                            [lvTest_mp_w_picpath_1] vgTest   iwi-aom---   1.00g                                                      /dev/sdc(0)                            [lvTest_mlog]     vgTest   lwi-aom---   4.00m                                                      /dev/sdd(0)

LVM镜像需要用到-m1参数,从上面可以看出,/dev/sdb和/dev/sdc互为镜像,而/dev/sdd作为日志存储使用

4、格式化分区,在逻辑卷上创建一个文件。对/dev/sdc进行破坏。

[root@node4 ~]# mkfs.ext4 /dev/vgTest/lvTest mke2fs 1.41.12 (17-May-2010)文件系统标签=操作系统:Linux块大小=4096 (log=2)分块大小=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks65536 inodes, 262144 blocks13107 blocks (5.00%) reserved for the super user第一个数据块=0Maximum filesystem blocks=2684354568 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:         32768, 98304, 163840, 229376正在写入inode表: 完成                            Creating journal (8192 blocks): 完成Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 31 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@node4 ~]# dd if=/dev/zero of=/dev/sdc count=10 bs=20M记录了10+0 的读入记录了10+0 的写出209715200字节(210 MB)已复制,2.08666 秒,101 MB/秒[root@node4 ~]# lvs -a -o +devices  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.  LV                VG       Attr       LSize   Pool Origin Data%  Move Log         Cpy%Sync Convert Devices                                lv_root           VolGroup -wi-ao----   8.54g                                                      /dev/sda2(0)                           lv_swap           VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                        lvTest            vgTest   mwi-a-m-p-   1.00g                         lvTest_mlog   100.00         lvTest_mp_w_picpath_0(0),lvTest_mp_w_picpath_1(0)  [lvTest_mp_w_picpath_0] vgTest   iwi-aom---   1.00g                                                      /dev/sdb(0)                            [lvTest_mp_w_picpath_1] vgTest   iwi-aom-p-   1.00g                                                      unknown device(0)                      [lvTest_mlog]     vgTest   lwi-aom---   4.00m                                                      /dev/sdd(0)                          [root@node4 ~]# lvscan  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.  ACTIVE            '/dev/vgTest/lvTest' [1.00 GiB] inherit  ACTIVE            '/dev/VolGroup/lv_root' [8.54 GiB] inherit  ACTIVE            '/dev/VolGroup/lv_swap' [992.00 MiB] inherit[root@node4 ~]#

重新挂载逻辑卷,确认文件可以正常读取

[root@node4 ~]# mkdir /lvmTest[root@node4 ~]# mount /dev/vgTest/lvTest /lvmTest/[root@node4 ~]# cd /lvmTest/[root@node4 lvmTest]# lslost+found[root@node4 lvmTest]# echo "ac" > ac[root@node4 lvmTest]# cat acac[root@node4 lvmTest]#

将卷组中坏掉的物理卷(/dev/sdc)移除:

[root@node4 lvmTest]# vgdisplay   Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.  --- Volume group ---  VG Name               vgTest  System ID               Format                lvm2  Metadata Areas        2  Metadata Sequence No  3  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               1  Max PV                0  Cur PV                3  Act PV                2  VG Size               5.99 GiB  PE Size               4.00 MiB  Total PE              1533  Alloc PE / Size       513 / 2.00 GiB  Free  PE / Size       1020 / 3.98 GiB  VG UUID               1qzO3A-Tjvi-by9l-Oq49-byz3-tIkx-rfSqex
[root@node4 lvmTest]#   vgreduce --removemissing --force vgTest  Couldn't find device with uuid zecO8D-2Suc-rnmK-a2Z7-6613-Zy1X-whVS0X.  Wrote out consistent volume group vgTest[root@node4 lvmTest]#

5、向卷组中加入新的物理卷(/dev/sde):

[root@node4 lvmTest]# vgextend vgTest /dev/sde   Volume group "vgTest" successfully extended[root@node4 lvmTest]#

6、进行数据恢复(过程中无须解除逻辑卷的挂载)

[root@node4 lvmTest]# lvconvert -m1 /dev/vgTest/lvTest /dev/sdb /dev/sdd /dev/sde   vgTest/lvTest: Converted: 0.0%  vgTest/lvTest: Converted: 100.0%[root@node4 lvmTest]# lvs -a -o +devices  LV                VG       Attr       LSize   Pool Origin Data%  Move Log         Cpy%Sync Convert Devices                                lv_root           VolGroup -wi-ao----   8.54g                                                      /dev/sda2(0)                           lv_swap           VolGroup -wi-ao---- 992.00m                                                      /dev/sda2(2186)                        lvTest            vgTest   mwi-aom---   1.00g                         lvTest_mlog   100.00         lvTest_mp_w_picpath_0(0),lvTest_mp_w_picpath_1(0)  [lvTest_mp_w_picpath_0] vgTest   iwi-aom---   1.00g                                                      /dev/sdb(0)                            [lvTest_mp_w_picpath_1] vgTest   iwi-aom---   1.00g                                                      /dev/sdd(0)                            [lvTest_mlog]     vgTest   lwi-aom---   4.00m                                                      /dev/sde(0)

7、核实原数据

[root@node4 lvmTest]# cat acac[root@node4 lvmTest]# echo "abcde" >> ac[root@node4 lvmTest]# cat acacabcde[root@node4 lvmTest]#
[root@node4 lvmTest]# lvdisplay    --- Logical volume ---  LV Path                /dev/vgTest/lvTest  LV Name                lvTest  VG Name                vgTest  LV UUID                a8kDmI-R3ls-SfKJ-qx3d-1Tbb-wPAd-TJcQfn  LV Write Access        read/write  LV Creation host, time node4.lansgg.com, 2015-09-10 20:50:41 +0800  LV Status              available  # open                 1  LV Size                1.00 GiB  Current LE             256  Mirrored volumes       2  Segments               1  Allocation             inherit  Read ahead sectors     auto  - currently set to     256  Block device           253:5