Difference: AllInOneInstallation (1 vs. 22)

Revision 222013-03-22 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.3 - 2013-02-27
Line: 400 to 400
 Brick3: 192.168.200.24:/mnt/brick-glance
Added:
>
>
La figura successiva mostra i dettagli della composizione dei volumi e sui mount point.

figura3.png

 A questo punto avremo le seguenti configurazioni sui vari server.

mcloud01

Line: 1146 to 1150
 config_file = /etc/glance/glance-api-paste.ini flavor = keystone
Added:
>
>
* Verificare che sql_connection punti al DB MySQL piuttosto che a sqlite:
sql_connection = mysql://glance:<YOUR_GLANCEDB_PASSWORD>@localhost/glance
 
  • Riavviare il servizio openstack-glance-api per rendere effettive le precedenti modifiche:

Line: 1208 to 1216
 

Troubleshooting Glance

Changed:
<
<
  • Scaricare un'immagine di test ed aggiungerla al repository di glance per verificare il corretto funzionamento del servizio:
>
>
  • Scaricare un'immagine di test ed aggiungerla al repository di glance per verificare il corretto funzionamento del servizio. Dettaglio delle opzioni
    • name: Tag identificativo dell’immagine;
    • disk-format: L’opzione specifica il formato dell’immagine.  Altri formati supportati sono raw, vhd, vmdk, vdi, iso, aki, ari and ami
    • container-format: Questa opzione e’ al momento necessaria, ma non utilizzata. Con bare si vuole intendere che il file non contiene metadati sull’immagine e si raccomanda sempre di specificarla cosi’ come e’ nell’esempio
 
Changed:
<
<
# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
>
>
# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
 
Changed:
<
<
# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare < cirros-0.3.0-x86_64-disk.img
>
>
# glance image-create --name=cirros-0.3.0-x86_64 --disk-format=qcow2 --container-format=bare < cirros-0.3.0-x86_64-disk.img
  Added new image with ID: 691109ac-9673-4195-a27f-8211a49bfdcb
Changed:
<
<
# glance index
>
>
# glance image-list
 ID Name Disk Format Container Format Size
------------------------------ -------------------- -------------------- -------------- 691109ac-9673-4195-a27f-8211a49bfdcb cirros-0.3.0-x86_64 qcow2 bare 9761280
Line: 1230 to 1238
 691109ac-9673-4195-a27f-8211a49bfdcb lost+found
Changed:
<
<
# glance show 691109ac-9673-4195-a27f-8211a49bfdcb
>
>
# glance image-show 691109ac-9673-4195-a27f-8211a49bfdcb
 URI: http://192.168.200.21:9292/v1/images/691109ac-9673-4195-a27f-8211a49bfdcb Id: 691109ac-9673-4195-a27f-8211a49bfdcb Public: No
Line: 1872 to 1880
 +-------------------------------------+------------------------------------------------------------+

Deleted:
<
<

  -- MatteoManzali - 2013-02-27

META FILEATTACHMENT attachment="figura4.png" attr="" comment="network" date="1363884333" name="figura4.png" path="figura4.png" size="195229" user="PaoloVeronesi" version="1"
Added:
>
>
META FILEATTACHMENT attachment="figura3.png" attr="" comment="glusterfs" date="1363945808" name="figura3.png" path="figura3.png" size="80733" user="PaoloVeronesi" version="1"

Revision 212013-03-21 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.3 - 2013-02-27
Line: 6 to 6
 

Testbed

Tabella Hostnames / IPs dei server che compongono l'infrastruttura pilota

Added:
>
>
Per il funzionamento dell’infrastruttura la configurazione di rete prevede l’uso di tre sottoreti:
  • Management network - 192.168.200.0/24
    • Utilizzata per la comunicazione tra i servizi di openstack. Questa rete dovrebbe essere accessibile solo all’interno del data center

  • Data network - 192.168.122.0/24
    • è la rete utilizzata per assegnare ip privati alle macchine virtuali.

  • External network - 10.101.8.0/24
    • è la rete definita “pubblica”. Viene usata per permettere alle VM di comunicare con le reti esterne all’infrastruttura.Inoltre, da questa sottorete vengono prelevati gli indirizzi di rete pubblici da usare come “floating IP” da assegnare dinamicamente alle VM.

HOSTNAME IP eth0 - Management network IP eth1 - External network
<-- -->
Sorted ascending
IP eth2(virbr0) - Data network
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21 192.168.122.0/24
mcloud02.regionemarche.intra 192.168.200.22 10.101.8.22 192.168.122.0/24
mcloud03.regionemarche.intra 192.168.200.23 10.101.8.23 192.168.122.0/24
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24 192.168.122.0/24
La seguente figura illustra questo setup: figura4.png
 
Deleted:
<
<
HOSTNAME IP eth0 IP eth1 IP eth2
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21 non configurato
mcloud02.regionemarche.intra 192.168.200.22 10.101.8.22 non configurato
mcloud03.regionemarche.intra 192.168.200.23 10.101.8.23 non configurato
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24 non configurato
 
Deleted:
<
<

 

Controlli preliminari dell'ambiente software da effettuare su ogni server

  • Controllare il sistema operativo installato (deve essere Centos 6.3)
Line: 1863 to 1875
 

-- MatteoManzali - 2013-02-27

Added:
>
>
META FILEATTACHMENT attachment="figura4.png" attr="" comment="network" date="1363884333" name="figura4.png" path="figura4.png" size="195229" user="PaoloVeronesi" version="1"

Revision 202013-02-27 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Changed:
<
<
Ver. 0.2 - 2012-11-20
>
>
Ver. 0.3 - 2013-02-27
 


Line: 1312 to 1312
 

Installare e impostare l'avvio automatico dei servizi legati a ISCSI (sul Cloud Controller)

Changed:
<
<
  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio yum install scsi-target-utils sul Cloud Controller. Controllare quindi che sia installato attraverso il seguente comando:
>
>
  • Per poter fare l'attach di un volume nova all'instanza di una macchina virtuale è necessario installare ed avviare il servizio scsi-target-utils sul Cloud Controller. Controllare quindi che sia installato attraverso il seguente comando:
 
yum install scsi-target-utils
Line: 1862 to 1862
 
Changed:
<
<
-- MatteoManzali - 2012-11-19
>
>
-- MatteoManzali - 2013-02-27

Revision 192013-02-25 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 90 to 90
 192.168.200.24 mcloud04.regionemarche.intra mcloud04
Changed:
<
<
  • Installazione di alcuni pacchetti si S.O. mancanti, ma utili per il lavoro di installazione e configurazione:
>
>
  • Installazione di alcuni pacchetti sui S.O. mancanti, ma utili per il lavoro di installazione e configurazione:
 
yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp avahi libvirt libvirt-python libvirt-client
Line: 106 to 106
 
  • Installazione del repository EPEL
Changed:
<
<
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
>
>
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  # yum clean all

Revision 182013-02-22 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 93 to 93
 
  • Installazione di alcuni pacchetti si S.O. mancanti, ma utili per il lavoro di installazione e configurazione:
Changed:
<
<
yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp avahi
>
>
yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp avahi libvirt libvirt-python libvirt-client
 

  • Configurazione servizio ntp. La sincronizzazione dei server è essenziale per il corretto funzionamento di openstack. Al file di configurazione /etc/ntp.conf è stato aggiunta la riga server 10.101.12.49 e successivamente riavviato il servizio.
Line: 101 to 101
 
# chkconfig ntpd on
Changed:
<
<
# service ntp restart
>
>
# service ntpd restart
 

  • Installazione del repository EPEL
Line: 112 to 112
  # yum update
Changed:
<
<
>
>
  • E' consigliabile fare un reboot successivamente al comando yum update
 
  • I servizi iptables e SELinux risultavano abilitati e sono stati spenti.
Changed:
<
<
    • Per disattivare completamente |SELinux occorre editare /etc/sysconfig/selinux, mettere SELINUX=disabled e fare il reboot dei server. Per iptables:
>
>
    • Per disattivare completamente SELinux occorre editare /etc/sysconfig/selinux, mettere SELINUX=disabled e fare il reboot dei server. Per iptables:
 
# /etc/init.d/iptables stop
Line: 134 to 135
 /etc/init.d/messagebus restart /etc/init.d/avahi-daemon restart /etc/init.d/libvirtd restart
Changed:
<
<
/sbin/chkconfig messagebus on /sbin/chkconfig avahi-daemon on
>
>
chkconfig messagebus on chkconfig avahi-daemon on
 


Line: 1335 to 1336
 

Configurazione dell'Hypervisor (KVM)

  • Installare i pacchetti per la virtualizzazione:

Changed:
<
<
# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils libguestfs-tools
>
>
# yum install qemu-kvm qemu-img virt-manager python-virtinst bridge-utils libguestfs-tools
  # yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"

Revision 172013-01-11 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 1182 to 1182
 # glance-manage db_sync
Changed:
<
<
  • Infine modificare il proprietario della directory /var/lib/glance :
>
>
  • Modificare il proprietario della directory /var/lib/glance :
 
# chown -R glance:glance /var/lib/glance
Added:
>
>
  • Attivare i servizi al boot :
    # chkconfig openstack-glance-api on
    # chkconfig openstack-glance-registry on
    
 

Troubleshooting Glance

  • Scaricare un'immagine di test ed aggiungerla al repository di glance per verificare il corretto funzionamento del servizio:

Deleted:
<
<
# cd /stackimages
 # wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare <

Changed:
<
<
/stackimages/cirros-0.3.0-x86_64-disk.img
>
>
cirros-0.3.0-x86_64-disk.img
  Added new image with ID: 691109ac-9673-4195-a27f-8211a49bfdcb
Line: 1288 to 1292
 
  • Impostare l'avvio automatico dei servizi nova, tranne i servizi appena disabilitati:
    # for svc in api console network scheduler cert \
Changed:
<
<
consoleauth novncproxy volume objectstore
>
>
consoleauth volume objectstore
 xvpvncproxy; do chkconfig openstack-nova-$svc on; done

Revision 162013-01-10 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 169 to 169
  Prima di configurare un volume GestioneServiziGenerali.GlusterFS è necessario creare un trusted storage pool, contenente i server che comporranno il volume.
Changed:
<
<
Per permettere la condivisione del filesystem tra i nodi desiderati eseguire, su uno qualsiasi dei nodi, il comando gluster peer probe <HOSTNAME_NODE> per ognuno degli altri nodi.
>
>
Per permettere la condivisione del filesystem tra i nodi desiderati eseguire, su uno qualsiasi dei nodi, il comando gluster peer probe <HOSTNAME_NODE> per ognuno degli altri nodi.
  Ad esempio in un pool di quattro nodi (come nell'infrastruttura MarcheCloud) eseguire sull'host 192.168.200.21 :
Line: 635 to 635
 
# keystone-manage db_sync
Added:
>
>
  • Riavviare nuovamente il servizio keystone (in caso contrario a volte dà errore durante l'inserimento di entry nel DB da parte di keystone):
    # service openstack-keystone restart
    
 

Creazione di tenant, utente e ruolo per l'amministratore

Per comodità in questa sezione si utilizzerà uno script che farà l'export di determinate variabili. Creare il file .keystonrc e modificarlo come segue:
Changed:
<
<
export ADMIN_TOKEN=
>
>
export ADMIN_TOKEN=
 export OS_USERNAME= export OS_PASSWORD= export OS_TENANT_NAME=
Line: 672 to 676
 

Dove:

Added:
>
>
  • <ADMIN_TOKEN> è il token dell'amministratore, inserito come prima riga del file /etc/keystone/keyston.conf
 
  • <KEYSTONE_HOSTNAME> è l'hostname che ospita il servizio Keystone
  • <ADMIN_USER> è l'utente admin, nel nostro caso "adminUser"
  • <ADMIN_PASSWORD> è la password dell'utente admin

Revision 152012-12-20 - EnricoFattibene

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 1410 to 1410
 flat_network_bridge = virbr0 flat_interface = eth2 multi_host = True
Changed:
<
<
auto_assign_floating_ip = True
>
>
auto_assign_floating_ip = False
 injected_network_template = /usr/share/nova/interfaces.template allow_same_net_traffic=true
Line: 1731 to 1731
 

Assegnazione IP ad una macchina virtuale

Changed:
<
<
  • Nel caso in cui non sia abilitata l'assegnazione automatica dei floating IP alle macchine virtuali in fase di istanziazione (verificabile dalla presenza nel file /etc/nova/nova.conf della riga auto_assign_floating_ip = True ), è possibile assegnare manualmente un IP ad un'istanza. Per assegnare un IP ad un'istanza è necessario prima assegnare l'IP al progetto, attraverso il seguente comando:
>
>
  • Nel caso in cui non sia abilitata l'assegnazione automatica dei floating IP alle macchine virtuali in fase di istanziazione (verificabile dalla presenza nel file /etc/nova/nova.conf della riga auto_assign_floating_ip = True ), come nel caso dell'infrastruttura pilota, è possibile assegnare manualmente un IP ad un'istanza. Per assegnare un IP ad un'istanza è necessario prima assegnare l'IP al progetto, attraverso il seguente comando:
 
# nova floating-ip-create

Revision 142012-12-03 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 24 to 24
 
  • Controllare la corretta configurazione del volume group (un unico volume group con nome nova-volumes) e dei logical volumes

Changed:
<
<
[root@mcloud01 ~]# vgs
>
>
# vgs
  VG #PV #LV #SN Attr VSize VFree nova-volumes 1 3 0 wz--n- 1.64t 849.76g
Changed:
<
<
[root@mcloud01 ~]# lvs
>
>
# lvs
  LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert lv_root nova-volumes -wi-ao-- 10.00g lv_swap nova-volumes -wi-ao-- 15.90g
Line: 36 to 36
 
  • Controllare il setup di rete (tre reti fisiche distinte eth0, eth1 ed eth2)

Changed:
<
<
[root@mcloud01 ~]# ifconfig
>
>
# ifconfig
 eth0 Link encap:Ethernet HWaddr B4:B5:2F:5C:FE:70 inet addr:192.168.200.21 Bcast:192.168.200.255 Mask:255.255.255.0 inet6 addr: fe80::b6b5:2fff:fe5c:fe70/64 Scope:Link
Line: 93 to 93
 
  • Installazione di alcuni pacchetti si S.O. mancanti, ma utili per il lavoro di installazione e configurazione:
Changed:
<
<
yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp
>
>
yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp avahi
 

  • Configurazione servizio ntp. La sincronizzazione dei server è essenziale per il corretto funzionamento di openstack. Al file di configurazione /etc/ntp.conf è stato aggiunta la riga server 10.101.12.49 e successivamente riavviato il servizio.
Line: 125 to 125
 
  • La lista dei repository a questo punto sarà la seguente:

Changed:
<
<
[root@mcloud01 ~]# ls /etc/yum.repos.d/
>
>
# ls /etc/yum.repos.d/
 CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel.repo epel-testing.repo
Added:
>
>
  • Operazioni preliminari per l'avvio del servizio libvirtd :
    /etc/init.d/messagebus restart
    /etc/init.d/avahi-daemon restart
    /etc/init.d/libvirtd restart
    /sbin/chkconfig messagebus on
    /sbin/chkconfig avahi-daemon on
    


 

GlusterFS

Il sito ufficiale di GlusterFE è http://www.gluster.org/. La documentazione per GlusterFS è disponibile in http://www.gluster.org/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide
Line: 353 to 363
 

Riepilogo configurazione del filesystem

I volumi di GlusterFS risulteranno essere i seguenti:
Changed:
<
<
[root@mcloud01 ~]# gluster volume info
>
>
# gluster volume info
  Volume Name: volume-nova Type: Distributed-Replicate
Line: 381 to 391
 

mcloud01

Changed:
<
<
[root@mcloud01 ~]# cat /etc/fstab
>
>
# cat /etc/fstab
  # # /etc/fstab
Line: 400 to 410
 /dev/nova-volumes/lv_nova /mnt/brick-nova ext4 defaults 1 1 192.168.200.21:/volume-glance /var/lib/glance/images glusterfs defaults 1 1
Changed:
<
<
[root@mcloud01 ~]# mount
>
>
# mount
 /dev/mapper/nova--volumes-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw)
Line: 411 to 421
 none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) 192.168.200.21:/volume-glance on /var/lib/glance/images type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
Changed:
<
<
[root@mcloud01 ~]# df -mh
>
>
# df -mh
 Filesystem Size Used Avail Use% Mounted on /dev/mapper/nova--volumes-lv_root 9.9G 1.4G 8.1G 15% /
Line: 425 to 435
 

mcloud02

Changed:
<
<
[root@mcloud02 ~]# cat /etc/fstab
>
>
# cat /etc/fstab
  # # /etc/fstab
Line: 445 to 455
 /dev/nova-volumes/lv_nova /mnt/brick-nova ext4 defaults 1 1 192.168.200.22:/volume-nova /var/lib/nova/instances glusterfs defaults 1 1
Changed:
<
<
[root@mcloud02 ~]# mount
>
>
# mount
 /dev/mapper/nova--volumes-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw)
Line: 457 to 467
 /dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw) 192.168.200.22:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
Changed:
<
<
[root@mcloud02 ~]# df -mh
>
>
# df -mh
 Filesystem Size Used Avail Use% Mounted on /dev/mapper/nova--volumes-lv_root 9.9G 886M 8.5G 10% /
Line: 473 to 483
 

mcloud03

Changed:
<
<
[root@mcloud03 ~]# cat /etc/fstab
>
>
# cat /etc/fstab
  # # /etc/fstab
Line: 493 to 503
 /dev/nova-volumes/lv_nova /mnt/brick-nova ext4 defaults 1 1 192.168.200.23:/volume-nova /var/lib/nova/instances glusterfs defaults 1 1
Changed:
<
<
[root@mcloud03 ~]# mount
>
>
# mount
 /dev/mapper/nova--volumes-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw)
Line: 505 to 515
 /dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw) 192.168.200.23:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
Changed:
<
<
[root@mcloud03 ~]# df -mh
>
>
# df -mh
 Filesystem Size Used Avail Use% Mounted on /dev/mapper/nova--volumes-lv_root 9.9G 886M 8.5G 10% /
Line: 521 to 531
 

mcloud04

Changed:
<
<
[root@mcloud04 ~]# cat /etc/fstab
>
>
# cat /etc/fstab
  # # /etc/fstab
Line: 541 to 551
 /dev/nova-volumes/lv_nova /mnt/brick-nova ext4 defaults 1 1 192.168.200.24:/volume-nova /var/lib/nova/instances glusterfs defaults 1 1
Changed:
<
<
[root@mcloud04 ~]# mount
>
>
# mount
 /dev/mapper/nova--volumes-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw)
Line: 553 to 563
 /dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw) 192.168.200.24:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)
Changed:
<
<
[root@mcloud04 ~]# df -mh
>
>
# df -mh
 Filesystem Size Used Avail Use% Mounted on /dev/mapper/nova--volumes-lv_root 9.9G 886M 8.5G 10% /
Line: 982 to 992
 
  • Per le principali operazioni di troubleshooting riferirsi alla guida.

Changed:
<
<
[root@mcloud01 ~]# keystone tenant-list
>
>
# keystone tenant-list
 +----------------------------------+-------------+---------+
id name enabled
+----------------------------------+-------------+---------+
Line: 991 to 1001
 
7e266325c0ca4e01aa0a12f54c00adc5 adminTenant True
+----------------------------------+-------------+---------+
Changed:
<
<
[root@mcloud01 ~]# keystone user-list
>
>
# keystone user-list
 +----------------------------------+------------+---------+----------------+
id name enabled email
+----------------------------------+------------+---------+----------------+
Line: 1001 to 1011
 
a9a8771522494fa9aa608089a94ca998 glance True  
+----------------------------------+------------+---------+----------------+
Changed:
<
<
[root@mcloud01 ~]# keystone service-list
>
>
# keystone service-list
 +----------------------------------+----------+----------+---------------------------+
id name type description
+----------------------------------+----------+----------+---------------------------+
Line: 1011 to 1021
 
ec3e65796067413ea32c3c34c0a85d09 glance image Glance Image Service
+----------------------------------+----------+----------+---------------------------+
Changed:
<
<
[root@mcloud01 ~]# keystone endpoint-list
>
>
# keystone endpoint-list
 +----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+
id region publicurl internalurl adminurl service_id
+----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+
Line: 1021 to 1031
 
d5205b8e45b24871aaa88376da990a0a RegionOne http://192.168.200.21:8774/v2/%(tenant_id)s http://192.168.200.21:8774/v2/%(tenant_id)s http://192.168.200.21:8774/v2/%(tenant_id)s 77faae0db3f741b0b14cd926ccdcc0d7
+----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+
Changed:
<
<
[root@mcloud01 ~]# keystone catalog
>
>
# keystone catalog
 Service: volume +-------------+----------------------------------------------------------------+
Property Value
Line: 1176 to 1186
 

Troubleshooting Glance

  • Scaricare un'immagine di test ed aggiungerla al repository di glance per verificare il corretto funzionamento del servizio:

Changed:
<
<
[root@mcloud01 stackimages]# cd /stackimages
>
>
# cd /stackimages
 
Changed:
<
<
[root@mcloud01 stackimages]# wget
>
>
# wget
 https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
Changed:
<
<
[root@mcloud01 stackimages]# glance add name=cirros-0.3.0-x86_64
>
>
# glance add name=cirros-0.3.0-x86_64
 disk_format=qcow2 container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img

Added new image with ID: 691109ac-9673-4195-a27f-8211a49bfdcb

Changed:
<
<
[root@mcloud01 stackimages]# glance index
>
>
# glance index
 ID Name Disk Format Container Format Size
------------------------------ -------------------- -------------------- -------------- 691109ac-9673-4195-a27f-8211a49bfdcb cirros-0.3.0-x86_64 qcow2 bare 9761280
Changed:
<
<
[root@mcloud01 stackimages]# ls /var/lib/glance/images/
>
>
# ls /var/lib/glance/images/
 691109ac-9673-4195-a27f-8211a49bfdcb lost+found
Line: 1267 to 1277
 [...]

Changed:
<
<
  • Modificare due file in /etc/nova nel modo descritto nel paragrafo Configurazione del servizio Compute -> Servizio nova . Nota bene: seguire solo i punti riferiti alla modifica dei due files, poi tornare a questo paragrafo.
>
>
  • Seguire le istruzioni al paragrafo Configurazione del servizio Compute -> Servizio nova . Nota bene: seguire solo i punti riferiti al cambio proprietario ed alla modifica dei due files, poi tornare a questo paragrafo.
 
 
  • Impostare l'avvio automatico dei servizi nova, tranne i servizi appena disabilitati:
Line: 1360 to 1370
 

Servizio nova

Added:
>
>
  • Cambiare il propietario della cartella nova :
    # chown -R nova:nova /etc/nova
    
 
  • Modificare due file in /etc/nova nel seguente modo.
    • Contentuto completo di nova.conf :

Line: 1378 to 1392
 libvirt_xml_template = /usr/share/nova/libvirt.xml.template

# sql

Changed:
<
<
sql_connection = mysql://nova:PASSWORD_UTENTE_DB_NOVA@clstr-09.cnaf.infn.it/nova
>
>
sql_connection = mysql://nova:PASSWORD_UTENTE_DB_NOVA@192.168.200.21/nova
  # authentication auth_strategy = keystone
Line: 1396 to 1410
 flat_network_bridge = virbr0 flat_interface = eth2 multi_host = True
Changed:
<
<
auto_assign_floating_ip = False
>
>
auto_assign_floating_ip = True
 injected_network_template = /usr/share/nova/interfaces.template allow_same_net_traffic=true
Line: 1404 to 1418
 vnc_enabled = True vncserver_listen = 0.0.0.0 vncserver_proxyclient_address = THIS_SERVER_IP
Changed:
<
<
novncproxy_base_url=http://clstr-09.cnaf.infn.it:6080/vnc_auto.html xvpvncproxy_base_url=http://clstr-09.cnaf.infn.it:6081/console
>
>
novncproxy_base_url=http://10.101.8.21:6080/vnc_auto.html xvpvncproxy_base_url=http://10.101.8.21:6081/console
  # qpid
Changed:
<
<
qpid_hostname = clstr-09.cnaf.infn.it
>
>
qpid_hostname = 10.101.8.21
 rpc_backend = nova.rpc.impl_qpid

# glance image_service=nova.image.glance.GlanceImageService

Changed:
<
<
glance_api_servers=clstr-09.cnaf.infn.it:9292
>
>
glance_api_servers=10.101.8.21:9292
 cache_images=true

# other

Line: 1431 to 1445
 volume_group = nova-volumes iscsi_helper = tgtadm
Deleted:
<
<

### default configurations

# volume_name_template = volume-%08x # volumes_dir = /etc/nova/volumes # [keystone_authtoken] # admin_tenant_name = %SERVICE_TENANT_NAME% # admin_user = %SERVICE_USER% # admin_password = %SERVICE_PASSWORD% # auth_host = 127.0.0.1 # auth_port = 35357 # auth_protocol = http # signing_dirname = /tmp/keystone-signing-nova

 

Dove:

      • <PASSWORD_UTENTE_DB_NOVA> è la password dell'utente "nova" del DB "nova" del Cloud Controller
      • <THIS_SERVER_IP> è l'IP del server che si sta configurando
Changed:
<
<
      • nei parametri sql_connection , glance_api_servers , novncproxy_base_url , xvpvncproxy_base_url e qpid_hostname "clstr-09.cnaf.infn.it" è il server che ospita il Cloud Controller e il servizio Keystone
>
>
      • nei parametri sql_connection , glance_api_servers , novncproxy_base_url , xvpvncproxy_base_url e qpid_hostname l'ip 10.101.8.21 è il server che ospita il Cloud Controller e il servizio Keystone
 
      • nel parametro fixed_range il valore 192.168.122.0/24 indica il range di IP che possono essere assegnati alle macchine virtuali
Changed:
<
<
      • nel parametro flat_network_bridge "virbr0" è l'interfaccia di rete virtuale del server che si sta configurando
>
>
      • nel parametro flat_network_bridge "virbr0" è l'interfaccia di rete virtuale del server che si sta configurando e si appoggia all'interfaccia fisica eth2
 
 
    • Parte finale di /etc/nova/api-paste.ini (la parte precedente rimane invariata):

Line: 1461 to 1460
  [filter:authtoken] paste.filter_factory = keystone.middleware.auth_token:filter_factory
Deleted:
<
<
 service_protocol = http
Changed:
<
<
service_host = clstr-09.cnaf.infn.it
>
>
service_host = 192.168.200.21
 service_port = 5000
Changed:
<
<
auth_host = clstr-09.cnaf.infn.it
>
>
auth_host = 192.168.200.21
 auth_port = 35357 auth_protocol = http
Changed:
<
<
auth_uri = http://clstr-09.cnaf.infn.it:5000/
>
>
auth_uri = http:// 192.168.200.21:5000/
 admin_tenant_name = service admin_user = nova admin_password = NOVA_PASSWORD
Line: 1497 to 1495
 # nova-manage service list

Binary Host Zone Status State Updated_At

Changed:
<
<
nova-cert clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-consoleauth clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-console clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-scheduler clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-compute clstr-10.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-volume clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-network clstr-10.cnaf.infn.it nova enabled smile 2012-10-15 14:46:01 nova-compute clstr-11.cnaf.infn.it nova enabled smile 2012-10-15 14:45:57 nova-network clstr-11.cnaf.infn.it nova enabled smile 2012-10-15 14:46:03 nova-compute clstr-12.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02 nova-network clstr-12.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02
>
>
nova-consoleauth mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:54 nova-console mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:48 nova-volume mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:50 nova-scheduler mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:56 nova-compute mcloud02.regionemarche.intra nova enabled smile 2012-12-03 14:03:49 nova-network mcloud02.regionemarche.intra nova enabled smile 2012-12-03 14:03:51 nova-cert mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:54 nova-network mcloud01.regionemarche.intra nova enabled smile 2012-12-03 14:03:55 nova-compute mcloud04.regionemarche.intra nova enabled smile 2012-12-03 14:03:49 nova-network mcloud04.regionemarche.intra nova enabled smile 2012-12-03 14:03:57 nova-compute mcloud03.regionemarche.intra nova enabled smile 2012-12-03 14:03:48 nova-network mcloud03.regionemarche.intra nova enabled smile 2012-12-03 14:03:55
 

Configurazione del servizio nova-network

Line: 1524 to 1523
  RX bytes:0 (0.0 b) TX bytes:5681 (5.5 KiB)

Deleted:
<
<
  • Configurare l'interfaccia eth1 in promiscue mode
ip link set eth1 promisc on
 NB: DA UN QUALSIASI SERVER UNA VOLTA SOLA
  • Creare la rete con nova-manage
Line: 1536 to 1530
  # nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0
Changed:
<
<
--num_networks=1 --network_size=256
>
>
--num_networks=1 --network_size=256 --dns1=10.101.12.10 --dns2=10.101.12.11
  # nova-manage network list id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid
Changed:
<
<
1 192.168.122.0/24 None 192.168.122.2 8.8.4.4 None None None 03f392b7-16bd-4ea0-a1c0-897fdebd1f0c
>
>
6 192.168.122.0/24 None 192.168.122.2 10.101.12.10 10.101.12.11 None None a51798f8-3c2a-48f3-ad19-54ab2048bf7e
 

  • Il servizio Compute usa i concetti di gruppi di sicurezza per controllare che i protocolli di rete (TCP, UDP, ICMP), le porte e gli indirizzi IP permettano di accedere alle istanze.
Line: 1676 to 1671
 

Utilizzo della Dashboard

Changed:
<
<
Per verificare il funzionamento della Dashboard, andare su http://clstr-09.cnaf.infn.it/dashboard e loggarsi con le credenziali adminUser e relativa password.
>
>
Per verificare il funzionamento della Dashboard, andare su http://10.101.8.21/dashboard e loggarsi con le credenziali adminUser e relativa password.


Casi d'uso

Configurazione degli indirizzi IP Floating pubblici

  • 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 = eth1
    
  • 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

  • Nel caso del pilota MarcheCloud è stata creata la seguente lista di floating IP:
    # nova-manage floating create --ip_range=10.101.8.128/25
    
    # nova-manage floating list
    None   10.101.8.129   None   nova    eth1
    None   10.101.8.130   None   nova       eth1
    None   10.101.8.131   None   nova       eth1
    None   10.101.8.132   None   nova       eth1
    [....]
    None   10.101.8.254   None   nova       eth1
    

Assegnazione IP ad una macchina virtuale

  • Nel caso in cui non sia abilitata l'assegnazione automatica dei floating IP alle macchine virtuali in fase di istanziazione (verificabile dalla presenza nel file /etc/nova/nova.conf della riga auto_assign_floating_ip = True ), è possibile assegnare manualmente un IP ad un'istanza. Per assegnare un IP ad un'istanza è necessario prima assegnare l'IP al progetto, attraverso il seguente comando:
    # nova floating-ip-create
    
    # nova-manage floating list
    14998a053eb745bb852d7a593812da2f   10.101.8.129   None   nova    eth1
    None   10.101.8.130   None   nova       eth1
    None   10.101.8.131   None   nova       eth1
    None   10.101.8.132   None   nova       eth1
    [....]
    None   10.101.8.254   None   nova       eth1
    
    Nota bene: il progetto a cui viene assegnato l'IP è il tenant con cui ci si è autenticati.

  • Ora è possibile assegnare uno degli IP (nel nostro caso uno solo, il 10.101.8.129) ad una macchina virtuale specificando l'id della VM, come segue:
    # nova list
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    | ID                                   | Name                  | Status | Networks                            |
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    | 44806b1a-6157-417d-8437-ef36871bb6fd | Osuse_instance_andrea | ACTIVE | private=192.168.122.4               |
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    
    # nova add-floating-ip  44806b1a-6157-417d-8437-ef36871bb6fd 10.101.8.129
    
    # nova list
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    | ID                                   | Name                  | Status | Networks                            |
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    | 44806b1a-6157-417d-8437-ef36871bb6fd | Osuse_instance_andrea | ACTIVE | private=192.168.122.4, 10.101.8.129 |
    +--------------------------------------+-----------------------+--------+-------------------------------------+
    
    # nova-manage floating list
    14998a053eb745bb852d7a593812da2f   10.101.8.129   44806b1a-6157-417d-8437-ef36871bb6fd   nova    eth1
    None   10.101.8.130   None   nova       eth1
    None   10.101.8.131   None   nova       eth1
    None   10.101.8.132   None   nova       eth1
    [....]
    None   10.101.8.254   None   nova       eth1
    
    

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.

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 44806b1a-6157-417d-8437-ef36871bb6fd viene migrata dal compute node mcloud02.regionemarche.intra a mcloud03.regionemarche.intra .

# nova show 44806b1a-6157-417d-8437-ef36871bb6fd
+-------------------------------------+------------------------------------------------------------+
| Property                            | Value                                                      |
+-------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                     |
| OS-EXT-SRV-ATTR:host                | mcloud02.regionemarche.intra                               |
| OS-EXT-SRV-ATTR:hypervisor_hostname | mcloud02.regionemarche.intra                               |
| OS-EXT-SRV-ATTR:instance_name       | instance-0000002a                                          |
| OS-EXT-STS:power_state              | 1                                                          |
| OS-EXT-STS:task_state               | None                                                       |
| OS-EXT-STS:vm_state                 | active                                                     |
| accessIPv4                          |                                                            |
| accessIPv6                          |                                                            |
| config_drive                        |                                                            |
| created                             | 2012-11-29T16:36:58Z                                       |
| flavor                              | MCloud Flavor (6)                                          |
| hostId                              | bdafa05a4a5a5e92b059ab59db5bf40cce604edcd547930a1cf0efb0   |
| id                                  | 44806b1a-6157-417d-8437-ef36871bb6fd                       |
| image                               | Osuse_mcloud_281112 (28a1a678-1410-4235-a697-6de2e4fade51) |
| key_name                            | None                                                       |
| metadata                            | {}                                                         |
| name                                | Osuse_instance_andrea                                      |
| private network                     | 192.168.122.4, 10.101.8.130                                |
| progress                            | 0                                                          |
| security_groups                     | [{u'name': u'default'}]                                    |
| status                              | ACTIVE                                                     |
| tenant_id                           | 7e266325c0ca4e01aa0a12f54c00adc5                           |
| updated                             | 2012-11-29T17:07:46Z                                       |
| user_id                             | 5267588ce6694b1da88144a11e586106                           |
+-------------------------------------+------------------------------------------------------------+

# nova live-migration 44806b1a-6157-417d-8437-ef36871bb6fd mcloud03.regionemarche.intra

# nova show 44806b1a-6157-417d-8437-ef36871bb6fd
+-------------------------------------+------------------------------------------------------------+
| Property                            | Value                                                      |
+-------------------------------------+------------------------------------------------------------+
| OS-DCF:diskConfig                   | MANUAL                                                     |
| OS-EXT-SRV-ATTR:host                | mcloud03.regionemarche.intra                               |
| OS-EXT-SRV-ATTR:hypervisor_hostname | mcloud03.regionemarche.intra                               |
| OS-EXT-SRV-ATTR:instance_name       | instance-0000002a                                          |
| OS-EXT-STS:power_state              | 1                                                          |
| OS-EXT-STS:task_state               | None                                                       |
| OS-EXT-STS:vm_state                 | active                                                     |
| accessIPv4                          |                                                            |
| accessIPv6                          |                                                            |
| config_drive                        |                                                            |
| created                             | 2012-11-29T16:36:58Z                                       |
| flavor                              | MCloud Flavor (6)                                          |
| hostId                              | bdafa05a4a5a5e92b059ab59db5bf40cce604edcd547930a1cf0efb0   |
| id                                  | 44806b1a-6157-417d-8437-ef36871bb6fd                       |
| image                               | Osuse_mcloud_281112 (28a1a678-1410-4235-a697-6de2e4fade51) |
| key_name                            | None                                                       |
| metadata                            | {}                                                         |
| name                                | Osuse_instance_andrea                                      |
| private network                     | 192.168.122.4, 10.101.8.130                                |
| progress                            | 0                                                          |
| security_groups                     | [{u'name': u'default'}]                                    |
| status                              | ACTIVE                                                     |
| tenant_id                           | 7e266325c0ca4e01aa0a12f54c00adc5                           |
| updated                             | 2012-11-29T17:07:46Z                                       |
| user_id                             | 5267588ce6694b1da88144a11e586106                           |
+-------------------------------------+------------------------------------------------------------+
 

Revision 132012-12-03 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 7 to 7
 

Testbed

Tabella Hostnames / IPs dei server che compongono l'infrastruttura pilota

Changed:
<
<
HOSTNAME IP eth0 IP eth1
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21
mcloud02.regionemarche.intra 192.168.200.22 10.101.8.22
mcloud03.regionemarche.intra 192.168.200.23 10.101.8.23
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24
>
>
HOSTNAME IP eth0 IP eth1 IP eth2
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21 non configurato
mcloud02.regionemarche.intra 192.168.200.22 10.101.8.22 non configurato
mcloud03.regionemarche.intra 192.168.200.23 10.101.8.23 non configurato
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24 non configurato
 

Controlli preliminari dell'ambiente software da effettuare su ogni server

Line: 34 to 34
  lv_swap nova-volumes -wi-ao-- 15.90g
Changed:
<
<
  • Controllare il setup di rete (due reti fisiche distinte eth0 ed eth1)
>
>
  • Controllare il setup di rete (tre reti fisiche distinte eth0, eth1 ed eth2)
 
[root@mcloud01 ~]# ifconfig 
eth0      Link encap:Ethernet  HWaddr B4:B5:2F:5C:FE:70  
          inet addr:192.168.200.21  Bcast:192.168.200.255  Mask:255.255.255.0
          inet6 addr: fe80::b6b5:2fff:fe5c:fe70/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Changed:
<
<
RX packets:144871 errors:0 dropped:0 overruns:0 frame:0 TX packets:144988 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:49059623 errors:0 dropped:0 overruns:0 frame:0 TX packets:20760293 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
Changed:
<
<
RX bytes:9542293 (9.1 MiB) TX bytes:9416614 (8.9 MiB)
>
>
RX bytes:47573641634 (44.3 GiB) TX bytes:49395841919 (46.0 GiB)
  Interrupt:92

eth1 Link encap:Ethernet HWaddr B4:B5:2F:5C:FE:71 inet addr:10.101.8.21 Bcast:10.101.9.255 Mask:255.255.254.0 inet6 addr: fe80::b6b5:2fff:fe5c:fe71/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Changed:
<
<
RX packets:2089 errors:0 dropped:0 overruns:0 frame:0 TX packets:2178 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:85066 errors:0 dropped:0 overruns:0 frame:0 TX packets:58474 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
Changed:
<
<
RX bytes:247902 (242.0 KiB) TX bytes:353338 (345.0 KiB)
>
>
RX bytes:14284835 (13.6 MiB) TX bytes:42927456 (40.9 MiB)
  Interrupt:96
Added:
>
>
eth2 Link encap:Ethernet HWaddr B4:B5:2F:5C:FE:72 inet6 addr: fe80::b6b5:2fff:fe5c:fe72/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:762806 errors:0 dropped:0 overruns:0 frame:0 TX packets:174684 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:78052445 (74.4 MiB) TX bytes:11460443 (10.9 MiB) Interrupt:100
 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1
Changed:
<
<
RX packets:41853 errors:0 dropped:0 overruns:0 frame:0 TX packets:41853 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:10325996 errors:0 dropped:0 overruns:0 frame:0 TX packets:10325996 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0
Changed:
<
<
RX bytes:2350159 (2.2 MiB) TX bytes:2350159 (2.2 MiB)
>
>
RX bytes:3852026297 (3.5 GiB) TX bytes:3852026297 (3.5 GiB)
 
Line: 152 to 161
  Per permettere la condivisione del filesystem tra i nodi desiderati eseguire, su uno qualsiasi dei nodi, il comando gluster peer probe <HOSTNAME_NODE> per ognuno degli altri nodi.
