Esta es la segunda parte de OpenStack Kilo en Ubuntu 14.04.2 – Configurar Cinder, en este tutorial instalaremos y configuraremos Storage Node para el servicio Cinder. Con fines de demostración, configurará este nodo de almacenamiento con un dispositivo de almacenamiento en bloque /dev/sdb que contiene la partición /dev/sdb1 que ocupa todo el disco.
La siguiente es la configuración de red del nodo de almacenamiento. El nodo de almacenamiento tendrá una interfaz de red en la red de administración.
Rol | NW Tarjeta 1 | NW Tarjeta 2 | NW Tarjeta 3 |
Nodo de almacenamiento | 192.168.12.24 / 24, GW=192.168.12.2 (Red de administración) | NA | NA |
Establezca el nombre de host del nodo para bloquear.
Copie la entrada del host del nodo del controlador al nodo de almacenamiento y agregue lo siguiente. El resultado final se verá como se muestra a continuación.
192.168.12.21 controller
192.168.12.22 network
192.168.12.23 compute
192.168.12.24 block
Instale el paquete NTP en el nodo de almacenamiento.
# apt-get install ntp
Edite el siguiente archivo de configuración.
# nano /etc/ntp.conf
Elimine otros servidores NTP del archivo, simplemente elimine las líneas que comienzan con la palabra "servidor". Agregue la siguiente entrada para sincronizar nuestros nodos con el nodo del controlador.
server controller
Reinicie el servicio NTP.
# service ntp restart
Paquetes OpenStack:
Instale el archivo de claves y el repositorio de Ubuntu Cloud.
# apt-get install ubuntu-cloud-keyring
# echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
Actualice los repositorios en su sistema.
# apt-get update
Instale los paquetes lvm2, si es necesario.
# apt-get install lvm2
Cree el volumen físico /dev/sdb1
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
Cree el grupo de volúmenes vg_cinder.
# vgcreate vg_cinder /dev/sdb1
Volume group "vg_cinder" successfully created
Edite el archivo /etc/lvm/lvm.conf y agregue un filtro que acepte el dispositivo /dev/sdb y rechace todos los demás dispositivos.
# nano /etc/lvm/lvm.conf
En la sección de dispositivos, cambia
Desde
filter = [ "a/.*/ " ]
Para
filter = [ "a/sdb/", "r/.*/" ]
Instalar y configurar los componentes de Cinder:
Instale los paquetes en el nodo de almacenamiento.
# apt-get install cinder-volume python-mysqldb
Edite el archivo /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Modifique la configuración a continuación y asegúrese de colocar las entradas en las secciones adecuadas. A veces, es posible que necesite agregar secciones si no existe y también necesita agregar algunas entradas que faltan en el archivo, no todas.
[DEFAULT]
...
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 192.168.12.24
## Management IP of Storage Node
enabled_backends = lvm
glance_host = controller
verbose = True
[database]
connection = mysql://cinder:password@controller/cinder
## Replace "password" with the password you chose for cinder database
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = password
## Replace "password" with the password you chose for the openstack account in RabbitMQ.
[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = cinder
password = password
## Replace "password" with the password you chose for cinder user in the identity service
## Comment out or remove any other options in the [keystone_authtoken] section
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = vg_cinder
iscsi_protocol = iscsi
iscsi_helper = tgtadm
## Replace vg_cinder with your volume group.
[oslo_concurrency]
lock_path = /var/lock/cinder
## Comment out the lock_path in (DEFAULT) section.
Reinicie el servicio de almacenamiento de bloques.
# service tgt restart
# service cinder-volume restart
Elimina el archivo de la base de datos SQLite.
# rm -f /var/lib/cinder/cinder.sqlite
Resolución de problemas:
Revise el registro en busca de errores.
# cat /var/log/cinder/cinder-volume.log
Para errores como los siguientes.
"Unknown column 'volumes.instance_uuid' in 'field list'")
"Unknown column 'volumes.attach_time' in 'field list
"Unknown column 'volumes.mountpoint' in 'field list'"
"Unknown column 'volumes.attached_host' in 'field list'")
Visita:Columna Desconocida
Para errores como los siguientes.
AMQP server on controller:5672 is unreachable: Too many heartbeats missed. Trying again in 1 seconds.
Visita:Se han perdido demasiados latidos.
Verificación:
Ejecute el siguiente comando para configurar el cliente Block Storage para usar la API versión 2.0.
# echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
Cargue las credenciales.
# source admin-openrc.sh
Enumere los componentes del servicio.
# cinder service-list
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller | nova | enabled | up | 2015-07-07T20:11:21.000000 | None |
| cinder-volume | block@lvm | nova | enabled | up | 2015-07-07T20:11:18.000000 | None |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
Adjunte un volumen a una instancia:
Cree un disco virtual "disk01" con 5 GB, ejecute el siguiente comando en el nodo del controlador.
# cinder create --name disk01 5
+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2015-07-07T20:18:34.000000 |
| description | None |
| encrypted | False |
| id | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 |
| metadata | {} |
| multiattach | False |
| name | disk01 |
| os-vol-host-attr:host | None |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | 9b05e6bffdb94c8081d665561d05e31e |
| os-volume-replication:driver_data | None |
| os-volume-replication:extended_status | None |
| replication_status | disabled |
| size | 5 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| user_id | 127a9a6b822a4e3eba69fa54128873cd |
| volume_type | None |
+---------------------------------------+--------------------------------------+
Enumere los volúmenes disponibles y el estado debe estar disponible.
# cinder list
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
| dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | available | disk01 | 5 | None | false | |
+--------------------------------------+-----------+--------+------+-------------+----------+-------------+
Adjunte el volumen disk01 a nuestra instancia en ejecución "My-Fedora"
# nova volume-attach MY-Fedora dbd9afb1-48fd-46d1-8f66-1ef5195b6a94
+----------+--------------------------------------+
| Property | Value |
+----------+--------------------------------------+
| device | /dev/vdb |
| id | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 |
| serverId | 7432030a-3cbe-49c6-956a-3e725e22196d |
| volumeId | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 |
+----------+--------------------------------------+
Enumere los volúmenes, puede ver el estado como en uso y debe adjuntarse a la ID de instancia de My-Fedora.
# cinder list
+--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
| dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | in-use | disk01 | 5 | None | false | 7432030a-3cbe-49c6-956a-3e725e22196d |
+--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
Inicie sesión en la instancia de MY-Fedora usando SSH y ejecute el comando fdisk -l para listar los discos.
# ssh -i mykey [email protected]
Last login: Mon Jul 6 17:59:46 2015 from 192.168.0.103
[fedora@my-fedora ~]$ sudo su -
[root@my-fedora ~]# fdisk -l
Disk /dev/vda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf1cc8d9d
Device Boot Start End Sectors Size Id Type
/dev/vda1 * 2048 41943039 41940992 20G 83 Linux
Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
De lo anterior puede ver, nuevo disco /dev/vdb agregado con 5GB. Este es el que hemos adjuntado anteriormente y ahora está visible en el sistema operativo invitado.
Eso es todo. Ha configurado con éxito el servicio de almacenamiento en bloque (Cinder) en Ubuntu 14.04.2