RAID及LVM技術(shù)的實(shí)現(xiàn)

RAID

創(chuàng)建RAID5

  1. 新建/dev/sdb1、/dev/sdb2、/dev/sdb3、/dev/sdb4、/dev/sdb6、/dev/sdb7分區(qū),大小為10G,并設(shè)置分區(qū)類型為Linux raid autodetect。過程依次如下
  1. mdadm -C /dev/md0 -n 3 -l 5 -a yes -X 1 /dev/sdb{1,2,3,5} 新建raid5,-n為三塊盤組成raid5,-X為一塊熱備盤,-a為自動創(chuàng)建,-l指定raid類型
  1. mdadm -D /dev/md0 查看md0設(shè)備的創(chuàng)建信息
  2. mdadm -Ds /dev/md0 > /etc/mdadm.conf 生成raid的配置文件,用于raid設(shè)備的開機(jī)自啟


  3. mkfs.ext4 -L md0 /dev/md0 格式化md0設(shè)備為ext4文件系統(tǒng),并設(shè)置卷標(biāo)為md0
  4. mkdir /app/md0
  5. vim /etc/fstab 掛載信息寫入fatab文件,開機(jī)自啟
  6. mount -a 掛載生效
  7. df 查看md0設(shè)備的空間大小為20G
  8. dd if=/dev/zero of=/app/md0/file1 bs=1M count=1024
    dd if=/app/md0/file1 of=/dev/null bs=1M count=1024 測試md0設(shè)備和普通分區(qū)的讀寫速度

創(chuàng)建RAID10

① mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb{1,2} 先分別創(chuàng)建raid1
mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb{3,5}
mddadm -C /dev/md2 -a yes -l 0 -n 2 /dev/md{0,1} 在創(chuàng)建raid0
② mdadm -C /dev/md0 -a yes -l 10 -n 4 /dev/sdb{1,2,3,5}

硬盤損壞時(shí)

  1. mdadm /dev/md0 -f /dev/sdb3 模擬/dev/sdb3設(shè)備損壞
  2. mdamd -D /dev/md0 查看md0設(shè)備的狀態(tài),/dev/sdb3損壞,/dev/sdb5熱備盤自動添加進(jìn)md0組,并自動raid重構(gòu),重構(gòu)完成后,不影響raid設(shè)備的使用
  1. mdadm /dev/md0 -r /dev/sdb3 將損壞的/dev/sdb3磁盤從raid組中移除

  2. mdadm /dev/md0 -f /dev/sdb2 將/dev/sdb2設(shè)備移除后,raid級別將下降

  3. mdadm -D /dev/md0 查看raid的狀態(tài)

  4. dd if=/dev/zero of=/app/md0/file2 bs=1M count=1024
    dd if=/app/md0/file2 of=/dev/null bs=1M count=1024 讀性能下降

- 修復(fù)raid

  1. mdadm /dev/md0 -a /dev/sdb6 將/dev/sdb6磁盤添加進(jìn)/dev/md0組,會自動重構(gòu)
  2. mdadm -D /dev/md0 查看md0設(shè)備的信息,發(fā)現(xiàn)/dev/sdb6正在重構(gòu)


  3. mdadm /dev/md0 -a /dev/sdb7 將/dev/sdb7添加進(jìn)md0組中,自動成為熱備盤
  4. mdadm -D /dev/md0 查看md0設(shè)備的相信信息

添加新的成員進(jìn)RAID組中

  1. mdadm -G /dev/md0 -n4 -a /dev/sdb2 添加新的成員/dev/sdb2到raid5設(shè)備md0中,raid成員變?yōu)?個(gè),-n 4表示為四個(gè)成員
  2. mdadm -D /dev/md0 查看/dev/md0設(shè)備的狀態(tài)
  3. dd if=/dev/zero of=/app/md0/file2 bs=1M count=1024
    dd if=/app/md0/file2 of=/dev/null bs=1M count=1024 再次測試讀寫性能

停止raid設(shè)備的使用

  1. umount /dev/md0 先卸載md0設(shè)備
  2. mdadm -S /dev/md0 停止md0設(shè)備
  3. mv /etc/mdadm.conf /etc/mdadm.conf.bak 將mdadm.conf配置文件移除,下次將不會再啟用
  4. mdadm -D /dev/md0

激活raid設(shè)備

  1. mv /etc/mdadm.conf.bak /etc/mdadm.conf
  2. mdadm -A /dev/md0 激活設(shè)備
  3. mdadm -R /dev/md0 強(qiáng)制激活設(shè)備

