A healthy cloud isn't born — it's maintained. This episode builds your MicroCloud troubleshooting toolkit: microcloud status, snap logs microcloud, microceph status, and microovn status to diagnose failed joins, small disks, underlay network, and clock skew, plus member recovery and service re-init procedures.

After encryption and data protection in episode 15, you have a secure cloud. But security doesn't mean problem-free — nodes can fail to join, OSDs can drop, and clusters can become degraded. In episode 16 we build your troubleshooting toolkit: how to read status, dig into logs, solve common cases, and recover the cluster when something breaks.
A fitting analogy: pilots don't wait for a plane to crash to learn the emergency checklist. They memorize procedures before problems arise, so when a red indicator lights up, their hands already know what to do. This episode is your emergency checklist for MicroCloud — save it, understand it, and use it when the cluster misbehaves.
The first command you should remember is microcloud status — it summarizes the health of the whole stack (LXD, Ceph, OVN) on one screen:
sudo microcloud statusClustering | enabled
...
MicroCloud services | MicroCloud, MicroCeph, MicroOVN, LXD
| all running
LXD cluster | 3 members, all online
Ceph cluster | HEALTH_OK
OVN cluster | all onlineIf one layer has a problem, microcloud status usually shows it here — this is the always starting point before diving into logs.
microcloud status tells you what's wrong; logs tell you why. Every snap stores logs readable with snap logs:
sudo snap logs microcloud -n 200For storage problems, dig deeper into MicroCeph; for networking, into MicroOVN:
sudo microceph status
ceph -ssudo microovn status
sudo snap logs microovn -n 200LXD records cluster and instance activity. If an instance fails to start or the cluster acts "weird", check the LXD logs:
sudo snap logs lxd -n 200Tip
Build a consistent debug sequence: microcloud status → the relevant snap logs → ceph -s/microovn status → LXD logs. Don't start guessing in the middle — data first, then diagnosis, then action. This sequence saves you from misdirected fixes.
A failed join is the most common complaint. Symptom: microcloud join on a new node stops with a token or timeout message. The most frequent causes:
hostnamectl hostname).hostnamectl hostname
ping -c 3 node-b
sudo microcloud statusSymptom: an OSD is active but the cluster is HEALTH_WARN with near full, or data can't spread evenly. Check usage and see if any OSD is much smaller than its siblings:
lsblk -d -o NAME,SIZE,TYPE
ceph osd df
ceph osd treeIf one OSD is FULL while others are comfortable, data is unbalanced. The short-term fix is letting Ceph rebalancing finish; the long-term fix is adding disks (episode 11) or reducing replication if capacity is genuinely limited.
Symptom: the cluster is healthy for a while, then members "disappear", or storage traffic is slow. Underlay problems — the physical network where LXD/Ceph/OVN communicate — are often the culprit:
ping -c 5 node-a
mtr -n node-bAlso check that inter-node ports aren't blocked by a firewall (episode 14 covers the segments and key ports: 8443 LXD, 6789/6800-7300 Ceph, 6081 OVN tunnels).
Warning
Never block the cluster ports between fellow nodes with a firewall. A node repeatedly "disappearing then reappearing" is a classic symptom of packet loss or high latency in the underlay — not a MicroCloud software problem. Verify the physical network before blaming the service.
LXD and Ceph are very sensitive to time differences between nodes. If a member is suddenly marked offline while the network is healthy, suspect the clock:
timedatectl status
chronyc sources -vAll nodes must use the same time source (e.g., chrony) — a large offset will make LXD certificates and heartbeats invalid.
If a node is permanently broken and must leave the cluster, don't remove it from LXD only — MicroCloud 2.x provides a dedicated command that cleans up across all services at once:
sudo microcloud remove node-bRun it from another healthy node, then verify:
sudo microcloud status
lxc cluster listFor planned maintenance — reboots, hardware swaps — you don't need to remove a member. Use evacuate to move all instances off first, then restore when the node returns:
lxc cluster evacuate node-b
# ... maintenance ...
lxc cluster restore node-bIf a snap's state is corrupted and unrecoverable, the last resort is re-init: purge all snaps and reinstall. This is a nuclear step — only do it when truly stuck:
sudo snap remove microcloud --purge
sudo snap remove microovn --purge
sudo snap remove microceph --purge
sudo snap remove lxd --purgeOnce clean, reinstall (episode 3) and microcloud join back into the cluster. Proactive trust (episode 15) helps a re-init'd node rejoin without friction.
microcloud remove.microcloud status doesn't guarantee clean logs — read the logs for intermittent issues.Key takeaways:
microcloud status, then dig into the relevant snap logs.ceph osd df and let rebalancing finish.sudo microcloud remove <node>; maintenance uses lxc cluster evacuate/restore.In the next episode, we'll cover MicroCloud 3.2 & the latest features — LXD 6.8 compatibility, fixes and features in the 3.2 feature release (April 2026), why 3.x isn't yet recommended for upgrading from 2 LTS, and the 2.1.3 LTS release for production with an official upgrade path. Version matters!