Обновить

Отказоустойчивые системы: зачем нужны и как построить

Время на прочтение6 мин
Количество просмотров27K
Всего голосов 12: ↑12 и ↓0+13
Комментарии14

Комментарии 14

Теперь мы защищены от неполадок как со стороны СХД, так и со стороны коммутатора. Но что будет, если выйдет из строя сетевой адаптер сервера? Этот сервер потеряет доступ к сети и СХД. Поэтому нужно задублировать также и сетевые адаптеры:

Это уже защита от двойного отказа (карта+сервер), а не единичного(карта или сервер). Если сетевая карта в сервере навернется, то должно произойти переключение на резервный.

так же, не очень понятно зачем в данной схеме коммутаторы (как дополнительные точки отказа и цены), если можно воткнуть контроллеры СХД напрямую, так же крестом =). Т.е. тем кто в теме объяснять не надо, а вот стороннему обывателю будет не ясно.

Вообще, все статьи про резервирование надо начинать с требований.

так же, не очень понятно зачем в данной схеме коммутаторы

Да, в случае с двумя серверами действительно можно соединить серверы и СХД напрямую. Но если серверов несколько, то подключить напрямую скорее всего не получится - не хватит портов на контроллерах СХД.

Надо начинать с прикладного программного обеспечения. Сам по себе отказоустойчивый кластер не означает отказоустойчивых сервисов, а всего лишь способен устойчиво предоставлять вычислительную мощность.

Есть примеры расчета реальных отказоустойчивых кластерных систем (коэффициента готовности)?

Например, нарисовать два дублирующих прямоугольника - не вариант, т.к. обнаружение вторым узлом кластера выхода из строя первого - не стопроцентное и резко снижает надежность кластера в целом.

Минимум 4.

2 узла – это практически гарантированный взаимный отстрел.

3 узла – оставляют 2 после выхода из строя 1, и дальше см. предыдущий пункт.

См. также по этому поводу: https://habr.com/ru/post/281723/

Если я верно понял, то в открытом доступе расчетов надежности реальных отказоустойчивых систем - нет (потому что там видимо больше домыслов).

Про четыре параллельных узла - это про клаcтеры? Примеры есть? Обычно речь про два. Скажу более - в реальности трехузловые системы менее надежны чем двухузловые. Это потому, что узлы кластера сами по себе высоконадежны и добавление узлов уже не так увеличивает общий коэффициент готовности, как добавление нового узла снижает общую надежность за счет дополнительного "распределенного" переключателя резерва, который тоже имеет надежность. В этих расчетах, как правило, уже про оценку надежности кластерного ПО, которое должно определять наличие отказа при условии что он произошел, время переключения, а также ложные срабатывания переключателя на резерв (реально отказа не было, но переключение произошло и один узел ушел в простой).

В окрестностях "пяти девяток" надежность узлов в расчете общего коэффициента готовности уходит на второй план (вклад наработки на отказ каждого узла). Именно это я хотел увидеть на примерах расчета реальных отказоустойчивых систем.

В трёхузловой системе причину отказа можно установить мажоритарным голосованием (что и делает штатное программное обеспечение кластера высокой готовности), в двухузловой – способа достоверно локализовать нефатальный отказ не существует.

О коэффициенте готовности в пять девяток я вообще никогда не слышал, тут не надо путать с надёжностью. Это система без регламентных работ?

История из жизни -система хранения NetApp - две головы актив актив завязанные оптикой и полка с дисками. Вроде бы надёжно ? Но через пару лет вылетела одна голова (сначала ушла в ребут и потом ребутилась по кругу) и вторая голова все запросы приняла на себя. Ой как ей было тяжко... Всё почуствовали -). Этот кейс разбирали неделю!!!... После этого я понял зачем хитрые EMC в свои системы хранения пихают по три головы -).

Да вообще в любой надежной системе должно быть как минимум 3 узла. 2 узла это верная смерть, т.к. split-brain. Как минимум нужен арбитр, он может не быть полноценным 3 узлом.

Не все отказы можно арбитрировать со стороны. Допустим, два узла по внешним признакам работают, но выдают разные результаты, дальше что должен делать арбитр? Мажоритарное голосование надёжнее.

2 узла это верная смерть, т.к. split-brain. Как минимум нужен арбитр, он может не быть полноценным 3 узлом.

Выделенный Арбитр (мажоритарной системы) становится единой точкой отказа и "тащит" общую надежность вниз. Каким бы он не был, - полноценным или нет. В кластерных системах пример выделенного "железного" арбитра есть?

Верное замечание. Вот как раз модуль управления AMM у нас недавно и сломался в IBMовской блейд-системе. Весь такой упрощённый и единственный не резервированный (ну и само шасси не резервировано тоже).

Тогда это нифига не арбитр, а ерунда какаято. Речь о том, что в кворумных системах необязательно делать все узлы полноценными. Арбитр может давать голос свой в общее голосование, но не хранить на себе данные например. Его отказ приведет лишь к тому, что два остальных узла будут большинством и система отлично продолжит работать. Похожим образом работает vmware vsan, где арбитром может быть любая дохлая тачка с esxi. И не надо городить еще один полноценный кластер просто чтобы сделать нечетное число узлов.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
www.xcom.ru
Дата регистрации
Дата основания
2001
Численность
501–1 000 человек
Местоположение
Россия