Why
An instance without qemu-guest-agent cannot be rescued in place. When SSH on a
VM stopped accepting connections, every quick recovery path was unavailable:
virsh qemu-agent-command — needs the agent
openstack server set --password (then log in on the console) — needs the agent
openstack server rescue — generally unavailable for volume-backed instances
What was left was: stop the instance, map its Ceph RBD root volume on a compute
node, mount it, edit the file offline, unmount, start. That works, and it is
written up in
docs/ssh-locked-out-offline-root-volume-recovery.md
— but it takes an outage and cluster-admin access to fix what would otherwise be
a one-line change.
With the agent present the same incident is a single command and no downtime.
Scope
Notes
- The channel only appears at instance creation, so existing instances need a
stop/start after the image property is set — worth batching into a maintenance
window rather than doing per-VM.
- Verifying
guest-ping is the check that matters; the package being installed
proves nothing on its own if the channel is absent.
Why
An instance without
qemu-guest-agentcannot be rescued in place. When SSH on aVM stopped accepting connections, every quick recovery path was unavailable:
virsh qemu-agent-command— needs the agentopenstack server set --password(then log in on the console) — needs the agentopenstack server rescue— generally unavailable for volume-backed instancesWhat was left was: stop the instance, map its Ceph RBD root volume on a compute
node, mount it, edit the file offline, unmount, start. That works, and it is
written up in
docs/ssh-locked-out-offline-root-volume-recovery.md
— but it takes an outage and cluster-admin access to fix what would otherwise be
a one-line change.
With the agent present the same incident is a single command and no downtime.
Scope
qemu-guest-agentin the golden images at build time, not viacloud-init at first boot (an agent that only appears after a successful
boot is missing exactly when it is needed)
hw_qemu_guest_agent=yeson each image so Nova attaches the virtiochannel:
openstack image set --property hw_qemu_guest_agent=yes <image>qemu-guest-agent.serviceis enabled in the image, not just installedvirsh qemu-agent-command <domain> '{"execute":"guest-ping"}'responds,then that
openstack server set --passwordworks end to endinstalled live, but it needs the virtio channel, which needs a stop/start
Notes
stop/start after the image property is set — worth batching into a maintenance
window rather than doing per-VM.
guest-pingis the check that matters; the package being installedproves nothing on its own if the channel is absent.