Файловая система — что это такое и их виды

Организация файлов, организация файловой системы, логическая структура дисков.

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

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

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

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

Модель файла, в соответствии с которой содержимое файла представляется неструктурированной последовательностью (потоком) байт, стала популярной вместе с ОС UNIX, а теперь она широко используется в большинстве современных ОС (MS-DOS, Windows2000/NT, NetWare).

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

Другая модель файлов, которая применялась в ОС OS/360, DEC RSX, VMS, а в настоящее время используется достаточно редко – это структурированный файл. В этом случае поддержание структуры файла поручается ОС. ФС видит файл как упорядоченную последовательность логических записей. Приложение может обращаться к ФС с запросами на ввод-вывод на уровне записей, например, «считать запись 25 из файла FILE.DOC». ФС должна обладать информацией о структуре файла, достаточной для того, чтобы выделить любую запись. ФС предоставляет приложению доступ к записи, а вся дальнейшая обработка данных, содержащаяся в этой записи, выполняется приложением. Замечание. Развитием этого подхода стали СУБД.

Способы физической организации файла

Физическая организация файла (ФОФ) – это способ размещения файла на диске. Основные критерии эффективности физической организации файлов:

  • Скорость доступа к данным.
  • Объем адресной информации файла.
  • Степень фрагментированнности дискового пространства.
  • Максимально возможно размер файла.

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

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

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

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

При таком способе в начале каждого кластера содержится указатель на следующий кластер:

Достоинства: Адресная информация минимальна расположение файла может быть задано одним числом – номером первого кластера, фрагментация на уровне кластеров отсутствует, так как каждый кластер может быть присоединен к цепочке кластеров какого-либо файла, файл может изменять свой размер, наращивая число кластеров.

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

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

Использование связанного списка индексов (например, в FAT)

Данный способ является модификацией предыдущего метода. Файлу также выделяется память в виде связанного списка кластеров. Номер первого кластера запоминается в записи каталога, где хранятся характеристики этого файла. Остальная адресная информация отделена от кластеров файла. С каждым кластером диска связан индекс. Индексы располагаются в отдельной области диска – в файловых системах FAT это таблица (File Allocation Table):

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

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

Перечисление номеров кластеров, занимаемых этим файлом.

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

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

Файловая система (File System, ФС) — определяет и контролирует, как будут храниться и именоваться данные на носителе/накопителе информации: флешке, жестком или ssd диске и других. От нее зависит способ хранения данных на накопителе, сам формат данных и то, как они будут записываться/читаться в дальнейшем.

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

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

Что определяет файловая система:

  • Структура
  • Правила хранения и чтения данных
  • Размер кластеров
  • Формат содержимого
  • Размер имен файлов
  • Максимально возможный размер файла и раздела. К примеру, в ФАТ32 максимальный размер всего 4 ГБ, т.е. 4 294 967 295 байт.
  • Набор атрибутов файла

Почему так много файловых систем

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

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

Выбор файловой системы при форматировании диска

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

Unified storage

Универсальные системы, позволяющие совмещать в себе как функции NAS так и SAN. Чаще всего по реализации это SAN, в которой есть возможность активировать файловый доступ к дисковому пространству. Для этого устанавливаются дополнительные сетевые карты (или используются уже существующие, если SAN построена на их основе), после чего создается файловая система на некотором блочном устройстве — и уже она раздается по сети клиентам через некоторый файловый протокол, например NFS.

Software-defined storage — программно определяемое хранилище данных, основанное на DAS, при котором дисковые подсистемы нескольких серверов логически объединяются между собой в кластер, который дает своим клиентам доступ к общему дисковому пространству.

Наиболее яркими представителями являются GlusterFS и Ceph, но также подобные вещи можно сделать и традиционными средствами (например на основе LVM2, программной реализации iSCSI и NFS).

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

Пример SDS на основе GlusterFS

