Linux RAID 磁盤管理
- RAID工作模式介紹:https://www.cnblogs.com/xiangsikai/p/8441440.html
- 本章主要講解 Linux下 RAID5 與 RAID10 的部署,兩者在企業中比較常用。
Linux RAID 使用命令
命令:mdadm
格式:mdadm [模式] <RAID設備名稱> [選項] [成員設備名稱]
| 使用參數 | 作用 |
| -a |
檢測設備名稱
|
|
-n
|
指定設備數量
|
|
-l
|
指定 RAID 級別
|
|
-C
|
創建
|
|
-v
|
顯示過程
|
|
-f
|
模擬設備損壞
|
|
-r
|
移除設備
|
|
-Q
|
查看摘要信息
|
|
-D
|
查看詳細信息
|
|
-S
|
停止 RAID 磁盤陣列
|
|
-x
|
添加備份盤 |
| --zero-superblock | 移除RAID磁盤組員 |
Linux 創建 RAID 10
- 硬盤:4塊以上
1、創建 RAID 10
# 其中,-C 參數代表創建一個 RAID 陣列卡;-v 參數顯示創建的過程,同時在后面追加一個設備名稱/dev/md0,這樣/dev/md就是創建后的RAID磁盤陣列的名稱;-a yes 參數代表自動創建設備文件;-n 4 參數代表使用 4 硬盤來部署這個RAID 磁盤陣列;而-l 10 參數則代表 RAID 10 方案;最后再加上 4 塊硬盤備的名稱就搞定了。 mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc/dev/sdd /dev/sde
mdadm: layout defaults to n2 mdadm: layout defaults to n2 # 默認塊大小 mdadm: chunk size defaults to 512K mdadm: size set to 20954624K # mdadm 版本 mdadm: Defaulting to version 1.2 metadata # md0已啟動 mdadm: array /dev/md0 started.
2、格式化/dev/md0
# 格式化為ext4類型 mkfs.ext4 /dev/md0
3、創建掛載點、掛載/dev/md0、添加永久掛載
# 創建掛載點 mkdir /RAID # 掛載/dev/md0 mount /dev/md0 /RAID # 設置開機自動掛載 echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
4、查看使用情況
命令:df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/rhel-root 18G 3.0G 15G 17% / devtmpfs 905M 0 905M 0% /dev tmpfs 914M 84K 914M 1% /dev/shm tmpfs 914M 8.9M 905M 1% /run tmpfs 914M 0 914M 0% /sys/fs/cgroup /dev/sr0 3.5G 3.5G 0 100% /media/cdrom /dev/sda1 497M 119M 379M 24% /boot /dev/md0 40G 49M 38G 1% /RAID
命令:mdadm -D /dev/md0 # 名稱 /dev/md0: # 版本 Version : 1.2 # 創建時間 Creation Time : Tue May 5 07:43:26 2019 # RAID模式 Raid Level : raid10 # 磁盤陣列大小 Array Size : 41909248 (39.97 GiB 42.92 GB) # 使用用大小 Used Dev Size : 20954624 (19.98 GiB 21.46 GB) # RAID設備塊數 Raid Devices : 4 # 用到總設備數 Total Devices : 4 # 持久性類型 Persistence : Superblock is persistent # 更新時間 Update Time : Tue May 5 07:46:59 2017 # 狀態 State : clean # 正在使用設備數 Active Devices : 4 # 工作設備數 Working Devices : 4 # 故障設備數量 Failed Devices : 0 # 備用設備數量 Spare Devices : 0 # 布局 Layout : near=2 # 塊大小 Chunk Size : 512K # 本地創建設備主機名 Name : localhost.localdomain:0 (local to host localhost.localdomain) # 設備UUID UUID : cc9a87d4:1e89e175:5383e1e8:a78ec62c # 時間 Events : 17 # 模式狀態 Number Major Minor RaidDevice State # 使用的磁盤 0 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
Linux 創建 RAID 5
- 硬盤:3塊以上
- 注:注釋部分可參考 RAID 10
1、創建 RAID 5
mdadm -Cv /dev/md0 -n 3 -l 5 /dev/sdb /dev/sdc /dev/sdd
2、格式化/dev/md0
mkfs.ext4 /dev/md0
3、創建掛載點、掛載/dev/md0、添加永久掛載
mkdir /RAID
mount /dev/md0 /RAID echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
4、查看使用情況
命令:mdadm -D /dev/md0 mdadm: layout defaults to left-symmetric mdadm: layout defaults to left-symmetric mdadm: chunk size defaults to 512K mdadm: size set to 20954624K mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started. [root@linuxprobe ~]# mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri May 8 09:20:35 2017 Raid Level : raid5 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 3 Persistence : Superblock is persistent Update Time : Fri May 8 09:22:22 2017 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Name : linuxprobe.com:0 (local to host linuxprobe.com) UUID : 44b1a152:3f1809d3:1d234916:4ac70481 Events : 18 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
Linux 損壞磁盤陣列修復
- 這里采用RAID 10 為例
1、模擬/dev/sdb磁盤損壞
# -f 造成模擬磁盤損壞 mdadm /dev/md0 -f /dev/sdb
命令:mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri May 8 08:11:00 2017 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri May 8 08:27:18 2017 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : linuxprobe.com:0 (local to host linuxprobe.com) UUID : f2993bbd:99c1eb63:bd61d4d4:3f06c3b0 Events : 21 Number Major Minor RaidDevice State 0 0 0 0 removed 1 8 32 1 active sync /dev/sdc 2 8 48 2 active sync /dev/sdd 3 8 64 3 active sync /dev/sde # faulty 已損壞 0 8 16 – faulty /dev/sdb
2、取消掛載、並進行檢測修復
# 取消掛載 umount /RAID # 檢測修復損壞磁盤 mdadm /dev/md0 -a /dev/sdb
使用命令:mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Mon Jan 30 00:08:56 2017 Raid Level : raid10 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Mon Jan 30 00:19:53 2017 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 512K Name : localhost.localdomain:0 (local to host localhost.localdomain) UUID : d3491c05:cfc81ca0:32489f04:716a2cf0 Events : 56 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 # active 已修復使用 3 8 64 3 active sync /dev/sde
3、重新掛載
mount –a
Linux 磁盤陣列創建RAID添加備份盤
- 這里采用RAID 5 為例
- 備份盤:當RAID內其他磁盤損壞,備份盤會自動替補損壞的磁盤。
1、創建 RAID5 並額外添加備份盤
# 參數-x 1 則代表有一塊備份盤。當查看/dev/md0(即 RAID 5 磁盤陣列名稱)磁盤陣列的時候就能看到有一塊備份盤在等待中了。 mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
2、格式化/dev/md0
mkfs.ext4 /dev/md0
3、創建掛載點、掛載/dev/md0、添加永久掛載
mkdir /RAID
mount /dev/md0 /RAID echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
4、模擬/dev/sdb磁盤損壞
mdadm /dev/md0 -f /dev/sdb
5、查看替補損壞磁盤的備份磁盤
命令:mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Fri May 8 09:20:35 2017 Raid Level : raid5 Array Size : 41909248 (39.97 GiB 42.92 GB) Used Dev Size : 20954624 (19.98 GiB 21.46 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Fri May 8 09:23:51 2017 State : active, degraded, recovering Active Devices : 2 Working Devices : 3 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 512K Rebuild Status : 0% complete Name : linuxprobe.com:0 (local to host linuxprobe.com) UUID : 44b1a152:3f1809d3:1d234916:4ac70481 Events : 21 Number Major Minor RaidDevice State # 替補磁盤自己蹦上去了 3 8 64 0 spare rebuilding /dev/sde 1 8 32 1 active sync /dev/sdc 4 8 48 2 active sync /dev/sdd # 模擬損壞的磁盤 0 8 16 - faulty /dev/sdb
Linux RAID 磁盤陣列取消刪除
1、查看RAID陣列信息,確認關閉設備
# 命令 cat /proc/mdstat # 輸出 Personalities : [raid6] [raid5] [raid4] md0 : active raid5 sdb5[3](S) sdb1[0] sdb2[1] sdb3[4] 1043456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3]
2、取消掛載
umount /RAID
3、停止指定RAID陣列
# -S 停止陣列 mdadm -S /dev/md0
4、清理RAID成員磁盤
# --zero-superblock 清除磁盤成員后面跟成員磁盤名稱 mdadm --zero-superblock /dev/sdb mdadm --zero-superblock /dev/sdc mdadm --zero-superblock /dev/sdd
5、刪除永久掛載文件
# 進入文件 vim /etc/fstab # 清除添加的RAID行 xxx xxx ext4 defaults 0 0
6、刪除或注釋 /etc/mdadm.conf 對應RAID信息
# 進入文件 vim /etc/mdadm.conf #ARRAY /dev/md0 metadata=1.2 spares=1 name=kashu.localdomain:0 UUID=3895d28e:bdcaed28:136b4cf6:d2a858f5
注:如果做完上面所有的操作后,發現/dev/下還有md0這個設備文件存在,直接rm -f /dev/md0即可。
