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

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

Достаточно часто возникает необходимость изменить размер диска виртуальной машины — ну не рассчитали при создании образа диска. Тут есть два способа:

  • создать новый образ диска, отформатировать его и подключить к виртуальной машине с помощью команд virsh attach-disk или qemu attach-disk
  • изменить размер диска непосредственно в образе виртуальной машины.

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

Изменение производится одной командой

где /path/to/disk — путь до образа диска;

disk_size — числа, на который увеличивается или уменьшается (тогда — вместо +) размер диска;

G — единица измерения — гигабайт. Можно изменить размер диска на disk_size мегабайт — тогда M.

В результате работы этой команды в конце диска образа виртуальной машины KVM появляется disk_size гигабайт (или мегабайт) свободного, нараспределенного дискового пространства. Можно загрузить виртуальную машину и создать дополнительный раздел при помощи fdisk или parted, можно увеличить размер разделов при помощи parted.

В принципе все это можно сделать и на хосте, подключив диск при помощи NBD, с помощью тех-же fdisk или parted.

Таким образом можно изменять размер дисков в формате qcow2 и raw (можно еще и в qcow, но этот формат практически не используется).

увеличение диска виртуальной машины под kvm

требуется увеличить размер диска виртуальной машины, стоит centos диск lvm. Пробывал qemu-img resize размер образа увеличился. Как теперь увеличить раздел? df -h выводит: /dev/mapper/vg_bigeye3-lv_root 1.3G 1.2G 60M 96% / tmpfs 499M 0 499M 0% /dev/shm /dev/vda1 485M 32M 428M 7% /boot и ещё почему cfdisk при запуске показывает /dev/mapper/vg_bigeye3-lv_root как неразмечанную область?

не получается даже на 1Гб увеличить

lvextend -L+1g /dev/vg_bigeye3/lv_root Extending logical volume lv_root to 2.31 GiB Insufficient free space: 256 extents needed, but only 0 available

Сначала нужно расширить существующий physical volume или создать на пустом месте новый.

какой командой? если sudo cfdisk /dev/vg_bigeye3/lv_root то не получается

cfdisk /dev/vda (или как у тебя называется диск с pv, можно узнать при помощи команды pvdisplay). Может потребоваться запуск с livecd, но точно не помню, можешь попробовать и так. Затем pvresize /dev/vda2 (опять же какой именно диск — это из вывода pvdisplay узнаешь).

Да, как вариант можешь вообще загрузиться с gparted livecd и попробовать увеличить раздел, на котором pv.

ну, само собой надо pvresize, vgextend и тогда lvextend

спасибо за Ваши ответы, всё получилось!

Для тех кто столкнётся с подобной проблемой, привожу алгоритм её решения:

Увеличение размера раздела на виртуальной машине KVM 1) Останавливаем машину 2) Делаем бэкап 3) Смотрим размер образа qemu-img info centos_vm1.img 4) Увеличиваем его qemu-img resize centos_vm1.img +100G 5) Грузимся с livecd gparted и увеличиваем раздел на всё свободное место 6) Увеличиваем логический том lvextend -l +100%FREE /dev/vg_bigeye3/lv_root или lvextend -L+1G /dev/vg_bigeye3/lv_root 7) Увеличиваем размер файловой системы resize2fs /dev/mapper/vg_bigeye3-lv_root

1. 2. 3. . потом еще куда-то грузимся . . 7. жесть в общем.

увеличить диск на виртуальной машине kvm

На хостовой машине на centos поднята виртуализация kvm. Гостевым машинам отдаются разделы, нарезанные в LVM. Можно ли увеличить место гостевой машине, если в ней не используется LVM? Нагугливаются только варианты, в которых LVM и на хостовой машине и на гостевой. Соответсвенно создается для гостевой еще один раздел и потом физический том добавляется в логическую группу и дело сделано. Хотелось бы людское решение, если такое возможно, ибо на хостовой машине почему-то не канает после

Читайте также:  Масло для бензинового двигателя рено меган

Надеюсь делаете уже на госте?

Как именно не канает?

Что говорит «fdisk -l» из гостевой? Появились ли 2 неразбитых гига? Если появились, то теперь просто нужно добавить раздел, создать файловую систему и изменить fstab.

для начала qemu-img info /dev/vms/vds1 — подозреваю что оно покажет старый размер, и надо еще и сделать qemu-img resize

