障害が発生する前にRAIDドライブを交換する(3年前!)

障害が発生する前にRAIDドライブを交換する(3年前!)

私のRAID設定で賢明な方法は、ドライブが故障して古くなる前に交換することだと思います。クラウドのバックアップスペースを増やすことができず、最終的にドライブを使用したくないと思います。摩耗により故障が発生します。

GPT、grub、小さなシステムraid1パーティション、および大きなraid5プライマリパーティションを持つ3つの2TBドライブがあります。私はアーチLinuxを使用しています。

ドライブを1つずつ交換する予定です。私は私の行動計画を投稿し、誰かがそれがうまくいかない理由を考えることができるのか、それを行うより良い方法があるのか​​を確認したかったのです。

ステップ1:

/dev/sda物理的にプラグを抜き、どの/proc/mdstatデバイスに障害があるかを調べて、交換したいデバイスを見つけます/dev/sdx

ステップ2:

再接続し、sfdiskを使用してパーティションテーブルをコピーします。

sfdisk -d /dev/sdx > partition.layout

3番目のステップ:

同じサイズの新しい物理ドライブを挿入します。

4番目のステップ:

sfdisk /dev/sdx < partition.layout

5番目のステップ:

mdadmArch Wikiの指示に従って、アレイに新しいドライブを追加するために使用されます。

mdadm --add /dev/md0 /dev/sdx1
mdadm --add /dev/md1 /dev/sdx2

ステップ6:

グラップを再インストールしますか?再同期が完了するのを待ってから、他の2つのドライブに対してプロセス全体を繰り返しますか?

私の質問は主にこれが成功するのでしょうか?私が逃したものはありますか?私は明らかなものを見逃して、すべてのデータを失いたくない。

助けや洞察を提供していただきありがとうございます。

編集する:

引き続き議論を続けるために、mdadmとsmartmontools(smartd)がハードドライブに問題が発生し始めたときに電子メールで監視し、通知を送信する方法を見つけたと言いたいです。私の携帯電話に同期されたGmailアカウントを使用してssmtpを設定しました。

すでに新しいドライブを購入しているので、ドライブを保管して問題が発生した場合は交換します。私が理解したのは、最終的にすべてのハードドライブが故障することです。アレイのパフォーマンスを低下させることなくこれを行う方法に関する提案とヒントを提供していただきありがとうございます。アップグレードできるようになったら、ECCマザーボード/メモリなどでZFSを使用します。これに関するアドバイスをいただきありがとうございます。本当にありがとうございましたたくさんの助けがありました:D

答え1

意図的にRAIDパフォーマンスを低下させ、再同期が予期せず失敗する可能性があるため、これは悪い考えです。新しいディスクをシステムに接続して(n+1ディスクがあるので)、それを使用してmdadm --replace同期することをお勧めします。これにより、この期間中にRAIDのパフォーマンスが低下することはありません。

どのドライブであるかを確認するために、ドライブを故障したり取り外す必要はありません。mdadm --examinemdstat出力[UUU]でデバイスの役割番号を表示できます。ドライブのシリアル番号を[012]使用または確認して、ドライブ自体のラベルと比較できます。 hdparmsmartctl

パーティション化の場合、現在のMSDOSよりもGPTを使用する方が良いかもしれません。ディスクを交換するだけでなく、サイズもアップグレードしたい場合は、MSDOSパーティションがほぼ2TBで停止するため、選択肢がない可能性があります。

個人的にはまったくそんなことはしません。ディスクが3年になったらどうなりますか?ディスクはこれよりずっと長く続き、新しいディスクも同様に失敗します。

さらに重要なことは、ディスクを定期的に(自動的に)テストし、最初の中断/修正不可能/再割り当てされたセクタ、セルフテストの読み取りエラー、またはその他の問題が発生したときにディスクを交換することです。

さらに重要なことは、失われたくないデータをバックアップすることです。

冗長性を高めるためにRAID 6に切り替えることもできますが、事前にエラーを確認する限り、両方のディスクが同時に失敗する可能性はほとんどありません。再構成が数年で最初の読み取りテストになることは避けてください。

答え2

最初のステップは不要であり、/dev/sdX常に安定しているという保証はありません(つまり、同じデバイスを指します)。最悪の場合、再挿入すると、一部の長期実行の再同期操作がトリガーされることがあります。

より良い信頼性の高い方法は、ドライブのシリアル番号(S / N、SN)を使用することです。これはドライブに印刷され、システムから照会できます。

たとえば、ランダムシステムを見てみましょう。

# cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sda2[0] sdb2[2]
      976245464 blocks super 1.2 [2/2] [UU]
      bitmap: 1/8 pages [4KB], 65536KB chunk

その後、sdaのシリアル番号を取得できます。

# hdparm -i /dev/sda

/dev/sda:

 Model=SAMSUNG HD103UJ, FwRev=1AA01113, SerialNo=S13PJ0123456789

(実際のシリアル番号を修正しました)

以下のシンボリックリンクからシリアル番号を確認することもできます/dev/disk/by-id

# ls -l /dev/disk/by-id | grep 'sda$'
lrwxrwxrwx. 1 root root  9 2016-08-05 09:49 ata-SAMSUNG_HD103UJ_S13PJ0123456789 \
  -> ../../sda

したがって、交換したいドライブのシリアル番号を書き留め、システムの電源を切り、一致するシリアル番号(ドライブラベルに印刷されている)でドライブを交換できます。

エキスパートのヒント#1:新しいドライブを追加するときは、追加のラベルにシリアル番号を書き、ラベルを直接見え​​る面(コネクタ面など)に貼り付けます。

/dev/disk/by-id/...これらのリンクは、RAIDに新しいデバイスを追加するときにも便利です。

専門家のヒント#2:異機種ドライブを選択してください。独立メーカー、すでに電源投入時間が異なるドライブなど、したがって、システムの問題により複数回失敗する可能性が減少します。

専門家のヒント#3:BTRFSやZFSなどのチェックサムファイルシステムを使用してください。チェックサムの利点に加えて、最初にドライブを取り外さなくてもドライブを交換できます。

答え3

いいえ、ハードドライブを交換しようと急いではありません。

あなたの場合は、専用RAIDファイルシステムに切り替えることをお勧めします。個人的に好きなのはZFSですが、BTRFSも機能すると思います。

ZFSを使用すると、新しいHDDをマウントし、それをホットスペアとしてプールに追加し、ZFSに定期的にHDDを「クリーン」(自動的にエラーチェック)させ、クリーンアップでエラーが検出された場合はホットスペアを有効にします。これにより、ZFSが自動的に初期化され、完了すると欠陥のある部分を取り除くことができます。プール内のHDDが同じメーカー/操作でない限り、同時にエラーが発生しないと合理的に確信することができます(もちろん、どれほど妄想的かによって異なります)。

次回は、HDDを削除せずに見つけることができるようにHDDをインストールするときにHDDにラベルを付ける必要があることは言うまでもありません... ;)

これらの作業をすべて既存のソリューションと並行して実行する場合(ケースに2つの追加のHDDのための十分なスペースがある場合)、将来の準備をすることができます。すべてのデータを新しいディスクに移行し、既存のディスクを将来のホットスペアとして使用できます。

(注:ZFSを使用している場合(ここでは例として使用されています)、Googleで「zfs ecc」を検索して賢明に選択してください。

関連情報