Из преимуществ SDS — можно построить отказоустойчивую производительную реплицируемую систему хранения данных с использованием обычного, возможно даже устаревшего оборудования. Если убрать зависимость от основной сети, то есть добавить выделенные сетевые карты для работы SDS, то получается решение с преимуществами больших SANNAS, но без присущих им недостатков. Я считаю, что за подобными системами — будущее, особенно с учетом того, что быстрая сетевая инфраструктура более универсальная (ее можно использовать и для других целей), а также дешевеет гораздо быстрее, чем специализированное оборудование для построения SAN. Недостатком можно назвать увеличение сложности по сравнению с обычным NAS, а также излишней перегруженностью (нужно больше оборудования) в условиях малых систем хранения данных.

Ограничения

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

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

В директории может храниться следующая информация:

  • имя файла;
  • тип файла;
  • адрес (путь к файлу);
  • текущая длина файла;
  • максимальная длина файла;
  • дата и время последнего доступа к файлу;
  • дата и время последнего изменения файла;
  • идентификатор собственника файла (User ID, Owner ID);
  • информация о защите файла.
  • В директориях могут выполняться следующие операции:
  • поиск файла;
  • создание файла и присвоение имени;
  • удаление файла;
  • составление списка файлов в директории;
  • переименование файла;
  • перенос в другую файловую систему.

Директории сайтов

С понятием «директория сайта» ситуация несколько сложнее, хотя принцип понимания самой сути практически тот же. Дело в том, что в данном случае под директорией подразумевается корневой каталог, в котором будут храниться все элементы создаваемого или уже созданного веб-сайта, например на языке HTML.

Прежде всего, в корневом каталоге в обязательном порядке должен находиться файл Index.html (главная страница), туда же загружаются папки Content (для страниц) и Images (для картинок). Впрочем, необязательно использовать именно такие названия. Их можно обозначить как угодно – допустим, давать наименования по рубрикам, в которые будут помещаться материалы по определенной тематике. Правда, это увеличит сам корневой каталог, зато в некоторых случаях именно за счет этого можно добиться сокращения пути к самим страницам.

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

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

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

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

  • Накопитель — это библиотека (как здание или организация).
  • Пользователь — это читатель, который пришел в библиотеку за произведением Жюля Верна.
  • Файл — это книга с понятным названием (атрибутом) или другим условным опознавательным знаком, например, упомянутый выше «Таинственный остров».
  • Драйвер файловой системы — это библиотекарь, который выступает в роли посредника или проводника между читателем и книгой. Или между пользователем (компьютером, операционной системой) и файлом (ячейками с информацией в микросхемах памяти или на магнитных пластинах).
  • Файловая система — порядок, в соответствии с которым в библиотеке расставлены книги, а также каталог, с помощью которого специалист находит книги. Системы бывают разные: книги можно расставить по росту, цвету обложки, жанру, году выпуска или названию в алфавитном порядке. На диске файловая система отвечает за организацию файлов.

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

Возможности файловой системы

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

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

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

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

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

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

Жесткий лимит – лимит который не может быть превышен.

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

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

Существуют следующие способы повышения эффективности и удобства резервного копирования:

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

Физическое резервное копирование это последовательное копирование всех кластеров диска.

Логическое резервное копирование это проверка каталогов и сохранение содержащихся в них информации.

Преимущества физического копирования:

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

Логическое резервирование происходит следующим образом:

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

Далее создается резервная копия.

Восстановление файловой системы из резервной копии происходит следующим образом:

  1. Создается пустая файловая система.
  2. Восстанавливаются данные последней полной архивации, сначала каталоги, а затем файлы.
  3. Восстанавливаются данные из инкрементных резервных копий.
  4. Восстанавливается список свободных кластеров.

Теперь вы знаете основы файловых систем.

Анатолий Бузов

Обучаю HTML, CSS, PHP. Создаю и продвигаю сайты, скрипты и программы. Занимаюсь информационной безопасностью. Рассмотрю различные виды сотрудничества.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector