bigboy-alma-deploy/planning/HARDWARE.md

9.6 KiB

BigBoy Hardware Manifest

Component specifications, UUIDs, network configuration, storage layout


System Specifications

CPU

  • Model: [Not specified in deployment docs]
  • Cores/Threads: [Assumed sufficient for Ollama service overhead + 4GB model inference]
  • Thermal Design: [Review during Phase 11 thermal testing]

GPU (Primary)

  • Model: NVIDIA GeForce RTX 5060 Ti
  • Architecture: Blackwell (sm_120)
  • VRAM: 4GB GDDR6
  • PCIe: 4.0 x16
  • Power Draw: [Typical ~70W gaming, ~50W inference]
  • Driver: 550.90.07+ (precompiled open kernel modules)
  • CUDA Version: 12.6+ (installed via nvidia-driver-cuda)

System RAM

  • Capacity: 16GB
  • Type: [DDR4 or DDR5, not specified]
  • Use: OS (2GB) + Ollama service (4GB) + Open WebUI (1GB) + System buffer (9GB available)

Storage

NVMe (Primary)

Partition Size Purpose Mount Filesystem Compression
NVMe Partition 1 1GB EFI Boot /boot/efi vfat None
NVMe Partition 2 ~499GB OS Root (btrfs) / (via @) btrfs zstd:3

NVMe UUID: 5daac1d7-10b3-498a-82b0-a4498d7e0717

Subvolumes on NVMe:

@              → / (OS root)               compression: zstd:3
@home          → /home (user data)         compression: zstd:3
@nix           → /nix (legacy, unused)     compression: zstd:3
@log           → /var/log (system logs)    compression: zstd:1 (lighter, frequent writes)

