Удаление дисков, групп томов device-class или узлов из локального хранилища ACP TopoLVM
В этом документе описывается, как удалить неисправные диски, удалить группы томов device-class из device class и удалить узлы хранилища в локальном хранилище ACP TopoLVM.
В зависимости от области сбоя, в документе рассматриваются следующие сценарии:
- Удаление
volume group deviceизdevice-class volume group - Удаление
device-class volume groupизdevice class - Удаление узла хранилища TopoLVM
- Процедура в этом документе напрямую удаляет ресурсы хранилища, такие как PVC, PV и
logicalvolumes.topolvm.cybozu.com. После удаления этих ресурсов данные на затронутых томах обычно невозможно восстановить. Сделайте резервную копию данных заранее. - Перед началом убедитесь, что вы правильно определили диск, группу томов device-class или узел, и запланировали окно обслуживания для затронутых рабочих нагрузок.
Содержание
ТерминыВыбор правильного сценарияСценарий 1: Удаление volume group device из device-class volume groupСценарий пользователяПредварительные условияПроверка возможности восстановления device-class volume groupПроцедураСценарий 2: Удаление device-class volume group из device classСценарий пользователяПредварительные условияПроверка полной повреждённости device-class volume groupПроцедураСценарий 3: Удаление узла хранилища TopoLVMСценарий пользователяПредварительные условияПроцедураТермины
Выбор правильного сценария
Используйте следующую таблицу, чтобы определить, какой сценарий применим к вашей среде.
Сценарий 1: Удаление volume group device из device-class volume group
Сценарий пользователя
- Используйте эту процедуру, когда
device-class volume groupне полностью повреждена, но один или несколькоvolume group devicesв группе томов вышли из строя и должны быть удалены.
Предварительные условия
- Целевой узел всё ещё в кластере и доступен.
Provision Typeцелевого device class —Thick.- Целевая группа томов device-class не полностью повреждена, и в группе томов остаётся хотя бы один исправный volume group device.
Проверка возможности восстановления device-class volume group
Выполните следующую команду на целевом узле:
Параметры:
<vg-name>: имя целевой LVM volume group.
Если команда возвращает нормальный вывод или сообщает только о пропавших некоторых PV, при этом группа томов всё ещё существует, значит device-class volume group не полностью повреждена, и вы можете следовать этой процедуре.
Пример вывода:
Процедура
Шаг 1: Остановите topolvm-operator
Выполните следующую команду на управляющем узле, чтобы предотвратить согласование ресурсов оператором во время очистки:
Шаг 2: Найдите затронутый LVM логический том
Выполните следующую команду на целевом узле, чтобы найти логические тома, использующие неисправные диски:
Параметры:
<vg-name>: имя целевой LVM volume group.<path-to-disks>: пути к устройствам неисправных дисков, например/dev/vdb. Для нескольких дисков разделяйте через|.
Например:
Пример вывода:
Шаг 3: Найдите затронутые PVC и PV
Выполните следующую команду на управляющем узле, чтобы найти связанные PV и PVC по имени логического тома:
Параметры:
<lv-name>: имя затронутого LVM логического тома.
Пример вывода:
В выводе:
- Колонка 1 — имя
PersistentVolume. - Колонка 2 — namespace
PersistentVolumeClaim. - Колонка 3 — имя
PersistentVolumeClaim.
Шаг 4: Остановите рабочие нагрузки, использующие затронутые PVC
После определения затронутых PVC остановите рабочие нагрузки, которые их используют, и убедитесь, что все связанные Pod остановлены, прежде чем продолжить.
Шаг 5: Удалите затронутые ресурсы хранилища Kubernetes
Выполните следующие команды на управляющем узле:
Параметры:
<pvc-namespace>: namespace затронутого PVC.<pvc-name>: имя затронутого PVC.<pv-name>: имя затронутого PV.<logicalvolume-name>: имя ресурса TopoLVMlogicalvolumes.topolvm.cybozu.com. Совпадает с<pv-name>.
Если в результате запроса несколько ресурсов, удаляйте их по одному согласно сопоставлению.
Если ресурс не удаётся удалить обычным способом, добавьте --force по необходимости.
Шаг 6: Очистите остаточные LVM логические тома
Выполните следующую команду на целевом узле, чтобы проверить, остались ли логические тома:
Параметры:
<vg-name>: имя целевой LVM volume group.<path-to-disks>: пути к устройствам неисправных дисков, например/dev/vdb. Для нескольких дисков разделяйте через|.
Если команда возвращает вывод, удалите оставшиеся логические тома по одному:
Параметры:
<vg-name>: имя целевой LVM volume group.<lv-name>: имя логического тома для удаления.
При необходимости добавьте --force.
Шаг 7: Удалите отсутствующий физический том из группы томов LVM
Выполните следующую команду на целевом узле:
Параметры:
<vg-name>: имя целевой LVM volume group.
При необходимости добавьте --force.
Шаг 8: Обновите ресурс TopolvmCluster
Выполните следующую команду на управляющем узле:
В редакторе удалите неисправный volume group device из списка devices целевого узла. Например, удалите /dev/vdb из конфигурации для nodeName: 192.168.133.50.
До:
После:
Шаг 9: Обновите ConfigMap lvmdconfig
Выполните следующую команду на управляющем узле:
Параметры:
<node-name>: имя целевого узла.
В редакторе удалите статус неисправного volume group device из status.json. Например, удалите запись deviceStates для /dev/vdb.
До:
После:
Шаг 10: Запустите topolvm-operator
Выполните следующую команду на управляющем узле:
Шаг 11: Проверьте, что volume group device удалён
Выполните следующую команду на управляющем узле:
Убедитесь, что удалённый volume group device больше не отображается в deviceStates целевого узла.
Сценарий 2: Удаление device-class volume group из device class
Сценарий пользователя
- Используйте эту процедуру, когда группа томов device-class на узле полностью повреждена и не может быть восстановлена удалением только одного volume group device.
Предварительные условия
- Целевой узел всё ещё в кластере и доступен.
- Целевая группа томов device-class полностью повреждена.
- После удаления целевой группы томов device-class на узле остаётся хотя бы одна другая группа томов device-class.
Проверка полной повреждённости device-class volume group
Выполните следующую команду на целевом узле:
Если целевая LVM volume group больше не отображается в выводе, значит device-class volume group полностью повреждена, и вы можете следовать этой процедуре.
В этом сценарии удаляется вся группа томов device-class с узла, а не только один volume group device в этой группе.
Процедура
Шаг 1: Остановите topolvm-operator
Выполните следующую команду на управляющем узле:
Шаг 2: Найдите затронутые PVC и PV
Выполните следующую команду на управляющем узле, чтобы найти PV, PVC и ресурсы logicalvolumes.topolvm.cybozu.com, связанные с указанным классом хранилища на целевом узле:
Параметры:
<node-name>: имя целевого узла.<storageclass-name>: имя класса хранилища, связанного с целевой группой томов device-class. Если задействовано несколько классов, выполните запрос отдельно для каждого.
Пример вывода:
В выводе:
- Колонка 1 — имя и
PersistentVolume, и ресурсаlogicalvolumes.topolvm.cybozu.com. - Колонки 2 и 3 — namespace и имя
PersistentVolumeClaim.
Если с целевой группой томов device-class связаны несколько классов хранилища, повторите этот запрос и последующие шаги очистки для каждого класса.
Шаг 3: Остановите рабочие нагрузки, использующие затронутые PVC
После определения затронутых PVC остановите рабочие нагрузки, которые их используют, и убедитесь, что все связанные Pod остановлены, прежде чем продолжить.
Шаг 4: Удалите затронутые ресурсы хранилища Kubernetes
Выполните следующие команды на управляющем узле:
Параметры:
<pvc-namespace>: namespace затронутого PVC.<pvc-name>: имя затронутого PVC.<pv-name>: имя затронутого PV.<logicalvolume-name>: имя ресурса TopoLVMlogicalvolumes.topolvm.cybozu.com. Совпадает с<pv-name>.
Если в результате запроса несколько ресурсов, удаляйте их по одному согласно сопоставлению.
Если ресурс не удаётся удалить обычным способом, добавьте --force по необходимости.
Шаг 5: Обновите ресурс TopolvmCluster
Выполните следующую команду на управляющем узле:
В редакторе удалите группу томов device-class с целевого узла. Например, в конфигурации для nodeName: 192.168.140.13 удалите запись className: hdd и связанные с ней volumeGroup и devices.
До:
После:
Если удалённая запись className имела default: true, назначьте другой оставшийся класс как класс по умолчанию.
Шаг 6: Обновите ConfigMap lvmdconfig
Выполните следующую команду на управляющем узле:
Параметры:
<node-name>: имя целевого узла.
В редакторе удалите конфигурацию, соответствующую целевой группе томов device-class, из lvmd.yaml и status.json. Например, удалите конфигурацию для className: hdd.
До:
После:
Если удалённая запись className имела default: true, назначьте другой оставшийся класс как класс по умолчанию.
Шаг 7: Запустите topolvm-operator
Выполните следующую команду на управляющем узле:
Шаг 8: Проверьте, что device-class volume group удалена
Выполните следующую команду на управляющем узле:
Убедитесь, что удалённая группа томов device-class больше не отображается на целевом узле, а оставшиеся группы томов device-class находятся в здоровом состоянии.
Сценарий 3: Удаление узла хранилища TopoLVM
Сценарий пользователя
- Целевой узел больше не подлежит восстановлению, или вы решили навсегда удалить его из TopolvmCluster.
Предварительные условия
- Вы решили не сохранять никакие группы томов device-class на целевом узле.
- Рабочие нагрузки, использующие локальные тома на целевом узле, остановлены или перенесены на другие узлы.
- Оставшиеся узлы могут продолжать размещать необходимые рабочие нагрузки после удаления целевого узла.
Процедура
Шаг 1: Остановите topolvm-operator
Выполните следующую команду на управляющем узле:
Шаг 2: Найдите затронутые PVC и PV
Выполните следующую команду на управляющем узле, чтобы найти PV, PVC и ресурсы logicalvolumes.topolvm.cybozu.com, связанные с целевым узлом:
Параметры:
<node-name>: имя целевого узла.
Шаг 3: Остановите рабочие нагрузки, использующие затронутые PVC
После определения затронутых PVC остановите рабочие нагрузки, которые их используют, и убедитесь, что все связанные Pod остановлены, прежде чем продолжить.
Шаг 4: Удалите затронутые ресурсы хранилища Kubernetes
Выполните следующие команды на управляющем узле:
Параметры:
<pvc-namespace>: namespace затронутого PVC.<pvc-name>: имя затронутого PVC.<pv-name>: имя затронутого PV.<logicalvolume-name>: имя ресурса TopoLVMlogicalvolumes.topolvm.cybozu.com. Совпадает с<pv-name>.
Если в результате запроса несколько ресурсов, удаляйте их по одному согласно сопоставлению.
Если ресурс не удаётся удалить обычным способом, добавьте --force по необходимости.
Шаг 5: Обновите ресурс TopolvmCluster
Выполните следующую команду на управляющем узле:
В редакторе удалите весь блок конфигурации для целевого узла. Например, удалите блок для nodeName: 192.168.140.13.
До:
После:
Шаг 6: Обновите ConfigMap lvmdconfig
Выполните следующую команду на управляющем узле:
Параметры:
<node-name>: имя целевого узла.
В редакторе удалите полностью секции lvmd.yaml и status.json. Не оставляйте никакой конфигурации или статуса для удалённого узла.
Шаг 7: Запустите topolvm-operator
Выполните следующую команду на управляющем узле:
Шаг 8: Проверьте, что узел удалён
Выполните следующую команду на управляющем узле:
Убедитесь, что целевой узел больше не отображается в status.nodeStorageState. Например, 192.168.140.13 не должен появляться в выводе.