Semenalidery.com

IT Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Soft raid linux

Системное администрирование Linux

2018-06-25 11:27:07 3757 1

Настройка программного RAID на Линукс

Массивы RAID были разработаны в целях повышения надежности хранения данных, увеличения скорости работы с дисками и для обеспечения возможности объединения нескольких дисков в один большой диск. Разные типы RAID решают разные задачи.

Рассмотрим основные виды RAID-массивов:

  • RAID 0 (Stripe) — Массив, в котором достугается максимальная производительность, но при этом минимальная отказоустойчивость. В этом режиме минимальное необходимое количество дисков — 2. Производительность повышается за счет поочередной записи или чтения с дисков, то есть при записи один блок данных пишется на один диск, а следующий блок данных пишется на другой диск и т.д., при этом при выходе из строя хотя бы одного диска в массиве, все данные будут утеряны. Пользователь получает диск с объемом, равным сумме объемов всех дисков в массиве;
  • RAID 1 (Mirror) — Массив зеркало, запись на все диски массива (обычно 2) идет синхронно, т.е. диски полностью дублируют друг друга. При этом при выходе из строя одного из дисков, информация сохраняется на другом. Пользователь получает в пользование объем самого малого диска в массиве;
  • RAID 10 — Комбинация RAID 0 и RAID 10 (RAID 0 из двух RAID 1), получаем высокую производительность и высокую отказоустойчивость, минус это дороговизна, минимум необхоодимо 4 диска, при этом полезный объем равен половине суьье всех объемов дисков в массиве;
  • RAID 5 — Массив использующий распределенное хранение данных аналогично RAID 0 + распределенное хранение кодов четности для восстановления данных при сбоях. По сути, является компромиссом между RAID0 и RAID1, обеспечивая достаточно высокую скорость работы при неплохой надежности хранения данных. При отказе одного диска из массива данные могут быть восстановлены без потерь в автоматическом режиме. Минимальное количество дисков для такого массива — 3.
  • JBOD — Последовательное объединение нескольких физических дисков в один логический, не влияет на производительность, но при этом надежность падает до отказа одного диска, возможно использование дисков разных размеров.

Существует еще много разных видов массивов дисков, но мы рассмотрели основные из них.

Теперь перейдем к настройке программного RAID на Линукс Ubuntu 16.04.

У нас в системе имеется 4 диска объемом по 10Гб, на них и будем реализовывать различные схемы массивов.

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

Для создания и управления массивами в линукс существует утилита mdadm, создадим массив RAID 0 из дисков sdb,sdc

sudo mdadm —create -v /dev/md0 —level=0 —raid-devices=2

Проверяем создание массива

Теперь создадим файловую систему на нашем массиве

sudo mkfs.ext4 /dev/md0

И смонтируем наш новый массив

sudo mount /dev/md0 /mnt/

Посмотрим, что получилось

Как видим у нас появилась файловая система с объемом равным объему обоих дисков.

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

sudo mdadm —detail —scan >> /etc/mdadm/mdadm.conf

После этого обновим initRAM

sudo update-initramfs -u

Ну и для того что бы наш массив автоматически был смонтирован при загрузке системы, добавим его в /etc/fstab

Если вы хотите удалить массив, то сначала его необходимо отмонтировать, а потом остановить и удалить

sudo umount /dev/md0

sudo mdadm —stop /dev/md0

sudo mdadm —remove /dev/md0

И еще можно забить их нулями, что бы стереть старую инфу

sudo mdadm —zero-superblock /dev/sdb

sudo mdadm —zero-superblock /dev/sdc

И обновляем initRAM

sudo update-initramfs -u

Создание RAID 1

Аналогично как и для RAID 0 создаем RAID 1 из двух дисков

sudo mdadm —create -v /dev/md0 —level=1 —raid-devices=2

Выдаст предупреждение, что если вы собираетесь использовать этот массив для хранения директории /boot, необходимо обеспечить что бы загрузчик системы мог работать с массивами.

Проверяем созданием массива

Как видим массив создан, но еще идет процесс синхронизации дисков, подождем когда процесс завершится.

Создадим файловую систему и смонтируем диск

sudo mkfs.ext4 /dev/md0

sudo mount /dev/md0 /mnt

