Найти в Дзене
Cyber Horizon

Удаление недоступных объектов (Inaccessible) в VMware vSAN

Работая с виртуальным хранилищем VMware vSAN, администраторы рано или поздно сталкиваются с проблемой накопления недоступных объектов (inaccessible objects). Эти «призрачные» данные занимают место в хранилище и могут вызывать путаницу при мониторинге инфраструктуры. Казалось бы, в vSphere есть встроенная функция очистки — Purge Inaccessible VM Swap Objects. Однако на практике она удаляет далеко не все проблемные объекты. Именно поэтому опытные администраторы обращаются к более мощному инструменту — консоли RVC (Ruby vSphere Console). Первым делом нужно подключиться к vCenter через SSH и запустить RVC-консоль: rvc administrator@vsphere.local@localhost После успешной авторизации перемещаемся в директорию нашего vSAN-кластера: cd /localhost/<Name-Datacenter>/computers/<Name-Cluster-vSAN>/ Теперь самое интересное — запускаем диагностику устаревших объектов: vsan.check_state -r . Система начнёт сканирование и выведет список обнаруженных недоступных объектов. В типичной ситуации вы увидит
Оглавление

Работая с виртуальным хранилищем VMware vSAN, администраторы рано или поздно сталкиваются с проблемой накопления недоступных объектов (inaccessible objects). Эти «призрачные» данные занимают место в хранилище и могут вызывать путаницу при мониторинге инфраструктуры.

Казалось бы, в vSphere есть встроенная функция очистки — Purge Inaccessible VM Swap Objects. Однако на практике она удаляет далеко не все проблемные объекты. Именно поэтому опытные администраторы обращаются к более мощному инструменту — консоли RVC (Ruby vSphere Console).

Диагностика проблемы через RVC

Первым делом нужно подключиться к vCenter через SSH и запустить RVC-консоль:

rvc administrator@vsphere.local@localhost

После успешной авторизации перемещаемся в директорию нашего vSAN-кластера:

cd /localhost/<Name-Datacenter>/computers/<Name-Cluster-vSAN>/

Теперь самое интересное — запускаем диагностику устаревших объектов:

vsan.check_state -r .

Система начнёт сканирование и выведет список обнаруженных недоступных объектов. В типичной ситуации вы увидите примерно такой вывод:

2025-03-25 19:06:46 +0000: Step 1: Check for inaccessible vSAN objects
Detected cb457a5e-edc1-d100-8181-001e67592edf to be inaccessible, refreshing state
Detected c9457a5e-ec9b-2224-5281-001e67592edf to be inaccessible, refreshing state
...

Система проведёт двойную проверку, чтобы исключить ложные срабатывания. На втором этапе (Step 1b) она повторно проверит статус каждого объекта и подтвердит, какие из них действительно остаются недоступными.

Определяем местоположение проблемных объектов

Прежде чем приступить к удалению, нужно понять, на каких ESXi-хостах физически расположены проблемные объекты. Для этого есть два подхода:

Вариант 1: Получить общую картину по всем нодам:

vsan.check_state .

Вариант 2: Узнать местоположение конкретного объекта:

vsan.cmmds_find -u object_id

Здесь object_id — это уникальный идентификатор (UID) одного из обнаруженных недоступных объектов, например: cb457a5e-edc1-d100-8181-001e67592edf.

Финальный этап: удаление

Теперь, когда мы знаем, где находятся проблемные объекты, подключаемся по SSH непосредственно к нужному ESXi-хосту и выполняем команду удаления:

/usr/lib/vmware/osfs/bin/objtool delete -u <UID> -f -v 10

Где <UID> — это идентификатор конкретного объекта, который нужно удалить. Параметр -f означает принудительное удаление, а -v 10 включает подробное логирование процесса.

Практические рекомендации

При работе с удалением объектов стоит помнить несколько важных моментов:

Делайте резервные копии. Хотя мы удаляем уже недоступные объекты, всегда лучше перестраховаться и иметь актуальный backup критичных данных.

Действуйте поэтапно. Если объектов много, начните с нескольких, убедитесь, что процесс идёт корректно, и только потом продолжайте.

Мониторьте состояние кластера. После удаления проверьте работоспособность vSAN-кластера и убедитесь, что все виртуальные машины функционируют нормально.

Такой подход позволяет эффективно очистить хранилище от «мусора» и вернуть контроль над использованием дискового пространства в вашей виртуальной инфраструктуре.