¿Corrección del sistema de archivos de solo lectura de Ubuntu VM?

9

Iba a instalar las herramientas VMWare en una máquina virtual del servidor Ubuntu, pero me encontré con el problema de no poder crear un directorio cdrom en el directorio / mnt. Luego probé para ver si era solo un problema de permisos, pero ni siquiera podía crear una carpeta en el directorio de inicio. Sigue afirmando que es un sistema de archivos de solo lectura. Sé un poco sobre Linux, y todavía no me siento cómodo con él. Cualquier consejo sería muy apreciado.

Información solicitada de un comentario:

username @ servername : ~ $ mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc on / proc type proc (rw)
none on / sys type sysfs (rw, noexec, nosuid, nodev)
none on / sys / fs / fuse / connections tipo fusectl (rw)
none on / sys / kernel / debug type debugfs (rw)
none on / sys / kernel / security type securityfs (rw)
udev on / dev type tmpfs (rw, mode = 0755)
ninguno en / dev / pts tipo devpts (rw, noexec, nosuid, gid = 5, mode = 0620)
ninguno en / dev / shm tipo tmpfs (rw, nosuid, nodev)
ninguno en / var / run tipo tmpfs (rw , nosuid, mode = 0755)
ninguno en / var / lock tipo tmpfs (rw, noexec, nosuid, nodev)
ninguno en / lib / init / rw tipo tmpfs (rw, nosuid, mode = 0755) binfmt_misc en / proc / sys / fs / binfmt_misc tipo binfmt_misc (rw, noexec, nosuid, nodev)

Para una salida raíz segura.

root @ server01: ~ # mount
/ dev / sda1 on / type ext4 (rw, errors = remount-ro)
proc on / proc type proc (rw)
none on / sys type sysfs (rw, noexec, nosuid, nodev)
none on / sys / fs / fuse / connections tipo fusectl (rw)
none on / sys / kernel / debug type debugfs (rw)
none on / sys / kernel / security type securityfs (rw)
udev on / dev type tmpfs (rw, mode = 0755)
ninguno en / dev / pts tipo devpts (rw, noexec, nosuid, gid = 5, mode = 0620)
ninguno en / dev / shm tipo tmpfs (rw, nosuid, nodev)
ninguno en / var / run tipo tmpfs (rw , nosuid, mode = 0755)
ninguno en / var / lock tipo tmpfs (rw, noexec, nosuid, nodev)
ninguno en / lib / init / rw tipo tmpfs (rw, nosuid, mode = 0755) binfmt_misc en / proc / sys / fs / binfmt_misc tipo binfmt_misc (rw, noexec, nosuid, nodev)

texto alternativo

texto alternativo

David
fuente
1
¿Puede imprimir la salida del comando "montar"? (no se necesitan parámetros)
pgruetter
Agregado a la respuesta. Gracias por pedir información útil.
David
Solo para estar seguro: "sudo mkdir / mnt / cdrom" falla, ¿verdad?
Janne Pikkarainen
Lo que me confunde es que dice que es un sistema de archivos de solo lectura. La salida del comando indica "rw", que es el sistema de archivos de lectura y escritura. Entonces el sistema de archivos en sí mismo debería estar bien. ¿En qué carpeta estás tratando de escribir? ¿También puede dar la salida de "ls -la <the_folder>"?
pgruetter
Agregué una imagen en la parte inferior que es una imagen de lo que obtengo cuando hago el comando solicitado. Avísame si necesitas que haga algo más. :)
David

Respuestas:

16

Aunque esta es una pregunta relativamente antigua, la respuesta sigue siendo la misma. Tiene una máquina virtual (que se ejecuta en un host físico) y algún tipo de almacenamiento (ya sea almacenamiento compartido (FC SAN, almacenamiento iSCSI, un recurso compartido NFS) o almacenamiento local).

Con la virtualización, muchas máquinas virtuales intentan acceder a los mismos recursos físicos al mismo tiempo. Debido a limitaciones físicas (número de operaciones de lectura / escritura - IOPS; rendimiento; latencia) puede haber un problema para satisfacer todas las solicitudes de almacenamiento de todas las máquinas físicas al mismo tiempo. Lo que suele suceder: podrá ver "reintentos SCSI" y operaciones SCSI fallidas en los sistemas operativos de sus máquinas virtuales. Si obtiene demasiados errores / reintentos en un determinado período de tiempo, el núcleo configurará los sistemas de archivos montados de solo lectura para evitar daños en el sistema de archivos.

Para abreviar la larga historia: su almacenamiento físico no es lo suficientemente "poderoso". Hay demasiados procesos (máquinas virtuales) que acceden al sistema de almacenamiento al mismo tiempo, sus máquinas virtuales no obtienen la respuesta del almacenamiento lo suficientemente rápido y el sistema de archivos pasa a ser de solo lectura.

