Установка и настройка узла хранилища

Установка и настройка узла хранилища

Этот раздел описывает как установить и настроить узлы хранилища для сервиса блочных хранилищ. Для простоты данный мануал рассматривает один узел хранилища с пустым локальным блочным устройством. Данная инструкция использует /dev/sdb, но вы можете заменить другим значением, подходящим конкретному узлу.

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

Предварительные требования

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

Примечание

Выполните следующие шаги на узле хранилища.

  1. Установите пакеты служебной утилиты:

    • Установите пакеты LVM:

      # yum install lvm2
      
    • Запустите сервис метаданных LVM и настройте его автоматический запуск при загрузке системы:

      # systemctl enable lvm2-lvmetad.service
      # systemctl start lvm2-lvmetad.service
      

    Примечание

    Некоторые дистрибутивы включают LVM по умолчанию.

  2. Создайте /dev/sdb физический LVM диск:

    # pvcreate /dev/sdb
    
    Physical volume "/dev/sdb" successfully created
    
  3. Создайте ``cinder-volumes``группу дисков LVM:

    # vgcreate cinder-volumes /dev/sdb
    
    Volume group "cinder-volumes" successfully created
    

    Служба Блочного Хранения будет создавать логические диски в этой группе дисков.

  4. Только инстансы могут иметь доступ к дискам блочного хранилища. Однако, нижележащая операционная система управляет устройствами, ассоциированными с дисками. По умолчанию, утилита LVM по сканированию дисков сканирует директорию /dev на наличие устройств блочных хранилищ, содержащих диски. Если проекты используют LVM на собственных дисках, то сканирующая утилита обнаружит данные диски и попытается прокэшировать их, что может привести к ряду проблем как со стороны нижележащей операционной системы, так и со стороны дисков проектов. Вы должны переконфигурировать LVM под сканирование только устройств, содержащих cinder-volumes группу дисков. Отредактируйте файл ``/etc/lvm/lvm.conf``и выполните следующие действия:

    • В разделе devices добавьте фильтр, который принимает устройство ``/dev/sdb``и отклоняет все прочие:

      devices {
      ...
      filter = [ "a/sdb/", "r/.*/"]
      

      Каждый элемент в массиве фильтров начинается с a для accept (принять) или с r для reject (отклонить) и включает регулярное выражение для имени устройства. Массив должен заканчиваться r/.*/, чтобы отклонить все остальные устройства. Вы можете использовать :command:`vgs -vvvv`для проверки фильтров.

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

      Если узлы хранилища используют LVM для диска операционной системы, нужно также добавить связанное устройство к фильтру. Например, если операционная система расположена на устройстве /dev/sda :

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

      Точно так же если узлы вычислительных ресурсов используют LVM в качестве диска операционной системы, необходимо также изменить фильтр в файле “/etc/lvm/lvm.conf” на таких узлах, чтобы он содержал в себе только диск с операционной системой. Например, если операционная система расположена на устройстве “/dev/sda” :

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

Установите и сконфигурируйте компоненты

  1. Установите пакеты:

    # yum install openstack-cinder targetcli python-keystone
    
  1. Отредактируйте файл /etc/cinder/cinder.conf и выполните следующие действия:

    • Сконфигурируйте доступ к базе данных в разделе [database]:

      [database]
      # ...
      connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder
      

      Замените ``CINDER_DBPASS `` паролем, который вы выбрали для базы данных блочных хранилищ.

    • В разделе [DEFAULT] настройте доступ к RabbitMQ очереди сообщений:

      [DEFAULT]
      # ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      Замените RABBIT_PASS паролем, который вы выбрали для openstack аккаунта в RabbitMQ.

    • Настройте доступ к идентификатору в разделах [DEFAULT] и [keystone_authtoken]:

      [DEFAULT]
      # ...
      auth_strategy = keystone
      
      [keystone_authtoken]
      # ...
      auth_uri = http://controller:5000
      auth_url = http://controller:35357
      memcached_servers = controller:11211
      auth_type = password
      project_domain_name = default
      user_domain_name = default
      project_name = service
      username = cinder
      password = CINDER_PASS
      

      Замените ``CINDER_PASS `` паролем, который вы выбрали для пользователя ``cinder `` в идентификаторе.

      Примечание

      Закомментируйте или удалите любые другие опции в разделе [keystone_authtoken].

    • В разделе “[DEFAULT]” задайте опцию “my_ip”:

      [DEFAULT]
      # ...
      my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      

      Замените MANAGEMENT_INTERFACE_IP_ADDRESS IP адресом управляющего сетевого интерфейса на вашем узле хранилища, обычно это 10.0.0.41 для первого узла в архитектуре примера.

    • In the [lvm] section, configure the LVM back end with the LVM driver, cinder-volumes volume group, iSCSI protocol, and appropriate iSCSI service. If the [lvm] section does not exist, create it:

      [lvm]
      volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
      volume_group = cinder-volumes
      iscsi_protocol = iscsi
      iscsi_helper = lioadm
      
    • Включите LVM бэкенд в разделе [DEFAULT]:

      [DEFAULT]
      # ...
      enabled_backends = lvm
      

      Примечание

      Имена бэкендов являются произвольными. К примеру, данный мануал использует имя драйвера в качестве имени бэкенда.

    • Настройте расположение для API сервиса управления образами в разделе [DEFAULT]:

      [DEFAULT]
      # ...
      glance_api_servers = http://controller:9292
      
    • Настройте путь до файлов локов в разделе [oslo_concurrency]:

      [oslo_concurrency]
      # ...
      lock_path = /var/lib/cinder/tmp
      

Завершите установку

  • Запустите сервис дисков Блочного хранения, включая его зависимости, и настройте их автоматический запуск при загрузке системы:

    # systemctl enable openstack-cinder-volume.service target.service
    # systemctl start openstack-cinder-volume.service target.service
    
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.