да тоже не канает. ((((((

У вас все зашибись, но свои дополнительные 2 гиг не вижу. в fdisk явно видно неразмеченное пространство на 2 гига.

Есть 1305 циллиндров, а юзается только 1045

Я бы сделал так:

С qcow2 и raw-образами у меня это без проблем работало. Возможно даже что увеличение диска работает на лету, но без рестарта гостя он не увидит изменения размера блочного устройства (возможно, есть способ обновить эту инфу на лету).

Думаешь стоит попробовать еще qemu-img resize?

А, надо расширить раздел. Самый тупой способ это удалить текущий и создать новый со стартовым блоком в том же месте. Раньше parted умел наращивать разделы, но из-за того что множество людей в ходе неправильного использования убили свои данные эту функциональность выкинули.

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

На остановленном госте (в virsh его действительно нету) после наращивания lvm resize2fs шлет подальше

. Гостя грузил. Вероятно надо действительно расширить раздел варварским методом. Хреновый конечно вариант.

Да, раздел размечался гостем. Хотелось бы красивое решение без «удалить текущий и создать новый со стартовым блоком в том же месте».

Если там есть разделы, а они там есть, то

Чета я гоню, откуда resize2fs узнает о +2G.

Смотри. Вот вывод:

В моих предыдущих сообщениях я для понятности заменил реально названный логический том backup на vds1. Расширил с 8 до 10 гигов. 2 гига пока у неуловимого Джо.

Попробуй как я выше написал, тока забэкапся.

На дебьяне модуль принадлежит пакету linux-image-$-amd64

Самый тупой способ это удалить текущий и создать новый со стартовым блоком в том же месте.

Поломал я тестовую виртуалку этим способом. Fdiskom снес раздел и создал. Попробую чуть позже заняться этим вопросом. Вот вроде решение нагуглилось в разделе «If LVM is *not* used also within the virtual machine disk». Хз будет работать или нет. Надеюсь что будет. Отпишусь как попробую.

по идее да. кроме того, виртуалка рестартовалась?

А выводов fdisk не сохранилось? Очень хочется посмотреть что было и что стало. Кстати, данные-то не погибли, тебе нужно каким-нить testdisk найти начала раздела.

виртуалка рестартовалась, но qemu-img resize — это годится насколько я понимаю только для образов в файлах, а не на LVM

На каком этапе не грузится? grub работает?

появляется приглашение grub

А дальше что происходит? Что грабу не нравится? Он раздел находит, ядро с initrd видит?

Потуши виртуалку и с мастер-машини натрави testdisk. Я надеюсь ФС ещё жива. Почему так получилось пока непонятно, нужно смотреть что testdisk скажет.

Прежде чем пускать testdisk сделай sudo sfdisk -d /dev/sda, после testdisk — тоже. Сравним что было до и что получилось после.

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

ТС, тебе не сказали, но надо было fdisk -u запускать, а так (без -u) ты по-новому раздел создал выравненный по цилиндру, а не как у тебя было.

Прежде чем пускать testdisk сделай sudo sfdisk -d /dev/sda, после testdisk — тоже. Сравним что было до и что получилось после.

Я не знаю уже в чем дело. На хостовой машине даже замонтироваться не получается.

Читайте также:  Устройство весов для взвешивания грузовых автомобилей

Постави testdisk, прогнал тест, че-то он пофиксил (как минимум установил загрузочный флаг) и теперь я могу загрузиться, но видно снова 8 а не 10 гигов. Выхлоп sfdisk

и теперь я могу загрузиться, но видно снова 8 а не 10 гигов

тебе надо сделать всё сначала, но как сказал анон — с fdisk -u или что там. Я не уследил это, у меня все софтины на арче в секторах показывают.

Потом resize2fs натравить.

А не монтируется у тебя потому что, я так понимаю, /dev/mapper/vms-backup1 (или /dev/vms/backup?) внутри разбит на разделы. В общем, проще всего указать offset раздела утилите mount. Ну или погуглить как заставить ядро/udev создать отдельные девайсы для разделов, я не помню как это делается.

тебе надо сделать всё сначала, но как сказал анон — с fdisk -u или что там. Я не уследил это, у меня все софтины на арче в секторах показывают.

сделал — херь какая-то все равно. не грузится. раздел был загрузочным — специально проверил. Пофиксил testdisk-ом снова.

А не монтируется у тебя потому что, я так понимаю, /dev/mapper/vms-backup1 (или /dev/vms/backup?) внутри разбит на разделы.

не бил. Я подсунул серваку два lvm-раздела — первый для системы, а второй для свопа, то есть у меня sda и sdb. Наверное снесу эту виртуалку и занаво на раздел поставлю, посмотрю что будет. Рееально достало.

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

сделал — херь какая-то все равно. не грузится. раздел был загрузочным — специально проверил. Пофиксил testdisk-ом снова.

Покажи sdisk -d загрузочного диска до и после. Я думаю где-то тривиальная ошибка.

Не очень понимаю что это значит. У тебя есть lvm-пул из которого ты нарезаешь место под виртуалки, так? Потом эти куски бьются на разделы, верно?

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

Если использовать образы-файлы, то полагаю, что изменение размера будет проще?

эээ, всё примерно так же: наращиваешь файл, внутри меняешь разбивку и потом resize2fs.

Гашу виртуалку. Запускаю

И пипец- не грузится собака.

эээ, всё примерно так же: наращиваешь файл, внутри меняешь разбивку и потом resize2fs.

Можно чуть подробнее про «внутри меняешь разбивку»

Не очень понимаю что это значит. У тебя есть lvm-пул из которого ты нарезаешь место под виртуалки, так?

Да. Один кусочек под сервак, а второй под своп.

Потом эти куски бьются на разделы, верно?

Нет. Ничего не бью. И внутри LVM не поднят.

слушай, а может grub еще переставить нужно было?

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

слушай, а может grub еще переставить нужно было?

по идее не надо.

Если не жалко ssh на тачку (достаточно в виртуалку), я могу завтра посмотреть.

Можно чуть подробнее про «внутри меняешь разбивку»

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

ТС, тебе не сказали, но надо было fdisk -u запускать, а так (без -u) ты по-новому раздел создал выравненный по цилиндру, а не как у тебя было.

Ты может и прав, но наверное это для новой версии fdisk. Например в centos 6 и fedora18 даже в мане разно написано. В centos -u без числа. А в fedora -u=123. Во всяком случае мне этот флаг не помог. Тем не менее, если без этого флага убить раздел и создать его с сектора 2048, пометить загрузочным, то после перезагрузки все ок. Только как увеличить-то размер виртуалки, так и непонятно. По идее диск должен был увеличиться с конца, а не с начала, как получилось у меня

Читайте также:  Автомобиль комбинированного тушения схема

По идее диск должен был увеличиться с конца, а не с начала, как получилось у меня

Так не бывает, ты путаешь.

Пора тебе уже открыть правду, админить это не твое. Тебе сразу сказали удалить и создать раздел начинающийся с того же места. Я даже наехал из-за тебя на тру-админа, но теперь понял что ты просто тупой (в профессиональном плане)

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

Если не жалко ssh на тачку (достаточно в виртуалку), я могу завтра посмотреть.

Не жалко, но не хочется тебя в служебную сетку пускать. За помощь я тебе очень благодарен! Угостил бы пивком при случае)

Кстати проблему только что решил.

После этого не грузится. Полечил testdiskом. Грузанулся и теперь вот что пишет

Сейчас попробую повторить ситуацию — подкину еще гиг и отпишусь.

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

Спокойнее. Я делал же — не прокатило. Ситуацию сейчас повторю.

Все! Решено)))))))))))))))))) Большое всем спасибо за помощь!

1) Стопаю сервак.
2) lvextend -L +1G /dev/vms/backup
3) Стартую сервак
4) На виртуалке делаю

самый людской — не разбивать внутри виртуалки sda (кстати, почему не virtio?) на разделы, а использовать его полностью (т.е. просто mkfs.ext3 /dev/sda, без fdisk/parted).

проблемы тут могут возникнуть на этапе установки — например дебиановский инсталлятор не дает такого выбора, но можно во время установки переключится на вторую консоль, отформатировать там, и после этого инсталлятор предлагает как вариант ничего не переразбивать, а использовать существующую ФС на /dev/sda. Но эти проблемы нивелируются тем, что вообще-то виртуалки проще делать с помощью debootstrap, и тогда не создавать таблицу разделов наоборот проще, чем создавать.

не разбивать внутри виртуалки sda

а грузить как? Правда, если не ошибаюсь, для xen это не проблема.

Тебя смущает что надо удалять раздел? Не, нету метода. Раньше parted мог это делать, но эту фичу удалили из-за того что народ не понимал разницы между файлухами и таблицей разделов и гробил данные.

Возможно (судя по докам), gparted умеет «в один клик», но я им никогда не пользовался.

Тебя смущает что надо удалять раздел? Не, нету метода.

Да, смущает. Буду дальше ковыряться. Посмотрю qcow2 еще. Там может норм будет. Оценю производительность. Год назад на debian что-то линуксовое ставил на образ в формате qcow2. Аппаратная виртуализация была включена, проц мобильный c2d p8400. Ставилось долго — я расстроился. В raw было в разы быстрее. Только тогда это было одним глазом глянуть, а сейчас серваки хочу виртуализировать.

P.S. В qcow2 надеюсь делается без удаления раздела.

Посмотрю qcow2 еще. Там может норм будет.

так это ничего не меняет. Нет разницы как устроено твоё блочное устройство. Там будет всё то же самое.

Оно реально тормозное. Можно задать cache=unsafe, но будь готов к большим проблемам если свет моргнёт или комп сбойнёт.

Оцените статью