Sunteți pe pagina 1din 12

RAID, LVM y ZFS

Héctor López

3 de marzo de 2009
Índice general

1
0.1. Introducción

El siguiente coloquio pretende dar una exposición acerca de tres tecno-


logı́as distintas, que dentro de una buena implementación pueden llegar a fun-
cionar de manera bastante eficiente, brindando al manejo avanzado de discos
duros bajo un ambiente Linux caracterı́sticas de gran importancia, como flexibi-
lidad y confiabilidad. Se expondrá el Sistema Redundante de Arreglo de Discos
o RAID por sus siglas en inglés, una herramienta muy útil como LVM o Logical
Volume Management, y por último, expondremos de forma teórica acerca del
sistema de archivos ZFS.

Pero éste coloquio no pretende quedarse sólo en la teorı́a, ası́ que muestra
cómo implementar un arreglo RAID entre un conjunto de discos duros, y a partir
de éste punto usaremos sobre el arreglo RAID la herramienta LVM para mostrar
algunas de las bondades de su uso.

2
Capı́tulo 1

RAID (Redundant Array of


Independent Disks)

Los discos duros frecuentemente fallan, e incluso con la existencia de


backups actualizados, las consecuencias de una falla de disco en un servidor
pueden ser desastrosas. RAID es un sistema que usa múltiples discos duros
para distribuir o replicar los datos a tráves de los discos duros que lo componen.
RAID no sólo ayuda a prevenir la pérdida de datos sino que también minimiza el
tiempo asociado a la falla de hardware e incluso puede incrementar el desempeño
del sistema. Los sistema RAID pueden ser implementados en hardware, pero en
Linux también existe la posibilidad de hacerlo únicamente con software, o en
una combinación de software y hardware.

En sus primeras implementaciones, la mayor ventaja de usar un RAID


era la de combinar las capacidades de varios dispositivos de bajo costo y tecno-
logı́a más antigua en un conjunto que ofrecı́a mayor confiabilidad, velocidad y
capacidad de almacenamiento que un único dispositivo de última generación y
mayor costo. Dependiendo de su configuración, a la cual suele llamársele nivel,
los beneficios de un RAID pueden ser: mayor integridad, mayor rendimiento,
mayor tolerancia a fallos y mayor capacidad.

Un RAID básicamente puede hacer dos cosas. Primero, puede mejorar el


desempeño canalizando los datos a través de los dispositivos múltiples, permi-
tiendo ası́ que diversos discos trabajen simultáneamente para proveer o absorber
los datos requeridos. La segunda funcionalidad de un RAID es que permite du-
plicar los datos entre distintos dispositivos, disminuyendo el riesgo asociado a
la falla de alguno de ellos.

3
1.1. Conceptos básicos relacionados a RAID

Para entender como funciona la tecnologı́a RAID debemos entender los


conceptos o principios sobre los que se basa. Dichos principios son:

Mirroring, que consiste en copiar los datos en más de un dispositivo.

Striping, es la división de la data en los múltiples discos duros.


Corrección de errores, es donde la data redundante es guardada para
permitir la correción de errores y su posible reparación

La cosa interesante de RAID es que dependiendo de la configuración que


se use (nivel), cambia las funciones y propósitos del arreglo entero. Ası́ que sin
más preámbulo explicaremos los niveles básicos de un RAID y cómo se pueden
combinar éstos niveles.

1.2. Niveles de un RAID


RAID nivel 0: La función de un RAID nivel 0 es estrictamente para incre-
mentar el rendimiento del sistema. Esto lo hace usando dos o más discos
únicamente del mismo tamaño. En éste nivel los bloques de datos son
divididos entre los dos discos. El aumento en el rendimiento se basa en
disminuir los tiempos de escritura y acceso. Debo aclarar que éste nivel
no ofrece redundancia, ası́ que en caso de falla de un disco no se podrı́an
recuperar los datos.

RAID nivel 1: Un RAID nivel 1 es el primer nivel que ofrece redundan-


cia. Los datos son duplicados completamente en dos o más dispositivos
de manera simultánea. Éste modo duplica la información pero reduce el
desempeño porque la información debe escribirse más de una vez.
Para entender de una mejor forma éste nivel RAID imagine que hace una
copia exacta del disco 1 en el disco 2, de forma tal que los datos en el disco
2 sean como el reflejo en el espejo de los datos en el disco 1 y viceversa.

RAID nivel 5: En mi opinión personal es el nivel RAID que ofrece más


ventajas, puesto que divide tanto los datos originales como los datos de
paridad, logrando ası́ que si un disco falla, el sistema siga funcionando
mientras se sustituye el disco que falló por otro. Para implementar éste
nivel se necesitan al menos 3 discos duros.
Para entender éste nivel imaginemos que el disco A está dividido en 3
bloques, el bloque 1 , el bloque 3, y un bloque de paridad de los bloques 5
y 6. Por otro lado el disco B nuevamente ésta dividido en tres bloques, el 2,
el 5 y el bloque de paridad de los bloques 3 y 4, y por último el disco C que
está dividido en los bloques 4 y 6, y un bloque de paridad de los bloques 1

4
y 2. De ésta forma se logra que si falla cualquiera de los discos, por ejemplo
el C, el sistema seguirá funcionando ya que los bloques de paridad del disco
A y el disco B cubren los bloques del disco averiado C, permitiendo que
el administrador pueda sustituir el disco averiado sin detener el sistema.
Luego de que el administrador cambie el disco que presentó la falla por un
disco funcional se pueden reconstruir los datos que antiguamente estaban
en el disco C tomando los datos correspondientes de los otros discos.

1.2.1. Niveles RAID anidados

Para mejorar en el desempeño del sistema o ganar en redundancia, los


niveles básicos de un RAID pueden combinarse para crear niveles hı́bridos o
anidados.

Cuando se anidan niveles RAID, generalmente se anida un nivel que ofrez-


ca redundancia con un nivel 0 para mejorar en rendimiento. Con ésta idea en
mente, es preferible tener el nivel 0 en el tope y el arreglo redundante debajo
de éste. De ésta manera se necesitará regenerar una menor cantidad de discos
en caso de una falla. Los casos de uso más comunes son los siguientes:

RAID 0+1: Utiliza un mı́nimo de 4 discos, y ésto se debe a que en esencia es


un espejo de una división de bloques de datos. Éste nivel provee tolerancia
a fallos si uno o más de los discos que fallan son del mismo conjunto del
espejo. Si los discos que fallan son los que poseen los mismos datos a ambos
lados del espejo, entonces los datos se pierden.

RAID 1+0: Al igual que el nivel anidado expuesto anteriormente, éste


nivel también requiere de al menos 4 discos. Para visualizar de forma más
clara ésta configuración, se podrı́a decir que es un conjunto de discos que
son copias idénticas, dentro de un conjunto de discos que se dividen los
bloques de datos.
En caso de una falla, éste nivel se comporta mejor que un RAID 0+1,
porque todos los otros discos siguen funcionando. Incluso el arreglo puede
soportar diversas fallas de disco, a menos que fallen todos los discos de un
conjunto de espejos.

RAID 5+0: Ésta configuración se basa en una división de bloques de datos


a través de un arreglo con paridad distribuida como lo es el RAID 5.
Ésta configuración soporta que falle uno de los discos de cualquiera de los
arreglos RAID 5, pero si falla otro de los discos de ése mismo conjunto, el
sistema falla completamente.

RAID 5+1: La diferencia principal de ésta configuración con respecto a


la anterior radica en que en ésta se hace una copia del RAID 5, pudiendo
fallar una mayor cantidad de discos para que el conjunto total de discos
falle por completo.

5
Capı́tulo 2

LVM (Logical Volume


Management)

LVM es una herramienta bastante útil que permite tener una vista de
alto nivel de los discos de almacenamiento de un sistema con respecto a la
vista tradicional de discos y particiones. Ésto le da al administrador una mayor
flexibilidad a la hora de establecer el espacio de almacenamiento de los usuarios
y programas.

