Что, если сервер «умрет»? Примеры реализации отказоустойчивой системы на 1С:Предприятие 8.3



В новой серии уроков мы наглядно покажем возможности отказоустойчивости клиент-серверной платформы «1С:Предприятие 8.3».

Кластер серверов 1С позволяет выполнять горизонтальное масштабирование. Также в него заложены возможности по обеспечению отказоустойчивости системы.

В отличие от платформы 8.2, в 8.3 нет групп резервирования кластеров.

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

В данных уроках мы рассмотрим, как работает отказоустойчивость в платформе 8.3. Для этого проведем ряд экспериментов – будем выводить из строя различные серверы кластера и проанализируем работоспособность системы.

Видео 01:

Отказоустойчивость центральных серверов

Отказоустойчивость центральных серверов

Что будет, если центральный сервер кластера выйдет физически из строя? В 8.2 это бы означало полную остановку системы.
В 8.3 появилась возможность создавать несколько центральных серверов.

В видео показан пример выхода из строя центрального сервера. При этом реальные пользователи даже не замечают, что они переключились на другой сервер.

Видео 02:

Настройка уровней отказоустойчивости

Настройка уровней отказоустойчивости

В платформе 8.3 в кластере появился параметр «Уровень отказоустойчивости».

В этом уроке показано в теории, как будет влиять настройка этого параметра на работу кластера.

Видео 03:

Выход из строя всех центральных серверов

Выход из строя всех центральных серверов

В уроке смоделирована ситуация выхода из строя всех центральных серверов.

Независимо от уровня отказоустойчивости и доступности рабочих серверов результат будет один…

Видео 04:

Авария на одном рабочем сервере

Авария на одном рабочем сервере

В уроке рассмотрена ситуация выхода из строя рабочих серверов с разными настройками уровня отказоустойчивости.

Один из рассмотренных сценариев работы показывает, что поведение работы кластера не всегда соответствует документации на платформе 8.3.6.

Отметим, что с релиза 8.3.8 разработчики поменяли поведение платформы. Теперь оно приведено в соответствие с документацией.

Видео 05:

Выход из строя всех рабочих серверов

Выход из строя всех рабочих серверов

Ситуация – авария случилась сразу на всех рабочих серверах, при этом один центральный сервер остался доступен.

В теории такая система не должна работать, однако на практике получаем иной результат…

Видео 06:

Формула расчета уровня отказоустойчивости

Формула расчета уровня отказоустойчивости

В уроке показана методика (совершенно не очевидная) расчета уровня отказоустойчивости для кластера серверов.

Видео 07:

Отказоустойчивость и производительность

Отказоустойчивость и производительность

Желание сделать систему максимально отказоустойчивой приводит к негативным последствиям – система начнет медленнее работать.

Рассмотрим этот момент в данном видео.

Смотрите еще:

Эта тема детально раскрыта в курсе:

Ускорение и оптимизация систем на 1С:Предприятие 8.3 (2016)
Подготовка к 1С:Эксперт по технологическим вопросам

Поддержка – 3 месяца. Объем курса – 35,5 учебных часов.

Не откладывайте свое обучение!

