Все статьи, Linux сервер, Инструменты и техники для хостинга

Замена диска в Software RAID1 (Linux)

Замена диска в Software RAID1 (Linux)

В данной статье мы опишем действия, необходимые при замене неисправного жёсткого диска в программном RAID 1-массиве на примере различных операционных систем, таких как Linux: (CentOS, Debian, Ubuntu).

Определение проблемы

Для начало разберем проблему. Имеется физический сервер с установленным на нём CentOS 7, в котором 2 HDD диска по 2 ТБ: /dev/sda, /dev/sdb. Эти диски собраны в софтварный RAID1. Предположим, что вышел из строя диск — sdb. Проверив диск в массиве, вы увидите следующую картину:

# cat /proc/mdstat

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux

У нас имеется 3 массива:

# /dev/md125 – /boot

# /dev/md126 – swap

# /dev/md127 – /

В данном случае мы можем наблюдать, что диски действительно собраны в RAID1. Когда массив в порядке, то он отображается как [UU]. Так как диски зеркальны, то каждый раздел объединяет между собой и назван по своему. Например: md125 состоит из sda2,sdb2. Md125 в данном случае это – /boot. Более подробную информацию о разбивки дисков вы можете узнать, командой:

# lsblk

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux2

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

# mdadm –detail /dev/md125

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 3

Удаление поврежденного диска

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

# mdadm /dev/md125 -r /dev/sdb2

# mdadm /dev/md126 -r /dev/sdb1

# mdadm /dev/md127 -r /dev/sdb3

В некоторых случаях, жёсткий диск может быть повреждён частично. Пример: статус [U_] у массива /dev/md127, а у других массивов статус [UU]. В данном случае нам необходимо указать только одну команду:

# mdadm /dev/md127 -r /dev/sdb3

Следовательно остальные разделы будут отображены, как устройство /dev/sdb1 и /dev/sdb2 — в порядке. После попытки удалить раздел из массива, будет отображаться ошибка.

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

# mdadm –manage /dev/md125 –fail /dev/sdb2

# mdadm –manage /dev/md126 –fail /dev/sdb1

Тем самым вы измените их статус на [U_]. Далее провести процедуру, что и с массивом md127.

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

# mdadm –detail /dev/md125

# mdadm –detail /dev/md126

# mdadm –detail /dev/md127

# cat /proc/mdstat

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

П.С. Сервер будет остановлен на некоторое время!

 Подготовка нового диска

Определение таблицы разделов(GPT, MBR) и перенос её на новый диск.

Новый диск, будучи в массиве должен иметь абсолютно одинаковое разбиение. В зависимости от используемых типов таблиц разделов (GPT/MBR), нужно использовать соответствующие утилиты для копирования таблиц разделов.

GPT – sgdisk

MBR – sfdisk

Так как у нас диски HDD по 2ТБ, то мы будем использовать утилиту sgdisk. Можно также увидеть, что именно мы будем копировать, на второй диск. Используйте команду:

# gdisk -l /dev/sda

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 4

Утилиту можно скачать, используя репозиторий операционной системы. В зависимоти от ОС, необходимо указать корректный менеджер пакетов.

CentOS: yum install sgdisk/sfdisk

Debian/Ubuntu: apt install sgdisk/sfdisk

Создание и восстановление резервного копирования MBR/GPT

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

Для MBR

Создать:

# sfsdisk –dump /dev/sdx > sdх_parttable_mbr.bak

Восстановить:

# sfdisk /dev/sdb < sdх_parttable_mbr.bak

Для GPT

Создать:

# sgdisk –backup=sdх_parttable_gpt.bak /dev/sda

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 5

Восстановить:

# sgdisk –load-backup=sdх_parttable_gpt.bak /dev/sdb

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 6

sda – диск, с которого создаётся копия.

sdb — диск, на который загружается копия таблицы.

Добавление жёсткого диска в массив после замены

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

# mdadm /dev/md125 -a /dev/sdb2

# mdadm /dev/md126 -a /dev/sdb1

# mdadm /dev/md127 -a /dev/sdb3

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

# cat /proc/mdstat

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 7

Далее перезагружаем сервер и видим, что все разделы смонтированы правильно:

# lsblk

Замена диска в Software RAID1 (Linux) zamena diska v software raid 1 linux 8

Заключение

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