このページでは自宅サーバーRAID構成ハードディスクを交換する安全な方法について初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
OSにRAIDデバイスを追加

RAIDを新たに作成する

ハードディスクの追加

RAID構築モデルについて

ハードディスクの領域確保

mdadmによるRAIDの作成

RAIDデバイスのマウント

ハードディスクが壊れたら

mdadmによるRAIDの修復

mdadmによるディスクの交換

mdadmによるRAIDの解除


いきなりハードディスクを交換しても悪くはないのですが...

複数の ハードディスク を抱えた サーバー機 で注意しなければならないのは 振動 です。最初はそうでもなかったのに、長く稼動させていると振動が増えてくるハードディスクも少なからずあります。

ハードディスクが一台のときはあまり問題にならないかもしれませんが、複数台を格納すると 共振 現象が起こりやすくなりますから ハードディスクの共振について 、無用なトラブルを予防する意味でも振動が大きくなったハードディスクは早いうちに取り替えてしまいたいところです。

また例えばパソコンの ハードディスク に異常が出て急に交換しなければならなくなったとか、修復のために一時的にバックアップのハードディスクが必要になったとか、長くパソコンを使っていればそういう場面に遭遇することも珍しくないでしょう。

こういう場合は一時的にRAIDを構成するハードディスクの一本を拝借しておこう、と思いつくかもしれません。

仕事で扱う サーバー機 ではまずこんなことはやらないと思いますが、自宅サーバーに対して自分の責任でやるのであれば、それも一つの手段には違いありません。

さて、こういうケースでは、 RAIDに参加している正常動作のハードディスクをとりはずす 、という作業が必要になります。

もちろん「ハードディスクの障害時にも稼動を続けられる」という RAID の本来の役割を 悪用 して、

ホスト機 の電源を切って交換したいハードディスクをはずして起動し、サーバー機に「障害発生!」と勘違いさせてデグレーデッドモードで動作させておく。

という具合にして無理やりハードディスクを横取りし、用事が済んだら mdadmによるRAIDの修復 の手順に従って修復作業を行う、という方法もあります。

しかしいくら自宅サーバーとはいえ、管理者たるものそういう乱暴な方法はやめましょう。

というわけでこのパートでは、RAIDを構成しているハードディスクの一本を 正しくスマートに 取り外す方法について説明します。

関連セクションへ 関連セクション・ OSをRAID構成でインストール

このページの先頭へ↑

RAID構成からハードディスクを取り外すには

ここでは例として ハードディスク "/dev/hdc" を取り外してみます。

まず必要に応じてRAID上のデータのバックアップをとります、

どちらにせよ サーバー機 を直接触ることになりますから、強いてリモート操作する必要はなく、実機を直接操作しても構いません。

そして サブネット 内の適当な クライアント機 から SSHクライアント 構築中のLinuxサーバー ログイン します SSHクライアントでサーバーに接続する(WBEL3) SSHクライアントでサーバーに接続する(CentOS3) SSHクライアントでサーバーに接続する(WBEL4) SSHクライアントでサーバーに接続する(CentOS4) SSHクライアントでサーバーに接続する(CentOS5)

それから su コマンド ユーザーアカウント "root" に変更します。

[tanaka@web1 ~]$ su -Enter
Password: "root"のパスワードを入力します。 Enter
[root@web1 ~]#

まず、実際にRAIDデバイスの操作を行う前に、 umount コマンドで "/dev/md0" "/dev/md1" をファイルシステムからアンマウントします。

実際にはファイルシステム上で稼働中でも構わないのですが、安全のためにアンマウントしておいたほうが良いでしょう。

[root@web1 ~]# umount /dev/md0Enter
[root@web1 ~]# umount /dev/md1Enter
[root@web1 ~]#

次に "mdadm" コマンド Manageモード で、

mdadm --manage [RAIDデバイス名] --fail [不良扱いにするパーティション名] Enter

と実行して 取り外したいハードディスクのパーティションを不良扱いに設定します

設定したら "/proc/mdstat" を表示させてみます。

[root@web1 ~]# mdadm --manage /dev/md0 --fail /dev/hdc1Enter
mdadm: set /dev/hdc1 faulty in /dev/md0
[root@web1 ~]# mdadm --manage /dev/md1 --fail /dev/hdc2Enter
mdadm: set /dev/hdc2 faulty in /dev/md1
[root@web1 ~]# cat /proc/mdstatEnter
Personalities : [raid1] [raid5]
md0 : active raid1 hdd1[2] hdc1[3](F) hdb1[0]
   58604992 blocks [2/1] [U_]
   [>....................] recovery = 1.2% (716352/58604992) finish=29.6min speed=32561K/sec
md1 : active raid5 hdd2[2] hdc2[3](F) hdb2[0]
   194450560 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]

unused devices: <none> [root@web1 ~]#

"/dev/md1" はスペアパーティションがありませんのですぐにデグレーデッドモードになり、不良扱いになった "/dev/hdc2" に不良を示すマーク "(F)" が付きます。

ただし、不良扱いにするのがスペアパーティション自身の場合はRAIDの修復処理は行われませんので、取り外したいハードディスクがどれでも構わなければ、 "/dev/hdc" を取り外すと余計な時間をかけずに済みます。

しかし "/dev/md0" の場合にはスペアパーティション "/dev/hdd1" がありますので、ここに示すように実際の故障と同様、自動的にRAIDの修復が始まります。

自動修復が開始されたら、 必ず自動修復が終了するまで待ちます

そして "/proc/mdstat" の内容をもう一度確認します。

[root@web1 ~]# cat /proc/mdstatEnter
Personalities : [raid1] [raid5]
md0 : active raid1 hdd1[1] hdc1[2](F) hdb1[0]
   58604992 blocks [2/2] [UU]

md1 : active raid5 hdd2[2] hdc2[3](F) hdb2[0]
   194450560 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]

unused devices: <none> [root@web1 ~]#

このように自動修復が終わって "/dev/hdc1" "/dev/hdc2" "(F)" マークが付いた状態を確認したら、続いて、

mdadm --manage [RAIDデバイス名] --remove [取り外すパーティション名] Enter

と実行して パーティションを取り除きます

「なんか面倒。」と思われるかもしれませんが、 "mdadm" "--remove" を実行するには、その前に必ず "--fail" を実行して不良扱いにしておかなければなりません。

これはもちろん安全のための仕様ですからルールに従うしかありません。

そしてしつこいようですが、このあともう一度 "/proc/mdstat" の内容を確認します。

そしてパーティションのリストから "/dev/hdc1" "/dev/hdc2" が消えていることをチェックします。

[root@web1 ~]# mdadm --manage /dev/md0 --remove /dev/hdc1Enter
mdadm: hot removed /dev/hdc1
[root@web1 ~]# mdadm --manage /dev/md1 --remove /dev/hdc2Enter
mdadm: hot removed /dev/hdc2
[root@web1 ~]# cat /proc/mdstatEnter
Personalities : [raid1] [raid5]
md0 : active raid1 hdd1[1] hdb1[0]
   58604992 blocks [2/2] [UU]

mmd1 : active raid5 hdd2[2] hdb2[0]
   194450560 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U]

unused devices: <none> [root@web1 ~]#
ハードディスクを取り外す前にスーパーブロックとパーティションを消去してしまいたい場合は スーパーブロックの削除方法について を参考にしてください。

これで "/dev/hdc" はRAID構成から完全に取り除かれましたので、 poweroff コマンドで電源を切り、ハードディスクを取り外して電源を入れなおします。

ところで、 "(F)" を付けてしまったパーティションはシステム上「故障」とみなされますから、一度 "--remove" でRAID構成から取り除かなければ再構築に使用することはできないようになっています。

LinuxのRAIDの解説書
オススメです

従って、間違えて違うパーティションに "(F)" を付けてしまった場合は、面倒でも "--remove" でRAID構成から取り除き、改めて "--add" で追加しなおさなければなりません mdadmによるパーティションの追加 ので注意してください。

さて、このモデルケースで "/dev/hdc" を取り外した場合、 "/dev/md0" はスペアなしの正常なRAID1、 "/dev/md1" はデグレーデッドモードのRAID5になっていますから、できるだけ早急に元のRAID構成に戻す必要があります。

その方法はRAIDの修復 mdadmによるRAIDの修復 と同じですから、そちらを参考にRAIDの再構築を行ってください。

関連セクションへ 関連セクション・ OSをRAID構成でインストール

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。