a7ea91f529
Add a top-level `README.md` mapping the boxes and per-machine docs under `docs/boxes/` (grouped `colony/`, `home/`, `misc/`), one file per host, VM and container documenting role, services and networking with source pointers. Also point `AGENTS.md` at the new docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# cellar
|
|
|
|
The home storage server. Exports fast NVMe storage over the network so other
|
|
machines (notably `castle`) can boot and run from it.
|
|
|
|
- **Source:** [`nixos/boxes/home/palace/vms/cellar/`](../../../nixos/boxes/home/palace/vms/cellar)
|
|
(`default.nix`, `spdk.nix`)
|
|
- **Host:** VM on `palace` (NVMe drives passed through)
|
|
- **Deploy address:** `192.168.68.80`
|
|
|
|
## Role
|
|
|
|
- Runs **SPDK** ([`spdk.nix`](../../../nixos/boxes/home/palace/vms/cellar/spdk.nix)) as
|
|
a userspace storage target. The kernel `nvme` driver is blacklisted so SPDK can
|
|
drive the NVMe devices directly (attached by PCI BDF).
|
|
- Builds a **RAID0** (`NVMeRaid`) across three NVMe drives, partitioned into three
|
|
namespaces, and exports each as an **NVMe-oF target over RDMA** (port 4420) on
|
|
the high-speed home network — one namespace per consumer:
|
|
|
|
| Namespace | NQN | Consumer |
|
|
| --- | --- | --- |
|
|
| `NVMeRaidp1` | `nqn.2016-06.io.spdk:river` | [`river`](river.md) |
|
|
| `NVMeRaidp2` | `nqn.2016-06.io.spdk:castle` | [`castle`](castle.md) |
|
|
| `NVMeRaidp3` | `nqn.2016-06.io.spdk:sfh` | [`sfh`](sfh.md) |
|
|
|
|
Each client is pinned by `hostnqn`, so `river`, `castle` and `sfh` all run their
|
|
storage off `cellar` over the network.
|
|
|
|
## Networking
|
|
|
|
- Exports on the high-speed home network (`lan-hi` / the `hi` assignment) over
|
|
RDMA; the SPDK target waits for that link to be online before starting.
|
|
|
|
## Notes
|
|
|
|
- The `ublk_*` calls in `my.spdk.debugCommands` are **only a debugging script** —
|
|
they let you create a local ublk block device to mount and inspect the RAID on
|
|
`cellar` itself. They are **not** how storage is exported to clients; that is the
|
|
`nvmf` config above.
|