Книга: Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003

10.2 Windows 2000

10.2 Windows 2000

Наиболее заметное улучшение Windows 2000 связано с возможностью использования платформы Windows NT в среде SAN и NAS. В разделах 10.2.1–10.2.13 рассматриваются улучшенные возможности подсистемы хранения в Windows 2000.

10.2.1 Расширенный доступ к единицам хранения

Операционная система Windows 2000 оптимизирует доступ к единицам хранения, а именно:

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

значительно увеличивает количество поддерживаемых единиц хранения.

Операционная система Windows NT 4.0 требовала перезагрузки перед получением доступа к новому устройству хранения (в терминологии подсистем хранения оно называется целевым устройством). Подсистема РпР Windows 2000 поддерживает динамическое добавление и удаление целевых устройств подсистемы хранения. Драйвер шины сообщает о событии, которое называется BusChangeDetected, а операционная система отвечает на это последовательностью действий, которая включает в себя повторное сканирование всех устройств, подключенных к шине. Тем не менее к новому устройству возможен доступ со стороны операционной системы и драйверов без перезагрузки. Кроме того, Windows не требует повторной инициализации шины подсистемы хранения (например, SCSI или Fibre Channel), что занимает немало времени. Таким образом, добавление нового целевого устройства или динамическое предоставление нового LUN для существующего целевого устройства не потребует повторной инициализации шины.

Однако Windows NT (включая Windows 2000) все еще принимает на себя владение всеми обнаруженными LUN. В настоящий момент Microsoft разрабатывает технологию, позволяющую администратору указывать доступные или недоступные LUN для Windows NT. Это даст возможность сделать LUN видимыми для Windows NT (и невидимыми для приложений), причем Windows не будет использовать эти единицы, что поможет избежать возможного повреждения данных LUN.

Операционная система Windows 2000 поддерживает значительно улучшенную схему подключения устройств хранения, которая позволяет адресовать до 128 целевых устройств (идентификаторов SCSI) и до 255 LUN на одно целевое устройств. Для сравнения: Windows NT 4.0 поддерживает только восемь целевых устройств и по восемь LUN на одно целевое устройство. Операционная система Windows NT 4.0 Service Pack 5 поддерживает 255 целевых устройств и восемь LUN на одно целевое устройство.

10.2.2 Новые механизмы управления томами и дисками

В Windows 2000 была представлена новая концепция динамических дисков. Термин динамический диск указывает на логическую архитектуру физического диска. Физический диск остается базовым диском с таблицей разделов, которая использовалась в Windows NT 4.0, пока не будет явно преобразован в динамический диск. Иными словами, динамические диски – это физические диски с другим форматом таблицы разделов, который допускает динамическое увеличение и уменьшение размера разделов. Новая таблица разделов с поддержкой избыточности обеспечивает доступность при повреждении кластеров основной копии. Более подробная информация по этой теме приводится в главе 6.

Динамические диски распознаются только в Windows 2000 и более поздних версиях Windows NT. Они хранят таблицу разделов старого формата, чтобы защитить данные от повреждения при просмотре раздела в Windows NT 4.0 или другой операционной системе, если она поддерживает только старый формат таблицы разделов. Однако такая таблица содержит лишь одну запись, указывающую на использование всего объема диска. Таблица разделов старого формата не отражает логической организации диска.

В Windows 2000 добавлены два новых компонента режима ядра. Диспетчер монтирования (Mount Manager) обрабатывает операции монтирования для базовых и динамических дисков, включая назначение букв дискам. Диспетчер разделов (Partition Manager) обрабатывает операции подсистемы РпР, а также операции управления питанием и взаимодействия с интерфейсом WMI, связанные с дисковыми разделами. Комбинация этих подсистем режима ядра позволяет использовать в одной системе одновременно два диспетчера томов. Одним из них является старый драйвер FtDisk, который в определенном смысле можно считать «классическим» диспетчером томов. Второй – это принятый по умолчанию диспетчер LDM (Logical Disk Manager), который поставляется в составе Windows 2000, или LVM (Logical Volume Manager), который предоставляется компанией VERITAS.

