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

Автор Igor Ovcharenko | 15.12.2015

Как увеличить размер диска 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 выполнено.

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

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