Меню Рубрики

Установка raid массива на ubuntu

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

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

  • Автор: Уваров А.С.
  • 21.05.2011

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

Перед тем, как брать в руки мышку, следует разобраться с тем, каким образом реализован программный 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 и в самый конец допишем строку:

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

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

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

источник

Создание программного RAID массива в Ubuntu

Содержание

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

Небольшое вступление

Вообще говоря, существуют много способов сохранить нажитое непосильным путём. Самый ненадёжный из них, несмотря на многие заверения об обратном — это запись данных на CD или DVD диски. Если вы уж что-то хотите сохранить на дисках, то обязательно записывайте важную информацию как минимум на два диска разных производителей, кроме того, пишите на минимальной доступной скорости привода. Но всё равно вас это не спасёт, лет через 5 с большим шансом вы можете обнаружить, что оба ваших диска полностью или частично перестали читаться.

Утилита управления программными RA >

Создание массива

Если у вас ещё нет нужных разделов — можете создать их с помощью gparted или cfdisk , обе эти утилиты необходимо доустанавливать отдельно.

После того, как вы поменяете тип разделов, можно приступать непосредственно к созданию массива. Правда предварительно убедитесь, что разделы не смонтированы, и если что выполните для них unmount . Массив собирается командой

Вы должны увидеть примерно такой вывод:

Если вы хотите сразу же создать массив с отсутствующим диском (degraded), просто укажите вместо имени устройства слово missing . Учтите, что в RAID -5 может быть не более одного отсутствующего диска, в RAID -6 — не более двух, а в RAID -1 должен быть хотя бы один рабочий.

To be continued…

Изменение конфигурационного файла

Если вам вдруг потребуется после создания массива производить какие-нибудь операции с его блочным устройством, которые изменят UUID, то обязательно необходимо изменить конфигурационный файл /etc/mdadm/mdadm.conf .

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

Для получения текущей работающей конфигурации выполните

Эта команда выведет по строчке конфигурации для каждого массива. Именно такие строчки должны быть записаны в файле /etc/mdadm/mdadm.conf за исключением того, что в строчках в файле не должно быть параметра metadata .

Если реальная конфигурация не совпадает с той, которая записана в /etc/mdadm/mdadm.conf , то обязательно приведите этот файл в соответствие с реальной конфигурацией до перезагрузки, иначе в следующий раз массив не запустится.

Работа с программным RA >

LiveCD диски Ubuntu по умолчанию не включают в себя утилиту mdadm, поэтому чтобы работать с RAID массивами с LiveCD вам необходимо сначала её установить:

После этого нужно запустить все ваши массивы, сделать это можно командой

Проверить статус массивов можно как всегда с помощью файла /proc/mdstat :

Устранение возникающих проблем и восстановление массивов

Массив внезапно перешёл в состояние inactive

Иногда из-за каких-то сбоев оборудования массив переходит в состояние inactive безо всяких ошибок на дисках. При этом все диски помечаются как неактивные. Выглядит это примерно так:

Читайте также:  Установка карбюратора солекс 21073 на ауди

Ничего страшного в этом нет, вам надо всего лишь остановить массив командой

И затем пересобрать командой

Только потом не забудьте примонтировать файловую систему, при перезапуске массива это не будет сделано автоматически. Если у вас массив прописан в /etc/fstab , то для его примонтирования обычно достаточно выполнить команду

Критическая фатальная ошибка при полной работоспособности винчестеров

Если случилась такая беда, то:

В первую очередь посмотрите состояние всех компонент массива командой

Вместо sdc1 нужно поочерёдно поставить все компоненты. Обратите особое внимание на последний блок каждого вывода, вот, например, как выглядел один из выводов у меня:

Тут вроде всё нормально, а вот тут уже нет:

Собственно тут вас должен интересовать порядок следования компонент. В моём случае его можно «выцепить» из первого вывода и он выглядит так:

Теперь попробуйте собрать массив как описано в предыдущем параграфе. У меня не получилось:

Как видно, у меня mdadm считал, что есть только 2 рабочих компоненты массива, а изначально их было 4. И для работы необходимо иметь 3, поскольку у меня был RAID -5.

Итак, вы убедились, что возникла непоправимая ошибка mdadm, что при этом диски в порядке и в автоматическом режиме массив обратно не собрать. Что дальше?

Дальше — действовать на свой страх и риск! Собственно всё, что остаётся сделать — это заново создать массив поверх старого.

Самое главное — указать диски в той же последовательности, что и при первичном создании массива. Я эту последовательность выцепил из вывода команды

Если всё прошло успешно — ваш массив безо всяких ошибок запустится и вам останется только смонтировать его содержимое. Если не успешно — то увы, придётся вам нести диски в фирму восстановления данных.

источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Настраиваем программный RA >

  • Автор: Уваров А.С.
  • 13.08.2019

Программный RAID в Linux на основе MD-устройств успел отлично зарекомендовать себя в работе и пользуется заслуженной популярностью у администраторов, сочетая надежность и простоту создания и управления. Но со все более широким распространением UEFI-систем приходится сталкиваться с некоторыми особенностями. Многие, если есть такая возможность, переключают настройки в режим совместимости, но это неправильно, UEFI — это стандарт для современных устройств и поэтому надо учиться работе с ним.

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

Скажем больше, мы не видим никаких преимуществ у встроенных и недорогих контроллеров перед программной реализацией, особенно на простых массивах, не требующих сложных вычислений (RAID 1 и 10). А учитывая всю гибкость mdadm, программный RAID по многим параметрам будет выглядеть гораздо привлекательнее.

Конфигурация разделов Linux с UEFI

