Лекция 5 Операционные системы

rkpdf


Презентация к лекции

Файловые системы Windows

Что такое файловая система

Форматирование флешки или системного накопителя - стандартная задача компьютерного пользователя. В современных операционных системах процесс сильно упрощен, поэтому справится даже новичок. Система самостоятельно определяет, какие настройки подходят определенному устройству и какую файловую систему выбрать при форматировании. Так, Windows форматирует системные накопители в NTFS, а флешки превращает в FAT32. Почему так происходит? Чем отличаются эти файловые системы и вообще, зачем диску нужен «формат»?

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

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

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

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

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

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

Накопитель - это библиотека (как здание или организация).

Пользователь - это читатель, который пришел в библиотеку за произведением Жюля Верна.

Файл - это книга с понятным названием (атрибутом) или другим условным опознавательным знаком, например, упомянутый выше «Таинственный остров».

Драйвер файловой системы - это библиотекарь, который выступает в роли посредника или проводника между читателем и книгой. Или между пользователем (компьютером, операционной системой) и файлом (ячейками с информацией в микросхемах памяти или на магнитных пластинах).

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

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

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

Существует больше 30 файловых систем (ФС), большая часть которых имеет специфическое применение. Например, ФС под названием XFS создана исключительно для операционной системы IRIX, а DTFS - это файловая система, специализирующаяся на сжатии данных.

Если говорить относительно обычных пользователей ПК на Windows, MacOS и Linux, то для них список можно сократить до нескольких самых распространенных.

Самые распространенные среди компьютеров на ОС Windows — это FAT32, NTFS и новая файловая система REFS.

Остановимся на них более подробно.

FAT and FAT32

FAT (File Allocation Table) - это таблица ссылок, которые содержат информацию о блоках данных, образующих файл.

Главное и пока неоспоримое достоинство этой файловой системы - ее универсальность. FAT32 работает практически со всеми операционными системами Windows, а также без проблем распознается linux, MacOS, операционными системами игровых приставок и даже Android (если в смартфоне предусмотрена поддержка OTG).

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

Именно поэтому флэш-накопители чаще всего форматируют в FAT32, чтобы не иметь проблем с совместимостью на различных устройствах. С завода больше 90% всех флешек поставляется с этой ФС. Параллельно к плюсам относится высокая скорость работы с малыми и средними файлами (десятки/сотни мегабайт) и нетребовательность к объему ОЗУ.

Файловая система FAT32 максимально упрощена. Её часто сравнивают с безотказным автоматом Калашникова.

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

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

Первая файловая система FAT (где использовались 12-битные записи) появилась в DOS. Первая версия DOS (1.0) не поддерживала поддиректории, но по мере расширения возможностей DOS изменялась соответствующим образом и файловая система FAT. Например, в DOS 4.0 записи FAT были увеличены до 16 битов, чтобы можно было работать с разделами, превышающими 32 Мб.

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

FAT содержит записи для имен файлов и атрибутов файлов, таких как размер, байт атрибутов (8-битная запись для такой информации, как hidden, read-only и т.д.), время/дату последнего изменения (16-битные записи) и начальный блок размещения, который является указателем на запись файла в FAT.

Если файл не является непрерывным (фрагментирован), то имеются записи FAT, указывающие на каждый блок размещения для этого файла. Эту последовательность называют цепочкой. Последняя запись (запись для "конца файла") содержит шестнадцатеричный код FFFF, указывающий, что это конец цепочки. При загрузке или сохранении файла операционная система использует цепочку для отслеживания местоположения фрагментов файла. По мере роста длины цепочек (диск сильно фрагментирован) производительность диска падает.

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

Кластер может иметь размер 2048, 4096 или 8192 байтов. 16-битная длина записей FAT ограничила размер жестких дисков пределом 128 Мб (при размере кластеров 2048 байтов). Теоретически FAT мог бы поддерживать диск 512 Мб, но при размере кластеров 8192 байта, что крайне неэффективно. Начиная с DOS 5.0, была введена поддержка разделов до 2 Гб за счет создания таблиц FAT для каждого дискового раздела (до четырех разделов).

