Создание отказоустойчивого сервера 1С 8,3

1. ROM_1C 692 22.10.18 23:24 Сейчас в теме
Если два физических сервера win 2016, с установленной платформой +сервер 1С 8,3,10, отдельно server SQL 2014
На одном из низ развернута база и опубликована в инет. Оба сервера удаленные друг от друга, смотрять в инет.

Вопрос: как объединить этих два физических сервера в одно целое, чтобы при потери связи с первым - можно было продолжать в реальном времени работать с вторым.
Объединить оба ір серверов думаю через отдельное доменное имя. Т.е. для конечного пользователя будет доступ представлен по имени типа server1c.com/base1.

Теперь, если пропадает связь с первым (пропал инет, электричество, умер и т.д..) пользователь автоматически переключается на второй, где актуальная информация в базе sql.

Подскажите в какую сторону рыть чтобы все это связать?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
23. segatron 26.10.18 00:20 Сейчас в теме +10 $m
В принципе можно. Т.е. в dns вносите две записи с разными ip для my1s.mydomain.ru .
Про приоритеты не знаю ...
Думается что выйдет не очень.
Почему?

Скорее всего dns-зону mydomain.ru держите не вы, а регистратор вашего домена.
Поэтому "настроить приоритеты" на чужом сервере не выйдет.
Во всяком случае в web-морде управления dns-зоной регистратора домена я такого не видел.
За всех конечно не скажу, сам работал давно с ru-center и reg.ru.
+ (!!!) типовые dns-сервера не проверяют доступность и не корректируют свой алгорим в соответствии с этим.

В общем, т.к. dns-сервер не ваш, то у вас не получится ничего кроме обычного roundrobin-алгоритма (https://www.google.com/search?q=roundrobin&ie=utf-8&oe=utf-8).
Т.е. dns-сервер будет вам попеременнке подсовывать то один ip, то другой, при этом (!!!) не проверяя доступность сервера, а просто основываясь на загруженности dns.


Для клиента это будет выглядеть так:
1. Обращается к my1s.mydomain.ru.
DNS-сервер резолвит запрос в ip-перврго офиса (он среди записей dns-зоны указан первым) и возвращает клиенту.
Клиент пытается коннектится на 217.74.109.205.
Ждет какой то таймаут и выдает сообщение - облом.
2. Пользователь снова запускает клиента.
Предположим dns-сервер при повторном обращении выдаст вам втрой ip (тот что 87.250.250.242).
Тогда клиент запустится и подключится ко второму серверу.

Как вы понима, даже при таком благоприятном стечении обстоятельств будет весьма заметная задержка.
На самом деле выйдет еще хуже. Roundrobin-алгоритм может сначала несколько раз вернуть вам первый ip и только потом второй (он ведь основывается не на доступности).

Резюме:
Почему Dynamyc DNS это единственное решение?
1. Dynamic DNS для того и предназначен, чтобы быстро пересопоставляьт ip.Не зря вам привел ссылку из вики (Динамический DNS — технология, позволяющая информации на DNS-сервере обновляться в реальном времени и по желанию в автоматическом режиме).
2. dyndns-клиент как раз и позволит вам организовать какой угодно сложный алгоритм проверки доступности ваших серверов. Используйте command line-версию dyndns-клиента и напишите (batch/power shell и т.д.)-скрипт.
3. Еси вы хотите чтобы клиенты все таки коннектились на my1s.mydomain.ru, просто сделайте запись в dns-зоне, перенаправляющую на my1s.dyndnsdomain..com и ониничего не заметят :)
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 23.10.18 00:17 Сейчас в теме
(1) смотреть в сторону кластера серверов.
http://v8.1c.ru/overview/Term_000000805.htm
https://infostart.ru/public/307973/

Но как это будет синхронизироваться через интернет ... большой вопрос. Обычно это настраивается в локальной сети.
6. ROM_1C 692 23.10.18 10:26 Сейчас в теме
(2)
К сожалению, в 8,3.10 резервирования кластеров нет
3. dandykry 11 23.10.18 07:21 Сейчас в теме
8. ROM_1C 692 23.10.18 10:32 Сейчас в теме
(3) здесь больше неизвестных, чем известных переменных. В том числе nlb
4. ben19791010 23.10.18 09:37 Сейчас в теме
(1) возможно нужен один локальный домен для дальнейшей синхронизации
9. Timur.V 79 23.10.18 11:05 Сейчас в теме
(1)
Думаю, нужно:
1) у клиентов устанавливать центральный кластер 1с ссылка.
2) разворачиваем отказоустойчивый кластер MS SQL Server 2012 на Windows Server 2012R2 для новичков, ссылка
3) по рисунку, прикрепил. У клиентов устанавливаем активный кластер 1с, который переключает каналы 1с т.е. с одного резервного на другой. Смотри пункт 1) и ссылку.

Объединить оба ір серверов думаю через отдельное доменное имя. Т.е. для конечного пользователя будет доступ представлен по имени типа server1c.com/base1.

это правильно.
Прикрепленные файлы:
11. nyam-nyam 23.10.18 11:12 Сейчас в теме
(9)Прикинуть сколько такое решение будет стоить, почесать репу и свалить в облако. :)
13. Timur.V 79 23.10.18 11:36 Сейчас в теме
(11)
В такое? Т.е. можно арендовать место в дата-центре.
Прикрепленные файлы:
14. nyam-nyam 23.10.18 12:33 Сейчас в теме
(13)Не, я имел в виду чистое облако, когда всё от провайдера и нет своих серверов. Если провайдер нормальный, то там архитектура будет явно лучше и надёжнее, и без головняка для админо-архитекторов, когда надо за копейку сделать супернадёжно.
15. Timur.V 79 23.10.18 12:45 Сейчас в теме
(14)
будет явно лучше и надёжнее

Возможно, такое представление складывается, когда вы не знаете внутренней кухни провайдера ))

Облако выбирают маленькие организации, которые только появились на свет.
У остальных всё своё.
16. nyam-nyam 23.10.18 14:09 Сейчас в теме
(15)Провайдер провайдеру - рознь. То что я видел на порядок лучше и надежнее того что можно сваять на паре серверов. Опять же, на 1СФреш свет клином не сошелся, можно и виртуалку арендовать. Опять же, если не брать во внимание только 1СФреш, то в облаке работают очень многие крупные организации. Да, нужно считать что будет выгоднее, но не всегда расчёты в пользу своих серверов, особенно если учитывать стоимость аренды помещений и счетов за электроэнергию, и прочие "мелочи".
24. user957429 26.10.18 13:17 Сейчас в теме
(1)
Вопрос: как объединить этих два физических сервера в одно целое, чтобы при потери связи с первым - можно было продолжать в реальном времени работать с вторым.


Ещё можно реализовать при помощи железа от Cisco или "Континент". Они умеют следить и управлять переключениями доступного оборудования. Конкретно модели не скажу, т.к. продуктовая линейка у них меняется.
Чем удобно - без разницы, где физически стоят сервера (помещение, здание, город).

По замечаниям, если в разных местах.
Есть такое понятие, как туннелирование каналов или VPN как внутри провайдера так и ! между провайдерами, его тоже можно использовать.
P.S. Имхо, у меня бывший коллега сопровождает сервера в одной виртуальной сети, при этом физически сервера стоят 3-шт США, 2 - Франция, 1-шт Англия, 1 шт - Австралия. И всё работает, все доступно. На случай физического отключения питания и отсутствия автостарта более 10 мин. есть "быстрые ноги", которые придут и жмакнут кнопочку "Вкл.".
Большинство велосипедов уже изобретено (с)
5. YannikAlx 27 23.10.18 09:38 Сейчас в теме
Выброшенные деньги на один сервер 1С... Надежности в плане отказа интернет вы не добьетесь установкой второго серевра 1С!
Узкое место не 1С сервер , а SQL, ибо именно там лежат данные! Поэтому нужно либо полное дублирование, то есть второй SQL с репликацией данных по инету.
И тогда при отказе сегмента с одним SQL, вы будете иметь возможность работать с другим сервером данных...

При наличии 1 SQL для надежности интернет работы достаточно одного 1С сервера физически находящегося рядом с SQL , а лучше на том же физическом компе что SQL (можно и на отдельном мощном сервере рядом с сервером SQL, если денег немеряно).
7. ROM_1C 692 23.10.18 10:31 Сейчас в теме
(5)
е на том же физическом компе что SQL (м

Да, я это понимаю, что данные на sql и их нужно как дублировать на второй сервер.. Но что-то вся картинка не складывается..
Как сделать автоматическое копирование данных одной базы первого sql на второй?
Если даные будут копировать на лету, нужен ли кластер серверов 1С? или просто сделать две базы даных 1С, которые будут на разных серверах с одной и той же информацией?
10. Timur.V 79 23.10.18 11:07 Сейчас в теме
(7)
копирование данных одной базы первого sql на второй?

смотри ответ (9)
12. YannikAlx 27 23.10.18 11:26 Сейчас в теме
(7) Все зависит от ваших исходных задач, которые вы не озвучили на самом деле.
Мы узнали только как вы хотите их решать. А вот ЧТО вы решаете?

Предложенный (9) вариант имеет суть верную, но по стоимости имеет особенность - дороговато... )))
17. ArchLord42 83 23.10.18 18:07 Сейчас в теме
(7) группа доступности always-on или кластер, оба варианта требуют поднятия отказоусточивого кластера (минимум 2 сервера + вотчер), а к ним еще AD + VPN между серверами, ну и если у вас +-100мб\с интернет, этот вариант смысла нет рассматривать
Что группа, что кластер имеют единую точку входа, т.е. вы подрубаетесь к db.mydomain.local а он уже ведет на активную ноду.
В целом такое решение довольно тормозное, если сравнивать 1С + MSSQL на одной машине, да и в целом нормальная конфигурация выйдет довольно дорого, проще взять облако.
25. peper- 29.10.18 00:17 Сейчас в теме
(5)
При наличии 1 SQL для надежности интернет работы достаточно одного 1С сервера физически находящегося рядом с SQL , а лучше на том же физическом компе что SQL (можно и на отдельном мощном сервере рядом с сервером SQL, если денег немеряно).


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

