Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MTV-1433: Creating source and destination providers, separated by provider #567

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 97 additions & 51 deletions documentation/doc-Migration_Toolkit_for_Virtualization/master.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,27 @@ include::modules/about-cold-warm-migration.adoc[leveloffset=+2]

Review the following prerequisites to ensure that your environment is prepared for migration.

[id="software-requirements_{context}"]
[id="mtv-software-requirements_{context}"]
=== Software requirements

{project-first} has software requirements for all providers as well as specific software requirements per provider.

[id="mtv-software-requirements-all-providers_{context}"]
==== Software requirements for all providers

You must install xref:compatibility-guidelines_{context}[compatible versions] of {ocp} and {virt}.

// ANDY: I printed out a hard copy of the manual so I could see which sections of which files belong to which provider. There are notes buried in modules that relate to one provider. I've added comments noting the respective providers. I have left everything before and after section 4 alone for now.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

//inc. Ostack and RHV
include::modules/storage-support.adoc[leveloffset=+2]
//inc. VM and RHV
include::modules/network-prerequisites.adoc[leveloffset=+2]
//all
include::modules/source-vm-prerequisites.adoc[leveloffset=+2]
//RHV
include::modules/rhv-prerequisites.adoc[leveloffset=+2]
//Ostack
include::modules/openstack-prerequisites.adoc[leveloffset=+2]

[id="additional-authentication-for-osp_{context}"]
Expand All @@ -72,11 +84,13 @@ include::modules/ostack-app-cred-auth.adoc[leveloffset=+4]
:!ostack:
:context: mtv
:mtv:

//VM
include::modules/vmware-prerequisites.adoc[leveloffset=+2]
include::modules/creating-vddk-image.adoc[leveloffset=+3]
include::modules/increasing-nfc-memory-vmware-host.adoc[leveloffset=+3]
//OVA
include::modules/ova-prerequisites.adoc[leveloffset=+2]
//all
include::modules/compatibility-guidelines.adoc[leveloffset=+2]

[id="installing-the-operator_{context}"]
Expand All @@ -103,117 +117,154 @@ include::modules/installing-mtv-operator.adoc[leveloffset=+2]

include::modules/configuring-mtv-operator.adoc[leveloffset=+2]


[id="migrating-vms-web-console_{context}"]
// ANDY: Section 4 begins here. I changed the intro a bit. I'm not sure if differentiating between OCP and MTv interfaces is helpful yo users. I wanted to avoid using the same title twice.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
[id="migrating-vms-ocp-web-console_{context}"]
== Migrating virtual machines by using the {ocp} web console

You can migrate virtual machines (VMs) by using the {ocp} web console to:

. xref:adding-source-providers[Create source providers]
. xref:adding-destination-providers[Create destination providers]
. xref:creating-migration-plans-ui[Create migration plans]

[IMPORTANT]
====
You must ensure that all xref:prerequisites_{context}[prerequisites] are met.

VMware only: You must have the minimal set of xref:vmware-privileges_{context}[VMware privileges].

VMware only: Creating a xref:creating-vddk-image_{context}[VMware Virtual Disk Development Kit (VDDK)] image will increase migration speed.
====
You can migrate virtual machines (VMs) by using the {project-short} user interface, which is located in the *Migration* section of the {ocp} web console.

include::modules/mtv-ui.adoc[leveloffset=+2]
include::modules/mtv-overview-page.adoc[leveloffset=+2]
include::modules/mtv-settings.adoc[leveloffset=+2]
include::modules/mtv-overview-page.adoc[leveloffset=+3]
include::modules/mtv-settings.adoc[leveloffset=+3]

[id="adding-providers"]
=== Adding providers

You can add source providers and destination providers for a virtual machine migration by using the {ocp} web console.

[id="adding-source-providers"]
==== Adding source providers
[id="migrating-vms-mtv-ui_{context}"]
=== Migrating virtual machines using the MTV user interface

You can use {project-short} to migrate VMs from the following source providers:
You can use the {project-short} user interface to migrate VMs from the following providers:

* VMware vSphere
* {rhv-full}
* {rhv-full} ({rhv-short})
* {osp}
* Open Virtual Appliances (OVAs) that were created by VMware vSphere
* {virt}
* Remote {virt} clusters

