Основы LVM - что такое PV, VG, LV
Если вы как и я только начинаете знакомиться с LVM (Logical Volume Manager) и интенсивно изучаете информацию по этому вопросу, то в первую очередь, нужно четко понимать значение таких сокращений как PV, VG, LV, PE и LE. Именно на последних и хочу остановиться с пояснениями и примерами, так как они применяются во всех документах и статьях. Думаю, расширять свои познания в LVM без понимания, что означают эти аббревиатуры будет затруднительно. Эти же сокращения используются и в выводе команд для работы с LVM и в названиях самих команд, поэтому безусловно нужно понимать, что есть что.
Примеры выполнялись в виртуальной операционной системе Ubuntu Server, которая содержит три виртуальных диска. Но будем считать, что система реальная и диски настоящие - физические, чтобы не возникало путаницы в понятиях.
Начнем с PV. PV (Physical Vollume) для системы LVM - это реальный физический диск или раздел диска, который инициализирован командой pvcreate. Пример. У нас есть три физических диска /dev/sda, /dev/sdb и /dev/sdc:
1 2 | $ ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb /dev/sdc |
Диск /dev/sda разбит на разделы: /dev/sda1 - основной раздел, /dev/sda2 - расширенный раздел, /dev/sda5 - логический раздел, который занимает все пространство расширенного раздела. Диски /dev/sdb и /dev/sdc на разделы не разбиты. Если выполнить команду pvscan, то можно увидеть какие из этих дисков или разделов дисков являются PV для LVM:
1 2 3 4 | $ sudo pvscan PV /dev/sda5 VG ubuntuserver lvm2 [7,76 GiB / 32,00 MiB free] PV /dev/sdb VG ubuntuserver lvm2 [2,00 GiB / 1,70 GiB free] Total: 2 [9,75 GiB] / in use: 2 [9,75 GiB] / in no VG: 0 [0 ] |
Видно, что в данный момент есть два PV для LVM - это раздел диска /dev/sda5 и весь диск /dev/sdb. На рисунке 1 они отмечены желтым цветом:
Рисунок 1
PV - это основа для создания VG - Volume Group. Volume Group - это логическая единица которая образуется в результате объединения PV.
Если провести аналогию с обычным жестким диском в операционной системой Linux, то VG для системы LVM - это как неразмеченный жесткий диск для системы Linux.
VG - может состоять из одного, двух и более PV. На рисунке 1 показана VG с именем ubuntuserver (отмечена зеленым цветом), которая состоит из двух PV. Дисковый объем VG равен сумме объемов PV из которых она состоит. В нашем случае он должен равняться 9.75 Гб. Проверим командой vgs:
1 2 3 | $ sudo vgs VG #PV #LV #SN Attr VSize VFree ubuntuserver 2 2 0 wz--n- 9,75g 1,73g |
Если нам мало 9.75 Гб, то можно создать из диска /dev/sdc еще один PV, и добавить его в существующий VG. Тогда объем VG увеличится на объем добавленного PV.
Итак, если VG для системы LVM - это как неразмеченный жесткий диск, то для того чтобы начать работу с ним нужно его разметить - создать разделы. И вот эти разделы и будут называться LV - Logical Volume. На рисунке 1 можно увидеть, что часть пространства VG, отдана под LV с именем root, часть под LV с именем swap_1 и некоторое пространство осталось свободным. Команда lvs покажет информацию о размерах LV:
1 2 3 4 | $ sudo lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root ubuntuserver -wi-ao 7,64g swap_1 ubuntuserver -wi-ao 388,00m |
Если снова провести аналогию, то LV в LVM - это как /dev/sda1 на реальном жестком диске. То есть LV - это уже логическая единица которую можно форматировать под определенную файловую систему и затем монтировать обычной командой mount.
Надеюсь пока все понятно. Осталось PE и LE. Данные сокращения встречаются в документации не так часто, но без них картина будет неполной. PE - Physical Extention - это блок в пространстве PV фиксированного размера. По умолчанию PE равен 4 Мб, но можно задавать и другие размеры. Таким образом PV состоит из определенного количества PE. Если провести аналогию, то PE в LVM - это как сектор на жестком диске. Только сектор всегда равен 512 байт и изменить его невозможно.
Команда pvdisplay, покажет информацию о PV и PE:
1 2 3 4 5 6 7 8 9 10 11 | $ sudo pvdisplay /dev/sdb --- Physical volume --- PV Name /dev/sdb VG Name ubuntuserver PV Size 2,00 GiB / not usable 4,00 MiB Allocatable yes PE Size 4,00 MiB Total PE 511 Free PE 436 Allocated PE 75 PV UUID Rfd126-hs8B-eW42-UoLK-iCxa-CStR-E6dSZi |
Можно увидеть, что PV состоит из блоков оп 4 Мбайта (PE Size), всего блоков PE - 511 (Total PE), что дает нам размер в 2 Гб. Также можно увидеть, что 436 блоков PE (Free P), не задействованы - то есть они не состоят ни в одном VG. А 75 блоков PE (Allocated PE) задействованы в VG. Таким образом увеличивать (или уменьшать) в случае необходимости размер VG можно только порциями кратными размеру PE - в нашем случае 4 Мбайта.
Если PE это Physical Extention, то как можно уже догадаться LE - это Logical Extension. То есть LE - это блоки из которых состоит LV. Размер PE всегда равен LE. То есть если PE равен 4 Мбайта, то и LE равен 4 Мбайта. Существует возможность указать соответствие PE и LE. Например, так как показано на рисунке 2:
Рисунок 2
Если посмотреть на наш сервер и выполнить команду lvdisplay -m, то можно увидеть соответствие PE и LE в LV. Некоторые строки вывода команды сократил:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ sudo lvdisplay -m --- Logical volume --- LV Name /dev/ubuntuserver/root VG Name ubuntuserver LV Size 7,64 GiB Current LE 1956 Segments 2 Allocation inherit --- Segments --- Logical extent 0 to 1880: Type linear Physical volume /dev/sda5 Physical extents 0 to 1880 Logical extent 1881 to 1955: Type linear Physical volume /dev/sdb Physical extents 0 to 74 |
Видим, что LV состоит из PE двух PV. LV root состоит из 1956 LE (Current LE). 1881 LE - это PE c PV /dev/sda5 и 75 LE - это PE c PV /dev/sdb.
На этом пока все по LVM. Можно двигаться в изучении дальше. Если где ошибся в определениях - сообщите об этом в комментариях. И в завершении хочу оставить, несколько ссылок которые по моему мнению хорошо описывают LVM и на которые стоит обратить внимание при обучении:
Logical Volume Manager - на английском языке
LVM HOWTO - на английском языке
Повесть о Linux и LVM (Logical Volume Manager) - на русском языке на основе HOW-TO.
Оставьте свой отзыв