Document Store Location: C:\Users\tiny-win\Desktop\DATA_STORE\WS - A\ocp-mtv
Version: 1.0
Last Updated: 2026-05-29
Status: Production-Ready
This comprehensive, production-grade migration guide provides step-by-step procedures for migrating virtual machines from VMware vCenter/ESXi hosts to OpenShift Virtualization using the Migration Toolkit for Virtualization (MTV).
- VM Types: Web servers, application servers, database servers
- Migration Types: Warm and cold migration scenarios
- Source: VMware vCenter/ESXi hosts
- Destination: OpenShift Virtualization (OpenShift Virtualization/KubeVirt)
- Tool: Migration Toolkit for Virtualization (MTV)
This guide is organized into modular sections to facilitate focused reading and implementation:
ocp-mtv/
├── 00-README.md # This file - Index and overview
├── 01-planning-and-design.md # Planning, proposal, and design phases
├── 02-high-level-design.md # HLD - Architecture and infrastructure design
├── 03-low-level-design.md # LLD - Detailed technical specifications
├── 04-networking-considerations.md # Advanced networking and VLAN configuration
├── 05-storage-planning.md # Storage allocation and secrets management
├── 06-governance-security.md # Approvals, compliance, and security requirements
├── 07-manual-migration.md # Step-by-step manual migration procedures
├── 08-automated-migration.md # Ansible and CI/CD pipeline automation
├── 09-interview-scenarios.md # Interview scenarios and examples
├── 10-troubleshooting.md # Common issues and troubleshooting steps
├── config/ # Production-grade configuration files
│ ├── network/ # Network attachment definitions
│ ├── storage/ # Storage classes and PVCs
│ ├── secrets/ # Secrets management
│ ├── providers/ # Provider configurations
│ ├── migration-plans/ # Migration plan templates
│ ├── validation/ # Pre-flight and post-migration scripts
│ ├── rollback/ # Rollback and cleanup procedures
│ ├── ansible/ # Ansible automation
│ └── ci-cd/ # CI/CD pipeline configurations
| Phase | Duration | Key Activities | Primary Owner |
|---|---|---|---|
| Planning & Design | 2-4 weeks | Assessment, HLD/LLD, resource planning | Solution Architect |
| Proposal Preparation | 1-2 weeks | Business case, ROI analysis, stakeholder approval | Project Manager |
| Pre-Migration | 1-3 weeks | Environment setup, networking, storage prep | Infrastructure Team |
| Migration Execution | Variable | VM migration (warm/cold), validation | Migration Engineer |
| Post-Migration Validation | 1-2 weeks | Testing, optimization, handover | QA/Operations Team |
- Networking Setup: VLAN/port network configuration at OpenShift level (NOT pod networking)
- Storage Allocation: Sufficient space for VM disks and migrations
- Secrets Management: Secure handling of passwords/credentials across environments
- Special Cases: Non-OS disks (NAS/SAN/NFS) attached to VMware RHEL systems
- IMPORTANT: Pod networking is NOT used for VM migrations
- Configure VLAN and port networks at the OpenShift level
- Use network segmentation, multiple VLANs, network policies, port groups
- Implement bridge bindings and node attachments for proper connectivity
- Pre-allocate sufficient storage space for all VM migrations
- Handle secrets/passwords securely across source and destination
- Plan for non-OS disks/LUNs (NAS/SAN/NFS) attached to VMware RHEL systems
- Implement proper storage class mapping
- Manual Migration: Step-by-step procedures for individual VMs
- Automated Migration: Ansible playbooks and CI/CD pipelines for repeatable, standardized migrations
- Review Planning Phase: Start with
01-planning-and-design.md - Understand Architecture: Read
02-high-level-design.mdand03-low-level-design.md - Configure Infrastructure: Follow
04-networking-considerations.mdand05-storage-planning.md - Establish Governance: Review
06-governance-security.md - Review Configuration Files: Examine production-ready configuration files in
config/directory - Execute Migration: Choose manual (
07-manual-migration.md) or automated (08-automated-migration.md) - Validate: Use post-migration validation procedures
- Troubleshoot: Reference
10-troubleshooting.mdas needed
| Role | Responsibilities | Key Documents |
|---|---|---|
| Solution Architect | HLD/LLD design, technical strategy | 02-high-level-design.md, 03-low-level-design.md |
| Project Manager | Timeline, approvals, stakeholder management | 01-planning-and-design.md, 06-governance-security.md |
| Network Engineer | VLAN configuration, network policies | 04-networking-considerations.md |
| Storage Engineer | Storage allocation, LUN management | 05-storage-planning.md |
| Migration Engineer | Execute migrations, validation | 07-manual-migration.md, 08-automated-migration.md |
| Security Engineer | Compliance, secrets management | 06-governance-security.md |
| DevOps Engineer | CI/CD pipelines, automation | 08-automated-migration.md |
| QA Engineer | Testing, validation | 07-manual-migration.md, 10-troubleshooting.md |
- Description: VMs remain running during migration
- Downtime: Minimal (seconds to minutes during final cutover)
- Use Case: Production systems requiring high availability
- Complexity: Higher (requires consistent network connectivity)
- Description: VMs are powered off during migration
- Downtime: Significant (duration of migration process)
- Use Case: Non-production systems, maintenance windows
- Complexity: Lower (simpler process, less risk)
Production-ready configuration files are provided in the config/ directory for immediate deployment.
- Network Attachment Definitions: VLAN and bridge network configurations
- Files:
vlan-10-production.yaml- Production VLAN 10 networkvlan-20-development.yaml- Development VLAN 20 networkvlan-30-management.yaml- Management VLAN 30 networkbridge-physical.yaml- Physical bridge networkbridge-ovs.yaml- Open vSwitch bridge network
- Storage Classes: SSD, HDD, and NFS storage classes
- Persistent Volume Claims: Example PVCs for different VM types
- DataVolumes: Templates for VM disk migration
- Files:
storage-class-ssd.yaml- High-performance SSD storagestorage-class-hdd.yaml- Standard HDD storagestorage-class-nfs.yaml- NFS shared storagepvc-web-server-example.yaml- Web server PVC examplepvc-database-server-example.yaml- Database PVC examplepvc-app-server-example.yaml- Application server PVC example
- Credential Secrets: vCenter, OpenShift, and application credentials
- Generation Script: Automated secret generation utility
- Files:
vcenter-credentials-secret.yaml- vCenter authenticationopenshift-credentials-secret.yaml- OpenShift authenticationdatabase-credentials-secret.yaml- Database credentialsapp-credentials-secret.yaml- Application-specific secretsgenerate-secrets.sh- Secret generation script
- vSphere Provider: VMware vCenter/ESXi provider configuration
- OpenShift Provider: OpenShift Virtualization provider configuration
- Files:
vsphere-provider.yaml- vSphere provider with basic configurationvsphere-provider-advanced.yaml- vSphere provider with advanced settingsopenshift-provider.yaml- OpenShift provider with basic configurationopenshift-provider-advanced.yaml- OpenShift provider with advanced settings
- Cold Migration Templates: For cold (VM powered off) migrations
- Warm Migration Templates: For warm (VM running) migrations
- Batch Migration Templates: For batch VM migrations
- Files:
cold-migration-template.yaml- Cold migration plan templatecold-migration-web-server.yaml- Web server cold migration examplecold-migration-database.yaml- Database cold migration examplewarm-migration-template.yaml- Warm migration plan templatewarm-migration-web-server.yaml- Web server warm migration examplewarm-migration-database.yaml- Database warm migration examplebatch-migration-template.yaml- Batch migration templatebatch-migration-production.yaml- Production batch migration example
- Pre-Flight Checks: Environment validation before migration
- Post-Migration Validation: VM validation after migration
- Files:
pre-flight-check.sh- Comprehensive pre-flight validationvcenter-check.sh- vCenter connectivity checkopenshift-check.sh- OpenShift cluster health checknetwork-check.sh- Network configuration validationstorage-check.sh- Storage capacity and performance checkpost-migration-validation.sh- Post-migration VM validation
- VM Rollback: Revert individual VM migrations
- Cleanup Procedures: Clean up migration artifacts and resources
- Files:
vm-rollback.sh- VM-specific rollback scriptcleanup-resources.sh- Resource cleanup utility
- Playbooks: Complete Ansible automation for all migration phases
- Inventory: Ansible inventory and group variables
- Templates: Jinja2 templates for migration plans
- Files:
ansible.cfg- Ansible configurationinventory/hosts- Ansible inventoryinventory/group_vars/all.yml- Global variablesinventory/group_vars/vmware.yml- VMware-specific variablesinventory/group_vars/openshift.yml- OpenShift-specific variablesplaybooks/site.yml- Main site playbookplaybooks/pre-migration.yml- Pre-migration tasksplaybooks/cold-migration.yml- Cold migration playbookplaybooks/warm-migration.yml- Warm migration playbookplaybooks/post-migration.yml- Post-migration validationplaybooks/rollback.yml- Rollback procedurestemplates/migration-plan.j2- Migration plan template
- Jenkins Pipelines: Jenkinsfile configurations for different migration types
- GitLab CI/CD: GitLab pipeline configurations
- GitHub Actions: GitHub Actions workflows
- Files:
jenkins/Jenkinsfile-cold-migration- Cold migration Jenkins pipelinejenkins/Jenkinsfile-warm-migration- Warm migration Jenkins pipelinejenkins/Jenkinsfile-batch-migration- Batch migration Jenkins pipelinegitlab/.gitlab-ci-cold.yml- Cold migration GitLab pipelinegitlab/.gitlab-ci-warm.yml- Warm migration GitLab pipelinegitlab/.gitlab-ci-batch.yml- Batch migration GitLab pipelinegithub/cold-migration.yml- Cold migration GitHub Actionsgithub/warm-migration.yml- Warm migration GitHub Actionsgithub/batch-migration.yml- Batch migration GitHub Actions
- Customize Configuration: Update configuration files with your environment details
- Apply Infrastructure:
oc apply -f config/network/andoc apply -f config/storage/ - Generate Secrets:
./config/secrets/generate-secrets.sh - Configure Providers:
oc apply -f config/providers/ - Run Validation:
./config/validation/pre-flight-check.sh - Execute Migration: Use manual procedures or automated playbooks
cd config/ansible
ansible-playbook playbooks/site.yml -e "vm_name=web-server-01"Jenkins: Import Jenkinsfiles and configure pipeline jobs
GitLab: Add pipeline files to repository and commit
GitHub: Add workflow files to .github/workflows/ directory
- Additional drivers and tools required
- Licensing considerations
- Different network adapter types
- See
10-troubleshooting.mdfor Windows-specific challenges
- Generally smoother migration process
- Kernel version compatibility
- Package management considerations
- See
10-troubleshooting.mdfor Linux-specific challenges
- NAS/SAN/NFS attached to VMware RHEL systems
- Requires special handling and reattachment procedures
- Documented in
05-storage-planning.mdand10-troubleshooting.md
- RedHat MTV Documentation: https://www.redhat.com/architect/portfolio/detail/84-migrate-vms-vmware-openshift-demo
- OpenShift Virtualization Documentation: https://docs.openshift.com/container-platform/4.13/virt/
- MTV User Guide: https://access.redhat.com/documentation/en-us/migration_toolkit_for_virtualization/
| Version | Date | Changes | Author |
|---|---|---|---|
| 1.0 | 2026-05-29 | Initial production-ready version | Devin AI |
For questions or issues related to this migration guide, contact:
- Technical Lead: [Contact Information]
- Project Manager: [Contact Information]
- Emergency Contact: [Contact Information]
Note: This document is part of a comprehensive migration guide set. Refer to individual section documents for detailed implementation steps.