非公開メモ最新の10件2018-10-08RecentDeleted2018-09-24Debian/Tips2018-04-28Linux全般/Ansible2018-04-07MenuBar2018-03-24local/top2018-03-15Debian2017-07-23Windows/gadget2017-06-21Windows/Tips2016-12-23仮想化/ESXi2015-12-20Debian/DNSSECRAIDをいじる。ソフトウェアRAIDだと、低価格で高度なRAIDが構築できて楽しい。/dev/sdz1パーティションの全体サイズ、使用しているサイズ、構成状態などが分かる。†アレイに新品ではないHDDを使用するときは、スーパーブロックを初期化する必要がある。†SATAでは、ハード的にホットスワップ(ホットプラグ)に対応しているので、ソフト面でも環境をそろえて、システムで使用できるようにしてみる。ここでは、SATA0*1にsdb、SATA1にsdaがつながっている状態から、sdaを抜いてSATA2に挿すことで、HDD故障時のリペア手順を予習する。†sdaに故障フラグを追加してから、アレイから外す。/dev/sda1取り外したいHDDのSCSIデバイスを調べる。sdaは、1:0:0:0となっている。block:/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block:sdb/sys/devices/pci0000:00/0000:00:1f.2/host1/target1:0:0/1:0:0:0/block:sdaカーネルから削除する。/sys/class/scsi_device/1\:0\:0\:0/device/deleteこの時点で、以下のカーネルログが出力された。disabledこれで、物理的に取り外す準備ができた。取り外すと、以下のカーネルログが出力された。新しいHDDをSATA2に取り付ける。物理的に取り付けると、以下のカーネルログが出力された。disk」と出たら、デバイスとして認識しているようだ。まっさらのHDDなどの場合は、ここでfdiskを実行してパーティションを設定する。あとは、RAIDに追加するだけ。†RAID構成としての最低限のディスク(4台のRAID5のうち3台あるなど)がある場合でも、ディスクの壊れ方などのタイミングによっては、RAIDとして起動しなくなることがある。この場合、RAIDのステータスは以下のようになる(新しいディスクをスペアディスクとして追加済みの場合)。Started」となっている。dmesgには、以下のような情報もある。...この状態だと、RAIDを起動しようとしてもエラーとなる。error強制的に起動させるには、md_modのパラメータのstart_dirty_degradedを1に設定すればよいらしい。/sys/module/md_mod/parameters/start_dirty_degraded設定後、再度RAIDを起動すると、今度は正常に起動した。RAIDのステータスも以下のようになった。recovering」となっている。その後、しばらくおいておくと、今度はチェックを行っているのか、4つのディスクからデータを読んでいるようだ。resyncing」となっている。6(squeeze)以降の場合、以下のコマンドからメニュー形式でブートローダーを入れるドライブを選択する。6(squeeze)より前の場合は、以下のようにする。RAID1でブートディスクを作っても、最初のHDDにしかGRUBが入らないようだ。このため、もう片方にもGRUBをインストールする。/dev/sdb上記で失敗する場合は、以下のように手動で設定する。†HDDを交換後、アレイを再構築するには以下のコマンドを実行する。リビルド状況がわかるはずだ。†RAID6の場合、アレイサイズの変更前に、スーパーブロックの更新が必要になるかもしれない。そのときは、一度アレイを停止する必要がある。英語の情報しかないのでよくわからないけど、最新バージョンだと直っているような記事も。--size=maxこんなことをしなくても、OS再起動でもいけるかもしれない。†ファイルシステムのサイズを減らし、続いてアレイのサイズを減らす。サイズ変更前にやっておかないと、resize2fsに怒られる場合がある。ここで指定する数値はアレイのブロック数を指定する。ここで指定する数値はデバイスのサイズを指定する。単位はKiB(キビバイト=1024バイト)。1ブロック4Kの場合、resize2fsで指定した数値と違うので注意。†アレイの全パーティションのサイズを増やしたのに拡張できない場合は、実際のパーティションサイズと、RAIDとして見えているパーティションのサイズが違う可能性がある。以下のコマンドでパーティションの詳細を確認する。Sizeが、パーティションサイズと同じことを確認する。†アレイのサイズを増やし、ファイルシステムのサイズを増やす。ext4の場合は、e4fsck,resize4fsの場合がある。サイズが大きい場合、かなりの時間がかかる。サイズに"max"を指定すると、指定できる最大値が設定される。サイズ変更前にやっておかないと、resize2fsに怒られる場合がある。アレイのサイズに合わせる場合は、ブロック数を省略できる。†オンラインでリサイズできるのでアンマウントの必要がない。サイズの指定はできないようだ。1.5Tから3Tへの拡張時の応答時間は、7分程度だった。500G*4のRAID5から、1T*4のRAID5にし、裏でリビルド中の場合。2.6.32)だと、3Tから6Tへの拡張の応答時間は、1分程度だった。†サイズを増やすのは簡単。xfs_growfsではサイズの指定も出来るが、ここではデフォルトの最大を割り当てた。/mnt/hoge320Gから500Gへの拡張は、ほとんど一瞬で出来た。†まず、アレイにデバイスを追加しておく。/dev/sdd5RAIDレベルとデバイス数を変更する。/tmp/md1.bakポイントは、'backup-file'オプションで、これがないと、以下のようなエラーが出る。change先にRAIDレベルを変更することも可能だが、RAIDレベル変更時とデバイス追加時の2回で、再構成が走るので効率が悪い。1TBx4のRAID5から、1TBx5のRAID6に変更するのに、92時間程度かかった。†あとからアレイを追加したときに、以下のようになることがある。[UU]これは、そういう仕組みらしく、一度でも書き込めば戻るようだ。スワップとして使用しているときは書き込みしていても状態が変わらないことがある(カーネルバージョンによるかも)。気になるなら、以下のコマンドを実行すると通常の状態になる。