0% ont trouvé ce document utile (0 vote)
181 vues12 pages

Guide d'installation de Cinder OpenStack

Transféré par

Moussa Sy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
181 vues12 pages

Guide d'installation de Cinder OpenStack

Transféré par

Moussa Sy
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Openstack 

: Service de Stockage par Blocs


 Block Storage service overview
 Installer et configurer le nœud contrôleur
o Pré-requis
o Installer et configurer les composants
o Configurer Compute pour utiliser le Stockage par Blocs
o Finaliser l’installation
 Installer et configurer un nœud de stockage
o Pré-requis
o Installer et configurer les composants
o Finaliser l’installation
 Vérifier le fonctionnement

Le service de Stockage par Blocs (cinder) fournit des devices de stockage blocs aux instances invitées. La méthode
avec laquelle le stockage est provisionné et consommé est déterminé par le driver de Stockage par Blocs, ou les drivers
dans le cas d’une configuration multi-backend. Différents drivers sont disponibles: NAS/SAN, NFS, iSCSI, Ceph, et
d’autres.
Les services API et scheduler du Stockage par Blocs tournent généralement sur les contrôleurs. En fonction des drivers
utilisés, le service de volume peut tourner sur les contrôleurs, sur les nœuds compute ou sur des nœuds de stockage
autonomes.
Pour plus d’informations, voir le Référentiel de Configuration.
The OpenStack Block Storage service (cinder) adds persistent storage to a virtual machine. Block Storage provides an
infrastructure for managing volumes, and interacts with OpenStack Compute to provide volumes for instances. The
service also enables management of volume snapshots, and volume types.
The Block Storage service consists of the following components:
cinder-api
Accepts API requests, and routes them to the cinder-volume for action.
cinder-volume
Interacts directly with the Block Storage service, and processes such as the cinder-scheduler. It also interacts
with these processes through a message queue. The cinder-volume service responds to read and write
requests sent to the Block Storage service to maintain state. It can interact with a variety of storage providers
through a driver architecture.
cinder-scheduler daemon
Selects the optimal storage provider node on which to create the volume. A similar component to the nova-
scheduler.
cinder-backup daemon
The cinder-backup service provides backing up volumes of any type to a backup storage provider. Like
the cinder-volume service, it can interact with a variety of storage providers through a driver architecture.
Messaging queue
Routes information between the Block Storage processes.
Installer et configurer le nœud contrôleur
  

o Pré-requis
o Installer et configurer les composants
o Configurer Compute pour utiliser le Stockage par Blocs
o Finaliser l’installation

Cette section décrit comment installer et configurer le service de Stockage par Blocs, de nom de code cinder, sur le
nœud contrôleur. Ce service nécessite au minimum un nœud de stockage supplémentaire pour fournir les volumes aux
instances.

Pré-requis¶
Avant d’installer et configurer le service de Stockage par Blocs, vous devez créer une base de données, des credentials
de service, et les points de terminaison d’API.
1. Pour créer la base de données, compléter ces étapes :
o Utiliser le client d’accès à la base de données pour se connecter au serveur de base en tant
qu’utilisateur root :

o # mysql

o Créer la base de données cinder :

o MariaDB [(none)]> CREATE DATABASE cinder;

o Accorder les bons droits d’accès à la base de données cinder :

o MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \

o IDENTIFIED BY 'CINDER_DBPASS';

o MariaDB [(none)]> GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \

o IDENTIFIED BY 'CINDER_DBPASS';

Remplacer CINDER_DBPASS par un mot de passe approprié.


o Quitter l’accès client de la base de données.

2. Sourcer les accréditations admin pour obtenir l’accès aux commandes en ligne spécial-admin :

3. $ . admin-openrc

4. Pour créer les credentials du service, suivre les étapes suivantes :


o Créer un utilisateur cinder :

o $ openstack user create --domain default --password-prompt cinder

o
o User Password:
o Repeat User Password:

o +---------------------+----------------------------------+

o | Field | Value |

o +---------------------+----------------------------------+

o | domain_id | default |

o | enabled | True |

o | id | 9d7e33de3e1a498390353819bc7d245d |

o | name | cinder |

o | options | {} |

o | password_expires_at | None |

o +---------------------+----------------------------------+

o Ajouter le rôle admin à l’utilisateur cinder :

o $ openstack role add --project service --user cinder admin

Note

Cette commande ne produit aucune sortie.

o Créer les entités de service cinderv2 et cinderv3 :

o $ openstack service create --name cinderv2 \

o --description "OpenStack Block Storage" volumev2

o
o +-------------+----------------------------------+

o | Field | Value |

o +-------------+----------------------------------+

o | description | OpenStack Block Storage |

o | enabled | True |

o | id | eb9fd245bdbc414695952e93f29fe3ac |

