Installer et configurer un nœud de stockage

Installer et configurer un nœud de stockage

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 :

    # apt install lvm2
    

    Note

    Certaines distributions incluent LVM par défaut.

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

    # pvcreate /dev/sdb
    
    Physical volume "/dev/sdb" successfully created
    
  3. 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.

  4. 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/.*/"]
      

Installer et configurer les composants

  1. Installez les paquets :

    # apt install cinder-volume
    
  1. É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
      

Finaliser l’installation

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

    # service tgt restart
    # service cinder-volume restart
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.