Cómo compartir los sistemas de archivos ZFS con NFS

Cómo compartir los sistemas de archivos ZFS con NFS

Puede compartir sus grupos y sistemas de archivos ZFS utilizando el protocolo de intercambio de archivos NFS (Sistema de archivos de red) y acceder a ellos desde computadoras remotas muy fácilmente.

En este artículo, le mostraré cómo compartir los grupos y sistemas de archivos ZFS utilizando el servicio de intercambio de archivos NFS y acceder a ellos desde computadoras remotas. Entonces empecemos.

Tabla de contenido

  1. Diagrama de Red
  2. Instalación del servidor NFS
  3. Instalación del cliente NFS
  4. Creación de grupos y sistemas de archivos ZFS
  5. Compartir piscinas ZFS con NFS
  6. Compartir sistemas de archivos ZFS con NFS
  7. Montaje de NFS compartido Pools y sistemas de archivos ZFS
  8. Montaje automáticamente NFS compartido Pools y sistemas de archivos ZFS
  9. Permitir escrituras en los grupos y sistemas de archivos ZFS compartidos NFS
  10. Sin compartir piscinas y sistemas de archivos de ZFS
  11. Conclusión
  12. Referencias

Diagrama de Red

En este artículo, configuraré un Ubuntu 20.04 Computadora LTS (nombre de host: Linuxhint, IP: 192.168.122.98) como servidor NFS y configure un Ubuntu 20.04 Computadora LTS (nombre de host: NFS-Client, IP: 192.168.122.203) como cliente NFS. Ambas computadoras están en la subred 192.168.122.24/04. Configuraré el servidor NFS de una manera que solo las computadoras/servidores en esta subred podrán acceder al servidor NFS.

Figura 1: servidor NFS y cliente conectado a la subred de red 192.168.122.24/04

Instalación del servidor NFS

Debe tener el paquete NFS Server instalado en la computadora desde donde desea compartir sus grupos/sistemas de archivos ZFS a través de NFS.

Si estás usando Debian 10 o Ubuntu 20.04 LTS, puede instalar el paquete del servidor NFS en su computadora de la siguiente manera:

$ sudo apt install nfs-kernel-server -y

Una vez que se instala el paquete del servidor NFS, el servidor NFS El servicio Systemd debe ser activo.

$ sudo systemctl status nfs-server.servicio

Si está utilizando CentOS 8/RHEL 8, lea el artículo Cómo configurar el servidor NFS en CentOS 8 para obtener ayuda en la instalación del servidor NFS en su computadora.

Instalación Cliente NFS

Debe tener el paquete de cliente NFS instalado en la computadora desde donde accederá a sus grupos/sistemas de archivos ZFS a través de NFS.

Si estás usando Debian 10 o Ubuntu 20.04 LTS, puede ejecutar el siguiente comando para instalar el paquete del cliente NFS en su computadora:

$ sudo apt install nfs -common -y

Creación de grupos y sistemas de archivos ZFS

En esta sección, voy a crear una piscina ZFS piscina Uso de los dispositivos de almacenamiento VDB y VDC en la configuración de los espejo.

$ sudo lsblk -e7 -d

Para crear una nueva piscina ZFS piscina Uso de los dispositivos de almacenamiento VDB y VDC En la configuración de espejo, ejecute el siguiente comando:

$ sudo zpool Create -f Pool1 Mirror VDB VDC

Una nueva piscina ZFS piscina debe crearse y la piscina ZFS piscina debe montarse automáticamente en el /Pool1 directorio.

$ SUDO ZFS Lista

Crear un sistema de archivos ZFS FS1 En la piscina ZFS piscina como sigue:

$ sudo ZFS CREATE POOD1/FS1

Un nuevo sistema de archivos ZFS FS1 debe crearse y montar automáticamente en el /Pool1/FS1 directorio.

$ SUDO ZFS Lista

Compartir piscinas ZFS con NFS

Para compartir la piscina ZFS piscina a través de NFS, debe configurar el sharenfs propiedad de su grupo ZFS en consecuencia.

