文章目录
raid1 故障恢复实验、准备阶段centos7.3,三块磁盘
#第一:使用fdisk工具将sdb,sdc,sdd各分一个区 ,类型设为8e linux lvm,(sdd备用)
fdisk /dev/sdb
n
t
8e #lvm类型
#第二:强制刷新分区表
partprobe
#第三:创建pv
pvcreate /dev/sdb1
pvcreate /dev/sdc1
#第四:查看刚才创建的pv是否属于某个vg(刚创建的当然不会属于任何vg)
pvscan
#第五:创建vg,名为datavg,
vgcreate datavg /dev/sdb1 /dev/sdc1
#第六:查看vg,lv,pv的分配状态
vgs
创建lvm的raid1逻辑卷
可以打开另一个终端窗口,将其中一个用于日志的展示
tail -f /var/log/messages
#方法一,用全新的方式创建raid1
lvcreate --type raid1 -m 1 -L 1G -n lvdata1 datavg
查看创建好的lv
lvdisplay -a /dev/datavg/lvdata1
#方法二,将现有的线性lv转换为raid1 lv
将刚创建的lvdata1删除
lvremove /dev/datavg/lvdata1
创建一个线性卷
lvcreate -L 1G -n lvdata2 datavg
查看创建好的lv
lvdisplay -a /dev/datavg/lvdata2
格式化lvdata2
mkfs.ext4 /dev/datavg/lvdata2
创建一个空目录
mkdir /test
挂载lvdata2到test目录下
mount /dev/datavg/lvdata2 /test
写一些数据到/test目录下
卸载test(线上不卸载也可以,建议先卸载)
umount /test
转换
lvconvert --type raid1 -m 1 /dev/datavg/lvdata2
查看转换后的lvdata2
lvs -a datavg
[root@localhost ~]# lvs -a datavg
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lvdata2 datavg rwi-a-r--- 1.00g 43.75
[lvdata2_rimage_0] datavg Iwi-aor--- 1.00g
[lvdata2_rimage_1] datavg Iwi-aor--- 1.00g
[lvdata2_rmeta_0] datavg ewi-aor--- 4.00m
[lvdata2_rmeta_1] datavg ewi-aor--- 4.00m
故障恢复
#第一:模拟故障sdb1(写入些数据就相当于破坏了,磁盘)
dd if=/dev/zero of=/dev/sdb1 count=1000
#第二:进入/test目录,查看是否可用(可否写,读) #发现,还是可以读写的
cd /test
mkdir 123 88
#第三:查看pv(发现有一个是unknown的)
pvscan
root@localhost ~]# pvscan
PV /dev/sda2 VG cl lvm2 [31.00 GiB / 4.00 MiB free]
WARNING: Device for PV dChnZp-Otfw-Br3h-XPGt-WboX-QorR-kD3R0N not found or rejected by a filter.
PV [unknown] VG datavg lvm2 [2.00 GiB / 1016.00 MiB free]
PV /dev/sdc1 VG datavg lvm2 [2.00 GiB / 1016.00 MiB free]
Total: 3 [34.99 GiB] / in use: 3 [34.99 GiB] / in no VG: 0 [0 ]
查看lv
[root@localhost ~]# lvs -ao +devices datavg
WARNING: Device for PV dChnZp-Otfw-Br3h-XPGt-WboX-QorR-kD3R0N not found or rejected by a filter.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
lvdata2 datavg rwi---r-p- 1.00g lvdata2_rimage_0(0),lvdata2_rimage_1(0)
[lvdata2_rimage_0] datavg Iwi---r-p- 1.00g [unknown](0)
[lvdata2_rimage_1] datavg Iwi---r--- 1.00g /dev/sdc1(1)
[lvdata2_rmeta_0] datavg ewi---r-p- 4.00m [unknown](256)
[lvdata2_rmeta_1] datavg ewi---r--- 4.00m /dev/sdc1(0)
经过查看发现sdb1是无效设备
#第四:下面就移除无效的设备
vgreduce --removemissing datavg --force
#第五:再次查看,是否有错误
[root@localhost /]# lvs -ao +devices datavg
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
lvdata2 datavg rwi---r--- 1.00g lvdata2_rimage_0(0),lvdata2_rimage_1(0)
[lvdata2_rimage_0] datavg vwi---r--- 1.00g
[lvdata2_rimage_1] datavg Iwi---r--- 1.00g /dev/sdc1(1)
[lvdata2_rmeta_0] datavg ewi---r--- 4.00m
[lvdata2_rmeta_1] datavg ewi---r--- 4.00m /dev/sdc1(0)
#第六:准备好sdd1
fdisk /dev/sdd
n
t
8e
强制刷新分区表
partprobe
#第七:将其创建为pv
pvcreate /dev/sdd1
#第八:将新创建的pv加入到名为datavg的vg中(不会自动恢复原本的raid1卷,需要下面的手动转化为线性卷然后转化成raid1卷)
vgextend datavg /dev/sdd1
#第九:查看vg(发现有两个都是active的)
vgdisplay datavg
#第十:卸载test目录(可以不用卸载)
umount /test
#第十一:将其装化为线性卷
lvconvert -m 0 /dev/datavg/lvdata2
#第十二:转化为raid卷
lvconvert --type raid1 -m 1 /dev/datavg/lvdata2
#第十三:重新挂载test目录,查看之前创建的123 88 两个目录(发现还存在,并且可读写)
mount /dev/datavg/lvdata2 /test
#第十四:查看恢复后的分区
lvs -ao +devices datavg
[root@localhost test]# lvs -ao +devices datavg
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
lvdata2 datavg rwi-aor--- 1.00g 100.00 lvdata2_rimage_0(0),lvdata2_rimage_1(0)
[lvdata2_rimage_0] datavg iwi-aor--- 1.00g /dev/sdc1(1)
[lvdata2_rimage_1] datavg iwi-aor--- 1.00g /dev/sdd1(1)
[lvdata2_rmeta_0] datavg ewi-aor--- 4.00m /dev/sdc1(0)
[lvdata2_rmeta_1] datavg ewi-aor--- 4.00m /dev/sdd1(0)
查看pvscan
[root@localhost test]# pvscan
PV /dev/sda2 VG cl lvm2 [31.00 GiB / 4.00 MiB free]
PV /dev/sdc1 VG datavg lvm2 [2.00 GiB / 1016.00 MiB free]
PV /dev/sdd1 VG datavg lvm2 [2.00 GiB / 1016.00 MiB free]
Total: 3 [34.99 GiB] / in use: 3 [34.99 GiB] / in no VG: 0 [0 ]
拆分raid1 卷独立使用案例
拆分:将raid1 lv卷,拆分为2个独立的线性逻辑卷,每个均可以独立使用
转换:结果只保留了一份,lvconvert命令的 -m 0参数可将现有的raid 1 lvm逻辑卷转换为lvm线性卷
#第一:拆分为两个独立的(默认是均匀拆分)
lvconvert --splitmirror 1 -n newlvdata2 /dev/datavg/lvdata2
lvconvert --splitmirror 1 -n newlvdata2 /dev/datavg/lvdata2 /dev/sdd1 #表示将sdd1拆分出来
#--splitmirror 这个参数不能自动补全,参数1 表示拆分保留1份,-n表示新lv名字
#第二:查看拆分后的
lvs -ao +devices datavg
[root@localhost ~]# lvs -ao +devices datavg
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
lvdata2 datavg -wi-a----- 1.00g /dev/sdc1(0)
newlvdata2 datavg -wi-a----- 1.00g /dev/sdd1(1)
#第三:测试拆分后的两个磁盘,看看test2目录的数据与test目录的数据是否相同,并测试数据的读取与写入是否正确
mkdir /test2
mount /dev/datavg/newlvdata /test2
cd /test2
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论