o | name | cinderv2 |

o | type | volumev2 |

o +-------------+----------------------------------+

o $ openstack service create --name cinderv3 \

o --description "OpenStack Block Storage" volumev3

o
o +-------------+----------------------------------+

o | Field | Value |

o +-------------+----------------------------------+
o | description | OpenStack Block Storage |

o | enabled | True |

o | id | ab3bbbef780845a1a283490d281e7fda |

o | name | cinderv3 |

o | type | volumev3 |

o +-------------+----------------------------------+

Note

Les services de Stockage par Blocs nécessitent deux entités de service.

5. Créer les endpoints API du service de Stockage par Blocs :

6. $ openstack endpoint create --region RegionOne \


7. volumev2 public http://controller:8776/v2/%\(project_id\)s
8.
9. +--------------+------------------------------------------+
10. | Field | Value |
11. +--------------+------------------------------------------+
12. | enabled | True |
13. | id | 513e73819e14460fb904163f41ef3759 |
14. | interface | public |
15. | region | RegionOne |
16. | region_id | RegionOne |
17. | service_id | eb9fd245bdbc414695952e93f29fe3ac |
18. | service_name | cinderv2 |
19. | service_type | volumev2 |
20. | url | http://controller:8776/v2/%(project_id)s |
21. +--------------+------------------------------------------+
22.
23. $ openstack endpoint create --region RegionOne \
24. volumev2 internal http://controller:8776/v2/%\(project_id\)s
25.
26. +--------------+------------------------------------------+
27. | Field | Value |
28. +--------------+------------------------------------------+
29. | enabled | True |
30. | id | 6436a8a23d014cfdb69c586eff146a32 |
31. | interface | internal |
32. | region | RegionOne |
33. | region_id | RegionOne |
34. | service_id | eb9fd245bdbc414695952e93f29fe3ac |
35. | service_name | cinderv2 |
36. | service_type | volumev2 |
37. | url | http://controller:8776/v2/%(project_id)s |
38. +--------------+------------------------------------------+
39.
40. $ openstack endpoint create --region RegionOne \
41. volumev2 admin http://controller:8776/v2/%\(project_id\)s
42.
43. +--------------+------------------------------------------+
44. | Field | Value |
45. +--------------+------------------------------------------+
46. | enabled | True |
47. | id | e652cf84dd334f359ae9b045a2c91d96 |
48. | interface | admin |
49. | region | RegionOne |
50. | region_id | RegionOne |
51. | service_id | eb9fd245bdbc414695952e93f29fe3ac |
52. | service_name | cinderv2 |
53. | service_type | volumev2 |
54. | url | http://controller:8776/v2/%(project_id)s |
55. +--------------+------------------------------------------+
56. $ openstack endpoint create --region RegionOne \
57. volumev3 public http://controller:8776/v3/%\(project_id\)s
58.
59. +--------------+------------------------------------------+
60. | Field | Value |
61. +--------------+------------------------------------------+
62. | enabled | True |
63. | id | 03fa2c90153546c295bf30ca86b1344b |
64. | interface | public |
65. | region | RegionOne |
66. | region_id | RegionOne |
67. | service_id | ab3bbbef780845a1a283490d281e7fda |
68. | service_name | cinderv3 |
69. | service_type | volumev3 |
70. | url | http://controller:8776/v3/%(project_id)s |
71. +--------------+------------------------------------------+
72.
73. $ openstack endpoint create --region RegionOne \
74. volumev3 internal http://controller:8776/v3/%\(project_id\)s
75.
76. +--------------+------------------------------------------+
77. | Field | Value |
78. +--------------+------------------------------------------+
79. | enabled | True |
80. | id | 94f684395d1b41068c70e4ecb11364b2 |
81. | interface | internal |
82. | region | RegionOne |
83. | region_id | RegionOne |
84. | service_id | ab3bbbef780845a1a283490d281e7fda |
85. | service_name | cinderv3 |
86. | service_type | volumev3 |
87. | url | http://controller:8776/v3/%(project_id)s |
88. +--------------+------------------------------------------+
89.
90. $ openstack endpoint create --region RegionOne \
91. volumev3 admin http://controller:8776/v3/%\(project_id\)s
92.
93. +--------------+------------------------------------------+
94. | Field | Value |
95. +--------------+------------------------------------------+
96. | enabled | True |
97. | id | 4511c28a0f9840c78bacb25f10f62c98 |
98. | interface | admin |
99. | region | RegionOne |
100.| region_id | RegionOne |
101.| service_id | ab3bbbef780845a1a283490d281e7fda |
102.| service_name | cinderv3 |
103.| service_type | volumev3 |
104.| url | http://controller:8776/v3/%(project_id)s |
105.+--------------+------------------------------------------+

Note

Les services de Stockage par Blocs nécessitent un endpoint pour chaque entité de service.

Installer et configurer les composants¶


1. Installez les paquets :

2. # apt install cinder-api cinder-scheduler

2. Éditer le fichier /etc/cinder/cinder.conf et faire les modifications suivantes :


o Dans la section [database], configurez l’accès à la base de données :

o [database]

o # ...

o connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
Remplacer CINDER_DBPASS par le mot de passe choisi pour la base de données du Stockage par Blocs.
o Dans la section [DEFAULT], configurer l’accès à la file de messages RabbitMQ :

o [DEFAULT]

o # ...

o transport_url = rabbit://openstack:RABBIT_PASS@controller

Remplacer RABBIT_PASS par le mot de passe choisi pour le compte openstack dans RabbitMQ.


o Dans la section [DEFAULT] et [keystone_authtoken], configurer l’accès au service d’Identité :

o [DEFAULT]

o # ...

o auth_strategy = keystone

o
o [keystone_authtoken]

o # ...

o auth_uri = http://controller:5000

o auth_url = http://controller:35357

o memcached_servers = controller:11211

o auth_type = password

o project_domain_name = default

o user_domain_name = default

o project_name = service

o username = cinder

o password = CINDER_PASS

Remplacer CINDER_PASS par le mot de passe choisi pour l’utilisateur cinder dans le service d’Identité.

Note

Commenter ou supprimer toute autre option dans la section [keystone_authtoken].

o Dans la section [DEFAULT], configurer l’option my_ip pour utiliser l’adresse IP de l’interface de


management du nœud contrôleur :

o [DEFAULT]

o # ...

o my_ip = 10.0.0.11

o Dans la section [oslo_concurrency], configurer le chemin des verrous :

o [oslo_concurrency]

o # ...
o lock_path = /var/lib/cinder/tmp

3. Peupler la base de données de Stockage par Blocs :

4. # su -s /bin/sh -c "cinder-manage db sync" cinder

Note

Ignorer les messages d’obsolescence éventuels dans cette sortie écran.

Configurer Compute pour utiliser le Stockage par Blocs¶


 Éditer le fichier /etc/nova/nova.conf et ajouter ce qui suit :

 [cinder]

 os_region_name = RegionOne

Finaliser l’installation¶
1. Redémarrer le service d’API Compute

2. # service nova-api restart

3. Redémarrer les services de Stockage par Blocs :

4. # service cinder-scheduler restart

# service apache2 restart

Cette section décrit comment installer et configurer les nœuds de stockage pour le service de Stockage par Blocs. Pour
simplifier, cette configuration référence un nœud de stockage avec un device bloc local vide. Les instructions
indiquent /dev/sdb, mais vous pouvez le substituer par une valeur différente pour correspondre à la configuration de
votre nœud particulier.
Le service provisionne des volumes logiques sur ce device en utilisant le driver LVM et les fournit aux instances via le
transport iSCSI. Vous pouvez suivre ces instructions, à peu de choses près, pour redimensionner horizontalement votre
environnement en y ajoutant des nœuds de stockage.

Pré-requis¶
Avant d’installer et configurer le service de Stockage par Blocs sur le nœud de Stockage, vous devez préparer le device
de Stockage.
 
Note
Effectuer ces opérations sur le nœud de stockage.

1. Installer les packages des fonctionnalités support :


2. # apt install lvm2

Note

Certaines distributions incluent LVM par défaut.

3. Créer le volume physique LVM /dev/sdb :

4. # pvcreate /dev/sdb
5.
6. Physical volume "/dev/sdb" successfully created

7. Créer le groupe de volume LVM cinder-volumes :

8. # vgcreate cinder-volumes /dev/sdb


9.
10. Volume group "cinder-volumes" successfully created

Le service de Stockage par Blocs crée des volumes logiques dans ce groupe de volume.
11. Seules les instances peuvent accéder aux volumes de Stockage Bloc. Néanmoins, le système d’exploitation
sous-jacent gère les devices associés aux volumes. Par défaut, l’outil d’analyse des volumes LVM scanne le
répertoire /dev pour trouver des devices de stockage bloc qui contiennent des volumes. Si les projets utilisent
LVM sur leurs volumes, l’outil d’analyse détecte ces volumes et essaie de les mettre en cache, ce qui peut
causer différents problèmes à la fois avec le système d’exploitation sous-jacent et avec les volumes des
projets. Vous devez reconfigurer LVM pour analyser seulement les devices qui contiennent le groupe de
volumes``cinder-volumes``. Éditez le fichier /etc/lvm/lvm.conf et effectuez les opérations suivantes :
o Dans la section devices, ajouter un filtre qui accepte le device /dev/sdb et rejette tous les autres
devices :

