web-dev-qa-db-ja.com

ソフトウェアRAIDの再同期を中断する方法は?

Debian squeezeソフトウェアraidで実行中の再同期操作を中断したい。 (これは通常のスケジュールされた比較再同期です。このような場合でもRAIDアレイはクリーンです。ディスクが故障して交換された後の再構築と混同しないでください。)

実行中にこのスケジュールされた再同期操作を停止する方法は?別のRAIDアレイは「再同期保留」です。これは、同じ日に(日曜の夜に)すべてチェックされるためです。この日曜の夜の再同期を完全に停止したい。

[編集:Sudo kill -9 1010はそれを止めません、1010はmd2_resyncプロセスのPIDです]

また、再同期と次の再同期までの残り時間の間隔を制御する方法を知りたいです。

[編集2:私が今やったことは、再同期を非常に遅くすることでしたので、もう邪魔になりません:

Sudo sysctl -w dev.raid.speed_limit_max=1000

http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html から取得

夜間に再設定を終了できるように、値を高い値に戻します。

この回避策はほとんどの状況で問題ありませんが、それでも私が尋ねたことが可能かどうかを知ることは興味深いでしょう。たとえば、「保留中」を再同期または再同期している間は、配列を拡張することはできないようです]

51
Adam5

配列がmd0、次にecho "idle" > /sys/block/md0/md/sync_action

「アイドル」はアクティブな再同期/回復などを停止します。別の再同期/回復が自動的に再開されないという保証はありませんが、これをトリガーするためにいくつかのイベントが必要になります。

http://www.mjmwired.net/kernel/Documentation/md.txt#477

49
Mark Wagner

再同期プロセスを遅くするか一時停止して、一部のI/Oを保存して別のコンピューターの一部のものをバックアップしたいと考えていました。このスレッドは役に立ちましたが、別の解決策を見つけました。

私のDebian Lennyで:

  • echo "idle" > /sys/block/md0/md/sync_actionは機能しますが、再同期プロセスはすぐに再開されます。

  • checkarray -x --all:動作しますが、同じ結果:再同期プロセスがすぐに再開されます。

だから私はこの方法を使用します:echo 0 > /proc/sys/dev/raid/speed_limit_max

35
small

次の一連のコマンドを(rootとして)使用して、進行中のアレイの再同期をキャンセルできます。

echo frozen > /sys/block/md0/md/sync_action
echo none > /sys/block/md0/md/resync_start
echo idle > /sys/block/md0/md/sync_action

これにより、アレイが不整合な状態になる可能性があることに注意してください。アレイの形状が正しいことが確実でない限り、これを行わないでください。後で同期を再実行してください。

(クレジットの期日が記載されているクレジット:この呪文が見つかりました このスレッドで 。)

15

上記のように、Debian/Ubuntuシステムでは、/etc/cron.d/mdadmスクリプトが/usr/share/mdadm/checkarrayスクリプトを呼び出して、再同期チェックを開始します。

このスクリプトには、実行中のすべての同期チェックをキャンセルするオプションがあります。

/usr/share/mdadm/checkarray -x --all
9

Mdデバイスがmd0であり、再同期書き込みを停止したい場合:

echo "idle" > /sys/block/md0/md/sync_action
3
Victor

再同期をキャンセルする方法がわからないが、スケジュールは/etc/cron.d/mdadm Debian/Ubuntuシステム。

スクリプト /usr/share/mdadm/checkarrayはcronによって呼び出されているので、質問の他の部分に光を当てるかもしれません。

3
Zoredache

これに対する可能な解決策は、詳細に入るのに少しかかりました。

私のシステム:CentOS 6.5 mdadm v3.3.2

毎週一定のチェック、そのうちの1つを一時停止したい、RAIDはクリーン、チェックは/etc/cron.d/raid-checkスクリプトを介して呼び出され、毎週実行されます。

チェックをキャンセルするには、-misc --action関数を使用します。 RAIDデバイスが/ dev/md0であり、これが毎週の整合性チェックであり、デバイスの障害ではない場合、ルートとして次のように実行します。

mdadm --misc --action = idle/dev/md0

同様に、整合性チェックを開始するには

mdadm --misc --action = check/dev/md0

3
bill.rookard
echo "idle" > /sys/block/md0/md/sync_action

/ sys/block/md */md/sync_actionが "resync"の場合は機能しません(状態が "check"または "repair"の場合とは異なります。 "idle"をsync_actionファイルにエコーできますが、影響はありませんこのカーネルのドキュメントファイル here は機能することを誤って記述していますが、私にとっては機能していません。

「アイドル」はアクティブな再同期/回復などを停止します。別の再同期/回復が自動的に再開されないという保証はありませんが、これをトリガーするためにいくつかのイベントが必要になります。

2
brian

私はこれが4年前の投稿であることを知っていますが、これを行うこともできます(md0をアレイ、sdb4を再同期する「ディスク」と想定)。

    mdadm /dev/md0 --fail /dev/sdb4 && mdadm /dev/md0 --remove /dev/sdb4

このコマンドは、sdb4が故障したディスクであるように見せかけ、アレイからキックして再同期を停止します。再同期停止アクション中にエラーがなかった場合、このコマンドはmd0アレイからsdb4も削除します。エラーが発生した場合、ディスクは障害状態のままですが、アレイには残ります。

mdadmのどこかでディスクに障害が発生した場合は、それを設定します 論理的に 失敗した。配列が 掃除 (劣化していない)その後、ディスクは一貫性を保ち、-add << disk >> --assume-cleanオプションを使用して、心配することなく再度追加できます。あった場合 どれか アクション それがあった後 一戸建て (例:再同期、再構築、または書き込み)次に--assume-cleanは失敗し、すぐに再同期アクションを開始します。

変更raid.speed_limit_minおよびraid.speed_limit_maxは、再同期/再構築の速度だけでなく通常の動作速度にも影響を与えるため、どういうわけか悪い考えです。おそらく、RAIDアレイを使用することで得られる多くのパフォーマンスが失われます。

0
eth