刪除RAID

  1. umount /dev/md0 先卸載/dev/md0設(shè)備
  2. mdadm -S /dev/md0 停止/de0設(shè)備
  3. rm -rf /etc/mdadm.conf 刪除mdadm.conf配置文件
  4. vim /etc/fstab 編輯fstab文件刪除/dev/md0設(shè)備的掛載信息
  5. mdadm --zero-superblock /dev/sdb1 清除Raid成員上超級塊raid元數(shù)據(jù),raid成員的數(shù)據(jù)一個(gè)一個(gè)刪除,徹底清除
  1. dd if=/dev/zero of=/dev/sdb1 也可以清除磁盤上的raid信息

新建raid0

  1. mdadm -C /dev/md0 -a yes -l 0 -n 4 /dev/sdb{1,2,3,5}
  2. mkfs.ext4 /dev/md0
  3. mdadm -==Ds== /dev/md0 > /etc/mdadm.conf 生成raid0的啟動配置文件
  4. mount /dev/md0 /mnt/md0
  5. dd if=/dev/zero of=/app/md0/file3 bs=1M count=1024
    dd if=/app/md0/file3 of=/dev/null bs=1M count=1024
  1. raid0設(shè)備刪除一塊整塊 raid將停止工作
  • dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446 復(fù)制sdc的的同/dev/sdb一樣

lVM

創(chuàng)建LVM

  1. fdisk /dev/sdb新建/dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb5四個(gè)分區(qū),分區(qū)類型為8eLVM類型。
  2. pvcreate /dev/sdb{1,2,3} 新建pv設(shè)備
  3. pvs
  4. pvdisplay 查看pv設(shè)備信息
  5. vgcreate -s 16M vg0 /dev/sdb1{1,2} 創(chuàng)建vg設(shè)備vg0,-s指定PE塊大小
  6. vgdisplay 查看vg設(shè)備
  7. lvcreate -n lv0 -l 100%vg vg0 -n指定lv邏輯卷名稱,-l指定PE塊的個(gè)數(shù),100%vg為使用vg的全部PE
  8. lvdisplay 查看lv邏輯卷的信息
  9. mkfs.ext4 /dev/vg0/lv0 lv0邏輯卷格式化
  10. vim /etc/fstab 編輯lv0設(shè)備的掛載信息到fstab啟動文件
    UUID="c338673f-ccfb-4df2-80a6-a08c8673559f" /mnt/lv0 ext4 defaults 0
  1. df -h 查看lv0邏輯卷的大小為20G
  2. dd if=/dev/zero of=/mnt/lv0/file4 bs=1M count=1024
    dd if=/mnt/lv0/file4 of=/dev/null bs=1M count=1024 測試lv0設(shè)備的讀寫速度

在線拉升LVM

  1. pvdisplay 查看還有空閑pv設(shè)備/dev/sdb3
    pvextend /dev/sdb3 若pv設(shè)備沒有空閑,則新建pv設(shè)備
  2. vgextend vg0 /dev/sdb3 將/dev/sdb3擴(kuò)展進(jìn)vg0設(shè)備
  3. vgdisplay 查看vg設(shè)備的容量還有20G剩余
  4. lvextend -L +10G /dev/vg0/lv0 增大10G到lv0設(shè)備
  5. lvdisplay 查看lv設(shè)備的信息和容量
  6. resize2fs /dev/vg0/lv0 (ext4文件系統(tǒng)) 同步文件系統(tǒng),容量跟lv一致
    xfs_growfs /dev/vg0/lv0(/mnt/lv0) (xfs文件系統(tǒng))
  7. df -h 查看lv設(shè)備的可用容量
  8. lvextend -r -l +100%free /dev/vg0/lv0 lv設(shè)備擴(kuò)展vg剩余容量的100%,即將vg剩余的全部容量到lv設(shè)備,-r為同步文件系統(tǒng),省去了resize2fs和xfs_growfs

離線減小LVM

  1. 先備份數(shù)據(jù)
  2. umount /dev/lv0 卸載/dev/vg0/lv0 設(shè)備 3. fsck/e2fsck -f /dev/vg0/lv0


  3. resize2fs /dev/vg0/lv0 30G 縮減lv容量到30G
  1. lvreduce -L 30G /dev/vg0/lv0 減小lv0邏輯卷大小到30G
  2. mount /dev/vg0/lv0 /mnt/lv0 掛載設(shè)備

移除PV

  1. vgdisplay 查看vg設(shè)備中的空閑空間
  2. pvdisplay 查看PV設(shè)備中的空閑空間,將/dev/sdb空閑空間移除到其他磁盤
  3. pvmove /dev/sdb 將/dev/sdb磁盤上的空間移到其他設(shè)備
  4. vgreduce vg0 /dev/sdb 將/dev/sdb設(shè)備從vg0設(shè)備上移除
  5. pvremove /dev/sdb 將/dev/sdb設(shè)備從pv設(shè)備中刪除
  6. 卸載磁盤

卸載

  1. umount /dev/vg0/lv0
  2. lvremove /dev/vg0/game
  3. vgremove /dev/vg0/
  4. pvremove /dev/sdb

跨主機(jī)遷移LV

  • 新建/dev/vg0/lv0設(shè)備
  1. pvcreate /dev/sdb1 /dev/sdb2 /dev/sdc
  2. vgcreate -s 16M vg0 /dev/sdb1 /dev/sdb2 /dev/sdc
  3. lvcreate -L 20G -n lv0 vg0
  4. mkfs.ext4 /dev/vg0/lv0 /dev/newvg0/newlv0設(shè)備格式化文件系統(tǒng)
  5. mount /dev/vg0/lv0 /mnt/lv0 掛載lv0設(shè)備
  • 將lv0設(shè)備的空間移動到可移動磁盤上
  1. pvdisplay 查看lv對應(yīng)的卷組由幾個(gè)pv組合
    image
    image
  2. vgdisplay 查看vg設(shè)備的信息
  3. pvmove /dev/sdb1 將/dev/sdb{1,2}上的數(shù)據(jù)移除到vg0的其他磁盤空間上
  4. vgreduce vg0 /dev/sdb1 將/dev/sdb1從vg0卷組中移除
  5. pvremove /dev/sdb1 將/dev/sdb1設(shè)備從pv物理卷中移除
  • 查看vg名稱,確保在目標(biāo)主機(jī)上不要沖突
  1. vgrename vg0 newvg0 將vg0的名稱更改為newvg0
  2. lvrename /dev/newvg0/lv0 /dev/newvg0/newlv0 修改lv設(shè)備的命令為newlv0
  • 跨主機(jī)遷移先將更名后的newlv0設(shè)備導(dǎo)出
  1. umount /mnt/md0/
  2. vgchange -an newvg0 禁用卷組中的左右邏輯卷
  3. lvdisplay 查看lv邏輯卷的狀態(tài)
  4. vgexport newvg0 將newvg0設(shè)備導(dǎo)出
  5. vgdisplay 查看vg設(shè)備狀態(tài)
  6. 將設(shè)備關(guān)機(jī)取出磁盤更換到新主機(jī)上
  • 已更換新主機(jī)上
  1. vgdisplay 查看新設(shè)備上的vg卷設(shè)備,newvg0設(shè)備自動識別,并為導(dǎo)出狀態(tài)
  2. vgimport newvg0 將newvg0設(shè)備導(dǎo)入進(jìn)系統(tǒng)
  3. vgchange -ay newlv0 將newlv0卷激活,配合vgchange -an newlv0使用
  4. vgdisplay 查看newvg0導(dǎo)入后的狀態(tài)
  5. lvdisplay 查看導(dǎo)入后lv卷的狀態(tài)
  6. mount /dev/newvg0/newlv0 /mnt/lv0/ 掛載newlv0設(shè)備到/mnt/lv0下
  7. df -h查看newlv0設(shè)備的掛載空間和磁盤數(shù)據(jù)

快照

  • 創(chuàng)建/dev/newg0/newlv0的快照(快照空間一般小于等于原lv卷的空間)
  1. lvcreate -n newlv0-snap -s -l +60%free -p r /dev/newvg0/newlv0 -n 指定快照名稱 -s 為創(chuàng)建快照 -l 指定快照空間為vg空閑空間的60%,-p 指定快照為只讀
  2. lvdisplay 查看newlv-snap快照的邏輯卷狀態(tài)
  3. mount /dev/newvg0/newlv0-snap /mnt/lv0-snap/ 掛載/dev/newvg0/newlv0-snap快照設(shè)備
  4. ls /mnt/lv0-snap /mnt/lv0 查看快照下面的數(shù)據(jù)同原lv0設(shè)備的數(shù)據(jù)一致
  1. rm -rf /mnt/lv0/aaa1* 刪除newlv0卷上的數(shù)據(jù)
  1. umount /mnt/lv0 卸載邏輯卷
  2. umount /mnt/lv0-snap/ 卸載邏輯卷的快照
  3. lvconvert ==--merge ==/dev/newvg0/newlv0-snap 由快照恢復(fù)邏輯卷數(shù)據(jù)
  4. mount /dev/newvg0/newlv0 /mnt/lv0 掛載邏輯卷
  5. ls /mnt/lv0 檢測數(shù)據(jù)是否恢復(fù)
  • 刪除快照
  1. umount /mnt/lv0-snap
  2. lvremove /dev/vg0/lv0-snap
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容