LVM permite agrupar discos individuales en “grupos de volúmenes”. Lue-


go la capacidad de éstos grupos de volúmenes puede ser establecido en un
volúmen lógico, los cuales son accesados como dispositivos regulares. En otras
palabras, LVM elimina el problema de particiones de disco que se saturan, ya
que al observar ésto, el administrador puede modificar el tamaño del volúmen
lógico agregándole un disco o alguna partición de disco.

2.1. Conceptos básicos de LVM

Para comprender con mayor profundidad todo lo que expondremos acerca


de LVM, antes debemos aclarar algunos conceptos básicos sobre los que se basa
LVM. A continuación daré una breve explicación de éstos conceptos:

Volúmenes fı́sicos: Se refiere a los discos duros, particiones de algún disco,


o incluso un RAID(recordemos que el arreglo de discos se ve como un sólo
dispositivo por el sistema operativo).

Volúmenes lógicos: Es una especie de método que permite distribuir espa-


cio en dispositivos de almacenamiento masivos, de una forma mucho más

6
flexible que los modelos de particionado tradicionales. En particular, un
volúmen lógico puede concatenar, dividir o combinar particiones en diver-
sas particiones virtuales más grandes a las cuales se les puede modificar
el tamaño de forma más sencilla.

Grupo de volúmenes: Es el nivel de abstracción más alto usado en LVM,


y es el que engloba tanto a volúmenes fı́scos como lógicos. Para que se
entienda mejor la definición, el grupo de volúmenes es una colección de
volúmenes fı́sicos sobre los cuales se puede crear un volúmen lógico, y a
su vez todo ésto se encuentra dentro del grupo de volúmenes.

2.2. Usos comunes de LVM

Los usos más comunes que se le dan a LVM son los siguientes:

Distribuir y usar de manera más eficiente el almacenamiento en disco. Ésto


se logra ya que LVM permite añadir discos, sustitirlos, copiar y compartir
el contenido de un disco a otro.

Mover volúmenes lógicos sobre diferentes dispositivos fı́sicos.

Expandir o disminuir el tamaño de volúmenes lógicos al momento.

Tomar instantáneas(snapshots) de filesystems enteros.

Hacer backups con el uso de las snapshots.

Sustituir un dispositivo en marcha sin necesidad de interrumpir el servicio.

Podrı́amos pensar que LVM es un software que nos permite como admi-
nistradores, observar los discos y particiones con una noción de continuidad.
Igualmente nos permite con una facilidad relativa manipular las particiones de
un disco, reemplazarlos e incluso hacerles respaldos.

2.3. Funcionalidades de LVM

Ahora bien, para llevar a cabo los usos que nombramos en la sección ??,
LVM se basa en las siguientes funcionalidades que posee:

Modificar el tamaño de grupos de volúmenes que se encuentran en lı́nea


bien sea anãdiendo volúmenes fı́sicos como un disco duro o una partición
de éste, o eliminándolo del grupo.

7
Modificar el tamaño de volúmenes lógicos que se encuentran funcionando.
Ésta operación puede ser llevada a cabo de dos formas: O concatenando
un extent, que no es más que un área contigua de almacenamiento, al
volúmen lógico, o truncando los extent del volúmen lógico.

Crear snapshots de sólo lectura, o de lectura y escritura de volúmenes


lógicos enteros.

Dividir partes de un volúmen lógico o incluso el volúmen lógico entero a


través de diversos volúmenes fı́sicos. Ésto serı́a en una idea similar a un
RAID 0.

Utilizar el concepto de Mirroring explicado en la sección ?? de RAID,


sobre volúmenes lógicos enteros o partes de éstos. Ésto se hace con el
mismo objetivo que un RAID 1.

Mover volúmenes lógicos entre volúmenes fı́sicos.

Dividir o unir grupos de volúmenes

8
Capı́tulo 3

ZFS

ZFS es un file system desarrollado por Sun Microsystems para su sistema


operativo Solaris. Para los que no están familiarizados con el término file system,
éste se refiere a una manera de gestionar el contenido que se almacena en el disco
en un formato determinado. ZFS es parte del sistema operativo Solaris de Sun,
y está disponible tanto para la arquitectura SPARC como para sistemas basados
en la arquitectura x86.

3.1. Caracterı́sticas de ZFS

Entre las caracterı́sticas de ZFS podemos mencionar las siguientes:

1. Modelo de almacenamiento agrupado.

2. Siempre coherente en el disco.

3. Protección frente a la corrupción de datos.

4. Clones e instantáneas rápidas (Snapshots).

5. Notable escalabilidad.

6. Modelo de administración simplificado.

Éstas caracterı́sticas hacen de ZFS un file system con un enfoque distinto


al manejo de data con respecto a otras tecnologı́as. A continuación explicaré de
forma más detallada éstas caracterı́sticas.

9
3.1.1. Modelo de almacenamiento agrupado.

A diferencia de los file systems tradicionales, que residen en un sólo dispo-


sitivo de almacenamiento y por lo tanto requieren de un manejador de volúme-
nes(como LVM) para usar más de un dispositivo; ZFS está construido sobre una
combinación virtual de espacios de almacenamiento (virtual storage pools)
llamados zpool . Un zpool está construido de dispositivos virtuales (vdevs),
los cuales a su vez están construidos a partir de bloques de dispositivos, como
son archivos, particiones de un disco duro, o discos duros enteros, siendo ésta
última opción la de uso recomendado.

La capacidad de almacenamiento de todos los vdevs está disponible para


todas las instancias del filesystem en el zpool.Una cuota puede ser establecida
para limitar la cantidad de espacio que alguna instancia del filesystem pueda
ocupar. De igual forma se puede establecer una reserva para garantizar que haya
espacio para alguna instancia del filesystem.

El uso de éste modelo de almacenamiento agrupado permite que todo


el espacio de almacenamiento que tengamos disponible, se comparta entre los
diferentes sistemas de archivos, sin desperdiciar espacio en caso de que alguno
de los sistemas no esté demasiado ocupado. Otro de los beneficios de ésta carac-
terı́stica de ZFS es que se elimina por completo el concepto de volúmenes y los
problemas asociados de particiones y desperdicio de ancho de banda. Cientos
de sistemas de archivos pueden residir en un conjunto de espacios de almacena-
miento (zpool), y cada uno consumiendo sólo el espacio que realmente necesita.
Por otra parte la combinación del ancho de banda I/O de todos los dispositivos
en el conjunto se encuentra disponible para todos los sistemas de archivos en
todo momento.

3.1.2. Siempre coherente en el disco.

Cuando decimos que ZFS siempre es coherente en el disco nos referimos


a que ofrece integridad de datos comprobable, de forma que los datos en disco
siempre sean correctos. Ésto se logra con el uso de un modelo transaccional
para realizar las escrituras. Dicho modelo transaccional se basa en el uso de
una técnica llamada copy-on-write. Ésta técnica consiste en no sobreescribir los
datos en el disco cuando se modifican, sino que se crean nuevos bloques donde
se graban y luego se modifican las estructuras para que apunten a éstos nuevos
bloques. De ésta forma se previene corrupción de la data. Igualmente los datos
se auto reparan, es decir, si se detecta un daño en algún archivo, ZFS lo detecta
y lo repara usando otra copia.

10
3.1.3. Clones e instantáneas rápidas(Snapshots).

Como ZFS no sobrescribe datos, tomar una instantánea simplemente sig-


nifica no liberar los bloques utilizados por versiones antiguas de los datos. La
ventaja es que las instantáneas se toman rápidamente y también son eficientes
desde el punto de vista del espacio, pues comparten los datos sin modificar con
el sistema de ficheros.

Se pueden crear instantáneas modificables (llamadas clones), lo que re-


sulta en dos sistemas de ficheros independientes que se crean compartiendo un
conjunto común de bloques. A medida que se realizan cambios los bloques del
sistema de ficheros divergen, pero los bloques comunes se mantendrán indepen-
dientemente de cuantos clones existan.

11

S-ar putea să vă placă și