Собрал стенд для ознакомления, так сказать, с технологией. oVirt Engine Version: 3.5.0.1-1.el6
Делаю все как в видео примерах. Только Power Managmet — idarc5. Но обнаружилось странное, как на мой взгляд, поведение фичи под названием High Availability. Делаю такой же тест как в видео. Тушим сеть на одном из хостов и через некоторое время менеджер дает команду на остановку (!) этого хоста. Т.е. в примере проблемный хост перезапускается, а у меня останавливается и ничего не происходит. Аналогичная ситуация наблюдается если в выпадающем меню Power Management выбрать опцию Restart — хост останавливается, а не перезапускается.
В логах менеджера в том месте где должна быть команда перезапуска менеджер дает две команды с action = Status, а затем две команды action = Stop. Все команды выдаются с интервалом 13-14 секунд.
Сталкивались ли Вы с таким поведением или я что-то делаю не так?
Да, что-то там не так с порядком отдачи команд. Если есть IPMI то лучше всего им и пользоваться, и попутно открыть баг на тему агента drac5. Я знаю точно что iDRAC6 поддверживается только через ipmilan, а DRAC5 это уже что-то более старое уровня PE2950 восьмилетней давности. Может и от прошивки зависит — но если IPMI работает то я-б воспользовался им как самым простым решением вопроса.
Собственно я уже ставил этот параметр для drac5, и ставил его =40, но это не помогло. Долго искал где же еще можно поменять этот параметр, но судя по коду, это значение прописано в одном месте в
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
А потом обнаружил, что моими железяками можно рулить через ipmilan реализацю fencing и вот там то этот параметр работает.
>> iDRAC6 поддверживается только через ipmilan,
Хм. У меня железяка вообще-то с idrac7, но ее заставить работать через drac7 мне не удалось.
Значит будем пользоваться ipmilan. Спасибо за ответы.
Запускаю на ноде /usr/bin/ilo.py, тестирую подключение и вот такая чепуха вылетает:
libvirt: XML-RPC error : authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Traceback (most recent call last):
File «/usr/bin/ilo.py», line 102, in
response=’HOST_POWER=»‘ + print_vm_status(username) + ‘»‘
File «/usr/bin/ilo.py», line 10, in print_vm_status
conn = libvirt.open(‘qemu:///system’)
File «/usr/lib64/python2.6/site-packages/libvirt.py», line 236, in open
if ret is None:raise libvirtError(‘virConnectOpen() failed’)
libvirt.libvirtError: authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
[root@node2 fake_ilo]# /usr/bin/ilo.py
libvirt: XML-RPC error : authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Traceback (most recent call last):
File «/usr/bin/ilo.py», line 102, in
response=’HOST_POWER=»‘ + print_vm_status(username) + ‘»‘
File «/usr/bin/ilo.py», line 10, in print_vm_status
conn = libvirt.open(‘qemu:///system’)
File «/usr/lib64/python2.6/site-packages/libvirt.py», line 236, in open
if ret is None:raise libvirtError(‘virConnectOpen() failed’)
libvirt.libvirtError: authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Решение — или отключить аутентификацию на стороне libvirt или допилить скриптец чтобы тот умел отправлять пользователя/пароль (и прислать pull request естественно).
Все прекрасно показано за исключением работы fake ilo.
К сожалению у меня нет железных серверов с IPMI, чтобы проверить HA, поэтому ставил ваш замечательный fake ilo на CentOS 7 c libvirt, где созданы три ВМ —
1. Engine
2. Node1
3. Node2
После проверки командой с node1:
fence_ilo -a 10.0.10.100 -u 1234 -l server -p server -o status
Вываливается ошибка на хосте с libvirt:
ssl.SSLError: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:765)
Как ее побороть, так и не нашел способа. Как не пытался…
Видел комментарий на youtube. Странно что требуется ssl-insecure — отродясь не видел iLO/iDRAC/etc с «правильными» сертификатами. Да и в CentOS6 у меня на видео всё работало и без этой опции.
Так я не знаю как сертификаты прикрутить на нодах. И походу fence_ilo берет дефолтный сертификат, и с ним пытается авторизоваться на ilo.py.
Разумеется последний начинает ругаться и писать что сертификат левый:
ssl.SSLError: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:765)
Запарился с ним воевать. Думал уже руки крюки растут из одного места.
Полез даже в документацию по Python’у, думал может версия Пайтона в CentOS 7 поменялась, и трабла в этом. Но чувствовал что затык именно в авторизации, вообщем мне повезло, что вопрос решился))))
И все таки, хотелось бы увидеть видео по балансировке нагрузки aka VMware DRS.
А то народ на форумах думает что oVirt — это подделка сделанная на коленке.
Хотя на самом деле, там все есть, кроме Fault Tolerance.
Если будете делать видео, добавьте еще Affinity Group и другие полезные вещи.
18, 2014 17:35
Приветствую, Евгений.
Собрал стенд для ознакомления, так сказать, с технологией. oVirt Engine Version: 3.5.0.1-1.el6
Делаю все как в видео примерах. Только Power Managmet — idarc5. Но обнаружилось странное, как на мой взгляд, поведение фичи под названием High Availability. Делаю такой же тест как в видео. Тушим сеть на одном из хостов и через некоторое время менеджер дает команду на остановку (!) этого хоста. Т.е. в примере проблемный хост перезапускается, а у меня останавливается и ничего не происходит. Аналогичная ситуация наблюдается если в выпадающем меню Power Management выбрать опцию Restart — хост останавливается, а не перезапускается.
В логах менеджера в том месте где должна быть команда перезапуска менеджер дает две команды с action = Status, а затем две команды action = Stop. Все команды выдаются с интервалом 13-14 секунд.
Сталкивались ли Вы с таким поведением или я что-то делаю не так?
18, 2014 18:37
очень похоже на вот этот баг с недостаточно длинным tomeout:
https://bugzilla.redhat.com/show_bug.cgi?id=1093742
Как вариант можно попробовать добавить в fencing options более крупное значение:
power_wait=20
22, 2014 13:59
Это действительно работает, для ipmilan. А вот для drac5 — нет.
22, 2014 14:12
Для агента типа drac5
Options пишем такие:
cmd_prompt=admin1->, power_wait=20
Выбираем «Power Management -> Restart»
2014-12-22 12:11:00,807 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (ajp—127.0.0.1-8702-10) START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 16e75748
2014-12-22 12:11:20,169 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-21) [30aee9f3] START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 1a74ed86
2014-12-22 12:11:30,604 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-21) [3c075718] START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Stop, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 737c3e4a
2014-12-22 12:12:00,186 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-21) [3c075718] START, FenceVdsVDSCommand(HostName = vps3-test, HostId = 33126b35-69bd-4a69-8831-5ebd69f8c39e, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Stop, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 15191a33
Сервер выключен и ничего не происходит.
Снова выбираем «Power Management -> Restart»
2014-12-22 12:19:40,327 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-15) [766d4e56] START, FenceVdsVDSCommand(HostName = vps3-test, HostId = 33126b35-69bd-4a69-8831-5ebd69f8c39e, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 15ea0b9b
2014-12-22 12:19:51,882 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-15) START, FenceVdsVDSCommand(HostName = vps3-test, HostId = 33126b35-69bd-4a69-8831-5ebd69f8c39e, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Start, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 5454e478
2014-12-22 12:20:21,963 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-15) START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Start, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 466020b3
2014-12-22 12:22:40,741 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (DefaultQuartzScheduler_Worker-100) [49102af9] START, FenceVdsVDSCommand(HostName = vps3-test, HostId = 33126b35-69bd-4a69-8831-5ebd69f8c39e, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = drac5, user = User1, password = ******, options = ‘secure=true,cmd_prompt=admin1->, power_wait=20’, policy = ‘null’), log id: 42935916
Как на мой взгляд, имеет место быть кривая реализация последовательности выдаваемых запросов.
22, 2014 14:13
Для агента типа ipmilan
Options такие:
lanplus=1, power_wait=20
2014-12-22 12:28:29,348 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-3) [38862aa0] START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = ipmilan, user = User1, password = ******, options = ‘lanplus=1, power_wait=20’, policy = ‘null’), log id: 646a209f
2014-12-22 12:28:29,893 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-3) [1628da02] START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Stop, ip = 10.123.123.5, port = , type = ipmilan, user = User1, password = ******, options = ‘lanplus=1, power_wait=20’, policy = ‘null’), log id: 60035cbe
2014-12-22 12:28:55,490 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-3) [1628da02] START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = ipmilan, user = User1, password = ******, options = ‘lanplus=1, power_wait=20’, policy = ‘null’), log id: 5e0b5dd4
2014-12-22 12:28:56,354 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-3) START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Start, ip = 10.123.123.5, port = , type = ipmilan, user = User1, password = ******, options = ‘lanplus=1, power_wait=20’, policy = ‘null’), log id: 6f98cd50
2014-12-22 12:29:21,903 INFO [org.ovirt.engine.core.vdsbroker.vdsbroker.FenceVdsVDSCommand] (org.ovirt.thread.pool-8-thread-3) START, FenceVdsVDSCommand(HostName = vps1-test, HostId = 26884f77-9b42-4189-8fde-24c8c0a479c6, targetVdsId = 4993e935-289c-4772-b85f-8a583cd26139, action = Status, ip = 10.123.123.5, port = , type = ipmilan, user = User1, password = ******, options = ‘lanplus=1, power_wait=20’, policy = ‘null’), log id: 6141c0dc
А в этом случае работает, и команды выдаются в логичной последовательности.
22, 2014 14:22
Да, что-то там не так с порядком отдачи команд. Если есть IPMI то лучше всего им и пользоваться, и попутно открыть баг на тему агента drac5. Я знаю точно что iDRAC6 поддверживается только через ipmilan, а DRAC5 это уже что-то более старое уровня PE2950 восьмилетней давности. Может и от прошивки зависит — но если IPMI работает то я-б воспользовался им как самым простым решением вопроса.
22, 2014 14:31
Собственно я уже ставил этот параметр для drac5, и ставил его =40, но это не помогло. Долго искал где же еще можно поменять этот параметр, но судя по коду, это значение прописано в одном месте в
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
А потом обнаружил, что моими железяками можно рулить через ipmilan реализацю fencing и вот там то этот параметр работает.
Такие вот страдания )
22, 2014 14:39
>> iDRAC6 поддверживается только через ipmilan,
Хм. У меня железяка вообще-то с idrac7, но ее заставить работать через drac7 мне не удалось.
Значит будем пользоваться ipmilan. Спасибо за ответы.
22, 2014 15:19
DRAC6 и новее работает только через IPMI, по крайней мере для RHEL6 это так:
https://access.redhat.com/articles/28603
в oVirt используются абсолютно те-же fencing agents что и в RHEL.
22, 2015 3:25
jekader, салют!
Запускаю на ноде /usr/bin/ilo.py, тестирую подключение и вот такая чепуха вылетает:
libvirt: XML-RPC error : authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Traceback (most recent call last):
File «/usr/bin/ilo.py», line 102, in
response=’HOST_POWER=»‘ + print_vm_status(username) + ‘»‘
File «/usr/bin/ilo.py», line 10, in print_vm_status
conn = libvirt.open(‘qemu:///system’)
File «/usr/lib64/python2.6/site-packages/libvirt.py», line 236, in open
if ret is None:raise libvirtError(‘virConnectOpen() failed’)
libvirt.libvirtError: authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
[root@node2 fake_ilo]# /usr/bin/ilo.py
libvirt: XML-RPC error : authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Traceback (most recent call last):
File «/usr/bin/ilo.py», line 102, in
response=’HOST_POWER=»‘ + print_vm_status(username) + ‘»‘
File «/usr/bin/ilo.py», line 10, in print_vm_status
conn = libvirt.open(‘qemu:///system’)
File «/usr/lib64/python2.6/site-packages/libvirt.py», line 236, in open
if ret is None:raise libvirtError(‘virConnectOpen() failed’)
libvirt.libvirtError: authentication failed: Failed to start SASL negotiation: -4 (SASL(-4): no mechanism available: No worthy mechs found)
Все сделал по мануалу, чё ему не нравится?
22, 2015 7:51
Похоже что libvirt требует аутентификации, а мой скрипт это не умеет.
http://wiki.libvirt.org/page/Tips#The_connection_fails_using_md5_digest_auth
Решение — или отключить аутентификацию на стороне libvirt или допилить скриптец чтобы тот умел отправлять пользователя/пароль (и прислать pull request естественно).
22, 2016 18:23
Добрый день, Евгений.
Еще раз спасибо за видео.
Все прекрасно показано за исключением работы fake ilo.
К сожалению у меня нет железных серверов с IPMI, чтобы проверить HA, поэтому ставил ваш замечательный fake ilo на CentOS 7 c libvirt, где созданы три ВМ —
1. Engine
2. Node1
3. Node2
После проверки командой с node1:
fence_ilo -a 10.0.10.100 -u 1234 -l server -p server -o status
Вываливается ошибка на хосте с libvirt:
ssl.SSLError: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:765)
Как ее побороть, так и не нашел способа. Как не пытался…
Помогите пожалуйста с этим вопросом.
Заранее спасибо.
22, 2016 19:54
Если скопировать сертификаты на Node1 и ввести тест:
openssl s_client -host 10.0.10.100 -port 1234 -cert server.crt -key server.key
Коннект есть!
Но как заставить fence_ilo использовать сертификаты, ни как пока не пойму.
22, 2016 20:14
Если запустить так, то все работает:
# fence_ilo —ssl-insecure -z -a 10.0.10.100 -u 1234 -l ovirt-kvm2 -p ovirt-kvm2 -o status
Status: ON
# fence_ilo —ssl-insecure -z -a 10.0.10.100 -u 1234 -l ovirt-kvm2 -p ovirt-kvm2 -o reboot
Success: Rebooted
22, 2016 20:54
Вопрос снят, в настройках фенсинга опция — ssl_insecure=1
И все супер!!!
Спасибо
23, 2016 13:25
Видел комментарий на youtube. Странно что требуется ssl-insecure — отродясь не видел iLO/iDRAC/etc с «правильными» сертификатами. Да и в CentOS6 у меня на видео всё работало и без этой опции.
27, 2016 16:18
Так я не знаю как сертификаты прикрутить на нодах. И походу fence_ilo берет дефолтный сертификат, и с ним пытается авторизоваться на ilo.py.
Разумеется последний начинает ругаться и писать что сертификат левый:
ssl.SSLError: [SSL: SSLV3_ALERT_BAD_CERTIFICATE] sslv3 alert bad certificate (_ssl.c:765)
Запарился с ним воевать. Думал уже руки крюки растут из одного места.
Полез даже в документацию по Python’у, думал может версия Пайтона в CentOS 7 поменялась, и трабла в этом. Но чувствовал что затык именно в авторизации, вообщем мне повезло, что вопрос решился))))
И все таки, хотелось бы увидеть видео по балансировке нагрузки aka VMware DRS.
А то народ на форумах думает что oVirt — это подделка сделанная на коленке.
Хотя на самом деле, там все есть, кроме Fault Tolerance.
Если будете делать видео, добавьте еще Affinity Group и другие полезные вещи.
28, 2016 9:37
Я кажется рассказал про Optoplanner в 10 части, в обзоре новых плюшек 3.5
30, 2016 9:08
Обзор есть. Но не понятно как оно работает, нету живых примеров на подобие HA.
Это конечно придирки, но если время будет, сделайте пожалуйста.