У меня есть раздел XFS размером 9 ТБ, состоящий из четырех дисков по 3 ТБ в массиве RAID-5 с размером порции 256 КБ, с использованием MDADM.
Когда я создал раздел, оптимальные значения полосы и ширины полосы (64 и 192 блока) были обнаружены и установлены автоматически, что подтверждает xfs_info:
# xfs_info /dev/md3
meta-data=/dev/md3 isize=256 agcount=32, agsize=68675072 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=2197600704, imaxpct=5
= sunit=64 swidth=192 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=521728, version=2
= sectsz=512 sunit=64 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Тем не менее, я испытывал медленные скорости передачи, и во время исследования я заметил, что, если я специально не монтирую раздел с -o sunit=64,swidth=192
, единица измерения полосы всегда будет установлена на 512, а ширина на 1536. Например:
# umount /dev/md3
# mount -t xfs -o rw,inode64 /dev/md3 /data
# grep xfs /proc/mounts
/dev/md3 /data xfs rw,relatime,attr2,delaylog,inode64,logbsize=256k,sunit=512,swidth=1536,noquota 0 0
Это намеренное поведение?
Я предполагаю, что я мог бы просто начать монтировать его с sunit=64,swidth=192
каждый раз, но разве это не сделало бы текущие данные (которые были записаны при монтировании с sunit=512,swidth=1536
) смещенными ?
Операционная система Debian Wheezy с ядром 3.2.51.
Все четыре жестких диска являются дисками расширенного формата (smartctl говорит, что 512 bytes logical, 4096 bytes physical
).
Тот факт, что значения умножены на 8, заставляет меня задуматься, имеет ли это какое-либо отношение к проблеме, поскольку она соответствует коэффициенту умножения между дисками размером от 512 до 4096 секторов.
Может кто-нибудь пролить некоторый свет на это? :-)