Para permitir que todos en la red sean acceso de lectura/escritura al grupo ZFS piscina, puedes configurar el sharenfs Propiedad del grupo ZFS piscina como sigue:

$ sudo zfs set sharenfs = "RW" Pool1

O,

$ sudo zfs set sharenfs = "rw =*" Pool1

Para permitir cada computadora/servidor en la subred de red 192.168.122.24/04 Acceso de lectura/escritura a la piscina ZFS piscina Solo que puedes configurar el sharenfs Propiedad del grupo ZFS piscina como sigue:

$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1

Para permitir solo la computadora con la dirección IP 192.168.122.203 Acceso de lectura/escritura a la piscina ZFS piscina, puedes configurar el sharenfs Propiedad del grupo ZFS piscina como sigue:

$ sudo zfs set sharenfs = "RW = 192.168.122.203 "Pool1

Puedes usar el colon (:) Símbolo para permitir el acceso a la piscina ZFS piscina desde múltiples subredes de red o direcciones IP también.

Por ejemplo, para permitir las subredes de la red 192.168.122.24/04 y 192.168.132.24/04 Acceso de lectura/escritura a la piscina ZFS piscina, puedes configurar el sharenfs Propiedad del grupo ZFS piscina como sigue:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1

De la misma manera, para permitir solo las computadoras con las direcciones IP 192.168.122.203 y 192.168.122.233 Acceso de lectura/escritura a la piscina ZFS piscina, puedes configurar el sharenfs Propiedad del grupo ZFS piscina como sigue:

$ sudo zfs set sharenfs = "RW = 192.168.122.203: 192.168.122.233 "Pool1

Puedes verificar si el sharenfs La propiedad se establece correctamente en el grupo ZFS piscina como sigue:

$ sudo zfs get sharenfs Pool1

Compartir sistemas de archivos ZFS con NFS

Para compartir el sistema de archivos ZFS FS1 a través de NFS, debe configurar el sharenfs Propiedad del sistema de archivos ZFS en consecuencia.

Para permitir que todos en la red sean acceso de lectura/escritura al sistema de archivos ZFS FS1, puedes configurar el sharenfs Propiedad del sistema de archivos ZFS FS1 como sigue:

$ sudo zfs set sharenfs = "RW" Pool1/FS1

O,

$ sudo zfs set sharenfs = "RW =*" Pool1/FS1

Para permitir cada computadora/servidor en la subred de red 192.168.122.24/04 Acceso de lectura/escritura al sistema de archivos ZFS Pool1/FS1, puedes configurar el sharenfs Propiedad del sistema de archivos ZFS Pool1/FS1 como sigue:

$ sudo zfs set sharenfs = "rw [email protected]/24 "Pool1/FS1

Para permitir solo la computadora con la dirección IP 192.168.122.203 Acceso de lectura/escritura al sistema de archivos ZFS Pool1/FS1, puedes configurar el sharenfs Propiedad del sistema de archivos ZFS Pool1/FS1 como sigue:

$ sudo zfs set sharenfs = "RW = 192.168.122.203 "Pool1/FS1

Puedes usar el colon (:) Símbolo para permitir el acceso al sistema de archivos ZFS FS1 desde múltiples subredes de red o direcciones IP también.

Por ejemplo, para permitir las subredes de la red 192.168.122.24/04 y 192.168.132.24/04 Acceso de lectura/escritura al sistema de archivos ZFS Pool1/FS1, puedes configurar el sharenfs Propiedad del sistema de archivos ZFS Pool1/FS1 como sigue:

$ sudo zfs set sharenfs = "rw [email protected]/24:@192.168.132.0/24 "Pool1/FS1

De la misma manera, para permitir solo las computadoras con las direcciones IP 192.168.122.203 y 192.168.122.233 Acceso de lectura/escritura al sistema de archivos ZFS Pool1/FS1, puedes configurar el sharenfs Propiedad del sistema de archivos ZFS Pool1/FS1 como sigue:

$ sudo zfs set sharenfs = "RW = 192.168.122.203: 192.168.122.233 "Pool1/FS1

Puedes verificar si el sharenfs La propiedad se establece correctamente en el sistema de archivos ZFS Pool1/FS1 como sigue:

$ sudo zfs get sharenfs Pool1/FS1

Montaje de NFS compartido Pools y sistemas de archivos ZFS

Para montar los grupos y sistemas de archivos ZFS que ha compartido a través de NFS en su computadora (cliente NFS), debe conocer la dirección IP de su servidor NFS.

Puedes ejecutar el 'nombre de host -i ' Comando en su servidor NFS para encontrar la dirección IP de su servidor NFS. En mi caso, la dirección IP es 192.168.122.98.

$ hostname -i

Una vez que conozca la dirección IP del servidor NFS, puede enumerar todas las acciones NFS disponibles desde su computadora de la siguiente manera:

$ showmount -e 192.168.122.98

Como puede ver, la piscina ZFS piscina y el sistema de archivos ZFS FS1 figuran como acciones de NFS /Pool1 y /Pool1/FS1 respectivamente.

Crear un directorio /Mnt/Pool1 para montar la parte de NFS /Pool1 (Piscina ZFS piscina) como sigue:

$ sudo mkdir -v /mnt /piscina1

Puedes montar la compartir NFS /Pool1 (Piscina ZFS piscina) desde el servidor NFS 192.168.122.98 sobre el /Mnt/Pool1 Directorio de su computadora (cliente NFS) de la siguiente manera:

$ sudo monte -t ​​nfs 192.168.122.98:/Pool1/Mnt/Pool1

El NFS Share /Pool1 debe montarse en el /Mnt/Pool1 Directorio de su computadora (cliente NFS).

$ DF -H /MNT /POOOT1

De la misma manera, crea un nuevo directorio /mnt/fs1 para montar la parte de NFS /Pool1/FS1 (Sistema de archivos ZFS FS1) como sigue:

$ sudo mkdir -v /mnt /fs1

Monte la parte de NFS /Pool1/FS1 (Sistema de archivos ZFS FS1) desde el servidor NFS 192.168.122.98 sobre el /mnt/fs1 Directorio de su computadora (cliente NFS) de la siguiente manera:

$ sudo monte -t ​​nfs 192.168.122.98:/Pool1/FS1/Mnt/FS1

El NFS Share /Pool1/FS1 (Sistema de archivos ZFS FS1) debe montarse en el /mnt/fs1 Directorio de su computadora (cliente NFS).

$ df -h /mnt /fs1

Montaje automáticamente NFS compartido Pools y sistemas de archivos ZFS

Puedes montar las acciones de NFS /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) en su computadora (cliente NFS) automáticamente en el momento del arranque.

Para hacer eso, abra el /etc/fstab archivo con el nano Editor de texto de la siguiente manera:

$ sudo nano /etc /fstab

Agregue las siguientes líneas al final del /etc/fstab archivo.

# Actas de Monte NFS
192.168.122.98:/Pool1/Mnt/Pool1 NFS valores predeterminados 0 0 0
192.168.122.98:/Pool1/FS1/Mnt/FS1 NFS Valores predeterminados 0 0 0

Una vez que haya terminado, presione + X seguido por Y y Para salvar el /etc/fstab archivo.

Para que los cambios entren en vigencia, reinicie su computadora (cliente NFS) de la siguiente manera:

$ sudo reinicio

La próxima vez que se inicie su computadora (cliente NFS), el NFS comparte /Pool1 (Piscina ZFS piscina)y /Pool1/FS1 (Sistema de archivos ZFS FS1) debe montarse en el /Mnt/Pool1 y /mnt/fs1 directorios respectivamente.

$ df -h -t nfs4

Permitir escrituras en los grupos y sistemas de archivos ZFS compartidos NFS

Si intenta escribir en las acciones de NFS /Pool1 (Piscina ZFS piscina) o /Pool1/FS1 (Sistema de archivos ZFS FS1) Desde su computadora (cliente NFS) en este momento, obtendrá el Permiso denegado Mensaje como se muestra en la captura de pantalla a continuación.

Para resolver este problema, puede hacer uno de los siguientes:

  1. Colocar 0777 permiso en el /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Directorio del servidor NFS para que todos puedan escribir en el grupo ZFS piscina y sistema de archivos FS1. Este método tiene grandes riesgos de seguridad. Por lo tanto, no lo recomiendo a menos que lo esté utilizando para fines de prueba.
  2. Crear un grupo usuarios de NFS (Digamos) en el servidor NFS y en las computadoras del cliente NFS desde las que desea escribir en sus acciones NFS. Entonces, cambie el grupo de la /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Directorios del servidor NFS a usuarios de NFS. Además, establezca permisos de escritura del grupo (0775) para los directorios /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Directorios del servidor NFS. De esta manera, puede crear nuevos usuarios en las computadoras del cliente NFS, establecer usuarios de NFS Como su grupo principal, y deberían poder escribir a las acciones de NFS sin ningún problema.

NOTA: NFS mapea el UID (ID de usuario) y GID (ID de grupo) de las computadoras del cliente NFS con UID y GID del servidor NFS. Entonces, si un usuario/grupo puede escribir en un SOCTER NFS en el servidor NFS, entonces el mismo usuario/grupo con el mismo UID/GID también debería poder escribir a esa acción NFS desde la computadora del cliente NFS.

En esta sección, le mostraré cómo configurar los usuarios y grupos necesarios en el servidor NFS y las computadoras del cliente para poder escribir en las acciones de NFS.

En el servidor NFS, cree un nuevo grupo usuarios de NFS y establezca el GID (ID de grupo) del usuarios de NFS agrupar 2000 como sigue:

$ sudo groupAdd--Gid 2000 NFS-Users

En las computadoras del cliente NFS, cree un nuevo grupo usuarios de NFS y establezca el GID (ID de grupo) del usuarios de NFS agrupar 2000 también.

$ sudo groupAdd--Gid 2000 NFS-Users

En el servidor NFS, cambie el grupo de la /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Directorios para usuarios de NFS como sigue:

$ sudo CHGRP -RFV NFS -USERS /Pool1

Permitir permisos de lectura y escritura del grupo para el /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Directorios de la siguiente manera:

$ sudo chmod -rfv 0775 /piscina1

El grupo de la /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) Los directorios deben cambiarse a usuarios de NFS y los permisos de lectura/escritura grupales también deben establecerse.

$ LS -LHD /Pool1
$ LS -LHD /Pool1 /FS1

Para que los cambios entren en vigencia, reinicie el servidor NFS de la siguiente manera:

$ sudo reinicio

Ahora, debe crear las cuentas de usuario necesarias en las computadoras de su cliente NFS para poder escribir en las acciones de NFS.

Crear un nuevo usuario Alex (Digamos) con el uid 5001 (para que no interfieran con los usuarios ya disponibles en el servidor NFS) y establezcan el grupo principal del usuario en usuarios de NFS como sigue:

$ sudo useradd -m -s /bin /bash -u 5001 -g nfs -users alex

Un nuevo usuario Alex con el uid 5001 y grupo primario usuarios de NFS (GID 2000) debe crearse en la computadora del cliente NFS.

$ id Alex

Ahora, reinicie la computadora del cliente NFS para que los cambios entren en vigencia.

$ sudo reinicio

Una vez que se inicia la computadora del cliente NFS, el NFS comparte /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) debe montarse.

$ df -h -t nfs4

Las acciones de NFS /Pool1 (Piscina ZFS piscina) y /Pool1/FS1 (Sistema de archivos ZFS FS1) también debe tener los permisos de directorio correctos.

$ LS -LHD /MNT /POOT1
$ ls -lhd /mnt /fs1

Ahora, inicie sesión como usuario Alex En la computadora del cliente NFS de la siguiente manera:

$ sudo su - Alex

El usuario Alex Debería poder crear archivos en el NFS Share /Pool1 (Piscina ZFS piscina) y acceda a ellos como puede ver en la captura de pantalla a continuación.

$ echo '[Pool1] Hello World'>/Mnt/Pool1/Hello.TXT
$ LS -LH /MNT /POOOT1
$ Cat/Mnt/Pool1/Hello.TXT

El usuario Alex También debería poder crear archivos en el NFS Share /Pool1/FS1 (Sistema de archivos ZFS FS1) y acceda a ellos como puede ver en la captura de pantalla a continuación.

$ echo '[fs1] hola mundo'>/mnt/fs1/hola.TXT
$ ls -lh /mnt /fs1
$ cat/mnt/fs1/hola.TXT

En el servidor NFS, la UID (ID de usuario) de los archivos que el usuario Alex creado a partir de la computadora del cliente NFS debe ser 5001 y el grupo debería ser usuarios de NFS Como puede ver en la captura de pantalla a continuación.

$ LS -LH /Pool1
$ LS -LH /Pool1 /FS1

Si desea resolver los UID a los nombres de usuario en su servidor NFS, debe crear el mismo usuario con el mismo UID (como ha creado en la computadora del cliente NFS) en el servidor NFS.

Para un pequeño número de usuarios, puede ejecutar lo mismo usuarios Comando tanto en las computadoras del servidor NFS como en el cliente para resolver este problema. Si tiene que administrar una gran cantidad de usuarios, será mucho trabajo hacer esto manualmente. En su lugar, debe usar NIS (servidor de información de red) o LDAP (protocolo de acceso de directorio ligero) para sincronizar automáticamente a los usuarios entre su servidor NFS y las computadoras del cliente NFS.

Para obtener ayuda en la configuración de NIS en su servidor NFS y computadoras cliente, consulte los siguientes artículos:

  • Instalación del servidor NIS en Ubuntu 18.04 LTS
  • Cómo instalar y configurar el servidor NIS en Debian 10

Para obtener ayuda en la configuración de LDAP en su servidor NFS y computadoras cliente, consulte los siguientes artículos:

  • Cómo configurar el cliente LDAP en Debian 10

Sin compartir piscinas y sistemas de archivos de ZFS

Si quieres dejar de compartir la piscina ZFS piscina Tendrás que configurar el sharenfs Propiedad del grupo ZFS piscina a apagado como sigue:

$ sudo zfs set sharenfs = off Pool1

El intercambio de NFS debe deshabilitarse para el grupo ZFS piscina Como puede ver en la captura de pantalla a continuación.

$ sudo zfs get sharenfs Pool1

De la misma manera, puede dejar de compartir el sistema de archivos ZFS FS1 estableciendo el sharenfs Propiedad del sistema de archivos ZFS FS1 a apagado como sigue:

$ sudo zfs set sharenfs = off Pool1/FS1

El intercambio de NFS debe deshabilitarse para el sistema de archivos ZFS FS1 Como puede ver en la captura de pantalla a continuación.

$ sudo zfs get sharenfs Pool1/FS1

Conclusión

En este artículo, le he mostrado cómo compartir los grupos y sistemas de archivos ZFS y acceder a ellos de forma remota utilizando el Protocolo de intercambio de archivos NFS. También le he mostrado cómo montar automáticamente los grupos/sistemas de archivos ZFS que ha compartido con NFS en las computadoras del cliente NFS en el momento del arranque. Le he mostrado cómo administrar los permisos de acceso para las acciones de NFS y permitir el acceso de escritura a las acciones de NFS desde las computadoras del cliente NFS también.

Referencias

[1] Ubuntu ManPage: ZFS - Configura los sistemas de archivos ZFS
[2] Compartir y no compartir sistemas de archivos ZFS - Administración de Oracle Solaris: Sistemas de archivos ZFS
[3] Sinopsis - Man Pages Sección 1M: Comandos de administración del sistema
[4] NFSSEC ManPage Sección 5 - Documentación de Oracle Solaris
[5] CentOS - NFS predeterminado a 777 - Falla del servidor
[6] Capítulo 4. Exportación de acciones NFS Red Hat Enterprise Linux 8 | Portal de clientes de Red Hat