FAT32, то есть таблица, содержащая 32-битные записи, была введена в Windows 95 OSR2. Это позволило добавить ряд возможностей к файловой системе FAT.

Было снято ограничение на размер раздела в 32 Гб.

Корневая директория размещается не в фиксированной позиции и может быть перемещена.

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

Резервные копии FAT позволяет реально восстанавливаться после аварий.

FAT32 позволяет иметь намного больше кластеров при размере кластера 4096 байтов даже для больших дисков.

FAT32 также позволила работать с именами файлов, длина которых больше предыдущего предела 8.3. Поддержка длинных имен файлов стала, пожалуй, наиболее заметной и наиболее ценной функцией. Microsoft применила для работы с длинными именами файлов в Windows 95 виртуальную таблицу распределения файлов VFAT (Virtual File Allocation Table) - 32-битную утилиту, которая работала в защищенном режиме. На самом деле Microsoft называет расширение VFAT драйвером, поскольку он устанавливается и предполагается, что его можно установить в любой операционной системе.

Одним из основных ограничений файловой системы FAT32 является ограничение размера файла в 4 гигабайта. Это означает, что файлы, превышающие этот размер, не могут быть сохранены на носителе с FAT32. Это может быть проблемой при работе с большими видеофайлами или виртуальными машинами.

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

FAT32 также имеет ограничение на количество файлов в корневой директории - не более 512 файлов. Несоблюдение этого ограничения может привести к проблемам с доступом к файлам.To' jlyf hfpyjdblyjcnm АФЕ

Ещё одна разновидность FAT.

exFAT (Extended File Allocation Table) - это файловая система, разработанная корпорацией Microsoft, которая используется для форматирования съемных носителей и внешних устройств, таких как флеш-накопители и SD-карты. exFAT является улучшенной версией более старой файловой системы FAT32.

Основные преимущества использования exFAT для внешних устройств:

Поддержка больших файлов и томов: exFAT может работать с файлами размером до 16 Эксабайт (10^18 байт) и с томами размером до 128 Петабайт (10^15 байт). Благодаря этому, exFAT является отличным выбором для хранения и передачи больших файлов, таких как видео высокого разрешения.

Отличная совместимость: exFAT поддерживается практически на всех современных операционных системах, включая Windows, macOS и Linux. Благодаря этому, устройства, отформатированные в exFAT, могут быть легко подключены и использованы на разных платформах без необходимости выполнения дополнительных действий.

Быстрый доступ к файлам: exFAT обеспечивает сверхбыстрый доступ к файлам, что особенно важно при работе с большими файлами и потоками данных. Пользователи могут легко воспроизводить видео, записанные на флеш-накопителях exFAT, без прерывания или задержек.

Поддержка случайного доступа: в отличие от более старых файловых систем, таких как FAT32, exFAT обеспечивает полноценную поддержку случайного доступа к данным. Это позволяет быстро перемещаться по файлам и папкам на устройстве без необходимости сканировать всю файловую систему каждый раз.

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

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

NTFS

Большая и сложная NTFS была разработана еще в 1990-х годах. Несмотря на это, файловая система здравствует до сих пор и спокойно переваривает все современные ОС от Microsoft. Конечно, фирменная технология из Редмонда не панацея: если отказаться от «окон» на компьютере, то и NTFS сразу станет ненужной. Правда, для этого придется смириться с Linux на борту или же переехать на платформу Apple - там, между прочим, используется совсем новая APFS, которую яблочные разработчики представили всего несколько лет назад.

NTFS - фирменная файловая система Microsoft, которую разработчики начали внедрять в операционную систему Windows, начиная с версии NT 3.1. Несмотря на байки о ненадежности и низкой отказоустойчивости этой системы, NTFS считается самым лучшим и удачным решением для работы актуальных операционных систем Windows. Конечно, как и любая другая система, NTFS не лишена недостатков - это слишком сложное устройство ФС, особенно по современным меркам. Ведь известно - чем сложнее устройство, тем больше в нем уязвимостей.

Главные отличия FAT-32 от NTFC заключаются в следующем:

Файловая система FAT32 не позволяет хранить отдельные файлы размером более 4 ГБ, а система NTFS позволяет.

По сравнению с системой FAT32, файловая система NTFS более эффективно использует диск и управляет дисковым пространством.

Скорости считывания и записи выше у системы NTFS.

Файловая система FAT32 подходит для устройств флэш-памяти меньшего объема (например, карт памяти, USB-накопителей и иных накопительных устройств), в то время как система NTFS подходит для накопительных устройств большей емкости.

NTFS впервые появилась в Windows 2000 (иногда ее называют NTFS 5). Эта файловая система содержит встроенную поддержку множества средств, которые помогают управлять доменами, пользовательскими учетными записями и средствами безопасности. Данная система NTFS отличается от NTFS, используемой в Windows NT 4. Средства, которые поддерживает NTFS 5, являются частью структуры Windows Server 2003 (и Windows 2000), включая (но не ограничиваясь) следующим.

  • Active Directory.Содержит все объекты операционной системы, разрешая или запрещая доступ с помощью полномочий.
  • Дисковые квоты.Ограничивают использование дискового пространства на уровне пользователя или группы..
  • Шифрование. Обеспечивает автоматическое шифрование и дешифрование данных файла при записи или чтении файла..
  • DFS (Distributed File System - Распределенная файловая система).Позволяет вам использовать одно дерево папок, охватывающее несколько серверов и разделяемых ресурсов.

Кроме мощных средств и возможностей, упрощающих для администраторов управление предприятием, NTFS имеет важную и удобную для пользователей возможность - внесение изменений в значок документа при изменении его местоположения. Эта функция, о которой даже не знают некоторые администраторы, очень удобна для пользователей, которые поддерживают значки для часто используемых документов. Например, я держу в моей панели Quick Launch (Быстрый запуск) значки документов, над которыми работаю длительное время (например, главы книг). Эти значки создаются и удаляются по мере необходимости. Кроме того, я держу значок для любого документа, которому требуется постоянное обновление, например, документ, где я держу пароли для доступа к веб-сайтам.

В диалоговом окне Properties (Свойства) для значка документа представлен путь к этому документу. Если переместить документ в другую папку и затем щелкнуть на его значке, то откроется именно этот документ. При следующем входе в диалоговое окно Properties вы увидите, что путь к этому документу изменен соответствующим образом.

Главная таблица файлов (Master File Table) NTFS

Вместо таблицы FAT (File Allocation Table) NTFS использует специальный файл, который называется Master File Table (MFT), позволяющий отслеживать все файлы и папки на томе. MFT имеет переменный размер, и она автоматически расширяется по мере необходимости. Фактически MFT является массивом записей, который вы можете рассматривать как базу данных по всем файлам системы.

Каждая запись MFT обычно имеет фиксированный размер 1 Kб, и первые 16 записей содержат информацию о данном томе. Эти относящиеся к тому записи называются файлами метаданных (эта терминология используется для структур служебной информации в файловой системе).

Обычно одна запись в MFT соответствует одному файлу или папке в этой файловой системе. Запись содержит атрибуты файла, включая такие элементы, как readonly (доступ только по чтению) и флаги архивации, даты создания и последнего доступа, имя файла и дескриптор безопасности.

Примечание. Обычно в запись включаются два имени файла: длинное имя и совместимое с DOS имя в формате 8.3.

