Внешний Ceph

Для подготовки и настройки кластера Ceph администраторам требуется специализированный инструмент, такой как ceph-ansible или cephadm. При выполнении этого условия становится возможным создавать нужные пулы и цепочки ключей с помощью Ceph CLI или аналогичного CLI.

Требования

  • Наличие инсталляции Ceph.

  • Наличие пулов хранения Ceph.

  • Наличие учетных данных в Ceph для сервисов OpenStack для подключения к Ceph (Glance, Cinder, Nova).

Подробнее о создании пула и наборов ключей с соответствующими разрешениями для каждого сервиса см. здесь.

Интеграция с Ceph настраивается для каждого из сервисов OpenStack по отдельности.

Примечание

Такие команды, как ceph config generate-minimal-conf, создают файлы конфигурации с ведущими вкладками. Эти вкладки нарушают работу ini-парсера Kolla Ansible. Обязательно удалите ведущие вкладки из файлов ceph.conf при их копировании в разделы, перечисленные далее.

Настройка внешнего Ceph для Glance

Ceph RBD можно использовать как бэкенд хранилища для образов Glance. Чтобы настроить Glance для Ceph, выполните следующие действия:

  1. Включите бэкенды Glance Ceph в globals.yml:

    glance_backend_ceph: "yes"
    
  2. Настройте детали аутентификации Ceph в /etc/kolla/globals.yml:

    • ceph_glance_keyring (по умолчанию: client.glance.keyring);

    • ceph_glance_user (по умолчанию: glance);

    • ceph_glance_pool_name (по умолчанию: images).

  3. Скопируйте файл конфигурации Ceph в /etc/kolla/config/glance/ceph.conf:

    [global]
    fsid = 1d89fec3-325a-4963-a950-c4afedd37fe3
    keyring = /etc/ceph/ceph.client.glance.keyring
    mon_initial_members = ceph-0
    mon_host = 192.168.0.56
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx
    
  4. Скопируйте набор ключей Ceph в /etc/kolla/config/glance/ceph.<ceph_glance_keyring>.

Чтобы настроить несколько бэкендов Ceph с помощью Glance (что удобно для нескольких хранилищ), выполните следующие действия:

  1. Скопируйте файлы конфигурации Ceph в /etc/kolla/config/glance/, используя разные имена для каждого:

    • /etc/kolla/config/glance/ceph.conf:

      [global]
      fsid = 1d89fec3-325a-4963-a950-c4afedd37fe3
      keyring = /etc/ceph/ceph.client.glance.keyring
      mon_initial_members = ceph-0
      mon_host = 192.168.0.56
      auth_cluster_required = cephx
      auth_service_required = cephx
      auth_client_required = cephx
      
    • /etc/kolla/config/glance/rbd1.conf:

      [global]
      fsid = dbfea068-89ca-4d04-bba0-1b8a56c3abc8
      keyring = /etc/ceph/rbd1.client.glance.keyring
      mon_initial_members = ceph-0
      mon_host = 192.10.0.100
      auth_cluster_required = cephx
      auth_service_required = cephx
      auth_client_required = cephx
      
  2. Укажите бэкенды Ceph в globals.yml:

    glance_ceph_backends:
      - name: "rbd"
        type: "rbd"
        cluster: "ceph"
        enabled: "{{ glance_backend_ceph | bool }}"
      - name: "another-rbd"
        type: "rbd"
        cluster: "rbd1"
        enabled: "{{ glance_backend_ceph | bool }}"
    
  3. Скопируйте набор ключей Ceph в /etc/kolla/config/glance/ceph.<ceph_glance_keyring> и аналогично в /etc/kolla/config/glance/rbd1.<ceph_glance_keyring>.

  4. Для копирования при записи запишите следующее в /etc/kolla/config/glance.conf:

    [DEFAULT]
    show_image_direct_url = True
    

    Внимание

    show_image_direct_url может представлять угрозу безопасности при ином использовании, кроме использования Ceph в качестве драйверов Glance. Подробнее см. Glance show_image_direct_url.

Настройка внешнего Ceph для Cinder

Ceph RBD можно использовать как бэкенд хранилища для томов Cinder. Настройка Cinder для Ceph включает следующие шаги:

  1. При использовании внешнего Ceph в группе хранения может не быть определенных узлов. Это приведёт к сбою Cinder и связанных сервисов, зависящих от этой группы. В этом случае оператор должен добавить несколько узлов в группу хранения — все узлы, на которых будут выполняться cinder-volume и cinder-backup:

    [storage]
    control01
    
  2. Включите бэкенды Cinder Ceph в globals.yml:

    cinder_backend_ceph: "yes"
    
  3. Настройте детали аутентификации Ceph в /etc/kolla/globals.yml:

    • ceph_cinder_keyring (по умолчанию: client.cinder.keyring);

    • ceph_cinder_user (по умолчанию: cinder);

    • ceph_cinder_pool_name (по умолчанию: volumes);

    • ceph_cinder_backup_keyring (по умолчанию: client.cinder-backup.keyring);

    • ceph_cinder_backup_user (по умолчанию: cinder-backup);

    • ceph_cinder_backup_pool_name (по умолчанию: backups).

  4. Скопируйте файл конфигурации Ceph в /etc/kolla/config/cinder/ceph.conf.

    Для cinder-volume и cinder-backup можно настроить отдельные параметры конфигурации, добавив файлы ceph.conf в /etc/kolla/config/cinder/cinder-volume и /etc/kolla/config/cinder/cinder-backup соответственно. Они будут объединены с /etc/kolla/config/cinder/ceph.conf.

  5. Скопируйте файлы наборов ключей Ceph сюда:

    • /etc/kolla/config/cinder/cinder-volume/ceph.<ceph_cinder_keyring>;

    • /etc/kolla/config/cinder/cinder-backup/ceph.<ceph_cinder_keyring>;

    • /etc/kolla/config/cinder/cinder-backup/ceph. <ceph_cinder_backup_keyring>.

