===== Как увеличить свободное пространство для раздела в LVM? =====
Для начало посмотрим что у нас есть на сервере
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─vg_system-lv_root 253:0 0 4G 0 lvm /
├─vg_system-lv_swap 253:1 0 2G 0 lvm [SWAP]
├─vg_system-lv_var 253:2 0 6G 0 lvm /var
├─vg_system-lv_home 253:3 0 1G 0 lvm /home
├─vg_system-lv_opt 253:4 0 2G 0 lvm /opt
└─vg_system-lv_tmp 253:5 0 3G 0 lvm /tmp
sdb 8:16 0 50G 0 disk
sr0 11:0 1 1024M 0 rom
На сервере есть неиспользуемы диск
sdb 8:16 0 50G 0 disk
==== Создание LVM разделов ====
Итак, у нас имеется виртуальная машина, к которой подключен один дополнительный диск. Проверим, что он доступен в системе, используя команду:
[root@d00statusrabbitmq01 status.rtlabs.ru]# fdisk -l
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 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/sda: 21.5 GB, 21474836480 bytes, 41943040 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
Чтобы диск был доступен для LVM, его нужно пометить (инициализировать) утилитой pvcreate:
pvcreate /dev/sdb
Теперь, чтобы убедиться, что данный диск можно использовать для LVM, введите команду pvdisplay:
[root@d00statusrabbitmq01 status.rtlabs.ru]# pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg_system
PV Size <19,00 GiB / not usable 3,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 4863
Free PE 255
Allocated PE 4608
PV UUID GjRKl3-dxVG-TDzL-3pAO-IqM1-M1oT-NRpWW2
--- Physical volume ---
PV Name /dev/sdb
VG Name vg_system
PV Size 50,00 GiB / not usable 4,00 MiB
Allocatable yes (but full)
PE Size 4,00 MiB
Total PE 12799
Free PE 0
Allocated PE 12799
PV UUID C8Ql0r-mNNe-2ZAl-ElqD-Ntr3-AfiU-BMsARv
Как видим, оба диска отображаются. Разберем информацию из вывода команды:
* PV Name – имя диска или раздела
* VG Name – группа томов, в которую данный диск входит (мы пока группу не создали)
* PV Size – размер диска или размера
* Allocatable – распределение по группам. В нашем случае распределения не было, поэтому указано NO
* PE Size – размер физического фрагмента. Если диск не добавлен ни в одну группу, значение всегда будет 0
* Total PE – количество физических фрагментов
* Free PE — количество свободных физических фрагментов
* Allocated PE – распределенные фрагменты
* PV UUID – идентификатор раздела
С помощью команды pvscan вы можете просканировать диски на предмет PV.
==== Увеличение логического тома LVM ====
Чтобы добавить дополнительный диск к группе томов, нужно воспользоваться уже знакомой схемой:
инициализация диска для lvm
[root@d00statusrabbitmq01 status.rtlabs.ru]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
добавление диска в группу томов
[root@d00statusrabbitmq01 status.rtlabs.ru]# vgextend vg_system /dev/sdb
Volume group "vg_system" successfully extended
Чтобы расширить логический том, воспользуйтесь следующей схемой:
[root@d00statusrabbitmq01 status.rtlabs.ru]# lvextend /dev/vg_system/lv_var /dev/sdb
Size of logical volume vg_system/lv_var changed from 6,00 GiB (1536 extents) to <56,00 GiB (14335 extents).
Logical volume vg_system/lv_var successfully resized.
Данным способом вы расширите раздел на 10 Гб.
[root@d00statusrabbitmq01 status.rtlabs.ru]#lvextend -L10G /dev/vg_system/lv_var /dev/sdb
Но расширить логический том еще не все. Нужно еще расширить диск с точки зрения файловой системы. Для этого используем команду xfs_growfs, которая выполняет все необходимые операции и, в зависимости от размера файловой системы может работать довольно долго:
[root@d00statusrabbitmq01 status.rtlabs.ru]# xfs_growfs /dev/vg_system/lv_var
meta-data=/dev/mapper/vg_system-lv_var isize=512 agcount=4, agsize=393216 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=1572864, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 1572864 to 14679040
В итоге:
[root@d00statusrabbitmq01 status.rtlabs.ru]# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/mapper/vg_system-lv_root 4,0G 2,3G 1,8G 58% /
devtmpfs 3,9G 0 3,9G 0% /dev
tmpfs 3,9G 0 3,9G 0% /dev/shm
tmpfs 3,9G 434M 3,4G 12% /run
tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
/dev/mapper/vg_system-lv_home 1014M 33M 982M 4% /home
/dev/mapper/vg_system-lv_opt 2,0G 33M 2,0G 2% /opt
/dev/mapper/vg_system-lv_tmp 3,0G 33M 3,0G 2% /tmp
/dev/mapper/vg_system-lv_var 56G 5,8G 51G 11% /var
tmpfs 782M 0 782M 0% /run/user/0
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/ca58d3ff58e1ea872ed3d585d45b8256c3dcace31d0094ba68ed9a82ffc722df/merged
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/b2c0a2ccd6e7644c44ed5b641184e20be2be38f06b1d894db4c2b24ba109ea74/merged
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/bfdc04ed9243c5bf504bc695dce065722c3eb3ce2f19d6b6e790d88471d31732/merged
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/fe40eba3660d8a80842938c6277ccb3d39b16f5c8756052f62f8c3b922652824/merged
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/b98d8708c7a948a3a311f6083fd4c3a8f2d06a2e76854421d97594ba7ed1a9f2/merged
overlay 56G 5,8G 51G 11% /var/lib/docker/overlay2/62e2eea2536cb24fe0b5819ea08bc9f636586eccde286be8598071147d85fd3f/merged