Подвыделение блоков

Материал из Xgu.ru

Перейти к: навигация, поиск


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

Подвыделением блоков (block suballocation) называют различные техники, направленные на сокращение расходов на хранение последнего блока данных файла, занимающего блок файловой системы не полностью. Похожий по смыслу термин — хвостовая упаковка (tail packing).

Как правило, это достигается одним из двух способов:

  1. Хранением последних частей нескольких файлов в одном блоке;
  2. Хранением последней части файла в дереве.

Подвыделение блоков было реализовано в Netware 4.X (вероятно, не впервые, но там уже оно было), и присутствует в современных файловых системах:

Xentaur
Дисковая подсистема
Linux | FreeBSD

Диски и разделы
Файлы устройств: Блочное устройство | Символьное устройство | Raw-устройство | loop-устройство
Диски: IDE | SATA (SATA hotplug) | SCSI | USB
RAID-массивы: Аппаратный RAID | Linux RAID | FreeBSD RAID
Дисковые разделы: Раздел | MBR | fdisk | parted | disklabel | GPT

Управление томами
Логический том | Физический том | Группа томов | Снимок | Клон
device-mapper | dm-ioband | dm-crypt | dm-userspace | multipath
Системы управления томами: LVM | CLVM | EVMS | Btrfs* | ZFS* | AdvFS* | Zumastor

Сетевые хранилища и репликация
Отказоустойчивость: DRBD | Xen + DRBD | ggate + gmirror | HAST
Сетевые хранилища: AoE | iSCSI | FCoE | GNBD

Файловые системы
Монтирование | Проверка целостности | Дефрагментация | Суперблок | inode | Журнал | Кэш | VFS | UUID | FUSE
Локальные: ext3 | ext3cow | ext4 | JFS | Reiser4 | XFS | ZFS | Btrfs | AdvFS | ISO | aufs
Сетевые: NFS | CIFS | AFS | POHMELFS
Кластерные: GFS | OCFS2 | CXFS | VMFS | GPFS
Распределенные: Lustre | PVFS | Ceph | Coda

* Btrfs, ZFS и AdvFS — это файловые системы с возможностями управления томами
На других языках