Выпущена версия Vitastor 1.10.1

03.01.2025

Новогодний релиз с консистентными листингами и исправлениями.

Новые функции

  • Добавлен флаг образов “удалён”, который ставится vitastor-cli rm, когда он начинает удалять образ, но не может полностью завершить удаление из-за неактивных PG или остановленных OSD.
  • Добавлена поддержка JSON вывода в vitastor-disk prepare и purge.
  • Добавлено отображение backfillfull пулов в статусе кластера.
  • Радикально переделаны и сделаны консистентными листинги и удаления.

На последнем нужно остановиться поподробнее. Что означают “консистентные листинги и удаления”? Это означает, что раньше vitastor-cli rm абсолютно корректно работал по сути только в идеальной ситуации - когда все OSD запущены и когда в кластере ничего не происходит, никакого ребаланса. В иных случаях он работал КАК-ТО. 😊 мог повиснуть и бесконечно ждать, пока что-то поднимется, мог пропустить часть PG, которые сейчас лежат, мог при листинге пропустить часть объектов и оставить их за собой в виде мусора, мог наоборот завершиться с ошибкой при переключении PG, хотя на самом деле запрос вполне можно было повторить…

В общем, теперь всё это должно уйти в прошлое, и удаление должно либо удалить весь образ и завершиться успешно, либо что-то недоудалить и завершиться с ошибкой. Во втором случае теперь также не удаляется запись об образе из vitastor-cli ls, но образ маркируется “deleted” - мол, удаление было начато, но не завершено.

Автоматической “дочистки” мусора с лежащих OSD после их переподнятия пока ещё нет, но это тема для переделки метаданных и будущих релизов. То есть, если вы удалите образ, пока часть OSD “down” и потом поднимете их обратно, объекты с них “вернутся” и запрос удаления нужно будет повторить ручками. Но - теперь вы будете точно знать, когда это нужно сделать, на основе кода завершения vitastor-cli rm. 😊

Исправления

  • Исправлены неработающие режимы команды vitastor-cli rm --exact / --matching.
  • Наконец-то РЕАЛЬНО исправлены ошибки “Unexpected status” в Proxmox! Как они достали… 😊
  • Исправлен неправильный выбор родительского пула vitastor-cli create-snap.
  • Исправлена неполная проверка на циклы в parent_id образов на стороне OSD.
  • Исправлен баг с неработающими чтениями из образов, у которых как минимум два снапшота в разных пулах.
  • Исправлено добавление VITASTOR_CONF в командную строку в скрипте opennebula prebackup
  • Исправлена обработка ENOSPC (полных OSD) с EC, по задумке добавленная в 1.6.0. Теперь при заполнении кластера OSD точно не падают. 😊
  • Улучшено логгирование ошибок вторичных операций.

Ссылки