И как и с RAID 0 обеспечим что бы наш RAID собирался автоматически при перезагрузке системы

sudo mdadm —detail —scan >> /etc/mdadm/mdadm.conf

sudo update-initramfs -u

Теперь давай те рассмотрим ситуацию, что наш диск вышел из строя и заменим его другим диском

Создадим файл на нашем массиве

dd if=/dev/zero of=/mnt/raid1 bs=1M count=100

Теперь отключим один из дисков от компьютера

Проверяем, что файлы на нашем массиве остались в порядке и не пропали

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

sudo mdadm —manage /dev/md0 —fail /dev/sdc

sudo mdadm —manage /dev/md0 —remove /dev/sdc

но в нашем случае диск просто был вынут, поэтому можно сразу заменять его новым диском sdd

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

sudo sfdisk -d /dev/sdb | sfdisk —force /dev/sdd

Добавляем новый диск в наш массив

sudo mdadm —manage /dev/md0 —add /dev/sdd

И снова дожидаемся пока данные на дисках будут синхронизованы

После окончания синхронизации

Создание RAID 5

Для RAID 5 возьмем три диска sdb, sdc, sdd

sudo mdadm —create -v /dev/md5 —level=5 —raid-devices=3

Восстанавливается RAID 5 отличается от RAID 1

Как видим после отключения одного из дисков массив ушел в положение inactive

sudo mdadm —stop /dev/md5

Пробуем пересобрать его

sudo mdadm —assemble —scan —force

Массив снова в положении active

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

Создание RAID 10

Для создания RAID 10 будем использовать 4 диска sdb,sdc,sdd,sde

sudo mdadm —create -v /dev/md0 —level=10 —raid-devices=4

Восстановление RAID 10, после сбоя диска, по-аналогии с RAID 5.

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

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

  • Главная
  • Настраиваем программный RAID на UEFI-системах в Debian и Ubuntu

Настраиваем программный RAID на UEFI-системах в Debian и Ubuntu

  • Автор: Уваров А.С.
  • 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. Данный раздел должен располагаться на каждом диске, с которого предусматривается загрузка.

Читать еще:  Ошибка доступа crc

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

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

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

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

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

Также легко можно отличить дистрибутивы по наименованию, образ с 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-образу для загрузки системы: EFIdebianshimx64.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-раздела:

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

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

Установка на Linux на RAID

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

Для создания RAID вам потребуются минимум два одинаковых жёстких диска. В этом руководстве мы покажем создание программного RAID 1 (зеркало) на двух жёстких дисках на примере дистрибутива Школьный Сервер. Создание RAID на других дистрибутивах аналогично.

Готовим Разделы для RAID

На этапе подготовка диска выберите пункт «Подготовить разделы вручную» и нажмите кнопку «Далее».

На следующем экране нам необходимо создать одинаковые разделы для RAID на обоих дисках. Для работы системы нам понадобиться два раздела на RAID: подкачка (swap) и корневая файловая система (/). Вы можете создать и другие разделы (например, для /var) способом, приведённым ниже. Примечание: если у вас на каждом диске есть один общий раздел, выберите диск и нажмите кнопку «Удалить».

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

Укажите размер раздела (для начала создадим swap размером 502 Мб) и тип раздела укажем «Linux RAID». Важно указать именно такой тип.

Аналогичным образом создадим ещё три раздела на дисках. При этом разделы на разных дисках должны совпадать по размеру.

Создание разделов в массиве RAID

Выберите в списке разделов пункт «RAID» и нажмите на кнопку «Создать RAID». Если такой кнопки нет, то вы не создали разделы с типом «Linux RAID».

В диалоге создания RAID выберите «MD-устройство уровня RAID1» и нажмите на кнопку OK.

Появится диалог указания разделов жёстких дисков для RAID-раздела. По умолчанию выбираются все разделы, поэтому снимите флажки со всех разделов, кроме sda1 и sdb1. Нажмите на кнопку OK.

Затем будет запрошен тип создаваемой файловой системы. Для swap выберите «Файловая система подкачки (swap) и нажмите на кнопку OK.

