Программный RAID mdadm и с чем его едят

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

Что такое RAID?

RAID (Redundant Array of Independent Disks) – это технология объединения нескольких физических дисков в один логический массив для повышения производительности, надежности или обеих этих характеристик. Существует множество различных уровней RAID, каждый из которых имеет свои преимущества и недостатки. Рассмотрим наиболее распространенные:

  • RAID 0 (Striping): Данные распределяются по всем дискам массива. Это обеспечивает высокую скорость чтения/записи, но не предоставляет никакой защиты от потери данных. При отказе одного из дисков теряется весь массив.
  • RAID 1 (Mirroring): Данные зеркалируются на все диски в массиве. Это обеспечивает высокую надежность, так как при отказе одного из дисков данные остаются доступными на других. Однако, полезный объем массива равен объему наименьшего диска и не увеличивается с добавлением новых дисков.
  • RAID 5 (Striping with Parity): Данные распределяются по всем дискам массива, а также вычисляется контрольная сумма (паритет) для каждого блока данных. Паритет распределяется по всем дискам, что позволяет восстановить данные в случае отказа одного из дисков. Требует минимум 3 диска.
  • RAID 6 (Striping with Double Parity): Аналогичен RAID 5, но использует двойной паритет, что позволяет пережить отказ двух дисков. Требует минимум 4 диска.
  • RAID 10 (Mirroring and Striping): Комбинация RAID 1 и RAID 0. Данные одновременно зеркалируются и распределяются по дискам, обеспечивая высокую производительность и надежность. Требует четное количество дисков (минимум 4).

Установка mdadm

В большинстве дистрибутивов Linux mdadm уже установлен. Если это не так, установите его с помощью менеджера пакетов вашей системы:

sudo apt install mdadm  # Debian/Ubuntu
sudo yum install mdadm  # CentOS/RHEL
sudo pacman -S mdadm # Arch Linux

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

Перед созданием массива убедитесь, что все диски имеют одинаковый размер. Это особенно важно для RAID 5 и выше. Для примера рассмотрим создание RAID 5 массива из трех дисков /dev/sda1, /dev/sdb1 и /dev/sdc1.

sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sda1 /dev/sdb1 /dev/sdc1
  • /dev/md0: Имя создаваемого RAID массива.
  • --level=5: Уровень RAID (в данном случае RAID 5).
  • --raid-devices=3: Количество дисков в массиве.
  • /dev/sda1 /dev/sdb1 /dev/sdc1: Список дисков, которые будут включены в массив.

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

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

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

sudo mdadm --add /dev/md0 /dev/sdd1
  • /dev/md0: Имя RAID массива.
  • /dev/sdd1: Диск, который будет добавлен в массив. Убедитесь, что диск имеет тот же размер, что и остальные диски в массиве.

После добавления диска mdadm начнет процесс синхронизации массива. Этот процесс также может занять некоторое время.

Удаление диска из RAID массива

Перед удалением диска из массива необходимо пометить его как неисправный или пересоздать массив с меньшим количеством устройств. Простое удаление диска может привести к потере данных!

sudo mdadm --remove /dev/md0 /dev/sda1
  • /dev/md0: Имя RAID массива.
  • /dev/sda1: Диск, который будет удален из массива.

После удаления диска mdadm начнет процесс пересоздания массива с оставшимися устройствами. Этот процесс также может занять некоторое время.

Просмотр информации о RAID массиве

Для просмотра состояния массива и информации о его компонентах используйте команду --detail:

sudo mdadm --detail /dev/md0

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

Мониторинг RAID массива

Для отслеживания состояния массива можно использовать команду mdstat:

cat /proc/mdstat

Эта команда отображает текущий статус всех RAID массивов в системе, включая информацию о процессе синхронизации и наличии неисправных дисков. Также рекомендуется настроить систему мониторинга (например, Zabbix или Nagios) для автоматического оповещения об изменениях состояния массива.

Автоматическая сборка массива при загрузке системы

Для того чтобы массив автоматически собирался при загрузке системы, необходимо добавить его в файл конфигурации /etc/mdadm/mdadm.conf. Вы можете создать этот файл вручную или использовать команду mdadm --detail --config=filename /dev/md0, которая сгенерирует конфигурационный файл на основе текущего состояния массива.

После редактирования файла конфигурации обновите кэш mdadm:

sudo update-initramfs -u

Заключение

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

Метки: