Появление точек повторной обработки (reparse points) значительно усовершенствовало архитектуру файловой системы NTFS и подсистемы ввода-вывода Windows NT. Обратите внимание, что реализация точек повторной обработки потребовала изменения подсистемы ввода-вывода и NTFS. Возможности точек можно внедрить и в другие файловые системы, отличные от NTFS. Кроме того, точки повторной обработки обеспечивают работу следующих важнейших функций Windows:

■ символьные ссылки;

■ точки соединения каталогов;

■ точки монтирования томов;

■ служба SIS (Single Instance Storage);

■ служба удаленного хранения HSM (Hierarchical Storage Management).

Все эти возможности рассматриваются в разделах 10.2.10.1-10.2.10.4.

Точки повторной обработки - это объект каталога или файла NTFS. Точка может быть создана, удалена или изменена приложением, использующим Win32 API в целом и функции CreateFile, ReadFile, WriteFile в частности. Вспомните, что Win32 API предоставляет приложениям возможность создавать и менять определенные пользователем атрибуты файла или каталога. Поэтому точки повторной обработки можно представить в виде определенного пользователем атрибута, который обрабатывается специальным образом. Такая обработка включает в себя обеспечение уникальности элементов объекта атрибута и обработку в подсистеме ввода-вывода. Независимые разработчики программного обеспечения обычно создают следующие приложения:

■ утилиты пользовательского режима для создания, управления и удаления точек повторной обработки;

■ драйверы фильтрации файловой системы, реализующие возможности точек повторной обработки.

Структура тега точки повторной обработки Каждая точка повторной обработки состоит из тега и объекта данных

Рис. 10.1. Структура тега точки повторной обработки Каждая точка повторной обработки состоит из тега и объекта данных. Тег - это уникальное 32-разрядное число, назначаемое непосредственно Microsoft. Независимые производители могут запросить назначение специального тега. На рис. 10.1 показана структура тега повторной обработки, включая следующие элементы:

■ бит (М), который указывает, что тег принадлежит драйверу устройства от Microsoft;

■ бит (L), который указывает на значительные задержки при получении драйвером первого байта данных; в качестве примера можно указать службу HSM, при использовании которой получение данных с неинтерактивного носителя может осуществляться достаточно долго;

■ бит (N), который указывает, что файл или каталог представляют собой ссылку/перенаправление на другой файл или каталог;

■ зарезервированные биты;

■ фактическое 16-разрядное значение тега.

Объект данных точки повторной обработки может иметь размер до 16 Кбайт. Файловая система NTFS обеспечивает предоставление этого объекта данных драйверу устройства, созданному производителем. Объект данных предоставляется в процессе использования тбчки повторной обработки в подсистеме ввода-вывода.

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

Использование точки повторной обработки Как показано на рис

Рис. 10.2. Использование точки повторной обработки Как показано на рис. 10.2, для реализации возможностей точки повторной обработки применяется несколько этапов.

• 1. Средствами подсистемы Win32 приложение отправляет запрос на открытие файла. •

2. После проверок подсистема Win32 отправляет запрос выполняемому модулю Windows NT. .

3. Диспетчер ввода-вывода Windows NT создает пакет IRP (IRP_MJ_0PEN) и отправляет его NTFS. Пакет IRP перехватывается драйвером точки повторной обработки в файловой системе.

4. Драйвер фильтрации перехватывает пакет IRP, определяет процедуру завершения, которая будет вызвана после завершения обработки пакета IRP, и средствами диспетчера ввода-вывода отправляет пакет IRP драйверу NTFS.

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

6. Далее подсистема ввода-вывода вызывает каждый драйвер фильтрации (по одному за раз), который зарегистрировал процедуру завершения для этого пакета IRP. Процедурой завершения каждого драйвера фильтрации рассматривается код ошибки и тег повторной обработки в пакете IRP. Если драйвер не распознает тег как собственный, он вызывает диспетчер ввода-вывода, который должен вызвать процедуру завершения следующего драйвера. Предположим, что один из драйверов распознал тег точки повторной обработки. После этого драйвер может использовать данные точки для повторной отправки пакета IRP, измененного в соответствии с данными, предоставленными точкой повторной обработки; например, перед повторной отправкой пакета IRP может быть изменен путь к файлу.

