, я пытаюсь расширить схему FreeIPA person, чтобы добавить поле country
в пользователя по умолчанию.
Насколько мне известно, FreeIPA действительно реализует RFC 4519, который предоставляет поле страны .
Когда я выгружаю схему FreeIPA (через ldapsearch -x -b cn = schema objectclasses attributetypes> schema. Г) в разных странах. Идея состоит в том, чтобы настроить репликацию с несколькими мастерами так, чтобы все данные можно было синхронизировать.
Я мог бы настроить двунаправленную репликацию с каждого сервера на другой сервер
, но я подозреваю, что это может привести к слишком большому количеству подключений это может снизить производительность за счет увеличения используемой полосы пропускания (так ли это?).
Итак, моя следующая идея - настроить их как кольцо:
Теперь у нас гораздо меньше подключений и по-прежнему сохраняется избыточность, поскольку каждый узел подключен до двух серверов. Проблема для моей конкретной ситуации состоит в том, что мы не хотим иметь все базы данных на всех узлах. Мы хотели бы иметь два узла (A и B) со всеми базами данных, а остальные с разными подмножествами. По этой причине я думаю о следующем:
Поскольку я не специалист по топологии сети, я хотел бы спросить:
Для полноты картины цифры были сгенерированы с помощью следующих команд Mathematica:
Graph[Rule @@@ Permutations[CharacterRange["A", "G"], {2}], VertexLabels -> "Name"]
Graph[Rule @@@ (Partition[CharacterRange["A", "G"], 2, 1, {-1}] /. {a_, b_} :> Sequence[{a, b}, {b, a}]), VertexLabels -> "Name"]
Graph[Flatten[Outer[{#1 -> #2, #2 -> #1} &, {"A", "B"}, CharacterRange["C", "G"]]~Join~{"A" -> "B", "B" -> "A"}], VertexLabels -> "Name"]
У меня нет специального опыта работы с семью узлами (но с тремя), но не должно быть проблем с репликацией каждого узла друг с другом. Я также делаю это с тремя узлами, которые я использую в наших проектах. CouchDB построена для поддержки многоуровневой мастер-настройки узлов. Но вы также правы, думая об используемой полосе пропускания при репликации на такое количество узлов с большим количеством подключений. Я предлагаю вам следить за этим.
CouchDB следует теореме CAP с AP: доступность и допуск к разделам. Это означает, что данные в конечном итоге являются консистентными (см. http://guide.couchdb.org/draft/consistency.html). Поэтому вы также должны подумать о разделении ваших данных, что приведет к другой настройке, которую вы показали выше.
Или вы можете посмотреть на CouchDB 2.0, который был выпущен 20 сентября. Теперь CouchDB поддерживает кластеризацию. Я уверен, что это может решить вашу проблему. Предлагаемая установка заключается в запуске кластера с как минимум (естественно) тремя узлами (n), содержащими по 8 шардов (q) в каждом узле (https://blog.couchdb.org/2016/08/01/couchdb-2-0-architecture/). Использование репликации все еще возможно, и я думаю, что это может быть способом уменьшить вашу установку (хотя я не знаю, почему вы думаете об установке с семью узлами).