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 |