Файловые системы хранения данных

Если в поисковой системе задать поиск по изображениям, то на запрос «file storage» одной из первых будет выдана примерно такая картинка:

Рисунок 1. Система хранения файлов (в смысле, папок).

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

Виды хранения данных

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

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

Файловое хранилище, напротив, организует и предоставляет данные в виде иерархии файлов в папках.

Объектное хранилище управляет данными при помощи т.н. «метаданных», коротких информационных «наклеек» на целостном массиве данных (текстовый документ, видеоролик, электронная таблица и пр.), по которому его можно довольно легко найти в общем хранилище.

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

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

Доступ к данным в файловом хранилище осуществляется по идентификатору файлы – file ID, который содержит имя сервера, путь к директории (папке) и имя искомого файла (server name + directory path + filename) в сети системы хранения общего пользования NAS (Network Attached Storage). По file ID сервер системы хранения находит данные на диске в NAS.

Протоколы

Наиболее употребительными протоколами доступа к файлам через NAS являются NFS (Network File System) и CIFS (Common Internet File System).

NFS используется в операционных системах Unix и Linux. CIFS используется в операционной системе Windows и является публичным (открытым) вариантом более специализированного протокола SMB (Server Message Block), разработанного компанией Microsoft, который использует сетевой протокол TCP/IP.

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

Ограничения

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

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

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

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

  • Имя файла
  • Тип файла
  • Адрес (путь к файлу)
  • Текущая длина файла
  • Максимальная длина файла
  • Дата и время последнего доступа к файлу
  • Дата и время последнего изменения файла
  • Идентификатор собственника файла (User ID, Owner ID)
  • Информация о защите файла.

В директориях могут выполняться следующие операции:

  • Поиск файла
  • Создание файла и присвоение имени
  • Удаление файла
  • Составление списка файлов в директории
  • Переименование файла
  • Перенос в другую файловую систему.

Уровни директорий

  • Одноуровневые директории

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

Рисунок 2. Одноуровневые директории

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

  • Двухуровневые директории

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

Рисунок 3. Двухуровневые директории.

В такой модели директории могут быть организованы в виде дерева.

 Рисунок 4. Древообразная модель директорий.

Методы размещения файлов

  1. Непрерывное размещение

При непрерывном размещении (Continuous Allocation) файла в момент его создания выделяется набор последовательных блоков. В таблице размещения файлов (file allocation table) нужно указать только номер начального блока и длину файла. Этот метод лучше всего подходит для последовательного размещения отдельных файлов в пустом хранилище.

Рисунок 5. Непрерывное размещение файлов.

Преимущества: при таком размещении можно сразу прочитать несколько блоков, что обеспечивает высокую скорость ввода-вывода. Легко также получать доступ к отдельным блокам. Например, если файл начинается на блоке b, и нам нужен блок i, то его положение в хранилище вычисляется просто как b + i – 1.

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

  • Цепочное размещение

При цепочном размещении, Linked Allocation, (ещё его называют Non-contiguous allocation), размещение производится поблочно и при этом не требуется, чтобы блоки в файле были расположены последовательно по номерам. Каждый блок при этом будет содержать указатель на следующий блок цепочки, в котором продолжается файл.

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

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

  • Индексированное размещение

Индексированное размещение (Indexed Allocation) призвано решить проблемы непрерывного и цепочного размещения. В этос случае таблица размещения файлов содержит отдельный одноуровневый указатель (индекс) для каждого файла. В индексе последовательно указаны номера блоков, в которых размещён файл. При этом блоки могут иметь как одинаковый размер, так и различные размеры. При этом исключается фрагментация файлов, в то время как размещение при помощи блоков различного размера исключает незанятые «хвосты» в последнем блоке каждого файла, если число байтов в файле некратно суммарному числу байтов  в нескольких блоках. Этот метод размещения файлов обеспечивает как последовательный, так и прямой доступ к файлам и в настоящее время наиболее популярен.

Рисунок 6. Индексированное размещение файлов.

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

Свободным пространством диска, как и занятым, тоже нужно управлять. Для эффективного размещения файлов во всех перечисленных выше методах требуется знать, какие блоки на диске доступны, а какие – заняты. Поэтому необходимо иметь также таблицы размещения дисков (disk allocation table), как и таблицу размещения файлов (file allocation table).

Имеются следующие методы управления свободным пространством диска.

Битовые таблицы (Bit Tables). В этом методе используется вектор, который содержит по одному биту для каждого блока на диске. Если бит равен 0, то это блок свободен, если 1, то занят.

Такой вектор может, например, иметь вид: 00011010111100110001

Список свободный блоков (Free Block List). В этом методе каждому блоку назначается последовательный номер и список номеров свободных блоков сохраняется на специально выделенном блоке на каждом диске.

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

Достоинства и недостатки

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

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

Файлы можно найти достаточно быстро, если её масштаб не запределен. Система имён файлов позволяет разным собственникам иметь файлы с одинаковым именем – с точки зрения системы это будут разные файлы, даже в том случае, если содержимое файлов с разными Owner ID будет одинаковым.

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

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

Бизнес-задачи

Файловая система хранения хорошо подходит для доступа к общим файлам и каталогам через локальную компьютерную сеть предприятия LAN (local area network) или WAN (wide area network). Однако, быстродействия файловых систем, особенно при больших масштабах, может не хватить для некоторых бизнес-критичных задач, где малое время отклика системы имеет значение для качества бизнес-операций. Например, это могут быть системы компьютерного зрения, системы анализа больших данных и бизнес-аналитики, а также нейросети, системы интеллектуальной видеоаналитики и прочие инновационные цифровые технологии. В таких случаях иногда бывает целесообразнее использовать блочные хранилища, которые имеют меньшее время отклика при больших объёмах хранения.

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

Аватар Неизвестно

About Алексей Шалагинов

Независимый эксперт
Запись опубликована в рубрике Технологии с метками , , , , , , , . Добавьте в закладки постоянную ссылку.

3 Responses to Файловые системы хранения данных

  1. Уведомление: Блочные системы хранения данных | Telecom & IT

  2. Аватар magnificentdelightfully6cc1e6cb13 magnificentdelightfully6cc1e6cb13:

    Спасибо!

    Нравится 1 человек

  3. Уведомление: Объектные системы хранения данных | Telecom & IT

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.