18 комментариев к “Что, если сервер «умрет»? Примеры реализации отказоустойчивой системы на 1С:Предприятие 8.3

  1. Денис сказал:

    Доброго времени суток.
    Вопрос по первому видео.
    Попробовали на практике отказоустойчивый кластер на два центральных сервера – srv1;srv2
    Платформа 8.3.8.1933.
    Если отключить сервер srv1 и в подключениях базы будет srv1;srv2
    тогда подключается к базе нормально.
    Но если в подключении указать только srv1 и srv1 отключить, то сервер по сети не находится.

    • Андрей Бурмистров сказал:

      Денис, здравствуйте.
      А вы хотя бы 1 раз подключились успешно под этим пользователем к кластеру, когда у вас уже было настроено 2 центральных сервера?

  2. Серавкин Константин сказал:

    “УО = Количество центральных серверов – 1”
    Если в системе три рабочих сервера и только два из них центральных, то вывод из строя не любых двух серверов окажется отказоустойчивым. Т.е. да, можно подобрать частый случай (один центральный, один рабочий), когда система не упадёт после вывода из строя двух серверов, но это не означает, что вывод ЛЮБЫХ двух серверов будет отказоустойчивым. Поэтом я не могу считать, что УО = 2. В данном случае гарантированно допускается вывод ЛЮБОГО только одного сервера для обеспечения отказоустойчивости. В этом смысле формула “для экзамена” верна, просто не хватает математического понятия “любой”

    • Андрей Бурмистров сказал:

      Если считать так, тогда получается что документация написана неверно, т.к. там сказано, что УО это то количество серверов которые могут выйти из строя и при этом приведены конкретные примеры.
      Я предлагаю ориентироваться не на документацию и формулировки, а на поведение системы на практике.

  3. Максим сказал:

    Во всех видео для имитации аварии выполняется остановка службы агента.
    А что будет происходить с пользовательскими сеансами, если принудительно завершить рабочий процесс, который их обслуживает?
    Насколько помню, в 8.2 за это отвечала группа резервирования и там сеансы “перетекали” (при отсутствии незавершенных транзакций).
    А что в 8.3? Я правильно понял, что содержимое видеороликов применимо к принудительному завершению любого процесса ОС, участвующего в обслуживании сеанса (ragent, rmngr, rphost)?

    • Андрей Бурмистров сказал:

      > А что будет происходить с пользовательскими сеансами, если принудительно завершить рабочий процесс, который их обслуживает?

      Если у пользователя этого рабочего процесса была открыта транзакция, тогда он получит сообщение об ошибке и завершит работу.
      Если пользователь в этот момент ничего не делал, то он даже не заметит что процесс упал, т.к. упавший процесс сразу же перезапускается.

      > Насколько помню, в 8.2 за это отвечала группа резервирования

      Группа резервирования применима если упадет не процесс, а весь сервер.
      В 8.3 для этого используются уровни отказоустойчивости.

      > правильно понял, что содержимое видеороликов применимо к принудительному завершению любого процесса ОС, участвующего в обслуживании сеанса (ragent, rmngr, rphost)?

      Нет, это применимо только к процессам rphost

  4. Владимир сказал:

    В Видео 02 на слайде написано “Уровень отказоустойчивости (УО)” – количество РАБОЧИХ серверов”
    Вот выделил специально слово РАБОЧИХ, то есть не ЦЕНТРАЛЬНЫХ.

    То есть или есть разница в понятиях, или это ошибка в голове диктора?

    • Андрей Бурмистров сказал:

      Все центральные сервера являются рабочими, но не все рабочие сервера являются центральными.

  5. Алексей сказал:

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

    • Андрей Бурмистров сказал:

      Тут есть несколько вариантов:
      1. В 8.3 можно перенести сервис лицензирования на отдельный компьютер, пока этот компьютер работает, лицензии будут выдаваться, даже если один из серверов выйдет из строя.
      2. Если используются программные лицензии, тогда можно переактивировать лицензии на другом сервере используя один из 3х пин-кодов.
      3. Если используются аппаратные ключи и сервера находятся в одном здании, тогда можно просто переставить ключ.
      4. Для обеспечения самой высокой скорости переключения, можно иметь в запасе дополнительные лицензии на отдельном сервере. Этот вариант предпочтителен если стоимость простоя очень высока, тогда лучше закупить 2 комплекта лицензий, один для постоянной работы и одни резервный.

  6. Maratbek сказал:

    Ни хочу никого обижать но почему видео записан картавым голосом? Что нет других людей.

    • Евгений Гилев (Мастер-тренер) сказал:

      Конечно можно было бы подключить профессионального диктора.

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

      Курс этого автора прошло более 1500 человек и никто не предал этому факту существенного значения.

      • SnowMan83 сказал:

        Тоже отмечу, что качество дикции последнее время стало гораздо хуже. Во всех новых курсах. Если Евгений и, особенно, Фарит читали весьма хорошо, и даже эмоционально, то материал гораздо лучше усваивался и запоминался. Евгений не ленился чертить кучу слайдов “карандашом”. Сейчас имеем забыстренный темп увы с дефектами речи, мелькание слайдов. Жаль :(

        • Евгений Гилев (Мастер-тренер) сказал:

          Добрый день!

          Как говориться на вкус и цвет все фломастеры разные :)

          А если серьезно, то главное в наших курсах – контент. Приведу пример.
          У Бурмистрова Андрея не идеальная дикция. Но я вижу более 200 отзывов клиентов, которые прошли его курс и у них есть реальные результаты. То есть не просто “курс понравился”, а есть реальный “выхлоп” – или экзамен сдан, или на практике примели или успешно прошли собеседование на интересную должность.

          Более того внимальные слушатели знают, что Фарит писал некоторые видео в аэропорту под звуки взлетающих самолетов :)

          Над подачей мы конечно же будем работать, но контент первичен.

    • michail007 сказал:

      “Ни хочу никого обижать…”
      Я ни какого отношения к команде проекта не имею, простой слушатель. И вот с этой точки зрения скажу: не хочешь обижать – лучше промолчи.
      Без обид, если что.

  7. Дмитрий Медведев сказал:

    Здравствуйте, Андрей!

    У меня два вопроса:
    1. по видео 6, вы разделили практику и экзамен. Что из этого следует, экзамены составляют неграмотные люди, которые не являются экспертами и даже специалистами? Или в то время когда они их составляли, платформа работала по другому? или др. причина?

    2. Я как из старой версии курса, так из видео, до конца не понимаю, для чего вообще нужно заполнять свойство “Уровень отказоустойчивости”. На подсознательном уровне, понимаю только следующее: чем больше центральных серверов, тем больше элементов кластера одновременно могут обслуживать не зависимо друг от друга определённую задачу. А для чего вообще это свойство заполнять, так и не понимаю. Объясните пожалуйста по понятнее…

    3. Почему не в курсе и нигде вы не упоминаете, про то, что отказать могут не только сервера приложений, а ещё и сервера с СУБД. Может для них тоже следует, что-то типа зеркала организовать? А как правильно это сделать, не покажите (хотя бы в рамках курса)?

    • Андрей Бурмистров сказал:

      1. Из этого следует только то, что теория отличается от поведения на практике. Если вы работаете с 1С давно, то это не должно быть для вас откровением, такое случается довольно часто.
      2. Получается что на практике этот механизм сейчас не отлажен. На данный момент его работа не соответствует документации. Сейчас получается что неважно заполняете ли вы это свойство или нет, отказоустойчивость все равно будет зависит от числа центральных серверов. Надеюсь что скоро либо исправят документацию, либо исправят сам механизм.
      3. Если используется MS SQL версии 2012 и выше, то для этой цели можно использовать механизм Always on. В сети достаточно много подробных описаний настройки и работы данного механизма. Если будут конкретные вопросы, задавайте их рамках мастер-группы.

Добавить комментарий

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

Мы используем файлы cookies, чтобы сделать сайт удобнее.
Продолжая просмотр сайта, Вы соглашаетесь с их использованием.
Подробнее