Глава 9. Включение Ceph в состав OpenStack

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

В данной главе мы рассмотрим следующие темы:

  • Введение в OpenStack

  • Ceph - наилучшее соответствие для OpenStack.

  • Создание среды OpenStack

  • Интеграция Ceph и OpenStack

 Введение в OpenStack

OpenStack является свободной платформой программного обеспечения с открытым исходным кодом, для построения и управления общедоступными и частными облачными вычислительными платформами. Она управляется независимой некоммерческой организацией, известной как фонд OpenStack. Она имеет наибольшее и самое активное сообщество, поддерживаемое такими технологическими гигантами как HP, Red Hat, Dell, Cisco, IBM, Rackspace и многими, многими другими. Основная идея OpenStack для облака заключается в том, что оно должно быть простым для реализации и массивно масштабируемым.

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

OpenStack предоставляет платформу уровня предприятия класса инфраструктура-как-служба (IaaS, Infrastructure-as-a-service) для всех ваших облачных потребностей. Ниже приводится архитектура OpenStack:


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

  • Nova: Это вычислительная часть которая разработана для управления и автоматизации пулов вычислительных ресурсов и может работать с различными технологиями виртуализации, такими как QEMU/KVM, Xen, Hyper-V, VMware, bare metal и контейнеры Linux.

  • Swift: Обеспечивает OpenStack возможности хранилища объектов.

  • Cinder: Компонента блочного хранения, предоставляющая постоянно хранимые тома для экземпляров OpenStack.

  • Glance: Служба образов для OpenStack, которая делает развертывание виртуальных машин легким и быстрым.

  • Neutron: Компонента сетевой среды для OpenStack.

  • Horizon: Инструментальная панель управления OpenStack.

  • Keystone: Предоставляет службу идентификации для OpenStack, а также управляет аутентификацией в OpenStack.

  • Ceilometer: Обеспечивает службы телеметрии OpenStack и позволяет провайдерам облаков службы выписки счетов и прогнозирования трафика (billing), а также автоматического масштабирования.

  • Heat: Компонента координации (orchestration) в OpenStack.

[Замечание]Замечание

Для получения дополнительной информации по OpenStack посетите http://www.openstack.org/.

 Ceph - наилучший выбор для OpenStack

В последние несколько лет OpenStack приобрела удивительную популярность, поскольку она полностью определяется программным обеспечением, вне зависимости от того, используется ли она для вычислений, коммуникаций или даже для хранения. Когда вы обсуждаете о хранении для OpenStack, Ceph получает все преимущества. Ceph предоставляет устойчивую, надежную основу хранения, которую ищет OpenStack. Он бесшовно интегрируется с такими компонентами OpenStack, как Cinder, Glance, Nova и keystone, что обеспечивает всю-в-одном основу облачного хранилища для OpenStack. Перечислим некоторые ключевые преимущества, которые делают Ceph лучшим выбором для OpenStack.

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

  • Ceph является единым решением хранения блоков, файлов и объектов для OpenStack, позволяя приложениям использовать хранилище так, как им нужно.

  • Ceph предоставляет расширенные возможности блочного хранения для облаков OpenStack, которые включают легкое-и-быстрое раскручивание, резервирование и клонирование виртуальных машин.

  • Он предоставляет экземплярам OpenStack постоянно хранимые тома по умолчанию, которые способны работать как обычные серверы, в которых данные не очищаются при перезагрузке виртуальных машин.

  • Ceph поддерживает возможность для OpenStack быть независимой от хостов путем обеспечения миграции виртуальных машин и расширения масштабов компонент хранилища без влияния на виртуальные машины.

  • Он предоставляет функционал моментальных снимков томам OpenStack, которые также могут использоваться как средство для резервирования.

  • Возможности Ceph по клонированию в режиме копирования при записи (copy-on-write) позволяет OpenStack раскручивать множество экземпляров за один раз, что помогает большим временным затратам механизма инициализации.

  • Ceph поддерживает богатые интерфейсы хранения объектов совместимые как с Swift, так и с S3.