У нас создан один раздел в массиве RAID (md0). Теперь аналогично создадим второй раздел под корневую файловую систему. Для этого снова выберите пункт «RAID» и нажмите на кнопку «Создать RAID». В появившемся диалоге укажите «MD-устройство уровня RAID1» и нажмите на кнопку OK.

Читать еще:  R linux ubuntu

Так как у нас осталось два необъединённых раздела, просто нажмите на кнопку OK.

Для корневой файловой системы выберите тип «Файловая система Ext2/3» и нажмите на кнопку OK.

Для файловой системы Ext2/3 необходимо дополнительно указать точку монтирования. Для корневой файловой системы это «/» (предлагается по умолчанию). Нажмите на кнопку OK.

Поздравляем! Вы создали RAID! Теперь для продолжения установки нажмите кнопку «Далее». Будет запрошено подтверждение изменений. Нажмите на кнопку OK.

Установка загрузчика

Далее при установке будет ещё один момент, который необходимо учесть. Речь идёт про установку загрузчика операционной системы. Выберите «Раздел Linux (md1)» (это созданный нами на RAID раздел корневой файловой системы). После этого нажмите кнопку «Далее» и продолжайте установку как обычно.

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

Действия при выходе одного жёсткого диска из строя

Если один жёсткий диск вышел из строя, то загрузите операционную систему (она будет работать и на одном диске), зайдите под пользователем root и проделайте следующее:

Посмотрите, что сломалось:

Из вывода видно, что диск sdb недоступен: U_ показывает отсутствие второго раздела под RAID.

Подключаем диск и копируем таблицу разделов с диска sda на диск sdb. Также перечитаем скопированную таблицу разделов для ядра:

Добавляем разделы со второго диска к RAID-массиву:

Программный RAID в Linux с помощью mdadm

mdadm – утилита для работы с программными RAID-массивами в Linux. В статье мы рассмотрим, как работать с утилитой mdadm (multiple disks admin) для создания массива, добавления дисков, управления дисками, добавление hot-spare и много другой полезной информации.

Установка утилиты управления программным RAID — mdadm

Чтобы установить утилиту mdadm, запустите команду установки:

  • Для Centos/Red Hat используется yum/dnf: yum install mdadm
  • Для Ubuntu/Debian: apt-get install mdadm

В резульатте в системе будет установлена сама утилита mdadm и необходимые библиотеки:

Создание RAID из 2-х дисков

У меня на сервере установлены два дополнительных диска и я хочу содать на низ програмное зеркало (RAID1). Диски пустые, данные на них не писались. Для начала, нужно занулить все суперблоки на дисках, которые мы будем добавлять в RAID-массив:

# mdadm —zero-superblock —force /dev/vd

У меня два есть два чистых диска vdb и vdc.

Данный листинг означает, что ни один из дисков ранее не был добавлен в массив.

Чтобы собрать программный RAID1 из двух дисков в устройстве /dev/md0, используйтк команду:

# mdadm —create —verbose /dev/md0 -l 1 -n 2 /dev/vd

Где «-l 1» — это тип массива, в нашем случае RAID1

А «-n 2«- это количество дисков, которое добавляется в массив.

# mdadm —create —verbose /dev/md0 —level=0 —raid-devices=2 /dev/vdb /dev/vdc

RAID 5 из трех или более дисков:

# mdadm —create —verbose /dev/md0 —level=5 —raid-devices=3 /dev/vdb /dev/ vdс /dev/vdd

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

Теперь при просмотре информации о дисках, мы видим наш массив:

Создание файловой системы на RAID, монтирование

Чтобы создать файловую систему ext4 на нашем RAID1 массиве из двух дисков, используйте команду:

Создадим директорию backup и примонтируем к ней RAID устройство:

# mkdir /backup
# mount /dev/md0 /backup/

Массив смонтировался без ошибок. Чтобы не монтировать устройство каждый раз вручную, внесем изменения в fstab:

Просмотр состояния, проверка целостности RAID массива

Чтобы проверить целостность данных в массиве, используйте команду:

#echo ‘check’ > /sys/block/md0/md/sync_action

После чего, нужно посмотреть вывод файла:

Если в результате вы получаете 0, то с вашим массивом все в порядке:

Чтобы остановить проверку, используйте команду:

#echo ‘idle’ > /sys/block/md0/md/sync_action

Чтобы проверить состояние всех RAID -массивов доступны на сервере, используйте команду:

В листинге команды, видим информацию о нашем ранее созданном raid.

Более подробную информацию о конкретном raid-массиве, можно посмотреть командой:

Разберем основные пункты листинга команды:

  • Version – версия метаданных;
  • Creation Time – дата и время создания raid-массива;
  • Raid Level – уровень raid-массива;
  • Array Size – объем дискового пространства для raid-массива;
  • Used Dev Size – используемый объем для устройств;
  • Raid Device – количество дисков в raid-массиве;
  • Total Devices – количество добавленных в raid-массив дисков;
  • State – текущее состояние (clean – все ОК);
  • Active Devices — количество активных дисков в raid-массиве;
  • Working Devises — количество рабочих дисков в raid-массиве;
  • Failed Devices – количество устройств со сбоями в raid-массиве;
  • Spare Devices – количество запасных дисков в raid-массиве;
  • Consistency Policy — параметр задающий тип синхронизации после сбоя в raid-массиве, rsync— полная синхронизация после восстановления raid-массива (доступны режимы bitmap, journal, ppl);
  • UUID – идентификатор raid-массива

Краткую информацию можно посмотреть с помощью утилиты fdisk:

Восстановление RAID при сбое, замена диска

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

Из листинга команды, вы видим, что только один диск активен. Так же о проблеме говорит [U_]. Когда оба диска рабочие, вывод будет [UU].

Подробная информация о RAID-массиве также показывает, что естт проблемы:

State : clean, degraded – данная строка указывает на то, что диск в raid-массиве поврежден.

В нашем случае нужно заменить неисправный диск /dev/vdc. Для восстановления массива, нужно удалить нерабочий диск и добавить новый.

Удаляем неиспраный диск:

# mdadm /dev/md0 —remove /dev/vdc

Добавляем в массив новый диск :

# mdadm /dev/md0 —add /dev/vdd

Восстановление диска запустится автоматически после добавления нового диска:

rebuild Status : 69% complete — показывает текущее состояние восстановления массива.

spare rebuilding /dev/vdd — показывает какой диск добавляется к массиву.

После восстановления массива, листинг по дискам выглядит так:

Добавление и удаление дисков в RAID массив на Linux

Чтобы разобрать ранее созданный массив, нужно отмонтировать его :

И выполнить команду:

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

Чтобы собрать массив, который мы ранее разобрали вручную, запустите команду:

# mdadm —assemble —scan

Данная команда просканирует диски из разобранного или развалившегося RAID массива и по метаданным попробует собрать из них RAID.

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

# mdadm /dev/md0 —fail /dev/vdc

После чего диск можно будет удалить командой::

# mdadm /dev/md0 —remove /dev/vdc

Добавляется новый диск, так же как и в случае с нерабочим диском:

# mdadm /dev/md0 —add /dev/vdd

Добавление Hot-Spare диска в RAID массив

Вы можете добавит в массив hot-spare диск для горячей замены при выходе из строя одного из активных дисков. Добавьте свободный диск в нужный массив:

# mdadm /dev/md0 —add /dev/vdc

После чего проверив статус raid-массива, мы увидим данный диск как spare:

Чтобы проверить, сработает ли «горячая замена» диска, пометим любой из дисков как нерабочий и проверим статус raid-массива:

# mdadm /dev/md0 —fail /dev/vdb

После чего при проверке статуса массива, будет видно, что началась пересборка массива:

Диск /dev/vdb помечен как нерабочий, а hot-spare диск стал одним из активных дисков RAID и запустился процесс восстановления.

Чтобы добавить дополнительный рабочий диск в RAID, нужно выполнить два шага.

Добавить пустой диск массиву:

# mdadm /dev/md0 —add /dev/vdb

Теперь данный диск будет отображаться как hot-spare, чтобы сделать его рабочим, расширим raid-массив:

# mdadm -G /dev/md0 —raid-devices=3

После чего запустится процесс пересборки массива:

После выполнения пересборки, все диски стали активны:

Удаление массива

Если вы хотите безвозвратно удалить raid-массив, используйте следующую схему:

# umount /backup – отмонтируем массив от директории

