Управление серверами пространства имен

Для управления серверами пространств имен с помощью утилиты samba-tool используется группа подкоманд dfsn root target.

См. описание последовательности настройки пространства имен в разделе «Настройка DFSN».

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

Сервер пространства имен (сервер DFSN) — это ключевой компонент распределенной файловой системы, который хранит корневой каталог DFS и обрабатывает запросы клиентов на доступ к ресурсам. Когда клиент запрашивает доступ к файлу или папке, он отправляет серверу DFSN запрос, в ответ на который получает список доступных целевых серверов или папок с учетом их приоритетов.

Выбор оптимального сервера зависит от нескольких факторов: класса приоритета (например, GlobalHigh или SiteCostLow), ранга (от 0 до 31, где 0 — самый высокий ранг), стоимости межсайтовых связей (если для пространства имен включена настройка --enable-site-costing) и ограничений по сайту (настройка --enable-insite-referrals исключает ресурсы из других сайтов). Сервер DFSN анализирует метаданные пространства имен через LDAP, определяет принадлежность каждого ресурса к сайту и формирует итоговый список в порядке убывания приоритета.

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

Ограничения

Корневой общий ресурс (root target share) используется исключительно для хранения служебных метаданных.

Корневой каталог пространства имен (например, \\elles.inno.tech\dfsroot) является системным контейнером и не предназначен для хранения пользовательских данных.

Текущая реализация не обеспечивает сохранность файлов, размещенных непосредственно в корне пространства имен. При изменении конфигурации DFSN (добавление/удаление папок, изменение структуры) или при перезапуске сервиса inno-samba содержимое корневого каталога может быть полностью перезаписано или очищено.

Пример недопустимой структуры:

\\elles.inno.tech\dfsroot\
  ├── file1.txt (запрещено!)
  └── file2.txt (запрещено!)

Размещение пользовательских файлов в корне пространства имен приводит к их безвозвратной потере и рассматривается как нарушение модели эксплуатации DFSN в реализации Эллес.

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

Формат вызова:

samba-tool dfsn root target create <dfs_path> <target_path> [options]

В качестве обязательных аргументов ожидаются:

  • путь к корню пространства имен, в которое требуется добавить сервер, в формате UNC-имени (например, \\elles.inno.tech\namespace1);

  • путь к целевому каталогу на добавляемом сервере в формате UNC-имени (например, \\dc02.elles.inno.tech\dfsroot).

Дополнительно могут быть указаны параметры, определяющие приоритет сервера при формировании списка перенаправления.

Параметры

Параметры вызова:

  • --server=DFSSERVERHOST — имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;

    Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется.
  • --referral-priority-class=CLASS — класс приоритета для целевого ресурса;

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

    Возможные значения:

    • GlobalHigh — наивысший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

    • SiteCostHigh — повышенный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • SiteCostNormal (по умолчанию) — стандартный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • SiteCostLow — пониженный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • GlobalLow — наименьший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту.

  • --referral-priority-rank=RANK — числовой ранг в рамках класса приоритета;

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

    Допустимый диапазон значений — от 0 (по умолчанию) до 31. Чем меньше число, тем выше ранг приоритета; нулевое значение соответствует наивысшему рангу приоритета.

  • --state=STATE — состояние целевого ресурса;

    Параметр определяет состояние целевого ресурса и управляет его видимостью для клиентов. Состояние может использоваться для временного исключения целевого ресурса из списка перенаправления без фактического его удаления.

    Возможные значения:

    • Online (по умолчанию) — целевой ресурс доступен и участвует в формировании списка перенаправления;

    • Offline — целевой ресурс исключается из списка перенаправления, но остается в конфигурации DFSN.

Примеры

Пример добавления нового сервера в доменное пространство имен с указанием класса и ранга приоритета:

samba-tool dfsn root target create "\\\\elles.inno.tech\\namespace1" \
    "\\\\dc02.elles.inno.tech\\dfsroot" \
    --referral-priority-class=GlobalHigh \
    --referral-priority-rank=1
...
Path                         TargetPath                             State  RefferalPriorityClass RefferalPriorityRank
----                         ----------                             ------ --------------------- --------------------
\\elles.inno.tech\namespace1 \\dc02.elles.inno.tech\dfsroot Online GlobalHigh            1

Получение информации о сервере пространства имен

Формат вызова:

samba-tool dfsn root target get <dfs_path> [<target_path>] [options]

В качестве обязательного аргумента ожидается путь к корню пространства имен и путь к целевому каталогу на конкретном сервере пространства имен (для получения информации о сервере) в формате UNC-имени.

Подкоманда возвращает следующую информацию о сервере пространства имен:

  • путь к серверу пространства имен;

  • состояние:

    • Online — целевой ресурс доступен и участвует в формировании списка перенаправления;

    • Offline — целевой ресурс исключается из списка перенаправления, но остается в конфигурации DFSN;

  • настройки приоритета:

    • класс приоритета:

      • GLOBAL_HIGH — наивысший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

      • SITE_COST_HIGH — повышенный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • SITE_COST_NORMAL — стандартный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • SITE_COST_LOW — пониженный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • GLOBAL_LOW — наименьший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

    • числовой ранг целевого ресурса внутри выбранного класса приоритета.

Параметры

Параметры вызова:

  • --server=DFSSERVERHOST — имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация.

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

Примеры

Пример получения информации о сервере пространства имен:

samba-tool dfsn root target get "\\\\elles.inno.tech\\namespace1" \
    "\\\\dc02.elles.inno.tech\\dfsroot"
...
Path                         TargetPath                             State  RefferalPriorityClass RefferalPriorityRank
----                         ----------                             ------ --------------------- --------------------
\\elles.inno.tech\namespace1 \\dc02.elles.inno.tech\dfsroot Online GlobalHigh            1

Изменение настроек сервера пространства имен

Формат вызова:

samba-tool dfsn root target set <dfs_path> <target_path> [options]

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

Подкоманда изменяет настройки указанного сервера пространства имен в соответствии с переданными значениями параметров.

Параметры

Параметры вызова:

  • --server=DFSSERVERHOST — имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;

    Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется.
  • --referral-priority-class=CLASS — класс приоритета для целевого ресурса;

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

    Возможные значения:

    • GlobalHigh — наивысший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

    • SiteCostHigh — повышенный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • SiteCostNormal (по умолчанию) — стандартный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • SiteCostLow — пониженный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

    • GlobalLow — наименьший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту.

  • --referral-priority-rank=RANK — числовой ранг в рамках класса приоритета;

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

    Допустимый диапазон значений — от 0 (по умолчанию) до 31. Чем меньше число, тем выше ранг приоритета; нулевое значение соответствует наивысшему рангу приоритета.

  • --state=STATE — состояние целевого ресурса;

    Параметр определяет состояние целевого ресурса и управляет его видимостью для клиентов. Состояние может использоваться для временного исключения целевого ресурса из списка перенаправления без фактического его удаления.

    Возможные значения:

    • Online (по умолчанию) — целевой ресурс доступен и участвует в формировании списка перенаправления;

    • Offline — целевой ресурс исключается из списка перенаправления, но остается в конфигурации DFSN.

Примеры

Пример изменения ранга приоритета сервера пространства имен:

samba-tool dfsn root target set "\\\\elles.inno.tech\\namespace1" \
    "\\\\dc02.elles.inno.tech\\dfsroot" \
    --referral-priority-rank=2
...
Path                         TargetPath                             State  RefferalPriorityClass RefferalPriorityRank
----                         ----------                             ------ --------------------- --------------------
\\elles.inno.tech\namespace1 \\dc02.elles.inno.tech\dfsroot Online GlobalHigh            2

Удаление сервера пространства имен

Формат вызова:

samba-tool dfsn root target remove <dfs_path> <target_path> [options]

В качестве обязательных аргументов ожидаются путь к корню пространству имен и путь к удаляемому серверу пространства имен в формате UNC-имени.

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

Если удаляемый сервер последний в пространстве имен, оно также удаляется.

Если при вызове передается дополнительный параметр --skip-confirm, операция выполняется без подтверждения.

Параметры

Параметры вызова:

  • --server=DFSSERVERHOST — имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация;

    Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется.
  • --cleanup — принудительная очистка данных о сервере в службе каталогов;

  • --skip-confirm — не запрашивать подтверждение операции.

Примеры

Пример удаления сервера пространства имен с запросом подтверждения:

samba-tool dfsn root target remove "\\\\elles.inno.tech\\namespace1" \
    "\\\\dc02.elles.inno.tech\\dfsroot"
Are you sure you want to perform this action?
Performing operation "Delete DFS Namespace root target" on Target "\\dc02.elles.inno.tech\dfsroot" [Y/n]: y
...

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

samba-tool dfsn root target remove "\\\\elles.inno.tech\\namespace1" \
    "\\\\dc02.elles.inno.tech\\dfsroot" \
    --skip-confirm \
    --cleanup
...

Получение списка серверов пространства имен

Формат вызова:

samba-tool dfsn root target list <dfs_path> [options]

В качестве обязательного аргумента ожидается путь к корневому каталогу пространства имен, информацию о серверах которого требуется получить, в формате UNC-имени (например, \\elles.inno.tech\namespace1);

По умолчанию подкоманда возвращает только список серверов, обслуживающих указанное пространство имен. Также доступно получение расширенного набора информации (при использовании опции --extended), включая:

  • состояние:

    • Online — целевой ресурс доступен и участвует в формировании списка перенаправления;

    • Offline — целевой ресурс исключается из списка перенаправления, но остается в конфигурации DFSN;

  • настройки приоритета:

    • класс приоритета:

      • GLOBAL_HIGH — наивысший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

      • SITE_COST_HIGH — повышенный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • SITE_COST_NORMAL — стандартный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • SITE_COST_LOW — пониженный приоритет среди целевых ресурсов с одной стоимостью связи между сайтом клиента и сайтом целевого ресурса;

      • GLOBAL_LOW — наименьший приоритет среди всех целевых ресурсов вне зависимости от принадлежности к сайту;

    • числовой ранг целевого ресурса внутри выбранного класса приоритета.

Параметры

Параметры вызова:

  • --server=DFSSERVERHOST — имя хоста (NetBIOS-имя) или полное доменное имя (FQDN) сервера пространства имен, используя соединение с которым будет выполнено изменение или запрошена информация.

    Этот параметр предназначен для использования только в исключительных случаях, когда необходимо явно указать сервер пространства имен (например, при нештатных ситуациях или тестировании). Задавать его при штатной эксплуатации не требуется.
  • --extended — включить в вывод информацию о конфигурации сервера пространства имен (состояние, настройки приоритета).

Примеры

Пример получения списка серверов, обслуживающих указанное пространство имен:

samba-tool dfsn root target list "\\\\elles.inno.tech\\namespace1"
List DFS root targets:
DFS path: \\elles.inno.tech\namespace1
...
Result:
\\DC01.ELLES.INNO.TECH\dfsroot
\\DC02.ELLES.INNO.TECH\dfsroot

Пример получения расширенной информации о серверах, обслуживающих указанное пространство имен:

samba-tool dfsn root target list "\\\\elles.inno.tech\\namespace1" --extended
List DFS root targets:
DFS path: \\elles.inno.tech\namespace1
...
Result:
\\DC01.ELLES.INNO.TECH\dfsroot
        State:                   2 (Online)
        Referral priority class: 0 (SITE_COST_NORMAL)
        Referral priority rank:  0
\\DC02.ELLES.INNO.TECH\dfsroot
        State:                   2 (Online)
        Referral priority class: 0 (SITE_COST_NORMAL)
        Referral priority rank:  0