- Fix broken garbage collection in the new store leading to very high memory usage - Make the new store do full garbage collection on OSD startup by default (can be turned off with a new gc_on_start parameter) - Make startup logging with the new store more informative, allow to log amount of garbage with log_level > 1 - Fix clients reading from snapshots incorrectly on retries (for example when OSDs were restarted during read) - Fix a possible "send-after-free" in OSD which could probably also affect snapshot reads - Fix OSD crashing when handling a read_bitmap operation from a deleted object with the new store
4.4 KiB
Документация → Установка → Установка в Docker
Установка в Docker
Vitastor можно установить в Docker/Podman. При этом etcd, мониторы и OSD запускаются в контейнерах, но всё остальное выглядит максимально приближенно к установке из пакетов:
- используется сеть хост-системы
- для автозапуска используются udev и systemd
- журналы записываются в journald (не в json-файлы журналов docker)
- в хост-систему устанавливаются обёртки для вызова консольных инструментов vitastor-disk, vitastor-cli и других через контейнер
Такая установка полезна тогда, когда установка из пакетов невозможна или неудобна, например, в нестандартных Linux-дистрибутивах.
Если вам нужна не просто контейнеризованная инсталляция, вы также можете обратить внимание на Vitastor Kubernetes-оператор: https://github.com/Antilles7227/vitastor-operator
Установка контейнеров
Инструкция по установке максимально простая.
- Скачайте Docker-образ желаемой версии:
docker pull vitalif/vitastor:v3.0.9 - Установите скрипты в хост-систему командой:
docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.9 install.sh - Перезагрузите правила udev:
udevadm control --reload-rules - Включите сервис vitastor-host:
systemctl enable --now vitastor-host
После этого вы можете возвращаться к разделу Быстрый старт.
Podman
Если вы используете Podman, перед установкой контейнеров Vitastor выполните следующие команды от имени суперпользователя:
ln -s podman /usr/bin/docker
mkdir -p /etc/systemd/system/systemd-udevd.service.d
cat >/etc/systemd/system/systemd-udevd.service.d/override.conf <<EOF
[Service]
CapabilityBoundingSet=~
SystemCallFilter=@mount capset
EOF
systemctl daemon-reload
systemctl restart systemd-udevd
Без этих настроек udev не может делать вызовы внутрь Podman-контейнеров и определение дисков Vitastor не работает.
Обновление контейнеров
Сначала обязательно проверьте раздел Обновление Vitastor, чтобы понять, не требуются ли вам какие-то дополнительные действия.
После этого для обновления Docker-инсталляции вам нужно просто поменять опцию VITASTOR_VERSION
в файле /etc/vitastor/docker.conf и перезапустить все сервисы Vitastor командой:
systemctl restart vitastor.target
QEMU
В Docker-образ также входят QEMU, qemu-img и qemu-storage-daemon, собранные с поддержкой Vitastor.
Однако настроить запуск QEMU в Docker сложнее и способ запуска зависит от используемого интерфейса виртуализации (OpenNebula, Proxmox и т.п.). Также для OpenNebula, например, требуется патченый Libvirt.
Поэтому по умолчанию Docker-сборка пока что не включает в себя готового способа запуска QEMU и QEMU рекомендуется устанавливать из пакетов или собирать самостоятельно.
fio
fio также входит в Docker-контейнер vitastor, и в хост-систему устанавливается обёртка vitastor-fio
для запуска fio в контейнер.