Raid

mdadm raid5 在創建後立即開始恢復

  • February 26, 2020

只是為了獲得一些使用 mdadm 的經驗,我已經將一些 HDD 放在一起並嘗試了一下。我有 2 250 GB 和一個 500 GB 硬碟。我知道那不是 RAID5 的最佳選擇,我總共只能獲得 500 GB 的容量。浪費了 250 GB 的 500 GB HDD。但正如我所說,我只是玩了一下。

首先讓我們看看磁碟大小:

lsblk /dev/sdb /dev/sdc /dev/sdd
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdb    8:16   0 232.9G  0 disk
sdc    8:32   0 465.8G  0 disk
sdd    8:48   0 232.9G  0 disk

創建 RAID5:

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd -c 4 --auto md

顯示創建的 Raid5 的資訊:

cat /proc/mdstat                                     Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd[3] sdc[1] sdb[0]
     488132976 blocks super 1.2 level 5, 4k chunk, algorithm 2 [3/2] [UU_]
     [>....................]  recovery =  0.5% (1354384/244066488) finish=59.7min speed=67719K/sec
     bitmap: 0/2 pages [0KB], 65536KB chunk

unused devices: <none>

顯示更多細節:

sudo mdadm --detail /dev/md0
/dev/md0:
          Version : 1.2
    Creation Time : Wed Feb 26 14:52:54 2020
       Raid Level : raid5
       Array Size : 488132976 (465.52 GiB 499.85 GB)
    Used Dev Size : 244066488 (232.76 GiB 249.92 GB)
     Raid Devices : 3
    Total Devices : 3
      Persistence : Superblock is persistent

    Intent Bitmap : Internal

      Update Time : Wed Feb 26 14:57:43 2020
            State : clean, degraded, recovering
   Active Devices : 2
  Working Devices : 3
   Failed Devices : 0
    Spare Devices : 1

           Layout : left-symmetric
       Chunk Size : 4K

Consistency Policy : bitmap

   Rebuild Status : 7% complete

             Name : raspberrypi:0  (local to host raspberrypi)
             UUID : 3291b54e:fad8f43b:cc398574:a1845ff9
           Events : 57

   Number   Major   Minor   RaidDevice State
      0       8       16        0      active sync   /dev/sdb
      1       8       32        1      active sync   /dev/sdc
      3       8       48        2      spare rebuilding   /dev/sdd

Dmesg 顯示

[ 2462.122882] md/raid:md0: device sdc operational as raid disk 1
[ 2462.122892] md/raid:md0: device sdb operational as raid disk 0
[ 2462.126278] md/raid:md0: raid level 5 active with 2 out of 3 devices, algorithm 2
[ 2462.142439] md0: detected capacity change from 0 to 499848167424
[ 2462.222689] md: recovery of RAID array md0

那麼我在創建 RAID5 時做錯了什麼?我也對mdadm --detail /dev/md0磁碟編號 0、1 和 3 而不是 0、1、2的輸出感到困惑

對於新創建的 RAID5 陣列,這是正確的行為:在創建之後,它需要為每個條帶計算正確的奇偶校驗。

您可以附加--assume-clean到您的mdadm命令以跳過初始同步,但我強烈建議不要這樣做:如果您的奇偶校驗不匹配,任何check將報告數千個錯誤,您將無法從“假”錯誤中辨識出真正的錯誤。要解決這種非常模棱兩可的情況,您需要執行一個repair命令 - 它將像初始數組創建一樣重新計算奇偶校驗。

引用自:https://serverfault.com/questions/1004678