KVM: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
KVM is a virtualization engine, like [[VirtualBox]] or VMWare.
KVM is a virtualization engine, like [[VirtualBox]] or VMWare.
It is not locked to a Gui; this makes it more suitable for use on servers.  Along the same line,  
It is not locked to a Gui; this makes it more suitable for use on servers.  Along the same line,  
it automatically sets up a virtual console using SPICE(http://www.spice-space.org/) or VNC. This allows out of band
it automatically sets up a virtual console using SPICE(http://www.spice-space.org/) or VNC. This allows out of band access to a virtual machine, sort of like [[IPMI]].
access to a virtual machine, sort of like [[IPMI]].
 
''KVM'' and ''QEMU'' are the back end components. The "hypervisor".
''libvirt'' is a wrapper making the VMs easier to manage.
''virt-manager'' is a GUI for libvirt


I am testing it on [[Dart]], a server that runs Debian 7.  
I am testing it on [[Dart]], a server that runs Debian 7.  
== Primary goals ==


I want to migrate wildsong.biz and hupi.org to virtual machines so that I can host them on Dart but still keep them walled off in their own worlds to make them easier to manage.
I want to migrate wildsong.biz and hupi.org to virtual machines so that I can host them on Dart but still keep them walled off in their own worlds to make them easier to manage.


Also I need to be able to run Ubuntu to test out [[BigBlueButton]]. (It seemed the easiest path at the moment.)
Also I need to be able to run Ubuntu to test out [[BigBlueButton]]. (It seemed the easiest path at the moment.)
I now have a virtual machine set up but don't have the network connection going yet.
I am also working out the best console connection to use, SPICE looks cool. Checking that out today. 2/15/14
On my Mac I found that the native VNC connection did not work but that Vine VNC does. I looked at NoMachine a bit but it's not free.


== Set up ==
== Set up ==


Package installation
=== Preparing host machine ===
 
sudo apt-get install qemu-kvm
 
== Use ==
 
Create a new virtual machine, then start it.
 
mkdir /var/kvm
cd /var/kvm
qemu-img create -f qcow2 hupi.img 10G
kvm -hda hupi.img -cdrom ~bwilson/LinuxImages/debian-7.8.0-amd64-netinst.iso -boot d -m 2048 -vnc :0 &


Now connect via VNC client. On my Mac, last year I downloaded Vine VNC Client. It made me jump through hoops. I just tried Chicken of the VNC and it's fine. http://sourceforge.net/projects/chicken/
==== Package installation ====


One thing about using VNC server on Dart, I can connect and disconnect any time without worrying about the session state as I do when using ssh.
sudo apt-get install qemu-kvm virtinst virt-top libvirt0 libvirt-bin virt-manager


Starting the machine with some extra networking goodies
==== Network ====


kvm -hda hupi.img -vnc :0 -device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::5555-:22 &
To make networking work the way I expect I had to put the host into bridge mode,  
 
by changing /etc/network/interfaces so that it looks (more or less) like this
=== Securing access ===
 
Seems quite open at the moment. I need my password in the guest, that's all.
 
== Bridged network ==
 
=== Host ===
 
Change the host /etc/network/interfaces file. Restart networking.


  # Replace old eth0 config with br0
  # Replace old eth0 config with br0
Line 58: Line 38:
     bridge_fd      0
     bridge_fd      0


So far, sudo service networking restart has worked for me! Even remotely, w no long bike rides to fix it.
=== Create a new guest machne ==
(Also, I have IPMI access when I remember to plug in the extra ethernet cable.)


=== Guest ===
Initially I followed instructions to create a machine using only kvm but then found out about libvirt.
I started over again at this point.


== Remote access ==
I also found it messy to work with libvirt and kvm as a regular user so I gave up on that too,
I only want to start up machines and let them run.


SPICE
sudo -i
mkdir /var/kvm
cd /var/kvm
virt-install --name hupi --ram=1024 --disk path=hupi.img,size=10 --network bridge=br0 \
  --graphics vnc,password=supersecret \
  --cdrom=debian-7.8.0-amd64-netinst.iso --os-type=linux --os-variant=debianwheezy \
  --description=HuPI.ORG


VNC - I am using because it's built in. Once the machine is running properly I have no immediate need for a GUI console.
When working remotely, if you log in to your host machine with "ssh -Y ''host''" then virt-viewer will now open magically. No need to forward ports or install a VNC client etc.


== Virtualbricks ==
Using virt-install and specifying skirted around problems I was having with networking too.
'''It worked on the first try. YAYAYAYAYA!!!'''


Looks quite promising but I need to get off Tektonic today so --- back burner.
Notes continue for HuPI on the dedicated page: [[hub]]


http://virtualbricks.eu/wiki/index.php/Main_Page
=== Securing access ===


Don't install from Debian, that version is old.
Seems quite open at the moment. I need my password in the guest, that's all.
If I don't need VNC from the big Internet I can disable the port forwarding in my firewall.


sudo apt-get install python-twisted
== Remote access ==


I get this error
SPICE


virtualbricks.errors.InvalidNameError: /home/bwilson/.virtualbricks/.virtualbricks.vbl
VNC - I am using because it's built in. Once the machine is running properly I have no immediate need for a GUI console.

Latest revision as of 21:30, 21 March 2015

KVM is a virtualization engine, like VirtualBox or VMWare. It is not locked to a Gui; this makes it more suitable for use on servers. Along the same line, it automatically sets up a virtual console using SPICE(http://www.spice-space.org/) or VNC. This allows out of band access to a virtual machine, sort of like IPMI.

KVM and QEMU are the back end components. The "hypervisor". libvirt is a wrapper making the VMs easier to manage. virt-manager is a GUI for libvirt

I am testing it on Dart, a server that runs Debian 7.

Primary goals

I want to migrate wildsong.biz and hupi.org to virtual machines so that I can host them on Dart but still keep them walled off in their own worlds to make them easier to manage.

Also I need to be able to run Ubuntu to test out BigBlueButton. (It seemed the easiest path at the moment.)

Set up

Preparing host machine

Package installation

sudo apt-get install qemu-kvm virtinst virt-top libvirt0 libvirt-bin virt-manager

Network

To make networking work the way I expect I had to put the host into bridge mode, by changing /etc/network/interfaces so that it looks (more or less) like this

# Replace old eth0 config with br0
auto eth0 br0

# Use old eth0 config for br0, plus bridge stuff
iface br0 inet dhcp
   bridge_ports    eth0
   bridge_stp      off
   bridge_maxwait  0
   bridge_fd       0

= Create a new guest machne

Initially I followed instructions to create a machine using only kvm but then found out about libvirt. I started over again at this point.

I also found it messy to work with libvirt and kvm as a regular user so I gave up on that too, I only want to start up machines and let them run.

sudo -i
mkdir /var/kvm
cd /var/kvm
virt-install --name hupi --ram=1024 --disk path=hupi.img,size=10 --network bridge=br0 \
 --graphics vnc,password=supersecret \
 --cdrom=debian-7.8.0-amd64-netinst.iso --os-type=linux --os-variant=debianwheezy \
 --description=HuPI.ORG

When working remotely, if you log in to your host machine with "ssh -Y host" then virt-viewer will now open magically. No need to forward ports or install a VNC client etc.

Using virt-install and specifying skirted around problems I was having with networking too. It worked on the first try. YAYAYAYAYA!!!

Notes continue for HuPI on the dedicated page: hub

Securing access

Seems quite open at the moment. I need my password in the guest, that's all. If I don't need VNC from the big Internet I can disable the port forwarding in my firewall.

Remote access

SPICE

VNC - I am using because it's built in. Once the machine is running properly I have no immediate need for a GUI console.