Сообщества Ceph и OpenStack тесно работают на протяжении последних лет, чтобы сделать интеграцию более бесшовной, а также использовать новые свойства, которые они запускают. В будущем мы ожидаем, что OpenStack и Ceph станут еще ближе друг другу, благодаря приобретению фирмой Red Hat Inktank, компании, поддерживающей Ceph, поскольку Red Hat является одним из основных участников проекта OpenStack.

 Создание среды для тестирования OpenStack

В данном разделе мы развернем тестовую среду OpenStack с одним узлом, которая позже в данной главе будет использована для интеграции с Ceph. Для развертывания OpenStack мы будем использовать дистрибутив OpenStack Red Hat, называемый RDO, который является версией OpenSatck сообщества открытого кода Red Hat. Для получения дополнительной информации по RDO OpenStack посетите http://openstack.redhat.com/.

 Наладка машины OpenSatck

Для выполнения установки OpenStack с одним узлом, мы создадим виртуальную машину с именем os-node1. Нам нужно установить операционную систему на этой новой виртуальной машине. В нашем случае мы установим CentOS 6.4; если вы пожелаете, вы также можете выбрать любую другую операционную систему на основе RHEL вместо CentOS. Выполните следующие шаги:

  1. Создайте новую виртуальную машину VirtualBox для установки OpenStack:

    # VboxManage createvm --name os-node1 --ostype RedHat_64 --register
    # VBoxManage modifyvm os-node1 --memory 4096 --nic1 nat -- nic2 hostonly --hostonlyadapter2 vboxnet1
    # VBoxManage storagectl os-node1 --name "IDE Controller" --add ide --controller PIIX4 --hostiocache on --bootable on
    # VBoxManage storageattach os-node1 --storagectl "IDE Controller" --type dvddrive --port 0 --device 0 --medium CentOS-6.4-x86_64-bin-DVD1.iso
    [Замечание]Замечание

    Вы должны указать правильный абсолютный путь к ISO- файлу с CentOS в параметре --medium для приведенной выше команды.

    # VBoxManage storagectl os-node1 --name "SATA Controller" --add sata --controller IntelAHCI --hostiocache on --bootable on
    # VBoxManage createhd --filename OS-os-node1.vdi --size 10240
    # VBoxManage storageattach os-node1 --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium OS-osnode1.vdi 
    # VBoxManage startvm os-node1 --type gui
  2. Когда виртуальная машина создана и запущена, установите операционную систему CentOS, следуя документации по установке ОС, доступной на https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/index.html. В процессе установки обеспечьте для хоста имя os-node1.

  3. Когда вы успешно установите операционную систему, измените настройки сети этой машины. Убедитесь, что вы редактируете файл с правильным именем сетевого устройства; в нашем случае сетевыми устройствами являются eth2 и eth3 (существует вероятность, что имена устройств могут изменить свои названия в вашей среде, однако это не должно создать проблем). Когда файлы настройки сетевых устройств отредактированы, перезапустите сетевые службы. Выполните следующие шаги для изменения настройки сети:

    • Измените файл /etc/sysconfig/network-scripts/ifcfg-eth2 и добавьте:

      
      ONBOOT=yes
      BOOTPROTO=dhcp
    • Измените файл /etc/sysconfig/network-scripts/ifcfg-eth3 и добавьте:

      
      ONBOOT=yes
      BOOTPROTO=static
      IPADDR=192.168.57.201
      NETMASK=255.255.255.0

      Измените файл /etc/hosts и добавьте:

      
      192.168.57.101 ceph-node1
      192.168.57.102 ceph-node2
      192.168.57.103 ceph-node3
      192.168.57.200 ceph-client1
      192.168.57.201 os-node1
  4. Убедитесь, что новый узел, os-node1, может взаимодействовать с узлами кластера Ceph:

    # ping ceph-node1
    # ping ceph-node2
    # ping ceph-node3
  5. Поскольку данная установка предназначена для тестирования, вам следует запретить межсетевой экран и установить selinux в permissive чтобы избежать усложнений:

    # setenforce 0
    # service iptables stop

 Установка OpenSatck

В данном разделе мы представим вам пошаговую инструкцию для установки редакции Icehouse OpenStack RDO. Если вам интересно ознакомиться с установкой RDO OpenStack, посетите http://openstack.redhat.com/Quickstart

  1. Обновите текущие пакеты операционной системы чтобы избежать предостережения/ошибки вызванные несовместимостью версий пакетов:

    # yum update -y
  2. Установите пакеты RDO:

    # yum install -y https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm
  3. Установите пакеты OpenStack packstack:

    # yum install -y openstack-packstack
  4. Наконец запустите установку компонентов OpenStack с использованием packstack, который выполнит абсолютно свободную от ручной работы установку OpenStack:

    # packstack --allinone
    Applying 10.0.2.15_ring_swift.pp
    10.0.2.15_ring_swift.pp:                             [  DONE ]
    Applying 10.0.2.15_swift.pp
    Applyi ng 10.0.2.15_provision_demo.pp
    10.0.2.15_swift.pp:                                  [  DONE ]
    10.0.2.15_provision_demo.pp:                         [  DONE ]
    Applying 10.0.2.15_mongodb.pp
    10.0. 2.15_mongodb.pp:                               [  DONE ]
    Applying 10.0.2.15_ceilometer.pp
    Applying 10.0.2.15_nagios.pp
    Applyi ng 10.0.2.15_nagios_nrpe.pp
    10.0.2.15_ceilometer.pp:                             [  DONE ]
    10.0.2.15_nagios.pp:                                 [  DONE ]
    10.0.2.15_nagios_nrpe.pp:                            [  DONE ]
    Applying 10.0.2.15_postscript.pp
    10.0. 2.15_postscript.pp:                            [  DONE ]
    Applying Puppet manifests                            [  DONE ]
    Finalizing                                           [  DONE ]
    
      **** Installation completed successfully ******
  5. После того, как packstack выполнит установку, он отобразит некоторую дополнительную информацию, включающую URL инструментальной панели OpenStack Horizon и полномочия, которые могут быть использованы для работы с OpenStack:

    Additional information:
     * A new answerfile was created in: /root/packstack-answers-20140823-195321.txt
     * Time synchronization installation was skipped. Please note that unsynchronized time on s
    erver instances might be problem for some OpenStack components.
     * File /root/keystonerc_admin has been created on OpenStack client host 10.0.2.15. To use
    the command line tools you need to source the file.
     * To access the OpenStack Dashboard browse to http://10.0.2.15/dashboard .
    Please, find your login credentials stored in the keystonerc_admin in your home directory.
     * To use Nagios, browse to http://10.0.2.1S/nagios username: nagiosadmin, password: bd9321
    71484e4e16
     * Because of the kernel update the host 10.0.2.15 requires reboot.
     * The installation log file is available at: /var/tmp/packstack/20140823-195320-YSt3Kn/ope
    nstack-setup.log
     * The generated manifests are available at: /var/tmp/packstack/20140823-195320-YSt3Kn/mani
    fests
    [root@os-node1 ~]#
  6. Полномочия для регистрации с учетной записью администратора будут сохранены в файле /root/keystone_rc

    [root@os-node1 ~]# cat /root/keystonerc_admin
    export OS_USERNAME=admin
    export OS_TENANT_NAME=admin
    export OS_PASSWORD=1da01eb3782e4b88
    export OS_AUTH_URL=http://10.0.2.15:5000/v2.0/
    export PSl='[\u@\h \W(keystone_admin)]\$ '
    [root@os-node1 ~]#
  7. Наконец откроем веб браузер, в строк навигации введем URL инструментальной панели OpenStack Horizon и применим полномочия пользователя с правами администратора:


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


 Применение Ceph в OpenStack

