Нужно ли использовать lvm при установке linux

Партиции для работы с LVM

Прежде всего рассмотрим создание партиций на одном из подключенных дисков — шаг можно пропустить если работа будет производиться непосредственно с дисками, но партиции использовать также удобно. При помощи партиций можно выделить разделы на дисках, которые система будет видеть как отдельные устройства. Автоматически к имени диска будут добавлены порядковые номера /dev/sdb1, /dev/sdb2 и т.д.

Инициализируем диск, с которым будем работать при помощи fdisk

Просматриваем существующую структуру разделов

Disk /dev/vdc: 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
Disklabel type: dos
Disk identifier: 0x3aa19e91

На диске не выделено партиций, создаем новую

Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions

Выбираем тип партиции

Задаем номер раздела (выберется по умолчанию при нажатии ввода)

Оставляем настройки разметки диска (указание первого сектора в байтах) по умолчанию

Для последнего сектора выбираем необходимое значение, под партицию будет выделено 140 Мб, поэтому выбираем размар в байтах 824500

Задаем тип партиции

Все возможные типы партиций можно посмотреть введя L, для LVM нам потребуется тип 8e из списка. Данный код означает тип партиции Linux LVM.

Таким же образом создаем вторую партицию. Отличиями будут 824500 байт которые система предложит в качестве начального сектора для устройства, при выборе значения, определяющего конец партиции достаточно нажать Enter, под нее зарезервируется все оставшееся место на диске.

Вновь просматриваем таблицу

Disk /dev/vdb: 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
Disklabel type: dos
Disk identifier: 0x3aa19e91

Device Boot Start End Sectors Size Id Type
/dev/vdb1 2048 824500 3350 140M 8e Linux LVM
/dev/vdb2 824500 10485759 10482410 4.86G 8e Linux LVM

Теперь нужно записать изменения на диск

На этом с созданием партиций закончено, описанный порядок действий и вводимые команды можно повторять для всех подключенных устройств.

В обязательном порядке нужно указать тип файловой системы

Проверить все ли сделано корректно можно примонтировав диски в какую-либо точку файловой системы. Например, выполнив mount -t ext4 /dev/vda1 /mnt. Затем нужно отмонитровать используя umount поскольку монтирование происходит при выполнении pvcreate в дальнейшем.

Для приведенных на иллюстрации в начале статье дисках /dev/vda и /dev/vdc таким же образом создаются партиции, процесс полностью аналогичен — первый и последний биты сектора выбирать не нужно, партиция для устройств занимает весь объем диска.

Создание логических устройств и настройка LVM в Linux

Устанавливаем необходимый для работы с LVM программный пакет

Пакет включает несколько утилит, которые используются для создания логических разделов и устройств. Сначала из только что созданных партиций создадим физические устройства, с которыми может работать LVM

Physical volume «/dev/vdb1» successfully created.

Physical volume «/dev/vdb2» successfully created.

При необходимости смотрим справку по следующей команде, которую будем использовать

Читайте также:  Автоматическое завершение сеанса rdp windows 10

Создаем логическую группу устройств, указываем ее имя и физические девайсы, которые будут в нее включены

vgcreate vg1 /dev/vdb1 /dev/vdb2 /dev/vda1 /dev/vdc1

Volume group «vg1» successfully created

Просматриваем информацию о логической группе

Среди прочего в выводе будет размер всех устройств в группе и ее UUID.

Логическая группа позволяет объединить физические тома, групп может быть несколько в каждую при этом существует возможность добавить от одного устройства или партиции.

Следующим уровнем абстракции будут логические тома, они выделяются из группы по размеру, понятия физических дисков на этом уровне уже не существует.

Создаем логические устройства указывая их размер (ключ -L) и имена (ключ -n)

Logical volume «lv1» created.

Logical volume «lv2» created.

total 0
lrwxrwxrwx 1 root root 7 окт 13 10:17 lv1 -> ../dm-0
lrwxrwxrwx 1 root root 7 окт 13 10:17 lv2 -> ../dm-1

Видим созданные логические устройства, которые видит системаи может работать с ними как с отдельными дисками

На каждом нужно создать файловую систему

Создаем при необходимости точки монтирования и монтируем разделы в файловую систему

Команда выводит все логические девайсы, используемые в системе (информация предствлена в блоках и сгруппирована по устройствам)

— Logical volume —
LV Path /dev/vg1/lv1
LV Name lv1
VG Name vg1
LV UUID VTP39y-e1Ui-Xawl-h4oQ-Ml3k-CacV-aIiERw
LV Write Access read/write
LV Creation host, time vm-2c6ce884, 2017-10-13 10:17:06 +0000
LV Status available
# open 0
LV Size 1,00 GiB
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 256
Block device 253:0

— Logical volume —
LV Path /dev/vg1/lv2
LV Name lv2
VG Name vg1
LV UUID OPik1D-p0C8-3vyh-auJb-xLbi-f625-0zffvf
LV Write Access read/write
LV Creation host, time vm-2c6ce884, 2017-10-13 10:17:31 +0000
LV Status available
# open 0
LV Size 2,00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 256
Block device 253:1

Базовая настройка LVM в Linux на этом завершена. Далее рассмотрены операции с логическими томами, сталкиваться с которыми приходится чаще всего.

Изменение размера логических устройств

Предназначение LVM — возможность гибко работать с логическими томами, самой частой операцией является изменение размера устройств.

Создадим файлы в /home, в который смонтировали lv1, их присутствие в файловой системе проверим после того как диск будет расширен

В выводе размер размещенного и неразмещенного пространства vg

VG Size 5,00 GiB
PE Size 4,00 MiB
Alloc PE / Size 768 / 3,00 GiB
Free PE / Size 511 / 2,00 GiB

Расширим lv1 поскольку 1 Гб для /home куда обычно помещаются файлы пользователей недостаточно. Используем команду lvextend. Все все свободное пространство использовать система не даст, оставим 100 Мб, остальное используем для расширения lv1

Rounding size to boundary between physical extents: 1,90 GiB.
Size of logical volume vg1/lv1 changed from 1,00 GiB (256 extents) to 2,90 GiB (743 extents).
Logical volume vg1/lv1 successfully resized.

vgdisplay | grep Size
VG Size 5,00 GiB
PE Size 4,00 MiB
Alloc PE / Size 1255 / 4,90 GiB
Free PE / Size 24 / 96,00 MiB

lvdisplay теперь покажет, что под lv1 выделено 2,9 Гб. Созданные файлы остались на месте

file1.txt file2.txt

При помощи lvremove можно удалить логический девайс и все данные на нем, команду можно выполнить для несуществующего устройства lv3

Читайте также:  Windows registry program version

Failed to find logical volume «vg1/lv3»

Настройка LVM в Linux и практика выделения разделов

Также рейд массивы и LMV можно устанавливать непосредственно на этапе установки операционной системы

Важное правило — при разметке файловой системы стоит избегать помещения раздела /boot на логический раздел поскольку информация из /boot считывается при старте системы, при размещении на логическом устройстве подобное считывание корректно может не произойти.

Часто встречающимся решением является создание рейда 1 на двух дисках с секторами, выделенными под раздел /boot, вне lvm. Остальные диски сервера объединяются в рейд какой-либо конфигурации более эффективной для хранения больших объемов данных. Рейд 1 используется для обеспечения надежности — при выходе из строя одного из дисков загрузочный сектор системы будет считываться с другого.

Читайте также про настройки безопасности при подключении к серверу, установка ОС и разметка диска для которого завершены.

Источник

LVM — это просто!

Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.

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

есть 3 уровня абстракции:
1. PV (Physical Volume) — физические тома (это могут быть разделы или целые «неразбитые» диски)
2. VG (Volume Group) — группа томов (объединяем физические тома (PV) в группу, создаём единый диск, который будем дальше разбивать так, как нам хочется)
3. LV (Logical Volume) — логические разделы, собственно раздел нашего нового «единого диска» ака Группы Томов, который мы потом форматируем и используем как обычный раздел, обычного жёсткого диска.
это пожалуй вся теория. 🙂 теперь практика:
для работы нужны пакеты lvm2 и возможность работать с привелегиями root поэтому:
$ sudo bash
# apt-get install lvm2

допустим у нас в компе есть жёсткий диск на 40Гб и нам удалось наскрести немного денег и наконец-то купить себе ТЕРАБАЙТНИК! :))) Система уже стоит и работает, и первый диск разбит одним разделом (/dev/sda1 как / ), второй — самый большой, который мы только подключили — вообще не разбит /dev/sdb…
Предлагаю немножко разгрузить корневой диск, а заодно ускорить (новый диск работает быстрее старого) и «обезопасить» систему с помощью lvm.
Можно делать на втором диске разделы и добавлять их в группы томов (если нам нужно несколько групп томов),
а можно вообще не делать на диске разделы и всё устройство сделать физическим разделом (PV)

# pvcreate /dev/sdb
Physical volume «/dev/sdb» successfully created