No hay terriblemente muchas cosas que puedes hacer. La solución obvia es mejor / almacenamiento adicional. También puede modificar los parámetros para tiempos de espera SCSI en el kernel de Linux. Los detalles se describen, por ejemplo, en:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009465

http://www.cyberciti.biz/tips/vmware-esx-server-scsi-timeout-for-linux-guest.html

Sin embargo, esto solo "pospondrá" sus problemas, porque el núcleo solo obtiene más tiempo antes de que el sistema de archivos se configure como de solo lectura. (Es decir, no resuelve la causa del problema).

Mi experiencia (varios años con VMware) es que este problema solo existe con los núcleos de Linux (estamos usando RHEL y SLES) y no con los servidores de Windows. Además, este problema se produce en todo tipo de almacenamiento: FC, iSCSI, almacenamiento local. Para nosotros, el componente más crítico (y costoso) en nuestra infraestructura virtual es el almacenamiento. (Ahora estamos usando HP LeftHand con conexiones iSCSI de 1 Gbps, y no hemos tenido problemas de almacenamiento desde entonces. Elegimos LeftHand (sobre las soluciones FC tradicionales) por su escalabilidad.

Josef
fuente
¡Guauu! Gran respuesta. Me olvidé por completo de esta pregunta. He marcado su respuesta como la aceptada. El centro de datos con el que trabajo actualmente (que es un gran socio de VMWare) ha actualizado recientemente su almacenamiento a un Hitachi Pod. En realidad, estamos agregando otro pod al entorno para ayudar a la carga de IOP porque comenzamos a encontrar problemas adicionales con los IOP (antes de enfatizar que necesitábamos actualizar o expandir los recursos SAN). Así que en el pasado pasado, hemos aumentado nuestros recursos SAN nuevamente.
David
4

Una explicación probable es que hay un problema de hardware (falla parcial del disco), y que el núcleo volvió a montar el sistema de archivos raíz como de solo lectura tan pronto como detectó el problema, para minimizar el problema. Una forma más confiable de verificar las opciones de montaje actuales es cat /proc/mounts( grep ' / ' /proc/mountspara el sistema de archivos raíz, ignore una rootfs / …línea que es un artefacto del proceso de arranque). Probablemente encontrará que rw,errors=remount-roha cambiado a ro(se pueden mostrar otras opciones además).

Los registros del kernel probablemente contienen el mensaje Remounting filesystem read-only, precedido por errores de acceso al disco. Los registros normalmente viven /var/log/kern.log, sin embargo, si esto está en un sistema de archivos ahora de solo lectura, el mensaje no aparecerá allí, aunque deberían aparecer los errores anteriores. También puede ver los últimos errores del kernel con el dmesgcomando.

Por otro lado, en Ubuntu, el lugar habitual para los puntos de montaje (utilizado por la interfaz de escritorio) está debajo /media(por ejemplo /media/cdrom0), aunque puede usarlo /mnto /mnt/cdromsi lo desea.

¹ informes de . Si el sistema de archivos raíz es de solo lectura, no se puede mantener actualizado. mount/etc/mtab/etc/mtab

Gilles 'SO- deja de ser malvado'
fuente
Lo único del hardware defectuoso es que se trata de una máquina virtual, por lo tanto, no podría ser un problema de hardware, ya que hay cientos de máquinas virtuales en los hosts físicos y la mía es la única con un problema. Revisaré los registros del núcleo e intentaré poner una captura de pantalla en la pregunta.
David
Si tiene un límite de tamaño en su disco duro virtual y está lleno, Ubuntu no podrá escribir, tal como se muestra arriba. Podrías comprobarlo.
CarlF
@David: los registros muestran que Linux encontró un problema de hardware, solo el hardware es virtual. Encuentro la hipótesis de CarlF altamente plausible.
Gilles 'SO- deja de ser malvado'
3

Lo que sucedió fue que hubo una falla de energía en el centro de datos recientemente. Desde entonces, no he tocado mi servidor. Una vez que nuestro centro de datos pierde energía, VSphere hace que el sistema de archivos de Ubuntu lea solo hasta que se reinicie. Hubiera intentado reiniciar pero no quería que todo el monitoreo se volviera loco. He silenciado a Nagios (servicio de monitoreo) y todo funciona bien ahora que reinicié el sistema. Gracias por todos los aportes. Es muy apreciado.

David
fuente
1

Puede ser obvio, pero ¿eres un usuario "root" cuando intentas hacer esto? / mnt es propiedad de root y solo se puede escribir por root. También puede verificar si tuvo errores en el arranque. Su salida anterior dice que / (y, por lo tanto, / mnt) debe volver a leerse solo si el proceso de arranque ve errores. Puede cambiar esto (es decir, volver a montar como r / w) con el comando mount, pero no lo haría a menos que esté seguro de que lo que haya causado el error no es grave.

hotei
fuente
Puede que no haya estado en una raíz por accidente cuando hice eso, pero creo que la salida es la misma. La salida raíz segura está debajo de la primera salida.
David