Новий md масив доступний лише для читання та має відновлення = 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>

Але я все ж хотів би знати, що тут відбувається, і не можу знайти про це реальної інформації. Хтось знає, чому масив за замовчуванням до цього стану?

EDIT: додано вихід 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 Я додав рядки dmesg, які вчора були записані в syslog, часовий пояс UTC + 1 (я перезавантажив машину, тому більше не маю доступу до оригінального dmesg). Наскільки я не можу сказати, нічого незвичайного.
Мартін фон Віттіч

Цікаво, які версії для ядра та mdadm у вас є ...
derobert

@derobert Linux ім'я хоста 3.10-0.bpo.3-686-pae №1 SMP Debian 3.10.11-1 ~ bpo70 + 1 (2013-09-24) i686 GNU / Linux
Мартін фон Віттіч

@derobert mdadm - v3.2.5 - 18 травня 2012, від Debian wheezy
Мартін фон Віттіч

Відповіді:


25

Коли масив спочатку збирається, він розміщується в режимі "автоматичного читання". Я швидко перевірив, що з моїм ядром (3.10.x) та mdadm (3.3) це не відбувається під час створення - але ви повинні мати різні версії.

Однак автоматичне читання не є помилкою, а також не про що турбуватися. Основна ідея, що стоїть за ним, - зробити --assemble(і, мабуть, тепер, навіть --create) безпечнішим: нічого не записується на диски, поки масив не перейде до читання-запису. (Я не впевнений, чи, можливо, метадані все ще записані на create.)

Масив автоматично переключиться з автоматичного читання лише в режим читання-запису, коли він отримає своє перше записування. Отже, якби ви пішли вперед і створили файлову систему на пристрої, або фізичний об'єм LVM, або будь-що інше, він перейшов би на читання-запис і розпочав синхронізацію.

Єдина причина, яку вам потрібно буде запустити mdadm --readwriteна ній, це якщо ви хочете, щоб вона синхронізувалася перед тим, як виконувати будь-які записи.


Хм ... чи почне вона синхронізуватися безпосередньо після першого запису, щоб автоматичне читання лише затримувало синхронізацію?
Мартін фон Віттіч

@MartinvonWittich Так, воно почне синхронізуватися відразу після першого запису. Так, так, це затримує його - як правило, на кілька секунд, як зазвичай ви робите щось ( pvcreate, mkfsі т.д.) з новим масивом досить скоро після --create.
derobert

"Ви повинні працювати з різними версіями" - здогадка? Я використовую найновіші версії і не можу запам'ятати цю поведінку жодної старішої версії. Якщо @MartinvonWittich зробив щось, про що він нам не розповідав (як перезавантаження після створення), це зовсім не пояснює, що сталося.
frostschutz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.