Я пытаюсь установить и настроить OpenStack Mitaka в стеке из 4 узлов. 1 контроллер, 1 вычислительное, 1 блочное хранилище и 1 объектное хранилище. При попытке создать узел хранения блоков я не могу создать том через панель инструментов. Базовая ОС Ubuntu 14.04 и, как я уже говорил ранее, выпуск OpenStack Mitaka.
Вот файл cinder.conf на узле контроллера
[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = tgtadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
state_path = /var/lib/cinder
lock_path = /var/lock/cinder
volumes_dir = /var/lib/cinder/volumes
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 10.0.0.11
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
iscsi_protocol = iscsi
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = *********
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[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 = **********
[database]
connection = mysql+pymysql://cinder:********@controller/cinder
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm
Вот файл cinder.conf на узле Cinder (блочное хранилище)
[DEFAULT]
rootwrap_config = /etc/cinder/rootwrap.conf
api_paste_confg = /etc/cinder/api-paste.ini
iscsi_helper = tgtadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
state_path = /var/lib/cinder
lock_path = /var/lock/cinder
volumes_dir = /var/lib/cinder/volumes
rpc_backend = rabbit
auth_strategy = keystone
my_ip = 10.0.0.41
[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 = **********
enabled_backends = lvm
glance_api_servers = http://controller:9292
[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = ********
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[database]
#connection = mysql+pymysql://cinder:*******@controller/cinder
connection = mysql+pymysql://cinder:*******@controller/cinder
#connection = mysql://cinder:******@controller/cinder
[api_database]
connection = mysql+pymysql://cinder:*******@controller/cinder_api
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = tgtadm
Статус после создания тома — «ошибка». Вот строка ошибки, которую я получаю в файле cinder-scheduler.log на узле контроллера.
2016-09-07 17:14:22.291 10607 ERROR cinder.scheduler.flows.create_volume [req-272c5387-a2e3-4371-8a14-8330831910d0 a43909277cbb418fa12fab4d22e0586c 64d180e39e2345ac9bbcd0c389b0a7c4 - - -] Failed to run task cinder.scheduler.flows.create_volume.ScheduleCreateVolumeTask;volume:create: No valid host was found. No weighed hosts available
Я считаю, что это самая важная часть сообщения об ошибке:
volume:create: действительный хост не найден. Нет доступных взвешенных хостов
Когда я запускаю команду "cinder service-list" из Controller Node, я получаю следующий вывод:
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| Binary | Host | Zone | Status | State | Updated_at | Disabled Reason |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
| cinder-scheduler | controller | nova | enabled | up | 2016-09-07T22:13:11.000000 | - |
| cinder-volume | cinder | nova | enabled | up | 2016-09-07T22:13:30.000000 | - |
+------------------+------------+------+---------+-------+----------------------------+-----------------+
интересно отметить, что имя хоста - cinder. Где, как в руководстве по установке Mitaka, имя хоста — block1@lvm. Не уверен, почему мой отличается, или если это вообще имеет значение. Нашел это интересным и, возможно, ключом к моей проблеме.
Это наводит меня на мысль, что Cinder Node и The Controller могут «видеть» или общаться друг с другом. Я считаю, что правильно настроил lvm внутри узла Cinder. На всякий случай вот раздел фильтра из файла lvm.conf:
filter = [ "a/sda/", "a ...
При всем при этом. Я думаю, что это проблема формата раздела/жесткого диска. Или проблема с rabbitmq (служба обмена сообщениями). У меня есть сервер rabbitmq, установленный на Cinder Node, который, как я знаю, настроен не так, как указано в руководстве, что означает, что он, вероятно, неверен. Сейчас я пытаюсь удалить сервер rabbitmq из Cinder Node. Проблема, с которой я столкнусь, заключается в том, что узел Cinder и узел контроллера не будут "видеть" друг друга. Если это так, то, возможно, что-то не так с файлами cons на любом из трех узлов, которые у меня работают прямо сейчас? Сейчас работают 3 узла: Controller, Compute и Cinder.
Дайте мне знать, что вы, ребята, думаете. Если вы видите проблему с моими файлами cons, пожалуйста, сообщите мне. Последний абзац призван объяснить мое мышление и текущее состояние проекта. Если вы видите ошибку в моей логике или думаете, что есть лучший способ решить проблему, я внимательно слушаю!
Всем спасибо!