Назад | Перейти на главную страницу

Как увеличить размер гостевого диска KVM, используя LVM VG в качестве пула хранения?

Хост-сервер KVM работает под управлением CentOS 6.5, а группа томов LVM storage_pool используется в качестве основного пула хранения для KVM.

Гость Ubuntu устанавливается с использованием файловой системы ext4 и монтирует весь / dev / vda1 как /. Это конфигурация гостевого диска:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/storage_pool/kvmguest.img'/>
  <target dev='vda' bus='virtio'/>
  <alias name='virtio-disk0'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>

Как лучше всего увеличить размер гостевого диска? В VG много свободного места.

Я нашел несколько примеров, но большинство из них также используют LVM внутри гостей или не полностью применимы. Насколько я понимаю, распространенным методом является создание большего LV в том же VG, выключение гостя, передача данных, редактирование конфигурации для использования нового LV?

Заранее благодарим за любые предложения или указатели

Нет необходимости выключать гостя (по крайней мере, в 2019 году).

Просто

lvextend -L+<size>G /dev/<group>/<volume>

затем

virsh blockresize <domain> /dev/<group>/<volume> --size <newsize>

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

В гостевой ОС Windows вы можете делать

diskpart

list volume

select volume <n>

extend

Это точные шаги, которые я выполнил, чтобы расширить диск C: гостя Windows 10, работающего как домен KVM под Ubuntu 19.04 с qemu 3.1.0.

Это процедура, которой я придерживался:

  1. Расширьте логический том гостя kvm

    # lvextend -L+50G /dev/storage_pool/guest.img
    
  2. Завершите работу гостя kvm и отключите логический том

    # virsh shutdown guest
    # lvchange -a n /dev/storage_pool/guest.img
    
  3. Перечислите и отметьте информацию о разделах гостя kvm, особенно о первом секторе. Если он не отображает секторы, вам может потребоваться добавить переключатель «-u» или «-u секторы».

    # fdisk -l /dev/storage_pool/guest.img
    
  4. Удалите и воссоздайте раздел, чтобы заполнить все расширенное пространство, убедитесь, что вы используете сектора как единицы, и чтобы выбрать тот же самый первый сектор (обычно 2048, если раздел выровнен), вы можете использовать команду fdisk 'u' для переключения между единицами

    # fdisk /dev/storage_pool/guest.img
    Command (m for help): d
    Partition number (1-4): 1
    Command (m for help): n
    Command action
       e   extended
       p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First sector (...): 2048
    Last sector...: hit enter and use the default last sector
    Command (m for help): a
    Partition number (1-4): 1
    Command (m for help): w
    
  5. Откройте файловую систему ext3 / 4 и измените ее размер

    # kpartx -a -v /dev/storage_pool/guest.img
    # e2fsck -p -f /dev/mapper/storage_pool-guest.img1
    # resize2fs /dev/mapper/storage_pool-guest.img1
    # e2fsck -p -f /dev/mapper/storage_pool-guest.img1
    # kpartx -d -v /dev/storage_pool/guest.img
    
  6. Активируйте логический том и запустите гостевой kvm

    # lvchange -a y /dev/storage_pool/guest.img
    # virsh start guest
    

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

  1. завершите работу гостя (в моем случае - debian 7.0) обычным способом.

  2. расширить "исходный" LV (конечно, в VG хоста), например, на 5G. Для этого вы должны быть root / sudo на хосте:

    lvextend -L + 5G / dev / YourStoragePoolVG / YourVirtualMachinesVGToExtend

  3. Откройте новый расширенный lv (т. Е. «Диск» вашей виртуальной машины) в gparted:

    gparted / dev / mapper / YourStoragePoolVG-YourVirtualMachinesVGToExtend

  • Примечание: вы должен используйте путь "/ dev / mapper / ...", не "/ dev / dm-77" или "/ dev / YourStoragePoolVG / ..." или другое (похоже, это ошибка / особенность LVM)!
  1. Поиграйте с разделами на измененном томе (как обычно, используйте графический интерфейс)
  • Примечание. Обратите внимание на предупреждения о потере данных, типах файловых систем и т. Д.!
  • Примечание: будьте осторожны.
  • В gparted, вы можете изменять размер разделов и перемещать их в таблице разделов, хранящейся на диске virtio в LV.
  • Расширение одного или нескольких разделов - ИМХО не проблема. Для сжатия раздела / fs используйте Google ...
  • gparted также адаптирует файловые системы на разделах (не только сами разделы.
  1. Перезагрузите виртуальную машину. Теперь он видит измененные разделы.

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

Всем, кто ищет ответ на этот вопрос, нужно проверить это:

Гость KVM не распознает новый размер необработанного диска после lvresize

думаю virsh blockreisze намного лучше чем fdisk или parted.

Это просто - после загрузки LVEXTEND | LVRESIZE хоста в виртуальную машину с ISO-образа LiveCD с GPARTED на борту. После завершения загрузки с компакт-диска запустите GPARTED с именем корневого раздела, используемым внутри виртуальной машины:

$ gparted /dev/vda1" # for VirtIO /dev/vda

или

$ gparted /dev/sda1" # for SATA emulated /dev/sda

и выполните изменение размера раздела обычным способом GPARTED