Как FT защищен от ситуации «Split brain»?

Split brain, на мой взгляд, — это ситуация, когда половинки мозга «забывают» о существовании друг друга. Каждая думает, что она главнее.

FT (Fault Tolerance) — защита виртуальной машины, позволяющая уменьшить внеплановый простой до нескольких секунд. Это достигается за счет того, что в один момент времени на двух разных хостах запущены две копии одной виртуальной машины. Одна из них является первичной, и имеет доступ к диску и сети, вторая же является копией и повторяет за первой все инструкции процессора и работу с памятью.
Для защиты от ситуации, когда две виртуальные машины в Fault Tolerance начнут бороться за жесткий диск, предусмотрен следующий механизм:
Когда включается механизм защиты FT, первичная создает на общем хранилище файл вида generation.N, где N — порядковый номер. Когда запускается вторичная виртуальная машина, первичная сообщает ей текущий порядковый номер.
В случае, когда одна из виртуальных машин считает, что произошел сбой, она пытается переименовать этот файл в generation.N+1. Если эта операция выполняется успешно, эта машина становится первичной, после чего снова создается вторичная виртуальная машина для защиты. Если же операция завершается с ошибкой, значит у нас жива первичная виртуальная машина. В этом случае текущая виртуальная машина выключается.
За ссылку спасибо The VMGuy.
P.S.: Оказывается, этот пост был навеян чтением записок виртуального админа. Это ж какую траву курить надо было, чтобы прочитать «Записки» и забыть об этом :))
Немного подумал и решил оставить пост. Прости, Антон. 🙂
P.P.S. Вспомнил — жег старые рамы на даче — видимо, нанюхался краски :)))

2 комментария к “Как FT защищен от ситуации «Split brain»?”

  1. >значит у нас жива первичная виртуальная машина

    Неточно. Значит вторая машина жива и успела перехватить управление. А это могла быть и теневая машина.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *