Linux изменить размер разделов lvm

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

На днях пришлось менять диски на сервере CentOS 6.7. Старые диски хоть и рабочие еще, но с нагрузкой не справлялись. Поэтому раскошелились и купили SSD диски такой же емкости, как и старые. Но т.к. стоимость 1 Гб на SSD диске намного дороже, то посмотрев на размер /var (180 Гб) и / (корневой раздел) 300 Гб, само собой напросилось решение увеличить размер / за счет уменьшения размера /var. Идея, конечно, хорошая, но раньше я никогда таким не баловался, поэтому провел выходные на форумах, проверил сначала все на виртуальной машине без raid, потом подумал, что на моем сервере работает софтовый raid1 и сделал тестовый стенд (на старый комп поставил CentOS 6.7 с двумя дисками в программном raid1) и проверил все на нем, потом уже выполнил повторно на рабочем сервере. Но все же волнительно было, чего уж. Итак, поехали!

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

Итак, есть система из двух дисков, объединенных в raid1 (зеркало).

/dev/sda:
/dev/sda1 200 Мб, /dev/md0
/dev/sda2 480 Гб, /dev/md1

/dev/sdb:
/dev/sdb1 200 Мб, /dev/md0
/dev/sdb2 480 Гб, /dev/md1

На /dev/md1 тома LVM:
/dev/VolGroup/LogVol00 swap 2 Гб
/dev/VolGroup/LogVol01 /var 180 Гб, ext4
/dev/VolGroup/LogVol02 / 300 Гб, ext4

Для чего я привел пример разбивки? Чтобы вы обратили внимание, что мы в дальнейшем ни разу не будем ресайзить тома на устройствах /dev/sdXY. Мы все изменения разделов будем проводить только с логическими томами LVM!

Задача: изменить размер /var до 30 Гб и отдать все освободившееся место в / (корень). Файловая система обоих разделов ext4. Система CentOS 6.7.

Шаг 1: уменьшаем /var

В моем случае (софтовый raid1) я сначала проверил на всякий случай, что все диски подключены и ошибок нет (cat /proc/mdstat).

Я не был уверен, что размонтировать /var (umount /var) в рабочем режиме хорошая мысль, поэтому загрузился с LiveCD CentOS в Rescue Mode (можно было войти в single mode и без LiveCD).

Проверяем доступность физического тома LVM:

# pvscan
PV /dev/md1 VG VolGroup lvm2 [480.00 GiB / 0 free]

Проверяем доступность групп томов:

# vgscan
Reading all physical volumes. This may take a while.
Found volume group «VolGroup» using metadata type lvm2

Активируем логические тома:

# lvscan
ACTIVE ‘/dev/VolGroup/LogVol01’ [180.00 GiB] inherit
ACTIVE ‘/dev/VolGroup/LogVol00’ [2.00 GiB] inherit
ACTIVE ‘/dev/VolGroup/LogVol02’ [300.00 GiB] inherit

Можно посмотреть подробности тома /dev/VolGroup/LogVol01 (он у нас /var):

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

Отмонтируем том, который у нас /var и который будет уменьшать:

Выполняем проверку файловой системы тома:

Команда должна пройти без ошибок.

Читайте также:  Где лежит конфиг postgresql linux

Выполняем проверку на наличие ошибок (-f — force):

# e2fsck -f /dev/VolGroup/LogVol01

Сначала уменьшаем размер файловой системы тома:

resize2fs -p /dev/VolGroup/LogVol01 30G

Внимание: здесь «30G» — это размер, который мы хотим задать для файловой системы, а не на который мы хотим уменьшить файловую систему.

И только после этого изменяем размер тома LVM:

# lvreduce -L 30G /dev/VolGroup/LogVol01

Получили сообщение об успешном завершении.

Теперь можно и не монтировать обратно раздел, а сразу перезагрузиться и проверить, что все ок, система загружается, df -h выдает размер /var равным 30 Гб.

На CentOS после загрузки до входа в систему появилось сообщение от SELinux, который должен переиндексировать изменения. Ок. Это заняло какое-то время и система сама перезагрузилась. После этого я вошел в систему и убедился, что все ок. Только после этого я перешел ко второму шагу (который оказался намного быстрее и проще), а именно увеличению корневого раздела путем добавления к нему всего доступного свободного места на физическом томе LVM. Заупстите pvscan и посмотрите, в выводе команды будет указано, есть доступное место (это плюс-минус то, что было занято раньше под /var). Теперь мы это свободное место добавим к / (корню).

Шаг 2: увеличиваем размер тома LVM (который у нас / ) без перезагрузки

Да, вы не очитались. Чтобы увеличить размер тома LVM нам не придется загружаться в single mode (или через LiveCD в Rescue mode).

На всякий случай, чтобы не перепутать, какому тому вы хотите отдать свободное место, выполните cat /etc/fstab и lvscan, убедитесь, что раздел / (корень) — это /dev/VolGroup/LogVol02, а не что-то иное 😉

Именно так, без пробелов между -l (это маленькая L) и +100%FREE. Заметьте, я не стал указывать, на сколько точно я хочу увеличть размер тома. В данной ситуации мне это было не нужно и чтобы не гадать, сколько конкретно надо добавить Гбайт, я просто указал, чтобы было добавлено все, что можно. man lvextend для ознакомления с вариациями -L+100G 😉 Опция -r указывает на то, чтобы был выполнен ресайз файловой системы после увеличения логического тома. Без этой опции команды было бы две:

# lvextend -l+100%FREE /dev/VolGroup/LogVol02
# resize2fs /dev/VolGroup/LogVol02

После успешного завершения я бы перезагрузился и проверил, что все ок.

Естественно, все вышеописанное может дать сбой на любом этапе, хотя бы из-за сбоя электропитания. Поэтому если данные на изменяемых разделах хоть как-то важны, вы должны иметь их копию.

Все вышеперечисленное верно для CentOS. Для Ubuntu вроде бы все то же самое. Думаю (не знаю) что для всех современных Linux все команды такие же.

Авторизуйтесь для добавления комментариев!

Источник

Изменение размера томов LVM

Одним из основных преимуществ использования LVM является простота изменения размеров томов LVM, что очень полезно, если в вашей файловой системе заканчивается свободное место на диске.

Если используется файловая система XFS, объем можно увеличить, но не уменьшить. Другие файловые системы, такие как Ext4 и Btrfs, поддерживают уменьшение размера файловой системы.
Уменьшение файловой системы Ext4 может быть выполнено только в автономном режиме, что означает, что вам нужно размонтировать ее, прежде чем вы сможете изменить ее размер. В этой статье вы узнаете, как увеличить размер логического тома LVM.

Подготовка к добавлению

Итак. Мы добавили в систему диск. Командой fdisk создали раздел, пометили его как LVM и назначили ему файловую систему XFS.

Читайте также:  Astra linux intel hd graphics 630

Командой pvsвидим наш чистый том /dev/sdc1

