как проверить состояние raid массива linux

Содержание

Как можно узнать состояние Raid в Linux Debian

Если вы хотите посмотреть состояние рэйда в Линуксе, то для этого есть одна очень хорошая команда:

При ее вводе вы получите следующий результат:

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

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

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]

Итак, md0, md1, md2 и далее означают RAID массивы, то есть каждый раздел имеет свой собственный рейд. С этим думаю тоже понятно. Хотя фрибсд часто удивляются и говорят, что создать один рейд и потом его резать на слайсы гораздо логичнее.

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

md0 : active raid1 sda1[2] sdb1[1]
33553336 blocks super 1.2 [2/2] [UU]

md0 означает рейд с названием мд0, далее написано его состояние (мы видим что оно active) и видим тип рейда (raid1 — зеркальный). Физические диски в линуксе имеют обозначение sda, sdb, sdc и так далее, а логические разделы на них соответственно sda1, sda2 и так далее.

Мы видим в данном рейде sda1 и sdb1, то есть по одному логическому разделу с каждого из дисков,что правильно.

Далее видим количество блоков (их 33553336 blocks), что значит, честно говоря, не знаю, на деле мы видим в скобках сколько дисков из скольких рабочие (в данном случае видим 2 из 2, что есть хорошо).

Ну и последняя часть, где мы видим две [UU], показывает, какой из дисков в каком состоянии. Каждая буква У обозначает один физический диск и на картинке хорошо видно, что те рейд массивы, которые еще не собрались, выглядят иначе.

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

Надеюсь, данная информация вам поможет лучше освоить Линукс, ведь сила консоли известна всем!

Источник

OpenSource в заметках

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

Чтобы получить подробную информацию, а также узнать, в каком состоянии находится массив, можно воспользоваться опцией —detail из режима misc утилиты mdadm. Ниже предоставлен пример вывода для массива RAID-1, состоящего из трёх дисков, который мы создавали в предыдущей заметке:

Как видим, все три устройства являются активными и синхронизированными, иными словами всё хорошо. Теперь давайте представим (к сожалению, у меня нет возможности физически сломать одно из устройств, входящих в рассматриваемый массив), что один из дисков вышел из строя (вспомним, что для RAID-1/5/6 это допустимо). В случае «железных» проблем драйвер md автоматически пометит диск как сбойный и исключит его дальнейшее использование в массиве; в нашем же тестовом случае мы сделаем это программно. Итак, сделаем устройство /dev/sdc сбойным:

И посмотрим, что изменилось:

Первое, что видим: массив стал неполным (degraded). хотя и продолжает функционировать (clean) :

Сразу же оцениваем ситуацию. Вместо трёх активных устройств у нас осталось всего два:

и один диск сбойный:

В самом конце mdadm любезно предоставляет подробную информацию об устройствах, входящих массив, отметив что второй по счёту диск был удалён:

а после — информацию об удалённом диске:

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

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

Если всё в порядке, драйвер md тут же приступит к операции восстановления массива до «полного» состояния путём синхронизации данных на вернувшийся диск:

И, в случае успешного восстановления, массив вернётся к своему нормальному состоянию, которое было приведено в начале заметки.

Если же устройство, которое вышло из строя, к жизни вернуть не представляется возможным, то после замены его новым, вместо опции —re-add следует использовать опцию —add:

Мониторинг

Вопрос, который возникает в первую очередь: а как, собственно, администратору узнать о том, что с массивом что-то неладно? Не заглядывать же постоянно в логи системы! Для целей мониторинга и оповещения о событиях, среди режимов работы утилиты mdadm предусмотрен режим monitor, позволяющий в качестве средств оповещения использовать как традиционный syslog, так и отправку уведомлений почтой. В этом режиме утилита, как правило, работает в режиме демона и запускается init-сценария во время старта системы.

В частности в Ubuntu/Debian запускающий сценарий называется mdadm и по-умолчанию включён. Если вы хотите получать уведомления не только в syslog, но и электронной почтой, добавьте исправьте строку в /etc/default/mdadm:

и перезапустите демон:

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

Если же нужно, чтобы mdadm запустилась в режиме демона и не занимала консоль, просто добавьте опцию —daemonize:

Источник

Программный raid в Linux

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

Для создания RAID массивов используются аппаратные специальные контроллеры. Однако создать RAID массив можно и без такого контролера. Такие массивы называются программными. В этой статье мы рассмотрим как создать программный RAID Linux.

Что такое RAID

Аббревиатура RAID расшифровывается как Redundant Array of Inexpensive Disks. С помощью этой технологии вы можете превратить несколько реальных жестких дисков в один виртуальный диск с увеличенным объемом и скоростью передачи данных. Но объем полученного диска и параметры его работы уже зависят от выбранного режима работы RAID. Доступны такие режимы:

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

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

Шаг 1. Установка mdadm

Для управления программными RAID массивами в Linux используется утилита mdadm. Для того чтобы установить её в Ubuntu или Debian выполните такую команду:

sudo apt install mdadm

Для установки утилиты в CentOS/Fedora/RedHat необходимо выполнить:

sudo yum install mdadm

Шаг 2. Подготовка дисков

Посмотреть список дисков, подключённых к системе можно с помощью команды lsblk:

В этой статье я покажу как объединить три диска в RAID на примере дисков /dev/sda, /dev/sdb и /dev/sdc. Сначала необходимо определиться стоит ли размещать RAID непосредственно на диски или на разделы. Лучше выбрать разделы, так как это дает больше гибкости и безопасности. Во первых, операционная система может перезаписать суперблок RAID если он размещён прямо на диске. Во вторых, если вы выделяете весь диск под RAID, то у вас могут возникнуть проблемы при замене диска. Диски одинакового объема, обычно, немного отличаются у разных производителей. Поэтому для замены вам придется искать точно такой же диск с точно таким же реальным объемом. Если же у вас будет раздел, вы просто сможете создать раздел нужного объема.

Сначала нужно создать таблицу разделов на всех выбранных дисках:

sudo parted /dev/sda mklabel msdos
sudo parted /dev/sdb mklabel msdos
sudo parted /dev/sdc mklabel msdos

Если на диске уже существует таблица разделов программа предупредит о том, что создание новой сотрёт все данные с диска. После создания таблицы разделов следует создать по разделу на каждом диске. Например, создадим разделы размером 460 гигабайт. Для этого можно воспользоваться той же командой parted:

sudo parted /dev/sda mkpart primary ext4 2048 460Gb
sudo parted /dev/sdb mkpart primary ext4 2048 460Gb
sudo parted /dev/sdc mkpart primary ext4 2048 460Gb

Теперь диски готовы к размещению на них RAID:

Шаг 3. Создание RAID 0

После выполнения этой команды вы увидите раздел raid в lsblk. С этим разделом можно работать как с любым обычным разделом в вашей системе.

Шаг 4. Тестирование RAID 0

Давайте для примера отформатируем полученный раздел в файловую систему Ext4, смонтируем и попробуем записывать туда файлы:

Затем можно тестировать скорость с помощью dd:

sudo dd if=/dev/zero of=/mnt/file bs=1G count=5

Как видите, при записи 5 Гб данных мы получаем скорость 400 Мб/сек, это уже на уровне обычного SSD.

Шаг 5. Информация о RAID

Найти информацию обо всех созданных в системе RAID массивах вы можете в файле /proc/mdstat:

Именно так можно посмотреть RAID Linux. Посмотреть более детальную информацию о массиве /dev/md0 можно с помощью самой утилиты mdadm:

Здесь в том числе отображается состояние RAID Linux. Посмотреть детальную информацию о каждом устройстве, которое входит в RAID можно с помощью опции —examine:

Шаг 6. Сохранение RAID массива

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

Затем нужно пересоздать initramfs с поддержкой этого массива:

С полученным массивом можно обращаться как с обычным разделом диска. Например, для того чтобы автоматически монтировать его в систему добавьте такую строчку в /etc/fstab:

/dev/md0 /mnt/ ext4 defaults 0 0

На этом создание raid массива linux завершено.

Шаг 7. Переименование RAID массива

Если вы не выполните предыдущий пункт и перезагрузите компьютер, то можете получить RAID массив с именем md127 вместо md0, такое имя также может быть присвоено второму RAID массиву. Для того чтобы переименовать массив, его придется пересобрать. Для этого сначала остановите существующий массив:

Затем выполните команду переименования. Синтаксис у неё такой:

После этого следует повторить предыдущий шаг для уже правильного сохранения RAID устройства.

Шаг 8. Удаление RAID массива

Если вы не хотите чтобы ваши диски и дальше были объединены в RAID, его можно удалить. Для этого выполните такую команду:

Она удалит все метаданные с дисков /dev/md0. Дальше останется только удалить или закомментировать секцию данного RAID массива в /etc/mdadm/mdadm.conf

sudo vi /etc/mdadm/mdadm.conf

