LINUX.ORG.RU

Программный RAID 0 и RAID 10 на одном массиве


0

2

Здравствуйте.
Есть четыре SATA2 диска по 1Тб, которые планируется объединить в программный RAID10 на CentOS 6. И пятый диск SATA2 на 2Тб, на который планируется делать backup на этой-же машине. На него-же думаю разместить раздел /boot .
Итак, на четырех дисках по 1Тб будут размещаться разделы swap и корневой (/).
Корневой будет объединен в RAID 10 , а swap есть идея сделать в RAID 0 (вроде как для ускорения работы; ну и делать из него зеркало я думаю не нужно?).
Вопрос: будет ли работать такая схема? Если будет, то хорошо ли будет? Есть ли более оптимальная схема?
Какой размер swap при 32Гб ОЗУ? Роль компьютера - веб-сервер.


Все нормально, разве что /boot, лучше вынести в зеркало RAID1, а не отдельный диском. Иначе загрузиться не сможешь при его поломке. Итого будет: RAID1, RAID10 и отдельный диск 2Гб

Какой размер swap при 32Гб ОЗУ?

не нужно так вопросы ставить. выделяй своп исходя из предполагаемого потребления памяти сервером, а не количества ОЗУ

Chumka ★★★
()

а swap есть идея сделать в RAID 0 (вроде как для ускорения работы

1) Опиши, как твоя система будет себя чувствовать, если один из дисков, на котором сейчас своп держит свои данные, внезапно отвалится.
2) Swap не обязательно пихать на RAID для ускорения, есть приоритеты.

YAR ★★★★★
()

а swap есть идея сделать в RAID 0

Думаю твоя система будет рада в случае повреждения подкачки.

sin_a ★★★★★
()

Делать swap на raid0 нет смысла. Во первых, при выходе одного дисков из строя теряется весь raid, то есть весь swap. Во вторых, данные из swap'а читаются небольшими проциями (страницами), а выигрыш скорости RAID0 только при чтении больших блоков.

Делать swap имеет смысл на RAID1, возможно с небольшим значениме chunk'а, хотя я не находил тестов изменения производительности swap при переходе на RAID1. Или, как уже сказали, ядро может само распределять swap на множество устройств. Так что 4 отдельных swap раздела (или два RAID1) swap раздела скорее всего будут быстрее, чем один. Но, самое главное засунуть swap в начало диска, там сектора читаются быстрее.

mky ★★★★★
()
Ответ на: комментарий от mky

Понятно. Тогда какой из вариантов более предпочтителен и почему:
1. /boot на диске для backup`a (чтобы не путался под ногами); swap в raid10 и корень в raid10.
2. /boot в raid1 на всех четырех дисках, swap в raid10, корень в raid10.
3. /boot в raid1 на четырех дисках, swap в raid1 на одной паре и в raid1 на другой паре (чем такой вариант лучше (хуже) третьего? как в таком случае формировать пары?); корень в raid10.
4. Ваш вариант.
По-поводу размера swap-раздела нет опыта. При каком размере данных в swap на веб-сервере можно будет говорить о неотложном решении вопроса с добавкой ОЗУ?

anonymous
()

ставь всю систему на RAID10 вместе с boot и swap.

vxzvxz ★★★
()
Ответ на: комментарий от anonymous

/boot в RAID1 на всех 4-х дисках, RAID10 для LVM, в котором корень и все остальное.

Как вариант - порезать оставшееся место на 3 примерно одинаковых раздела и для каждого раздела сделать свой RAID10, после чего эти RAID'ы сшить в один массив в LVM'е, на котором уже разместить корень и все остальное.

YAR ★★★★★
()
Последнее исправление: YAR (всего исправлений: 1)
Ответ на: комментарий от YAR

Будет ли надстройка в виде LVM создавать дополнительную нагрузку на систему? Будут ли лишние сложности с восстановлением информации, в случае чего?
А вообще - я не понял идеи про «3 примерно одинаковых раздела».

aalex
() автор топика
Ответ на: комментарий от aalex

Будет ли надстройка в виде LVM создавать дополнительную нагрузку на систему?

Любая прослойка что-то вносит. Вопрос в том, сколько ты готов пожертвовать ради удобства дальнейшей работы с дисками.

Будут ли лишние сложности с восстановлением информации, в случае чего?

Нет, конечно. Ты ведь сисадмин, который _уже_ делает бэкапы, правда?

А вообще - я не понял идеи про «3 примерно одинаковых раздела».

Идея в том, чтобы сделать несколько независимых RAID'ов на разных участках диска. Оверхеда никакого, зато при проблемах с диском (бэд-блок, например, у тебя образовался в середине диска или еще что-то случилось. Например, бэды на двух дисках зеркала, но в разных его участках) у тебя не падает вся нагрузка на оставшиеся диски, «сбойный» диск по возможности все равно участвует в работе. Если, конечно, он совсем уж сдох - ну что ж, тогда он просто выпадет из всех массивов сразу и больше использоваться не будет.

YAR ★★★★★
()
Ответ на: комментарий от anonymous

3. /boot в raid1 на четырех дисках, swap в raid1 на одной паре и в raid1 на другой паре (чем такой вариант лучше (хуже) третьего? как в таком случае формировать пары?); корень в raid10.

Имелось ввиду «лучше (хуже) ВТОРОГО»? Если будут два отдельных swap-устройства на raid1 с одинаковым приоритетом, то ядро, во всяком случае потенциально, сможет работать с ними одновременно, считывая с них произвольно разные блоки. В случае с RAID0 (RAID10) одновременно читаются подряд расположенные блоки md-устройства. Если не понятно, могу написать подрообнее.

Мой вариант. Каждый из четырёх дисков разбивается на 4 раздела. Первые разделы объединяются в два raid1 и используются как два swap-устройства с равным приоритетом. Вторые разделы (~400 Гб) объдиняются в raid10 для корня (/). Третьи разделы (~600 Гб) объединяются в raid10 и используются под «тяжёлые» данные (допустим галереии картинок). Четвёртые разделы объединяются в raid1 под /boot. Диск для backup делается загрузочным, туда вручную копируется содержимое /boot.

Пары для raid в swap-разделах формировать произвольно. Распилить корень на части для производительности, сектора в начальной области диска читаются быстрее, я не знаю специфику вашего web-сервера, но обычно там нет 2 Тб активно используемой информации. На backup диске просто хранить какое-нибудь загружающеся ядро, чтобы если вышла какая-то накладка с обновлением и /boot «обнулился», можно было грузится с backup, а не LiveCD.

Размер swap можно брать равным размером ОЗУ. Если вдруг окажется, что какие-то очень прожорливые процессы и им нужно больше swap, то можно добавить ещё swap в файл с меньшим приоритетом. Потребность в добавке ОЗУ, ИМХО, нужно определять по недостаточности производительности сервера в целом. И если при этом будет много swap'а в vmstat, значит надо ещё ОЗУ.

mky ★★★★★
()
Ответ на: комментарий от YAR

Понятно про три раздела. Но я видимо не буду использовать такой вариант. Для этого нужно иметь побольше дискового пространства и, вообще, помощнее систему.

aalex
() автор топика
Ответ на: комментарий от mky

Сделал в таком варианте:
Три программных RAID на четырех дисках и пятый диск backup.

Первым идет массив raid 10 для раздела swap. Размер - по 16 Гб на диске, в итоге 32 Гб. (Обдумываю вариант - отказаться от раздела swap и разместить swap в корне в виде файла. У кого есть опыт? Интересует скорость. Ну а смысл - удаляется лишняя программная надстройка).

Вторым идет raid 1 под /boot. Выделил по 200 МБ на диске, итого - 200 МБ.

Третим идем raid 10 под корень - все остальное пространство.

Завтра потестирую на скорость работы.

Какие настройки дисковой подсистемы и самого массива влияют на скорость работы?

p.s. Я уезжал - забыл об этом написать на форуме.

aalex
() автор топика
Ответ на: комментарий от aalex

Скорости и swap вещи малосовместимые. Тестов, чтобы сравнить swap в файл и swap на раздел в чистом виде я не встречал. Вот по теме проверка быстродействия swap-подсистемы (комментарий) , но без особой пользы.

Вроде как разработчики ядра утверждают, что swap в файл не будет медленне swap'а на раздел, но раздел можно гарантированно разместить в начале диска, в отличии от файла. Если диск новый, без realloc-секторов, то сектора в начале диска читаются/пишутся быстрее.

В системе, где важна производительность swap это своего рода «подушка безопасности», чтобы при нехватки ОЗУ система продолжила работать, а не поубивала важные процессы. И там не так важно скорость работы swap'а, важно постоянно смотреть интенсивность его использования (vmstat) и в случае чего докупать память/изменять настройки, чтобы интенсивного использования swap не было вобще.

ИМХО, если у вас есть возможность в случае нехватки ОЗУ обновлять железо, то делайте swap в файле, если нет, делайте на разделе в начале диска.

Какие настройки дисковой подсистемы и самого массива влияют на скорость работы?

Из настроек raid я знаю chunk size, по моему опыту он не особо влияет на производительность raid10. У файловой системы есть stride и stripe_width Форматирование raid-устройства: опции stride и stripe-width

mky ★★★★★
()
Ответ на: комментарий от aalex

Какая разница, сколько дискового пространства? Сколько бы ни было - просто делаешь 4 раздела, один мелкий под /boot и остальное делишь на 3 части. Кстати, что еще удобно - в LVM ты можешь задать, на каком PV у тебя будет каждый конкретный LV. Т.е., надо разместить тебе swap поближе к началу или концу диска - просто задаешь адрес нужного RAID'а при создании swap'а и все.

«Помощнее»? Зачем? Чем это отличается от RAID'а на весь диск?

YAR ★★★★★
()
Ответ на: комментарий от aalex

Не делай своп в файле. Не будет оно быстрее, чем отдельный выделенный для этого раздел на диске без прослоек в виде ФС твоего /. Сделай внутри LVM. Не понадобится - сможешь всегда спокойно удалить.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Изучу вопрос насчет LVM. Но пока я думаю, что чем меньше будет прослоек между физическим диском и остальной системой - тем лучше. Быстрее будет работать, возможно меньше мороки с восстановлением информации в случае чего. Но детально вопроса пока не знаю. Буду заниматься.

aalex
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.