Меню Рубрики

Linux lvm resize lvm

Как работать с LVM

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

Используемые команды одинаково подойдут как для систем Red Hat / CentOS, так и Debian / Ubuntu.

Уровни абстракции

Работа с томами с помощью LVM происходит на 3-х уровнях абстракции:

  1. Физический уровень (PV). Сначала диск инициализируется командой pvcreate — в начале диска создается дескриптор группы томов. При этом важно заметить, что диск не обязательно должен быть физическим — мы можно отметить на использование обычный раздел диска.
  2. Группа томов (VG). С помощью команды vgcreate создается группа томов из инициализированных на предыдущем этапе дисков.
  3. Логический том (LV). Группы томов нарезаются на логические тома командой lvcreate.

Схематично, уровни можно представить так:

Установка

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

Если используем системы на безе deb (Ubuntu, Debian, Mint):

apt-get install lvm2

Если используем системы на безе RPM (Red Hat, CentOS, Fedora):

Создание разделов

Рассмотрим пример создания томов из дисков sdb и sdc с помощью LVM.

1. Инициализация

Помечаем диски, что они будут использоваться для LVM:

pvcreate /dev/sdb /dev/sdc

* напомним, что в качестве примера нами используются диски sdb и sdc.

Посмотреть, что диск может использоваться LMV можно командой:

В нашем случае мы должны увидеть что-то на подобие:

«/dev/sdb» is a new physical volume of «1,00 GiB»
— NEW Physical volume —
PV Name /dev/sdb
VG Name
PV Size 1,00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID rR8qya-eJes-7AC5-wuxv-CT7a-o30m-bnUrWa

«/dev/sdc» is a new physical volume of «1,00 GiB»
— NEW Physical volume —
PV Name /dev/sdc
VG Name
PV Size 1,00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 2jIgFd-gQvH-cYkf-9K7N-M7cB-WWGE-9dzHIY

  • PV Name — имя диска.
  • VG Name — группа томов, в которую входит данный диск (в нашем случае пусто, так как мы еще не добавили его в группу).
  • PV Size — размер диска.
  • Allocatable — распределение по группам. Если NO, то диск еще не задействован и его необходимо для использования включить в группу.
  • PE Size — размер физического фрагмента (экстента). Пока диск не добавлен в группу, значение будет 0.
  • Total PE — количество физических экстентов.
  • Free PE — количество свободных физических экстентов.
  • Allocated PE — распределенные экстенты.
  • PV UUID — идентификатор физического раздела.

2. Создание групп томов

Инициализированные на первом этапе диски должны быть объединены в группы.

Группа может быть создана:

vgcreate vg01 /dev/sdb /dev/sdc

* где vg01 — произвольное имя создаваемой группы; /dev/sdb, /dev/sdc — наши диски.

Просмотреть информацию о созданных группах можно командой:

На что мы получим, примерно, следующее:

— Volume group —
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
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 2
Act PV 2
VG Size 1,99 GiB
PE Size 4,00 MiB
Total PE 510
Alloc PE / Size 0 / 0
Free PE / Size 510 / 1,99 GiB
VG UUID b0FAUz-wlXt-Hzqz-Sxs4-oEgZ-aquZ-jLzfKz

  • VG Name — имя группы.
  • Format — версия подсистемы, используемая для создания группы.
  • Metadata Areas — область размещения метаданных. Увеличивается на единицу с созданием каждой группы.
  • VG Access — уровень доступа к группе томов.
  • VG Size — суммарный объем всех дисков, которые входят в группу.
  • PE Size — размер физического фрагмента (экстента).
  • Total PE — количество физических экстентов.
  • Alloc PE / Size — распределенное пространство: колическтво экстентов / объем.
  • Free PE / Size — свободное пространство: колическтво экстентов / объем.
  • VG UUID — идентификатор группы.

3. Создание логических томов

Последний этап — создание логического раздела их группы томов командой lvcreate. Ее синтаксис:

Примеры создания логических томов:

lvcreate -L 1G vg01

* создание тома на 1 Гб из группы vg01.

lvcreate -L50 -n lv01 vg01

* создание тома с именем lv01 на 50 Мб из группы vg01.

lvcreate -l 40%VG vg01

* при создании тома используется 40% от дискового пространства группы vg01.

lvcreate -l 100%FREE vg01

* использовать все свободное пространство группы vg01 при создании логического тома.
* также можно использовать %PVS — процент места от физического тома (PV); %ORIGIN — размер оригинального тома (применяется для снапшотов).

Посмотрим информацию о созданном томе:

— Logical volume —
LV Path /dev/vg01/lv01
LV Name lv01
VG Name vg01
LV UUID 4nQ2rp-7AcZ-ePEQ-AdUr-qcR7-i4rq-vDISfD
LV Write Access read/write
LV Creation host, time vln.dmosk.local, 2019-03-18 20:01:14 +0300
LV Status available
# open 0
LV Size 52,00 MiB
Current LE 13
Segments 1
Allocation inherit
Read ahead sectors auto
— currently set to 8192
Block device 253:2

  • LV Path — путь к устройству логического тома.
  • LV Name — имя логического тома.
  • VG Name — имя группы томов.
  • LV UUID — идентификатор.
  • LV Write Access — уровень доступа.
  • LV Creation host, time — имя компьютера и дата, когда был создан том.
  • LV Size — объем дискового пространства, доступный для использования.
  • Current LE — количество логических экстентов.

Создание файловой системы и монтирование тома

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

Файловая система

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

Например, для создания файловой системы ext4 вводим:

* vg01 — наша группа томов; lv01 — логический том.

Для создания, например, файловой системы xfs вводим:

Монтирование

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

Для разового монтирования пользуемся командой:

mount /dev/vg01/lv01 /mnt

* где /dev/vg01/lv01 — созданный нами логический том, /mnt — раздел, в который мы хотим примонтировать раздел.

Для постоянного монтирования раздела добавляем строку в fstab:

/dev/vg01/lv01 /mnt ext4 defaults 1 2

* в данном примере мы монтируем при загрузке системы том /dev/vg01/lv01 в каталог /mnt; используется файловая система ext4.

Проверяем настройку fstab, смонтировав раздел:

Проверяем, что диск примонтирован:

Просмотр информации

Разберемся, как получить информацию о дисковых накопителях в системе.

1. Для общего представления дисков, разделов и томов вводим:

Мы получим что-то на подобие:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 29G 0 part
sys-root 253:0 0 27G 0 lvm /
sys-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
sdc 8:32 0 1G 0 disk
vg01-lv01-real 253:3 0 1G 0 lvm
vg01-lv01 253:2 0 1G 0 lvm /mnt
vg01-sn01 253:5 0 1G 0 lvm
vg01-sn01-cow 253:4 0 500M 0 lvm
vg01-sn01 253:5 0 1G 0 lvm
sdd 8:48 0 1G 0 disk

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

2. Получить информацию о проинициализированных для LVM дисков:

Источник

Изменение размеров разделов LVM

Некоторые установщики Linux создают большой раздел /home, если для системных служб необходимо больше места на разделе / (root), можно изменить конфигурацию LVM разделов без перезагрузки сервера.

До изменений раздел / (root) заполнен на 98%, и имеются свободные 141GB на партиции /home

1. Отмонтируем раздел /home

Для успешного отключения раздела, остановите сервисы работающие на нем, а также выйдите из системы всеми пользователями кроме root

2. Уменьшаем размер раздела /home до 20GB, (Система попросит провести проверку тома коммандой e2fsck)

3. Уменьшаем LVM том /dev/mapper/vg_oracle-lv_home до 20G

4. Расширяем LVM том /dev/mapper/vg_oracle-lv_root до максимально возможного размера.

5. Увеличиваем раздел /root (ext3/4) используя все свободное место.

Теперь в корневом разделе сервера 72% свободного места.

TL;DR

Уменьшение раздела /home (/dev/mapper/vg_oracle-lv_home) до 20GB и перенос свободного места в корневой раздел диска /root (/dev/mapper/vg_oracle-lv_root):

10 thoughts on “ Изменение размеров разделов LVM ”

Your heading «_online_ resize…» is misleading because your first
(and necessary) step is unmounting /home.
Online shrinking of LVM partitions is not possible.
I stumbled over this page because I saw «online» and «shrink»
and thought «Oooh something new I have missed something».
🙂 Olaf

sorry for confusion, I agree it is partially online — at least you don’t need to unmount root 🙂

Firstly, thanks for the information. Worked perfect for me and now have plenty of room to store under /root folder. Probably would of been easier for me to set the partitions correctly when I installed fedora but hey no-ones perfect…

Had all sorts of trouble trying to do this on my system to start with because I was logged in.
Recommend to all to use rescue mode boot from usb/cd. This ensured no users being logged in and no files being used in /home directory. Also means you don’t have to carry out ‘lazy’ umount on /home.

Thank you very much,
just resized my filesystem with no issues.

Worked perfectly for me. Thanks for putting this up!

I cannot unmount my /home. It says «device is busy». How do I deal with this

This is common error, try following:

1. change your directory to something not /home (cd /root)
2. check who is logged in to the box by running who, ask them to log off/ kill their pts process (ps -dN|grep pts/3)
3. if you have services running from home, stop them

perfect documents sucessfully shirnk home partition and increase root on centos 6.5

I have applied this in my Centos (2.6.32-431.29.2.el6.x86_64) server and it works fine !!

It worked flawlessly on OEL 6.8.Thanks for the excellent tip

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Mac os свернуть окно горячие клавиши
  • Mac os сбросить настройки сети
  • Mac os сброс пароля связки ключей
  • Mac os сброс пароля прошивки
  • Mac os сброс настроек сети