Qemu kvm изменить размер диска

Обновлено: 02.07.2024

Мне нужно увеличить размер диска для виртуальной машины с Windows 10, работающей на RHEL 7.
У меня есть том объемом 1000 ГБ, который я отвел для виртуальных гостей.
/dev/sda5 1024522480 190770428 833752052 19% /virt1
На этом томе я установил 4 виртуальные машины
ll /virt1
-rw-------. 1 root root 107390828544 29 августа 07:20 vm1.img
-rw-r--r-- 1 qemu qemu 105530851328 21 февраля 11:26 win10x64-sda
-rw-r--r-- 1 qemu qemu 31798001664 29 августа 07:16 win70-sda
-rw-r--r-- 1 root root 37760466944 29 августа 07:15 win7a-sda
Много места не используется.
Как увеличить размер диска для виртуальной машины win10x64-sda
со 105 Гб до 300 Гб?
Справочные страницы для virt-filesystems и virt-resize мне непонятны.

Ответы

Предполагая, что ваши виртуальные диски находятся в каталоге /var/lib/libvirt/images и виртуальный диск имеет формат qcow2, выполните:

sudo qemu-img изменить размер /var/lib/libvirt/images/ .qcow2 +195G

Если диск находится в другом каталоге и/или имеет формат img, соответствующим образом измените путь и замените qcow2 на img.

Выполните эту операцию во время выключения виртуальной машины и увеличьте файловую систему позже из Windows, как обычно. :)

Спасибо. Как узнать, где находятся виртуальные диски?

В /var/lib/libvirt/images у меня есть:

-rw-------. 1 root root 21478375424 7 сентября 2018 г. win10.qcow2

но поскольку у меня 4 виртуальные машины, как показано в моем первом сообщении, я не уверен, что это правильная. Где еще могут находиться образы дисков? Физически они находятся в разделе /virt1 размером 1000 ГБ /dev/sda5

.

Файл /var/lib/libvirt/images/win10.qcow2 может не соответствовать виртуальной машине win10x64-sda. Размер файла указан как 21 Гб, что теперь соответствует виртуальной машине.

du -m говорит, что на самом деле он занимает всего 5 МБ, в основном это разреженный файл.

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

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

Что это значит: увеличить файловую систему позже из Windows, как обычно. ? Что это за «обычная» процедура?

Я установил гостевую систему Ubuntu на хосте CentOS KVM с исходным объемом дискового пространства 6 ГБ. Как мне увеличить дисковое пространство гостевой Ubuntu из командной строки?


13 ответов 13

  1. остановить виртуальную машину
  2. запустите qemu-img resize vmdisk.img +10G, чтобы увеличить размер образа на 10Gb
  3. запустите виртуальную машину, измените размер разделов и структуру LVM в ней как обычно

запустите виртуальную машину, измените размер разделов и структуру LVM в ней как обычно. Как это сделать? Пожалуйста, объясните это.

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

Чтобы изменить размер разделов и LVM, выполните все шаги, описанные в этой замечательной статье: sandilands.info/sgordon/…

Онлайн-метод (с использованием qemu, libvirt и virtio-block)

Хорошо это или плохо, но приведенные ниже команды будут выполняться, даже если целевой виртуальный диск смонтирован. Это может быть полезно в средах, где диск нельзя размонтировать (например, в корневом разделе), виртуальная машина должна оставаться включенной, а владелец системы готов взять на себя риск повреждения данных. Чтобы устранить этот риск, вам нужно будет войти в виртуальную машину и сначала отключить целевой диск, что не всегда возможно.

Выполните следующие действия в гипервизоре KVM.

Увеличить размер самого файла образа диска (указать величину увеличения):

Получить имя virtio-устройства через оболочку libvirt (в данном примере drive-virtio-disk0):

Сообщите драйверу virtio об обнаружении нового размера (укажите общую новую емкость):

Затем войдите в виртуальную машину. Запуск dmesg должен сообщить, что виртуальный диск обнаружил изменение емкости. На этом этапе измените размер разделов и структуру LVM по мере необходимости.

