/ / / Una introducción al sistema de archivos Z (ZFS) para Linux

Una introducción al sistema de archivos Z (ZFS) para Linux

ZFS es comúnmente utilizado por los acumuladores de datos, NASamantes y otros geeks que prefieren confiar en un sistema de almacenamiento redundante propio en lugar de en la nube. Es un excelente sistema de archivos para administrar múltiples discos de datos y rivaliza con algunas de las mejores configuraciones RAID.

Foto de Kenny Louie.

¿Qué es ZFS y por qué debería usarlo?

El sistema de archivos Z es un administrador de volumen lógico gratuito y de código abierto creado por Sun Microsystems para su uso en su sistema operativo Solaris. Algunas de sus características más atractivas incluyen:

Escalabilidad sin fin

Bueno, no es técnicamente interminable, pero es un sistema de archivos de 128 bits que es capaz de administrar zettabytes (mil millones de terabytes) de datos. No importa cuánto espacio en el disco duro tenga, ZFS será adecuado para administrarlo.

Máxima integridad

Todo lo que haces dentro de ZFS usa una suma de verificaciónpara garantizar la integridad del archivo. Puede estar seguro de que sus archivos y sus copias redundantes no encontrarán corrupción de datos silenciosa. Además, si bien ZFS está ocupado buscando silenciosamente la integridad de sus datos, realizará reparaciones automáticas siempre que pueda.

Agrupación de unidades

Los creadores de ZFS quieren que pienses en ello comosiendo similar a la forma en que su computadora usa RAM. Cuando necesitas más memoria en tu computadora, pones otro dispositivo y listo. De manera similar con ZFS, cuando necesita más espacio en el disco duro, coloca otro disco duro y listo. No es necesario dedicar tiempo a particionar, formatear, inicializar o hacer nada más en sus discos; cuando necesite un "grupo" de almacenamiento más grande, simplemente agregue discos.

RAID

ZFS es capaz de muchos niveles RAID diferentes, todosal tiempo que ofrece un rendimiento comparable al de los controladores RAID de hardware. Esto le permite ahorrar dinero, facilitar la configuración y tener acceso a niveles superiores de RAID que ZFS ha mejorado.

Instalar ZFS

Ya que solo estamos cubriendo los conceptos básicos en esteguía, no vamos a instalar ZFS como un sistema de archivos raíz. En esta sección se supone que está utilizando ext4 u otro sistema de archivos y le gustaría usar ZFS para algunos discos duros secundarios. Estos son los comandos para instalar ZFS en algunas de las distribuciones de Linux más populares.

Solaris y FreeBSD ya deberían venir con ZFS instalado y listo para usar.

Ubuntu:

$ sudo add-apt-repository ppa:zfs-native/stable
$ sudo apt-get update
$ sudo apt-get install ubuntu-zfs

Debian

$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs

RHEL / CentOS:

$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum install zfs

Si tiene alguna otra distribución, consulte zfsonlinux.org y haga clic en su distribución en la lista "Paquetes" para obtener instrucciones sobre cómo instalar ZFS.

A medida que continuamos con esta guía, vamos ausa Ubuntu porque esa parece ser la opción # 1 para los geeks de Linux. Aún así, debería poder seguir sin importar lo que pase, ya que los comandos de ZFS no cambiarán en las diferentes distribuciones.

La instalación lleva bastante tiempo, pero una vez que haya terminado, ejecute $ sudo zfs list para asegurarse de que esté instalado correctamente. Debería obtener una salida como esta:

En este momento, estamos utilizando una nueva instalación del servidor Ubuntu, con un solo disco duro.

Configurando ZFS

Ahora, supongamos que ponemos seis discos duros más en nuestra computadora.

$ sudo fdisk -l | grep Error nos mostrará los seis discos duros que acabamos de instalar. Actualmente no se pueden usar, ya que no contienen ningún tipo de tabla de particiones.

Como mencionamos anteriormente, una de las cosas buenassobre ZFS es que no necesitamos molestarnos con las particiones (aunque puede hacerlo si lo desea). Comencemos tomando tres de nuestros discos duros y colocándolos en un grupo de almacenamiento ejecutando el siguiente comando:

$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd

zpool create es el comando utilizado para crear un nuevo grupo de almacenamiento, -f anula cualquier error que ocurra (como si los discos ya tienen información sobre ellos), geek1 es el nombre del grupo de almacenamiento y /dev/sdb /dev/sdc /dev/sdd son los discos duros que ponemos en la piscina.

Una vez que haya creado su grupo, debería poder verlo con el df comando o sudo zfs list:

Como puede ver, / geek1 ya se ha montado y está listo para usar.

Si desea ver qué tres discos seleccionó para su grupo, puede ejecutar sudo zpool status:

Lo que hemos hecho hasta ahora es crear una dinámica de 9 TBgrupo de bandas (efectivamente, RAID 0). En caso de que no esté familiarizado con lo que eso significa, imagine que creamos un archivo de 3 KB en / geek1. 1 KB iría automáticamente a sdb, 1 KB a sdc y 1 KB a sdd. Luego, cuando vamos a leer el archivo de 3 KB, cada disco duro nos presentaría 1 KB, combinando la velocidad de las tres unidades. Esto hace que escribir y leer datos sea rápido, pero también significa que tenemos un único punto de falla. Si solo falla un disco duro, perderemos nuestro archivo de 3 KB.

Asumiendo que proteger sus datos es másimportante que acceder a él rápidamente, echemos un vistazo a otras configuraciones populares. Primero, eliminaremos el zpool que hemos creado para que podamos usar estos discos en una configuración más redundante:

$ sudo zpool destroy geek1

Bam, nuestro zpool se ha ido. Esta vez, usemos nuestros tres discos para crear un grupo RAID-Z. RAID-Z es básicamente una versión mejorada de RAID 5, ya que evita el "agujero de escritura" mediante el uso de copia en escritura. RAID-Z requiere un mínimo de tres discos duros, y es una especie de compromiso entre RAID 0 y RAID 1. En un grupo RAID-Z, todavía obtendrá la velocidad de las bandas a nivel de bloque, pero también tendrá paridad distribuida. Si un solo disco en su grupo muere, simplemente reemplace ese disco y ZFS reconstruirá automáticamente los datos basados ​​en la información de paridad de los otros discos. Para perder toda la información en su grupo de almacenamiento, dos discos tendrían que morir. Para hacer las cosas aún más redundantes, puede usar RAID 6 (RAID-Z2 en el caso de ZFS) y tener doble paridad.

Para lograr esto, podemos usar lo mismo zpool create comando como antes pero especifique raidz después del nombre del grupo:

$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd

Como puedes ver, df -h muestra que nuestro grupo de 9 TB ahora se ha reducido a 6 TB, ya que se están utilizando 3 TB para mantener la información de paridad. Con el zpool status comando, vemos que nuestro grupo es casi el mismo que antes, pero ahora está utilizando RAID-Z.

Para mostrar lo fácil que es agregar más discos a nuestro grupo de almacenamiento, agreguemos los otros tres discos (otros 9 TB) a nuestro grupo de almacenamiento geek1 como otra configuración RAID-Z:

$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg

Terminamos con:

La saga continúa ...

Apenas hemos raspado la superficie de ZFS y sucapacidades, pero utilizando lo que aprendió en este artículo, ahora debería poder crear grupos de almacenamiento redundantes de sus datos. Vuelva a consultarnos para futuros artículos sobre ZFS, vea las páginas de manual y busque las infinitas guías de nicho y videos de Youtube que cubren las funciones de ZFS.