Montaje NFS mediante systemd

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

1

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
    

2

En la siguiente imagen podemos ver que el servicio está activo y que está a la escucha en el puerto 2049.

3

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
    

4

  • Vamos a formatear el volumen anexado a la instancia:
    mkfs.ext4 /dev/vdb
    

5

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:

    6

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
    

7

  • 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)
    

8

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.

9

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:

10

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
    

11

  • 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:

12

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
    

13

  • Reiniciamos la máquina y comprobamos que el punto de montaje se monta de forma automática al iniciar el sistema.

14

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
    

15

  • 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
    

16

  • 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
    

17

    ls /nfs/prueba
    cat /nfs/prueba/prueba-cliente.txt
    

18