Расширение дискового раздела LVM в CentOS 7

На одном из тестовых серверов мне не хватило места на корневом диске под LVM.

[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 1.7G 1.2G 516M 71% /

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

[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a— 2.00g 0

[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao—- 1.70g
swap centos -wi-ao—- 308.00m

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz—n- 2.00g 0

На хосте виртуальных машин я добавил 2 ГБ к имевшемуся диску. Теперь оставалось освоить эти 2 гигабайта

В первую очередь с помощью fdisk я создал из свободного места дополнительный раздел sda3(sda1 и sda2 уже были), назначив ему системный ID 8e — это Linux LVM:

[root@localhost ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

 

Command (m for help): p

Disk /dev/sda: 5368 MB, 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 label type: dos
Disk identifier: 0x000b7436

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 6291455 2096128 8e Linux LVM
/dev/sda3 6291456 10485759 2097152 8e Linux LVM

Command (m for help):

ОК, теперь оставалось подсунуть его LVM и расширить имеющийся диск. Но LVM-у  моя затея не понравилась:

[root@localhost ~]# pvcreate /dev/sda3
Device /dev/sda3 not found (or ignored by filtering).

[root@localhost ~]# vgextend centos /dev/sda3
Device /dev/sda3 not found (or ignored by filtering).

И только после нескольких перепроверок я вспомнил, что дело не в LVM, а в том, что я забыл сообщить системе, что появился новый раздел. Вот что знала система:

[root@localhost ~]# cat /proc/partitions
major minor #blocks name

8 0 5242880 sda
8 1 1048576 sda1
8 2 2096128 sda2
11 0 1048575 sr0
253 0 1777664 dm-0
253 1 315392 dm-1

Как видно из вывода, система не была в курсе, что есть еще один раздел sda3. Но ничего страшного, просто информируем ее про новый раздел:

[root@localhost ~]# partprobe /dev/sda
[root@localhost ~]#

Проверяем:

[root@localhost ~]# cat /proc/partitions
major minor #blocks name

8 0 5242880 sda
8 1 1048576 sda1
8 2 2096128 sda2
8 3 2097152 sda3
11 0 1048575 sr0
253 0 1777664 dm-0
253 1 315392 dm-1

Отлично, теперь система может работать с новым разделом. Теперь можно и расширять:

[root@localhost ~]# pvcreate /dev/sda3
Physical volume «/dev/sda3» successfully created.
[root@localhost ~]#

[root@localhost ~]# vgextend centos /dev/sda3
Volume group «centos» successfully extended
[root@localhost ~]#

Замечательно, диск создали, группу томов расширили:

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz—n- 3.99g 2.00g
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao—- 1.70g
swap centos -wi-ao—- 308.00m
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a— 2.00g 0
/dev/sda3 centos lvm2 a— 2.00g 2.00g
[root@localhost ~]#

Осталось расширить логический том:

[root@localhost ~]# lvextend -L +2G /dev/mapper/centos-root
Insufficient free space: 512 extents needed, but only 511 available

Но и тут не все гладко пошло. Из-за особенностей подсчета размера диска не все 2 изначальных гигабайта были мне доступны. Я не хотел заморачиваться с пересчетами и просто расширил на все свободное место:

[root@localhost ~]# lvextend -l +100%FREE /dev/mapper/centos-root
Size of logical volume centos/root changed from 1.70 GiB (434 extents) to 3.69 GiB (945 extents).
Logical volume centos/root successfully resized.

Супер, оставался последний шаг  — изменить саму файловую систему на диске. И тут я, к сожалению, тоже допустил ошибку:

[root@localhost ~]# resize2fs /dev/mapper/centos-root
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/centos-root
Couldn’t find valid filesystem superblock.
[root@localhost ~]#

Точнее снова забыл, что в CentOS 7 по умолчанию используется файловая система XFS, а не EXT4. Но и это не проблема — просто используем вместо resize2fs утилиту xfs_growfs

[root@localhost ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=111104 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=444416, 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 444416 to 967680
[root@localhost ~]#

Вот и все. Проверяем текущий размер раздела:

[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 3.7G 1.2G 2.5G 33% /

 

Напишите комментарий

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