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
(他のタイマーは表示されません)
他の人が述べたように、彼らはあなたのデータが安全であることを確認するために少なくとも月に一度これを行いますmdcheck
。resync
データ(テラバイト)が多いと時間がかかることがあります。
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 に送信し、続行するとコマンドが実際に実行されていることが確認されます。これにより、再起動プロセスがプロセスを完全に中断して再起動できます。