ZFS

Servidor NFS respaldado por OpenZFS Parte 1 Creación de un servidor

Servidor NFS respaldado por OpenZFS Parte 1 Creación de un servidor
Si está familiarizado con OpenZFS, sabrá todo sobre su interfaz rica en funciones, arquitectura flexible, sumas de verificación confiables y mecanismos COW. Tal vez también lo desee en su escritorio, pero no desea volver a formatear sus discos y particiones existentes. Tal vez, esté usando Windows 10, que todavía no es compatible con OpenZFS. Bueno, en esta publicación de blog, discutiré cómo puede crear un sistema de archivos de red, o NFS, que se ejecuta en un servidor separado. Este dispositivo NFS se puede montar en su estación de trabajo de escritorio. De esta manera, puede tener la confiabilidad y solidez de ZFS con la facilidad de uso de su SO de escritorio favorito, ya que NFS está disponible en todas las plataformas.

Detallaré la creación del punto de montaje NFS en un cliente Windows 10 en la Parte 2 de esta serie. Por ahora, centrémonos en un servidor Ubuntu que ofrece almacenamiento NFS y un cliente Ubuntu que intenta conectarse a él.

La puesta en marcha

Mi servidor NFS se basará en Ubuntu 18.04 LTS. Puede usar su distribución de Linux favorita o FreeBSD, o cualquier otro sistema operativo que admita OpenZFS. Mi razón para usar Ubuntu 18.04 es que es bastante popular y reduciría considerablemente la barrera de entrada.

Se supone que el NFS está disponible solo en mi LAN que tiene la máscara de subred 255.255.255.0 y 192.168.0.1 como su puerta de enlace predeterminada. En términos sencillos, esto significa que todos los dispositivos conectados a mi red doméstica (WiFi y Ethernet, et al) tendrán direcciones IP que van desde 192.168.0.2 hasta 192.168.0.254.

El servidor NFS se configurará para permitir que solo los dispositivos con solo la dirección IP mencionada anteriormente tengan acceso al servidor NFS. Esto garantizaría que solo los dispositivos que se han conectado a mi LAN accedan a mis archivos y el mundo exterior no pueda acceder a ellos. Si tiene una configuración de 'Wifi abierta' o si la seguridad en el punto final de su enrutador es dudosa, esto no garantizaría ninguna seguridad.

No recomendaría ejecutar NFS a través de Internet público sin una medida de seguridad adicional.

Por último, los comandos que se ejecutan en el servidor NFS tienen el indicador, el servidor $ y los comandos que se ejecutarán en el lado del cliente tienen el indicador cliente $

Creación de un conjunto de datos y un grupo de OpenZFS

1. Creando zpool

Si ya tiene un zpool en funcionamiento, omita este paso. En mi servidor NFS, que ejecuta Ubuntu 18.04 servidor LTS, primero instalo OpenZFS.

servidor $ sudo apt install zfsutils-linux

A continuación, enumeraremos todos los dispositivos de bloque disponibles, para ver los nuevos discos (y particiones) que esperan ser formateados con zfs.

$ lsblk
NOMBRE MAJ: MIN RM TAMAÑO RO TIPO PUNTO DE MONTAJE
bucle0 7: 0 0 89.5M 1 bucle / broche / núcleo / 6130
bucle1 7: 1 0 86.9M 1 bucle / broche / núcleo / 4917
bucle2 7: 2 0 91.1M 1 bucle / broche / núcleo / 6259
sda 8: 0 0 50G 0 disco
├─sda1 8: 1 0 1M 0 parte
└─sda2 8: 2 0 50G 0 parte /
sdb 8:16 0 931G 0 disco
sdc 8:32 0 931G 0 disco
sr0 11: 0 1 1024M 0 rom

Un ejemplo típico se muestra arriba, pero su convención de nomenclatura puede ser muy diferente. Tendrás que usar tu propio juicio y tener mucho cuidado al respecto. No desea formatear accidentalmente el disco de su sistema operativo. Por ejemplo, la partición sda1 claramente tiene el sistema de archivos raíz como punto de montaje, por lo que no es aconsejable tocarlo. Si está utilizando discos nuevos, es probable que no tengan un punto de montaje ni ningún tipo de partición.

Una vez que sepa el nombre de sus dispositivos, usaremos el comando zpool create para formatear un par de estos dispositivos de bloque (llamados sdb y sdc) en un zpool con un solo vdev que se compone de dos discos reflejados.

servidor $ sudo zpool crear tanque espejo sdb sdc
servidor $ sudo zpool estado tanque
tanque de estado zpool
piscina: tanque
estado: ONLINE
escanear: ninguno solicitado
config:
NOMBRE ESTADO LEER ESCRIBIR CKSUM
tanque ONLINE 0 0 0
espejo-0 ONLINE 0 0 0
sdb EN LÍNEA 0 0 0
sdc EN LÍNEA 0 0 0
errores: No hay errores de datos conocidos

En el futuro, puede agregar discos en conjuntos de dos (llamados vdev) para aumentar el tamaño de este zpool, los nuevos discos aparecerán como espejo-1, espejo-2, etc. No tiene que crear su zpool como lo hice yo, puede usar la duplicación con más discos, puede usar la creación de bandas sin redundancia pero con un mejor rendimiento, o puede usar RAIDZ. Puedes aprender más acerca de esto aquí.

Al final del día, lo que importa es que hemos creado un zpool llamado tanque. Sobre el cual vivirá el NFS compartido. Creemos un conjunto de datos que se compartirá. Primero asegúrese de que la piscina, llamada 'tanque', esté montada. El punto de montaje predeterminado es '/ tanque' .

servidor $ sudo zfs mount tank
server $ sudo zfs create tank / nfsshare #crear un nuevo conjunto de datos en la parte superior del grupo

Establecer permisos

Al compartir un directorio NFS, el superusuario en el sistema cliente no tiene acceso a nada en el recurso compartido. Si bien el superusuario del lado del cliente es capaz de hacer cualquier cosa en la máquina del cliente, el montaje NFS técnicamente no es parte de la máquina del cliente. Por lo tanto, permitir operaciones en nombre del superusuario del lado del cliente asignado como superusuario del lado del servidor podría generar problemas de seguridad. De forma predeterminada, NFS asigna las acciones de superusuario del lado del cliente a nadie: usuario nogroup y grupo de usuarios. Si tiene la intención de acceder a los archivos montados como root, entonces el conjunto de datos en nuestro servidor NFS también debe tener los mismos permisos,

servidor $ sudo chown nadie: nogroup / tank / nfsshare

El servidor NFS ejecutará cualquier acción de la raíz del lado del cliente como usuario nadie, por lo que el permiso anterior permitirá que las operaciones se realicen.

Si está utilizando un nombre de usuario diferente (normal), a menudo es conveniente tener un usuario con el mismo nombre de usuario exacto en ambos lados.

Creando recurso compartido NFS

Una vez que haya creado Zpool, debe instalar el paquete del servidor nfs desde su administrador de paquetes:

servidor $ sudo apt install nfs-kernel-server

Tradicionalmente, el servidor NFS usa el archivo / etc / export para obtener una lista de clientes aprobados y los archivos a los que tendrán acceso. Sin embargo, usaremos la función incorporada de ZFS para lograr el mismo.

Simplemente use el comando:

servidor $ sudo zfs set sharenfs = ”on” / tank / nfsshare

Anteriormente, aludí a otorgar solo a ciertas IP el acceso. Puede hacerlo de la siguiente manera:

server $ sudo zfs set sharenfs = "[email protected] / 24" tank / nfsshare

El 'rw' significa permisos de lectura y escritura, y eso es seguido por el rango de IP. Asegúrese de que el número de puerto 111 y 2049 estén abiertos en su firewall. Si está utilizando ufw, puede comprobarlo ejecutando:

servidor $ ufw estado

Tome nota de la IP de su servidor en la LAN, utilizando el comando ifconfig o ip addr. Llamémoslo servidor.ip

Montaje del lado del cliente

Una vez que se crea el recurso compartido, puede montarlo en su máquina cliente, ejecutando el comando:

cliente $ mount -t servidor nfs.ip: / tanque / nfsshare / mnt

Esto montará el recurso compartido NFS en la carpeta / mnt, pero podría haber elegido fácilmente cualquier otro punto de montaje de su elección.

Conclusión

El intercambio de archivos es probablemente el aspecto más importante de la administración del sistema. Mejora su comprensión de la pila de almacenamiento, las redes, los permisos de usuario y los privilegios. Rápidamente se dará cuenta de la importancia del Principio de Mínimo Privilegio, es decir, solo dé a un usuario el acceso más mínimo posible que necesite a su trabajo.

También aprenderá sobre la interoperabilidad entre diferentes sistemas operativos. Los usuarios de Windows pueden acceder a los archivos NFS, al igual que los usuarios de Mac y BSD. No puede limitarse a un sistema operativo cuando se trata de una red de máquinas que tienen sus propias convenciones y lenguajes. Así que adelante y experimente con su recurso compartido NFS. Espero que hayas aprendido algo.

El botón de clic izquierdo del mouse no funciona en Windows 10
Si está utilizando un mouse dedicado con su computadora portátil o computadora de escritorio, pero el el botón izquierdo del mouse no funciona en Wind...
El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...