El software dmraid de linux en una de la herramientas mas potentes para aumentar el rendimiento y la seguridad de los discos duros de nuestros ordenadores. Hay distintos tipos raid 0, raid 10, raid 5como podeis ver en wikipedia. Os recomiendo echar una vistazo en guia-ubuntu.com.
1. Configurar raid en la instalación de ubuntu-server (o debian):
La mejor forma de configurarlo en Debian o Ubuntu es en el momento de la instalación del sistema. Os dejo un enlace a youtube
2. Monitorizando el sistema:
La herramienta fundamental para observar el estado de nuestros raid desde la terminal es
cat /proc/mdstat |
o para ver la salida en tiempo real del comando anterior podemos utilizar el cmoando watch
watch -n1 cat /proc/mdstat |
para salir Ctrl + C
Para obtener una descripción detallada de nuestro raid (en este caso el md2)
mdadm --detail /dev/md2 |
Si queremos analizar a que velocidad se mueven nuestros discos duros podemos instalar sysstat.
sudo apt-get install sysstat |
y ejecutamos
iostat |
o para verlo de forma continua
watch -n1 iostat |
o para verlo de forma continua
3. Optimizar nuestro raid:
El problema fundamental del software-raid en linux es que después de haberlo montado todo, la sincronizacióny reconstrucción del raid es muy lenta, porque viene configurado para consumir los menos recursos posibles para que podamos instalar, operar,… mientras tanto. Cuando tienes un equipo relativamente potente, podemos reconfigurar algunos parámetros para que nuestro raid actue de forma mucho más rápida.
Las operaciones que vamos a realizar a partir de ahora conviene que las hagamos como root, así que en ubuntu tecleamos
sudo su |
a. Aumentar los límites en sysctl.
El archivo de configuración /proc/sys/dev/raid/speed_limit_min sirve para fijar el la velocidad mínima de reconstrucción cuando hay además operaciones de otro tipo en el raid, es decir, el uso habitual de linux. El parámetro por defecto es 1000.
El archivo de configuración /proc/sys/dev/raid/speed_limit_max sirve para fijar la velocidad máxima de reconstrucción cuando hay además otras operaciones además de la reconstrucción. El parámetro por defecto es 100,000.
Para ver los valores actuales, ejecutamos
sysctl dev.raid.speed_limit_min |
Para aumentar la velocidad ejecutamos:
echo value > /proc/sys/dev/raid/speed_limit_min
|
o también
sysctl -w dev.raid.speed_limit_min=value |
Como ejemplo, vamos a aumentar la velocidad mínimo en 50.000 Kb/seg :
echo 50000 > /proc/sys/dev/raid/speed_limit_min |
o también
sysctl -w dev.raid.speed_limit_min=50000 |
Si queremos modificar los parámetros globales, podemos hacerlo añadiendo estas dos líneas al archivo /etc/sysctl.conf
################# NOTE ######################## ## CPU y memoria son los limites del sistema # ############################################### dev.raid.speed_limit_min = 50000 ## aconsejado para arrays de 4-5 ## dev.raid.speed_limit_max = 2000000 ## aconsejado para 6-12 discos ### dev.raid.speed_limit_max = 5000000 |
Y Ejecutamos como root
sysctl -p
b. Modificar el «read-ahead» del raid a 32 Mib
elegimos el raid mdX al que queremos aplicar la optimización
blockdev --setra 65536 /dev/mdX |
3. Solo para raid 5 y 6 : Stripe-cache_size
Esta opción está solo disponible para el RAID5 y el RAID6 y multiplica la velcoidad de sincronización entre 3 y 6 veces. El valor por defecto es de 256. Loa valores válidos están entre 17 y 32768. Aumentar este número puede aumentar el rendimiento en algunas configuraciones aumentando el consumo de la memoria del sistema.
Utilizamos la siguiente fórmula
consumo de memoria = tamaño del archivo de paginación x número de discos x stripe_cache_size
Para fijar el stripe_cache_size en 16 MiB para /dev/md1, inctroducimos.
echo 16384 > /sys/block/md1/md/stripe_cache_size |
Para fijar el stripe_cache_size en 32 MiB para /dev/md2, inctroducimos.
echo 32768 > /sys/block/md2/md/stripe_cache_size |
4. Desactivar el NCQ en todos los discos:
Para los discos que formen parte de un software-raid ejecutamos el siguiente comando, sustituyendo sdX, por el disco asociado al raid.
echo 1 > /sys/block/sdX/device/queue_depth |
Para cortar y pegar
echo 1 > /sys/block/sda/device/queue_depth echo 1 > /sys/block/sdb/device/queue_depth echo 1 > /sys/block/sdc/device/queue_depth echo 1 > /sys/block/sdd/device/queue_depth echo 1 > /sys/block/sde/device/queue_depth echo 1 > /sys/block/sdf/device/queue_depth echo 1 > /sys/block/sdg/device/queue_depth echo 1 > /sys/block/sdh/device/queue_depth echo 1 > /sys/block/sdi/device/queue_depth #### etc…. |
5. Opción Bitmap:
Los bitmap optimizan la reconstrucción después del fallo o la sustitución de un disco . Para activarlo en el raid mdX, tecleamos el siguiente comando:
mdadm --grow --bitmap=internal /dev/mdX |
Una vez completada la reconstrucción, lo desactivamos
mdadm --grow --bitmap=none /dev/mdX |
Fuentes:
- http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html
- http://www.cyberciti.biz/tips/raid-hardware-vs-raid-software.html