[root@server2 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- 

Добавление хранилища в VG

[root@server2 ~]# vgextend vgDATA /dev/sdc1 Volume group "vgDATA" successfully extended
[root@server2 ~]# vgs VG #PV #LV #SN Attr VSize VFree centos 1 2 0 wz--n- 10.00g

Физический том в 10g добавлен, но не используется в логическом томе.

[root@server2 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- 
[root@server2 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 19G 5.6G 14G 30% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 1.9G 792K 1.9G 1% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 470M 209M 262M 45% /boot tmpfs 379M 0 379M 0% /run/user/0 /dev/mapper/vgDATA-lvDATA 20G 33M 20G 1% /mnt/lvDATA

Как видно, все еще используется 20g.

Чтобы увеличить размер логического тома, используйте lvresize, затем идет опция -r, чтобы изменить размер файловой системы:

[root@server2 ~]# lvresize -r -l +100%FREE /dev/vgDATA/lvDATA Size of logical volume vgDATA/lvDATA changed from  (7678 extents). Logical volume vgDATA/lvDATA successfully resized. meta-data=/dev/mapper/vgDATA-lvDATA isize=512 agcount=4, agsize=1310464 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=5241856, 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=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 5241856 to 7862272
[root@server2 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root centos -wi-ao---- lvDATA vgDATA -wi-ao---- 29.99g

Убеждаемся, что логический том lvDATA стал на 10g больше.

Примеры

lvresize -r -l 75% VG /dev/vgdata/lvdata

Попытается добавить 75% от общего размера группы томов к логическому тому. (Обратите внимание на разницу с предыдущей командой.).

lvresize -r -l +75%VG /dev/vgdata/lvdata
lvresize -r -l +75%FREE /dev/vgdata/lvdata

Изменяет размер логического тома до общего размера, равного 75% объема свободного дискового пространства. (Обратите внимание на разницу с предыдущей командой.).

lvresize -r -l 75%FREE /dev/vgdata/lvdata

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

Логическим экстентом является логический строительный блок, используемый при создании логических томов, который сопоставляется с физическим экстентом, размер которого можно указать при создании группы томов. Все операции по изменению размера должны соответствовать полным логическим экстентам. Иногда вы заметите, что размер изменения размера округляется в большую или меньшую сторону до размера логического экстента. Вы также можете указать количество логических экстентов, которые должны быть добавлены или удалены напрямую, используя опцию -l с командой lvresize.

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

Источник

How to resize a logical volume with 5 simple LVM commands

How to manage logical volumes with 5 simple LVM commands

Have you ever wondered how to extend your root or home directory filesystem partition using LVM? You might have low storage space and you need to increase the capacity of your partitions. This article looks at how to extend storage in Linux using Logical Volume Manager (LVM).

Process summary

The process is straightforward. Attach the new storage to the system. Next, create a new Physical Volume (PV) from that storage. Add the PV to the Volume Group (VG) and then extend the Logical Volume (LV).

Look at the picture below. The red line mark shows the original size of the root mount point. The xvdc disk is the new disk attached to it. Extend the root partition to make it 60G in size.

lsblk command displays volume sizes

[ Want to test your sysadmin skills? Take a skills assessment today. ]

Create a Physical Volume

pvcreate command to create a new physical volume

[root@redhat-sysadmin ~]# pvcreate /dev/xvdc Physical volume "/dev/xvdc" successfully created.

When you attach the new storage /dev/xvdc , you need to use the pvcreate command in order for the disk to be initialized and be seen by the Logical Volume Manager (LVM).

Identify the Volume Group

Next, you need to identify the Volume Group (VG) to which you are extending the new disk with the vgs command. Mine is called centos, and that's the only VG available currently on my LVM.

vgs command displays volume group information

Extend the Volume Group

The vgextend command allows you to add one or more initialized Physical Volumes to an existing VG to extend its size.

As you can see, you want to extend the centos Volume Group.

vgextend command

After extending it, type the vgs or vgdisplay commands for a more detailed overview of the VG.

The vgs command shows only the VG in with a few lines.

vgs command displays volume group information

The vgdisplay shows all the VGs in the LVM and displays the complete information about them.

vgdisplay command displays volume group information

Cloud services

As you can see from the image above, marked with red, you have 10GB free. You can decide to extend all or some amount of storage size to it.

Identify the Logical Volume

The lvs or lvdisplay command shows the Logical Volume associated with a Volume Group. Use the lvs command, and the Logical Volume you're trying to extend is the root, which belongs to the centos VG. As you can see above, you've already extended the VG. Next, extend the Logical Volume.

lvs command displays logical volume information

Extend the Logical Volume

Extend the LV with the lvextend command. The lvextend command allows you to extend the size of the Logical Volume from the Volume Group.

lvextend command displays logical volume information

[root@redhat-sysadmin ~]# lvextend -l +100%FREE /dev/centos/root.

Extend the filesystem

You need to confirm the filesystem type you're using, Red Hat uses the XFS filesystem, but you can check the filesystem with lsblk -f or df -Th .

Resize the filesystem on the Logical Volume after it has been extended to show the changes. Resize the XFS filesystem by using the xfs_growfs command.

xfs_grow command extends the XFS filesystem

Finally, verify the size of your extended partition.

df -h command displays storage capacity

Wrap up

You can extend any other partition with the steps shown. You just have to ensure you're using LVM and know the partition you're extending. If you want to learn more about LVM, check out other articles from Enable Sysadmin by searching LVM.

Источник

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