Файловая система как способ хранения информации

Лекция 9. Файловая система хранения, поиска и обработки информации

Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.

Файл— это определенное количество информа­ции (программа или данные), имеющее имя и хра­нящееся в долговременной (внешней) памяти.

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

Таблица 1. Типы файлов и расширений

Тип файла Расширения
Программы exe, com
Текстовые файлы txt, doc
Графические файлы bmp, д1Т,]рдидр
Звуковые файлы wav, mid
Видеофайлы avi
Программы на языках программирования bas, pas и др

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

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

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

Таблица 2.Одноуровневый каталог

Имя файла Номер начального сектора
Файл_1
Файл_2
…….
Файл_112

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

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

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

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

Операции над файлами.В процессе работы на компьюте­ре наиболее часто над файлами производятся следующие операции:

• копирование (копия файла помещается в другой ката­лог);

• перемещение (сам файл перемещается в другой каталог);

• удаление (запись о файле удаляется из каталога);

• переименование (изменяется имя файла).

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

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

После форматирова­ния гибкого диска 3,5″ его параметры будут сле­дующими:

• информационная ем­кость сектора — 512 байтов;

• количество секторов на дорожке — 18;

• дорожек на одной сто­роне — 80;

Логическая структура гибких дисков. Логическая струк­тура магнитного диска представляет собой совокупность секторов (емкостью 512 байтов), каждый из которых имеет свой порядковый номер (например, 100). Сектора нумеруют­ся в линейной последовательности от первого сектора нуле­вой дорожки до последнего сектора последней дорожки.

На гибком диске минимальным адресуемым элементом является сектор.

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

Файл записывается в произвольные свободные сектора, которые могут находиться на различных дорожках. Напри­мер, Файл_1 объемом 2 Кбайта может занимать сектора 34, 35 и 47, 48, а Файл_2 объемом 1 Кбайт — сектора 36 и 49.

Таблица 3. Логическая структура гибкого диска формата 3,5″ (2-я сторона)

№ дорожки № сектора
………………….

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

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

Таблица 4. Структура записей в каталоге

Имя файла Адрес первого сектора Объем файла, Кбайт Дата создания Время создания
Файл 1 14 01 99 14 29
Файл 2 14 01 99 14 45

Полная информация о секторах, которые занимают фай­лы, содержится в таблице размещения файлов (FAT — File Allocation Table). Количество ячеек FAT соответствует коли­честву секторов на диске, а значениями ячеек являются це­почки размещения файлов, то есть последовательности ад­ресов секторов, в которых хранятся файлы.

Цепочка размещения для файла Файл_1 выглядит следую­щим образом: в начальном 34-м секторе хранится адрес 35, в 35-м секторе хранится адрес 47, в 47-м — 48, в 48-м — знак конца файла (К).

Для размещения каталога — базы данных и таблицы FAT на гибком диске отводятся секторы со 2 по 33. Первый сек­тор отводится для размещения загрузочной записи операци­онной системы. Сами файлы могут быть записаны, начиная с 34 сектора.

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

Читайте также:  Дайте определение способам улучшения утилитарных свойств ткани начесывание

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

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

Заявленная емкость неформатированного гибкого маг­нитного диска формата 3,5″ составляет 1,44 Мбайт.

Рассчитаем общую информационную емкость отформати­рованного гибкого диска:

Количество секторов: N = 18 х 80 х 2 = 2880.

512 байт х N = 1 474 560 байт = 1 440 Кбайт -= 1,40625 Мбайт.

Однако для записи данных доступно только 2847 секто­ров, то есть информационная емкость, доступная для записи данных, составляет:

512 байт х 2847 = 1 457 664 байт = 1423,5 Кбайт = 1,39 Мбайт.

Логическая структура жестких дисков. Логическая структура жестких дисков несколько отличается от логической структуры гибких дисков. Минимальным адресуемым элементом жесткого диска является кластер, который может включать в себя не­сколько секторов. Размер кластера зависит от типа использу­емой таблицы FAT и от емкости жесткого диска.

На жестком диске минимальным адресуемым элементом является кластер, который содержит не сколько секторов.

Таблица FAT16 может адресовать 2 16 — 65 536 кластеров. Для дисков большой емкости размер кластера оказывается слишком большим, так как информационная емкость жест­ких дисков может достигать 150 Гбайт.

Например, для диска объемом 40 Гбайт размер кластера будет равен:

40 Гбайт/65536 = 655 360 байт = 640 Кбайт.

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

Эта проблема частично решается с помощью использова­ния таблицы FAT32, в которой объем кластера принят рав­ным 8 секторам или 4 килобайтам для диска любого объема.

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

Преобразование FAT16 в FAT32 можно осуществить с по­мощью служебной программы Преобразование диска в FAT32, которая входит в состав Windows.

Мы рассмотрели файловую систему, имеющую название FAT, од­нако в последнее время все большую популярность приобретает фай­ловая система NTFS (New Technology File System — файловая система операционных систем семейства Windows NT), которая, в частности, используется в Windows NT и Windows ХР.

Максимальный размер раздела NTFS в данный момент ограничен лишь размерами «жестких» дисков. Как и любая другая система, NTFS делит все полезное место на кластеры — блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт, неким стандартом же считается кластер раз­мером 4 Кбайт. Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую зону MFT (Master File Table). Это БД, представляющая собой общую файловую таблицу, строки которой соответствуют файлам тома NTFS, а столбцы — атрибутам файлов. Запись каких-либо других данных в эту область невозможна. Остальные 88 % диска является обычным пространством для хранения файлов.

Зона MFT поделена на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны ОС — они называются метафайлами, причем самый первый метафайл — сам MFT. Эти первые 16 элементов MFT — един­ственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей для надежности — они очень важны — хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу первый элемент MFT.

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

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

Источник

Хранение данных. Или что такое NAS, SAN и прочие умные сокращения простыми словами

TL;DR: Вводная статья с описанием разных вариантов хранения данных. Будут рассмотрены принципы, описаны преимущества и недостатки, а также предпочтительные варианты использования.

Зачем это все?

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

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

Хранение данных

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

Читайте также:  Блок схема это способ представления алгоритма с помощью геометрических фигур

По способу подключения есть следующие варианты:

  • Внутреннее. Сюда относятся классическое подключение дисков в компьютерах, накопители данных устанавливаются непосредственно в том же корпусе, где и будут использоваться. Типовые шины для подключения — SATA, SAS, из устаревших — IDE, SCSI.


подключение дисков в сервере

  • Внешнее. Подразумевается подключение накопителей с использованием некоторой внешней шины, например FC, SAS, IB, либо с использованием высокоскоростных сетевых карт.


дисковая полка, подключаемая по FC

По типу используемых накопителей возможно выделить:

  • Дисковые. Предельно простой и вероятно наиболее распространенный вариант до сих пор, в качестве накопителей используются жесткие диски
  • Ленточные. В качестве накопителей используются запоминающие устройства с носителем на магнитной ленте. Наиболее частое применение — организация резервного копирования.
  • Flash. В качестве накопителей применяются твердотельные диски, они же SSD. Наиболее перспективный и быстрый способ организации хранилищ, по емкости SSD уже фактически сравнялись с жесткими дисками (местами и более емкие). Однако по стоимости хранения они все еще дороже.
  • Гибридные. Совмещающие в одной системе как жесткие диски, так и SSD. Являются промежуточным вариантом, совмещающим достоинства и недостатки дисковых и flash хранилищ.

Если рассматривать форму хранения данных, то явно выделяются следующие:

  • Файлы (именованные области данных). Наиболее популярный тип хранения данных — структура подразумевает хранение данных, одинаковое для пользователя и для накопителя.
  • Блоки. Одинаковые по размеру области, при этом структура данных задается пользователем. Характерной особенностью является оптимизация скорости доступа за счет отсутствия слоя преобразования блоки-файлы, присутствующего в предыдущем способе.
  • Объекты. Данные хранятся в плоской файловой структуре в виде объектов с метаданными.

По реализации достаточно сложно провести четкие границы, однако можно отметить:

  • аппаратные, например RAID и HBA контроллеры, специализированные СХД.


RAID контроллер от компании Fujitsu

  • Программные. Например реализации RAID, включая файловые системы (например, BtrFS), специализированные сетевые файловые системы (NFS) и протоколы (iSCSI), а также SDS


пример организации LVM с шифрованием и избыточностью в виртуальной машине Linux в облаке Azure

Давайте рассмотрим более детально некоторые технологии, их достоинства и недостатки.

Direct Attached Storage — это исторически первый вариант подключения носителей, применяемый до сих пор. Накопитель, с точки зрения компьютера, в котором он установлен, используется монопольно, обращение с накопителем происходит поблочно, обеспечивая максимальную скорость обмена данными с накопителем с минимальными задержками. Также это наиболее дешевый вариант организации системы хранения данных, однако не лишенный своих недостатков. К примеру если нужно организовать хранение данных предприятия на нескольких серверах, то такой способ организации не позволяет совместное использование дисков разных серверов между собой, так что система хранения данных будет не оптимальной: некоторые сервера будут испытывать недостаток дискового пространства, другие же — не будут полностью его утилизировать:

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

Storage area network, она же сеть хранения данных, является технологией организации системы хранения данных с использованием выделенной сети, позволяя таким образом подключать диски к серверам с использованием специализированного оборудования. Так решается вопрос с утилизацией дискового пространства серверами, а также устраняются точки отказа, неизбежно присутствующие в системах хранения данных на основе DAS. Сеть хранения данных чаще всего использует технологию Fibre Channel, однако явной привязки к технологии передачи данных — нет. Накопители используются в блочном режиме, для общения с накопителями используются протоколы SCSI и NVMe, инкапсулируемые в кадры FC, либо в стандартные пакеты TCP, например в случае использования SAN на основе iSCSI.

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

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

Читайте также:  Способы приобретения по вещному праву

Network attached storage, или сетевое файловое хранилище, представляет дисковые ресурсы в виде файлов (или объектов) с использованием сетевых протоколов, например NFS, SMB и прочих. Принципиально базируется на DAS, но ключевым отличием является предоставление общего файлового доступа. Так как работа ведется по сети — сама система хранения может быть сколько угодно далеко от потребителей (в разумных пределах разумеется), но это же является и недостатком в случае организации на предприятиях или в датацентрах, поскольку для работы утилизируется полоса пропускания основной сети — что, однако, может быть нивелировано с использованием выделенных сетевых карт для доступа к NAS. Также по сравнению с SAN упрощается работа клиентов, поскольку сервер NAS берет на себя все вопросы по общему доступу и т.п.

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, то получается решение с преимуществами больших SAN\NAS, но без присущих им недостатков. Я считаю, что за подобными системами — будущее, особенно с учетом того, что быстрая сетевая инфраструктура более универсальная (ее можно использовать и для других целей), а также дешевеет гораздо быстрее, чем специализированное оборудование для построения SAN. Недостатком можно назвать увеличение сложности по сравнению с обычным NAS, а также излишней перегруженностью (нужно больше оборудования) в условиях малых систем хранения данных.

Гиперконвергентные системы

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

Облака и эфемерные хранилища

Логическим продолжением перехода на виртуализацию является запуск сервисов в облаках. В предельном случае сервисы разбиваются на функции, запускаемые по требованию (бессерверные вычисления, serverless). Важной особенностью тут является отсутствие состояния, то есть сервисы запускаются по требованию и потенциально могут быть запущены столько экземпляров приложения, сколько требуется для текущей нагрузки. Большинство поставщиков (GCP, Azure, Amazon и прочие) облачных решений предлагают также и доступ к хранилищам, включая файловые и блочные, а также объектные. Некоторые предлагают дополнительно облачные базы, так что приложение, рассчитанное на запуск в таком облаке, легко может работать с подобными системами хранения данных. Для того, чтобы все работало, достаточно оплатить вовремя эти услуги, для небольших приложений поставщики вообще предлагают бесплатное использование ресурсов в течение некоторого срока, либо вообще навсегда.

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

Заключение

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

Источник

Оцените статью
Разные способы