- New store fixes: - Fix repeated rollback logic - Fix crash on rolled back object compaction - Fix postpone_load possibly merging different object chains - Fix block_csums import in vitastor-disk write-meta - Fix header checksum after vitastor-disk write-meta - Old store fixes: - Fix batched fsync possibly skipped by some flush coroutines - Improve ENOSPC test, fix possible crash on ENOSPC - Add fsyncs to vitastor-disk prepare - Fix possible crash on pg_lock check failure in sec_read_bmp - Fix VitastorFS initialization when local_reads are enabled
85 lines
2.8 KiB
Markdown
85 lines
2.8 KiB
Markdown
[Documentation](../../README.md#documentation) → Installation → Dockerized Installation
|
|
|
|
-----
|
|
|
|
[Читать на русском](docker.ru.md)
|
|
|
|
# Dockerized Installation
|
|
|
|
Vitastor may be installed in Docker/Podman. In such setups etcd, monitors and OSD
|
|
all run in containers, but everything else looks as close as possible to a usual
|
|
setup with packages:
|
|
- host network is used
|
|
- auto-start is implemented through udev and systemd
|
|
- logs are written to journald (not docker json log files)
|
|
- command-line wrapper scripts are installed to the host system to call vitastor-disk,
|
|
vitastor-cli and others through the container
|
|
|
|
Such installations may be useful when it's impossible or inconvenient to install
|
|
Vitastor from packages, for example, in exotic Linux distributions.
|
|
|
|
If you don't want just a simple containerized installation, you can also take a look
|
|
at Vitastor Kubernetes operator: https://github.com/Antilles7227/vitastor-operator
|
|
|
|
## Installing Containers
|
|
|
|
The instruction is very simple.
|
|
|
|
1. Download a Docker image of the desired version: \
|
|
`docker pull vitalif/vitastor:v3.0.13`
|
|
2. Install scripts to the host system: \
|
|
`docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.13 install.sh`
|
|
3. Reload udev rules: \
|
|
`udevadm control --reload-rules`
|
|
4. Enable the vitastor-host service: \
|
|
`systemctl enable --now vitastor-host`
|
|
|
|
After these steps, you can return to [Quick Start](../intro/quickstart.en.md).
|
|
|
|
## Podman
|
|
|
|
If you use Podman, run the following commands as root before installing Vitastor containers:
|
|
|
|
```
|
|
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
|
|
```
|
|
|
|
Without it, udev fails to do calls into a Podman container and Vitastor disk detection doesn't work.
|
|
|
|
## Upgrading Containers
|
|
|
|
First make sure to check the topic [Upgrading Vitastor](../usage/admin.en.md#upgrading-vitastor)
|
|
to figure out if you need any additional steps.
|
|
|
|
Then, to upgrade a containerized installation, you just need to change the `VITASTOR_VERSION`
|
|
option in `/etc/vitastor/docker.conf` and restart all Vitastor services:
|
|
|
|
`systemctl restart vitastor.target`
|
|
|
|
## QEMU
|
|
|
|
Vitastor Docker image also contains QEMU, qemu-img and qemu-storage-daemon built with Vitastor support.
|
|
|
|
However, running QEMU in Docker is harder to setup and it depends on the used virtualization UI
|
|
(OpenNebula, Proxmox and so on). Some of them also required patched Libvirt.
|
|
|
|
That's why containerized installation of Vitastor doesn't contain a ready-made QEMU setup and it's
|
|
recommended to install QEMU from packages or build it manually.
|
|
|
|
## fio
|
|
|
|
Vitastor Docker image also contains fio and installs a wrapper called `vitastor-fio` to use it from
|
|
the host system.
|