Что лучше для 4x300Gb SAS 15K — RAID 5 или RAID 10?
Собираем сейчас новый сервер, разгорелся небольшой спор по поводу выбора типа рейд-массива.
Сервер HP DL180 G6 с 2x Intel Quad Core E5620, 16Gb памяти и 4x300Gb SAS 15K, предназначается для объемной БД MySQL (сейчас ~20Gb и в ближайшее на пару гиг увеличится).
CTO и админ говорят, что аппаратный RAID 5 лучше, мол места чуток больше и скорость хорошая, а я(ведущий программист) склоняюсь к варианту, что лучше RAID 10, т.к. при равном количестве дисков скорость чтения будет больше, плюс десятка быстрее ребилдится в случае отказа одного из дисков. Кто же всё-таки прав и почему?
P.S. Какой из вариантов проще расширять в будущем?
Используем на высоконагруженном проекте RAID10 на 6 SAS дисках.
1) RAID10 — просто ремонтировать, а в год ломается 1..2 диска
2) SAS — эти диски выдерживают боевые нагрузки, а вот реплика, живущая на RAID0 из 4-х SATA, вечно отстает.
3) Все RAID массивы софтовые (Linux) — получается надежнее
4) ZFS в RAID10 — очень хороший вариант для FreeBSD
Хорошо.
1) Я привык использовать FreeBSD и только с ZFS. На Линуксе я поимел много приключений с развалившимися LVM и md на ext2/3/4. Поэтому сразу отговариваю клиента от сетапа Линукса.
2) RAID 10 проще масштабируется — добавил пару винтов и работаем дальше. RAID5 требует минимум такое же количество дисков.
3) RAID10 имеет 4-ое чтение против 2-е у RAID5. Очень пригодится при отдаче мелких файлов
4) ZFS не требует аппаратного контроллера. Одной точкой отказа будет меньше.
Ссылки на сравнения: тут, тут и тут.
Я бы попробовал взять дешевые САТА винты или все 4-ре или 2SATA и 2SAS
Я закоменчу про zfs ибо работаю с ней сейчас, ужасное поделие, недопиленная багофича в седьмой фрибсд, врагу не пожелаю встретиться с командой crups для zfs.
RAID10 — быстрее. Ощутимо быстрее. Остальные аргументы не читайте, их вы и сами знаете.
RAID5 на 3х дисках по суммарной скорости записи медленнее RAID1.
Имплементация неважна. Будь то ZFS, аппаратный RAID, btrfs или md. В своём классе 10ки всегда шустрее.
А что будет хранится в базе? Какой характер нагрузки?
Если у вас контроллер с кэш памятью и батарейкой, то принципиальной разницы в линейной записи/чтении вы не увидите. Если для вашей базы характерно много операций случайной записи — предпочтительным будет RAID10.
Насколько я понял, преимущество RAID5 в меньших накладных расходах на дисковое пространство для вас не критично, поскольку база, даже с учетом роста, вполне умещается на RAID10.
Касаемо расширяемости на будущее — преимущество у RAID5, поскольку в массив можно добавлять по одному диску, в RAID10 — только четное количество дисков, но сама процедура расширения для RAID5, как правило, занимает больше времени.
> А что будет хранится в базе? Какой характер нагрузки?
В базе хранятся пользовательские сессии(много десятков тысяч), geoip, города из geonames.org, статистика для пользователей (агрегируется раз в сутки), логи операторов админок, и еще много того чего сказать без консультации с главным начальством не могу.
Сессии апдейтятся и добавляются весьма часто, поэтому создают немало операций случайной записи, статистика дает постоянно большую нагрузку на запись в несколько таблиц, также как и логи. Остальное в основном на весьма случайное чтение.
> Если у вас контроллер с кэш памятью и батарейкой
Будет такой сервер, какой там контроллер — не знаю.
> Касаемо расширяемости на будущее
Если нам перестанет хватать 4-х дисков, то добавление одного диска будет не достаточно эффективно, думаю массив сразу расширим до 8-ми дисков для ощутимого прироста в скорости, или вообще подумаем над кластеризацией базы.