VMware Linux RAID5 配置
VM環境:VMware Workstation 12
OS環境:CentOS 7
一、在VM中,軟RAID 設備是/dev/md*, md (Multiple Devices)
二、在RAID5中,至少要有3塊硬碟,因為有差錯檢驗.
三、在軟RAID5中,實際的硬碟大小應該為實際硬碟數減一,即(N-1),減去的那塊空間奇偶校驗.這個空間是分散到每個磁盤上的.
四、在軟RAID5中,實際的每塊硬碟的大小,由最小的那塊硬碟來決定.因為資料會拆開平均分配給每塊硬碟.
五、所有實際RAID硬碟大小應該是(硬碟數or硬碟的磁區數-1)*最小的那個硬碟大小or磁區大小
六、因為adadm是個工具,并沒服務行程去讀取/etc/mdadm.conf檔案,所以,這個/etc/mdadm.conf檔案是系統kernel默認讀取的RAID模塊為kernel支持模塊,/etc/mdadm.conf作為默認的組態檔,系統啟動時加載RAID模塊讀默認組態檔/etc/mdadm.conf,與/etc/hosts,/etc/resolv.conf之類一 樣,
實驗
首先在VM上的Linux安裝4塊硬碟,/dev/sdb /dev/sdc /dev/sdd /dev/sde 每塊硬碟20G
#fdisk -l

創建RAID5:
1.首選把這4塊硬碟合并成raid.
#mdadm -Cv /dev/md0 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# C 為創建RAID
# v 為顯示創建資訊
# /dev/md0 為軟raid設備
# --raid-devices 為幾塊硬碟
或者
#mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde
使用cat /proc/mdstat查看創建進度,如果出現[UUU]則表示已經創建成功
#cat /proc/mdstat
使用mdadm -D /dev/md5 可以查看RAID的作業狀態
擴展
創建RAID10:
#mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1
#mdadm -Cv /dev/md1 -l1 -n3 /dev/sd[de]1
#mdadm -Cv /dev/md0 -l5 -n3 /dev/md0 /dev/md1
#cat /proc/mdstat
格式化并掛載

2. 這時你可以用mdadm -D /dev/md0 參看RAID創建情況
#mdadm -D /dev/md0

下面是CentOS 5效果圖

這時,還在編譯,都它編譯好了.就可以用了
- 就創建了一個/dev/md0的raid了.但它的大小是(硬碟數or硬碟的磁區數-1)*最小的那個硬碟大小or磁區大小
#fdisk -l

4.如果要使用,還必須指定/dev/md0的檔案格式
# mkfs.ext4 /dev/md0

5.使用mdadm -D /dev/md5 可以查看RAID的作業狀態
#mdadm -D /dev/md0
都是active,使用狀態
6.如果想控制頁面的大小就需要加 -c32 (32標識每個頁面32K,默認是64K),頁面大小直接影響到IO
mdadm -Cv /dev/md0 -c32 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
通過mdadm -D /dev/md0就可以看到
#mdadm -Cv /dev/md0 -c32 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

7. mdadm -Cv /dev/md0 -l5 --raid-devices=4 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
這個是建立一個熱備磁盤,如果某個磁盤壞了.可以自動頂上去.
#mdadm -Cv /dev/md0 -l5 --raid-devices=4 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

模擬一個磁盤壞了,查看raid資訊
[root@localhost MegaRAID]# mdadm /dev/md0 -f /dev/sdc
mdadm: set /dev/sdc faulty in /dev/md0
[root@localhost MegaRAID]# mdadm -D /dev/md0

8、查看raid資訊
#cat /proc/mdstat

格式化
mkfs.ext4 -j -b 4096 /dev/md0
掛載 (硬碟掛載到data目錄成功)
mkdir /data
mount /dev/md1 /data
echo "/dev/md1 /data ext4 defaults 0 0" >> /etc/fstab

寫資料
mkdir /data/abc && touch /data/abc/123
mdadm -D /dev/md0 查看是否有壞的硬碟


新增磁盤設備,添加到md1
#mdadm /dev/md1 -a /dev/sdb
mdadm: Cannot open /dev/sdb: Device or resource busy

軟Raid創建的時候出現mdadm: Cannot open /dev/sde1: Device or resource busy
用一下命令可以解決:mdadm --stop /dev/md1
[root@localhost ~]# mdadm --stop /dev/md0
mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?
意思就是停止Raid,停止先前創建的,
停止Raid后不提示就用上面的命令 md_d1是生成Raid重啟后有的



四個硬碟,一個模擬壞盤,三個是磁盤正在運行,一個是剛剛掛載的data

