Skip to content

Commit bc9b82e

Browse files
committed
Update README
1 parent 5db2e8c commit bc9b82e

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Micro-VM pool management via [Firecracker](https://github.com/firecracker-microv
77
- [Quick install](#quick-install)
88
- [Development](#development)
99
- [System requirements](#system-requirements)
10+
- [Why ZFS?](#why-zfs)
1011
- [Configuration](#configuration)
1112
- [CLI Usage](#cli-usage)
1213
- [Start a VM](#start-a-vm)
@@ -73,6 +74,16 @@ sudo apt install iptables debootstrap zfs-dkms zfsutils-linux
7374
sudo modprobe kvm kvm_amd zfs # or `kvm_intel`
7475
```
7576

77+
## Why ZFS?
78+
79+
ZFS is a natural fit for Firecracker VM storage for several reasons:
80+
81+
**Instant clones via Copy-on-Write** — ZFS dataset clones let you spin up a new VM from a base rootfs in seconds. The clone initially shares all blocks with its parent, so disk space only grows as the VM writes data that differs from the base image.
82+
83+
**Customizable base images** — You can snapshot a customized VM and promote it as the new rootfs version. Future VMs clone from the new version while existing VMs are unaffected.
84+
85+
**ZFS at the filesystem level** — Transparent LZ4 compression reduces storage overhead with negligible CPU cost. Checksummed blocks protect against silent data corruption. Datasets can be streamed via `zfs send`/`zfs receive` for backups, replication, or moving VM storage across hosts.
86+
7687
## Configuration
7788

7889
All configuration is stored in `$VUME_HOME/vume.toml` (default: `/opt/vume/vume.toml`).

0 commit comments

Comments
 (0)