Как расширить корневую файловую систему с помощью LVM в Linux
Добро пожаловать в наше руководство о том, как расширить корневую файловую систему с помощью LVM в Linux . Это будет охватывать расширение как корневых разделов файловой системы ext4, так и XFS. Чтобы продемонстрировать полный жизненный цикл LVM, мы выполним следующие действия:
- Создайте физический том LVM, группу томов и логический том.
- Создайте файловые системы XFS и ext4 на логических томах
- Расширение логических томов LVM (корневая и некорневая файловая система)
LVM позволяет создавать, изменять размер или удалять разделы в работающей системе без перезагрузки. Поэтому проверьте шаги ниже, чтобы расширить корневую файловую систему с помощью LVM в Linux. Вы можете пропустить некоторые шаги, которые не относятся к использованию.
Шаг 1: Подтвердите разделы диска при распространении.
Прежде чем мы сможем сделать какое-либо расширение, давайте просто подтвердим нашу схему расположения / разбиения диска.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 1024M 0 rom
vda 252:0 0 30G 0 disk
├─vda1 252:1 0 1G 0 part /boot
└─vda2 252:2 0 29G 0 part
├─rhel-root 253:0 0 26.9G 0 lvm /
└─rhel-swap 253:1 0 2.1G 0 lvm [SWAP]
Как уже отмечалось, у нас есть корневая файловая система на физическом томе /dev/vda2
$ sudo pvs
PV VG Fmt Attr PSize PFree
/dev/vda2 rhel lvm2 a-- <29.00g 0
Шаг 2: Расширение корневого диска вашей ОС
Как показано в шаге 1, моя корневая файловая система находится на диске 30 ГБ . Я увеличу его до 40 ГБ , расширив виртуальный диск (виртуальное дисковое устройство).
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 29G 0 part ├─rhel-root 253:0 0 26.9G 0 lvm / └─rhel-swap 253:1 0 2.1G 0 lvm [SWAP]
Если вы используете другую платформу виртуализации, обратитесь к ее документации, чтобы узнать, как расширить диск ОС.
Как только размер блочного устройства ОС изменится, подключитесь по ssh к вашей машине с Linux и расширьте LVM, чтобы использовать только что добавленную емкость диска. Команда ниже расширит последний раздел ( Раздел 2 ), как показано 252: 2, на диске ( / dev / vda ) до максимального размера, который обеспечивает диск.
Установите облачные утилиты
Для новичков в Growpart это инструмент командной строки Linux, используемый для расширения раздела в таблице разделов для заполнения доступного пространства. Эта команда предоставляется пакетом cloud utils.
В системе Ubuntu / Debian запустите
sudo apt -y install cloud-guest-utils
Для сервера CentOS, запустите
sudo yum -y install cloud-utils-growpart
Страницу справки можно просмотреть, передав -h
аргумент
# growpart -h
growpart disk partition
rewrite partition table so that partition takes up all the space it can
options:
-h | --help print Usage and exit
--fudge F if part could be resized, but change would be
less than 'F' bytes, do not resize (default: 1048576)
-N | --dry-run only report what would be done, show new 'sfdisk -d'
-v | --verbose increase verbosity / debug
-u | --update R update the the kernel partition table info after growing
this requires kernel support and 'partx --update'
R is one of:
- 'auto' : [default] update partition if possible
- 'force' : try despite sanity checks (fail on failure)
- 'off' : do not attempt
- 'on' : fail if sanity checks indicate no support
Example:
- growpart /dev/sda 1
Resize partition 1 on /dev/sd
Теперь используйте growpart для расширения вашего раздела.
$ sudo growpart /dev/vda 2 CHANGED: partition=2 start=2099200 old: size=18872320 end=20971520 new: size=60815327,end=62914527
Это изменит размер раздела 2 в /dev/vda.
Подтвердите изменение.
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom vda 252:0 0 40G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 39G 0 part ├─rhel-root 253:0 0 26.9G 0 lvm / └─rhel-swap 253:1 0 2.1G 0 lvm [SWAP]
Шаг 3. Изменение размера логического тома, чтобы он занимал все пространство
Изменить размер физического объема.
$ sudo pvresize /dev/vda2 Physical volume "/dev/vda2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized $ sudo pvs PV VG Fmt Attr PSize PFree /dev/vda2 rhel lvm2 a-- <39.00g 10.00g
Проверьте размер настроенной группы томов.
$ sudo vgs VG #PV #LV #SN Attr VSize VFree rhel 1 2 0 wz--n- <39.00g 10.00g
Затем измените размер корневого логического тома с помощью группы томов с измененным размером.
sudo lvextend -l +100%FREE /dev/name-of-volume-group/root
В моем примере это будет:
$ df -hT | grep mapper /dev/mapper/rhel-root xfs 27G 1.9G 26G 8% / $ sudo lvextend -l +100%FREE /dev/mapper/rhel-root Size of logical volume rhel/root changed from <26.93 GiB (6893 extents) to <36.93 GiB (9453 extents). Logical volume rhel/root successfully resized.
Вы можете заменить команду 100% БЕСПЛАТНО предпочитаемым пространством в МБ , например, добавить 256 МБ, заменить ее на + 256 МБ .
Шаг 4: Обновите изменения в файловой системе
Ваша корневая файловая система все равно покажет старый размер.
$ df -hT | grep mapper /dev/mapper/rhel-root xfs 27G 1.9G 26G 8% /
Сделаем так, чтобы файловая система сообщала фактический размер, в том числе расширенный.
Для файловой системы ext4
sudo resize2fs /dev/name-of-volume-group/root
Для файловой системы xfs
$ sudo xfs_growfs / meta-data=/dev/mapper/rhel-root isize=512 agcount=4, agsize=1764608 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=7058432, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3446, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 7058432 to 9679872
Вывод
Вы узнали, как расширить корневую файловую систему, поддерживаемую nfs и ext4, с помощью этого, как расширить корневую файловую систему, используя руководство LVM. Я надеюсь, что это было полезно, и хотел бы поблагодарить вас за чтение.