Как 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 thoughts on “Как FT защищен от ситуации “Split brain”?”

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *