Array md baru hanya-baca-otomatis dan memiliki sinkronisasi ulang = PENDING


17

Saya telah membuat array md baru dengan perintah berikut:

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

Tetapi sekarang /proc/mdstatmenunjukkan array sebagai "hanya-baca-otomatis" dengan 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>

Menurut situs ini saya dapat memperbaikinya dengan:

mdadm --readwrite /dev/md1

Dan itu berhasil:

~ # 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>

Tetapi saya masih ingin tahu apa yang sedang terjadi di sini, dan saya tidak dapat menemukan informasi nyata tentang itu. Adakah yang tahu mengapa array default untuk keadaan ini?

EDIT: menambahkan output 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.

Apakah kamu memeriksa dmesg?
frostschutz

@ frostschutz Saya telah menambahkan baris dmesg yang masuk ke syslog kemarin, zona waktu UTC + 1 (Saya telah me-reboot mesin sejak jadi saya tidak lagi memiliki akses ke dmesg asli). Tidak ada yang luar biasa sejauh yang saya tahu.
Martin von Wittich

Penasaran versi kernel dan mdadm yang Anda miliki ...
derobert

@derobert Linux hostname 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 - 18 Mei 2012, dari Debian wheezy
Martin von Wittich

Jawaban:


25

Ketika sebuah array awalnya dirakit, ia ditempatkan dalam mode "auto-read-only". Saya dengan cepat menguji, dengan kernel saya (3.10.x) dan mdadm (3.3), ini tidak terjadi pada pembuatan — tetapi Anda harus menjalankan versi yang berbeda.

Namun, hanya-baca-otomatis bukanlah kesalahan, juga tidak perlu dikhawatirkan. Ide dasar di baliknya adalah untuk membuat --assemble(dan, tampaknya sekarang, bahkan --create) lebih aman: Tidak ada yang ditulis ke disk sampai array berjalan baca-tulis. (Saya tidak yakin apakah mungkin metadata masih ditulis di buat.)

Array akan secara otomatis beralih dari auto-read-only menjadi read-write ketika menerima penulisan pertama. Jadi, jika Anda melanjutkan dan membuat sistem file pada perangkat, atau volume fisik LVM, atau apa pun, itu akan beralih ke baca-tulis, dan mulai sinkronisasi.

Satu-satunya alasan Anda perlu menjalankannya mdadm --readwriteadalah jika Anda ingin sinkronisasi sebelum Anda melakukan penulisan apa pun.


Hmm ... lalu mulai menyinkronkan langsung setelah penulisan pertama, sehingga hanya-baca-otomatis menunda sinkronisasi?
Martin von Wittich

@ MartinvonWittich Ya, itu akan mulai menyinkronkan setelah penulisan pertama. Jadi ya, itu penundaan itu-biasanya dengan beberapa detik, seperti yang biasa Anda akan melakukan sesuatu ( pvcreate, mkfs, dll) dengan array baru segera setelah --create.
derobert

"Anda harus menjalankan versi yang berbeda" adalah tebakan? Saya menggunakan versi terbaru dan tidak dapat mengingat perilaku ini untuk versi yang lebih lama. Kecuali @MartinvonWittich melakukan sesuatu yang tidak dia ceritakan (seperti reboot setelah buat), itu tidak menjelaskan apa yang terjadi.
frostschutz
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.