unwrecker
@unwrecker

Что сделать чтоб в OpenNebula работала автоматическая миграция?

Я так понимаю, что раз тег "Opennebula" до меня на Тостере не упоминался, то шансов немного, но всё же может хотя бы на второй вопрос ответ будет....

1. Итак, поставил на 3 сервера Opennebula по инструкции с официального сайта. Включил параметры, отвечающие за HA: FEDERATION, RAFT_LEADER_HOOK, RAFT_FOLLOWER_HOOK, HOST_HOOK. Первая часть заработала: общий ip перекидывается при отключении одного из хостов. А вот с HOST_HOOK вообще затык.

В конфиге это выглядит так:
HOST_HOOK = [
    NAME      = "error",
    ON        = "ERROR",
    COMMAND   = "ft/host_error.rb",
    ARGUMENTS = "$ID -m -p 5",
    REMOTE    = "no" ]


При гашении одного из серверов, утилита onezone выдаёт вполне себе правильную информацию:
# onezone show 0
ZONE 0 INFORMATION                                                              
ID                : 0                   
NAME              : OpenNebula          


ZONE SERVERS                                                                    
ID NAME            ENDPOINT                                                       
 0 server-0        http://10.0.0.50:2633/RPC2
 1 server-1        http://10.0.0.51:2633/RPC2
 2 server-2        http://10.0.0.52:2633/RPC2

HA & FEDERATION SYNC STATUS                                                     
ID NAME            STATE      TERM       INDEX      COMMIT     VOTE  FED_INDEX 
 0 server-0        leader     64         1345       1340       0     -1
 1 server-1        follower   64         1340       1340       -1    -1
 2 server-2        error      -          -          -          -     -

ZONE TEMPLATE                                                                   
ENDPOINT="http://localhost:2633/RPC2"


А вот onehost почему-то считает что хост жив:
# onehost list
  ID NAME            CLUSTER   TVM      ALLOCATED_CPU      ALLOCATED_MEM STAT  
   1 cl0             default     0      0 / 2400 (0%)   0K / 187.6G (0%) on    
   2 cl1             default     0      0 / 2400 (0%)   0K / 187.6G (0%) on    
   3 cl2             default     1    200 / 2400 (8%)   2G / 187.6G (1%) on


И onevm считает, что виртуалка на этом хосте работает:
# onevm list
    ID USER     GROUP    NAME            STAT UCPU    UMEM HOST             TIME
     0 oneadmin oneadmin ubuntu 1        runn  0.0      2G cl2          0d 18h26


Лог oned.log заполнен информацией об ошибках репликации:
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:1872 UID:0 one.zone.raftstatus invoked
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:1872 UID:0 one.zone.raftstatus result SUCCESS, "<RAFT><SERVER_ID>0</..."
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:4176 UID:0 one.vmpool.info invoked , -2, -1, -1, -1
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:4176 UID:0 one.vmpool.info result SUCCESS, "<VM_POOL><VM><ID>0</..."
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:7744 UID:0 one.vmpool.info invoked , -2, -1, -1, -1
Thu Mar 14 13:02:55 2019 [Z0][ReM][D]: Req:7744 UID:0 one.vmpool.info result SUCCESS, "<VM_POOL><VM><ID>0</..."
Thu Mar 14 13:02:56 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:00 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:04 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:07 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:11 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:15 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:18 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted
Thu Mar 14 13:03:22 2019 [Z0][RCM][D]: Faild to replicate log record at index: 566 on follower: 2, error: Error replicating log entry 566 on follower 2: RPC call timed out and aborted

Но ни слова про вызов хука.

Соответственно opennebula считает, что виртуалка работает, и ничего никуда не мигрирует. Вот что это и как с этим бороться?

2. Я долго выбирал подходящее решение, но может неправильно - у OpenNebula очень маленькое сообщество. Может есть другое аналогичное решение? Нужен opensouce, не очень монструозный (как openstack) - у меня будет только 3 сервера, и главное - при падении одного узла ничего не должно ломаться (или быстро подниматься), даже если на этом узле была единственная ипостась какой-нибудь нужной виртуалки.
  • Вопрос задан
  • 1359 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bartelby
Живу в Новосибирске
onezone show 0
Это команды показывает статус серверов управления где вертится oned.
onehost list
Показывает статус хостов где крутится ВМ.
Обычно это физически разные сервера.

В качестве дадасторе что используете?
Если "ssh" - то файл/диск ВМ остался на том хосте который вы выключили.
Ответ написан
Комментировать
unwrecker
@unwrecker Автор вопроса
Тут был уже большой трэд с перепиской, но, видимо, автор его стёр. Все очевидные проблемы были исключены. Решения не найдено.

А у Вас всё работает как надо? Что для этого сделано кроме инструкции от opennebula? Какая конфигурация сети?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы