4.3.3. Использование дискового поля (SAN)

В этом примере используется настройка Cinder с использованием SAN Huawei OceanStor Dorado 6000 V6. Для настройки другой SAN необходимо обратиться к официальной документации на продукт соответствующего вендора.

Для настройки СХД (дискового поля) с использованием FC внесите изменения в конфигурационный файл шаблона, используемый для настройки бэкэнда – /etc/cinder/cinder.conf. Также, создайте файл настройки драйвера Huawei – /etc/cinder/cinder_huawei_conf.xml. Примеры содержимого этих файлов приведены ниже.

4.3.3.1. Файл настройки бэкэнда /etc/cinder/cinder.conf

Добавьте секцию параметров привязки службы Cinder к хранилищу ([huawei_backend]) и укажите её использование в секции DEFAULT, с помощью параметра „enabled_backends =“:

[DEFAULT]

enabled_backends = huawei_backend
...

[huawei_backend]
volume_backend_name = huawei_backend
volume_driver = cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
retain_storage_mapping = False

4.3.3.2. Файл настройки драйвера /etc/cinder/cinder_huawei_conf.xml

Обратите внимание, что файл cinder_huawei_conf.xml должен быть создан с правами на запись для группы Cinder.

Значения параметров „UserName“ и „UserPassword“ в секции <Storage> задаются в явном виде.

<config>
        <Storage>
           <Product>Dorado</Product>
           <Protocol>FC</Protocol>
           <UserName>tionix</UserName>
           <UserPassword>!$$$HGGFUaW9rrXg0Mg</UserPassword>
           <RestURL>https://IP_ADDRESS:8088/deviceManager/rest/</RestURL>
        </Storage>
        <LUN>
            <LUNType>Thin</LUNType>
            <StoragePool>tionix_pool</StoragePool>
            <LUNCopySpeed>3</LUNCopySpeed>
        </LUN>
</config>

Примечания.

После первичной инициализации драйвера эти значения будут отредактированы и записаны в файл c помощью кодировки base64.

Конфигурационные файлы бэкэнда (cinder*) находятся в директории /etc/cinder.

Конфигурационные файлы службы Nova находятся в директории /etc/nova.

Внимание.

Если соответствующих прав не будет, то драйвер (Huawei Cinder Driver) не будет инициализирован.

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

После изменения настроек (cinder.conf и др.) перезапустите службу Cinder. Выполните команду:

systemctl restart openstack-cinder-*

4.3.4. Включение multipathing

В случае использования FibreChannel требуется модифицировать файл multipathd.conf, определяющий использование двух ВОЛС. Это повышает надежность канала обмена с хранилищем данных.

4.3.4.1. Настройка multipathing на вычислительных узлах (Nova)

Произведите установку необходимого пакета на всех вычислительных узлах инфраструктуры. Выполните команду (на каждом узле):

dnf install device-mapper-multipath

Активируйте сервис multipathd:

/sbin/mpathconf --enable
systemctl start multipathd.service
systemctl enable multipathd.service
systemctl restart multipathd.service

Создайте или отредактируйте файл /etc/multipath.conf. Добавьте раздел devices, содержащий описание работы с устройством:

devices {
   device {
      vendor "HUAWEI"
      product "XSG1"
      path_grouping_policy multibus
      path_checker tur
      prio const
      path_selector "service-time 0"
      failback immediate
      no_path_retry 15
  }
}

Примечания.

В примере указана конфигурация для работы с СХД Huawei (OceanStor Dorado).

Для конфигурации СХД других вендоров следует обратиться к официальной документации вендора.

После настройки конфигурации выполните команду перезапуска системной службы multipathd:

systemctl restart multipathd

Сконфигурируйте службу Nova на всех ВУ [2]. Добавьте в файл конфигурации службы – /etc/nova/nova.conf – параметр, подключающий использование multipathing [3]:

[libvirt]
...
volume_use_multipath = true

Перезапустите службу Nova на всех ВУ:

systemctl restart openstack-nova-compute

4.3.4.2. Настройка multipathing на управляющих узлах (Cinder)

Выполните шаги по настройке службы multipathd и файла /etc/multipath.conf (см. предыдущий раздел).

После успешной настройки сервиса перейдите к редактированию файла конфигурации Cinder – /etc/cinder/cinder.conf. Добавьте параметры в раздел с описанием бэкэнда Cinder, согласно примера (для Huawei):

[huawei_backend]
...
use_multipath_for_image_xfer = true
enforce_multipath_for_image_xfer = true

После изменения файла конфигурации на всех УУ выполните команду перезапуска сервиса:

systemctl restart openstack-cinder-volume

4.3.4.3. Проверка работы службы (multipathing)

После успешной настройки multipathing выполните следующую команду, для проверки статуса работы службы на всех узлах:

multipath -ll

Пример вывода:

36b46e0810052708f12345678000103e8 dm-0 HUAWEI,XSG1
size=16K features='1 queue_if_no_path' hwhandler='0' wp=ro
`-+- policy='service-time 0' prio=1 status=active
|- 5:0:0:0 sdc 8:32 active ready running
|- 5:0:1:0 sdd 8:48 active ready running
|- 5:0:2:0 sde 8:64 active ready running
|- 5:0:3:0 sdf 8:80 active ready running
|- 14:0:0:0 sdg 8:96 active ready running
|- 14:0:1:0 sdh 8:112 active ready running
|- 14:0:2:0 sdi 8:128 active ready running
`- 14:0:3:0 sdj 8:144 active ready running

4.3.4.4. Дополнительные настройки бэкэнда

Если какое-либо значение „volume_backend_name“ обращается к диску (vdisk) раньше, чем к виртуальному пулу, добавьте дополнительную опцию „hpmsa_pool_type = linear“ в эту запись (настройки бэкэнда).

Если HTTPS не включен (в дисковом массиве), добавьте „hpmsa_api_protocol = http“ в каждое определение бэкэнда.

Если включен HTTPS, то можно разрешить проверку сертификата, с помощью опции „driver_ssl_cert_verify = True“.

Также можно использовать опцию „driver_ssl_cert_path“ для указания пути к файлу CA_BUNDLE, содержащему CAs, отличные от тех, которые указаны в списке по умолчанию.

Измение секцию [DEFAULT] файла cinder.conf, чтобы добавить параметр „enabled_backends“, указывающий записи бэкэнда, а также параметр „default_volume_type“, указывающий имя типа тома, которое будет создано впоследствии.

Создайте новый тип тома для каждого неповторяющегося (distinct) значения „volume_backend_name“, которое было добавлено в файл cinder.conf.

Внимание.

После изменения настроек (в файле cinder.conf) перезапустите службу Cinder.

4.3.5. Примеры конфигурационных файлов

4.3.5.1. Файл cinder.conf

[DEFAULT]
osapi_volume_listen = 127.0.0.1
use_stderr = true
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_config = /etc/cinder/api-paste.ini
auth_strategy = keystone
glance_api_servers = https://glance.stand-1.tionixlabs.ru:9292
glance_api_version = 2
cinder_internal_tenant_project_id = cbf5c611b17c40c49805e28942c07f7a
cinder_internal_tenant_user_id = bdc2fcdaf7c04cffbc7fe317a53ee6c6
enabled_backends = hpmsa
storage_availability_zone = nova
default_availability_zone = nova
default_volume_type = hpmsa
allowed_direct_url_schemes = cinder
transport_url = rabbit://openstack:<пароль>@<IP-адрес_VIP>:5672

[hpmsa]
hpmsa_pool_name = presale-stand-3.0
volume_backend_name = hpmsa
volume_driver = cinder.volume.drivers.san.hp.hpmsa_fc.HPMSAFCDriver
san_ip = <IP-адрес_хранилища>
san_login = manage
san_password = <пароль_для_доступа_к_SAN>
driver_use_ssl = true

[database]
connection = mysql+pymysql://cinder:<пароль>@<IP-адрес_VIP>/cinder

[keystone_authtoken]
www_authenticate_uri = https://keystone.stand-1.tionixlabs.ru:5000
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
memcached_servers = <IP-адрес_VIP>:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = <пароль>
region_name = RegionOne

[nova]
interface = internal
insecure = False
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
nova_catalog_info = compute:nova:internalURL
nova_catalog_admin_info = compute:nova:adminURL
os_region_name = RegionOne
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = nova
password = <пароль>