Наряду с улучшениями в подсистеме РпР управление дисками обрело ряд новых возможностей.

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

Тома могут монтироваться и размонтироваться «на лету». Конечно, размонтированный том недоступен, однако системе не требуется перезагрузка после отключения или добавления тома.

Тома могут быть перенастроены с одного класса RAID на другой класс без перезагрузки операционной системы. Допустима настройка, разбивка и повторная сборка массивов RAID 0, RAID 1 и RAID 5.

Поддерживаются устаревшие тома, включая те, которые используют массив RAID с помощью старого диспетчера томов FtDisk.

Динамические диски содержат всю необходимую информацию для описания структуры диска, т.е. все метаданные хранятся на самом диске. В Windows NT 4.0 часть метаданных хранилась в системном реестре. Это означает, что Windows 2000 допускает перенос динамических дисков между различными компьютерами без дополнительной настройки.

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

Добавлены новые API, которые позволяют создавать приложения управления томами. В качестве примера можно привести интерфейс для перечисления всех томов (FindFirstVolume для первого тома, FindNextVolume для следующего тома и FindVolumeClose для завершения перечисления и освобождения связанных с ним ресурсов). Функция GetVolumelnformation возвращает информацию о томе, включая поддержку томом точек повторной обработки (см. раздел 10.2.10).

10.2.3 Оптимизация распределенной файловой системы

Распределенная файловая система (DFS) впервые появилась в Windows NT 4.0. Она позволяет администратору эффективно управлять ресурсами сети и предоставляет пользователям возможность работать с названиями ресурсов и каталогов, которые отражают действительное рабочее окружение. При этом не требуется знать физическую структуру сети для доступа к данным. Например, пользователи компании могут получать доступ к ресурсу Моя_КомпанияНакладные для загрузки всех файлов и каталогов, которые относятся к бухгалтерии, для чего им не придется задумываться об имени физического сервера и названиях его ресурсов.

В Windows 2000 распределенная файловая система была существенно модифицирована.

Повышенная надежность и отказоустойчивость. В Windows 2000 предоставляется поддержка кластеров для DFS, что исключает отказ файловой системы при неисправности сервера, выполняющего роль корня файловой системы. Для этого DFS интегрирована в инфраструктуру Active Directory, поэтому данные топологии DFS хранятся в базе данных Active Directory. Более того, изменения топологии DFS вступают в силу без остановки и перезапуска службы DFS. Распределенная файловая система взаимодействует со службой репликации файлов Windows 2000 для дублирования изменений в репликах DFS.

Оптимизация администрирования. Теперь для администрирования распределенной файловой системы предоставляется оснастка ММС. Кроме того, DFS поддерживает больше конфигурационных параметров, например допускается указание времени, в течение которого будет кэшироваться запись DFS. Распределенная файловая система в Windows 2000 интегрирована в службу каталогов Active Directory, благодаря чему системный администратор получает больше возможностей по управлению DFS.

Повышение производительности. Клиенты под управлением Windows 2000 выбирают копии DFS, которые находятся в пределах локального сайта, а не случайные копии, возможно находящиеся в удаленных сайтах. Если в локальном сайте доступно несколько копий DFS, клиенты Windows 2000 выбирают копии случайным образом. Клиенты под управлением Windows NT 4.0 выполняют значительно больше операций при доступе к DFS. Еще более старые клиенты DFS вообще о ней не «подозревают» и стремятся преобразовать путь, предполагая, что он содержит действительное имя сервера. Только после неудачной попытки подключиться к несуществующему серверу клиент использует службы драйвера df s. sys для преобразования пути. Клиенты Windows 2000 изначально поддерживают использование пути DFS и задействуют драйвер dfs. sys для преобразования пути к файлу.

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

10.2.4 Автономные папки и клиентское кэширование

Операционная система Windows 2000 позволяет администратору отметить общие ресурсы сервера как содержащие кэшируемые файлы. Файлы такого ресурса (например, данные и выполняемые файлы программ или динамически подключаемые библиотеки) загружаются на клиентские компьютеры и сохраняются локально. Такая загрузка выполняется при первом открытии файла. Неоткрываемые файлы на клиентские компьютеры не загружаются. Синхронизация файлов осуществляется в фоновом режиме либо при регистрации или завершении сеанса пользователя. Если синхронизация приводит к конфликту (когда локальные изменения конфликтуют с изменениями на сервере), он решается при содействии пользователя. Основные преимущества кэшируемых файлов таковы:

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

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

возможность отключения от сети и работы в автономном режиме.

Администратор может установить следующие параметры автономных папок:

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

автоматическое кэширование документов, когда все файлы документов, открытых пользователем, автоматически кэшируются на локальном компьютере;

автоматическое кэширование файлов программ, при котором кэшируются выполняемые файлы и файлы динамически подключаемых библиотек.

10.2.5 Служба репликации файлов

В Windows 2000 была представлена двунаправленная служба репликации файлов (FRS), использующая журнал изменений NTFS для обнаружения измененных файлов и каталогов. Служба репликации файлов активно за- действуется Active Directory. Кроме того, FRS применяется распределенной файловой системой для создания нескольких копий файлов и метаданных на нескольких серверах, что позволяет обеспечивать балансировку нагрузки и отказоустойчивость.

10.2.6 Индексация содержимого файловой системы

В Windows 2000 Server предоставляется встроенная служба индексации и связанные с ней утилиты.

ОкноНайти файлы и папки (Find Files or Folders) предоставляет доступ к возможностям службы индексации.

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

Служба индексации поддерживает индексацию автономных данных, которыми управляют службы удаленного хранилища (RSS).

На томах с NTFS служба индексации использует журнал изменений для отслеживания изменений с момента последнего запуска.

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

Служба индексации поддерживает тома с файловой системой FAT, однако снижение эффективности при этом неизбежно, так как в FAT не поддерживается журнал изменений.

10.2.7 Оптимизация установки и настройки

Операционная система Windows 2000 может создавать собственные тома NTFS. Ранее для этого требовалось создавать раздел FAT, который впоследствии преобразовывался в раздел NTFS. Обратите внимание на взаимозаменяемое использование терминов раздел и том. Как отмечается в главе б, разделы и тома относятся к одной логической концепции с несколько разными особенностями. В частности, том, в отличие от раздела, поддерживает динамическое изменение размера.

10.2.8 Оптимизация файловой системы

С выходом Windows 2000 в файловую систему были внесены определенные улучшения. Хотя основные модификации относятся к NTFS, Windows 2000 поддерживает расширенные возможности файловых систем для оптических носителей, а также для «ветерана» FAT. Компания Microsoft заявила, что в дальнейшем FAT будет лишь поддерживаться и новых модификаций не предвидится. Улучшения NTFS настолько существенны, что заслужили более подробного описания (см. раздел 10.2.9).

10.2.8.1 Оптимизация FAT

Операционная система Windows 2000 поддерживает файловую систему FAT32. Это первая версия Windows NT, работающая с FAT32, поскольку до этого FAT32 была реализована только на платформе Windows 9х. В FAT32 поддерживаются тома размером до 2 Тбайт с максимальным размером файла, равным 4 Гбайт. Из соображений производительности, утилиты для работы с файловыми системами ограничивают размер тома FAT до 32 Гбайт, что, впрочем, относится к возможностям утилит, а не самой файловой системы. В FAT32 реализован меньший размер кластера диска, что позволяет более эффективно использовать дисковое пространство.

Файловые системы оптических носителей

Операционная система Windows NT 4.0 поддерживала файловую систему CDFS (CD-ROM File System), что также справедливо и для Windows 2000. В Windows 2000 появилась поддержка файловой системы UDF (Universal Disk Format), разработанной ассоциацией OSTA (Optical Storage Technology Association).

10.2.9 Оптимизация NTFS

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

Реализация этих возможностей потребовала изменения дисковой структуры NTFS. Для существующих томов дисковая структура меняется при первом монтировании в Windows 2000. Для системного тома эта операция выполняется при модернизации Windows NT 4.0 до Windows 2000.

