自鯖のSoftwareRAID-HDDを交換
時は先月、自宅サーバの監視システムから、
「HDDのS.M.A.R.T値がやばくなっている」とメールが届いた。
自鯖のHDDは録画領域以外は全部RAID-1構成なので大丈夫っちゃ大丈夫なのだが、
今回問題なのは、
RAID-1を組んでいるHDD2つから同時にエラーが検出されてしまった
という、HDDがお亡くなり寸前になっていた点。
という事で、1ペア交換するのも全部交換するのも大きな違いは無いので、
自鯖メイン機HDDを比較的新しい1台を除いて全交換してみた。
今回HDDを交換するにあたって、ついでにKVM領域の拡大もやってみた。
と言ってもresizeしただけなので、ジャーナリングFSの変更は無しで。
- TOSHIBA – DT01ACA050
- Seagate – ST2000DM001
- Seagate – ST2000VN000
- WD – WD20PURX
『RAID組むのに、違うHDD使うとかわかってね~な』と仰る方。
Exactly。まぁ、こんな構成には理由がありまして…(´・ω・`)
何故違うHDDメーカを組み合わせてRAIDを組んでいるかと言うと、
以前、SG製HDDで発生したファームウェア問題で、
自宅のRAID組んでいたHDDが一度に全滅した苦い経験がある為。
ガチの本番環境なら、RAID1+0とかで組むのでリスクも減るのだろうが、
ns-labの自鯖は仮想環境共存の為とか、録画鯖とかの為にわざとRAID1を2発にしている為、
ファームなどどうしようもない箇所での故障に備える為に、
HDDのメーカをずらしてRAIDを組むようになったのでした。
………
他にも、自鯖のNICが足りなくなったので、4ポート物に載せ替えてみた。
今までは2ポートNICを増設していたのだが、
流石に仮想環境を何個も作ると足りなくなってしまい…
ちなみに、お役御免になる2ポートの方は次の用途があるのでそっちに転用。
………
内容をHDDの方に戻して…
今回はSoftwareRAIDなので、mdadmとsfdiskを使ってパーティションコピーを行った。
今まで、ここまで大がかりなHDD交換は行った事が無かったので、
手探りしながらの作業で非常にヒヤヒヤだった(;´Д`)
参考サイト様
トヤヲ・ネット – mdadmのRAID再構築
うまいぼうぶろぐ – sfdiskでパーティション情報のコピー
………
実は、一番ハマったのがパーティション情報のコピー操作だった。
mdadmは、以前LinuxでNAS相当を構築した時に色々触っていたので、まぁなんとかなった。
普段は、fdiskを使ってパーティションを切っている筆者なのだが、fdiskを使うと↓写真の様に、
パーティション1とパーティション2の始点と終点が同じ値を取る切り方が出来ない様になっている。
対処方法をググると、partedを使ったり、ddで直ダンプしたりと色々出てくるのだが、
partedは使った事無いし、取り替えたHDDは電源入れられないので、他の方法を使う必要があった。
という事で、出逢ったのがsfdiskを使って、
生きている方のHDDからパーティション情報のみダンプする方法。
例えば、
"/dev/sda" のパーティション情報を "/dev/sdb" にコピーして、
"/dev/md0" のデータを "/dev/sdb1" にコピーしてRAIDアレイの修復も行う場合、
[# sfdisk -d /dev/sda | sfdisk /dev/sdb –force]
[# mdadm /dev/md0 -a /dev/sdb1]
を実行すれば、HDD容量にもよるのだが数時間で処理が完了する。
………
という事でRAIDのリビルドも無事完了し、
"www.ns-lab.org" の乗っている仮想鯖も新HDDで絶賛稼働中。
今の所はエラー無く安定稼働しているので、一安心という所( ´Д`)=3
そしてNICも増設したし、仮想を動かすHDD容量もなんとか算段ついたので、
ロードバランサをLinux上で構築しフロントを全部ロードバランサに任せたり、
本気のライブマイグレーション環境を構築したりと、
今後の自鯖で行う事が目白押しになった[ns-lab BB]でした。