centos 7创建lvm镜像的方法与步骤

1、创建磁盘分区

首先将 sdb 和 sdc分区,并创建四个pv(sdb1、sdb2、sdc1、sdc2,然后创建vg0并将sd1、sdc1加入其中。依次执行命令为:

fdisk /dev/sdb  –创建三个扩展分区/dev/sdb1、/dev/sdb2
partprobe   -重新读取分区表

pvcreate /dev/sdb1
pvcreate /dev/sdb2
pvdisplay
fdisk /dev/sdc -创建分区/dev/sdc
partprobe
pvcreate /dev/sdc1

pvcreate /dev/sdc2

pvdisplay 
vgcreate vg0 /dev/sdb1  /dev/sdc1 –创建vg0

2、创建lvm镜像/dev/vg0/mirror

使用-ml参数标志为创建镜像;使用-L参数设定镜像卷的大小为1000M;使用-n参数为镜像指定名称为mirror。这个镜像包括两部分:sdb1和sdc1为数据卷和副本卷分区。

lvcreate -L 1000M -m1 -n mirror vg0 /dev/sdb1 /dev/sdc1 

查看/dev/vg0/mirror的状态:

lvdisplay /dev/vg0/mirror

查看当前lvm中设备状态:

lvs -a -o +devices

3、对新建的镜像lv进行格式化和挂载

mkfs.ext3 /dev/vg0/mirror 
mkdir /mirror
mount /dev/vg0/mirror /mirror/

4、对镜像lvm进行破坏

破坏一块pv,看是否能正常工作

dd if=/dev/zero of=/dev/sdb5 count=10

破坏之后可以看到镜像lv中的/dev/sdb5变成了未知:

lvs -a -o +devices
lvscan

重新对镜像lv进行挂载,发现仍然可正常使用。

umount /mirror/ 
mount /dev/vg0/mirror /mirror/
cd /mirror/

把坏掉的设备从vg0中移除:

vgreduce --removemissing --force vg0

移除之后发现vg0信息中Mirrored volumes选项没有了

vgdisplay /dev/vg0

5、镜像数据恢复

在vg0中新加一个pv,对数据进行恢复:

vgextend vg0 /dev/sdb2

lvconvert -m1 /dev/vg0/mirror /dev/sdb2 /dev/sdc 

再次查看设备状态,我们会发现sdb2已经取代了sdb1的位置工作

lvs -a -o +devices