Бурное обсуждение моей предыдущей заметки про аппаратный 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, поэтому использовались две из трех имеющихся внешних реализаций: и . Забегая вперед скажу, что существенной разницы в производительности я не увидел.
Помимо этого, я посмотрел на производительность RAID0 (GEOM stripe).
Тестирование проводилось на чтении-записи длинных файлов т.к. меня интересуют именно они. На коротких операциях всё может быть иначе, все "короткие" нагрузки настолько разные, что требуют тестирования по месту.
Это вот - бенчмарка нового красивого массива (4 диска в RAID5):
Только вот размер блока при построении массива я взял мегабайтный, а обычные средние бенчмарки от этого дуреют (график HD Tach - просто обсмеяться).
Вспомним, для чего дома 3Tb диска? Хранить всякий мусор (тут скорость не важна) ну и мувать его. А при муванье - скорость важна, ибо сидим, пялимся в монитор, ждем пока отмувается. Так вот, в жизни все не так, как в бенчмарках:
Как нам и обещали, SAS-версия терабайтной барракуды действительно быстрая (на графике выше - RAID5 из трех дисков с блоком 64кб), причем не только в тестах - на файловую систему реально получается лить 210-230 мегабайт в секунду при копировании больших файлов.
Соблазнившись невиданной дешевизной: $217 за 8-портовый SAS RAID controller приобрел себе такой (увы, помочь с привозом еще таких - не могу). Собственно, помимо дешевизны, преследовались три цели:
Отказаться от PCI-X. Еще несколько лет назад выбора не было: PCIe контроллеры отсутствовали, а RAID-контроллер в PCI-слоте - странный выбор. Но требование PCI-X - разорительно, только Asus наладил выпуск приемлемых 'Workstation'-материнских плат, а на серверные процессоры дома я уже не готов.
Иметь возможность поставить быстрый SAS-диск (скажем, Savvio 15.2K) на свап/TMP
Пишуть, что и это хочется попробовать.
Опробованная год назад 3Ware-3650 меня совершенно не порадовала, производительность была так себе.
В результате, я вяло обдумывал покупку ARC-1220 (SATA) или ARC-1222 (SAS), 750 баксов было очень жалко, а тут подвернулся deal на ATTO. По $27 за порт было невозможно удержаться.
а какие SAS-контроллеры нынче рулят ? Мне нужно 8 портов, PCI-X или PCIe (пофигу, есть оба вида слотов), драйвера под FreeBSD.
Чтение гугла подряд принесло слово LSI MegaRAID 8408, но тут же стал мучать DELL PERC/5 - вроде это то же самое, но почему-то сильно дешевле LSI (при том, что в штатах - дороже чем у нас).
По большому счету, мне RAID5/6 не нужен, а нужен RAID10, все хитрые XOR engines использоваться не будут.
Решил сделать из домашнего роутера еще и файлсервер. Заменил внутренний ether на гигабитный, добил дисков, поставил raid-контроллер.
Контроллеру 3Ware 9650, велено сделать из 3-дискового stripe и еще одного диска - RAID5 (т.е. сначала сделали stripe, перелили туда содержимое старого диска, теперь старый диск подключаем как parity). Диски одинаковые, 200-гигабайтники, Seagate 7200.10.
За сутки сделано 50% миграции.
Я даже затрудняюсь сказать, как нужно программировать, чтобы такого результата добиться.
Update Поребилдилось. Часов так за 45. Но текрам быстрее, создание файла большими блоками на RAID5 из 4-х дисков делалось со скоростью 105-120Mb/sec на текраме и только 80 Mb/sec на этой хреновине.