Для примера рассмотрим применяемую по умолчанию во многих дистрибутивах схему со всеми файлами в одном разделе. Однако это не означает, что вам следует применять именно ее, данная схема выбрана нами для простоты подачи материала.

EFI — он же ESP (EFI system partition) — специальный раздел с файловой системой FAT который содержит загрузчик, вызываемый микропрограммой UEFI, должен находиться в основной таблице разделов и не может располагаться в программных RAID-массивах, томах LVM или пулах ZFS. Данный раздел должен располагаться на каждом диске, с которого предусматривается загрузка.

Linux RAID — специальные разделы, из которых собирается программный RAID, в нашем случае используется один массив md0, располагающийся на двух дисках. Данные разделы имеют специальные заголовки, что позволяет даже при подключении к другой системе правильно определить их тип и собрать массив заново.

Swap — раздел подкачки, используется как механизм виртуальной памяти, а также для организации режима сна (в настольных системах). Некоторые современные системы не используют раздел подкачки (Ubuntu) используя для этой цели специальный файл в корневом разделе. Swap можно объединить в программный RAID, но смысла в этом немного, более того, при использовании отдельных swap-разделов системе будет доступен вдвое больший объем для подкачки.

Некоторые особенности Ubuntu Server 18.04

Начиная с версии 18.04 Ubuntu Server по умолчанию предлагается с новым инсталлятором Subiquity, который очень просто отличить по обновленному внешнему виду:

При использовании данного инсталлятора вы не сможете установить систему на программный RAID (как на системах с UEFI, так и без), установка закончится ошибкой. Поэтому для создания программного RAID следует использовать сборку с классическим установщиком, которую можно получить в разделе альтернативных загрузок.

Читайте также:  Установка подушек безопасности на ауди а6

Также легко можно отличить дистрибутивы по наименованию, образ с Subiquity содержит в наименовании слово live (ubuntu-18.04.3-live-server-amd64.iso).

Создание программного RAID при установке системы

Все дальнейшие действия мы будем производить на системе Debian 10, однако все сказанное будет справедливо для любой основанной на Debian системе, а с некоторыми поправками и для любого дистрибутива Linux.

Прежде всего создадим в начале каждого диска системный раздел EFI размером в 499 МБ (по умолчанию Debian и Ubuntu используют близкие к этому размеры разделов).

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

В итоге каждый диск содержит три раздела: ESP, будущие разделы Linux RAID и разделы подкачки. Порядок следования разделов и размер разделов для RAID должны быть одинаковы на обоих дисках. После того, как первоначальная разметка выполнена соберем программный RAID 1 из разделов для данных, в нашем случае sda2 и sdb2:

Теперь разметим созданный массив, создав там корневой раздел. Помните, что один программный массив Linux (md-устройство) может содержать только один раздел, если вам нужно несколько разделов, то потребуется создать несколько массивов.

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

Настройка загрузчика EFI и его копирование на второй раздел

Перед тем как настраивать загрузчик нам потребуется получить некоторые данные, в частности идентификаторы (UUID) разделов, их можно получить командой:

В полученном выводе прежде всего обратим внимание на идентификаторы EFI-разделов.

Они разные, в то время как UUID RAID-разделов совпадают. Чтобы понять, что это означает и какие может иметь последствия откроем /etc/fstab:

Как видим, разделы монтируются по идентификаторам и в случае выхода из строя первого диска вы не сможете загрузиться со второго, так как система не сможет смонтировать EFI-раздел. В некоторых источниках советуют изменить строку монтирования, используя вместо UUID явное указание устройства, например, /dev/sda1. Да, если мы отключим первый диск, то второй превратится в sda и система загрузится, но если диск выйдет из строя, физически определяясь в системе или на его месте будет новый диск без разметки, то такой фокус не сработает.

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

Для работы с разделами FAT32 нам потребуется установить дополнительные утилиты:

Где 2396BE56 — идентификатор первого EFI-раздела (/dev/sda1), его следует указывать в одну строку без пробелов и тире, а /dev/sdb1 — второй EFI раздел.

Теперь получим список текущих загрузочных записей EFI:

Здесь нас интересует запись под номером 5 — debian, которая отвечает за загрузку системы и указывает на первый жесткий диск. Запомните или запишите путь к EFI-образу для загрузки системы: \EFI\debian\shimx64.efi.

Создадим аналогичную запись для второго диска:

Немного поясним назначение ключей команды:

  • -c (—create) создать новую запись
  • -d (—disk) диск, на котором находится системный раздел EFI
  • -p (—part) номер раздела EFI
  • -L (—label) метка(наименование) для загрузочной записи
  • -l (—loader) путь образа EFI для загрузки

Так как наш EFI-раздел располагается в /dev/sdb1, то в опциях -d и -p указываем /dev/sdb и 1 соответственно, а в качестве пути указываем данные из первой загрузочной записи, которые мы получили на предыдущем шаге. Обратите внимание, что при указании пути к образу EFI используется обратный слеш.

Еще раз убедимся, что запись выполнена правильно:

Обе строки должны отличаться только меткой и GUID раздела (уникальный GPT-идентификатор, который позволяет микропрограмме UEFI найти нужный раздел).

Если обнаружена ошибка, то запись следует удалить и создать заново, для удаления используйте команду:

Ключ -b (—bootnum) указывает на номер записи, а -B ( —delete-bootnum) предписывает удалить ее.

Последним шагом скопируем содержимое загрузочного раздела с первого диска на второй, для этого смонтируем второй EFI-раздел:

И скопируем на него содержимое первого EFI-раздела:

После чего отмонтируем раздел:

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

источник

Добавить комментарий

Adblock
detector