- •Глава 1
- •1.1.1 Восстанавливаемость
- •1.1.2 Защита от несанкционированного доступа
- •1.1.3 Избыточность данных и отказоустойчивость
- •1.1.4 Диски и файлы большого объема
- •1.2 Новые возможности ntfs
- •1.2.1 Множественные потоки данных
- •1.2.2 Имена в unicode
- •1.2.3 Универсальное средство индексации
- •1.2.4 Переназначение плохих кластеров
- •1.2.5 Поддержка posix
- •1.2.6 Сменные диски
- •Глава 2
- •2.1 Многоуровневая модель драйвера
- •2.2 Модели реляционной базы данных и обработки транзакций
- •2.3 Объектная модель
- •Глава 3
- •3.2 Структура на диске
- •3.3 Индексация имен файлов
- •3.4 Файлы метаданных ntfs и загрузочный файл
1.1.2 Защита от несанкционированного доступа
Защита данных от несанкционированного доступа имеет первостепенное значение для тех коммерческих и правительственных организаций, которые обрабатывают закрытую или не допускающую несанкционированных изменений информацию — например, для банков, больниц или учреждений, связанных с обороной. Таким пользователям нужны гарантии, что их данные будут защищены от несанкционированного доступа.
Организация контроля доступа в NTFS непосредственно следует из объектной модели Windows NT. Открытый файл представляется в виде файлового объекта, дескриптор защиты которого хранится на диске как часть файла4. Прежде чем процесс сможет открыть описатель любого объекта, в том числе и файлового, система контроля доступа Windows NT проверяет, есть ли у процесса соответствующие права. Дескриптор защиты, в сочетании с требованием, чтобы пользователь зарегистрировался при входе в систему и указал свой пароль, гарантирует, что никакой процесс не сможет получить доступ к файлу, если только соответствующие права не были назначены ему администратором системы или владельцем файла.
1.1.3 Избыточность данных и отказоустойчивость
Кроме восстанавливаемости данных ФС, некоторым пользователям необходимо, чтобы их собственные данные не подвергались опасности при отключении питания или фатальном сбое системы. Средства восстановления NTFS гарантируют возможность продолжения работы с ФС на томе, однако полное восстановление пользовательских файлов не гарантируется. Для банковских и других приложений, в которых потеря файловых данных должна быть исключена, дополнительный уровень защиты обеспечивается благодаря избыточности данных.
Многоуровневая модель драйвера Windows NT позволяет NTFS взаимодействовать с драйвером отказоустойчивого диска, который, в свою очередь, обращается к драйверу жесткого диска для записи данных на диск Это позволяет системе с Windows NT организовать отказоустойчивое дисковое хранилище данных, установив дополнительный драйвер5. Драйвер отказоустойчивого диска зеркально отображает (дублирует) информацию с одного диска на другой, так что всегда можно воспользоваться избыточной копией. Этот драйвер также позволяет "размазывать" данные по трем и более дискам, используя эквивалент одного диска для хранения информации о четности. Если данные на одном из дисков будут потеряны, драйвер в состоянии восстановить содержимое диска при помощи операции "исключающее ИЛИ"6.
4 Более подробную информацию о дескрипторах защиты и файловых объектах см. "Основы Windows NT", гл. 3, "Диспетчер объектов и контроль доступа" и гл. 8, "Система ввода-вывода".
5 Поддержка отказоустойчивого диска имеется только в Windows NT Advanced Server.
6 Способность отказоустойчивого драйвера создавать зеркальную копию диска соответствует специ фикации RAID уровня 1, а возможность записи данных областями — RAID уровня 5. См. работу Patterson и др. в библиографии в конце книги.
1.1.4 Диски и файлы большого объема
В инженерных и научных приложениях часто требуется хранить и обрабатывать очень большие объемы информации. В настоящее время вполне обычны жесткие диски размером более 2 Гбайт и дисковые массивы объемом 8 или 10 Гбайт. Поддержка очень больших дисков и больших файлов в NTFS реализована эффективнее, чем в FAT и в HPFS.
Файловая система FAT использует таблицу 16-разрядных элементов для хранения информации о распределении пространства на томе. Единицами распределения памяти являются кластеры (clusters) одинакового размера, на которые разделяется том, а так как каждому кластеру должен быть присвоен уникальный 16-разрядный номер, то FAT поддерживает максимально 216, или 65.536 кластеров на одном томе (хотя некоторую часть этого пространства FAT резервирует для собственных нужд). Размер кластера можно увеличивать или уменьшать в зависимости от размера тома. Однако, когда размер тома превышает некоторую величину, кластеры становятся слишком большими, что ведет к увеличению объема неиспользуемого дискового пространства — так называемой внутренней фрагментации (internal fragmentation). Например, для диска объемом 65 Мбайт достаточен размер кластера 1 Кбайт, однако диск объемом 640 Мбайт требует уже кластера размером в 10 Кбайт. Так как размер кластера должен быть степенью двойки, то для диска 640 Мбайт фактически используется кластер в 16 Кбайт, т. е. пространство выделяется порциями по 16 Кбайт. Если размер файла равен, например, 512 байт или 17 Кбайт, то для хранения данных используется только часть выделенного пространства. В любом случае на томе FAT может храниться не более 65.518 файлов (максимальное количество доступных кластеров), независимо от размера диска.
HPFS применяет для нумерации единиц распределения пространства 32 разряда, что дает 232, или более 4 миллиардов номеров. Однако HPFS использует числа со знаком, что сокращает число доступных единиц распределения пространства на томе до 2 миллиардов. HPFS распределяет пространство на диске не кластерами, но физическими секторами по 512 байт. Такая негибкость может быть проблемой, особенно на рынках в Азии, где размер аппаратного сектора дисковых устройств обычно равен 1024 Кбайт. На таких дисках HPFS использовать нельзя, так как диск не может выделять пространство порциями, размер которых меньше его аппаратного сектора. Кроме того, размер файла в HPFS ограничен 4 Гбайт.
NTFS распределяет пространство кластерами и использует для их нумерации 64 разряда, что дает возможность иметь 2е4 (свыше 16.000.000.000.000.000.000, или 16 миллиардов миллиардов) кластеров, каждый размером до 4 Кбайт. Размер отдельного файла практически неограничен — до 2е4 байт. Как и в FAT, размер кластера в NTFS может меняться, но не обязательно возрастает пропорционально размеру диска. NTFS использует размер кластера, равный 512 байт, на маленьких дисках и максимальный размер кластера 4 Кбайт на больших*. Хотя для представления каждого отрезка (run), или выделенного фрагмента диска NTFS использует 64-разрядный (8-байтовый) адрес, эти адреса "кодируются" так, что занимают от 3 до 5 байт для каждого отрезка (пример кодирования адреса см. далее на рис. 3-12 в гл. 3). В HPFS для представления каждого отрезка используется 12 байт.
* В Windows NT 4.0 максимальный поддерживаемый размер кластера составляет 64 Кбайт.