Опубликован: 15.10.2008 | Доступ: свободный | Студентов: 3144 / 507 | Оценка: 4.48 / 4.23 | Длительность: 45:21:00
Лекция 6:

Файловые системы и функции

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >

Сжатие NTFS

Сжатие файлов NTFS – встроенная функция этой файловой системы. Вы можете сжимать данные на всем томе в отдельной папке или в конкретном файле. Чтобы включить сжатие, откройте диалоговое окно Properties (Свойства) для тома, папки или файла и используйте следующим образом вкладку General (Общие).

  • Для тома выберите вариант Compress Drive To Save Disk Space (Сжимать диск для экономии места на диске). Появится вопрос, хотите ли вы применять сжатие только к корню или ко всем папкам.
  • Для папки щелкните на кнопке Advanced (Дополнительно) и затем выберите опцию Compress Contents To Save Disk Space (Сжимать содержимое для экономии места на диске). Появится вопрос, хотите ли вы применять сжатие к под-папкам.
  • Для файла щелкните на кнопке Advanced и затем выберите опцию Compress Contents To Save Disk Space.

Если вы смотрите свойства какого-либо сжатого объекта в окне My Computer или Windows Explorer, то видите оба размера (рис. 6.1).

Размер файла на диске (Size on disk) показывает, что выполнено сжатие

Рис. 6.1. Размер файла на диске (Size on disk) показывает, что выполнено сжатие

В схеме сжатия NTFS используются как виртуальные номера кластеров (VCN), так и логические номера кластеров (LCN). Для файла, у которого есть данные, хранящиеся в нерезидентных атрибутах или экстентах, атрибут данных содержит отображения для начального VCN и начального LCN в экстенте, а также количество кластеров. NTFS работает с этими номерами кластеров для получения сжатия, используя один из двух способов: разреженное хранение (sparse storage) или секционированные данные (divided data).

Разреженное хранение – это способ экономии дискового пространства, когда нуль-блоки данных не сохраняются на диске. Иногда в больших файлах имеются большие нуль-блоки (байты со значением 0). В NTFS такие файлы называются разреженными файлами, в которых хранятся только ненулевые данные. Например, у вас может быть 100-кластерный файл, содержащий реальные данные только в первых 5 и последних 5 кластерах (90 кластеров содержат только нули). NTFS может хранить для этого файла два экстента, каждый из которых содержит 5 кластеров. Первый кластер будет иметь номера VCN от 0 до 4, и второй кластер будет иметь номера VCN от 95 до 99. NTFS подразумевает, что VCN с номерами 5-94 содержат нуль-блоки и для них не требуется физического пространства на диске. Если какой-либо программе требуются данные из этой части, NTFS просто заполняет буфер запрашивающей программы нуль-блоками. Когда (или если) это приложение размещает в этом пространстве реальные (ненулевые) данные, NTFS создает новый экстент с соответствующими номерами VCN.

Если файл содержит мало нуль-данных, то NTFS не пытается записать данные файла внутри одного экстента; вместо этого NTFS разбивает данные на экстенты по 16 кластеров каждый. В любом конкретном экстенте, где сжатие данных экономит хотя бы один кластер, NTFS сохраняет данные в сжатом виде, что дает 15 или меньше кластеров. Если данные нельзя сжать в достаточной степени (например, случайные данные в общем случае сжать невозможно), то NTFS просто сохраняет весь экстент без какого-либо сжатия. Из записи MFT для сжатого файла NTFS определяет, что в экстенте имеются пропущенные номера VCN, а это означает, что файл сжат.

Если данные хранятся в сжатой форме, то какой-либо конкретный байт нельзя определить путем расчета номера кластера, в котором он находится. Вместо этого NTFS рассчитывает, в каком 16-кластерном экстенте находится соответствующий адрес, выполняет распаковку этого экстента в виде 16 несжатых кластеров и затем рассчитывает смещение в файле с помощью допустимых виртуальных номеров кластеров (VCN). Чтобы реально использовать эту схему адресации, NTFS делает так, чтобы все эти экстенты начинались с виртуального номера кластера, который делится на 16.

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

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

Модернизация в файловую систему NTFS

Если вы устанавливаете Windows Server 2003 поверх существующего тома NTFS Windows NT 4, этот том автоматически модернизируется в новую файловую систему NTFS. Эта модернизация является обязательной, и вы не можете управлять этим процессом. Модернизация файловой системы не является процессом, который порождается программой установки Windows Server 2003; он запускается драйвером NTFS по завершении установки. Все локально подключенные тома NTFS модернизируются к новой версии файловой системы NTFS, включая съемные носители. Тома NTFS Windows NT 4, которые удалены или отключены во время установки, модернизируются автоматически при следующем монтировании соответствующих дисков. Любые тома NTFS Windows NT 4, которые не были модернизированы, не будут монтироваться в Windows Server 2003.

Внимание. Если вам нужна двойственная загрузка между Windows NT 4 и Windows Server 2003, то система NT 4 должна быть установлена с Service Pack версии 4 или последующих версий и работать с NTFS. Новые средства, поддерживаемые NTFS, изменяют структуру данных на дисках, и файл ntfs.sys в SP4 (и последующих версиях) позволяет работать с этими изменениями.

При модернизации поверх любой операционной системы Windows, которая не работает с NTFS, вам предлагается вариант, позволяющий преобразовать жесткий диск из FAT или FAT32 в NTFS во время текстовой фазы программы установки Windows 2000. На экран выводится следующее сообщение:

Upgrading to the Windows NT File System (Модернизация в файловую систему NTFS) Do you
want Setup to upgrade your drive to NTFS? (Хотите ли вы, чтобы программа установки
модернизировала ваш диск в NTFS?)
Yes, Upgrade my drive (Да, модернизировать мой диск)
No, Do not upgrade my drive (Нет, не модернизировать мой диск)

По умолчанию выбран вариант Yes.

Вы можете также выполнить преобразование из FAT/FAT32 после установки Windows Server 2003. См. ниже раздел "Преобразование в NTFS".

Выбор нужной файловой системы

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

Несколько лет назад в моих публикациях по Windows NT я обычно рекомендовал читателям форматировать системный раздел с помощью FAT. Если система не загружалась, и причиной этого был поврежденный или отсутствующий системный файл, вы могли бы легко заменить этот файл, загрузившись в DOS и скопировав этот файл.

Но теперь я считаю, что все компьютеры Windows Server 2003, а также компьютеры с Windows XP и Windows 2000 должны быть обязательно отформатированы с помощью NTFS. Я изменил свое мнение по двум следующим причинам.

  • Размер устанавливаемой ОС столь велик, что тома FAT/FAT32 с их неэкономным использованием пространства стали просто неэффективны.
  • Консоль восстановления (Recovery Console) – совместимое с NTFS приложение, запускаемое из командной строки, которое появилось в Windows Server 2000, обеспечивает доступ к поврежденному системному разделу.
  • Существуют ситуации, когда вам может потребоваться выбор файловой системы FAT или FAT32, и в большинстве случаев (если не во всех) это решение относится к рабочим станциям, на которых вы устанавливаете Windows XP Professional (или Windows 2000 Professional):
  • Если выбрать FAT, то доступ к этому компьютеру и его файлам можно выполнять из любой операционной системы: MS-DOS, любая версия Windows, Windows NT, Windows 2000 и OS/2.
  • Если выбрать FAT32, то доступ к этому компьютеру и его файлам можно выполнять через Windows 95 OSR2, Windows 98 и Windows 2000.

Двойственная загрузка обычно используется в тех случаях, когда компьютеру требуется поддержка приложений, которые не могут выполняться в обеих операционных системах, установленных на данной машине. Чтобы запустить такое приложение, вы можете перезагрузить компьютер и выбрать подходящую для этого операционную систему. На рабочих станциях я встречался с двойственной загрузкой, которая использовалась, чтобы несколько пользователей могли получать доступ к операционной системе и приложениям, которые были нужны каждому конкретному пользователю. Но прежде чем принять решение об использовании двойственной загрузки, вы должны ознакомиться с вопросами совместимости между NTFS и другими файловыми системами.

Во-первых, запомните, что в отличие от Windows NT система Windows Server 2003 (и Windows 2000) должна быть установлена в ее собственном разделе; у вас уже нет варианта выбора, позволявшего выбрать для установки новую папку в разделе, который уже содержит другую операционную систему. Это означает, что если на вашем диске нет двух томов, то вы должны сначала разбить его на разделы и отформатировать его, а после этого устанавливать операционные системы.

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

Преобразование в NTFS

Если у вас есть том, отформатированный с помощью FAT/FAT32, то вы можете преобразовать его в NTFS без необходимости резервного копирования файлов, переформатирования диска и запуска всех компонентов с самого начала для NTFS. В Windows включена утилита командной строки convert.exe, которая преобразует файловую систему. Convert.exe имеет следующий основной синтаксис:

convert буква-диска: /fs:ntfs

Параметр /fs:ntfs является обязательным, хотя не существует других вариантов преобразования – convert.exe выполняет преобразование только NTFS. Convert.exe не работает в противоположном направлении – вы не можете преобразовать диск NTFS в FAT/FAT32.

Для выполнения своих задач convert.exe должна блокировать доступ к диску, поэтому вы не можете преобразовать текущий том (том, на котором вы находитесь при запуске этой команды) сразу, поскольку он используется на этот момент. Convert не может также блокировать системный том, поскольку он всегда находится в использовании. (Во многих случаях системный том – это также текущий том.) В этом случае процесс преобразования запускается при следующей загрузке. Имейте в виду, что эта следующая перезагрузка будет намного дольше, чем обычно, поскольку преобразование не является быстрым процессом.

Если вы преобразовываете другой том на данном компьютере и этот том не является системным диском, то преобразование происходит сразу. Например, после ввода команды convert d: /fs:ntfs выводится набор экранных сообщений:

The type of the file system is FAT32 (Тип файловой системы - FAT32)
Determining disk space required for filesystem conversion (Определение пространства на
диске, необходимого для преобразования файловой системы)
Total disk space: (size of drive in KB) [Всего объем пространства на диске в Кб)]
Free space on volume: (free space in KB) [Объем свободного пространства на диске в Кб)]
Space required for conversion: (required space in KB) [Объем пространства, которое
требуется для преобразования, в Кб)]
Converting file system (Преобразование файловой системы)
Conversion complete. (Преобразование завершено)

Время между появлением сообщения "converting file system" и "conversion complete" варьируется в зависимости от размера тома.

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

Совет. Перед преобразованием тома имеет смысл дефрагментировать его, поскольку это дает больший объем непрерывных областей свободного пространства на диске и, к тому же, процесс преобразования выполняется несколько быстрее.

Convert.exe имеет два дополнительных параметра, которые иногда используются.

  • /v указывает режим вывода подробной информации, то есть во время преобразования выводятся все сообщения (в основном это отчеты о ходе процесса); это параметр для особо любопытных пользователей.
  • /nosecurity указывает, что настройки безопасности преобразованных файлов и папок задаются таким образом, что каждый пользователь получает доступ ко всей информации (ясно, что это никак не подходит для преобразования сервера).

Когда вы запускаете convert.exe для установки NTFS, том уже имеет файлы и загрузочные записи, поэтому таблица MFT создается не там, где она оказывается, когда вы форматируете том с помощью NTFS. Это может вызвать снижение произ-

водительности – особенно для большого тома, содержащего много файлов. Если вы собираетесь использовать данный компьютер как файл-сервер, к которому будут обращаться очень много пользователей (а каждый пользователь будет создавать много файлов), то снижение производительности будет довольно заметным. В этом случае я советую выполнить резервное копирование существующих данных и отформатировать том с помощью NTFS вместо использования convert.exe.

< Лекция 5 || Лекция 6: 12345 || Лекция 7 >
Алексей Муратов
Алексей Муратов
Россия, р п Хохольский