~sircmpwn/sr.ht-docs

sr.ht-docs/ops/provisioning.md -rw-r--r-- 1.3 KiB
f0b0b6baStefan VanBuren Fix a few typos in graphql.md a day ago

#title: "Server provisioning & allocation"

Standards for provisioning of VMs and physical hosts.

#Alpine Linux

Our standard loadout uses Alpine Linux for all hosts and guests.

  • TODO: ns1 and ns2 are on Debian, they need to be reprovisioned (add an ns3 while we're at it?)

#Physical hosts

#VM hosts

Our current VM hosts won't scale much further. We need to figure out a better hardware loadout for these going forward.

#High performance VM hosts

For performance critical services (presently only git.sr.ht demands this), we do have a standard loadout:

  • AMD EPYC 7402 (24 cores, 48 threads)
  • Micron 36ASF2G72PZ-2G6F1 RAM (4x, 64G total)
  • 1x NVMe for host system, ext4; WD Black 1T
  • 4x SSD on SATA, direct passthrough to guest

This is spec'ed to CPU and I/O intensive workloads.

#Build hosts

builds.sr.ht uses dedicated build runners. Our current standard is:

  • AS-1013S-MTR SuperMicro barebones
  • AMD EPYC 7281 (16 cores, 32 threads)
  • M393A4K40CB2-CTD RAM (4x, 128G total)
  • 1x NVMe for root, ext4; WD Black 1T
  • 3x HDD on SATA for /var, ZFS; 1T each, various vendors/models

This configuration supports up to 16 parallel build slots.

#Virtual machines

There is no standard loadout - tune the specifications for the task at hand. Generally limit 1 VM == 1 service, and tune accordingly.