Computer Science
May 29, 2025

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

Кластеры в файловых системах

Кластер (Cluster) — это минимальная единица хранения данных на жестком диске или SSD, состоящая из одного или нескольких секторов.

1. Почему используются кластеры?

Жёсткие диски и SSD работают с секторами — стандартный размер сектора на большинстве современных устройств составляет 512 байт или 4096 байт (4К Advanced Format). Однако операционные системы не работают с секторами напрямую, а группируют их в кластеры для более эффективного управления файлами.

Пример:

  • Если файловая система использует кластеры размером 4 КБ (8 секторов по 512 байт), то даже файл размером 1 байт займёт целый кластер (4 КБ).

2. Размер кластера

Размер кластера задаётся при форматировании и зависит от файловой системы:

  • FAT32: 512 байт – 64 КБ
  • NTFS: 512 байт – 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. Чем том отличается от раздела и физического диска?

Физический диск

  • Железо. HDD, SSD, NVMe, флешка.
  • /dev/sda (Linux), Disk 0 (Windows)

Раздел (partition)

  • Непрерывная область на физическом диске, описанная в таблице разделов (MBR или GPT).
  • /dev/sda1, Disk 0 Partition 1

Том (volume)

  • Логический контейнер с файловой системой, который ОС монтирует для доступа. Может занимать: один раздел, несколько разделов (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. Зачем вообще нужно понятие "том"?

  1. Абстракция — пользователю не нужно знать, на каком физическом диске лежат его файлы. Том скрывает сложности.
  2. Гибкость — тома можно изменять (расширять, сжимать) без переноса данных, если используется LVM или ZFS.
  3. Изоляция — разные тома можно форматировать в разные файловые системы, монтировать с разными параметрами, независимо бэкапить.
  4. Производительность и надежность — тома можно распределять по разным физическим дискам для балансировки нагрузки или избыточности (RAID).