jump to navigation

Introducción tipos de Raid y su rendimiento 1 octubre, 2010

Posted by ubanov in Informática.
Tags: ,
trackback

En esta entrada voy a escribir una rápida introducción a los RAID que más se suelen usar actualmente y una introducción TEORICA al rendimiento que cabría esperar de cada uno de ellos, más que nada con la idea de que cada persona pueda reflexionar para su aplicación determinada, qué podría esperar de cara al rendimiento.

Para obtener más detalles de cómo funciona cada raid recomiendo mirar la wikipedia.

Los tipos de RAID que se utilizan hoy en día en el mercado empresarial son los siguientes:

  • RAID0
  • RAID1
  • RAID5
  • RAID6

Antes de que nadie me diga nada, diré que los anteriores son los tipos de RAID simples, después se mezclan los tipos de RAID para obtener otros complejos, por ejemplo un RAID 50 es juntar por RAID0 una serie de RAID 5; un RAID 10 lo mismo con RAID1 en lugar de 5…

RAID0 lo que se hace es dividir las lecturas/escrituras de los diferentes sectores entre todos los discos. Digamos por ejemplo que tenemos 3 discos, el primer “sector” estará en el primer disco, el siguiente en el segundo, el siguiente en el tercero, el cuarto en el primero otra vez, el quinto en el segundo… Lo malo de un RAID0 es que no tiene ningún tipo de redundancia, con lo que si se estropea cualquiera de los discos se pierden datos. Esta configuración mejora el rendimiento de las lecturas y escrituras, dado que se puede leer/escribir en todos los discos de forma simultáneamente.

RAID1 (o mirror) se hace entre dos discos. Lo que se hace es que cada sector es escrito en ambos discos simultáneamente. Esto significa que si tenemos dos discos de 1T, nuestra capacidad de almacenamiento no será 2*1T, sino que será de 1T. Como la información está redundada si uno de los discos se estropea el otro sigue funcionando tal cual sin perder datos. Así como cada vez que se escribe un sector es necesario escribir en ambos discos, a la hora de leer lo que se hace es dividir las lecturas entre ambos discos (ambos tienen lo mismo), con lo que se consigue más rendimiento en la lectura.

Un RAID5 es un conjunto de discos (más de 3) en los cuales en todos salvo en uno se guarda información, es decir si tenemos 3 discos de 1T, tendríamos 2*1T de capacidad; si tenemos 5 discos en RAID5 sería 4*1T… El disco que se “pierde” se utiliza para tener información redundada, de forma que si se estropea un disco del raid se pueda recuperar la información (si se estropean 2 la información se pierde). Normalmente no se suelen poner más de 9 discos en un RAID (contra más discos más posibilidad de que falle más de un disco y el rendimiento suele ser menor). La información de redundancia está repartida por los diferentes discos, por razones de rendimiento en las escrituras y las lecturas cuando ocurre un fallo. Para que quede más claro como se almacena la info lo mejor es un gráfico: http://es.wikipedia.org/wiki/Archivo:Raid5.png

RAID6 la forma de funcionar es parecida que un RAID5, pero en lugar de tener un disco redundado se tienen dos, con lo que pueden fallar hasta dos discos. El número mínimo de discos es 5.

Otro concepto típico que aparece en tecnologías de almacenamiento son los discos Spare. Un disco Spare es un disco instalado en un sistema, que es un repuesto para cuando se estropee otro. Es decir, en cuanto un disco de un RAID se estropea, el RAID se reconstruye inmediatamente sobre el spare. Incluso en algunos equipos más avanzados puede darse el caso de que si se empiezan a ver cosas raras en un disco (por ejemplo demasiados errores, o subidas de temperatura por encima de lo normal), el RAID puede reconstruirse antes del fallo sobre el spare.

Como referencia  del rendimiento que podríamos esperar con diferentes niveles de RAID, se va a presentar la siguiente tabla teórica.

En ella se supone que tenemos 30 discos y que tenemos que configurarlos de alguna forma. Para simplificar los cálculos se ha supuesto que todos los discos son de 1T , y que tienen una capacidad de soportar 200 operaciones de lectura/escritura por segundo.

La tabla sería la siguiente:

Discos TipoRaid Capacidad Util Write Read Read -1
3*(9+1) RAID50 3*9*1T=27T 3*200=600 3*9*200=5.400 5.025
6*(4+1) RAID50 6*4*1T=24T 6*200=1.200 6*4*200=4.800 4.650
10*(2+1) RAID50 10*2*1T=20T 10*200=2.000 10*2*200=4.000 3.900
15*(1+1) RAID10 15*1*1T=15T 15*200=3.000 15*2*200=6.000 5.800
30*(1+0) RAID0 30*1*1T=30T 30*200=6.000 30*200=6.000 XXX

La primera columna (Discos) es la configuración de discos instalada, según la configuración indicada en TipoRaid. Por ejemplo 3*(9+1) representaría 3 raid 5 de 9 discos de datos y 1 de paridad,  y esos 3 raid-5 unidos mediante un raid-0.

La columna CapacidadUtil es la capacidad que tendrá el usuario disponible para almacenar datos, en cada una de las configuraciones.

En el resto de columnas viene una aproximación TEÓRICA de cuantas operaciones de lectura/escritura puede ejecutar por segundo. Para ello se supone que tenemos una distribución homogénea de peticiones de lectura o escritura aleatorias entre todos los discos.

En la última columna (Read -1) se ha supuesto que se ha caído uno de los 30 discos y que nuestra aplicación sigue solicitando sectores de forma aleatoria, y que si alguna de las peticiones es más lenta en alguno de los discos, se siguen haciendo peticiones contra el resto. Que no el sistema se entera de forma inmediata de la caída del disco (vamos que no tiene retrasos por acceder al disco estropeado), y que no se genera ningún proceso de recuperación sobre ningún disco spare.

Evidentemente si tuviésemos instalado un RAID0 y se fastidia un disco del RAID, el almacenamiento se nos estropearía, por eso las XXX en la última columna y última fila. Es por eso que en el mundo empresarial RAID0 no es casi usado, salvo juntándolo con otros tipos de RAID.

Podríamos decir que la columna Write sería valores de mínimos, y Read de máximos (ya hemos dicho que era una cálculo teórico).

En el mundo real las lecturas y escrituras se entremezclan, puede ser que a la hora de escribir no se haga siempre aleatorio y se escriban sectores contiguos de una sola vez, la repartición de las operaciones nunca va a ser tan homogénea como lo que hemos supuesto… Vamos que la forma de medirlo real debe ser más empírica ,  y basada en la aplicación concreta.

En el mundo real (no en el teórico), se suele decir que la segunda configuración que hemos propuesto (con disco RAID5 de 5 discos) da un 20% más de rendimiento que la primera (con discos RAID5 de 9 discos)…. este dato ya es más empírico, pero tampoco es un número mágico que valga para todas las instalaciones.

Bueno como introducción ya es bastante, espero que a alguien le sirva para hacerse una idea.

Comentarios»

No comments yet — be the first.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: