数年ぶりに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_Rate
は MN08ACA16T
という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