Changed:
<
<
Ad esempio in un pool di quattro nodi (con hostname rispettivamente hostname1.domain, hostname2.domain, hostname3.domain, hostname4.domain) eseguire sull'host hostname1.domain :
>
>
Ad esempio in un pool di quattro nodi (come nell'infrastruttura MarcheCloud) eseguire sull'host 192.168.200.21 :
 
Changed:
<
<
# gluster peer probe hostname2.domain # gluster peer probe hostname3.domain # gluster peer probe hostname4.domain
>
>
# gluster peer probe 192.168.200.22 # gluster peer probe 192.168.200.23 # gluster peer probe 192.168.200.24
 

Per controllare che la creazione del pool sia andata a buon fine, lanciare il comando gluster peer status su uno dei nodi. In output verrà visualizzata la composizione del pool.

Changed:
<
<
Ad esempio lanciandolo su hostname1.domain si otterrà:
>
>
Ad esempio lanciandolo su 192.168.200.21 si otterrà:
 
# gluster peer status
Number of Peers: 3
Changed:
<
<
Hostname: hostname2.domain Uuid: 2088ff36-dbf9-44a3-9b3b-8a3a94d64cd4
>
>
Hostname: 192.168.200.23 Uuid: c170f9ab-21f9-4382-98a7-cdff443fc696
 State: Peer in Cluster (Connected)
Changed:
<
<
Hostname: hostname3.domain Uuid: ce7b0621-4068-43e4-b2a5-585c23ade1de
>
>
Hostname: 192.168.200.24 Uuid: 2a4733bf-f1e6-4e68-a526-7c52da574c23
 State: Peer in Cluster (Connected)
Changed:
<
<
Hostname: hostname4.domain Uuid: ae5dfd23-4a65-a2e6-be85-3e5c11abe5cd
>
>
Hostname: 192.168.200.22 Uuid: 55e2e264-4359-417d-9da2-ab7032b9a293
 State: Peer in Cluster (Connected)
Line: 261 to 270
 

Creazione del volume condiviso

Changed:
<
<
I Brick vengono utlizzati per comporre il volume di storage condiviso sui nodi. La creazione del volume può essere effettuata su uno qualsiasi dei nodi che compongono il trusted storage pool. Ciascun Brick è identificato dalla combinazione del nome del server con la directory da esportare, nel seguente formato hostname1.domain:/mnt/mydir .
>
>
I Brick vengono utlizzati per comporre il volume di storage condiviso sui nodi. La creazione del volume può essere effettuata su uno qualsiasi dei nodi che compongono il trusted storage pool. Ciascun Brick è identificato dalla combinazione del nome del server con la directory da esportare, nel seguente formato hostname.domain:/mnt/mydir .
 

Creazione del volume condiviso per GLANCE

Nota bene:

  • I nodi che compongono il volume condiviso per GLANCE sono 3 in modalità di replica
Changed:
<
<
  • Il servizio GLANCE sarà installato sul server hostname1.domain
>
>
  • Il servizio GLANCE sarà installato sul server 192.168.200.21
 
  • Si è scelto volume_glance come nome del volume condiviso

Creare il volume condiviso tramite il seguente comando:

# gluster volume create volume-glance replica 3 transport tcp \ 
Changed:
<
<
hostname2.domain:/mnt/brick-glance hostname3.domain:/mnt/brick-glance hostname4.domain:/mnt/brick-glance
>
>
  1. 168.200.22:/mnt/brick-glance 192.168.200.23:/mnt/brick-glance 192.168.200.24:/mnt/brick-glance
 

Far partire il vomune appena creato:

Line: 295 to 304
 Editare il file /etc/fstab (se necessario creare la directory /var/lib/glance/images):
Changed:
<
<
hostname1.domain:/volume-glance /var/lib/glance/images glusterfs defaults 1 1
>
>
192.168.200.21:/volume-glance /var/lib/glance/images glusterfs defaults 1 1
 

Montare il volume condiviso:

Line: 309 to 318
  Nota bene:
  • I nodi che compongono il volume condiviso per NOVA sono 4 in modalità di replica distribuita
Changed:
<
<
  • Il servizio NOVA sarà installato sui server hostname1.domain, hostname2.domain, hostname3.domain
>
>
  • Il servizio NOVA sarà installato sui server 192.168.200.22, 192.168.200.23 e 192.168.200.24
 
  • Si è scelto volume_nova come nome del volume condiviso

Creare il volume condiviso tramite il seguente comando:

# gluster volume create volume-nova replica 2 transport tcp \
Changed:
<
<
hostname1.domain:/mnt/brick-nova hostname2.domain:/mnt/brick-nova hostname3.domain:/mnt/brick-nova hostname4.domain:/mnt/brick-nova
>
>
  1. 168.200.21:/mnt/brick-nova 192.168.200.22:/mnt/brick-nova 192.168.200.23:/mnt/brick-nova 192.168.200.24:/mnt/brick-nova
 

Far partire il vomune appena creato:

Line: 561 to 570
 

Installazione servizi di OpenStack

OpenStack è una suite di servizi. Nell'ambito del progetto sono stati installati i servizi minimi essenziali al raggiungimento degli obiettivi del progetto stesso e provati alcuni altri servizi e scenari di interesse per prendere familiarità e capire le potenzialità di alcune componenti. Questi scenari verranno descritti nella sezione Use case della presente guida.
Changed:
<
<
La release di OpenStack al momento disponibile nel repository EPEL è la Folstom (code 2012.2) rilasciata nell'Ottobre 2012.
>
>
La release di OpenStack al momento disponibile nel repository EPEL è la Folsom (code 2012.2) rilasciata nell'Ottobre 2012.
  Le seguenti istruzioni sono da considerarsi come un'aggiunta e una guida passo passo all'installazione e configurazione dei servizi partendo dalla documentazione ufficiale di Openstack disponibile in http://docs.openstack.org/folsom/openstack-compute/install/yum/content/ e http://docs.openstack.org/folsom/openstack-compute/admin/content/

Keystone

Installazione Keystone

Changed:
<
<
Server designato per l'installazione: hostname1.domain.
>
>
Server designato per l'installazione: 192.168.200.21.
 
  • Installare Keystone tramite il gestore di pacchetti yum :

Line: 597 to 606
 
  • Controllare in /etc/keystone/keystone.conf che esista una riga del tipo:

Changed:
<
<
connection = mysql://keystone:keystone@hostname1.domain/keystone
>
>
connection = mysql://keystone:keystone@192.168.200.21/keystone
  Nota bene: in keystone:keystone il primo keystone è il nome utente, il secondo è la password. Utilizzando il comando openstack-db --init --service keystone per l'inizializzazione del DB keystone verranno utilizzati quei valori di default.
Line: 662 to 671
 
# source .keystonerc
Changed:
<
<
N.B. I campi vuoti dello script verranno riempiti man mano che verranno lanciate le seguenti istruzioni, si imposteranno le password e si otterranno gli ID. Ad ogni ID ottenuto, modificare il file .keystonerc e rifarne il source .
>
>
N.B. I campi vuoti dello script verranno riempiti man mano che verranno lanciate le seguenti istruzioni, si imposteranno le password e si otterranno gli ID. Ad ogni ID ottenuto, modificare il file .keystonerc (inserendo l'ID ed eventualmente la password associata) e rifarne il source .
 

Creazione del tenant "adminTenant"

Definizione di tenant: Un tenant è un contenitore usato per raggruppare risorse o utenti.
Line: 678 to 687
 +-------------+----------------------------------+
description Admin Tenant
enabled True
Changed:
<
<
id db2cf825309c49989595fc2ff915dc7e
>
>
id 7e266325c0ca4e01aa0a12f54c00adc5
 
name adminTenant
+-------------+----------------------------------+
Line: 694 to 703
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Changed:
<
<
email None
>
>
email  
 
enabled True
Changed:
<
<
id 7d6a3a42c37948b88e2fa692b63587cd
>
>
id 5267588ce6694b1da88144a11e586106
 
name adminUser
Changed:
<
<
password $6$rounds=40000$NxZyxUfO8VRj3gR.$zt9GJKwMDOUMDHCMhqAqJje3JAJmqqTXADZkXll.usGHEsEpAMgKsnZEfF0itF75ooyY1/tjxXBJq9MaQXnfo.
tenantId db2cf825309c49989595fc2ff915dc7e
>
>
password $6$rounds=40000$Xb2oWYG4gq64Yu/n$gjvQ/8Gr7hRgbT.Yd7xNWdHxJX8.O.9qD7bvcgTTqz0e8Hh4s0a/D2LSCMCuGh7XBK0vsYBFTq6nYrVrLWT../
tenantId 7e266325c0ca4e01aa0a12f54c00adc5
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Line: 713 to 722
 +----------+----------------------------------+
Property Value
+----------+----------------------------------+
Changed:
<
<
id 2f196d11ff954c67befc3f190195f47c
>
>
id 154531bb41554dbebfeff2da47283909
 
name admin
+----------+----------------------------------+
Line: 742 to 751
 +-------------+----------------------------------+
description Service Tenant
enabled True
Changed:
<
<
id 73016aa2c9ca4aeba3736cf44cc8433b
>
>
id 7735e801ccd0429ca14186abe6a166bf
 
name service
+-------------+----------------------------------+

Deleted:
<
<

 

Creazione ed inserimento degli utenti associati ai servizi

Una volta creato il "Service Tenant", si andrà ad inserire al suo interno un utente per ogni servizio che si vuole aggiungere.
Line: 761 to 769
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Changed:
<
<
email None
>
>
email  
 
enabled True
Changed:
<
<
id 90ee5ac051eb4d1eaa543243987968a6
>
>
id a9a8771522494fa9aa608089a94ca998
 
name glance
Changed:
<
<
password $6$rounds=40000$LApm.pXGC43cDMhN$J1mDpXad5r2YYNoMKK/P5t0VwXQidKauP/oHaVH5Nm9E7zGQLYamwa1Xxvh0FRcjOvhDtTSZ97CToKV6pWFPA1
tenantId 73016aa2c9ca4aeba3736cf44cc8433b
>
>
password $6$rounds=40000$ZYeLs6pJqUlrjH/K$fgMJjrAAqJitScxk0KQCud6Y0MjwRWyZHjdR2UExGouHoSV9jm6FWVbvumdg0oQumeGh5V169YqTvnMVR8CTU1
tenantId 7735e801ccd0429ca14186abe6a166bf
 +----------+-------------------------------------------------------------------------------------------------------------------------+

Line: 791 to 799
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Changed:
<
<
email None
>
>
email  
 
enabled True
Changed:
<
<
id 9b2d55e2f8164be5a9805a39588f4659
>
>
id 19cc0bbdb5a247cdab8864d86e6a3506
 
name nova
Changed:
<
<
password $6$rounds=40000$jAXTAHvAnF4MBz7O$pr99MMc4gpfOOlYDO7dTTCy7Ai.XZ72P1GbMXHpj1ri7s9qIdnE67QPDkkfynEUyHXBNsrnsnHzmF9fvGo66r1
tenantId 73016aa2c9ca4aeba3736cf44cc8433b
>
>
password $6$rounds=40000$aPJ5bn7ouUXikgAQ$lFTSOLNxboBTPoQjdjiRvbrUuMjLlca53C44mckVRs7NYHHX7BeXpBQhvmOvKtkmA9KmgVBkYLWDYHVqg86Dd/
tenantId 7735e801ccd0429ca14186abe6a166bf
 +----------+-------------------------------------------------------------------------------------------------------------------------+

Line: 832 to 840
 
Property Value
+-------------+----------------------------------+
description Keystone Identity Service
Changed:
<
<
id c2b7f0514dde412ea6c1fccac6437bb7
>
>
id 7ba50cacbf9d48ce89bb3a48600025e0
 
name keystone
type identity
+-------------+----------------------------------+
Line: 845 to 853
  --region RegionOne --service_id=$KEYSTONE_SERVICE_ID --publicurl=$KEYSTONE5000 --internalurl=$KEYSTONE5000 --adminurl=$ENDPOINT
Changed:
<
<
+-------------+----------------------------------------------+
>
>
+-------------+-----------------------------------+
 
Property Value
Changed:
<
<
+-------------+----------------------------------------------+
adminurl http://clstr-09.cnaf.infn.it:35357/v2.0/
id 93c84640b7384911afdd27dda19ea69c
internalurl http://clstr-09.cnaf.infn.it:5000/v2.0
publicurl http://clstr-09.cnaf.infn.it:5000/v2.0
>
>
+-------------+-----------------------------------+
adminurl http://192.168.200.21:35357/v2.0/
id b34e2e479dcf49dda776857e26f58998
internalurl http://192.168.200.21:5000/v2.0
publicurl http://192.168.200.21:5000/v2.0
 
region RegionOne
Changed:
<
<
service_id c2b7f0514dde412ea6c1fccac6437bb7
+-------------+----------------------------------------------+
>
>
service_id 7ba50cacbf9d48ce89bb3a48600025e0
+-------------+-----------------------------------+
 

Definizione del servizio compute (Nova)

Line: 868 to 876
 
Property Value
+-------------+----------------------------------+
description Nova Compute Service
Changed:
<
<
id 5bfe94c4ff80410ab60b635cc99e2476
>
>
id 77faae0db3f741b0b14cd926ccdcc0d7
 
name nova
type compute
+-------------+----------------------------------+
Line: 882 to 890
  --publicurl='http://:8774/v2/%(tenant_id)s' --internalurl='http://:8774/v2/%(tenant_id)s' --adminurl='http://:8774/v2/%(tenant_id)s'
Changed:
<
<
+-------------+--------------------------------------------------------+
>
>
+-------------+---------------------------------------------+
 
Property Value
Changed:
<
<
+-------------+--------------------------------------------------------+
adminurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
id 6168989f6fd2429d8f15d62c940a2fc2
internalurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
publicurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
>
>
+-------------+---------------------------------------------+
adminurl http://192.168.200.21:8774/v2/%(tenant_id)s
id d5205b8e45b24871aaa88376da990a0a
internalurl http://192.168.200.21:8774/v2/%(tenant_id)s
publicurl http://192.168.200.21:8774/v2/%(tenant_id)s
 
region RegionOne
Changed:
<
<
service_id 5bfe94c4ff80410ab60b635cc99e2476
+-------------+--------------------------------------------------------+
>
>
service_id 77faae0db3f741b0b14cd926ccdcc0d7
+-------------+---------------------------------------------+
 
Changed:
<
<
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "clstr-09.cnaf.infn.it".
>
>
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è 192.168.200.21 .
 

Definizione del servizio volume (Volume)

Il servizio volume richiede un endpoint specifico per ogni tenant.
Line: 906 to 914
 
Property Value
+-------------+----------------------------------+
description Nova Volume Service
Changed:
<
<
id f99ba2241e014295aa3ecfcda6633100
>
>
id 307b3276f0304684beeabefbc5cfedce
 
name volume
type volume
+-------------+----------------------------------+
Line: 920 to 928
  --publicurl='http://:8776/v1/%(tenant_id)s' --internalurl='http://:8776/v1/%(tenant_id)s' --adminurl='http://:8776/v1/%(tenant_id)s'
Changed:
<
<
+-------------+--------------------------------------------------------+
>
>
+-------------+---------------------------------------------+
 
Property Value
Changed:
<
<
+-------------+--------------------------------------------------------+
adminurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
id 78b405450a5d432b8a4c61bc1abc52d9
internalurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
publicurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
>
>
+-------------+---------------------------------------------+
adminurl http://192.168.200.21:8776/v1/%(tenant_id)s
id 51fa841e57a248c89124a1d340f0b4f8
internalurl http://192.168.200.21:8776/v1/%(tenant_id)s
publicurl http://192.168.200.21:8776/v1/%(tenant_id)s
 
region RegionOne
Changed:
<
<
service_id f99ba2241e014295aa3ecfcda6633100
+-------------+--------------------------------------------------------+
>
>
service_id 307b3276f0304684beeabefbc5cfedce
+-------------+---------------------------------------------+
 
Changed:
<
<
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "clstr-09.cnaf.infn.it".
>
>
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è 192.168.200.21 .
 

Definizione del servizio image (Glance)

  • Creare il servizio "glance":
Line: 942 to 950
 
Property Value
+-------------+----------------------------------+
description Glance Image Service
Changed:
<
<
id 6c02494e7a534c91a7a01228a4093e63
>
>
id ec3e65796067413ea32c3c34c0a85d09
 
name glance
type image
+-------------+----------------------------------+
Line: 956 to 964
  --publicurl=http://:9292/v1 --internalurl=http://:9292/v1 --adminurl=http://:9292/v1
Changed:
<
<
+-------------+------------------------------------------+
>
>
+-------------+----------------------------------+
 
Property Value
Changed:
<
<
+-------------+------------------------------------------+
adminurl http://clstr-09.cnaf.infn.it:9292/v1
id 2251cae28faf450a8f86292a237e4fcf
internalurl http://clstr-09.cnaf.infn.it:9292/v1
publicurl http://clstr-09.cnaf.infn.it:9292/v1
>
>
+-------------+----------------------------------+
adminurl http://192.168.200.21:9292/v1
id 57f6a5ebe7694f438b984970a7c8c1eb
internalurl http://192.168.200.21:9292/v1
publicurl http://192.168.200.21:9292/v1
 
region RegionOne
Changed:
<
<
service_id 6c02494e7a534c91a7a01228a4093e63
+-------------+------------------------------------------+
>
>
service_id ec3e65796067413ea32c3c34c0a85d09
+-------------+----------------------------------+
 
Changed:
<
<
Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è "clstr-09.cnaf.infn.it".
>
>
Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è 192.168.200.21 .
 

Troubleshooting Keystone

  • Per le principali operazioni di troubleshooting riferirsi alla guida.

Changed:
<
<
[root@clstr-09 ~]# keystone tenant-list
>
>
[root@mcloud01 ~]# keystone tenant-list
 +----------------------------------+-------------+---------+
id name enabled
+----------------------------------+-------------+---------+
Changed:
<
<
8f74bb88623e41619a4c020baed3caa0 adminTenant True
d6e9133d43b5440eae0db744c00bbca7 service True
>
>
14998a053eb745bb852d7a593812da2f MCloud True
7735e801ccd0429ca14186abe6a166bf service True
7e266325c0ca4e01aa0a12f54c00adc5 adminTenant True
 +----------------------------------+-------------+---------+
Changed:
<
<
[root@clstr-09 ~]# keystone user-list +----------------------------------+-----------+---------+-------+
>
>
[root@mcloud01 ~]# keystone user-list +----------------------------------+------------+---------+----------------+
 
id name enabled email
Changed:
<
<
+----------------------------------+-----------+---------+-------+
30fc09b098b0451f8ec3861cf96f3422 nova True  
71228944d88b477188528c47942bcdb8 adminUser True  
7f3e370e94b54d8fa6ddbb02d5903f43 glance True  
+----------------------------------+-----------+---------+-------+ [root@clstr-09 ~]# keystone service-list
>
>
+----------------------------------+------------+---------+----------------+
19cc0bbdb5a247cdab8864d86e6a3506 nova True  
5267588ce6694b1da88144a11e586106 adminUser True  
6301ae88f3e14c6ab71e5fed8425f566 mcloudUser True user@marche.it
a9a8771522494fa9aa608089a94ca998 glance True  
+----------------------------------+------------+---------+----------------+

[root@mcloud01 ~]# keystone service-list

 +----------------------------------+----------+----------+---------------------------+
id name type description
+----------------------------------+----------+----------+---------------------------+
Changed:
<
<
11279e60f5054500a1a0a4ea99016721 glance image Glance Image Service
25197e8149da4bc199fc3e8476f4c5ba volume volume Nova Volume Service
990589efda944f379888edc97f17cb75 keystone identity Keystone Identity Service
dbe9d50403c541f9b277e1c26b6e7946 nova compute Nova Compute Service
>
>
307b3276f0304684beeabefbc5cfedce volume volume Nova Volume Service
77faae0db3f741b0b14cd926ccdcc0d7 nova compute Nova Compute Service
7ba50cacbf9d48ce89bb3a48600025e0 keystone identity Keystone Identity Service
ec3e65796067413ea32c3c34c0a85d09 glance image Glance Image Service
 +----------------------------------+----------+----------+---------------------------+
Changed:
<
<
[root@clstr-09 ~]# keystone endpoint-list +----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
>
>
[root@mcloud01 ~]# keystone endpoint-list +----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+
 
id region publicurl internalurl adminurl service_id
Changed:
<
<
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
20fef2ceae314842aade705eb6c3ed17 RegionOne http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s dbe9d50403c541f9b277e1c26b6e7946
8868e9748ad4481cac64ab0e3d33e614 RegionOne http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s 25197e8149da4bc199fc3e8476f4c5ba
8953d51657d8482a9037671db111f718 RegionOne http://clstr-09.cnaf.infn.it:5000/v2.0 http://clstr-09.cnaf.infn.it:5000/v2.0 http://clstr-09.cnaf.infn.it:35357/v2.0/ 990589efda944f379888edc97f17cb75
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+ [root@clstr-09 ~]# keystone catalog
>
>
+----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+
51fa841e57a248c89124a1d340f0b4f8 RegionOne http://192.168.200.21:8776/v1/%(tenant_id)s http://192.168.200.21:8776/v1/%(tenant_id)s http://192.168.200.21:8776/v1/%(tenant_id)s 307b3276f0304684beeabefbc5cfedce
57f6a5ebe7694f438b984970a7c8c1eb RegionOne http://192.168.200.21:9292/v1 http://192.168.200.21:9292/v1 http://192.168.200.21:9292/v1 ec3e65796067413ea32c3c34c0a85d09
b34e2e479dcf49dda776857e26f58998 RegionOne http://192.168.200.21:5000/v2.0 http://192.168.200.21:5000/v2.0 http://192.168.200.21:35357/v2.0/ 7ba50cacbf9d48ce89bb3a48600025e0
d5205b8e45b24871aaa88376da990a0a RegionOne http://192.168.200.21:8774/v2/%(tenant_id)s http://192.168.200.21:8774/v2/%(tenant_id)s http://192.168.200.21:8774/v2/%(tenant_id)s 77faae0db3f741b0b14cd926ccdcc0d7
+----------------------------------+-----------+---------------------------------------------+---------------------------------------------+---------------------------------------------+----------------------------------+

[root@mcloud01 ~]# keystone catalog

 Service: volume
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
>
>
+-------------+----------------------------------------------------------------+
 
Property Value
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
adminURL http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0
id 8868e9748ad4481cac64ab0e3d33e614
internalURL http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0
publicURL http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0
>
>
+-------------+----------------------------------------------------------------+
adminURL http://192.168.200.21:8776/v1/7e266325c0ca4e01aa0a12f54c00adc5
id 51fa841e57a248c89124a1d340f0b4f8
internalURL http://192.168.200.21:8776/v1/7e266325c0ca4e01aa0a12f54c00adc5
publicURL http://192.168.200.21:8776/v1/7e266325c0ca4e01aa0a12f54c00adc5
region RegionOne
+-------------+----------------------------------------------------------------+ Service: image +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
adminURL http://192.168.200.21:9292/v1
id 57f6a5ebe7694f438b984970a7c8c1eb
internalURL http://192.168.200.21:9292/v1
publicURL http://192.168.200.21:9292/v1
 
region RegionOne
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
>
>
+-------------+----------------------------------+
 Service: compute
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
>
>
+-------------+----------------------------------------------------------------+
 
Property Value
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
adminURL http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0
id 20fef2ceae314842aade705eb6c3ed17
internalURL http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0
publicURL http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0
>
>
+-------------+----------------------------------------------------------------+
adminURL http://192.168.200.21:8774/v2/7e266325c0ca4e01aa0a12f54c00adc5
id d5205b8e45b24871aaa88376da990a0a
internalURL http://192.168.200.21:8774/v2/7e266325c0ca4e01aa0a12f54c00adc5
publicURL http://192.168.200.21:8774/v2/7e266325c0ca4e01aa0a12f54c00adc5
 
region RegionOne
Changed:
<
<
+-------------+-----------------------------------------------------------------------+
>
>
+-------------+----------------------------------------------------------------+
 Service: identity
Changed:
<
<
+-------------+------------------------------------------+
>
>
+-------------+-----------------------------------+
 
Property Value
Changed:
<
<
+-------------+------------------------------------------+
adminURL http://clstr-09.cnaf.infn.it:35357/v2.0/
id 8953d51657d8482a9037671db111f718
internalURL http://clstr-09.cnaf.infn.it:5000/v2.0
publicURL http://clstr-09.cnaf.infn.it:5000/v2.0
>
>
+-------------+-----------------------------------+
adminURL http://192.168.200.21:35357/v2.0/
id b34e2e479dcf49dda776857e26f58998
internalURL http://192.168.200.21:5000/v2.0
publicURL http://192.168.200.21:5000/v2.0
 
region RegionOne
Changed:
<
<
+-------------+------------------------------------------+
>
>
+-------------+-----------------------------------+
 

Glance

Installazione Glance

Changed:
<
<
Server designato per l'installazione: hostname1.domain.
>
>
Server designato per l'installazione: 192.168.200.21.
 
  • Installare Glance tramite il gestore di pacchetti yum :

Line: 1149 to 1174
 

Troubleshooting Glance

Changed:
<
<
  • To begin troubleshooting, look at the logs in the /var/log/glance/registry.log or /var/log/glance/api.log
  • You can find the version of the installation by using the glance --version command. The version number 2012.1 corresponds with the Essex release.
  • Obtain a test image
>
>
  • Scaricare un'immagine di test ed aggiungerla al repository di glance per verificare il corretto funzionamento del servizio:
 
Changed:
<
<
# mkdir /stackimages
>
>
[root@mcloud01 stackimages]# cd /stackimages
 
Changed:
<
<
# cd /stackimages
>
>
[root@mcloud01 stackimages]# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
 
Changed:
<
<
# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
>
>
[root@mcloud01 stackimages]# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img
 
Changed:
<
<
# glance index
>
>
Added new image with ID: 691109ac-9673-4195-a27f-8211a49bfdcb
 
Deleted:
<
<
# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 \ container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img Uploading image 'cirros-0.3.0-x86_64' ================================================================================================================================================================================[100%] 23.2M/s, ETA 0h 0m 0s Added new image with ID: a08912a4-3c73-4b17-9d96-bed2d1290d3d
 
Changed:
<
<
# glance index
>
>
[root@mcloud01 stackimages]# glance index
 ID Name Disk Format Container Format Size
------------------------------ -------------------- -------------------- --------------
Changed:
<
<
a08912a4-3c73-4b17-9d96-bed2d1290d3d cirros-0.3.0-x86_64 qcow2 bare 9761280
>
>
691109ac-9673-4195-a27f-8211a49bfdcb cirros-0.3.0-x86_64 qcow2 bare 9761280

[root@mcloud01 stackimages]# ls /var/lib/glance/images/ 691109ac-9673-4195-a27f-8211a49bfdcb lost+found

# glance show 691109ac-9673-4195-a27f-8211a49bfdcb URI: http://192.168.200.21:9292/v1/images/691109ac-9673-4195-a27f-8211a49bfdcb Id: 691109ac-9673-4195-a27f-8211a49bfdcb Public: No Protected: No Name: cirros-0.3.0-x86_64 Status: active Size: 9761280 Disk format: qcow2 Container format: bare Minimum Ram Required (MB): 0 Minimum Disk Required (GB): 0 Owner: 7e266325c0ca4e01aa0a12f54c00adc5 Created at: 2012-11-22T07:49:33 Updated at: 2012-11-22T07:49:34

 
Line: 1349 to 1391
 dhcpbridge_flagfile = /etc/nova/nova.conf firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver my_ip = THIS_SERVER_IP
Deleted:
<
<
# fixed_range is eth1 network
 fixed_range = 192.168.122.0/24
Changed:
<
<
public_interface = eth0
>
>
public_interface = eth1
 flat_network_bridge = virbr0
Changed:
<
<
flat_interface = eth1
>
>
flat_interface = eth2
 multi_host = True auto_assign_floating_ip = False injected_network_template = /usr/share/nova/interfaces.template

Revision 122012-11-22 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.2 - 2012-11-20
Line: 24 to 24
 
  • Controllare la corretta configurazione del volume group (un unico volume group con nome nova-volumes) e dei logical volumes

Changed:
<
<
# vgdisplay --- Volume group --- VG Name nova-volumes System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 557,37 GiB PE Size 4,00 MiB Total PE 142687 Alloc PE / Size 55748 / 217,77 GiB Free PE / Size 86939 / 339,61 GiB VG UUID 6x1Q85-hjml-folN-VzIo-0Atn-f2H9-x1hZ4m
>
>
[root@mcloud01 ~]# vgs VG #PV #LV #SN Attr VSize VFree nova-volumes 1 3 0 wz--n- 1.64t 849.76g
 
Changed:
<
<
# lvs
>
>
[root@mcloud01 ~]# lvs
  LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert
Changed:
<
<
lv_nova nova-volumes -wi-ao-- 200,00g lv_root nova-volumes -wi-ao-- 9,77g lv_swap nova-volumes -wi-ao-- 8,00g
>
>
lv_root nova-volumes -wi-ao-- 10.00g lv_swap nova-volumes -wi-ao-- 15.90g
 

  • Controllare il setup di rete (due reti fisiche distinte eth0 ed eth1)

Changed:
<
<
# ifconfig eth0 Link encap:Ethernet HWaddr 00:25:90:4A:A9:08 inet addr:131.154.101.103 Bcast:131.154.101.255 Mask:255.255.255.0 inet6 addr: fe80::225:90ff:fe4a:a908/64 Scope:Link
>
>
[root@mcloud01 ~]# ifconfig eth0 Link encap:Ethernet HWaddr B4:B5:2F:5C:FE:70 inet addr:192.168.200.21 Bcast:192.168.200.255 Mask:255.255.255.0 inet6 addr: fe80::b6b5:2fff:fe5c:fe70/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Changed:
<
<
RX packets:1614529 errors:1 dropped:0 overruns:0 frame:1 TX packets:158071 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:144871 errors:0 dropped:0 overruns:0 frame:0 TX packets:144988 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
Changed:
<
<
RX bytes:262985425 (250.8 MiB) TX bytes:51794928 (49.3 MiB) Interrupt:28 Memory:fbbe0000-fbc00000
>
>
RX bytes:9542293 (9.1 MiB) TX bytes:9416614 (8.9 MiB) Interrupt:92
 
Changed:
<
<
eth1 Link encap:Ethernet HWaddr 00:25:90:4A:A9:09 inet addr:131.154.100.146 Bcast:131.154.100.255 Mask:255.255.255.0 inet6 addr: fe80::225:90ff:fe4a:a909/64 Scope:Link
>
>
eth1 Link encap:Ethernet HWaddr B4:B5:2F:5C:FE:71 inet addr:10.101.8.21 Bcast:10.101.9.255 Mask:255.255.254.0 inet6 addr: fe80::b6b5:2fff:fe5c:fe71/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Changed:
<
<
RX packets:142407 errors:0 dropped:0 overruns:0 frame:0 TX packets:540 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:2089 errors:0 dropped:0 overruns:0 frame:0 TX packets:2178 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
Changed:
<
<
RX bytes:12482666 (11.9 MiB) TX bytes:49631 (48.4 KiB) Interrupt:29 Memory:fbce0000-fbd00000
>
>
RX bytes:247902 (242.0 KiB) TX bytes:353338 (345.0 KiB) Interrupt:96
  lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1
Changed:
<
<
RX packets:39919 errors:0 dropped:0 overruns:0 frame:0 TX packets:39919 errors:0 dropped:0 overruns:0 carrier:0
>
>
RX packets:41853 errors:0 dropped:0 overruns:0 frame:0 TX packets:41853 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:0
Changed:
<
<
RX bytes:32028240 (30.5 MiB) TX bytes:32028240 (30.5 MiB)
>
>
RX bytes:2350159 (2.2 MiB) TX bytes:2350159 (2.2 MiB)
 
Line: 106 to 87
 yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp
Changed:
<
<
  • Configurazione servizio ntp. La sincronizzazione dei server è essenziale per il corretto funzionamento di openstack. Al file di configurazione /etc/ntp.conf è stato aggiunta la riga TODO e successivamente riavviato il servizio.
>
>
  • Configurazione servizio ntp. La sincronizzazione dei server è essenziale per il corretto funzionamento di openstack. Al file di configurazione /etc/ntp.conf è stato aggiunta la riga server 10.101.12.49 e successivamente riavviato il servizio.
 
# chkconfig ntpd on
Line: 133 to 114
 # chkconfig iptables off
Changed:
<
<
>
>
  • La lista dei repository a questo punto sarà la seguente:
    [root@mcloud01 ~]# ls /etc/yum.repos.d/
    CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo  epel.repo  epel-testing.repo
     
 

GlusterFS

Il sito ufficiale di GlusterFE è http://www.gluster.org/. La documentazione per GlusterFS è disponibile in http://www.gluster.org/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide
Line: 356 to 341
 # mount –a
Added:
>
>

Riepilogo configurazione del filesystem

I volumi di GlusterFS risulteranno essere i seguenti:
[root@mcloud01 ~]# gluster volume info

Volume Name: volume-nova
Type: Distributed-Replicate
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 192.168.200.21:/mnt/brick-nova
Brick2: 192.168.200.22:/mnt/brick-nova
Brick3: 192.168.200.23:/mnt/brick-nova
Brick4: 192.168.200.24:/mnt/brick-nova

Volume Name: volume-glance
Type: Replicate
Status: Started
Number of Bricks: 3
Transport-type: tcp
Bricks:
Brick1: 192.168.200.22:/mnt/brick-glance
Brick2: 192.168.200.23:/mnt/brick-glance
Brick3: 192.168.200.24:/mnt/brick-glance

A questo punto avremo le seguenti configurazioni sui vari server.

mcloud01

[root@mcloud01 ~]# cat  /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu May 17 04:42:07 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/nova--volumes-lv_root /                       ext4    defaults        1 1
UUID=81dfe44d-f37c-494c-8181-6fec7c785b66 /boot                   ext4    defaults        1 2
/dev/mapper/nova--volumes-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/nova-volumes/lv_nova       /mnt/brick-nova       ext4    defaults        1 1 
192.168.200.21:/volume-glance  /var/lib/glance/images  glusterfs  defaults 1 1

[root@mcloud01 ~]# mount
/dev/mapper/nova--volumes-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
192.168.200.21:/volume-glance on /var/lib/glance/images type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)

[root@mcloud01 ~]# df -mh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/nova--volumes-lv_root
                      9.9G  1.4G  8.1G  15% /
tmpfs                  63G     0   63G   0% /dev/shm
/dev/sda1            1008M   75M  883M   8% /boot
/dev/mapper/nova--volumes-lv_nova
                      788G  197M  748G   1% /mnt/brick-nova
192.168.200.21:/volume-glance
                      296G  191M  281G   1% /var/lib/glance/images

mcloud02

[root@mcloud02 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed May 16 17:06:15 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/nova--volumes-lv_root /                       ext4    defaults        1 1
UUID=7c003c6b-aa96-4075-9cda-6fba7cc4b710 /boot                   ext4    defaults        1 2
/dev/mapper/nova--volumes-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/nova-volumes/lv_glance /mnt/brick-glance       ext4    defaults        1 1
/dev/nova-volumes/lv_nova       /mnt/brick-nova       ext4    defaults        1 1
192.168.200.22:/volume-nova /var/lib/nova/instances  glusterfs  defaults 1 1 

[root@mcloud02 ~]# mount
/dev/mapper/nova--volumes-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/nova--volumes-lv_glance on /mnt/brick-glance type ext4 (rw)
/dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw)
192.168.200.22:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)

[root@mcloud02 ~]# df -mh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/nova--volumes-lv_root
                      9.9G  886M  8.5G  10% /
tmpfs                  63G     0   63G   0% /dev/shm
/dev/sda1            1008M   75M  883M   8% /boot
/dev/mapper/nova--volumes-lv_glance
                      296G  191M  281G   1% /mnt/brick-glance
/dev/mapper/nova--volumes-lv_nova
                      788G  197M  748G   1% /mnt/brick-nova
192.168.200.22:/volume-nova
                      1.6T  393M  1.5T   1% /var/lib/nova/instances

mcloud03

[root@mcloud03 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu May 17 03:26:21 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/nova--volumes-lv_root /                       ext4    defaults        1 1
UUID=cc735352-9441-48e3-bc4b-35399db82c27 /boot                   ext4    defaults        1 2
/dev/mapper/nova--volumes-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/nova-volumes/lv_glance /mnt/brick-glance       ext4    defaults        1 1
/dev/nova-volumes/lv_nova       /mnt/brick-nova       ext4    defaults        1 1
192.168.200.23:/volume-nova /var/lib/nova/instances  glusterfs  defaults 1 1 

[root@mcloud03 ~]# mount
/dev/mapper/nova--volumes-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/nova--volumes-lv_glance on /mnt/brick-glance type ext4 (rw)
/dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw)
192.168.200.23:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)

[root@mcloud03 ~]# df -mh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/nova--volumes-lv_root
                      9.9G  886M  8.5G  10% /
tmpfs                  63G     0   63G   0% /dev/shm
/dev/sda1            1008M   75M  883M   8% /boot
/dev/mapper/nova--volumes-lv_glance
                      296G  191M  281G   1% /mnt/brick-glance
/dev/mapper/nova--volumes-lv_nova
                      788G  197M  748G   1% /mnt/brick-nova
192.168.200.23:/volume-nova
                      1.6T  393M  1.5T   1% /var/lib/nova/instances

mcloud04

[root@mcloud04 ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed May 16 18:06:47 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/nova--volumes-lv_root /                       ext4    defaults        1 1
UUID=893f9415-1029-42e2-acf7-1a0cd3ccff29 /boot                   ext4    defaults        1 2
/dev/mapper/nova--volumes-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/nova-volumes/lv_glance /mnt/brick-glance       ext4    defaults        1 1
/dev/nova-volumes/lv_nova       /mnt/brick-nova       ext4    defaults        1 1
192.168.200.24:/volume-nova /var/lib/nova/instances  glusterfs  defaults 1 1 

[root@mcloud04 ~]# mount
/dev/mapper/nova--volumes-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/nova--volumes-lv_glance on /mnt/brick-glance type ext4 (rw)
/dev/mapper/nova--volumes-lv_nova on /mnt/brick-nova type ext4 (rw)
192.168.200.24:/volume-nova on /var/lib/nova/instances type fuse.glusterfs (rw,allow_other,default_permissions,max_read=131072)

[root@mcloud04 ~]# df -mh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/nova--volumes-lv_root
                      9.9G  886M  8.5G  10% /
tmpfs                  63G     0   63G   0% /dev/shm
/dev/sda1            1008M   75M  883M   8% /boot
/dev/mapper/nova--volumes-lv_glance
                      296G  191M  281G   1% /mnt/brick-glance
/dev/mapper/nova--volumes-lv_nova
                      788G  197M  748G   1% /mnt/brick-nova
192.168.200.24:/volume-nova
                      1.6T  393M  1.5T   1% /var/lib/nova/instances
 

Installazione servizi di OpenStack

OpenStack è una suite di servizi. Nell'ambito del progetto sono stati installati i servizi minimi essenziali al raggiungimento degli obiettivi del progetto stesso e provati alcuni altri servizi e scenari di interesse per prendere familiarità e capire le potenzialità di alcune componenti. Questi scenari verranno descritti nella sezione Use case della presente guida.
Line: 416 to 618
 


Changed:
<
<

Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi

>
>

Creazione di tenant, utente e ruolo per l'amministratore

 Per comodità in questa sezione si utilizzerà uno script che farà l'export di determinate variabili. Creare il file .keystonrc e modificarlo come segue:
export ADMIN_TOKEN=
Line: 528 to 729
  Dove <ADMIN_USER_ID> e <ADMIN_TENANT_ID> sono rispettivamente gli ID di user e tenant appena creati. $ADMIN_ROLE_ID è invece l'id del ruolo "admin" esportato nell'istruzione precedente. Nota bene: non viene visualizzato nulla se il comando ha successo.
Changed:
<
<
>
>

Creazione del tenant per i servizi

 

Creazione del tenant "service":

Questo tenant conterrà tutti gli utenti dei servizi che si desidera far conoscere al service catalog.
Line: 866 to 1067
  Dove <YOUR_GLANCEDB_PASSWORD> è la password scelta per l'utente "glance" del DB.
Changed:
<
<
  • Provare ad accedere a MySQL da locale con l'utente "glance" appena creato tramite il comando myslq -u glance -p digitando la password. Nel caso di accesso negato, accedere a MySQL da root ed eliminare l'utente anonimo con i seguenti comandi:
>
>
  • Provare ad accedere a MySQL da locale con l'utente "glance" appena creato tramite il comando mysql -u glance -p digitando la password. Nel caso di accesso negato, accedere a MySQL da root ed eliminare l'utente anonimo con i seguenti comandi:
 
mysql> DROP USER ''@'localhost';
mysql> flush privileges;

Revision 112012-11-21 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Changed:
<
<
Ver. 0.1 - 2012-11-20
>
>
Ver. 0.2 - 2012-11-20
 


Line: 86 to 86
  RX bytes:32028240 (30.5 MiB) TX bytes:32028240 (30.5 MiB)
Changed:
<
<
  • Verificare la presenza dei repository EPEL, se non sono presenti installarli (sia epel che epel-testing)
>
>

Operazioni preliminari effettuate su tutti i server

  • Verifica del risoluzione degli hostname. E' stato modificato il file /etc/hosts.conf come segue per una corretta risoluzione.
 
Changed:
<
<
[root@clstr-09 ~]# ll /etc/yum.repos.d/ totale 36 -rw-r--r--. 1 root root 1926 26 giu 11:30 CentOS-Base.repo -rw-r--r--. 1 root root 637 26 giu 11:30 CentOS-Debuginfo.repo -rw-r--r--. 1 root root 626 26 giu 11:30 CentOS-Media.repo -rw-r--r--. 1 root root 2593 26 giu 11:30 CentOS-Vault.repo -rw-r--r--. 1 root root 145 16 nov 17:40 cnaf-local.repo -rw-r--r--. 1 root root 200 16 nov 17:40 egi-trustanchors.repo -rw-r--r--. 1 root root 957 9 mag 2012 epel.repo -rw-r--r--. 1 root root 1056 9 mag 2012 epel-testing.repo -rw-r--r--. 1 root root 1250 28 set 21:00 puppetlabs.repo
>
>
# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.200.21 mcloud01.regionemarche.intra mcloud01 192.168.200.22 mcloud02.regionemarche.intra mcloud02 192.168.200.23 mcloud03.regionemarche.intra mcloud03 192.168.200.24 mcloud04.regionemarche.intra mcloud04
 
Changed:
<
<

>
>
  • Installazione di alcuni pacchetti si S.O. mancanti, ma utili per il lavoro di installazione e configurazione:

yum install openssh-clients system-config-lvm vim-enhanced xorg-x11-xauth ntp

  • Configurazione servizio ntp. La sincronizzazione dei server è essenziale per il corretto funzionamento di openstack. Al file di configurazione /etc/ntp.conf è stato aggiunta la riga TODO e successivamente riavviato il servizio.

# chkconfig ntpd on

# service ntp restart

  • Installazione del repository EPEL
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm

# yum clean all

# yum update 

  • I quattro server sono inoltre stati configurati per l'accesso via ssh senza password ed è stato installato il software clusterssh con il comando yum install -y clusterssh

  • I servizi iptables e SELinux risultavano abilitati e sono stati spenti.
    • Per disattivare completamente |SELinux occorre editare /etc/sysconfig/selinux, mettere SELINUX=disabled e fare il reboot dei server. Per iptables:
# /etc/init.d/iptables stop

# chkconfig iptables off 
 

 

GlusterFS

Added:
>
>
Il sito ufficiale di GlusterFE è http://www.gluster.org/. La documentazione per GlusterFS è disponibile in http://www.gluster.org/community/documentation/index.php/Gluster_3.2_Filesystem_Administration_Guide

Al momento dell'installazione, nel repository EPEL era disponibile la versione GlusterFS 3.2.

La seguente documentazione riporta le operazioni fatte sui server a disposizione e non sostituisce la documentazione ufficiale di GlusterFS.

 

Installazione pacchetti GlusterFS

Installare tramite yum i pacchetti del server GestioneServiziGenerali.GlusterFS sui nodi che comporranno il filesystem distribuito
Line: 114 to 153
 # /etc/init.d/glusterd start
Changed:
<
<
Permettere che il servizio glusterd venga avviato di default al riavvio del server
>
>
Permettere che i servizi glusterd e glusterfsd vengano avviati di default al riavvio dei server
 
# chkconfig glusterd on
Added:
>
>
# chkconfig glusterfsd on
 


Line: 201 to 242
  Nota bene:
  • I nodi che compongono il volume condiviso per NOVA sono 4 in modalità di replica distribuita
Changed:
<
<
  • Per NOVA si è reputata sufficiente una dimensione di 1000G (Gigabyte) per ciascun brick
>
>
  • Per NOVA si è reputata sufficiente una dimensione di 800G (Gigabyte) per ciascun brick
 
  • Si è scelto lv_nova come nome del volume logico
  • Si è scelto /mnt/brick-glance come directory dove montare il volume logico

Ripetere il seguente set di istruzioni per ognuno dei nodi che si intende utilizzare per comporre il filesystem per il servizio NOVA (Compute) di OpenStack.

Changed:
<
<
  1. Creare un volume logico di 1000 Gigabyte:
>
>
  1. Creare un volume logico di 800 Gigabyte:
 
Changed:
<
<
# lvcreate -L 1000G -n lv_nova
>
>
# lvcreate -L 800G -n lv_nova
 
 
  1. Formattare la partizione appena creata (ad esempio su filesystem ext4):
Line: 303 to 344
 

Sui server che ospiteranno il servizio NOVA (Compute) montare il volume creato.

Changed:
<
<
Editare il file /etc/fstab (se necessario creare la directory /var/lib/nova/instances):
>
>
Editare il file /etc/fstab (se necessario creare la directory con il comando mkdir -p /var/lib/nova/instances):
 
Changed:
<
<
hostname1.domain:/volume-nova /var/lib/nova/instances glusterfs defaults 1 1
>
>
:/volume-nova /var/lib/nova/instances glusterfs defaults 1 1
 

Montare il volume condiviso:

Line: 314 to 355
 
# mount –a 
Added:
>
>

Installazione servizi di OpenStack

OpenStack è una suite di servizi. Nell'ambito del progetto sono stati installati i servizi minimi essenziali al raggiungimento degli obiettivi del progetto stesso e provati alcuni altri servizi e scenari di interesse per prendere familiarità e capire le potenzialità di alcune componenti. Questi scenari verranno descritti nella sezione Use case della presente guida.

La release di OpenStack al momento disponibile nel repository EPEL è la Folstom (code 2012.2) rilasciata nell'Ottobre 2012.

Le seguenti istruzioni sono da considerarsi come un'aggiunta e una guida passo passo all'installazione e configurazione dei servizi partendo dalla documentazione ufficiale di Openstack disponibile in http://docs.openstack.org/folsom/openstack-compute/install/yum/content/ e http://docs.openstack.org/folsom/openstack-compute/admin/content/

 

Keystone

Installazione Keystone

Server designato per l'installazione: hostname1.domain.

Revision 102012-11-21 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.1 - 2012-11-20
Line: 961 to 961
 # chkconfig qpidd on
Changed:
<
<
>
>

Configurazione dei servizi di Nova:

  • Il servizio openstack-nova-metadata-api va in conflitto con il servizio openstack-nova-api , quindi è conveniente disabilitarlo, inoltre non si vuole che il Cloud Controller funga da Compute Node, quindi disabilitiamo anche il servizio openstack-nova-compute . Nei files /etc/init.d/openstack-nova-metadata-api e /etc/init.d/openstack-nova-compute modificare la funzione start() come segue:
    
    [...]
    
    start() {
        echo "This service must be stopped!"
        exit
    
    [...]
    
    
  • Modificare due file in /etc/nova nel modo descritto nel paragrafo Configurazione del servizio Compute -> Servizio nova . Nota bene: seguire solo i punti riferiti alla modifica dei due files, poi tornare a questo paragrafo.
    
    
  • Impostare l'avvio automatico dei servizi nova, tranne i servizi appena disabilitati:
    # for svc in api console network scheduler cert \
    consoleauth novncproxy volume objectstore \
    xvpvncproxy; do chkconfig \
    openstack-nova-$svc on; done
    
  • Fermare i servizi nova, sincronizzare il database e far ripartire i servizi:
    # for s in `ls /etc/init.d/openstack-nova-*`; \
    do $s stop ; done
    # nova-manage db sync
    # for s in `ls /etc/init.d/openstack-nova-*`; \
    do $s start ; done
    


Aggiungere nova tra gli utenti sudoers:

  • A causa di un bug, quando si prova ad eliminare un volume di Nova da Dashboard o da CLI, le risorse del sistema vengono monopolizzate dal processo gluster a causa dell'esecuzione di un dd sul volume che si intende cancellare. La causa scatenante è la non appartenenza dell'utente nova (utente con cui viene lanciato il dd) tra gli utenti sudoers. Per risolvere questo problema appendere la riga nova ALL = (root) NOPASSWD: /bin/dd al file /etc/sudoers .


Installare e impostare l'avvio automatico dei servizi legati a ISCSI (sul Cloud Controller)

  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio yum install scsi-target-utils sul Cloud Controller. Controllare quindi che sia installato attraverso il seguente comando:
    yum install scsi-target-utils
    
  • Inserire alla fine del file /etc/tgt/targets.conf la riga:
    include /var/lib/nova/volumes/*
    
  • Far partire il servizio:
    service tgtd start
    
  • Settare l'avvio automatico:
    chkconfig tgtd on
    
 
Line: 1066 to 1120
 qpid_hostname = clstr-09.cnaf.infn.it rpc_backend = nova.rpc.impl_qpid
Changed:
<
<
# GLANCE
>
>
# glance
 image_service=nova.image.glance.GlanceImageService glance_api_servers=clstr-09.cnaf.infn.it:9292 cache_images=true
Line: 1084 to 1136
 quota_instances=20 max_cores=24
Added:
>
>
# volumes volume_group = nova-volumes iscsi_helper = tgtadm
 
Changed:
<
<
# volumes_dir = /etc/nova/volumes # iscsi_helper = tgtadm # rpc_backend = nova.openstack.common.rpc.impl_qpid
>
>
### default configurations
 
Added:
>
>
# volume_name_template = volume-%08x # volumes_dir = /etc/nova/volumes
 # [keystone_authtoken] # admin_tenant_name = %SERVICE_TENANT_NAME% # admin_user = %SERVICE_USER%
Line: 1131 to 1185
  Dove:
      • <NOVA_PASSWORD> è la password che è stata associata all'utente del servizio Nova in Keystone
Changed:
<
<
 
  • Nota bene: il comando nova-manage potrebbe dare in output alcuni messaggi di Warning su metodi deprecati.
    
    
  • Per far partire i servizi di Nova ed inizializzare il DB, lanciare i seguenti comandi:
>
>
 
  • Per far partire i servizi di Nova per i Compute Nodes ed inizializzare il DB, lanciare i seguenti comandi:
 
# for s in `ls /etc/init.d/openstack-nova-*`; do $s stop ; done
Line: 1166 to 1219
 nova-network clstr-12.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02
Changed:
<
<

Configurazione servizio nova-network

>
>

Configurazione del servizio nova-network

 NB: SU TUTTI I SERVER
  • Verificare che ci sia il bridge sulla 192.168.122.0 con il comando ifconfig (NB: il servizio libvirtd deve essere running).
Line: 1185 to 1238
 ip link set eth1 promisc on
Changed:
<
<
Da un server:
  • Creare la rete con =nova-manage
>
>
NB: DA UN QUALSIASI SERVER UNA VOLTA SOLA
  • Creare la rete con nova-manage
 
# nova-manage network list
Line: 1237 to 1290
  # nova secgroup-add-rule default tcp 443 443 0.0.0.0/0
Added:
>
>

Installare e impostare l'avvio automatico dei servizi legati a ISCSI (su ogni Compute Node)

  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio iscsi-initiator-utils su ogni Compute Node. Controllare quindi che sia installato attraverso il seguente comando:
    # yum install iscsi-initiator-utils
    
  • Far partire il servizio:
    # service iscsid force-start
    
  • Nota bene: è necessario modificare lo script /etc/init.d/iscsid per poter far partire in automatico iscsid in automatico all'avvio del server in modalità force-start . Modificare i case start e restart dello switch all'interno dello script in modo tale che risulti come segue:
    
        [...]
    
        start)
            # rh_status_q && exit 0
            # $1
            force_start
            ;;
    
        [...]
    
        restart)
            # $1
            stop
            force_start
            ;;
    
        [...]
    
    
  • Impostare l'avvio automatico:
    # chkconfig iscsid on
    
 

Dashboard

Line: 1296 to 1387
 

Utilizzo della Dashboard

Per verificare il funzionamento della Dashboard, andare su http://clstr-09.cnaf.infn.it/dashboard e loggarsi con le credenziali adminUser e relativa password.
Deleted:
<
<


TODO Installare e impostare l'avvio automatico dei servizi legati a ISCSI

  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio iscsi-initiator-utils su ogni Compute Node. Controllare quindi che sia installato attraverso il seguente comando:
    yum install iscsi-initiator-utils
    
  • Far partire il servizio:
    service iscsid force-start
    
  • Nota bene: non è possibile usare il comando chkconfig per far partire il servizio iscsid in automatico all'avvio del server, quindi è necessario farlo partire manualmente ad ogni riavvio, utilizzando il comando service iscsid force-start .
 

-- MatteoManzali - 2012-11-19

Revision 92012-11-21 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Ver. 0.1 - 2012-11-20
Line: 368 to 368
 

Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi

Changed:
<
<
Per comodità in questa sezione si utilizzeranno delle variabili d'ambiente settate come segue:
>
>
Per comodità in questa sezione si utilizzerà uno script che farà l'export di determinate variabili. Creare il file .keystonrc e modificarlo come segue:
 
Changed:
<
<
# export ADMIN_TOKEN= export OS_USERNAME=adminUser export OS_PASSWORD= export OS_TENANT_NAME=adminTenant export ENDPOINT=http://openstack-01.cnaf.infn.it:35357/v2.0/ export OS_AUTH_URL=http://openstack-01.cnaf.infn.it:5000/v2.0/
>
>
export ADMIN_TOKEN= export OS_USERNAME= export OS_PASSWORD= export OS_TENANT_NAME= export ENDPOINT=http://:35357/v2.0/ export OS_AUTH_URL=http://:5000/v2.0/

export ADMIN_USER_ID= export ADMIN_TENANT_ID= export ADMIN_ROLE_ID=

export SERVICE_TENANT_ID=

export GLANCE_PASSWORD= export GLANCE_USER_ID=

export NOVA_PASSWORD= export NOVA_USER_ID=

export KEYSTONE_SERVICE_ID= export KEYSTONE5000=http://:5000/v2.0

export NOVA_SERVICE_ID= export NOVA_VOLUME_SERVICE_ID=

export GLANCE_IMAGE_SERVICE_ID=

export OBJECT_STORAGE_SERVICE_ID=

 
Changed:
<
<
Dove <ADMIN_TOKEN_VALUE> è il valore del parametro admin_token contenuto nel file /etc/keystone/keystone.conf .
>
>
Dove:
  • <KEYSTONE_HOSTNAME> è l'hostname che ospita il servizio Keystone
  • <ADMIN_USER> è l'utente admin, nel nostro caso "adminUser"
  • <ADMIN_PASSWORD> è la password dell'utente admin
  • <ADMIN_TENANT> è il tenant di amministrazione, nel nostro caso "adminTenant"

Per poter utilizzare queste variabili d'ambiente lanciare il seguente comando:

# source .keystonerc
N.B. I campi vuoti dello script verranno riempiti man mano che verranno lanciate le seguenti istruzioni, si imposteranno le password e si otterranno gli ID. Ad ogni ID ottenuto, modificare il file .keystonerc e rifarne il source .
 

Creazione del tenant "adminTenant"

Definizione di tenant: Un tenant è un contenitore usato per raggruppare risorse o utenti.
Line: 398 to 432
 
name adminTenant
+-------------+----------------------------------+
Deleted:
<
<
export ADMIN_TENANT_ID=db2cf825309c49989595fc2ff915dc7e
 

Creazione dell'utente "adminUser"

Line: 434 to 467
 
name admin
+----------+----------------------------------+
Deleted:
<
<
# export ADMIN_ROLE_ID=2f196d11ff954c67befc3f190195f47c
 

Assegnazione del ruolo "admin" all'utente "AdminUser"

Line: 465 to 496
 
name service
+-------------+----------------------------------+
Deleted:
<
<
# export SERVICE_TENANT_ID=73016aa2c9ca4aeba3736cf44cc8433b
 


Line: 489 to 519
 
tenantId 73016aa2c9ca4aeba3736cf44cc8433b
+----------+-------------------------------------------------------------------------------------------------------------------------+
Deleted:
<
<
export GLANCE_USER_ID=90ee5ac051eb4d1eaa543243987968a6
 

Dove <GLANCE_PASSWORD> è la password che si desidera associare all'utente del servizio Glance.

Line: 520 to 549
 
tenantId 73016aa2c9ca4aeba3736cf44cc8433b
+----------+-------------------------------------------------------------------------------------------------------------------------+
Deleted:
<
<
export NOVA_USER_ID=9b2d55e2f8164be5a9805a39588f4659
 

Dove <NOVA_PASSWORD> è la password che si desidera associare all'utente del servizio Nova.

Line: 559 to 587
 
type identity
+-------------+----------------------------------+
Deleted:
<
<
export KEYSTONE_SERVICE_ID=c2b7f0514dde412ea6c1fccac6437bb7 export KEYSTONE5000=http://openstack-01.cnaf.infn.it:5000/v2.0
 

  • Creare l'endpoint per il servizio "keystone":
Line: 572 to 598
 +-------------+----------------------------------------------+
Property Value
+-------------+----------------------------------------------+
Changed:
<
<
adminurl http://openstack-01.cnaf.infn.it:35357/v2.0/
>
>
adminurl http://clstr-09.cnaf.infn.it:35357/v2.0/
 
id 93c84640b7384911afdd27dda19ea69c
Changed:
<
<
internalurl http://openstack-01.cnaf.infn.it:5000/v2.0
publicurl http://openstack-01.cnaf.infn.it:5000/v2.0
>
>
internalurl http://clstr-09.cnaf.infn.it:5000/v2.0
publicurl http://clstr-09.cnaf.infn.it:5000/v2.0
 
region RegionOne
service_id c2b7f0514dde412ea6c1fccac6437bb7
+-------------+----------------------------------------------+
Line: 597 to 623
 
type compute
+-------------+----------------------------------+
Deleted:
<
<
export NOVA_COMPUTE_SERVICE_ID=5bfe94c4ff80410ab60b635cc99e2476
 

  • Creare l'endpoint per il servizio "nova":
Line: 610 to 635
 +-------------+--------------------------------------------------------+
Property Value
+-------------+--------------------------------------------------------+
Changed:
<
<
adminurl http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s
>
>
adminurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
 
id 6168989f6fd2429d8f15d62c940a2fc2
Changed:
<
<
internalurl http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s
publicurl http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s
>
>
internalurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
publicurl http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s
 
region RegionOne
service_id 5bfe94c4ff80410ab60b635cc99e2476
+-------------+--------------------------------------------------------+
Changed:
<
<
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "openstack-01.cnaf.infn.it".
>
>
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "clstr-09.cnaf.infn.it".
 

Definizione del servizio volume (Volume)

Il servizio volume richiede un endpoint specifico per ogni tenant.
Line: 636 to 661
 
type volume
+-------------+----------------------------------+
Deleted:
<
<
export NOVA_VOLUME_SERVICE_ID=f99ba2241e014295aa3ecfcda6633100
 

  • Creare l'endpoint per il servizio "volume":
Line: 649 to 673
 +-------------+--------------------------------------------------------+
Property Value
+-------------+--------------------------------------------------------+
Changed:
<
<
adminurl http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s
>
>
adminurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
 
id 78b405450a5d432b8a4c61bc1abc52d9
Changed:
<
<
internalurl http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s
publicurl http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s
>
>
internalurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
publicurl http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s
 
region RegionOne
service_id f99ba2241e014295aa3ecfcda6633100
+-------------+--------------------------------------------------------+
Changed:
<
<
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "openstack-01.cnaf.infn.it".
>
>
Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "clstr-09.cnaf.infn.it".
 

Definizione del servizio image (Glance)

  • Creare il servizio "glance":
Line: 673 to 697
 
type image
+-------------+----------------------------------+
Deleted:
<
<
export GLANCE_IMAGE_SERVICE_ID=6c02494e7a534c91a7a01228a4093e63
 

  • Creare l'endpoint per il servizio "glance":
Line: 686 to 709
 +-------------+------------------------------------------+
Property Value
+-------------+------------------------------------------+
Changed:
<
<
adminurl http://openstack-01.cnaf.infn.it:9292/v1
>
>
adminurl http://clstr-09.cnaf.infn.it:9292/v1
 
id 2251cae28faf450a8f86292a237e4fcf
Changed:
<
<
internalurl http://openstack-01.cnaf.infn.it:9292/v1
publicurl http://openstack-01.cnaf.infn.it:9292/v1
>
>
internalurl http://clstr-09.cnaf.infn.it:9292/v1
publicurl http://clstr-09.cnaf.infn.it:9292/v1
 
region RegionOne
service_id 6c02494e7a534c91a7a01228a4093e63
+-------------+------------------------------------------+
Changed:
<
<
Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è "openstack-01.cnaf.infn.it".
>
>
Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è "clstr-09.cnaf.infn.it".
 

Troubleshooting Keystone

Line: 1021 to 1044
 dhcpbridge = /usr/bin/nova-dhcpbridge dhcpbridge_flagfile = /etc/nova/nova.conf firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
Changed:
<
<
my_ip = 131.154.101.140
>
>
my_ip = THIS_SERVER_IP
 # fixed_range is eth1 network fixed_range = 192.168.122.0/24 public_interface = eth0
Line: 1035 to 1058
 # no vnc console vnc_enabled = True vncserver_listen = 0.0.0.0
Changed:
<
<
vncserver_proxyclient_address = 131.154.101.140
>
>
vncserver_proxyclient_address = THIS_SERVER_IP
 novncproxy_base_url=http://clstr-09.cnaf.infn.it:6080/vnc_auto.html xvpvncproxy_base_url=http://clstr-09.cnaf.infn.it:6081/console
Line: 1081 to 1104
 

Dove:

Changed:
<
<
      • <VOLUME_NAME> è il nome del volume fisico del server che si sta configurando
      • <YOUR_NOVADB_PASSWORD> è la password dell'utente "nova" del DB "nova" del Cloud Controller
>
>
      • <PASSWORD_UTENTE_DB_NOVA> è la password dell'utente "nova" del DB "nova" del Cloud Controller
 
      • <THIS_SERVER_IP> è l'IP del server che si sta configurando
Changed:
<
<
      • nei parametri sql_connection e qpid_hostname "openstack-01.cnaf.infn.it" è il server che ospita il Cloud Controller
>
>
      • nei parametri sql_connection , glance_api_servers , novncproxy_base_url , xvpvncproxy_base_url e qpid_hostname "clstr-09.cnaf.infn.it" è il server che ospita il Cloud Controller e il servizio Keystone
      • nel parametro fixed_range il valore 192.168.122.0/24 indica il range di IP che possono essere assegnati alle macchine virtuali
 
      • nel parametro flat_network_bridge "virbr0" è l'interfaccia di rete virtuale del server che si sta configurando
        
        
    • Parte finale di /etc/nova/api-paste.ini (la parte precedente rimane invariata):
Line: 1103 to 1126
 auth_uri = http://clstr-09.cnaf.infn.it:5000/ admin_tenant_name = service admin_user = nova
Changed:
<
<
admin_password = PASSWORD_DB_NOVA
>
>
admin_password = NOVA_PASSWORD
  Dove:
Deleted:
<
<
      • <KEYSTONE_SERVICE_IP> è l'IP del server che ospita Keystone (nel caso del prototipo è l'IP di openstack-01.cnaf.infn.it)
 
      • <NOVA_PASSWORD> è la password che è stata associata all'utente del servizio Nova in Keystone
        
        
  • Nota bene: il comando nova-manage potrebbe dare in output alcuni messaggi di Warning su metodi deprecati.
Line: 1131 to 1153
 # nova-manage service list

Binary Host Zone Status State Updated_At

Changed:
<
<
nova-cert openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-consoleauth openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-console openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-scheduler openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-compute openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-volume openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-network openstack-01.cnaf.infn.it nova enabled smile 2012-10-15 14:46:01 nova-compute openstack-02.cnaf.infn.it nova enabled smile 2012-10-15 14:45:57 nova-network openstack-02.cnaf.infn.it nova enabled smile 2012-10-15 14:46:03 nova-compute openstack-03.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02 nova-network openstack-03.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02
>
>
nova-cert clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-consoleauth clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-console clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:46:04 nova-scheduler clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-compute clstr-10.cnaf.infn.it nova enabled smile 2012-10-15 14:45:54 nova-volume clstr-09.cnaf.infn.it nova enabled smile 2012-10-15 14:45:55 nova-network clstr-10.cnaf.infn.it nova enabled smile 2012-10-15 14:46:01 nova-compute clstr-11.cnaf.infn.it nova enabled smile 2012-10-15 14:45:57 nova-network clstr-11.cnaf.infn.it nova enabled smile 2012-10-15 14:46:03 nova-compute clstr-12.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02 nova-network clstr-12.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02
 

Configurazione servizio nova-network

Line: 1272 to 1294
 

Utilizzo della Dashboard

Changed:
<
<
Per verificare il funzionamento della Dashboard, andare su http://openstack-01.cnaf.infn.it/dashboard e loggarsi con le credenziali adminUser e relativa password.
>
>
Per verificare il funzionamento della Dashboard, andare su http://clstr-09.cnaf.infn.it/dashboard e loggarsi con le credenziali adminUser e relativa password.
 

Revision 82012-11-20 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Added:
>
>
Ver. 0.1 - 2012-11-20
 


Revision 72012-11-20 - MatteoManzali

Line: 1 to 1
 

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

Line: 953 to 953
  "Virtualization Platform" "Virtualization Tools"

# yum install openstack-utils memcached qpid-cpp-server

Changed:
<
<
openstack-compute openstack-network mysql dnsmasq-utils
>
>
openstack-nova-compute openstack-nova-network mysql dnsmasq-utils
  python-keystone-auth-token
Changed:
<
<
  • Requisiti di configurazione per RHEL
    • Assicurarsi che nel file /etc/qpidd.conf sia settato auth=no .
    • Attraverso il comando openstack-config settare a False il parametro force_dhcp_release :
      # openstack-config --set /etc/nova/nova.conf DEFAULT force_dhcp_release False
      
      Nota bene: non viene mostrato nessun output ma modificato il file di configurazione.
    • Se si intende utilizzare immagini che non usano una singola partizione, eseguire il seguente comando:
      # openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_inject_partition -1
      
      Nota bene: non viene mostrato nessun output ma modificato il file di configurazione.
>
>
  • Requisito di configurazione per RHEL: assicurarsi che nel file /etc/qpidd.conf sia settato auth=no .
 

Configurazione del servizio Compute

Revision 62012-11-20 - PaoloVeronesi

Line: 1 to 1
Changed:
<
<

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud

>
>

Guida di installazione dell'infrastruttura di cloud per il progetto Marche Cloud

 


Line: 246 to 246
 Creare il volume condiviso tramite il seguente comando:
Changed:
<
<
# gluster volume create volume-glance replica 3 transport tcp hostname2.domain:/mnt/brick-glance hostname3.domain:/mnt/brick-glance hostname4.domain:/mnt/brick-glance
>
>
# gluster volume create volume-glance replica 3 transport tcp \ hostname2.domain:/mnt/brick-glance hostname3.domain:/mnt/brick-glance hostname4.domain:/mnt/brick-glance
 

Far partire il vomune appena creato:

Line: 285 to 288
 Creare il volume condiviso tramite il seguente comando:
Changed:
<
<
# gluster volume create volume-nova replica 2 transport tcp hostname1.domain:/mnt/brick-nova hostname2.domain:/mnt/brick-nova hostname3.domain:/mnt/brick-nova hostname4.domain:/mnt/brick-nova
>
>
# gluster volume create volume-nova replica 2 transport tcp hostname1.domain:/mnt/brick-nova hostname2.domain:/mnt/brick-nova hostname3.domain:/mnt/brick-nova hostname4.domain:/mnt/brick-nova
 

Far partire il vomune appena creato:

Line: 344 to 351
 
  • Inizializzare il parametro admin_token contenuto all'interno del file /etc/keystone/keystone.conf , attraverso il comando:

Changed:
<
<
# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $(openssl rand -hex 10)
>
>
# openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $(openssl rand -hex 10)
 

  • Assicurarsi che il servizio sia attivo al boot ed riavviarlo attraverso i seguenti comandi:
Line: 376 to 384
 
  • Creare il tenant lanciando il comando:

Changed:
<
<
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name adminTenant --description "Admin Tenant" --enabled true
>
>
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name adminTenant --description "Admin Tenant" --enabled true
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 393 to 404
 
  • Creare l'utente lanciando il seguente comando:
Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $ADMIN_TENANT_ID --name $OS_USERNAME --pass $OS_PASSWORD --enabled true
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $ADMIN_TENANT_ID --name $OS_USERNAME --pass $OS_PASSWORD --enabled true
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Line: 427 to 440
 

Assegnazione del ruolo "admin" all'utente "AdminUser"

  • Assegnare il ruolo tramite il seguente comando:

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $ADMIN_USER_ID --tenant_id $ADMIN_TENANT_ID --role_id $ADMIN_ROLE_ID
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $ADMIN_USER_ID --tenant_id $ADMIN_TENANT_ID \ --role_id $ADMIN_ROLE_ID
 

Dove <ADMIN_USER_ID> e <ADMIN_TENANT_ID> sono rispettivamente gli ID di user e tenant appena creati. $ADMIN_ROLE_ID è invece l'id del ruolo "admin" esportato nell'istruzione precedente. Nota bene: non viene visualizzato nulla se il comando ha successo.

Line: 438 to 453
 
  • Creare il tenant lanciando il comando:

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name service --description "Service Tenant" --enabled true
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name service --description "Service Tenant" --enabled true
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 458 to 474
 

Creazione ed inserimento dell'utente associato a Glance

  • Creare l'utente tramite il seguente comando:
Changed:
<
<
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name glance --pass --enabled=true
>
>
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name glance --pass --enabled=true
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Line: 477 to 495
 
  • Assegnare il ruolo tramite il seguente comando:

Changed:
<
<
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $GLANCE_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $GLANCE_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
 

Nota bene: non viene visualizzato nulla se il comando ha successo.

Line: 485 to 505
 

Creazione ed inserimento dell'utente associato a Nova

  • Creare l'utente tramite il seguente comando:

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name nova --pass --enabled true
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name nova --pass --enabled true
 +----------+-------------------------------------------------------------------------------------------------------------------------+
Property Value
+----------+-------------------------------------------------------------------------------------------------------------------------+
Line: 505 to 527
 
  • Assegnare il ruolo tramite il seguente comando:

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $NOVA_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $NOVA_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
 

Nota bene: non viene visualizzato nulla se il comando ha successo.

Line: 523 to 547
 

Definizione del servizio identity (Keystone)

  • Creare il servizio "keystone":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=keystone --type=identity --description="Keystone Identity Service"
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=keystone --type=identity --description="Keystone Identity Service"
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 539 to 564
 
  • Creare l'endpoint per il servizio "keystone":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$KEYSTONE_SERVICE_ID --publicurl=$KEYSTONE5000 --internalurl=$KEYSTONE5000 --adminurl=$ENDPOINT
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$KEYSTONE_SERVICE_ID --publicurl=$KEYSTONE5000 --internalurl=$KEYSTONE5000 --adminurl=$ENDPOINT
 +-------------+----------------------------------------------+
Property Value
+-------------+----------------------------------------------+
Line: 557 to 585
 
  • Creare il servizio "nova":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=nova --type=compute --description="Nova Compute Service"
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=nova --type=compute --description="Nova Compute Service"
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 572 to 601
 
  • Creare l'endpoint per il servizio "nova":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$NOVA_SERVICE_ID --publicurl='http://:8774/v2/%(tenant_id)s' --internalurl='http://:8774/v2/%(tenant_id)s' --adminurl='http://:8774/v2/%(tenant_id)s'
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create \ --region RegionOne --service_id=$NOVA_SERVICE_ID --publicurl='http://:8774/v2/%(tenant_id)s' --internalurl='http://:8774/v2/%(tenant_id)s' --adminurl='http://:8774/v2/%(tenant_id)s'
 +-------------+--------------------------------------------------------+
Property Value
+-------------+--------------------------------------------------------+
Line: 591 to 624
 
  • Creare il servizio "volume":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=volume --type=volume --description="Nova Volume Service"
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=volume --type=volume --description="Nova Volume Service"
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 606 to 640
 
  • Creare l'endpoint per il servizio "volume":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$NOVA_VOLUME_SERVICE_ID --publicurl='http://:8776/v1/%(tenant_id)s' --internalurl='http://:8776/v1/%(tenant_id)s' --adminurl='http://:8776/v1/%(tenant_id)s'
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$NOVA_VOLUME_SERVICE_ID --publicurl='http://:8776/v1/%(tenant_id)s' --internalurl='http://:8776/v1/%(tenant_id)s' --adminurl='http://:8776/v1/%(tenant_id)s'
 +-------------+--------------------------------------------------------+
Property Value
+-------------+--------------------------------------------------------+
Line: 623 to 661
 

Definizione del servizio image (Glance)

  • Creare il servizio "glance":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=glance --type=image --description="Glance Image Service"
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=glance --type=image --description="Glance Image Service"
 +-------------+----------------------------------+
Property Value
+-------------+----------------------------------+
Line: 638 to 677
 
  • Creare l'endpoint per il servizio "glance":

Changed:
<
<
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$GLANCE_IMAGE_SERVICE_ID --publicurl=http://:9292/v1 --internalurl=http://:9292/v1 --adminurl=http://:9292/v1
>
>
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$GLANCE_IMAGE_SERVICE_ID --publicurl=http://:9292/v1 --internalurl=http://:9292/v1 --adminurl=http://:9292/v1
 +-------------+------------------------------------------+
Property Value
+-------------+------------------------------------------+
Line: 844 to 887
  # glance index
Changed:
<
<
# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img
>
>
# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 \ container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img
 Uploading image 'cirros-0.3.0-x86_64' ================================================================================================================================================================================[100%] 23.2M/s, ETA 0h 0m 0s Added new image with ID: a08912a4-3c73-4b17-9d96-bed2d1290d3d
Line: 902 to 946
 

Configurazione dell'Hypervisor (KVM)

  • Installare i pacchetti per la virtualizzazione:

Changed:
<
<
# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils libguestfs-tools # yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools" # yum install openstack-utils memcached qpid-cpp-server openstack-compute openstack-network mysql dnsmasq-utils python-keystone-auth-token
>
>
# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils libguestfs-tools

# yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"

 
Added:
>
>
# yum install openstack-utils memcached qpid-cpp-server openstack-compute openstack-network mysql dnsmasq-utils python-keystone-auth-token
 
  • Requisiti di configurazione per RHEL
    • Assicurarsi che nel file /etc/qpidd.conf sia settato auth=no .
Line: 957 to 1006
 
    • Contentuto completo di nova.conf :
      [DEFAULT]
Changed:
<
<
# LOG/STATE
>
>
 logdir = /var/log/nova
Deleted:
<
<
verbose = True
 state_path = /var/lib/nova lock_path = /var/lib/nova/tmp
Added:
>
>
verbose = False
 
Changed:
<
<
# AUTHENTICATION auth_strategy = keystone

# SCHEDULER #compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler

# VOLUMES volume_group = #volume_name_template = volume-%08x iscsi_helper = tgtadm

# DATABASE del Cloud Controller sql_connection = mysql://nova:@openstack-01.cnaf.infn.it/nova

# COMPUTE

>
>
# kvm compute_driver = libvirt.LibvirtDriver
 libvirt_type = kvm
Changed:
<
<
connection_type = libvirt #instance_name_template = instance-%08x #api_paste_config=/etc/nova/api-paste.ini #allow_resize_to_same_host=True

# APIS #osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions #ec2_dmz_host=192.168.206.130 #s3_host=192.168.206.130

>
>
libvirt_nonblocking = True libvirt_inject_partition = -1 libvirt_xml_template = /usr/share/nova/libvirt.xml.template
 
Changed:
<
<
# GLANCE image_service=nova.image.glance.GlanceImageService glance_api_servers=192.168.206.130:9292
>
>
# sql sql_connection = mysql://nova:PASSWORD_UTENTE_DB_NOVA@clstr-09.cnaf.infn.it/nova
 
Changed:
<
<
# NETWORK
>
>
# authentication auth_strategy = keystone

# network manager

 network_manager = nova.network.manager.FlatDHCPManager
Changed:
<
<
force_dhcp_release = True
>
>
force_dhcp_release = False dhcp_lease_time = 120 dhcpbridge = /usr/bin/nova-dhcpbridge
 dhcpbridge_flagfile = /etc/nova/nova.conf firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
Changed:
<
<
# Change my_ip to match each host my_ip =
>
>
my_ip = 131.154.101.140 # fixed_range is eth1 network fixed_range = 192.168.122.0/24
 public_interface = eth0
Deleted:
<
<
#vlan_interface = eth0
 flat_network_bridge = virbr0
Changed:
<
<
flat_interface = eth0 fixed_range = 192.168.122.0/24
>
>
flat_interface = eth1 multi_host = True auto_assign_floating_ip = False injected_network_template = /usr/share/nova/interfaces.template allow_same_net_traffic=true
 
Changed:
<
<
# NOVNC CONSOLE vnc_enabled = true
>
>
# no vnc console vnc_enabled = True
 vncserver_listen = 0.0.0.0
Changed:
<
<
vncserver_proxyclient_address = 131.154.100.111 novncproxy_base_url=http://openstack-01.cnaf.infn.it:6080/vnc_auto.html xvpvncproxy_base_url=http://openstack-01.cnaf.infn.it:6081/console
>
>
vncserver_proxyclient_address = 131.154.101.140 novncproxy_base_url=http://clstr-09.cnaf.infn.it:6080/vnc_auto.html xvpvncproxy_base_url=http://clstr-09.cnaf.infn.it:6081/console
 
Changed:
<
<
# Qpid qpid_hostname = openstack-01.cnaf.infn.it
>
>
# qpid qpid_hostname = clstr-09.cnaf.infn.it
 rpc_backend = nova.rpc.impl_qpid
Changed:
<
<
# OTHER dhcpbridge = /usr/bin/nova-dhcpbridge injected_network_template = /usr/share/nova/interfaces.template libvirt_xml_template = /usr/share/nova/libvirt.xml.template libvirt_nonblocking = True libvirt_inject_partition = -1
>
>
# GLANCE image_service=nova.image.glance.GlanceImageService glance_api_servers=clstr-09.cnaf.infn.it:9292 cache_images=true

# other

 vpn_client_template = /usr/share/nova/client.ovpn.template credentials_template = /usr/share/nova/novarc.template
Changed:
<
<
root_helper = sudo nova-rootwrap
>
>
rootwrap_config = /etc/nova/rootwrap.conf
 remove_unused_base_images = True
Added:
>
>
# quota quota_cores=20 quota_instances=20 max_cores=24

# volumes_dir = /etc/nova/volumes # iscsi_helper = tgtadm # rpc_backend = nova.openstack.common.rpc.impl_qpid

# [keystone_authtoken] # admin_tenant_name = %SERVICE_TENANT_NAME% # admin_user = %SERVICE_USER% # admin_password = %SERVICE_PASSWORD% # auth_host = 127.0.0.1 # auth_port = 35357 # auth_protocol = http # signing_dirname = /tmp/keystone-signing-nova

 

Dove:

Line: 1042 to 1104
  [filter:authtoken] paste.filter_factory = keystone.middleware.auth_token:filter_factory
Added:
>
>
 service_protocol = http
Changed:
<
<
service_host =
>
>
service_host = clstr-09.cnaf.infn.it
 service_port = 5000
Changed:
<
<
auth_host =
>
>
auth_host = clstr-09.cnaf.infn.it
 auth_port = 35357 auth_protocol = http
Changed:
<
<
auth_uri = http://:5000/
>
>
auth_uri = http://clstr-09.cnaf.infn.it:5000/
 admin_tenant_name = service admin_user = nova
Changed:
<
<
admin_password =
>
>
admin_password = PASSWORD_DB_NOVA
  Dove:
      • <KEYSTONE_SERVICE_IP> è l'IP del server che ospita Keystone (nel caso del prototipo è l'IP di openstack-01.cnaf.infn.it)
Line: 1061 to 1125
 
 
  • Per far partire i servizi di Nova ed inizializzare il DB, lanciare i seguenti comandi:

Changed:
<
<
# for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; service openstack-nova-$svc stop ; chkconfig openstack-nova-$svc on; done
>
>
# for s in `ls /etc/init.d/openstack-nova-*`; do $s stop ; done

# chkconfig openstack-nova-compute on # chkconfig openstack-nova-network on

 # nova-manage db sync
Changed:
<
<
# for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; /etc/init.d/openstack-nova-$svc start ; done
>
>
# /etc/init.d/openstack-nova-compute start

# /etc/init.d/openstack-nova-network start

 

  • Sul Cloud controller verificare lo stato dei servizi Nova compute:
Line: 1108 to 1179
 
# nova-manage network list
Changed:
<
<
# nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0 --num_networks=1 --network_size=256
>
>
# nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0 --num_networks=1 --network_size=256
  # nova-manage network list id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid

Revision 52012-11-20 - MatteoManzali

Line: 1 to 1
 

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud

Line: 1158 to 1155
 
Added:
>
>

Dashboard

 
Added:
>
>

Installazione della Dashboard

Nei passi successivi si assume di avere gia' installati e configurati Identity Service (Keystone) e il compute service (Nova).
 
Added:
>
>
  • Installare i seguenti pacchetti:
    yum install memcached mod_wsgi openstack-dashboard novnc openstack-nova-novncproxy
    
  • Far partire il servizio openstack-nova-novncproxy e farlo partire il automatico:
    # service openstack-nova-novncproxy start
    # chkconfig openstack-nova-novncproxy on
    
  • Su ogni compute node installare novnc:
    # yum install novnc
    
 
Added:
>
>

Configurazione della Dashboard

  • Verificare le impostazioni di memcached presenti nel file /etc/sysconfig/memcached. Di default si presentano come di seguito:
    # cat /etc/sysconfig/memcached 
    PORT="11211"
    USER="memcached"
    MAXCONN="1024"
    CACHESIZE="64"
    OPTIONS=""
    
  • Modificare il valore della variabile CACHE_BACKEND nel file /etc/openstack-dashboard/local_settings in modo da essere coerente con le configurazioni di memcached sopra riportate. In questo caso la variabile sara' settata con:
    CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
    
  • Aggiungere le seguenti variabili (impostandole a True o False nel caso i servizi siano disponibili o meno):
    # SWIFT : da impostare a True quando SWIFT sara' configurato
    SWIFT_ENABLED = False
    
    # QUANTUM e' previsto essere un componente ad-hoc dalla prossima release di openstack (Folsom)
    QUANTUM_ENABLED = False
    
  • Avviare i servizi (memcached e httpd):
    # /etc/init.d/memcached start
    Starting memcached:                                        [  OK  ]
    
    # chkconfig memcached on
    
    # /etc/init.d/httpd start
    Starting httpd:                                            [  OK  ]
    
    # chkconfig httpd on
    

Utilizzo della Dashboard

Per verificare il funzionamento della Dashboard, andare su http://openstack-01.cnaf.infn.it/dashboard e loggarsi con le credenziali adminUser e relativa password.
 

Added:
>
>

 

TODO Installare e impostare l'avvio automatico dei servizi legati a ISCSI

  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio iscsi-initiator-utils su ogni Compute Node. Controllare quindi che sia installato attraverso il seguente comando:

Revision 42012-11-20 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud

Line: 1087 to 1087
 nova-network openstack-03.cnaf.infn.it nova enabled smile 2012-10-15 14:46:02
Changed:
<
<
  • Creare la sottorete privata, i cui IP verranno assegnati alle istanze delle macchine virtuali, utilizzando l'interfaccia virtuale (nel caso in esempio virbr0). Il seguente comando, ad esempio, crea una sottorete con range 192.168.122.0/24.
>
>

Configurazione servizio nova-network

NB: SU TUTTI I SERVER
  • Verificare che ci sia il bridge sulla 192.168.122.0 con il comando ifconfig (NB: il servizio libvirtd deve essere running).
 
Added:
>
>
# ifconfig virbr0 virbr0 Link encap:Ethernet HWaddr 52:54:00:83:66:9B inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:5681 (5.5 KiB)

  • Configurare l'interfaccia eth1 in promiscue mode
ip link set eth1 promisc on

Da un server:

  • Creare la rete con =nova-manage
# nova-manage network list
 # nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0 --num_networks=1 --network_size=256

# nova-manage network list id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid

Changed:
<
<
1 192.168.122.0/24 None 192.168.122.2 8.8.4.4 None None None 052f9b4b-e6d7-4ad9-a3f1-929e80008372
>
>
1 192.168.122.0/24 None 192.168.122.2 8.8.4.4 None None None 03f392b7-16bd-4ea0-a1c0-897fdebd1f0c
 
Changed:
<
<

Gruppi di sicurezza: abilitazione di SSH e ICMP

Il servizio Compute usa i concetti di gruppi di sicurezza per controllare che i protocolli di rete (TCP, UDP, ICMP), le porte e gli indirizzi IP permettano di accedere alle istanze.
>
>
  • Il servizio Compute usa i concetti di gruppi di sicurezza per controllare che i protocolli di rete (TCP, UDP, ICMP), le porte e gli indirizzi IP permettano di accedere alle istanze.
 
  • Per mostrare la lista dei gruppi di sicurezza usare il seguente comando:

Line: 1131 to 1150
 +-------------+-----------+---------+-----------+--------------+
Added:
>
>
  • Abilitare il traffico sulle porte 80 e 443 (necessario all'applicazione di SCS):
# nova secgroup-add-rule default tcp 80 80 0.0.0.0/0

# nova secgroup-add-rule default tcp 443 443 0.0.0.0/0
 
Changed:
<
<

Installare e impostare l'avvio automatico dei servizi legati a ISCSI

>
>

TODO Installare e impostare l'avvio automatico dei servizi legati a ISCSI

 
  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio iscsi-initiator-utils su ogni Compute Node. Controllare quindi che sia installato attraverso il seguente comando:
    yum install iscsi-initiator-utils

Revision 32012-11-20 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud

Line: 904 to 904
 
# yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils libguestfs-tools
# yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
Changed:
<
<
# yum install openstack-utils memcached qpid-cpp-server openstack-nova dnsmasq-utils python-keystone-auth-token
>
>
# yum install openstack-utils memcached qpid-cpp-server openstack-compute openstack-network mysql dnsmasq-utils python-keystone-auth-token
 

Revision 22012-11-20 - PaoloVeronesi

Line: 1 to 1
 

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud


Changed:
<
<

Tabella Hostnames / IPs dei server che compongono l'infrastruttura pilota

>
>

Testbed

Tabella Hostnames / IPs dei server che compongono l'infrastruttura pilota

 
HOSTNAME IP eth0 IP eth1
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21
Line: 13 to 13
 
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24


Changed:
<
<

Controlli preliminari dell'ambiente software da effettuare su ogni server

>
>

Controlli preliminari dell'ambiente software da effettuare su ogni server

 
  • Controllare il sistema operativo installato (deve essere Centos 6.3)

Line: 101 to 101
 


Changed:
<
<

Installazione pacchetti GlusterFS

>
>

GlusterFS

Installazione pacchetti GlusterFS

 Installare tramite yum i pacchetti del server GestioneServiziGenerali.GlusterFS sui nodi che comporranno il filesystem distribuito
# yum install glusterfs-fuse glusterfs-server glusterfs-vim
Line: 118 to 119
 


Changed:
<
<

Creazione di un trusted storage pool

>
>

Creazione di un trusted storage pool

  Prima di configurare un volume GestioneServiziGenerali.GlusterFS è necessario creare un trusted storage pool, contenente i server che comporranno il volume.
Line: 153 to 154
 


Changed:
<
<

Creazione delle unità base di storage (Brick)

>
>

Creazione delle unità base di storage (Brick)

  In GestioneServiziGenerali.GlusterFS un Brick è l'unità base dello storage, rappresentata da una directory su un server del trusted storage pool.
Line: 231 to 232
 


Changed:
<
<

Creazione del volume condiviso

>
>

Creazione del volume condiviso

  I Brick vengono utlizzati per comporre il volume di storage condiviso sui nodi. La creazione del volume può essere effettuata su uno qualsiasi dei nodi che compongono il trusted storage pool. Ciascun Brick è identificato dalla combinazione del nome del server con la directory da esportare, nel seguente formato hostname1.domain:/mnt/mydir .
Line: 305 to 306
 
# mount –a 
Changed:
<
<

Installazione Keystone

>
>

Keystone

Installazione Keystone

 Server designato per l'installazione: hostname1.domain.

  • Installare Keystone tramite il gestore di pacchetti yum :
Line: 328 to 329
 


Changed:
<
<

Configurazione keystone

>
>

Configurazione keystone

 
  • Rimuovere, se esiste, il file /var/lib/keystone/keystone.db (cioè il DB sqlite). Verrà utilizzato MySQL che permette a più Keystone di utilizzare lo stesso DB e al DB stesso di essere replicato utilizzando le feature di MySQL.

  • Per creare il DB keystone e l'utente keystone che ha completo accesso al DB stesso, digitare il comando:
Line: 357 to 358
 


Changed:
<
<

Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi

>
>

Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi

 Per comodità in questa sezione si utilizzeranno delle variabili d'ambiente settate come segue:
# export ADMIN_TOKEN=<ADMIN_TOKEN_VALUE>
Line: 455 to 452
 


Changed:
<
<

Creazione ed inserimento degli utenti associati ai servizi

>
>

Creazione ed inserimento degli utenti associati ai servizi

 Una volta creato il "Service Tenant", si andrà ad inserire al suo interno un utente per ogni servizio che si vuole aggiungere.

Creazione ed inserimento dell'utente associato a Glance

Line: 514 to 511
 Nota bene: non viene visualizzato nulla se il comando ha successo.


Changed:
<
<

Definizione dei servizi

>
>

Definizione dei servizi

 Keystone agisce anche come catalogo dei servizi per permettere alle altre componenti OpenStack di conoscere quali sono gli endpoint dei vari servizi OpenStack.

  • Verificare che il file /etc/keystone/keystone.conf contenga la seguente riga:
Line: 656 to 653
  Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è "openstack-01.cnaf.infn.it".


Changed:
<
<

Troubleshooting

>
>

Troubleshooting Keystone

 
  • Per le principali operazioni di troubleshooting riferirsi alla guida.

Line: 726 to 723
 
Changed:
<
<

Installazione Glance

>
>

Glance

Installazione Glance

 Server designato per l'installazione: hostname1.domain.

  • Installare Glance tramite il gestore di pacchetti yum :
Line: 736 to 734
 


Changed:
<
<

Configurazione Glance

>
>

Configurazione Glance

 
  • Rimuovere, se esiste, il file /var/lib/glance/glance.db (cioè il DB sqlite). Verrà utilizzato MySQL.

  • Collegarsi su MySQL da linea di comando lanciando mysql -u root -p e digitando la password dell'utente root.
Line: 833 to 831
 


Changed:
<
<

Troubleshooting

>
>

Troubleshooting Glance

 
  • To begin troubleshooting, look at the logs in the /var/log/glance/registry.log or /var/log/glance/api.log
  • You can find the version of the installation by using the glance --version command. The version number 2012.1 corresponds with the Essex release.
  • Obtain a test image
Line: 861 to 859
 
Added:
>
>

Cloud Controller

Configurare il DB MySQL sul Cloud Controller

  • Collegarsi a MySQL da linea di comando con mysql -u root -p digitando la password di root.

  • Creare il DB "nova".
    mysql> CREATE DATABASE nova;
    
  • Creare l'utente "nova" che ha completo accesso al DB appena creato.
    mysql> GRANT ALL ON nova.* TO 'nova'@'%' IDENTIFIED BY '<YOUR_NOVADB_PASSWORD>';
    
    Dove <YOUR_NOVADB_PASSWORD> è la password scelta per l'utente "nova" del DB.


Installare il Cloud Controller

  • Installare il server di messaging queue. I servizi OpenStack comunicano tra di loro attraverso AMQP (Advanced Message Queue Protocol) usando un server di messaging. Su Fedora, RHEL e CentOS il server di messaging maggiormente testato è Apache Qpid.
    # yum install openstack-utils memcached qpid-cpp-server
    

  • Installare i pacchetti di nova e le dipendenze verranno installate automaticamente:
    # yum install openstack-nova
    

  • Far partire il servizio qpidd e configurarlo affinchè si avvi al boot del server
    # /etc/init.d/qpidd start
    
    # chkconfig qpidd on
    



Nova

Configurazione dell'Hypervisor (KVM)

  • Installare i pacchetti per la virtualizzazione:
    # yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client bridge-utils libguestfs-tools
    # yum groupinstall Virtualization "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
    # yum install openstack-utils memcached qpid-cpp-server openstack-nova dnsmasq-utils  python-keystone-auth-token
    

  • Requisiti di configurazione per RHEL
    • Assicurarsi che nel file /etc/qpidd.conf sia settato auth=no .
    • Attraverso il comando openstack-config settare a False il parametro force_dhcp_release :
      # openstack-config --set /etc/nova/nova.conf DEFAULT force_dhcp_release False
      
      Nota bene: non viene mostrato nessun output ma modificato il file di configurazione.
    • Se si intende utilizzare immagini che non usano una singola partizione, eseguire il seguente comando:
      # openstack-config --set /etc/nova/nova.conf DEFAULT libvirt_inject_partition -1
      
      Nota bene: non viene mostrato nessun output ma modificato il file di configurazione.


Configurazione del servizio Compute

Servizio libvirtd

  • Editare il file /etc/libvirt/libvirtd.conf e assicurarsi siano impostati i seguenti valori:
# OPENSTACK LIVE MIGRATION
listen_tls = 0
listen_tcp = 1
auth_tcp = "none"

  • Editare il file /etc/sysconfig/libvirtd e assicurarsi che ci siano le impostazioni come seguono:
LIBVIRTD_ARGS="--listen"

  • Far partire libvirtd:
    # chkconfig  libvirtd  on 
    
    # /etc/init.d/libvirtd restart
       

  • Viene aggiunta anche una interfaccia di rete virtuale, chiamata di default virbr0. Il comando ifconfig dovrebbe mostrarla nel suo output:
    virbr0    Link encap:Ethernet  HWaddr 52:54:00:54:65:A1  
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:7585 (7.4 KiB)
    

Servizio nova

  • Modificare due file in /etc/nova nel seguente modo.
    • Contentuto completo di nova.conf :
      [DEFAULT]
      # LOG/STATE
      logdir = /var/log/nova
      verbose = True
      state_path = /var/lib/nova
      lock_path = /var/lib/nova/tmp
      
      # AUTHENTICATION
      auth_strategy = keystone
      
      # SCHEDULER
      #compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
      
      # VOLUMES
      volume_group = <VOLUME_NAME>
      #volume_name_template = volume-%08x
      iscsi_helper = tgtadm
      
      # DATABASE del Cloud Controller
      sql_connection = mysql://nova:<YOUR_NOVADB_PASSWORD>@openstack-01.cnaf.infn.it/nova
      
      # COMPUTE
      libvirt_type = kvm
      connection_type = libvirt
      #instance_name_template = instance-%08x
      #api_paste_config=/etc/nova/api-paste.ini
      #allow_resize_to_same_host=True
      
      # APIS
      #osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions
      #ec2_dmz_host=192.168.206.130
      #s3_host=192.168.206.130
      
      # GLANCE
      image_service=nova.image.glance.GlanceImageService
      glance_api_servers=192.168.206.130:9292
      
      # NETWORK
      network_manager = nova.network.manager.FlatDHCPManager
      force_dhcp_release = True
      dhcpbridge_flagfile = /etc/nova/nova.conf
      firewall_driver = nova.virt.libvirt.firewall.IptablesFirewallDriver
      # Change my_ip to match each host
      my_ip = <THIS_SERVER_IP>
      public_interface = eth0
      #vlan_interface = eth0
      flat_network_bridge = virbr0
      flat_interface = eth0
      fixed_range = 192.168.122.0/24
      
      # NOVNC CONSOLE
      vnc_enabled = true
      vncserver_listen = 0.0.0.0
      vncserver_proxyclient_address = 131.154.100.111
      novncproxy_base_url=http://openstack-01.cnaf.infn.it:6080/vnc_auto.html
      xvpvncproxy_base_url=http://openstack-01.cnaf.infn.it:6081/console
      
      # Qpid
      qpid_hostname = openstack-01.cnaf.infn.it
      rpc_backend = nova.rpc.impl_qpid
      
      # OTHER
      dhcpbridge = /usr/bin/nova-dhcpbridge
      injected_network_template = /usr/share/nova/interfaces.template
      libvirt_xml_template = /usr/share/nova/libvirt.xml.template
      libvirt_nonblocking = True
      libvirt_inject_partition = -1
      vpn_client_template = /usr/share/nova/client.ovpn.template
      credentials_template = /usr/share/nova/novarc.template
      root_helper = sudo nova-rootwrap
      remove_unused_base_images = True
      

Dove:

      • <VOLUME_NAME> è il nome del volume fisico del server che si sta configurando
      • <YOUR_NOVADB_PASSWORD> è la password dell'utente "nova" del DB "nova" del Cloud Controller
      • <THIS_SERVER_IP> è l'IP del server che si sta configurando
      • nei parametri sql_connection e qpid_hostname "openstack-01.cnaf.infn.it" è il server che ospita il Cloud Controller
      • nel parametro flat_network_bridge "virbr0" è l'interfaccia di rete virtuale del server che si sta configurando
        
        
    • Parte finale di /etc/nova/api-paste.ini (la parte precedente rimane invariata):
      [...]
      
      [filter:authtoken]
      paste.filter_factory = keystone.middleware.auth_token:filter_factory
      service_protocol = http
      service_host = <KEYSTONE_SERVICE_IP>
      service_port = 5000
      auth_host = <KEYSTONE_SERVICE_IP>
      auth_port = 35357
      auth_protocol = http
      auth_uri = http://<KEYSTONE_SERVICE_IP>:5000/
      admin_tenant_name = service 
      admin_user = nova
      admin_password = <NOVA_PASSWORD>
      
      Dove:
      • <KEYSTONE_SERVICE_IP> è l'IP del server che ospita Keystone (nel caso del prototipo è l'IP di openstack-01.cnaf.infn.it)
      • <NOVA_PASSWORD> è la password che è stata associata all'utente del servizio Nova in Keystone
        
        
  • Nota bene: il comando nova-manage potrebbe dare in output alcuni messaggi di Warning su metodi deprecati.
    
    
  • Per far partire i servizi di Nova ed inizializzare il DB, lanciare i seguenti comandi:
    # for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; service openstack-nova-$svc stop ; chkconfig openstack-nova-$svc on; done
    # nova-manage db sync
    # for svc in api objectstore compute network volume scheduler cert; do echo openstack-nova-$svc; /etc/init.d/openstack-nova-$svc start ; done 
    

  • Sul Cloud controller verificare lo stato dei servizi Nova compute:
    # nova-manage service list
    
    Binary           Host                                 Zone             Status     State Updated_At
    nova-cert        openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:04
    nova-consoleauth openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:45:54
    nova-console     openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:04
    nova-scheduler   openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:45:55
    nova-compute     openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:45:54
    nova-volume      openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:45:55
    nova-network     openstack-01.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:01
    nova-compute     openstack-02.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:45:57
    nova-network     openstack-02.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:03
    nova-compute     openstack-03.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:02
    nova-network     openstack-03.cnaf.infn.it            nova             enabled    :-)   2012-10-15 14:46:02
    

  • Creare la sottorete privata, i cui IP verranno assegnati alle istanze delle macchine virtuali, utilizzando l'interfaccia virtuale (nel caso in esempio virbr0). Il seguente comando, ad esempio, crea una sottorete con range 192.168.122.0/24.
    # nova-manage network create private --multi_host=T --fixed_range_v4=192.168.122.0/24 --bridge_interface=virbr0 --num_networks=1 --network_size=256
    
    # nova-manage network list
    id      IPv4                    IPv6            start address   DNS1            DNS2            VlanID          project         uuid           
    1       192.168.122.0/24        None            192.168.122.2   8.8.4.4         None            None            None            052f9b4b-e6d7-4ad9-a3f1-929e80008372
    


Gruppi di sicurezza: abilitazione di SSH e ICMP

Il servizio Compute usa i concetti di gruppi di sicurezza per controllare che i protocolli di rete (TCP, UDP, ICMP), le porte e gli indirizzi IP permettano di accedere alle istanze.

  • Per mostrare la lista dei gruppi di sicurezza usare il seguente comando:
    # nova secgroup-list
    +---------+-------------+
    |   Name  | Description |
    +---------+-------------+
    | default | default     |
    +---------+-------------+
    

  • Abilitare l'accesso sulla porta TCP 22 (SSH) per tutti gli indirizzi di Nova:
    # nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
    +-------------+-----------+---------+-----------+--------------+
    | IP Protocol | From Port | To Port |  IP Range | Source Group |
    +-------------+-----------+---------+-----------+--------------+
    | tcp         | 22        | 22      | 0.0.0.0/0 |              |
    +-------------+-----------+---------+-----------+--------------+
    

  • Abilitare il traffico ICMP (ping) per tutti gli IP di Nova:
    # nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
    +-------------+-----------+---------+-----------+--------------+
    | IP Protocol | From Port | To Port |  IP Range | Source Group |
    +-------------+-----------+---------+-----------+--------------+
    | icmp        | -1        | -1      | 0.0.0.0/0 |              |
    +-------------+-----------+---------+-----------+--------------+
    


Installare e impostare l'avvio automatico dei servizi legati a ISCSI

  • Per poter fare l'attach di un volume nova ad l'instanza di una macchina virtuale è necessario installare ed avviare il servizio iscsi-initiator-utils su ogni Compute Node. Controllare quindi che sia installato attraverso il seguente comando:
    yum install iscsi-initiator-utils
    
  • Far partire il servizio:
    service iscsid force-start
    
  • Nota bene: non è possibile usare il comando chkconfig per far partire il servizio iscsid in automatico all'avvio del server, quindi è necessario farlo partire manualmente ad ogni riavvio, utilizzando il comando service iscsid force-start .


 -- MatteoManzali - 2012-11-19

Revision 12012-11-19 - MatteoManzali

Line: 1 to 1
Added:
>
>

Guida di installazione (in unica pagina) dell'infrastruttura di cloud per il progetto Marche Cloud


Tabella Hostnames / IPs dei server che compongono l'infrastruttura pilota

HOSTNAME IP eth0 IP eth1
mcloud01.regionemarche.intra 192.168.200.21 10.101.8.21
mcloud02.regionemarche.intra 192.168.200.22 10.101.8.22
mcloud03.regionemarche.intra 192.168.200.23 10.101.8.23
mcloud04.regionemarche.intra 192.168.200.24 10.101.8.24


Controlli preliminari dell'ambiente software da effettuare su ogni server

  • Controllare il sistema operativo installato (deve essere Centos 6.3)
    # cat /etc/redhat-release
    CentOS release 6.3 (Final)
    

  • Controllare la corretta configurazione del volume group (un unico volume group con nome nova-volumes) e dei logical volumes
    # vgdisplay 
      --- Volume group ---
      VG Name               nova-volumes
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               557,37 GiB
      PE Size               4,00 MiB
      Total PE              142687
      Alloc PE / Size       55748 / 217,77 GiB
      Free  PE / Size       86939 / 339,61 GiB
      VG UUID               6x1Q85-hjml-folN-VzIo-0Atn-f2H9-x1hZ4m
       
    # lvs
      LV      VG           Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
      lv_nova nova-volumes -wi-ao-- 200,00g                                           
      lv_root nova-volumes -wi-ao--   9,77g                                           
      lv_swap nova-volumes -wi-ao--   8,00g 
    

  • Controllare il setup di rete (due reti fisiche distinte eth0 ed eth1)
    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:25:90:4A:A9:08  
              inet addr:131.154.101.103  Bcast:131.154.101.255  Mask:255.255.255.0
              inet6 addr: fe80::225:90ff:fe4a:a908/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:1614529 errors:1 dropped:0 overruns:0 frame:1
              TX packets:158071 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:262985425 (250.8 MiB)  TX bytes:51794928 (49.3 MiB)
              Interrupt:28 Memory:fbbe0000-fbc00000 
    
    eth1      Link encap:Ethernet  HWaddr 00:25:90:4A:A9:09  
              inet addr:131.154.100.146  Bcast:131.154.100.255  Mask:255.255.255.0
              inet6 addr: fe80::225:90ff:fe4a:a909/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:142407 errors:0 dropped:0 overruns:0 frame:0
              TX packets:540 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:12482666 (11.9 MiB)  TX bytes:49631 (48.4 KiB)
              Interrupt:29 Memory:fbce0000-fbd00000 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:39919 errors:0 dropped:0 overruns:0 frame:0
              TX packets:39919 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:32028240 (30.5 MiB)  TX bytes:32028240 (30.5 MiB)
    

  • Verificare la presenza dei repository EPEL, se non sono presenti installarli (sia epel che epel-testing)
    [root@clstr-09 ~]# ll /etc/yum.repos.d/
    totale 36
    -rw-r--r--. 1 root root 1926 26 giu 11:30 CentOS-Base.repo
    -rw-r--r--. 1 root root  637 26 giu 11:30 CentOS-Debuginfo.repo
    -rw-r--r--. 1 root root  626 26 giu 11:30 CentOS-Media.repo
    -rw-r--r--. 1 root root 2593 26 giu 11:30 CentOS-Vault.repo
    -rw-r--r--. 1 root root  145 16 nov 17:40 cnaf-local.repo
    -rw-r--r--. 1 root root  200 16 nov 17:40 egi-trustanchors.repo
    -rw-r--r--. 1 root root  957  9 mag  2012 epel.repo
    -rw-r--r--. 1 root root 1056  9 mag  2012 epel-testing.repo
    -rw-r--r--. 1 root root 1250 28 set 21:00 puppetlabs.repo
    


Installazione pacchetti GlusterFS

Installare tramite yum i pacchetti del server GestioneServiziGenerali.GlusterFS sui nodi che comporranno il filesystem distribuito
# yum install glusterfs-fuse glusterfs-server glusterfs-vim

Far partire il servizio glusterd appena installato

# /etc/init.d/glusterd start

Permettere che il servizio glusterd venga avviato di default al riavvio del server

# chkconfig glusterd on


Creazione di un trusted storage pool

Prima di configurare un volume GestioneServiziGenerali.GlusterFS è necessario creare un trusted storage pool, contenente i server che comporranno il volume.

Per permettere la condivisione del filesystem tra i nodi desiderati eseguire, su uno qualsiasi dei nodi, il comando gluster peer probe <HOSTNAME_NODE> per ognuno degli altri nodi.

Ad esempio in un pool di quattro nodi (con hostname rispettivamente hostname1.domain, hostname2.domain, hostname3.domain, hostname4.domain) eseguire sull'host hostname1.domain :

# gluster peer probe hostname2.domain
# gluster peer probe hostname3.domain
# gluster peer probe hostname4.domain

Per controllare che la creazione del pool sia andata a buon fine, lanciare il comando gluster peer status su uno dei nodi. In output verrà visualizzata la composizione del pool. Ad esempio lanciandolo su hostname1.domain si otterrà:

# gluster peer status
Number of Peers: 3

Hostname: hostname2.domain
Uuid: 2088ff36-dbf9-44a3-9b3b-8a3a94d64cd4
State: Peer in Cluster (Connected)

Hostname: hostname3.domain
Uuid: ce7b0621-4068-43e4-b2a5-585c23ade1de
State: Peer in Cluster (Connected)

Hostname: hostname4.domain
Uuid: ae5dfd23-4a65-a2e6-be85-3e5c11abe5cd
State: Peer in Cluster (Connected)


Creazione delle unità base di storage (Brick)

In GestioneServiziGenerali.GlusterFS un Brick è l'unità base dello storage, rappresentata da una directory su un server del trusted storage pool.

Creazione Brick per GLANCE

Nota bene:

  • I nodi che compongono il volume condiviso per GLANCE sono 3 in modalità di replica
  • Per GLANCE si è reputata sufficiente una dimensione di 300G (Gigabyte) per ciascun brick
  • Si è scelto lv_glance come nome del volume logico
  • Si è scelto /mnt/brick-glance come directory dove montare il volume logico

Ripetere il seguente set di istruzioni per ognuno dei nodi che si intende utilizzare per comporre il filesystem per il servizio GLANCE (Image Repository) di OpenStack.

  1. Creare un volume logico di 300 Gigabyte:
    # lvcreate -L 300G -n lv_glance <VOLUME_NAME>
    
    dove <VOLUME_NAME> è il nome del volume fisico sul quale si intende creare il volume logico. Per capire quali sono i volumi fisici disponibili sul server lanciare il comando vgdisplay Per controllare la corretta creazione del volume logico, digitare il comando lvs che fornirà in output la lista dei volumi logici disponibili sul server.
    
    
  2. Formattare la partizione appena creata (ad esempio su filesystem ext4):
    # mkfs.ext4 <LV_PATH> 
    
    dove <LV_PATH> è il percorso del volume logico ricavabile tramite il comando lvdisplay .
    
    
  3. Creare la directory dove si intende montare il volume appena creato:
    # mkdir /mnt/brick-glance
    
    
    
  4. Per consentire che il volume logico sia montato all'avvio del server, editare il file /etc/fstab aggiungendo la seguente riga:
    <LV_PATH>       /mnt/brick-glance       ext4    defaults        1 1 
    
    
    
  5. Montare il volume:
    # mount –a 
    

Creazione Brick per NOVA

Nota bene:

  • I nodi che compongono il volume condiviso per NOVA sono 4 in modalità di replica distribuita
  • Per NOVA si è reputata sufficiente una dimensione di 1000G (Gigabyte) per ciascun brick
  • Si è scelto lv_nova come nome del volume logico
  • Si è scelto /mnt/brick-glance come directory dove montare il volume logico

Ripetere il seguente set di istruzioni per ognuno dei nodi che si intende utilizzare per comporre il filesystem per il servizio NOVA (Compute) di OpenStack.

  1. Creare un volume logico di 1000 Gigabyte:
    # lvcreate -L 1000G -n lv_nova <VOLUME_NAME>
    
    
    
  2. Formattare la partizione appena creata (ad esempio su filesystem ext4):
    # mkfs.ext4 <LV_PATH> 
    
    
    
  3. Creare la directory dove si intende montare il volume appena creato:
    # mkdir /mnt/brick-nova
    
    
    
  4. Editare il file /etc/fstab aggiungendo la seguente riga:
    <LV_PATH>       /mnt/brick-nova       ext4    defaults        1 1 
    
    
    
  5. Montare il volume:
    # mount –a 
    


Creazione del volume condiviso

I Brick vengono utlizzati per comporre il volume di storage condiviso sui nodi. La creazione del volume può essere effettuata su uno qualsiasi dei nodi che compongono il trusted storage pool. Ciascun Brick è identificato dalla combinazione del nome del server con la directory da esportare, nel seguente formato hostname1.domain:/mnt/mydir .

Creazione del volume condiviso per GLANCE

Nota bene:

  • I nodi che compongono il volume condiviso per GLANCE sono 3 in modalità di replica
  • Il servizio GLANCE sarà installato sul server hostname1.domain
  • Si è scelto volume_glance come nome del volume condiviso

Creare il volume condiviso tramite il seguente comando:

# gluster volume create volume-glance replica 3 transport tcp hostname2.domain:/mnt/brick-glance hostname3.domain:/mnt/brick-glance hostname4.domain:/mnt/brick-glance

Far partire il vomune appena creato:

# gluster volume start volume-glance

Per controllare il corretto avvio del volume, digitare:

# gluster volume info

Sul server che ospiterà il servizio GLANCE (Image repository) montare il volume creato. Editare il file /etc/fstab (se necessario creare la directory /var/lib/glance/images):

hostname1.domain:/volume-glance      /var/lib/glance/images            glusterfs           defaults        1 1

Montare il volume condiviso:

# mount –a 

Creazione del volume condiviso per NOVA

Nota bene:

  • I nodi che compongono il volume condiviso per NOVA sono 4 in modalità di replica distribuita
  • Il servizio NOVA sarà installato sui server hostname1.domain, hostname2.domain, hostname3.domain
  • Si è scelto volume_nova come nome del volume condiviso

Creare il volume condiviso tramite il seguente comando:

# gluster volume create volume-nova replica 2 transport tcp hostname1.domain:/mnt/brick-nova hostname2.domain:/mnt/brick-nova hostname3.domain:/mnt/brick-nova hostname4.domain:/mnt/brick-nova

Far partire il vomune appena creato:

# gluster volume start volume-nova

Sui server che ospiteranno il servizio NOVA (Compute) montare il volume creato. Editare il file /etc/fstab (se necessario creare la directory /var/lib/nova/instances):

hostname1.domain:/volume-nova      /var/lib/nova/instances            glusterfs           defaults        1 1

Montare il volume condiviso:

# mount –a 

Installazione Keystone

Server designato per l'installazione: hostname1.domain.

  • Installare Keystone tramite il gestore di pacchetti yum :
    # yum install openstack-utils openstack-keystone python-keystoneclient
    
  • Installare il server mysql:
    # yum install mysql mysql-server MySQL-python
    
  • Permettere che il servizio mysqld venga avviato di default al riavvio del server ed avviare il servizio:
    # chkconfig mysqld on
    # service mysqld start
    
  • Inserire la password di root :
    # mysqladmin -u root password *******
    


Configurazione keystone

  • Rimuovere, se esiste, il file /var/lib/keystone/keystone.db (cioè il DB sqlite). Verrà utilizzato MySQL che permette a più Keystone di utilizzare lo stesso DB e al DB stesso di essere replicato utilizzando le feature di MySQL.

  • Per creare il DB keystone e l'utente keystone che ha completo accesso al DB stesso, digitare il comando:
    # openstack-db --init --service keystone
    
  • Controllare in /etc/keystone/keystone.conf che esista una riga del tipo:
    connection = mysql://keystone:keystone@hostname1.domain/keystone
    
    Nota bene: in keystone:keystone il primo keystone è il nome utente, il secondo è la password. Utilizzando il comando openstack-db --init --service keystone per l'inizializzazione del DB keystone verranno utilizzati quei valori di default.

  • Inizializzare il parametro admin_token contenuto all'interno del file /etc/keystone/keystone.conf , attraverso il comando:
    # openstack-config --set /etc/keystone/keystone.conf DEFAULT admin_token $(openssl rand -hex 10)
    

  • Assicurarsi che il servizio sia attivo al boot ed riavviarlo attraverso i seguenti comandi:
    # chkconfig openstack-keystone on
    # service openstack-keystone restart
    
  • Infine inizializzare il DB keystone:
    # keystone-manage db_sync
    


Creazione di tenant, utente e ruolo per l'amministratore e del tenant per i servizi

Per comodità in questa sezione si utilizzeranno delle variabili d'ambiente settate come segue:
# export ADMIN_TOKEN=<ADMIN_TOKEN_VALUE>
export OS_USERNAME=adminUser
export OS_PASSWORD=<PASSWORD>
export OS_TENANT_NAME=adminTenant
export ENDPOINT=http://openstack-01.cnaf.infn.it:35357/v2.0/
export OS_AUTH_URL=http://openstack-01.cnaf.infn.it:5000/v2.0/

Dove <ADMIN_TOKEN_VALUE> è il valore del parametro admin_token contenuto nel file /etc/keystone/keystone.conf .

Creazione del tenant "adminTenant"

Definizione di tenant: Un tenant è un contenitore usato per raggruppare risorse o utenti.

  • Creare il tenant lanciando il comando:
    keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name adminTenant --description "Admin Tenant" --enabled true
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Admin Tenant                     |
    | enabled     | True                             |
    | id          | db2cf825309c49989595fc2ff915dc7e |
    | name        | adminTenant                      |
    +-------------+----------------------------------+
    
    export ADMIN_TENANT_ID=db2cf825309c49989595fc2ff915dc7e
    

Creazione dell'utente "adminUser"

  • Creare l'utente lanciando il seguente comando:
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $ADMIN_TENANT_ID --name $OS_USERNAME --pass $OS_PASSWORD --enabled true
+----------+-------------------------------------------------------------------------------------------------------------------------+
| Property |                                                          Value                                                          |
+----------+-------------------------------------------------------------------------------------------------------------------------+
| email    | None                                                                                                                    |
| enabled  | True                                                                                                                    |
| id       | 7d6a3a42c37948b88e2fa692b63587cd                                                                                        |
| name     | adminUser                                                                                                               |
| password | $6$rounds=40000$NxZyxUfO8VRj3gR.$zt9GJKwMDOUMDHCMhqAqJje3JAJmqqTXADZkXll.usGHEsEpAMgKsnZEfF0itF75ooyY1/tjxXBJq9MaQXnfo. |
| tenantId | db2cf825309c49989595fc2ff915dc7e                                                                                        |
+----------+-------------------------------------------------------------------------------------------------------------------------+

Dove <ADMIN_TENANT_ID> è l'ID del tenant appena creato, mentre <ADMIN_PASSWORD> è la password scelta per l'utente "adminUser".

Creazione del ruolo "admin"

  • Creare il ruolo lanciando il seguente comando:
# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT role-create --name admin
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
| id       | 2f196d11ff954c67befc3f190195f47c |
| name     | admin                            |
+----------+----------------------------------+

# export ADMIN_ROLE_ID=2f196d11ff954c67befc3f190195f47c

Assegnazione del ruolo "admin" all'utente "AdminUser"

  • Assegnare il ruolo tramite il seguente comando:
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $ADMIN_USER_ID --tenant_id $ADMIN_TENANT_ID --role_id $ADMIN_ROLE_ID
    

Dove <ADMIN_USER_ID> e <ADMIN_TENANT_ID> sono rispettivamente gli ID di user e tenant appena creati. $ADMIN_ROLE_ID è invece l'id del ruolo "admin" esportato nell'istruzione precedente. Nota bene: non viene visualizzato nulla se il comando ha successo.

Creazione del tenant "service":

Questo tenant conterrà tutti gli utenti dei servizi che si desidera far conoscere al service catalog.

  • Creare il tenant lanciando il comando:
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT tenant-create --name service --description "Service Tenant" --enabled true
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Service Tenant                   |
    | enabled     | True                            |
    | id          | 73016aa2c9ca4aeba3736cf44cc8433b |
    | name        | service                          |
    +-------------+----------------------------------+
    
    # export SERVICE_TENANT_ID=73016aa2c9ca4aeba3736cf44cc8433b
    


Creazione ed inserimento degli utenti associati ai servizi

Una volta creato il "Service Tenant", si andrà ad inserire al suo interno un utente per ogni servizio che si vuole aggiungere.

Creazione ed inserimento dell'utente associato a Glance

  • Creare l'utente tramite il seguente comando:
keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name glance --pass <GLANCE_PASSWORD> --enabled=true
+----------+-------------------------------------------------------------------------------------------------------------------------+
| Property |                                                          Value                                                          |
+----------+-------------------------------------------------------------------------------------------------------------------------+
| email    | None                                                                                                                    |
| enabled  | True                                                                                                                    |
| id       | 90ee5ac051eb4d1eaa543243987968a6                                                                                        |
| name     | glance                                                                                                                  |
| password | $6$rounds=40000$LApm.pXGC43cDMhN$J1mDpXad5r2YYNoMKK/P5t0VwXQidKauP/oHaVH5Nm9E7zGQLYamwa1Xxvh0FRcjOvhDtTSZ97CToKV6pWFPA1 |
| tenantId | 73016aa2c9ca4aeba3736cf44cc8433b                                                                                        |
+----------+-------------------------------------------------------------------------------------------------------------------------+

export GLANCE_USER_ID=90ee5ac051eb4d1eaa543243987968a6

Dove <GLANCE_PASSWORD> è la password che si desidera associare all'utente del servizio Glance.

  • Assegnare il ruolo tramite il seguente comando:
    keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $GLANCE_USER_ID --tenant_id $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID
    

Nota bene: non viene visualizzato nulla se il comando ha successo.

Creazione ed inserimento dell'utente associato a Nova

  • Creare l'utente tramite il seguente comando:
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-create --tenant_id $SERVICE_TENANT_ID --name nova --pass <NOVA_PASSWORD> --enabled true
    +----------+-------------------------------------------------------------------------------------------------------------------------+
    | Property |                                                          Value                                                          |
    +----------+-------------------------------------------------------------------------------------------------------------------------+
    | email    | None                                                                                                                    |
    | enabled  | True                                                                                                                    |
    | id       | 9b2d55e2f8164be5a9805a39588f4659                                                                                        |
    | name     | nova                                                                                                                    |
    | password | $6$rounds=40000$jAXTAHvAnF4MBz7O$pr99MMc4gpfOOlYDO7dTTCy7Ai.XZ72P1GbMXHpj1ri7s9qIdnE67QPDkkfynEUyHXBNsrnsnHzmF9fvGo66r1 |
    | tenantId | 73016aa2c9ca4aeba3736cf44cc8433b                                                                                        |
    +----------+-------------------------------------------------------------------------------------------------------------------------+
    
    export NOVA_USER_ID=9b2d55e2f8164be5a9805a39588f4659 
    

Dove <NOVA_PASSWORD> è la password che si desidera associare all'utente del servizio Nova.

  • Assegnare il ruolo tramite il seguente comando:

# keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT user-role-add --user_id $NOVA_USER_ID --tenant_id  $SERVICE_TENANT_ID --role_id $ADMIN_ROLE_ID

Nota bene: non viene visualizzato nulla se il comando ha successo.


Definizione dei servizi

Keystone agisce anche come catalogo dei servizi per permettere alle altre componenti OpenStack di conoscere quali sono gli endpoint dei vari servizi OpenStack.

  • Verificare che il file /etc/keystone/keystone.conf contenga la seguente riga:
    [catalog]
    driver = keystone.catalog.backends.sql.Catalog
    

Definizione del servizio identity (Keystone)

  • Creare il servizio "keystone":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=keystone --type=identity --description="Keystone Identity Service"
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Keystone Identity Service        |
    | id          | c2b7f0514dde412ea6c1fccac6437bb7 |
    | name        | keystone                         |
    | type        | identity                         |
    +-------------+----------------------------------+
    
    export KEYSTONE_SERVICE_ID=c2b7f0514dde412ea6c1fccac6437bb7
    export KEYSTONE5000=http://openstack-01.cnaf.infn.it:5000/v2.0
    

  • Creare l'endpoint per il servizio "keystone":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$KEYSTONE_SERVICE_ID --publicurl=$KEYSTONE5000 --internalurl=$KEYSTONE5000 --adminurl=$ENDPOINT
    +-------------+----------------------------------------------+
    |   Property  |                    Value                     |
    +-------------+----------------------------------------------+
    | adminurl    | http://openstack-01.cnaf.infn.it:35357/v2.0/ |
    | id          | 93c84640b7384911afdd27dda19ea69c             |
    | internalurl | http://openstack-01.cnaf.infn.it:5000/v2.0   |
    | publicurl   | http://openstack-01.cnaf.infn.it:5000/v2.0   |
    | region      | RegionOne                                    |
    | service_id  | c2b7f0514dde412ea6c1fccac6437bb7             |
    +-------------+----------------------------------------------+
    

Definizione del servizio compute (Nova)

Il servizio compute richiede un endpoint specifico per ogni tenant. La stringa %(tenant_id)s ed i singoli apici che racchiudono i valori di publicurl, internalurl e adminurl devono essere digitati esattamente come mostrato sia per l'endpoint compute che per l'endpoint volume e l'endpoint object storage (paragrafi successivi).

  • Creare il servizio "nova":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=nova --type=compute --description="Nova Compute Service"
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Nova Compute Service             |
    | id          | 5bfe94c4ff80410ab60b635cc99e2476 |
    | name        | nova                             |
    | type        | compute                          |
    +-------------+----------------------------------+
    
    export NOVA_COMPUTE_SERVICE_ID=5bfe94c4ff80410ab60b635cc99e2476
    

  • Creare l'endpoint per il servizio "nova":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$NOVA_SERVICE_ID --publicurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8774/v2/%(tenant_id)s'  --internalurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8774/v2/%(tenant_id)s' --adminurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8774/v2/%(tenant_id)s'
    +-------------+--------------------------------------------------------+
    |   Property  |                         Value                          |
    +-------------+--------------------------------------------------------+
    | adminurl    | http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s |
    | id          | 6168989f6fd2429d8f15d62c940a2fc2                       |
    | internalurl | http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s |
    | publicurl   | http://openstack-01.cnaf.infn.it:8774/v2/%(tenant_id)s |
    | region      | RegionOne                                              |
    | service_id  | 5bfe94c4ff80410ab60b635cc99e2476                       |
    +-------------+--------------------------------------------------------+
    
    Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "openstack-01.cnaf.infn.it".

Definizione del servizio volume (Volume)

Il servizio volume richiede un endpoint specifico per ogni tenant.

  • Creare il servizio "volume":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=volume --type=volume --description="Nova Volume Service"
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Nova Volume Service              |
    | id          | f99ba2241e014295aa3ecfcda6633100 |
    | name        | volume                           |
    | type        | volume                           |
    +-------------+----------------------------------+
    
    export NOVA_VOLUME_SERVICE_ID=f99ba2241e014295aa3ecfcda6633100
    

  • Creare l'endpoint per il servizio "volume":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$NOVA_VOLUME_SERVICE_ID --publicurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8776/v1/%(tenant_id)s'  --internalurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8776/v1/%(tenant_id)s' --adminurl='http://<CLOUD_CONTROLLER_HOSTNAME>:8776/v1/%(tenant_id)s'
    +-------------+--------------------------------------------------------+
    |   Property  |                         Value                          |
    +-------------+--------------------------------------------------------+
    | adminurl    | http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s |
    | id          | 78b405450a5d432b8a4c61bc1abc52d9                       |
    | internalurl | http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s |
    | publicurl   | http://openstack-01.cnaf.infn.it:8776/v1/%(tenant_id)s |
    | region      | RegionOne                                              |
    | service_id  | f99ba2241e014295aa3ecfcda6633100                       |
    +-------------+--------------------------------------------------------+
    
    Dove <CLOUD_CONTROLLER_HOSTNAME> è l'hostname del Cloud Controller (Nova). Nel nostro caso è "openstack-01.cnaf.infn.it".

Definizione del servizio image (Glance)

  • Creare il servizio "glance":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT service-create --name=glance --type=image --description="Glance Image Service"
    +-------------+----------------------------------+
    |   Property  |              Value               |
    +-------------+----------------------------------+
    | description | Glance Image Service             |
    | id          | 6c02494e7a534c91a7a01228a4093e63 |
    | name        | glance                           |
    | type        | image                            |
    +-------------+----------------------------------+
    
    export GLANCE_IMAGE_SERVICE_ID=6c02494e7a534c91a7a01228a4093e63
    

  • Creare l'endpoint per il servizio "glance":
    # keystone --token $ADMIN_TOKEN --endpoint $ENDPOINT endpoint-create --region RegionOne --service_id=$GLANCE_IMAGE_SERVICE_ID --publicurl=http://<GLANCE_SERVER_HOSTNAME>:9292/v1  --internalurl=http://<GLANCE_SERVER_HOSTNAME>:9292/v1 --adminurl=http://<GLANCE_SERVER_HOSTNAME>:9292/v1
    +-------------+------------------------------------------+
    |   Property  |                  Value                   |
    +-------------+------------------------------------------+
    | adminurl    | http://openstack-01.cnaf.infn.it:9292/v1 |
    | id          | 2251cae28faf450a8f86292a237e4fcf         |
    | internalurl | http://openstack-01.cnaf.infn.it:9292/v1 |
    | publicurl   | http://openstack-01.cnaf.infn.it:9292/v1 |
    | region      | RegionOne                                |
    | service_id  | 6c02494e7a534c91a7a01228a4093e63         |
    +-------------+------------------------------------------+
    
    Dove <GLANCE_SERVER_HOSTNAME> è l'hostname del server sui è installato il servizio Glance. Nel nostro caso è "openstack-01.cnaf.infn.it".


Troubleshooting

  • Per le principali operazioni di troubleshooting riferirsi alla guida.

[root@clstr-09 ~]# keystone tenant-list
+----------------------------------+-------------+---------+
|                id                |     name    | enabled |
+----------------------------------+-------------+---------+
| 8f74bb88623e41619a4c020baed3caa0 | adminTenant |   True  |
| d6e9133d43b5440eae0db744c00bbca7 |   service   |   True  |
+----------------------------------+-------------+---------+
[root@clstr-09 ~]# keystone user-list
+----------------------------------+-----------+---------+-------+
|                id                |    name   | enabled | email |
+----------------------------------+-----------+---------+-------+
| 30fc09b098b0451f8ec3861cf96f3422 |    nova   |   True  |       |
| 71228944d88b477188528c47942bcdb8 | adminUser |   True  |       |
| 7f3e370e94b54d8fa6ddbb02d5903f43 |   glance  |   True  |       |
+----------------------------------+-----------+---------+-------+
[root@clstr-09 ~]# keystone service-list
+----------------------------------+----------+----------+---------------------------+
|                id                |   name   |   type   |        description        |
+----------------------------------+----------+----------+---------------------------+
| 11279e60f5054500a1a0a4ea99016721 |  glance  |  image   |    Glance Image Service   |
| 25197e8149da4bc199fc3e8476f4c5ba |  volume  |  volume  |    Nova Volume Service    |
| 990589efda944f379888edc97f17cb75 | keystone | identity | Keystone Identity Service |
| dbe9d50403c541f9b277e1c26b6e7946 |   nova   | compute  |    Nova Compute Service   |
+----------------------------------+----------+----------+---------------------------+
[root@clstr-09 ~]# keystone endpoint-list
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
|                id                |   region  |                     publicurl                      |                    internalurl                     |                      adminurl                      |            service_id            |
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
| 20fef2ceae314842aade705eb6c3ed17 | RegionOne | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8774/v2/%(tenant_id)s | dbe9d50403c541f9b277e1c26b6e7946 |
| 8868e9748ad4481cac64ab0e3d33e614 | RegionOne | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | http://clstr-09.cnaf.infn.it:8776/v1/%(tenant_id)s | 25197e8149da4bc199fc3e8476f4c5ba |
| 8953d51657d8482a9037671db111f718 | RegionOne |       http://clstr-09.cnaf.infn.it:5000/v2.0       |       http://clstr-09.cnaf.infn.it:5000/v2.0       |      http://clstr-09.cnaf.infn.it:35357/v2.0/      | 990589efda944f379888edc97f17cb75 |
+----------------------------------+-----------+----------------------------------------------------+----------------------------------------------------+----------------------------------------------------+----------------------------------+
[root@clstr-09 ~]# keystone catalog
Service: volume
+-------------+-----------------------------------------------------------------------+
|   Property  |                                 Value                                 |
+-------------+-----------------------------------------------------------------------+
|   adminURL  | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
|      id     |                    8868e9748ad4481cac64ab0e3d33e614                   |
| internalURL | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
|  publicURL  | http://clstr-09.cnaf.infn.it:8776/v1/8f74bb88623e41619a4c020baed3caa0 |
|    region   |                               RegionOne                               |
+-------------+-----------------------------------------------------------------------+
Service: compute
+-------------+-----------------------------------------------------------------------+
|   Property  |                                 Value                                 |
+-------------+-----------------------------------------------------------------------+
|   adminURL  | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
|      id     |                    20fef2ceae314842aade705eb6c3ed17                   |
| internalURL | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
|  publicURL  | http://clstr-09.cnaf.infn.it:8774/v2/8f74bb88623e41619a4c020baed3caa0 |
|    region   |                               RegionOne                               |
+-------------+-----------------------------------------------------------------------+
Service: identity
+-------------+------------------------------------------+
|   Property  |                  Value                   |
+-------------+------------------------------------------+
|   adminURL  | http://clstr-09.cnaf.infn.it:35357/v2.0/ |
|      id     |     8953d51657d8482a9037671db111f718     |
| internalURL |  http://clstr-09.cnaf.infn.it:5000/v2.0  |
|  publicURL  |  http://clstr-09.cnaf.infn.it:5000/v2.0  |
|    region   |                RegionOne                 |
+-------------+------------------------------------------+

Installazione Glance

Server designato per l'installazione: hostname1.domain.

  • Installare Glance tramite il gestore di pacchetti yum :
    # yum install python-swiftclient --enablerepo=epel-testing
    # yum install openstack-glance openstack-glance-doc
    


Configurazione Glance

  • Rimuovere, se esiste, il file /var/lib/glance/glance.db (cioè il DB sqlite). Verrà utilizzato MySQL.

  • Collegarsi su MySQL da linea di comando lanciando mysql -u root -p e digitando la password dell'utente root.

  • Creare il DB glance:
    mysql> CREATE DATABASE glance;
    

  • Creare l'utente "glance" che ha completo accesso al DB "glance" appena creato.
    mysql> GRANT ALL ON glance.* TO 'glance'@'%' IDENTIFIED BY '<YOUR_GLANCEDB_PASSWORD>';
    
    Dove <YOUR_GLANCEDB_PASSWORD> è la password scelta per l'utente "glance" del DB.

  • Provare ad accedere a MySQL da locale con l'utente "glance" appena creato tramite il comando myslq -u glance -p digitando la password. Nel caso di accesso negato, accedere a MySQL da root ed eliminare l'utente anonimo con i seguenti comandi:
    mysql> DROP USER ''@'localhost';
    mysql> flush privileges;
    
    Questo problema è dovuto ad un bug di MySQL

Editare i file di configurazione di Glance

  • Modificare le seguenti righe nel file /etc/glance/glance-api-paste.ini :
    [filter:authtoken]
    admin_tenant_name = service
    admin_user = glance
    admin_password = <GLANCE_PASSWORD>
    
    Nota bene:
    • service è il tenant "service" creato durante la configurazione di Keystone
    • glance è l'utente del tenant "service" associato al servizio Glance
    • <GLANCE_PASSWORD> è la password scelta per l'utente "glance" creato nel tenant "service", non la password identificata da <YOUR_GLANCEDB_PASSWORD>

  • Modificare le seguenti righe nel file /etc/glance/glance-api.conf :
    [paste_deploy]
    config_file = /etc/glance/glance-api-paste.ini
    flavor = keystone
    

  • Riavviare il servizio openstack-glance-api per rendere effettive le precedenti modifiche:
    # service openstack-glance-api restart
    

  • Modificare le seguenti righe nel file /etc/glance/glance-registry.conf :
    [keystone_authtoken]
    auth_host = 127.0.0.1
    auth_port = 35357
    auth_protocol = http
    admin_tenant_name = service
    admin_user = glance
    admin_password = <GLANCE_PASSWORD>
    
    [paste_deploy]
    flavor = keystone
    
    Verificare che sql_connection punti al DB MySQL piuttosto che a sqlite:
    sql_connection = mysql://glance:<YOUR_GLANCEDB_PASSWORD>@localhost/glance
    
    Nota bene: inserendo esplicitamente l'hostname del server al posto di localhost sono stati verificati problemi di connessione.

  • Modificare le seguenti righe nel file /etc/glance/glance-registry-paste.ini :
    [filter:authtoken]
    admin_tenant_name = service
    admin_user = glance
    admin_password = <GLANCE_PASSWORD>
    
    Verificare che la sezione pipeline:glance-registry contenga pipeline settato come segue:
    [pipeline:glance-registry]
    pipeline = authtoken auth-context context registryapp
    

  • Riavviare i servizi openstack-glance-registry e openstack-glance-api per rendere effettive le precedenti modifiche:
    # service openstack-glance-registry restart
    # service openstack-glance-api restart
    

  • Inizializzare il DB "glance":
    # glance-manage db_sync
    

  • Infine modificare il proprietario della directory /var/lib/glance :
    # chown -R glance:glance /var/lib/glance
    


Troubleshooting

  • To begin troubleshooting, look at the logs in the /var/log/glance/registry.log or /var/log/glance/api.log
  • You can find the version of the installation by using the glance --version command. The version number 2012.1 corresponds with the Essex release.
  • Obtain a test image
# mkdir /stackimages

# cd  /stackimages

# wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img

# glance index

# glance add name=cirros-0.3.0-x86_64 disk_format=qcow2 container_format=bare < /stackimages/cirros-0.3.0-x86_64-disk.img 
Uploading image 'cirros-0.3.0-x86_64'
================================================================================================================================================================================[100%] 23.2M/s, ETA  0h  0m  0s
Added new image with ID: a08912a4-3c73-4b17-9d96-bed2d1290d3d

# glance index
ID                                   Name                           Disk Format          Container Format     Size          
------------------------------------ ------------------------------ -------------------- -------------------- --------------
a08912a4-3c73-4b17-9d96-bed2d1290d3d cirros-0.3.0-x86_64            qcow2                bare                        9761280


-- MatteoManzali - 2012-11-19

 
This site is powered by the TWiki collaboration platformCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback