5.6. Tecnologías avanzadas de almacenamiento

Aunque todo lo que se ha presentado hasta ahora en este capítulo solamente trata con discos duros únicos conectados directamente a un sistema, existen otras opciones más avanzadas que explorar. Las secciones siguientes describen algunos de los enfoques más comunes para extender sus opciones de almacenamiento masivo.

5.6.1. Almacenamiento accesible a través de la red

Combinando redes con las tecnologías de almacenamiento masivo puede resultar en una flexibilidad excelente para los administradores de sistemas. Con este tipo de configuración se tienen dos beneficios posibles:

El almacenamiento se puede consolidar implementando servidores de alto rendimiento con conexiones de red de alta velocidad y configurados con grandes cantidades de almacenamiento rápido. Con la configuración apropiada, es posible suministrar acceso al almacenamiento a velocidades comparables al almacenamiento conectado directamente. Más aún, la naturaleza compartida de tal configuración a menudo hace posible reducir los costos, ya que los gastos asociados con suministrar almacenamiento centralizado y compartido pueden ser menores que suministrar el almacenamiento equivalente para cada uno de los clientes. Además, el espacio libre está consolidado, en vez de esparcido (pero no utilizable globalmente) entre los clientes.

Los servidores de almacenamiento centralizado también puede hacer muchas tareas administrativas más fáciles. Por ejemplo, monitorizar el espacio libre es mucho más fácil cuando el almacenamiento a supervisar existe en un sólo servidor centralizado. Los respaldos también se pueden simplificar en gran medida usando un servidor de almacenamiento centralizado. Es posible hacer respaldos basados en la red para múltiples clientes, pero se requiere más trabajo para configurar y mantener.

Existen varias tecnologías disponibles de almacenamiento en red; seleccionar una puede ser complicado. Casi todos los sistemas operativos en el mercado hoy día incluyen alguna forma de acceder a almacenamiento en red, pero las diferentes tecnologías son incompatibles entre ellas. ¿Cuál es el mejor enfoque para determinar la mejor tecnología a implementar?

El enfoque que usualmente deriva los mejores resultados es dejar que las capacidades incorporadas del cliente decidan el problema. Esto tiene varias razones:

Tenga en cuenta que cualquier problema relacionado a clientes son multiplicados por el número de clientes en su organización. Usando las capacidades incorporadas de los clientes, no tiene que instalar software adicional en cada cliente (lo que resulta en cero costos adicionales en adquisición de software). Y tiene grandes posibilidades de soporte e integración con el sistema operativo del cliente.

Sin embargo, hay una desventaja. Esto significa que el entorno del servidor debe estar al nivel de la tarea de suministrar buen soporte para las tecnologías de almacenamiento basadas en la red requeridas por los clientes. En casos donde el servidor y el sistema operativo cliente son uno y el mismo, normalmente no hay ningún problema. De lo contrario, será necesario invertir un poco de tiempo y esfuerzo en hacer que el servidor "hable" el idioma del cliente. Sin embargo, a menudo este costo está más que justificado.

5.6.2. Almacenamiento basado en RAID

Una habilidad que un administrador de sistemas debería cultivar es la dever las complejas configuraciones de sistemas y observar las diferentes limitaciones inherentes a cada configuración. Mientras que esto, a primera vista, puede parecer un punto de vista deprimente a tomar, puede ser una forma excelente de ver más allá de las brillantes cajas nuevas y visualizar una futura noche del sábado con toda la producción detenida debido a una falla que se podría haber evitado fácilmente con pensarlo un poco.

Con esto en mente, utilicemos lo que conocemos sobre el almacenamiento basado en discos y veamos si podemos determinar las formas en que los discos pueden causar problemas. Primero, considere un falla absoluta del hardware:

Un disco duro con cuatro particiones se muere completamente: ¿qué pasa con los datos en esas particiones?

Está indisponible inmediatamente (al menos hasta que la unidad dañada pueda ser reemplazada y los datos restaurados desde el respaldo más actual).

Un disco duro con una sola partición está operando en los límites de su diseño debido a cargas de E/S masivas: ¿qué le pasa a las aplicaciones que requieren acceso a los datos en esa partición?

Las aplicaciones se vuelven más lentas debido a que el disco duro no puede procesar lecturas y escrituras más rápido.

Tiene un archivo de datos que poco a poco sigue creciendo en tamaño; pronto será más grande que el disco más grande disponible en su sistema. ¿Qué pasa entonces?

La unidad de disco se llena, el archivo de datos deja de crecer y su aplicación asociada deja de funcionar.

Cualquiera de estos problemas puede dejar su centro de datos inútil, sin embargo los administradores de sistemas deben enfrentarse a este tipo de problemas todos los días. ¿Qué se puede hacer?

Afortunadamente, existe una tecnología que puede resolver cada uno de estos problemas. El nombre de esta tecnología es RAID.

5.6.2.1. Conceptos básicos

RAID es el acrónimo para Redundant Array of Independent Disks, Formación de Discos Independientes Redundantes[1]. Como su nombre lo implica, RAID es una forma para que discos múltiples actúen como si se tratasen de una sola unidad.

Las técnicas RAID primero fueron desarrolladas por investigadores en la Universidad de California, Berkeley a mitad de los 80. En ese tiempo, había un gran separación entre las unidades de disco de alto rendimiento utilizadas por las grandes instalaciones computacionales del momento, y las unidades de disco más pequeñas utilizadas por la joven industria de las computadoras personales. RAID se veía como el método para tener varios discos menos costosos sustituyendo una unidad más costosa.

Más aún, las formaciones RAID se pueden construir de varias formas, resultando en características diferentes dependiendo de la configuración final. Vamos a ver las diferentes configuraciones (conocidas como niveles RAID) en más detalles.

5.6.2.1.1. Niveles de RAID

Los investigadores de Berkeley originalmente definieron cinco niveles RAID y los nombraron del "1" al "5." Luego, otros investigadores y miembros de la industria del almacenamiento definieron niveles RAID adicionales. No todos los niveles RAID eran igualmente útiles; algunos eran de interés solamente para propósitos de investigación y otros no se podían implementar de una forma económica.

Al final, habían tres niveles de RAID que terminaron siendo ampliamente utilizados:

  • Nivel 0

  • Nivel 1

  • Nivel 5

Las secciones siguientes discuten cada uno de estos niveles en más detalles.

5.6.2.1.1.1. RAID 0

La configuración del disco conocida como RAID 0 tiende a confundir un poco, pues este es el único tipo de nivel RAID que no implementa absolutamente ninguna redundancia. Sin embargo, aún cuando RAID 0 no tiene ventajas con respecto a su confiabilidad, si tiene otros beneficios.

Una formación RAID 0 consiste de dos o más unidades de disco. La capacidad del almacenamiento en cada disco se divide en pedazos, los cuales representan algún múltiplo del tamaño de bloque nativo del disco. Los datos escritos a la formación se escriben, pedazo a pedazo, en cada unidad de la formación. Los pedazos se pueden ver como tiras o rayas que se van juntando a lo largo de cada unidad en la formación; de allí el otro nombre con el que se conoce a RAID 0: striping.

Por ejemplo, con una formación de dos discos y un tamaño de pedazos de 4KB, el escribir 12KB de datos a la formación, produce que los datos se escriban en tres pedazos de 4KB a las unidades siguientes:

  • Los primeros 4KB se escriben al primer disco, en el primer pedazo

  • Los segundos 4KB se escriben al segundo disco, en el primer pedazo

  • Los últimos 4KB se escriben en el primer disco, en el segundo pedazo

Comparado con una unidad de disco sencilla, las ventajas de RAID 0 incluyen:

  • Tamaño total más grande - RAID 0 se puede construir de manera que es más grande que un único disco, haciendo más fácil el almacenamiento de grandes archivos.

  • Mejor rendimiento de lecturas/escrituras - Las cargas por E/S en una formación RAID 0 se pueden distribuir uniformemente entre todas las unidades en la formación (asumiendo que todas las E/S no están concentradas en un único pedazo)

  • No se desperdicia espacio - Todo el almacenamiento en todas las unidades en la formación están disponibles para almacenamiento de datos

