mdadm RAID復旧備忘録2

数年ぶりにRAIDのHDD交換を行ったので備忘録。

パーティショニング

# `/dev/sdf` は交換用の新しいHDD
$ parted /dev/sdf
GNU Parted 3.6
/dev/sdf を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) unit s
(parted) mklabel gpt
(parted) mkpart primary 2048s -1s
警告: 2048s から 31251759103s (2048 から 31251759103 セクタ)までのパーティションを指定されました。
可能な中で最も近いものは 2048s から 31251759070s (2048 から 31251759070 セクタ)になります。
それでもかまいませんか?
はい(Y)/Yes/いいえ(N)/No? Y
(parted) set 1 raid on
(parted) p
モデル: ATA TOSHIBA MG08ACA1 (scsi)
ディスク /dev/sdf: 31251759104s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始   終了          サイズ        ファイルシステム  名前     フラグ
 1    2048s  31251759070s  31251757023s                    primary  raid

(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

この時、サイズが既存のRAIDを組んでいるHDD以上であることを確認する

$ fdisk -l /dev/sda
Disk /dev/sda: 14.55 TiB, 16000900661248 bytes, 31251759104 sectors
Disk model: TOSHIBA MN08ACA1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: C4368908-7F2B-44BC-83C1-813E42FF589B

Device     Start         End     Sectors  Size Type
/dev/sda1   2048 31251759070 31251757023 14.6T Linux RAID

$ fdisk -l /dev/sdf
Disk /dev/sdf: 14.55 TiB, 16000900661248 bytes, 31251759104 sectors
Disk model: TOSHIBA MG08ACA1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0FB4C21B-A97C-48F8-AC9D-1D9CFF118E9C

Device     Start         End     Sectors  Size Type
/dev/sdf1   2048 31251759070 31251757023 14.6T Linux RAID

RAIDへの追加

現在の状態の確認。今回は不良セクタがでていたための予防的交換のため、failフラグはたっていない

$ mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jul 14 00:14:21 2021
        Raid Level : raid5
        Array Size : 62502983680 (58.21 TiB 64.00 TB)
     Used Dev Size : 15625745920 (14.55 TiB 16.00 TB)
      Raid Devices : 5
     Total Devices : 5
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Oct 19 19:31:02 2024
             State : clean
    Active Devices : 5
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : tndl.net:1  (local to host tndl.net)
              UUID : 3e190ce0:282ec245:120ee84a:8e5f5f6f
            Events : 358646

    Number   Major   Minor   RaidDevice State
       6       8       33        0      active sync   /dev/sdc1
       1       8        1        1      active sync   /dev/sda1
       2       8       65        2      active sync   /dev/sde1
       3       8       49        3      active sync   /dev/sdd1
       5       8       17        4      active sync   /dev/sdb1

HDDの追加を行うと、spare として追加される。

$ mdadm /dev/md0 --add /dev/sdf1
mdadm: added /dev/sdf1

$ mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jul 14 00:14:21 2021
        Raid Level : raid5
        Array Size : 62502983680 (58.21 TiB 64.00 TB)
     Used Dev Size : 15625745920 (14.55 TiB 16.00 TB)
      Raid Devices : 5
     Total Devices : 6
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Oct 19 19:32:17 2024
             State : clean
    Active Devices : 5
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : tndl.net:1  (local to host tndl.net)
              UUID : 3e190ce0:282ec245:120ee84a:8e5f5f6f
            Events : 358646

    Number   Major   Minor   RaidDevice State
       6       8       33        0      active sync   /dev/sdc1
       1       8        1        1      active sync   /dev/sda1
       2       8       65        2      active sync   /dev/sde1
       3       8       49        3      active sync   /dev/sdd1
       5       8       17        4      active sync   /dev/sdb1

       7       8       81        -      spare   /dev/sdf1

交換対象のHDDのRAIDからの切り離し

対象のHDDの状態。 Current_Pending_Sector, Current_Pending_Sector が存在する。

Seek_Error_RateMN08ACA16T というHDDの誤検知というか、smartctlとして通常期待するのとは違う動きをするようになっているためで、問題ないもの。

$ smartctl -A /dev/sdc
smartctl 7.4 2023-08-01 r5530 [x86_64-linux-6.11.3-200.fc40.x86_64] (local build)
Copyright (C) 2002-23, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000b   100   100   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       8294
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       37
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000b   038   001   050    Pre-fail  Always   FAILING_NOW 0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   048   048   000    Old_age   Always       -       20847
 10 Spin_Retry_Count        0x0033   100   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       37
 23 Helium_Condition_Lower  0x0023   100   100   075    Pre-fail  Always       -       0
 24 Helium_Condition_Upper  0x0023   100   100   075    Pre-fail  Always       -       0
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       14
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       32
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       38
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       38 (Min/Max 20/45)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
220 Disk_Shift              0x0002   100   001   000    Old_age   Always       -       101187593
222 Loaded_Hours            0x0032   048   048   000    Old_age   Always       -       20843
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       591
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

上述している通り、予防的交換のため mdadm --fail で該当のHDDをRAIDから切り離すと、自動的にスペアが昇格してリビルドが始まる。

$ mdadm --fail /dev/md0 /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md0

$ mdadm -D /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jul 14 00:14:21 2021
        Raid Level : raid5
        Array Size : 62502983680 (58.21 TiB 64.00 TB)
     Used Dev Size : 15625745920 (14.55 TiB 16.00 TB)
      Raid Devices : 5
     Total Devices : 6
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Sat Oct 19 19:41:04 2024
             State : clean, degraded, recovering
    Active Devices : 4
   Working Devices : 5
    Failed Devices : 1
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

    Rebuild Status : 0% complete

              Name : tndl.net:1  (local to host tndl.net)
              UUID : 3e190ce0:282ec245:120ee84a:8e5f5f6f
            Events : 358656

    Number   Major   Minor   RaidDevice State
       7       8       81        0      spare rebuilding   /dev/sdf1
       1       8        1        1      active sync   /dev/sda1
       2       8       65        2      active sync   /dev/sde1
       3       8       49        3      active sync   /dev/sdd1
       5       8       17        4      active sync   /dev/sdb1

       6       8       33        -      faulty   /dev/sdc1

$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdf1[7] sde1[2] sdd1[3] sdc1[6](F) sdb1[5] sda1[1]
      62502983680 blocks super 1.2 level 5, 512k chunk, algorithm 2 [5/4] [_UUUU]
      [>....................]  recovery =  0.0% (7999996/15625745920) finish=1396.5min speed=186383K/sec
      bitmap: 1/117 pages [4KB], 65536KB chunk

unused devices: <none>

HDDの取り外し


$ mdadm --manage /dev/md0 --remove /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0
$ mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Wed Jul 14 00:14:21 2021
        Raid Level : raid5
        Array Size : 62502983680 (58.21 TiB 64.00 TB)
     Used Dev Size : 15625745920 (14.55 TiB 16.00 TB)
      Raid Devices : 5
     Total Devices : 5
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Oct 21 19:47:14 2024
             State : clean
    Active Devices : 5
   Working Devices : 5
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : tndl.net:1  (local to host tndl.net)
              UUID : 3e190ce0:282ec245:120ee84a:8e5f5f6f
            Events : 408684

    Number   Major   Minor   RaidDevice State
       7       8       81        0      active sync   /dev/sdf1
       1       8        1        1      active sync   /dev/sda1
       2       8       65        2      active sync   /dev/sde1
       3       8       49        3      active sync   /dev/sdd1
       5       8       17        4      active sync   /dev/sdb1

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください