You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7511788
Browse filesBrowse the repository at this point in the historyBrowse files
Ramgopal Nagaboina
committed
kvm: dedicated live migration network with TLS, parallel streams and cluster CPU baseline
Carry KVM live migration traffic on a dedicated network instead of the
management network. A Migration traffic type is added to the zone's physical
network with a per hypervisor label; each KVM host resolves its own IP on the
labelled NIC and reports it, and the libvirt data stream is routed to it only
when both the source and the destination host have one, otherwise migration
falls back to the existing behaviour unchanged. listHosts returns each host's
migration IP, shown on the host detail view, so an operator can confirm the
dedicated network is in use.
Migrations can be encrypted with libvirt native TLS and parallelised with
multiple file-descriptor streams. Both are opt-in and gated on the host
libvirt version, failing closed with a clear error when the host is too old
rather than silently downgrading.
Add a cluster-scoped CPU baseline model so a mixed cluster can present a
uniform guest CPU, keeping a VM's CPU definition stable as it migrates across
hosts. The baseline guest is pinned with fallback=forbid so it refuses a host
that cannot provide the exact model rather than silently degrading the CPU the
guest sees; the forbid is scoped to the baseline and leaves a VM with its own
explicit CPU mode or model untouched. The baseline is validated against every
host in the cluster before it is accepted, and hosts that cannot run the model
are reported back instead of failing the migration later.
Setting the baseline to "auto" computes the common-denominator model of the
cluster's reachable hosts, by collecting each host's CPU and running
cpu-baseline, and persists the computed model; it does not re-compute as hosts
change, so the committed baseline stays stable.
Unit tests cover the IP resolver (both-ends gating, non-KVM skip, blank
values), the libvirt flag and typed-parameter construction, the version gate,
the CPU baseline injection, the forbid fallback emission and scoping, the
auto-compute and model parsing, and the host compatibility check including the
fail-closed path on an unknown model. A Marvin smoke test exercises the
migration traffic type API.
Copy file name to clipboardExpand all lines: api/src/main/java/org/apache/cloudstack/api/response/HostResponse.java
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -307,6 +307,10 @@ public class HostResponse extends BaseResponseWithAnnotations {
307
307
@Param(description = "True if the host has capability to support UEFI boot")
308
308
privateBooleanuefiCapability;
309
309
310
+
@SerializedName("migrationip")
311
+
@Param(description = "the IP address the host uses for live migration traffic, set when a dedicated migration network is configured on this host", since = "24.0.0")
0 commit comments