Salta ai contenuti

Cheatsheet vSphere ↔ OpenShift Virtualization

Tabella unica con tutti i mapping concettuali. Pensata per essere stampata o tenuta aperta in un secondo monitor mentre lavori.

🗄️ Storage

Concetto vSphereConcetto OpenShift Virtualization
DatastorePersistentVolume (PV)
File .vmdkPV (formato raw o qcow2 sotto il cofano)
Storage Policy (SPBM)StorageClass
vVolsStorageClass + driver CSI specifico
vSANOpenShift Data Foundation (ODF, basata su Ceph) — concettualmente vicino
NFS / iSCSI / FC datastoreStorageClass con driver CSI per il backend corrispondente
RDM (Raw Device Mapping)Local PV o block-mode PV
Storage vMotionStorage live migration (4.18+)
VM/Disk SnapshotVolumeSnapshot + VirtualMachineSnapshot
Disk resize a caldoEspansione PVC online
Clone accelerato (VAAI)Clone via driver CSI con offload (Ceph, NetApp, Pure, …)
Storage DRS❌ Non c’è equivalente diretto

🌐 Networking

Concetto vSphereConcetto OpenShift Virtualization
vSwitch standardNMState policy (NodeNetworkConfigurationPolicy)
Distributed vSwitch (DvSwitch)NMState policy applicata cluster-wide
Port groupNetworkAttachmentDefinition (Multus)
VLAN taggingIdem, configurato dentro la NetworkAttachmentDefinition
NSX-T overlay segmentUserDefinedNetwork (UDN)
NSX Distributed FirewallNetworkPolicy + ACL OVN-Kubernetes
NSX Edge Load BalancerRoutes (HTTP/S) + Service LoadBalancer + MetalLB
vNIC VMXNET3virtio-net
vNIC E1000/E1000ee1000e
vNIC SR-IOVSR-IOV (con SR-IOV Network Operator)
vSphere Distributed Switch port mirroringNetwork Observability Operator (eBPF)
MAC learning, promiscuous modeConfigurabile a livello di NetworkAttachmentDefinition

🖥️ Compute

Concetto vSphereConcetto OpenShift Virtualization
Cluster vCenterCluster OpenShift
Host ESXiNode
vCenterConsole OpenShift + API server
DRS (rebalancing automatico)Descheduler Operator
vMotionLive Migration
vSphere HANode Health Check Operator + fencing agents
Affinity / Anti-affinity rulesnodeAffinity / podAffinity / podAntiAffinity
Resource PoolsNamespace + ResourceQuota / LimitRange
ReservationsCPU/memory requests
LimitsCPU/memory limits
CPU overcommitSupportato (cpuAllocationRatio)
Memory overcommit (TPS, balloon)KSM + free page reporting + virtio-balloon
Hot-add CPU/RAMSupportato (hot-remove non sempre)
Hot-add disk/NICSupportato
PCI passthrough / vGPUSupportato (NVIDIA vGPU, GPU passthrough generico)
Maintenance Modeoc adm cordon + oc adm drain, oppure NodeMaintenance CR
Host ProfilesMachineConfig + MachineConfigPool
Auto DeployAssisted Installer / Machine API + MachineSet
NUMA awarenessNUMA-aware scheduling (CPU Manager + Topology Manager)
Huge pages / Large pagesHugepages (2Mi o 1Gi, allocate via MachineConfig)
Latency Sensitivity = HighdedicatedCpuPlacement: true + isolateEmulatorThread: true + Guaranteed QoS
vSphere HA (infrastructure-level)Node Health Check Operator + fencing agents
RHEL HA / WSFC (application-level)RHEL HA con pacemaker / WSFC dentro le VM (identico)
Tanzu Kubernetes Grid (cluster K8s su VM)Hosted Control Planes (HCP) + KubeVirt provider

📊 Observability

Concetto vSphereConcetto OpenShift Virtualization
vCenter AlarmsPrometheusRule + Alertmanager
Performance ChartsGrafana / dashboard console + PromQL
Aria OperationsOpenShift Monitoring + ACM
Aria Operations for Logs / Log InsightLoki + Console plugin Logging
vmware.log per VMLog virt-launcher e qemu via Vector → Loki
Email/SNMP/script come azione di alarmAlertmanager: email, Slack, PagerDuty, webhook, MSTeams
Esperienza UI: dashboard fissiEsperienza UI: dashboard custom + linguaggio query (PromQL/LogQL)
Capacity reportingGrafana custom + ACM Insights
Multi-cluster overviewRed Hat Advanced Cluster Management (RHACM)
APM (Wavefront, Dynatrace, AppDynamics)Service Mesh (Istio + Kiali + Jaeger/Tempo) — copre anche le VM
Distributed tracingJaeger / Tempo (parte di Service Mesh / OpenShift Distributed Tracing)
Application-level metrics (RED)Service Mesh + Prometheus user-workload monitoring

💿 Componenti VM

Concetto vSphereConcetto OpenShift Virtualization
VMware ToolsQEMU Guest Agent (qemu-ga)
Driver paravirtuali (PVSCSI, VMXNET3)Driver virtio (virtio-net, virtio-blk, virtio-scsi)
virtio-win driversStessi driver, distribuiti come ISO da Red Hat per Windows
BIOS / UEFISeaBIOS / OVMF
Secure BootSupportato (con OVMF + SMM)
vTPMSupportato (basato su swtpm)
Tag e Custom AttributesLabel e Annotation
Snapshot VM (con memoria)VirtualMachineSnapshot + memory dump (virtctl memory-dump)
CloningClone via DataVolume + offload CSI
Template VMVirtualMachineTemplate + Boot Source + Instance Type
Content LibraryCatalogo Boot Source (immagini OS)
OVA / OVFImport via MTV; export via VirtualMachineExport
VM customization specificationscloud-init (Linux) / sysprep (Windows)

🔧 Operazioni quotidiane

Operazione vSphereOperazione OpenShift Virtualization
Power on VMvirtctl start <vm> -n <ns>
Power off VMvirtctl stop <vm> -n <ns> --force
Shutdown guest OSvirtctl stop <vm> -n <ns>
Restartvirtctl restart <vm> -n <ns>
Suspendvirtctl pause vm <vm> -n <ns>
Resumevirtctl unpause vm <vm> -n <ns>
Open consolevirtctl console <vm> -n <ns> (seriale) o virtctl vnc
SSH a una VMvirtctl ssh <user>@vm/<vm>.<ns> (porta forwarding)
Live migratevirtctl migrate <vm> -n <ns>
Maintenance mode hostoc adm cordon <node> && oc adm drain <node>
Snapshotoc apply -f <vmsnapshot.yaml>
Restore snapshotoc apply -f <vmrestore.yaml>
Clone VMvirtctl clone vm <src> --target-name <dst>
List VMoc get vm -A / oc get vmi -A
Edit VMoc edit vm <vm> -n <ns>
Delete VMoc delete vm <vm> -n <ns>
BackupOADP (Velero) o partner certificato (Trilio, Veeam Kasten, Portworx, …)
Migrazione da vSphereMigration Toolkit for Virtualization (MTV)
Automazione (PowerCLI)oc CLI, Ansible (redhat.openshift_virtualization), GitOps (Argo CD), SDK Python/Go

🎫 CLI quick reference

Verbooc (Kubernetes-side)virtctl (VM-specific)
Crea risorsaoc apply -f file.yaml
Listaoc get <kind>
Dettagliooc describe <kind> <name>
Eventioc get events
Avvia VMoc patch vm <name> --type=merge -p '{"spec":{"running":true}}'virtctl start <name>
Console serialevirtctl console <name>
Console VNCvirtctl vnc <name>
Live migratevirtctl migrate <name>
Memory dumpvirtctl memory-dump get <name>
Logs (di un pod)oc logs <pod>
Exec in un podoc exec -it <pod> -- /bin/bash
Port forwardingoc port-forward <pod> 8080:80

🔐 Access Control e RBAC

Concetto vSphereConcetto OpenShift Virtualization
Datacenter / Cluster come scope dei permessiCluster (root del RBAC)
Folder come scope di permessiNamespace
Ruolo AdministratorClusterRole cluster-admin
Ruolo Virtual Machine Power UserClusterRole kubevirt.io:edit
Ruolo Read-onlyClusterRole view o kubevirt.io:view
Ruoli customRole / ClusterRole custom (YAML)
Permessi a utente o gruppoRoleBinding / ClusterRoleBinding
Permission ereditata da folder ai figliImplicito: tutto dentro il namespace è coperto
Service account “globale” su vCenterServiceAccount per namespace, con permessi minimi

📐 Naming e organizzazione

Cosa è in vSphereCosa diventa in OpenShift
Datacenter / vCenterCluster
FolderNamespace (= “project” nel linguaggio OpenShift)
Tag categoriaLabel (chiave)
Tag valoreLabel (valore)
Custom attributeAnnotation
Permission “VM PowerUser su folder X”Role + RoleBinding nel namespace X

Torna all’indice