Как увеличить или расширить размер диска виртуальной машины KVM

Иногда появляется необходимость расширить или добавить дисковое пространство для вашей виртуальной машины, чтобы удовлетворить растущие требования к программному обеспечению. KVM использует QEMU, который поддерживает несколько типов изображений, среди которых raw, cow, qcow, qcow2, vmdk, vdi и т.д.

Я использую наиболее гибкий тип qcow2, который поддерживает копирование при записи, шифрование, сжатие и снимки виртуальной машины

Шаг 1: выключить виртуальную машину

Прежде чем вы сможете расширить виртуальный диск вашей гостевой машины, вы должны сначала выключить его.

$ sudo virsh list
 ID   Имя        Состояние
----------------------------
 23   DB_1       работает
 24   DB_2       работает
 30   WEB_1      работает
 34   CentOS_9   работает

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

$ sudo virsh shutdown CentOS_9
Domain 'CentOS_9' is being shutdown

Прежде чем приступить к управлению дисками, убедитесь, что он действительно отключен.

$ sudo virsh list
 ID   Имя        Состояние
----------------------------
 23   DB_1       работает
 24   DB_2       работает
 30   WEB_1      работает

Шаг 2: Расширение диска гостевой ОС

Найдите путь к вашей виртуальной ОС

$ sudo virsh domblklist CentOS_9
 Назначение   Источник
-------------------------------------------
 vda          /home/images/CentOS_9.qcow2

Вы можете получить ту же информацию из GUI Virtual Machine Manager

$ sudo qemu-img info /home/images/CentOS_9.qcow2
image: /home/images/CentOS_9.qcow2
file format: qcow2
virtual size: 50 GiB (53695545344 bytes)
disk size: 50 GiB
cluster_size: 65536
Format specific information:
    compat: 1.1
    compression type: zlib
    lazy refcounts: true
    refcount bits: 16
    corrupt: false
    extended l2: false

Шаг 3: Расширение гостевой виртуальной машины

Так как мы знаем где находится наш диск нашей виртуальной машины, давайте расширим его до необходимого размера.

$ sudo qemu-img resize /home/images/CentOS_9.qcow2 +30G
Image resized.

Вы также можете изменить размер с помощью команды virsh. Это требует, чтобы домен был запущен.

$ sudo virsh start CentOS_9
Domain 'CentOS_9' started

Вносим изменения в размер

$ sudo virsh blockresize CentOS_9 /home/images/CentOS_9.qcow2 80G
Размер блочного устройства «/home/images/CentOS_9.qcow2» изменен.

Подтвердите размер диска с помощью команды fdisk.

$ sudo fdisk -l /home/images/CentOS_9.qcow2
Disk /home/images/CentOS_9.qcow2: 50,01 GiB, 53695545344 bytes, 104874112 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Шаг 4: Расширяем раздел VM

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

$ fdisk -l
Диск /dev/vda: 80 GiB, 53687091200 байт, 104857600 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x4263309d

Устр-во    Загрузочный  начало     Конец   Секторы Размер Идентификатор Тип
/dev/vda1  *              2048   2099199   2097152     1G            83 Linux
/dev/vda2              2099200 104857599 102758400    49G            8e Linux LVM

Если вывод команды у вас выглядит так, как показано выше – все хорошо. У вас пока только два раздела – /dev/vda1 и /dev/vda2. Можно создать еще два.

Шаг 5: Создаем новый раздел

Сервер видит 80 ГБ места на диске. Начинаем создавать новый раздел командой fdisk /dev/vda. После запроса ввода команды, указываем n, чтобы создать новую партицию:

$ fdisk /dev/sda

The number of cylinders for this disk is set to 1305.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Создаем новый раздел:

Command (m for help): n

Первичный (primary):

: p

Номер раздела оставляем тот, который предлагает система (просто нажимаем Enter).

Первый и последний сектора также оставляем по умолчанию для использования всего дискового пространства (еще два раза Enter).

Задаем тип раздела:

: t

Выбираем номер раздела (в моем примере создавался раздел 3):

: 3

Командой L можно посмотреть список всех типов, но нас интересует конкретный — LVM (8e):

: 8e

Сохраняем изменения:

: w

Проинформируем систему, что в таблице разделов произошли изменения:

$ partprobe

Успешным результатом этого шага будет вот такой вывод команды fdisk, где мы видим новую партицию:

fdisk -l
Диск /dev/vda: 80 GiB, 53687091200 байт, 104857600 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x4263309d

Устр-во    Загрузочный  начало     Конец   Секторы Размер Идентификатор Тип
/dev/vda1  *              2048   2099199   2097152     1G            83 Linux
/dev/vda2              2099200 104857599 102758400    49G            8e Linux LVM
/dev/vda3            104857600 167772159  62914560    30G            8e Linux LVM

Шаг6: Расширяем логический раздел LV с новым разделом

Теперь наша задача следующая: создаем физический том (PV) из нового раздела, расширяем группу томов (VG) из под нового объема PV, а затем уже расширяем логический раздел LV. Звучит сложно, но поверьте, это легко!

Итак, по шагам: создаем новый физический том (PV). Важно: у вас может быть не /dev/vda3, а другая, 4, например, или вообще /dev/vdb3! Не забудьте заменять в командах разделы, согласно вашей инсталляции.

$ pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created

Отлично. Теперь находим группу томов (VG, Volume Group). А точнее, ее название. Делается это командой vgdisplay:

$ vgdisplay
--- Volume group ---
VG Name               cs
...

Найдено. Наша VG называется cs. Теперь мы ее расширим из пространства ранее созданного PV командой vgextend:

$ vgextend cs /dev/vda3
Volume group "cs" successfully extended

Теперь расширяем LV из VG. Найдем название нашей LV, введя команду lvs:

$ lvs
  LV   VG Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cs -wi-ao---- <44,00g                                                    
  swap cs -wi-ao----   5,00g

cs – найдено. Расширяем эту LV, указывая до нее путь командой lvextend /dev/cs/root /dev/vda3:

$ lvextend /dev/cs/root /dev/vda3
Extending logical volume root to 30 GB
Logical volume root successfully resized

Почти у финиша. Единственное, что осталось, это изменить размер файловой системы в VG, чтобы мы могли использовать новое пространство. Используем команду resize2fs:

$ resize2fs /dev/cs/root
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/cs/root is mounted on /; on-line resizing required
Performing an on-line resize of /dev/cs/root to 2457600 (4k) blocks.
The filesystem on /dev/cs/root is now 2457600 blocks long.

Готово.

Проверяет доступное место командой df -h

Получаете ошибку в resize2fs: Couldn’t find valid filesystem superblock

Это значит, что у вас используется файловая система формата XFS, вместо ext2/ext3. Чтобы решить эту ошибку, дайте команду xfs_growfs:

$ xfs_growfs /dev/cs/root

Micro
Author: Micro

///

Поделиться в социальных сетях
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии