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
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 -yUna vez que se instala el paquete del servidor NFS, el servidor NFS El servicio Systemd debe ser activo.
$ sudo systemctl status nfs-server.servicioSi 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 -yCreació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 -dPara 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 VDCUna nueva piscina ZFS piscina debe crearse y la piscina ZFS piscina debe montarse automáticamente en el /Pool1 directorio.
$ SUDO ZFS ListaCrear un sistema de archivos ZFS FS1 En la piscina ZFS piscina como sigue:
$ sudo ZFS CREATE POOD1/FS1Un nuevo sistema de archivos ZFS FS1 debe crearse y montar automáticamente en el /Pool1/FS1 directorio.
$ SUDO ZFS ListaCompartir 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" Pool1O,
$ sudo zfs set sharenfs = "rw =*" Pool1Para 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 "Pool1Para 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 "Pool1Puedes 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 "Pool1De 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 "Pool1Puedes verificar si el sharenfs La propiedad se establece correctamente en el grupo ZFS piscina como sigue:
$ sudo zfs get sharenfs Pool1Compartir 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/FS1O,
$ sudo zfs set sharenfs = "RW =*" Pool1/FS1Para 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/FS1Para 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/FS1Puedes 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/FS1De 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/FS1Puedes verificar si el sharenfs La propiedad se establece correctamente en el sistema de archivos ZFS Pool1/FS1 como sigue:
$ sudo zfs get sharenfs Pool1/FS1Montaje 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 -iUna 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.98Como 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 /piscina1Puedes 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/Pool1El NFS Share /Pool1 debe montarse en el /Mnt/Pool1 Directorio de su computadora (cliente NFS).
$ DF -H /MNT /POOOT1De 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 /fs1Monte 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/FS1El NFS Share /Pool1/FS1 (Sistema de archivos ZFS FS1) debe montarse en el /mnt/fs1 Directorio de su computadora (cliente NFS).
$ df -h /mnt /fs1Montaje 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 /fstabAgregue las siguientes líneas al final del /etc/fstab archivo.
# Actas de Monte NFSUna 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 reinicioLa 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 nfs4Permitir 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:
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-UsersEn 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-UsersEn 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 /Pool1Permitir 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 /piscina1El 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 /Pool1Para que los cambios entren en vigencia, reinicie el servidor NFS de la siguiente manera:
$ sudo reinicioAhora, 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 alexUn nuevo usuario Alex con el uid 5001 y grupo primario usuarios de NFS (GID 2000) debe crearse en la computadora del cliente NFS.
$ id AlexAhora, reinicie la computadora del cliente NFS para que los cambios entren en vigencia.
$ sudo reinicioUna 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 nfs4Las 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 /POOT1Ahora, inicie sesión como usuario Alex En la computadora del cliente NFS de la siguiente manera:
$ sudo su - AlexEl 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.TXTEl 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.TXTEn 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 /Pool1Si 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:
Para obtener ayuda en la configuración de LDAP en su servidor NFS y computadoras cliente, consulte los siguientes artículos:
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 Pool1El 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 Pool1De 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/FS1El 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/FS1Conclusió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