Осиротевшие диски: вопрос перед удалением

Машину вы удалили, а место не вернулось. Оставшиеся диски задерживаются по трём разным причинам, и это не одно и то же. Сам список является списком на удаление, поэтому его надёжность отдельный вопрос.

AtlasPVE ·

Эта статья отвечает на

  • proxmox удалил vm а диск остался
  • proxmox unused disk что это
  • proxmox очистка осиротевших дисков
  • proxmox место на диске не освободилось
  • proxmox оставшийся образ диска

Вы удалили машину. Смотрите на хранилище, а место не вернулось. Диск по-прежнему лежит там и никому не принадлежит.

Это не ошибка Proxmox. Но если начать удалять, не понимая, как так вышло, можно удалить то, что действительно нужно.

Оставшиеся диски задерживаются по трём разным причинам

На одном экране они стоят рядом, но истории у них разные, а значит, разный и риск удаления.

Владельца нет вовсе. Номер машины в имени диска не принадлежит ни одной машине. Машину действительно удалили, а диск остался. Либо этот номер никогда не использовался, и диск намеренно создан пустым.

Машина есть, диск не подключён. Машина на месте, но этот диск не стоит ни в одном гнезде. Обычно кто-то отключил его намеренно: переносит данные, снимает копию и подключит обратно.

Сам Proxmox пометил его как неиспользуемый. Он виден в настройках машины, но не в активном гнезде. Это состояние, о котором система вам уже сообщает.

Увидеть все три в одном списке и удалить разом это самый опасный ход. В двух средних случаях тот, кто оставил этот диск, чаще всего всё ещё в нём нуждается.

Откуда они берутся

Самый частый путь такой: сначала вы отключаете диск от машины, затем удаляете машину. В момент отключения в настройках машины не остаётся никакой записи о нём. Потом, когда вы удаляете машину, система об этом диске не знает, потому что он больше нигде не записан. Машина уходит, диск остаётся.

Незавершённый перенос диска даёт тот же результат: копия появилась на новом месте, а старую убрать не удалось.

Есть и намеренный случай: создать пустой диск, не принадлежащий ни одной машине. Такой диск осиротевший с рождения и вовсе не остаток, ждущий удаления.

Суть дела: этот список является списком на удаление

Большинство экранов дают вам сведения. Этот экран заставляет вас принять решение, притом необратимое.

Поэтому правильность списка здесь важнее правильности обычного экрана. И тут есть коварный вид сбоя.

«Пусто» и «неизвестно» это не одно и то же

Способ найти осиротевшие диски таков: получить список всех машин, получить содержимое всех хранилищ, сравнить. Если диск в хранилище не встречается в списке ни одной машины, он осиротевший.

Теперь подумайте: что произойдёт, если список машин получить не удастся?

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

Та же ошибка существует и в обратную сторону. Если не удастся получить список хранилищ и его посчитают пустым, ни одно хранилище не будет просмотрено, и ответ выйдет «осиротевших дисков нет». В эту сторону никто ничего не удалит, но сказать пользователю «чисто» это тоже утверждение, а данных для него у вас нет.

Общий вывод укладывается в одну фразу: пустой ответ и неполучение ответа это не одно и то же. Первое говорит «такого нет», второе говорит «не могу сказать». Как только программа их смешивает, она начинает утверждать то, чего не знает.

Перед удалением

Проверьте номер: машина действительно исчезла или это шаблон? У шаблонов тоже есть диски, и шаблон может не появляться в списках так, как появляется машина.

Посмотрите, когда диск отключили. Отключённый сегодня диск почти наверняка чья-то незаконченная работа.

Посмотрите на снимки: диск может быть уже отключён и всё равно нужен снимку.

И самое простое: вместо удаления сначала переименуйте или перенесите. Если за неделю никто его не хватится, удаляйте. А если нехватка места настолько срочная, что ломает недельное терпение, ваша настоящая проблема не осиротевшие диски.

Что делает Atlas

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

По-настоящему стоит рассказать вот что: описанная выше ошибка действительно была в этом продукте, в трёх разных местах.

Когда список машин получить не удавалось, ошибка превращалась в пустой список, то есть каждый используемый диск выглядел бы осиротевшим. Когда не удавалось получить список хранилищ, он тоже считался пустым, то есть пользователь получил бы безосновательный ответ «чисто». А при выборе номера для пустого диска неполученный список занятых номеров давал результат «ни один номер не занят», и выбор падал на первый зарезервированный номер. Измерено на работающей машине: этот номер уже был занят, шаблоном.

Все три исправлены в одну сторону: если список получить нельзя, список не строится вовсе и называется причина. Не ответить предпочли ответу наполовину.

Вот чем это отличается от уроков измерения, написанных в других статьях этой вики: там вопрос звучал «какой период описывает это число». Здесь вопрос возникает ещё раньше: а получил ли я ответ вообще?

Источники

Собственная документация Proxmox. На английском, и последнее слово в этом вопросе за ней.

Похожие статьи

Как это выглядит внутри Atlas?

Перейти на страницу продукта