作業メモ
久しぶりのDISK交換なので、作業メモを残しておきます。
自宅鯖で、一部RAID1構成を使ってる環境です。
今回はデータ用に使ってるDISKの内1本が逝きました。
構成
- CentOS6
- パーティションでRAID1
1.RAID状態の確認
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[1] sdd1[2](F)
1073610560 blocks super 1.2 [2/1] [_U]
unused devices: <none>
一本落ちてる。orz
落ちた日時の確認
# grep 'md/raid1' /var/log/messages*
/var/log/messages:Jan 19 22:38:27 HostName kernel: md/raid1:md1: Disk failure on sdd1, disabling device.
/var/log/messages:Jan 19 22:38:27 HostName kernel: md/raid1:md1: Operation continuing on 1 devices.
詳細の確認
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Mon Dec 2 13:54:11 2013
Raid Level : raid1
Array Size : 1073610560 (1023.87 GiB 1099.38 GB)
Used Dev Size : 1073610560 (1023.87 GiB 1099.38 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Jan 20 06:32:15 2017
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
Name : HostName:1 (local to host HostName)
UUID : cdb47a47:66aec9bd:c1ca2b5b:14d1aa95
Events : 547
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 33 1 active sync /dev/sdc1
2 8 49 - faulty /dev/sdd1
2.RAIDからDISKを切り離す
# mdadm /dev/md1 --remove /dev/sdd1
mdadm: hot removed /dev/sdd1 from /dev/md1
DISKの切り離した後の確認
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Mon Dec 2 13:54:11 2013
Raid Level : raid1
Array Size : 1073610560 (1023.87 GiB 1099.38 GB)
Used Dev Size : 1073610560 (1023.87 GiB 1099.38 GB)
Raid Devices : 2
Total Devices : 1
Persistence : Superblock is persistent
Update Time : Fri Jan 20 14:34:47 2017
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 0
Spare Devices : 0
Name : HostName:1 (local to host HostName)
UUID : cdb47a47:66aec9bd:c1ca2b5b:14d1aa95
Events : 548
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 33 1 active sync /dev/sdc1
3.DISKを交換する
ちょうど、同じ型番のDISKが余ってたので、それと入れ替える。
注意
再起動時に、DISKチェックとか走る場合があるので、起動DISK以外を自動マウントしないように調整しておく。
/etc/fstab を編集して該当のパーティションをコメントアウトしておく。
->Rootパスワードも忘れて、起動できなくてハマりましたw
4.交換したDISKにパーティションを作る
同じ構成になる元DISKの情報を確認
「/dev/sdc1」と「/dev/sdd1」でRAID構成
# parted /dev/sdc -s unit s -s p
モデル: ATA WDC WD20EFRX-68E (scsi)
ディスク /dev/sdc: 3907029168s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 2048s 2147485695s 2147483648s Linux RAID raid
2 2147485696s 3907029134s 1759543439s ext4 Linux filesystem
交換したDISKにパーティションを作成
2GのDISKを半分RAID・半分そのままなので、合わせて作成する。
# parted /dev/sdd
(parted) p
モデル: ATA WDC WD20EFRX-68E (scsi)
ディスク /dev/sdd: 3907029168s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
(parted) mkpart
パーティションの名前? []? 'Linux RAID'
ファイルシステムの種類? [ext2]?
開始? 2048s
終了? 2147485695s
(parted) set 1 raid on
(parted) mkpart
パーティションの名前? []? 'Linux filesystem'
ファイルシステムの種類? [ext2]? ext4
開始? 2147485696s
終了? 3907029134s
(parted) p
モデル: ATA WDC WD20EFRX-68E (scsi)
ディスク /dev/sdd: 3907029168s
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 2048s 2147485695s 2147483648s Linux RAID raid
2 2147485696s 3907029134s 1759543439s Linux filesystem
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
5.RAIDにDISKを追加する
「/dev/md1」に「/dev/sd/sdd1」を追加
# mdadm --manage /dev/md1 --add /dev/sdd1
mdadm: added /dev/sdd1
DISKを追加後の確認
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Mon Dec 2 13:54:11 2013
Raid Level : raid1
Array Size : 1073610560 (1023.87 GiB 1099.38 GB)
Used Dev Size : 1073610560 (1023.87 GiB 1099.38 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Jan 22 21:38:15 2017
State : clean, degraded, recovering
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1
Rebuild Status : 0% complete
Name : HostName:1 (local to host HostName)
UUID : cdb47a47:66aec9bd:c1ca2b5b:14d1aa95
Events : 588
Number Major Minor RaidDevice State
2 8 49 0 spare rebuilding /dev/sdd1
1 8 33 1 active sync /dev/sdc1
後はリビルドが終わるのを待つ
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd1[2] sdc1[1]
1073610560 blocks super 1.2 [2/1] [_U]
[=>...................] recovery = 6.9% (74689024/1073610560) finish=110.7min speed=150265K/sec
unused devices: <none>
後ちょっと。
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd1[2] sdc1[1]
1073610560 blocks super 1.2 [2/1] [_U]
[===================>.] recovery = 99.9% (1073386176/1073610560) finish=0.0min speed=119800K/sec
終わった。
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd1[2] sdc1[1]
1073610560 blocks super 1.2 [2/2] [UU]
unused devices: <none>
ここでも確認
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Mon Dec 2 13:54:11 2013
Raid Level : raid1
Array Size : 1073610560 (1023.87 GiB 1099.38 GB)
Used Dev Size : 1073610560 (1023.87 GiB 1099.38 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Jan 22 22:52:32 2017
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : HostName:1 (local to host HostName)
UUID : cdb47a47:66aec9bd:c1ca2b5b:14d1aa95
Events : 620
Number Major Minor RaidDevice State
2 8 49 0 active sync /dev/sdd1
1 8 33 1 active sync /dev/sdc1
6.いろいろ設定を元に戻す
変更したfstabとかを確認して元に戻す。
実際は、物理的に交換が終わったら1本状態で稼働させてました。
まとめ
- DISK交換めんどくさい。
- rootパスワード忘れてたw(USBから別OSで起動してごにょっとしました。orz)
- ディスプレイレスの運用なので、ディスプレイ・キーボード・マウスまで用意した。
- fstabの編集忘れて色々大変だった。
- 今回のDISKは、「WD RED」だけどRMAでの保証期間も過ぎてたw
- これから壊れたDISKのサルベージ大会。
おまけ
「/dev/sdd2」の方も使えるようにしておく
フォーマット
# mkfs.ext4 -m 0 /dev/sdd2
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
54992896 inodes, 219942929 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
6713 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
調整
# tune2fs -c -1 -i 0 /dev/sdd2
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds