- Antietcd is now officially safe to use: the release includes a fixed version of antietcd which passes Jepsen transaction serializability tests. - Fix a huge checksum bug in the old store: incorrect checksums for small initial writes. The bug affected writes of exactly csum_block_size (4k by default) into new (unallocated) objects and generated invalid checksums in the store for the written 4k block. Moreover, generation of these invalid checksums was very slow because it was calculating CRC32 for 4 GB of zeroes. If the block wasn't then overwritten as a part of a larger write request it became unreadable even though the stored data was correct. The bug affected all versions since 1.0.0, or since 2.3.0 because vitastor-disk didn't allow to enable checksums prior to 2.3.0 because of another bug. O:-) - Prevent OSD disconnections due to long blocking of event-loop caused by PG resharding (moving objects between old and new PGs in memory) when changing pool PG count or just on restart of an OSD with a large database (for example, with a filled 8 TB SSD). The issue should now be fixed because OSD now performs resharding in chunks with pauses between chunks. - Prevent pools stuck in paused state on an aborted PG count change. - Fix a possible OSD crash with "division by zero" when trying to handle an operation before pool PG count is applied to the in-memory store.
2.3 KiB
Documentation → Installation → Dockerized Installation
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.
- Download a Docker image of the desired version:
docker pull vitalif/vitastor:v3.0.2 - Install scripts to the host system:
docker run --rm -it -v /etc:/host-etc -v /usr/bin:/host-bin vitalif/vitastor:v3.0.2 install.sh - Reload udev rules:
udevadm control --reload-rules
And you can return to Quick Start.
Upgrading Containers
First make sure to check the topic 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.