Примечание

Для доступа cinder-backup к томам и резервному пулу требуется два набора ключей.

Чтобы настроить несколько бэкендов Ceph с помощью Cinder (что удобно при использовании с зонами доступности), выполните следующие действия:

  1. Скопируйте их файлы конфигурации Ceph в /etc/kolla/config/cinder/, используя разные имена для каждого:

    • /etc/kolla/config/cinder/ceph.conf:

      [global]
      fsid = 1d89fec3-325a-4963-a950-c4afedd37fe3
      mon_initial_members = ceph-0
      mon_host = 192.168.0.56
      auth_cluster_required = cephx
      auth_service_required = cephx
      auth_client_required = cephx
      
    • /etc/kolla/config/cinder/rbd2.conf;

      [global]
      fsid = dbfea068-89ca-4d04-bba0-1b8a56c3abc8
      mon_initial_members = ceph-0
      mon_host = 192.10.0.100
      auth_cluster_required = cephx
      auth_service_required = cephx
      auth_client_required = cephx
      
  2. Укажите бэкенды Ceph в globals.yml:

    cinder_ceph_backends:
      - name: "rbd-1"
        cluster: "ceph"
        enabled: "{{ cinder_backend_ceph | bool }}"
      - name: "rbd-2"
        cluster: "rbd2"
        availability_zone: "az2"
        enabled: "{{ cinder_backend_ceph | bool }}"
    
  3. Скопируйте файлы наборов ключей Ceph для всех драйверов Ceph:

    • /etc/kolla/config/cinder/cinder-volume/ceph.<ceph_cinder_keyring>

    • /etc/kolla/config/cinder/cinder-backup/ceph.<ceph_cinder_keyring>

    • /etc/kolla/config/cinder/cinder-backup/ceph. <ceph_cinder_backup_keyring>

    • /etc/kolla/config/cinder/cinder-volume/rbd2.<ceph_cinder_keyring>

    • /etc/kolla/config/cinder/cinder-backup/rbd2.<ceph_cinder_keyring>

    • /etc/kolla/config/cinder/cinder-backup/rbd2. <ceph_cinder_backup_keyring>

Примечание

Для доступа cinder-backup к томам и резервному пулу требуется два набора ключей.

Nova также должна быть настроена так, чтобы был доступ к томам Cinder:

  1. Настройте детали аутентификации Ceph в /etc/kolla/globals.yml:

    • ceph_cinder_keyring (по умолчанию: client.cinder.keyring).

  2. Скопируйте файл(ы) наборов ключей Ceph в /etc/kolla/config/nova/ceph.<ceph_cinder_keyring>.

Чтобы настроить разные бэкенды Ceph для хоста nova-compute (что удобно при использовании с зонами доступности), выполните следующее:

  1. Скопируйте файл набора ключей Ceph в /etc/kolla/config/nova/<hostname>/ceph.<ceph_cinder_keyring>.

Если включен сервис Zun, и вы хотите использовать тома Cinder с Zun, этот сервис тоже нужно настроить так, чтобы был доступ к томам Cinder:

  1. Включите бэкенд Cinder Ceph для Zun в globals.yml:

    zun_configure_for_cinder_ceph: "yes"
    
  2. Скопируйте файл конфигурации Ceph в /etc/kolla/config/zun/zun-compute/ceph.conf.

  3. Скопируйте файл(ы) набора ключей Ceph в /etc/kolla/config/zun/zun-compute/ceph.<ceph_cinder_keyring>.

Настройка внешнего Ceph для Nova

Ceph RBD можно использовать как бэкенд хранилища для эфемерных дисков виртуальных машин Nova. В таком случае нет необходимости в наличии локального хранилища для ВМ на вычислительных узлах. Кроме того, производительность миграции при этом будет выше, поскольку эфемерные диски ВМ не нужно копировать между гипервизорами.

Настройка Nova для Ceph включает следующие шаги:

  1. Включите бэкенды Nova Ceph в globals.yml:

    nova_backend_ceph: "yes"
    
  2. Настройте детали аутентификации Ceph в /etc/kolla/globals.yml:

    • ceph_nova_keyring (по умолчанию такое же, как ceph_cinder_keyring);

    • ceph_nova_user (по умолчанию такое же, как ceph_cinder_user);

    • ceph_nova_pool_name (по умолчанию: vms).

  3. Скопируйте файл конфигурации Ceph в /etc/kolla/config/nova/ceph.conf.

  4. Скопируйте файл(ы) набора ключей Ceph в /etc/kolla/config/nova/ceph.<ceph_nova_keyring>.

Примечание

Если вы используете инструмент развертывания Ceph, который генерирует отдельные ключи Ceph для Cinder и Nova, вам придется переписать ceph_nova_keyring и ceph_nova_user для соответствия.

Чтобы настроить разные бэкенды Ceph для хоста nova-compute (что удобно при использовании с зонами доступности), выполните следующие действия:

  1. Скопируйте файл конфигурации Ceph в /etc/kolla/config/nova/<hostname>/ceph.conf.

  2. Скопируйте файл(ы) набора ключей Ceph в /etc/kolla/config/nova/<hostname>/ceph.<ceph_nova_keyring>.