OpenStack является модульной системой, которая имеет уникальные компоненты для конкретного набора задач. Существуют определенные компоненты, которым необходимы надежные системы хранения данных, подобные Ceph и расширяют полную интеграцию с ними, как это показано на следующем рисунке. Каждый из этих компонентов использует Ceph своим собственным способом для хранения блочных устройств и объектов. Большинство облачных реализаций, основанных на OpenStack и Ceph, используют Cinder, Glance и Swift, интегрированные с Ceph. Интеграция keystone используется когда вам нужно S3- совместимое хранилище объектов на системе хранения Ceph. Интеграция Nova делает возможной загрузку с томов со способностями Ceph для вашего облака OpenStack.


 Установка Ceph на узел OpenStack

Узлы OpenStack должны быть клиентами Ceph, чтобы быть способными осуществлять доступ к кластеру Ceph. Для этого установите пекеты Ceph на узлы OpenStack и убедитесь, что они могут осуществлять доступ к кластерам Ceph:

  1. Чтобы установить пакеты Ceph на узлы OpenStack, воспользуйтесь утилитой ceph-deploy с любого из узлов мониторов Ceph. В нашем случае мы используем ceph-node1 для установки пакетов Ceph с применением инструментария ceph-deploy:

    # ceph-deploy install os-node1
  2. Используйте ceph-deploy для копирования колец ключей клиентов Ceph с правами администраторов на узлы OpenStack:

    # ceph-deploy admin os-node1
  3. Проверьте кольцо ключей Ceph и файл настройки в /etc/ceph на узле OpenStack и попытайтесь соединиться с кластером:

    [root@os-node1 ~]# ls -l /etc/ceph
    total 12
    -rw-r—-r—-. 1 root root 137 Aug 24 00:25 ceph.client.admin.keyring
    -rw-r—-r-—. 1 root root 573 Aug 24 00:25 ceph.conf
    -rwxr-xr-x. 1 root root  92 Jul 30 04:36 rbdmap
    [root@os-node1 -]#
    [root@os-node1 -]# ceph -s
        cluster 07a92ca3-347e-43db-87ee-e0a0a9f89e97
         health HEALTH_OK
         monmap e3: 3 mons at {ceph-node1=192.168.57.101:6789/0fceph-node2=192.168.57.102:6789/0,
    ceph-node3=192.168.57.103:6789/0}, election epoch 1060, quorum 0,1,2 ceph-node1,ceph-node2,ce
    ph-node3
         mdsmap e96: 1/1/1 up {0=ceph-node2=up:active}
         osdmap e869: 9 osds: 9 up, 9 in
          pgmap v4931: 1536 pgs, 13 pools, 1352 kB data, 2650 objects
                509 MB used, 82335 MB / 82844 MB avail
                    1536 active+clean
    [root@os-node1 ~]#

 Настройка Ceph для работы с OpenStack

