Sei sulla pagina 1di 16

RAID por software en Linux con mdadm.

(5ta de la serie RAID)

Bueno, pasaron varios días sin que hiciera


nada, así que de regreso les traigo la quinta
(¿y ultima?) parte de la serie sobre RAIDs
de Jeffrey B Layton. En este caso estaremos
viendo una descripción introductoria de la
herramienta de linux mdadm, empleada para
la creación y administración de arreglos
RAIDs por software (todo lo
que habíamos visto hasta
ahora presuponía que usaban un controlador
RAID dedicado, mas adelante los detalles). Para los que llegan nuevos,
pueden encontrar la serie completa aquí. Es una buena manera de
regresar y parece que esta semana va a ser buena, se acumulo bastante
material muy útil, así que no se vayan lejos. El original de este lo pueden
encontrar aquí, es largo, así que consideren marcarlo, provecho!

Ahora que hemos completado nuestro primer examen de los fundamentos


de los niveles RAID (RAID anidados incluidos) es el momento de dirigir
nuestra atención a la funcionalidad RAID en Linux usando software. En
este artículo vamos a discutir mdadm - la herramienta de administración
de software RAID para Linux. Viene con casi todas las distribuciones de
Linux y tiene algunas características únicas que muchas tarjetas de
hardware no tienen

Controladores RAID
Hemos pasado mucho tiempo examinando diversos niveles RAID, tales
como RAID-0, 1, 5 y 6, y niveles RAID anidados como RAID-10, 50, 51, 61,
y 60 o incluso RAID más complicados como RAID-100 o RAID-160. En
todos los casos asumimos que existía una controladora RAID realizando
las distintas operaciones. Esto incluye el envío de fragmentos de datos a
los discos apropiados, los cálculos de paridad, los cambios en caliente, los
fallos en discos, el control de las transacciones de lectura para determinar
si fueron exitosas y si no, declarar el disco como fallado, además de otras
importantes tareas relacionadas con RAID. Todas estas tareas requieren
algún tipo de cálculo y tienen que ser realizadas por un controlador RAID.
Usted realmente tiene dos opciones referidas a controladores
RAID: (1) un controlador RAID dedicado, como las tarjetas RAID
complementarias, (2) un RAID por software que utilizará el CPU para
tareas RAID. En el primer caso tendrás un controlador RAID dedicado,
típicamente como una tarjeta RAID complementaria, pero que puede

http://www.tecnodelinglesalcastellano.com 
estar incluida en la placa base, que realiza los cálculos RAID necesarios.
Este controlador suele utilizar un procesador dedicado regularmente de
baja potencia, a menudo un procesador de tiempo real tal como PowerPC,
para realizar los cálculos. Normalmente, estos controladores se ponen en
una tarjeta adicional y se conectan las unidades que desee en la matriz
RAID a esta tarjeta.

Con el RAID por software, todas las funciones RAID se ejecutan en el


CPU. Casi todas las distribuciones de Linux viene con el software de RAID
en forma de md (dispositivos múltiples), que es un controlador dentro de
Linux que proporciona dispositivos virtuales creados a partir de uno o
más dispositivos subyacentes (por ejemplo, dispositivos de
almacenamiento de bloques). Además lo bueno es que viene con casi
todas las distribuciones de Linux de modo que tendrá acceso a las fuentes
(además el precio no está nada mal y tiene una gran cantidad de
funcionalidades). Además, puede crear configuraciones RAID anidadas si
lo necesita ya que todas las funciones RAID son por software (me huele
que viene un triple Lindy).
Una de las cosas con las que tienes que tener mucho cuidado es con lo que
comúnmente se llama un RAID falso (FakeRAID) o controladora RAID
falsa (FakeRAID controller). Los RAID falsos no son RAIDs por hardware
porque no hay un controlador RAID dedicado. Más bien, usan un chip
controlador de disco estándar en una tarjeta adicional o en la placa base,
con algunos drivers y firmware especializados. En el momento de
arranque ejecutan una aplicación especial que permite a los usuarios
configurar los discos conectados al Falso RAID como un grupo RAID.
Pero el procesamiento RAID es manejado por controladores que se
ejecutan en el CPU (de manera que es el CPU quien provee la potencia de
cálculo). Por lo tanto, es realmente una solución de RAID por software y
no por hardware (de ahí el nombre de "Falso RAID").

