Как увеличить размер диска LVM в ОС Linux на примере CentOS

Как увеличить размер диска LVM в ОС Linux на примере CentOS

Работа с дисками LVM в CentOS

Бывают различные ситуации, когда необходимо увеличить размер диска с операционной системой или данными. В моем случае – необходимо расширить дисковое пространство виртуальной машины Azure.

Для расширения диска виртуальной машины, нужно сначала ее остановить, добавить имеющееся место и запустить ВМ. Не будем вдаваться в подробности – для каждой платформы алгоритм един. Далее переходим к используемой VM, в моем случаем установлена операционная система CentOS. Вначале проверяем имеющиеся устройства:

# fdisk -l

Диск /dev/sda: 21.5 ГБ, 21474836480 байт
...
Устр-во   Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64         653     4729856   8e  Linux LVM
/dev/sda3             653        1305     5239532+  8e  Linux LVM

Но место в системе не увеличилось, как и должно быть

# df -h

Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/vg_projects-lv_root
                      7,5G  2,5G  4,7G  35% /
tmpfs                 504M     0  504M   0% /dev/shm
/dev/sda1             485M   49M  412M  11% /boot

Кстати, отсюда сразу берем имя группы томов vg_projects и имя тома lv_root, и запоминаем эти имена (у вас они будут другие).

Т.к. у нас теперь имеется неразмеченная область, то создадим новый раздел sda4 с типом раздела Linux LVM (код типа 8e) на этой области. Для этого начинаем работу с устройством sda:

# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Справка: команды оболочки fdisk

a     переключение флага загрузки
b     редактирование метки диска bsd
c     переключение флага dos-совместимости
d     удаление раздела
l     список известных типов файловых систем
m     вывод этого меню
n     добавление нового раздела
o     создание новой пустой таблицы разделов DOS
p     вывод таблицы разделов
q     выход без сохранения изменений
s     создание новой чистой метки диска Sun
t     изменение id системы раздела
u     изменение единиц измерения экрана/содержимого
v     проверка таблицы разделов
w     запись таблицы разделов на диск и выход
x     дополнительная функциональность (только для экспертов)

Далее используем следующие команды: n — создаём новый раздел;
p — обозначаем его как primary;
так как у нас было 3 логических раздела, то на вопрос Partition number (1-4) отвечаем 4;
t — укажем тип раздела;
опять тот же вопрос Partition number (1-4), отвечаем 4;
вводим 8e — это код типа раздела, соответствующий Linux LVM;
убедимся, что всё сделано верно, вводим p — показать таблицу разделов:

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Выбранный раздел 4
Первый цилиндр (1306-2610, по умолчанию 1306):
Используется значение по умолчанию 1306
Last цилиндр, +цилиндры or +size{K,M,G} (1306-2610, по умолчанию 2610):
Используется значение по умолчанию 2610

Команда (m для справки): t
Номер раздела (1-4): 4
Шестнадцатеричный код (введите L для получения списка кодов): 8e
Системный тип раздела 4 изменен на 8e (Linux LVM)

Команда (m для справки): p

...
...
...

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64         653     4729856   8e  Linux LVM
/dev/sda3             653        1305     5239532+  8e  Linux LVM
/dev/sda4            1306        2610    10482412+  8e  Linux LVM

Отлично. Раздел sda4 создан. Вводим w для сохранения изменения на диске.

Теперь ОБЯЗАТЕЛЬНО перезагружаем виртуальную машину!!!

Надеюсь у вас всё удачно перезагрузилось. Теперь необходимо создать физический том sda4:

# pvcreate /dev/sda4
  Physical volume "/dev/sda4" successfully created

Далее расширяем группу томов, на новое пространство. Используем наше имя группы томов vg_projects, которое мы подсмотрели ранее, командой df:

# vgextend /dev/vg_projects /dev/sda4
  Volume group "vg_projects" successfully extended

Теперь расширим логический том. Вспоминаем, что говорил нам df.

# lvextend -l+100%FREE /dev/vg_projects/lv_root
  Extending logical volume lv_root to 17,52 GiB
  Logical volume lv_root successfully resized

Еще пару волшебных действий для активации

# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_projects" using metadata type lvm2

# vgchange -ay
  2 logical volume(s) in volume group "vg_projects" now active

И последнее, что мы делаем – расширяем файловую систему:

# resize2fs /dev/vg_projects/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_projects/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_projects/lv_root to 4593664 (4k) blocks.
The filesystem on /dev/vg_projects/lv_root is now 4593664 blocks long.

Для CentOS 7 с файловой системой xfs используйте xfs_growfs вместо resize2fs. Данный процесс может занять некоторе время. После завершения операции проверим чего мы натворили:

# df -h
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/mapper/vg_projects-lv_root
                       18G  2,5G   14G  15% /
tmpfs                 504M     0  504M   0% /dev/shm
/dev/sda1             485M   49M  412M  11% /boot

Готово! Увеличение на 5см размера диска LVM в ОС Linux CentOS выполнено.

blank

Занимаюсь IT с 2007 года. Всё началось с увлечения — разгона компьютерного оборудования. Много воды и азота утекло с тех пор... Сейчас уже более 3х лет со своей командой оказываю комплексную поддержку и продвижение бизнеса: SEO, Яндекс.Директ, рассылки и удалённое обслуживание серверов. Буду рад помочь, обращайтесь!

Оцените автора
IT для специалистов и бизнеса
Добавить комментарий

  1. blank
    xXxLeVIaFaNxXx

    /dev/sda1 * 2048 2099199 1048576 83 Linux
    /dev/sda2 2099200 2621439999 1309670400 8e Linux LVM
    /dev/sda3 2621440000 4294967294 836763647+ 83 Linux
    /dev/sda4 4294967295 7245660159 1475346432+ 83 Linux

    а что делать в такой ситуации (MBR+CentOS)

    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    fd0 2:0 1 4K 0 disk
    sda 8:0 0 5,2T 0 disk
    ├─sda1 8:1 0 1G 0 part /boot
    ├─sda2 8:2 0 1,2T 0 part
    │ ├─centos_mail-root 253:0 0 90G 0 lvm /
    │ ├─centos_mail-swap 253:1 0 3,9G 0 lvm [SWAP]
    │ └─centos_mail-data 253:2 0 2,9T 0 lvm /data
    ├─sda3 8:3 0 798G 0 part
    │ └─centos_mail-data 253:2 0 2,9T 0 lvm /data
    └─sda4 8:4 0 1,4T 0 part
    └─centos_mail-data 253:2 0 2,9T 0 lvm /data
    sr0 11:0 1 1024M 0 rom

    Ответить
    1. blank
      Игорь Овчаренко автор

      Операции с LVM аналогичны.

      Ответить
  2. blank
    Aleksey Danilov

    Вы дважды пишите о том что надо перезагружать машину, вы в своем уме вообще? Как можно писать что “алгоритм един”, а если у вас прод в банковской системы и вы его два раза будете ребтать что бы диск расширить?

    Ответить
    1. blank
      Kosmos

      Прод банковской системы на единственном сервере? Смешно.

      Ответить
  3. blank
    Владимир Бабкин

    Насчет перезагрузки после создания раздела диска, перезагружаться необязательно.
    Можно просто перечитать заново разделы заново:
    partx -a /dev/sdX
    где sdX ваш диск

    Ответить
    1. blank
      Игорь Овчаренко автор

      Спасибо за отличное дополнение, обязательно внесу в статью!

      Ответить