LINUX.ORG.RU
решено ФорумAdmin

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

 ,


1

4

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

lvextend -L +2G /dev/vms/vds1 
сделать resize2fs.

★★★★★

Последнее исправление: andrew667 (всего исправлений: 1)
Ответ на: комментарий от true_admin

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


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

[root@backup ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Команда (m для справки): p

Диск /dev/sda: 11.8 ГБ, 11811160064 байт
1 heads, 1 sectors/track, 23068672 cylinders, всего 23068672 секторов
Units = цилиндры of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d3e2

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2049    20971520    10484736   83  Linux

Команда (m для справки): d
Выбранный раздел 1

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый цилиндр (2-23068672, по умолчанию 2): 2049
Last цилиндр, +цилиндры or +size{K,M,G} (2049-23068672, по умолчанию 23068672): 
Используется значение по умолчанию 23068672

Команда (m для справки): a
Номер раздела (1-4): 1

Команда (m для справки): p

Диск /dev/sda: 11.8 ГБ, 11811160064 байт
1 heads, 1 sectors/track, 23068672 cylinders, всего 23068672 секторов
Units = цилиндры of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d3e2

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2049    23068672    11533312   83  Linux

Команда (m для справки): wq
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Синхронизируются диски.

5) гружу виртуалку
6) на виртуалке
[root@backup ~]# resize2fs /dev/sda1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/sda1 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/sda1 to 2883328 (4k) blocks.
The filesystem on /dev/sda1 is now 2883328 blocks long.

7) Убедимся, что диск увеличен:
[root@backup ~]# df -h
Файловая система      Разм  Исп  Дост  Исп% смонтирована на
/dev/sda1              11G  937M  9,4G   9% /
tmpfs                 499M     0  499M   0% /dev/shm
Это конечно решение, но метод варварский. Есть ли более людский? Еще есть метод с использованием внутри виртуалки LVM.

andrew667 ★★★★★
() автор топика
Последнее исправление: andrew667 (всего исправлений: 1)
Ответ на: комментарий от andrew667

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

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

maloi ★★★★★
()
Ответ на: комментарий от andrew667

Есть ли более людский?

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

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

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

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

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

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

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от andrew667

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

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

Ставилось долго

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

true_admin ★★★★★
()
Ответ на: комментарий от andrew667

Есть ли более людский?

Есть. LVM в госте.

anonymous
()
Ответ на: комментарий от true_admin

Посмотрю в любом случае ради интереса. Читал про оптимизации всякие для qcow2 - неплохая производительность, бла-бла-бла. Надо еще глянуть virtio, а то у меня ide.

    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vms/backup'/>
      <target dev='hda' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vg_host/swap_backup'/>
      <target dev='hdb' bus='ide'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от maloi

почему не virtio?

Не было времени разбираться - нужно было физический сервер отдать, и я мигрировал с него на виртуальный в тестовой системе виртуализации. Сейчас на хостовом серваке одна виртуалка, и ее нельзя убивать. Вот сижу и ковыряюсь с тестовыми виртуалками и разбираюсь что к чему. Попробую virtio обязательно. Менять ведь всего строчку конфига для диска надо

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от maloi

попробовал virtio Судя по описанию должно было стать лучше. Провел простейший тест - копировал isoшник на 700 мегов. С драйвером virtio стабильно на 5-8 секунд проигрывает. Опыт повторял несколько по 3 раза. Память при копировании тоже сжирает, но немного меньше, чем в случае в ide. Может быть профит от virtio только если используются файлы-образы, а не lvm нарезка?

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

virtio + LVM + cache=none

Так и есть. Только внутри виртуалки LVM нету. Попробую чуть позже с LVM внутри виртуалки. Выхлоп backup.xml

    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vms/backup'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/vg_host/swap_backup'/>
      <target dev='vdb' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>

Выхлоп fdisk на виртуалке

[root@backup ~]# fdisk -l

Диск /dev/vda: 11.8 ГБ, 11811160064 байт
1 heads, 1 sectors/track, 23068672 cylinders, всего 23068672 секторов
Units = цилиндры of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d3e2

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/vda1   *        2049    23068672    11533312   83  Linux

Диск /dev/vdb: 2147 МБ, 2147483648 байт
22 heads, 16 sectors/track, 11915 cylinders
Units = цилиндры of 352 * 512 = 180224 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00081fa2

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/vdb1               6       11916     2096128   82  Linux своп / Solaris

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

andrew667 ★★★★★
() автор топика
Ответ на: комментарий от true_admin

брать и грузить (ext* не использует первые 512 байт раздела, чтобы туда можно было установить загрузчик), конечно есть некоторые биосы, которые не понимают, что таблицы разделов может не быть, но биос qemu отлично без неё работает.

maloi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.