Управление файловыми системами и дисками лекция

Обновлено: 30.06.2024

Все что до "Загрузочного блока" и включая его одинаково у всех ОС. Дальше начинаются различия.

Суперблок - содержит ключевые параметры файловой системы.

2.2 Реализация файлов

Основная проблема - сколько, и какие блоки диска принадлежат тому или иному файлу.

2.2.1 Непрерывные файлы

Выделяется каждому файлу последовательность соседних блоков.

5 непрерывных файлов на диске и состояние после удаления двух файлов

Преимущества такой системы:

Простота - нужно знать всего два числа, это номер первого блока и число блоков.

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

Диск сильно фрагментируется

Сейчас такая запись почти не используется, только на CD-дисках и магнитных лентах.

2.2.2 Связные списки

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

Размещение файла в виде связного списка блоков диска

Номер следующего блока хранится в текущем блоке.

Нет потерь дискового пространства на фрагментацию

Нужно хранить информацию только о первом блоке

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

Уменьшается размер блока из-за хранения служебной информации

2.2.3 Связные списки при помощи таблиц в памяти

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

FAT (File Allocation Table) - таблица размещения файлов загружаемая в память.

Рассмотри предыдущий пример, но в виде таблицы.

Таблица размещения файлов

Здесь тоже надо собирать блоки по указателям, но работает быстрее, т.к. таблица загружена в память.

Основной не достаток этого метода - всю таблицу надо хранить в памяти. Например, для 20Гбайт диска, с блоком 1Кбайт (20 млн. блоков), потребовалась бы таблица в 80 Мбайт (при записи в таблице в 4 байта).

Такие таблицы используются в MS-DOS и Windows.

2.2.4 i - узлы

С каждым файлом связывается структура данных, называемая i-узлом (index-node- индекс узел), содержащие атрибуты файла и адреса всех блоков файла.

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

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

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

Такие узлы используются в UNIX.

2. 3 Реализация каталогов

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

В зависимости от системы это может быть:

дисковый адрес всего файла (для непрерывных файлов)

номер первого блока (связные списки)

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

Также она хранит атрибуты файлов.

Варианты хранения атрибутов:

В каталоговой записи (MS-DOS)

Варианты реализации каталогов

2. 3.1 Реализация длинных имен файлов

Раньше операционные системы использовали короткие имена файлов, MS-DOS до 8 символов, в UNIX Version 7 до 14 символов. Теперь используются более длинные имена файлов (до 255 символов и больше).

Методы реализации длинных имен файлов:

Просто выделить место под длинные имена, увеличив записи каталога. Но это займет много места, большинство имен все же меньше 255.

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

Второй метод можно реализовать двумя методами:

Имена записываются сразу после заголовка (длина записи и атрибутов)

Имена записываются в конце каталога после всех заголовков (указателя на файл и атрибутов)

Реализация длинных имен файлов

2. 3.2 Ускорение поиска файлов

Если каталог очень большой (несколько тысяч файлов), последовательное чтение каталога мало эффективно.

2. 3.2.1 Использование хэш-таблицы для ускорения поиска файла.

Алгоритм записи файла:

Создается хэш-таблица в начале каталога, с размером n (n записей).

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

Исследуется элемент таблицы соответствующий хэш-коду.

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

Если используется, то создается связный список, объединяющие все описатели файлов с одинаковым хэш-кодом.

Алгоритм поиска файла:

Имя файла хэшируется

По хэш-коду определяется элемент таблицы

Затем проверяются все описатели файла из связного списка и сравниваются с искомым именем файла

Если имени файла в связном списке нет, это значит, что файла нет в каталоге.

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

2. 3.2.2 Использование кэширования результатов поиска файлов для ускорения поиска файла.

Алгоритм поиска файла:

Проверяется, нет ли имени файла в кэше

Если нет, то ищется в каталоге, если есть, то берется из кэша

Такой способ дает ускорение только при частом использовании одних и тех же файлов.

2.4 Совместно используемые файлы

