Инструменты пользователя

Инструменты сайта


linux:logical_volume_management

Это старая версия документа!


Logical Volume Management или Управление Логическими Томами

LVM — это дополнительный слой абстракции от железа, позволяющий собрать кучи разнородных дисков в один, и затем снова разбить этот один именно так как нам хочется. © habr LVM — это просто!

Практически можно взять 3 HDD объемом 120GB+120gb+260GB и сделать из него единый диск в 500 gb. Обратите внимание на то, что при выходе из строя одного из дисков вы теряете информацию на логическом томе.

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

lvm> pvcreate /dev/sdd
WARNING: dos signature detected on /dev/sdd at offset 510. Wipe it? [y/n]: 

Самое главное - он не читается grub'ом, поэтому раздел /boot должен находиться вне LVM на отдельном разделе жёсткого диска.

Eсть 3 уровня абстракции:

  1. PV (Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
  2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
  3. LV (Logical Volume) — логические разделы, собственно разделы нашего нового «единого диска» (группы Томов VG) которые используются как обычные разделы.

установка:

apt-get install lvm2

Для примеров берем виртуальную машину Virtual Box с Debian и тремя дисками 3 GB + 5 GB + 2 GB.

Первый уровень - физические тома (Physical Volume)

Для начала использования дисков их необходимо инициализировать. Смотрим наличие дисков и видим sdb, sdc и sdd.

root@debian:~# fdisk -l
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcad30e25

Device     Boot Start      End  Sectors Size Id Type
/dev/sda1  *     2048 16775167 16773120   8G 83 Linux

Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdc: 5 GiB, 5368709120 bytes, 10485760 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sdd: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Инициализируем диски PV (Physical Volume):

root@debian:~# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created.
root@debian:~# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created.
root@debian:~# pvcreate /dev/sdв
  Physical volume "/dev/sdd" successfully created

Что бы убедиться в том, что разделы готовы, используем команду pvs или вывод более подробно pvdisplay:

root@debian:~# pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdb      lvm2 ---  3.00g 3.00g
  /dev/sdc      lvm2 ---  5.00g 5.00g
  /dev/sdd      lvm2 ---  2.00g 2.00g

Второй уровень - группы томов VG (Volume Group)

Группы томов (VG) обедняют в себя физические тома (PV). Группа томов создается командой vgcreate. Используйте «говорящее» название, так как диски можно переносить между компьютерами. Создадим из трех физических томов /dev/sdb, /dev/sdc и /dev/sdd группу томов test_deb_vg

root@debian:~# vgcreate test_deb_vg /dev/sdb /dev/sdc /dev/sdd
  Volume group "test_deb_vg" successfully created

Результат выводим командой vgdisplay

root@debian:~# vgdisplay
  --- Volume group ---
  VG Name               test_deb_vg
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               9.99 GiB
  PE Size               4.00 MiB
  Total PE              2557
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2557 / 9.99 GiB
  VG UUID               Ovz4ec-pekU-xhCK-kRRI-bUVa-N2mL-g3Uc8L

Третий уровень - логические тома LV (Logical Volume)

Далее командой lvcreate создаем разделы в группе томов (Volume Group). Соответственно можно разбить логический том test_deb_vg на разные разделы под разные каталоги или же отдать всю группу томов под один раздел.

Создадим раздел с именем STORAGE и отдадим ему все свободное место в группе томов test_deb_vg

root@debian:~# lvcreate -n STORAGE -l 100%FREE test_deb_vg
  Logical volume "STORAGE" created.

Посмотрим, что получилось командой lvdisplay. Из этих данных нам нужно путь к логическому тому.

root@debian:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/test_deb_vg/STORAGE
  LV Name                STORAGE
  VG Name                test_deb_vg
  LV UUID                93RHfn-NrXm-SUOi-S6sr-jLhE-wbya-W1qxZT
  LV Write Access        read/write
  LV Creation host, time debian, 2019-07-19 15:37:30 -0500
  LV Status              available
  # open                 0
  LV Size                9.99 GiB
  Current LE             2557
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

Форматируем логический том в необходимую файловую систему, например ext4

root@debian:~# mkfs.ext4 /dev/test_deb_vg/STORAGE
mke2fs 1.43.4 (31-Jan-2017)
Creating filesystem with 2618368 4k blocks and 655360 inodes
Filesystem UUID: 78357114-5e45-4f0c-bc36-0cfbb79b8e57
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 

Узнаем UUID диска, при необходимости освобождаем зарезервированных 5% под нужны root и монтируем раздел.

root@debian:~# blkid
/dev/sda1: UUID="6f2b598a-103a-4c8a-b9cd-fc7258ccb433" TYPE="jfs" PARTUUID="cad30e25-01"
/dev/sdb: UUID="Ahx68W-kaOO-oW0w-ZIc5-GpWa-7InQ-u7f9ul" TYPE="LVM2_member"
/dev/sdc: UUID="rVEtKm-7X5J-ZA8n-5JBQ-VLEX-Ld9g-HCnuDR" TYPE="LVM2_member"
/dev/sdd: UUID="C4blLG-JBd5-fddB-u2Dp-xeaM-lBch-ExDT5x" TYPE="LVM2_member"
/dev/mapper/test_deb_vg-STORAGE: UUID="78357114-5e45-4f0c-bc36-0cfbb79b8e57" TYPE="ext4"

источники:

linux/logical_volume_management.1563570826.txt.gz · Последние изменения: 2019/07/20 00:13 — adminroot