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…
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
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
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Saludos, mi duda, una vez declarado el mp nfs en proxmox y asignado a una CT, el backup no incluira el contenido del mp nfs?
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
no lo incluye, eso es lo mejor que tiene
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
Warning: Undefined array key 1 in /var/www/html/sysadminsdecuba/wp-content/plugins/wp-useragent/wp-useragent-detect-os.php on line 668
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.
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ó