Настройка DFSN

Эллес поддерживает функциональность Distributed File System Namespaces (DFSN), предоставляя инструменты для работы с пространствами имен и их метаданными, а также обработки запросов клиентов и выдачи им перенаправлений на ресурсы общего доступа.

См. описание доступных подкоманд samba-tool в разделе «Администрирование DFSN».

Общие сведения

Технология DFSN предоставляет единое виртуальное представление для папок общего доступа, размещенных на разных файловых серверах. Конечный пользователь обращается к ресурсам в этом виртуальном представлении, не зная их фактического расположения. Виртуальное представление формируется в виде пространства имен.

Существуют два типа пространств имен:

Доступ пользователей к ресурсам в пространствах имен осуществляет через обслуживающие их серверы DFSN.

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

Для доступа к целевым папкам используется механизм перенаправлений. При обращении к ссылке сервер пространства имен возвращает клиенту список доступных целевых папок. Этот список содержит адреса серверов, которые могут обслужить запрос. Клиент выбирает конечный сервер с учетом доступности, принадлежности к сайту в структуре службы каталогов и приоритета (если выполнены соответствующие настройки).

Обмен данными при работе DFSN выполняется по протоколу SMB2.

Автономные пространства имен

Автономное пространство имен обслуживается одним сервером DFSN. Все запросы клиентов на доступ к общим папкам обрабатываются этим сервером напрямую, без взаимодействия с контроллерами домена. Метаданные пространства имен в службе каталогов не сохраняются.

standalone namespace
Рис. 1. Схема доступа клиента к общей папке в автономном пространстве имен

Порядок взаимодействия:

  1. Клиент отправляет запрос по протоколу SMB2 на сервер DFSN, используя UNC-имя вида \\<FQDN сервера DFSN>\<пространство имен>\<имя папки> (например, \\dfsnserver01.elles.inno.tech\namespace1\documents). Сервер DFSN возвращает список доступных целевых попок, отсортированный в порядке уменьшения доступности.
    Например, если клиент и файловый сервер 2 находятся в одном сайте, а файловый сервер 1 — в другом, то первым в списке будет \\fileserver2.elles.inno.tech\namespace1\documents, а вторым — \\fileserver1.elles.inno.tech\namespace1\documents.

  2. Клиент направляет запрос по протоколу SMB2 на выбранный целевой файловый сервер для доступа к общей папке.
    Например, для папки documents запрос будет направлен на \\fileserver2.elles.inno.tech\namespace1\documents.

Клиенты используют кэширование: при повторных обращениях к общей папке по имени пространства имен запросы на сервер DFSN могут не выполняться, а доступ происходит напрямую к целевому файловому серверу.

Доменные пространства имен

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

Метаданные доменного пространства имен хранятся в контейнере DFS-Configuration, расположенном в объекте System доменного раздела.

Пример:

CN=Namespace1,CN=Namespace1,CN=Dfs-Configuration,CN=System,DC=elles,DC=inno,DC=tech

Объект метаданных пространства содержит:

  • информацию об общих папках (каждая папка может ссылаться на несколько целевых серверов);

  • сведения о целевых папках на файловых серверах.

domain based namespace
Рис. 2. Схема доступа клиента к общей папке в доменном пространстве имен

Порядок взаимодействия:

  1. Клиент обращается к общей папке по UNC-имени вида \\<FQDN ресурсного домена>\<пространство имен>\<имя папки> (например, \\elles.inno.tech\namespace1\documents).
    Если в кэше клиента нет актуальных данных о сервере DFSN, выполняется запрос по протоколу SMB2 к контроллеру домена для поиска оптимального сервера DFSN.
    В ответ возвращается список серверов DFSN, отсортированный по оптимальности. Клиент выбирает первый в списке и кэширует его.

  2. Клиент отправляет запрос по протоколу SMB2 выбранному серверу DFSN с путем к общей папке.

  3. Если у сервера DFSN нет кэшированных данных о целевых файловых серверах, он выполняет запрос по протоколу LDAP к контроллеру домена для получения метаданных пространства имен. Запрошенные данные сохраняются в кэше контроллера домена.

  4. Клиент отправляет запрос по протоколу SMB2 на целевой файловый сервер (например, для папки documents запрос будет направлен на \\fileserver2.elles.inno.tech\namespace1\documents).

Дополнительно при поиске сервера DFSN клиент взаимодействует с контроллерами домена:

  1. Если доменное имя ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к текущему контролеру домена для поиска домена ресурса.
    В ответ возвращается список доменов в текущем и доверенных лесах.

  2. Если контроллер домена ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к текущему контроллеру домена для поиска контроллера в домене ресурса.
    В ответ сначала возвращаются контроллеры в сайте клиента, затем — в других сайтах с учетом приоритета; если приоритет не задан, внутри сайта порядок случайный.

  3. Если сервер DFSN в домене ресурса отсутствует в кэше, клиент выполняет запрос по протоколу SMB2 к найденному контроллеру домена.
    В ответ сначала перечисляются серверы DFSN в сайте клиента, а затем — в других сайтах с учетом приоритет; если приоритет не задан, внутри сайта порядок случайный.

Управление DFSN

Управление функциональностью DFSN может выполняться с помощью отдельного клиента, предназначенного для администрирования пространств имен. Такой клиент предоставляет интерфейс для взаимодействия с выбранным сервером DFSN, через который выполняется получение метаданных и внесение изменений. Управление не требует прямого доступа к каждому файловому серверу: операции выполняются централизованно через сервер DFSN, который отвечает за хранение и обработку метаданных (Рис. 3).

dfsn management
Рис. 3. Схема управления DFSN

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

Управляющий клиент отправляет RPC-запросы серверу DFSN. Сервер обрабатывает эти запросы и выполняет чтение или обновление метаданных пространств имен.

Поддерживаются следующие сценарии управления:

  • просмотр, создание, удаление и изменение атрибутов пространства имен;

  • добавление и удаление серверов DFSN, обслуживающих пространство имен;

  • просмотр, добавление, удаление и изменение общих папок в пространстве имен;

  • просмотр, добавление, удаление и изменение целевых файловых серверов для общей папки.

Ограничения

В текущей версии Эллес:

  • по умолчанию работа ведется с доменными пространствами имен в режиме Windows Server 2008;

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

    Для этой цели должны использоваться сторонние инструменты (см., например, описание способов настройки синхронизации каталога SYSVOL в разделе «Репликация каталога SYSVOL»).

Предварительные требования

Для успешной настройки пространства имен DFSN должны быть выполнены следующие требования:

  1. Сервер Эллес введен в домен в роли контроллера домена.

    См. инструкции по развертыванию Эллес в разделе «Создание домена / присоединение к домену».
  2. Клиенты введены в домен и корректно разрешают DNS-имена серверов, которые будут использоваться в качестве серверов пространства имен, и файловых серверов, где размещаются целевые папки.

  3. Пользователь, от имени которого будет выполняться настройка, имеет необходимые права:

    • права локального администратора на сервере Эллес, на котором будет выполняться настройка;

    • при настройке доменного пространства имен — права доменного администратора (член группы Domain Admins).

  4. На файловых серверах созданы и настроены общие папки с требуемым набором разрешений.

Настройка работы Эллес в роли сервера DFSN

Если требуется, чтобы экземпляр Эллес в роли сервера DFSN обслуживал пространство имен, выполните следующие действия по настройке:

  1. Подготовьте на сервере корневой каталог пространства имен и задайте требуемые разрешения. Например:

    sudo mkdir -p /srv/elles/dfsroot
    sudo chown root:root /srv/elles/dfsroot
    sudo chmod 0755 /srv/elles/dfsroot
  2. Добавьте корневой каталог в конфигурационный файл Эллес 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.
  3. Проверьте корректность внесенных изменений:

    samba-tool testparm

Внесенные в конфигурацию изменения применяются автоматически через 5 секунд после сохранения файла smb.conf.

Настройка пространства имен

Чтобы настроить пространство имен:

  1. Создайте корневой каталог пространства имен:

    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"
  2. Убедитесь, что пространство имен создано корректно. Например:

    samba-tool dfsn root get "\\\\elles.inno.tech\\namespace1"
  3. Добавьте при необходимости другие серверы для обслуживания пространства имен. Например:

    samba-tool dfsn root target create "\\\\elles.inno.tech\\namespace1" --target-path="\\\\dfsnserver02.elles.inno.tech\\dfsroot"
  4. Создайте папки. Например:

    samba-tool dfsn folder create "\\\\elles.inno.tech\\namespace1\\documents" "\\\\fileserver01.elles.inno.tech\\shared\\documents"
  5. Добавьте целевые папки. Например:

    samba-tool dfsn folder target create "\\\\elles.inno.tech\\namespace1\\documents" "\\\\fileserver02.elles.inno.tech\\shared\\documents"
  6. При необходимости настройте параметры перенаправления. Например, измените время нахождения данных о перенаправлениях в кэше клиентов:

    samba-tool dfsn root set "\\\\elles.inno.tech\\namespace1" \
        --ttl=900
  7. Убедитесь, что запросы клиентов к ресурсам в пространстве имен выполняются успешно.