CentOS8中配置RAID磁碟陣列

夢共裡醉發表於2022-05-31
RAID有不同的級別,每個級別都有不同的用途和應用。本文介紹RAID 1的使用。使用RAID 1,資料實時映象到另一個磁碟上。因此,這種RAID方法通常稱為磁碟映象。

RAID 1的主要優點是RAID中的一個磁碟出現故障,另一個磁碟將繼續工作。更換故障磁碟時,新磁碟將自動同步資料。RAID 1可以新增熱備盤,其中一個磁碟出現故障,自動替換。

系統資訊

8

RAID磁碟:

Device Size
/dev/sda 20GB
/dev/sdb 20GB
/dev/sdc 20GB
/dev/sdd 20GB
安裝mdadm
[root@localhost ~]# yum -y install mdadm

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列

建立RAID 1陣列

首先給/dev/sd[a-d]這四個磁碟分割槽,每個磁碟的第一個分割槽給2G的空間來做RAID 1陣列,這裡就不演示分割槽過程了。
Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
下面建立RAID 1:

[root@localhost ~]# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
上面的引數解釋:

  • --create / -C建立一個新的陣列
  • --level= / -l指定RAID的級別,目前支援raid0,1,4,5,6,10
  • --raid-devices= / -n指定磁碟的數量

需要要檢查RAID配置的話,請執行以下 :

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sdb1[1] sda1[0]
      2094080 blocks super 1.2 [2/2] [UU]
      
unused devices:

RAID配置不是永久性的,並且在計算機重新啟動後會丟失。我們必須建立一個配置檔案並在其中新增RAID相關資訊:

[root@localhost ~]# mdadm --detail --scan > /etc/mdadm.conf

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
將建立好的 /dev/md0裝置格式化為XFS檔案系統,並掛載:

[root@localhost ~]# mkdir /data
[root@localhost ~]# mkfs.xfs /dev/md0 
meta-data=/dev/md0               isize=512    agcount=4, agsize=130880 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=523520, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/md0 /data/

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
將掛載條目寫入 /etc/fstab使其開機自動掛載:

[root@localhost ~]# blkid|grep md0
/dev/md0: UUID="ccdef7f5-2b39-4fa1-96cd-e3c0dbbc32d9" TYPE="xfs"
[root@localhost ~]# echo 'UUID="ccdef7f5-2b39-4fa1-96cd-e3c0dbbc32d9" /data xfs defaults 0 0' >> /etc/fstab

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
下面測試一下RAID 1陣列,在/data資料夾中寫入檔案測試:

[root@localhost data]# dd if=/dev/zero of=/data/test.img bs=1M count=600
600+0 records in
600+0 records out
629145600 bytes (629 MB, 600 MiB) copied, 1.92519 s, 327 MB/s

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
重啟一下系統,檢查一下RAID陣列是否自動掛載:

# reboot

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列

啟用、停用RAID陣列

使用 mdadm -S/--stop來停止陣列。使用 mdadm -A/--assemble來啟動陣列:

[root@localhost ~]# umount /data 
[root@localhost ~]# mdadm --stop /dev/md0 
mdadm: stopped /dev/md0
[root@localhost ~]# mdadm --assemble /dev/md0
mdadm: /dev/md0 has been started with 2 drives.

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列

為陣列新增磁碟

現在,讓我們在現有陣列中再新增一個磁碟 /dev/sdc,使用下面 新增到陣列裡:

[root@localhost ~]# mdadm --manage /dev/md0 --add /dev/sdc1 
mdadm: added /dev/sdc1
[root@localhost ~]# mdadm -D /dev/md0 
/dev/md0:
           Version : 1.2
     Creation Time : Thu Mar 11 21:51:38 2021
        Raid Level : raid1
        Array Size : 2094080 (2045.00 MiB 2144.34 MB)
     Used Dev Size : 2094080 (2045.00 MiB 2144.34 MB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent
       Update Time : Fri Mar 12 11:28:37 2021
             State : clean 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1
Consistency Policy : resync
              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 428966f1:c78ce423:e3559739:a8c6048e
            Events : 20
    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1
       2       8       33        -      spare   /dev/sdc1

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
可以看到新新增的硬碟狀態為備用盤。如果活動磁碟發生故障,該磁碟將自動變為活動磁碟。

下面將RAID 1陣列裡面的硬碟擴充到三個,並且三個硬碟都是活動狀態,意思就是將 /dev/sdc1從熱備狀態轉換為啟用狀態:

[root@localhost ~]# mdadm --grow /dev/md0 --raid-devices=3
raid_disks for /dev/md0 set to 3
[root@localhost ~]# mdadm -D /dev/md0

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
可以看到上面兩張圖片中活動裝置由2個變成3個。熱備狀態轉變為活動同步狀態。現在這個raid1陣列就是三個磁碟了。

從陣列中移除磁碟

現在,磁碟陣列中有三個活動的磁碟執行在RAID 1。讓我們刪除磁碟 /dev/sdc1並用新的 /dev/sdd1磁碟替換它。下面先模擬 /dev/sdc1故障狀態:

[root@localhost ~]# mdadm --manage /dev/md0 --fail /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0
[root@localhost ~]# mdadm -D /dev/md0

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
可看到 /dev/sdc1已變成故障狀態了。下面從md0中將/dev/sdc1移除:

[root@localhost ~]# mdadm --manage /dev/md0 --remove /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0
[root@localhost ~]# cat /proc/mdstat 
[root@localhost ~]# mdadm -D /dev/md0

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
下面將 /dev/sdd1磁碟新增到該陣列中,新增完成之後一定要更新一下 /etc/mdadm.conf配置檔案。

[root@localhost ~]# mdadm --manage /dev/md0 --add /dev/sdd1 
mdadm: added /dev/sdd1
[root@localhost ~]# cat /proc/mdstat 
[root@localhost ~]# mdadm -D /dev/md0 
[root@localhost ~]# mdadm --detail --scan > /etc/mdadm.conf

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
mdadm 引數解釋:

  • --manage管理陣列
  • --detail / -D列印md裝置的詳細資訊
  • --scan / -s這個引數結合-D引數使用,獲取md裝置列表。
  • --stop / -S停止一個陣列
  • --assemble / -A啟用已存在的陣列
  • --add / -a向陣列裡新增磁碟
  • --remove / -r在陣列裡刪除磁碟
  • --fail / -f模擬某個磁碟故障
  • --grow / -G更改陣列的大小,活動磁碟數量
刪除RAID配置

下面命令將刪除RAID 1的配置:

[root@localhost ~]# umount /data 
[root@localhost ~]# mdadm -S /dev/md0 
mdadm: stopped /dev/md0
[root@localhost ~]# rm -rf /etc/mdadm.conf

Centos8中配置RAID1磁碟陣列Centos8中配置RAID1磁碟陣列
然後將/etc/fstab中的掛載條目刪除掉。

下面將這四塊硬碟刪除raid signature簽名資訊,使用 --zero-superblock選項將裝置中包含有效的md超級塊時,則使用覆蓋塊。

[root@localhost ~]# mdadm --zero-superblock /dev/sd[a-d]1
總結

本實驗使用RAID 1來做實驗。大家可以嘗試配置RAID5和RAID10。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524109/viewspace-2898059/,如需轉載,請註明出處,否則將追究法律責任。

相關文章