Настройка DFSN
Эллес поддерживает функциональность Distributed File System Namespaces (DFSN), предоставляя инструменты для работы с пространствами имен и их метаданными, а также обработки запросов клиентов и выдачи им перенаправлений на ресурсы общего доступа.
См. описание доступных подкоманд samba-tool в разделе
«Администрирование DFSN».
|
Общие сведения
Технология DFSN предоставляет единое виртуальное представление для папок общего доступа, размещенных на разных файловых серверах. Конечный пользователь обращается к ресурсам в этом виртуальном представлении, не зная их фактического расположения. Виртуальное представление формируется в виде пространства имен.
Существуют два типа пространств имен:
-
автономное пространство имен — хранит метаданные локально на одном сервере;
-
доменное пространство имен — хранит метаданные в службе каталогов и может обслуживаться несколькими серверами.
Доступ пользователей к ресурсам в пространствах имен осуществляет через обслуживающие их серверы DFSN.
Пространство имен состоит из ссылок на целевые папки, в которых хранятся каталоги и файлы. Одна ссылка может указывать на несколько целевых папок, расположенных на разных серверах. В этом случае клиент получает оптимальный вариант доступа: либо подключение к ближайшему серверу с точки зрения сетевой топологии и доступности, либо равномерное распределение нагрузки между доступными серверами.
Для доступа к целевым папкам используется механизм перенаправлений. При обращении к ссылке сервер пространства имен возвращает клиенту список доступных целевых папок. Этот список содержит адреса серверов, которые могут обслужить запрос. Клиент выбирает конечный сервер с учетом доступности, принадлежности к сайту в структуре службы каталогов и приоритета (если выполнены соответствующие настройки).
Обмен данными при работе DFSN выполняется по протоколу SMB2.
Автономные пространства имен
Автономное пространство имен обслуживается одним сервером DFSN. Все запросы клиентов на доступ к общим папкам обрабатываются этим сервером напрямую, без взаимодействия с контроллерами домена. Метаданные пространства имен в службе каталогов не сохраняются.
Порядок взаимодействия:
-
Клиент отправляет запрос по протоколу SMB2 на сервер DFSN, используя UNC-имя вида \\<FQDN сервера DFSN>\<пространство имен>\<имя папки> (например, \\dfsnserver01.elles.inno.tech\namespace1\documents). Сервер DFSN возвращает список доступных целевых попок, отсортированный в порядке уменьшения доступности.
Например, если клиент и файловый сервер 2 находятся в одном сайте, а файловый сервер 1 — в другом, то первым в списке будет \\fileserver2.elles.inno.tech\documents, а вторым — \\fileserver1.elles.inno.tech\documents. -
Клиент направляет запрос по протоколу SMB2 на выбранный целевой файловый сервер для доступа к общей папке.
Например, для папки documents запрос будет направлен на \\fileserver2.elles.inno.tech\documents.
Клиенты используют кэширование: при повторных обращениях к общей папке по имени пространства имен запросы на сервер DFSN могут не выполняться, а доступ происходит напрямую к целевому файловому серверу.
Доменные пространства имен
В доменных пространствах имен метаданные сохраняются в службе каталогов. Благодаря этому несколько серверов DFSN могут обслуживать одно и то же пространство имен, обеспечивая отказоустойчивость и балансировку нагрузки.
Метаданные доменного пространства имен хранятся в контейнере DFS-Configuration, расположенном в объекте System доменного раздела.
Пример:
CN=Namespace1,CN=Namespace1,CN=Dfs-Configuration,CN=System,DC=elles,DC=inno,DC=tech
Объект метаданных пространства содержит:
-
информацию об общих папках (каждая папка может ссылаться на несколько целевых серверов);
-
сведения о целевых папках на файловых серверах.
Порядок взаимодействия:
-
Клиент обращается к общей папке по UNC-имени вида \\<FQDN ресурсного домена>\<пространство имен>\<имя папки> (например, \\elles.inno.tech\namespace1\documents).
Если в кэше клиента нет актуальных данных о сервере DFSN, выполняется запрос по протоколу SMB2 к контроллеру домена для поиска оптимального сервера DFSN.
В ответ возвращается список серверов DFSN, отсортированный по оптимальности. Клиент выбирает первый в списке и кэширует его. -
Клиент отправляет запрос по протоколу SMB2 выбранному серверу DFSN с путем к общей папке.
-
Если у сервера DFSN нет кэшированных данных о целевых файловых серверах, он выполняет запрос по протоколу LDAP к контроллеру домена для получения метаданных пространства имен. Запрошенные данные сохраняются в кэше контроллера домена.
-
Клиент отправляет запрос по протоколу SMB2 на целевой файловый сервер (например, для папки documents запрос будет направлен на \\fileserver2.elles.inno.tech\documents).
Дополнительно при поиске сервера DFSN клиент взаимодействует с контроллерами домена:
-
Если доменное имя ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к текущему контролеру домена для поиска домена ресурса.
В ответ возвращается список доменов в текущем и доверенных лесах. -
Если контроллер домена ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к текущему контроллеру домена для поиска контроллера в домене ресурса.
В ответ сначала возвращаются контроллеры в сайте клиента, затем — в других сайтах с учетом приоритета; если приоритет не задан, внутри сайта порядок случайный. -
Если сервер DFSN в домене ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к найденному контроллеру домена.
В ответ сначала перечисляются серверы DFSN в сайте клиента, а затем — в других сайтах с учетом приоритета; если приоритет не задан, внутри сайта порядок случайный.
Управление DFSN
Управление функциональностью DFSN может выполняться с помощью отдельного клиента, предназначенного для администрирования пространств имен. Такой клиент предоставляет интерфейс для взаимодействия с выбранным сервером DFSN, через который выполняется получение метаданных и внесение изменений. Управление не требует прямого доступа к каждому файловому серверу: операции выполняются централизованно через сервер DFSN, который отвечает за хранение и обработку метаданных (Рис. 3).
Сервер DFSN по умолчанию выбирается автоматически: предпочтительно в пределах того же сайта, где находится клиент, либо в другом сайте. При необходимости сервер может быть указан явно.
Управляющий клиент отправляет RPC-запросы серверу DFSN. Сервер обрабатывает эти запросы и выполняет чтение или обновление метаданных пространств имен.
Поддерживаются следующие сценарии управления:
-
просмотр, создание, удаление и изменение атрибутов пространства имен;
-
добавление и удаление серверов DFSN, обслуживающих пространство имен;
-
просмотр, добавление, удаление и изменение общих папок в пространстве имен;
-
просмотр, добавление, удаление и изменение целевых файловых серверов для общей папки.
Ограничения
В текущей версии Эллес:
-
по умолчанию работа ведется с доменными пространствами имен в режиме Windows Server 2008;
-
не обеспечивается синхронизация содержимого между целевыми папками.
Для этой цели должны использоваться сторонние инструменты (см., например, описание способов настройки синхронизации каталога SYSVOL в разделе «Репликация каталога SYSVOL»).
Предварительные требования
Для успешной настройки пространства имен DFSN должны быть выполнены следующие требования:
-
Сервер Эллес введен в домен в роли контроллера домена.
См. инструкции по развертыванию Эллес в разделе «Создание домена / присоединение к домену». -
Клиенты введены в домен и корректно разрешают DNS-имена серверов, которые будут использоваться в качестве серверов пространства имен, и файловых серверов, где размещаются целевые папки.
-
Пользователь, от имени которого будет выполняться настройка, имеет необходимые права:
-
права локального администратора на сервере Эллес, на котором будет выполняться настройка;
-
при настройке доменного пространства имен — права доменного администратора (член группы
Domain Admins).
-
-
На файловых серверах созданы и настроены общие папки с требуемым набором разрешений.
Настройка работы Эллес в роли сервера DFSN
Если требуется, чтобы экземпляр Эллес в роли сервера DFSN обслуживал пространство имен, выполните следующие действия по настройке:
-
Подготовьте на сервере корневой каталог пространства имен и задайте требуемые разрешения. Например:
sudo mkdir -p /srv/elles/dfsroot sudo chown root:root /srv/elles/dfsroot sudo chmod 0755 /srv/elles/dfsroot
-
Добавьте корневой каталог в конфигурационный файл Эллес smb.conf:
[global] ... host msdfs = yes (1) ... [dfsroot] comment = DFS namespace root path = /srv/elles/dfsroot (2) msdfs root = yes (3) ...Описание параметров в примере:
1 Включение поддержки функциональности DFSN на сервере Эллес (значение по умолчанию). Эллес работает в роли сервера пространства имен DFSN с корневым каталогом, указанным в параметре pathв комбинации с параметромmsdfs root = yes, и отвечает на запросы клиентов к ресурсам общего доступа.2 Путь в файловой системе сервера, к которому привязан общий ресурс. 3 Признак того, что описываемый в разделе общий ресурс является корневым каталогом пространства имен DFSN. -
Проверьте корректность внесенных изменений:
samba-tool testparm
Внесенные в конфигурацию изменения применяются автоматически через 5 секунд после сохранения файла smb.conf.
Настройка пространства имен
Чтобы настроить пространство имен:
-
Создайте корневой каталог пространства имен:
samba-tool dfsn root create "\\\\<domain_name>\\<namespace_name>" "\\\\<target_host>\\<target_path>" -U Administrator
В подкоманде:
-
domain_name— имя домена, в котором настраивается пространство имен; -
namespace_name— имя пространства имен; -
target_host— имя хоста, NetBIOS-имя или полное доменное имя сервера, который будет обслуживать пространство имен; -
target_path— путь к каталогу на сервере, в котором будут размещаться ссылки на общие ресурсы.
Например:
samba-tool dfsn root create "\\\\elles.inno.tech\\namespace1" "\\\\dfsnserver01.elles.inno.tech\\dfsroot"
-
-
Убедитесь, что пространство имен создано корректно. Например:
samba-tool dfsn root get "\\\\elles.inno.tech\\namespace1"
-
Добавьте при необходимости другие серверы для обслуживания пространства имен. Например:
samba-tool dfsn root target create "\\\\elles.inno.tech\\namespace1" \ "\\\\dfsnserver02.elles.inno.tech\\dfsroot" -
Создайте папки. Например:
samba-tool dfsn folder create "\\\\elles.inno.tech\\namespace1\\documents" \ "\\\\fileserver1.elles.inno.tech\\documents" -
Добавьте целевые папки. Например:
samba-tool dfsn folder target create "\\\\elles.inno.tech\\namespace1\\documents" "\\\\fileserver2.elles.inno.tech\\documents"
-
При необходимости настройте параметры перенаправления. Например, измените время нахождения данных о перенаправлениях в кэше клиентов:
samba-tool dfsn root set "\\\\elles.inno.tech\\namespace1" \ --ttl=900 -
Убедитесь, что запросы клиентов к ресурсам в пространстве имен выполняются успешно.
-
При необходимости настройте разрешения, определяющие видимость папки в пространстве имен для пользователей и групп, с помощью подкоманд
samba-tool dfsn access.
Например, чтобы назначить разрешения, используйте подкомандуsamba-tool dfsn access grant:samba-tool dfsn access grant "\\\\elles.inno.tech\\namespace1\\documents" "ELLES\\User1","ELLES\\Group1"
См. подробнее в подразделе «Управление доступом».
Настройка кэширования на контроллере домена Эллес
Кэширование используется для хранения в памяти контроллера домена Эллес часто запрашиваемых данных о доменах, контроллерах доменов, серверах пространств имен, сайтах и метаданных пространств имен. Это снижает задержки при обращении клиентов к ресурсам в доменных пространствах имен.
Все кэши заполняются данными от контроллера домена с FSMO-ролью PDC Emulator или от другого контроллера домена, если контроллер домена с FSMO-ролью PDC Emulator недоступен.
Обновление кэшей выполняется:
-
при запуске и перезапуске службы
smbd; -
периодически — с интервалом, заданным соответствующим параметром
smbd:<имя_кэша>_refresh_interval_s; -
для некоторых кэшей — дополнительно при изменении соответствующих данных.
Параметры настраиваются в разделе global файла smb.conf.
Кэш доменных имен (Domain Name Referral Cache, DNRC)
Содержит NetBIOS- и DNS-имена:
-
локального домена;
-
всех доверенных доменов текущего леса;
-
доменов в доверенных лесах.
Используется для определения доменов, в которых клиент имеет доступ к общим ресурсам в пространствах имен (см. схему маршрутизации).
Параметр, задающий интервал обновления: smbd:dnrc_refresh_interval_s.
Значение по умолчанию: 12 часов (43200 секунд).
Пример изменения значения в smb.conf:
[global]
...
smbd:dnrc_refresh_interval_s = 28800
...
Кэш контроллеров домена (Domain Controller Referral Cache, DCRC)
Содержит NetBIOS- и DNS-имена контроллеров доменов для доменов из кэша доменных имен.
Используется для определения контроллеров домена, которые могут выдать клиенту перенаправление на серверы, обслуживающие пространство имен, где размещается запрошенный клиентом ресурс (см. схему маршрутизации).
Параметр, задающий интервал обновления: smbd:dcrc_refresh_interval_s.
Значение по умолчанию: 10 минут (600 секунд).
Пример изменения значения в smb.conf:
[global]
...
smbd:dcrc_refresh_interval_s = 1200
...
Кэш серверов домена (Domain Server Referral Cache, DSRC)
Содержит NetBIOS- и DNS-имена серверов — хостов пространств имен для доменов из кэша доменных имен.
Используется для определения серверов, обслуживающих пространство имен, где размещается запрошенный клиентом ресурс (см. схему взаимодействия).
Параметр для настройки интервала обновления отсутствует.
Записи удаляются:
-
если не обновлялись более 5 минут (300 секунд);
-
количество записей для серверов с известным доменом превышает 1000;
-
количество записей для серверов без определенного домена превышает 1000.
| Удаляется запись с самым ранним временем обращения (наиболее устаревшая запись). |
Кэш подсетей сайтов (Subnet Site Cache, SSC)
Сопоставляет корневые серверы пространств имен и контроллеры домена с сайтами на основе IP-адресов.
Используется для определения сайта, где находится корневой сервер пространства имен или контроллер домена, который может выдать клиенту перенаправление на сервер, обслуживающий пространство имен с запрошенным клиентом ресурсом (см. схему взаимодействия).
Параметр, задающий интервал обновления: smbd:ssc_refresh_interval_s.
Значение по умолчанию: 12 часов (43200 секунд).
Пример изменения значения в smb.conf:
[global]
...
smbd:ssc_refresh_interval_s = 28800
...
Кэш сайтов клиентов (Client Site Cache, CSC)
Сопоставляет клиентов (компьютеры или пользователи) с сайтами на основе IP-адресов и сетевых атрибутов.
Используется для определения оптимального сервера для обслуживания запроса с учетом расположения клиента (см. схему маршрутизации).
Параметр для настройки интервала обновления отсутствует.
Записи удаляются:
-
если не обновлялись более 5 минут (300 секунд);
-
количество записей для клиентов с известным сайтом превышает 1000;
-
количество записей для клиентов без определенного сайта превышает 1000.
| Удаляется запись с самым ранним временем обращения (наиболее устаревшая запись). |
Кэш стоимости маршрутов между сайтами (Site Cost Cache, SCC)
Хранит информацию о стоимости маршрутов между сайтами.
Используется для определения оптимального сервера для обслуживания запроса с учетом расположения клиента (см. схему маршрутизации).
Параметр, задающий интервал обновления: smbd:scc_refresh_interval_s.
Значение по умолчанию: 12 часов (43200 секунд).
Пример изменения значения в smb.conf:
[global]
...
smbd:scc_refresh_interval_s = 28800
...
Кэш метаданных (Metadata Cache)
Содержит информацию о пространствах имен, обслуживающих их серверах, папках, целевых папках и настройках, определенных в пространствах имен.
Используется при непосредственной обработки запроса клиента (см. схему взаимодействия).
Параметр, задающий интервал обновления: smbd:mc_refresh_interval_s.
Значение по умолчанию: 1 час (3600 секунд).
Пример изменения значения в smb.conf:
[global]
...
smbd:mc_refresh_interval_s = 1800
...
Сводная таблица кэшей DFSN на контроллере домена Эллес
| Кэш | Назначение | Что хранит | Где используется | Параметр обновления | Интервал по умолчанию / ограничения |
|---|---|---|---|---|---|
Domain Name Referral Cache |
Определение домена, где расположен ресурс |
NetBIOS- и DNS-имена локального домена, доверенных доменов леса и доверенных лесов |
Выбор домена |
|
12 ч (43200 с) |
Domain Controller Referral Cache |
Выбор контроллера домена |
Список контроллеров для доменов из DNRC |
Выдача клиенту перенаправления на контроллер домена |
|
10 мин (600 с) |
Domain Server Referral Cache |
Выбор сервера пространства имен DFSN |
Серверы — хосты доменных пространств имен DFSN |
Определение сервера, обслуживающего пространство имен |
Отсутствует |
Ограничения:
|
Subnet Site Cache |
Привязка серверов и контроллеров домена к сайтам |
Соответствие IP → сайт для контроллеров домена и корневых серверов DFSN |
Выбор сервера с учетом сайта |
|
12 ч (43200 с) |
Client Site Cache |
Привязка клиента к сайту |
Соответствие клиент → сайт |
Выбор оптимального сервера для клиента |
Отсутствует |
Ограничения:
|
Site Cost Cache |
Учет стоимости маршрутов между сайтами |
Стоимости маршрутов между сайтами |
Маршрутизация между сайтами |
|
12 ч (43200 с) |
Metadata Cache |
Обработка структуры пространства имен DFSN |
Пространства имен, серверы, папки, целевые папки, настройки |
Непосредственная обработка запроса |
|
1 ч (3600 с) |
Обновление кэшей при отсутствии данных
Запрос данных из кэша может приводить к следующим результатам:
-
кэш пуст — в этом случае вызывается функция обновления кэша и запрос повторяется;
-
кэш не пуст, но запрашиваемых данных в нем нет — в зависимости от состояния флага, контролируемого параметром конфигурации
dfs:refresh_cache_on_cache_miss:-
если флаг установлен (
dfs:refresh_cache_on_cache_miss = yes), вызывается функция обновления кэша и запрос повторяется; -
если флаг не установлен (
dfs:refresh_cache_on_cache_miss = no; по умолчанию), запрос завершается ошибкой.
-
Чтобы установить флаг, добавьте параметр dfs:refresh_cache_on_cache_miss со значением yes в раздел global в конфигурационном файле smb.conf:
[global]
...
dfs:refresh_cache_on_cache_miss = yes
...
Чтобы вернуться к поведению по умолчанию, удалите параметра из файла smb.conf или задайте в нем значение no.