CentOS 8 увеличение LVM раздела

Ранее мы с вами установили CentOS 8. Но что делать, если размера диска оказалось недостаточно? К счастью, эта операционная система по умолчанию использует LVM и в этой статье мы рассмотрим на примере CentOS 8 увеличение LVM раздела. Данная процедура практически не отличается от действий в предыдущих версиях данной ОС.

Внимание! Перед тем, как приступить к работам по расширению LVM, обязательно сделайте резервную копию данных!

1 Вводные данные
2 Увеличение объема жесткого диска
3 Создание нового раздела
4 Добавление раздела в LVM

Вводные данные

Наша CentOS 8 установлена на Hyper-V. Для начала проверим размер файловой системы, выполнив df -h (все команды выполняются от root пользователя):

# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             353M     0  353M   0% /dev
tmpfs                368M     0  368M   0% /dev/shm
tmpfs                368M  5.2M  363M   2% /run
tmpfs                368M     0  368M   0% /sys/fs/cgroup
/dev/mapper/cl-root  6.2G  2.3G  4.0G  37% /
/dev/sda1            976M  128M  782M  15% /boot
tmpfs                 74M     0   74M   0% /run/user/0

LVM том имеет размер 6.2 гигабайта и смонтирован в корневой каталог /, его мы и будем увеличивать.

Посмотрим вывод fdisk -l:

# fdisk -l
Disk /dev/sda: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xde6ef740

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 16777215 14678016   7G 8e Linux LVM

Disk /dev/mapper/cl-root: 6.2 GiB, 6652166144 bytes, 12992512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/cl-swap: 820 MiB, 859832320 bytes, 1679360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

В данном примере у нас 1 диск /dev/sda размером 8 гигабайт, который разбит на 2 логических: загрузочный /dev/sda1 и /dev/sda2 с типом Linux LVM – он нас и интересует.

Увеличение размера диска

В среде виртуализации увеличиваем размер жесткого диска и перезагружаем систему. Я увеличил диск до 10 гигабайт:

#fdisk -l
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xde6ef740

Device     Boot   Start      End  Sectors Size Id Type
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 16777215 14678016   7G 8e Linux LVM

Disk /dev/mapper/cl-root: 6.2 GiB, 6652166144 bytes, 12992512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk /dev/mapper/cl-swap: 820 MiB, 859832320 bytes, 1679360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

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

После увеличения размера диска необходимо создать новый раздел. Выполним fdisk /dev/sda, где /dev/sda – метка нашего диска (Disk /dev/sda):

# fdisk /dev/sda

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help):

Вводим n – создание нового раздела:

Command (m for help): n

Далее указываем тип – основной p:

Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitionsSelect (default p): p

Нас просят указать номер раздела, по умолчанию – это следующий с номером 3:

Partition number (3,4, default 3):3

Далее указываются начальный и конечный сектор. Обязательно проверьте, чтобы они совпадали со значениям, указанными через дефис. Таким образом мы используем все неразмеченное пространство:

First sector (16777216-20971519, default 16777216):16777216
Last sector, +sectors or +size{K,M,G,T,P} (16777216-20971519, default 20971519):20971519
Created a new partition 3 of type 'Linux' and of size 2 GiB.

Как видим, был создан раздел на 2 гигабайта с типом Linux. Изменим тип по умолчанию на Linux LVM. Для этого используем команду t, указываем, тип какого раздела мы хотим изменить (в данном случае 3) и вводим его код в шестнадцатеричной системе 8e:

Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Командой p посмотрим, что у нас получилось:

Command (m for help): p
Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xde6ef740

Device     Boot    Start      End  Sectors Size Id Type
/dev/sda1  *        2048  2099199  2097152   1G 83 Linux
/dev/sda2        2099200 16777215 14678016   7G 8e Linux LVM
/dev/sda3       16777216 20971519  4194304   2G 8e Linux LVM

Отлично! Мы создали раздел /dev/sda3 размером 2 гигабайта. Осталось только сохранить изменения командой w. После этого fdisk автоматически закроется:

Command (m for help): w
The partition table has been altered.
Syncing disks.

CentOS 8 увеличение LVM

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

# pvcreate /dev/sda3
  Physical volume "/dev/sda3" successfully created.

Посмотрим название группы томов, в которою необходимо добавить раздел. Для это воспользуемся vgdisplay. По умолчанию – это cl:

# vgdisplay
  --- Volume group ---
  VG Name               cl
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <7.00 GiB
  PE Size               4.00 MiB
  Total PE              1791
  Alloc PE / Size       1791 / <7.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               XwDF6A-wEWR-uazD-t4bz-bOMI-3z2L-VXCczx

Добавляем наш раздел в данную группу:

# vgextend cl /dev/sda3
  Volume group "cl" successfully extended

