Matriz de bandas óptima en Centos 6

2

Tengo discos de 4x2 TB y quiero crear una matriz RAID5 de buen rendimiento (el servidor es un microservidor HP N40L con 8 GB de RAM, que se inicia desde un SSHD de 64 GB). El sistema operativo es Centos 6.3, x86_64.

Creé la matriz de incursiones con este comando:

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

Cuando luego lo hago:

mdadm --examine /dev/sda1

... Me han dicho que mi "Tamaño de fragmento" es 512K (aparentemente este es el nuevo valor predeterminado de mdadm).

Ahora quiero formatear la matriz con XFS. Me dicen (en http://www.mythtv.org/wiki/Optimizing_Performance#Optimizing_XFS_on_RAID_Arrays ) que "sunit" es igual a mi tamaño de fragmento, expresado como un número de bloques de 512 bytes, así que, en mi caso, 512KB = 1024 bloques de 512 bytes. Del mismo modo, "ancho" es el número de discos efectivos en mi matriz veces sunit. En mi caso, tengo 4 discos en la incursión 5, entonces 3 discos efectivos y 3x1024 = 3072. Por lo tanto, formateé mi nueva matriz con el comando:

mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0

Ahora tengo dos preguntas. El comando anterior me dio este error:

mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB [...]

... y quiero saber si eso significa que he hecho algo mal o si terminaré con un sistema de archivos subóptimo de alguna manera, o si puedo ignorar ese error por alguna razón.

La segunda pregunta es simplemente si he calculado los parámetros XFS correctamente o si estoy ladrando completamente el árbol equivocado (si ayuda, la matriz almacenará grandes archivos de música y video, en su mayor parte). ¿He entendido "tamaño de fragmento" y "tamaño de banda", por ejemplo? ¿Es óptimo el tamaño de bloque de 4096 en mi comando mkfs? Y así.

Agradecería cualquier consejo sobre esto.

Mark Elthof
fuente

Respuestas:

1

XFS no admite unidades de banda de más de 256k, así que simplemente vuelva a crear su matriz RAID con una banda de 256k. Este es el --chunkparámetro de mdadm.

Un tamaño de bloque de 4k puede ser demasiado pequeño para su uso previsto. Si estuviera almacenando muchos archivos pequeños, entonces 4k probablemente sería más ideal. XFS puede ir hasta 64k bloques. Es más rápido leer y escribir bloques contiguos, pero pierde algo de espacio por encima de los tamaños de bloque más grandes.

Solo puede asignar en bloques, así que seleccione el tamaño de su bloque en función del tamaño de los archivos con los que espera trabajar. Con un tamaño de bloque de 4k, un archivo de tamaño 1kb ocupa 4kb de espacio (1 bloque), y un archivo de tamaño 65kb ocupa 68kb de espacio (17 bloques). Con un tamaño de bloque de 64kb, un archivo de tamaño 1kb ocupa 64kb (un bloque) y un archivo de tamaño 65kb ocupa 128kb (2 bloques).

Si está tratando con archivos pequeños, desperdiciará mucho espacio con un tamaño de bloque grande. Si está tratando con archivos de video de cientos de gigabytes, entonces probablemente no le interesen los 64kb aquí o allá, y la ventaja de rendimiento del tamaño de bloque más grande hace una gran diferencia.

Otra cosa a entender son los grupos de asignación. Cada AG obtiene un hilo IO separado. El asignador XFS intenta colocar cada directorio en un AG diferente. Una teoría básica es un AG por dispositivo físico.

Lea la documentación de XFS y comprenda cómo se construye el sistema de archivos:

Haga algunas conjeturas educadas y decida qué factores son más importantes para usted. Obtenga algunos archivos que representan sus datos de producción (o una copia de los datos de producción reales) y ejecute algunos puntos de referencia sobre lo que es importante para usted. Elija una métrica como la rapidez con la que su software de video o audio lee y escribe archivos en función de diferentes tamaños de bloque. ¿De qué manera tener múltiples ingenieros de audio / video accediendo simultáneamente a los archivos afecta el rendimiento con diferentes AG?

XFS está diseñado para sistemas de archivos masivos de cientos de terabytes, viviendo en SAN que valen más que una casa, almacenando archivos multimedia sin comprimir masivos como los estudios de cine profesionales necesitarían. Si está utilizando esto para almacenar su música pirateada y sus programas de TV en una caja Linux barata, simplemente use ext4, será mucho más fácil de solucionar y solucionar si alguna vez tiene problemas.

suprjami
fuente