Tengo 10 discos con 8 TB cada uno en un RAID6 de hardware (por lo tanto, 8 discos de datos + 2 paridad). Siguiendo la respuesta de una pregunta muy similar , esperaba una detección automática de todos los parámetros necesarios. Sin embargo, al crear el sistema de archivos XFS al final, obtuve
# mkfs.xfs /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=40, agsize=268435455 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418200, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Esto parece que las rayas no se han utilizado. Debido a los diferentes términos que encontré en diferentes sitios (tamaño de banda, tamaño de banda, fragmento de banda, ...), me gustaría preguntar si entendí bien los parámetros manuales.
El RAID 6 se ha configurado con un tamaño de tira de 256 KB:
# ./storcli64 /c0/v1 show all | grep Strip
Strip Size = 256 KB
Por lo tanto, el tamaño de la franja es 8 * 256 KB = 2048 KB = 2 MB. ¿Es esto correcto? De acuerdo con esto (y si lo entiendo correctamente), el pvcreate
tiene que usar el tamaño de la tira (o fragmento) como argumento para dataalignment
:
# pvcreate --dataalignment 256K /dev/sdb
Physical volume "/dev/sdb" successfully created
Tenga en cuenta que utilicé todo el dispositivo RAID sin particiones. Ahora un
# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created
con un tamaño de PE predeterminado de 4 MB debería estar bien porque es un múltiplo del tamaño de banda de 2 MB. ¿Correcto?
Ahora, una parte del vgroup se asigna a un volumen lógico:
# lvcreate -L 40T vgdata -n lvscratch
Logical volume "lvscratch" created.
Finalmente, se crea el sistema de archivos pero ahora con los argumentos correctos (tamaño de banda de 2 MB, ancho de banda de 8):
# mkfs.xfs -d su=2048k,sw=8 /dev/vgdata/lvscratch
meta-data=/dev/vgdata/lvscratch isize=256 agcount=41, agsize=268434944 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=0 finobt=0
data = bsize=4096 blocks=10737418240, imaxpct=5
= sunit=512 swidth=4096 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
¿Es correcto este enfoque? ¿Hay algo a tener en cuenta para una extensión del volumen lógico o el grupo de volúmenes? Supongo que si el grupo de volúmenes se ampliara con otro sistema RAID6, el tamaño de la tira debería ser igual al RAID6 actual.
EDITAR : Mi confusión parece estar basada principalmente en el uso diferente de términos relacionados con stripe. El fabricante de mi controlador RAID, LSI o Avago, define los términos de la siguiente manera :
Ancho de la raya
El ancho de banda es el número de unidades involucradas en un grupo de unidades donde se implementan las bandas. Por ejemplo, un grupo de unidades de cuatro discos con bandas de disco tiene un ancho de banda de cuatro.
Tamaño de la raya
El tamaño de la franja es la longitud de los segmentos de datos intercalados que el controlador RAID escribe en varias unidades, sin incluir las unidades de paridad. Por ejemplo, considere una banda que contiene 64 KB de espacio en disco y tiene 16 KB de datos que residen en cada disco de la banda. En este caso, el tamaño de la franja es de 64 KB y el tamaño de la franja es de 16 KB.
Tamaño de la tira
El tamaño de la franja es la parte de una franja que reside en una sola unidad.
Wikipedia (e IBM ) parecen usar otras definiciones:
Los segmentos de datos secuenciales escritos o leídos desde un disco antes de que la operación continúe en el siguiente disco generalmente se denominan fragmentos, bandas o unidades de bandas, mientras que sus grupos lógicos que forman operaciones de bandas individuales se denominan bandas o bandas. La cantidad de datos en un trozo (unidad de banda), a menudo denominada en bytes, se conoce de varias maneras como el tamaño del fragmento, el tamaño de la banda, el tamaño de la banda, la profundidad de la banda o la longitud de la banda. El número de discos de datos en la matriz a veces se denomina ancho de banda, pero también puede referirse a la cantidad de datos dentro de una banda.
La cantidad de datos en una banda multiplicada por el número de discos de datos en la matriz (es decir, profundidad de banda por ancho de banda, que en la analogía geométrica produciría un área) a veces se denomina tamaño de banda o ancho de banda. Las franjas anchas se producen cuando fragmentos de datos se distribuyen en múltiples matrices, posiblemente en todas las unidades del sistema. Las bandas estrechas se producen cuando los fragmentos de datos se extienden a través de las unidades en una sola matriz.
Incluso en el texto de Wikipedia, el tamaño de la banda anterior se usa con dos significados diferentes. Sin embargo, supongo que ahora, cuando se crea el sistema de archivos xfs, el tamaño de un solo fragmento almacenado en una sola unidad debe darse como argumento para su. Esto, debería estar mkfs.xfs -d su=256k,sw=8
en el comando anterior. ¿Correcto?
pvcreate
's--dataalignment
?