Статья LVM спасет винчестеры. Простое управление разделами

347

Все чаще слышу от знакомых , что они стали использовать LVM на своих машинах. Сам тоже давно об этом подумываю. Во всяком случае, на рабочем компе это было бы полезно если бы не одно «НО» — не желает мой комп запускаться с теми двумя винтами которые я там имею. Уже когда-то  и с джамперами наигрался, и систему  переставлял, и народные средства лечения применял, и танцы с бубном устраивал — не помогло. Поэтому система стоит на более новом и просторном винчестере, а второй просто болтается отключенным. Но знать и понимать что такое LVM все же стоит. В блоге «Верхом на Debian GNU Linux» прочитал приведенную ниже статью. Очень понравилась, поэтому складываю в копилку. Спасибо автору, Артему. Если у вас есть советы или замечания милости прошу в комменты.

Logical Volume Manager — это очень полезная штука, позволяющая легко и гибко манипулировать дисками и разделами. Только название у нее страшное, а мануалы еще страшнее. Я постараюсь на пальцах, не прибегая к источникам, объяснить как это работает, затрагивая лишь аспекты домашнего использования. Примитивно, но достаточно для начала.
Разберемя, что такое LVM и что он нам дает. У Вас есть второй (третий, пятый) винт? Они маленькие, но их несколько. Так часто решается проблема нехватки свободного места. Но вот что неудобно — куча разделов. Хотелось бы иметь один большой раздел, а не много маленьких, и не заморачиваться вопросами «на каком разделе у меня осталось место» или «на какой диск я кинул тот файл». Словом, избавиться от беспорядка. И тут приходит на помощь LVM. Он позволяет Вам магическим образом соединить все накопители в один, и больше не задумываться о том, как эффективно распределить разделы между дисками. А может у Вас всего один винт, но Вы собираетесь приобрести второй? Тогда LVM поможет Вам увеличить уже имеющиеся разделы за счет нового накопителя. Или же все-таки у Вас один винчестер и второй заводить Вы не собираетесь? Ну, я надеюсь, раздел-то у Вас не один? Как минимум один для системы и второй для личных файлов? И, скажем, места для системы стало нехватать? Тогда LVM снова придет к Вам на помощь. Вам не придется часами двигать разделы по всему винту. Достаточно освободить место в любой его части за счет уменьшения одного из разделов, и это свободное место тут же может быть приклеено к любому другому разделу, где бы он не находился.

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

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

Теперь поговорим о внутренностях. Название системы переводится как «менеджер логических томов». Логические разделы (Logical Volume, они же тома) — это то, что мы получаем в итоге при использовании LVM. На них мы живем, их мы форматируем в нужные нам файловые системы, на них мы и храним свои файлы. В папке /dev они также, как и обычные физические разделы, доступны в виде файлов. Вот мои логические разделы:

$ sudo ls /dev/vg0/
lv_home lv_root

У меня их всего два, больше мне не надо. Вот только проблема состояла в том, что в приобретенном мною eee pc всего два маленьких флешовых накопителя: примерно 4 и 14 гектаров. Для системы мне 4 мало, а 14 много. В общем — ни туда, ни сюда. Так я и стал разбираться с LVM.

Все пространство, выделенное под логические тома, называется группой томов (Volume Group). Я бы назвал это логическим диском. Как физический диск состоит из томов, так и группа томов состоит из логических томов. Отличие в том, что тут работают другие «законы физики». Логические тома вовсе не обязаны физически быть расположенными друг за другом и непрерывно. Они состоят из кусочков, которые распределяются по всей группе в соответствии с указанной политикой распределения. А группа томов может увеличиваться или уменьшатсья в размере за счет присоединения или отсоединения устройств. Любой раздел можно увеличить за счет имеющегося свободного пространства. И если понадобилось дополнительное место для какого-то раздела, его можно освободить за счет уменьшения любого другого логического тома. При этом вовсе не нужно двигать разделы, чтобы переместить свободное место под нужным том. Расширяемый том заполнит свободное пространство, где бы оно не находилось. В итоге, кусочки логического раздела могут быть физически разбросаны по носителям. Но нам до этого никакого дела. В том и прелесть. Все, о чем мы задумываемся — размер разделов. Где и как они физически расположены — это не важно.

У меня всего одна группа разделов. Я назвал ее vg0. Но их может быть и несколько. Однако, я не могу себе представить, зачем мне лично это может быть нужно в домашних условиях. Если Вам вдруг покажется, что в вашем случае их нужно несколько, то имейте в виду: группа томов не так гибка как логические разделы. Если планируете изменять размер одного раздела за счет другого, держите их в одной группе. Иначе теряется вся простота использования, и далее Вы увидите почему.

Киты (или слоны, если хотите), на которых стоит группа разделов — это физические разделы. Их не нужно форматировать в какую-то файловую систему. LVM использует данные ему разделы целиком и полностью, паспределяя по ним кусочки логических томов. Отсюда название «группа разделов» приобретает некий двойственный смысл. С одной стороны это группа логических разделов, с другой — физических. Важно понимать, что как только Вы присоединяете физический раздел к группе, теряется возможность изменять его размер. Это как пилить ветку, на которой сидишь. И если Вы захотите в будущем отсоединить физический раздел от группы, чтобы изменить его размер или вообще целиком отдать другой системе, нужно будет перенести все данные с него на другие разделы. Конечно, Вам не придется вручную переставлять байты и блоки, LVM может сделать это для Вас. Но отмонтировать все файловые системы таки придется. Еще более важно осознавать, что если у Вас всего один винт с одним разделом, и Вы устанавливаете на него LVM, то освободить место под другую систему (под Windows например) будет затруднительно. Так что, если подозреваете такую возможность, то побейте винт сразу на несколько физических разделов, прежде чем скармливать его менеджеру логических томов.

И если с китами и слонами есть некоторые нюансы, то с черепахой, на которых они стоят, все просто. Физический накопитель просто является носителем физических разделов, используемых LVM. Он также может иметь и другие разделы, отформатированные под определенные файловые системы. Это не будет иметь никакого отношения к LVM. Нет разницы на каком диске находится физический раздел. Может быть только разница в скорости чтения/записи. Если это важно, то в момент создания логических томов можно заставить их использовать определенные физические тома по вашему усмотрению.

Получаем вот такую иерархию понятий снизу вверх: накопитель, физический том, группа томов, логический том. Все просто, но легко запутаться. Особенно, если групп несколько. Если она одна, то на нее, как на понятие, можно вообще по большому счету не обращать внимание. Тогда получаем упрощенную модель: логические тома располагаются на физических. Каждый логический том может лежать одновременно на нескольких физических томах. Причем он не обязан заполнять их полностью. Более того, по умолчанию LVM будет распределять каждый логический раздел по разным физическими носителями (наверное, для распределения нагрузок).

Я думаю, это все, что нужно понимать для начала. Довольно теории. Перейдем к практике. Так сказать, how to use.

Возьмите ваш винчестер и разбейте его. Не о пол конечно, а на разделы. И используйте его с LVM. Это все. Пакет называется lvm2, список команд найдете в официальном мануале или в гугле. При установке убуты, если воспользоваться консольным установщиком, можно сразу разметить диск под LVM. Только boot поместите в обычный раздел (метров 100-200 хватит), чтобы grub не растерялся, пытаясь загрузить вашу систему. Для управления всем этим делом можно воспользоваться хорошей графической утилитой: kvpm. Там все просто. И не забудьте о резервных копиях. Теперь точно все.

Автор: Artem