Glance (Openstack Image Service) sobre Ubuntu 11.10

Objectiu:

Segon petit tutorial sobre la implementació d’un núvol privat mitjançant Openstack. La primera entrada que podeu consultar aquí tractava sobre el servei d’autenticació Keystone. Aquest tutorial tracta sobre la instal·lació del servei d’imatges glance.

Aquest servei ve a ser un repositori d’imatges de disc que els nodes poden utilitzar per a obtenir imatges de disc (kernel, ramdisk i imatge de disc del S.O.) a l’hora d’arrencar una nova màquina virtual. Aquestes imatges són reutilitzables, això vol dir que cada node que n’utilitzi una se’n farà una còpia local i les del servei glance no es modificaran mai.

Procediment:

Utilitzarem la mateixa màquina Ubuntu 11.10 que s’ha utilitzat per a la instal·lació de Keystone. Tot i així seria perfectament legal i, fins i tot, recomanable, que en un entorn de producció aquests dos serveis estiguessin en màquines diferents.

S’utilitzarà el sistema d’arxius local per emmagatzemar les imatges. Per defecte glance utilitza la ruta /var/lib/glance/images per emmagatzemar-les. En entorns més seriosos podríem utilitzar qualsevol recurs de xarxa per emmagatzemar-les, des d’un NFS fins a unitats iSCSI, etcètera.

La instal·lació és força simple. La comanda d’instal·lació és la següent:

# apt-get install python-software-properties
# add-apt-repository ppa:nova-core/trunk
# apt-get update
# apt-get install glance python-dateutil

Un cop realitzada la instal·lació aturarem els serveis iniciats per dur a terme unes modificacions a la configuració:

# ls /etc/init.d/glance-* | cut -d'/' -f4 | while read l; do service ${l} stop; done

El primer que farem és crear una base de dades per glance de la mateixa manera que vam fer amb Keystone:

# mysql -p
Enter password:

mysql> create database glance;
mysql> grant all privileges on glance.* to 'glance'@'%' identified by 'pAssw0rd' with grant option;
mysql> quit;
Bye

A continuació modificarem els arxius /etc/glance/glance-api.conf i /etc/glance/glance-registry.conf. Ens interessa configurar la base de dades i l’autenticació mitjançant Keystone.

Executant les següents comandes ho tindrem tot configurat:

# cat << EOF >> /etc/glance/glance-api.conf
[paste_deploy]
flavor = keystone
EOF

# cat << EOF >> /etc/glance/glance-registry.conf
[paste_deploy]
flavor = keystone
EOF

# sed -i "s/127.0.0.1/IP_SERVIDOR/g" /etc/glance/glance-api.conf
# sed -i "s/127.0.0.1/IP_SERVIDOR/g" /etc/glance/glance-api-paste.ini
# sed -i "s/127.0.0.1/IP_SERVIDOR/g" /etc/glance/glance-registry-paste.ini
# sed -i "s/localhost/IP_SERVIDOR/g" /etc/glance/glance-api.conf

Finalment ja podem arrencar els serveis de nou:

# ls /etc/init.d/glance-* | cut -d'/' -f4 | while read l; do service ${l} start; done

Si algun dels serveis no arrenca podem veure els errors amb:

# tail -f /var/log/glance/api.log /var/log/glance/registry.log

Configuració posterior:

Un cop els serveis instal·lats podem mirar d’afegir una imatge de test i verificar que tot funciona correctament:

# dd if=/dev/zero of=image bs=1024x1024 count=2
# glance add -A 999888777666 name="test-image" is_public=true < image
# glance details -A 999888777666
================================================================================
URI: http://0.0.0.0:9292/v1/images/738b2a2a-7408-46d2-8e56-a325ede4436c
Id: 738b2a2a-7408-46d2-8e56-a325ede4436c
Public: Yes
Protected: No
Name: test-image
Status: active
Size: 2097152
Disk format: raw
Container format: ovf
Minimum Ram Required (MB): 0
Minimum Disk Required (GB): 0
Owner: 1de1cb4b2027415dae7e1535658ac13d
================================================================================
# glance delete 738b2a2a-7408-46d2-8e56-a325ede4436c -A 999888777666
Delete image 738b2a2a-7408-46d2-8e56-a325ede4436c? [y/N] y
Deleted image 738b2a2a-7408-46d2-8e56-a325ede4436c

En aquest moment tenim un servei d'imatges llest pels nodes que virtualitzin màquines.

Documentació:

La documentació d'openstack es pot trobar a http://docs.openstack.org. Bona sort!