(1) Кластеризация/резервирование, как вам верно написали, должна касаться не только сервера 1С, но и сервера БД и всего другого оборудования.
Конечно, если речь идет о более-менее нагруженном решении с приличным числом пользователей. Но в этом случае сервер сам по себе не будет самым слабым звеном и так просто и быстро не умрет (если, конечно, не из отходов сделан). Скорее подвести может именно электричество (инвестируйте в хорошие UPS) или подключение к сети Интернет (инвестируйте в резервирование канала и хорошее сетевое оборудование).

А если решение на небольшое число пользователей, то может лучше все-так хостинг/облако? И пусть у провайдеров голова болит.:)
26. YannikAlx 27 29.10.18 09:14 Сейчас в теме
(25) Если вы имеете под "приличным" от 100 пользователей (меньшее количество у нас прекрасно себя чувствует на 1), то возможно 2 физических сервера (если средства позволяют), но подчеркиваю Физических.
Ни в коем разе не связываться с виртуализацией, ибо будет только гораздо хуже.
18. user957429 23.10.18 23:22 Сейчас в теме
1cloud.ru решит ваши проблемы. Проверено клиентами.
19. user957429 23.10.18 23:24 Сейчас в теме
да, по созданию кластера решения тоже верные, но если Вы не знаете куда деть деньги, пришлите мне, ну а потраченное время, увы ... удачи. :)
20. Jokemas 192 25.10.18 13:59 Сейчас в теме
Ну тут решений может быть много, но для начала нужно правильно организовать сеть. Вам нужно поднять VPN тоннель между этими серверами, естественно, что будет лучше, если они будут в одном домене. Отказоустойчивый кластер 1С, как написано выше, при низкой скорости связи получить не сможете, но. Вы можете попробовать решить проблему на стороне SQL, с помощью механик теневого копирования. В этом случае, при падении одного сервера будет аналогичный сервер, но опять же не абсолютная копия. Проблема в том, что из-за большой удаленности этих машин их синхронизация будет проблематична даже при гигабитном канале, поскольку на участке сети между вашими серверами может быть какой нибудь глючный шлюз, что в свою очередь изуродует всю вашу задумку, со всеми вытекающими.

Отказоустойчивый - это мечта. Правильнее говорить - высокодоступные, ибо реализовать полную отказоустойчивость невозможно. Если расстояние большое, то нужно поднимать два высокодступных сервера и фигачить обмены между ними. Просто тут есть одна большая гадость, которая все вам испортит - большое расстояние = куча промежуточных шлюзов = потери пакетов и т.д.

Но. Если расстояние не большое, то есть вариант реализовать между ними EOIP тоннель по внутреннему каналу провайдера с максимально возможной скоростью, тогда их будет можно запихивать в кластер. Есть условия, которые сильно влияют на решение.
21. segatron 25.10.18 17:15 Сейчас в теме
Как все все глобально замыслили ... кластеры, шмастеры ...
И самое главное все это не будет работать если у вас для надежносте сервера разнесены по разным офисам

Не совсем понял сколько у вас серверов (то ли 2, то ли 4), но суть идеи одна и таже:
1. Предположим у вас всего два сервера.
На каждом сервере поднимаете MSSQL+Сервер 1С (все вместе на одном).
Заливаете базу, настраиваете в базе РИБ (полная синхронизация) и гоняете выгрузки между базами при помощи Resylio Sync (он же в девичестве btsync)
И дальше синхронизируйте свои два сервера хоть в одной локалке одного офиса, хоть через Интернет в разных офисах.

2. Если ваши сервера в разных офисах (вы специально территориально разнесли их для надежности/защиты от сбоя электропитания/и т.д.) и вы хотите чтобы ваши клиенты всегда коннектились на одно dns-имя (например my1s.mydomain.ru) и не заморачивались его изменением если какой то сервер 1С упадет, то идете в сторону Dynamic DNS (https://www.google.com/search?ei=N8_RW5LmD4e6sQHmrI7YAQ&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%B­A&q=Dynamic+dns).

Зачем ? Dynamic DNS позволяет очень быстро сопоставить dns-имени другой ip-адрес

Для этого на одном из хороших DynDNS-сервисов покупаете аккаунт.

В одном из офисов (предположим его адрес 217.74.109.205) настраиваете автоматический запуск dyndns-клиента. Этот клиент будетвсе врем сигналить в dyndns-сервис что "домену my1s.dyndnsdomaimcom соответствует ip-адрес предположим его адрес 217.74.109.205".

Во втором офисе (предположим его адрес 87.250.250.242) создаете скрипт, который делает следующее - постоянно пингует первый сервер и в случае его недоступности запускает dyndns-клиента.
Получается что если в первом офисе отключат электричество, то первый сервер будет недоступен.
Сервер во втором офисе просекет это и запустит dyndns-клиента, который свяжет имя my1s.dyndnsdomaim.com с новым ip-адресом, т.е. адресом второго офиса (87.250.250.242).



А клиенты ... они как подключались, так и будут подключаться к my1s.dyndnsdomaim.com



P.S. Сервер во втором офисе не перестает пинговать первый офис. При восстановлении связи, но гасит dyndns-клиент во втором офисе (в первом он и так стартанет автоматически после восстановления электропитания)
22. ROM_1C 692 25.10.18 18:05 Сейчас в теме
(21)
Dynamic DNS

А нельзя ли в качестве DynDNS-сервисов использовать реальный домен, где указать реальные ІР + приоритет? Не будет ли автоматически происходить переключение на второй по приоритету сервер, если пропадет связь с первым с более высоким приоритетом?
23. segatron 26.10.18 00:20 Сейчас в теме +10 $m
В принципе можно. Т.е. в dns вносите две записи с разными ip для my1s.mydomain.ru .
Про приоритеты не знаю ...
Думается что выйдет не очень.
Почему?

Скорее всего dns-зону mydomain.ru держите не вы, а регистратор вашего домена.
Поэтому "настроить приоритеты" на чужом сервере не выйдет.
Во всяком случае в web-морде управления dns-зоной регистратора домена я такого не видел.
За всех конечно не скажу, сам работал давно с ru-center и reg.ru.
+ (!!!) типовые dns-сервера не проверяют доступность и не корректируют свой алгорим в соответствии с этим.

В общем, т.к. dns-сервер не ваш, то у вас не получится ничего кроме обычного roundrobin-алгоритма (https://www.google.com/search?q=roundrobin&ie=utf-8&oe=utf-8).
Т.е. dns-сервер будет вам попеременнке подсовывать то один ip, то другой, при этом (!!!) не проверяя доступность сервера, а просто основываясь на загруженности dns.


Для клиента это будет выглядеть так:
1. Обращается к my1s.mydomain.ru.
DNS-сервер резолвит запрос в ip-перврго офиса (он среди записей dns-зоны указан первым) и возвращает клиенту.
Клиент пытается коннектится на 217.74.109.205.
Ждет какой то таймаут и выдает сообщение - облом.
2. Пользователь снова запускает клиента.
Предположим dns-сервер при повторном обращении выдаст вам втрой ip (тот что 87.250.250.242).
Тогда клиент запустится и подключится ко второму серверу.

Как вы понима, даже при таком благоприятном стечении обстоятельств будет весьма заметная задержка.
На самом деле выйдет еще хуже. Roundrobin-алгоритм может сначала несколько раз вернуть вам первый ip и только потом второй (он ведь основывается не на доступности).

Резюме:
Почему Dynamyc DNS это единственное решение?
1. Dynamic DNS для того и предназначен, чтобы быстро пересопоставляьт ip.Не зря вам привел ссылку из вики (Динамический DNS — технология, позволяющая информации на DNS-сервере обновляться в реальном времени и по желанию в автоматическом режиме).
2. dyndns-клиент как раз и позволит вам организовать какой угодно сложный алгоритм проверки доступности ваших серверов. Используйте command line-версию dyndns-клиента и напишите (batch/power shell и т.д.)-скрипт.
3. Еси вы хотите чтобы клиенты все таки коннектились на my1s.mydomain.ru, просто сделайте запись в dns-зоне, перенаправляющую на my1s.dyndnsdomain..com и ониничего не заметят :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот