Подключение и настройка СХД

Платформа KeyStack поддерживает подключение дополнительных СХД следующих типов:

  • iSCSI,

  • Fibre Channel,

  • NFS.

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

Включение поддержки LVM

По умолчанию поддержка LVM выключена. LVM использует локальные диски Control-узлов для хранения. Эта опция может использоваться только для тестирования систем и не рекомендуется для производственной эксплуатации.

Предупреждение

Не используйте LVM для производственной эксплуатации.

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Добавьте строки в файл globals.d/REGION.yml:

    enable_cinder_backend_lvm: "yes"
    
  4. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  5. В открывшемся окне добавьте параметры:

    • KOLLA_ANSIBLE_DEPLOY_ACTIONdeploy;

    • KOLLA_ARGS-t cinder,iscsi,nova-cell.

  6. Запустите пайплайн: New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy.

  9. Дождитесь завершения выполнения операции.

Включение поддержки iSCSI

Для включения поддержки протокола iSCSI выполните следующие действия:

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Добавьте строки в файл globals.d/REGION.yml:

    enable_cinder_backend_iscsi: "yes"
    enable_cinder_backend_lvm: "no"
    
  4. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  5. В открывшемся окне добавьте параметры:

    • KOLLA_ANSIBLE_DEPLOY_ACTIONdeploy;

    • KOLLA_ARGS-t cinder.

  6. Запустите пайплайн: New pipeline.

  7. Дождитесь завершения задач на этапе setup.

  8. Запустите задачу deploy на этапе deploy.

  9. Дождитесь завершения выполнения операции.

Включение и конфигурация Fibre Channel

Примечание

В разделе приведен пример подключения Huawei Dorado с поддержкой FC. Шаги по подключению систем хранения других вендоров могут отличаться.

Настройте Cinder:

  1. Создайте новый проект internal_cinder и пользователя internal_cinder_user.

  2. Назначьте пользователю internal_cinder_user права member в созданном проекте.

  3. Сохраните идентификаторы проекта и пользователя. Далее для примера будут использоваться abc11111111111111111111111111111 и def22222222222222222222222222222 для проекта и пользователя соответственно.

  4. (Опционально) Увеличьте квоты в проекте internal_cinder для дисков.

Создайте и примените конфигурацию Fibre Channel:

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Добавьте строки в файл globals.d/REGION.yml:

    enable_multipathd: "yes"
    enable_cinder_backend_lvm: "no"
    default_volume_type: "huawei_storage"
    cinder_internal_tenant_project_id: "abc11111111111111111111111111111"
    cinder_internal_tenant_user_id: "def22222222222222222222222222222"
    
  4. Создайте файл config/cinder/cinder-volume/vendor-configs/dorado.xml с содержимым:

    <?xml version='1.0' encoding='UTF-8'?>
    <config>
        <Storage>
            <Product>Dorado</Product>
            <Protocol>FC</Protocol>
            <UserName>user</UserName>
            <UserPassword>{{ lookup('hashi_vault', 'secret={{ vault_engine }}/data/{{ vault_prefix }}/{{ OPENSTACK_ENV | lower }}/huawei')['data']['UserPassword'] }}</UserPassword>
            <RestURL>https://<IP-адрес>:8088/deviceManager/rest/;https://IP_ADDRESS2:8088/deviceManager/rest/</RestURL>
        </Storage>
        <LUN>
            <LUNCopySpeed>3</LUNCopySpeed>
            <StoragePool>NAME_POOL</StoragePool>
            <LUNType>Thin</LUNType>
        </LUN>
        <FC>
            <Initiator HostName=".*" ALUA="1" FAILOVERMODE="3" SPECIALMODETYPE="0" PATHTYPE="0" />
        </FC>
    </config>
    
  5. Создайте файл config/cinder.conf с содержимым:

    [DEFAULT]
    default_volume_type = {{ default_volume_type }}
    enabled_backends = huawei_storage
    enforce_multipath_for_image_xfer = true
    use_multipath_for_image_xfer = true
    
    [huawei_storage_high]
    allowed_direct_url_schemes = cinder
    cinder_huawei_conf_file = /etc/cinder/vendor-configs/dorado.xml
    enforce_multipath_for_image_xfer = true
    use_multipath_for_image_xfer = true
    volume_backend_name = huawei_storage
    volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
    backend_host = huawei
    
    image_volume_cache_enabled = true
    
  6. Создайте файл config/multipath.conf с содержимым:

    defaults {
        user_friendly_names no
        find_multipaths yes
    }
    
    blacklist {
    }
    
    devices {
        device {
            vendor "HUAWEI"
            product "XSG1"
            path_grouping_policy "multibus"
            path_selector "service-time 0"
            path_checker "tur"
            prio "const"
            failback "immediate"
            dev_loss_tmo 30
            fast_io_fail_tmo 5
            no_path_retry 15
        }
    }
    
  7. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  8. В открывшемся окне добавьте параметры:

    • KOLLA_ANSIBLE_DEPLOY_ACTIONdeploy;

    • KOLLA_ARGS-t cinder, multipath.

  9. Запустите пайплайн: New pipeline.

  10. Дождитесь завершения задач на этапе setup.

  11. Запустите задачу deploy на этапе deploy.

  12. Дождитесь завершения выполнения операции.

