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

15.07.2024

Всенаправленный релиз! I/O треды, Antietcd, Prometheus и многое другое.

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

  • Опциональные I/O треды для клиентов - повышают параллельные и линейные скорости (линейные вплоть до 7-8 ГБ/с) ценой ухудшения задержек.
  • Экспериментальный заменитель etcd - antietcd.
  • Встроенный Prometheus-экспортер и дашбордик для Grafana.
  • Давно недостававшие команды в vitastor-cli: osd-tree, ls-osd, modify-osd, pg-list. Всё здесь.
  • Дефрагментация для VitastorFS.
  • Биндинг для node.js, пока, правда, никуда не опубликованный.

Изменения

  • immediate_commit теперь по умолчанию all везде, а не только в vitastor-disk - раньше это было контринтуитивно, даже сам попадался.
  • Сделано понятным и детальным сообщение об ошибке нехватки OSD/failure_domain-ов при создании пула - теперь vitastor-cli пишет детали о том, какие конкретно OSD хочет видеть.
  • Опция etcd_ws_keepalive_interval по умолчанию установлена в 5 секунд для ускорения переключения при отказе etcd.
  • Добавлена поддержка OpenStack 2023.2 в драйверах/патчах Nova и Cinder.
  • Добавлены патчи для libvirt 10.x.
  • Добавлены патчи для QEMU 8.2 и 9.0.
  • Добавлена поддержка встроенного бесконечного перезапуска в мониторе (без помощи systemd).
  • Рефакторинг дерева исходных кодов - файлы размещены по поддиректориям, монитор разделён на несколько файлов.
  • Добавлена функция vitastor_c_inode_get_immediate_commit в клиентской библиотеке vitastor_c.
  • Заголовок vitastor_kv.h сделан публичным.

Исправления

  • Исправлены отсутствующие общие цифры статистики usec/count/bytes при нулевой дельте (bps/iops/lat).
  • Исправлено зависание NFS-сервера в бесконечном цикле на файлах с некорректными метаданными, указывающими на несуществующий том.
  • Исправлены смещения READDIR (cookie) в VitastorFS, иногда приводящие к зацикливаниям NFS-клиентов при чтении каталогов.
  • Исправлено редкое зависание OSD в бесконечном цикле при сбросе журнала (OSD зависал, потребляя 100 % CPU).
  • Исправлено несколько багов, затрагивающих fsync в кластерах без immediate_commit (на SSD без конденсаторов).
  • Исправлена проблема инициализации блочной псевдо-ФС, приводившая к ошибкам ENOENT через некоторое время после запуска.
  • Исправлено замедление и последующее зависание основанных на слиянии операций vitastor-cli (merge, flatten, rm для снимков) при использовании оптимистичных CAS-блокировок.
  • Исправлена валидация опции --block_size в создании/изменении пула в vitastor-cli.
  • Исправлено сравнение TTL при определении неудачных запросов lease/keepalive в OSD.
  • Добавлена поддержка суффиксов размеров в опции vitastor-cli pool-create --block_size.

Ссылки