Los discos duros son el actual cuello de botella de un ordenador, mientras tenemos conexiones de red estandarizadas a 125MB/s la mayoría de los discos actuales no superan los 70MB/s. Un metodo relativamente barato de aumentar ese rendimieno es el RAID. En este artículo estudiaremos los resultados de un fakeraid Nvidia nForce 680i con dos discos SATA2 de 300GB en RAID0. Naturalmente el entorno será GNU/Linux utilizando dmraid.

1. El RAID 0

Vamos a empezar con una pequeña explicación teórica. El RAID_0_svgRAID0 (Data Stripping) se usa para incrementar el rendimiento. Consiste en distribuir los datos equivalentemente entre dos o más discos. Es decir, si diponemos de 2 discos, al copiar un archivo se guarda la mitad en cada uno. Como es deducible, el rendimiento que ofrezca un RAID0 depende en gran medida del software que lo gestione. Uno bueno dividirá las operaciones de lectura y escritura en bloques de igual tamaño y los distribuirá equitativamente entre los dos discos.Hay que decir que el RAID0 no dispone de redundancia, por lo que si uno de los discos se daña, se pierde toda la información.

Podemos hacer un RAID mediante software, con el propio sistema operativo. O mediante hardware, donde es una tarjeta controladora quien lo gestiona por lo que es transparente para el SO. Luego hay un “híbrido” comunamente llamado fakeraid, este es creado desde la BIOS usando un controlador estandar de disco y gestionado por el Sistema Operativo. El mejor de los tres es el hardware, pero el precio de las tarjetas controladoras es superior a los 200 euros. Entre el híbrido y el software, cada uno tiene sus pros y contras. La ventaja del híbrido es que permite el dual-boot ya que se implementa en la BIOS. Pero generalmente el software da mejor rendimiento.

 

2. El entorno

Placa base: Asus P5N32-E SLI

RAID: fakeraid integrado en placa con chip 680i

Discos: 2x SATA2 300Gb/s de 300GB

CPU: Intel Core 2 Duo 6420 2.13GHz – cache de 4MB

RAM: 3GB Kingston DDR2 667MHz

SO: Gentoo Linux con kernel 2.6.22 utilizando dmraid

 

3. El software de testeo

Utilizaremos los siguientes programas para estudiar el rendimiento:

 

4. Resultados

Las pruebas se harán primero con uno de los discos, y luego con el RAID.

Se limpiarán siempre las caches para evitar el uso de RAM en las pruebas mediante el comando: “echo 3 > /proc/sys/vm/drop_caches”

4.1. HDPARM

Sintaxis: hdparm -t /dev/[disco] 

Disco: 74.50 MB/sec

RAID: 123.37 MB/sec

 

4.2. CP

Creamos un archivo de 2GB y lo copiamos en la misma unidad. Esta prueba es de lectura/escritura simultaneamente.

Sintaxis: dd if=/dev/zero of=test bs=1024 count=2000000 && time cp test /tmp/test

  • Disco: 26.7 MB/s
  • RAID: 52.99 MB/s 

 

4.3. DD

grafico

Sintaxis: dd if=/dev/zero of=test bs=[tamaño bloque] count=[numero bloques]

Hay un pequeño bash script que escribe un archivo de X tamaño en bloques de 1024 a 32768 Bytes: ddtest

La prueba se ha hecho con 10GB de datos.

- Disco

tamaño bloque (bs)

cantidad de bloques (count)

Resultado MB/sec

1024

10000000

65

2048

5000000

68

4096

2500000

69

8192

1250000

64

16384

625000

68

32768

312500

66

- RAID

tamaño bloque (bs)

cantidad de bloques (count)

Resultado MB/sec

1024

10000000

107

2048

5000000

115

4096

2500000

119

8192

1250000

120

16384

625000

120

32768

312500

106

4.4. DBENCH 3.0

Syntaxis: dbench -t 30 -D /tmp -c /usr/share/dbench/client.txt 1

- Disco: 216.449 MB/sec

- RAID: 276.369 MB/sec

Syntaxis: dbench -t 30 -D /tmp -c /usr/share/dbench/client.txt 10

- Disco: 282.904 MB/sec – RAID: 495.722 MB/sec

Syntaxis: dbench -t 30 -D /tmp -c /usr/share/dbench/client.txt -sS 1

- Disco: 9.01807 MB/sec MB/sec

- RAID: 43.8316 MB/sec MB/sec

Syntaxis: dbench -t 30 -D /tmp -c /usr/share/dbench/client.txt -sS 10

- Disco: 10.1228 MB/sec MB/sec

- RAID: 38.6868 MB/sec MB/sec

Fuente: dabax.net