
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/nfs
es 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 /boot
localmente). 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-initramfs
basado 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=nfs
es 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 /boot
como una partición local, separada de /
, si aún no lo está.
No utilizar cp -rp /* /storage/nfs/myvmroot
para copiar archivos., eso no funcionaría. Debe excluir los sistemas de archivos montados de la copia. Pasa la -x
opción. Además, use -a
en lugar de -rp
, hay atributos que -rp
no 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 /usr
Ubuntu 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/log
pero /var
no 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/sh
y todo lo /bin
que 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
/usr
Por 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.