TIPS – NFS de Proxmox montado en contenedores(CT)

Hoy vamos a mostrar como montar el espacio NFS que añadimos a nuestro PVE en nuestros contenedores (CT).

Vamos a usar unos de los comandos del sistema df (informe el uso del espacio de disco del sistema de archivos) con la opción -h que es legible por humanos para que muestre los datos en GB. Este comando te va a devolver una lista como la siguiente:

root@pve:~# df -h
Filesystem                        Size  Used Avail Use% Mounted on
udev                              7.8G     0  7.8G   0% /dev
tmpfs                             1.6G  138M  1.5G   9% /run
rpool/ROOT/pve-1                  1.3T  2.5G  1.3T   1% /
tmpfs                             7.9G   60M  7.8G   1% /dev/shm
tmpfs                             5.0M     0  5.0M   0% /run/lock
tmpfs                             7.9G     0  7.9G   0% /sys/fs/cgroup
rpool                             1.3T  128K  1.3T   1% /rpool
rpool/ROOT                        1.3T  128K  1.3T   1% /rpool/ROOT
rpool/data                        1.3T   11G  1.3T   1% /rpool/data
rpool/data/subvol-1111101-disk-1   20G  903M   20G   5% /rpool/data/subvol-1111101-disk-1
/dev/fuse                          30M   24K   30M   1% /etc/pve
10.0.0.9:/storage/nfs/salvas    917G  309G  562G  36% /mnt/pve/NFSSalvas
tmpfs                             1.6G     0  1.6G   0% /run/user/0

Como pueden ver el servidor tiene agregado el volumen NFS /mnt/pve/NFSSalvas.

Para este articulo vamos a usar el contenedor 100, y la utilidad pct «Proxmox Container Toolkit», tengan en cuenta que esta utilidad esta disponible desde el cambio a LXC, para versiones con OpenVZ la utilidad era vzctl.
Usando esta utilidad revisaremos la configuración de nuestro contenedor:

root@pve:~# pct config 100
arch: amd64
cores: 1
hostname: adc1.sysadminsdecuba.com
memory: 512
nameserver: 10.0.0.1 10.0.0.2
net0: name=eth0,bridge=vmbr0,gw=10.0.0.254,hwaddr=42:D9:47:7E:D1:A9,ip=10.0.0.101/24,type=veth
ostype: ubuntu
rootfs: local-zfs:subvol-100-disk-1,size=20G
searchdomain: sysadminsdecuba.com
swap: 512

Para montar el espacio NFS entramos al contenedor, podemos hacerlo abriendo una nueva consola pero vamos a darle utilidad a pct:

## entramos al namespace del contenedor como root
pct enter 100

Una vez dentro del contenedor creamos una carpeta que es donde vamos a vincular la ruta del NFS en este caso sera en /opt/nfsct.

Después de crear la carpeta salimos del contenedor y en el servidor PVE vamos a la configuración para agregarle la linea que servirá para montar el NFS en la carpeta que acabamos de crear vamos al archivo de configuración del contenedor y agregamos la linea:

lxc.mount.entry: /mnt/pve/NFSSalvas /opt/ntfsct none rw,bind 0.0

Para agregar la linea voy a usar como editor nano que viene por defecto, seria como sigue:

nano /etc/pve/nodes/pve/lxc/100.conf

Después de guardarlo verificamos que este en fichero de configuración del contenedor y vemos que tiene la linea que hemos agregado.

root@pve:~# pct config 100
arch: amd64
cores: 1
hostname: adc1.sysadminsdecuba.com
memory: 512
nameserver: 10.0.0.1 10.0.0.2
net0: name=eth0,bridge=vmbr0,gw=10.0.0.254,hwaddr=42:D9:47:7E:D1:A9,ip=10.0.0.101/24,type=veth
ostype: ubuntu
rootfs: local-zfs:subvol-100-disk-1,size=20G
searchdomain: sysadminsdecuba.com
swap: 512
lxc.mount.entry: /mnt/pve/NFSIsos /opt/ntfsct none rw,bind 0.0

Reiniciamos el contenedor, entramos a el y verificamos el contenido de la carpeta.

## entramos al namespace del contenedor como root
pct enter 100
## ls /opt/nfsct

El contenido es exactamente el mismo que tenemos en la carpeta NFS del servidor. Esto es muy útil para tener en lugares donde tengas mayor almacenamiento y para hacer contenedores solo con el espacio de disco necesario para el OS.

Agregando comentarios de Pavel Milanes Costa de la utilidad y lo que ayuda tener esta configuración:

Esto es muy útil para por ejemplo un server de correos, en el CT pongo el server y la carpeta de almacén de correos está en el NFS montada por este método en /home/vmail/ así al hacer una salva (backup) del CT no me llevo los X GB de correos porque se quedan en el NAS.

Está lógica se puede utilizar para por ejemplo la carpeta /var/www/html de un server web, un server samba4 con los profiles móviles de un dominio montado en /home/samba, etc.

Otros detalles interesantes:
* Como los archivos está montados a nivel de Clúster y no localmente cuando mueves un CT este encontrará la carpeta en el lugar exacto en el otro nodo, por lo que el downtime es despreciable.
* Como los archivos está montados a nivel de Clúster y no localmente, puedes tener varias instancias trabajando en diferentes nodos o incluso en un mismo nodo del cluster para incrementar la capacidad, estoy pensando por ejemplo en 2+ servers SMTP/POP/IMAP/WEB/FTP para servir un dominio nacional desde VPN con alta demanda. (piensen en varias instancias docker sirviendo el mismo servicio con los archivos físicos compartidos)
* Al tener el NFS montado solo en un puñado de IPS (Cluster nodes) puedes usar una seguridad mejor y mas ajustada sobre el NFS a diferencia de cuando usas varios CT que debes manejarlos a cada uno. (en concordancia con la filosofía “set & forget” de los sysadmins vagos)
* Esto es “casi” lo mismo que usar NFS dentro de un CT pero con el inconveniente que versiones de Proxmox viejas no tomaban en cuenta y te metían en contenido del mount point dentro del backup. Verificado que Proxmox 5.0 en adelante excluye el NFS montado, en versiones anteriores esto daba palos.
* Sin ánimo de crear una Flame War yo personalmente recomiendo esta opción por se más atómica y con menos puntos de fallos que la versión de montar el NFS dentro del CT.

Saludos, hasta un próximo articulo…

 

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 2

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Sobre Rafael L. Salgueiro 12 artículos
Administrador de redes y sistemas. Melómano, hedonista Usuario de GNU/Linux, Linux-User: #418573. Amante de las tecnologías en general.

7 comentarios

  1. Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36

    Excelente, me sirvio de mucho, ya lo tengo implementado

  2. Firefox 64.0 Firefox 64.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0

    Mano no me pincha, hago paso a paso lo que me dices y no carga los puntos de montajes en el contenedor, que podria revisar para ver la causa del error, saludos

  3. Firefox 58.0 Firefox 58.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

    Esto no es lo mismo que usar un mount point MP0??? Desde la webUI podremos declararlo. Otra forma seria, sin tener que editar el conf del ct, declarar en el fstab del ct el montaje del nfs. Una solucion que veo mas facil. Seria algo como esto
    # UNCONFIGURED FSTAB FOR BASE SYSTEM
    ipdelservernfs:/carpeta/a/compartir /carpeta/montada nfs auto 0 0
    espero les sirva
    alex out


  4. Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
    Firefox 58.0 Firefox 58.0 Ubuntu x64 Ubuntu x64
    Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0

    Yep, eso lo vengo utilizando desde hace tiempo y lo tengo montado en varios de mis clientes en Camagüey.

    Un detalle curioso que no mencionas y que es importante, en la linea:

    lxc.mount.entry: /mnt/pve/NFSIsos opt/ntfsct none rw,bind 0.0

    No notan nada raro?

    Sipe, el mount point destino no tiene el «/» de la referencia de la raíz, esto es una característica exigida, o sea no pueden poner el / de la raíz porque como es un CT al ejecutar el mount del CT dará error pues el crea la referencia dinámicamente.

    Esto es muy útil para por ejemplo un server de correos, en el CT pongo el server y la carpeta de almacén de correos está en el NFS montada por este método en /home/vmail/ así al hacer una salva (backup) del CT no me llevo los X GB de correos porque se quedan en el NAS.

    Está lógica se puede utilizar para por ejemplo la carpeta /var/www/html de un server web, un server samba4 con los profiles móviles de un dominio montado en /home/samba, etc.

    Otros detalles interesantes:
    * Como los archivos está montados a nivel de Clúster y no localmente cuando mueves un CT este encontrará la carpeta en el lugar exacto en el otro nodo, por lo que el downtime es despreciable.
    * Como los archivos está montados a nivel de Clúster y no localmente, puedes tener varias instancias trabajando en diferentes nodos o incluso en un mismo nodo del cluster para incrementar la capacidad, estoy pensando por ejemplo en 2+ servers SMTP/POP/IMAP/WEB/FTP para servir un dominio nacional desde VPN con alta demanda. (piensen en varias instancias docker sirviendo el mismo servicio con los archivos físicos compartidos)
    * Al tener el NFS montado solo en un puñado de IPS (Cluster nodes) puedes usar una seguridad mejor y mas ajustada sobre el NFS a diferencia de cuando usas varios CT que debes manejarlos a cada uno. (en concordancia con la filosofía «set & forget» de los sysadmins vagos)
    * Esto es «casi» lo mismo que usar NFS dentro de un CT pero con el inconveniente que versiones de Proxmox viejas no tomaban en cuenta y te metían en contenido del mount point dentro del backup. Verificado que Proxmox 5.0 en adelante excluye el NFS montado, en versiones anteriores esto daba palos.
    * Sin ánimo de crear una Flame War yo personalmente recomiendo esta opción por se más atómica y con menos puntos de fallos que la versión de montar el NFS dentro del CT.

    Saludos, Pavel, CO7WT.

    • Firefox 58.0 Firefox 58.0 Windows 10 x64 Edition Windows 10 x64 Edition
      Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:58.0) Gecko/20100101 Firefox/58.0

      pavel @CO7WT, gracias por la corrección del «/», ya esta arreglado, y gracias por enriquecer el artículos con las.
      @alexminator hay varias formas de hacer las cosas, esta la comparto de algo que escribió

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*