Иногда нужно чтобы файл присутствовал в разных каталогах.

Link (связь, ссылка) - с ее помощью обеспечивается присутствие файла в разных каталогах.

А - совместно используемый файл.

Такая файловая система называется ориентированный ациклический граф (DAG, Directed Acyclic Graph).

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

Есть два решения этой проблемы:

Использование i-узлов, в каталогах хранится только указатель на i-узел. Такие ссылки называются жесткими ссылками.

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

2.4.1 Жесткие ссылки

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

Поэтому в этом случае при удалении файла i-узел лучше не удалять.

Файл будет удален только после того, как счетчик будет равен 0.

Иллюстрация проблемы, которая может возникнуть

2.4.2 Символьные ссылки

Удаление файла не влияет на ссылку, просто по ссылке будет не возможно найти файл (путь будет не верен).

Удаление ссылки тоже никак не скажется на файле.

Но возникают накладные расходы, чтобы получить доступ к i-узлу, должны быть проделаны следующие шаги:

Прочитать файл-ссылку (содержащий путь)

Пройти по всему этому путь, открывая каталог за каталогом

2.5 Организация дискового пространства

2.5.1 Размер блока

Если принято решение хранить файл в блоках, то возникает вопрос о размере этих блоков.

Есть две крайности:

Большие блоки - например, 1Мбайт, то файл даже 1 байт займет целый блок в 1Мбайт.

Маленькие блоки - чтение файла состоящего из большого числа блоков будет медленным.

Скорости чтения/записи и эффективность использования диска,
в системе с файла одинакового размера 2 Кбайта.

В UNIX системах размер блока фиксирован, и, как правило, равен от 1Кбайта до 4Кбайт.

В MS-DOS размер блока может быть от 512 до 32 Кбайт в зависимости от размера диска, поэтому FAT16 использовать на дисках больше 500 Мбайт не эффективно.

В NTFS размер блока фиксирован (от 512байт до 64 Кбайт), как правило, равен примерно 2Кбайтам (от 512байт до 64 Кбайт).

2.5.2 Учет свободных блоков

Основные два способа учета свободных блоков :

Связной список блоков диска, в каждом блоке содержится номеров свободных блоков столько, сколько вмешается в блок. Часто для списка резервируется нужное число блоков в начале диска.
Недостатки:
- Требует больше места на диске, если номер блока 32-разрядный, требуется 32бита для номера
- Излишние операции ввода/вывода, т.к. в памяти не хранятся все блоки, а, например, только один блок

Битовый массив (бит-карта) - для каждого блока требуется один бит.

Основные два способа учета свободных блоков

2.5.3 Дисковые квоты

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

Два вида лимитов:

Жесткие - превышены быть не могут

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

Наиболее распространенные квоты:

Объем использования диска

Количество открытых файлов

2.6 Надежность файловой системы

2.6.1 Резервное копирование

Случаи, для которых необходимо резервное копирование:

Аварийные ситуации, приводящие к потере данных на диске

Случайное удаление или программная порча файлов

Основные принципы создания резервных копий:

Создавать несколько копий - ежедневные, еженедельные, ежемесячные, ежеквартальные.

Как правило, необходимо сохранять не весь диск, а только выборочные каталоги.

Применять инкрементные резервные копии - сохраняются только измененные файлы

Сжимать резервные копии для экономии места

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

Хранить резервные копии в защищенном месте, не доступном для посторонних.

Существует две стратегии:

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

Логическая архивация - работает с файлами и каталогами. Применяется чаще физической.

2.6.2 Непротиворечивость файловой системы

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

В большинстве файловых систем есть специальная программа, проверяющая непротиворечивость системы.

В Windows - scandisk.

Если произошел сбой, то во время загрузки они проверяют файловую систему (если файловая система журналируемая, такая проверка не требуется).

Журналируемая файловая система - операции выполняются в виде транзакций, если транзакция не завершена, то во время загрузки происходит откат в системе назад.

Два типа проверки на непротиворечивость системы:

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

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

