Что такое кластеры и тома?
Кластеры в файловых системах
Кластер (Cluster) — это минимальная единица хранения данных на жестком диске или SSD, состоящая из одного или нескольких секторов.
1. Почему используются кластеры?
Жёсткие диски и SSD работают с секторами — стандартный размер сектора на большинстве современных устройств составляет 512 байт или 4096 байт (4К Advanced Format). Однако операционные системы не работают с секторами напрямую, а группируют их в кластеры для более эффективного управления файлами.
- Если файловая система использует кластеры размером 4 КБ (8 секторов по 512 байт), то даже файл размером 1 байт займёт целый кластер (4 КБ).
2. Размер кластера
Размер кластера задаётся при форматировании и зависит от файловой системы:
Чем меньше размер кластера, тем меньше потерь дискового пространства, но возрастает нагрузка на файловую систему.
Чем больше размер кластера, тем меньше фрагментация, но больше потерь на маленьких файлах.
- На диске с кластерами 64 КБ, если файл весит 65 КБ, он займёт 2 кластера (128 КБ).
- Если на том же диске хранить 1000 файлов по 1 КБ, они займут 1000 × 64 КБ = 64 МБ вместо 1 МБ.
3. Как кластеры хранят данные?
Каждый файл занимает целое число кластеров. Если файл меньше размера кластера, неиспользуемая часть кластера остаётся пустой (это называется внутренней фрагментацией).
- Фрагментированные файлы — если файл разбит на несколько несмежных кластеров, он становится фрагментированным, что замедляет чтение на HDD (но не на SSD).
4. Различия в FAT32 и NTFS
- FAT32 использует таблицу FAT для отслеживания кластеров, что приводит к фрагментации.
- NTFS хранит информацию о кластерах в MFT и поддерживает разреженные файлы (sparse files), уменьшая потери пространства.
Вывод
Кластеры — это блоки, в которых хранятся файлы. Их размер влияет на скорость работы и использование дискового пространства.
Тома в файловых системах
1. Определение
Том (volume) — это логическое хранилище данных с единой файловой системой, которое операционная система представляет пользователю как единое целое (например, диск C:, папка /mnt/data или точка монтирования).
Простыми словами: том — это то, что вы видите в проводнике (Windows) или Finder (macOS) как отдельный диск, даже если физически он является частью большего устройства.
2. Чем том отличается от раздела и физического диска?
- Непрерывная область на физическом диске, описанная в таблице разделов (MBR или GPT).
/dev/sda1,Disk 0 Partition 1
- Логический контейнер с файловой системой, который ОС монтирует для доступа. Может занимать: один раздел, несколько разделов (RAID, LVM), или вообще не иметь разделов (whole-disk FS).
C:,/dev/mapper/vg0-root,Macintosh HD
- Раздел — это физическая (или низкоуровневая) граница на диске.
- Том — это логическая единица хранения, которую видит пользователь и с которой работает ОС.
3. Как том создается?
Существует несколько способов:
А. Один раздел = один том (самый простой)
Самый распространенный случай. На диске создается раздел, внутри него форматируется файловая система (NTFS, ext4, APFS), и этот раздел становится томом.
[Физический диск] → [Раздел 1 (NTFS)] → Том C:
→ [Раздел 2 (ext4)] → Том /homeБ. Один том занимает несколько разделов
- RAID (аппаратным или программным): несколько дисков объединяются в один массив, поверх которого создается том.
- LVM (Logical Volume Manager) в Linux: несколько физических разделов объединяются в группу томов (Volume Group), из которой можно выделять логические тома (Logical Volumes) произвольного размера.
[Диск1] → Раздел1 ─┐ [Диск2] → Раздел2 ─┼→ [Volume Group] → Логический том (ext4) → /data [Диск3] → Раздел3 ─┘
Некоторые файловые системы (например, ZFS, btrfs) могут работать напрямую с устройством (/dev/sda), не требуя создания разделов. В этом случае весь диск становится одним томом.
В виртуализации (Parallels, VMware, VirtualBox) виртуальный диск для гостевой ОС — это файл (.vmdk, .vhd) на хостовой системе. Для гостевой ОС этот файл выглядит как полноценный том с файловой системой.
4. Монтирование тома
Операционная система не работает с томом напрямую — она его монтирует.
- Windows: Томам присваиваются буквы (
C:D:). Монтирование происходит автоматически при подключении. - macOS: Тома монтируются в
/Volumes/. При подключении внешнего диска он появляется в/Volumes/и на рабочем столе. - Linux: Тома монтируются в любую папку, например
/mnt/dataили/home. Процесс контролируется файлом/etc/fstab.
5. Связь с файловыми системами
Файловая система (NTFS, APFS, ext4, ZFS) живет внутри тома.
Один том = одна файловая система. Нельзя в пределах одного тома иметь NTFS в одной папке и ext4 в другой — для этого нужны разные тома (или субтома в некоторых CoW-системах).
- ZFS размывает границу между томом и файловой системой. В ZFS есть понятие dataset — это одновременно и том, и файловая система, которая может управлять квотами, сжатием и снапшотами независимо.
- APFS использует понятие containers и volumes. Один контейнер APFS может содержать несколько томов, которые делят свободное пространство (в отличие от разделов, где пространство жестко выделено).
6. Зачем вообще нужно понятие "том"?
- Абстракция — пользователю не нужно знать, на каком физическом диске лежат его файлы. Том скрывает сложности.
- Гибкость — тома можно изменять (расширять, сжимать) без переноса данных, если используется LVM или ZFS.
- Изоляция — разные тома можно форматировать в разные файловые системы, монтировать с разными параметрами, независимо бэкапить.
- Производительность и надежность — тома можно распределять по разным физическим дискам для балансировки нагрузки или избыточности (RAID).