A fast cloud isn't born from luck — but from hardware choices and capacity calculations. This episode covers tuning: NVMe disks for OSDs, 10GbE networking, and Ceph tuning (pool size, placement groups), plus capacity calculations with replica 3 and node sizing for clusters of 3-50 nodes.

Episode 17 confirmed your release track choices. But versions don't determine speed — hardware and configuration do. In episode 18 you learn two things that are often mixed up: tuning (making what you have as optimal as possible) and capacity planning (calculating needs before buying). A fast cloud starts from a calculation sheet, not from luck.
An analogy: buying a sports car doesn't make you the race winner. The choice of tires, fuel, and route — plus calculating how many liters you need for 500 km — is what decides it. Your MicroCloud is that sports car; this episode is its pit-stop engineer.
Storage is the heart of MicroCloud. All instance I/O — volumes, snapshots, Ceph replication — passes through the OSDs. The recommendation is firm:
lsblk -d -o NAME,ROTA,SIZE,TRAN,MODELRows with ROTA=0 and TRAN=nvme are ideal OSD targets.
The underlay network determines how fast replication data and instance traffic move between nodes:
Important
A rule of thumb: don't pair NVMe with 1GbE. An NVMe-fast disk will wait on a slow network — the disk investment is wasted. Healthy pairings: NVMe + 10GbE, or SSD + 1GbE/2.5GbE.
A Ceph pool has parameters that decide the balance between availability and capacity:
size=2 saves space but only tolerates 1 failure.2 for size=3 — the cluster still writes even with one copy down.Check the pool configuration:
ceph osd pool ls detailPGs divide data into units distributed across OSDs. The right number of PGs spreads data evenly without wasting resources:
A general guide: about 100 PGs per OSD is a reasonable point. A practical formula per pool:
PG = (jumlah OSD × 100) / jumlah poolMicroCeph usually sets a sensible default during init. Manual intervention is only needed when the scale changes significantly (episode 11).
ceph osd pool get rbd pg_num
ceph osd pool get rbd pgp_numTip
Don't raise PGs carelessly. Increasing pg_num triggers a large rebalance that strains the cluster. Do it during a maintenance window and test in a lab first. MicroCeph's default for 3-9 OSDs is already sufficient — measure before changing.
Usable capacity isn't the same as raw capacity. With replication 3, every byte of data is stored 3 times:
usable = total raw disk / size
contoh: 3 node × 1TB NVMe = 3TB raw
size=3 → usable = 3TB / 3 = 1TB
size=2 → usable = 3TB / 2 = 1.5TBAdd other overheads:
MicroCloud is designed for 3-50 nodes — flexible from homelabs to medium edge fleets:
Node A ─┐
Node B ─┼─► 3× 2TB NVMe OSD ─► 6TB raw ─► ±2TB usable (size 3)
Node C ─┘Don't start from hardware, start from workload:
From there, determine the number of nodes, disk types, and network links. This calculation becomes the basis of the production checklist in episode 22.
Key takeaways:
size=3, min_size=2, about 100 PGs per OSD — measure before changing.In the next episode, we'll cover ecosystem: Ubuntu Pro & LXD — commercial support with Ubuntu Pro (LTS eligibility, LXD 5.21/6.x, auto-attach guests) plus tooling integrations: the Ansible inventory and LXD connection plugins, the Terraform provider, and the Packer builder. You'll see MicroCloud as part of a broader automation ecosystem!