Файловые системы 1. Принципы организации файловой системы 2. Файловые системы ОС семейства Windows 1. Рассмотреть понятия «файловая система», «кластер», «файл», «каталог» (directory). 2. Рассмотреть архитектуру и базовые функции файловой системы, как способа логического представления хранимых данных. 3. Рассмотреть способы организации областей метаданных и данных в файловых системах. 4. Рассмотреть расширенные функции файловых систем и их модификации для распределенных информационных систем. 5. Изучить характеристики файловых систем FAT32, exFAT,NTFS, ReFS (ОС семейства Windows). 6. Совершенствовать навыки системного администратора инфокоммуникационной системы в предметной области систем хранения данных. Файловые системы Уровень файловых систем (ФС) (драйвера ФС – file system drivers) Уровень томов (диспетчер томов – volume manager) Том 2 (перекрытый (spanned volume)) Том 1 (simple volume) Уровень разделов (диспетчер разделов – partition manager) Раздел 1 0 1 2 Раздел 2 Раздел 3 Сектора или логические блоки Физическая структура диска на уровне его контроллера Файловые системы n Файловые системы Терминология уровня ФС Пользователь /программы Подсистема ввода-вывода Драйвера файловых систем Формируют запросы к данным в терминах ФС Передает запросы вводавывода ФС Накладывают файловую структуру на базовые и динамические тома Диспетчер томов Файл (file) – именованная область данных, хранящихся на запоминающем устройства Каталог/папка (directory) – объект ФС, обеспечивающий организацию файлов в файловой структуре Файловая структура – области для размещения: - служебной информации об организации ФС; - множества файлов и каталогов. Диспетчер разделов Драйвер класса Порт Файловая система – логический уровень запоминающих устройств, предоставляющий сервисные функции при работе пользователей и программ с информацией, структурированной в виде файлов и каталогов Минипорт Кластер (cluster) – единица данных, в которой размещается часть файла. Контроллер диска Файловые системы Файл (file) – совокупность смежных или несмежных кластеров Кластер (cluster) адресуемый блок, используемый драйвером файловой системы – совокупность смежных секторов (логических блоков) Том (volume) — один или более смежных или несмежных разделов (в том числе на разных дисках) Раздел (partition) — первый сектор (логический блок) раздела и количество секторов (логических блоков) в разделе Пользователь /программы file1.txt атрибуты Подсистема вводавывода Драйверы ФС Диспетчер томов Кластер 1 Кластер 2 Том Раздел 1 Раздел 2 Диспетчер разделов Драйвер класса Порт Множество секторов или логических блоков Минипорт Контроллер диска Файловые системы логический бл Метаданные ФС служебная структура, содержащая информацию о размещении файлов и каталогов в области данных Аналогия файловой структуры в реальной жизни Область данных совокупность кластеров, в которых размещаются файлы и каталоги Библиотека Метаданные – картотека Процесс создания файловой структуры называется форматированием Единица хранения – карточка о книге (информация о полке, где находится книга) Область данных – стеллажи, заполненные книгами Файловая структура Единица хранения – книга Расширенный том Дополнительные метаданные ФС. Журналирование Проблема: поддержание целостности ФС при сбоях при выполнении файловых операций Решение: ведение специальной базы данных (журнала), в котором сохраняется список изменений, которые будут проводиться с файловой структурой, перед их фактическим осуществлением Целостность ФС реализуется проверкой журнала на наличие ожидаемых, но не произведённых изменений и последующей записью их в файловую структуру ФС Файловые системы Физическая структура - стеллаж Единица хранения - полка Рассмотрим простейший случай размещения файлов в области данных Для байтов файла в области данных отыскивается нужное количество смежных кластеров Метаданные ФС Область данных – 35 кластеров 1. Сложность нахождения нужного количества кластеров для вновь размещаемого файла № первого Кол-во кластера кластеров Имя файла Файл А 2 3 Файл В 9 5 Файл С 18 8 Файл D 30 2 Файл Е 26 3 Недостатки такого размещения: 2. Сложность увеличения объема файла (например, Файл С) 3. Возникновение эффекта внутренней фрагментации при размере файла, не кратном числу кластеров. Эффект внутренней фрагментации Кластер = 4 сектора= 4*512=2 кбайта Размер файла = 1,8 кбайта Раздел (том) Эффект внешней фрагментации Кластер 29 не будет выделен ни под один файл если только не появится файл размером один кластер или меньше Неиспользуемый фрагмент кластера Файловые системы Данные файла Метаданные ФС Имя файла Файл Особенности такого размещения: Область данных № первого кластера 1. Файл – связанный список несмежных кластеров (цепочка). 3 14 2. Каждый кластер содержит указатель на следующий кластер в цепочке. 28 1 8 3. Последний кластер цепочки содержит специальный указатель EoF (EndOfFile). EoF Недостатки такого размещения: 1. Часть кластера отводится под указатель. Раздел (том) Решение проблемы указателей в кластере 2. Чтение/запись данных файла ведется последовательно. Данные Указатель на № след. кластера EoF 1 Создание в метаданных ФС Таблицы указателей размещения файлов (File Allocation Table) Цепочка номеров кластеров считывается в память драйвера ФС из таблицы указателей Зная состав номеров кластеров в цепочке, драйвер может считывать их параллельно Файловые системы Достоинства такого размещения: 1. Практически отсутствует внешняя фрагментация. Метаданные ФС Имя файла 1. Файл – несвязанный список несмежных кластеров. № inode Файл Особенности такого размещения: Область данных 2. Номера кластеров файла записаны в специальном индексном кластере (inode). 10 3. Таблица метаданных сопоставляет имя файла и номер кластера inode. Недостатки такого размещения: 1. При большом количестве файлов и каталогов создается много кластеров inode (уменьшается область для хранения данных). Раздел (том) Индексный 1, 3, 8, 14, 28 Кластер (Index Node Список – inode) номеров кластеров Решение проблемы ограничения количества номеров кластеров, хранимых в кластере inode Адресное поле inode 0 1 2 4 3 ... 12 кластеров с данными файла 5 6 8 7 9 10 11 12 13 2048 записей 2048 кластеров с данными файла 2048 записей 2048 записей ... ... Достоинства такого размещения: 2048 записей 2. Доступ к кластерам файла драйвер ФС может выполнять параллельно. 2048 кластеров третьего уровня косвенной адресации 2048 кластеров второго уровня косвенной адресации ... 3. Количество хранимых номеров кластеров файла ограничена размером кластера inode. 1. Практически отсутствует внешняя фрагментация. 14 кластер первого уровня косвенной адресации 2048 записей 2. Недоступность кластера inode приводит к полной недоступности файла. 2048 записей ... 2048 записей Уровни косвенной адресации ... кластеры с данными файла 2048 записей ... ... 2048 записей ... 2048 записей ... ... 2048 записей ... кластеры с данными файла Файловые системы Метаданные ФС содержат не только информацию об имени файла и кластерах, где он размещается Стандартные (обязательные для всех ФС): Размер файла в байтах Метаданные, не связанные с размещением файла, называются атрибутами. Атрибуты файла делятся на: Управления доступом к файлу (для разных ФС в многопользовательских ОС): Владелец (владельцы) Пользователь, создавший файл и/или файла получивший его во владение Списки контроля доступа Атрибуты ACL (Access к файлу владельца и Control List) других категорий пользователей Дискреционная модель доступа Метки конфиденциальности Метки уровня допуска к файлу на основе выбранной политики безопасности Дата создания файла Дата изменения файла Дата последнего доступа к файлу Дополнительные (специфичные для разных ФС): Атрибут «Скрытый» Программы для работы с файлами не будут его отображать Атрибут «Системный» Существование файла в неизменённом виде критически важно для нормальной работы ОС Копия файла резервируется программой резервного копирования Атрибут «Архивный» Атрибут «Только чтение» Атрибут «Сжатый» Содержимое файла нельзя изменять Хранение файла на диске в сжатом виде Атрибут «Зашифрованный» Хранение файла на диске в зашифрованном виде Атрибут «Проиндексированный» Содержимое файла включено в поисковый индекс ОС Мандатная модель доступа Файловые системы Развитие распределенных информационных систем, построенных на основе модели «КлиентСервер» потребовало особого подхода к организации ФС Он связан: С необходимостью организации удаленного доступа пользователей к файлам и директориям С решением проблем повышения надежности хранения файлов и директорий Решения Распределенные ФС Драйвер сетевой (удаленной) ФС Пример: GFS (Google File System) Другой актуальный пример: HDFS (Hadoop Distributed File System) Hadoop – Система распределенных вычислений, применяемая для аналитической обработки данных Файловые системы Файловые системы ОС семейства Windows поддерживают несколько типов ФС Для координации управления их драйверами разработан уровень виртуальной ФС (Virtual File System) Виртуальная ФС - уровень абстракции поверх конкретных реализаций ФС Виртуальная ФС Обеспечивает единообразный доступ программ к различным типам ФС Стек драйверов ЗУ NTFS ReFS ExFAT FAT 32 Драйвер RAW вызывается если: RAW Том не отформатирован ни одной из этих ФС Нет корректного доступа к содержимому тома Повреждена структура ФС тома CDFS дисковый формат ISO 9660 UDF дисковый формат ISO 13346 Файловые системы Виртуальная ФС отображает размер раздела, и при обращении к нему предлагает его отформатировать Версии ФС FAT (File Allocation Table) 32-х разрядная версия ФС FAT (впервые появилась в ОС Windows 95 OSR2) Метод адресации кластеров: Цепочечный Номер кластера кодируется: 28 разрядами из 32-х (4 разряда зарезервированы) Максимальный размер кластера: 64 кбайт Максимальный размер раздела (тома): 228 * 65536 = 17 592 186 044 416 байт = 16 Тбайт Максимальный размер файла: 232 – 1 = 4 294 967 295 байт ≈ 4 Гбайт Не журналируемая ФС Не поддерживает атрибуты разграничения доступа к файлам Не поддерживает динамическое сжатие и шифрование файлов 64-х разрядная версия ФС FAT (впервые появилась в ОС Windows Embedded CE 6.0) Метод адресации кластеров: Цепочечный Дополнительно используется битовая карта свободных кластеров ExFAT Номер кластера кодируется: 64 разрядами Максимальный размер кластера: 32 Мбайт Максимальный размер раздела (тома): 264 байт = 16 Эбайт Максимальный размер файла: 16 Эбайт – 1 байт Журналируемая ФС Не поддерживаются потребительскими и серверными сборками Windows Поддерживает атрибуты разграничения доступа к файлам Не поддерживает динамическое сжатие и шифрование файлов Файловые системы Версии ФС NTFS (New Technology File System) ФС, разработанная специально для версий ОС на основе Windows NT Метод адресации кластеров: Индексный (используется тройная косвенная адресация) Номер кластера кодируется: 64 разрядами (на практике используется 32 разряда) NTFS Максимальный размер кластера: 64 кбайт Максимальный размер раздела (тома): 264 байт – 1 кластер ≈ 16 Эбайт Максимальный размер файла: 264 байт – 1 кбайт ≈ 16 Эбайт Журналируемая ФС Поддерживает атрибуты разграничения доступа к файлам (только дискреционная модель) Поддерживает динамическое сжатие и шифрование файлов Поддерживает разреживание файлов Поддерживает дисковые квоты Resilient File System (обновление NTFS (resilient - эластичный) ReFS Максимальный размер раздела (тома): 35 Пбайт Максимальный размер файла: 35 Пбайт Другие характеристики ReFS совпадают с характеристиками NTFS Была разработана для условий: - масштабирования хранения крупных наборов данных; - повышения устойчивости хранилища данных (целостность и доступность данных); - повышения производительности виртуализированных рабочих нагрузок; Не поддерживает динамическое сжатие и шифрование файлов Поддерживается следующими сборками ОС Windows: Windows Server 2012 Windows Server 2012 R2 Файловые системы Windows Server 2016 Windows Server 2019 Windows 10 (не все версии)