0 votos

Evitar que el sistema de archivos se bloquee cuando el recurso compartido NFS automount de la VM desaparece

Hago mucho desarrollo de aplicaciones web, y ejecuto una VM de Fedora en mi Mac para simular el entorno del servidor. Mientras tanto, ejecuto el IDE en el lado de Mac, y requiere un sistema de archivos local para hacer cambios. Hm.

Resolví este problema exportando mis directorios de código en Fedora a través de NFS y utilizando automount en el lado de Mac para montar automáticamente los recursos compartidos según fuera necesario:

\# fedora:/etc/exports
/var/vhosts/ 192.168.182.1(rw,insecure,all\_squash,anonuid=1000,anongid=1000)

# mac:/etc/auto\_master
...
/vhosts auto\_vhosts

# mac:/etc/auto\_vhosts
\* fedora:/var/vhosts/&

Me encanta esta configuración porque simplemente funciona y no necesita mantenimiento... siempre y cuando mi máquina virtual esté funcionando.

Sin embargo, si suspendo o apago mi VM, todo se vuelve loco. Cualquier operación relacionada con el sistema de archivos tarda una eternidad (incluso acciones aparentemente no relacionadas, como el lanzamiento de iTunes o el apagado de mi sistema), y la consola se llena con un montón de mensajes de KernelEventAgent sobre el montaje que no responde.

El problema persiste hasta que restauro el estado de mi máquina virtual.

Una forma de solucionar este problema es dejar siempre mi máquina virtual en funcionamiento, pero eso consume una tonelada de RAM, y preferiría poder suspender mi máquina virtual para, por ejemplo, juegos u otras aplicaciones que consuman muchos recursos y que yo quiera ejecutar.

¿Existe una forma de mantener mi configuración actual de automontaje, pero con la flexibilidad de suspender mi VM y hacer que mi Mac deje de bloquear las operaciones del sistema de archivos a la espera de que la conexión NFS agote el tiempo de espera?

1voto

He descubierto que umount -solicitar el recurso compartido también resolverá el problema cada vez que suspenda mi VM.

No es una solución perfecta, ya que hay que hacerlo manualmente, pero funciona.

Por ejemplo:

  1. sudo umount /vhosts
  2. (suspender VM)
  3. sudo automount -vc

No he probado si el paso 3 es necesario, pero supongo que no puede hacer daño.

0voto

jamie Puntos 11

Debe añadir "intr" a sus opciones de montaje. Consulte la página man de mount_nfs para más detalles:

man mount_nfs
...
intr    Make the mount interruptible, which implies that file system calls that 
        are delayed due to an unresponsive server will fail with EINTR when a
        termination signal is posted for the process.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X