Hay un gran debate dentro de la comunidad Linux sobre los falsos RAID.
Un punto en estos debates es que los vendedores de RAIDs falsos no le
dicen a los clientes que lo que en realidad están comprando no es una
tarjeta RAID con un controlador RAID dedicado, sino una simple tarjeta
con un controlador de disco, junto con los controladores que utiliza la
CPU para el procesamiento RAID (publicidad engañosa). Además existe
un problema adicional referido al desarrollo y soporte de estos
controladores para Linux que permiten utilizar estas tarjetas RAID falsas.
Finalmente, hay un argumento fuerte de que es probable que sea mejor
usar el RAID por software que viene con Linux (md), puesto que ya forma
parte de Linux y posiblemente le brindará un mejor rendimiento.

http://www.tecnodelinglesalcastellano.com 
Sin embargo, si usted quiere usar el RAID por software que viene con
Linux en el kernel (md), usted todavía necesitará algunas herramientas
para controlar, administrar y supervisar el software RAID. Ahí es donde
entra en juego mdadm. En este artículo se hará un breve examen
de mdadm y algunas de sus opciones.

Introducción a mdadm
Mdadm es una herramienta de software principalmente escrita por Neil
Brown, que le permite crear, montar, reportar, aumentar, y supervisar las
matrices RAID que usan software RAID en Linux. En realidad, según la
documentación existen siete modos de funcionamiento:

create (Crear)
assemble (Montar o ensamblar)
follow or monitor (Seguir o monitorear)
build (Generar o crear)
grow (Aumentar)
manage (Administrar)
misc (Otras)

Vamos a caminar a través de estos diversos modos de operación, pero el


foco de este artículo es una introducción y no un HOWTO en
profundidad. Usted puede encontrar este tipo de artículos en la web.
El primer paso para usar mdadm, o dado el caso cualquier RAID, es
planificar su configuración RAID cuidadosamente. Personalmente me
gusta trabajar a la inversa partiendo del propósito del almacenamiento.
¿Va a ser utilizado para una base de datos? Va a ser utilizado para un
/home? ¿Será utilizado con propósitos de alta velocidad? Va a ser
utilizado para datos que requieran un alto grado de fiabilidad? Entender
el propósito del almacenamiento es realmente la clave para crear la
configuración RAID que necesita o desea. Una vez que determine la clase
de uso de almacenamiento, necesitará desarrollar una idea de que tanto
rendimiento de E / S va a necesitar (transferencia real y en operaciones de
entrada / salida por segundo) y la relación general de lectura / escritura.
Usted también debe desarrollar una idea de que tanta redundancia de
datos necesitará para el almacenamiento.

Una vez que usted tenga una idea del rendimiento y la redundancia de la
matriz puede seleccionar la configuración RAID que piensa que podría
necesitar. Le sugiero que seleccione varias configuraciones RAID
candidatas y luego lea y haga un poco más de investigación sobre cada
una y seleccione la configuración que mejor le parezca. Durante esta

http://www.tecnodelinglesalcastellano.com 
investigación asegúrese de examinar la redundancia, así como el
desempeño de las diferentes configuraciones y compárelas con sus
estimaciones. Pero también asegúrese de examinar la eficiencia y la
capacidad de almacenamiento de cada nivel. Probablemente ud ame el
rendimiento y la eficiencia de almacenamiento de RAID-10, pero la
redundancia de datos puede no ser suficiente para usted. O le puede
encantar la redundancia de datos de RAID-61, pero es posible que no esté
dispuesto a renunciar al rendimiento o, quizás más importante, no esté
dispuesto a tener un rendimiento de almacenamiento tan bajo (sobre todo
si es para su sistema casero).
Pero sólo elegir la configuración RAID que desea no es el final de su
planificación. Es necesario considerar también otra serie de cosas. Tal vez
lo más importante que hay que tener en cuenta es si va a necesitar
aumentar o reducir el tamaño del almacenamiento. La razón por la que
esto es importante es porque es probable que tenga que
utilizar LVM (Logical Volume Manager), ya sea sobre el software RAID de
Linux o por debajo del este. Esto le obligará a considerar cuidadosamente
cómo construir tanto LVM como RAID por software y cómo expandir uno
de ellos o los dos. Yo recomendaría revisar los pasos de expansión para
asegurarse de que sabe cómo hacerlo (incluso podría poner a un lado sus
ideas y buscar otra persona para tener otro par de ojos examinando).

Otra cosa que usted debe considerar antes de implementar su bien


