Updated 29 October 2026 · Published by Zoorik
Short answer. Amoeba rightsizes a VM’s disks in two stages. First it moves the data onto one btrfs pool sized to your data, then it grows and shrinks the pool with your data. The checks below cover what holds each stage back, in order.
Check the agent is reporting
Look at: the VM’s status and its agent on Overview.
What it means: The move onto the pool starts by itself after the agent’s first report. “Ready for a pool” means the agent has reported. While the agent isn’t reporting, the pool can’t expand or shrink.
What to do: If the agent hasn’t reported, or reads “Disconnected”, see Amoeba is not showing my VM.
Check whether Amoeba declined the VM
Look at: the VM’s status, and the Disks page, which shows how many data-disk slots are in use.
What it means: During the move, the pool’s disks attach beside the old disks, so the VM needs a few free disk slots. A VM Amoeba declines, for example one with too few slots, shows why and stays on its own disks. Amoeba doesn’t move a VM that uses Azure Disk Encryption as it is.
What to do: Make room for the pool’s disks. For a VM that uses Azure Disk Encryption, email us.
Check whether the move paused
Look at: Pool → Migration, and “Needs you” on Overview.
What it means: The move pauses when a step can’t go on safely. For example, the VM can’t take a pool, a copy fails, or Amoeba can’t tell whether the switch worked. A disk error found after the switch also pauses it.
Pool → Migration shows where it paused and why.
What to do: Fix the reason shown. “Resume” appears when the move can run again: click it. If Amoeba can’t tell whether the switch worked, the move waits for you to click “Resume”.
Check the Linux requirements
Look at: on a Linux VM, its kernel, its packages and its services.
What it means:
- The kernel must be recent and support btrfs, built in or as a module. Amoeba loads the module if it isn’t loaded. If the kernel has no btrfs, the move pauses.
- The agent needs rsync, btrfs-progs and psmisc. The installer doesn’t add them.
- Every process that keeps a data mount open must run as a systemd service. Otherwise the switch can’t finish.
- The agent needs cgroup v2 to read disk load. Without it, the copy can’t slow down when your apps are busy.
- Amoeba checks the running kernel, never the OS name.
What to do: Install the missing packages, and run each service that uses a data mount under systemd. Then click “Resume” if the move paused.
Check the shrink setting
Look at: “When Zoorik shrinks” in Settings → Shrinking, and the Operations page.
What it means: In “Auto”, the default, each shrink starts by itself when the pool is quiet. In “Manual”, a shrink waits for you on Operations as “Waiting for you”, and Overview lists it under “Needs you”. Expands are automatic either way.
What to do: Click “Start shrink” on Operations. Or set “When Zoorik shrinks” to “Auto”, and click “Save”.
Give it time after the move
Look at: when the move finished, and how your data has changed since.
What it means: A shrink waits until the move is done and Amoeba has watched your data for long enough. It runs when your data goes down and stays down. Meanwhile, the pool still grows before it fills.
What to do: Nothing. Operations logs each expand and shrink, with its outcome and reason.
Read why a shrink can’t run
Look at: Operations. In “Manual”, a shrink that fails a check reads “Can’t shrink now”, with the reason.
What it means, and what to do:
| Reason | What to do |
|---|---|
No smaller layout would hold your data with room to grow. | Nothing. Amoeba shrinks when your data goes down and stays down. |
The pool is filling too fast to move the data safely. | Nothing. Amoeba grows the pool before it fills. |
The other disks couldn’t keep up with the VM’s disk load. | Nothing. Amoeba doesn’t shrink a pool when the disks that stay couldn’t serve your load. |
Amoeba is waiting for disk-load readings from the agent. | Check the agent is reporting. On Linux, the agent needs cgroup v2 to read disk load. |
The VM’s kernel is too old, or doesn’t support btrfs. | Use a recent kernel that supports btrfs. |
The pool reports disk errors. | Email us. Amoeba never shrinks a pool that reports disk errors. |
The VM size isn’t in Azure’s size list for its region yet. | Email us if it stays. |
Still stuck?
The Amoeba product guide and the Amoeba FAQ have the full detail.
Email founders@zoorik.com, or pick a time to talk (opens in a new tab). Tell us what Pool → Migration and Operations show. Remove tokens, keys and other secrets from anything you send.