This episode dissects the MicroCloud architecture: LXD for virtualization (system containers + VMs), MicroCeph for distributed block/file/object storage, and MicroOVN for SDN — all orchestrated by the microcloud snap. You'll get to know each component, the microcloud CLI (init, join, status, cluster), and the LXD API that serves as the main interface for managing the cloud.

In episode 1 we understood why MicroCloud exists. Now we dissect how it works: what its components are, how they connect, and who does what. In episode 2 we build a mental architecture map — the foundation that makes every command in the following episodes feel logical, not merely memorized.
A simple analogy: MicroCloud is a project team with three specialist members. LXD is the contractor managing the "buildings" (containers and VMs). MicroCeph is a distributed warehouse that stores all materials with backup copies. MicroOVN is the road network connecting all the buildings. And the microcloud snap is the project manager coordinating them to work as one unit.
LXD is an image-based hypervisor that manages two kinds of instances:
LXD provides a REST API (the lxc client) that serves as the admin's main interface: lxc launch, lxc list, lxc snapshot, up to lxc cluster list. Inside a MicroCloud cluster, LXD is also responsible for instance scheduling across nodes and cluster leader election.
MicroCeph wraps Ceph — distributed storage proven over decades in OpenStack and large clouds — into an easy-to-operate snap. Ceph provides three interfaces from one pool of hardware:
Data is replicated across nodes (default replication factor 3 on a 3-node cluster), so if one node dies, the data stays safe. We dive deeper into MicroCeph in episode 6.
MicroOVN wraps OVN/OVS (Open Virtual Network / Open vSwitch) into a snap. OVN is an SDN that provides:
MicroOVN automatically registers networks with LXD, so you can use networks from instances right away. We dissect it in episode 7.
The microcloud snap is the conductor that doesn't provide storage or networking itself — it orchestrates the three snaps above. Its main tasks:
microcloud init/join to build the cluster.microcloud status and microcloud cluster for operations.┌─────────────────────────────────────────┐
│ snap microcloud │ orkestrator
├──────────────┬──────────────┬───────────┤
│ snap lxd │ snap microceph│ snap microovn│
│ compute │ storage │ SDN │
├──────────────┴──────────────┴───────────┤
│ kernel + hardware │
│ CPU/RAM · disk OSD · NIC/bridge │
└─────────────────────────────────────────┘Every node in the cluster has these four snaps installed and running:
snap list
snap services lxd microceph microovn microcloudsnap services should show the active status for lxd, microceph, and microovn (the microcloud snap runs on-demand when invoked).
The main microcloud commands and their functions:
microcloud init — builds a new cluster from the first node.microcloud join — adds additional nodes to the cluster.microcloud status — cluster status summary: members, storage, networking.microcloud cluster — cluster management subcommands (list members, etc.).microcloud --help
microcloud statusBeyond microcloud, you'll use three other CLIs regularly:
lxc — manages instances, networks, storage, profiles, and the LXD cluster.microceph — adds disks (OSDs), views the Ceph cluster status.microovn — views OVN status and configuration.microceph --help
microovn --help
lxc --helpAll LXD interactions go through the REST API, exposed via a unix socket (/var/snap/lxd/common/lxd/unix.socket) or HTTPS (episode 14). The lxc CLI is just a client of this API. That means you can automate MicroCloud with any script or application that speaks HTTP — for example, a Terraform provider (episode 19).
Note
Remember the division of responsibilities: microcloud manages the cluster, lxc manages instances/networks/storage from the LXD side, microceph manages Ceph disks and pools, microovn manages the SDN. Don't be confused when the same command appears in two places — for example, networks can be seen with lxc network list as well as microovn status.
To understand how all three come together, follow the flow when you run lxc launch ubuntu:24.04 c1:
The result: one command, and the three layers work together transparently behind the scenes.
Key takeaways:
microcloud snap orchestrates all three without being a hypervisor or controller of its own.microcloud (init, join, status, cluster), lxc, microceph, microovn.lxc is just one of its clients.lxc launch request involves LXD (scheduling), Ceph (volumes), and OVN (networking) at once.In the next episode, we start taking action: installation & prerequisites — installing lxd, microceph, microovn, and microcloud via snap on all nodes, making sure snap services is active, setting up synchronized time with chrony, unique hostnames, and empty disks for Ceph OSDs. Get your nodes ready!