新しいmd配列は自動読み取り専用で、resync = PENDINGがあります


17

次のコマンドで新しいmd配列を作成しました。

mdadm --create /dev/md1 -l 1 -n 2 /dev/sd[ed]1

ただし/proc/mdstat、resync = PENDINGを指定して、配列を「自動読み取り専用」として表示します。

~ # cat /proc/mdstat 
Personalities : [raid1] 
md1 : active (auto-read-only) raid1 sde1[1] sdd1[0]
      976630336 blocks super 1.2 [2/2] [UU]
        resync=PENDING

md0 : active raid1 sdb1[0] sdc1[1]
      1953511936 blocks [2/2] [UU]

unused devices: <none>

このサイトによると、これを次の方法で修正できます。

mdadm --readwrite /dev/md1

そしてそれはうまくいきます:

~ # mdadm --readwrite /dev/md1
~ # cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sde1[1] sdd1[0]
      976630336 blocks super 1.2 [2/2] [UU]
      [>....................]  resync =  0.0% (54400/976630336) finish=598.2min speed=27200K/sec

md0 : active raid1 sdb1[0] sdc1[1]
      1953511936 blocks [2/2] [UU]

unused devices: <none>

しかし、私はまだここで何が起こっているのか知りたいです、そして、それについての本当の情報を見つけることができません。配列がデフォルトでこの状態になる理由を誰もが知っていますか?

編集:dmesg出力を追加:

~ # grep kernel /var/log/syslog.1 
Nov 13 10:03:44 iserv kernel: [160446.860113] e1000: eth1 NIC Link is Down
Nov 13 10:04:48 iserv kernel: [160511.017666] e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Nov 13 20:12:40 iserv kernel: [196982.775186]  sda: sda1
Nov 13 20:12:59 iserv kernel: [197001.598187]  sdd: sdd1
Nov 13 20:13:13 iserv kernel: [197016.344939]  sde: sde1
Nov 13 20:14:05 iserv kernel: [197067.520825] md: bind<sdd1>
Nov 13 20:14:05 iserv kernel: [197067.521263] md: bind<sde1>
Nov 13 20:14:05 iserv kernel: [197067.670215] md/raid1:md1: not clean -- starting background reconstruction
Nov 13 20:14:05 iserv kernel: [197067.670219] md/raid1:md1: active with 2 out of 2 mirrors
Nov 13 20:14:05 iserv kernel: [197067.670246] md1: detected capacity change from 0 to 1000069464064
Nov 13 20:14:05 iserv kernel: [197067.675101]  md1: unknown partition table
Nov 13 20:24:10 iserv kernel: [197672.572128] md: md1 switched to read-write mode.
Nov 13 20:24:10 iserv kernel: [197672.572269] md: resync of RAID array md1
Nov 13 20:24:10 iserv kernel: [197672.572273] md: minimum _guaranteed_  speed: 1000 KB/sec/disk.
Nov 13 20:24:10 iserv kernel: [197672.572275] md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync.
Nov 13 20:24:10 iserv kernel: [197672.572280] md: using 128k window, over a total of 976630336k.

確認しましたdmesgか?
frostschutz

@frostschutz昨日、タイムゾーンUTC + 1にsyslogに記録されたdmesg行を追加しました(元のdmesgにアクセスできなくなったため、マシンを再起動しました)。私が知る限り、異常なことは何もありません。
マーティン・フォン・ウィッティヒ

使用しているカーネルとmdadmのバージョンを
知りたい

@derobert Linuxホスト名3.10-0.bpo.3-686-pae#1 SMP Debian 3.10.11-1〜bpo70 + 1(2013-09-24)i686 GNU / Linux
Martin von Wittich

@derobert mdadmの- v3.2.5 - Debianの喘鳴から2012年5月18日、
マーティン・フォン・Wittich

回答:


25

配列が最初にアセンブルされると、「自動読み取り専用」モードになります。カーネル(3.10.x)とmdadm(3.3)を使用して、テストではすぐにテストしましたが、作成時には発生しませんが、異なるバージョンを実行する必要があります。

ただし、自動読み取り専用はエラーではなく、心配する必要もありません。その背後にある基本的な考え方は--assemble--create安全性を向上させることです(そして、明らかに、今でも)。アレイが読み書き可能になるまで、ディスクには何も書き込まれません。(作成時にメタデータがまだ書き込まれているかどうかはわかりません。)

アレイは、最初の書き込みを受信すると、自動読み取り専用から読み取り/書き込みに自動的に切り替わります。したがって、先に進んでデバイス上にファイルシステム、またはLVM物理ボリュームなどを作成すると、読み取り/書き込みに切り替わり、同期が開始されます。

実行する必要がある唯一の理由mdadm --readwriteは、書き込みを実行する前に同期する場合です。


うーん...その後、最初の書き込みの直後に同期が開始され、自動読み取り専用で同期が遅れますか?
マーティン・フォン・ウィッティヒ

@MartinvonWittichはい、最初の書き込みの直後に同期を開始します。そうです、それはそれを、一般的に遅らせる数秒で、あなたは通常、何か(やるだろうとpvcreatemkfsかなりすぐ後に新しい配列で、など)--createです。
デロバート

「異なるバージョンを実行する必要があります」は推測ですか?私は最新バージョンを使用していますが、古いバージョンではこの動作を思い出せません。@MartinvonWittichが彼が私たちに言わなかった何か(作成後の再起動など)を行わない限り、それは何が起こったかをまったく説明しません。
-frostschutz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.