参考资料:

1. https://help.ubuntu.com/community/KVM

2.http://wiki.ubuntu.org.cn/Kvm%E6%95%99%E7%A8%8B

3.http://tkg.im.ncue.edu.tw/?p=710

 

正文:

一些概念:

vbox 是由 qemu 改写而成,包含大量 qemu 代码。

  • 可以使用于"不支持"虚拟化技术的cpu。
  • 值得说的一点:vbox 在图形方面比较好,能进行2D 3D加速。
  • 但cpu控制不理想(估计是因为图形支持的缘故)。
  • 操作上有独立的图形界面,易于上手。

kvm 是linux内核包含的东西,使用qemu作为上层管理(命令行)。

  • 要求cpu 必须支持虚拟化。
  • 性能:作为服务器很好,可是图形能力十分的差。即使放电影,图像也是像刷油漆一样,一层一层的。
  • cpu使用率控制很好。
  • 控制上比较简洁,功能比较丰富:比如使用 “无敌功能”所有更改指向内存,你的镜像永远保持干净。 “母镜像”功能让你拥有n个独立快照点。 还有很多参数。另外,kvm作为内核级的虚拟机,刚开始发展关注的公司比较多——但是还没有达到商业应用的水平。

总体而言:在支持 虚拟化的情况下,vbox 和 kvm 的性能差不多,主要是面向对象不同:kvm使用于服务器,vbox使用于桌面应用。

 

=========================================================================================

安装前检查列表:

安装kvm,需要处理器支持硬件虚拟化,intel的VT-x和AMD的AMD-V都具有该功能。可以用如下命令检查;

 

egrep -c '(vmx|svm)' /proc/cpuinfo
如果返回结果为0,表明CPU不支持硬件虚拟
如果为1或者大于1的数字,说明支持硬件虚拟化--但你要保证在bios中开启了此功能。

kvm-ok
===========================================================================================
安装:

对于ubuntu10.04或以后的版本使用如下命令:
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
注:在这里包含了软件包ubuntu-vm-builder
  • libvirt-bin provides libvirtd which you need to administer qemu and kvm instances using libvirt
  • qemu-kvm (kvm in Karmic and earlier) is the backend
  • ubuntu-vm-builder powerful command line tool for building virtual machines
  • bridge-utils provides a bridge from your network to the virtual machines
  • 各个软件包的作用,以上,在libvrit-bin包中可以看到virsh这个命令,这个包主要是用来管理kvm虚拟机实例的。
  • qemu-kvm是后台,在(Karmic及之前的版本中是kvm)
  • ubuntu-vm-builder 是一个创建虚拟机的命令行管理工具
  • bridge-utils用于实现虚拟机桥接到网络

添加用户到组;

 

$ sudo adduser `id -un` libvirtd
Adding user '<username>' to group 'libvirtd' ...
之后,你要重新登录,使得之前的上面的命令生效。

检测安装是否成功:
virsh -c qemu:///system list
Id Name                 State
----------------------------------

$

出现上述即成功安装。
sock文件的权限应该与下面类似:
$ sudo ls -la /var/run/libvirt/libvirt-sock
srwxrwx--- 1 root libvirtd 0 2010-08-24 14:54 /var/run/libvirt/libvirt-sock
==================================================================================

网络配置:
有两种方式可以让虚拟机访问外部网络:
1.NAT, 默认为此,即用户模式网络,
2.Bridge,这样,外部网络也可以访问虚拟机的OS

桥接模式配置:
安装软件包: qemu-kvm libcap2-bin
给特定用户授予CAP_NET_ADMIN权限。
  1.授予qemu



设定网络:/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
        address 192.168.0.10
        network 192.168.0.0
        netmask 255.255.255.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
======================================================================

虚拟机安装
以下三行摘自:http://tkg.im.ncue.edu.tw/?p=710
KVM 目前有三套主流管理工具:
virt-manager:一個圖形介面的管理工具,可以安裝在有 X window 的 Linux 機器上。
virt- install:一個用 python 撰寫的文字介面管理工具,Red Hat 開發。(ubuntu上的软件包是virtinst)
ubuntu-vm-builder:文字介面管理工 具,Canonical 開發。

没有xserver情况下安装
virt-install -d -n kvm-lucid -r 2048 --disk path=/data0/kvm/kvm-ubuntu.img,size=6,bus=virtio,cache=none --network bridge=br0,model=virtio --nographics --cdrom=/data1/software/ubuntu-10.04-server-amd64.iso
简单介绍参数;
-n 指定虚拟机的名字
-r 指定内存
--disk 虚拟硬盘存放位置
--network 网络,使用桥接
--nographics 纯文本安装
--cdrom指定iso文件

以上是不能正常执行的。
查阅资料http://www.techotopia.com/index.php/Installing_a_KVM_Guest_OS_from_the_Command-line_(virt-install)
--nographics参数
No graphical console will be allocated for the guest. Fully virtualized guests (Xen FV or QEmu/KVM) will need to have a text console configured on the first serial port in the guest (this can be done via the --extra-args option). Xen PV will set this up automatically. The command ’virsh console NAME’ can be used to connect to the serial device.
--》 需要串行端口,使用--extra-args参数指定
-x EXTRA, --extra-args=EXTRA
Additional kernel command line arguments to pass to the installer when performing a guest install from "--location".
依赖于location,需要指定location参数
-l LOCATION, --location=LOCATION
nstallation source for guest virtual machine kernel+initrd pair. The "LOCATION" can take one of the following forms:
  • DIRECTORY - Path to a local directory containing an installable distribution image
  • nfs:host:/path or nfs://host/path - An NFS server location containing an installable distribution image
  • http://host/path - An HTTP server location containing an installable distribution image
  • ftp://host/path - An FTP server location containing an installable distribution image

可用的包括目录,nfs,http,ftp,不能使用iso镜像。

 

按照上面的要求进行修改:

virt-install -n kvm-test -r 1024 --disk path=/home/akayer/kvm/kvm.img,size=6,bus=virtio,cache=none --network bridge=br0,model=virtio --nographics --location=ftp://192.168.10.10 -x console=ttyS0,115200

或者

virt-install -n kvm-test -r 1024 --disk path=/home/akayer/kvm/kvm.img,size=6,bus=virtio,cache=none --network bridge=br0,model=virtio --nographics --location=ftp://192.168.10.10 -x console=ttyS0,115200

都可以。

注:中间一步要求填写mirror地址,可以在主机上安装一个apache,然后将iso文件中的所有内容拷贝到/var/www/ubuntu/目录下,修改其权限,即可。

填写的是地址:192.168.10.10(不是http://192.168.10.10)

目录是:ubuntu

这样虚拟机即可以正常安装下去。

=================================================================================================

以上是no-X-server方式安装。

另一种是使用vnc安装

首先需要安装vnc4server

apt-get install vnc4server

开启

vnc4server

但是这样从另一台电脑上登录是灰色的没有输入界面

原因是

1.修改~/.vnc/xstartup文件,取消下面一行的注释

exec /etc/X11/xinit/xinitrc

2.修改/etc/X11/xinit/xinitrc的权限,从644--》755

如果是ubuntu server

显示一个命令行界面

如果是ubuntu desktop

不需vnc,直接virt-manager即可