Tengo discos de 4x2TB y quiero crear una matriz RAID5 de buen rendimiento (el servidor es un microservidor HP N40L con 8GB de RAM, arrancando desde un SSHD de 64GB). El sistema operativo es Centos 6.3, x86_64.
Creé la matriz raid con este comando:
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Cuando luego hago:
mdadm --examine /dev/sda1
...Me dijeron 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 dijeron (enhttp://www.mythtv.org/wiki/Optimizing_Performance#Optimizing_XFS_on_RAID_Arrays) esa "unidad" es igual a mi tamaño de fragmento, expresado como una cantidad de bloques de 512 bytes; por lo tanto, en mi caso, 512 KB = 1024 bloques de 512 bytes. De manera similar, "ancho" es el número de discos efectivos en mi matriz multiplicado por sunit. En mi caso, tengo 4 discos en raid 5, es decir, 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 al árbol completamente equivocado (si ayuda, la matriz almacenará archivos grandes de música y video, en su mayor parte). ¿He entendido, por ejemplo, "tamaño de trozo" y "tamaño de franja"? ¿Es óptimo el tamaño de bloque de 4096 en mi comando mkfs? Etcétera.
Agradecería cualquier consejo sobre esto.
Respuesta1
XFS no admite unidades de banda de más de 256 k, así que simplemente vuelva a crear su matriz RAID con una banda de 256 k. Este es el --chunk
parámetro de mdadm
.
Un tamaño de bloque de 4k puede ser demasiado pequeño para el uso previsto. Si estuviera almacenando muchos archivos pequeños, probablemente 4k sería más ideal. XFS puede alcanzar hasta 64k bloques. Es más rápido leer y escribir bloques contiguos, pero se pierde algo de espacio debido a la sobrecarga de bloques de mayor tamaño.
Solo puede asignar en bloques, así que seleccione el tamaño de su bloque según el tamaño de los archivos que espera tratar. 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 64 kb, un archivo de tamaño 1 kb ocupa 64 kb (un bloque) y un archivo de tamaño 65 kb ocupa 128 kb (2 bloques).
Si trabaja con archivos pequeños, desperdiciará mucho espacio con un tamaño de bloque grande. Si trabaja con archivos de vídeo de cientos de gigabytes, probablemente no le importen los 64 kb aquí o allá, y la ventaja de rendimiento del tamaño de bloque más grande marca una mayor diferencia.
Otra cosa que hay que entender son los grupos de asignación. Cada AG obtiene un subproceso IO independiente. 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 está construido el sistema de archivos:
Haga algunas conjeturas y decida qué factores son más importantes para usted. Obtenga algunos archivos que representen 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, por ejemplo, ¿qué tan rápido su software de video o audio lee y escribe archivos en función de diferentes tamaños de bloque? ¿Cómo afecta el rendimiento con diferentes AG el hecho de que varios ingenieros de audio/vídeo accedan simultáneamente a los archivos?
XFS está diseñado para sistemas de archivos masivos de cientos de terabytes, que viven en SAN que valen más que una casa y almacenan archivos multimedia masivos sin comprimir como los que necesitarían los estudios de cine profesionales. Si está usando esto para almacenar su música y programas de TV pirateados en una máquina Linux barata, entonces simplemente use ext4, será mucho más fácil de solucionar y solucionar si alguna vez tiene problemas.