Файлы для перемещения выбираются на основе политик, установленных администратором. Эти политики описывают:
объем свЬбодного дискового пространства, который должен быть доступен;
последнюю дату и время доступа к файлу;
размер файла;
определенные администратором правила включения и исключения файлов и каталогов.
Модуль RSS интегрируется в Windows 2000 следующим образом:
графический интерфейс программы Проводник Windows отмечает перемещенные файлы специальной пиктограммой;
в окне командной строки размер перемещенных файлов указывается в скобках;
приложение резервного копирования Windows NT координирует свои действия с модулем RSS; при резервном копировании файл открывается с параметром FILE_OPEN_NO_RECALL с помощью функции CreateFile, что позволяет обеспечить резервное копирование файла без перемещения файла обратно на диск;
задания модуля RSS передаются планировщику Windows NT, и расписанием заданий модуля RSS можно управлять, как расписанием остальных заданий;
ш служба индексации Windows 2000 распознает отсутствие изменений в файле, даже если файл был перемещен с диска в удаленное хранилище;
при доступе к файлу, расположенному в удаленном хранилище, сетевые задержки автоматически увеличиваются, что позволяет выполнять перемещение файла.
Модуль RSS работает с файлами, находящимися в одном из трех состояний.
Обычный файл, который находится на жестком диске.
Предварительно перемещенный файл, неименованный поток данных которого скопирован на неинтерактивный носитель, но еще не удален с диска. Предварительно перемещенный файл содержит точку повторной обработки
Перемещенный файл, неименованный поток данных которого перемещен на неинтерактивный носитель и удален с диска; файл отмечен как разреженный и имеет установленный атрибут FILE_ATTRIBUTE_OFFLINE. Точка повторной обработки файла устанавливается со специальным тегом, который называется IO_REPARSE_TAG_HSM.
На рис. 7.6 представлена архитектура модуля RSS. Этот модуль состоит из нескольких компонентов пользовательского режима и режима ядра, которые рассматриваются далее.
При получении доступа к перемещенному файлу драйвер фильтрации RSS перехватывает пакеты IRP и размещает их в очереди. Драйвер фильтрации RSS взаимодействует с агентом файловой системы RSS. В свою очередь, агент вызывает службы ядра RSS. Ядро получает данные и передает их драйверу фильтрации RSS, который восстанавливает данные файла фрагмент за фрагментом по мере их получения. Если для получаемых данных в очереди находится операция ввода-вывода, эта операция завершается. Полученные данные используются для завершения всех ожидающих в очереди операций ввода-вывода. Состояние файла (включая данные точки повторной обработки) обновляются, указывая, что файл больше не перемещен, а стал предварительно перемещенным.
Рис. 7.6. Архитектура RSS
При доступе к перемещенному файлу с помощью функции CreateFile с параметром FILE_OPEN_NO_RECALL пакеты IRP обрабатываются подобным образом, но файл не перемещается с магнитной ленты на диск. Данные восстанавливаются с ленты и передаются приложению без записи на диск. Обратите внимание: Windows 2000 поддерживает одновременное перемещение только одного файла с удаленного хранилища на магнитную ленту[17]. Это справедливо даже при наличии нескольких накопителей удаленного хранилища, когда допуск к обрабатываемым файлам осуществляется по двум путям, а сами файлы расположены на двух различных носителях в двух разных накопителях.
Ядро RSS работает в качестве клиента RSM (Removable Storage Management), использующего RSM для управления носителем. Для хранения подробной информации о носителе ядро RSS использует базу данных.
Агент файловой системы RSS отвечает за периодическое сканирование управляемых томов NTFS и подготовку списка файлов, которые должны
17
Подобное ограничение существует и в Windows Server 2003. Учитывая, что код технологии HSM лицензирован Microsoft у компании, ныне входящей в корпорацию Sun Microsystems, в следующей после Windows Server 2003 операционной системе ожидается наличие многих интересных функций.