Файловая система NTFS
NTFS обеспечивает комбинацию эффективности, надежности и совместимости, отсутствующую в FAT или HPFS. Она разработана для быстрого выполнения стандартных файловых операций типа чтения, записи и поиска, а также улучшенных операций типа восстановления файловой системы на очень больших жестких дисках.
NTFS также включает возможности безопасности, требуемые для файловых серверов и высококачественных персональных компьютеров в корпоративной среде. NTFS поддерживает управление доступом к данным и привилегии владельца, что является важным для целостности корпоративных данных. В то время как каталогам, разделяемым при помощи Windows NT Server, назначаются специфические разрешения, файлам и каталогам NTFS могут назначаться разрешения вне зависимости, разделены они или нет. NTFS — единственная файловая система в Windows NT, которая позволяет назначить разрешения для отдельных файлов.
NTFS является простой, но очень мощной разработкой. Для этой перспективной файловой системы вся информация на томе NTFS является файлом или частью файла. Каждый распределенный на томе NTFS сектор принадлежит некоторому файлу. Даже метаданные (metadata) файловой системы (информация, которая описывает непосредственно файловую систему) являются частью файла.
Эта основанная на атрибутах файловая система поддерживает объектно-ориентированные приложения, обрабатывая все файлы как объекты, которые имеют определяемые пользователем и системой атрибуты.
164 ЧАСТЬ III Использование Windows NT
Главная файловая таблица
Каждый файл на томе NTFS представлен записью в специальном файле, называемом главной файловой таблицей (MFA — master file table). NTFS резервирует первые 16 записей таблицы для специальной информации. Первая запись этой таблицы описывает непосредственно главную файловую таблицу;
за ней следует зеркальная запись (mirror record) MFT. Если первая запись MFT разрушена, то NTFS читает вторую запись для отыскания зеркального файла MFT, первая запись которого идентична первой записи MFT. Местоположения сегментов данных MFT и зеркального файла MFT записаны в секторе начальной загрузки. Дубликат сектора начальной загрузки находится в логическом центре диска.
Третья запись MFT — файл регистрации (log file); используется для восстановления файлов. Файл регистрации подробно описан в настоящей главе ниже. Семнадцатая и последующие записи главной файловой таблицы используются собственно файлами и каталогами (также рассматриваются как файлы NTFS) на томе. На рис. 5.5 показана упрощенная структура MFT.
Рис. 5.5. Организация главной файловой таблицы
Главная файловая таблица отводит определенное количество пространства дтя каждой записи файла. Атрибуты файла записываются в распределенное пространство MFT. Небольшие файлы и каталоги (обычно до 1500 байт или меньше), типа файла, показанного на рис. 5.6, могут полностью содержать. внутри записи главной файловой таблицы.
Подобный подход обеспечивает очень быстрый доступ к файлам. Рассмотрим. например, файловую систему FAT, которая использует таблицу размещения файлов, в которой перечисляются имена и адрес каждого файла. Элементы каталога FAT содержат индекс в таблице размещения файла. В случае если
Глава 5. Файловые системы Windows NT и улучшенное управление дисками________165
Стандартная информация |
Имя файла или каталога |
Дескриптор безопасности |
Данные или указатель |
|
Рис. 5.6. Запись MFT для небольшого файла или каталога
необходимо просмотреть содержимое файла, FAT сначала читает таблицу размещения файлов и убеждается в существовании файла. Далее FAT восстанавливает файл, ища цепочку распределенных блоков, относящихся к этому файлу. В NTFS поиск файла производится только для непосредственного его использования.
Записи каталога помещены внутри главной файловой таблицы так же, как записи файла. Вместо данных каталоги содержат индексную информацию. Небольшие записи каталогов находятся полностью внутри структуры MFT. Большие каталоги организованы в B-tree, имея записи с указателями на внешние кластеры, содержащие элементы каталога, которые не могли быть записаны внутри структуры MFT.
Атрибуты файла NTFS
NTFS просматривает каждый файл (или каталог) как набор атрибутов файла. Такие элементы, как имя файла, информация зашиты и даже данные — все это атрибуты файла. Каждый атрибут идентифицирован кодом типа атрибута и, необязательно, именем атрибута.
Если атрибуты файла могут находится внутри записи файла MFT, они называются резидентными (resident) атрибутами. HanpHMqi, информация типа имени файла и отметки времени всегда включается в запись файла MFT. Если файл слишком большой, чтобы содержать все атрибуты в записи файла MFT, часть атрибутов является нерезидентной (nonresident). Нерезидентные атрибуты занимают один или несколько пробегов (run) дискового пространства в другом месте тома (пробег дискового пространства — непрерывная линейная область на диске).
Вообще, все атрибуты могут быть вызваны как поток бантов независимо от того, являются ли они резидентными или нерезидентными.
В табл. 5.1 представлен список всех атрибутов файла, в настоящее время определенных для NTFS. Этот список расширяем, т. е. другие атрибуты файла в будущем могут быть определены в случае необходимости.
Таблица 5.1. Атрибуты файла NTFS
Тип атрибута |
Описание |
Standard Information (стандартная информация) |
Включает бюджет связи и так далее
|
Attribute List (список атрибутов) |
Перечисляет все другие атрибуты (только в больших файлах)
|
Filename (имя файла) |
Атрибут, повторяющийся для длинных и для коротких имен файлов Длинное имя файла может содержать до 255 символов Unicode Короткое имя — доступно для MS-DOS, восемь плюс |
166________________________________ЧАСТЬ III Использование Windows NT
Окончание табл. 5.1
Тип атрибута |
Описание |
|
три символа, без учета регистра Дополнительные имена, или жесткие связи (hard links), используются POSIX и могут быть также включены в качестве дополнительных атрибутов имени файла |
Security Descriptor (дескриптор безопасности) |
Фиксирует информацию о том, кто может обращаться к файлу, кто является его владельцем и так далее |
Data (данные) |
Содержит данные файла |
Index Root (корень индексов) |
Используется при работе с каталогами |
Index Allocation (индексное размещение) |
Используется при работе с каталогами |
Volume Information (информация тома) |
Используется только в системном файле тома и включает в частности версию и имя тома |
Bitmap (битовый массив) |
Предоставляет информацию об использовании записей в MFT или каталоге |
Extended Attribute Information (информация расширенного атрибута) |
Используется файловыми серверами, которые связаны с системами OS/2 Этот тип атрибута не используется Windows NT |
Extended Attributes (расширенные атрибуты) |
Используется файловыми серверами, которые связаны с системами OS/2 Этот тип атрибута не используется Windows NT |
Длинные и короткие имена файлов
Подобно HPFS, NTFS поддерживает имена файла до 255 символов. Имена файла NTFS используют набор символов Unicode с 16 битами; однако вопрос доступа из MS-DOS решен. NTFS автоматически генерирует поддерживаемое MS-DOS имя (восемь плюс три символа) для каждого файла. Таким образом, файлы NTFS могут использоваться через сеть операционными системами MS-DOS и OS/2. Это особенно важно для файловых серверов организации, которая использует персональные компьютеры с двумя или всеми тремя этими операционными системами.
Создавая имена файла “восемь плюс три”, NTFS также позволяет приложениям MS-DOS и Windows 3-х работать с файлами, имеющими длинные имена NTFS Кроме того, при сохранении файла приложениями MS-DOS или Windows 3. на томе NTFS сохраняются и имя файла “восемь плюс три” и длинное имя
NTFS.
Внимание! При сохранении файла приложениями MS-DOS или Windows З.х на томе NTFS, если приложение сохраняет временный файл, удаляет первоначальный файл и переименовывает временный файл с первоначальным именем, длинное имя файла теряется. Любой уникальный набор разрешений файла также теряется. Разрешения передаются заново из родительского каталога.
Если длинное имя файла или каталога на томе NTFS содержит пробелы, следует убедиться, что путь записан в кавычках. Это справедливо при определении пути в Program Manager для значков приложений Например, предположим, что Word for Windows установлен в D WORD FOR WINDOWS. Командная строка Program Item Properties должна быть установлена в D WORD FOR WINDOWSWINWORD ЕХЕ. При отсутствии кавычек будет отображено сообщение об ошибке “The path DAWord is invalid” (Путь D:Word недопустим).
Глава 5. Файловые системы Windows NT и улучшенное управление дисками________167
Ниже приведен пример легальной записи командной строки, содержащей пробелы:
move "с:This month's reports*.*" "с:Last mont's reports'
Внимание! Необходимо внимательно подходить к использованию групповых символов типа * и ? вместе с командами del и copy. При выполнении этих команд NTFS работает и с длинным и с коротким именем файла; таким образом могут быть удалены или скопированы лишние файлы.
Для копирования или перемещения файлов с чувствительными к регистру длинными именами, самым надежным способом является выбор файлов с использованием мыши в File Manager. Этот способ позволяет однозначно определить файлы для выполнения операций над ними.
При работе с Windows NT 3.5 файлы, созданные или переименованные в разделах FAT, могут иметь связанные длинные имена. Правила управления длинными именами файла на томе NTFS также относятся к длинным именам файла на разделах FAT; отличие заключается в том, что имена файла на FAT нс могут содержать расширенные символы. Дополнительную информацию о поддержке длинных имен файлов для разделов FAT можно найти в разделе “Файловая система FAT”. Генерация короткого имени файла
Поскольку NTFS использует набор символов Unicode для имен файлов, существует возможность задействования нескольких “запрещенных” символов, которые MS-DOS не может читать в имени файла. Для генерации короткого имени файла в стиле MS-DOS, NTFS удаляет все эти символы и любые пробелы из длинного имени файла. Так как имя файла в MS-DOS может иметь только одну точку, NTFS также удаляет все дополнительные точки из имени файла. Далее, в случае необходимости NTFS усекает имя файла до шести символов и добавляет тильду (~) и номер. Например, к каждому недублированному имени файла добавляется -1. Повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т. д. Расширение имени файла усекается до трех или меньшего количества символов. Наконец, при отображении имени файла в командной строке NTFS транслирует все символы в имени файла и расширении к верхнему регистру (File Manager отображает эти имена файла в нижнем регистре).
Windows NT 3.5 использует несколько другой метод для создания коротких имен файлов для случая, когда имеется пять или более файлов, которые привели бы к двойным коротким именам файла. Для пятого и последующих файлов Windows NT использует только первые два символа от длинного имени файла и далее специальной математической операцией (функция от длинного имени) генерирует следующие уникальные четыре символа короткого имени файла; после этого к результату добавляется ~5 (или другой номер в случае необходимости избежания двойного имени файла). Такой метод обеспечивает в основном повышенную эффективность для случая, когда Windows NT должна создавать короткие имена файлов для большого количества файлов с похожими длинными именами. Windows NT использует этот метод создания коротких имен для томов FAT и NTFS.
По умолчанию, Windows NT 3.5 поддерживает имена файлов в формате MS-DOS на всех томах NTFS. Для повышения эффективности работы на томах с большим количеством длинных похожих имен можно запретить эту возможность для всех томов. Для отключения поддержки коротких
168_______________________________ЧАСТЬ III. Использование Windows NT
имен файлов на всех томах NTFS необходимо установить в 1 значение NTfsDisable8dot3NameCreation следующего элемента реестра:
HKEY_LOCAL_MACHINESystemCurrentControlSetControlFileSystem
Windows NT не генерирует коротких имен для файлов, созданных приложениями POSIX в разделе NTFS. Это означает, что приложения MS-DOS и Windows З.х не смогут работать с подобными именами, если эти имена не удовлетворяют условию “восемь плюс три”. В случае необходимости работы из приложений MS-DOS или Windows с файлами, которые созданы приложениями POSIX, следует убедиться, что использованы стандартные имена MS-DOS. Просмотр коротких имен файла
File Manager и команда dir позволяют отображать или длинные имена файлов
NTFS или короткие имена стандарта MS-DOS, так что можно работать с
файлами, используя оба типа имен.
Для просмотра коротких имен файлов в File Manager следует выбрать Full
File Details.
При работе с командной строкой просмотр обоих типов имен осуществляется
с использованием команды:
dir /х
Внимание! Для автоматического отображения длинных и коротких имен файлов следует с помощью значка System ю Control Panel установить для переменно” dircmd значение /х.
Потоки данных
NTFS поддерживает многочисленные потоки данных. Имя потока идентифицирует новый атрибут данных в файле. Потоки имеют раздельные блокировки opportunistic, блокировки файла, размеры размещения и размеры файла, но совместно используются как файл.
Следующий пример иллюстрирует один из потоков:
myfile.dat:stream2
Эта возможность позволяет управлять связаюшми данными как отдельным модулем. Например, компьютеры Macintosh используют этот тип структуры для управления ветвлениями данных и ресурсами. Другим примером может служить библиотека файлов, в которой файлы определены как альтернативные потоки:
library: filel : file2 : file3
Или предположим, что “интеллектуальный” транслятор создает структур файла подобно следующей:
program: source_file : doc_file : object_file : executable_file
Внимание! Т. к. NTFS lie поддерживается на гибких дисках, то при копировании файлов NTFS на гибкий диск потоки данных и другие не обеспечиваемые FAT атрибуты теряются.
Глава 5 Файловые системы Windows NT и улучшенное управление дисками________169
Согласованность с POSIX
Согласованность с POSIX позволяет переносить приложения UNIX в среду Windows NT. Windows NT полностью согласована со стандартом 1003.1 института IEEE, который определяет присвоение имен и идентификацию файлов.
Следующие возможности POSIX включены в NTFS:
• Чувствительные к регистру имена Для POSIX файлы README TXT, Readme.txt и readme.txt являются различными.
• Жесткие связи (hard Imks) Файлу может быть присвоено несколько имен. Это позволяет двум файлам с различными именами, которые могут быть размещены в различных каталогах, содержать одни и те же данные.
• Дополнительные отметки времени Показывают, когда файл был последний раз использован или изменен.
Внимание! Несмотря на то что NTFS поддерживает рсшстрозависимые имена, нельзя использовать стандартные операции NTFS для управления файлами, имена которых отличаются только регистром (к стандартным операциям относятся вьшолняемые из командной строки, типа copy, del и move, и их эквиваленты в File Manager). Например, оба файла annm.doc и AnnM.Doc будут удалены при использовании следующей команды:
del AnnM.Doc
Таким образом, для управления файлами, имена которых отличаются только регистром, следует использовать приложения POSIX.
Дополнительная информация по рассматриваемому вопросу приведена в разделах, связанных с подсистемой POSIX, в главах 1 и 17.
Возможности NTFS, используемые Macintosh Services Clients
Сервис для Macintosh входит в состав Windows NT Server. Этот сервис предоставляет пользователям Macintosh возможность доступа к файлам, находящимся на Windows NT Server; т. к. эти файлы доступны сетевым пользователям Windows NT, файловый сервер может быть легко использован для общего доступа с различных аппаратных платформ.
При разрешении сервиса для Macintoch следует сделать доступным раздел NTFS, если требуется автоматическое создание тома модуля аутентификации пользователя (User Authentification Module) для клиентов Macintosh (Network Control Panel использует первый раздел NTFS для создания этих томов по умолчанию).
Клиенты Macintosh могут использовать только файлы на томах NTFS. Ветвления ресурсов Macintosh и информация Finger для каждого файла Macintosh сохраняются как потоки NTFS. Поскольку NTFS поддерживает длинные имена, большинство имен файлов Macintosh сохраняются. Сервис для Macintosh сохраняет привилегии папки (File Sharing folder) как разрешения Windows NT; это означает, что существует только один набор разрешений для папки или файла, который предписан и пользователям Windows NT и пользователям Macintosh. Однако пользователи Macintosh не смогут видеть разрешения файла, так как AppleShare поддерживает только разрешения папки.
Дополнительную информацию относительно сервиса для Macintosh можно найти в документации Windows NT Server Services for Macintosh.
170 ____________________________ЧАСТЬ III Использование Windows NT
Системные файлы NTFS
NTFS включает несколько системных файлов, которые скрыты от просмотра на томе. Системные файлы используются только файловой системой для хранения метаданных и поддержания работы файловой системы. Системные файлы записываются на том утилитой Format. Список системных файлов NTFS представлен в табл. 5.2.
Таблица 5.2, Системные файлы NTFS
Системный файл |
Имя файла |
Описание |
Master File Table
(главная файловая таблица) |
$Mft
|
Список содержимого тома NTFS
|
Master File ТаЫе2
(копия главной файловой таблиць |
$MftMirr
-) |
Зеркальное отображение наиболее важных
частей MFT, используется для га
рантирования доступа к MFT в случае сбоя
одиночного сектора |
Log File
(регистрационный файл) |
$LogFile
|
Список шагов транзакции используемых
Log File System для восстановления состо яния (recoverability) |
Volume (том) |
$Volume |
Имя версия и другая информация относительно тома |
Attribute Definition
(определение атрибутов) |
$AttrDef
|
Таблица имен атрибутов номеров и
дескрипторов |
Root Filename Index (индекс корня файловых имен) |
$ |
Корневой каталог |
Claster Bitmap
(битовый массив кластеров) |
$Bitmap
|
Описание содержимого тома показываю
щее какие размещаемые модули использованы |
Boot File
(загрузочный файл) |
$Boot
|
Содержит информацию начальной загрузки
для тома если том является загрузочным |
Bad Cluster File
(файл плохих кластеров) |
$BadClus
|
Содержит указание положения плохих кластеров тома |
Сравнение NTFS с HPFS и FAT
NTFS заимствовала лучшие свойства FAT и HPFS. От FAT система NTF заимствовала философию “простота рождает эффективность”. Эффективность увеличивается, когда число дисковых передач минимизировано для общих операций. От HPFS система NTFS унаследовала методы для повышения быстродействия и гибкости. Например, NTFS использует B-tree, подобные применяемым в HPFS для максимизации эффективности. NTFS поддерживает и длинные и короткие имена файлов для совместимости с MS-DOS, HPFS и другими сетевыми клиентами, включая OS/2, UNIX, Ap-pleShare и NFS. NTFS также обеспечивает многочисленные расширенные (extended) атрибуты и позволяет будущим приложениям определить другие расширенные атрибуты.
NTFS обеспечивает безопасность данных на фиксированных и сменных жестких дисках, что особенно важно для корпоративных пользователей. Например, предположим, что пользователь Alexander имеет сменный жесткий диск на компьютере. Этот жесткий диск форматируется как том NTFS и имеет
Глава 5. Файловые системы Windows NT и улучшенное управление дисками________171
разрешения защиты, которые разрешают доступ только Alexander и другому пользователю в этом же домене, Ann. Ann работает в филиале компании. Alexander извлекает диск из компьютера и посылает его Ann, которая устанавливает диск в свой компьютер. При обращении к файлам на диске благодаря тому, что Ann находится в том же самом домене, что и Alexander, она видит, что механизмы защиты внутри области для тома NTFS является неповрежденными.
Внимание! Необходимо убедиться в закрытии системы перед извлечением диска, содержащего том NTFS.
Кроме этого, NTFS обеспечивает систему восстановления, которая является более надежной, чем у FAT или HPFS; NTFS также отвечает требованиям POSIX.
В табл. 5.3 представлены сравнительные характеристики FAT, HPFS и NTFS применительно к Windows NT:
Таблица 5.3. Сравнение характеристик FAT, HPFS и NTFS
Характеристика |
FAT |
HPFS |
NTFS |
Filename (имя файла) |
“Восемь плюс три” символа ASCII (допускается один разделитель — точка); в Windows NT 255 символов Unicode (допускается несколько разделителей) |
254 байта двухбайтных символов (допускается несколько разделителей) |
255 символов Unicode (допускается несколько разделителей) |
File size (размер файла) |
2 в 32 байта |
2 в 32 байта |
2 в 64 байта |
Partition (раздел) |
2 в 32 байта |
2 в 32 байта |
2 в 64 байта |
Maximum path length (максимальная длина пути) |
64: в Windows NT не ограничена |
Не ограничена |
Не ограничена |
Attributes (атрибуты) |
Только несколько однобитовых флажков плюс несколько байтов информации расширенных атрибутов в Windows NT 3.5 |
Однобитовые флажки плюс 64 Кб информации расширенных атрибутов |
Вся информация, включая данные. обрабатывается как атрибуты файла |
Directories (каталоги) |
Не сортируются |
B-tree |
B-tree |
Philosophy (философия) |
Простота |
Эффективность на больших дисках |
Быстрота, восстанавливаемость и безопасность |
Built-in security features (встроенные средства без-опасности) |
Нет |
Нет |
Есть |
|