Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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)
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).
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
-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
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
% cat /proc/mdstat
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.
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:
/sbin/mdadm -A -s
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).
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.
http://www.tecnodelinglesalcastellano.com
a echar un vistazo de alto nivel acerca de lo que la opción "--grow" puede
hacer.
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.
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").
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.
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.
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.
http://www.tecnodelinglesalcastellano.com