Распределенная файловая система Windows (Distributed File System, DFS) позволяет пользователям искать, просматривать файлы и работать с ними в сети из одного центрального пункта. Если система настроена правильно, пользователям не приходится разбираться в сложных принципах функционирования сети и вводить длинные адреса UNC для поиска файлов. В Windows 2000 Server система DFS установлена по умолчанию, а соответствующая служба запускается автоматически. Давайте посмотрим, как можно воспользоваться этой замечательной новой функцией.
Выбор конфигурации DFS

Существует два типа систем DFS: автономные и отказоустойчивые. В автономной системе DFS все информация хранится на одном сервере. Недостаток такой конфигурации заключается в том, что при поломке сервера перестает функционировать вся система DFS. Отказоустойчивая конфигурация предусматривает хранение информации DFS в Active Directory (AD), обеспечивая одновременно защиту от сбоев и условия для реплицирования данных.

Создание корня DFS

Для получения доступа к общим папкам DFS необходимо создать корень DFS. В корне хранятся все ссылки на общие папки и файлы. Я бы назвал корень DFS пустым контейнером, в котором содержатся ссылки на все сетевые папки, к которым я открыл доступ. Прежде чем приступать к настройке корня DFS, рекомендую составить список всех сетевых общих папок в системе – он пригодится при создании ссылок DFS, о которых будет подробнее рассказано чуть позже.

Чтобы создать корень DFS:

1…В меню «Пуск» (Start) выберите пункт «Администрирование | Распределенная файловая система» (Administrative Tools | Distributed File System), чтобы попасть в консоль «Управление компьютером» Microsoft (Microsoft Management Console), как показано на рис. A.


Рисунок A.

2…Нажмите правой кнопкой мыши на объекте «Распределенная файловая система» и выберите пункт «Создать новый корень DFS» (New DFS Root), чтобы запустить Мастер создания нового корня DFS (New DFS Root Wizard).
3…Нажмите кнопку «Далее» (Next) и выберите в диалоговом окне, показанном на рис. B, тип корня DFS, который хотите создать.


Рисунок B.

4…Выберите вариант «Создать доменный корень DFS» (Create a domain DFS root) и нажмите «Далее».
5…Введите полное допустимое имя домена хост-сервера (Fully Qualified Domain Name, FQDN), как показано на рис. C, и нажмите «Далее».


Рисунок C.

6…В диалоговом окне, показанном на рис. D, выберите соответствующую корню DFS общую папку и нажмите «Далее».


Рисунок E.

После создания корня DFS можно проверить его состояние, нажав правой кнопкой мыши на корне и выбрав пункт «Проверить состояние» (Check Status), как показано на рис. F. Если все настроено правильно, возле корня появится значок в виде зеленой галочки в белом кружке.


Рисунок F.

После завершения настройки корня DFS можно приступать к созданию ссылок на общие сетевые папки. Для этого выполните следующие действия:

1…Нажмите правой кнопкой мыши на корне DFS и выберите пункт «Создать новую ссылку DFS» (New DFS Link).
2…Введите имя ссылки.
3…Нажав кнопку «Обзор» (Browse), выберите общую папку, как показано на рис. G, и нажмите «OK».


Рисунок G.


Рисунок H.

После создания ссылок на нужные общие файлы в сети следует опубликовать их в Active Directory.

1…В папке «Администрирование» выберите объект «Пользователи и компьютеры Active Directory» (Active Directory Users And Computers). Нажмите правой кнопкой мыши на домене и выберите пункт «Создать | Общая папка» (New | Shared Folder).
Введите имя и сетевой адрес общей папки DFS, как показано на рис. I, и нажмите «OK».


Рисунок I.

2…После публикации ссылки на общий ресурс в AD, пользователи смогут увидеть его, изучив карту диска или открыв «Мое сетевое окружение | Вся сеть | Просмотреть все содержимое сети | Каталог | Имя общего ресурса» (My Network Places | Entire Network | View Entire Contents | Directory | The name of your share) (в нашем примере – «ACME Corporation», как показано на рис. J и K).


Рисунок J.


Рисунок K.

Репликация

Функция репликации позволяет публиковать папки и ссылки DFS в других корнях DFS домена, обеспечивая надежную отказоустойчивость на случай, если сервер выйдет из строя или потребует перезагрузки. Реплицировать можно как общие папки DFS, так и корень.

Самый важный элемент системы DFS – это корень. Если корень DFS поврежден, а репликация не настроена, все дерево папок DFS окажется недоступным.

Чтобы настроить репликацию корня DFS, нажмите правой кнопкой мыши на корне и выберите пункт «Создать новую реплику корня» (New Root Replica). Введите имя сервера, на который хотите скопировать корень. Чтобы настроить политику репликации:

1…Откройте объект «Распределенная файловая система» в папке «Администрирование».
2…Нажмите правой кнопкой на ссылке и выберите пункт «Создать новую реплику» (New Replica), чтобы вызвать диалоговое окно «Добавление новой реплики» (Add A New Replica), показанное на рис. L.

30 июня 2011 в 09:55

Опытные мелочи-10, или «DFS и отказоустойчивость»

  • Системное администрирование

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

Для начала повторю свои эмпирические убеждения о том, что не стоит устраивать файловый кластер, средствами DFS. Не для этих целей DFS создавалась. И чтобы расставить все точки над I вот мои аргументы:

  • В механизме работы DFS нет способа определить какая реплика файла является правильной.
  • При наличие нескольких реплик в одном сайте, DFS сама выбирает куда отправить пользовательский запрос, на реплику А или на реплику Б, ориентируясь при этом, судя по всему по загруженности сервера-хранилища. (Есть некоторые настройки порядка выбора реплики, но сути они не меняют: если в пределах сайта несколько реплик, то выбор конкретной из них может быть непредсказуем.
  • Эти нюансы позволяют смоделировать ситуацию, когда пользователь А обратится на реплику А и будет работать там с данными, а пользователь Б обратится на реплику Б и будет там работать с данными. В результате будут образованы ДВЕ ветки измененных данных, и DFS не будет знать какие данные правильные, а просто выберет те, которые последние по времени изменения. Можете себе представить что будет твориться в этой ситуации с файловым хранилищем, или того хуже, с базами данных
  • Ну и стоит отметить то, что репликация открытых файлов может задерживаться на неопределенное время. Самый простой пример - это пользователи, которые не закрывают офисные документы уходя домой.
Все вышеописанное позволяет сказать что DFS лучше всего подходит для передачи данных в филиалы, синхронизации редкоизменяемых данных (приказы, рапоряжения, архивы) и подобных задач. Однако можно поступить чуть хитрее и задействовать DFS, возможно не совсем обычным, но тем не менее полезным способом.

Можно построить на базе DFS своего рода онлайн-реплику, которая не будет работать основное время (а значит бОльшая часть проблем с синхронизацией данных не проявится), и которую можно будет включить, в случае отказа основной реплики.
Выглядеть это может например вот так:
Здесь (на примере папки Department) создано две реплики одной папки, настроена группа репликации и задания репликации (все это делается мастером настройки и не вызовет у вас никаких проблем). Самый смак идеи в том, что одна из ссылок на сервера хранилища - отключена, т.е. реплика есть, репликация между серверами проходит как задано, но пользователи, обращающиеся через DFS в эту папку будут перенаправляться исключительно на первый, активный сервер.

Второй сервер будет реплицировать данные по мере возможности, и будет как бы «на подхвате». В случае какой-то нештатной ситуации, можно будет произвести рокировку и включить линк уже на второй сервер, а линк на первый - выключить и пользователи снова попадут к своим родным данным, которые будут настолько актуальны, насколько DFS-репликация была способна сделать (на практике это от полной актуальности, т.е. состояния 0,5-2 сек давности, до 2-3 дней в случае с открытыми файлами, которые не реплицируются пока не будут закрыты, т.е. разблокированы приложением).

Казалось бы здорово! Срочно побежали делать эту супер-систему! Но кроме всех хороших моментов, есть и не очень хорошие:

  • Потребуется минимум двукратный запас по месту на каждом томе для скрытой папки DfsrPrivate (служебная папка для репликации данных). Учитывая двойные расходы на хранение данных (на обоих серверах хранится одно и то же, причем в один момент времени работают только с одним) это уже не выглядит столь заманчивым, т.к. места под такую отказоустойчивость нужно отвести минимум в 4 раза больше чем самих данных
  • У пользователей иногда могут наблюдаться тормоза в момент работы с DFS. Точных причин мне понять так и не удалось, но всегда это было следствием наличия нескольких реплик, и ненулевой нагрузки на сеть. Как только реплика оставалась одна - тормоза становились исчезающе малы. Это совершенно точно не было связано с работающей репликацией, очень было похоже на какие-то проблемы с резолвингом DFS-имен.
  • Чтобы пользователи увидели новую реплику, на которую вы их переключили в «час Х», им скорее всего придется перегрузить компьютеры, в противном случае они будут пытаться идти по старому пути.
  • Автоматическое переключение на работающую реплику - я не сделал, т.к. стандартных методов для этого нет, а писать чудо-скрипт в ситуации когда сама технология имеет столько минусов, показалось мне безрассудством.
Как видите в описанном примере кроме довольно весомых плюсов. есть также и немаленькие минусы, поэтому расставляйте приоритеты, взвешивайте ЗА и ПРОТИВ, и решайте сами как поступать в вашей конкретной ситуации.

Кстати, по словам знающих, в среде Windows Server 2008 (R2) DFS (и особенно ее служба репликации) была кардинально улучшена, и, возможно, часть проблем была успешно решена. Попробуйте - может быть там предложенная схема будет работать куда лучше.

Продолжение следует.