LVM高级特性之一(raid1 故障恢复实验 及拆分raid1 卷独立使用)

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
声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/148.html
谢谢你请我吃辣条谢谢你请我吃辣条

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2022/12/3作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录