[ English | русский | Indonesia ]

AIO (All-in-One) развертывание Ceph

OpenStack-Ansible предоставляет специализированный сценарий AIO Ceph, который развертывает OpenStack вместе с минимальным кластером Ceph на одном хосте.

Важно

Сценарий AIO Ceph предназначен только для тестирования и разработки. Его нельзя использовать в производственных окружениях. Для использования в производственном окружении разверните выделенный многоузловой кластер Ceph.

В этом документе описывается, как включить сценарий AIO Ceph, используя стандартную процедуру быстрого запуска AIO.

Для стандартного развертывания AIO обратитесь к Руководству по быстрому запуску OpenStack-Ansible AIO

Обзор

Сценарий AIO Ceph расширяет стандартное развертывание All-in-One, добавляя минимальный кластер Ceph на тот же хост. Во время подготовки службы Ceph устанавливаются и настраиваются автоматически.

В основе Ceph OSD лежат sparse файлы, созданные локально на хосте AIO. Это позволяет Ceph работать без выделенных блочных устройств, что делает этот сценарий подходящим для лабораторных и CI сред.

Включение сценария AIO Ceph

Подготовьте хост в соответствии со стандартным руководством по быстрому запуску AIO.

Перед запуском bootstrap скрипта AIO установите переменную сценария, чтобы включить шаблон с поддержкой Ceph:

export SCENARIO='aio_ceph'

Затем запустите процесс подготовки:

scripts/bootstrap-aio.sh

Процесс подготовки

В процессе подготовки OpenStack-Ansible подготавливает хост, создает необходимые контейнеры и развертывает минимальный кластер Ceph.

В рамках этого процесса автоматически создаются три sparse файла. Эти файлы используются в качестве Ceph OSD и вместе образуют кластер Ceph на одном узле AIO.

Поскольку OSD работают на основе файлов, а все службы запущены на одном хосте, данная конфигурация предназначена исключительно для функционального тестирования.

Сервисы Ceph и объектное хранилище

В развертывание входят сервисы Ceph MON, OSD и MGR, а также Ceph RADOS Gateway (RGW).

После завершения подготовки RGW настраивается для предоставления совместимой со Swift точкой доступа объектного хранилища. Это позволяет Ceph RADOS Gateway выступать в качестве замены Swift и использоваться в качестве бекэнда объектного хранилища в среде AIO.

После настройки объектное хранилище также будет доступно пользователям через панели управления Skyline и Horizon.

Для получения более подробной информации об использовании Ceph в качестве замены Swift см.:

Использование Ceph для объектного хранилища, совместимого со Swift

Проверка

После выполнения плейбуков OpenStack-Ansible вы можете проверить состояние кластера Ceph. Поскольку службы Ceph работают внутри контейнеров LXC, команду следует выполнить в контейнере монитора Ceph.

Например, вы можете использовать команду Ansible:

ansible -m command -a "ceph -s" ceph_mon[0]

В работоспособном кластере должно быть три активных OSD и монитор в кворуме.

Для развертывания в производственном окружени используйте выделенные узлы Ceph с соответствующими устройствами хранения, резервированием и проектированием доменов отказоустойчивости, см. Пример настройки Ceph в рабочем окружении.

Enabling Ceph dashboard

The ceph-mgr role installs ceph-mgr-dashboard and enables the dashboard module by default, but does not finish configuring it. The steps below complete the setup.

Run the ceph commands on a monitor host (aio1 on an all-in-one or ceph-mon container) as a user with the cluster admin keyring.

  1. Configure the module. The simplest option is plain HTTP, which leaves dashboard traffic (including the admin login) unencrypted and is only suitable on a trusted network:

    # ceph config set mgr mgr/dashboard/ssl false
    

    Operators who require encryption can instead keep SSL enabled and load a certificate (self-signed or their own):

    # ceph config set mgr mgr/dashboard/ssl true
    # ceph config-key set mgr/dashboard/crt -i dashboard.crt
    # ceph config-key set mgr/dashboard/key -i dashboard.key
    
  2. Restart the module to apply the change:

    # ceph mgr module disable dashboard
    # ceph mgr module enable dashboard
    
  3. Create a dashboard user. Recent releases require the password from a file via -i. Use administrator for full access or read-only for a view-only account:

    # echo 'SecretPassword' > /tmp/dash_pw
    # ceph dashboard ac-user-create admin -i /tmp/dash_pw administrator
    # shred -u /tmp/dash_pw
    
  4. Expose the dashboard through the load balancer by adding an HAProxy service in /etc/openstack_deploy/user_variables.yml (match haproxy_port to the port set above):

    haproxy_extra_services:
      - haproxy_service_name: ceph-dashboard
        haproxy_backend_nodes:
          - name: "{{ groups[mon_group_name][0] }}"
            ip_addr: "{{ hostvars[groups[mon_group_name][0]]['ansible_facts']['br_storage']['ipv4']['address'] }}"
        haproxy_port: 8443
        haproxy_balance_type: http
    
  5. Apply it with:

    # openstack-ansible openstack.osa.haproxy -t haproxy-config
    

The dashboard is then reachable on the external load balancer address, for example http://<external_lb_vip_address>:8443 (use https if SSL was left enabled). Log in with the account created above.