SATA Drive 1 (RAG Library)

  • Capacity: [Not specified, assume 1-2TB]
  • UUID: 18b9accd-754a-46f3-b994-da3c7ae795cd
  • Subvolume: @rag-library
  • Mount: /srv/rag-library
  • Compression: zstd:3
  • Mount Options: noatime, nofail (don't block boot if this drive fails)
  • Purpose: Document corpus, RAG indexes, knowledge bases

SATA Drive 2 (Prompt Library)

  • Capacity: [Not specified, assume 1-2TB]
  • UUID: 82a240c4-390a-4167-8232-6a04ce4d84bb
  • Subvolume: @prompt-library
  • Mount: /srv/prompt-library
  • Compression: zstd:1 (frequent write patterns)
  • Mount Options: noatime, nofail
  • Purpose: Prompt history, cached responses, chat logs

SATA Drive 3 (Backup)

  • Capacity: [Not specified, assume 2-4TB]
  • UUID: 15b69400-f1f7-4cfd-82cb-4d1244951503
  • Subvolume: @backup
  • Mount: /srv/backup
  • Compression: zstd:3
  • Mount Options: noatime, nofail
  • Purpose: Borgmatic backups (Phase 10, deferred), local snapshots

SATA Drive 4 (AI Logs)

  • Capacity: [Not specified, assume 1-2TB]
  • UUID: 1e57a52a-9c9d-44ef-a352-3cc542808d13
  • Subvolume: @ai-logs
  • Mount: /srv/ai-logs
  • Compression: zstd:2 (middle ground: logs get compressed, reasonable speed)
  • Mount Options: noatime, nofail
  • Purpose: Ollama inference logs, model loading metrics, thermal data

Network

Interface

  • Primary: enp4s0 (Ethernet)
  • IP Address (Static): 192.168.0.240
  • Netmask: 255.255.255.0 (/24)
  • Gateway: 192.168.0.1
  • DNS: [Configured via DHCP or static, TBD]
  • MAC Address: [Pinned in Phase 9]
  • Network: Fritzy bench LAN (192.168.0.0/24)

Services & Ports

Service Port Network Status
SSH 22 LAN + admin Open
Ollama API 11434 localhost-only Closed to LAN
Open WebUI 8080 LAN (if Phase 8) Open
Cockpit 9090 LAN (optional) Open

Firewall Rules (Phase 9)

Default: DROP
Allow: SSH 22/tcp (LAN)
Allow: OpenWebUI 8080/tcp (LAN)
Allow: Cockpit 9090/tcp (LAN, optional)
Block: Ollama 11434 (localhost-only, reverse proxy if external needed)

Filesystem Layout (Post-Deployment)

/                              (NVMe @)
├── /boot                      → NVMe EFI (kernel, bootloader)
├── /home                      (NVMe @home)
├── /var/log                   (NVMe @log, zstd:1)
├── /nix                       (NVMe @nix, legacy, unused)
├── /srv                       → Data drives
│   ├── /srv/rag-library       (SATA Drive 1 @rag-library, zstd:3)
│   ├── /srv/prompt-library    (SATA Drive 2 @prompt-library, zstd:1)
│   ├── /srv/backup            (SATA Drive 3 @backup, zstd:3)
│   └── /srv/ai-logs           (SATA Drive 4 @ai-logs, zstd:2)
└── /srv/deployment-log        → Phase logs (on NVMe @, zstd:3)

fstab Configuration

# /etc/fstab

# NVMe OS Root (4 subvolumes, all with zstd compression)
UUID=5daac1d7-10b3-498a-82b0-a4498d7e0717  /           btrfs  subvol=@,compress=zstd:3,noatime                   0  0
UUID=5daac1d7-10b3-498a-82b0-a4498d7e0717  /home       btrfs  subvol=@home,compress=zstd:3,noatime               0  0
UUID=5daac1d7-10b3-498a-82b0-a4498d7e0717  /nix        btrfs  subvol=@nix,compress=zstd:3,noatime                0  0
UUID=5daac1d7-10b3-498a-82b0-a4498d7e0717  /var/log    btrfs  subvol=@log,compress=zstd:1,noatime                0  0

# SATA Data Drives (nofail: don't block boot if drive missing)
UUID=18b9accd-754a-46f3-b994-da3c7ae795cd  /srv/rag-library      btrfs  subvol=@rag-library,compress=zstd:3,noatime,nofail      0  0
UUID=82a240c4-390a-4167-8232-6a04ce4d84bb  /srv/prompt-library   btrfs  subvol=@prompt-library,compress=zstd:1,noatime,nofail   0  0
UUID=15b69400-f1f7-4cfd-82cb-4d1244951503  /srv/backup           btrfs  subvol=@backup,compress=zstd:3,noatime,nofail           0  0
UUID=1e57a52a-9c9d-44ef-a352-3cc542808d13  /srv/ai-logs          btrfs  subvol=@ai-logs,compress=zstd:2,noatime,nofail          0  0

Device Mapping Reference

Storage Devices (Post-Kickstart)

/dev/nvme0n1      → NVMe (OS + system)
  /dev/nvme0n1p1  → EFI (1GB vfat)
  /dev/nvme0n1p2  → btrfs root (rest of NVMe)

/dev/sda          → SATA Drive 1 (RAG Library)
/dev/sdb          → SATA Drive 2 (Prompt Library)
/dev/sdc          → SATA Drive 3 (Backup)
/dev/sdd          → SATA Drive 4 (AI Logs)

Note: Device order may vary. Use UUIDs (not /dev paths) in fstab for reliability.


Performance Expectations

Storage Performance

Metric Expected Tuning
btrfs Compression Ratio 30-40% (text/code/logs) zstd:3 typical
Compression CPU Overhead 5-15% Level 3 = good balance
Snapshot Speed Instant (CoW) Metadata flush only
NVMe Bandwidth 3-5 GB/s Sequential, uncompressed
SATA Bandwidth 0.5-1 GB/s Sequential, uncompressed

GPU Performance (RTX 5060 Ti)

Metric Expected
Ollama Mistral 7B ~5-10 tokens/sec (inference)
VRAM Usage ~3.8 GB (near capacity)
GPU Utilization 95%+ during inference
Idle Power ~5W
Inference Power ~50-70W

Thermal Expectations (Phase 11)

Component Idle Inference Load Limit Notes
GPU (RTX 5060 Ti) <40°C <65°C <75°C Baseline in Phase 11
CPU <35°C <55°C <80°C Depends on cooling
Memory <40°C <50°C <70°C Rarely bottleneck

Deployment Artifacts

Kickstart File

  • Path: /home/john/projects/bigboy-setup/alma10-minimal-bigboy.ks
  • Purpose: Unattended OS installation
  • UUIDs Embedded: None (created by Anaconda, then mapped in Ansible)

Ansible Inventory

  • Path: /home/john/projects/bigboy-setup/ansible/inventory.ini
  • Host: 192.168.0.240 (BigBoy on Fritzy bench LAN)
  • SSH: root user, key-based auth
  • Python: /usr/bin/python3

Hardware Variables

  • Path: /home/john/projects/bigboy-setup/ansible/group_vars/bigboy.yml
  • Contents: All UUIDs, drive mappings, GPU settings, Ollama tuning
  • Usage: Sourced by all Ansible roles

Maintenance & Monitoring

Monthly Checks

# Filesystem health
btrfs filesystem usage /
btrfs device stats /

# Storage space by subvolume
du -sh /srv/rag-library /srv/prompt-library /srv/backup /srv/ai-logs

# GPU health
nvidia-smi -q | grep -E "Temperature|Power Draw|VRAM"

# Compression effectiveness
btrfs filesystem usage / | grep "Unallocated"

Quarterly Actions

# Scrub btrfs (check for corruption)
sudo btrfs scrub start /

# Check SMART health
sudo smartctl -H /dev/sda /dev/sdb /dev/sdc /dev/sdd

# Defragment if needed (rare for zstd)
sudo btrfs filesystem defragment -v /srv/rag-library

Annual Review

  • Update kernel
  • Review thermal baseline (compare to Phase 11 baseline)
  • Review backup strategy (if Borgmatic in use)
  • Consider GPU driver update (if new version available)

Hardware Upgrade Path

GPU Addition (If VRAM Bottleneck)

  • Slot: PCIe 4.0 x16 (secondary)
  • Candidate: RTX 4070 Ti (12GB) or RTX 4090 (24GB)
  • Ollama config: Set CUDA_VISIBLE_DEVICES=0,1
  • Load balancing: Requires model routing logic

Storage Addition

  • NVMe: Add 2nd NVMe via M.2 slot (if available)
  • SATA: Cascade to eSATA or USB 3.0 (slower, external)
  • btrfs: Add device: sudo btrfs device add /dev/new /mount/point

RAM Upgrade

  • If Ollama uses >12GB: Add DIMM
  • Typical: 16GB is comfortable for 4GB GPU model serving

Compliance & Documentation

For Disaster Recovery

  • Keep copy of this HARDWARE.md in /srv/backup/
  • Include UUID list in Phase 14 observation runbook
  • Document MAC address pinning decision (Phase 9)

For Audit Trail

  • All hardware changes logged to /srv/deployment-log/
  • Kernel version tracked by systemd logs
  • NVIDIA driver version in nvidia-smi output, logged during Phase 4

Last Updated: 2026-06-27
Next Review: After Phase 11 thermal testing (verify baseline vs. expectations)
Prepared By: Claude Code (@workbench)