Шпаргалка по управлению разделами LVM

Гугль располагает сотнями отличных статей, содержащих теорию о Linux LVM (Linux Volume Manager) — встроенной системе управления логическими дисками. В этой статье собран «карманный» набор команд для решения типовых задач.

На приведенной схеме наглядно изображена структура LVM

 

Посмотреть информацию о существующих физических разделах (PV), группах разделов (VG) и логических разделов (LV)  можно с помощью команд

$ pvscan

$ vgscan

$ lvscan

 

Находим физический диск (в моем случае это будет sdc — свежедобавленный диск без разделов)

$ ls -1 /dev | grep sd

sda

sda1

sda2

sdb

sdb1

sdc

 

Посмотреть информацию о разделе можно с помощью команды

$ fdisk -l /dev/sdc

 

Создаем раздел

$ pvcreate /dev/sdc

Physical volume "/dev/sdc" successfully created.

$ dd if=/dev/zero of=/dev/sdc bs=1k count=1

  1+0 записей получено

  1+0 записей отправлено

скопировано 1024 байта (1,0 kB), 0,00115763 c, 885 kB/c

$ blockdev --rereadpt /dev/sdc

$ fdisk /dev/sdc

 

В fdisk`е жмем n для создания нового раздела, затем p, чтобы сделать его primary. Номер раздела — 1, первый и последний сектор оставляем по умолчанию (если хотим использовать все пространство диска). Для выхода с записью изменений нажимаем w. Создастся раздел sdc1, который займет все свободное пространство sdc. Проверить можно с помощью команды:

$ ls -1 /dev | grep sdc

sdc

sdc1

 

Создаем группу томов (если добавляем несколько разделов — пишем их через пробел)

$ vgcreate vg1 /dev/sdc1

 

или добавляем к существующей группе томов

$ vgextend vg0 /dev/sdc1

 

и проверяем

$ vgscan

Reading volume groups from cache.

Found volume group "vg1" using metadata type lvm2

 

Добавим новый раздел swap

$ lvcreate -L500M -n new_swap vg1

Logical volume "new_swap" created.

$ mkswap /dev/vg1/new_swap 

Setting up swapspace version 1, size = 511996 KiB

без метки, UUID=b64aae09-ec70-4b5a-b4e2-ba0fe39ec1df

$ swapon /dev/vg1/new_swap

 

Теперь проверим, подцепился ли новый swap раздел

$ swapon -s

 

И добавим его в /etc/fstab

/dev/vg1/new_swap   swap   swap   defaults   0 0

 

Создадим новый раздел и смонтируем его в папку /share

$ cd /

$ mkdir /share

$ lvcreate -L1G -n lv_share vg1

  Logical volume "lv_share" created.

$ mke2fs /dev/vg1/lv_share

...

Allocating group tables: done                            

Writing inode tables: done                            

Writing superblocks and filesystem accounting information: done

$ mount /dev/vg1/lv_share /share

 

Проверим, что новый раздел смонтировался

$ df -h | grep lv_share

/dev/mapper/vg1-lv_share  1008M         1,3M  956M            1% /share

 

Теперь выясним UUID раздела и добавим его в fstab

$ blkid | grep lv_share

/dev/mapper/vg1-lv_share: UUID="4295775f-672f-4fd4-a1ff-ef3103d82fa8" TYPE="ext2" 

$ vi /etc/fstab

 

...

UUID=4295775f-672f-4fd4-a1ff-ef3103d82fa8   /share   ext2   defaults   0 0

 

Изменить размер логического диска можно с помощью команд (предварительно отмонтировать). После внесения изменений необходимо использовать команду resize2fs!

$ lvextend -L+500M /dev/vg1/lv_share

Size of logical volume vg1/lv_share changed from 1,00 GiB (256 extents) to 1,49 GiB (381 extents).

Logical volume vg1/lv_share successfully resized.

 

$ lvreduce -L700M /dev/vg1/lv_share 

  WARNING: Reducing active and open logical volume to 700,00 MiB.

  THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg1/lv_share? [y/n]: y

  Size of logical volume vg1/lv_share changed from 1,49 GiB (381 extents) to 700,00 MiB (175 extents).

  Logical volume vg1/lv_share successfully resized.

 

$ lvresize -r -L2G /dev/vg1/lv_share 

...

Resizing the filesystem on /dev/mapper/vg1-lv_share to 524288 (4k) blocks.

The filesystem on /dev/mapper/vg1-lv_share is now 524288 blocks long.

 

Удаление логических томов (предварительно удалить их из fstab)

$ lvremove /dev/vg1/new_swap 

Do you really want to remove active logical volume vg1/new_swap? [y/n]: y

Logical volume "new_swap" successfully removed

 

Сменить тип раздела на Linux LVM можно с помощью fdisk

$ fdisk /dev/sdc

Command: t

Selected partition: 1

Hex code (type L to list codes): 8e

Command: w

The partition table has been altered!