User Tools

Site Tools


unix:virtualization:kvm:server

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
unix:virtualization:kvm:server [2020/10/31 02:29] rodolicounix:virtualization:kvm:server [2024/03/30 00:04] (current) rodolico
Line 1: Line 1:
-====== KVM on server with libvirt ======+====== libvirt installation (virsh) ======
  
 **This is a work in progress, 20201015** **This is a work in progress, 20201015**
Line 17: Line 17:
 You should see either vmx or svm in the output. You should see either vmx or svm in the output.
  
-Now, install the basic packages needed, a couple of utilities, but not all the extra crud.+Now, install the basic packages needed, a couple of utilities, but not all the extra crud. //netcat-openbsd// is only needed if you're going to cluster and migrate virtuals from one hypervisor to another, from what I can tell. **virt-top** is a nice little //top// for seeing what is running and what resources they are using in real time.
  
 <code bash> <code bash>
-apt install -y --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin virt-top+apt install -y --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin virt-top netcat-openbsd
 reboot # brings libraries online reboot # brings libraries online
 </code> </code>
Line 174: Line 174:
 I'm lazy, so I just created all three, then imported them all at one time. I'm lazy, so I just created all three, then imported them all at one time.
  
-<code xml br_wan.xml+<code bash import_bridge.sh
-<network> +#! /usr/bin/env bash
-  <name>br_wan</name> +
-  <forward mode="bridge"/+
-  <bridge name="br_wan"/+
-</network> +
-</code>+
  
-<code xml br_dmz.xml+# create the xml definitionsThe br is prepended.  
-<network> +# Add/remove interfaces if needed 
-  <name>br_dmz</name> +for interface in wan lan dmz 
-  <forward mode="bridge"/> +do  
-  <bridge name="br_dmz"/> +cat << EOF br_$interface.xml 
-</network> +       <network> 
-</code>+         <name>br_$interface</name> 
 +         <forward mode="bridge"/> 
 +         <bridge name="br_$interface"/> 
 +       </network> 
 +EOF 
 +done 
 +# uncomment this if you want to view your xml files but 
 +# not process them 
 +# exit
  
-<code xml br_lan.xml> 
-<network> 
-  <name>br_lan</name> 
-  <forward mode="bridge"/> 
-  <bridge name="br_lan"/> 
-</network> 
-</code> 
  
-And imported them all at once.+# find all xml files and do the net-define 
 +for interface in `ls *.xml` 
 +do 
 +   virsh net-define --file $interface 
 +done
  
-<code bash> +# since the bridge name is followed by xml, simply remove that 
-for interface in `ls *.xml` ; do virsh net-define --file $interface ; done +# and set to autostart and start it 
-for interface in `ls *.xml | cut -d'.' -f1` do virsh net-autostart $interface virsh net-start $interface done+for interface in `ls *.xml | cut -d'.' -f1` 
 +do  
 +   virsh net-autostart $interface  
 +   virsh net-start $interface 
 +done 
 +# show me the list of network names
 virsh net-list virsh net-list
 </code> </code>
  
-After the last command, you should see your three interfaces defined. That means you can now use them.+This script assumes your network names are of the form br_//something// and it creates the file name as br_//something//.xml. It then looks for all XML files (so, you don't want any others in the current directory), the processes them
 + 
 +The last loop assumes there are no periods in the network name. Be warned.
  
 ===== Using Storage ===== ===== Using Storage =====
Line 236: Line 243:
  
 <code bash> <code bash>
-virt-install                   +virt-install \ 
-   --hvm                       \+   --hvm \
    --connect    qemu:///system \    --connect    qemu:///system \
-   --name       router-a       +   --name       router-a \ 
-   --memory     4096           +   --memory     4096 \ 
-   --vcpus      4              +   --vcpus      4 \ 
-   --disk       path=/dev/vg0/router-a.disk0,bus=scsi,target=sda              +   --disk       path=/dev/vg0/router-a.disk0,bus=virtio,target=sda \ 
-   --graphics vnc,port=5901                                         +   --graphics vnc,port=5901 \ 
-   --noautoconsole                                                  \+   --noautoconsole \
    --cdrom     /media/xen-store/OPNsense-20.1-OpenSSL-dvd-amd64.iso \    --cdrom     /media/xen-store/OPNsense-20.1-OpenSSL-dvd-amd64.iso \
-   --os-variant freebsd11.1                                             \+   --os-variant freebsd11.1 \
    --metadata uuid=d9510e01-e461-461f-9aa8-3cee223cb4a0,name=router-a,title=router-a,description='Primary Router' \    --metadata uuid=d9510e01-e461-461f-9aa8-3cee223cb4a0,name=router-a,title=router-a,description='Primary Router' \
-   --boot     hd,cdrom,menu=on                                      +   --boot     hd,cdrom,menu=on \ 
-   --network  bridge=br_wan,mac=00:16:3e:bd:26:70                      +   --network  bridge=br_wan,mac=00:16:3e:bd:26:70,model=virtio 
-   --network  bridge=br_dmz,mac=00:16:3e:bd:26:71                   +   --network  bridge=br_dmz,mac=00:16:3e:bd:26:71,model=virtio 
-   --network  bridge=br_lan,mac=00:16:3e:bd:26:72+   --network  bridge=br_lan,mac=00:16:3e:bd:26:72,model=virtio
 </code> </code>
  
unix/virtualization/kvm/server.1604129362.txt.gz · Last modified: 2020/10/31 02:29 by rodolico