RAIDは自動的に再同期されますか?

RAIDは自動的に再同期されますか?

RAIDアレイの状態をランダムに確認したcat/proc/mdstat結果、アレイの1つが再同期していることがわかりました。

md1 : active raid1 sdb7[1] sdc7[0]
      238340224 blocks [2/2] [UU]
      [==========>..........]  resync = 52.2% (124602368/238340224) finish=75.0min speed=25258K/sec

なぜそんなことですか?それはどういう意味ですか?権限を介してマウントポイントにアクセスできるようですr/w

編集1(への回答SLMの答え)

grep合格すると、実際には何も表示されず、スイッチは私に多くを知らせません。つまりdmesg--detail進行中の再同期を表示しますが... なぜ同期されないのかについてのヒントはありません。 - ハードウェアの交換を始める前に少し見守る必要があるようです。

答え1

これは、RAIDの2つのメンバー間の同期が互いに同期していないことを示すようです。

1. 調査日誌

dmesgログを調べて、アレイを構成する物理HDDにハードウェア障害を示すメッセージがあることを確認します。

2. mdadmを確認してください

mdadm以下のようにスイッチを使用して、--detail再同期に関する詳細情報を見つけることもできます。

$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 00.90.03
  Creation Time : Sat Jan 26 09:14:11 2008
     Raid Level : raid1
     Array Size : 976759936 (931.51 GiB 1000.20 GB)
  Used Dev Size : 976759936 (931.51 GiB 1000.20 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Fri Jan  1 01:29:16 2010
          State : clean, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 50% complete

           UUID : 37a3bfcb:41393031:23c133e6:3b879f08
         Events : 0.2178969

    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       1       8       17        1      active sync   /dev/sdb1

どちらのデバイスも大丈夫で、どのデバイスが問題を引き起こしているのか正確にわからない場合は、各HDDでHDAT2やSpinRiteなどの診断ツールを一時的に実行してステータスを確認する必要があります。

3. 配線

ハードドライブがチェックされたら、ケーブル接続チェックを開始し、通常は交換します。

4. コントローラ

次に、コントローラ自体を詳しく見て、影響を受けるシステムからドライブを取り外し、セカンダリシステムで診断するか、影響を受けるシステムにサードパーティのコントローラカードを追加して問題をさらに診断します。

5. 電源装置

信じられないかもしれませんが、私は過去にHDDやRAIDの問題を経験したことがあり、故障したり故障した電源装置を交換したりすると、RAID状態の問題が解決されました。

答え2

cronファイルを確認してください。多くのディストリビューションは、週に一度スケジュールされた再同期/再確認を実行します。

CentOS 7.1では/etc/cron.d/raid-checkにあります。

# Run system wide raid-check once a week on Sunday at 1am by default
0 1 * * Sun root /usr/sbin/raid-check

動作を設定するには、/etc/sysconfig/raid-checkを編集します。

答え3

Debian では、以下で行われます。

/etc/cron.d/mdadm

障害がある:

chmod -x /usr/share/mdadm/checkarray

cron ジョブは、checkarray実行前に実行可能であることを確認します。

また、見ることができます。

答え4

最新のUbuntu(22.04以降)では、システムタイマーによって開始されたCRON操作によってRAIDが確認/再同期されます。

$ systemctl list-timers
NEXT                        LEFT                LAST                        PASSED        UNIT                           ACTIVATES                       
___________________________________________________________________________________________________________________________________________________
Tue 2023-06-06 12:52:04 PDT 5h 17min left       Mon 2023-06-05 02:36:42 PDT 1 day 4h ago  mdmonitor-oneshot.timer        mdmonitor-oneshot.service
Sun 2023-07-02 22:17:28 PDT 3 weeks 5 days left Sun 2023-06-04 21:31:43 PDT 1 day 10h ago mdcheck_start.timer            mdcheck_start.service
n/a                         n/a                 Tue 2023-06-06 03:17:46 PDT 4h 16min ago  mdcheck_continue.timer         mdcheck_continue.service

(他のタイマーは表示されません)

他の人が述べたように、彼らはあなたのデータが安全であることを確認するために少なくとも月に一度これを行いますmdcheckresyncデータ(テラバイト)が多いと時間がかかることがあります。

show次のコマンドを使用すると、各項目に関する詳細情報を取得できます。

systemctl show mdcheck_start

これで検査が始まります。終了したことを確認してくださいmdcheck_continue(再起動により中断された場合)。

小切手はどのように機能しますか?

mdadmマニュアルページを見ると、次のようになります。

_ --action= _

すべてのMDデバイスにアイドル、停止、確認、修理のいずれかの「sync_action」を設定します。アイドルに設定すると、現在実行中のジョブは中断されますが、一部のジョブは自動的に再開されます。凍結に設定すると、現在のジョブが中断され、他のジョブは自動的に開始されません。

チェックと修理の詳細については、「Scrubs and Mismatches」の下のmd(4)にあります。

だから私たちはそうします:

man md

そしてスクラブを検索してください...

こすって一致しない

ストレージデバイスはいつでも不良ブロックを作成できるため、アレイ内のすべてのデバイスのすべてのブロックを定期的に読み取り、できるだけ早くこれらの不良ブロックを取得することが重要です。このプロセスをスクラビングといいます。

md 配列は、デバイスの sysfs ディレクトリにある md/sync_action ファイルにスキャンまたはリカバリを作成することでクリーンアップできます。

[...]

このsystemctlコマンドは回復ジョブを md に送信し、続行するとコマンドが実際に実行されていることが確認されます。これにより、再起動プロセスがプロセスを完全に中断して再起動できます。

関連情報