Настройте Glance:

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Добавьте или измените строки в файле globals.d/REGION.yml:

    glance_backend_file: "no"
    enable_cinder_backend_iscsi: "yes"
    
  4. Откройте проект project_k / deployments / <имя региона>.

  5. Создайте файл config/glance.conf с содержимым:

    [DEFAULT]
    enabled_backends = blockstore:cinder
    
    [glance_store]
    default_backend = blockstore
    
    [blockstore]
    cinder_catalog_info = volumev3:cinderv3:internalURL
    cinder_store_auth_address = {{ keystone_internal_url }}/v3
    cinder_store_password = {{ glance_keystone_password }}
    cinder_store_project_name = service
    cinder_store_user_name = {{ glance_keystone_user }}
    cinder_volume_type = <put your own volume type name>
    cinder_ca_certificates_file = {{ openstack_cacert }}
    cinder_store_certfile = /etc/glance/certs/glance-cert.pem
    cinder_store_keyfile = /etc/glance/certs/glance-key.pem
    
  6. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  7. В открывшемся окне добавьте параметры:

    • KOLLA_ANSIBLE_DEPLOY_ACTIONdeploy;

    • KOLLA_ARGS-t glance.

  8. Запустите пайплайн: New pipeline.

  9. Дождитесь завершения задач на этапе setup.

  10. Запустите задачу deploy на этапе deploy.

  11. Дождитесь завершения выполнения операции.

Включение и конфигурация NFS

  1. Откройте веб-интерфейс развернутого GitLab.

  2. Откройте проект project_k / deployments / <имя региона>.

  3. Добавьте строку в файл globals.d/REGION.yml:

    enable_cinder_backend_nfs: "yes"
    
  4. Создайте файл config/nfs_shares с записями о каждом Storage-узле:

    storage01:/kolla_nfs
    storage02:/kolla_nfs
    
  5. На каждом Storage-узле:

    1. Создайте файл /etc/exports с информацией о монтировании хранилища, пример записи:

      /kolla_nfs 192.168.5.0/24(rw,sync,no_root_squash)
      
    2. Запустите сервис nfsd с помощью команды systemctl start nfs.

  6. Создайте новый пайплайн: Build > Pipelines > New Pipeline.

  7. В открывшемся окне добавьте параметры:

    • KOLLA_ANSIBLE_DEPLOY_ACTIONdeploy;

    • KOLLA_ARGS-t cinder.

  8. Запустите пайплайн: New pipeline.

  9. Дождитесь завершения задач на этапе setup.

  10. Запустите задачу deploy на этапе deploy.

  11. Дождитесь завершения выполнения операции.