Справочная страница для qemu-img (у меня датирована 08 мая 2016 г.) гласит: «Предупреждение: никогда не используйте qemu-img для изменения образов, используемых работающей виртуальной машиной или любым другим процессом; это может разрушить образ. . Кроме того, имейте в виду, что запрос изображения, которое изменяется другим процессом, может столкнуться с несогласованным состоянием». Поэтому я не уверен, что (первый шаг) безопасен, когда виртуальная машина все еще работает.

Это отлично сработало для меня. Использование блочных устройств ceph и virtio. мы храним данные приложения/базу данных MySQL на отдельном разделе. Остановите приложения, обращающиеся к этому разделу. Размонтируйте его. Измените размер. фск. затем установите его снова с новым размером. Выключение не требуется.

Эти вопросы о сбое сервера похожи, но более конкретны: изменение размера онлайн-диска KVM? & Centos Xen, изменяющий размер раздела DomU и группы томов. Первый задает вопрос о том, как увеличить гостевую систему KVM, пока она находится в сети, а второй относится к XEN с использованием LVM. Я спрашиваю, как это сделать, когда KVM отключен.

Одна вещь, о которой следует помнить при работе с гостями KVM, заключается в том, что разделы, которые они используют внутри, могут влиять на то, какой метод вы можете использовать для увеличения их дискового пространства.

Суть этого метода заключается в следующем:

Теперь, имея в руках файл mykvm.img большего размера, загрузите gparted и расширьте существующий раздел на только что добавленное дисковое пространство. Этот последний шаг фактически расширяет раздел ОС, чтобы он мог использовать дополнительное пространство.

