Записи до 05.11.2023

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

Поддержка снапшотов и расширения томов в CSI и важное исправление для EC n+k при k>=2.

05.11.2023 Читать далее →

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

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

  • Клиентская буферизация записи. Да здравствуют попугаи в CrystalDiskMark! :D
  • Третий режим I/O - O_DIRECT|O_SYNC (подходящий для Intel Optane).
  • Вынес в отдельную настройку интервал отправки статистики в etcd - etcd_stats_interval (30 секунд по умолчанию).
  • В монитор добавлена автоматическая фильтрация OSD по block_size/immediate_commit/bitmap_granularity, чтобы потом на стороне OSD не было ошибок “refusing to start PGs of this pool”.
  • В драйвер fio добавлена возможность запуска в системах без io_uring.
  • В драйвер QEMU добавлена поддержка QEMU 8.1.
  • Добавлена документация vhost-user-blk.

27.10.2023 Читать далее →

Как сделаны снимки дисков в Vitastor

Вообще, в природе существует всего 3 пути реализации снимков (снапшотов): “вперёд”, “назад” и “cow”. А ещё нормальные снимки должны быть атомарные. Что это всё означает?

30.08.2023 Читать далее →

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

  • Исправлено зануление раздела в vitastor-disk (записываемый буфер не обнулялся, посему иногда вместо нулей мета и журнал инициализировались мусором).
  • Исправлена некорректная статистика места в EC-пулах в vitastor-cli status
  • Несколько исправлений для NFS. Вкратце - теперь NFS, смонтированный из Linux, не подвисает, а запись файлов с расширением их размера обрабатывается как надо 😊
    • В листинги каталогов добавлены записи . и …
    • Теперь записи возвращают FILE_SYNC, если включён immediate_commit
    • Теперь в запросах NFS COMMIT и в NFS WRITE возвращается одно значение “verifier”
    • Параллельные расширяющие файл записи теперь обрабатываются корректно, без конфликтов, и без дополнительной нагрузки на etcd
  • Учёт UTF-8 в табличном форматировании vitastor-cli ls
  • Приравнивание “0” и “no” к “false” для inmemory_metadata и inmemory_journal (до этого подходило только “false”)
  • Исправлено отсутствие применения HDD-настроек vitastor-disk к, собственно, HDD (но не гибридным) OSD.

29.07.2023 Читать далее →

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

  • Контрольные суммы данных и метаданных!
    • Контрольные суммы метаданных - на новых OSD будут включены всегда, диски старых OSD продолжат работать без изменений.
    • Контрольные суммы данных - по умолчанию отключены, включаются параметром --data_csum_type crc32c для новых OSD.
    • Блок чексуммы настраивается
    • inmemory_metadata=false позволяет отключить постоянное хранение чексумм в памяти.
    • С блоком по умолчанию (4 КБ) чексуммы добавляют потребление 1 ГБ памяти на 1 ТБ места на диске.
    • Подробности в документации.
  • Поддержка кэшированного ввода-вывода через Linux page cache (O_SYNC вместо O_DIRECT), которую можно включить отдельно для данных и/или метаданных и/или журнала.

Релиз также включает исправления багов из 0.9.6.

0.9.6 перемещён в репозитории “oldstable” и будет оставаться доступным ещё некоторое время.

29.07.2023 Читать далее →

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

Всего 1 исправление - исправил 100% жор CPU в интеграции io_uring в новый драйвер QEMU. Не был учтён момент, что eventfd, оказывается, ещё и сбрасывать нужно, LOL 🤣🤣

Ну, зато из плюсов - иопсы ещё чуть подросли. На моём локалхосте с прошлым 100% CPU “busy loop”-ом получалось 90к иопс, а сейчас все 100к! QEMU пересборки не требует, для фикса достаточно обновить vitastor-client.

20.07.2023 Читать далее →

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

  • Улучшена производительность драйвера QEMU путём интеграции в него io_uring (у меня на локалхосте iops-ы выросли примерно с 50000 до 90000)
  • Поправлено подвисание qemu-img, начавшее иногда возникать после фикса iothread в 0.9.3
  • Пакеты QEMU с исправлениями пересобраны под все версии Debian и RHEL и под Proxmox 8.0, 7.4, 7.3 и 6.4
  • Пара мелких исправлений в клиенте (vitastor-cli ls падал на неизвестных пулах, vitastor-cli status мог показывать больше etcd, чем задано в конфиге)
  • Монитор теперь удаляет статистику удалённых пулов из /pool/stats/
  • Изменены настройки etcd по умолчанию в make-etcd для снижения потребления памяти
  • OSD научились не падать, когда etcd при перезапуске обрубал подписки через “revisions were compacted”
  • И пара мелких исправлений в дисковом слое (одно подвисание и одно падение), воспроизводившиеся на HDD с мелким журналом и большими (512 кб, 900 кб) случайными записями
  • В документацию добавлены заметки про HDD. Судя по данным тестов, Vitastor теперь официально разрешено юзать с HDD-only, особенно если HDD нормальные (HGST, Toshiba MG, EXOS)

18.07.2023 Читать далее →

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

  • Добавлен патч для libvirt 9.0.
  • Добавлена поддержка Proxmox VE 8.0.
  • Исправлена давняя несовместимость QEMU-драйвера с отдельным iothread (пакеты QEMU будут обновлены постепенно).
  • Разрешено удаление образов в грязном кластере (при остановленных OSD) - пока что ценой возможного появления мусора после поднятия лежавших OSD и необходимости подчищать этот мусор через vitastor-cli rm-data (мусор будет видно в выводе vitastor-cli ls).
  • Исправлена кучка багов слияния снапшотов, ну и добавлены тесты, чтобы оные баги к нам уже не вернулись.
  • Исправлено одно иногда воспроизводившееся use-after-free… точнее, sendmsg()-after-free :), приводившее к потенциально некорректным чтениям битмапов выделенных блоков. В общем-то, это тоже влияло на слияние снапшотов.
  • Удалён путь /usr/local/bin из make-etcd.
  • Исправления документации.

01.07.2023 Читать далее →

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

  • Исправлен не всегда работающий автозапуск скрабов и добавлен сбор и вывод статистики I/O скраба (сколько сейчас МБ/с скрабится).
  • Улучшена агрегация статистики, до этого vitastor-cli status мог один раз писать 10 МБ/с, а потом 800 МБ/с, хотя среднее было, скажем, 400 МБ/с. То есть, агрегация стала более равномерной. Суть исправления - считать производную, а потом суммировать, а не суммировать, а потом считать производную.
  • Исправлен один ОЧЕНЬ ВАЖНЫЙ баг - редко воспроизводящийся, зато могущий приводить к повреждению журнала, при этом, по-видимому, наличествовавший в коде с начала начал. Обязательно обновитесь, и если считаете, что наступили на этот баг - воспользуйтесь scrub-ом для поиска повреждённых блоков.
  • Теперь EC PG не активируются без как минимум <число частей данных> живых OSD в каждом из предыдущих наборов OSD (что предотвращает временно происходящие ошибки EIO с EC при перезапусках PG).
  • Исправлена ошибка assert(!scrub_list_op) при перезапуске OSD и наличии скрабов в очереди.
  • Добавлены пакеты для Debian 12 Bookworm.

18.06.2023 Читать далее →

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

  • Исправлены ошибки “Client XX command out of sync”, иногда происходившие при переподключениях OSD.
  • Исправлена ошибка, при которой чтения EC объектов, параллельные с записями в тот же объект, могли валиться с ошибкой ERANGE.
  • Немного уменьшен объём записей метаданных при сбросе журнала.
  • Исправлено отмонтирование NBD-томов, когда Proxmox принудительно использует map_volume (с SWTPM и, возможно, в других похожих случаях).

10.06.2023 Читать далее →

← Более новые записи Более старые записи →