Compute
I servizi di calcolo (Compute) forniscono macchine virtuali (istanze) che eseguono i Suoi carichi di lavoro su un'infrastruttura fisica condivisa. Ogni VM è definita da un Flavor (vCPU, RAM, disco) e si avvia da un'Image (modello di sistema operativo).
Che cos'è una macchina virtuale?
Una macchina virtuale (VM) è un sistema operativo guest in esecuzione sull'infrastruttura cloud. Viene creata da un'immagine e un flavor all'interno di un progetto. La VM viene eseguita su un host hypervisor fisico ed è isolata dagli altri tenant.
OpenStack offre due modalità di avvio:
- Avvio effimero: la VM si avvia direttamente dal disco root integrato nel flavor. Il disco esiste solo per la durata dell'istanza e viene eliminato quando l'istanza viene eliminata.
- Avvio da volume: la VM si avvia da un volume persistente creato da un'immagine. Il volume sopravvive all'eliminazione dell'istanza, può essere ridimensionato e può essere ricollegato a una nuova istanza.
Tip
L'avvio da volume (flavor Zero-Disk) è consigliato per la maggior parte dei carichi di lavoro. Offre flessibilità per il ridimensionamento, gli snapshot e i backup.
In questa sezione
- Images: immagini disponibili, opzioni di origine di avvio, creazione di immagini da snapshot, immagini personalizzate.
- SSH Key Pairs: creare o importare chiavi SSH per accedere alle VM.
- Launch Instance: procedura guidata Horizon passo dopo passo per distribuire una VM.
- Floating IP: assegnare un IP pubblico per rendere una VM raggiungibile da Internet.
- Server Groups: politiche di affinità e anti-affinità per il posizionamento delle VM.
- CLI Deployment: distribuire una VM completa (rete + istanza + Floating IP) dalla riga di comando.
Esempi rapidi
Una VM può essere distribuita utilizzando l'OpenStack CLI (OSC), Ansible o Terraform. Per una procedura completa, vedere CLI Deployment.
Prerequisiti: lo strumento CLI deve essere installato e configurato (vedere Tools) e sono necessarie le Application Credentials (cloud.yaml).
OpenStack CLI
openstack server create vm-u2404-az2 \
--image "Ubuntu 24.04" \
--flavor g1.2c4m \
--key-name foo-key \
--network foo-net \
--security-group default \
--availability-zone ch-zh1-az2
Ansible
- os_server:
name: "foo-u2404-az2"
image: "Ubuntu 24.04"
key_name: "foo-key"
flavor: "g1.2c4m"
network: "foo-net"
security_groups: "default"
availability_zone: "ch-zh1-az2"
Terraform
resource "openstack_compute_instance_v2" "instance_1" {
name = "vm-u2404-az2"
image_name = "Ubuntu 24.04"
flavor_name = "g1.2c4m"
key_pair = "foo-key"
security_groups = ["default"]
availability_zone = "ch-zh1-az2"
network {
name = "foo-net"
}
}
Per esempi di distribuzione di volumi, vedere Storage: operazioni sui volumi.