Sí, la implementación de Linux de RAID1 acelera las operaciones de lectura de disco en un factor de dos, siempre que se realicen dos operaciones de lectura de disco separadas al mismo tiempo . Eso significa que leer un archivo de 10 GB no será más rápido en RAID1 que en un solo disco, pero leer dos archivos distintos de 10 GB* será más rápido.
Para demostrarlo, basta con leer algunos datos con dd
. Antes de realizar nada, borre el caché de lectura del disco con sync && echo 3 > /proc/sys/vm/drop_caches
. De lo contrario hdparm
reclamará lecturas súper rápidas.
Archivo único:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s
Dos archivos:
# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s
La lectura de 10 GB de datos tomó 65 segundos, mientras que la lectura de 10 GB + 10 GB =20 GB de datos tomó 68,7 segundos en total, lo que significa que las lecturas de discos múltiples se benefician enormemente de RAID1 en Linux. skip=$COUNT
parte es muy importante. El segundo proceso lee 10 GB de datos del desplazamiento de 10 GB.
La respuesta de Jared y los comentarios de ssh que se refieren a http://www.unicom.com/node/459 son incorrectos. El punto de referencia de allí demuestra que las lecturas de disco no se benefician de RAID1. Sin embargo, la prueba se realizó con la herramienta de evaluación comparativa bonnie ++ que no realiza dos lecturas separadas a la vez. El autor afirma explícitamente que bonnie++ no se puede utilizar para comparar matrices RAID (consulte el archivo Léame).
Sí, obtendrá un aumento del rendimiento de lectura + la redundancia. Puede imaginar fácilmente que puede leer las partes de los archivos al mismo tiempo desde dos discos duros diferentes, ya que los archivos están en ambos discos duros.
Entonces, en teoría, si el controlador RAID hace bien su trabajo, podría obtener una aceleración de O(n).
-
man 4 md
estados:"… Tenga en cuenta que el equilibrio de lectura realizado por el controlador no hace que el perfil de rendimiento de RAID1 sea el mismo que para RAID0; un único flujo de entrada no se acelerará (por ejemplo, un solo dd), pero varios flujos secuenciales o una carga de trabajo aleatoria usarán más de un eje. En teoría , tener un N-disk RAID1 permitirá que N subprocesos secuenciales lean de todos los discos.…" -
Para colmo, en la práctica , basado en
iostat
la salida se observa en una configuración RAID de software típica de 2 HDD, no hay ningún equilibrio . De hecho, efectivamente se ve comomdadm
opción de--write-mostly
siempre está encendido.