formulado y pensado plan RAID es el sistema de archivos que usará sobre
el almacenamiento. Basado en su modelo de uso para el almacenamiento,
seleccione uno o ambos sistemas de archivos candidatos. Luego, haga una
investigación sobre cada uno de ellos para averiguar qué problemas o
limitaciones tienen, y también cómo puede optimizar cada sistema de
archivos para un mejor rendimiento (todos somos adictos al rendimiento
en nuestro corazón). Hay una serie de artículos en la web que tratan sobre
los ajustes a los sistemas de archivos con el software RAID de Linux.
Suponiendo que usted ha hecho su planificación cuidadosamente
(incluyendo una solución de copia de seguridad), vamos a pasar al primer
"modo" de mdadm, creación de un array RAID.

Creación de un array RAID


Mdadm le permite crear un array RAID usando los dispositivos de bloque
Linux. Durante la creación de la matriz, se crean superbloques por
dispositivo para el arreglo RAID (permiten a la matriz ser ensamblada
correctamente). Usar el modo "create" es el método más común para
crear la matriz y se recomienda si usted está recién empezando a
utilizar mdadm.

http://www.tecnodelinglesalcastellano.com 
El comando mdadm básico para crear una matriz RAID es bastante
simple con el siguiente comando genérico y opciones típicas.
mdadm --create [dispositivo-md] --chunk=X --level=Y --raid-devices=Z

donde las opciones son las siguientes:

-c, --chunk = Tamaño del trozo (chunk) especificado en kibibytes. El


predeterminado es 64.

-l, --level = nivel RAID, las opciones son: lineal, RAID 0, 0, stripe, RAID
1, 1, mirror, RAID 4, 4, RAID 5, 5, RAID 6, 6, RAID 10, 10, multipath, mp,
faulty

-n, -raid-devices = Especifica el número de dispositivos activos en la


matriz.

Observe que el comando mdadm inicia con la opción "--create" que le


dice a mdadm que operará en modo "create". Entonces me gusta definir
el dispositivo md específico también, pero asegúrese de no estar usando el
nombre de un dispositivo md que ya existe. La especificación de la opción
del "chunk" depende de usted. A continuación, defina el nivel RAID que
desee usando la opción "--level" antes descrita. También puede decirle
a mdadm cuántos dispositivos de bloque está utilizando con la opción "-
raid-devices=Z" (Z es el número de dispositivos). Entonces, finalmente
le dará a mdadm la lista de dispositivos de bloque que está utilizando.

Un ejemplo del uso de la opción "--create" con mdadm sería:


%mdadm --create --verbose /dev/md0 --level=0 --raid-devices=3 /dev/sda1
/dev/sdb1 /dev/sdc1

que crea una configuración RAID-0 etiquetada como /dev/md0 y utiliza


tres dispositivos de bloque que son /dev/sda1, /dev/sdb1 y /dev/sdc1.

En el ejemplo, he utilizado la primera partición de cada una de las tres


unidades que son dispositivos de bloque válidos como los dispositivos de
bloques de mdadm. Pude haber usado sin problemas todo el disco como
/dev/sda o /dev/sdb. El punto es que necesitan ser dispositivos de bloque

http://www.tecnodelinglesalcastellano.com 
válidos de Linux (podrían incluso ser dispositivos de red pero esa es una
discusión diferente).
Mdadm es lo suficientemente inteligente como para construir la
configuración RAID-0 usando el tamaño más pequeño común de cada
uno de los tres dispositivos. Por lo tanto, se recomienda que compruebe el
tamaño de cada dispositivo de bloque con fdisk, como se muestra a
continuación.
root@laytonjb-laptop: ~/# /sbin/fdisk /dev/sdb

The number of cylinders for this disk is set to 19457.


There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 160.0 GB, 160041885696 bytes


255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000bca3e

Device Boot Start End Blocks Id System


/dev/sdb1 * 1 18704 150239848+ 83 Linux
/dev/sdb2 18705 19457 6048472+ 5 Extended
/dev/sdb5 18705 19457 6048441 82 Linux swap / Solaris

Asegúrese de buscar la partición que va a utilizar en la columna "Blocks"


. Haga esto para todos los dispositivos y asegúrese de que el número de
bloques es igual o muy parecido (de lo contrario se perderá el espacio).

También puede notar que he usado la opción "--verbose" con el