Шаг 10. Создание массива RAID 1

Теперь вы знаете как создать raid linux на примере RAID 0. Давайте ещё разберемся с RAID 1. Для создания RAID 1 используется такая же команда как и для RAID 0, но указывается другой уровень работы массива:

Затем вы можете убедится что RAID создан посмотрев информацию о нём:

Ну и с помощью lsblk можно оценить размер устройства:

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

Скорость записи данных такая же как и у одного диска. Это цена сохранности данных. Если вы отключите один из дисков, то все данные всё равно будут вам доступны.

Выводы

В этой статье мы рассмотрели как создать программный RAID в Linux. Как видите здесь нет ничего очень сложного. Может и программный RAID не такой производительный, как аппаратный, зато полностью решает задачи объединения дисков.

Источник

Работа с mdadm в Linux для организации RAID

mdadm — утилита для работы с программными RAID-массивами различных уровней. В данной инструкции рассмотрим примеры ее использования.

Установка mdadm

Утилита mdadm может быть установлена одной командой.

Если используем CentOS / Red Hat:

Если используем Ubuntu / Debian:

apt-get install mdadm

Сборка RAID

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

Подготовка носителей

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

* в данном примере мы зануляем суперблоки для дисков sdb и sdc.

Если мы получили ответ:

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

Далее нужно удалить старые метаданные и подпись на дисках:

Создание рейда

Для сборки избыточного массива применяем следующую команду:

Мы должны увидеть что-то на подобие:

mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store ‘/boot’ on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
—metadata=0.90
mdadm: size set to 1046528K

Также система задаст контрольный вопрос, хотим ли мы продолжить и создать RAID — нужно ответить y:

Continue creating array? y

Мы увидим что-то на подобие:

mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

. и находим информацию о том, что у наших дисков sdb и sdc появился раздел md0, например:

.
sdb 8:16 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
sdc 8:32 0 2G 0 disk
??md0 9:0 0 2G 0 raid1
.

* в примере мы видим собранный raid1 из дисков sdb и sdc.

Создание файла mdadm.conf

В файле mdadm.conf находится информация о RAID-массивах и компонентах, которые в них входят. Для его создания выполняем следующие команды:

echo «DEVICE partitions» > /etc/mdadm/mdadm.conf

DEVICE partitions
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=1.2 name=proxy.dmosk.local:0 UUID=411f9848:0fae25f9:85736344:ff18e41d

* в данном примере хранится информация о массиве /dev/md0 — его уровень 1, он собирается из 2-х дисков.

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

Создание файловой системы для массива выполняется также, как для раздела:

* данной командой мы создаем на md0 файловую систему ext4.

Примонтировать раздел можно командой:

* в данном случае мы примонтировали наш массив в каталог /mnt.

Чтобы данный раздел также монтировался при загрузке системы, добавляем в fstab следующее:

/dev/md0 /mnt ext4 defaults 1 2

Для проверки правильности fstab, вводим:

Мы должны увидеть примонтированный раздел md, например:

/dev/md0 990M 2,6M 921M 1% /mnt

Информация о RAID

Посмотреть состояние всех RAID можно командой:

В ответ мы получим что-то на подобие:

md0 : active raid1 sdc[1] sdb[0]
1046528 blocks super 1.2 [2/2] [UU]

* где md0 — имя RAID устройства; raid1 sdc[1] sdb[0] — уровень избыточности и из каких дисков собран; 1046528 blocks — размер массива; [2/2] [UU] — количество юнитов, которые на данный момент используются.
** мы можем увидеть строку md0 : active(auto-read-only) — это означает, что после монтирования массива, он не использовался для записи.

Подробную информацию о конкретном массиве можно посмотреть командой:

* где /dev/md0 — имя RAID устройства.

Version : 1.2
Creation Time : Wed Mar 6 09:41:06 2019
Raid Level : raid1
Array Size : 1046528 (1022.00 MiB 1071.64 MB)
Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Wed Mar 6 09:41:26 2019
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0

Consistency Policy : resync

Name : proxy.dmosk.local:0 (local to host proxy.dmosk.local)
UUID : 304ad447:a04cda4a:90457d04:d9a4e884
Events : 17

Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc

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

Также, информацию о разделах и дисковом пространстве массива можно посмотреть командой fdisk:

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Создание файловой системы на 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-массиве, можно посмотреть командой:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Все диски помечаются как неактивные, но ошибок на дисках нет.

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

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

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

Источник

Операционные системы и программное обеспечение