С помощью lvdisplay смотрим название и путь к логическому тому, который необходимо расширить (по умолчанию это root и /dev/cl/root):

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/cl/swap
  LV Name                swap
  VG Name                cl
  LV UUID                9cy6VE-EIXf-ky21-S55C-TGkH-mkYb-rTtCsU
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-10-17 08:32:49 +0300
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/cl/root
  LV Name                root
  VG Name                cl
  LV UUID                kM68mo-2vZr-3zDP-Sfyc-TlAp-QQb7-XTh0X0
  LV Write Access        read/write
  LV Creation host, time localhost, 2019-10-17 08:32:50 +0300
  LV Status              available
  # open                 1
  LV Size                <6.20 GiB
  Current LE             1586
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

Теперь расширим его. Для этого lvextend указываем путь к логическому тому и параметр -l +100%FREE, который говорит о том, что мы хотим использовать 100% свободного места:

# lvextend -l +100%FREE /dev/cl/root
  Size of logical volume cl/root changed from <6.20 GiB (1586 extents) to 8.19 GiB (2097 extents).
  Logical volume cl/root successfully resized.

Остался последний шаг – расширить файловую систему. Если у вас файловая система xfs (используется на Centos 8 по-умолчанию), то выполним xfs_growfs:

# xfs_growfs /dev/mapper/cl-root
meta-data=/dev/mapper/cl-root    isize=512    agcount=4, agsize=406016 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1624064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           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 1624064 to 2147328

Если ext4, то воспользуемся resize2fs:

# resize2fs -p /dev/mapper/cl-root

resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/cl-root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/mapper/cl-root to 2147328 (4k) blocks.
The filesystem on /dev/mapper/cl-root is now 2147328 blocks long.

Проверяем результат:

# df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             353M     0  353M   0% /dev
tmpfs                368M     0  368M   0% /dev/shm
tmpfs                368M  5.1M  363M   2% /run
tmpfs                368M     0  368M   0% /sys/fs/cgroup
/dev/mapper/cl-root  8.2G  2.3G  6.0G  28% /
/dev/sda1            976M  128M  782M  15% /boot
tmpfs                 74M     0   74M   0% /run/user/0

Заключение

Как видим, в CentOS 8 увеличение LVM раздела – не такая уж и сложная задача.

Вы можете посмотреть похожие статьи по расширению разделов в различных дистрибутивах linux:

10 комментариев к “CentOS 8 увеличение LVM раздела”

  1. Спасибо, все ах…нно! IBM может мониторить дальше Zabbix’ом спокойно

    Ответить
  2. Можно не перезагружать VM после увеличения размера жесткого диска в среде виртуализации, если сделать рескан дисков:
    ls /sys/class/scsi_host/
    # echo “- – -” > /sys/class/scsi_host/host0/scan
    # echo “- – -” > /sys/class/scsi_host/host1/scan
    # echo “- – -” > /sys/class/scsi_host/host2/scan

    либо

    # ls /sys/class/scsi_device/
    # echo 1 > /sys/class/scsi_device/0\:0\:0\:0/device/rescan
    # echo 1 > /sys/class/scsi_device/2\:0\:0\:0/device/rescan

    Тогда и правда получится “на лету” 🙂

    Ответить
  3. Приветствую
    проблема после Командой p посмотрим, что у нас получилось:

    Устр-во Загр Начало Конец Блоки Id Система
    /dev/sda1 1 125829119 62914559+ ee GPT
    Partition 1 does not start on physical sector boundary.
    /dev/sda2 125829120 209715199 41943040 8e Linux LVM

    pvcreate /dev/sda2
    Can’t open /dev/sda2 exclusively. Mounted filesystem?
    Can’t open /dev/sda2 exclusively. Mounted filesystem?

    как быть в данной ситуации?
    подскажите пожалуйста

    Ответить
    • Добрый день.
      А Вы перед этим добавили раздел /dev/sda2? Скорее всего он уже был и ранее смонтирован. В примере, например, уже были 2 раздела, мы создали третий. Сделайте df -h и посмотрите вывод

      Ответить
  4. в случае ошибки(xfs_growfs is not a mounted xfs filesystem) попробуйте на моменте расширения файловой системы xfs_growfs / просто корневую указать. для Centos 7.x естественно

    Ответить
  5. А как именно расширить раздел без добавления? А то у меня уже было их 5 а после этих действий появился 6-ой…

    Ответить
  6. У меня тип Linux LVM был под номером 31, так и написал 31 (на 8e что-то ругалось). И в самом конце писал просто “xfs_growfs /”

    Одно не понятно: теперь у меня есть устройства sda3 и sda4 и да, /dev/mapper/cs_server1c-root стал больше размером на размер sda4, а больше нельзя будет увеличить LVM? Читал, что больше четырех не добавляется разделов…

    Ответить

Оставьте комментарий