# mdadm -S /dev/md0 — останавливаем RAID устройство

После чего очищаем все суперблоки на дисках, из которых он был собран:

Читать еще:  Ошибка 0 3 00

# mdadm —zero-superblock /dev/vdb
# mdadm —zero-superblock /dev/vdc

Mdmonitor: Мониторинг состояния RAID и email оповещения

Для мониторинга состояния RAID массива можно использовать службу mdmonitor. Сначала нужно создать файл /etc/mdadm.conf с конфигурацией текущего массива:

# mdadm –detail –scan > /etc/mdadm.conf

В конце файла /etc/mdadm.conf добавьте email адрес администратора, на который нужно слать оповещения о проблемах с RAID:

Останолось перезапустить службу mdmonitor через systemctl:

# systemctl restart mdmonitor

После этого система будет оповещать вас по email об ошибках в mdadm и неисправных дисках.

RAID массив в состоянии inactive

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

В этом случае нужно остановить массив командой:

# mdadm —stop /dev/md0

И пересобрать его:

# mdadm —assemble —scan –force

Если массив прописан в /etc/fstab, нужно перемонтировать его командой:

Утилита mdadm упрощает работу с raid-массивами в Linux. В данной статье я описал основные моменты работы с данной утилитой, а также затронул самые частые вопросы, которые возникают при работе с raid-массивами через утилиту mdadm.

Soft raid linux

Сегодня, не приходя в сознание, поставил на виртуальную машину с 2мя HDD SuSE Enterprise Server 10.1.
Завтра буду пробовать на реальном компе. Когда немного разберусь, постараюсь описать порядок установки/восстановления.

На данный момент достижения таковы:

Загрузил инсталлятор.
Инсталлятором создал на обоих дисках по 1му основному разделу типа Linux RAID для системы и еще по 1 основному типа Linux RAID для свопа.
Запустил создание RAID1, добавил оба системных раздела в md0 и сказал монтировать как /.
Снова запустил создание RAID1, добавил оба своповых раздела в md1 и сказал монтировать как swap.
Сказал поставить GRUB в MBR.
Все, линукс установился и заработал.

Отключил в БИОСе 0й винт. С первого виртуальный комп не загрузился.
Включил 0й обратно, загрузился, вручную поставил GRUB на 1й диск.
Выключил 0й в БИОСе, загрузился с первого.
Убил нулевой, снова загрузился с первого.
Создал новуй нулевой, снова загрузился с первого. RAID на него — 0 внимания.
Скопировал на 0й таблицу разделов с первого, поставил вручную GRUB, восстановил по очереди md0 и md1 с помощью mdadm.
Включил загрузку с 0го — загрузился.

У меня появились вопросы, может они и глупые, но прокомментируйте, если несложно:

1: Можно ли добиться автоматической установки загрузчика на оба диска? Поможет ли в этом деле Lilo?
2: Можно ли добиться автоматического перестроения массива после подключения нового диска?
3: Нужно ли рэйдить своп?

И это они называют удобнее чем Intel Matrix RAID? Не понимаю.

цитата: Shurick:
На данный момент достижения таковы: Ничего не понял. Можно вместо слов — команды?

цитата: 1: Можно ли добиться автоматической установки загрузчика на оба диска? Поможет ли в этом деле Lilo? Нет — для GRUB (хотя есть патчи), да — для Lilo.
цитата: 2: Можно ли добиться автоматического перестроения массива после подключения нового диска? Ни одна из известных мне реализаций программного RAID это не делает. Вам всегда надо сказать, что вы заменили диск. Разница только в количестве слов.
цитата: 3: Нужно ли рэйдить своп? Естественно.

цитата: И это они называют удобнее чем Intel Matrix RAID? Не понимаю. Халява, сэр .

arvidjaar
Ничего не понял. Можно вместо слов — команды?
Большая часть операций делалась через графическое меню инсталлятора, так что не смогу пока команды написать.
Когда разберусь со всеми вариантами установки/восстановления, опишу все, что смогу.

Как я понял, Lilo можно будет установить сразу на 2 харда при установке из дистрибутива.
Но если придется заменить один из хардов на новый, то на новый Lilo все равно нужно будет поставить вручную? Или как он туда переносится?

Shurick:
Как я понял, Lilo можно будет установить сразу на 2 харда
да

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

Но если придется заменить один из хардов на новый, то на новый Lilo все равно нужно будет поставить вручную? Или как он туда переносится?
Как минимум, придется прописать на новый диск MBR если вы хотите, чтобы с него вообще можно было загрузиться. Что касается как он туда переносится — я надеюсь, вы знаете, как устроен RAID1?

arvidjaar
я надеюсь, вы знаете, как устроен RAID1?
Да, примерно догадываюсь.

Описанные в сети процедуры восстановления винта при наличии GRUB включают следующие пункты:
1. Перенос таблицы разделов с рабочего винта на новый (пусть новый будет sdb):
sfdisk -d /dev/sda | sfdisk —force /dev/sdb
2. С помощью mdadm восстановить все md* поочереди
3. Вручную поставить GRUB в MBR. Причем можно ли это сделать скриптом, я пока не понял. Во всех инструкциях, в том числе и в предложенной Вами, нужно запустить grub и дать ему несколько команд:
[root@myhost]# grub
grub> device (hd0) /dev/sdb # Set (hd0) to be the 2nd drive for subsequent commands
grub> root (hd0,0) # Root device (with /boot/grub) is 1st partition of 2nd drive
grub> setup (hd0) # Write the MBR on the 2nd drive
grub> quit

В случае Lilo какой порядок действий? Он проще?

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

Итак, пункт первый: Установка.

С помощью установщика создаем необходимое количество разделов типа Linux RAID на диске «а».
Точно такие же разделы с точностью до цилиндра создаем на диске «b».
Далее объединяем пары разделов одинакового размера в массивы md0, md1 и т.д. и указываем им точки монтирования.
У меня получилось 3 пары разделов — корневая файловая система «/», swap и tmp.
В настройках загрузчика ОС выбираем GRUB с установкой в MBR.

Жмем на установку, дожидаемся завершения — и все готово. Единственная недоработка на данный момент — линукс в случае аварии не загрузится с диска «b», потому что GRUB установился только на диск «a». Но эту недоработку мы тут же устраняем запуском скрипта, который описывается ниже.

Пунк второй: the Скрипт.

Дабы не забыть, что делать в критический момент, т.е. при замене дохлого диска на новый, я написал скрипт, который:
— Копирует на указанный диск таблицу разделов;
— Подключает вновь появившиеся разделы к массивам /dev/md* и копирует на них информацию;
— Устанавливает GRUB на указанный диск.

Скрипт рассчитывает на то, что в файле /proc/mdstat информация записана в том же виде, что и у меня:

Personalities : [raid1] [raid0] [raid5] [raid4] [linear]
md1 : active raid1 hdb5[0] hda5[1]
240832 blocks [2/2] [UU]

md0 : active raid1 hdb1[0] hda1[1]
3220928 blocks [2/2] [UU]

md2 : active(auto-read-only) raid1 hdb6[0] hda6[1]
730816 blocks [2/2] [UU]

Из приведенного файла берется информация о разделах md* и соответствующих им hd*/sd*
Если формат выводимой информации в другом дистрибутиве будет сильно отличаться от моего, скрипт может не заработать.

#!/bin/bash
# hdname = имя диска. hd для PATA, sd для SATA
hdname=hd

echo; echo «Укажите восстанавливаемый диск ‘a’ или ‘b'»
read key

case «$key» in
[a] ) srcdisk=»b»; destdisk=»a»;;
[b] ) srcdisk=»a»; destdisk=»b»;;
* ) echo «Неправильный выбор»; exit 0;;
esac

# копируем таблицу разделов на восстанавливаемый диск
sfdisk -d /dev/$hdname$srcdisk | sfdisk —force /dev/$hdname$destdisk
sleep 3

# восстановим все сконфигурированные RAID разделы (/dev/md*)
mds=`awk ‘/md/ ‘ /proc/mdstat`
for i in $mds
do
md=`echo $i | awk ‘‘`
part=`echo $i | awk ‘‘`
mdadm -a /dev/$md /dev/$hdname$destdisk$part
mdadm —wait /dev/$md
done
sleep 3

Ссылка на основную публикацию
Adblock
detector