
Виртуальная машина KVM поддерживает подключение дополнительных дисков без остановки основной системы. Для расширения хранилища важно заранее определить формат образа, оптимальный размер и способ интеграции в гостевую ОС.
Подключение диска можно выполнять через графический интерфейс virt-manager или через командную строку с использованием virsh. После добавления диска важно убедиться, что гостевая ОС корректно его распознает и при необходимости выполнить форматирование и монтирование.
Регулярная проверка доступности и производительности диска позволяет избежать перегрузок и потери данных. Использование утилит lsblk, fdisk и iostat помогает контролировать состояние подключенного хранилища на всех этапах работы.
Проверка текущих дисков виртуальной машины

Перед добавлением нового диска важно зафиксировать текущее состояние хранилища виртуальной машины. Это позволяет избежать конфликтов имен устройств и определить, сколько свободного места доступно.
- Откройте терминал на хост-сервере.
- Выполните команду: virsh domblklist <имя_VM>
- Запишите имена устройств и соответствующие файлы образов.
Для детального анализа дисков внутри гостевой ОС применяются утилиты:
- lsblk – показывает блоковые устройства, их размер и точку монтирования.
- df -h – отображает текущую загрузку каждого раздела.
Рекомендуется фиксировать все идентификаторы устройств (/dev/vda, /dev/vdb), чтобы при добавлении нового диска не возникло путаницы и изменения не затронули критические разделы.
Создание нового образа диска для VM

Новый диск для виртуальной машины KVM создается через утилиту qemu-img. Рекомендуется заранее определить формат и размер диска, чтобы он соответствовал нагрузке гостевой ОС.
Пример команды для создания образа:
qemu-img create -f qcow2 /var/lib/libvirt/images/new_disk.qcow2 50G
Параметры команды:
| Параметр | Описание |
|---|---|
| -f qcow2 | Формат диска. qcow2 поддерживает снимки и сжатие, raw обеспечивает максимальную производительность. |
| /var/lib/libvirt/images/new_disk.qcow2 | Полный путь к создаваемому файлу образа. |
| 50G | Размер нового диска в гигабайтах. |
Для распределенного использования ресурсов рекомендуется проверять наличие свободного места на хосте. Команда df -h позволяет контролировать доступное пространство и избежать ошибок при создании образа.
Настройка формата и размера диска
При создании диска важно учитывать предполагаемую нагрузку и рост данных. Размер нового диска рекомендуется планировать с запасом 20–30% от текущих требований приложений. Для виртуальных серверов с базами данных и логами лучше предусмотреть отдельный диск размером не менее 50–100 ГБ.
Изменить формат существующего диска можно с помощью команды qemu-img convert:
qemu-img convert -O qcow2 /var/lib/libvirt/images/old_disk.raw /var/lib/libvirt/images/old_disk.qcow2
Перед изменением размера диска рекомендуется проверить доступное место на хосте командой df -h и резервировать критические данные. Для расширения уже существующего диска используется команда:
qemu-img resize /var/lib/libvirt/images/new_disk.qcow2 +20G
Это увеличит пространство на 20 ГБ, сохранив текущие данные.
Подключение диска через virt-manager
Для добавления нового диска к виртуальной машине с помощью virt-manager откройте интерфейс управления виртуальными машинами и выберите нужную VM.
Шаги подключения диска:
- Перейдите в Настройки выбранной виртуальной машины.
- Выберите раздел Добавить оборудование и нажмите Диск.
- Укажите путь к ранее созданному образу диска (например, /var/lib/libvirt/images/new_disk.qcow2).
- Выберите тип подключения: VirtIO для оптимальной производительности или IDE для совместимости.
- Настройте размер кеша и режим доступа: default или writeback в зависимости от требований к скорости записи.
- Нажмите Применить и OK, чтобы подключение вступило в силу.
После подключения рекомендуется перезапустить виртуальную машину, чтобы гостевая ОС корректно распознала новый диск и обеспечила его доступность для дальнейшего форматирования и монтирования.
Добавление диска с помощью команды virsh

Для подключения нового диска через командную строку используется утилита virsh. Этот метод позволяет управлять виртуальными машинами без графического интерфейса.
Создайте XML-файл с описанием диска, например new_disk.xml:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/new_disk.qcow2'/>
<target dev='vdb' bus='virtio'/>
</disk>
Добавление диска выполняется командой:
virsh attach-device <имя_VM> new_disk.xml --persistent
Параметры команды:
- —persistent – сохраняет подключение диска после перезапуска виртуальной машины.
- target dev=’vdb’ – указывает имя устройства внутри гостевой ОС.
После выполнения команды проверьте список дисков командой virsh domblklist <имя_VM> и убедитесь, что устройство появилось в гостевой системе для дальнейшего форматирования и монтирования.
Обнаружение нового диска внутри гостевой ОС

lsblk
Для просмотра таблицы разделов применяйте fdisk -l:
sudo fdisk -l
Если диск не отображается сразу, выполните команду сканирования шины SCSI:
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan
После успешного обнаружения устройства рекомендуется зафиксировать его идентификатор, например /dev/vdb, и подготовить для форматирования и монтирования. Использование blkid позволяет определить тип файловой системы на новом диске.
Форматирование и монтирование нового диска

После обнаружения нового диска необходимо подготовить его к использованию в гостевой ОС. Первым шагом выполняется форматирование в выбранную файловую систему.
Пример форматирования в ext4:
sudo mkfs.ext4 /dev/vdb
Для других типов файловых систем:
- xfs:
sudo mkfs.xfs /dev/vdb - ntfs:
sudo mkfs.ntfs /dev/vdb
После форматирования создайте точку монтирования:
sudo mkdir /mnt/new_disk
Подключение диска выполняется командой:
sudo mount /dev/vdb /mnt/new_disk
Для автоматического монтирования при загрузке добавьте запись в /etc/fstab:
/dev/vdb /mnt/new_disk ext4 defaults 0 2
Рекомендуется проверить доступность диска командой df -h и убедиться, что новый раздел отображается с правильным размером и точкой монтирования.
Проверка доступности и производительности диска
Проверка доступности:
- Команда lsblk отображает все блоковые устройства и точки монтирования.
- Команда df -h показывает использование диска и доступное пространство.
- Команда blkid позволяет убедиться в правильности файловой системы.
Проверка производительности:
- iostat -x 1 5 – измеряет скорость чтения и записи, загрузку устройства.
- dd для тестирования скорости записи, например: dd if=/dev/zero of=/mnt/new_disk/testfile bs=1G count=1 oflag=direct.
- fio – для более детального тестирования разных типов нагрузки (чтение/запись, случайный и последовательный доступ).
Регулярная проверка доступности и мониторинг производительности позволяют своевременно выявлять проблемы с подключенным диском и предотвращать потерю данных.
Вопрос-ответ:
Как проверить, какие диски уже подключены к виртуальной машине KVM?
Для просмотра подключенных дисков используется команда virsh domblklist <имя_VM>, которая выводит список устройств и путь к каждому образу. Внутри гостевой ОС можно использовать lsblk и fdisk -l для детальной информации о разделах и их размерах. Это помогает избежать конфликтов при добавлении нового диска.
В чем разница между форматами qcow2 и raw при создании диска?
Формат qcow2 поддерживает динамическое расширение файла и создание снимков, что удобно для тестирования и резервирования. Формат raw не имеет накладных расходов на метаданные и обеспечивает максимальную скорость ввода-вывода, что важно для баз данных и высоконагруженных приложений. Выбор зависит от требований к производительности и функциональности.
Как подключить новый диск к виртуальной машине через командную строку?
Создается XML-файл с описанием диска, где указываются путь к образу, тип устройства и шина подключения. Затем используется команда virsh attach-device <имя_VM> <файл.xml> —persistent. Опция —persistent сохраняет подключение после перезапуска VM, а указание bus=’virtio’ обеспечивает высокую скорость ввода-вывода.
Каким образом проверить, что новый диск доступен и готов к использованию в гостевой ОС?
После подключения диска выполните lsblk для отображения устройства и точки монтирования. Затем создайте файловую систему командой mkfs.ext4 /dev/vdb или другой подходящей. Для монтирования используйте mount /dev/vdb /mnt/new_disk. После этого команда df -h покажет доступное пространство и подтвердит корректность подключения.
