Hace un tiempo tuve que reconstruir mi ambiente de laboratorio debido a una falla fatal del “motherboard”. Antes de hacer la nueva instalación estuve buscando información en Internet para ver cómo me convenía armar un arreglo con los cuatro discos mecánicos que dispongo, y encontré un enlace a una página muy buena para tener una idea comparativa de rendimiento entre los diferentes formas de poder armar el arreglo de discos inclusive teniendo en cuenta la cantidad de discos
Si, por supuesto, sé que existen los discos de estado sólido, pero cuando se necesita gran capacidad, y además teniendo en cuenta que en algunos países el costo puede ser prohibitivo tener múltiples discos grandes de estado sólido, me mantengo con discos mecánicos, lo más rápidos que da mi presupuesto
Primero que nada, aclarar que lo utilizo sólo como comparativa entre los diferentes arreglos que se pueden crear con una cantidad de discos, y además que esto está pensado para una máquina individual que uso como ambiente de pruebas virtualizado en las notas del blog, o sea que no tiene relación a un servidor productivo donde hay otras situaciones totalmente diferentes, por ejemplo accesos concurrentes a disco y donde se debe garantizar la disponibilidad
La información la he obtenido del siguiente enlace donde creo han hecho un buen trabajo: http://www.overclock.net/t/886768/samsung-spinpoint-f4-intel-ich10r-raid-tests
Mi labor se ha limitado a que en lugar de gráficos hacer una tabla numérica que me permite comparar más fácilmente los valores
Las pruebas de este enlace comparativo están hechas sobre una única máquina, y con hasta 6 discos mecánicos en uso, pero hay pruebas desde 2 en adelante, y yo aprovecharé para el uso de los 4 que dispongo
Hay además dos detalles a tener en cuenta:
- Dispongo de 4 discos, pero uno lo utilizo para el sistema operativo y aplicaciones, y dejo los otros 3 para los datos. Entre otros motivos porque pienso que tendré mejor rendimiento, y además facilita las copias de seguridad. En mi caso los datos son las máquinas virtuales que llevaría tiempo reconstruir pero que no sería imposible
- Una de las decisiones importantes a tener en cuenta es si deseamos tener tolerancia a fallas o no, ya que esto tiene un costo en el espacio de almacenamiento
Por mi parte opté por no implementar tolerancia a fallas mediante arreglos de discos para las máquinas virtuales, para privilegiar el espacio disponible y el rendimiento, pero cada uno debe analizar su propio entorno. Además de la necesidad de múltiples discos, un RAID1 tiene bajo aprovechamiento de espacio, y RAID5 no tiene el mejor rendimiento
Del disco del sistema operativo hago copia de seguridad frecuente, y del arreglo de discos donde guardo las máquinas virtuales no lo hago simplemente por no poder disponer de capacidad de almacenamiento suficiente. En el caso de perder las máquinas virtuales utilizadas en estas notas, llevará su tiempo rehacerlas pero no es algo que no pueda recuperar con un poco de trabajo, pero de todas formas tengo copia de seguridad de todas las máquinas virtuales “Base” ya que todas las que ven en las notas no son otra cosa que “clones” de estas “bases”
Entiendo que cada uno de los lectores sabe de qué se trata, cómo trabajan, ventajas e inconveniente de cada tipo de arreglo de discos en RAID. Y si necesitan alguna ayuda “para eso está Internet y un buen buscador” :)
Alcanza con aclarar que RAID0 es el único que no provee tolerancia a fallos, aunque como es sabido es el que provee mejor rendimiento, y por eso lo utilizo dada mi situación
La información de la nota fue obtenida mediante HD-Tune Pro v4.6, y el hardware utilizado fue: 2TB Samsung Spinpoint F4 HD204UI drives en motherboard Gigabyte X58A-UD5 Rev 2.0 con Intel ICH10R SATA RAID controller
No me interesa obtener los mismos valores, sólo comparar rendimiento entre los diferentes arreglos. En mi caso utilizo discos WD 1TB-Black 7200rpm
Esta es la tabla que he armado en base a los datos del enlace que he puesto antes
Single Disk | ||||||
READ | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
Single Disk | 61,9 | 136,3 | 104,1 | 15,9 | 199,1 | 0,90% |
WRITE | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
Single Disk | 61,9 | 159,8 | 103,5 | 14,6 | 172,4 | 0,90% |
RAID0 | ||||||
READ | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID0 (2 disks) | 114,1 | 256,6 | 188,8 | 19,8 | 4146,9 | 2,30% |
RAID0 (3 disks) | 154,9 | 361,1 | 271,9 | 18,2 | 3951,5 | 2,70% |
RAID0 (4 Disks) | 147,6 | 466,7 | 340,3 | 18,3 | 3990,5 | 3,20% |
RAID0 (5Disks) | 230,2 | 541,7 | 413,8 | 19,2 | 3509,4 | 3,40% |
RAID0 (6Disks) | 284,3 | 537,3 | 436,9 | 22,8 | 3725,8 | 3,10% |
WRITE | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID0 (2 disks) (1) | 102,5 | 242,0 | 195,0 | 14,2 | 4122,4 | 2,40% |
RAID0 (2 disks) (2) | 117,7 | 315,9 | 199,2 | 13,1 | 4176,4 | 1,70% |
RAID0 (3 disks) (1) | 77,4 | 256,8 | 220,7 | 8,9 | 3360,0 | 2,50% |
RAID0 (3 disks) (2) | 166,7 | 466,7 | 294,6 | 8,2 | 4112,9 | 2,40% |
RAID0 (4 Disks) (1) | 118,7 | 252,6 | 224,4 | 4,4 | 3751,9 | 2,80% |
RAID0 (4 Disks) (2) | 213,9 | 610,1 | 385,5 | 3,0 | 4174,0 | 3,20% |
RAID0 (5Disks) (1) | 194,4 | 252,4 | 225,7 | 1,6 | 3454,8 | 2,80% |
RAID0 (5Disks) (2) | 211,4 | 617,5 | 478,5 | 0,6 | 3977,5 | 3,80% |
RAID0 (6Disks) (1) | 188,0 | 251,0 | 225,8 | 0,4 | 3736,8 | 2,70% |
RAID0 (6Disks) (2) | 341,7 | 623,4 | 548,2 | 0,0 | 4049,3 | 4,40% |
RAID1 | ||||||
READ | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID1 (2 disks) | 50,4 | 127,5 | 93,7 | 17,4 | 4664,3 | 1,30% |
WRITE | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID1 (2 disks) (1) | 58,9 | 136,7 | 100,6 | 31,8 | 4194,7 | 1,50% |
RAID1 (2 disks) (2) | 53,6 | 158,5 | 99,8 | 34,6 | 4177,3 | 1,80% |
RAID10 | ||||||
READ | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID10 (4 disks) | 92,2 | 202,6 | 162,8 | 16,7 | 4109,5 | 2,00% |
WRITE | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID10 (4 disks) (1) | 112,1 | 230,0 | 289,9 | 16,7 | 3521,2 | 3,80% |
RAID10 (4 disks) (2) | 112,3 | 299,6 | 191,5 | 16,2 | 4184,6 | 3,10% |
RAID5 | ||||||
READ | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID5 (6 disks) | 133,0 | 288,1 | 210,7 | 17,6 | 3924,8 | 2,70% |
WRITE | Min | Max | Avg | AccTime | Burst Rate | CPU Usage |
RAID5 (6 disks) | 29,5 | 44,4 | 39,5 | 23,2 | 4071,8 | 2,80% |
(1) Write Back Cache Disabled | ||||||
(2) Write Back Cache Enabled |
Seguramente se debería hacer un buen análisis de estos resultados, pero por cuestiones de tiempo y conocimientos estadísticos me limité a comparar algunos valores como muestro a continuación
Comencé comparando los valores promedio de lectura de un disco único contra RAID0 de dos discos, y RAID1
READ | Avg | % |
Single Disk | 104,1 | 100,00% |
RAID0 (2 disks) | 188,8 | 181,36% |
RAID1 (2 disks) | 93,7 | 90,01% |
Es evidente el aumento considerable de velocidad para un RAID0, mientras que RAID1 pierde aproximadamente un 10%. No es demasiado quizás pero hay que tenerlo en cuenta
Aunque por supuesto, si el objetivo fuera tolerancia a fallas, este valor es casi despreciable frente a la confiabilidad, el problema es que en RAID0 es aprovechable solamente el 50% del espacio disponible, y con RAID5 aunque mejora el tema capacidad, se resiente el rendimiento
Observando el incremento que produce RAID0 con dos discos busqué qué mejoras se obtienen incrementando el número de discos
READ | Avg | % |
RAID0 (2 disks) | 188,8 | 100,00% |
RAID0 (3 disks) | 271,9 | 144,01% |
RAID0 (4 Disks) | 340,3 | 180,24% |
RAID0 (5 Disks) | 413,8 | 219,17% |
RAID0 (6 Disks) | 436,9 | 231,41% |
Es evidente el aumento a medida que se van agregando discos, aunque este porcentaje de incremento va disminuyendo gradualmente
Resumiendo lo visto hasta ahora: para lectura lo más rápido es RAID0 con cuanto más discos mejor, pero el límite lógico está alrededor de 4 o 5
Vamos a ver ahora qué pasa con escritura. Igual que en el caso anterior comencé comparando un único disco contra RAID0 con dos discos y RAID1. Aunque en este caso utilizando o no “Write Back Cache”
WRITE | Avg | % |
Single Disk | 103,5 | 100,00% |
RAID0 (2 disks) (1) | 195,0 | 188,41% |
RAID0 (2 disks) (2) | 199,2 | 192,46% |
RAID1 (2 disks) (1) | 100,6 | 97,20% |
RAID1 (2 disks) (2) | 99,8 | 96,43% |
Enseguida se puede observar que RAID0 con dos discos prácticamente duplica el rendimiento, mientras que RAID1 podríamos afirmar que no afecta la performance
Y análogamente al análisis sobre lectura comparemos ahora el rendimiento de escritura con RAID0 incrementando el número de discos, y con o sin “Write Back Cache”
WRITE | Avg | % | WRITE | Avg | % | |
RAID0 (2 disks) (1) | 195,0 | 100,00% | RAID0 (2 disks) (2) | 199,2 | 100,00% | |
RAID0 (3 disks) (1) | 220,7 | 113,18% | RAID0 (3 disks) (2) | 294,6 | 147,89% | |
RAID0 (4 Disks) (1) | 224,4 | 115,08% | RAID0 (4 Disks) (2) | 385,5 | 193,52% | |
RAID0 (5 Disks) (1) | 225,7 | 115,74% | RAID0 (5 Disks) (2) | 478,5 | 240,21% | |
RAID0 (6 Disks) (1) | 225,8 | 115,79% | RAID0 (6 Disks) (2) | 548,2 | 275,20% |
Podemos observar en la parte izquierda, que el rendimiento sin usar “Write Back Cache” se incrementa un poco pero luego se mantiene estable. Pero por otra parte se incrementa notablemente si está habilitado “Write Back Cache”, aunque igual que en el caso de lectura este aumento va disminuyendo gradualmente con la cantidad de discos, y aumenta el riesgo de pérdida de datos ante un apagado imprevisto
Y llegamos al final. Sé que esta nota seguramente traerá comentarios y discusiones, pero no pretende ser una análisis extrapolable para todos, está muy acotado su uso ya que lo he analizado para mi situación particular, aunque pienso que puede ser compartido por muchos. Para sólo nombrar algo más, en la tabla se incluyen valores para RAID5 y RAID10 que casi ni he mirado pero que dejo a disposición por si a alguen le sirven para hacer su propio análisis
En mi caso, y como comentaba al principio, opté por un disco dedicado al sistema operativo y las pocas aplicaciones que utilizo, y con los restantes tres discos armé un RAID0 donde almaceno las máquinas virtuales
Separé el disco del sistema operativo y aplicaciones para facilitar las copias de seguridad, y porque la independencia de discos siempre trae ventajas; piensen solamente que la falla de un disco en un RAID0 hace que se pierda todo el contenido
Podría haber puesto un quinto disco, en la otra controladora de disco que dispone mi máquina, pero leí y medí que es sumamente lenta (Marvell), mientras que la Intel que utilizo tiene mucho mejor rendimiento