Comparado con un disco sencillo, RAID 0 tiene las siguientes desventajas:

  • Menos confiable - Cada disco en un RAID 0 debe estar operativo para que la formación esté disponible; una falla en un disco-N de RAID 0 resulta en la eliminación de 1/Navo de todos los datos, dejando la formación inutilizable

SugerenciaSugerencia
 

Si tiene problemas para distinguir los diferentes niveles de RAID, simplemente recuerde que RAID 0 tiene un porcentaje de redundancia cero.

5.6.2.1.1.2. RAID 1

RAID 1 utiliza dos (aunque algunas implementaciones soportan más) unidades de disco idénticas. Todos los datos son escritos a ambas unidades, haciendolos imágenes espejo. Por eso es que RAID 1 a menudo se conoce como mirroring.

Cuando los datos son escritos a una formación RAID 1, deben efectuarse dos escrituras físicas simultáneas: una al primer disco y otra al segundo. La lectura de datos, por otro lado, solamente se hace una vez y se puede llevar a cabo en cualquiera de los discos.

Comparado con un disco único, una formación RAID 1 tiene las ventajas siguientes:

  • Redundancia mejorada - Aún si uno de los discos falla, los datos todavía estarán accesibles

  • Mejor rendimiento de lecturas - Con ambos discos operacionales, las lecturas pueden ser distribuídas uniformemente entre ellos, reduciendo las cargas de E/S por disco

Cuando se compara con un sólo disco de duro, una formación RAID 1 tiene algunas desventajas:

  • El tamaño máximo de la formación está limitado a la unidad más grande disponible.

  • Rendimiento reducido en las escrituras - Debido a que ambos discos se deben mantener actualizados, todas las operaciones de E/S deben realizarse en ambos discos, haciendo más lento el proceso general de escribir datos a la formación

  • Eficiencia de costos reducida - Con un disco completo dedicado a la redundancia, el costo de una formación RAID 1 es al menos el doble de lo que costaría un sólo disco

SugerenciaSugerencia
 

Si tiene problemas para distinguir los diferentes nivels de RAID, solamente tiene que recordar que RAID 1 tiene 100 por ciento redundancia.

5.6.2.1.1.3. RAID 5

RAID 5 trata de combinar los beneficios de RAID 0 y RAID 1, a la vez que trata de minimizar sus desventajas.

Igual que RAID 0, un RAID 5 consiste de múltiples unidades de disco, cada una dividida en pedazos. Esto permite a una formación RAID 5 ser más grande que una unidad individual. Como en RAID 1, una formación RAID 5 utiliza algo de espacio en disco para alguna forma de redundancia, mejorando así la confiabilidad.

Sin embargo, la forma en que RAID 5 funciona es diferente a RAID 0 o 1.

Una formación RAID 5 debe consistir de al menos tres discos idénticos en tamaño (aunque se pueden utilizar más discos). Cada unidad está dividida en pedazos y los datos se escriben a los pedazos siguiendo un orden. Sin embargo, no cada pedazo está dedicado al almacenamiento de datos como en RAID 0. En cambio, en una formación con n unidades en ella, el enésimo pedazo está dedicado a la paridad.

Los pedazos que contienen paridad hacen posible recuperar los datos si falla una de las unidades en la formación. La paridad en el pedazo x se calcula matemáticamente combinando los datos desde cada pedazo x almacenado en todas las otras unidades en la formación. Si los datos en un pedazo son actualizados, el correspondiente pedazo de paridad debe ser recalculado y actualizado también.

Esto también significa que cada vez que se escriben datos en la formación, al menos dos unidades son escritas a: la unidad almacenando los datos y la unidad que contiene el pedazo con la paridad.

Un punto clave a tener en mente es que los pedazos de paridad no están concentrados en una sola unidad de la formación. En cambio, están distribuidos uniformemente a lo largo de todas las unidades. Aún cuando es posible dedicar una unidad específica para que contenga únicamente paridad (de hecho, esta configuración se conoce como RAID nivel 4), la actualización constante de la paridad a medida que se escriben datos a la formación significa que la unidad de paridad se podría convertir en un cuello de botella. Distribuyendo la información de paridad uniformemente a través de la formación, se reduce este impacto.

Sin embargo, es importante recordar el impacto de la paridad en la capacidad general de almacenamiento de la formación. Aún cuando la información de paridad se distribuye uniformemente a lo largo de todos los discos, la cantidad de almacenamiento disponible se reduce por el tamaño de un disco.

Comparado con un único disco, una formación RAID 5 tiene las ventajas siguientes:

  • Redundancia mejorada - Si falla una unidad de la formación, se puede utilizar la información de paridad para reconstruir las partes de datos faltantes, todo esto mientras se mantiene la formación disponible para su uso[2]

  • Mejor rendimiento de lecturas - Debido a la forma similar a RAID 0 en que los datos son divididos entre los discos de la formación, la actividad de E/S de distribuye uniformemente entre todos los discos

  • Costo eficiencia razonablemente buena - Para una formación RAID 5 de n unidades, solamente 1/navo del total de almacenamiento disponible está dedicado a la redundancia

Comparado con un sólo disco, una formación RAID 5 tiene las siguientes desventajas:

  • Rendimiento de escritura reducido - Puesto que cada escritura a la formación resulta en al menos dos escrituras a los discos físicos (una escritura para los datos y otra para la paridad), el rendimiento de escrituras es peor que en una sola unidad[3]

5.6.2.1.1.4. Niveles RAID anidados

Como debería ser obvio a partir de la discusión sobre los diferentes niveles de RAID, cada nivel tiene sus fortalezas y debilidades específicas. No fue mucho tiempo después de que se comenzó a implementar el almacenamiento basado en RAID que la gente comenzó a preguntarse si los diferentes niveles RAID se podrían combinar de alguna forma, produciendo formaciones con todas las fortalezas y ninguna de las debilidades de los niveles originales.

Por ejemplo, ¿qué pasa si los discos en una formación RAID 0 fuesen en verdad formaciones RAID 1? Esto proporcionaría las ventajas de la velocidad de RAID 0, con la confiabilidad de un RAID 1.

Este es el tipo de cosas que se pueden hacer. He aquí los niveles de RAID más comunes:

  • RAID 1+0

  • RAID 5+0

  • RAID 5+1

Debido a que los RAID anidados se utilizan en ambientes más especializados, no nos vamos a ir en más detalles aquí. Sin embargo, hay dos puntos a tener en mente cuando se piense sobre RAID anidados:

  • Otros aspectos - El orden en el que los niveles RAID son anidados pueden tener un gran impacto en la confiabilidad. En otras palabras, RAID 1+0 and RAID 0+1 no son lo mismo.

  • Los costos pueden ser altos - Si hay alguna desventaja común a todas las implementaciones RAID, es el costo; por ejemplo, la formación RAID 5+1 más pequeña posible, consiste de seis discos (y se requieren hasta más discos para formaciones más grandes).

Ahora que ya hemos explorado los conceptos detrás de RAID, vamos a ver cómo se puede implementar RAID.

5.6.2.1.2. Implementaciones RAID

Es obvio a partir de las secciones anteriores que RAID requiere "inteligencia" adicional sobre y por encima del procesamiento usual de discos de E/S para unidades individuales. Como mínimo, se deben llevar a cabo las tareas siguientes:

  • Dividir las peticiones de E/S entrantes a los discos individuales de la formación

  • Para RAID 5, calcular la paridad y escribirla al disco apropiado en la formación

  • Supervisar los discos individuales en la formación y tomar las acciones apropiadas si alguno falla

  • Controlar la reconstrucción de un disco individual en la formación, cuando ese disco haya sido reemplazado o reparado

  • Proporcionar los medios para permitir a los administradores que mantengan la formación (eliminando y añadiendo discos, iniciando y deteniendo reconstrucciones, etc.)

Hay dos métodos principales que se pueden utilizar para lograr estas tareas. Las próximas dos secciones las describen en más detalles.

5.6.2.1.2.1. Hardware RAID

Una implementación de hardware RAID usualmente toma la forma de una tarjeta controladora de disco. La tarjeta ejecuta todas las funciones relacionadas a RAID y controla directamente las unidades individuales en las formaciones conectadas a ella. Con el controlador adecuado, las formaciones manejadas por una tarjeta de hardware RAID aparecen ante el sistema operativo anfitrión como si se tratasen de unidades de disco normales.

La mayoría de las tarjetas controladoras RAID trabajan con SCSI, aunque hay algunos controladores RAID basados en ATA también. En cualquier caso, la interfaz administrativa se implementa usualmente en una de tres formas:

  • Programas de utilerías especializados que funcionan como aplicaciones bajo el sistema operativo anfitrión, presentando una interfaz de software a la tarjeta controladora

  • Una interfaz en la tarjeta usando un puerto serial que es accedido usando un emulador de terminal

  • Una interfaz tipo BIOS que solamente es accesible durante la prueba de encendido del sistema

Algunas controladores RAID tienen más de un tipo de interfaz administrativa disponible. Por razones obvias, una interfaz de software suministra la mayor flexibilidad, ya que permite funciones administrativas mientras el sistema operativo se está ejecutando. Sin embargo, si está arrancando un sistema operativo desde una controladora RAID, se necesita una interfaz que no requiera un sistema operativo en ejecución.

Puesto que existen muchas tarjetas controladoras RAID en el mercado, es imposible ir en más detalles aquí. Lo mejor a hacer en estos casos es leer la documentación del fabricante para más información.

5.6.2.1.2.2. Software RAID

Software RAID es RAID implementado como kernel - o software a nivel de controladores para un sistema operativo particular. Como tal, proporciona más flexibilidad en términos de soporte de hardware - siempre y cuando el sistema operativo soporte ese hardware, se pueden configurar e implementar las formaciones RAID. Esto puede reducir dramáticamente el costo de implementar RAID al eliminar la necesidad de adquirir hardware costoso especializado.

A menudo el exceso de poder de CPU disponible para los cálculos de paridad RAID exceden en gran medida el poder de procesamiento presente en una tarjeta controladora RAID. Por lo tanto, algunas implementaciones de software RAID en realidad tienen mejores capacidades de rendimiento que las implementaciones de hardware RAID.

Sin embargo, el software RAID tiene ciertas limitaciones que no están presentes en hardware RAID. La más importante a considerar es el soporte para el arranque desde una formación de software RAID. En la mayoría de los casos, solamente se puede utilizar formaciones RAID 1 para arrancar, ya que el BIOS del computador no está al tanto de RAID. Puesto que no se puede distinguir una unidad única de una formación RAID 1 de un dispositivo de arranque no RAID, el BIOS puede iniciar exitósamente el proceso de arranque; luego el sistema operativo puede cambiarse a la operación desde el software RAID una vez que haya obtenido el control sobre el sistema.

5.6.3. Administración de Volúmenes Lógicos

Otra tecnología de almacenamiento avanzada es administración de volúmenes lógicos o logical volume management (LVM). LVM hace posible tratar a los dispositivos físicos de almacenamiento masivo como bloques de construcción a bajo nivel en los que se construyen diferentes configuraciones de almacenamiento. Las capacidades exactas varían de acuerdo a la implementación específica, pero pueden incluir la agrupación del almacenamiento físico, redimensionamiento de volúmenes lógicos y la migración de datos.

5.6.3.1. Agrupamiento de almacenamiento físico

Aunque los nombres dados a esta capacidad pueden variar, la agrupación del almacenamiento físico es la base para todas las implementaciones de LVM. Como su nombre lo implica, los dispositivos físicos de almacenamiento masivo se pueden agrupar de forma tal para crear uno o más dispositivos lógicos de almacenamiento. Los dispositivos lógicos de almacenamiento masivo (o volúmenes lógicos) pueden ser más grandes en capacidad que cualquiera de los dispositivos físicos de almacenamiento subyacentes.

Por ejemplo, dadas dos unidades de 100GB, se puede crear un volumen lógico de 200GB. Sin embargo, también se pueden crear un volumen lógico de 150GB y otro de 50GB. Es posible cualquier combinación de volúmenes lógicos igual o menor que la capacidad total (en nuestro ejemplo 200GB). Las posibilidades están limitadas solamente a las necesidades de su organización.

Esto hace posible que un administrador de sistemas trate a todo el almacenamiento como un sólo parque de recursos de almacenamiento, disponible para ser utilizado en cualquier cantidad. Además, posteriormente se pueden añadir unidades a ese parque, haciéndo un proceso directo el mantenerse al día con las demandas de almacenamiento de sus usuarios.

5.6.3.2. Redimensionamiento de volúmenes lógicos

La característica que la mayoría de los administradores de sistemas aprecian más sobre LVM es su habilidad para dirigir fácilmente el almacenamiento donde se necesite. En una configuración de sistemas no LVM, el quedarse sin espacio significa - en el mejor de los casos - mover archivos desde un dispositivo lleno a uno con espacio disponible. A menudo esto significa la reconfiguración de sus dispositivos de almacenamiento masivo; una tarea que se debe llevar a cabo después del horario de oficina.

Sin embargo, LVM hace posible incrementar fácilmente el tamaño de un volumen lógico. Asuma por un momento que nuestro parque de almacenamiento de 200GB fue utilizado para crear un volumen lógico de 150GB, dejando el resto de 50GB en reserva. Si el volumen lógico de 150GB se llena, LVM permite incrementar su tamaño (digamos por 10GB) sin ninguna reconfiguración física. Dependiendo del entorno de su sistema operativo, se puede hacer esto dinámicamente o quizás requiera una pequeña cantidad de tiempo fuera de servicio para llevar a cabo el redimensionamiento.

5.6.3.3. Migración de datos

La mayoría de los administradores con experiencia estarían impresionados de las capacidades de LVM, pero también se preguntarían:

¿Qué pasa si uno de los discos que forman parte del volumen lógico comienza a fallar?

Las buenas noticias es que la mayoría de las implementaciones LVM incluyen la habilidad de migrar datos fuera de una unidad física particular. Para que esto funcione, debe existir suficiente capacidad para absorber la pérdida de la unidad fallida. Una vez que se termine la migración, se puede reemplazar la unidad que dejó de funcionar y añadirla nuevamente en el parque de almacenamiento disponible.

5.6.3.4. Con LVM, ¿Por qué utilizar RAID?

Dado que LVM tiene algunas funcionalidades similares a RAID (la habilidad de reemplazar dinámicamente unidades fallidas, por ejemplo) y algunas funcionalidades proporcionan capacidades que no se pueden comparar con la mayoría de las implementaciones RAID (tales como la habilidad de añadir dinámicamente más almacenamiento a un parque central de almacenamiento), mucha gente se pregunta si ya RAID no es tan importante.

Nada puede estar más lejos de la realidad. RAID y LVM son tecnologías complementarias que se pueden usar en conjunto (de una forma similar a los niveles RAID anidados), haciendo posible obtener lo mejor de los dos mundos.

Notas

[1]

Cuando comenzaron las primeras investigaciones de RAID, el acrónimo venía de Redundant Array of Inexpensive Disks, pero con el paso del tiempo los discos "independientes" que RAID pretendía sustituir se volvieron más y más económicos, dejando la cuestión del costo un poco sin sentido.

[2]

Se reduce el rendimiento de E/S cuando se está funcionando con una unidad faltante debido a la sobrecarga generada en reconstruir los datos faltantes.

[3]

También existe un impacto por los cálculos de paridad requeridos por cada escritura. Sin embargo, dependiendo de la implementación de RAID 5 específica (específicamente, dónde se realizan los cálculos de paridad en el sistema), este impacto puede variar desde muy grandes a inexistentes.