На данный момент времени ваш узел OpenStack ceph-node1 может соединяться с вашим кластером. Теперь мы настроим Ceph для OpenStack. Чтобы сделать это, выполните следующие команды с ceph-node1, если специально не оговорен другой узел:

  1. Создайте выделенные пулы Ceph для OpenStack Cinder и Glance. Убедитесь в использовании надлежащего числа групп размещения для вашей среды:

    # ceph osd pool create volumes 128
    # ceph osd pool create images 128
  2. Создайте нового пользователя для Cinder и Glance чтобы использовать аутентификацию cephx:

    # ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes,allow rx pool=images'
    # ceph auth get-or-create client.glance mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=images'
  3. Создайте файлы колец ключей для созданных новых пользователей client.cinder и client.glance и предоставьте им доступ в качестве пользователей OpenStack Cinder и Glance:

    # ceph auth get-or-create client.cinder | tee /etc/ceph/ceph.client.cinder.keyring
    # chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
    # ceph auth get-or-create client.glance | tee /etc/ceph/ceph.client.glance.keyring
    # chown glance:glance /etc/ceph/ceph.client.glance.keyring
    [Замечание]Замечание

    Проверьте что файл /etc/ceph/ceph.conf имеет полномочия на чтение для пользователей Cinder. Обычно он должен иметь полномочия 644.

  4. Процесс libvirt требует доступа к кластеру Ceph при подключении и отключении блочных устройств от Cinder и создании временной копии ключа client.cinder который будет добавлен к libvirt на следующем шаге:

    # ceph auth get-key client.cinder | tee /tmp/client.cinder.key
  5. Добавьте ключ безопасности libvirt и удалите временную копию ключа client.cinder:

    1. Создайте UUID:

      # uuidgen
    2. Создайте файл безопасности со следующим содержанием и убедитесь, что вы используете UUID, который вы сгенерировали на предыдущем этапе:

      
      cat > secret.xml <<EOF
      <secret ephemeral='no' private='no'>
       <uuid>63b033bb-3305-479d-854b-cf3d0cb6a50c</uuid>
       <usage type='ceph'>
       <name>client.cinder secret</name>
       </usage>
      </secret>
      EOF
    3. Определите ключ и храните значение ключа в безопасности. Нам потребуется это секретное значения на последующих шагах:

      # virsh secret-define --file secret.xml
      [root@os-node1 ceph]# uuidgen
      63b033bb-3305-479d-854b-cf3d0cb6a50c
      [root@os-node1 ceph]#
      [root@os-node1 ceph]# cat > secret.xml «EOF
      > <secret ephemeral='no' private='no'>
      >   <uuid>63b033bb-3305-479d-854b-cf3d0cb6a50c</uuid>
      >   <usage type='ceph'>
      >     <name>client.cinder secret</name>
      >   </usage>
      > </secret>
      > EOF
      [root@os-node1 ceph]# virsh secret-define -—file secret.xml
      Secret 63b033bb-3305-479d-854b-cf3d0cb6a50c created
      [Замечание]Замечание

      Ключ безопасности, созданный на этом шаге обычно тот же, что и UUID.

    4. Установите значение ключа и удалите временные файлы.Удаление файлов не является обязательным; это делается только для очистки сситемы:

      # virsh secret-set-value --secret 63b033bb-3305-479d-854bcf3d0cb6a50c --base64 $(cat /tmp/client.cinder.key) && rm/tmp/client.cinder.key secret.xml
      [root@os-node1 ceph]# virsh secret-set-value -—secret 63b033bb-3305-479d-854b-cf3d0cb6a50c -—base64 $(cat
      /tmp/client.cinder.key) && rm /tmp/client.cinder.key secret.xml
      Secret value set
      
      rm: remove regular file '/tmp/client.cinder.key'? y
      rm: remove regular file secret.xml'? y
      [root@os-node1 ceph]#
 Настройка Cinder OpenSatck

В настоящий момент времени мы завершили настройку с точки зрения Ceph. Дальше мы выполним настройку компонентов OpenStack Cinder, Glance и Nova для использования Ceph. Cinder поддерживает множество систем хранения. Чтобы настроить Cinder для использования Ceph измените файл настройки Cinder и определите драйвер RBD,который должен будет использовать OpenStack Cinder.

