Es un problema relativamente común cuando algo sale mal en una SAN para que ext3 detecte los errores de escritura del disco y vuelva a montar el sistema de archivos de solo lectura. Eso está muy bien, solo cuando la SAN está reparada no puedo entender cómo volver a montar el sistema de archivos de lectura-escritura sin reiniciar.
Mirad:
[root@localhost ~]# multipath -ll
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][active]
\_ 1:0:0:1 sdb 8:16 [active][ready]
\_ 2:0:0:1 sdc 8:32 [active][ready]
[root@localhost ~]# mount /dev/mapper/mpath0 /mnt/foo
[root@localhost ~]# touch /mnt/foo/blah
Todo bien, ahora saco el LUN de debajo.
[root@localhost ~]# touch /mnt/foo/blah
[root@localhost ~]# touch /mnt/foo/blah
touch: cannot touch `/mnt/foo/blah': Read-only file system
[root@localhost ~]# tail /var/log/messages
Mar 18 13:17:33 localhost multipathd: sdb: tur checker reports path is down
Mar 18 13:17:34 localhost multipathd: sdc: tur checker reports path is down
Mar 18 13:17:35 localhost kernel: Aborting journal on device dm-2.
Mar 18 13:17:35 localhost kernel: Buffer I/O error on device dm-2, logical block 1545
Mar 18 13:17:35 localhost kernel: lost page write due to I/O error on dm-2
Mar 18 13:17:36 localhost kernel: ext3_abort called.
Mar 18 13:17:36 localhost kernel: EXT3-fs error (device dm-2): ext3_journal_start_sb: Detected aborted journal
Mar 18 13:17:36 localhost kernel: Remounting filesystem read-only
Solo piensa que es de solo lectura, en realidad ni siquiera está allí.
[root@localhost ~]# multipath -ll
sdb: checker msg is "tur checker reports path is down"
sdc: checker msg is "tur checker reports path is down"
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=0][hwhandler=0][rw]
\_ round-robin 0 [prio=0][enabled]
\_ 1:0:0:1 sdb 8:16 [failed][faulty]
\_ 2:0:0:1 sdc 8:32 [failed][faulty]
[root@localhost ~]# ll /mnt/foo/
ls: reading directory /mnt/foo/: Input/output error
total 20
-rw-r--r-- 1 root root 0 Mar 18 13:11 bar
Cómo todavía recuerda que ese archivo 'bar' está allí ... misterio, pero no importante en este momento. Ahora vuelvo a presentar el LUN:
[root@localhost ~]# tail /var/log/messages
Mar 18 13:23:58 localhost multipathd: sdb: tur checker reports path is up
Mar 18 13:23:58 localhost multipathd: 8:16: reinstated
Mar 18 13:23:58 localhost multipathd: mpath0: queue_if_no_path enabled
Mar 18 13:23:58 localhost multipathd: mpath0: Recovered to normal mode
Mar 18 13:23:58 localhost multipathd: mpath0: remaining active paths: 1
Mar 18 13:23:58 localhost multipathd: dm-2: add map (uevent)
Mar 18 13:23:58 localhost multipathd: dm-2: devmap already registered
Mar 18 13:23:59 localhost multipathd: sdc: tur checker reports path is up
Mar 18 13:23:59 localhost multipathd: 8:32: reinstated
Mar 18 13:23:59 localhost multipathd: mpath0: remaining active paths: 2
Mar 18 13:23:59 localhost multipathd: dm-2: add map (uevent)
Mar 18 13:23:59 localhost multipathd: dm-2: devmap already registered
[root@localhost ~]# multipath -ll
mpath0 (36001f93000a310000299000200000000) dm-2 XIOTECH,ISE1400
[size=1.1T][features=1 queue_if_no_path][hwhandler=0][rw]
\_ round-robin 0 [prio=2][enabled]
\_ 1:0:0:1 sdb 8:16 [active][ready]
\_ 2:0:0:1 sdc 8:32 [active][ready]
Genial verdad? Dice [rw] allí mismo. No tan rapido:
[root@localhost ~]# touch /mnt/foo/blah
touch: cannot touch `/mnt/foo/blah': Read-only file system
OK, no lo hace automáticamente, solo daré un pequeño empujón:
[root@localhost ~]# mount -o remount /mnt/foo
mount: block device /dev/mapper/mpath0 is write-protected, mounting read-only
Que diablos eres:
[root@localhost ~]# mount -o remount,rw /mnt/foo
mount: block device /dev/mapper/mpath0 is write-protected, mounting read-only
Noooooooooo
He intentado todo tipo de diferentes comandos mount / tune2fs / dmsetup y no puedo encontrar la manera de hacer que no marque el dispositivo de bloque como protegido contra escritura. El reinicio lo arreglará, pero preferiría hacerlo en línea. Una hora de búsqueda en Google no me ha llevado a ninguna parte tampoco. Sálvame ServerFault.
Respuestas:
Recientemente me encontré con este problema y lo resolví reiniciando, pero después de una investigación más profunda, parece que emitir el siguiente comando podría solucionarlo.
Creo que es posible que desee ver la sección 25.14.4: Cambio del estado de lectura / escritura de una unidad lógica en línea en este documento , sin embargo, le recomiendo reiniciar.
fuente
Intenta usar:
fuente
mount -rw /mnt/foo
, así que este me parece el más adecuado.Soy un fanático de prevenir el problema en primer lugar. La mayoría de las cajas UNIX empresariales volverán a intentar operaciones del sistema de archivos como siempre. Usted como administrador debe hacer algunos deberes antes de ajustar su configuración de MPIO. Si su aplicación debe esperar hasta que el dispositivo vuelva a un estado utilizable, entonces aquí hay una solución. En su /etc/multipath.conf asegúrese de que el tipo de dispositivo que le interesa tenga una configuración para "no_path_retry" establecida en "cola". Establecer esto hará que las E / S fallidas se pongan en cola hasta que haya una ruta válida. Hemos hecho esto para que nuestros cuadros EMC Symmtrix / DMX funcionen sobre el hipo en ciertas condiciones, fallas / recuperación de la unidad / controlador / ruta srdf.
Este enfoque ha ahorrado nuestro tocino innumerables veces y es nuestro estándar para cientos de cajas en una SAN multicabinet / multivendor con replicación para recuperación ante desastres.
Solo pensé que podría compartir con todos ustedes. Cuídate.
fuente
Tuve el problema, que resolví usando hdparm con la
-r
opción en subunidades de dispositivos lógicos y de múltiples rutas.fuente
¿Cree que está relacionado con la sección de este documento titulada ¿Por qué los sistemas de archivos ext3 en mi Red de área de almacenamiento (SAN) se vuelven repetidamente de solo lectura ?
Es un artículo bastante antiguo y habla sobre el canal de fibra, pero puede estar relacionado con su problema.
fuente
Corrupción del sistema de archivos? Tratar:
Si está limpio de errores, entonces debe escanear y limpiar.
fuente
Linux simplemente no se adapta suficientemente bien a las SAN de mediana y gran escala. DEBE darle un poco de cuidado y ajustar los tiempos de espera de E / S y el manejo de tiempo de espera de múltiples rutas, todos están más o menos en los valores predeterminados listos para escritorio.
(¿Recuerda "rechazar IO al dispositivo muerto"?)
fuente