Ceci est la deuxième partie d'OpenStack Kilo sur Ubuntu 14.04.2 - Configurer Cinder, dans ce tutoriel, nous allons installer et configurer Storage Node pour le service Cinder. À des fins de démonstration, configurez ce nœud de stockage avec un périphérique de stockage de bloc /dev/sdb qui contient la partition /dev/sdb1 occupant tout le disque.
Prérequis :
Voici la configuration réseau du nœud de stockage. Le nœud de stockage aura une interface réseau sur le réseau de gestion.
Rôle | Carte nord-ouest 1 | Carte NW 2 | Carte NW 3 |
---|---|---|---|
Nœud de stockage | 192.168.12.24 / 24, GW=192.168.12.2 (Réseau de gestion) | NA | NA |
Définissez le nom d'hôte du nœud à bloquer.
Copiez l'entrée d'hôte du nœud de contrôleur vers le nœud de stockage et ajoutez-y ce qui suit. La sortie finale ressemblera à ci-dessous.
192.168.12.21 controller 192.168.12.22 network 192.168.12.23 compute 192.168.12.24 block
Installez le package NTP sur le nœud de stockage.
# apt-get install ntp
Modifiez le fichier de configuration ci-dessous.
# nano /etc/ntp.conf
Supprimez les autres serveurs NTP du fichier, hachez simplement les lignes qui commencent par le mot "serveur". Ajoutez l'entrée ci-dessous pour synchroniser nos nœuds avec le nœud du contrôleur.
server controller
Redémarrez le service NTP.
# service ntp restart
Packages OpenStack :
Installez le porte-clés et le référentiel de l'archive 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
Mettez à jour les dépôts sur votre système.
# apt-get update
Installez les packages lvm2, si nécessaire.
# apt-get install lvm2
Créez le volume physique /dev/sdb1
# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Créez le groupe de volumes vg_cinder.
# vgcreate vg_cinder /dev/sdb1 Volume group "vg_cinder" successfully created
Modifiez le fichier /etc/lvm/lvm.conf et ajoutez un filtre qui accepte le périphérique /dev/sdb et rejette tous les autres périphériques.
# nano /etc/lvm/lvm.conf
Dans la section appareils, modifiez
De
filter = [ "a/.*/ " ]
À
filter = [ "a/sdb/", "r/.*/" ]
Installez et configurez les composants Cinder :
Installez les packages sur le nœud de stockage.
# apt-get install cinder-volume python-mysqldb
Modifiez le fichier /etc/cinder/cinder.conf.
# nano /etc/cinder/cinder.conf
Modifiez les paramètres ci-dessous et assurez-vous de placer les entrées dans les sections appropriées. Parfois, vous devrez peut-être ajouter des sections si elles n'existent pas et vous devez également ajouter certaines entrées qui manquent dans le fichier, pas toutes.
[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.
Redémarrez le service de stockage de blocs.
# service tgt restart # service cinder-volume restart
Supprimez le fichier de base de données SQLite.
# rm -f /var/lib/cinder/cinder.sqlite
Dépannage :
Parcourez le journal pour toute erreur.
# cat /var/log/cinder/cinder-volume.log
Pour les erreurs comme ci-dessous.
"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'")
Visite :colonne inconnue
Pour les erreurs comme ci-dessous.
AMQP server on controller:5672 is unreachable: Too many heartbeats missed. Trying again in 1 seconds.
Visite :trop de battements de cœur manqués.
Vérification :
Exécutez la commande suivante pour configurer le client Block Storage afin d'utiliser l'API version 2.0.
# echo "export OS_VOLUME_API_VERSION=2" | tee -a admin-openrc.sh demo-openrc.sh
Chargez les identifiants.
# source admin-openrc.sh
Lister les composants du service.
# 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 | +------------------+------------+------+---------+-------+----------------------------+-----------------+
Attacher un volume à une instance :
Créez un disque virtuel "disk01" avec 5 Go, exécutez la commande suivante sur le nœud du contrôleur.
# 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 | +---------------------------------------+--------------------------------------+
Répertoriez les volumes disponibles et le statut devrait être disponible.
# cinder list +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+ | dbd9afb1-48fd-46d1-8f66-1ef5195b6a94 | available | disk01 | 5 | None | false | | +--------------------------------------+-----------+--------+------+-------------+----------+-------------+
Attachez le volume disk01 à notre instance en cours d'exécution "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 | +----------+--------------------------------------+
Répertoriez les volumes, vous pouvez voir le statut comme étant en cours d'utilisation et il doit être attaché à l'ID d'instance 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 | +--------------------------------------+--------+--------+------+-------------+----------+--------------------------------------+
Connectez-vous à l'instance MY-Fedora à l'aide de SSH et exécutez la commande fdisk -l pour répertorier les disques.
# 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 ce qui précède, vous pouvez voir un nouveau disque /dev/vdb ajouté avec 5 Go. C'est celui que nous avons attaché plus tôt et maintenant il est visible dans le système d'exploitation invité.
C'est tout. Vous avez configuré avec succès le service de stockage de blocs (Cinder) sur Ubuntu 14.04.2