System Prerequisites & Hardware Sizing
Hardware prerequisites, CPU SIMD flags, RAM calculation, storage media, and networking matrices.
Aarkam is architected for bare-metal, virtualized, and air-gapped high-assurance environments. To ensure maximum throughput for Cauchy Reed-Solomon erasure coding and unbuffered Direct I/O, physical infrastructure must meet the following baseline specifications.
1. Hardware Requirements Matrix
| Resource | Minimum (Evaluation / Lab) | Recommended (Production Cluster) | High-Performance Defense / AI Tier |
|---|---|---|---|
| CPU Architecture | x86-64 with AVX2 support (4 Cores) | Intel Xeon Scalable / AMD EPYC (16+ Cores with AVX-512) | Dual AMD EPYC 9004 / Intel Xeon Gen 4 (32+ Cores) |
| System Memory | 16 GB ECC DDR4 | 64 GB – 128 GB ECC DDR4/DDR5 | 256 GB+ ECC DDR5 (Registered) |
| Storage (OS/WAL) | 128 GB Enterprise SATA SSD | 500 GB NVMe PCIe Gen 4 (Enterprise TBW) | Dual M.2 NVMe RAID-1 (Power-Loss Protected) |
| Storage (Data) | 2x 1 TB SATA SSD / HDD | 4x – 24x NVMe U.2 / U.3 or SAS-3 12Gbps | Direct-attached NVMe PCIe Gen 5 |
| Networking | 1 GbE Dedicated Interface | Dual 10 GbE / 25 GbE Bonded (LACP) | Dual 100 GbE RoCEv2 / InfiniBand |
2. Memory Sizing Formula
Aarkam minimizes memory consumption through zero-allocation pooled spans and direct disk streaming. Sizing memory scales linearly with raw storage capacity:
\(\text{RAM (GB)} = 16\text{ GB (Base OS/Runtime)} + (1.2\text{ GB} \times \text{Usable Capacity in TB})\)
- 100 TB Usable Capacity: Requires approximately \(16 + 120 = 136\text{ GB}\) distributed across cluster nodes.
- 1 PB Usable Capacity: In an 8-node cluster, each node requires 128 GB to 256 GB ECC RAM.
3. Storage Media & Direct I/O Preparation
Kdouja operates through unbuffered Direct I/O (FILE_FLAG_NO_BUFFERING on Windows, O_DIRECT on Linux), requiring raw block access without intermediate translation layers:
Linux Kernel Preparation
# Verify 4096-byte logical sector size on storage NVMe drives
sudo blockdev --getss /dev/nvme0n1
# Output must be 4096 or 512
# Format partitions with 4K block alignment
sudo mkfs.ext4 -b 4096 /dev/nvme0n1p1
# Kernel parameters in /etc/sysctl.d/99-aarkam.conf
fs.file-max = 2097152
fs.aio-max-nr = 1048576
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.swappiness = 1
4. Network Ports & Firewall Matrix
Every Aarkam host must have the required ports opened on the internal backplane network:
| Module | Port (HTTP) | Port (HTTPS) | Protocol | Direction | Description |
|---|---|---|---|---|---|
| Aarkam.IO | 7771 |
57771 |
REST / gRPC | Inbound | Client S3 Gateway & Web Management Portal |
| Rokka.Coordinator | 7774 |
57774 |
gRPC / HTTP2 | Inbound/Internal | Raft MON Consensus & Cluster Coordination |
| Rokka.StorageNode | 7775 |
57775 |
gRPC / HTTP2 | Internal | Kdouja Chunk Streaming & Replication |
| Abodi.Agent | 7776 |
57776 |
gRPC / REST | Internal | S.M.A.R.T. Health Telemetry Sidecar |
| Abodi.Server | 7777 |
57777 |
gRPC / REST | Internal | Central Correlation Engine |