Give `river` a dedicated RDMA VF and two RSTP trunk attachments. Keep client services on the router VIPs and carry Digiweb VLANs over both switch paths. Set VF trust, multicast reception, bridge MAC and ARP behavior for local switching. Wait for Kea interface readiness and apply RSTP costs through `mstpd` despite port-registration and rename races. Load `palace`'s RAID module in the initrd. Record RouterOS and RouterBOOT upgrades and validate port, carrier and switch outages. Document the deployed architecture, interface handoffs and recovery procedures. Add physical socket maps, NIC capacities and cable connections alongside the logical topology and failover checks.
3.4 KiB
3.4 KiB
sfh
"Shill from home" — the NixOS container host for the home site. A VM on palace that netboots
from river and runs its root off NVMe-oF from cellar.
- Source:
nixos/boxes/home/palace/vms/sfh/(default.nix,containers/) - Host: VM on
palace - nixpkgs:
mine
Role
- Runs the home NixOS containers via
my.containers.instances(systemd-nspawn); each container is its ownnixos.systems.*entry rendered throughmy.asContainer. - Netboot client (
my.netboot.client.enable): the VM has no boot disk — itsnetbootNIC on palace'slan-lobridge is matched by a kea client-class onriverand iPXE-boots fromboot.h.nul.ie. - Root on NVMe-oF:
my.nvme.bootconnects tonqn.2016-06.io.spdk:sfh(cellar, RDMA) from the initrd (lan-hiup +roceBootModules);/nixand/persistare LVs on that volume.KeepConfiguration=staticonlan-hiprotects the NVMe-oF address from networkd reconfigures. - Frigate footage disk: palace passes the
hdds/frigateLVM LV through as a virtio disk; sfh mounts it at/mnt/frigate(by label) and bind-mounts it into thehasscontainer at/var/lib/frigate. - USB: two host ports are passed to the VM (qemu flags) for the Zigbee coordinator and webcam used
by
hass; the nspawn unit getsDeviceAllowforchar-ttyUSBandchar-video4linux.
Network assignments
See the consolidated network assignments table (this box: sfh).
Networking
| Interface | palace attachment |
Purpose |
|---|---|---|
lan-hi |
sfh-hi SR-IOV VF 2 |
Box's hi assignment and NVMe/RDMA root path; MTU 9000 |
ctrs-hi |
sfh-ctrs SR-IOV VF 3 |
L3-less MACVLAN parent for each container's host0; MTU 9000 |
ctrs-core |
Virtio via sfh-core-tap, lan-core and host-jim |
L3-less MACVLAN parent for UniFi's lan-core management attachment |
ctrs-lo |
Virtio via sfh-lo-tap, lan-lo and host-jim |
L3-less MACVLAN parent for hass's lan-lo and the VM's PXE path |
The two VFs separate the box's RDMA root traffic from container hi traffic; they do not provide
redundant switch paths. The Virtio attachments reach the jim-facing palace host bridges. Container
host0 names are intentionally unchanged.
The per-container MACVLAN wiring lives in systemd.nspawn.*.networkConfig in
sfh/default.nix. The
palace interface topology traces these interfaces
back through the VM handoffs to the physical switch connections.
Containers
| Container | Role |
|---|---|
hass |
Home Assistant + Frigate + MQTT |
unifi |
UniFi controller |
Notable config files
nixos/boxes/home/palace/vms/sfh/default.nix— box config: netboot/NVMe-oF boot, container instances, MACVLAN plumbing, Frigate disk.nixos/boxes/home/palace/vms/sfh/containers/— the container system definitions.nixos/boxes/home/palace/vms/default.nix— the VM definition onpalace(VFs, USB passthrough, netboot NIC,hdds/frigatedisk).