Рассказы о ZFS. О массивах и логических томах

Задача объединения нескольких физических носителей в единое логическое устройство может быть решена аппаратно — за счет «железных» RAID-контроллеров, но это не всегда доступно финансово. Потому для решения её были разработаны и программные механизмы управления разделами — так называемые softRAID.

При этом несколько разделов могут просто слиться воедино (Linear RAID), при записи на них может осуществляться расщепление данных (sripping), что приводит к ускорению дисковых операций (RAID Level 0), на объединенных разделах можно создать различные формы избыточности, обеспечивающей восстановимость данных при отказах дисков. Из таких избыточных массивов чаще всего используется полное дублирование (RAID Level 1, он же mirror) или избыточность за счет контрольной суммы (RAID Level 5). Наконец, возможно и совмещение стриппинга с дублирование — RAID Level 1+0, он же RAID Level 10.

Механизмов создания программных RAID-массивов в UNIX-подобных системах много, и останавливаться на них я не буду — при желании материалы о них можно в Сети, в том числе и на соплеменных Блогосайте и FOSSBook’е: поиск по сайту по ключевому слову RAID пока еще не отменен. Замечу только, что в Linux’е в последнее время чаще всего используется инструментарий mdadm.

Однако ни один из видов softRAID не решает второй проблемы файловых систем — необходимости расчета потребного для них дискового пространства и, тем более, его перераспределния при необходимости. Этим целям служат другие механизмы — менеджеры логических томов, из которых наиболее известен собственно Logical Volumes Manager, широко используемый в Linux.

Технология LVM предполагает многоуровневую организацию дискового пространства. С одной стороны (как бы «сверху») это группы логических томов, в которые объединяются тома физические, то есть обычные дисковые разделы. С «нижней» же стороны это логические блоки — logical extents, своего рода логические кванты файловой системы, объединяющие блоки физические (physical extents).

Логический том предстает перед операционной системой как обычное блочное устройство, которое может быть разбито на как бы обычные разделы, логические тома — каждый под свою файловую систему. Казалось бы, чего особенного — ведь объем под каталоги типа /var, /usr или /home все равно придется высчитывать? Да, но механизм LVM предполагает возможность при необходимости, буде таковая возникнет, перераспределения дискового пространства между ними. И делается это именно посредством добавления или отнятия тех самых квантов-extent’ов. На лету, не только без переразметки дисков, но и без перезапуска системы.

Технология LVM обеспечивает и ряд дополнительных возможностей. В частности, она, как и RAID Level 0, допускает стриппинг данных между физическими томами, обеспечивающий рост быстродействия файловых операций. С основными особенностями LVM можно ознакомиться здесь.

Вроде бы, чего еще желать? Оба поставленных условия — слияние дискового пространства, в том числе и вновь подключаемых накопителей, и возможность его перераспределения между существующими файловыми системами, — выполнены.

Да, но тут возникает два осложняющих обстоятельства. Первое — достаточная сложность процедуры установки. Правда, в большинстве современных дистрибутивов Linux’а задействовать LVM (как, к слову говоря, и RAID) можно вполне прозрачно на стадии инсталляции. Но без понимания сути дела дальнейшее управление логическими томами я не очень представляю.

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


Назад | Рассказы о ZFS | Вперёд