You can add a source provider by using the {ocp} web console.
// ANDY: Replaces the linked bulleted list of components.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
For all migrations, you specify the source provider, the destination provider, and the migration plan. The specific procedures vary per provider.

// ANDY: When I create the VMware prerequisites subsection, I'll move the VM prerequisites out of here.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
[IMPORTANT]
====
You must ensure that all xref:prerequisites_{context}[prerequisites] are met.
//VM
VMware only: You must have the minimal set of xref:vmware-privileges_{context}[VMware privileges].
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

VMware only: Creating a xref:creating-vddk-image_{context}[VMware Virtual Disk Development Kit (VDDK)] image will increase migration speed.
====

// ANDY: Now we start the new VMware A-Z section.
:!mtv:
:context: vmware
:vmware:

[id="migrating-vmware-ui"]
==== Migrating virtual machines from VMware vSphere
// ANDY: VM Prerequisites will go here.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-vmware-source-provider.adoc[leveloffset=+5]
:!vmware:
// The destination provider is the same for every vendor and is really the same procedure as the source provider, which uses conditional text. But we need a new context per vendor.
:context: dest_vwmware
:dest_vmware:
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
:!dest_vmware:

// ANDY: Now RHV
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
==== Migrating virtual machines from {rhv-full}

:context: rhv
:rhv:
include::modules/adding-source-provider.adoc[leveloffset=+4]
:!rhv:
:context: dest_rhv
:dest_rhv:
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
:!dest_rhv:

// ANDY: Now OpenStack
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
==== Migrating virtual machines from {osp}

:context: ostack
:ostack:
include::modules/adding-source-provider.adoc[leveloffset=+4]
:!ostack:
:context: dest_ostack
:dest_ostack:
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
:!dest_ostack:

// ANDY: Now OVA
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
==== Migrating virtual machines from OVA

:context: ova
:ova:
include::modules/adding-source-provider.adoc[leveloffset=+4]
:!ova:
:context: dest_ova
:dest_ova:
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
:!dest_ova:

// ANDY: Now CNV
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
==== Migrating virtual machines from {virt}

:context: cnv
:cnv:
include::modules/adding-source-provider.adoc[leveloffset=+4]
:cnv!:
:context: mtv
:!cnv:
:context: dest_cnv
:dest_cnv:
include::modules/adding-source-provider.adoc[leveloffset=+4]
include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
:!dest_cnv:

[id="adding-destination-providers"]
==== Adding destination providers
// ANDY: That's it for this PR.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
// The Next PR will add "Creating migration plans". As we discussed, I will only include "Staring from VMs" because the user will have just created a source provider.
// This will avoid me having to do a very messy context shift from "<provider>" to "provider_start" to "<provider>" to <vms_start>" to "<provider>" for each of the five providers (look below).

You can add a {virt} destination provider by using the {ocp} web console.

:mtv!:
:context: cnv2
:cnv2:
include::modules/adding-source-provider.adoc[leveloffset=+4]
:cnv!:
:context: mtv
:mtv:

include::modules/selecting-migration-network-for-virt-provider.adoc[leveloffset=+4]
// ANDY: Last note in this file -- AFAIK, the network mapping and storage mapping pages are still broken, so they remain commented out.

// include::modules/creating-network-mapping.adoc[leveloffset=+2]
// include::modules/creating-storage-mapping.adoc[leveloffset=+2]

[id="creating-migration-plans-ui"]
[id="creating-migration-plans-ui_{context}"]
=== Creating migration plans

You can create a migration plan by using the {ocp} web console to specify a source provider, the virtual machines (VMs) you want to migrate, and other plan details.

For your convenience, there are two procedures to create migration plans, starting with either a source provider or with specific VMs:

* To start with a source provider, see xref:creating-migration-plan-2-6-3_provider[Creating a migration plan starting with a source provider].
* To start with specific VMs, see xref:creating-migration-plan-2-6-3_vms[Creating a migration plan starting with specific VMs].
* To start with a source provider, see xref:creating-migration-plan-2-8_provider[Creating a migration plan starting with a source provider].
* To start with specific VMs, see xref:creating-migration-plan-2-8_vms[Creating a migration plan starting with specific VMs].

[WARNING]
====
Virtual machines with guest initiated storage connections, such as Internet Small Computer Systems Interface (iSCSI) connections or Network File System (NFS) mounts, are not handled by {project-short} and could require additional planning before or reconfiguration after the migration.

This is to ensure that no issues arise due to the addition or newly migrated VM accessing this storage.
====

// all but separate VM and RHV
include::modules/snip_plan-limits.adoc[]

:mtv!:
:context: provider
:provider:

include::modules/creating-migration-plan-2-6-3.adoc[leveloffset=+3]
include::modules/creating-migration-plan-2-8.adoc[leveloffset=+3]

:provider!:
:context: vms
:vms:
include::modules/creating-migration-plan-2-6-3.adoc[leveloffset=+3]
include::modules/creating-migration-plan-2-8.adoc[leveloffset=+3]

:vms!:
:context: mtv
Expand Down Expand Up @@ -276,10 +327,6 @@ include::modules/new-migrating-virtual-machines-cli.adoc[leveloffset=+3]
:ostack!:
:context: ova
:ova:
//include::modules/new-migrating-virtual-machines-cli.adoc[leveloffset=+3]
//:ova!:
//:context: ostack
//:ostack:
include::modules/new-migrating-virtual-machines-cli.adoc[leveloffset=+3]
:ova!:
:context: cnv
Expand Down Expand Up @@ -355,7 +402,6 @@ include::modules/collected-logs-cr-info.adoc[leveloffset=+3]
include::modules/accessing-logs-ui.adoc[leveloffset=+3]
include::modules/accessing-logs-cli.adoc[leveloffset=+3]

// comment to create PR

== Additional information

Expand Down
8 changes: 4 additions & 4 deletions documentation/modules/adding-source-provider.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ You can add an {osp} source provider by using the {ocp} web console.
====
When you migrate an image-based VM from an {osp} provider, a snapshot is created for the image that is attached to the source VM and the data from the snapshot is copied over to the target VM. This means that the target VM will have the same state as that of the source VM at the time the snapshot was created.
====

endif::[]
ifdef::cnv[]
= Adding a Red Hat {virt} source provider
Expand All @@ -56,9 +55,8 @@ You can migrate VMs from the cluster that {project-short} is deployed on to anot
====
The {ocp} cluster version of the source provider must be 4.13 or later.
====

endif::[]
ifdef::cnv2[]
ifdef::dest_vmware,dest_rhv,dest_ostack,dest_ova[]
= Adding {a-virt} destination provider

You can use a Red Hat {virt} provider as both a source provider and destination provider.
Expand Down Expand Up @@ -90,6 +88,7 @@ ifdef::vmware[]
* *URL*: URL of the SDK endpoint of the vCenter on which the source VM is mounted. Ensure that the URL includes the `sdk` path, usually `/sdk`. For example, `https://vCenter-host-example.com/sdk`. If a certificate for FQDN is specified, the value of this field needs to match the FQDN in the certificate.
* *VDDK init image*: `VDDKInitImage` path. It is strongly recommended to create a VDDK init image to accelerate migrations. For more information, see xref:../master.adoc#creating-vddk-image_mtv[Creating a VDDK image].


+
*Provider credentials*

Expand All @@ -100,6 +99,7 @@ ifdef::vmware[]
include::snip-certificate-options.adoc[]

endif::[]

ifdef::rhv[]
. Click *Red Hat Virtualization*
. Specify the following fields:
Expand Down Expand Up @@ -167,7 +167,7 @@ If both *URL* and *Service account bearer token* are left blank, the local {ocp-
+
include::snip-certificate-options.adoc[]
endif::[]
ifdef::cnv2[]
ifdef::dest_vmware,dest_rhv,dest_ostack,dest_ova,dest_cnv[]
. Click *{virt}*.
. Specify the following fields:

Expand Down
70 changes: 70 additions & 0 deletions documentation/modules/creating-migration-plan-2-8.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
// * documentation/doc-Migration_Toolkit_for_Virtualization/master.adoc

:_mod-docs-content-type: PROCEDURE
[id="creating-migration-plan-2-8_{context}"]
ifdef::provider[]
= Creating a migration plan starting with a source provider

You can create a migration plan based on a source provider, starting on the *Plans for virtualization* page. Note the specific options for migrations from VMware or {rhv-short} providers.

.Procedure

. In the {ocp} web console, click *Plans for virtualization* and then click *Create Plan*.
+
The *Create migration plan* wizard opens to the *Select source provider* interface.
. Select the source provider of the VMs you want to migrate.
+
The *Select virtual machines* interface opens.
. Select the VMs you want to migrate and click *Next*.
endif::[]

ifdef::vms[]
= Creating a migration plan starting with specific VMs

You can create a migration plan based on specific VMs, starting on the *Providers for virtualization* page. Note the specific options for migrations from VMware or {rhv-short} providers.

.Procedure

. In the {ocp} web console, click *Providers for virtualization*.
. In the row of the appropriate source provider, click *VMs*.
+
The *Virtual Machines* tab opens.
. Select the VMs you want to migrate and click *Create migration plan*.
endif::[]
+
The *Create migration plan* pane opens. It displays the source provider's name and suggestions for a target provider and namespace, a network map, and a storage map.
. Enter the *Plan name*.
. Make any needed changes to the editable items.
. Click *Add mapping* to edit a suggested network mapping or a storage mapping, or to add one or more additional mappings.
. Click *Create migration plan*.
+
{project-short} validates the migration plan and the *Plan details* page opens, indicating whether the plan is ready for use or contains an error. The details of the plan are listed, and you can edit the items you filled in on the previous page. If you make any changes, {project-short} validates the plan again.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

. VMware source providers only (All optional):

* *Preserving static IPs of VMs*: By default, virtual network interface controllers (vNICs) change during the migration process. As a result, vNICs that are configured with a static IP linked to the interface name in the guest VM lose their IP. To avoid this, click the Edit icon next to *Preserve static IPs* and toggle the *Whether to preserve the static IPs* switch in the window that opens. Then click *Save*.
+
{project-short} then issues a warning message about any VMs for which vNIC properties are missing. To retrieve any missing vNIC properties, run those VMs in vSphere in order for the vNIC properties to be reported to {project-short}.

* *Entering a list of decryption passphrases for disks encrypted using Linux Unified Key Setup (LUKS)*: To enter a list of decryption passphrases for LUKS-encrypted devices, in the *Settings* section, click the Edit icon next to *Disk decryption passphrases*, enter the passphrases, and then click *Save*. You do not need to enter the passphrases in a specific order - for each LUKS-encrypted device, {project-short} tries each passphrase until one unlocks the device.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

* *Specifying a root device*: Applies to multi-boot VM migrations only. By default, {project-short} uses the first bootable device detected as the root device.
+
To specify a different root device, in the *Settings* section, click the Edit icon next to *Root device* and choose a device from the list of commonly-used options, or enter a device in the text box.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
+
{project-short} uses the following format for disk location: `/dev/sd<disk_identifier><disk_partition>`. For example, if the second disk is the root device and the operating system is on the disk's second partition, the format would be: `/dev/sdb2`. After you enter the boot device, click *Save*.
+
If the conversion fails because the boot device provided is incorrect, it is possible to get the correct information by looking at the conversion pod logs.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

. {rhv-short} source providers only (Optional):

* *Preserving the CPU model of VMs that are migrated from {rhv-short}*: Generally, the CPU model (type) for {rhv-short} VMs is set at the cluster level, but it can be set at the VM level, which is called a custom CPU model.
By default, {project-short} sets the CPU model on the destination cluster as follows: {project-short} preserves custom CPU settings for VMs that have them, but, for VMs without custom CPU settings, {project-short} does not set the CPU model. Instead, the CPU model is later set by {virt}.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved
+
To preserve the cluster-level CPU model of your {rhv-short} VMs, in the *Settings* section, click the Edit icon next to *Preserve CPU model*. Toggle the *Whether to preserve the CPU model* switch, and then click *Save*.
RichardHoch marked this conversation as resolved.
Show resolved Hide resolved

. If the plan is valid,
.. You can run the plan now by clicking *Start migration*.
.. You can run the plan later by selecting it on the *Plans for virtualization* page and following the procedure in xref:running-migration-plan_mtv[Running a migration plan].
+
include::snip_vmware-name-change.adoc[]
Loading