среда, 31 августа 2011 г.

Настраиваем программный RAID. Ubuntu Server

Материал взят с сайта http://interface31.ru

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

Перед тем, как брать в руки мышку, следует разобраться с тем, каким образом реализован программный RAID в конкретной операционной системе. Вы должны четко представлять себе схему работы массива, прежде чем браться за его настройку. Это послужит залогом того, что вы все сделаете правильно и вам не будет мучительно больно за потерянные данные.

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

Программный RAID устроен несколько иначе, операционная система воспринимает каждый жесткий диск как отдельную единицу оборудования, объединяя их в массив на начальной стадии загрузки, при помощи специального драйвера.
Основой программного RAID в Ubuntu является логический диск, именно из них создаются массивы, имеющие названия md-устройств, т.е. создание массива происходит не поверх физической структуры (жестких дисков), а поверх существующей разметки (логических дисков). Ниже показан пример такого массива:



Два жестких диска sda и sdb содержат логические диски sda1 и sdb1, на базе которых создан программный массив md0, отформатированный под ext4 и содержащий корневую файловую систему. Важная особенность: одно md-устройство может содержать один логический диск. Если вы хотите создать массив содержащий корневой раздел, раздел подкачки и, допустим, /home вам придется создать три md-устройства.

Эта же особенность позволяет использовать один набор физических дисков для создания на них разных типов массивов (аналогично технологии Intel® Matrix Storage). Используя те-же самые два диска можно создать скоростной массив RAID0 для системы и отказоустойчивый RAID1 для данных:



Также это позволяет более рационально использовать дисковое пространство, использовав под RAID массив только часть диска, оставшиеся части вы можете разметить и использовать на собственное усмотрение. Как видим, программный RAID гораздо более гибок и предоставляет весьма много возможностей.

Однако есть ложка дегтя в бочку меда. Стоит помнить, что RAID0 не является отказоустойчивым и при отказе одного из дисков произойдет полный отказ массива. При некритическом отказе диска RAID0, в отличие от остальных уровней RAID, не позволяет извлечь сбойный диск и заменить его исправным, вам потребуется создать аналогичный исправный массив и скопировать на него раздел с аварийного массива.
Перейдем от теории к практике. В качестве базовой системы мы использовали Ubuntu Server 10.04 LTS, цель - настроить программный RAID1 (зеркало) и обеспечить с него загрузку системы.

Начинаем установку системы обычным образом, пока не дойдем до этапа разметки дисков. Отказываемся от автоматической разметки и выбираем ручной метод:



На следующем экране выбираем один из жестких дисков и нажимаем Enter:



Программа разметки предложит создать на диске новую, чистую таблицу разделов. Соглашаемся. Ту же самую операцию проделываем для второго диска. Чтобы не создавать лишнее md-устройство обойдемся без раздела подкачки, Ubuntu вполне может использовать для этих целей специальный файл (как Windows и MacOS). Его созданием мы займемся сразу после установки. Теперь выбираем свободное место и создаем один раздел на весь размер диска, повторяем эти же действия и для второго HDD.



В данном случае несущественно какие разделы, с какой файловой системой и точкой монтирования вы создадите, все равно созданный массив придется форматировать заново. Главное идентично разметить оба диска. В данном примере мы создали два корневых раздела на весь размер диска.

Настройка программного RAID, затем Создать MD-устройство, после чего выберите желаемый тип RAID массива:



Потом укажите количество дисков в создаваемом массиве (для зеркала минимум 2) и количество резервных дисков, которые будут использоваться при отказе основных (укажите 0). Теперь укажите разделы из которых вы хотите создать массив:



По окончании создания массива вы снова окажетесь в окне разметки дисков, так как наш массив не содержит никаких разделов их нужно создать. Для этого выбираем свободное место (указано просто как емкость массива) и жмем Enter:



Указываем, каким образом мы хотим использовать данный раздел. В данном случае это будет корневой раздел с файловой системой ext4:



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



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

Закончив установку, первым делом займемся файлом подкачки. Прежде всего создадим пустой файл нужного размера, для современных систем начального уровня вполне будет достаточно 1 ГБ (1024 МБ):
Готово, осталось прописать опции монтирования при загрузке системы, для этого откроем /etc/fstab и в самый конец допишем строку:
/swap none swap sw 0 0

Перезагружаемся. Проверить состояние массива можно командой:
cat /proc/mdstat

Если все в порядке вы увидите примерно следующий вывод:



Информации немного, но вполне достаточно. Мы видим состояние массива, его тип и входящие в него диски, размер и прочие данные.

Теперь можно настраивать необходимые серверные роли и вводить сервер в эксплуатацию.

Комментариев нет:

Отправить комментарий