docs(migration): add 1Ti trade storage target on sol

This commit is contained in:
u1
2026-04-12 13:38:29 +00:00
parent 981697aee9
commit a069922f6e

View File

@@ -43,6 +43,9 @@ Date: `2026-04-12`
- Swap total: about `31 GiB` - Swap total: about `31 GiB`
- Swap used: about `13 GiB` - Swap used: about `13 GiB`
- Root filesystem `/`: `btrfs`, about `1.8 TiB` total, about `1.6 TiB` free - Root filesystem `/`: `btrfs`, about `1.8 TiB` total, about `1.6 TiB` free
- `/data/ledger` lives on a separate `1.8 TiB` NVMe device.
- `/data/state` lives on another separate `1.8 TiB` NVMe device.
- The current candidate place for trade persistent storage on `sol` is the root NVMe filesystem `/`, not the validator ledger or accounts devices.
- `agave-validator` RSS: about `129 GiB` - `agave-validator` RSS: about `129 GiB`
- `agave-validator` is already a heavy resident workload and must remain the priority workload on this host. - `agave-validator` is already a heavy resident workload and must remain the priority workload on this host.
@@ -221,12 +224,21 @@ Date: `2026-04-12`
### 12. Define a dedicated storage path or device for trade data on `mevnode` ### 12. Define a dedicated storage path or device for trade data on `mevnode`
- Pending. - Pending.
- Current preferred target layout on `sol` is to place trade persistent storage on the root NVMe filesystem `/`, because validator ledger and validator state already have their own dedicated devices.
- Do not place `Postgres` or `Redis` on `/data/ledger` or `/data/state`.
- Reserve a dedicated `1 TiB` storage budget for `Postgres` on `sol` as the first target sizing for `R001`.
- Reserve a separate small storage budget for `Redis` on `sol`, initially `2 GiB` unless persistence requirements change.
- Prefer a dedicated path such as `/srv/trade/postgres` and `/srv/trade/redis` over implicit storage under `/var/lib/rancher/k3s/storage`.
- On the current `btrfs` root filesystem, the preferred implementation path is a dedicated subvolume plus enforced `qgroup` quota for each persistent component.
### 13. Define hard storage quotas and monitoring for trade data on `mevnode` ### 13. Define hard storage quotas and monitoring for trade data on `mevnode`
- Pending. - Pending.
- Use enforceable limits, not only declarative PVC sizes without backend enforcement. - Use enforceable limits, not only declarative PVC sizes without backend enforcement.
- Add warning and critical thresholds for disk usage, inode usage, and PVC growth. - Add warning and critical thresholds for disk usage, inode usage, and PVC growth.
- Target hard quota for `Postgres` on `sol`: `1 TiB`.
- Target hard quota for `Redis` on `sol`: `2 GiB` unless later requirements justify persistence growth.
- Keep enough unallocated free space on the root NVMe for the OS, `k3s`, container images, logs, and rollback operations after trade quotas are reserved.
### 14. Define CPU and memory reservations that protect `agave-validator` ### 14. Define CPU and memory reservations that protect `agave-validator`
@@ -252,6 +264,7 @@ Date: `2026-04-12`
- Pending. - Pending.
- Bring up the data plane first: `Postgres` and `Redis`. - Bring up the data plane first: `Postgres` and `Redis`.
- Validate persistence, storage placement, service discovery, restart behavior, and cold start. - Validate persistence, storage placement, service discovery, restart behavior, and cold start.
- Validate that `Postgres` lands on the dedicated `1 TiB` trade storage area and that `Redis` lands on its separate small quota before application rollout.
- Do not install application components until `Postgres` and `Redis` are healthy. - Do not install application components until `Postgres` and `Redis` are healthy.
### 19. Prepare a minimal canary namespace for trade on `mevnode` ### 19. Prepare a minimal canary namespace for trade on `mevnode`