[privsep_entrypoint]
helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf

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

[oslo_middleware]
enable_proxy_headers_parsing = true

[oslo_messaging_notifications]
driver = messagingv2

4.3.5.2. Файл glance-api.conf

[DEFAULT]
bind_host = 127.0.0.1
use_stderr = true
show_multiple_locations = True
#allowed_direct_url_schemes = cinder
show_image_direct_url = true
transport_url=rabbit://openstack:<пароль>@<IP-адрес_VIP>:5672

#[cache]
#backend = oslo_cache.memcache_pool
#enabled = True

[database]
connection = mysql+pymysql://glance:<IP-адрес_VIP>/glance

[keystone_authtoken]
www_authenticate_uri = https://keystone.stand-1.tionixlabs.ru:5000
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
memcached_servers = <IP-адрес_VIP>:11211
auth_type = password
project_domain_name = Default
user_domain_name = Default
project_name = service
username = glance
password = <пароль>

[paste_deploy]
flavor = keystone

[glance_store]
#cinder_os_region_name = RegionOne
cinder_catalog_info = volumev2:cinderv2:public
cinder_volume_type = hpmsa
stores = file,http,cinder
#filesystem_store_datadir = /var/lib/glance/images/
default_store = cinder
cinder_store_auth_address = https://keystone.test.tionix.ru:5000/v3/
#cinder_endpoint_template =  https://cinder.stand-1.tionixlabs.ru:8776/v2/cbf5c611b17c40c49805e28942c07f7a
#cinder_store_auth_address =  https://keystone.stand-1.tionixlabs.ru:5000
cinder_store_user_name = admin
cinder_store_password = <admin_pass>
cinder_store_project_name = service
#cinder_http_retries=7
#cinder_store_volume = images
rootwrap_config = /etc/glance/rootwrap.conf

4.3.5.3. Файл nova.conf

[DEFAULT]
osapi_compute_listen = 127.0.0.1
metadata_listen = 127.0.0.1
enabled_apis = osapi_compute,metadata
transport_url = rabbit://<IP-адрес_VIP>:5672
use_stderr = true
ssl_only = true
cert = /etc/nova/certs/cert.pem

[api_database]
connection = mysql+pymysql://nova:<пароль>@<IP-адрес_VIP>/nova_api

[database]
connection = mysql+pymysql://nova:<пароль>@<IP-адрес_VIP>/nova

[api]
auth_strategy = keystone

[keystone_authtoken]
www_authenticate_uri = https://keystone.stand-1.tionixlabs.ru:5000
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
memcached_servers = <IP-адрес_VIP>:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = <пароль>
region_name = RegionOne

[vnc]
enabled = true
server_listen = $my_ip
server_proxyclient_address = $my_ip

[glance]
api_servers = https://glance.stand-1.tionixlabs.ru:9292

[cinder]
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
region_name = RegionOne
cinder_catalog_info = volumev2:cinderv2:internalURL
project_name = service
username = cinder
password = <пароль>

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

[placement]
region_name = RegionOne
project_domain_name = Default
project_name = service
auth_type = password
user_domain_name = Default
auth_url = https://keystone.stand-1.tionixlabs.ru:5000/v3
username = placement
password = <пароль>

[scheduler]
discover_hosts_in_cells_interval = 300

[wsgi]
secure_proxy_ssl_header = HTTP_X_FORWARDED_PROTO

[neutron]
auth_url = https://keystone.stand-1.tionixlabs.ru:5000
auth_type = password
project_domain_name = Default
user_domain_name = Default
region_name = RegionOne
project_name = service
username = neutron
password = <пароль>
service_metadata_proxy = true
metadata_proxy_shared_secret = NNtgch66wY2SMLS

[privsep_entrypoint]
helper_command=sudo cinder-rootwrap /etc/cinder/rootwrap.conf privsep-helper --config-file /etc/cinder/cinder.conf

Сноски

[1]https://docs.openstack.org/cinder/victoria/drivers-all-about.html
[2]https://docs.openstack.org/nova/victoria/configuration/
[3]https://docs.openstack.org/nova/victoria/configuration/config.html