Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vm-reactor:start [02.11.2026 04:18] – VM Reactor 0.17 aria | vm-reactor:start [07.11.2026 19:51] (current) – stratum-core instead of stratum-init aria | ||
|---|---|---|---|
| Line 12: | Line 12: | ||
| <WRAP centeralign> | <WRAP centeralign> | ||
| - | **VM Reactor 0.17 – Technical Preview** · Debian 13 (trixie) and Debian 14 (forky) · amd64 and arm64 · free software (GPL-3+) · package '' | + | **VM Reactor 0.24 – Technical Preview** · Debian 13 (trixie) and Debian 14 (forky) · amd64 and arm64 · free software (GPL-3+) · package '' |
| </ | </ | ||
| Line 20: | Line 20: | ||
| <WRAP center round info 80%> | <WRAP center round info 80%> | ||
| - | **A contrib package of the Stratum repository.** VM Reactor is published in the component //contrib// of the Stratum repository, next to the Stratum modules in //main//. It builds on Stratum – it needs '' | + | **A contrib package of the Stratum repository.** VM Reactor is published in the component //contrib// of the Stratum repository, next to the Stratum modules in //main//. It builds on Stratum – it needs '' |
| </ | </ | ||
| Line 49: | Line 49: | ||
| <grid cols=" | <grid cols=" | ||
| <col> | <col> | ||
| - | <card header=" | + | <card header=" |
| - | Guests, ISO images, LXC templates and backups in the storage you choose: a directory, | + | Guests, ISO images, LXC templates and backups in the storage you choose: a directory, |
| </ | </ | ||
| </ | </ | ||
| Line 159: | Line 159: | ||
| | System | **Debian 13 (trixie)** or **Debian 14 (forky)**, '' | | System | **Debian 13 (trixie)** or **Debian 14 (forky)**, '' | ||
| | Virtualization | **VT-x / AMD-V** switched on in the firmware for KVM machines; without it, machines run emulated and slowly (containers and applications do not need it) | | | Virtualization | **VT-x / AMD-V** switched on in the firmware for KVM machines; without it, machines run emulated and slowly (containers and applications do not need it) | | ||
| - | | Stratum | '' | + | | Stratum | '' |
| | Memory and disk | Enough for the host and all guests; memory compression, | | Memory and disk | Enough for the host and all guests; memory compression, | ||
| | Browser | Any current browser; the web interface uses HTTPS on port '' | | Browser | Any current browser; the web interface uses HTTPS on port '' | ||
| Line 174: | Line 174: | ||
| </ | </ | ||
| - | Sources written by older versions of '' | + | Sources written by older versions of '' |
| ==== 2. Install the package ==== | ==== 2. Install the package ==== | ||
| Line 247: | Line 247: | ||
| | **NAT** (bridge '' | | **NAT** (bridge '' | ||
| | **Local network** | its own address in your LAN (machines: macvtap, containers: macvlan) – the host itself cannot reach these guests | | | **Local network** | its own address in your LAN (machines: macvtap, containers: macvlan) – the host itself cannot reach these guests | | ||
| - | | **Bridge** | a bridge on a network card ('' | + | | **Bridge** | a bridge on a network card ('' |
| | **Internal bridge** | a bridge without a network card – guests talk only to each other | | | **Internal bridge** | a bridge without a network card – guests talk only to each other | | ||
| | **Applications** | the front service of a Docker application joins the NAT network (Docker network '' | | **Applications** | the front service of a Docker application joins the NAT network (Docker network '' | ||
| Every guest also has its own **firewall** (nftables on the bridge): policies, rules and protection against address spoofing. With '' | Every guest also has its own **firewall** (nftables on the bridge): policies, rules and protection against address spoofing. With '' | ||
| + | |||
| + | **Protection against lock-out.** A change of the NAT network, of a bridge on a network card or of the access to the web interface (port, address, allowed networks under **Settings – General**) must be kept within **60 seconds**: a banner with the countdown and **Keep the change** appears on every page. Confirm it from the browser over the new configuration; | ||
| ==== Storage ==== | ==== Storage ==== | ||
| Line 260: | Line 262: | ||
| < | < | ||
| local dir / | local dir / | ||
| + | data btrfs / | ||
| thin lvmthin / | thin lvmthin / | ||
| </ | </ | ||
| </ | </ | ||
| - | Types: '' | + | **Add storage** offers four types; the dialog checks your entries at once and shows what is wrong: |
| + | |||
| + | * **Directory** – any mounted directory: a second disk, an existing btrfs file system or an NFS share the host mounts itself. VM Reactor recognises the file system: on btrfs the guests get subvolumes and snapshots, on an NFS share the storage is offline while the share is not there. | ||
| + | * **Btrfs pool** – a new btrfs file system on one or more empty disks or partitions: **single**, **RAID 0**, **RAID 1** (2+ disks), **RAID 1C3** (3 copies, 3+ disks) or **RAID 10** (4+ disks). RAID 5/6 are not offered – their write hole can lose data. The metadata always have two copies at least. Compression zstd, checksums with self-repair from the copies, instant snapshots of every guest (its own subvolume), clones as reflinks; disks of machines are raw files (optionally without copy-on-write). **Disks** on the card adds, removes and replaces disks – also a failed or missing one – converts the profile, starts a scrub or a balance and mounts a pool with a missing disk degraded, all while the guests keep running. VM Reactor watches the pools (missing disks, device errors, scrub results) and runs a scrub every 30 days. | ||
| + | * **LVM thin pool** – a new thin pool on one or more empty disks (or an existing one such as '' | ||
| + | | ||
| + | |||
| + | <card header=" | ||
| + | <code bash> | ||
| + | vm-reactor storage list # all storages: type, state, size, free space | ||
| + | vm-reactor storage add data btrfs /dev/sdb /dev/sdc --profile raid1 --yes # a btrfs pool, RAID 1 | ||
| + | vm-reactor storage disk add data /dev/sdd --yes # one more disk, the data are spread | ||
| + | vm-reactor storage profile data raid1c3 | ||
| + | vm-reactor storage disk replace data /dev/sdb /dev/sde --yes # replace | ||
| + | vm-reactor storage scrub data # check every block, repair from the copies | ||
| + | vm-reactor storage disk list data # disks, errors, the last scrub | ||
| + | vm-reactor storage add thin lvmthin --new /dev/sdf --yes # an LVM thin pool | ||
| + | vm-reactor storage add share nfs 10.0.0.5:/ | ||
| + | </ | ||
| + | </ | ||
| ==== Backups and restore ==== | ==== Backups and restore ==== | ||
| Line 364: | Line 386: | ||
| VM Reactor is updated with APT like every other package ('' | VM Reactor is updated with APT like every other package ('' | ||
| + | |||
| + | **Optional packages** (**Settings – Packages**, one click each): '' | ||
| + | |||
| + | VM Reactor is written in **Go** – the server, the API and the command line are one Go program; the web interface uses Vue.js. | ||
| ===== VM Reactor Handbook ===== | ===== VM Reactor Handbook ===== | ||
| Line 388: | Line 414: | ||
| <card header=" | <card header=" | ||
| **[[https:// | **[[https:// | ||
| - | Draft · November 2026 · VM Reactor 0.08 · Stratum Project \\ | + | Draft · November 2026 · VM Reactor 0.24 · Stratum Project \\ |
| - | On a VM Reactor host: '' | + | On a VM Reactor host: '' |
| </ | </ | ||
| </ | </ | ||