Casi d'uso di OpenStack
Gestione di un volumi su VM in modo che agiscano da storage persistente
Per fornire alle VM uno spazio dove salvare i dati in maniera persistente si crea un volume Nova, lo si associa ad una VM e lo si monta sulla VM. I file scritti in questo volume rimarranno persistenti. Quando l'associazione tra il volume e la VM verrà tolta e il volume verrà associato ad un'altra VM, questa vedrà i file salvati in precedenza sulla prima VM.
- Mostrare tutti i volumi esistenti:
# nova volume-list
- Loggarsi sulla instanza e verificare che lo spazio sia visibile con i comandi
dmesg | tail
e fdisk -l
. L'output di quest'ultimo dovrebbe contenere delle righe del tipo:
Disk /dev/vdc: 10.7 GB, 10737418240 bytes
16 heads, 63 sectors/track, 20805 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9dbd69c6
- Configurare lo spazio col seguente comando interattivo:
# fdisk /dev/vdc
Di seguito i passi da seguire:
- Digitare n per creare una nuova partizione
- Digitare p per creare una partizione primaria
- Digitare 1 per designarla come la prima partizione
- Premere ENTER due volte per accettare il default del primo e ultimo cilindro.
- Digitare t, selezionando la nuova partizione
- Digitare 83 per settare il tipo della partizione a 83 (tipo Linux)
- Digitare p per visualizzare il setup della partizione. La prima partizione è chiamata /dev/vdc1
- Digitare w per scrivere la partition table ed uscire da fdisk
- Infine formattare la partizione e montarla
- # mkfs.ext4 /dev/vdc1
- # mkdir /extraspace
- # mount /dev/vdc1 /extraspace
Live migration
Con
Live Migration si intende la possibilita' da parte dell'amministratore di OpenStack di migrare una VM da un Compute Node ad un altro senza discontinuita' di servizio. Questa operazione e' utile per fare manutenzione su un Compute Node.
- La directory
/var/lib/nova/instances
deve essere condivisa tra tutti i Compute Node;
-
libvitrd
deve essere configurato per supportare la migrazione live (vedere istruzione nella installazione del Compute Node).
Nel seguente esempio, la vm con id
177cf5e0-66c1-4bb8-9122-0530e1e919d9
viene migrata dal compute node
openstack-03.cnaf.infn.it
a
openstack-02.cnaf.infn.it
.
# nova show 177cf5e0-66c1-4bb8-9122-0530e1e919d9
+-------------------------------------+----------------------------------------------------------+
| Property | Value |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-SRV-ATTR:host | openstack-03.cnaf.infn.it |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | instance-000000b6 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| accessIPv4 | |
| accessIPv6 | |
| config_drive | |
| created | 2012-10-18T06:47:31Z |
| flavor | m1.small |
[...]
# nova live-migration 177cf5e0-66c1-4bb8-9122-0530e1e919d9 openstack-02.cnaf.infn.it
# nova show 177cf5e0-66c1-4bb8-9122-0530e1e919d9
+-------------------------------------+----------------------------------------------------------+
| Property | Value |
+-------------------------------------+----------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-SRV-ATTR:host | openstack-02.cnaf.infn.it |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| OS-EXT-SRV-ATTR:instance_name | instance-000000b6 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-STS:task_state | None |
| OS-EXT-STS:vm_state | active |
| accessIPv4 | |
| accessIPv6 | |
| config_drive | |
| created | 2012-10-18T06:47:31Z |
| flavor | m1.small |
[...]
Configurazione degli indirizzi IP Floating pubblici
Indirizzi IP pubblici e privati
- Ad ogni istanza virtuale viene automaticamente assegnato un IP privato (appartenente alla sottorete creata al punto precedente). E' possibile assegnare indirizzi pubblici alle istanze. In tal caso verificare la presenza della seguente riga nel file
nova.conf
:
public_interface = eth0
Far ripartire il servizio
nova-network
dopo aver cambiato il
nova.conf
.
Abilitazione di IP forwarding
- Di default l'IP forwarding è disabilitato sulla maggior parte delle distribuzioni Linux. Per poter assegnare indirizzi pubblici alle macchine è necessario che l'IP forwarding sia abilitato. Verificare se è abilitato tramite il seguente comando:
# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
In questo esempio è disabilitato. e' possibile abilitarlo al volo usando il seguente comando:
# sysctl -w net.ipv4.ip_forward=1
Al fine di rendere permanente questa modifica, editare il file
/etc/sysctl.conf
inserendo o modificando la seguente riga:
net.ipv4.ip_forward = 1
Creare una lista di floating IP
- Nova può gestire una lista di IP pubblici che possano essere assegnati alle istanze virtuali. Per aggiungere un IP alla lista:
# nova-manage floating create <AVAILABLE_PUBLIC_IP>
Dove <AVAILABLE_PUBLIC_IP> è un IP disponibile. E' possibile aggiungere una sottorete tramite:
# nova-manage floating create --ip_range=<SUBNET>
Dove <SUBNET> è una sottorete disponibile (es. 131.154.100.0/24). Per la gestione della lista di IP pubblici sono disponibili i seguenti comandi:
-
-
nova-manage floating list
: mostra la lista degli IP pubblici inseriti
-
nova-manage floating create
: aggiunge un IP alla lista
-
nova-manage floating create --ip-range=
: aggiunge una sottorete alla lista
-
nova-manage floating delete
: rimuove un IP dalla lista
-
nova-manage floating delete --ip-range=
: rimuove una sottorete dalla lista
Esempio creazione lista
Questa operazione viene fatta a livello globale, non per progetto. Di seguito viene creata una lista con 4 ip pubblici:
# nova-manage floating create 131.154.100.217
# nova-manage floating create 131.154.100.218
# nova-manage floating create 131.154.100.219
# nova-manage floating create 131.154.100.220
# nova-manage floating list
None 131.154.100.217 None nova eth0
None 131.154.100.218 None nova eth0
None 131.154.100.219 None nova eth0
None 131.154.100.220 None nova eth0
Assegnazione ip a progetto
Con le credenziali di progetto (o da dashboard) e' possibile assegnare uno o piu' ip (ancora disponibili) della lista precedentemente creata ad un progetto (nell'esempio al progetto con id
db2cf825309c49989595fc2ff915dc7e
):
# keystone tenant-list
+----------------------------------+-------------+---------+
| id | name | enabled |
+----------------------------------+-------------+---------+
| 590b1b53b3ad41bd976d2bb69cc0aca3 | IGI | True |
| 73016aa2c9ca4aeba3736cf44cc8433b | service | True |
| db2cf825309c49989595fc2ff915dc7e | adminTenant | True |
+----------------------------------+-------------+---------+
# nova floating-ip-create
# nova floating-ip-create
# nova-manage floating list
db2cf825309c49989595fc2ff915dc7e 131.154.100.217 None nova eth0
db2cf825309c49989595fc2ff915dc7e 131.154.100.218 None nova eth0
None 131.154.100.219 None nova eth0
None 131.154.100.220 None nova eth0
Assegnazione ip a vm
Nell'esempio viene assegnato l'ip
131.154.100.217
(precedentemente assegnato al progetto) alla vm con id
05f84edc-010c-4cb6-b8f5-ecd963da7a65
# nova list
+--------------------------------------+-------------------------+--------+------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-------------------------+--------+------------------------+
| 05f84edc-010c-4cb6-b8f5-ecd963da7a65 | ubuntu-prova | ACTIVE | private=192.168.122.11 |
| 0983f56f-46a3-435a-a693-ee53ad4f457b | cirros | ACTIVE | private=192.168.122.9 |
| 15620634-7ff0-4073-90de-c698bc484e3b | fedora-multi | ACTIVE | private=192.168.122.16 |
| 177cf5e0-66c1-4bb8-9122-0530e1e919d9 | winxp-multi | ACTIVE | private=192.168.122.8 |
| 31afe870-2040-434f-9bd4-54418eb0acb4 | prova-per-volume-centos | ACTIVE | private=192.168.122.5 |
| 4dcc9def-9de7-448d-9702-8eaf291d3fe6 | winxp-multi | ACTIVE | private=192.168.122.6 |
| 509275a8-0b09-48ac-87d0-be7660315bdd | fedora | ACTIVE | private=192.168.122.21 |
| 55f71a66-0467-49d0-9294-a146f858b549 | centos | ACTIVE | private=192.168.122.23 |
| 9c49c426-78bb-4dbd-95a9-7589164692e4 | prova-per-volume | ACTIVE | private=192.168.122.37 |
| a72edc8f-5c48-4996-9eee-c14e210475e7 | winxp-multi | ACTIVE | private=192.168.122.2 |
| b0ccebdf-222b-4278-8b07-9752a842209f | centos-multi | ACTIVE | private=192.168.122.17 |
| bc9b9310-bd95-4b6d-99c2-6ab676483734 | ubuntu | ACTIVE | private=192.168.122.7 |
| c0164413-03ae-478f-9650-22af081dc3a2 | centos-multi | ACTIVE | private=192.168.122.18 |
| cc5835b9-da48-4c43-9d16-c42d20442f75 | ubuntu-multi | ACTIVE | private=192.168.122.10 |
| f834ed8f-9c3c-457d-8688-5584c59e0510 | ubuntu-multi | ACTIVE | private=192.168.122.12 |
| f8ce484e-52b2-4322-a198-85322a2488c6 | winxp | ACTIVE | private=192.168.122.22 |
| fb60ac70-8a62-4ceb-bc86-1d85426d0fe4 | fedora-multi | ACTIVE | private=192.168.122.13 |
+--------------------------------------+-------------------------+--------+------------------------+
# nova add-floating-ip 05f84edc-010c-4cb6-b8f5-ecd963da7a65 131.154.100.217
# nova list
+--------------------------------------+-------------------------+--------+-----------------------------------------+
| ID | Name | Status | Networks |
+--------------------------------------+-------------------------+--------+-----------------------------------------+
| 05f84edc-010c-4cb6-b8f5-ecd963da7a65 | ubuntu-prova | ACTIVE | private=192.168.122.11, 131.154.100.217 |
| 0983f56f-46a3-435a-a693-ee53ad4f457b | cirros | ACTIVE | private=192.168.122.9 |
| 15620634-7ff0-4073-90de-c698bc484e3b | fedora-multi | ACTIVE | private=192.168.122.16 |
| 177cf5e0-66c1-4bb8-9122-0530e1e919d9 | winxp-multi | ACTIVE | private=192.168.122.8 |
| 31afe870-2040-434f-9bd4-54418eb0acb4 | prova-per-volume-centos | ACTIVE | private=192.168.122.5 |
| 4dcc9def-9de7-448d-9702-8eaf291d3fe6 | winxp-multi | ACTIVE | private=192.168.122.6 |
| 509275a8-0b09-48ac-87d0-be7660315bdd | fedora | ACTIVE | private=192.168.122.21 |
| 55f71a66-0467-49d0-9294-a146f858b549 | centos | ACTIVE | private=192.168.122.23 |
| 9c49c426-78bb-4dbd-95a9-7589164692e4 | prova-per-volume | ACTIVE | private=192.168.122.37 |
| a72edc8f-5c48-4996-9eee-c14e210475e7 | winxp-multi | ACTIVE | private=192.168.122.2 |
| b0ccebdf-222b-4278-8b07-9752a842209f | centos-multi | ACTIVE | private=192.168.122.17 |
| bc9b9310-bd95-4b6d-99c2-6ab676483734 | ubuntu | ACTIVE | private=192.168.122.7 |
| c0164413-03ae-478f-9650-22af081dc3a2 | centos-multi | ACTIVE | private=192.168.122.18 |
| cc5835b9-da48-4c43-9d16-c42d20442f75 | ubuntu-multi | ACTIVE | private=192.168.122.10 |
| f834ed8f-9c3c-457d-8688-5584c59e0510 | ubuntu-multi | ACTIVE | private=192.168.122.12 |
| f8ce484e-52b2-4322-a198-85322a2488c6 | winxp | ACTIVE | private=192.168.122.22 |
| fb60ac70-8a62-4ceb-bc86-1d85426d0fe4 | fedora-multi | ACTIVE | private=192.168.122.13 |
+--------------------------------------+-------------------------+--------+-----------------------------------------+
Gestione gruppi sicurezza
Per accedere, tramite dashboard, alla pagina di gestione dei gruppi di sicurezza andare in
Project
->
Access & Security
. La seconda tabella di questa pagina permette la gestione dei gruppi di sicurezza:
per poter utilizzare una qualsiasi porta di un'istanza è necessario aggiungere tale porta al rispettivo gruppo di sicurezza. Ad esempio per poter accedere ad una web application installata nell'istanza è necessario aggiungere la porta 80 tra le regole di sicurezza del gruppo associato a quell'istanza.
--
EnricoFattibene - 2012-10-17