Вот шаги, которые я примерно выполнил, чтобы изменить размер гостевой системы KVM, которая использовала LVM для внутреннего использования.

  1. Выключить ВМ
  2. добавьте больше места в "файл изображения" гостя (что-то вроде: cat old.img 10G_addon.raw >> new.img
  3. запустите виртуальную машину (используя только что созданный файл new.img)

запустить fdisk внутри виртуальной машины, удалить и заново создать раздел LVM

Изменить размер физического тома LVM

Изменить размер логического тома LVM

Расширить файловую систему

Выше приведен мой пример, но я следовал инструкциям на этом веб-сайте


Изменить размер и расширить внутренние разделы за один шаг

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

Ключевая команда здесь: virt-resize

  • это утилита libvirt
  • он может расширить гостевой диск И расширить разделы внутри за один шаг
  • он копирует диск, а не расширяет его на месте
    • это хорошо, потому что у вас есть нетронутый оригинал в качестве резервной копии

    Измените размер виртуального устройства:

    Вот пример увеличения объема диска vda с 50 ГБ до 51 ГБ для виртуальной машины в облачной среде.

    Теперь взгляните на детали файла изображения .qcow2:

    Теперь изменим размер блочного устройства vda:

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

    Чтобы проверить, используете ли вы LVM, запустите sudo pvs; Судо ВГС; sudo lvs, вы получите что-то вроде этого:

    если ОС виртуальной машины использует LVM. В приведенном выше примере виртуальная машина имеет виртуальный диск объемом 30 Гбайт, настроенный с помощью LVM с одной группой томов vgWWW, содержащей два логических тома, один для подкачки и один для всего остального.

    Если в виртуальной машине используется LV:

    1. Выключите ВМ
    2. На хосте создайте новый файл виртуального диска и добавьте его к виртуальной машине.
    3. Перезапустите ВМ и войдите в систему
    4. Отметьте новый диск как физический том для LVM с помощью sudo pvcreate /dev/vdb
    5. Расширьте группу томов, чтобы включить этот новый блок диска, с помощью sudo vgextend vgWWW /dev/vdb
    6. Расширьте логический том, чтобы он занял новое пространство, с помощью sudo lvextend --extents +100%FREE /dev/vgWWW/root (или что-то вроде sudo lvextend --size +8G /dev/vgWWW/root, если вы этого не сделаете). не хотите увеличивать его полностью, этот пример добавит 8 Гб к объему)
    7. Измените размер файловой системы с помощью resize2fs /dev/vgWWW/root

    Примечание. вышеприведенное предполагает, что имена vg/lv такие же, как в моем примере, что маловероятно, измените соответствующим образом, также, если на виртуальной машине уже был виртуальный диск с именем vdb, новый будет что-то еще ( vdc и т. д.)

    Примечание. resize2fs работает только с файловыми системами ext2, ext3 и ext4. Если вы используете что-то другое, он выдаст ошибку и ничего не сделает.

    Примечание: поскольку вы изменяете размер активной файловой системы, resize2fs не предложит вам сначала запустить fsck, как это было бы для несмонтированной файловой системы, она просто продолжит работу. Возможно, вы захотите запустить проверку файловой системы только для чтения на наличие проблем, прежде чем продолжить.

    Иногда веб-мастерам необходимо увеличить размер работающей ВМ. Для KVM VM мы можем использовать QEMU для увеличения размера диска виртуальной машины.

    В рамках наших услуг по управлению сервером мы регулярно помогаем нашим клиентам с запросами, связанными с дисками.

    Давайте сегодня обсудим шаги по увеличению размера виртуальной машины в KVM.

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

    Иногда нам может понадобиться увеличить дисковое пространство виртуальной машины. Процесс увеличения размера диска виртуальной машины обычно включает три этапа.

    • Выключить ВМ
    • Найти диск ОС
    • Расширить диск ВМ

    Теперь давайте подробно рассмотрим каждый из этих шагов.

    Выключите ВМ

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

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

    Найти диск ОС

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

    Здесь виртуальная машина находится в /var/lib/libvirt/images/rhel8.qcow2. Чтобы просмотреть настройки виртуального диска виртуальной машины KVM, используйте следующую команду:

    увеличить размер vm kvm

    Здесь есть два поля, представляющие размер:

    • virtual_size – размер виртуального диска, устанавливаемый при создании или расширении диска (в данном примере максимальный размер диска – 30 ГБ).
    • размер_диска — текущий размер файла на диске, т. е. сколько места занимает диск на физическом сервере. В нашем примере виртуальный диск занимает всего 2 ГБ.

    Расширить диск ВМ

    Мы можем использовать команду qemu-img resize, чтобы увеличить размер диска до нужной нам емкости. Однако эта команда не может изменить размер изображения со снимками.

    Поэтому нам нужно найти и удалить все снимки ВМ с помощью следующих команд:

    Теперь мы можем расширить диск, используя «+» перед емкостью диска.

    Мы также можем изменить размер с помощью команды virsh. Для этого домен должен быть запущен.

    Теперь включите виртуальную машину и проверьте расположение дисков:

    Общая емкость диска ВМ теперь изменена с 30 ГБ до 40 ГБ. Затем пользователям потребуется расширить раздел ОС.

    [Нужна дополнительная помощь, чтобы увеличить размер виртуальной машины KVM? – Мы доступны 24*7]

    Заключение

    Короче говоря, процесс увеличения размера диска ВМ обычно включает три этапа: завершение работы ВМ, поиск диска ОС и расширение диска ВМ. Сегодня мы увидели, как с этой задачей справляются наши инженеры службы поддержки.

    Похожие сообщения:

    ЗАЩИТИТЕ ВАШ СЕРВЕР ОТ СБОЯ!

    Никогда больше не теряйте клиентов из-за низкой скорости сервера! Позвольте нам помочь вам.

    Наши специалисты по серверам будут контролировать и обслуживать ваш сервер круглосуточно и без выходных, чтобы он оставался молниеносно быстрым и безопасным.

    В этом кратком руководстве объясняется, что такое инструмент командной строки Virt-size и как мы можем увеличить или увеличить размер диска виртуальной машины KVM с помощью инструмента Virt-resize в Linux.

    На днях я заметил, что на одной из моих виртуальных машин KVM не хватает места на диске. Мне не удалось установить новые приложения или сохранить файлы из-за нехватки места на диске. Чтобы решить эту проблему, я просто увеличил размер диска виртуальной машины KVM с помощью команды virt-size. Я лично протестировал приведенные ниже шаги, чтобы увеличить размер диска виртуальной машины CentOS 8 KVM, и все сработало, как и ожидалось.

    Инструмент Virt-Resize

    Virt-resize — это инструмент командной строки для изменения размера диска виртуальной машины. Используя virt-resize, мы можем как увеличить, так и уменьшить размер диска виртуальной машины. Мы также можем удалить разделы внутри виртуального диска с помощью команды virt-resize. Обратите внимание, что virt-resize живые машины. Гостевые системы следует выключать перед изменением размера их образов дисков.

    Чтобы увеличить размер диска виртуальной машины, мы сначала создаем образ диска большего размера, чем исходный образ. Затем мы копируем исходное изображение в целевое изображение и, наконец, изменяем его размер.

    Virt-resize является частью пакета libguestfs-tools. Чтобы установить пакет libguestfs-tools в Debian, Ubuntu и их производных, выполните:

    Чтобы установить пакет libguestfs-tools в Fedora, RHEL и его клонах, выполните:

    В Fedora 34 пакет guestfs-tools предоставляет инструмент virt-resize. Итак, если вы используете Fedora 34, установите пакет guestfs-tools, как показано ниже:

    Теперь давайте посмотрим, как увеличить размер диска виртуальной машины с помощью команды virt-resize.

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

    В этом руководстве я буду использовать образ диска виртуальной машины CentOS 8 с именем centos8.qcow2 . Я сохранил этого мага в моем текущем рабочем каталоге. Вы можете использовать команду virsh dumpxml, чтобы найти образ диска, размер которого вы хотите изменить.

    Пример:

    Замените centos8 именем вашей виртуальной машины в приведенной выше команде.

    Найдя образ диска, размер которого нужно изменить, проверьте сведения о разделе внутри этого образа диска. Чтобы распечатать сведения о разделах и их размер образа диска, выполните:

    Пример вывода:

    Отобразить текущие разделы и их размеры с помощью команды virt-filesystems в Linux

    Отображение текущих разделов и их размеров с помощью команды virt-filesystems в Linux

    Как видно из приведенного выше вывода, мой образ диска имеет только два раздела, а именно /dev/sda1 размером 1 ГБ и /dev/sda2 размером 19 ГБ. Общий размер образа диска составляет 20 ГБ.

    • увеличить общий размер образа диска с 20 ГБ до 30 ГБ,
    • увеличить размер первого раздела /dev/sda1 с 1,0 ГБ до 1,5 ГБ,
    • Расширьте второй раздел /dev/sda2, чтобы заполнить оставшееся место.

    Virt-resize не может изменять размер образов дисков на месте. Кроме того, Virt-resize не следует использовать на живых виртуальных машинах. Перед изменением размера образа диска выключите виртуальную машину и сделайте резервную копию исходного образа диска.

    Приведенная выше команда переименует текущий образ диска с именем centos8.qcow2 в centos8.qcow2.backup .

    Создайте новый образ диска с тем же именем и размером 30 ГБ с помощью команды:

    Пример вывода:

    Убедитесь, что размер вновь созданного диска составляет 30 ГБ:

    Пример вывода:

    Создайте новый образ виртуального диска с помощью команды qemu-img

    Создайте новый образ виртуального диска с помощью команды qemu-img

    Теперь увеличьте размер образа диска виртуальной машины KVM с помощью команды:

    • --resize /dev/sda1=+500M — увеличивает размер раздела /dev/sda1 до 500 МБ.
    • --expand /dev/sda2 — изменяет размер раздела /dev/sda2, чтобы заполнить все оставшееся пространство. В моем случае он будет изменен с 19,0 ГБ до 28,5 ГБ.
    • centos8.qcow2.backup — исходный входной образ диска.
    • centos8.qcow2 — это вновь созданный выходной образ диска.

    Пример вывода приведенной выше команды:

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

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

    Проверьте разделы и их размеры с помощью команды virt-filesystems:

    Пример вывода:

    Распечатать разделы и их размеры на диске виртуальной машины KVM с помощью команды virt-filesystems

    Распечатать разделы и их размеры на диске виртуальной машины KVM с помощью команды virt-filesystems

    Как видно из приведенного выше вывода, размер моего образа диска CentOS8 KVM был изменен с 20 ГБ до 30 ГБ.

    Теперь загрузите виртуальную машину с новым образом диска. Вы также можете создать новую виртуальную машину, используя образ Qcow2, как описано по следующей ссылке.

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

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

    Читайте также: