Версия ПО RAIDIX
| Products | RAIDIX image version |
Применимые продукты:
|
Применимые версии:
|
При установке системы может создаваться или не создаваться раздел /var в зависимости от размера системного диск. Если размер системного диска более 32 ГБ то в инструкции по установке создается раздел /var, что добавляет дополнительные шаги но они такие же, что и в рассматриваемом примере.
Описание задачи
В данной статье рассматривается вариант с конфигурацией UEFI и системным диском 32GB, построенном на двух физических дисках 32GB в программном зеркале. В таком случае будут иметься разделы / и UEFI и не будет раздела /var.
Пошаговая инструкция
Для выполнения команд необходимо использовать права доступа root.
Возможные варианты неисправности системного диска
Неисправности системного диска, когда может понадобиться восстановление разделов могут включать в себя следующие случаи:
-
с разрушением данных на файловой системе раздела;
-
с ошибочным статусом раздела;
-
с неисправностью диска но при этом он виден в системе;
-
когда диск стал не виден в системе;
-
другие варианты.
Поиск неисправного диска или раздела
- Найдите имена устройств зеркал разделов:
lsblk
Пример вывода, если все диски и разделы исправны
# lsblk
sda 8:160 0 32G 0 disk
|-sda1 8:161 0 201M 0 part
| `-md126 9:126 0 201M 0 raid1 /boot/efi
`-sda2 8:162 0 31.8G 0 part
`-md127 9:127 0 31.8G 0 raid1 /
sdb 8:176 0 32G 0 disk
|-sdb1 8:177 0 201M 0 part
| `-md126 9:126 0 201M 0 raid1 /boot/efi
`-sdb2 8:178 0 31.8G 0 part
`-md127 9:127 0 31.8G 0 raid1 /
Из вывода видно, что из разделов sda1 и sdb1 собран программный RAID md126, а из sda2 и sdb2 собран программный RAID md127.
- Уточните конфигурацию программного RAID:
cat /etc/mdadm.conf
Пример вывода
# cat /etc/mdadm.conf
# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/boot_efi level=raid1 num-devices=2 UUID=086a1d8f:7a265637:23554441:7bb5d4c1
ARRAY /dev/md/root level=raid1 num-devices=2 UUID=e6dbc6b2:d90e5224:853d7e6b:9ef58161
- Получите данные о состоянии программных RAID по найденным выше именам:
mdadm -D <RAID-NAME>
<RAID-NAME> – имя программного RAID. В описанном случае /dev/md126 и /dev/md127.
Пример
# mdadm -D /dev/md126
# mdadm -D /dev/md127
Пример вывода:
-
- Когда системный диск выглядит как исправный, но требуется его замена, то разделы будут иметь статус active (столбец State):
- …
- State : clean
- …
- Number Major Minor RaidDevice State
- 0 8 161 0 active sync /dev/sdb1
1 8 177 1 active sync /dev/sda1
-
- Когда один из разделов или несколько разделов на одном из системных дисков имеет статус faulty (столбец State):
- …
- State : active, degraded
- …
- Number Major Minor RaidDevice State
- 0 8 161 0 faulty /dev/sdb1
1 8 177 1 active sync /dev/sda1
-
- Когда один из системных дисков недоступен для ввода/вывода:
- …
- State : active, degraded
- …
- Number Major Minor RaidDevice State
- 1 8 177 0 active sync /dev/sda1
— 0 0 1 removed
В случае если разделы программного RAID имеют статус:
-
active или faulty, то перед заменой системного диска нужно удалить разделы данного диска из программных зеркал;
-
removed, то перед заменой системного диска предварительное действие по удалению разделов из зеркал не требуется.
Изменение статуса разделов неисправного диска с active или faulty на removed
Например из-за SMART ошибок диск требует замены, но разделы диска имеют статус active.
- Измените статусы разделов диска на faulty, если разделы диска имеют статус active:
mdadm <RAID-NAME> —fail <FAIL-PART-NAME>
<FAIL-PART-NAME> – имя раздела неисправного диска. В описанном случае /dev/sdb1 и /dev/sdb2.
Пример вывода для RAID /dev/md126 и неисправного диска /dev/sdb:
# mdadm /dev/md126 —fail /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md126
Пример вывода для RAID /dev/md127 и неисправного диска /dev/sdb:
# mdadm /dev/md127 —fail /dev/sdb2
mdadm: set /dev/sdb2 faulty in /dev/md127
- Проверьте статусы RAID:
mdadm -D <RAID-NAME>
Пример вывода для RAID /dev/md126:
# mdadm -D /dev/md126
…
State : clean, degraded
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
…
Number Major Minor RaidDevice State
— 0 0 0 removed
1 8 177 1 active sync /dev/sda1
0 8 161 — faulty /dev/sdb1
Пример вывода для RAID /dev/md127:
# mdadm -D /dev/md127
…
Active Devices : 1
Working Devices : 1
Failed Devices : 1
Spare Devices : 0
…
Number Major Minor RaidDevice State
— 0 0 0 removed
1 8 178 1 active sync /dev/sda2
0 8 162 — faulty /dev/sdb2
- Удалите разделы диска со статусом faulty из зеркала:
mdadm <RAID-NAME> -r <FAIL-PART-NAME>
Пример вывода для RAID /dev/md126 и неисправного диска /dev/sdb:
# mdadm /dev/md126 -r /dev/sdb1
mdadm: hot removed /dev/sdb1 from /dev/md126
Пример вывода для RAID /dev/md127 и неисправного диска /dev/sdb:
# mdadm /dev/md127 -r /dev/sdb2
mdadm: hot removed /dev/sdb2 from /dev/md127
Замена неисправного диска
- Проверьте статусы RAID:
mdadm -D <RAID-NAME>
Пример вывода для RAID /dev/md126:
# mdadm -D /dev/md126
…
Number Major Minor RaidDevice State
— 0 0 0 removed
1 8 177 1 active sync /dev/sda1
Пример вывода для RAID /dev/md127:
# mdadm -D /dev/md127
…
Number Major Minor RaidDevice State
— 0 0 0 removed
1 8 178 1 active sync /dev/sda2
- Определите серийные номера исправных дисков (столбец Serial):
lsblk -sipo NAME,TYPE,SIZE,SERIAL,VENDOR,MODEL,REV,FSTYPE,MOUNTPOINT,UUID
Пример вывода
# lsblk -sipo NAME,TYPE,SIZE,SERIAL,VENDOR,MODEL,REV,FSTYPE,MOUNTPOINT,UUID
NAME TYPE SIZE SERIAL VENDOR MODEL REV FSTYPE MOUNTPOINT UUID
/dev/md126 raid1 201M vfat /boot/efi F824-DCC9
|-/dev/sda1 part 201M linux_raid_member 5177b40b-a2c6-3b3e-94ca-e7a586d4a446
| `-/dev/sda disk 447.1G 21DB1510 ATA MTFDDAV480TCB-1A MD51
`-/dev/sdb1 part 201M linux_raid_member 5177b40b-a2c6-3b3e-94ca-e7a586d4a446
`-/dev/sdb disk 447.1G 21DB1388 ATA MTFDDAV480TCB-1A MD51
/dev/md127 raid1 446.8G ext4 / 0d4c619b-dbbf-4c17-979e-4ae42d917209
|-/dev/sda2 part 447G linux_raid_member 02ba69b5-2c39-bf34-801d-a7748fe6630c
| `-/dev/sda disk 447.1G 21DB1510 ATA MTFDDAV480TCB-1A MD51
`-/dev/sdb2 part 447G linux_raid_member 02ba69b5-2c39-bf34-801d-a7748fe6630c
`-/dev/sdb disk 447.1G 21DB1388 ATA MTFDDAV480TCB-1A MD51
-
Определите методом исключения по серийным номерам исправных дисков неисправный диск и его местоположение, по заводским наклейкам или из UEFI BIOS сервера в разделе Inventory.
- Выключите сервер.
- Замените диск на исправный.
Размер исправного диска должен быть не меньше диска, с которого будут дублироваться данные.
- Включите сервер.
- Укажите приоритет загрузки с оставшегося загрузочного раздела диска из состава программного RAID в загрузчике UEFI BIOS.
Создание разделов на новом диске
Новый диск определился после загрузки как диск не имеющий разделы.
- Проверьте тип разметки диска, с которого будут копироваться данные:
blkid <SOURCE-DISK-NAME>
<SOURCE-DISK-NAME> – имя диска, с которого будут копироваться данные. В описанном случае /dev/sda.
Пример вывода
# blkid /dev/sda
/dev/sda: PTUUID=»e2e7423e-3843-483e-ab68-8774ace8e6ec» PTTYPE=»gpt»
Обратитесь в отдел технической поддержки L3, если тип разметки PTTYPE не равен gpt.
- Скопируйте таблицу разделов, обратив особое внимание на правильность указания источника и приемника:
sgdisk <SOURCE-DISK-NAME> -R <DEST-DISK-NAME>
<DEST-DISK-NAME> – имя нового диска, на который будут копироваться данные. В описанном случае /dev/sdb.
Пример вывода
# sgdisk /dev/sda -R /dev/sdb
Пример переноса таблицы разделов через файл:
# sgdisk —backup=backup_table /dev/sda
# sgdisk —load-backup=backup_table /dev/sdb
- Создайте уникальный UUID для разделов на новом диске, последовательно выполнив следующие команды:
- Первая команда:
sgdisk -G <DEST-DISK-NAME>
Пример
# sgdisk -G /dev/sdb
-
- Вторая команда:
sgdisk —randomize-guids —move-second-header <DEST-DISK-NAME>
Пример
# sgdisk —randomize-guids —move-second-header /dev/sdb
- Добавьте разделы нового диска в зеркало:
mdadm <RAID-NAME> —add <DEST-PART-NAME>
<DEST-PART-NAME> – имя раздела нового диска. В описанном случае /dev/sdb1 и /dev/sdb2.
Пример вывода для RAID /dev/md126 и раздела диска /dev/sdb1:
# mdadm /dev/md126 —add /dev/sdb1
mdadm: re-added /dev/sdb1
Пример вывода для RAID /dev/md127 и раздела диска /dev/sdb2:
# mdadm /dev/md127 —add /dev/sdb2
mdadm: re-added /dev/sdb2
- Дождитесь, когда разделы созданного зеркала получат статус clean:
watch «mdadm -D <RAID-NAME>»
Пример для RAID /dev/md126:
# watch «mdadm -D /dev/md126»
Пример для RAID /dev/md127:
# watch «mdadm -D /dev/md127»
Корректировка записей в UEFI загрузчике
- Выведите старые загрузочные записи, включая запись об отсутствующем диске и разделе (в примере вывода это «Boot0004* Raidix»):
efibootmgr
Пример вывода
# efibootmgr
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0000,0001,0002,0003
Boot0000* Raidix
Boot0001* CD/DVD Rom
Boot0002* Hard Disk
Boot0003* Network
Boot0004* Raidix
MirroredPercentageAbove4G: 0.00
MirrorMemoryBelow4GB: false
- Выведите записи UEFI области с номерами UUID:
efibootmgr -v | grep Raidix
Пример вывода
# efibootmgr -v | grep Raidix
Boot0000* Raidix HD(1,GPT,46313cf9-6fc4-4354-94c4-f53d1eafc6b7,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
Boot0004* Raidix HD(1,GPT,22c98b87-e6f3-4779-bfba-a4c0735adef3,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
- Выведите PARTUUID дисков системы:
lsblk -o +PARTUUID
Пример вывода
# lsblk -o +PARTUUID
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT PARTUUID
sda 8:0 0 447.1G 0 disk
|-sda1 8:1 0 201M 0 part 46313cf9-6fc4-4354-94c4-f53d1eafc6b7
| `-md126 9:126 0 201M 0 raid1 /boot/efi
`-sda2 8:2 0 447G 0 part fe738e05-34f4-4293-863b-991e88bcd5a3
`-md127 9:127 0 446.8G 0 raid1 /
sdb 8:16 0 447.1G 0 disk
|-sdb1 8:17 0 201M 0 part 02b24677-6988-4107-b1bd-30a8913ff825
| `-md126 9:126 0 201M 0 raid1 /boot/efi
`-sdb2 8:18 0 447G 0 part 6a7286b0-01eb-44d9-85d6-cbc74393e98b
`-md127 9:127 0 446.8G 0 raid1 /
sr0 11:0 1 2G 0 rom
- Сравните UUID и PARTUUID, полученные выше.
В примерах вывода видно, что запись Boot0000 соответствует разделу /dev/sda1, а запись Boot0004 не соответствует /dev/sdb1 так как диск /dev/sdb был заменен.
- Cоздайте новую загрузочную запись, указав имя диска и номер раздела UEFI области на диске:
efibootmgr —create —disk=<DEST-DISK-NAME> —part=1 —label=»Raidix» —loader=’\EFI\redhat\shimx64.efi’
Пример
# efibootmgr —create —disk=/dev/sdb —part=1 —label=»Raidix» —loader=’\EFI\redhat\shimx64.efi’
- Проверьте список загрузочных записей:
efibootmgr -v | grep Raidix
Пример вывода
# efibootmgr -v | grep Raidix
Boot0000* Raidix HD(1,GPT,46313cf9-6fc4-4354-94c4-f53d1eafc6b7,0x800,0x64800)/File(\EFI\redhat\shimx64.efi
Boot0004* Raidix HD(1,GPT,22c98b87-e6f3-4779-bfba-a4c0735adef3,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
Boot0005* Raidix HD(1,GPT,02b24677-6988-4107-b1bd-30a8913ff825,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
- Удалите старую запись с неправильным номером PARTUUID:
efibootmgr —delete-bootnum —bootnum <BOOT-NUMBER>
<BOOT-NUMBER> – номер загрузочной записи.
Пример
# efibootmgr —delete-bootnum —bootnum 4
- Проверьте список загрузочных записей:
efibootmgr -v | grep Raidix
Пример вывода
# efibootmgr -v | grep Raidix
Boot0000* Raidix HD(1,GPT,46313cf9-6fc4-4354-94c4-f53d1eafc6b7,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
Boot0005* Raidix HD(1,GPT,02b24677-6988-4107-b1bd-30a8913ff825,0x800,0x64800)/File(\EFI\redhat\shimx64.efi)
Система будет иметь возможность загружаться с двух физических дисков.
-
При необходимости поменяйте порядок загрузочных записей:
- Выведите текущий порядок:
efibootmgr
Пример вывода
# efibootmgr
Timeout: 1 seconds
BootOrder: 0005,0000,0001,0002,0003
Boot0000* Raidix
Boot0001* CD/DVD Rom
Boot0002* Hard Disk
Boot0003* Network
Boot0005* Raidix
MirroredPercentageAbove4G: 0.00
MirrorMemoryBelow4GB: false
-
- Задайте требуемый порядок:
efibootmgr -o <BOOT-ARRAY>
<BOOT-ARRAY> – строка с номерами загрузочных записей, разделенных запятой.
Пример
# efibootmgr -o 0000,0005,0001,0002,0003
*Рекомендация: закажите услугу удалённого подключения, наши специалисты обязательно вам помогут. Для этого свяжитесь со своим менеджером по телфону или отправьте запрос на электронную почту.
RaidixMedia
+7 (495) 974-99-64
info@raidixmedia.ru
г. Москва, Нижний Сусальный переулок, 5с12