He creado una nueva matriz de md con el siguiente comando:
mdadm --create /dev/md1 -l 1 -n 2 /dev/sd[ed]1
Pero ahora /proc/mdstat
muestra la matriz como "auto-read-only" con 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>
De acuerdo con este sitio , puedo solucionar esto con:
mdadm --readwrite /dev/md1
Y eso funciona:
~ # 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>
Pero todavía me gustaría saber qué está pasando aquí, y no puedo encontrar ninguna información real al respecto. ¿Alguien sabe por qué la matriz predeterminada a este estado?
EDITAR: salida de dmesg agregada:
~ # 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
?Respuestas:
Cuando una matriz se ensambla inicialmente, se coloca en modo de "solo lectura automática". Probé rápidamente, con mi kernel (3.10.x) y mdadm (3.3), esto no sucede en create, pero debes estar ejecutando versiones diferentes.
Sin embargo, la lectura automática no es un error, ni tampoco es algo de qué preocuparse. La idea básica detrás de esto es hacer
--assemble
(y, aparentemente ahora, incluso--create
) más seguro: no se escribe nada en los discos hasta que la matriz se convierte en lectura-escritura. (No estoy seguro de si tal vez los metadatos todavía están escritos en create).La matriz cambiará automáticamente de lectura automática a lectura-escritura cuando reciba su primera escritura. Entonces, si siguió adelante y creó un sistema de archivos en el dispositivo, o un volumen físico LVM, o lo que sea, se habría cambiado a lectura-escritura, y comenzaría la sincronización.
La única razón por la que necesitaría ejecutarlo
mdadm --readwrite
es si desea que se sincronice antes de realizar cualquier escritura.fuente
pvcreate
,mkfs
, etc.) con una nueva gama muy poco después--create
.