Найти тему

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

Если вкратце, то файловая система - всего лишь последовательность секторов, определяющая порядок организации хранения файлов. Начнём с того, что файловая система находится на разделе (partition), который в терминах Microsoft почему-то называется "логическим диском". Раздел находится на диске. А как размечается диск?

Диск тоже - всего лишь последовательность секторов. А организация разделов прописывается в заголовке и зависит от типа разбиения диска. Сейчас существует два вида разбиения диска: старый MBR, позволяющий загрузку в стандартном режиме BIOS (Legacy) и новый GPT, требующий поддержки EFI (UEFI). Сейчас можно использовать оба, однако GPT требуется только для жёстких дисков объёмом более двух терабайт.

Утилита Windows DiskPart для работы с дисками и разделами
Утилита Windows DiskPart для работы с дисками и разделами

Надо отметить, что MBR позволяет создать не более четырёх первичных (primary) разделов, один из которых может быть расширенным (extended). В расширенном разделе могут располагаться до четырёх логических (logical) разделов - впрочем, один из логических разделов тоже может быть расширенным... ну и так далее. Нюанс в том, что Windows умела загружаться только с первичных разделов.

В GPT нет таких ограничений, там все разделы располагаются линейно.

Но прежде чем разбивать диски, следует немножко изучить вопрос, как последовательность секторов определяется в BIOS. В старых системах было три режима работы жёсткого диска: Normal (CHS), LBA, Large.

Настройка режима LBA/Large в BIOS
Настройка режима LBA/Large в BIOS

Сейчас эти проблемы отпали, появились другие: Windows XP загружается, если установлен режим жёсткого диска IDE, а Windows 7 загружается, если установлен режим жёсткого диска AHCI - а если надо настроить для этих двух систем мультизагрузку? На самом деле, Windows 7 умеет загружаться в режиме IDE (хотя и не на всех системах), а Windows XP умеет загружаться в режиме AHCI (просто при её установке надо или подсунуть ей драйвер, или прошить его в установочный дистрибутив заранее). Впрочем, эту проблему тоже можно считать решённой.

Выбор IDE или AHCI
Выбор IDE или AHCI

Но мало иметь нужный раздел - на нём нужно ещё создать файловую систему определённого формата. В UNIX это делается командой newfs (new file system), в Linux командой mkfs (make file system), а в Windows процесс создания файловой системы называется форматированием.

Для современных версий Windows формат файловой системы NTFS, кроме того она исторически понимает формат FAT32 (основной для Windows 98) и FAT16 (основной для Windows 95 и Windows NT 4.0). Кроме того, дискеты 3.5 дюйма обычно имели файловую систему FAT12. Сейчас все версии FAT ещё актуальны, но обычно для сторонних накопителей (например, флеш-накопителей). Дело в том, что эти файловые системы не поддерживают некоторых функций безопасности, в частности прав пользователя.

На самом деле NTFS - дальнейшее развитие файловой системы HPFS, которая традиционно использовалась в операционной системе IBM OS/2 Warp. У них даже одинаковый идентификатор, из-за чего при настройке мультизагрузки могут быть проблемы.

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

Для FreeBSD - файловая система UFS2 и сейчас активно продвигается ZFS

Для Linux используются файловые системы ext2/ext3/ext4/reiserfs

Кроме того Linux использует отдельный идентификатор для раздела подкачки (linux swap). В Windows обычно используется файл подкачки (виртуальная память).

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

Мем из интернета
Мем из интернета

А как же Windows? Да, у Windows есть аналогичная (но несовместимая) технология. В Windows можно создать составной том.

И, разумеется, все системы обязаны понимать файловую систему ISO/UDF - просто потому, что это файловая система дисков CD/DVD, а так же их образов... Что такое образ компакт-диска? Это файл с расширением .iso - и его можно прожечь на чистый DVD-диск (болванку). Существуют и другие виды образов: расширение .img используется для флеш-накопителей.

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

Папку в сети можно сделать общей для других компьютеров, открыв к ней доступ по FTP, SSH, SMB или NFS (Network File System). При этом для некоторых протоколов и файловых систем можно задать квоты.

Включение дисковых квот.
Включение дисковых квот.

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

Подключение сетевого диска по протоколу iSCSI стандартными средствами Windows
Подключение сетевого диска по протоколу iSCSI стандартными средствами Windows

Напоследок осталось упомянуть про различные варианты организации дисковых массивов RAID:

  • RAID-0 - stripe (два диска объединены в 1, отказоустойчивость нулевая)
  • RAID-1 - mirror (два диска работают параллельно)
  • RAID-10 - четыре диска объединены в два зеркала, по сравнению с RAID-1 выигрыш в скорости в 2 раза.
Организация RAID-10
Организация RAID-10

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