Создаём группу томов с говорящим названием, например по имени машины «ws», чтобы когда мы перетащим данный диск на другую машину небыло конфликтов с именами групп томов:

# vgcreate ws /dev/sdb
Volume group «vg0» successfully created

желательно внести с корневого раздела такие папки как /usr /var /tmp /home, чтобы не дефрагментировать лишний раз корневой раздел и ни в коем случае его не переполнить, поэтому создаём разделы:

Читайте также:  Linux gateway one interface

# lvcreate -n usr -L10G ws # здесь мы создаём раздел с именем «usr», размером 10Gb
Logical volume «usr» created
по аналогии делаем то же для /var, /tmp, /home:
root@ws:

# lvcreate -n var -L10G ws
root@ws:

# lvcreate -n tmp -L2G ws
root@ws:

# lvcreate -n home -L500G ws
у нас ещё осталось немного свободного места в группе томов (например для будущего раздела под бэкап)
посмотреть сколько именно можно командой:
root@ws:

# vgdisplay
информацию по созданным логическим томам
root@ws:

# lvdisplay
информацию по физическим томам
root@ws:

разделы что мы создали появятся в папке /dev/[имя_vg]/, точнее там будут ссылки на файлы,
lrwxrwxrwx 1 root root 22 2009-08-10 18:35 swap -> /dev/mapper/ws-swap
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 tmp -> /dev/mapper/ws-tmp
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 usr -> /dev/mapper/ws-usr
lrwxrwxrwx 1 root root 21 2009-08-10 18:35 var -> /dev/mapper/ws-var
и т.д…

дальше lvm уже почти кончается… форматируем наши разделы в любимые файловые системы:
root@ws:

# mkfs.ext2 -L tmp /dev/ws/tmp
root@ws:

# mkfs.ext4 -L usr /dev/ws/usr
root@ws:

# mkfs.ext4 -L var /dev/ws/var
root@ws:

# mkfs.ext4 -L home /dev/ws/home

кстати, не плохо было бы сделать раздел подкачки:
root@ws:

# lvcreate -n swap -L2G ws
root@ws:

# mkswap -L swap /dev/ws/swap
root@ws:

создаём папку и подключая по очереди новообразовавшиеся тома, копируем в них нужное содержимое:
root@ws:

# mkdir /mnt/target
root@ws:

# mount /dev/ws/home /mnt/target
копируем туда всё из папки /home своим любимым файловым менеджером (с сохранением прав доступа), например так ;):
root@ws:

# cp -a /home/* /mnt/target/
root@ws:

# umount /mnt/target/
кстати, для папки temp необходимо только поправить права, копировать туда что-либо необязательно:
root@ws:

На вкусное, хочу предложить более продвинутую штуку:
допустим у нас есть система с разделом на LVM, а жёсткий диск начал сбоить, тогда мы можем без перезагрузки переместить всю систему на другой жёсткий диск/раздел:

# On-line добавление/удаление жёстких дисков с помощью LVM (пример)

# pvcreate /dev/sda1 # наш эмулятор сбойного диска
Physical volume «/dev/sda1» successfully created

# pvcreate /dev/sdb1 # наш эмулятор спасательного диска
Physical volume «/dev/sdb1» successfully created

# vgcreate vg0 /dev/sda1 # создаю группу томов vg0
Volume group «vg0» successfully created

# lvcreate -n test -L10G vg0 #создаю раздел для «важной» инфы
Logical volume «test» created

# mkfs.ext2 /dev/vg0/test # создаю файловую систему на разделе
root@ws:

# mount /dev/mapper/vg0-test /mnt/tmp/ #монтирую раздел
… # заполняю его информацией, открываю на нем несколько файлов и т.п.

# vgextend vg0 /dev/sdb1 # расширяю нашу групу томов на «спасательный» диск
Volume group «vg0» successfully extended

# pvmove /dev/sda1 /dev/sdb1 #передвигаю содержимое с «умирающего» диска на «спасательный»
/dev/sda1: Moved: 0.9%
/dev/sda1: Moved: 1.8%

/dev/sda1: Moved: 99.7%
/dev/sda1: Moved: 100.0%

# vgreduce vg0 /dev/sda1 # убираю «умирающий» диск из группы томов.
Removed «/dev/sda1» from volume group «vg0»

Итого:
Я создал логический раздел, отформатировал его, примонтировал и заполнил нужными данными, затем переместил его с одного устройства на другое, при этом раздел остался примонтирован и данные всё время оставались доступны!
Подобным образом мне удавалось без перезагрузки перенести всю систему с умирающего диска на рэид-массив. 🙂

Источник

Оцените статью