1. 程式人生 > 其它 >(十三)Linux RAID磁碟管理

(十三)Linux RAID磁碟管理

一、Linux RAID 使用命令

命令:mdadm
格式:mdadm [模式] <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:136b4cf