Компания Microsoft провела немало тестирований Windows 2000 и NTFS в вычислительной среде корпоративного уровня предприятия.

Максимальный размер файла, который использовался при тестировании, составляет 2^44–64 Кбайт, что составляет примерно 16 Тбайт. С другой стороны, максимальный теоретический размер файла составляет 2^64–1 байт, что примерно равно 17 Эбайт.

Максимальное количество файлов на одном томе при тестировании составило 34 миллиона. С другой стороны, теоретический предел составляет 232–1, т.е. примерно 4 миллиарда.

10.2.9.1 Базовые наборы свойств

Операционная система Windows 2000 впервые предоставляет поддержку базовых наборов свойств – определенных пользователем метаданных, связанных с файлом. Эти метаданные могут индексироваться службой индексации Windows 2000 Server. Например, можно указать автора документа или предполагаемую аудиторию документа. Затем пользователи могут осуществлять поиск документа, воспользовавшись значениями указанных тегов или метаданных. Файловая система NTFS обрабатывает файлы в качестве наборов пар «атрибут-значение». Определенные пользователем свойства сохраняются в дополнительных атрибутах файла.

10.2.9.2 Сканирование файлов определенного владельца

Операционная система Windows NT отслеживает учетные записи пользователей по уникальному идентификатору безопасности (SID). Файловая система NTFS в Windows 2000 может сканировать том и определять все файлы, которые принадлежат определенному идентификатору безопасности. Этот процесс намного упрощает администрирование; например, при увольнении работника сканирование по идентификатору безопасности позволяет быстро обнаружить и удалить принадлежащие ему файлы.

10.2.9.3 Оптимизация проверки списков управления доступом

Файловая система NTFS в Windows NT 4.0 сохраняла списки управления доступом (ACL) отдельно для каждого файла и каталога. Если пользователю принадлежало 50 файлов, идентичные списки управления доступом потенциально могли сохраняться 50 раз, по одному разу в каждом файле. Файловая система NTFS в Windows 2000 сохраняет списки управления доступом в каталоге и проводит индексацию этих списков. Другими словами, в описанном случае список управления доступом будет, сохранен один раз, а каждый из 50 файлов получит «указатель», который дает возможность определить необходимый список управления доступом.

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

Массовая проверка списков управления доступом может применяться и в других случаях. Например, для определения действий, которые пользователь может выполнять с указанным набором файлов.

10.2.9.4 Файл журнала изменений

Файловая система NTFS отслеживает все вносимые изменения по двум причинам.

Для восстановления целостности данных в случае неисправностей в работе, что обеспечивается занесением в журнал информации обо всех операциях перед их выполнением.

Для предоставления приложениям информации об изменившихся файлах и каталогах.

В журнале изменений записываются только модификации, внесенные в файловую систему. Информации из журнала недостаточно для отмены выполненной операции. Файл журнала изменений «выживает» на протяжении нескольких перезагрузок операционной системы. Если этот файл окажется переполненным или удаленным, приложения смогут определить, что некоторая информация об изменениях будет потеряна. Затем приложения проводят, например, повторное сканирование всех необходимых файлов и каталогов. Описанный механизм имеет особое значение для приложений репликации и резервного копирования.

10.2.9.5 Переименование потоков в NTFS

Файловая система NTFS в Windows NT всегда предоставлялась с поддержкой нескольких потоков данных на один файл. Примером приложения, поддерживающего многопоточный ввод-вывод, служит программный сервер Windows NT Macintosh. До появления Windows 2000 не существовало способа переименования потока данных после его создания. Можно было создать новый файл с новым именованным потоком данных и скопировать в него содержимое старого файла, однако такой подход недостаточно эффективен. Файловая система NTFS в Windows 2000 предоставляет специальный интерфейс, который позволяет приложениям переименовывать существующие именованные потоки данных.

10.2.9.6 Идентификаторы объектов и отслеживание ссылок

Операционная система Windows 2000 позволяет отслеживать ссылки. Это могут быть ярлыки файлов или объекты OLE, в частности документы Excel или PowerPoint, включенные в другой файл, например в документ Word. Приложение может отслеживать ссылки, даже если документ – источник ссылки перемещается различными способами, например:

документ переносится в рамках того же тома на компьютере под управлением Windows NT;

документ переносится между томами одного и того же компьютера под управлением Windows NT;

документ переносится с одного компьютера под управлением Windows NT на другой компьютер под управлением Windows NT в рамках одного домена;

весь том, содержащий документ, переносится с одного на другой компьютер под управлением Windows NT в рамках одного домена;

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

? переименовывается общий сетевой ресурс сервера под управлением Windows NT, который содержит документ;

? переименовывается документ;

ш выполняется любая комбинация описанных действий.

– Каждый файл в Windows 2000 (и более поздних версиях Windows NT) может иметь (но не обязательно) уникальный идентификатор объекта. Для отслеживания файла приложение ссылается на него по уникальному идентификатору. Если ссылка на файл не может быть найдена, на помощь вызывается служба отслеживания ссылок пользовательского режима (служба вызывается Windows NT). Служба стремится найти файл с помощью идентификатора объекта методом «проб и ошибок», обрабатывая все описанные выше сценарии.

10.2.9.7 Разреженные файлы NTFS

В Windows NT 3.51 была реализована функция сжатия файловой системы. Предполагалось, что будут сжиматься файлы, содержащие большие диапазоны, состоящие из одних нулей. Но сжатие и распаковка занимали определенное время, и сжатые данные все равно занимали некий объем жесткого диска. Рассмотрим файл, который имеет логический размер 1 Гбайт, но содержит только 4 Кбайт данных в начале файла и 4 Кбайт данных – в конце. В Windows 2000 такой файл, если его отметить в качестве разреженного, будет занимать всего 8 Кбайт дискового пространства (при соответствующем размере дискового кластера).

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

Функция перечисления файлов и каталогов (например, FindFirst и FindNext) возвращает флаг FILE_ATTRIBUTE_SPARSE_FILE. Функции Win32 API BackupRead, BackupWrite, CopyFile и MoveFile обновлены для работы с разреженными файлами (например, функция CopyFile сохраняет разреженное состояние файла и не выполняет операции чтения и записи, которые преобразуют файла в неразреженное состояние).

10.2.9.8 Дисковые квоты

Отслеживание и управление дисковыми квотами реализованы в NTFS, которая предоставляется в Windows 2000. Дисковые квоты отслеживаются для пользователей и для томов. При этом системный администратор может:

отключить эту функцию;

использовать ее для отслеживания объемов дискового пространства;

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

Дисковые квоты отслеживаются на основе идентификатора безопасности пользователя (SID). Этот уникальный идентификатор назначается каждому пользователю, зарегистрированному на компьютере под управлением Windows NT (в качестве пользователя может выступать другой компьютер или системная учетная запись – по сути, тот же пользователь с набором привилегий, отличных от набора привилегий для стандартного пользователя). Каждый файл и каталог содержит идентификатор безопасности своего владельца. Дисковые квоты указываются для каждого тома, а утилиты администрирования позволяют реплицировать политику квот на другие тома.

Как уже неоднократно отмечалось, Windows 2000 позволяет возвращать список файлов, принадлежащих определенному пользователю. Эта функция предоставляет собой элемент технологии отслеживания дисковых квот, так как при отслеживании квот вычисляется общий объем дискового пространства, которое выделено определенному пользователю на хранение его файлов.

10.2.9.9 Оптимизация утилиты CHKDSK

В файловой системе NTFS для Windows 2000 уменьшено количество случаев, требующих запуска утилиты CHKDSK, что намного сокращает время работы данной утилиты. Будет уместным вспомнить выражение «конечный результат может отличаться от продемонстрированного», так как реальные результаты зависят от размера тома и типа повреждения. Для томов, содержащих миллионы файлов, утилита CHKDSK может работать быстрее на порядок.

10.2.9.10 Дефрагментация

В Windows 2000 предоставляется утилита дефрагментации, которая на самом деле является «облегченной» версией утилиты DiskKeeper от компании Executive Software. Как и в Windows NT 4.0, в Windows 2000 поддерживаются специальные API дефрагментации. Встроенная утилита дефрагментации обладает определенными ограничениями, которые не свойственны большинству полноценных приложений дефрагментации, например:

встроенная утилита не может дефрагментировать главную таблицу файлов NTFS (MFT) или файл подкачки;

встроенная утилита не может дефрагментировать каталоги;

встроенная утилита не поддерживает систему Microsoft Cluster Server.

10.2.10 Точки повторной обработки

Появление точек повторной обработки (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 приложение отправляет запрос на открытие файла.

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

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

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

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

Далее подсистема ввода-вывода вызывает каждый драйвер фильтрации (по одному за раз), который зарегистрировал процедуру завершения

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

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

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

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

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

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

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

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

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

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

В разделах 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, поэтому для выделения перемещенных между носителями файлов используется специальный флаг. Приложение может использовать этот флаг для определения того, что файл не изменился.


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

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

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

Служба управления сменными носителями (RSM) позволяет приложениям управлять всеми сменными носителями в корпоративной сети, вне зависимости от типа сменного носителя. Интерактивные носители обычно находятся в различных устройствах, включая магазины, ленточные автоматы и роботизированные библиотеки. Неинтерактивные носители, как правило, лежат на полке.

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


Рис. 10.4. Управление сменными носителями

В службе RSM используется концепция пула носителей (media pool) для организации и управления носителями. Пул носителей представляет собой набор носителей. Пул может быть двух типов: системный пул и пул приложений. Системный пул (system pool) содержит носители, предназначенные для системных задач, а также нераспознанные или неназначенные носители. Системный пул делится на следующие категории:

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

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

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

Пул приложения содержит носители, созданные приложениями резервного копирования и удаленного хранилища.

10.2.12 Шифрованная файловая система

В Windows 2000 была впервые представлена шифрованная файловая система (Encrypting File System – EFS), которая на самом деле является службой, размещенной уровнем выше NTFS. Эта служба обеспечивает шифрование данных перед их записью на диск и дешифрование после чтения, но перед передачей данных запросившему приложению. Кроме того, EFS реализует систему управления ключами, необходимыми для шифрации, а также клю-

чами восстановления, которые позволяют авторизованному объекту (кроме владельца файла) восстанавливать данные из файлов.

Данные шифруются симметричным шифром (в частности, одной из разновидностей DES), и случайно сгенерированный ключ, использованный для симметричного шифрования, записывается в файл после шифрования асимметричным шифром с помощью открытого ключа пользователя. Для обеспечения возможности по восстановлению файла (например, когда работник увольняется и отказывается сотрудничать) случайно сгенерированный ключ симметричного шифра также шифруется открытым ключом авторизованного объекта и записывается в файл.

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

Дополнительная информация о шифрованной файловой системе приводится в главе 6.

10.2.13 Защита системных файлов

Одна из проблем, долгое время мешавшая корректной работе Windows, была связана с повреждением и заменой системных файлов. Производители приложений обычно заменяли системные файлы Windows своими собственными или более новыми версиями. Такая практика в лучшем случае приводит к проблемам при управлении системой, а в худшем – к снижению ее надежности. Начиная с Windows 2000 компания Microsoft реализовала механизм защиты системных файлов (System File Protection – SFP).

Благодаря SFP определенные системные файлы защищены с помощью фонового механизма. Список контролируемых файлов сохраняется в папке кэша. Там же хранятся копии и других файлов. Если файл недоступен, он загружается с носителя (установочного компакт-диска Windows). Фоновый процесс вычисляет сигнатуру файла и сравнивает ее с сигнатурой файла, сохраненного в кэше. Если сигнатуры не совпадают, файл обновляется с помощью котированной копии. Утилиты установки пакетов обновлений и оперативных исправлений содержат специальный код, который позволяет обновлять как кэшированную, так и обычную копию файла.

Оглавление книги


Генерация: 0.056. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз