diff --git a/doc/migration-todo.md b/doc/migration-todo.md index fbaab05..01229f2 100644 --- a/doc/migration-todo.md +++ b/doc/migration-todo.md @@ -43,6 +43,9 @@ Date: `2026-04-12` - Swap total: about `31 GiB` - Swap used: about `13 GiB` - 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` 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` - 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` - Pending. - Use enforceable limits, not only declarative PVC sizes without backend enforcement. - 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` @@ -252,6 +264,7 @@ Date: `2026-04-12` - Pending. - Bring up the data plane first: `Postgres` and `Redis`. - 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. ### 19. Prepare a minimal canary namespace for trade on `mevnode`