Montaje Servidor y cliente NFS mediante Systemd.
En esta práctica configuraremos un servidor y un cliente NFS mediante systemd.
Creado en December 15, 2022.
Tabla de Contenido.
Creación del volumen y particionado.
Lo primero que he hecho ha sido añadir un volumen de 2Gb a la máquina Alfa
de mi escenario en OpenStack. Una vex añadido el volumen, crearemos una partición y le daremos formato ext4.
Para crear la partición he usado el siguiente comando:
root@alfa:/media/Archivos# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x04ba1fd8.
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-4194303, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-4194303, default 4194303):
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Una vez creada la partición con el siguiente comando, le asignaremos el formato ext4.
root@alfa:/media/Archivos# mkfs.ext4 /dev/vdb1
mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done
Creating filesystem with 524032 4k blocks and 131072 inodes
Filesystem UUID: faa25fa0-cffb-4494-b586-bdbe74f845aa
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
Creación de la unidad en systemd.
Primero de todo crearemos el directorio donde se montará el volumen en mi caso es el siguiente:
root@alfa:/media/Archivos# mkdir /media/Archivos
Ahora crearemos la unidad de systemd para montar el volumen en el servidor Alfa.
Creamos el siguiente fichero:
root@alfa:/media/Archivos# nano /etc/systemd/system/media-Archivos.mount
El fichero tiene dicho ya que debe de llamarse igual que la ruta donde se monta el volumen cambiando las barras /
por guiones -
y es .mount
porque es una unidad de montaje. Añadiremos lo siguiente:
[Unit]
Description=Disco montado para practica ASO
[Mount]
What=/dev/vdb1
Where=/media/Archivos
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
- Description como su nombre indica es una descripción del volumen montado.
- En What debemos indicar la ruta del volumen que queremos montar.
- En Where es donde lo hemos montado, es decir, la ruta donde se monta el volumen.
- La opción Type es el formato que tendra el volumen.
- En Options indicamos las opciones por defecto.
Una vez hecho esto, la unidad estaría creada. Ahora procederemos a activarlo.
Activación de la unidad de montaje.
Para activar la unidad de montaje, tenemos que recargar el daemon de systemd antes para que detecto los nuevos cambios y la nueva unidad. Para ello usamos el siguiente comando:
root@alfa:/media/Archivos# systemctl daemon-reload
Ahora ejecutamos el siguiente comando para iniciar la unidad creada:
root@alfa:/media/Archivos# systemctl start media-Archivos.mount
Para habilitar que la unidad se inicie automáticamente al inicio del sistema usamos el siguiente comando:
root@alfa:/media/Archivos# systemctl enable media-Archivos.mount
Created symlink /etc/systemd/system/multi-user.target.wants/media-Archivos.mount → /etc/systemd/system/media-Archivos.mount.
Configuración servidor NFS.
Lo primero que tenemos que hacer es instalar los paquetes necesarios. Son los siguientes paquetes:
- nfs-kernel-server
- nfs-common
Una vez instalados los paquetes, editaremos el fichero exports.
root@alfa:/media/Archivos# nano /etc/exports
Añadiremos lo siguiente:
/media/Archivos *(rw,no_root_squash)
Activamos el servicio:
root@alfa:/media/Archivos# service nfs-kernel-server start
Ahora comprobamos los directorios exportados:
root@alfa:/media/Archivos# showmount --exports localhost
Export list for localhost:
/media/Archivos *
Configuración cliente NFS.
El cliente que configuraré será bravo. Lo primero que haremos será instalar el cliente nfs-utils:
[usuario@bravo system]$ sudo dnf install nfs-utils
Failed to set locale, defaulting to C.UTF-8
Last metadata expiration check: 1:58:56 ago on Tue Dec 27 15:52:39 2022.
Package nfs-utils-1:2.5.4-15.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Ahora crearemos una unidad de montaje del volumen nfs:
[usuario@bravo system]$ sudo nano /etc/systemd/system/home-usuario-archivos.mount
Añadimos lo siguiente:
[Unit]
Description= cliente NFS
[Mount]
What=172.16.0.1:/media/Archivos
Where=/home/usuario/archivos
Type=nfs
Options=defaults
[Install]
WantedBy=multi-user.target
Reiniciamos el demonio de systemctl:
[usuario@bravo system]$ sudo systemctl daemon-reload
Arrancamos la unidad que hemos creado:
[usuario@bravo system]$ sudo systemctl start home-usuario-archivos.mount
Como podemos ver se ha montado correctamente:
[usuario@bravo system]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 383M 0 383M 0% /dev/shm
tmpfs 153M 14M 140M 9% /run
/dev/vda5 29G 1.3G 28G 5% /
/dev/vda2 994M 267M 728M 27% /boot
/dev/vda1 100M 7.0M 93M 7% /boot/efi
tmpfs 77M 0 77M 0% /run/user/1000
172.16.0.1:/media/Archivos 2.0G 0 1.9G 0% /home/usuario/archivos
Ahora hacemos una prueba para ver que está montado correctamente. Desde el servidor crearemos una carpeta en el volumen:
usuario@alfa:/media/Archivos$ sudo mkdir prueba
Ahora en el cliente listaremos los archivos para ver que se ha creado el directorio.
[usuario@bravo ~]$ cd archivos/
[usuario@bravo archivos]$ ls
lost+found prueba
Hacemos la prueba del revés para ver que se pueden crear carpetas y ficheros desde el cliente:
[usuario@bravo archivos]$ sudo mkdir prueba2
[usuario@bravo archivos]$ ls
lost+found prueba prueba2
Ahora listamos desde el servidor para ver que se ha creado correctamente:
usuario@alfa:/media/Archivos$ ls
lost+found prueba prueba2
Documento realizado por:
✒️ Alejandro Montes Delgado - 2º ASIR
Siguiente post
Despliegue de aplicaciones python.
Post anterior.