Estabilidad y rendimiento de software RAID en Linux

Ha llegado el momento de renovar un servidor linux que, entre otras tareas, actua de servidor de ficheros. Así que necesita mucha capacidad y también un buen rendimiento. Los ficheros son pocos pero grandes. Hablamos de centenares de gigas, así que se mueve mucha información mediante red gigabit.

Para el nuevo servidor quiero probar diferentes configuraciones de RAID y LVM en cuanto a rendimiento. Ya que he de hacerlo yo mismo, he pensado compartir los datos por si a alguien le sirven. Que quede claro que las pruebas no son en absoluto cientificas, sino una burda aproximación para ayudar a tomar una decisión sobre la configuración.

Primero, la configuración hardware de la nueva máquina:

  • Placa base: Asus A8V-E SE
  • Procesador: Athlon 64 X2 4600+ (2 x 2.4 GHz)
  • Memoria: 2 GB DDR 400 (dual channel)En cuanto a discos, la placa dispone de 2 conectores SATA y 2 PATA. He añadido una controladora PCI para 2 SATA adicionales (Conceptronic). Actualmente hay 5 discos duros, una mezcla variada. Como digo, la prueba dista de ser muy válida salvo como un ejemplo más. Hay discos de 300GiB y de 320GiB, de 8 y 16 MiB de cache y tanto PATA como SATA. Las marcas son Maxtor y Seagate.

Bien, lo primero es probar la estabilidad de la máquina para comprobar placa, procesador, memoria, discos y controladoras. Para ello, utilizo el paquete stress de Debian. Por cierto que el sistema instalado es Debian Etch (en testing actualmente) utilizando el instalador RC1. La arquitectura escogida es AMD64. He actualizado al último kernel, 2.6.18.

La prueba de stress con múltiples trabajos de CPU, memoria, IO y disco ha funcionado sin problemas durante 10 horas seguidas (aunque la caja y la fuente de alimentación se han calentado considerablemente).

Como sistema de ficheros utilizo XFS. Para las pruebas de rendimiento de disco hecho mano del paquete bonnie++.

Aquí van los primeros resultados:

Configuración con 5 discos en RAID5:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CPns1              4G 61606  95 99400  26 38831  16 53337  93 157120  43 511.5   1                    ------Sequential Create------ --------Random Create--------                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP                 16  1843   8 +++++ +++  1732   7  1806   7 +++++ +++   751   4

Configuración con 5 discos en RAID1:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CPns1              4G 54048  80 55983   9 27978   5 63971  95 67411   6 645.1   1                    ------Sequential Create------ --------Random Create--------                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP                 16  3070   3 +++++ +++  2462   0  2960   2 +++++ +++  1023   2

Configuración con 5 discos en RAID10:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CPns1              4G 66499  98 140498  24 48772  12 58759  90 130574  18 611.0   1                    ------Sequential Create------ --------Random Create--------                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP                 16  3313   9 +++++ +++  2528   4  3658   9 +++++ +++  2401   5

Bien. Obviamente en cuanto a espacio de disco RAID5 ofrece la mayor capacidad (N-1), RAID1 la peor (1) y RAID10 un término medio (aprox. N/2).

Para tener una referencia ejecuto el mismo test sobre uno sólo de los discos:

Version  1.03       ------Sequential Output------ --Sequential Input- --Random-                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CPns1              4G 60706  92 67512  14 30783   5 55824  84 73633   5 212.6   0                    ------Sequential Create------ --------Random Create--------                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP                 16   375   2 +++++ +++   299   1   358   2 +++++ +++   208   1

En rendimiento un poco lo esperado. Para escritura / lectura:

  • RAID5: +47% / +113%

  • RAID1: -17% / -9%

  • RAID10: +108% / +77%Continuará...