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 noeud 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 en 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 avec peu de modifications pour redimensionner horizontalement votre environnement avec des nœuds supplémentaires.

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-get 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 par Blocs. Néanmoins, le système d’exploitation sous-jacent gère les devices associés avec les volumes. Par défaut, l’outil d’analyse des volumes LVM scanne le répertoire /dev pour trouver des devices de stockage par blocs 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 divers problèmes avec à la fois le système d’exploitation sous-jacent et les volumes des projets. Vous devez reconfigurer LVM pour anallyser seulement les devices qui contiennent le volume group cinder-volume. Editez le fichier /etc/lvm/lvm.conf et effectuer les actions 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 noeuds de stockage utilise LVM sur le disque OS, vous devez aussi ajouter le device associé au filtre. Par exemple, si le device /dev/sda contient l’OS :

      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 noeuds pour inclure seulement le disque OS. Par exemple, si le device /dev/sda contient le système:

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

Installer et configurer les composants

  1. Installez les paquets:

    # apt-get install cinder-volume python-mysqldb
    
  1. Editer 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 les sections [DEFAULT] et [oslo_messaging_rabbit], configurer l’accès à la file de message RabbitMQ:

      [DEFAULT]
      ...
      rpc_backend = rabbit
      
      [oslo_messaging_rabbit]
      ...
      rabbit_host = controller
      rabbit_userid = openstack
      rabbit_password = RABBIT_PASS
      

      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
      auth_plugin = password
      project_domain_id = default
      user_domain_id = 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, typiquement 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 backend sont arbitraires. Par exemple, ce guide utilise le nom du driver comme nom de backend.

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

      [DEFAULT]
      ...
      glance_host = controller
      
    • Dans la section [oslo_concurrency], configurer le chemin des verrous:

      [oslo_concurrency]
      ...
      lock_path = /var/lib/cinder/tmp
      
    • (Optionnel) Pour faciliter la résolution des problèmes, activer la verbosité des logs dans la section [DEFAULT] :

      [DEFAULT]
      ...
      verbose = True
      

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
    
  2. Par défaut, les packages Ubuntu créent une base de données SQLite. Comme cette configuration utilise un serveur de base de données SQL, le fichier de base de données SQLite peut être supprimé:

    # rm -f /var/lib/cinder/cinder.sqlite
    
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.