1. Introduction
1.1 Contexte
Les récentes évolutions du modèle de licence VMware ont conduit de nombreuses organisations à évaluer des alternatives open source. OpenStack, en tant que plateforme cloud Infrastructure-as-a-Service (IaaS) mature, offre une solution viable pour les charges de travail d'entreprise.
1.2 Objectifs
- Définir une architecture de référence pour la migration VMware vers OpenStack
- Documenter une méthodologie de migration sans interruption de service
- Identifier les composants techniques et leurs interactions
- Fournir des recommandations d'implémentation basées sur les meilleures pratiques
1.3 Portée
Ce document couvre la migration d'un environnement VMware vSphere standard vers OpenStack, incluant les aspects compute, storage et réseau. Les considérations de sauvegarde et de reprise d'activité sont également abordées.
2. Architecture de Référence
2.1 Environnement Source : Infrastructure VMware
2.1.1 Couche Compute
L'infrastructure compute typique comprend :
- Châssis Blade : Systèmes convergeant alimentation, refroidissement et connectivité réseau
- Densité : Jusqu'à 16 serveurs par châssis 10U
- Interconnexion : Backplane haute vitesse
- Serveurs Rack : Systèmes autonomes pour charges spécifiques
- Form factors : 1U (DL360), 2U (DL380), 4U (DL580)
- Configuration minimale : 2 sockets, 256 GB RAM, connectivité SAN
2.1.2 Couche Storage
Architecture de stockage partagé :
- SAN Block Storage
- Protocoles : FC 16/32 Gb/s, iSCSI 10/25 GbE
- RAID : Niveaux 5, 6 ou 10 selon criticité
- Fonctionnalités : Thin provisioning, snapshots, réplication
- NAS File Storage
- Protocoles : NFS v3/v4, SMB/CIFS
- Utilisation : Datastores secondaires, ISO, templates
2.1.3 Couche Réseau
Topologie Spine-Leaf pour datacenter moderne :
Caractéristiques :
- Latence déterministe : Maximum 2 hops
- Bande passante Est-Ouest optimisée
- Support VXLAN natif pour overlay
2.1.4 Infrastructure de Sauvegarde
Système de sauvegarde sur bandes :
- Librairie de bandes : HPE MSL6480
- Capacité : 80-560 slots extensibles
- Technologie : LTO-8/9 (12-45 TB par cartouche)
- Connectivité : SAS ou Fibre Channel
2.2 Environnement Cible : OpenStack
2.2.1 Services Core OpenStack
Services fondamentaux requis :
Service | Fonction | Composant VMware équivalent |
---|---|---|
Nova | Compute | vSphere ESXi |
Neutron | Networking | NSX / vDS |
Cinder | Block Storage | VMFS Datastores |
Keystone | Identity | vCenter SSO |
Glance | Images | Content Library |
Horizon | Dashboard | vSphere Client |
2.2.2 Architecture Réseau OpenStack
Modèle de ségrégation réseau :
networks:
management:
vlan: 100
subnet: 192.168.100.0/24
usage: "OpenStack API, RabbitMQ, MySQL"
tenant:
vlan: 200-299
type: "vxlan"
usage: "Instance traffic"
storage:
vlan: 300
subnet: 192.168.200.0/24
usage: "Ceph, iSCSI, NFS"
external:
vlan: 400
type: "flat/vlan"
usage: "Floating IPs, external access"
3. Méthodologie de Migration
3.1 Vue d'Ensemble
La stratégie repose sur une approche progressive en 9 phases, permettant de maintenir la disponibilité des services pendant la transition.
3.2 Phase 1 : Analyse et Planification
3.2.1 Inventaire des Ressources
Identification des ressources candidates à la réallocation :
# Collecte des métriques d'utilisation
for host in $(govc ls /datacenter/host/cluster); do
govc metric.sample -json "$host" \
cpu.usage.average \
mem.usage.average
done
Critères de sélection :
- Utilisation CPU moyenne < 50%
- Utilisation mémoire < 60%
- Nombre de VMs critiques minimal
3.2.2 Matrice de Compatibilité
Évaluation de la compatibilité des charges de travail :
Critère | Compatible | Adaptation Requise | Non Compatible |
---|---|---|---|
OS Guest | Linux standard | Windows Server | Systèmes legacy |
Stockage | VMDK simple | RDM | VMDK partagés |
Réseau | Port groups standard | NSX micro-segmentation | SR-IOV |
Dépendances | Autonome | Affinité/Anti-affinité | vApp |
3.3 Phase 2 : Préparation de l'Infrastructure
3.3.1 Libération des Ressources Compute
Consolidation des charges via vMotion :
# Script PowerCLI pour migration automatisée
$sourceHosts = Get-VMHost -Location "Cluster-01" |
Where-Object {$_.CpuUsageMhz / $_.CpuTotalMhz -lt 0.5}
foreach ($vm in Get-VM -Location $sourceHosts) {
$targetHost = Get-VMHost -Location "Cluster-01" |
Where-Object {$_ -notin $sourceHosts} |
Get-Random
Move-VM -VM $vm -Destination $targetHost -VMotionPriority High
}
3.3.2 Configuration Réseau
Extension de l'infrastructure réseau existante :
# Configuration Cumulus Linux (exemple switch Leaf)
net add vlan 300-399
net add bridge bridge ports swp1-48
net add bridge bridge vids 100,200,300-399
net add vxlan vxlan10 vxlan id 10
net add vxlan vxlan10 bridge access 300
net commit
3.4 Phase 3 : Déploiement OpenStack
3.4.1 Architecture de Déploiement
Topologie recommandée pour haute disponibilité :
3.4.2 Déploiement avec Kolla-Ansible
Configuration du déploiement :
# globals.yml
---
kolla_base_distro: "rocky"
kolla_install_type: "source"
network_interface: "ens192"
neutron_external_interface: "ens224"
kolla_internal_vip_address: "192.168.100.10"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"
enable_neutron_provider_networks: "yes"
enable_neutron_dvr: "yes"
enable_neutron_qos: "yes"
Exécution du déploiement :
# Préparation des nœuds
kolla-ansible -i inventory/multinode bootstrap-servers
# Pré-checks
kolla-ansible -i inventory/multinode prechecks
# Déploiement
kolla-ansible -i inventory/multinode deploy
# Post-déploiement
kolla-ansible -i inventory/multinode post-deploy
3.5 Phase 4 : Intégration du Stockage Existant
3.5.1 Configuration Cinder pour SAN Existant
Exemple pour Dell Unity :
# /etc/kolla/config/cinder/cinder.conf
[unity]
volume_driver = cinder.volume.drivers.dell_emc.unity.Driver
san_ip = 10.10.10.10
san_login = admin
san_password = <password>
unity_storage_pool_names = Pool_1
volume_backend_name = unity
3.5.2 Validation de l'Intégration
# Création d'un type de volume
openstack volume type create unity-tier1 \
--property volume_backend_name=unity
# Test de création
openstack volume create --size 10 \
--type unity-tier1 test-volume
3.6 Phase 5 : Configuration de la Sauvegarde
3.6.1 Intégration Bacula avec OpenStack
Configuration du plugin OpenStack pour Bacula :
# bacula-dir.conf
Job {
Name = "OpenStack-Backup"
Type = Backup
Client = openstack-controller-fd
FileSet = "OpenStack-FileSet"
Schedule = "WeeklyCycle"
Storage = Tape-MSL6480
Pool = OpenStack-Pool
RunScript {
RunsWhen = Before
RunsOnClient = yes
Command = "/usr/local/bin/openstack-snapshot.sh"
}
}
FileSet {
Name = "OpenStack-FileSet"
Include {
Plugin = "python3:module_name=openstack-fd"
}
}
3.7 Phase 6 : Qualification des Charges de Travail
3.7.1 Critères d'Évaluation
Matrice de décision pour la migration :
def assess_workload(vm):
score = 0
# OS supporté
if vm.os in ['rhel', 'ubuntu', 'debian']:
score += 30
elif vm.os in ['windows2019', 'windows2022']:
score += 20
else:
score += 0
# Complexité réseau
if vm.nic_count == 1:
score += 20
elif vm.nic_count <= 3:
score += 10
else:
score += 0
# Dépendances
if not vm.has_affinity_rules:
score += 20
# Stockage
if vm.disk_type == 'thick' and not vm.has_rdm:
score += 30
return {
'vm': vm.name,
'score': score,
'complexity': 'low' if score >= 80 else
'medium' if score >= 50 else 'high'
}
3.8 Phase 7 : Migration des Instances
3.8.1 Processus de Migration
Utilisation de virt-v2v pour la conversion :
#!/bin/bash
# migrate-vm.sh
VM_NAME=$1
VCENTER_URL=$2
OPENSTACK_PROJECT=$3
# Export depuis vCenter
virt-v2v \
-i vmx \
-ic "vpx://administrator@vsphere.local@${VCENTER_URL}/Datacenter/vm/${VM_NAME}" \
-o openstack \
-oo server-id=$(openstack project show -f value -c id ${OPENSTACK_PROJECT}) \
-oo guest-id=$(uuidgen) \
-os ${CINDER_VOLUME_TYPE}
3.8.2 Validation Post-Migration
Liste de vérification :
- Instance démarre correctement
- Connectivité réseau fonctionnelle
- Performances I/O conformes
- Accès console opérationnel
- Métriques collectées
- Sauvegarde testée
3.9 Phase 8 : Tests et Validation
3.9.1 Tests de Performance
Comparaison des métriques avant/après :
# Rally pour benchmark OpenStack
rally deployment create --fromenv --name=production
rally deployment check
# Scénario de test
rally task start tests/nova-boot-and-delete.yaml
rally task report --html-static
3.9.2 Tests de Reprise d'Activité
Validation du RTO/RPO :
- Simulation de panne d'instance
- Restauration depuis sauvegarde
- Mesure du temps de récupération
- Validation de l'intégrité des données
4. Considérations Opérationnelles
4.1 Gestion des Compétences
Formation requise pour les équipes :
Rôle | Formation Recommandée | Durée | Certification |
---|---|---|---|
Architecte | OpenStack Architecture | 5 jours | COA |
Administrateur | OpenStack Operations | 5 jours | COA |
Développeur | OpenStack API/SDK | 3 jours | - |
Support | Troubleshooting OpenStack | 3 jours | - |
4.2 Monitoring et Observabilité
Stack de monitoring recommandé :
monitoring_stack:
metrics:
- prometheus
- prometheus-openstack-exporter
logs:
- elasticsearch
- fluentd
- kibana
traces:
- jaeger
alerting:
- alertmanager
visualization:
- grafana
4.3 Sécurité
Implémentation des contrôles de sécurité :
- Chiffrement : TLS pour toutes les API
- Authentication : Intégration LDAP/AD via Keystone
- Network Security : Security Groups et FWaaS
- Audit : Logs centralisés avec traçabilité
5. Conclusion
La migration de VMware vers OpenStack représente une transformation technique significative nécessitant une approche méthodique. La stratégie présentée permet de :
- Minimiser les risques par une migration progressive
- Réutiliser l'infrastructure existante
- Maintenir la continuité de service
- Développer les compétences internes progressivement
Le succès de cette migration repose sur une planification rigoureuse, une exécution méthodique et un accompagnement adapté des équipes.
6. Références
- OpenStack Installation Guide: https://docs.openstack.org/install-guide/
- OpenStack Architecture Design Guide: https://docs.openstack.org/arch-design/
- Kolla-Ansible Documentation: https://docs.openstack.org/kolla-ansible/
- Red Hat OpenStack Platform Documentation: https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/
7. Glossaire
Terme | Définition |
---|---|
COA | Certified OpenStack Administrator |
DVR | Distributed Virtual Router |
FWaaS | Firewall as a Service |
RTO | Recovery Time Objective |
RPO | Recovery Point Objective |
vDS | vSphere Distributed Switch |
Ce document est fourni à titre informatif uniquement. Les configurations et commandes présentées doivent être adaptées à chaque environnement spécifique.