o devices {

o ...

o filter = [ "a/sdb/", "r/.*/"]

Chaque élément du tableau de filtre commence par a pour accepter ou r pour rejeter et inclut une


expression régulière pour le nom de device. La table doit se terminer par r/.*/ pour rejeter tous les
devices restants. Vous pouvez utiliser la commande vgs -vvvv pour tester les filtres.

Avertissement

Si vos nœuds de stockage utilise LVM sur leur disque système, vous devez aussi ajouter le device
associé au filtre. Par exemple, si le device /dev/sda contient le système d’exploitation :

filter = [ "a/sda/", "a/sdb/", "r/.*/"]

De la même façon, si vos nœuds compute utilisent LVM sur le disque du système d’exploitation, vous
devez aussi modifier ce filtre dans le fichier /etc/lvm/lvm.conf sur ces nœuds pour inclure seulement
le disque système. Par exemple, si le device /dev/sda contient le système d’exploitation :
filter = [ "a/sda/", "r/.*/"]

Installer et configurer les composants¶


1. Installez les paquets :

2. # apt install cinder-volume

2. Éditer le fichier /etc/cinder/cinder.conf et faire les modifications suivantes :


o Dans la section [database], configurez l’accès à la base de données :

o [database]

o # ...

o connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

Remplacer CINDER_DBPASS par le mot de passe choisi pour la base de données du Stockage par


Blocs.
o Dans la section [DEFAULT], configurer l’accès à la file de messages RabbitMQ :

o [DEFAULT]

o # ...

o transport_url = rabbit://openstack:RABBIT_PASS@controller

Remplacer RABBIT_PASS par le mot de passe choisi pour le compte openstack dans RabbitMQ.


o Dans la section [DEFAULT] et [keystone_authtoken], configurer l’accès au service d’Identité :

o [DEFAULT]

o # ...

o auth_strategy = keystone

o
o [keystone_authtoken]

o # ...

o auth_uri = http://controller:5000

o auth_url = http://controller:35357

o memcached_servers = controller:11211

o auth_type = password

o project_domain_name = default

o user_domain_name = default

o project_name = service

o username = cinder

o password = CINDER_PASS

Remplacer CINDER_PASS par le mot de passe choisi pour l’utilisateur cinder dans le service d’Identité.


 

Note

Commenter ou supprimer toute autre option dans la section [keystone_authtoken].

o Dans la section [DEFAULT], configurer l’option my_ip :

o [DEFAULT]

o # ...

o my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

Remplacer MANAGEMENT_INTERFACE_IP_ADDRESS par l’adresse IP de l’interface du réseau de


management sur le nœud de stockage, généralement 10.0.0.41 pour le premier nœud dans
l’ exemple d’architecture.
o Dans la section [lvm], configurer le backend LVM avec le driver LVM, le groupe de volumes cinder-
volumes, le protocole iSCSI, et le service iSCSI approprié :

o [lvm]

o # ...

o volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver

o volume_group = cinder-volumes

o iscsi_protocol = iscsi

o iscsi_helper = tgtadm

o Dans la section [DEFAULT], activer le backend LVM :

o [DEFAULT]

o # ...

o enabled_backends = lvm

Note

Les noms des backends sont arbitraires. Par exemple, ce guide utilise le nom du driver comme nom
de backend.

o Dans la section [DEFAULT], configurer l’emplacement de l’API du service d’Image :

o [DEFAULT]

o # ...

o glance_api_servers = http://controller:9292

o Dans la section [oslo_concurrency], configurer le chemin des verrous :

o [oslo_concurrency]

o # ...
o lock_path = /var/lib/cinder/tmp

Finaliser l’installation¶
1. Redémarrer le service de volume du Stockage par Blocs, ainsi que ses dépendances :

2. # service tgt restart

# service cinder-volume restart

Vérifier le fonctionnement
  
UPDATED: 2019-08-16 17:11

Contents

Vérifier le fonctionnement du service de Stockage par Blocs.


 
Note
Exécuter ces commandes sur le nœud contrôleur.

1. Sourcer les accréditations admin pour obtenir l’accès aux commandes en ligne spécial-admin :

2. $ . admin-openrc

3. Lister les composants du service pour vérifier le bon lancement de chaque processus :

4. $ openstack volume service list


5.
6. +------------------+------------+------+---------+-------+----------------------------+
7. | Binary | Host | Zone | Status | State | Updated_at |
8. +------------------+------------+------+---------+-------+----------------------------+
9. | cinder-scheduler | controller | nova | enabled | up | 2016-09-30T02:27:41.000000 |
10. | cinder-volume | block@lvm | nova | enabled | up | 2016-09-30T02:27:46.000000 |
11. +------------------+------------+------+---------+-------+----------------------------+

Vous aimerez peut-être aussi