Montaje NFS mediante systemd
Introducción
En este post vamos a crear una instancia en OpensStack y anexarle un volumen de 2GB. El objetivo será configurar un servicio NFS de exportación y en el volumen anexado, un punto de montaje de la exportación mediante systemd.
Creamos el escenario
Creamos el servidor
Creamos una instancia en OpenStack con una imagen de Debian 11.
openstack server create --flavor m1.mini \
--image "Debian 11 Bullseye" \
--key-name pass \
--security-group default \
--network "red de mariajesus.alloza" \
NFS-Systemd
Le añadimos un volumen de 2GB
openstack volume create --size 2 \
--description "Volumen NFS-Systemd" \
--availability-zone "nova" \
--bootable \
nfs
Le asignamos una IP flotante.
openstack floating ip create ext-net
#IP flotante asignada:
172.22.201.229
Creamos el cliente
Creamos una instancia en OpenStack con una imagen de Debian 11.
openstack server create --flavor m1.mini \
--image "Debian 11 Bullseye" \
--key-name pass \
--security-group default \
--network "red de mariajesus.alloza" \
NFS-Systemd-Cliente
Le asignamos una IP flotante.
openstack floating ip create ext-net
#IP flotante asignada:
172.22.201.247
Configuración
Configuramos el servicio NFS
En la máquina servidor,con ip 172.22.201.229 realizamos las siguientes acciones:
- Instalamos el servicio NFS:
sudo apt install nfs-kernel-server
sudo apt install nfs-common
- Tras su instalación, vamos a habilitar y activar el servicio:
systemctl start rpcbind nfs-server
systemctl enable rpcbind nfs-server
- Comprobamos que el servicio está activo:
systemctl status rpcbind nfs-server
En la siguiente imagen podemos ver que el servicio está activo y que está a la escucha en el puerto 2049.
Configuramos el punto de montaje
Ahora le toca el turno a la máquina cliente, con ip 172.22.201.247. En ella realizamos las siguientes acciones:
- Creamos el punto de montaje:
mkdir /nfs
- Creamos el fichero de configuración del punto de montaje:
nano /etc/systemd/system/nfs.mount
- Añadimos el siguiente contenido:
[Unit]
#Descripción
Description=Montaje NFS-Systemd
[Mount]
#Volumen de 2GB añadido a la instancia
What=/dev/vdb
#Directorio de montaje
Where=/nfs
#Sistema de ficheros empleado
Type=ext4
#Opciones de montaje
Options=defaults
[Install]
#Autoarranque
WantedBy=multi-user.target
- Vamos a formatear el volumen anexado a la instancia:
mkfs.ext4 /dev/vdb
Y a continuación, reiniciamos el demonio e iniciamos el punto de montaje:
systemctl daemon-reload
systemctl start nfs.mount
- Comprobamos que el punto de montaje está activo:
Montaje permanente del punto de montaje
Para que el punto de montaje sea permanente, es decir, que se monte automáticamente al arrancar la máquina, realizamos las siguientes acciones:
- Añadimos el punto de montaje al fichero
/etc/fstab:
nano /etc/fstab
#Añadimos la siguiente línea al final del fichero:
/dev/vdb /nfs ext4 defaults 0 0
- Para que los clientes puedan acceder al punto de montaje, debemos añadir la siguiente línea al fichero
/etc/exports:
nano /etc/exports
#Añadimos la siguiente línea al final del fichero:
/nfs 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check)
La configuración anterior permite que todos los clientes de la red 10.0.0.0/24 puedan acceder al punto de montaje /nfs con permisos de lectura y escritura.
- Reiniciamos la máquina y comprobamos que el punto de montaje se monta de forma automática al iniciar el sistema.
Configuración del cliente NFS
Ahora vamos a configurar el cliente NFS. En la máquina cliente, con ip 172.22.201.247, realizamos las siguientes acciones:
- Instalamos el cliente NFS:
apt update && apt upgrade -y
apt install nfs-common
- Para comprobar que el cliente NFS está instalado, ejecutamos el siguiente comando:
showmount -e 10.0.0.215
Lo que se nos mostrará es la exportación del servidor:
Configuración del punto de montaje del cliente
Ahora vamos a configurar el punto de montaje del cliente. En la máquina cliente, con ip 172.22.201.247, realizamos las siguientes acciones:
- Creamos el directorio que usaremos como punto de montaje:
mkdir /cliente
- Y a continuación, creamos el fichero de configuración del punto de montaje:
nano /etc/systemd/system/cliente.mount
La configuración del fichero es la siguiente:
[Unit]
Description=Montaje NFS-cliente
[Mount]
#Dirección IP:Directorio de exportación
What=10.0.0.215:/nfs
#Directorio del recurso compartido
Where=/cliente
#Tipo de recurso
Type=nfs
#Opciones de montaje
Options=defaults
[Install]
#Autoarranque
WantedBy=multi-user.target
- Activamos y montamos el recurso que queremos compartir:
systemctl enable NFS-cliente.mount
systemctl start NFS-cliente.mount
- Comprobamos que el punto de montaje está activo:
Montaje permanente del punto de montaje del cliente
Para que el punto de montaje sea permanente, es decir, que se monte automáticamente al arrancar la máquina, realizamos las siguientes acciones:
- Añadimos el punto de montaje al fichero
/etc/fstab:
nano /etc/fstab
#Añadimos la siguiente línea al final del fichero:
10.0.0.215:/nfs /cliente nfs defaults 0 0
- Reiniciamos la máquina y comprobamos que el punto de montaje se monta de forma automática al iniciar el sistema.
Comprobación del funcionamiento del servicio NFS
Para comprobar que el servicio NFS está funcionando de forma correcta, vamos a crear un directorio y un fichero en el punto de montaje del servidor y comprobar que se reflejan en el punto de montaje del cliente.
¡NOTA!
Recuerda que una vez realizados los cambios, para que el sercidor NFS los reconozca, debemos ejecutar sudo exportfs -ra para que se actualicen los cambios.
- Creamos un directorio y un fichero en el punto de montaje del servidor:
mkdir /NFS-Systemd/prueba
echo "Esto es un texto escrito desde el servidor" > /nfs/nfs-prueba.txt
- Accederemos al punto de montaje del cliente y comprobaremos que el directorio y el fichero se han creado correctamente:
cd /cliente
ls
cat nfs-prueba.txt
- Si lo que queremos es crear un fichero desde el cliente, lo crearemos en el punto de montaje del cliente y comprobaremos que se ha creado en el punto de montaje del servidor:
echo "Esto es un texto escrito desde el cliente" > /cliente/prueba/prueba-cliente.txt
ls /nfs/prueba
cat /nfs/prueba/prueba-cliente.txt