Site icon 8HOST.COM

Терминология хранения данных в Linux: введение

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

Что такое блочное хранилище?

Блочное хранилище — это ещё одно название того, что ядро ​​Linux называет блочным устройством. Блочное устройство — это аппаратное обеспечение, которое можно использовать для хранения данных, например традиционный вращающийся жесткий диск (HDD), твердотельный накопитель (SSD), флэш-накопитель и т. д. Устройство называется блочным, потому что ядро ​​взаимодействует с оборудованием, ссылаясь на блоки фиксированного размера, или фрагменты пространства.

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

Что такое разделы диска?

Дисковые разделы — это один из способов разделения накопителя на меньшие единицы. Раздел — это часть накопителя, с которой можно работать почти так же, как с самим диском.

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

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

MBR против GPT

При разбивке диска важно знать, какой формат будет использоваться. Как правило, выбор лежит между MBR (Master Boot Record) и GPT (GUID Partition Table).

Так как МBR уже больше 30 лет, его функционал серьезно ограничен. Например, MBR нельзя использовать для дисков размером более 2 ТБ и он может поддерживать не более четырех основных разделов.

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

В общем, лучше выбирать GPT, если ваша ОС не запрещает вам его использовать.

Форматирование и файловые системы

Хотя ​​Linux может распознавать и необработанные диск, для работы с таким диском его все же нужно отформатировать. Форматирование — это процесс записи файловой системы на диск и подготовки его к файловым операциям. Файловая система — это система, которая структурирует данные и управляет тем, как информация записывается и извлекается с базового диска. Без файловой системы вы не могли бы использовать устройство хранения для каких-либо стандартных операций.

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

Некоторые из наиболее популярных файловых систем для Linux:

Windows в основном использует *NTFS и ExFAT, а macOS использует HFS+ и APFS. Чаще всего можно читать и иногда записывать эти форматы файловой системы на разных платформах, но для этого могут потребоваться дополнительные инструменты совместимости.

Как управлять устройствами хранения в Linux?

Файлы устройств в /dev

В Linux вся работа с устройствами ведется через специальные файлы, которые обычно расположены в каталоге /dev. Обычно файлы, представляющие устройства хранения, начинаются с sd или hd, за которыми следует буква. Например, первый диск на сервере обычно имеет вид /dev/sda.

Разделы на этих дисках также имеют файлы в каталоге /dev, представленные добавлением номера раздела в конец имени диска. Например, первый раздел на диске из предыдущего примера будет /dev/sda1.

Файлы устройств /dev/sd* и /dev/hd* поддерживают традиционный способ обозначения дисков и разделов, но обозначение только таким способом имеет существенный недостаток. Это может привести к ошибкам и конфликтам, когда ваши устройства меняют ноды устройств, потому что ядро Linux определяет, какое имя устройства получают при каждой загрузке.

Чтобы обойти эту проблему, каталог /dev/disk содержит подкаталоги, соответствующие другим, более постоянным способам идентификации дисков и разделов в системе. Они содержат символические ссылки, которые создаются при загрузке на правильные файлы /dev/[sh]da*. Ссылки именуются в соответствии с идентифицирующим признаком каталога (например, по метке раздела для каталога /dev/disk/by-partlabel). Эти ссылки всегда будут указывать на правильные устройства, поэтому их можно использовать в качестве статических идентификаторов для дисковых пространств.

Некоторые или все из следующих подкаталогов могут существовать в /dev/disk:

Обычно by-label или by-uuid — это лучшие варианты для постоянной идентификации устройств.

Монтирование блочных устройств

В Linux и других Unix-подобных операционных системах вся система, независимо от того, сколько задействовано физических устройств, представлена ​​единым унифицированным файловым деревом. Когда нужно использовать файловую систему на диске или разделе, она должна быть подключена к существующему дереву. Монтирование — это процесс присоединения отформатированного раздела или диска к каталогу в файловой системе Linux. Затем содержимое диска может быть доступно из этого каталога.

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

Для временно смонтированных файловых систем Filesystem Hierarchy Standard рекомендует использовать /mnt или его подкаталог. Он не дает рекомендаций о том, где установить дополнительное постоянное хранилище, поэтому вы можете выбрать любую схему, которую хотите. Во многих случаях для постоянного хранения также используются /mnt или его подкаталоги.

Постоянное монтирование с помощью /etc/fstab

Системы Linux используют файл /etc/fstab (таблица файловой системы) для определения файловых систем, которые нужно смонтировать в процессе загрузки. Записи файловых систем, которых нет в этом файле, не будут монтироваться автоматически, если только они не будут созданы каким-либо другим программным обеспечением.

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

Продвинутое управление хранилищем

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

Что такое RAID?

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

Характеристики массива RAID зависят от его уровня RAID. Именно уровень определяет, как диски в массиве соотносятся друг с другом. Вот основные технологии виртуализации:

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