Более существенным отличием от FAT является то, что сами данные файла являются просто еще одним атрибутом NTFS. Имеется ограничение на количество данных, которые можно поместить в запись MFT, и все, что превышает этот предел, заменяется в записи указателями на местоположение данных этого файла на диске. Запись MFT может содержать примерно 750 байтов данных файла (точное количество зависит от количества атрибутов, хранящихся в записи MFT). Небольшие файлы данных (меньше 750 байтов) могут умещаться целиком в своих записях MFT, что дает невероятно высокую производительность без какого-либо риска фрагментации этих файлов.

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

·                 VCN (Virtual Cluster Numbers - Виртуальные номера кластеров) от 0 до n-1, где n - количество кластеров в файле;

·                 LCN (Logical Cluster Numbers - Логические номера кластеров), соответствующие номерам кластеров на томе.

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

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

Если какой-либо атрибут не умещается в записи MFT, то NTFS сохраняет его в новом, отдельном наборе кластеров на диске, который называется непрерывной областью, или экстентом. Обычно атрибут, представляющий данные файла, слишком велик, чтобы уместиться в записи MFT. Однако и другие атрибуты могут оказаться достаточно большими, чтобы образовать новые экстенты. Например, длинные имена файлов могут содержать до 255 символов, каждый из которых занимает 2 байта (поскольку имена файлов хранятся в кодировке Unicode).

Атрибут, который хранится в самой записи MFT, называется резидентным атрибутом. Если атрибут вытесняется в экстент, то он называется нерезидентным атрибутом. Это означает, что если пользователи не создают все время очень короткие файлы с короткими именами, то большинство файлов на томе имеют данные, которые соответствуют нерезидентному атрибуту.

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

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

Папки (директории) обрабатываются в NTFS почти так же, как файлы. Если папка достаточно мала, то индекс для файлов, на которые указывает эта папка, может уместиться в записи MFT. Эта информация является атрибутом, который называется Index Root (Корень индекса).

Если в папке (индексе) имеется больше элементов, чем может уместиться в записи MFT, то NTFS создает новый экстент с нерезидентным атрибутом, который называется буфером индекса. Для таких папок буферы индексов содержат то, что называется деревом b+, которое является структурой данных, предназначенной для минимизации количества сравнений, необходимых для поиска определенного файла.

В дереве b+ хранится информация (или указатели на информацию) в отсортированном порядке. Запрос отсортированного списка элементов папки выполняется быстро, поскольку это порядок хранения в буфере индекса. Поиск определенного элемента тоже выполняется быстро, поскольку эти деревья больше разрастаются "вширь", чем "вглубь", что сводит к минимуму количество попыток доступа, необходимых для достижения определенной точки дерева.

Фрагментация NTFS

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

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

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

Внимание. Выбор 512-байтовых кластеров может вызвать проблемы, поскольку таблица MFT состоит из записей, имеющих длину 1024 байта. В случае кластеров размером 512 байтов отдельные записи MFT могут оказаться фрагментированными. Это невозможно при более высоких размерах кластеров, которые могут содержать более одной записи MFT без каких-либо потерь.

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

Примечание. Можно создать том NTFS с размером кластеров больше 4K, но дефрагментировать том с помощью встроенной программы дефрагментации будет невозможно. Вы не сможете также использовать сжатие NTFS.

Важно отметить, что существуют отличия в фрагментации на различных уровнях хранения данных. Отдельные приложения, такие как Microsoft Office, и серверы баз данных, такие как Oracle, имеют проблемы фрагментации в рамках их собственного хранилища данных. Эти проблемы возникают независимо от файловой системы или операционной системы.

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

Приложения, имея собственную организацию данных, могут создавать неиспользуемые промежутки в данных, что фактически фрагментирует эти данные. Как и в файловой системе, удаление данных в приложении не обязательно является их фактическим удалением; эти данные только маркируются как удаленные. Появление промежутков в логическом хранилище данных называют внутренней фрагментацией. Чтобы избежать внутренней фрагментации данных, в некоторые приложения, такие как Microsoft Access, включаются утилиты сжатия данных в файле, то есть фактически происходит дефрагментация внутреннего файла. К сожалению, эти утилиты сжатия часто увеличивают степень фрагментированности на уровне файловой системы, поскольку они обычно создают совершенно новую копию этого файла, используя большие объемы пространства на диске в этом процессе. Таким образом, частая дефрагментация ваших файлов данных может увеличить степень фрагментированности вашей файловой системы.

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

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

Папки, содержащие программные файлы, мало увеличиваются или уменьшаются в течение периода их использования. Но папки пользовательских документов и системная папка TEMP изменяют свои размеры весьма существенно. По мере роста числа файлов в папке NTFS может реагировать на этот рост путем увеличения пространства хранения папки. Если содержимое папки становится меньше, то NTFS может также освобождать неиспользуемое пространство в папке, но это происходит не всегда, поскольку является достаточно сложной операцией. Папки, которые, скорее всего, будут расти или сжиматься, создаются обычно на стадии конфигурирования системы (например, папки My Documents и TEMP). Эти папки разрастаются, занимая, скорее всего, область, которая не является непрерывной. Поскольку такие папки интенсивно используются, их фрагментация оказывает реальное влияние на производительность компьютера.

Что касается производительности, то вам следует знать, что большая вложенность папок может быть удобной с организационной точки зрения, но за это вы платите снижением производительности. Когда NTFS выполняет поиск данных в своих деревьях b+, то она проходит с самого начала через все уровни поддерева данной папки. Поэтому производительность для деревьев с меньшей вложенностью, имеющих большее число файлов, будет выше, чем для деревьев с большей вложенностью и меньшим числом файлов. Поддеревья с очень большими уровнями вложенности могут также представлять проблемы для приложений, которые имеют ограничение на общее число символов в полном пути к файлу (обычно это предел в 255 символов).

Сжатие 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) показывает, что выполнено сжатие

В схеме сжатия 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

Вы можете отформатировать том FAT/FAT32 для NTFS, если это не системный и не загрузочный том. Это означает, что вы можете отформатировать такой том на компьютерах, которые имеют несколько томов (в противном случае вы должны использовать утилиту convert.exe или переустановить операционную систему). Чтобы сделать это, вы можете использовать оснастку Disk Management (Управление дисками).

Полномочия NTFS

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

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

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

Полномочия NTFS и полномочия для разделяемых ресурсов

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

Файловая система REFS в Windows 10

в Windows Server, а теперь и в Windows 10 появилась современная файловая система REFS (Resilient File System), в которой вы можете отформатировать жесткие диски компьютера или созданные системными средствами дисковые пространства.

Здесь поговорим о том, что представляет собой файловая система REFS, о её отличиях от NTFS и возможных применениях для обычного домашнего пользователя.

Что такое REFS

Как уже было отмечено выше, REFS - новая файловая система, недавно появившаяся в «обычных» версиях Windows 10 (начиная с версии Creators Update ее можно использовать для любых дисков, ранее - только для дисковых пространств). Перевести на русский можно примерно как «Устойчивая» файловая система.

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

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

Изначально REFS в пользовательских версиях Windows 10 была доступна только для дисковых пространств.

В случае с дисковыми пространствами её особенности могут быть наиболее полезными при обычном использовании: например, если вы создаете зеркальные дисковые пространства с файловой системой REFS, то при повреждении данных на одном из дисков, поврежденные данные сразу будут перезаписаны неповрежденной копией с другого диска.

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

Отличия файловой системы REFS от NTFS

Помимо функций, связанных с поддержкой целостности данных на дисках, REFS имеет следующие основные отличия от файловой системы NTFS:

  • Обычно более высокая производительность, особенно в случае использования дисковых пространств.
  • Теоретический размер тома 262144 экзабайта (против 16 у NTFS).
  • Отсутствие ограничения пути к файлу в 255 символов (в REFS - 32768 символов).
  • В REFS не поддерживаются имена файлов DOS (т.е. получить доступ к папке C:Program Files по пути C:progra~1 в ней не получится). В NTFS эта возможность сохранялась в целях совместимости со старым ПО.
  • В REFS не поддерживается сжатие, дополнительные атрибуты, шифрование средствами файловой системы (в NTFS такое есть, для REFS работает шифрование Bitlocker).

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

Отличия от NTFS

«ReFS» изначально создана для поддержки больших объемов разделов, файлов, каталогов и их имен. Новая ФС может включать до двести шестидесяти двух тысяч эксабайт информации, а «NTFS» — только шестнадцать эксабайт.

Еще, в ней отсутствуют функции шифрования, сжатия, дедупликации, дисковые квоты, жесткие ссылки и расширенные атрибуты. Некоторые из них заменены на новые, например, «ReFS» полностью поддерживает шифрование «BitLocker».

Сейчас, в файловую систему «ReFS» вы сможете отформатировать только пул дисков (пространство хранения), где новая ФС покажет себя во всей красе.

Но Windows 10 не разрешит отформатировать обычный носитель в «ReFS». Разработчики подчеркивают значение «ReFS» именно для серверов, она доступна на серверных ОС или в «LTSC» версии.

ОС Windows Server 2016 позволит отформатировать обычные тома в «ReFS», но не позволит отформатировать загрузочный диск, потому что загрузочный сектор должен быть на «NTFS» разделе.

Как корневая запись B+дерева, остальные записи имеют такой же объем в 16 кб, для блока метаданных. Размер в 60 байт - выделен для промежуточных (адресных) узлов. Следовательно, для правильного описания масштабных структур хранения потребуется малое количество уровней. Это позволило увеличить производительность ФС, по сравнению с другими 

Структура файловой системы ReFS

«ReFS» можно определить по специфической сигнатуре, которая расположена в начале раздела:

0x4000 байт - длина всех страниц ReFS.

Номер первой страницы - 0x1e, то есть 0x78000 байт которые идут сразу за загрузочным разделом. Это стандартное отображение Microsoft, которое информирует, что первые метаданные нужно искать после фиксированного смещения. 

Алгоритм поиска удаленных данных

Утилиты для восстановления данных выполнят полное сканирование дискового пространства, отформатированного под «ReFS», используя алгоритм анализа по сигнатурам. Проверяя диск блок за блоком, они обнаружат готовые последовательности данных, определят их и выведут результаты. Так как API для работы с дисками для «ReFS» и «NTFS» одинаковы, то и процессы восстановления данных предельно схожи.

Сначала определяется «Volume Header», в нем записано количество секторов на кластер и какой объем сектора. Основная версия лежит в нулевом секторе, а копия расположена в последнем. Далее считывается «Superblock», он расположен в 30-ом блоке и также есть 2 копии во втором и третьем блоке в конце. Из него, извлекается ссылки на «чекпоинт» и его копию, определяется его последняя актуальная версия по «Virtual Allocated Clock».

Checkpoint содержит информацию об основных таблицах, далее считываются заголовки «Page Header» и блоки с указателями (Pointers) на полный список таблиц. Потом ищется «Container Table» для получения физических адресов из виртуальных, и выполняется поиск по «Object ID Table» - все таблицы найдены.

Утилиты доходят до нулевых уровней - то есть «листов b-дерева», и считывают данные файлов. Так как поиск ведется постранично, то если есть сбои - эти элементы просто исключаются из анализа, а сам процесс сканирования идет дальше. Таким образом утилиты для восстановления данных находят всю информацию, которую возможно «достать» с диска.

Обратите внимание, что после форматирования диска в файловой системе REFS, часть места на нем сразу будет занято контрольными данными: например, для пустого диска 10 Гб это около 700 Мб. 

Возможно, в будущем REFS может стать основной файловой системой в Windows, однако на данный момент этого не произошло. Официальная информация по файловой системе на сайте Майкрософт: https://docs.microsoft.com/en-us/windows-server/storage/refs/refs-overview


©  «Эксклюзивные интернет-решения для бизнеса»
© www.oknemuan.ru
2003-2024