Введение
Метод распределения пространства для хранения данных в компьютере
В компьютерном хранилище логическое управление томами или LVM предоставляет метод распределения пространства на устройствах массового хранения, который более гибок, чем традиционные схемы разбиения на разделы для хранения томов. В частности, менеджер томов может объединять, чередовать или иным образом комбинировать разделы (или блочные устройства в целом) в более крупные виртуальные тома, размер которых администраторы могут изменять или перемещать, потенциально без прерывания работы системы. Управление томами является лишь одной из многих форм виртуализации хранилищ; его реализация происходит на уровне стека драйверов устройств операционной системы (в отличие от реализации внутри самих устройств хранения или в сети).
Дизайн
Большинство реализаций менеджеров томов имеют схожую базовую структуру. Они начинаются с физических томов (PV), которые могут быть жесткими дисками, разделами жестких дисков или логическими номерами устройств (LUN) внешнего устройства хранения. Управление томами рассматривает каждый PV как состоящий из последовательности фрагментов, называемых физическими экстентами (PE). Некоторые менеджеры томов (например, в HP-UX и Linux) используют PE фиксированного размера, другие (например, в Veritas) – PE переменного размера, которые можно разделять и объединять по мере необходимости. Обычно PE сопоставляются один к одному с логическими экстентами (LE). При использовании зеркалирования несколько PE сопоставляются с каждым LE. Эти PE извлекаются из физической группы томов (PVG) – набора PV одинакового размера, которые функционируют аналогично дискам в RAID1-массиве. PVG обычно располагаются на разных дисках или шинах данных для обеспечения максимальной избыточности. Система объединяет LE в группу томов (VG). Объединенные LE затем могут быть объединены в виртуальные дисковые разделы, называемые логическими томами или LV. Системы могут использовать LV как устройства блочного доступа, как и дисковые разделы: создавая на них монтируемые файловые системы или используя их в качестве области подкачки. Полосатые LV выделяют каждый последовательный LE с разных PV; в зависимости от размера LE это может повысить производительность при больших последовательных чтениях за счет использования совокупной пропускной способности нескольких PV. Администраторы могут увеличивать размер LV (путем добавления новых LE) или уменьшать его (путем возврата LE в пул). Объединенные LE не обязательно должны быть смежными. Это позволяет LV расти без необходимости перемещения уже выделенных LE. Некоторые менеджеры томов позволяют изменять размер LV в любом направлении в режиме онлайн. Изменение размера LV не обязательно изменяет размер файловой системы на нем; оно лишь изменяет размер доступного пространства. Рекомендуется использовать файловую систему, которую можно изменять в размере в режиме онлайн, поскольку это позволяет системе динамически настраивать хранилище без прерывания работы приложений. PV и LV нельзя совместно использовать или распределять между разными VG (хотя некоторые менеджеры томов могут разрешать перемещать их между VG на одном хосте). Это позволяет администраторам удобно подключать VG, отключать их или перемещать между хост-системами как единую административную единицу. VG могут увеличивать свой пул хранения, добавляя новые PV, или уменьшать его, удаляя PV. Это может потребовать перемещения уже выделенных LE из PV. Большинство менеджеров томов могут выполнять это перемещение в режиме онлайн; если базовое оборудование поддерживает горячую замену, это позволяет инженерам обновлять или заменять хранилище без простоя системы.
Объем гибридов
Гибридный том – это любой том, который намеренно и непрозрачно использует два отдельных физических тома. Например, рабочая нагрузка может состоять из произвольного доступа, поэтому SSD может использоваться для постоянного хранения часто используемых или недавно записанных данных, а диски с вращающимися магнитными пластинами большей емкости – для долгосрочного хранения редко используемых данных. В Linux для этой цели можно использовать bcache или dm-cache, а в OS X – Fusion Drive. ZFS также реализует эту функциональность на уровне файловой системы, позволяя администраторам настраивать многоуровневое кэширование чтения и записи. Гибридные тома представляют собой схожую концепцию с гибридными накопителями, которые также сочетают в себе твердотельные накопители и вращающиеся магнитные носители.
Снимок
Некоторые менеджеры томов также реализуют снимки (snapshots) с использованием механизма копирования при записи (copy-on-write) для каждого LE. В этой схеме менеджер тома копирует LE в таблицу копирования при записи непосредственно перед выполнением записи. Это сохраняет старую версию LV, являющуюся снимком, которую впоследствии можно восстановить, наложив таблицу копирования при записи на текущую LV. Если система управления томами не поддерживает как тонкое выделение ресурсов, так и команду discard, то после записи в LE исходного тома, он будет постоянно храниться в томе снимка. Если том снимка был создан меньшего размера, чем исходный том (что является распространенной практикой), это может сделать снимок неработоспособным. Снимки могут быть полезны для создания резервных копий согласованных версий изменчивых данных, таких как файлы таблиц из загруженной базы данных, или для отката крупных изменений (например, обновления операционной системы) в рамках одной операции. Снимки оказывают аналогичное воздействие, как приведение хранилища в состояние покоя, и аналогичны службе теневого копирования (VSS) в Microsoft Windows. Некоторые Live CD на базе Linux также используют снимки для эмуляции доступа на запись к оптическому диску, предназначенному только для чтения.
Реализация
Vendor Introduced in Volume manager Allocate anywhere Snapshots RAID 0 RAID 1 RAID 5 RAID 10 Thin provisioning Notes IBM AIX 3.0 (1989) Logical Volume Manager Refers to PEs as PPs (physical partitions), and to LEs as LPs (logical partitions). Does not have a copy-on-write snapshot mechanism; creates snapshots by freezing one volume of a mirror pair. Hewlett Packard HP UX 9.0 HP Logical Volume Manager FreeBSD Foundation FreeBSD Vinum Volume Manager The FreeBSD fast file system (UFS) supports snapshots. FreeBSD Foundation FreeBSD ZFS A file system with integrated volume management. NetBSD Foundation, Inc. NetBSD Logical Volume Manager NetBSD from version 6.0 supports its own reimplementation of Linux LVM. The reimplementation is based on a BSD-licensed device mapper driver and uses a port of Linux lvm tools as the userspace part of LVM. There is no need to support RAID5 in LVM due to NetBSD’s superior RAIDFrame subsystem. NetBSD ZFS A file system with integrated volume management (2009) bioctl arcmsr bioctl on NetBSD can be used for both maintenance and initialization of hardware RAID, although initialization (through BIOCVOLOPS ioctl) is only supported by a single driver as of 2019 — arcmsr(4); software RAID is supported separately through RAIDframe and ZFS. The OpenBSD Project OpenBSD 4.2 (2007) bioctl softraid bioctl on OpenBSD can be used for maintenance of hardware RAID, as well as for both initialization and maintenance of software RAID. Sistina Linux 2.2 Logical Volume Manager version 1 IBM Linux 2.4 Enterprise Volume Management System Sistina Linux 2.6 and above Logical Volume Manager version 2 Oracle Linux 2.6 and above Btrfs (not stable) A file system with integrated volume management. Silicon Graphics IRIX or Linux XVM Volume Manager Sun Microsystems SunOS Solaris Volume Manager (formerly Solstice DiskSuite). Refers to PVs as volumes (which can be combined with RAID0, RAID1, or RAID5 primitives into larger volumes), to LVs as soft partitions (which are contiguous extents placeable anywhere on volumes, but which cannot span multiple volumes), and to VGs as disk sets. Solaris 10 ZFS A file system with integrated volume management. illumos ZFS A file system with integrated volume management. Veritas Cross OS Veritas Volume Manager (VxVM) Refers to LVs as volumes, to VGs as disk groups; has variably sized PEs called subdisks and LEs called plexes. Microsoft Windows 2000 and later NT-based operating systems Logical Disk Manager ✔ Does not have a concept of PEs or LEs; can only RAID0, RAID1, RAID5, or concatenate disk partitions into larger volumes; file systems must span whole volumes. Windows 8 Storage Spaces ✔ Higher-level logic than RAID1 and RAID5; multiple storage spaces span multiple disks of different sizes; storage spaces are resilient to physical failure with either mirroring (at least 2 disks) or striped parity (at least 3 disks); disk management and data recovery are fully automatic. Windows 10 Storage Spaces ✔ RAID 10 is called disk mirroring. Red Hat Linux 4.14 and above Stratis ✔ RAID support planned in version 2.0. Apple Mac OS X Lion Core Storage Currently, it is used in Lion’s implementation of FileVault, in order to allow for full disk encryption, as well as Fusion Drive, which is merely a multi-PV LVG. Snapshots are handled by Time Machine; software-based RAID is provided by AppleRAID. Both are separate from Core Storage.
Недостатки
Логические тома могут страдать от внешней фрагментации, когда базовые устройства хранения не выделяют свои ПЭ последовательно. Это может снизить производительность операций ввода-вывода на носителях с медленным временем доступа, таких как магнитные диски и другие вращающиеся носители. Однако менеджеры томов, использующие ПЭ фиксированного размера, обычно делают ПЭ относительно большими (например, Linux LVM использует 4 МБ по умолчанию), чтобы снизить влияние этих задержек. В реализациях, которые являются исключительно управлением томами, таких как Core Storage и Linux LVM, отделение и абстрагирование управления томами от файловой системы лишает возможности легко принимать решения о хранении для отдельных файлов или каталогов. Например, если определенный каталог (но не вся файловая система) должен быть постоянно перемещен на более быстрое хранилище, потребуется обратиться как к структуре файловой системы, так и к базовому уровню управления томами. Например, в Linux потребуется вручную определить смещение содержимого файла в файловой системе, а затем вручную переместить экстенты (вместе с данными, не относящимися к этому файлу) на более быстрое хранилище. Объединение управления томами и файлами в рамках одной подсистемы, а не реализация их как отдельных подсистем, теоретически упрощает этот процесс.