md raid1 ext3 и 4k сектора медленно работают с каталогами

Недавно я перешел от аппаратного RAID1-приложения к использованию двух дисков eSATA с md. Кажется, что все работает нормально, за исключением того факта, что обход каталогов / списков иногда сканируется (порядка 10 секунд). Я использую файловую систему ext3 с размером блока 4K.

Вот некоторые важные выводы из команд, которые должны быть важны:

mdadm -detail:

/dev/md127: Version : 1.2 Creation Time : Sat Nov 16 09:46:52 2013 Raid Level : raid1 Array Size : 976630336 (931.39 GiB 1000.07 GB) Used Dev Size : 976630336 (931.39 GiB 1000.07 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Tue Nov 19 01:07:59 2013 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Events : 19691 Number Major Minor RaidDevice State 2 8 17 0 active sync /dev/sdb1 1 8 1 1 active sync /dev/sda1 

fdisk -l / dev / sd {a, b}:

 Disk /dev/sda: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0xb410a639 Device Boot Start End Blocks Id System /dev/sda1 2048 1953525167 976761560 83 Linux Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x261c8b44 Device Boot Start End Blocks Id System /dev/sdb1 2048 1953525167 976761560 83 Linux 

время dumpe2fs / dev / md127 | grep size:

 dumpe2fs 1.42.7 (21-Jan-2013) Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file Block size: 4096 Fragment size: 4096 Inode size: 256 Required extra isize: 28 Desired extra isize: 28 Journal size: 128M real 2m14.242s user 0m2.286s sys 0m0.352s 

То, как я это понимаю, у меня есть 4K секторов на этих дисках (последние WD-красные), но разделы / файловые системы, похоже, правильно выровнены. Поскольку похоже, что я использую метаданные md версии 1.2, я думаю, что я тоже хорош (на основе mdadm raid1 и какой chunksize (или blockize) на 4k дисках? ). Единственное, на что я не нашел ответа для онлайн, – это то, имеет ли размер inode 256 из-за проблем. Не все операции медленные, кажется, что буферный кеш отлично справляется с тем, чтобы держать вещи в zippy (как и должно).

Моей версией ядра является 3.11.2

EDIT: новая информация, 2013-11-19

 mdadm --examine /dev/sd{a,b}1 | grep -i offset Data Offset : 262144 sectors Super Offset : 8 sectors Data Offset : 262144 sectors Super Offset : 8 sectors 

Кроме того, я монтирую файловую систему с noatime,nodiratime Я не очень хочу возиться с noatime,nodiratime потому что, если мне будет достаточно, чтобы иметь RAID1, это может быть самопровозглашено. У меня возникает соблазн включить индексирование каталогов

EDIT 2013-11-20

Вчера я попытался включить индексацию каталогов для ext3 и e2fsck -D -f чтобы узнать, поможет ли это. К сожалению, этого не произошло. Я начинаю подозревать, что это может быть проблема с оборудованием (или это md raid1 над eSATA, просто глупо делать?). Я подумываю о том, чтобы отключить каждый из дисков и посмотреть, как они работают в одиночку.

EDIT 2013-11-21

iostat -kx 10 | grep -P "(sda | sdb | Device)":

 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.37 1.17 0.06 0.11 1.80 5.10 84.44 0.03 165.91 64.66 221.40 100.61 1.64 sdb 13.72 1.17 2.46 0.11 110.89 5.10 90.34 0.08 32.02 6.46 628.90 9.94 2.55 Device: rrqm/s wrqm/sr/sw/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 

Я урезал выход из этого, так как это было всего 0,00%

Я действительно чувствую, что это должно быть независимо от ext4 vs. ext3, потому что это не просто ощущение немного медленнее, оно может занять от десятков секунд до минуты, а некоторые изменения для автоматического включения или запуска ls

EDIT: Вероятно, проблема с оборудованием, будет закрыт вопрос, когда будет подтвержден

Чем больше я думаю об этом, тем больше мне интересно, это моя карта eSATA. Я в настоящее время использую этот: http://www.amazon.com/StarTech-PEXESAT32-Express-eSATA-Controller/dp/B003GSGMPU Однако я просто проверил dmesg, и он завален этими сообщениями:

 [363802.847117] ata1.00: status: { DRDY } [363802.847121] ata1: hard resetting link [363804.979044] ata2: softreset failed (SRST command error) [363804.979047] ata2: reset failed (errno=-5), retrying in 8 secs [363804.979059] ata1: softreset failed (SRST command error) [363804.979064] ata1: reset failed (errno=-5), retrying in 8 secs [363812.847047] ata1: hard resetting link [363812.847061] ata2: hard resetting link [363814.979063] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 10) [363814.979106] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 10) .... [364598.751086] ata2.00: status: { DRDY } [364598.751091] ata2: hard resetting link [364600.883031] ata2: softreset failed (SRST command error) [364600.883038] ata2: reset failed (errno=-5), retrying in 8 secs [364608.751043] ata2: hard resetting link [364610.883050] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 10) [364610.884328] ata2.00: configured for UDMA/100 [364610.884336] ata2.00: device reported invalid CHS sector 0 [364610.884342] ata2: EH complete 

Я также собираюсь купить более короткие экранированные кабели eSATA, поскольку мне интересно, есть ли какие-то помехи.

ЭТО ЗАВЕРШЕНО ПРОБЛЕМА ОБОРУДОВАНИЯ

Переход на новые экранированные кабели не помог, но заменил старую карту следующим: http://www.amazon.com/gp/product/B000NTM9SY избавился от сообщений об ошибках и странного поведения. Будет опубликовано что-то новое, если что-то изменится.

ВАЖНОЕ ЗАМЕЧАНИЕ ДЛЯ СОЕДИНЕНИЙ SATA:

Даже после выполнения вышеизложенного любая операция привода будет невероятно медленной (просто остановитесь на 10-30 секунд) всякий раз, когда привод простаивает какое-то время. Корпус, который я использую, имеет интерфейс eSATA, но питается от USB. Я решил, что это было потому, что у него не хватило сил для разворота, поэтому я попробовал пару вещей:

  • Использование внешнего источника питания с более высоким током USB (в случае, если порты выполняли минимум 500 мА)
  • Отключение спуска с помощью hdparm -S 0 /dev/sdX (это значительно облегчило проблему, но не полностью разрешило ее)
  • Отключено расширенное управление питанием через hdparm -B 255 /dev/sdX (опять же, не удалось полностью решить)

В конце концов, я обнаружил, что Western Digital имеет перемычку для Reduced Power Spinup, разработанную специально для этого варианта использования!

Приводами, которые я использую, являются: WD Red WD10JFCX 1TB IntelliPower 2.5 " http://support.wdc.com/images/kb/scrp_connect.jpg

Обратите внимание, что я все еще работаю без всех функций управления питанием и вращения (Still -B 255 и -S 0 на hdparm).

Окончательный вердикт

К сожалению, RPS не решила всех моих проблем, просто уменьшила величину и частоту. Я считаю, что проблемы в конечном итоге были связаны с тем, что корпус не мог обеспечить достаточную мощность (даже если я использую адаптер переменного тока USB). В конце концов я купил этот корпус:

http://www.amazon.com/MiniPro-eSATA-6Gbps-External-Enclosure/dp/B003XEZ33Y

и все работает безупречно в течение последних трех недель.