RAID

О новых технологиях

Со страху заменил оставшиеся в сторадж-боксе старые сигейтовские SAS-овские терабайтники (2008-го года) на терабайтные же WD RE4 (SATA). Старые - пусть дискетками поработают.

Результат:

  • +10% к трансфер рейту, было ~630-650Mb/sec на чтение-запись, стало 720-730.
  • Минус 10 градусов к температуре, старые диски грелись до ~42C, нагревая соседей до 35, а теперь 30 градусов, при том что в комнате 22, а ящик стоит в шкафу, который висит на теплой стене).

Чтобы два раза не вставать: в этом же ящике с середины сентября живет 400-ваттный безвентиляторный БП Seasonic. Впечатления самые благоприятные: хрен с ним с шумом, этот питальник холодный. Понятно что гружу я его отсилы ватт на 200 (8x10вт диски, 65вт. CPU, карточки тоже теплые, а значит жрут, вентиляторы крутятся), но 500-вт Thermaltake, который там стоял до того, грелся при такой нагрузке вполне самостоятельно.

Стоит этот питальник неприлично, но если бороться за тишину или температуру, то он - хороший. Во второй сервер купил такой же, потому что тамошний Zalman тоже противно греется.

О надежности RAID

Я был уверен, что читал про это в известной гугловой бумаге про надежность дисков, однако быстрым просмотром этого не нашел. Значит ветром надуло.

"Это" - такой практический факт, что если у вас вылетел диск в RAID, то шансов словить проблемы с еще одним диском в том же массиве в процессе ребилда - много. Настолько много, что мы в АиП с этим несколько раз сталкивались вживую, несмотря на то что парк серверов у нас - маленький.

Материалистическое объяснение понятно - в процессе ребилда нагрузка на диск(и) максимальна, если кто-то из них уже дышит на ладан, то тут оно и настанет.

Я умный, поэтому для рабочих данных использую RAID6. Все-таки вероятность того, что при ребилде вылетит два диска - она сильно меньше. Ну, к примеру, если RAID5 окончательно портятся в 5% случаев ребилда (что явно завышенная оценка), то значит RAID6 так убить получится в 1/400 = 0.25% ребилдов. С учетом бэкапов и всего такого (и реальной частоты ребилдов - ну пусть даже раз в месяц, реально много меньше) - меня это устраивает (а 5% - не устраивает).

Но вчера - чуть не налетел и с RAID6. Естественно, ровно по собственной глупости: у меня в рабочем массиве стоят (стояли) 6 штук старых 1Tb Seagate Barraсuda ES.2. Они греются заметно больше, чем WD RE4, медленнее, да и вообще им уже по 4 года, пора менять (на WD RE4, которых в этом массиве еще два). Ну вот я пару WD RE4 вчера и принес из лабаза, пару сигейтов вытащил, заменил, поставил ребилдиться.

И что вы думаете? Первый - перестроился (Adaptec 5805 их по одному перестраивает), а в процессе перестройки второго - вылетел один из старых сигейтов. На час раньше - и прощай данные. Ну то есть вернуть старый диск - не дали бы, если такой возвращаешь он все едино считается новым, таймстампы то разошлись.

Пойду свечку поставлю. Те 4Tb данных, что на этом массиве лежат, - на 99% дублированы на другой NAS и на 90% в оффлайн, но даже 1% потерять было бы необычайно обидно.

Adaptec 5805 RAID6 vs ZFS RAIDZ2 performance

Вот, померял на досуге:
  • ASR-5805, 8 дисков в RAID-6, 2Tb-раздел в начале массива. Тестируем гигабайтным блоком, 40 гигов чтения/записи:
    • NTFS (Win7): 651Mb/sec чтение, 651Mb/sec запись.
    • UFS2+SUJ (FreeBSD 9.1): 585Mb/sec запись, 528Mb/sec чтение.
    • EXT4 (Ubuntu Server 11.10): 659/639
  • ZFS RAIDZ2 (FreeBSD 9.1), те же 8 дисков: 490Mb/sec на запись (dd bs=1024M), огорчился и не стал мерять дальше.
Так как эти ~650Mb/sec у меня из Убунты впрямую транслируются в SRP (SCSI RDMA Protocol), то я уже счастлив (подробности...

Упражнения с бревном - 2 (graid5 + gjournal)

Не удержался и попробовал комбинацию из geom_raid5 + gjournal.

Пробовались варианты:

  • Журнал на отдельном диске (старый WD Raptor 36Gb, скорость линейной записи около 60 MB/sec)
  • Журнал на том же массиве, что и файловая система (RAID5 из 750GB дисков Western Digital)

Как ни странно, но результаты практически одинаковые, по всей видимости full stroke seek но бОльшая скорость линейного I/O удачно разменялись на обратные величины.

  • Скорость линейной записи большого файла: 41 MB/sec с журналом в конце массива и 44 MB/sec с журналом на отдельном диске. По iostat прекрасно видно как флашится журнал...
  • Скорость создания большого числа мелких файлов тоже практически одинакова: tar xzvf ports.tgz (порты от 7.1-RC1) занимает 33 секунды с журналом на массиве и 31 секунду с журналом на отдельном диске (файловая система смонтирована, как велено в мане, без soft-updates, но с -o async)
  • Для сравнения: распаковка того же ports.tgz на массиве без журнала занимает
    • 29 секунд при монтировании -o async (без soft-updates)
    • 2 минуты 13 секунд без async, но с soft-updates
  • Скорость чтения практически не поменялась, все цифры в пределах ошибки от предыдущих тестов.

Мораль совершенно понятна: для приложений с большим количеством мелких файловых операций журнал дает возможность безопасно включить async mount, но при этом безобразно портит скорость записи. Наверное, если вынести журнал на массивчик из мелких (но быстрых) SAS-дисков, то станет полегче.

Упражнения с бревном (FreeBSD raid5 performance)

Бурное обсуждение моей предыдущей заметки про аппаратный RAID заставило меня потратить немножко времени в выходные на изучение software raid5 в FreeBSD (других подопытных ОС не оказалось).

Приборы и материалы

FreeBSD 7.1-PRERELEASE - i386, Core2Duo 1.86, 2GB RAM, 3 диска Western Digital WD7500AAKS (750Gb).

Диски я извлек из рабочей станции, там они показывали 140MB/sec на чтение и 120-125 на запись будучи прицеплеными к Areca ARC-1120 в режиме RAID5 под WinXP/Vista.

GEOM RAID5 все еще не входит в комплект FreeBSD, поэтому использовались две из трех имеющихся внешних реализаций: GEOM RAID5 TNG и GEOM RAID5 PP. Забегая вперед скажу, что существенной разницы в производительности я не увидел.

Помимо этого, я посмотрел на производительность RAID0 (GEOM stripe).

Тестирование проводилось на чтении-записи длинных файлов т.к. меня интересуют именно они. На коротких операциях всё может быть иначе, все "короткие" нагрузки настолько разные, что требуют тестирования по месту.

Бенчмарки и жизнь

Это вот - бенчмарка нового красивого массива (4 диска в RAID5):

copy-benchmark.png

Только вот размер блока при построении массива я взял мегабайтный, а обычные средние бенчмарки от этого дуреют (график HD Tach - просто обсмеяться).

Вспомним, для чего дома 3Tb диска? Хранить всякий мусор (тут скорость не важна) ну и мувать его. А при муванье - скорость важна, ибо сидим, пялимся в монитор, ждем пока отмувается. Так вот, в жизни все не так, как в бенчмарках:

copy-real.png

Верхняя строчка - чтение со старого массива, нижняя - запись на новый. Ну и если бы новый был бы старым, то все бы отмувалось не за 18 минут, а за 7, что я бы оценил.

Я, собственно, к тому, что мегабайтные блоки - рулят. Особенно, если время чтения 3-мегабайтного (и менее) куска вообще не волнует.

Seagate Barracuda 1TB SAS

atto-2tb.png

Как нам и обещали, SAS-версия терабайтной барракуды действительно быстрая (на графике выше - RAID5 из трех дисков с блоком 64кб), причем не только в тестах - на файловую систему реально получается лить 210-230 мегабайт в секунду при копировании больших файлов.

Для сравнения, картинка от трех 750-гигабайтных WD (которые Caviar SE 16 и полтора года назад считались очень хорошими)...

ATTO vs Areca

atto-stripe.png

Соблазнившись невиданной дешевизной: $217 за 8-портовый SAS RAID controller ATTO R348 приобрел себе такой (увы, помочь с привозом еще таких - не могу). Собственно, помимо дешевизны, преследовались три цели:

  • Отказаться от PCI-X. Еще несколько лет назад выбора не было: PCIe контроллеры отсутствовали, а RAID-контроллер в PCI-слоте - странный выбор. Но требование PCI-X - разорительно, только Asus наладил выпуск приемлемых 'Workstation'-материнских плат, а на серверные процессоры дома я уже не готов.
  • Иметь возможность поставить быстрый SAS-диск (скажем, Savvio 15.2K) на свап/TMP
  • Пишуть, что 1TB SAS-барракуды быстрее SATA на линейном чтении-записи и это хочется попробовать.

Опробованная год назад 3Ware-3650 меня совершенно не порадовала, производительность была так себе. В результате, я вяло обдумывал покупку ARC-1220 (SATA) или ARC-1222 (SAS), 750 баксов было очень жалко, а тут подвернулся deal на ATTO. По $27 за порт было невозможно удержаться.

SAS RAID ?

Граждане,

а какие SAS-контроллеры нынче рулят ? Мне нужно 8 портов, PCI-X или PCIe (пофигу, есть оба вида слотов), драйвера под FreeBSD.

Чтение гугла подряд принесло слово LSI MegaRAID 8408, но тут же стал мучать DELL PERC/5 - вроде это то же самое, но почему-то сильно дешевле LSI (при том, что в штатах - дороже чем у нас).

По большому счету, мне RAID5/6 не нужен, а нужен RAID10, все хитрые XOR engines использоваться не будут.

3Ware жжот

Решил сделать из домашнего роутера еще и файлсервер. Заменил внутренний ether на гигабитный, добил дисков, поставил raid-контроллер. Контроллеру 3Ware 9650, велено сделать из 3-дискового stripe и еще одного диска - RAID5 (т.е. сначала сделали stripe, перелили туда содержимое старого диска, теперь старый диск подключаем как parity). Диски одинаковые, 200-гигабайтники, Seagate 7200.10. За сутки сделано 50% миграции. Я даже затрудняюсь сказать, как нужно программировать, чтобы такого результата добиться. Update Поребилдилось. Часов так за 45. Но текрам быстрее, создание файла большими блоками на RAID5 из 4-х дисков делалось со скоростью 105-120Mb/sec на текраме и только 80 Mb/sec на этой хреновине. Нужно считать 3 дорожки, подумать над ними и записать на 4 (диски одинаковые, результирующая емкость массива не меняется и так далее).

Даже если делать операцию посекторно, то секторов у нас всего - 1.6 млн (4 диска x 400 тыс. секторов), в половине объема - 800 тыс, получается что хреновина обрабатывает 10 секторов в секунду. Но извините, у нас seek time - 11 мс, а если оставлять голову на дорожке, то еще меньше (полоборота - 4 ms). И что мы делаем еще 90 миллисекунд ? Записываем в уголок состояние миграции ? Вообще, по шуму головок - очень похоже. И ведь хотел купить Текрам, но победили такие соображения:

  • Посмотрю на 3Ware, вдруг они стали хорошие (предыдущие варианты, 9500-я серия, текраму сильно проигрывает)
  • Текрам - PCIe-8x, а у меня есть свободный слот 4x
По первому вопросу: текрам ARC-1xxx - сильно лучше. Т.е. по производительности 3Ware кажется догнали, но по всему остальному - как был тихий ужас, так и остался. По второму вопросу получилось смешнее, хотя тут виноват не 3Ware. Мамка на 965-м чипсете, имеет 20 PCIe lanes, которые разведены на 16x слот и на слоты 1x и 4x. Так вот, выяснилось, что хотя в биосе есть выбор "работает 4x"/"работает 1x и 4x как 2x", этот выбор нифига не работает, когда в 4x-слоте что-то есть, слот 1x отключается (а там у меня ethernet). Пришлось ставить RAID в слот для видеокарты, видеокарту ставить простую PCI-ную (прощай идея поставить на эту машину MacOS) и вся красивая идея испортилась. Мамку зовут ASUS P5B-E Plus. Надо ли говорить, что драйвера от ее Marvell-овского ethernet-а, взятые с сайта marvell под FreeBSD 6.2 не работают ?
Subscribe to RAID