У меня есть 10 дисков с 8 ТБ каждый в аппаратном RAID6 (таким образом, 8 дисков с данными + 2 четности). После ответа на очень похожий вопрос я надеялся на автоматическое определение всех необходимых параметров. Тем не менее, при создании файловой системы XFS в конце я получил
# 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
Похоже, что чередование не было использовано. Из-за разных терминов, которые я нашел на разных сайтах (размер полосы, размер полосы, кусок полосы, ...), я хотел бы спросить, правильно ли я понял параметры ручного управления.
RAID 6 был настроен с размером полосы 256 КБ:
# ./storcli64 /c0/v1 show all | grep Strip
Strip Size = 256 KB
Таким образом, размер полосы составляет 8 * 256 КБ = 2048 КБ = 2 МБ. Это правильно? В соответствии с этим (и если я правильно понимаю), pvcreate
необходимо использовать размер полосы (или чанка) в качестве аргумента для dataalignment
:
# pvcreate --dataalignment 256K /dev/sdb
Physical volume "/dev/sdb" successfully created
Обратите внимание, что я использовал все устройство RAID без разделов. Сейчас
# vgcreate vgdata /dev/sdb
Volume group "vgdata" successfully created
с размером PE по умолчанию 4 МБ должно быть хорошо, потому что он кратен размеру полосы 2 МБ. Правильный?
Теперь часть vgroup назначена логическому тому:
# lvcreate -L 40T vgdata -n lvscratch
Logical volume "lvscratch" created.
Наконец, файловая система создана, но теперь с правильными аргументами (размер полосы 2 МБ, ширина полосы 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
Правильный ли этот подход? Есть ли что-то, что нужно иметь в виду для расширения логического тома или группы томов? Я полагаю, что если группа томов будет расширена с другой системой RAID6, размер полосы должен быть равен существующему RAID6.
РЕДАКТИРОВАТЬ : моя путаница, кажется, в основном основана на различном использовании терминов, связанных с полосой. Производитель моего RAID-контроллера, LSI или Avago, определяет термины следующим образом :
Ширина полосы
Ширина полосы - это число дисков, входящих в группу дисков, в которой реализовано распределение. Например, группа из четырех дисков с чередованием дисков имеет ширину полосы четыре.
Размер полосы
Размер полосы - это длина сегментов данных с чередованием, которые RAID-контроллер записывает на несколько дисков, не включая диски четности. Например, рассмотрим полосу, которая содержит 64 КБ дискового пространства и содержит 16 КБ данных, находящихся на каждом диске в полосе. В этом случае размер полосы составляет 64 КБ, а размер полосы - 16 КБ.
Размер полосы
Размер полосы - это часть полосы, которая находится на одном диске.
Википедия (и IBM ), похоже, используют другие определения:
Сегменты последовательных данных, записываемые на диск или считываемые с диска до продолжения операции на следующем диске, обычно называются блоками, шагами или единицами чередования, а их логические группы, образующие отдельные чередующиеся операции, называются чередованиями или полосами. Количество данных в одном блоке (единица полосы), часто выражаемое в байтах, по-разному называется размером фрагмента, размером шага, размером полосы, глубиной полосы или длиной полосы. Количество дисков данных в массиве иногда называют шириной полосы, но это также может относиться к объему данных в полосе.
Количество данных за один шаг, умноженное на количество дисков данных в массиве (то есть, глубина полосы, умноженная на ширину полосы, которая в геометрической аналогии дала бы область) иногда называется размером полосы или шириной полосы. Широкое чередование происходит, когда порции данных распределяются по нескольким массивам, возможно, по всем дискам в системе. Узкое чередование происходит, когда порции данных распределяются по дискам в одном массиве.
Даже в тексте Википедии размер полосы выше имеет два разных значения. Тем не менее, я полагаю, что при создании файловой системы xfs размер отдельного чанка, хранящегося на одном диске, должен быть указан в качестве аргумента su. Это должно быть mkfs.xfs -d su=256k,sw=8
в команде выше. Правильный?
pvcreate
s--dataalignment
?