Замена сбойного LLD-диска
-
Подключитесь к вычислительному узлу, на котором вышел из строя диск (подробнее — в разделе Подключение к вычислительному узлу).
-
Определите проблемный диск. Для этого можно воспользоваться утилитой
dmesgили любым другим доступным средством диагностики.Пример вывода команды
dmesg:[90265.248679] md: super_written gets error=-5[90265.248689] md/raid1:mdX: Disk failure on dm-6, disabling device.md/raid1:mdX: Operation continuing on 1 devices. -
Проверьте текущий статус логических томов (Logical Volume):
# lvsПример вывода:
WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.WARNING: VG kvm-vg is missing PV fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3 (last written to /dev/sdb1).LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertcinder_state_dir kvm-vg rwi-aor-p- 60.00g 100.00volume-12582874-3a9f-4af0-9aca-1cb10ec7480a kvm-vg Rwi-aor-p- 10.00g 100.00volume-e01eab6b-669a-4185-85f5-f213f64fe3c4 kvm-vg Rwi-a-r-p- 4.00g 100.00
-
Подключитесь к управляющему узлу (подробнее — в разделе Подключение к управляющему узлу).
-
Отключите сервис
cinder-volumeдляef-nvmeна узле, на котором находится сбойный диск:# openstack volume service set --disable <УЗЕЛ> cinder-volumeЗдесь
<УЗЕЛ>— вычислительный узел со сбойным диском. -
Проверьте, что сервис
cinder-volumeна нужном вычислительном узле отключен:# openstack volume service listПример вывода:
+------------------+---------------------+------+----------+-------+----------------------------+| Binary | Host | Zone | Status | State | Updated At |+------------------+---------------------+------+----------+-------+----------------------------+| cinder-scheduler | cpn001 | nova | enabled | up | 2026-03-25T14:36:08.000000 || cinder-volume | rbd:volumes:c1@ceph | AZ1 | enabled | up | 2026-03-25T14:36:06.000000 || cinder-backup | cpn001 | nova | enabled | up | 2026-03-25T14:36:11.000000 || cinder-volume | kcn001@ef-nvme | AZ1 | disabled | up | 2026-03-25T14:36:09.000000 || cinder-volume | kcn002@ef-nvme | AZ1 | enabled | up | 2026-03-25T14:36:07.000000 |+------------------+---------------------+------+----------+-------+----------------------------+ -
С помощью сервиса
storemanвыполните автоматическую миграцию всех виртуальных машин с дисками LLD на другие вычислительные узлы:# source openrc-storeman.sh -
Проверьте статус миграции дисков:
# storeman-client-3 statusПример вывода:
Summary:Evacuating hosts: 0Migration tasks: 1Rejected migrations: 0Filters:Blacklisted projects:Blacklisted VMs:Blacklisted targets:LLD handler: enabledPlanned migrations: 1Success migrations: 0Failed migrations: 0Rejected migrations: 0Planned LLD migration: 12582874-3a9f-4af0-9aca-1cb10ec7480aVolume migration: 12582874-3a9f-4af0-9aca-1cb10ec7480aSize: 10Migration running: TrueTask status: Migration is running [1]From host: kcn001@ef-nvme#ef-nvmeTo host: kcn002@ef-nvme#ef-nvme -
Проверьте, что миграция дисков выполнена:
# for i in $(openstack volume list --all --long -f json | jq -r '.[] | select (.Type == "ef-nvme" and .Status == "in-use").ID'); do openstack volume show -f value -c os-vol-host-attr:host -c status $i | grep -q kcn001@ef-nvme#ef-nvme && echo $i; doneВывод команды должен быть пустым.
-
Замените сбойный диск.
-
Подключитесь к вычислительному узлу.
-
С помощью команд
dmesgилиlsblkубедитесь, что новый диск подключен к вычислительному узлу.Пример вывода команды
lsblk:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSsda 8:0 0 50G 0 disk├─sda1 8:1 0 2G 0 part /boot└─sda2 8:2 0 48G 0 part /sdc 8:32 0 600G 0 disk└─sdc1 8:33 0 600G 0 part├─kvm--vg-cinder_state_dir_rmeta_1 253:2 0 4M 0 lvm│ └─kvm--vg-cinder_state_dir 253:4 0 60G 0 lvm /mnt/cinder├─kvm--vg-cinder_state_dir_rimage_1 253:3 0 60G 0 lvm│ └─kvm--vg-cinder_state_dir 253:4 0 60G 0 lvm /mnt/cinder├─kvm--vg-volume--12582874--3a9f--4af0--9aca--1cb10ec7480a_rmeta_1 253:7 0 4M 0 lvm│ └─kvm--vg-volume--12582874--3a9f--4af0--9aca--1cb10ec7480a 253:9 0 10G 0 lvm├─kvm--vg-volume--12582874--3a9f--4af0--9aca--1cb10ec7480a_rimage_1 253:8 0 10G 0 lvm│ └─kvm--vg-volume--12582874--3a9f--4af0--9aca--1cb10ec7480a 253:9 0 10G 0 lvm├─kvm--vg-volume--e01eab6b--669a--4185--85f5--f213f64fe3c4_rmeta_1 253:15 0 4M 0 lvm│ └─kvm--vg-volume--e01eab6b--669a--4185--85f5--f213f64fe3c4 253:17 0 4G 0 lvm└─kvm--vg-volume--e01eab6b--669a--4185--85f5--f213f64fe3c4_rimage_1 253:16 0 4G 0 lvm└─kvm--vg-volume--e01eab6b--669a--4185--85f5--f213f64fe3c4 253:17 0 4G 0 lvmsdd 8:48 0 10G 0 disk├─sdd1 8:49 0 3G 0 part├─sdd14 8:62 0 4M 0 part├─sdd15 8:63 0 106M 0 part└─sdd16 259:0 0 913M 0 partsde 8:64 0 600G 0 disksr0 11:0 1 478K 0 romЗдесь
sde— новый диск. -
Удалите сбойный диск из Volume Group (VG):
# vgreduce --removemissing --force kvm-vgПример вывода:
WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.WARNING: VG kvm-vg is missing PV fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3 (last written to /dev/sdb1).WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.WARNING: Couldn't find device with uuid fk2sWk-yvsL-NlHy-hSI9-55sD-jDm9-L6iep3.Wrote out consistent volume group kvm-vg.
-
Подключитесь к деплой-ноде по SSH (подробнее — в разделе Подключение к деплой-ноде).
-
Для разметки нового диска получите и сохраните значения переменных:
# grep -rE '(cinder_hiops_parts_per_disk:|cinder_hiops_gpt_align:|cinder_hiops_part_type:|cinder_hiops_use_lvm_mirrors:|lvm_mirrors_count:)' ./inventory -
Подключитесь к вычислительному узлу, на котором был заменен диск.
-
Разметка диска будет выполнена с помощью скрипта, для которого понадобятся несколько переменных. Присвойте им значения, аналогичные полученным выше:
-
Присвойте значение переменной
cinder_hiops_parts_per_disk(количество разделов на диске). Пример:# cinder_hiops_parts_per_disk=1 -
Присвойте значение переменной
cinder_hiops_gpt_align(выравнивание разделов). Пример:# cinder_hiops_gpt_align=2048 -
Присвойте значение переменной
diskname(название нового диска). Пример:# diskname=sde -
Присвойте значение переменной
cinder_hiops_part_type(тип раздела). Пример:# cinder_hiops_part_type=8E00 -
Присвойте значение переменной
SIZE_S(доступный размер диска в секторах):# SIZE_S=$(( $(cat /sys/block/$diskname/size) - 2 * $cinder_hiops_gpt_align )) -
Присвойте значение переменной
PART_SIZE(размер раздела в секторах):# PART_SIZE=$(( ${SIZE_S} / $cinder_hiops_parts_per_disk )) -
Сделайте значение переменной
PART_SIZEкратным значениюcinder_hiops_gpt_align:# PART_SIZE=$(( ${PART_SIZE} - ( ${PART_SIZE} % $cinder_hiops_gpt_align ) ))
-
-
Удалите таблицы разделов на диске:
# /sbin/sgdisk --zap /dev/$diskname -
Запустите скрипт разметки диска:
# for n in $(seq 1 $cinder_hiops_parts_per_disk); do /sbin/sgdisk --new=${n}:0:+${PART_SIZE} -t ${n}:$cinder_hiops_part_type --mbrtogpt -- /dev/$diskname; done -
Проверьте, что разделы создались:
# lsblk | grep $diskname | grep part -
Создайте Physical Volume (PV) из нового диска:
# pvcreate /dev/${diskname}1Пример вывода:
Physical volume "/dev/sde1" successfully created. -
Добавьте новый PV в Volume Group (VG):
# vgextend kvm-vg /dev/${diskname}1Ожидаемый вывод:
Volume group "kvm-vg" successfully extended
-
Определите список LV с потерей реплики:
# lvsПример вывода:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertcinder_state_dir kvm-vg rwi-aor-r- 60.00g 100.00volume-12582874-3a9f-4af0-9aca-1cb10ec7480a kvm-vg Rwi-aor-r- 10.00g 100.00volume-e01eab6b-669a-4185-85f5-f213f64fe3c4 kvm-vg Rwi-a-r-r- 4.00g 100.00Здесь LV с потерей реплики — том с атрибутом
rв предпоследней позиции в столбцеAttr. -
Запустите восстановление для каждого тома с потерей реплики:
# lvconvert -y --repair kvm-vg/<ИМЯ_ТОМА>Пример вывода:
Faulty devices in kvm-vg/volume-12582874-3a9f-4af0-9aca-1cb10ec7480a successfully replaced. -
С помощью команды
lvsпроверьте, что началась синхронизация. Пример вывода:LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertcinder_state_dir kvm-vg rwi-aor--- 60.00g 11.06volume-12582874-3a9f-4af0-9aca-1cb10ec7480a kvm-vg Rwi-aor--- 10.00g 22.65volume-e01eab6b-669a-4185-85f5-f213f64fe3c4 kvm-vg Rwi-a-r--- 4.00g 22.02Атрибута
rнет, а значения в столбцеCpy%Syncговорят о том, что синхронизация началась. -
Включите сервис
cinder-volume, чтобы вернуть вычислительный узел в работу с LLD.