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.
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.
Installer les packages des fonctionnalités support :
# apt install lvm2
Note
Certaines distributions incluent LVM par défaut.
Créer le volume physique LVM /dev/sdb
:
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
Créer le groupe de volume LVM cinder-volumes
:
# vgcreate cinder-volumes /dev/sdb
Volume group "cinder-volumes" successfully created
Le service de Stockage par Blocs crée des volumes logiques dans ce groupe de volume.
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 :
Dans la section devices
, ajouter un filtre qui accepte le device /dev/sdb
et rejette tous les autres devices :
devices {
...
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/.*/"]
Installez les paquets :
# apt install cinder-volume
Éditer le fichier /etc/cinder/cinder.conf
et faire les modifications suivantes :
Dans la section [database]
, configurez l’accès à la base de données :
[database]
# ...
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.
Dans la section [DEFAULT]
, configurer l’accès à la file de messages RabbitMQ
:
[DEFAULT]
# ...
transport_url = rabbit://openstack:RABBIT_PASS@controller
Remplacer RABBIT_PASS
par le mot de passe choisi pour le compte openstack
dans RabbitMQ
.
Dans la section [DEFAULT]
et [keystone_authtoken]
, configurer l’accès au service d’Identité :
[DEFAULT]
# ...
auth_strategy = keystone
[keystone_authtoken]
# ...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
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]
.
Dans la section [DEFAULT]
, configurer l’option my_ip
:
[DEFAULT]
# ...
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.
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é :
[lvm]
# ...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm
Dans la section [DEFAULT]
, activer le backend LVM :
[DEFAULT]
# ...
enabled_backends = lvm
Note
Les noms des backends sont arbitraires. Par exemple, ce guide utilise le nom du driver comme nom de backend.
Dans la section [DEFAULT]
, configurer l’emplacement de l’API du service d’Image :
[DEFAULT]
# ...
glance_api_servers = http://controller:9292
Dans la section [oslo_concurrency]
, configurer le chemin des verrous :
[oslo_concurrency]
# ...
lock_path = /var/lib/cinder/tmp
Redémarrer le service de volume du Stockage par Blocs, ainsi que ses dépendances :
# service tgt restart
# service cinder-volume restart
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.