【Linux】ソフトRAIDアレイを作成する

環境整備

20G 仮想ハードディスクを追加し、10 個の 2G パーティションに分割します

1.raid0を作成する

システムに mdadm コマンドがない場合は、関連ツールをインストールしてください。

[root@node01 ~]# which mdadm
/usr/sbin/mdadm
[root@node01 ~]# rpm -qf /usr/sbin/mdadm 
mdadm-4.1-4.el8.x86_64
[root@node01 ~]# dnf install -y mdadm

RAID0 を作成します。

[root@node01 ~]# mdadm --create /dev/md0 --raid-devices=2 /dev/sdb1 /dev/sdb2 --level=0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

または

[root@node01 ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
-C:创建软raid
-l:指定raid级别
-n:指定raid中设备个数

RAID 情報の表示:
/proc/mdstat ファイルには、すべての RAID 情報が記録されます。

[root@node01 ~]# cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 sdb2[1] sdb1[0]
#md0为raid0,两个成员sdb2(第二个成员),sdb1(第一个成员)
      41905152 blocks super 1.2 512k chunks
#一共有多少个块(每块1K)	数据段的大小是512K
#chunk决定了阵列中每个成员盘写入的数据量,大于这个值才会到下一个盘读写
unused devices: <none>

指定した RAID 情報を表示します。

[root@node01 ~]# mdadm -D/--detail /dev/md0
[root@node01 ~]# mdadm  --detail /dev/md0
/dev/md0:	#名称
         Version : 1.2	#工具版本
   Creation Time : Wed Dec 11 03:05:31 2019	#建立时间
   Raid Level : raid0	#类型
   Array Size : 41905152 (39.96 GiB 42.91 GB)#容量
   Raid Devices : 2	#组成RAID的硬盘数量
   Total Devices : 2#成员总数,包含备用磁盘
   Persistence : Superblock is persistent

   Update Time : Wed Dec 11 03:05:31 2019
   State : clean 	#raid的状态
   Active Devices : 2	#活跃的设备数量
   Working Devices : 2	#工作的设备数量
   Failed Devices : 0	#故障的数量
   Spare Devices : 0	#备用设备数量

   Chunk Size : 512K	

	 Consistency Policy : none

   Name : localhost.localdomain:0  (local to host localhost.localdomain)
   UUID : 06b2d3b2:3ace3ddf:b5b65dd7:eb40b040
   Events : 0

Number Major Minor RaidDevice State
 0     8     17    0      	active sync   /dev/sdb1
 1     8     33    1      	active sync   /dev/sdb2

マウントをフォーマットするには、以下を使用します。

[root@node01 ~]# mkfs.ext4 /dev/md0
[root@node01 ~]# mkdir /md0
[root@node01 ~]# mount /dev/md0 /md0/

スペースの使用状況を表示する:

[root@node01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md0           3.9G  16M  3.7G    1% /md0
#可用空间100%

テスト:

[root@node01 ~]# iostat -m -d /dev/sdb1 /dev/sdb2 2
[root@node01 ~]# dd if=/dev/zero of=/md0/file bs=1Mcount=1024

2. RAID1の作成

RAID1 を作成します。

[root@node01 ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb3 /dev/sdb4 

ステータス情報を表示します。

[root@node01 ~]# watch -n1 "cat /proc/mdstat" 
#watch命令监控该文件变化情况,1秒钟显示一次
#或者直接查看
[root@node01 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 sdb4[1] sdb3[0]
      20953024 blocks super 1.2 [2/2] [UU]
      #两个UU说明状态ok,一个盘故障则显示_U
      [==============>......]  resync = 73.5% (15404032/20953024) finish=0.4min speed=205582K/sec
unused devices: <none>
      #以上信息说明两块盘在进行同步,100%说明同步完成

Raid1 の詳細を表示

[root@node01 ~]# mdadm -D /dev/md1   

マウントをフォーマットするには、以下を使用します。

[root@node01 ~]# mkfs.ext4 /dev/md1
[root@node01 ~]# mount /dev/md1 /md1

スペースの使用状況を表示する:

[root@node01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md1            2.0G  6.0M  1.9G    1% /md1
#可用空间50%

ホットスワップを検証するテスト:

  1. ディスク障害をシミュレートします (ディスクを障害としてマークします)
[root@node01 ~]# mdadm /dev/md1 -f /dev/sdb3
mdadm: set /dev/sdb1 faulty in /dev/md1
#-f or --fail  表示失效
  1. RAID1のステータスを確認する
[root@node01 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 sdb4[1] sdb3[0](F)	F表示失效失败
      20953024 blocks super 1.2 [2/1] [_U]
      #_表示有一块盘失效
unused devices: <none>

[root@node01 ~]# mdadm -D /dev/md1
...
Number Major Minor RaidDevice State
-      0     0     0      		removed
1      8     33    1          active sync  /dev/sdb4
0      8     17    -          faulty       /dev/sdb3
 #失效盘等待移除
  1. 故障または故障したハードドライブを取り外す (ホットスワップ)
[root@node01 ~]# mdadm /dev/md1 -r /dev/sdb3
mdadm: hot removed /dev/sdb3 from /dev/md1

#-r or --remove 表示移除

[root@node01 ~]# mdadm -D /dev/md1
...
  Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       33        1      active sync   /dev/sdb4
  1. 新しいディスクをRAID1に追加(ホットプラグ)
[root@node01 ~]# mdadm  /dev/md1 -a /dev/sdb5
mdadm: added /dev/sdd5

#-a or --add 表示增加

[root@node01 ~]# cat /proc/mdstat 

3. RAID5の作成

RAID5 を作成します。

[root@node01 ~]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb{6,7,8,9}
#-x, --spare-devices=  表示指定热备盘

[root@node01 ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
md5 : active raid5 sdb8[4] sdb9[3](S) sdb7[1] sdb6[0]	#S备用盘
      4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>

注: ホット スペア ディスクとは、ディスクの 1 つに障害が発生した場合に、手動介入なしでホット スペア ディスクがただちにインストールされることを意味します。

[root@node01 ~]# mdadm -D /dev/md5 		查看详细信息
。。。
    Number   Major   Minor   RaidDevice State
       0       8       22        0      active sync   /dev/sdb6
       1       8       23        1      active sync   /dev/sdb7
       4       8       24        2      active sync   /dev/sdb8

       3       8       25        -      spare   /dev/sdb9

マウントをフォーマットするには、以下を使用します。

[root@node01 ~]# mkfs.ext4 /dev/md5
[root@node01 ~]# mkdir /md5
[root@node01 ~]# mount /dev/md5 /md5/

スペースの使用状況を表示する:

[root@node01 ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md5             3.9G   16M  3.7G    1% /md5
#可用空间 (磁盘数量-1)x 单一磁盘容量

ホット スペア ディスクの機能をテストします。

  1. アクティブなディスクを無効としてマークする
[root@node01 /]# mdadm /dev/md5 -f /dev/sdb6
mdadm: set /dev/sdb6 faulty in /dev/md5

#立即查看状态:
[root@node01 /]# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
md5 : active raid5 sdb8[4] sdb9[3] sdb7[1] sdb6[0](F)
说明:
sdb6(F)失效后,原来的sdb9(S)热备盘立马顶上去同步数据
      4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
      [==>..................]  recovery = 13.0% ..          
unused devices: <none>

[root@node01 /]# mdadm -D /dev/md5
...
      Number   Major   Minor   RaidDevice State
       3       8       25        0      active sync   /dev/sdb9
       1       8       23        1      active sync   /dev/sdb7
       4       8       24        2      active sync   /dev/sdb8

       0       8       22        -      faulty   /dev/sdb6
  1. 故障したディスクを削除する
[root@node01 /]# mdadm  /dev/md5 -r /dev/sdb6 
mdadm: hot removed /dev/sdb6 from /dev/md5
  1. 将来のことを考慮して、RAID5 にホット スペア ディスクを再度追加します。
[root@node01 /]# mdadm /dev/md5 -a /dev/sdb6
mdadm: added /dev/sdb6

4. RAID情報の保存

レイド情報を保存する必要があるのはなぜですか?
情報が保存されていない場合、CentOS6ではシステム再起動後にRAIDが自動認識されませんが、7、8ではこのような事態は発生しません。

  1. 設定ファイルを作成する
[root@node01 ~]# mdadm -D --scan >> /etc/mdadm.conf 
[root@node01 ~]# cat /etc/mdadm.conf 
ARRAY /dev/md/1 metadata=1.2 name=localhost.localdomain:1 UUID=170d690d:4f7ccd02:646c3ce0:8f6012be
ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=a845702e:9251cae9:25d1bc8b:9a337df2
ARRAY /dev/md/5 metadata=1.2 spares=1 name=localhost.localdomain:5 UUID=d49e6cca:5312271b:7e8e83d5:adac4ed5
レイドの停止と開始

RAID5 を例に挙げます。RAID
を停止します。

  1. RAID をアンインストールする
[root@node01 ~]# umount /md5 
  1. コマンドを使用してRAIDを停止します
[root@node01 ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5

襲撃を開始します:

  1. 設定ファイル (/etc/mdadm.conf) が存在し、次のように起動されます。
[root@node01 ~]# mdadm -A /dev/md5
mdadm: /dev/md5 has been started with 3 drives and 1 spare.

#-A:Assemble a pre-existing array  表示装载一个已存在的raid
  1. 設定ファイル(/etc/mdadm.conf)が存在しないため、以下のように起動してください。
[root@node01 ~]# mdadm -A /dev/md5 /dev/sdb[6789]
mdadm: /dev/md5 has been started with 3 drives and 1 spare.
  1. デバイス名がわからない場合は、各デバイスの RAID 情報を確認し、uuid を使用して RAID デバイスを再グループ化できます。
[root@node01 ~]# mdadm -E /dev/sdb6 | grep UUID
     Array UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5
    Device UUID : b933b8d5:04a6e003:90e9b230:d13cacf5

#说明:同一个raid里每个磁盘查看的UUID都是这个值
...
[root@node01 ~]# mdadm -E /dev/sdb7 | grep UUID
     Array UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5
    Device UUID : b8ca85bd:7809faa4:48882a21:98ef9349

#通过以上方法找到后进行重新组合,如下:
[root@node01 ~]# mdadm -A --uuid=d49e6cca:5312271b:7e8e83d5:adac4ed5 /dev/md5
mdadm: /dev/md5 has been started with 3 drives and 1 spare.
RAID削除
  1. デバイスのアンインストール
[root@node01 ~]# umount /md5/
  1. すべてのディスクを取り外します
[root@node01 ~]# mdadm /dev/md5 -f /dev/sdb[6789]
mdadm: set /dev/sdb6 faulty in /dev/md5
mdadm: set /dev/sdb7 faulty in /dev/md5
mdadm: set /dev/sdb8 faulty in /dev/md5
mdadm: set /dev/sdb9 faulty in /dev/md5
[root@node01 ~]# mdadm /dev/md5 -r /dev/sdb[6789]
mdadm: hot removed /dev/sdb6 from /dev/md5
mdadm: hot removed /dev/sdb7 from /dev/md5
mdadm: hot removed /dev/sdb8 from /dev/md5
mdadm: hot removed /dev/sdb9 from /dev/md5
  1. 襲撃をやめる
[root@node01 ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5
  1. スーパーブロックを消去し、関連情報をクリアします
[root@node01 ~]# mdadm --zero-superblock /dev/sdb[6789]

おすすめ

転載: blog.csdn.net/qq_45277554/article/details/131103741