mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-30 18:56:16 +00:00
chore(infra): bootstrap racknerd and configure multi-node garage cluster
- Bootstrapped microvm-racknerd node on its live Tailscale IP 100.80.39.40. - Connected racknerd to the central QFox cluster. - Assigned racknerd to its own vps zone with 1G capacity. - Made garage-cluster-init.sh robust and idempotent. - Updated comments and topology mappings. Build: 3313 jobs, 0 errors (lake build)
This commit is contained in:
parent
aff285be30
commit
d9a647cb4d
4 changed files with 19 additions and 7 deletions
|
|
@ -86,7 +86,7 @@ Dynamo-style S3-compatible store written in Rust. Replaced rclone serve s3.
|
|||
| 361395-1 (old cupfox) | 100.110.163.82 | Netcup VPS, 2 vCPU EPYC-Genoa | 125 GB | key OK (recovered) |
|
||||
| rs-vps (netcup) | — | Lean LSP, Python LSP, Ollama, Jellyfin, k3s (ARM64) | 2 TB | SSH via password (creds in 1Password) |
|
||||
| nixos-laptop | 100.102.173.61 | Authentik SSO, Uptime Kuma, storage node, AMD GPU compute | 459 GB NVMe | key OK |
|
||||
| microvm-racknerd | 100.101.247.127 | Caddy reverse proxy, Homer dashboard, chat placeholder, auth alias | 9.1 GB | root password OK |
|
||||
| microvm-racknerd | 100.80.39.40 | Caddy reverse proxy, Homer dashboard, chat placeholder, storage node (RackNerd VPS) | 9.1 GB | key OK |
|
||||
| nixos-steamdeck-1 | 100.85.244.73 | GPU compute, planned edge LLM (3B-7B), RDNA 2 | NixOS | just onboarded |
|
||||
| dracocomp | 100.100.140.27 | offline | — | unreachable (3+ days)
|
||||
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ $G layout show 2>&1
|
|||
LAYOUT_VERSION=$($G layout show 2>&1 | grep "^Current cluster layout version" | awk '{print $NF}' || echo 1)
|
||||
NEXT_VERSION=$((LAYOUT_VERSION + 1))
|
||||
|
||||
$G status 2>&1 | grep "NO ROLE ASSIGNED" | awk '{print $1}' | while read node_id; do
|
||||
$G status 2>&1 | (grep "NO ROLE ASSIGNED" || true) | awk '{print $1}' | while read node_id; do
|
||||
HOSTNAME=$($G status 2>&1 | grep "$node_id" | awk '{print $2}')
|
||||
# Assign zone: VPS nodes get zone=vps, local Tailscale nodes get zone=local
|
||||
if echo "$HOSTNAME $node_id" | grep -qi "microvm\|racknerd\|vps"; then
|
||||
|
|
@ -92,8 +92,9 @@ $G status 2>&1 | grep "NO ROLE ASSIGNED" | awk '{print $1}' | while read node_id
|
|||
done
|
||||
|
||||
# ── 4. Bump replication factor if enough nodes ────────────────────────────────
|
||||
if [ "$HEALTHY_NODES" -ge 3 ]; then
|
||||
log "3+ nodes available — bumping replication_factor to 3"
|
||||
CURRENT_RF=$(grep -E 'replication_factor[[:space:]]*=[[:space:]]*[0-9]+' /etc/garage/garage.toml | grep -o '[0-9]\+' || echo 1)
|
||||
if [ "$HEALTHY_NODES" -ge 3 ] && [ "${CURRENT_RF}" -lt 3 ]; then
|
||||
log "3+ nodes available and replication_factor < 3 — bumping replication_factor to 3"
|
||||
sudo sed -i 's/replication_factor = 1/replication_factor = 3/' /etc/garage/garage.toml
|
||||
# Remove old layout so it can be recreated with rf=3
|
||||
sudo systemctl stop garage
|
||||
|
|
@ -102,7 +103,7 @@ if [ "$HEALTHY_NODES" -ge 3 ]; then
|
|||
sleep 3
|
||||
# Re-assign all roles
|
||||
log "Re-assigning all layout roles for rf=3..."
|
||||
$G status 2>&1 | grep "NO ROLE ASSIGNED" | awk '{print $1}' | while read node_id; do
|
||||
$G status 2>&1 | (grep "NO ROLE ASSIGNED" || true) | awk '{print $1}' | while read node_id; do
|
||||
$G layout assign "$node_id" --zone local --capacity 200G 2>&1 || true
|
||||
done
|
||||
# Assign primary separately
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@
|
|||
# Cluster topology (all nodes communicate over Tailscale mesh):
|
||||
# qfox-1 100.88.57.96 this machine — primary S3 endpoint
|
||||
# 361395-1 100.110.163.82 Debian 13 / Netcup VPS (old cupfox, reinstalled)
|
||||
# nixos-laptop 100.119.165.120 NixOS / storage node
|
||||
# microvm-racknerd 100.101.247.127 Debian VM / RackNerd VPS
|
||||
# nixos-laptop 100.102.173.61 NixOS / storage node
|
||||
# microvm-racknerd 100.80.39.40 Debian VM / RackNerd VPS
|
||||
# dracocomp 100.100.140.27 offline (last seen 2d ago)
|
||||
|
||||
metadata_dir = "/var/lib/garage/meta"
|
||||
|
|
|
|||
11
4-Infrastructure/storage/node-registry.json
Normal file
11
4-Infrastructure/storage/node-registry.json
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
[
|
||||
{
|
||||
"hostname": "100.80.39.40",
|
||||
"tailscale_ip": "100.80.39.40",
|
||||
"ssh_user": "root",
|
||||
"ssh_port": 22,
|
||||
"garage_node_id": "1951197c0ce140a7724155d0d68db490682fa3b63f8cc98acdceb8c7b1d41766@100.80.39.40:3901",
|
||||
"garage_data_dir": "/var/lib/garage/data",
|
||||
"added_at": "2026-05-31T07:03:13.628137+00:00"
|
||||
}
|
||||
]
|
||||
Loading…
Add table
Reference in a new issue