[PATCH 0/2] Support for LUKS-encrypted Linux guests
by Richard W.M. Jones
These two patches add minimal support for LUKS-encrypted Linux guests
(ie. most common whole-disk encryption schemes).
Only opening LVM-on-LUKS is supported by this, not, for example,
changing keys or creating new encrypted devices. It's also a little
clunky to use from guestfish, but we can add more commands to fix that
once we have a better handle on the problem.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
14 years, 1 month
[PATCH 0/2] Improve the performance of virt-df
by Richard W.M. Jones
Currently virt-df launches the appliance once for each guest. With
these two patches the number of times the appliance launches is
reduced to once every 26 block devices.
In theory we could do better by adding support for disk hot-add
(supported by qemu but not via libguestfs at the moment). However
this patch is still an improvement on the current situation.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v
14 years, 1 month
[PATCH] Documentation: Windows conversion procedure.
by Matthew Booth
---
v2v/virt-v2v.pl | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 42 insertions(+), 1 deletions(-)
diff --git a/v2v/virt-v2v.pl b/v2v/virt-v2v.pl
index 29716d2..b4cd1d4 100755
--- a/v2v/virt-v2v.pl
+++ b/v2v/virt-v2v.pl
@@ -61,7 +61,7 @@ virt-v2v - Convert a guest to use KVM
virt-v2v converts guests from a foreign hypervisor to run on KVM, managed by
libvirt or Red Hat Enterprise Virtualisation (RHEV) version 2.2 or later. It can
-currently convert Red Hat Enterprise Linux and Fedora guests running on Xen and
+currently convert Red Hat Enterprise Linux and Windows guests running on Xen and
VMware ESX. It will enable VirtIO drivers in the converted guest if possible.
=head1 OPTIONS
@@ -511,6 +511,16 @@ type is 'NFS'. See the RHEV documentation for details. The NFS storage domain mu
B<N.B.> When exporting to RHEV, virt-v2v must run as root.
+=head3 Import the appropriate Guest Tools ISO
+
+Conversion of Windows guests requires that the Guest Tools ISO has been
+installed B<before> the guest is converted. This must be done using the ISO
+Uploader, which can be found on your RHEV-M system under Start->Red Hat->RHEV
+Manager->ISO Uploader.
+
+Failure to do this will result in drivers not being correctly installed in the
+guest after conversion.
+
=head1 CONVERTING A LOCAL XEN GUEST
The following requires that the domain XML is available locally, and that the
@@ -648,6 +658,37 @@ on the command line in place of I<-op> as in the following examples:
=back
+=head2 CONVERTING A WINDOWS GUEST
+
+When exporting to RHEV, virt-v2v can additionall convert Windows guests. In this
+case, the conversion process is split into 2 stages:
+
+=over
+
+=item 1
+
+Offline conversion.
+
+=item 2
+
+First boot.
+
+=back
+
+The guest will be bootable after the offline conversion stage, but will not yet
+have all necessary drivers installed to work correctly in RHEV. These will be
+installed automatically the first time the guest boots.
+
+B<N.B.> The first boot stage can take several minutes to run, and must not be
+interrupted. It will run automatically without any administrator intervention
+other than powering on the guest. To ensure the process is not interrupted, we
+strongly recommend that nobody logs in to the machine until it has quiesced the
+first time it is booted after conversion. You can check for this in the RHEV
+Manager UI.
+
+B<N.B.> Driver installation on first boot requires that the Guest Tools ISO has
+been previous uploaded using RHEV Manager's ISO Uploader tool. RHEV will present
+this ISO to the guest automatically the first time it is booted.
=head1 RUNNING THE CONVERTED GUEST
--
1.7.1.1
14 years, 1 month
[PATCH] Documentation: Cleanup virt-v2v.conf references and mention --network
by Matthew Booth
virt-v2v.conf is no longer required on the command line in most circumstances.
This change removes it from the command line in all examples.
This change also references an optional --network parameter in all examples, as
this typically will be required.
---
v2v/virt-v2v.pl | 56 +++++++++++++++++++++++++++++++++---------------------
1 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/v2v/virt-v2v.pl b/v2v/virt-v2v.pl
index adaa9a9..29716d2 100755
--- a/v2v/virt-v2v.pl
+++ b/v2v/virt-v2v.pl
@@ -49,12 +49,13 @@ virt-v2v - Convert a guest to use KVM
=head1 SYNOPSIS
- virt-v2v -f virt-v2v.conf -i libvirtxml -op transfer guest-domain.xml
+ virt-v2v -i libvirtxml -op imported --network default guest-domain.xml
- virt-v2v -f virt-v2v.conf -ic esx://esx.server/ -op transfer esx_guest
+ virt-v2v -ic esx://esx.server/ -op imported --network default esx_guest
- virt-v2v -f virt-v2v.conf -ic esx://esx.server/ \
- -o rhev -osd rhev.nfs.storage:/export_domain guest esx_guest
+ virt-v2v -ic esx://esx.server/ \
+ -o rhev -osd rhev.nfs.storage:/export_domain --network rhevm \
+ esx_guest
=head1 DESCRIPTION
@@ -517,22 +518,29 @@ storage referred to in the domain XML is available locally at the same paths.
To perform the conversion, run:
- virt-v2v -f virt-v2v.conf -i libvirtxml -op <pool> <domain>.xml
+ virt-v2v -i libvirtxml -op <pool> [--network <network name>] \
+ <domain>.xml
where C<< <domain>.xml >> is the path to the exported guest domain's xml, and
C<< <pool> >> is the local storage pool where copies of the guest's disks will
-be created. See L<virt-v2v.conf(5)> for a details of virt-v2v.conf.
+be created.
+
+The I<--network> option may be provided for simple network mappings. For more
+complex mappings, see L<virt-v2v.conf(5)>.
If it is not possible to provide software updates over the network in your
-environment, it is still possible to avoid specifying replacement kernels in the
-virt-v2v config file by ensuring that the guest has an appropriate kernel
-installed prior to conversion. If your guest uses a Xen paravirtualised kernel
-(it would be called something like kernel-xen or kernel-xenU), you can install a
-regular kernel, which won't reference a hypervisor in its name, alongside it.
-You shouldn't make this newly installed kernel your default kernel because Xen
-may not boot it. virt-v2v will make it the default during conversion.
+environment, software will be installed as specified in virt-v2v.conf. See
+L<virt-v2v.conf(5)> for a details.
+
+It is possible to avoid specifying replacement kernels in the virt-v2v config
+file by ensuring that the guest has an appropriate kernel installed prior to
+conversion. If your guest uses a Xen paravirtualised kernel (it would be called
+something like kernel-xen or kernel-xenU), you can install a regular kernel,
+which won't reference a hypervisor in its name, alongside it. You shouldn't
+make this newly installed kernel your default kernel because Xen may not boot
+it. virt-v2v will make it the default during conversion.
-=head2 CONVERTING A GUEST FROM VMWARE ESX
+=head1 CONVERTING A GUEST FROM VMWARE ESX
B<N.B.> libvirt version 0.7.0 or greater is required to connect to ESX.
@@ -545,7 +553,8 @@ storage is transferred.
The guest MUST be shut down in ESX before conversion starts. virt-v2v will not
proceed if the guest is still running. To convert the guest, run:
- virt-v2v -f virt-v2v.conf -ic esx://<esx.server>/ -op <pool> <domain>
+ virt-v2v -ic esx://<esx.server>/ -op <pool> [--network <network name>] \
+ <domain>
where:
@@ -571,9 +580,10 @@ converted.
=back
-See L<virt-v2v.conf(5)> for a details of virt-v2v.conf.
+The I<--network> option may be provided for simple network mappings. For more
+complex mappings, see L<virt-v2v.conf(5)>.
-=head3 Authenticating to the ESX server
+=head2 Authenticating to the ESX server
Connecting to the ESX server will require authentication. virt-v2v supports
password authentication when connecting to ESX. It reads passwords from
@@ -584,7 +594,7 @@ entry is:
B<N.B.> The permissions of .netrc MUST be set to 0600, or it will be ignored.
-=head3 Connecting to an ESX server with an invalid certificate
+=head2 Connecting to an ESX server with an invalid certificate
In non-production environments, the ESX server may have an invalid certificate,
for example a self-signed certificate. In this case, certificate checking can be
@@ -623,19 +633,21 @@ on the command line in place of I<-op> as in the following examples:
=item Exporting a local Xen guest to RHEV
-virt-v2v -f virt-v2v.conf -i libvirtxml -o rhev -osd <export_sd> <domain>.xml
+ virt-v2v -i libvirtxml -o rhev -osd <export_sd> \
+ [--network <network name>] <domain>.xml
=item Export a VMWare ESX guest to RHEV
-virt-v2v -f virt-v2v.conf -ic esx://<esx.server>/ -o rhev -osd <export_sd> <domain>
+ virt-v2v -ic esx://<esx.server>/ -o rhev -osd <export_sd> \
+ [--network <network name>] <domain>
=item Export a local libvirt/KVM guest to RHEV
-virt-v2v -f virt-v2v.conf -o rhev -osd <export_sd> <domain>
+ virt-v2v -o rhev -osd <export_sd> [--network <network name>] \
+ <domain>
=back
-See L<virt-v2v.conf(5)> for details of virt-v2v.conf.
=head1 RUNNING THE CONVERTED GUEST
--
1.7.1.1
14 years, 1 month
[PATCH 1/2] Add new augeas directory with grub device.map lens
by Matthew Booth
Add a directory to contain required augeas lenses which aren't yet upstream.
Include a new lens for grub's device.map.
---
augeas/README.txt | 4 ++++
augeas/device_map.aug | 28 ++++++++++++++++++++++++++++
2 files changed, 32 insertions(+), 0 deletions(-)
create mode 100644 augeas/README.txt
create mode 100644 augeas/device_map.aug
diff --git a/augeas/README.txt b/augeas/README.txt
new file mode 100644
index 0000000..709be7c
--- /dev/null
+++ b/augeas/README.txt
@@ -0,0 +1,4 @@
+This directory contains augeas lenses required by virt-v2v.
+
+device_map.aug posted upstream:
+http://www.redhat.com/archives/augeas-devel/2010-June/msg00027.html
diff --git a/augeas/device_map.aug b/augeas/device_map.aug
new file mode 100644
index 0000000..090edd5
--- /dev/null
+++ b/augeas/device_map.aug
@@ -0,0 +1,28 @@
+(* Parsing grub's device.map *)
+
+module Device_map =
+ autoload xfm
+
+ let sep_tab = Sep.tab
+ let eol = Util.eol
+ let fspath = Rx.fspath
+ let del_str = Util.del_str
+
+ let comment = Util.comment
+ let empty = Util.empty
+
+ let dev_name = /(h|f|c)d[0-9]+(,[0-9a-zA-Z]+){0,2}/
+ let dev_hex = /0x[0-9a-fA-F]+/
+ let dev_dec = /[0-9]+/
+
+ let device = del_str "(" . key ( dev_name | dev_hex | dev_dec ) . del_str ")"
+
+ let map = [ device . sep_tab . store fspath . eol ]
+
+ let lns = ( empty | comment | map ) *
+
+ let xfm = transform lns (incl "/boot/grub/device.map")
+
+(* Local Variables: *)
+(* mode: caml *)
+(* End: *)
--
1.7.1
14 years, 2 months