7. Файловая система NTFS завершает обработку повторно отправленного пакета IRP. Типичным примером может служить изменение пути и успешное завершение запроса. Диспетчер ввода-вывода завершает запрос на открытие файла, после чего через процедуры завершения может быть вызван каждый драйвер фильтрации файловой системы. Наконец обработка пакета IRP завершается, и приложение получает дескриптор файла.

Если ни один драйвер фильтрации не распознает тег точки повторной обработки, запрос на открытие файла или каталога завершается неудачно.

Одним приложениям требуются сведения о наличии точек повторной обработки, в то время как другим они совершенно не нужны. К последним, например, относятся приложения Microsoft Office, поэтому при открытии документа Word, PowerPoint или Excel функции точки повторной обработки, которая перенаправляет запрос на открытие на другой том, во внимание не принимаются. Тем не менее некоторым приложениям, которые рекурсивно просматривают дерево каталогов, требуются сведения о возможности создания зацикленных путей. Приложения могут аннулировать функции точек повторной обработки, передав соответствующие параметры (FILE_OPEN_REPARSE_POINT) > в запросах CreateFile, DeleteFile и RemoveDir. Именно таким образом можно создавать, удалять и модифицировать точки повторной обработки. Функция GetVolumelnf ormation возвращает флаг FILE_SUPPORTS_REPARSE_POINTS. Функции FindFirstFile и FindNextFile возвращают флаг FILE_ATTRIBUTE_ REPARSE_POINT для указания на наличие точки повторной обработки.

Все точки повторной обработки тома NTFS индексируются в файле, который называется $Index и находится в каталоге \$Extend. Таким образом, приложение может быстро обнаружить все точки повторной обработки, которые существуют на томе.

Следует подчеркнуть, что в этом разделе описываются точки повторной обработки, которые являются неотъемлемой частью NTFS. Хотя файловая система FAT не поддерживает точки повторной обработки, независимые про изводители программного обеспечения или компания Microsoft могут создать другую файловую систему, которая будет отличаться от NTFS и поддерживать точки повторной обработки. Это весьма нетривиальная задача, но стоит обратить внимание, чта точки повторной обработки должны быть реализованы в трех областях.

1. Файловая система, например NTFS.

2. Подсистема ввода-вывода и набор функций Win32 API.

3. Утилиты и инструменты.

Очевидно, что Microsoft выполнила1 необходимый объем работ во всех трех областях и высока вероятность, что новая файловая система (в случае ее появления) также будет поддерживать точки повторной обработки.

В разделах 10.2.10.1-10.2.10^4 рассматриваются конкретные сферы применения точек повторной обработки.

10.2.10.1 Точки монтирования Томов В Windows NT 4.0 для монтирования томов требовалось использование буквы диска. Это ограничивало количество томов (всего можно было монтировать до 26 томов), которые могли использоваться в системе. В Windows 2000 разрешено монтирование тома без использования буквы диска. Но существуют и ограничения: ,

■ том может монтироваться только на локальный каталог, т.е. том не может быть смонтирован на сетевой ресурс;

■ том может быть смонтирован только на пустой каталог;

■ пустой каталог должен размещаться в томе NTFS (на данный момент только NTFS поддерживает точки повторной обработки).

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

Были добавлены и модифицированы API, которые предоставляют приложениям поддержку точек монтирования томов. Функция GetVolumelnformation с помощью флага показывает, поддерживает ли том точки монтирования. Функции FindFirstVolumeMountPoint и FindNextVolumeMountPoint используются для поиска точек монтирования томов. Функция FindVolumeMountPointClose применяется для освобождения ресурсов, задействованных функциями FindFirstVolumeMountPoint и FindNextVolumeMountPoint. И наконец, функция GetVolumeNameForMountPoint возвращает имя тома, в который преобразуется точка монтирования.

10.2.10.2 Точки соединения каталогов Точки соединения каталогов тесно связаны с точками монтирования томов. Различие между ними заключается в том, что точки монтирования томов связывают каталог с новым томом, а точки соединения каталогов связывают каталог с каталогом на этом же локальном томе. Точки соединения каталогов могут создаваться с помощью утилиты linkd.exe, которая предоставляется в составе пакета Resource Kit.

10.2.10.3 Служба SIS

Служба SIS (Single Instance Storage) позволяет значительно снизить объем дискового пространства, которое требуется для хранения дублированных файлов. При этом дублированные файлы заменяются специальной ссылкой. Служба SIS используется совместно со службами удаленной установки (RIS), которые делают возможной загрузку Windows NT с сетевого ресурса.

Используя службы удаленной установки, администратор может создать несколько образов, например образ для бухгалтерии, конструкторского отдела и т.д. Каждый образ содержит множество файлов, дублирующих файлы из других образов. Но простого использования ссылки в данном случае будет недостаточно. Если администратор внесет изменения в один из файлов, все остальные образы, имеющие ссылку на этот файл, также будут содержать изменения. Именно в этом случае пригодится SIS.

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

10.2.10.4 Удаленное хранилище (HSM)

Удаленное хранилище (remote storage) - это служба управления хранилищем, которая предоставляет возможности прямого переноса файлов между интерактивным (например, жестким диском) и неинтерактивным (например, магнитной лентой) носителем. При переносе файла на неинтерактивный носитель на жестком диске остается так называемый “файл-заглушка”. Благода ря точке повторной обработки NTFS файл отмечается, как особый, а также указывается точное местонахождение оригинального файла на неинтерактивном носителе. Службы удаленного хранилища (Remote Storage Services - RSS) зачастую называют службами управления иерархическим хранилищем (Hierarchical Storage Management), поскольку они взаимодействуют с двумя уровнями хранения данных.

Администратор может настроить специальные системные политики, например указать объем дискового пространства, который должен оставаться свободным, и типы файлов, которые должны обрабатываться RSS. Службы RSS периодически проверяют дисковое пространство на предмет соответствия установленной администратором политике. Кроме того, проводится поиск файлов, доступ к которым не осуществлялся некоторое время (обычно 30 дней). Эти файлы периодически копируются на магнитную ленту, причем их базовые версии остаются на жестком диске и с помощью точки повторной обработки отмечаются, как предварительно перемещенные. Как только дисковое пространство сокращается до указанного в политике объема, RSS удаляет файлы с диска и вносит изменения в точку повторной обработки, указывая, что файл теперь полностью перемещен на неинтерактивный носитель. . :

Службы RSS не поддерживают скрытые, системные, шифрованные или разреженные файлы, а также файлы, которые обладают расширенными атрибутами. Службы RSS тесно интегрированы с другими компонентами операционной системы.

■ Службы RSS взаимодействуют со службой индексации.

■ Службы RSS используют планировщик заданий Windows 2000 для планирования заданий по резервному копированию.

■ Программа резервного копирования Windows распознает перемещенные на неинтерактивный носитель файлы и не пытается восстановить такие файлы на диск только для их резервного копирования.

■ Службы RSS также интегрированы с системой безопасности NTFS; например, RSS вызывает файл с неинтерактивного носителя только в том случае, когда пользователю разрешен доступ к этому файлу.

■ Программа Проводник (Windows Explorer) также взаимодействует с RSS. Перемещенные файлы отмечаются специальной пиктограммой.

■ Журнал изменений NTFS взаимодействует с RSS, поэтому для выделения перемещенных между носителями файлов используется специальный флаг. Приложение может использовать этот флаг для определения того, что файл не изменился.

Архитектура HSM и RSM

Рис. 10.3. Архитектура HSM и RSM

На рис. 10.3 показана схема RSS и архитектура управления сменными носителями (Removable Storage Management - RSM). Приложение HSM использует программный интерфейс приложений RSM (см. раздел 10.2.11). Служба RSM - это подсистема пользовательского режима, обладающая собственной базой данных для отслеживания носителей и устройств.

10.2.8 оптимизация файловой системы | Системы хранения данных в Windows | 10.2.11 управление сменными носителями


Системы хранения данных в Windows



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31