Cloud Computing

Índice

Glance sobre Ceph

En este apartado configuraremos Glance sobre Ceph.

GLANCE

Glance es el componente de Openstack que almacena imágenes. Las imágenes almacenadas se pueden utilizar como una plantilla. También se puede utilizar para almacenar y catalogar copias de seguridad.

INSTALACIÓN Y CONFIGURACIÓN

Lo primero que vamos a realizar es la instalación de algunos paquetes en Zeus y Hades (nodos controladores).

wget -q -O- 'https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc' | sudo apt-key add -
echo deb http://ceph.com/debian-hammer/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt-get update && sudo apt-get install ceph-common python-ceph glance python-glanceclient

Una vez que esté instalado en ambos nodos vamos a volver a nuestro cluster Ceph y crear un usuario para que lo usen los nodos controladores:

ceph auth get-or-create client.olimpo mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=datastore'

ceph auth get-or-create client.olimpo | ssh 192.168.100.12 sudo tee /etc/ceph/ceph.client.olimpo.keyring
ceph auth get-or-create client.olimpo | ssh 192.168.100.13 sudo tee /etc/ceph/ceph.client.olimpo.keyring
ssh 192.168.100.12 sudo chmod +r /etc/ceph/ceph.client.olimpo.keyring
ssh 192.168.100.13 sudo chmod +r /etc/ceph/ceph.client.olimpo.keyring

Con esto crearemos un usuario olimpo y pasamos la key a nuestros nodos controladores.

Ahora pasamos la configuración de Ceph a los nodos controladores

ssh 192.168.100.12 sudo tee /etc/ceph/ceph.conf < /etc/ceph/ceph.conf
ssh 192.168.100.13 sudo tee /etc/ceph/ceph.conf < /etc/ceph/ceph.conf

Una vez pasada la configuración vamos a modificar la configuración de Ceph:

/etc/glance/glance-api.conf

[DEFAULT]
default_store = rbd
show_image_direct_url = True
registry_host = 192.168.1.150
registry_port = 9191
registry_client_protocol = http
auth_strategy = keystone
rabbit_hosts = 192.168.100.12,192.168.100.13
rabbit_port = 5672
rabbit_use_ssl = false
rabbit_userid = guest
rabbit_password = guest
rabbit_virtual_host = /
rabbit_notification_exchange = glance
rabbit_notification_topic = notifications
rabbit_durable_queues = False
rbd_store_ceph_conf = /etc/ceph/ceph.conf
rbd_store_user = olimpo
rbd_store_pool = datastore

[database]
backend = sqlalchemy
connection = mysql://glance:asdasd@192.168.1.150/glance

[keystone_authtoken]
auth_host = 192.168.1.150
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = asdasd

/etc/glance/glance-registry.conf

[database]
backend = sqlalchemy
connection = mysql://glance:asdasd@192.168.1.150/glance

[keystone_authtoken]
auth_host = 192.168.1.150
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = glance
admin_password = asdasd

/etc/glance/glance-cache.conf

registry_host = 192.168.1.150

Una vez finalizada la configuración de glance vamos a crear la base de datos:

mysql -h 192.168.1.150 -u root -p
create database glance character set utf8 collate utf8_general_ci;
grant all on glance.* to glance@'%' identified by 'asdasd';
flush privileges;
exit

Reiniciamos los servicios de glance y poblamos la base de datos sólo en Zeus (primer nodo controlador):

service glance-api restart
service glance-registry restart
glance-manage db_sync

Y finalmente reiniciamos también en Hades (segundo nodo controlador):

service glance-api restart
service glance-registry restart

En este punto ya tendríamos configurado Glance sobre Ceph, ahora vamos a añadirlo al haproxy:

En Hera y Afrodita añadimos lo siguiente:

/etc/haproxy/haproxy.cfg

listen glance-api 192.168.1.150:9292
        balance source
        option tcpka
        option httpchk
        maxconn 10000
        server zeus 192.168.100.12:9292 check inter 2000 rise 2 fall 5
        server hades 192.168.1.13:9292 check inter 2000 rise 2 fall 5

listen glance-registry 192.168.1.150:9191
        balance source
        option tcpka
        option httpchk
        maxconn 10000
        server zeus 192.168.100.12:9191 check inter 2000 rise 2 fall 5
        server hades 192.168.100.13:9191 check inter 2000 rise 2 fall 5

Y reiniciamos el servicio en ambas máquinas:

service haproxy reload

Para comprobar que funciona correctamente vamos a añadir una imagen:

 wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
 glance image-create --name CirrOS-3.4 --is-public=true --disk-format=qcow2 --container-format=bare < cirros-0.3.4-x86_64-disk.img

Y comprobamos que se ha añadido correctamente:

+--------------------------------------+-----------------+-------------+------------------+-----------+--------+
| ID                                   | Name            | Disk Format | Container Format | Size      | Status |
+--------------------------------------+-----------------+-------------+------------------+-----------+--------+
| 7b15fbd6-bbf3-4a13-81be-85f2384e63c5 | CirrOS-3.4      | qcow2       | bare             | 13287936  | active |
| 51d93ce4-5f27-432e-a53d-77959bac82e6 | Debian-8-Jessie | qcow2       | bare             | 468853760 | active |
+--------------------------------------+-----------------+-------------+------------------+-----------+--------+

Hemos añadido también una imagen Debian Jessie para comprobar el espacio usado de Ceph:

root@poseidon:/home/usuario# ceph -w
    cluster d63cfea6-113e-42be-9e42-94fa8ae009f1
     health HEALTH_OK
     monmap e1: 1 mons at {poseidon=192.168.100.14:6789/0}
            election epoch 1, quorum 0 poseidon
     osdmap e25: 3 osds: 3 up, 3 in
      pgmap v151: 214 pgs, 2 pools, 459 MB data, 65 objects
            **1492 MB used, 38410 MB / 39902 MB avail**
                 214 active+clean

Podemos comprobar que ya tenemos 1492 MB usados habiendo añadido dos imagenes a Glance.

Finalmente comprobamos nuestro panel web de haproxy:

STATS