Кластер Domino

  • Автор темы fvoice
  • Дата начала
F

fvoice

#1
Администрирование Domino не самая сильная моя сторона, поэтому публикую свои мысли здесь, с целью получения советов и предостережений.

Цели:

- распределение нагрузки
- защита от сбоев
- более надежное хранение информации

Почитав документацию понимаю что все эти задачи решаются поднятием второго сервера и включения их в кластер.

План работы:

- Зарегистрировать второй сервер на основном сервере(получить server.id)
- Поднять второй сервер, используя полученный server.id
- Добавить оба сервера в кластер

Предвопрос: Правильно ли я понимаю ситуацию?
Основной вопрос: Получу ли я после всего этого больше преимуществ или больше проблем?
Послевопрос: Что нужно сделать/обратить внимание чтобы получить меньше проблем?
 

collection

Well-known member
04.07.2006
472
0
#2
Ситуацию Вы понимаете правильно, однако единого мнения по поводу этого нет, т.к. все зависит от того какие задачи решает сервер, установлена ли система делопроизводства, по каким рпотоколам осуществляется доступ к серверу, к примеру, вот конфигурация которую я использую у себя:
Сервер А и Б находятся в кластере, сервер А основной рабочий(доступен), сервер Б дополнительный(server restricted=2) агент на сервере Б с заданной переодичностью проверяет доступность сервера А в случае есл сервер А не доступен даем (тем же агентом) команду Б - "set config server_restricted=0 update, соответственно сервер Б берет управления на себя. Как только причина устранена и сервер А снова становится доступен сервер Б получает команду set config server_restricted=2 update и передает управление серверу А.
Смысл в том, что количество пользователей и аппаратные возможности сервера А позволяют отказать от использования кластера серверов а сервер Б использовать исключительно как сервер для бекапа и как резервный на случай сбоя.
Послеответ: на документацию
 

puks

Lotus team
03.02.2007
1 971
8
#3
Надо не забыть дополнить кластерную репликацию обычной.
Кроме того, если приложение не написано для кластера, т.е. не используется функция открытия баз с переключением на другой сервер, то здесь автоматического переключения не будет.
Я бы сказал, что 2 и 3 пункты достигаются легко. С первым - надо возиться. В общем, это дело хорошее и не сложное для подъема.
 
F

fvoice

#4
Извините, долго не отписывался, загружен был.
Что у меня получилось:

выполнил:
- Зарегистрировать второй сервер на основном сервере(получить server.id)
- Поднять второй сервер, используя полученный server.id
- Добавить оба сервера в кластер
получил кластер, в котором кластерной репликации подлежали только служебные БД, типа names.nsf и др.
Создал connection документы в обе стороны, прописал задачи репликации в обе стороны(может достаточно в одну?), раз в 3 часа.
Создал реплики нужных мне баз на второй сервер, получил синхронизацию баз данных на обоих серверах, для управления кластерной репликацией использовал БД "Cluster Directory".
Кроме того, если приложение не написано для кластера, т.е. не используется функция открытия баз с переключением на другой сервер, то здесь автоматического переключения не будет.
:blink: у меня работает на всех БД, ставил эксперименты на обоих серверах

Порадовало:
- изменения в одной из БД на одном сервере, практически мгновенно отображаются на втором
- автоматическое переключение на второй сервер, при отказе первого

Огорчило:
- для автоматического переключения нужно создавать второй коннекшн в адресной книге(догадывался)

Для: collection
Можно поподробнее про вашу систему, на втором сервере подняты все те же таски что и на первом? Как происходит маршрутизация почты? доступ из под интернета к базам данных?
 

puks

Lotus team
03.02.2007
1 971
8
#5
<!--QuoteBegin-fvoice+1:10:2007, 08:34 -->
<span class="vbquote">(fvoice @ 1:10:2007, 08:34 )</span><!--QuoteEBegin-->у меня работает на всех БД, ставил эксперименты на обоих серверах
[snapback]80207" rel="nofollow" target="_blank[/snapback]​
[/quote]
Речь идет не об открытии базы нажатием на иконку, а открытием базы в коде. Если в коде используется метод Open, а не OpenWithFailover, то переключения не будет.
 
F

fvoice

#7
Речь идет не об открытии базы нажатием на иконку, а открытием базы в коде. Если в коде используется метод Open, а не OpenWithFailover, то переключения не будет.
а когда в скрипте использую set db = New Notesdatabase(...)? не будет работать?
 
R

root

#8
Для: puks
а если открытие идет через OpenByReplicaID могут быть глюки ?
 

puks

Lotus team
03.02.2007
1 971
8
#9
Для: fvoice
Для: root

В документации единственный метод, поддерживающий переключение в кластере, - OpenWithFailover. И я не нашел инфы, что кто-нибудь практически это опроверг.
 
F

fvoice

#10
мысли вслух:
...если вместо стандартной конструкции типа:
Код:
Dim db as new NotesDatabase(server$,db$)
поставить:
Код:
Dim db as new NotesDatabase("","")

if Not db.OpenWithFailover(server$,db$) then
MessageBox "База данных не найдена не на одном из работающих серверов кластера!"
Exit Sub
End If
может и сработает..

If the database can't be opened on the specific server but the server belongs to a cluster, OpenWithFailover automatically looks for a replica of the specified server on the same cluster. If the method finds a replica, that database is opened instead, and the server property adjusts accordingly.
..надо попробовать ;)
 
F

fvoice

#11
похоже тема развивается уже немного не в том направлении, но все же напишу..

При попытке открыть БД на "упавшем" сервере, метод OpenWithFailover подменяет сервер на рабочий кластерный сервер..
уже переделал почти все методы на программное открытие документов из других БД :)