投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2016年12月12日月曜日

【Linux CentOS 7(1511)】mdadmで構築したミラーアレイにホットスペア用ディスクを追加し動作テストを行った

(更新 2018/3/19)故障ディスクの物理的取外し方


空のSATAディスク(スペア用ディスク)を取り付けてマシンを起動した。
このディスクにはパーティションも存在していない。

予め、RAID構成で使用するためのパーティションをスペアディスク作成しておく。(下記ページ参考)
http://akira-arets.blogspot.jp/2016/12/linux-create-partitions-for-linuxraid.html

ただし、ディスクはアレイを構成しているディスクにサイズが一致したものを用いた。
(より大きければ問題がないはずである。)

(注意)下記の記事は、もともとはRAID構成用のパーティションをスペアディスクに作成せずに行った作業について書いたもので、後でパーティションを作成した場合に割り当てられるデバイス名に置換したものである。



■RAIDアレイの現状を表示させた。

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Sat Oct  8 21:17:25 2016
     Raid Level : raid1
     Array Size : 975454208 (930.27 GiB 998.87 GB)
  Used Dev Size : 975454208 (930.27 GiB 998.87 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
  Intent Bitmap : Internal
    Update Time : Mon Dec 12 00:08:14 2016
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
           Name : localhost.localdomain:0  (local to host localhost.localdomain)
           UUID : xxxxxxxx:xxxxxxxx:xxxxxxxx:xxxxxxxx
         Events : 1359
    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1 

○この段階では、まだスペアディスクは存在していない

○また、アレイを構成しているディスクが、次の二つであることもわかった。
(パーティションを構成していたので、それを示す1という数値が含まれている。)
/dev/sdc1 
/dev/sdd1
この結果と、fdisk -l コマンド結果と照合してみれば、アレイに関わっていないディスクデバイス名が判明する
即ち、今回スペア用に増設したディスクのパーティションは、/dev/sdb1 であることがわかった
(いうまでもなく、利用環境によってこの値は変化するので注意。)



■スペアディスクをアレイに追加した。

上記の方法で調べた空のディスクのパーティション(/dev/sdb1)をスペアとしてアレイに追加した。
コマンドはすぐに完了した。
(ここでは、パーティションを構成せずに使用してしまったが、後から、RAID構成用のものとして判断がつきやすいようにパーティションを作成した方がよいのかもしれない。)

# mdadm --add /dev/md0 /dev/sdb1
mdadm: added /dev/sdb1

先程のコマンドでアレイの状態を取得し、スペアの状態を抜粋した。

# mdadm --detail /dev/md0 | grep "Spare Devices"
  Spare Devices : 1
この段階で、スペアがアレイに一つ追加された。


東芝 DT01ACA100 1TB アマゾン限定モデル 2年保証 SATA 6Gbps対応3.5型内蔵ハードディスク

新品価格
¥5,618から
(2018/3/19 23:01時点)

■スペアディスクが正常に動作するのかテストした。
(以下、テストではアレイの喪失可能性の危険が伴う。)

スペアディスクが正常に動作するのかテストする方法は、実際にアレイを構成しているディスクの機能を停止させることである。
そのためには専用コマンドを使ってアレイを構成する一つのデバイスのみ「fail」にする。

(注意)
言うまでもなく、このアレイはミラーリングRAID1なのでアレイを構成するディスクの一つ止めればもう片側のディスクだけで運用されることになる。
そして片方のディスクが壊れてしまうと、アレイは機能しなくなる。

1、まず、アレイの情報を取得した。

# cat /proc/mdstat 
Personalities : [raid1]
md0 : active raid1 sdb1[2](S) sdc1[0] sdd1[1]
      975454208 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
上記、[2][0][1]は、アレイ中でのデバイスインジゲーターである。
既に設定したように、このミラーアレイにはスペアディスクが一つ追加されている。
そのため、アレイにはデバイスインジゲーターが2まである。(3デバイスが存在)

また、[UU]で示されている通り、ミラーアレイの構成デバイスは2台正常に動作している。


2、ミラーアレイの内の、デバイス1台をfailとしてわざと無効にした。
(注意)このコマンドで、アレイを構成していたディスク(/dev/sdd1)がフェイル状態となり、ミラーアレイは片方のディスクで動作する。
下記、/dev/sddではなく、/dev/sdd1となっていることに注意。
これは、アレイを構築する際にパーティションを作成して行ったためである。
# mdadm --manage /dev/md0 -f /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0

つづいて、アレイの状態を表示させた。
これまでの設定によって、ホットスペアディスクを登録しているので、自動的に再構築作業が行われた。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[2] sdc1[0] sdd1[1](F)
      975454208 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.0% (825344/975454208) finish=78.7min speed=206336K/sec
      bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>

5分ほど置いて、アレイの状態を表示させた。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[2] sdc1[0] sdd1[1](F)
      975454208 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  4.9% (48410112/975454208) finish=80.8min speed=190993K/sec
      bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>

この結果では残り時間は、80分として算出されている。
再構築作業は進んでいるが時間がかかることがわか
この再構築中にアレイを構成しているディスク1台が故障してしまうと、アレイは喪失してしまうことになる

再構築作業はバックグラウンドで行われている。
その間、下記、3の手順に進み、fail状態のディスクをremoveした。
そうしてさらに、この再構築が完了するまで待った。



3、「fail」としたディスクを「remove」した。

上記の再構築状態を示す結果にはsdd1[1](F)」としてfailにされたデバイス情報が残っている。
再構築が開始されたことと、fail状態になっていることを確認したらremoveコマンドを実行した。

次のコマンドを実行して、removeした。
# mdadm --manage /dev/md0 -r sdd1
mdadm: hot removed sdd1 from /dev/md0
再びアレイの状態を表示させた。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[2] sdc1[0]
      975454208 blocks super 1.2 [2/1] [U_]
      [===>.................]  recovery = 17.5% (171365248/975454208) finish=72.6min speed=184371K/sec
      bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
今度は、先程のfailとなったディスクが表示されなくなった。
これでアレイからremoveされた。


4、「remove」済みディスクを簡易に初期化した。

上記で、アレイからremoveしたディスク(/dev/sdd1)について調べると、まだRAIDシステム用のパーティションが残っている。
# fdisk -l
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
Disk label type: dos
ディスク識別子: 0x00017ea8
デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1            2048  1951172607   975585280   fd  Linux raid autodetect

すでに、アレイからremoveしたディスクなので、RAIDシステム用の情報を消去した。
# mdadm --zero-superblock /dev/sdd1

しかし、パーティション自体は消えていなかったので、必要ならばさらにパーティションも削除した。
# parted /dev/sdd
GNU Parted 3.1
/dev/sdd を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) p                                                          
モデル: ATA TOSHIBA DT01ACA1 (scsi)
ディスク /dev/sdd: 1000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号  開始    終了   サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  999GB  999GB   primary                    raid
(parted) rm 1                                                             
(parted) p
モデル: ATA TOSHIBA DT01ACA1 (scsi)
ディスク /dev/sdd: 1000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号  開始  終了  サイズ  タイプ  ファイルシステム  フラグ
(parted)

実際にremove済みディスクを取り外すためには、マシンの電源を落す必要があるだろう。
しかし、再構築が完了するまでは待った。
今回はテスト目的であったので、再びこのディスクはスペアに回すことにした。



■再構築完了後、状態を表示した。

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb[2] sdc1[0]
      975454208 blocks super 1.2 [2/2] [UU]
      bitmap: 0/8 pages [0KB], 65536KB chunk
unused devices: <none>
再び、ミラーアレイの状態が正常になっていることがわかった。



■不要なディスクを筐体から取り外す。

RAIDアレイから切り離しても、ディスクからは動作音が聞こえる。
このまま放置せずに、マシン筐体から取り外すことにした。

次の手順にしたがって、ターゲットのディスクのシリアル番号を得て、
その番号から実際のディスク本体を見つけ、取り外すことができた

予め、上記で判明している取り外すべきディスクのデバイス名をメモしておく。
この際、間違ったディスクを取り外して、システムに不整合を生じさせないように、
細心の注意を必要とする。

http://akira-arets.blogspot.jp/2018/03/linux-whichdiskisthediskiwantremove.html

ディスクの物理的な取り外しには、マシンのシャットダウン、電源オフが必要だった。


【Amazon.co.jp限定】TOSHIBA HDD 内蔵ハードディスク 3.5インチ 4TB Enterprise Cloud HDD MC04ACA400/AFP SATA3.0 1年保証

新品価格
¥15,272から
(2018/3/19 23:23時点)



<参考>

・RedHat / CentOS : Managing software RAID with mdadm
< http://thegeekdiary.com/redhat-centos-managing-software-raid-with-mdadm/ > 2016年12月12日

・Adding a hot spare to an md device
< http://prefetch.net/blog/index.php/2007/03/11/adding-a-hot-spare-to-an-md-device/ > 2016年12月12日

・Mdstat
< https://raid.wiki.kernel.org/index.php/Mdstat > 2016年12月12日

・RAID構成ハードディスク交換
< https://centossrv.com/centos5-raid-3.shtml > 2016年12月12日

・SoftwareRAID
< https://wiki.debian.org/SoftwareRAID > 2016年12月15日

・RAID superblock formats
< https://raid.wiki.kernel.org/index.php/RAID_superblock_formats > 2016年12月15日

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad