「Linux就該這么學(xué)」讀書(shū)筆記(五)

歡迎來(lái)我的博客

RAID(獨(dú)立冗余磁盤陣列)

通過(guò)把多個(gè)硬盤設(shè)備組合成一個(gè)容量更大、安全性更好的磁盤陣列,并把數(shù)據(jù)切割成多個(gè)區(qū)段后分別存放在各個(gè)不同的物理硬盤設(shè)備上,然后利用分散讀寫技術(shù)來(lái)提升磁盤陣列整體的性能,同時(shí)把多個(gè)重要數(shù)據(jù)的副本同步到不同的物理硬盤設(shè)備上

RAID 0

能夠有效的提升硬盤數(shù)據(jù)的吞吐速度,但是不具備數(shù)據(jù)備份和錯(cuò)誤修復(fù)能力,數(shù)據(jù)會(huì)被分開(kāi)寫入到不同的硬盤設(shè)備中

RAID 1

在寫入數(shù)據(jù)時(shí),將數(shù)據(jù)同時(shí)寫入到多塊硬盤設(shè)備上,當(dāng)其中一塊硬盤出錯(cuò)時(shí),會(huì)自動(dòng)替換

RAID 5

把硬盤設(shè)備的數(shù)據(jù)奇偶校驗(yàn)信息保存到其他硬盤設(shè)備中,這樣任何一個(gè)設(shè)備損壞后不至于出現(xiàn)致命缺陷

RAID 10

RAID 0和RAID 1的組合體,繼承了RAID 0的高讀寫速度和RAID 1的數(shù)據(jù)安全性,在不考慮成本的情況下RAID 10的性能都超過(guò)了RAID 5

mdadm

管理Linux 系統(tǒng)中的軟件RAID硬盤陣列

參數(shù) 作用
-a 檢測(cè)設(shè)備名稱
-n 指定設(shè)備數(shù)量
-l 指定RAID界別
-C 創(chuàng)建
-v 顯示過(guò)程
-f 模擬設(shè)備損壞
-r 移除設(shè)備
-Q 查看摘要信息
-D 查看詳細(xì)信息
-S 停止RAID磁盤陣列
-x 備份盤數(shù)量

使用4塊硬盤來(lái)部署RAID 10,并掛載硬盤,最后將掛載信息寫入到配置文件中

# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# mkfs.ext4 /dev/md0
# mkdir /RAID
# mount /dev/md0 /RAID
# df -h
etc...
/dev/md0  40G  49M 38G 1% /RAID
# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab

損壞硬盤陣列及修復(fù)

這里模擬一下RAID 磁盤陣列損壞后的處理方法

使用madadm命令將壞掉的硬盤移除,然后查看RAID磁盤陣列的狀態(tài),這時(shí)可以發(fā)現(xiàn)狀態(tài)已經(jīng)改變,再模擬一個(gè)新的硬盤,重啟系統(tǒng),接著把新的硬盤添加到RAID磁盤陣列中

# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
# mdadm -D /dev/md0
etc...
0 8 16 - faulty    /dev/sdb
# umount /RAID
# mdadm /dev/md0 -a /dev/sdb
# mdadm -D /dev/md0
etc...
Number Major Minor RaidDevice State
4 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
# mount -a

磁盤陣列+備份盤

RAID 10 最多允許50%的硬盤設(shè)備發(fā)生故障,但是存在一些極端情況,這時(shí)我們需要用到備份盤

這里的例子是RAID 5,一共使用4塊硬盤,其中一個(gè)是用來(lái)備份,用 -x 來(lái)表示數(shù)量,當(dāng)硬盤出現(xiàn)問(wèn)題時(shí),備份盤會(huì)自動(dòng)頂替出問(wèn)題的硬盤,并回復(fù)數(shù)據(jù)

# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
etc...
# mdadm -D /dev/md0
etc...
Number Major Minor RaidDevice State
0      8     16    0          active sync /dev/sdb
1      8     32    1          active sync /dev/sdc
4      8     48    2          active sync /dev/sdd
3      8     64    -          spare       /dev/sde
# mkfs.ext4 /dev/md0
etc...
# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
# mkdir /RAID
# mount -a

LVM(邏輯卷管理器)

在硬盤分區(qū)或者部署為RAID磁盤陣列后,用戶想要調(diào)整硬盤分區(qū)的大小時(shí),需要用到LVM技術(shù),該技術(shù)可以允許用戶對(duì)硬盤資源進(jìn)行動(dòng)態(tài)調(diào)整

部署邏輯卷

功能/命令 物理卷管理 卷組管理 邏輯卷管理
掃描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
顯示 pvdisplay vgdisplay lvdisplay
刪除 pvremove vgremove lvremove
擴(kuò)展 vgextend lvextend
縮小 vgreduce lvreduce

部署:

  1. 讓添加的設(shè)備支持LVM技術(shù)
  2. 將兩塊硬盤設(shè)備加入到storage卷組中
  3. 切割出一個(gè)150MB的邏輯卷設(shè)備
  4. 把生成好的邏輯卷格式化,掛載使用
  5. 寫入配置文件
# pvcreate /dev/sdb /dev/sdc
etc...
# vgcreate storage /dev/sdb /dev/sdc
etc...
# vgdisplay
etc...
Alloc PE / Size 0 / 0 Free PE / Size 10238 / 39.99 GiB
etc...
# lvcreate -n vo -l 37 storage
etc...
# lvdisplay
etc...
LV Size 148.00MiB
etc...
# mkfs.ext4 /dev/storage/vo
etc...
# mkdir /lvm
# mount /dev/storage/vo /lvm
# df -h
etc...
/dev/mapper/storage-vo 145M 7.6M 138M 6% /lvm
# echo "/dev/storage/vo /lvm ext4 defaults 0 0" >> /etc/fstab

擴(kuò)容邏輯卷

擴(kuò)容:

  1. 把邏輯卷vo擴(kuò)展至290MB
  2. 檢查硬盤完整性,并重置硬盤容量
  3. 重新掛載硬盤設(shè)備并查看掛載狀態(tài)
# umount /lvm
# lvextend -L 290M /dev/storage/vo
etc...
# e2fsck -f /dev/storage/vo
etc...
# resize2fs /dev/storage/vo
# mount -a
# df -h
etc...
/dev/mapper/storage-vo 279M 2.1M 259M 1% /lvm

縮小邏輯卷

縮?。?/p>

  1. 檢查文件系統(tǒng)的完整性
  2. 把邏輯卷的容量減小到120MB
  3. 重新掛載文件系統(tǒng)并查看系統(tǒng)狀態(tài)
# umount /lvm
# e2fsck -f /dev/storage/vo
etc...
# resize2fs /dev/storage/vo 120M
etc...
# lvreduce -L 120M /dev/storage/vo
etc...
# mount -a
# df -h
etc...
/dev/mapper/storage-vo 113M 1.6M 103M 2% /lvm

邏輯卷快照

快照:

  1. 使用-s參數(shù)生成一個(gè)快照卷,使用-L參數(shù)指定切割的大小
  2. 在邏輯卷所掛載的目錄中創(chuàng)建一個(gè)100MB的垃圾文件,然后再看快照卷的狀態(tài)可以發(fā)現(xiàn)存儲(chǔ)空間占用的量上升了
  3. 校驗(yàn)SNAP快照卷的效果,需要對(duì)邏輯卷進(jìn)行快照還原操作
  4. 快照卷會(huì)被自動(dòng)刪除掉
# vgdisplay
etc...
Alloc PE / Size 30 / 120.00 MiB Free PE / Size 10208 / 39.88 GiB
etc..
# lvcreate -L 120M -s -n SNAP /dev/storage/vo
etc...
# lvdisplay
etc...
# dd if=/dev/zero of=/lvm/files count=1 bs=100M
etc..
# lvdisplay
etc...
Allocated to snapshot 83.71%
etc...
# umount /lvm
# lvconvert --merge /dev/storage/SNAP
etc...
# mount -a
# ls /lvm/
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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