2.7 Производительность файловой системы

Так как дисковая память достаточно медленная. Приходится использовать методы повышающие производительность.

2.7.1 Кэширование

Блочный кэш (буферный кэш) - набор блоков хранящиеся в памяти, но логически принадлежащие диску.

Перехватываются все запросы чтения к диску, и проверяется наличие требуемых блоков в кэше.

Ситуация схожа со страничной организацией памяти, можно применять те же алгоритмы.

Нужно чтобы измененные блоки периодически записывались на диск.

В UNIX это выполняет демон update (вызывая системный вызов sync).

В MS-DOS модифицированные блоки сразу записываются на диск (сквозное кэширование).

2.7.2 Опережающее чтение блока

Если файлы считываются последовательно, и когда получен к-блок, можно считать блок к+1 (если его нет в памяти). Что увеличивает быстродействие.

2.7.3 Снижение времени перемещения блока головок

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

В случае использования i-узлов если они расположены в начале диска, то быстродействие будет уменьшено, т.к. сначала головка считает i-узел (в начале диска), а потом будет считывать данные (где-то на диске). Если располагать i-узлы поближе к данным, то можно увеличить скорость доступа.

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

Распределенная файловая система DFS (Distributed File System)

DFS – это на самом деле не файловая система , но она действует аналогично файловой системе. DFS – это способ представления для пользователей логической иерархической структуры в виде файловой системы, даже если компоненты этой файловой системы разбросаны по сети предприятия. DFS устанавливается автоматически вместе с Windows Server 2003, и запуск службы DFS тоже происходит автоматически.

В каких случаях использовать DFS?

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

Отдел информационных технологий (ИТ) разослал всем сотрудникам по электронной почте список доступных для них документов, а также UNC-пути к этим документам, и некоторые сотрудники действительно стали это использовать. Этот список был включен во все ответы, которые направлялись сотрудникам, продолжавшим обращаться в отдел кадров, и в конце концов каждый сотрудник, которому требовался определенный документ или было нужно заполнить online-форму, стал обращаться к соответствующим папкам. Некоторые сотрудники даже создали отображаемые накопители для часто используемых документов (например, для новой заполняемой формы, где вводилось количество отработанных часов).

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

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

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

Терминология DFS

Чтобы планировать реализацию DFS , вы должны ознакомиться со следующими компонентами DFS .

  • Корень (Root). Имя (на языке DFS – пространство имен),которое видят пользователи. Это начальная точка иерархии DFS . Корень может иметь подпапки (одну или несколько так называемых корневых целей [root target]), каждая из которых соответствует разделяемой папке на каком-либо сервере. Вы можете иметь несколько корней в рамках вашего предприятия при соблюдении следующих правил.
    • Версия Windows Server 2003 Standard Edition позволяет размещать на каждом сервере только один корень.
    • Версии Windows Server 2003 Enterprise Edition и Datacenter Edition позволяют размещать несколько корней на каждом сервере.
    Автономная DFS и доменная DFS

    Windows Server 2003 позволяет реализовать два типа DFS : автономную (stand-alone) и доменную (domain-based) DFS . Доменная DFS размещается в Active Directory, поэтому, если вы используете компьютеры Windows Server 2003 в сети без Active Directory, то можете реализовать только автономную DFS . Даже если у вас работает Active Directory, вы можете использовать автономный корень DFS , но для очень крупных предприятий более разумно (с получением больших возможностей) использовать доменную DFS .

    Автономная DFS

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

    Доменная DFS

    В случае доменной DFS данные конфигурации хранятся в Active Directory, и путь доступа к корню (или ссылка) начинается с имени этого домена. Корень доменной DFS может иметь реплики, и вы можете задавать расписание репликации. Репликация выполняется службой FRS ( File Replication Service), которая используется как средство репликации для Active Directory и DFS .

    В доменной DFS отказоустойчивость обеспечивается службой FRS , которая автоматически перемещает пользователей к данным реплики. Балансирование нагрузки обеспечивает DFS , и для этого не требуется использование службы Windows Network Load Balancing . В случае доменной DFS пользователи не знают, какие серверы содержат разделяемые папки, и они не знают, какие серверы содержат систему DFS . Все происходит прозрачным образом.

    Создание корня DFS

    Прежде чем предоставить разделяемые ресурсы DFS для разделяемого доступа пользователей, вы должны создать корневой объект DFS . Это объект-контейнер: он содержит ссылки на разделяемые ресурсы и файлы, к которым выполняют доступ пользователи. Для создания корня у вас запрашивается ввод имени разделяемой папки на данном сервере, в которой будет содержаться корень, и эта папка должна быть пустой: она существует только для предоставления корня, но не документов. (Если разделяемой папки не было до создания корня, то вы можете создать эту папку и предоставить ее для разделяемого использования непосредственно при создании корня.)

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

    • Этот компьютер должен быть сервером (рядовым сервером или контроллером домена).
    • На этом компьютере должна действовать файловая система NTFS.

    Чтобы создать корневой объект, выберите Distributed File System в меню Administrative Tools (Администрирование), после чего появится оснастка DFS . Щелкните правой кнопкой на объекте Distributed File System в дереве консоли и выберите пункт New Root (Создать корень), чтобы запустить мастер New Root Wizard. Щелкните на кнопке Next, чтобы пройти через начальное окно, и затем выберите вариант Stand-alone root (Автономный корень) или Domain root (Доменный корень).

    Создание автономного корня DFS

    Если вы создаете автономный корень DFS , то в следующем окне мастера нужно указать хост-сервер. Введите имя компьютера для сервера, который будет содержать корень, или щелкните на кнопке Browse (Обзор), чтобы выбрать этот сервер из списка компьютеров. Щелкните на кнопке Next, затем введите имя корня (поле Root name) и (при необходимости) описание (поле Comments), см. рис. 7.1.

    Отметим, что мастер автоматически показывает полный путь, начиная с имени сервера и используя введенное вами имя корня как имя папки в конце пути. Мастер не проверяет, существует ли разделяемый ресурс с этим именем, пока вы не щелкнете на кнопке Next. Если имя вашего корня – это имя разделяемого ресурса для какой-либо папки на целевом компьютере, то этого вполне достаточно на данный момент. Щелкните на кнопке Next и затем щелкните на кнопке Finish, чтобы создать корень автономной DFS .

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

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

    • Введите полный путь к существующей папке на данном компьютере. Мастер сделает эту папку разделяемым ресурсом, используя имя корня для имени этого разделяемого ресурса.

    Рис. 7.1. Введите имя корня; это имя будут видеть пользователи вверху иерархии DFS

    В следующем окне мастера щелкните на кнопке Finish, чтобы создать автономный корень и поместить его запись в дереве консоли оснастки Distributed File System. Поскольку вы создали автономный корень, это единственная цель, которую вы можете создать для своего корня (но доменные корни могут содержать несколько целей).

    Создание доменного корня DFS

    Если вы выбрали создание доменного корня, то мастер попросит вас выбрать домен (список доступных доменов выводится в диалоговом окне Trusting Domains [Доверяемые домены]). В следующем окне мастера введите имя компьютера, содержащего папку для вашего корня, или щелкните на кнопке Browse и выберите нужный

    сервер из списка компьютеров. При непосредственном вводе имени вы можете ввести имя NetBIOS или FQDN (полностью уточненное доменное имя); мастер автоматически расширит имя NetBIOS до FQDN .

    Щелкните на кнопке Next, задайте имя корня и (при необходимости) описание. Как видно из рис. 7.2, мастер автоматически выводит путь, используя формат \\Имя_Домена\Корень . Имя сервера не включается, поскольку это доменный, а не автономный корень.


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

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

    Мастер не проверяет, существует ли разделяемый ресурс с этим именем, пока вы не щелкнете на кнопке Next. Если имя вашего корня – это имя разделяемого ресурса для какой-либо папки на целевом компьютере, то этого вполне достаточно на данный момент. Щелкните на кнопке Next и затем щелкните на кнопке Finish, чтобы создать корень доменной DFS .

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

    Щелкните на кнопке Next, чтобы увидеть сводку настроек для корня DFS . Щелкните на кнопке Finish (или вернитесь назад для внесения любых необходимых поправок), чтобы создать корень и поместить его как объект в дерево консоли оснастки Distributed File System.




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

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

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

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

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

    Например, в корневом каталоге могут находиться два вложенных каталога 1-го уровня (Каталог_1, Каталог_2) и один файл (Файл_1). В свою очередь, в каталоге 1-го уровня (Каталог_1) находятся два вложенных каталога второго уровня (Каталог_1.1 и Каталог_1.2) и один файл (Файл_1.1) - рис. 1.3.

    Файловая система - это система хранения файлов и организации каталогов.

    Рассмотрим иерархическую файловую систему на конкретном примере. Каждый диск имеет логическое имя (А:, В: - гибкие диски, С:, D:, Е: и так далее - жесткие и лазерные диски).

    Пусть в корневом каталоге диска С: имеются два каталога 1-го уровня (GAMES, TEXT), а в каталоге GAMES один каталог 2-го уровня (CHESS). При этом в каталоге TEXT имеется файл proba.txt, а в каталоге CHESS - файл chess.exe (рис. 1.4).

    Рис. 1.4. Пример иерархической файловой системы

    Путь к файлу . Как найти имеющиеся файлы (chess.exe, proba.txt) в данной иерархической файловой системе? Для этого необходимо указать путь к файлу. В путь к файлу входят записываемые через разделитель "\" логическое имя диска и последовательность имен вложенных друг в друга каталогов, в последнем из которых содержится нужный файл. Пути к вышеперечисленным файлам можно записать следующим образом:

    Путь к файлу вместе с именем файла называют иногда полным именем файла.

    Пример полного имени файла:

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

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

    В Windows на вершине иерархии папок находится папка Рабочий стол. Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети) - рис. 1.5.

    Рис. 1.5. Иерархическая структура папок

    Если мы хотим ознакомиться с ресурсами компьютера, необходимо открыть папку Мой компьютер.

    1. В окне Мой компьютер находятся значки имеющихся в компьютере дисков. Активизация (щелчок) значка любого диска выводит в левой части окна информацию о его емкости, занятой и свободной частях.

    Типы файловых систем

    Рядовому пользователю компьютерных электронных устройств редко, но приходится сталкиваться с таким понятием, как «выбор файловой системы». Чаще всего это происходит при необходимости форматирования внешних накопителей (флешек, microSD), установке операционных систем, восстановлении данных на проблемных носителях, в том числе жестких дисках. Пользователям Windows предлагается выбрать тип файловой системы, FAT32 или NTFS, и способ форматирования (быстрое/глубокое). Дополнительно можно установить размер кластера. При использовании ОС Linux и macOS названия файловых систем могут отличаться.

    Возникает логичный вопрос: что такое файловая система и в чем ее предназначение? В данной статье дадим ответы на основные вопросы касательно наиболее распространенных ФС.

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

    Обычно вся информация записывается, хранится и обрабатывается на различных цифровых носителях в виде файлов. Далее, в зависимости от типа файла, кодируется в виде знакомых расширений – *exe, *doc, *pdf и т.д., происходит их открытие и обработка в соответствующем программном обеспечении. Мало кто задумывается, каким образом происходит хранение и обработка цифрового массива в целом на соответствующем носителе.

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

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

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

    На физическом уровне драйверы ФС оптимизируют запись и считывание отдельных частей файлов для ускоренной обработки запросов, фрагментации и «склеивания» хранящейся в ячейках информации. Данный алгоритм получил распространение в большинстве популярных файловых систем на концептуальном уровне в виде иерархической структуры представления метаданных (B-trees). Технология снижает количество самых длительных дисковых операций – позиционирования головок при чтении произвольных блоков. Это позволяет не только ускорить обработку запросов, но и продлить срок службы HDD. В случае с твердотельными накопителями, где принцип записи, хранения и считывания информации отличается от применяемого в жестких дисках, ситуация с выбором оптимальной файловой системы имеет свои нюансы.

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

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

    Основными функциями файловой системы являются:

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

    VDS Timeweb арендовать

    Задачи файловой системы

    Функционал файловой системы нацелен на решение следующих задач:

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

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

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

    Операционные системы и типы файловых систем

    Существует три основных вида операционных систем, используемых для управления любыми информационными устройствами: Windows компании Microsoft, macOS разработки Apple и операционные системы с открытым исходным кодом на базе Linux. Все они, для взаимодействия с физическими носителями, используют различные типы файловых систем, многие из которых дружат только со «своей» операционкой. В большинстве случаев они являются предустановленными, рядовые пользователи редко создают новые дисковые разделы и еще реже задумываются об их настройках.

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

    На мобильных гаджетах с ОС Android чаще всего установлена ФС версии ext4 во внутренней памяти и FAT32 на карточках microSD. Владельцы продукции Apple зачастую вообще не имеют представления, какая файловая система используется на их устройствах – HFS+, HFSX, APFS, WTFS или другая. Для них существуют лишь красивые значки папок и файлов в графическом интерфейсе.

    Более богатый выбор у линуксоидов. Но здесь настройка и использование определенного типа файловой системы требует хотя бы минимальных навыков программирования. Тем более, мало кто задумывается, можно ли использовать в определенной ОС «неродную» файловую систему. И зачем вообще это нужно.

    Рассмотрим более подробно виды файловых систем в зависимости от их предпочтительного использования с определенной операционной системой.

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

    Исходный код файловой системы, получившей название FAT, был разработан по личной договоренности владельца Microsoft Билла Гейтса с первым наемным сотрудником компании Марком Макдональдом в 1977 году. Основной задачей FAT была работа с данными в операционной системе Microsoft 8080/Z80 на базе платформы MDOS/MIDAS. Файловая система FAT претерпела несколько модификаций – FAT12, FAT16 и, наконец, FAT32, которая используется сейчас в большинстве внешних накопителей. Основным отличием каждой версии является преодоление ограниченного объема доступной для хранения информации. В дальнейшем были разработаны еще две более совершенные системы обработки и хранения данных – NTFS и ReFS.

    FAT (таблица распределения файлов)

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

    Пространство FAT32 логически разделено на три сопредельные области:

    • зарезервированный сектор для служебных структур;
    • табличная форма указателей;
    • непосредственная зона записи содержимого файлов.

    К недостатком стандарта FAT32 относится ограничение размера файлов на диске до 4 Гб и всего раздела в пределах 8 Тб. По этой причине данная файловая система чаще всего используется в USB-накопителях и других внешних носителях информации. Для установки последней версии ОС Microsoft Windows 10 на внутреннем носителе потребуется более продвинутая файловая система.

    С целью устранения ограничений, присущих FAT32, корпорация Microsoft разработала обновленную версию файловой системы exFAT (расширенная таблица размещения файлов). Новая ФС очень схожа со своим предшественником, но позволяет пользователям хранить файлы намного большего размера, чем четыре гигабайта. В exFAT значительно снижено число перезаписей секторов, ответственных за непосредственное хранение информации. Функция очень важна для твердотельных накопителей ввиду необратимого изнашивания ячеек после определенного количества операций записи. Продукт exFAT совместим с операционными системами Mac, Android и Windows. Для Linux понадобится вспомогательное программное обеспечение.

    NTFS (файловая система новой технологии)

    Стандарт NTFS разработан с целью устранения недостатков, присущих более ранним версиям ФС. Впервые он был реализован в Windows NT в 1995 году, и в настоящее время является основной файловой системой для Windows. Система NTFS расширила допустимый предел размера файлов до шестнадцати гигабайт, поддерживает разделы диска до 16 Эб (эксабайт, 10 18 байт ). Использование системы шифрования Encryption File System (метод «прозрачного шифрования») осуществляет разграничение доступа к данным для различных пользователей, предотвращает несанкционированный доступ к содержимому файла. Файловая система позволяет использовать расширенные имена файлов, включая поддержку многоязычности в стандарте юникода UTF, в том числе в формате кириллицы. Встроенное приложение проверки жесткого диска или внешнего накопителя на ошибки файловой системы chkdsk повышает надежность работы харда, но отрицательно влияет на производительность.

    ReFS (Resilient File System)

    Последняя разработка Microsoft, доступная для серверов Windows 8 и 10. Архитектура файловой системы в основном организована в виде B + -tree. Файловая система ReFS обладает высокой отказоустойчивостью благодаря реализации новых функций:

    • Copy-on-Write (CoW) – никакие метаданные не изменяются без копирования;
    • данные записываются на новое дисковое пространство, а не поверх существующих файлов;
    • при модификации метаданных новая копия хранится в свободном дисковом пространстве, затем система создает ссылку из старых метаданных на новую версию.

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

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

    Для операционной системы macOS компания Apple использует собственные разработки файловых систем:

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

    1. HFS+, которая является усовершенствованной версией HFS, ранее применяемой на компьютерах Macintosh, и ее более соверешенный аналог APFS. Стандарт HFS+ используется во всех устройствах под управлением продуктов Apple, включая компьютеры Mac, iPod, а также Apple X Server.
    2. Кластерная файловая система Apple Xsan, созданная из файловых систем StorNext и CentraVision, используется в расширенных серверных продуктах. Эта файловая система хранит файлы и папки, информацию Finder о просмотре каталогов, положениях окна и т.д.

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

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

    Файловая система Линукс

    Основные файловые системы, используемые в дистрибутивах Linux:

    Ext2, Ext3, Ext4 или Extended Filesystem – стандартная файловая система, первоначально разработанная еще для Minix. Содержит максимальное количество функций и является наиболее стабильной в связи с редкими изменениями кодовой базы. Начиная с ext3 в системе используется функция журналирования. Сегодня версия ext4 присутствует во всех дистрибутивах Linux.

    JFS или Journaled File System разработана в IBM в качестве альтернативы для файловых систем ext. Сейчас она используется там, где необходима высокая стабильность и минимальное потребление ресурсов (в первую очередь в многопроцессорных компьютерах). В журнале хранятся только метаданные, что позволяет восстанавливать старые версии файлов после сбоев.

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

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

    Btrfs или B-Tree File System легко администрируется, обладает высокой отказоустойчивостью и производительностью. Используется как файловая система по умолчанию в OpenSUSE и SUSE Linux.

    Другие ФС, такие как NTFS, FAT, HFS, могут использоваться в Linux, но корневая файловая система на них не устанавливается, поскольку они для этого не предназначены.

    Дополнительные файловые системы

    В операционных системах семейства Unix BSD (созданы на базе Linux) и Sun Solaris чаще всего используются различные версии ФС UFS (Unix File System), известной также под названием FFS (Fast File System). В современных компьютерных технологиях данные файловые системы могут быть заменены на альтернативные: ZFS для Solaris, JFS и ее производные для Unix.

    Кластерные файловые системы включают поддержку распределенных хранилищ, расширяемость и модульность. К ним относятся:

    • ZFS – «Zettabyte File System» разработана для распределенных хранилищ Sun Solaris OS;
    • Apple Xsan – эволюция компании Apple в CentraVision и более поздних разработках StorNext;
    • VMFS (Файловая система виртуальных машин) разработана компанией VMware для VMware ESX Server;
    • GFS – Red Hat Linux именуется как «глобальная файловая система» для Linux;
    • JFS1 – оригинальный (устаревший) дизайн файловой системы IBM JFS, используемой в старых системах хранения AIX.

    Практический пример использования файловых систем

    Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.

    Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант - использование специальной утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free . Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.

    Файловая система для microSD

    Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

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

    Читайте также: