|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] xl: generate a new random VM generation ID if requested
commit 0f5def4b724e2cd31247246e6dd651e5447f3bdb
Author: David Vrabel <david.vrabel@xxxxxxxxxx>
AuthorDate: Fri Jun 27 14:57:52 2014 +0100
Commit: Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Fri Jun 27 15:56:05 2014 +0100
xl: generate a new random VM generation ID if requested
If the "generation_id" option is set in the domain configuration,
generate and set a new random VM generation ID every time a domain is
created or restored.
xl lacks the infrastructure to fully track the lifecycle of VM images
as they are snapshotted and cloned (etc) so always using a new ID is
the safe option and ensures that a new one will be used where it matters.
Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
docs/man/xl.cfg.pod.5 | 29 +++++++++++++++++++++++++++++
tools/libxl/xl_cmdimpl.c | 15 +++++++++++++++
2 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5
index c087cbc..ff9ea77 100644
--- a/docs/man/xl.cfg.pod.5
+++ b/docs/man/xl.cfg.pod.5
@@ -936,6 +936,35 @@ number of vendor defined SMBIOS structures (type 128 -
255). Since SMBIOS
structures do not present their overall size, each entry in the file must be
preceded by a 32b integer indicating the size of the next structure.
+=item B<ms_vm_genid="OPTION">
+
+Provide a VM generation ID to the guest.
+
+The VM generation ID as a 128-bit random number that a guest may use
+to determine if the guest has been restored from an earlier snapshot
+or cloned.
+
+This is required for Microsoft Windows Server 2012 (and later) domain
+controllers.
+
+Valid options are:
+
+=over 4
+
+=item B<"generate">
+
+Generate a random VM generation ID every time the domain is created or
+restored.
+
+=item B<"none">
+
+Do not provide a VM generation ID.
+
+=back
+
+See also "Virtual Machine Generation ID" by Microsoft
+(http://www.microsoft.com/en-us/download/details.aspx?id=30707).
+
=back
=head3 Guest Virtual Time Controls
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index e2d3ad0..68df548 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -983,6 +983,21 @@ static void parse_config_data(const char *config_source,
&b_info->u.hvm.smbios_firmware, 0);
xlu_cfg_replace_string(config, "acpi_firmware",
&b_info->u.hvm.acpi_firmware, 0);
+
+ if (!xlu_cfg_get_string(config, "ms_vm_genid", &buf, 0)) {
+ if (!strcmp(buf, "generate")) {
+ e = libxl_ms_vm_genid_generate(ctx,
&b_info->u.hvm.ms_vm_genid);
+ if (e) {
+ fprintf(stderr, "ERROR: failed to generate a VM Generation
ID\n");
+ exit(1);
+ }
+ } else if (!strcmp(buf, "none")) {
+ ;
+ } else {
+ fprintf(stderr, "ERROR: \"ms_vm_genid\" option must be
\"generate\" or \"none\"\n");
+ exit(1);
+ }
+ }
break;
case LIBXL_DOMAIN_TYPE_PV:
{
--
generated by git-patchbot for /home/xen/git/xen.git#master
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |