Массивный пингвин под прицелом

Andrey Bondarenko

Xakep, номер #065, стр. 065-106-1

(bondarenko007@aport2000.ru)

Изучаем RAID и LVM в Linux

Сейчас очень много говорят о RAID. И не случайно. Ведь кто из нас не хочет при небольших затратах получить максимально производительную систему с минимальными потерями надежности? Так что давай посмотрим, как создавать различные виды RAID, как грамотно разбивать диски, познакомимся с LVM, а потом установим Linux на LVM over RAID 0.

Многоуровневый ликбез

В февральском номере мы уже писали о RAID-массивах, поэтому я просто перечислю самые популярные уровни RAID:

Уровень 0 – режим параллельной передачи данных без отказоустойчивости. Все данные разделяются на блоки. Каждый блок записывается по своему каналу на отдельный диск. Таким образом, значительно увеличивается скорость работы дисковой подсистемы. Этот режим еще называют striping.

Уровень 1 – режим зеркалирования дисков (mirroring). Это традиционный и очевидный способ повышения надежности за счет избыточности – мы просто храним и поддерживаем актуальную копию диска. Это дорогой и медленный способ.

Уровень 3 – режим параллельной передачи данных с контролем четности. Работает точно так же, как и уровень 0, но на отдельное устройство записываются коды контроля четности. Этот режим позволяет восстановить один потерянный диск, но для такой конструкции потребуется уже как минимум три диска.

Уровень 5 - режим параллельной передачи данных с распределенным контролем четности. Аналогичен уровню 3. Отличие состоит в том, что коды четности циклически записываются на все диски. Такой подход также позволяет восстановить один потерянный диск.

Остальные уровни довольно экзотичны и практически не применяются. С точки зрения системы, самый лучший уровень – 5. Конечно, мы теряем в объеме массива за счет записи кодов избыточности, зато в случае сбоя мы сможем заменить диск без ущерба для производительности, а если позволяет железо, то даже перезагружаться не придется. Горячая замена важна для банковских систем и министерств, а мы люди скромные, нас вполне устроит и простое увеличение производительности :).

Железка или сырцы?

Существует два вида RAID-контроллеров – программные и аппаратные. Аппаратные контроллеры недешевы и, как правило, имеют SCSI интерфейс. Все операции по созданию и обслуживанию массива контроллер берет на себя. Это самый быстрый, надежный и дорогой вариант (насчет скорости работы нельзя так однозначно утверждать, так как, к примеру, кэш на контроллере может быть очень маленьким, а код драйвера неоптимизированным - прим. ред.). Если приобретать такое решение, то в виде готового массива с гарантией производителя или в составе навороченного сервера. IDE RAID-контроллеры, в основной своей массе, программные, т.е. по сути, пользователь получает дополнительные IDE каналы, с которыми он волен делать все, что угодно. В этом случае весь процесс ввода-вывода, логической адресации и обслуживания работает за счет процессорного времени, и выигрыш за счет использования нескольких дисков меньше. Мы рассмотрим самый простой и распространенный случай, когда присутствуют два жестких диска с одинаковой геометрией, и у нас самая обычная материнская плата с двумя айдишными каналами.

Содержание  Вперед на стр. 065-106-2
ttfb: 22.502899169922 ms