LVM для дома

Пригодится тем, у кого куча винчестеров и надоело вспоминать на каком именно находится нужный файл (:

В моем распоряжении было 4 винчестера: 320Гб, 400 и 2 по 500.

Винчестер на 320 является системным, таблица разделов:

/dev/sda1 * 1 510 4096543+ 83 Linux
/dev/sda2 511 765 2048287+ 83 Linux
/dev/sda3 766 896 1052257+ 82 Linux swap / Solaris
/dev/sda4 897 38913 305371552+ 83 Linux

Первые 2 раздела — root и var, на четвертом был home.

Винчестеры на 400 и 500Гб содержат одну партицию на весь диск — sdc1, sdb1, sdd1.

Устанавливаем необходимые пакеты:

root@srv:~# apt-get install lmv2

Загружаем модуль dm-mod и добавляем его в /etc/mod:

root@srv:~# modprobe dm-mod
root@srv:~# echo dm-mod >> /etc/modules

Создаем физические разделы:

root@srv:~# pvcreate /dev/sda4 /dev/sdb1 /dev/sdc1 /dev/sdd1
Physical volume "/dev/sda4" successfully created
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdc1" successfully created
Physical volume "/dev/sdd1" successfully created

Создаем группу томов:

root@srv:~# vgcreate vg0 /dev/sda4 /dev/sdb1 /dev/sdc1 /dev/sdd1
File descriptor 4 left open
File descriptor 5 left open
File descriptor 7 left open
File descriptor 8 left open
Volume group "vg0" successfully created


Смотрим, что получилось:

root@srv:~# vgdisplay vg0
--- Volume group ---
VG Name vg0
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 4
Act PV 4
VG Size 1,56 TB
PE Size 4,00 MB
Total PE 408408
Alloc PE / Size 408408 / 1,56 TB
Free PE / Size 0 / 0
VG UUID lN8or1-l6X3-l0YF-7RXY-7PR1-XGIG-JRXO6C

Создаем логический диск:

root@srv:~# lvcreate -l 408408 -n lv0 vg0
Rounding up size to full physical extent 1,56 TB
Logical volume "lv0" created

В параметре -l указываем количество экстентов, отведенных разделу. Экстент по-умолчанию равен 4Мб, общее их количество смотрим в выводе vgdisplay, значение Total PE. Так как мне нужен только один большой раздел, я использовал все доступные экстенты.

Параметр -n определяет имя логического диска.

Смотрим, что получилось:

root@srv:~# lvdisplay
--- Logical volume ---
LV Name /dev/vg0/lv0
VG Name vg0
LV UUID foKQW5-USUq-Ls8n-e1pH-xGrd-K6ch-j0x9hN
LV Write Access read/write
LV Status available
# open 2
LV Size 1,56 TB
Current LE 408408
Segments 4
Allocation inherit
Read ahead sectors 0
Block device 254:0

Создаем файловую систему, я использую reiserfs:

root@srv:~# mkreiserfs /dev/vg0/lv0

Осталось только добавить точку монтирования в fstab и пересобрать initrd, чтобы LVM определял тома и активировал группы при загрузке.

root@srv:~# update-initramfs -u

Чтобы добавить новый диск в группу домов, достаточно выполнить команды:

root@srv:~# pvcreate /dev/sdX
root@srv:~# vgextend vg0 /dev/sdX

Увеличить размер логического тома:

lvextend -l новый_размер /dev/vg0/lv0

Изменить размер файловой системы reiser:

resize_reiserfs -v /dev/vg0/lv0

А еще есть замечательная статья Ивана Песина, в которой еще более подробно описано конфигурирование LVM. Источник

Дополнение: Управление логическими томами

free-templates.ru