BLOGTIMES
2014/09/21

Ready NAS のディスクを交換

  Tips readynas  mdadm 
このエントリーをはてなブックマークに追加

Ready NAS Ultra 4 のディスクが1本飛んでしまったので、ディスク交換してみました。

RAID は本来自動設定なのですが md で実現されているので、僕は普段はシェルから手動管理するようにしています。
mdadm を使うのが久しぶりすぎてやり方をすっかり忘れてしまっていました。

以下、作業メモ。

まずは状況把握

状況把握しないとどうにもならないので mdstat を読み取って中身を確認します。
パーティションに (F) がついているのが障害ディスクなので、sda が壊れていることが分かります。

# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md3 : active raid1 sdc3[0] sdd3[1] 3902295928 blocks super 1.2 [2/2] [UU] md2 : active raid1 sda3[0](F) sdb3[1] 1948792752 blocks super 1.2 [2/1] [_U] md1 : active raid1 sda2[0](F) sdd2[5] sdc2[4] sdb2[1] 524276 blocks super 1.2 [4/3] [_UUU] md0 : active raid1 sda1[0](F) sdd1[5] sdc1[4] sdb1[1] 4193268 blocks super 1.2 [4/3] [_UUU]

このときに追加で smartctl -a /dev/sda のようにして SMART 値を読み取ってもよいと思います。
今回の例では代替セクタがたくさん発生していて、一目でディスクが壊れていることがわかりました。

ディスクの切り離し

ディスクを交換するには、故障したディスクをアレイから切り離してやる必要があります。
アレイはパーティションごとに組まれているので、md# ごとに壊れたディスクのパーティション(今回は sda# というもの)を切り離していきます。

# mdadm --manage /dev/md0 --remove /dev/sda1 mdadm: hot removed /dev/sda1 from /dev/md0 # mdadm --manage /dev/md1 --remove /dev/sda2 mdadm: hot removed /dev/sda2 from /dev/md1 # mdadm --manage /dev/md2 --remove /dev/sda3 mdadm: hot removed /dev/sda3 from /dev/md2

切り離しが完了するとこんな感じになります。

# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md3 : active raid1 sdc3[0] sdd3[1] 3902295928 blocks super 1.2 [2/2] [UU] md2 : active raid1 sdb3[1] 1948792752 blocks super 1.2 [2/1] [_U] md1 : active raid1 sdd2[5] sdc2[4] sdb2[1] 524276 blocks super 1.2 [4/3] [_UUU] md0 : active raid1 sdd1[5] sdc1[4] sdb1[1] 4193268 blocks super 1.2 [4/3] [_UUU]

ディスクを新しい物と交換してみたが・・・

ここで古いディスクをベイから取り外して、新しいディスクと交換してみたのですが・・・一向に認識される気配がありません。
仕方ないので、Linux で強制的にホットスワップする方法*1を参考にディスクの再認識をかけてみました。# の部分は数字が入りますが、この数字については dmesg などであらかじめ確認しておきます。

# echo 1 > /sys/class/scsi_device/#:0:0:0/device/delete # echo 0 - 0 > /sys/class/scsi_host/host#/scan

上記の作業が済むと RedyNAS 側の OS がディスクを認識してくれて、自動的にパーティション設定が走って自動的にリビルドが始まりました
ここまでくればあとは待つだけです。本来は fdisk などを使ってパーティションを設定し、その後 md にパーティションを追加してやるという手順になります。

# cat /proc/mdstat Personalities : [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md3 : active raid1 sdc3[0] sdd3[1] 3902295928 blocks super 1.2 [2/2] [UU] md2 : active raid1 sda3[2] sdb3[1] 1948792752 blocks super 1.2 [2/1] [_U] resync=DELAYED md1 : active raid1 sda2[6] sdd2[5] sdc2[4] sdb2[1] 524276 blocks super 1.2 [4/3] [_UUU] resync=DELAYED md0 : active raid1 sda1[6] sdd1[5] sdc1[4] sdb1[1] 4193268 blocks super 1.2 [4/3] [_UUU] [>....................] recovery = 1.9% (83200/4193268) finish=66.3min speed=1031K/sec unused devices: <none>

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7037
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン