- Introducción
- RAID
- Características fundamentales del RAID por software. Fuente (access.redhat.com)
- LVM
- Ventajas de LVM sobre las particiones físicas. Fuente (access.redhat.com)
- Capacidad flexible
- Colectivos de almacenamiento redimensionables
- Recolocación de datos en línea
- Cómodo nombramiento de dispositivos
- Distribución de discos
- Volúmenes en espejo
- Instantáneas de volúmenes
- ZFS
- Características de ZFS
- RAID-Z
- Redundancia
- Spare
- L2ARC
- Mirroring
- Pools de almacenamiento híbrido SSD
- Copia en escritura
- Suma de comprobación
- Conclusiones
Introducción
Cuando se trata de almacenamiento, hay una alta probabilidad de que su mente se arremolina un poco debido a las muchas opciones y toneladas de terminologías que abarrotan esa arena. ¿Por qué no podemos simplemente conectar un disco en el host y llamarlo un día? Esa era una de mis frustraciones hasta que llegué a ver la esencia de todas las tecnologías existentes. Los problemas que el almacenamiento te presenta como administrador de sistemas o ingeniero te harán apreciar las diversas tecnologías que se han desarrollado para ayudar a mitigarlos y resolverlos.
En este breve artículo, vamos a ver las tecnologías RAID, Logical Volume Manager (LVM) y ZFS. Investigaremos qué es lo mejor que hacen en las implementaciones, así como comprobaremos sus diferencias. Bienvenidos y permaneced atentos.
Similar: Ext4 vs XFS – Cuál elegir
RAID
RAID significa Redundant Array of Independent Disks. Básicamente fue desarrollado para permitir que uno combine muchos discos baratos y pequeños en una matriz con el fin de realizar los objetivos de redundancia. La redundancia no puede lograrse con una sola unidad de disco enorme conectada al proyecto. Aunque el array esté formado por varios discos, el ordenador lo «ve» como una sola unidad de almacenamiento lógico, lo cual es bastante sorprendente.
Usando técnicas como el striping de discos (RAID Nivel 0), el mirroring de discos (RAID Nivel 1), y el striping de discos con paridad (RAID Nivel 5), el RAID es capaz de conseguir redundancia, menor latencia, mayor ancho de banda, y maximizar la capacidad de recuperación ante caídas del disco duro.
Las razones principales por las que debería considerar la implementación de RAID en sus proyectos que gestionan grandes cantidades de datos incluyen las siguientes:
- Consecución de mejores velocidades
- Aumenta la capacidad de almacenamiento utilizando un único disco virtual
- Minimiza la pérdida de datos por fallo de disco. Dependiendo del tipo de RAID, podrá conseguir una redundancia que posteriormente le salvará en caso de que haya incidencias de pérdidas de datos.
Esta tecnología RAID viene en tres sabores: Firmware RAID, Hardware RAID y Software RAID. El RAID por hardware gestiona sus matrices independientemente del host y sigue presentando al host un único disco por matriz RAID. Utiliza una tarjeta controladora RAID por hardware que gestiona las tareas RAID de forma transparente para el sistema operativo. El RAID por software, por otro lado, implementa los distintos niveles de RAID en el código del disco del kernel (dispositivo de bloque) y ofrece la solución más barata posible, ya que no se necesitan costosas tarjetas controladoras de disco ni chasis de intercambio en caliente. Hay CPUs más rápidas en la era actual, por lo que el RAID por software suele superar al RAID por hardware.
Características fundamentales del RAID por software. Fuente (access.redhat.com)
- Portabilidad de arrays entre máquinas Linux sin reconstrucción
- Reconstrucción de arrays en segundo plano utilizando recursos del sistema ociosos
- Soporte de unidades intercambiables en caliente
- Detección automática de la CPU para aprovechar ciertas características de la CPU como el soporte de streaming SIMD
- Corrección automática de sectores defectuosos en los discos de una matriz
- Comprobaciones periódicas de consistencia de los datos del RAID para garantizar la salud de la matriz
- Supervisión proactiva de las matrices con alertas por correo electrónico enviadas a una dirección de correo electrónico designada sobre eventos importantes
- Mapas de bits con intención de escritura que seque aumentan drásticamente la velocidad de los eventos de resincronización permitiendo al kernel saber con precisión qué partes de un disco necesitan ser resincronizadas en lugar de tener que resincronizar todo el array
.soporte de unidades intercambiables en caliente
LVM
Aquí viene el bonito Logical Volume Manager. Lo que hace LVM maravillosamente es la abstracción de la idea de las unidades de disco individuales y le permite a usted, como administrador, tallar «pedazos» de espacio para usar como unidades. Le permite conectar tantas unidades físicas en su sistema individual y luego aumentar y disminuir flexiblemente sus volúmenes lógicos en su host en vivo. Puede añadir otras unidades físicas en el futuro y añadir su espacio sin reformatear o preocuparse por detener las aplicaciones o desmontar los sistemas de archivos o apagar su host. Este tipo de flexibilidad hace que trabajar con LVM sea un proceso tan sencillo.
Ventajas de LVM sobre las particiones físicas. Fuente (access.redhat.com)
Capacidad flexible
Cuando se utilizan volúmenes lógicos, los sistemas de archivos pueden extenderse a través de múltiples discos, ya que se pueden agregar discos y particiones en un único volumen lógico.
Colectivos de almacenamiento redimensionables
Puede ampliar los volúmenes lógicos o reducir su tamaño con simples comandos de software, sin necesidad de reformatear y reparticionar los dispositivos de disco subyacentes.
Recolocación de datos en línea
Para implementar subsistemas de almacenamiento más nuevos, más rápidos o más resistentes, puede mover los datos mientras el sistema está activo. Los datos pueden ser reordenados en los discos mientras los discos están en uso. Por ejemplo, puede vaciar un disco intercambiable en caliente antes de retirarlo.
Cómodo nombramiento de dispositivos
Los volúmenes lógicos de almacenamiento pueden gestionarse en grupos definidos por el usuario y con nombres personalizados.
Distribución de discos
Puede crear un volumen lógico que distribuya los datos en dos o más discos. Esto puede aumentar drásticamente el rendimiento. La especificación de la configuración de la franja se realiza cuando se crea el volumen lógico con lvcreate
Volúmenes en espejo
Los volúmenes lógicos proporcionan una forma conveniente de configurar un espejo para sus datos. Aunque LVM no soportaba esto de forma nativa en el pasado, las versiones recientes lo proporcionan.
Instantáneas de volúmenes
Usando los volúmenes lógicos, puede tomar instantáneas de dispositivos para realizar copias de seguridad consistentes o probar el efecto de los cambios sin afectar a los datos reales.
La única diferencia entre RAID y LVM es que LVM no proporciona ninguna opción de redundancia o paridad que proporciona RAID.
ZFS
ZFS fue desarrollado originalmente por Sun Microsystems para Solaris (propiedad de Oracle), pero ha sido portado a Linux.
ZFS es fundamentalmente diferente en este ámbito porque es más que un simple sistema de archivos. ZFS combina las funciones de un sistema de archivos y de un gestor de volúmenes, lo que permite añadir dispositivos de almacenamiento adicionales a un sistema vivo y tener el nuevo espacio disponible en todos los sistemas de archivos existentes en ese grupo de forma inmediata. Hace lo mismo que LVM y RAID en un solo paquete. Por lo tanto, ZFS es capaz de superar las limitaciones anteriores que impedían que los grupos RAID pudieran crecer. La combinación de las funciones tradicionalmente separadas de gestor de volumen y sistema de archivos proporciona a ZFS un conjunto único de ventajas.
Tradicionalmente, los sistemas de archivos podían crearse en un solo disco a la vez. Esto significa que si había dos discos, había que crear dos sistemas de archivos. RAID evitó este problema presentando al sistema operativo un único disco lógico formado por el espacio proporcionado por la combinación de muchos discos físicos. El sistema operativo colocaba entonces un sistema de archivos encima. Pero con ZFS, el sistema de archivos es consciente de la estructura del disco subyacente. Este conocimiento hace posible el crecimiento automático del sistema de archivos existente cuando se añaden discos adicionales al pool. Además, en ZFS, se pueden aplicar varias propiedades diferentes a cada sistema de archivos, de ahí la posibilidad de crear varios sistemas de archivos y conjuntos de datos diferentes en lugar de un único sistema de archivos monolítico.
Características de ZFS
RAID-Z
ZFS implementa RAID-Z, una variación del RAID-5 estándar que ofrece una mejor distribución de la paridad y elimina el «agujero de escritura de RAID-5» en el que los datos y la información de paridad se vuelven inconsistentes en caso de pérdida de energía.
Redundancia
La redundancia es posible en ZFS porque soporta tres niveles de RAID-Z. Los tipos se denominan RAID-Z1 a RAID-Z3 basándose en el número de dispositivos de paridad en la matriz y el número de discos que pueden fallar mientras el pool permanece operativo.
Spare
ZFS tiene un tipo especial de pseudovdev para llevar la cuenta de los hot spares disponibles. Tenga en cuenta que los repuestos calientes instalados no se despliegan automáticamente; deben configurarse manualmente para reemplazar el dispositivo fallado utilizando zfs replace.
L2ARC
Este es el segundo nivel del sistema de caché de ZFS. La caché de reemplazo adaptable (ARC) primaria se almacena en la memoria RAM. Como la cantidad de RAM disponible suele ser limitada, ZFS también puede utilizar vdevs de caché (un solo disco o un grupo de discos). Los discos de estado sólido (SSD) se utilizan a menudo como estos dispositivos de caché debido a su mayor velocidad y menor latencia
Mirroring
Un espejo se compone de dos o más dispositivos y todos los datos se escribirán en todos los dispositivos miembros. Un vdev espejo sólo contendrá tantos datos como su miembro más pequeño. Un vdev espejo puede soportar el fallo de todos sus miembros, excepto uno, sin perder ningún dato.
Pools de almacenamiento híbrido SSD
Se pueden añadir SSDs de alto rendimiento en el pool de almacenamiento ZFS para crear un tipo de pool híbrido. Estas unidades SSD de alto rendimiento pueden configurarse como caché para mantener los datos a los que se accede con frecuencia con el fin de aumentar el rendimiento.
Copia en escritura
La técnica de copia en escritura la utiliza ZFS para comprobar la consistencia de los datos en los discos.
Suma de comprobación
Cada bloque que se asigna recibe una suma de comprobación utilizando el algoritmo de suma de comprobación de propiedades por conjunto de datos fletcher2, fletcher4, sha25). La suma de comprobación de cada bloque se valida de forma transparente a medida que se lee, lo que permite a ZFS detectar la corrupción silenciosa. En caso de que los datos leídos no coincidan con las sumas de comprobación esperadas. ZFS sigue adelante e intenta recuperar los datos desde la redundancia configurada, como el espejo o el RAID-Z.
Averigua más sobre ZFS: https://www.freebsd.org/doc/handbook/zfs-term.html
Conclusiones
Hay mucho más por ahí sobre ZFS, RAID y LVM. Espero que hayas tenido una buena base en cuanto a esas tres tecnologías y puedas ser capaz de elegir una que se adapte a tu proyecto. Gracias por leerlo.
También leer:
Cómo redimensionar una partición raíz ext2/3/4 y XFS sin LVM
Cómo configurar LVM
Cómo extender el sistema de archivos raíz usando LVM en Linux
Cómo extender/incrementar Tamaño del disco de la máquina virtual (VM) KVM
Los mejores libros de Linux para principiantes &expertos