LINUX.ORG.RU
ФорумAdmin

Продвинутый способ создать ВМ

 


0

2

Подскажите, как создать виртуальную машину KVM через libvirt, если доступны колько консольные инструменты: через virt-install или через «virsh create domain.xml».
Нужно: память 1 Гбайт, диск 50 Гбайт, сеть - мост br1, без звука, без портов, OS- CentOS 7, использование - в качестве песочницы для сборки пакетов модцлей ядра под CentOS 7.
Деньную доку по xml-формат для описания ВМ найти не могу.

★★★★★
Ответ на: комментарий от anonymous

А причём тут год. Я говорю, что по условию задачи пользоваться можно только консольными инструментами.

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

Не, я конечно понимаю, 3 января, все такое, но гугл вроде уже работает, да и лор тоже, так сложно по запросу virt-install найти?
ЗЫ Вот напомнило гость windows 10 на хост Qemu-kvm без GUI правим параметры и вперед.

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

Заглянул я туда. А ещё пару дней помозговал над манами и родил следующее:

virt-install --connect qemu:///system --name CentOS_7 --os-variant centos7.0 --boot arch=x86_64,machine=q35,loader=/usr/share/qemu-kvm/bios-256k.bin --cpu host --vcpus 1 --memory 1024 --hvm --clock offset=localtime --bridge=br1,model=virtio --video qxl --graphics type=spice,listen=127.0.0.1 --noautoconsole --disk device=disk,boot_order=1,bus=virtio,format=raw,path=/srv/virtual/CentOS-7-x86_64-GenericCloud-1608.raw --import

Конфигурация получилась такая:

<domain type='kvm' id='2'>
  <name>CentOS_7</name>
  <uuid>0d233948-b552-45d0-a3c0-8e5741067a9a</uuid>
  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu placement='static'>1</vcpu>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-rhel7.3.0'>hvm</type>
    <loader type='rom'>/usr/share/qemu-kvm/bios-256k.bin</loader>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-model'>
    <model fallback='allow'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/srv/virtual/CentOS-7-x86_64-GenericCloud-1608.raw'/>
      <backingStore/>
      <target dev='vda' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x04' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:f4:85:aa'/>
      <source bridge='br1'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/6'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/6'>
      <source path='/dev/pts/6'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-2-CentOS_7/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
      <alias name='channel1'/>
      <address type='virtio-serial' controller='0' bus='0' port='2'/>
    </channel>
    <input type='tablet' bus='usb'>
      <alias name='input0'/>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'>
      <alias name='input1'/>
    </input>
    <input type='keyboard' bus='ps2'>
      <alias name='input2'/>
    </input>
    <graphics type='spice' port='5900' autoport='yes' listen='127.0.0.1'>
      <listen type='address' address='127.0.0.1'/>
      <image compression='off'/>
    </graphics>
    <sound model='ich6'>
      <alias name='sound0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </sound>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir0'/>
      <address type='usb' bus='0' port='2'/>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
      <alias name='redir1'/>
      <address type='usb' bus='0' port='3'/>
    </redirdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+107:+107</label>
    <imagelabel>+107:+107</imagelabel>
  </seclabel>
</domain>
В конфигурацию добавилась звуковая карта и проброс USB-устройств, что мне не нужно. Как сделать, чтобы так не создавалось?

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

Простите не «удачно» прочитал в топике «без звука, без портов».

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

может потом поудалять?

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

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

Почистите:

virsh list --all
virsh edit VM_NAME

ArcFi
()

Возможно конечно не совсем то, что нужно, но лично я для сборки всякой ереси использую контейнеры systemd-nspawn. Основная машина в чистоте, нет проседаний производительности, предельная простота, все довольны. Попробуй, вдруг и тебе понравится :)

mr_Heisenberg
()
Ответ на: комментарий от sunny1983

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

да, кстати, почему? virt-manager подкл. удаленно через ssh (это не x11forward, если ты не в курсе)

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

Что, просто блок из xml-кода удалить? Я тут пробовал xml редактировать, у меня ВМ изчезла в результате. Перед редактированием резервную копию надо на всякий случай.

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

Просто потому что таковы условия задачи. Вообще хочу научиться без GUI. Это нужно, судя по описаниям админских вакансий, владение KVM сейчас очень востребовано, а я хочу получить работу своей мечты, вот и учусь понемногу. Представь, что у тебя сервер стоит в датацентре, в другом городе и у тебя от него только ssh-доступ.
Удалённый доступ по virt-manager ещё не пробовал, хотя в курсе такой штуки, там какой tcp-порт используется?

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

Что, просто блок из xml-кода удалить?

Именно так, но надо учитывать, что некоторые блоки связаны.
Например, оно не даст удалить шину если на этой шине висят устройства.

Перед редактированием резервную копию надо на всякий случай.

Само собой.
Сервер без бэкапа — не сервер.

ArcFi
()
Ответ на: комментарий от sunny1983

Удалённый доступ по virt-manager ещё не пробовал, хотя в курсе такой штуки, там какой tcp-порт используется?

virt-manager -c qemu+ssh://user@host/system
ArcFi
()
Ответ на: комментарий от sunny1983

Я тут пробовал xml редактировать, у меня ВМ изчезла в результате.

Накосячили при редактировании, вот и не подгрузился. И кстати вспомнился личный опыт освоения этого чуда, так сказать «хозяйке на заметку», при релоаде конфига если там есть ошибочные параметры libvirt их может выкинуть, рекомендую после релоада еще раз посмотреть что усе так как и отредактировали.

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

У меня на ВМ не заработала сеть, по любому нужно локально в консоль входить. У меня запрещена парольная аутентификация на ssh-сервере, можно только по ключу. Куда мне в qemu+ssh путь к ключу прописывать?

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

Куда мне в qemu+ssh путь к ключу прописывать?

При наличии gnome-keyring должен подняться автоматом, при отсутствии видимо надо руками скормить ключ ssh-agent'у.

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