報錯:系統正在使用中,
解決辦法 :添加完硬碟后,需要重啟才能識別這些硬碟設備,
洗掉已損壞的硬碟
#mdadm /dev/md0 -r /dev/sdc #洗掉損壞的sdc硬碟
mdadm: hot remove failed for /dev/sdc: Device or resource busy
#/dev/sdc正在使用中
#mdadm -D /dev/md0 #查看損壞的硬碟,是否被洗掉,

停止md0磁盤
#mdadm --stop /dev/md0
mdadm: Cannot get exclusive access to /dev/md1:Perhaps a running process, mounted filesystem or active volume group?


查看狀態,一切正常:
# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md1 : active raid5 sdf[4] sdg[3] sdi[2] sdj[1] sdh[0]
3907045376 blocks super 1.2 level 5, 256k chunk, algorithm 2 [5/5] [UUUUU]
unused devices: <none>

查看掛載點,也未發現有mount;也沒有使用LVM管理該設備,
查看是否有用戶正在使用該設備:
#fuser -vm /dev/md0

顯示root用戶正在操作該設備,kill掉該行程,再次stop該設備成功,
擴展
LINUX下徹底關閉某個RAID磁盤陣列
1、查看RAID磁盤陣列資訊,確認一下要關閉哪個,如:關閉md0這個陣列
[root@godben ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
2、卸載md0這個陣列的掛載點:
[root@godben ~]# umount /mnt/raid5
3、停止md0這個陣列,并釋放與該陣列相關的所有資源:
[root@godben ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
注意:如果在停止md0的陣列前,卻沒有把它卸載(umount)掉,會出現如下提示:
[root@godben ~]# mdadm -S /dev/md0
mdadm: Cannot get exclusive access to /dev/md0:Perhaps a running process, mounted filesystem or active volume group?
4、清除成員磁盤當中陣列的超級塊資訊,這一步很重要!
[root@godben ~]# mdadm --zero-superblock /dev/sdb[1-3,5]
5、洗掉或注釋/etc/fstab上的掛載資訊
[root@godben ~]# vim /etc/fstab
#UUID=796a27da-d899-4e64-a3bd-b468fb0c4f37 /mnt/raid5 ext4 defaults 0 0
6、洗掉或注釋/etc/mdadm.conf對應的RAID資訊:
[root@godben ~]# vim /etc/mdadm.conf
#ARRAY /dev/md0 metadata=1.2 spares=1 name=kashu.localdomain:0 UUID=3895d28e:bdcaed28:136b4cf6:d2a858f5
7、如果做完上面所有的操作后,發現/dev/下還有md0這個設備檔案存在,直接rm -f /dev/md0即可
#rm -f /dev/md0
注:
用/dev/md0 的軟raid設備生成的磁盤整列.無法進行磁區.
mdadm -Cv /dev/md0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
這里,無法對/dev/md0磁區后的設備進行mkfs.ext* 操作,無法創建磁區的格式.所以掛載md0磁區后的設備
例如 mkfs.ext3 /etc/md0p1 // error
所以需要
創建md設備時,用/dev/md_d0替代/dev/md0,才能對MD設備進行磁區,
mdadm -Cv --auto=mdp /dev/md_d0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg
基本操作
mdadm -S /dev/md0 #關閉raid
mdadm -A /dev/md0 #啟動raid
mdadm -E /dev/sdb #如果你不知道哪個磁區屬于哪個磁盤整列,可以用這個命令.
#UUID就是這個磁盤整列的唯一識別符號.


mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8 # 獲得UUID后,也可以這樣激活陣列
mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb # 洗掉某個硬碟或磁區.如果有一份熱備用盤.如果洗掉.熱備份盤會自動啟動.
mdadm /dev/md0 --add /dev/sdb # 新加一塊硬碟.
重啟后,使RAID從內核啟動.
mdadm --detail --scan >> /etc/mdadm.conf # 放入組態檔.再次重啟raid還是存在

參考鏈接 :
CENTOS 7安裝MEGACLI
https://www.freesion.com/article/88151145481/
https://blog.csdn.net/weixin_50355475/article/details/110530929
https://blog.csdn.net/m582445672/article/details/7600798?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control
虛擬機上創建RAID01 :https://blog.csdn.net/qq_41524362/article/details/88902264?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
mdadm洗掉RAID失敗的解決方法 :https://www.it610.com/article/3160808.htm
Linux下徹底關閉某個RAID磁盤陣列 : https://blog.51cto.com/godben/1708634
https://blog.csdn.net/u011442726/article/details/101475738
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/279521.html
標籤:其他
下一篇:Web基礎
