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.