Наик Дайлип - Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003
Службу HSM также уместно сравнить с виртуальной памятью. Виртуальная память – это физически не существующая область памяти, т.е. память, воспринимаемая компьютером, однако не установленная на самом деле. Операционные системы создают виртуальную память, выгружая содержимое неиспользуемых областей памяти (дорогостоящего и быстродействующего интерактивного ресурса) на жесткий диск (относительно недорогой и медленный носитель). После этого освободившаяся память выделяется другому процессу. При попытке другого процесса получить доступ к памяти, выгруженной на диск, процесс временно приостанавливает работу, ожидая, пока содержимое памяти не будет восстановлено с диска. После восстановления области памяти процесс может продолжать нормальную работу. Служба HSM выполняет аналогичную функцию, однако в этом случае дорогим и быстрым ресурсом считается дисковое пространство, а недорогим – ленточный или другой носитель, например оптические диски.
Некоторые продукты HSM интегрируют в себе службы резервного копирования. Чтобы достичь баланса в функциональности HSM, а также избежать нарушений в нормальной работе центров хранения данных, продукты HSM устанавливают определенные граничные параметры. Как только размер свободного дискового пространства достигает определенного граничного параметра, продукт HSM начинает работу даже в рабочее время сервера, перемещая некоторые файлы на неинтерактивный носитель и тем самым освобождая дисковое пространство.
7.8.1 Модуль RSS
Операционная система Windows 2000 Server содержит модуль RSS (Remote Storage Services), который предоставляет функции управления иерархическим хранилищем (HSM). Служба RSS отслеживает свободное пространство и статистику обращения к файлам на управляемых томах. Администратор хранилища устанавливает критерии минимального объема свободного дискового пространства, а также срок, в течение которого к файлу не должны обращаться, чтобы файл попал на неинтерактивный носитель, и т.д.
Служба RSS имеет специальный механизм, который периодически проверяет объем свободного дискового пространства, сканирует файлы для предварительного перемещения и, как только дисковое пространство сокращается ниже определенного минимума, отбрасывает предварительно перемещенные файлы (полное описание процесса предварительного перемещения приводится несколько ниже). Неиспользованные файлы перемещаются на неинтерактивный носитель, например на магнитную ленту, в соответствии с набором критериев, которые рассматриваются далее. Для этого файла устанавливается точка повторной обработки, которая содержит информацию, Необходимую для перемещения файла.
Файлы для перемещения выбираются на основе политик, установленных администратором. Эти политики описывают:
объем свЬбодного дискового пространства, который должен быть доступен;
последнюю дату и время доступа к файлу;
размер файла;
определенные администратором правила включения и исключения файлов и каталогов.
Модуль 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 и подготовку списка файлов, которые должны
быть перемещены. Этот список составляется на основе критериев, определенных администратором. Агент файловой системы сообщает список файлов ядру RSS. Как только ядро завершает предварительное перемещение файлов, агент файловой системы RSS добавляет файл в свою базу данных, содержащую список предварительно перемещенных файлов.
Как только свободное дисковое пространство становится меньше определенного граничного значения, установленного администратором, запускается автоматическое задание, запланированное агентом файловой системы RSS. Агент удаляет потоки данных файлов, которые были предварительно перемещены (переводит файл из предварительно перемещенного состояния в полностью перемещенное состояние). Перед окончательным перемещением агент файловой системы проверяет, не изменились ли файлы с момента предварительного перемещения. Эта проверка выполняется с помощью механизма журнала USN (см. главу 6).
Служба RSS не устанавливается по умолчанию, а предоставляется вместе с утилитой управления с графическим интерфейсом, которая поддерживает запуск на удаленном компьютере под управлением Windows. Графический интерфейс утилиты имеет несколько компонентов.
Компонент, программыПроводник Windows. Позволяет пользователям просматривать информацию о дате и времени предварительного перемещения файла или о расположении данных файла в удаленном хранилище; пользователи могут принудительно включить предварительное перемещение выбранных файлов (если обладают соответствующими разрешениями на доступ к этим файлам).
Компонент управления дисками. Отображает информацию о томе, например объем свободного и занятого дискового пространства, объем дискового пространства, занятого под предварительно перемещенные файлы, объем дискового пространства, занятый под указатели на файлы, и т.д.
Пользовательский интерфейс. Позволяет администратору отменять восстановление файла (перемещение с удаленного хранилища на диск).
Интерфейс управления. Позволяет устанавливать граничные значения, критерии выбора файлов для перемещения и т.д.