¿Es seguro hacer enlaces simbólicos para toda la máquina?

¿Es seguro hacer enlaces simbólicos para toda la máquina?

Tengo una máquina virtual con cantidad limitada de almacenamiento lo cual se ha convertido en un problema. Tengo mi directorio personal vinculado al almacenamiento NFS en un servidor y ha estado funcionando sin problemas. ¡Pero ahora necesito vincular toda mi máquina a NFS y además me estoy quedando sin almacenamiento constantemente!

Sólo me pregunto si es seguro vincular toda la máquina (es decir, todo:/) al NFS?

Quiero usar los siguientes comandos para hacer eso:

/storage/nfses básicamente mi NFS montado.

$ mkdir /storage/nfs/myvmroot
$ sudo cp -rp /* /storage/nfs/myvmroot
$ sudo mv /* /old-root
$ sudo ln -s /storage/nfs/myvmroot /

Respuesta1

No se puede hacer /un enlace simbólico. Simplemente no es posible. /Tiene que ser un directorio. Si /fuera un enlace simbólico, apuntaría a alguna ruta, y para resolver esa ruta, el sistema pasaría por /, que es un enlace simbólico, por lo que debe resolverse... Un enlace simbólico que apunta debajo de sí mismo siempre causará un error cuando se desreferenciado, pero en cualquier caso, no podrá crear /un enlace simbólico ya que ya es un directorio existente.

Lo que puedes hacer y lograrás el efecto que deseas esmontarun sistema de archivos NFS como sistema de archivos raíz, en lugar de montar un sistema de archivos local como se hace habitualmente. Esto es posible y está respaldado por Ubuntu.Hay un tutorial en la wiki de la comunidad de Ubuntu.(Cubre una instalación completa sin disco, puede omitir las partes sobre TFTP si la mantiene /bootlocalmente). Mover un sistema existente es un poco diferente a realizar la instalación inicial, así que no espere seguir el tutorial al pie de la letra.

Es necesario asegurarse de que elinitramfsContiene los controladores necesarios. El initramfs es generado por el comandoupdate-initramfsbasado en la configuración actual del sistema y en los archivos de configuración en /etc/initramfs-tools. Deberá agregar explícitamente la configuración de NFS a/etc/initramfs-tools/initramfs.conf, al menos agregue una línea BOOT=nfs(creo que los otros parámetros se pueden especificar en el momento del arranque, pero BOOT=nfses necesario para incluir los controladores NFS, y DEVICE=…puede ser necesario también incluir el controlador Ethernet). Una vez que hayas modificado /etc/initramfs-tools/initramfs.conf, ejecuta update-initramfs.

Recomiendo mantenerla /bootcomo una partición local, separada de /, si aún no lo está.

No utilizar cp -rp /* /storage/nfs/myvmrootpara copiar archivos., eso no funcionaría. Debe excluir los sistemas de archivos montados de la copia. Pasa la -xopción. Además, use -aen lugar de -rp, hay atributos que -rpno se conservan.

cp -ax /* /storage/nfs/myvmroot

o, en caso de que la copia se interrumpa

rsync -axAX / /storage/nfs/myvmroot

Otra opción, probablemente más sencilla, es mantener el sistema de archivos raíz local y solo mover una parte. Generalmente obtendrá un rendimiento y una confiabilidad significativamente mejores con un sistema de archivos local que con NFS, incluso con un servidor y una red rápidos.

No puedes simplemente cortar en cualquier parte: lo que colocas de forma remota no debe ser necesario demasiado pronto en el proceso de arranque. Creo que /usrUbuntu no admite oficialmente cortar en estos días, pero sí lo es la distribución principal de Ubuntu, Debian, por lo que tiene posibilidades de funcionar. Otro lugar que tiene buenas posibilidades de trabajar es /usr/share. No lo recomiendo /var, es probable que sea una molestia si algo se rompe, ya que ahí es donde se guardan los registros. (Si el cliente NFS no está satisfecho con algo e intenta escribir registros /var/logpero /varno responde, buena suerte diagnosticando la falla).

Respuesta2

No. Eso haría que su máquina virtual no pueda arrancar. El sistema NFS se carga en un punto determinado del proceso de arranque. Antes de este punto, no se podrá acceder a ningún archivo en NFS. Esto significa que la máquina no podrá acceder a los archivos que necesita para arrancar. Estos incluyen (pero no se limitan a) el kernel en sí, el shell predeterminado /bin/shy todo lo /binque incluye los comandos necesarios para montar el recurso compartido NFS.

Entonces no, esta no es una buena idea. Más importante aún, no es necesario. La mayoría de los directorios /no son muy grandes. Simplemente identifique el que está ocupando el espacio y colóquelo allí. Debería poder mover cualquiera de los siguientes sin problemas importantes:

  • /var/cache
  • /usr/local
  • /usrPor lo general, también se puede mover, pero asegúrese de que no haya nada esencial dentro /usr/local/bin. Probablemente no lo sea, pero compruébalo.

Probablemente esos sean los que ocupan el espacio de todos modos.

información relacionada