comando mdadm "create". Me gusta usar esta opción para obtener más
información acerca de lo que está haciendo mdadm ("mejor que sobre que
no que falte", es un buen lema). Esto siempre es un buen hábito.
En este punto, la matriz RAID debe estar creada y en funcionamiento.
Una manera fácil de comprobarlo es mirar en /proc/mdstat.

% cat /proc/mdstat

Afortunadamente, la salida debe ser bastante fácil de leer a simple vista.


Para obtener información mucho más detallada puede leer este artículo.
Inmediatamente después de que el arreglo RAID es creado, debe
atravesar por un proceso de sincronización. Este proceso ejecuta las
funciones RAID necesarias para la configuración que ud ha creado. Por

http://www.tecnodelinglesalcastellano.com 
ejemplo, para RAID-1, los bloques en el primer disco se copian en la
segunda unidad, incluso si no hay ninguna información en ellos.

Una vez que la matriz ha terminado de sincronizar y está lista, entonces


puede pasar al siguiente paso que puede ser utilizar el dispositivo RAID
resultante en un LVM o crear un sistema de archivos con el dispositivo de
bloques.
Hay muchas opciones que puede utilizar en el modo "create". Puede leer
las páginas del manual para obtener una lista de ellas, pero a continuación
le presento algunas de las mas importantes y que no han sido presentadas
todavía en este articulo.

• -x,--spare-devices= Esta opción le permite especificar


dispositivos de reserva en el arreglo inicial. Estos son dispositivos
(discos) que se utilizan en caso de que un disco en la configuración
RAID falle. Mdadm a continuación, utiliza la unidad de repuesto de
inmediato y se inicia la restauración de la matriz a la configuración
deseada. Mdadm también permite añadir o quitar unidades de
repuesto más tarde (no necesariamente hay que añadirlos en el
momento en que se crea la matriz). Si utiliza dispositivos de reserva
asegúrese de que la opción "--raid-devices" muestre el número de
dispositivos que componen el RAID en realidad mas los dispositivos
de reserva.

• -p,--layout=, --parity= mdadm le ofrece un control


extraordinario sobre su configuración RAID. Esta opción le permite
controlar los detalles de la estructura de datos para arreglos RAID-5
y RAID-10 y también controla el modo de fallo para los discos
defectuoso o fallados. Por favor, lea la página de manual para más
detalles.

• -z,--size= Esta opción es la cantidad de espacio que va a ser usado


en cada unidad en configuraciones RAID 1, RAID-4, RAID-5, o
RAID-6. El tamaño se da en kikibytes y debe ser un múltiplo del
tamaño del fragmento (chunk). Además, debe dejar alrededor de
128 KB (128 kikibytes) de espacio al final de la unidad para el
superbloque RAID. Después de que la matriz es creada usted puede
usar el modo "--grow" (aumentar o crecer) de mdadm para
aumentar el tamaño de la configuración RAID.

Montaje de un array RAID mdadm.

http://www.tecnodelinglesalcastellano.com 
Uno de los otros modos en mdadm es "assemble". Después de que su
matriz RAID ha sido creada usando mdadm, puede detenerla mediante
el siguiente comando:

% mdadm --stop /dev/md0

Que detiene el arreglo RAID /dev/md0 (asegúrese de desmontar antes el


sistema de archivos que utiliza el RAID). Sin embargo, hay problemas con
el reinicio de la matriz RAID. Al reiniciar la matriz deberá utilizar mdadm
para volver a ensamblar la matriz. por ejemplo

% mdadm --assemble /dev/md0 /dev/sda1 /dev/sdb1


/dev/sdc1

Este comando ensambla las partes de un conjunto creado previamente en


una matriz activa y reinicia la matriz (es decir, hace que funcione). Para
automatizar esto, puede poner este comando en el sistema de arranque
(por ejemplo, /etc/rc.d/rc.local) y puede crear un simple script para
detener o iniciar el arreglo. Pero mdadm puede hacer parte del trabajo
duro con el siguiente comando:

% mdadm --assemble --scan

Estas opciones permiten a mdadm escanear las unidades de disco y volver


a montar el RAID (busca los superbloques RAID en los discos).
Normalmente esto se hace durante la fase init del arranque del sistema.
Por ejemplo, en mi sistema CentOS 5.5, hay una línea en /etc
/rc.d/rc.sysinit que luce como sigue:

/sbin/mdadm -A -s

que buscará ("-s") las unidades y ensamblará ("-A") el arreglo mdadm.

Sin embargo, puede tener problemas con la exploración y el montaje de


conjuntos RAID mdadm cuando tiene más de una matriz. Lo que se
recomienda es que si desea reiniciar una matriz manualmente especifique
el uuid de la matriz (el "nombre" único del arreglo RAID). por ejemplo

% mdadm --scan --assemble --uuid =


7121b438:7d36f9f6:8aa9c8b3:b5b0d211

http://www.tecnodelinglesalcastellano.com 
Dado que el uuid es único para cada matriz, esto asegurará que mdadm
pueda volver a montar la matriz correctamente. Sin embargo, las
capacidades de escaneo y ensamble de mdadm son muy buenas.
Habitualmente mantengo dos configuraciones RAID mdadm en mi
escritorio y nunca he tenido ninguna confusión con que discos pertenecen
a que serie (gracias a los superbloques de los dispositivos).

Monitoreo/seguimiento de un array RAID mdadm.


El tercer modo de operación de mdadm es el monitoreo o seguimiento de
la matriz RAID mdadm. Este modo controla una o más matrices y
permite tomar acciones si cambian los estados de los arreglos. De acuerdo
con la página de manual de mdadm, este modo de operación realmente
sólo es útil para RAID-1, 4, 5, 6, y 10, o arreglos multipasos (multipath
arrays), ya que tienen algunos estados interesantes. Por otro lado, RAID-0
y los RAID lineales no son útiles debido a que los discos fallados, faltantes
o de reserva ocasionan que estos arreglos RAID fallen (por ejemplo
quedan fuera de operación).

La opción básica para el seguimiento o monitoreo de matrices controladas


vía mdamd es la siguiente:

mdadm --monitor opciones ... dispositivos ...

(Nota: Puede usar "-F" o "--follow" en lugar de "--monitor"). Hay varias


opciones que se pueden utilizar para el monitoreo o seguimiento de
arreglos mdadm como se enumeran a continuación:

• -m,--mail Esta opción le permite definir una dirección de correo


electrónico donde se envían las alertas mdadm.
• -p,--program, --alert Esta opción permite a mdadm ejecutar un
"programa" cada vez que se detecte determinado evento (se
recomienda utilizar la ruta completa al programa).
• -y,--syslog Esta opción hace que todos los eventos se reporten vía
"syslog".
• -d,--delay Esta opción crea un retraso (en segundos) desde el
momento en que mdadm consulta las matrices hasta cuando las
vuelve a consultar (es decir, el intervalo entre las encuestas).
• -f --daemonize Esta opción le dice a mdadm que se ejecute como
un demonio en segundo plano si se trata de monitorear matrices.
Esto hace que mdadm bifurque (fork) un proceso hijo y se
desconecte de la terminal.

http://www.tecnodelinglesalcastellano.com 
• -i,--pid-file Esta opción le dice a mdadm que escriba el PID a un
archivo especifico (ejecutándose en modo demonio) en vez de
mandarlo a la salida estándar.
• -1,--oneshot Esta opción comprueba las matrices una sola vez y
genera eventos "NewArray", y mas significativamente
"DegradedArray" y "SparesMissing" (esto aparecerá en los
logs). De acuerdo con las páginas de manual, si ejecuta el comando
"mdadm --monitor --scan -1" desde una tarea en el cron,
asegurará notificaciones regulares de cualquier array degradado (lo
cual siempre es bueno).
• -t --test Esta opción genera una alerta "TestMessage" para cada
arreglo encontrado al inicio. Esta alerta se enviará vía mail y se
pasará al programa de alerta (si ha definido uno). Esto es muy útil
para probar que los mensajes de alerta llegan sin problemas (es
decir, que funcionan).

Como puede ver, mdadm le ofrece varias opciones muy buenas para el
control de su matrices. La práctica exacta de cómo controlarlo realmente
depende de cómo quiere que funcione y de que herramientas o procesos
ud haya desarrollado. Hay varios artículos en la web que muestran cómo
controlar su arreglo mdadm.
En el interés de ayudar a empezar a las personas interesadas voy a
proporcionarles algunos consejos que pueden utilizar para empezar con el
monitoreo de arreglos mdadm. En primer lugar, recomendamos
configurar mdadm para que le envíe un mail en caso de un cambio en el
estado de la matriz. Hay varios artículos que tratan sobre cómo hacer
esto. Por ejemplo, este blog muestra cómo utilizar mdadm para enviarle
un mail en caso de un problema.

Un segundo post que muestra cómo configurar mdadm para que le envíe
un mail en caso de un problema está aquí. Lea la respuesta 7 (kevlaur) que
contiene algunas instrucciones bastante buenas sobre la configuración de
las notificaciones de alerta. Lo interesante de este post es que el autor
utiliza un "programa" para enviar el correo electrónico en lugar de
dejárselo a mdadm. Esto le da cierta flexibilidad y permite personalizar
las cosas (personalmente me gusta el enfoque, pero también hago
que mdadm me envíe un mail - sólo para estar seguro).
Si quiere estar más involucrado en el monitoreo de sus matrices hay dos
formas básicas para obtener más detalles: (1) cat /proc/mdstat
y (2) mdadm --detail [dispositivo]. La primera opción te da una visión
general rápida de la situación de la matriz (o matrices). Usted puede
analizar esta salida (tal vez con Perl o Python), y crear un registro especial

http://www.tecnodelinglesalcastellano.com 
o enviar el resultado a syslog para permitir el procesamiento vía las
herramientas de syslog. Como alternativa, puede crear una métrica
simple de monitoreo que puede utilizar en conjunto con Ganglia o algo
similar.

La segunda opción le da más detalles que mdstat pero una vez más,
usted puede analizar esta salida y luego realizar alguna acción (logs,
syslog, ganglia, etc.) Pero los detalles realmente dependen de ud dado que
es probable que emplee procesos o técnicas específicas para la
supervisión.
Una última opción es utilizar Munin, que es una herramienta de
monitoreo (algo similar a ganglia). Cuenta con plugins que le permiten
controlar sus arreglos RAID creados con mdadm.

Construcción de una matriz RAID mdadm.


Otro modo de operación en mdadm es la construcción de una matriz, pero
sin emplear superbloques por dispositivo. Esto significa que no contará
con mdadm "--scan" y "--assemble" en los dispositivos de la matriz. En
consecuencia, deberá tener cuidado con diferenciar entre la creación
inicial de la matriz y el ensamble (assemble) del mismo (o puede perder
los datos). Además, si construye una matriz usando "build" cualquier
control que pudiera haber llevado a cabo entre los dispositivos no se
realizará. Básicamente, usted tiene que tener mucho cuidado al utilizar
este modo de operación y saber exactamente lo que está haciendo.
Realmente no se recomienda utilizar este modo de operación, así que no
lo vamos a discutir. Si usted está interesado en el uso de "build",
entonces usted puede leer la página de manual o puede buscar por
Internet cualquier referencia.

Crecimiento (growing) de una matriz RAID mdadm.


Una de las armas secretas que se obtiene con mdadm es la capacidad de
aumentar, remodelar, o incluso cambiar los niveles RAID con arreglos
md. Hay algunas limitaciones para el aumento y / o remodelación de las
matrices sin embargo, sólo tener esa capacidad es un logro muy
importante para mdadm.
La opción básica para el crecimiento y remodelación de los grupos md es
"-G" o "--grow". Hay una serie de opciones que pueden utilizar y las
cosas se pueden tornar complejas con bastante rapidez por lo que no las
analizaré en este artículo introductorio. Por favor, lea las páginas de
manual para las opciones o puedes buscar en Google para obtener
información sobre el crecimiento de los grupos md. Sin embargo, vamos

http://www.tecnodelinglesalcastellano.com 
a echar un vistazo de alto nivel acerca de lo que la opción "--grow" puede
hacer.

Podemos usar la opción "--grow" para añadir un tercer disco a una


configuración RAID-1 de dos discos, o añadir otro disco a nuestra
configuración RAID-5 existente. Pero también podemos utilizar la opción
"--grow" para cambiar los niveles de RAID. Por ejemplo, podemos
convertir un arreglo md RAID-1 de dos discos en una matriz md RAID-5
de dos discos. Directo desde el blog del autor de mdadm tienen la lista de
los cambios (remodelaciones) que puede hacer:

• Un array RAID-1 puede cambiar el número de dispositivos o


cambiar el tamaño de los dispositivos individuales. Un RAID-1 de
dos unidades se puede convertir en un RAID-5 de dos unidades.
• Un RAID-4 puede cambiar el número de dispositivos o el tamaño de
los dispositivos individuales. No se puede convertir a RAID-5
todavía (a pesar de que debería ser trivial implementarlo).
• Un RAID-5 puede cambiar el número de dispositivos, el tamaño de
los dispositivos individuales, el tamaño del fragmento y la
disposición. Un RAID-5 de dos unidades se pueden convertir a
RAID-1, y un RAID-5 de 3 o mas unidades se puede convertir a
RAID-6.
• Un RAID-6 puede cambiar el número de dispositivos, el tamaño de
los dispositivos individuales, el tamaño del fragmento y la
disposición. Y RAID-6 se puede convertir a RAID-5, en primer lugar
cambiando el diseño para hacerlo similar a RAID-5, a continuación,
cambiando el nivel.
• Un conjunto lineal puede tener un dispositivo añadido lo cual
simplemente aumentará su tamaño.
• RAID-10 y RAID-0: Estas matrices no pueden ser reformadas hasta
ahora.

Así se puede ver que hay una gran flexibilidad en mdadm con respecto a
los cambios en la forma, los niveles RAID, la adición de dispositivos, la
eliminación de dispositivos, etc, a los arreglos MD.
Como mencioné anteriormente, los detalles de la remodelación y los
cambio de niveles RAID pueden complicarse. Le sugiero que antes de
utilizar esta opción, lea toda la literatura que pueda. Entonces pregúntele
a algunos expertos para cerciorarse de que los comandos sean correctos o
no. Y antes de empezar nada, definitivamente debería asegurarse de que

http://www.tecnodelinglesalcastellano.com 
tiene una copia de seguridad de los datos y de que la matriz de
almacenamiento no está en producción.

Administración de un array RAID md.


La administración de un array RAID md principalmente consiste en la
administración de los dispositivos dentro de las matrices. Esto puede
incluir agregar discos o quitar discos fallados dentro de la matriz.
Una manera simple (o algo así) de saber si está utilizando el modo de
administración, es si usted especifica un dispositivo antes de las opciones
en la línea de comando mdadm, o si la primera opción es "--add", "--fail"
o "--remove", entonces usted está utilizando el modo de gestión de
mdadm. La forma general del comando mdadm es:

mdadm opciones_de_dispositivo ... dispositivos ...

Las opciones que se utilizan en el modo de administración son:

• -a,--add [dispositivo] Esta opción la permite agregar los


dispositivos especificados en la matriz especificada, mientras que la
matriz se está ejecutando.
• --re-add [dispositivo] Esta opción le permite volver a agregar un
dispositivo que se retiró previamente de la matriz.
• -r,--remove [dispositivo] Esta opción le permite eliminar el
dispositivo especificado. Pero el dispositivo no debe estar activo por
lo que debe ser o un dispositivo fallado o uno de reserva.
• -f,--fail [dispositivo] Esta opción marca el dispositivo especificado
como defectuosos (fallado).
• -set--faulty Esta opción es la misma que -f.

Puede combinar las opciones en un comando, pero todos los comandos


deben afectar la misma matriz.
Un ejemplo sencillo del modo de administración de mdadm es,
%/sbin/mdadm /dev/md1 --add /dev/sdc1 --fail /dev/sdb1 --remove /dev/sdb1

En este ejemplo, la matriz /dev/md1 es el "objetivo" del comando mdadm.


La primera opción, "--add /dev/sdc1" agrega un dispositivo (/dev/sdc1)
a la matriz. A continuación, la opción "--fail /dev/sdb1" "suspende" el
dispositivo diciéndole al arreglo que el dispositivo está fallado. Por último,
la tercera opción, "--add /dev/sdc1" elimina el dispositivo de la matriz al

http://www.tecnodelinglesalcastellano.com 
punto en el cual puede ser eliminado del sistema. Tenga en cuenta que
primero tiene que suspender el dispositivo que vaya a extraer.
Una característica interesante de mdadm es que si quita un dispositivo
(disco) de una matriz luego puede volver a agregarlo (--re-add) a la
matriz y mdadm sólo actualizará los bloques modificados desde el
momento en el disco fue retirado. Este es el comportamiento
predeterminado si utiliza superbloques en la creación de la matriz (es
decir, que no ha utilizado el modo "build").

Modo misc (miscelaneas).


Este último modo de operación es una especie de cajón de sastre de
opciones y comandos que no encajan en los otros seis modos. En general,
este modo permite algunas operaciones en las matrices activas,
operaciones en los dispositivos de componentes, y recopilación de
información acerca de las matrices.

La forma general del comando mdadm en modo "misc" es la siguiente:

mdadm opciones ... dispositivos ...

Tenga en cuenta que para los comandos "misc", no se define ninguna


matriz antes de las opciones. Las opciones de este modo son los
siguientes:

• -Q --query Esta opción analiza un dispositivo para ver si se trata de


un dispositivo md y si es un componente de una matriz md. La
información provista por mdadm se presenta en la salida.
• -D,--detail [dispositivo-md] Esta opción imprime los detalles de
uno o mas arreglos md. Si se agregan las opciones "--brief" o "--
scan" el nivel de detalle en la salida se reduce, pero el formato se
presta para /etc /mdadm.conf (un archivo de configuración
opcional para mdadm).
• -E, --examine Esta opción imprime el contenido del superbloque
md en el dispositivo (o en todos los dispositivos, si no se especifica
ninguno). Al igual que con la opción "--detail", si se utiliza "--brief"
o "--scan" la cantidad de salida se reduce pero es más adecuada para
/etc/mdadm.conf.
• -X,--examine-bitmap Esta opción reporta la información acerca
de un archivo de mapa de bits.

http://www.tecnodelinglesalcastellano.com 
• -R, --run Esta opción inicia (activa) un array md parcialmente
construido.
• -S,--stop Esto detiene (desactiva) un arreglo md activo.
• -O,--readonly Esta opción marca la matriz activa como de sólo
lectura si no está siendo utilizada actualmente.
• -W,--readwrite Esta opción marca la matriz como de
lectura/escritura.
• -zero--superblock Esta opción sobre escribe un superbloque md
válido en una matriz. Esto es útil cuando se utilizan discos
(dispositivos) de una matriz vieja en una nueva matriz md.
• -T, --test Esta opción, cuando se utiliza con la opción "--detail",
establece el estado de salida de mdadm para reflejar el estado del
dispositivo md. Esto puede ser muy útil cuando para scripts de
herramientas de monitoreo. También es útil si desea iniciar el
arreglo md ud mismo en lugar de confiar en el kernel para el
arranque automático.

De todas las operaciones de los modos "misc", "--query", "--detail", y "-


-examine" son las opciones más generalmente utilizadas.

Resumen.
Hemos pasado algún tiempo hablando acerca de las configuraciones
RAID, tanto en sus niveles simples como los RAID anidados. En todas las
discusiones hemos mencionado que las operaciones RAID son manejadas
por un "controlador RAID". Hay dos tipos de controladores RAID - por
hardware y por software. El controlador RAID por hardware tiene un
procesador dedicado en una tarjeta adicional que se encarga de todos los
cálculos RAID. Por el contrario, un RAID por software utiliza la CPU del
sistema para los cálculos de RAID (lo que incluye los controladores RAID
falsos también).
Este artículo es una introducción a mdadm, la herramienta de
administración/mantenimiento de RAID por software de Linux que viene
con casi todas las distribuciones. La herramienta es muy flexible
permitiendo niveles RAID estándar y configuraciones RAID anidadas,
incluyendo algunas configuraciones RAID-10 especializadas que hemos
discutido previamente. Incluso se puede utilizar para construir una
configuración anidada "Triple Lindy" si lo desea.

Mdadm tiene siete diferentes "modos" de operación que hemos tratado.


Estos modos le permiten crear e iniciar un array RAID, montar un RAID
(útil cuando se inicia el sistema), seguir o monitorear una matriz RAID,
crear (build) un array RAID (básicamente haciéndolo todo a mano - no se

http://www.tecnodelinglesalcastellano.com 
recomienda), aumentar el tamaño de un array RAID (una de las armas
secretas de mdadm), administrar un arreglo de RAID, y una categoría
"miscelánea" para las funciones que pueda necesitar que no caen en las
otras categorías.
Hay algunas características realmente buenas en mdadm que fácilmente
puede ser pasadas por alto en el apuro por construir una configuración
RAID. Hay dos grandes que quiero resaltar. La primera característica es el
conjunto de herramientas de monitorización estándar de mdadm que le
brindan un punto de partida ideal para la observación de la situación de
su matriz md incluyendo la capacidad de enviar alertas de correo
electrónico. Además, puede escribir scripts bastante sencillos para
analizar información del estado de la matriz que pueden ser utilizados en
herramientas de monitoreo, tales como Ganglia o Munin.

La segunda característica, que es probablemente la más importante, es la


capacidad agrandar y reformar arreglos md. Esto le permite agregar
dispositivos a un arreglo RAID existente y aumentar el tamaño de la
matriz para incluir el espacio adicional. Sin embargo, la característica
realmente interesante es que puede utilizar mdadm para cambiar los
niveles RAID sin perder datos. Por ejemplo, puede convertir un RAID-1
de dos unidades en una configuración RAID-5 de dos unidades. A
continuación, puede agregar discos para aumentar el tamaño de la
configuración RAID-5. Entonces usted puede convertir su RAID-5 en una
configuración RAID-6. Aunque no he utilizado esta característica, es
bastante ingeniosa, por si me hacen la pregunta.
Mdadm es una gran herramienta para Linux que es fácil de usar y le da un
gran control sobre sus matrices RAID. Si usted está pensando en utilizar
RAID en Linux, asegúrese de echarle un vistazo a mdadm.
 

http://www.tecnodelinglesalcastellano.com 

Potrebbero piacerti anche