Назад | Перейти на главную страницу

Как мне восстановиться после частичного отказа Ovirt и GlusterFS?

Я управляю 3-узловым кластером Ovirt 4.3.7 с размещенным механизмом; узлы также являются узлами glusterfs. Системы:

Услуги ovirt-ha-agent и ovirt-ha-broker постоянно перезапускаются на ovirt1 и ovirt3, и это не кажется нормальным (первое, что мы заметили об этой проблеме, было заполнение журналов этих сервисов в этих системах).

Все индикаторы консолей GUI показывают, что на ovirt3 работает overt-engine. Я попытался перенести overt-engine на ovirt2, но без дальнейших объяснений потерпел неудачу.

Пользователи могут без проблем создавать, запускать и останавливать виртуальные машины на всех трех узлах.

Я вижу следующий вывод из gluster-eventaapi status и hosted-engine --vm-status на каждом из узлов:

ovirt1:

[root@ovirt1 ~]# gluster-eventsapi status
Webhooks: 
http://ovirt-engine.low.mdds.tcs-sec.com:80/ovirt-engine/services/glusterevents

+---------------+-------------+-----------------------+
|      NODE     | NODE STATUS | GLUSTEREVENTSD STATUS |
+---------------+-------------+-----------------------+
| 192.168.5.194 |          UP |                    OK |
| 192.168.5.195 |          UP |                    OK |
|   localhost   |          UP |                    OK |
+---------------+-------------+-----------------------+
[root@ovirt1 ~]# hosted-engine --vm-status
The hosted engine configuration has not been retrieved from shared storage. Please ensure that ovirt-ha-agent is running and the storage server is reachable.

ovirt2:

[root@ovirt2 ~]# gluster-eventsapi status
Webhooks: 
http://ovirt-engine.low.mdds.tcs-sec.com:80/ovirt-engine/services/glusterevents

+---------------+-------------+-----------------------+
|      NODE     | NODE STATUS | GLUSTEREVENTSD STATUS |
+---------------+-------------+-----------------------+
| 192.168.5.195 |          UP |                    OK |
| 192.168.5.193 |          UP |                    OK |
|   localhost   |          UP |                    OK |
+---------------+-------------+-----------------------+
[root@ovirt2 ~]# hosted-engine --vm-status


--== Host ovirt2.low.mdds.tcs-sec.com (id: 1) status ==--

conf_on_shared_storage             : True
Status up-to-date                  : True
Hostname                           : ovirt2.low.mdds.tcs-sec.com
Host ID                            : 1
Engine status                      : {"reason": "vm not running on this host", "health": "bad", "vm": "down_unexpected", "detail": "unknown"}
Score                              : 0
stopped                            : False
Local maintenance                  : False
crc32                              : e564d06b
local_conf_timestamp               : 9753700
Host timestamp                     : 9753700
Extra metadata (valid at timestamp):
    metadata_parse_version=1
    metadata_feature_version=1
    timestamp=9753700 (Wed Mar 25 17:45:50 2020)
    host-id=1
    score=0
    vm_conf_refresh_time=9753700 (Wed Mar 25 17:45:50 2020)
    conf_on_shared_storage=True
    maintenance=False
    state=EngineUnexpectedlyDown
    stopped=False
    timeout=Thu Apr 23 21:29:10 1970


--== Host ovirt3.low.mdds.tcs-sec.com (id: 3) status ==--

conf_on_shared_storage             : True
Status up-to-date                  : False
Hostname                           : ovirt3.low.mdds.tcs-sec.com
Host ID                            : 3
Engine status                      : unknown stale-data
Score                              : 3400
stopped                            : False
Local maintenance                  : False
crc32                              : 620c8566
local_conf_timestamp               : 1208310
Host timestamp                     : 1208310
Extra metadata (valid at timestamp):
    metadata_parse_version=1
    metadata_feature_version=1
    timestamp=1208310 (Mon Dec 16 21:14:24 2019)
    host-id=3
    score=3400
    vm_conf_refresh_time=1208310 (Mon Dec 16 21:14:24 2019)
    conf_on_shared_storage=True
    maintenance=False
    state=GlobalMaintenance
    stopped=False

ovirt3:

[root@ovirt3 ~]# gluster-eventsapi status
Webhooks: 
http://ovirt-engine.low.mdds.tcs-sec.com:80/ovirt-engine/services/glusterevents

+---------------+-------------+-----------------------+
|      NODE     | NODE STATUS | GLUSTEREVENTSD STATUS |
+---------------+-------------+-----------------------+
| 192.168.5.193 |        DOWN |           NOT OK: N/A |
| 192.168.5.194 |          UP |                    OK |
|   localhost   |          UP |                    OK |
+---------------+-------------+-----------------------+
[root@ovirt3 ~]# hosted-engine --vm-status
The hosted engine configuration has not been retrieved from shared storage. Please ensure that ovirt-ha-agent is running and the storage server is reachable.

Я сделал следующие шаги:

  1. найдите эти журналы для ovirt-ha-agent и ovirt-ha-broker службы некорректно вращаются на узлах ovirt1 и ovirt3; журналы показывают одинаковый отказ на обоих узлах. Broker.log содержит часто повторяющееся утверждение:
MainThread::WARNING::2020-03-25 18:03:28,846::storage_broker::97::ovirt_hosted_engine_ha.broker.storage_broker.StorageBroker::(__init__) Can't connect vdsm storage: [Errno 5] Input/output error: '/rhev/data-center/mnt/glusterSD/ovirt2:_engine/182a4a94-743f-4941-89c1-dc2008ae1cf5/ha_agent/hosted-engine.lockspace'
  1. обнаружите, что документация RHEV предлагает запустить hosted-engine --vm-status разобраться в проблеме; этот вывод (выше) предполагает, что ovirt1 не является полностью частью кластера.
  2. Я спросил на форуме Ovirt вчера утром, но, поскольку я новичок там, мой вопрос требует рассмотрения модератором, а этого еще не произошло (если бы пользователи этого кластера не все внезапно работали из дома и внезапно зависели от это, я бы не стал беспокоиться о том, чтобы ждать несколько дней).

Как мне выйти из этой ситуации? (Я думаю, мне нужно сначала восстановить что-то в кластере glusterfs, но я не могу найти подсказку или у меня нет языка для формирования правильного запроса.)

ОБНОВЛЕНИЕ: после перезапуска glusterd на ovirt3 кластер glusterfs выглядит исправным, но без изменений в поведении служб ovirt.

Действия, необходимые для выхода из описанной выше ситуации, сводились к запуску на ovirt3 следующего:

hosted-engine --vm-shutdown
hosted-engine --reinitialize-lockspace
hosted-engine --vm-start

Это привело к запуску ovirt-engine на ovirt2. После этого я перезапустил на ovirt3 сервисы ovirt-ha-broker.service и ovirt-ha-agent.service.