Чтобы сделать это вы должны также определить имя пула, который мы создали для томов Cinder ранее. На своем узле OpenStack отредактируйте файл /etc/cinder/cinder.conf и внесите следующие изменения:

  1. Дойдите до раздела Options defined in cinder.volume.manager в файле /etc/cinder/cinder.conf и добавьте драйвер RBD для Cinder:

    
    volume_driver=cinder.volume.drivers.rbd.RBDDriver
  2. Дойдите до раздела Options defined in cinder.volume.drivers.rbd в файле /etc/cinder/cinder.conf и добавьте (замените UUID безопасности на значение вашего окружения) следующим:

    
    rbd_pool=volumes
    rbd_user=cinder
    rbd_ceph_conf=/etc/ceph/ceph.conf
    rbd_flatten_volume_from_snapshot=false
    rbd_secret_uuid=63b033bb-3305-479d-854b-cf3d0cb6a50c
    rbd_max_clone_depth=5
  3. Дойдите до раздела Options defined in cinder.common.config в файле /etc/cinder/cinder.conf и добавьте:

    
    glance_api_version=2
    [Замечание]Замечание

    Если вы используете множество систем хранения, данный параметр должен быть помещен в раздел [default] файла /etc/cinder/cinder.conf.

  4. Сохраните файл настройки Cinder и выйдите из редактора.

 Настройка Nova OpenSatck

Чтобы загрузить экземпляры OpenStack непосредственно в Ceph, т.е. загрузиться с применением свойств тома, вы должны настроить эфемерное устройство хранения для Nova. Чтобы успешно выполнить это измените /etc/nova/nova.conf:

  1. Дойдите до раздела Options defined in nova.virt.libvirt.imagebackend и добавьте:

    
    images_type=rbd
    images_rbd_pool=rbd
    images_rbd_ceph_conf=/etc/ceph/ceph.conf
  2. Дойдите до раздела Options defined in nova.virt.libvirt.volume и добавьте (замените UUID безопасности значением вашей среды):

    
    rbd_user=cinder
    rbd_secret_uuid=63b033bb-3305-479d-854b-cf3d0cb6a50c
 Настройка Glance OpenSatck

OpenSatck Glance способен поддерживать множество систем хранения. В данном разделе мы научимся настраивать OpenSatck Glance использовать Ceph для хранения образов Glance:

  1. Чтобы использовать блочное устройство Ceph для хранения образов Glance измените файл /etc/glance/glance-api.conf и добавьте:

    • Предложение default_store=rbd для раздела default в файле glance-api.conf

    • Дойдите до раздела RBD Store Options в файле glance-api.conf и добавьте:

      
      rbd_store_user=glance
      rbd_store_pool=images
    • Если у вас существует необходимость в копировании при записи (copy-on-write {Прим. пер.: при изменении новых данных эти данные вначале копируются в новую область}), установите show_image_direct_url=True

  2. Сохраните файл настройки Glance и выйдите из редактора.

 Перезапуск служб OpenStack

Чтобы изменения вступили в силу вы должны перезапустить службы OpenStack с применением следующих команд:

# service openstack-glance-api restart
# service openstack-nova-compute restart
# service openstack-cinder-volume restart
 Тестирование Cinder OpenSatck

Вы можете работать с Cinder с применением CLI или GUI. Сейчас мы протестируем Cinder из каждого из этих интерфейсов.

 Применение Cinder CLI

Выполните следующие шаги:

  1. Получите исходный код файла OpenStack RDO keystonerc_admin, который будет автоматически создан объявлением установки OpenStack:

    # source /root/keystonerc_admin
  2. Создайте ваш первый том Cinder с объемом 10ГБ, который должен быть создан на вашей системе хранения Ceph по умолчанию:

    # cinder create --display-name ceph-volume01 --displaydescription "Cinder volume on CEPH storage" 10
    [root@os-node1 ~(keystone_admin)]# cinder create —-display-name ceph-volume01 —display-description "Cinder volume on CEPH storage" 10
    +------------------------------------------------------------+
    |       Property      |                value                 |
    +---------------------+--------------------------------------+
    |     attachments     |                  []                  |
    |  availability_zone  |                 nova                 |
    |       bootable      |                false                 |
    |      created at     |      2014-O8-24TO0:09:48.299357      |
    | display_description |    Cinder volume on CEPH storage     |
    |     display.name    |            ceph-volume01             |
    |      encrypted      |                False                 |
    |          id         | 00a90cd9-c2ea-4154-b045-6a837ac343da |
    |       metadata      |                  {}                  |
    |         size        |                  10                  |
    |     snapshot_id     |                 None                 |
    |     source_volid    |                 None                 |
    |      status         |               creating               |
    |     volume_type     |                 None                 |
    +---------------------+--------------------------------------+
    
    [root@os-node1 ~(keystone_admin)]#
  3. Пока OpenStack Cinder создает ваш том, вы можете осуществить мониторинг вашего кластера с помощью #ceph -s, где вы пронаблюдаете за операциями записи в кластере.

  4. Наконец, проверьте состояние вашего тома Cinder; убедитесь, что состояние вашего тома Cinder является available:

    # cinder list
    [rootgos-node1 ~(keystone_admin)j#
    [root@os-node1 ~(keystone_admin)]# cinder list
    +--------------------------------------+-----------+---------------+------+-------------+-----------+-------------+
    |                  ID                  |   Status  |  Display Name | Size | volume Type | Bootable  | Attached to |
    +--------------------------------------+-----------+---------------+------+-------------+-----------+-------------+
    I 00a90cd9-c2ea-4154-b045-6a837ac343da | available | ceph-volumeOl |  10  |     None    |  false    |             |
    +--------------------------------------+-----------+---------------+------+-------------+-----------+-------------+
    [rootgos-node1 ~(keystone_admin)j#
 Применение GUI Horizon

Вы можете создавать тома Cinder и управлять ими из инструментальной панели Horizon. Откройте веб интерфейс OpenStack Horizon и найдите раздел томов:

  1. Кликните на Create volume и заполните поля подробностей о томе:


  2. Когда вы создадите том из GUI Horizon, он отобразит состояние ваших томов:


  3. Наконец проверьте ваш пул томов Ceph; вы можете найти объекты в вашем пуле Ceph, содержащем том с ID. Например, вы можете идентифицировать имя объекта, а именно rbd_id.volume-00a90cd9-c2ea-4154-b045-6a837ac343da для тома Cinder c именем ceph-volume01, имеющий идентификатор 00a90cd9-c2ea-4154-b045-6a837ac343da в пуле томов Ceph:

    [root@os-node1 ~(keystone_admin)]# cinder list
    +--------------------------------------+-----------+---------------+------+-------------+----------+-------------+
    |                  ID                  |   Status  |  Display Name | Size | volume Type | Bootable | Attached to |
    +--------------------------------------+-----------+---------------+------+-------------+----------+-------------+
    | 00a90cd9-c2ea-4154-b045-6a837ac343da | available | ceph-volume01 |  10  |     None    |  false   |             |
    | ce8bl344-80d8-42d6-8e22-8c4dl7abcfeb | available | ceph-volume02 |  10  |     None    |  false   |             |
    +--------------------------------------+-----------+---------------+------+-------------+----------+-------------+
    [root@os-node1 ~(keystone_admin)]#
    [root@os-node1 ~(keystone_admin)]# rados -p volumes ls
    rbd_di rectory
    rbd_header.4c381910a0d0
    rbd_header.4a885399b49f
    rbd_id.volume-ce8b1344-80d8-42d6-8e22-8c4d17abcfeb
    rbd_id.volume-00a90cd9-c2ea-4154-b045-6a837ac343da
    [root@os-nodel -(keystone_admi n)]#
  4. Вы можете подключать эти тома к экземплярам виртуальных машин OpenStack как блочные хранилища и осуществлять к ним доступ на основе ваших потребностей.

 Тестирование Glance OpenSatck

Вы можете использовать OpenStack Glance для хранения образов операционных систем для экземпляров. Эти образы в конечном итоге будут сохраняться в системе хранения Ceph.

Выполните следующие шаги для тестирования OpenStack Glance:

  1. Перед добавлением образа Glance проверьте пул образов Ceph. Поскольку мы не импортировали никакие образы, пул Ceph должен быть пустым:

    # rados -p images ls
  2. Загрузите образы, которые могут быть использованы в OpenStack через интернет:

    # wget http://cloud-images.ubuntu.com/precise/current/preciseserver-cloudimg-amd64-disk1.img
    [root@os-node1 glance(keystone_admin)]# wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloodimg-ajnd64-diskl.img
    --2014-08-26 19:39:26-- http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
    Resolving cloud-images.ubuntu.com... 91.189.88.141
    connecting to cloud-images.ubuntu.com|91.189.88.1411:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 261227008 (249M) [application/octet-stream]
    Saving to: “precise-server-cloudimg-and64-diskl.img”
    100%[=============================================================================================>) 261.227.008 6.46M/s in 52s
    2014-08-26 19:40:19 (4.76 mb/s) - “precise-server-cloudimg-amd64-disk1.img” saved [261227008/261227008]
    
    [root@os-node1 glance(keystone_admin)]#
  3. Создайте образ Glance:

    # glance image-create --name=&ubuntu-precise-image& --ispublic=True --disk-format=qcow2 --container-format=ovf < precise-server-cloudimg-amd64-disk1.img
    
    [root@os-node1 glance(keystone_admin)]# glance image-create -—name="ubuntu-precise-image" -—is-public=True
    -—disk-format=qcow2 —-container-format=ovf  <  precise-server-cloudimg-amd64-disk1.img
    +-------------------+--------------------------------------+
    | Property          | Value                                |
    +-------------------+--------------------------------------+
    | checksum          | 23034c4e06f9f012099d61d4a4e5248d     |
    | container_format  | ovf                                  |
    | created_at        | 2014-08-26T16:49:33                  |
    | deleted           | False                                |
    | deleted_at        | None                                 |
    | disk_format       | qcow2                                |
    | id                | 249cc4be-474d-4137-80f6-dc03f77b3d49 |
    | is_public         | True                                 |
    | min_disk          | 0                                    |
    | min_ram           | 0                                    |
    | name              | ubuntu-precise-image                 |
    | owner             | a84af521b50f41bba704f8dc0e1ae15d     |
    | protected         | False                                |
    | size              | 261227008                            |
    | status            | active                               |
    | updated_at        | 2014-08-26T16:50:18                  |
    | virtual_size      | None                                 |
    +-------------------+--------------------------------------+
    [root@os-node1 glance(keystone_admin)]#
  4. Проверьте список образов Glance,а также сделайте запрос к вашему пулу образов Ceph для получения идентификаторов образов Glance:

    
    # glance image-list
    # rados -p images ls | grep -i 249cc4be-474d-4137-80f6-dc03f77b3d49
    [root@os-node1 glance(keystone_admin)]# glance image-list
    +----------------------------------------+----------------------+-------------+------------------+------------+---------+
    | ID                                     | Name                 | Disk Format | Container Format | Size       |  Status |
    +----------------------------------------+----------------------+-------------+------------------+------------+---------+
    I dll84d23-b568-49f2-9aa7-le4d2e915224   | cirros               | qcow2       | bare             | 13147648   |  active |
    | 249cc4be-474d-4137-80f6-dc03f77b3d49   | ubuntu-precise-image | qcow2       | ovf              | 261227008  |  active |
    +----------------------------------------+---------------------+-------------+-------------------+------------+---------+
    [root@os-node1 glance(keystone_admin)]#
    [root@os-node1 glance(keystone_admin)]# rados -p images ls | grep -i 249cc4be-474d-4137-80f6-dc03f77b3d49
    rbd_id.249cc4be-474d-4137-80f6-dc03f77b3d49
    [root@os-node1 glance(keystone_admin)]#
  5. Вывод предыдущей команды подтверждает, что мы импортировали образ Ubuntu в OpenStack Glance, который был сохранен в томах образов Ceph.

 Заключение

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