RAID(獨立冗余磁盤陣列)
通過把多個硬盤設(shè)備組合成一個容量更大、安全性更好的磁盤陣列,并把數(shù)據(jù)切割成多個區(qū)段后分別存放在各個不同的物理硬盤設(shè)備上,然后利用分散讀寫技術(shù)來提升磁盤陣列整體的性能,同時把多個重要數(shù)據(jù)的副本同步到不同的物理硬盤設(shè)備上
RAID 0
能夠有效的提升硬盤數(shù)據(jù)的吞吐速度,但是不具備數(shù)據(jù)備份和錯誤修復(fù)能力,數(shù)據(jù)會被分開寫入到不同的硬盤設(shè)備中
RAID 1
在寫入數(shù)據(jù)時,將數(shù)據(jù)同時寫入到多塊硬盤設(shè)備上,當(dāng)其中一塊硬盤出錯時,會自動替換
RAID 5
把硬盤設(shè)備的數(shù)據(jù)奇偶校驗信息保存到其他硬盤設(shè)備中,這樣任何一個設(shè)備損壞后不至于出現(xiàn)致命缺陷
RAID 10
RAID 0和RAID 1的組合體,繼承了RAID 0的高讀寫速度和RAID 1的數(shù)據(jù)安全性,在不考慮成本的情況下RAID 10的性能都超過了RAID 5
mdadm
管理Linux 系統(tǒng)中的軟件RAID硬盤陣列
| 參數(shù) | 作用 |
|---|---|
| -a | 檢測設(shè)備名稱 |
| -n | 指定設(shè)備數(shù)量 |
| -l | 指定RAID界別 |
| -C | 創(chuàng)建 |
| -v | 顯示過程 |
| -f | 模擬設(shè)備損壞 |
| -r | 移除設(shè)備 |
| -Q | 查看摘要信息 |
| -D | 查看詳細(xì)信息 |
| -S | 停止RAID磁盤陣列 |
| -x | 備份盤數(shù)量 |
使用4塊硬盤來部署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),這時可以發(fā)現(xiàn)狀態(tài)已經(jīng)改變,再模擬一個新的硬盤,重啟系統(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ā)生故障,但是存在一些極端情況,這時我們需要用到備份盤
這里的例子是RAID 5,一共使用4塊硬盤,其中一個是用來備份,用 -x 來表示數(shù)量,當(dāng)硬盤出現(xià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ū)的大小時,需要用到LVM技術(shù),該技術(shù)可以允許用戶對硬盤資源進(jìn)行動態(tài)調(diào)整
部署邏輯卷
| 功能/命令 | 物理卷管理 | 卷組管理 | 邏輯卷管理 |
|---|---|---|---|
| 掃描 | pvscan | vgscan | lvscan |
| 建立 | pvcreate | vgcreate | lvcreate |
| 顯示 | pvdisplay | vgdisplay | lvdisplay |
| 刪除 | pvremove | vgremove | lvremove |
| 擴展 | vgextend | lvextend | |
| 縮小 | vgreduce | lvreduce |
部署:
- 讓添加的設(shè)備支持LVM技術(shù)
- 將兩塊硬盤設(shè)備加入到storage卷組中
- 切割出一個150MB的邏輯卷設(shè)備
- 把生成好的邏輯卷格式化,掛載使用
- 寫入配置文件
# 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
擴容邏輯卷
擴容:
- 把邏輯卷vo擴展至290MB
- 檢查硬盤完整性,并重置硬盤容量
- 重新掛載硬盤設(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
縮小邏輯卷
縮小:
- 檢查文件系統(tǒng)的完整性
- 把邏輯卷的容量減小到120MB
- 重新掛載文件系統(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
邏輯卷快照
快照:
- 使用-s參數(shù)生成一個快照卷,使用-L參數(shù)指定切割的大小
- 在邏輯卷所掛載的目錄中創(chuàng)建一個100MB的垃圾文件,然后再看快照卷的狀態(tài)可以發(fā)現(xiàn)存儲空間占用的量上升了
- 校驗SNAP快照卷的效果,需要對邏輯卷進(jìn)行快照還原操作
- 快照卷會被自動刪除掉
# 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/
原文學(xué)習(xí)來自作者:LL大L
鏈接:http://www.itdecent.cn/p/95f6ef3ce3e9