ubuntu下使用KVM

【根据http://baike.baidu.com/view/3474915.htm修改】

kvm 是什么:

 kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己到进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列也是基于软件模拟的Para-Virtualization。

安装使用

1前期准备

1.1确定机器有VT:

        grep vmx /proc/cpuinfo (INTEL芯片)

  grep svm /proc/cpuinfo (AMD芯片)
  不知道芯片的生产厂商则输入:egrep '(vmx|svm)' /proc/cpuinfo
  如果flags: 里有vmx 或者svm就说明支持VT;如果没有任何的输出,说明你的cpu不支持,将无法成功安装KVM虚拟机。

1.2 确保BIOS里开启VT:

  Intel(R) Virtualization Tech [Enabled]
  如有必要,还需在BIOS中开启VT-d

1.3 确保内核版本较新,支持KVM

  用uname –r查看内核版本,如果在2.6.20以下的linux版本,需升级内核。

2安装KVM

  下面就Ubuntu和CentOS下安装使用KVM虚拟机做介绍:
   Ubuntu 安装KVM的命令为:
  sudo apt-get install kvm qemu qemu-kvm virt-manager kernel-package linux-source kqemu-source build-essential
  kvm安装成功后会有/dev/kvm,如果无需图形管理器,只需要安装前三个即可。

  再来查看下KVM是否安装成功,执行:

      virsh -c qemu:///system list

  如果输入结果像下面这样的,那么成功了:
  Connecting to uri: qemu:///system
  Id Name State
  ----------------------------------
    注1:可以用以下命令来检查是否装入kvm模块:
  /sbin/lsmod | grep kvm
  如果输出关于kvm版本的信息则已装入kvm模块
   注2: 安装好后,可使用qemu-kvm命令,输入该命令,如果系统显示未知的命令,可查看/usr/libexec中是否有qemu-kvm可执行文件,如果有,将其拷贝到/bin目录下即可。如果确实按照上面的步骤进行了,却在/bin,/usr/libexec,/usr/bin,/usr/sbin里都找不到qemu-kvm可执行文件,可执行以下命令:
  #yum provides "*/qemu-kvm"

 3 在KVM下安装虚拟机

 3.1用QEMU创建磁盘镜像

  sudo qemu-img create –f qcow linux.img 10G
  注:在CentOS和新版Qemu中为:qemu-img create –f qcow2 linux.img 8G

 3.2使用KVM安装Guest VM

  光盘安装:
  sudo kvm –localtime –cdrom /dev/cdrom -m 512 -boot d -hda linux.img
  硬盘安装:
  sudo kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –clock –rtc –no-acpi
  注:官方推荐使用 -no-acpi 参数,原因是 qemu/kvm不太支持,可能造成 cpu 的占用偏高。
  注1:CentOS下硬盘安装为 qemu-kvm –localtime –m 512 –hda windows.img –cdrom winxp.iso –boot d –no-acpi 即需要去掉了-clock rtc选项,否则会出现无法初始化时钟。
  注2:CentOS quest mouse: export SDL_VIDEO_X11_DGAMOUSE=0可解决VM中无法识别USB鼠标的问题。
  注3: 安装win 7时,不能使用-no-acpi选项。

 4 KVM启动Guest

    ① sudo kvm –boot c –m 512 –hda windows.img

   ② sudo kvm -boot c

      -m 512 

  -hda /home/lm/kvm/winxp.img
  -localtime
  -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no
  -clock rtc
  -soundhw es1370
  -smp 2

  注意:

      在KVM-87下,请去掉df=h

  -m 512 分配512MB的内存
  -hda /home/lm/kvm/winxp.img
  -localtime 使用本地时间(一定要加这个参数,不然虚拟机时间会有问题)
  -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no
  使用网络,并连接到一个存在的网络设备tap0,注意mac地址一定要自己编一个,特别是如果你虚拟了多个系统并且要同时运行的话,不然就MAC冲突了,在KVM-87下去掉df=h
  -boot d 从光盘启动 (从镜像启动也是用这个。从硬盘启动则为 -boot c )
  -smp 2 smp处理器个数为2个,如果你是4核处理器,后面的数字就为4
  -clock rtc

  使用rtc时钟(如果不开启此选项,WINXP可能会很慢)

5. 构建网桥

1.开始

1)安装bridge-utils
sudo apt-get install bridge-utils
 2)修改/etc/network/interfaces,直接用下面的替换。
a) 静态ip模式
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

b) DHCP模式
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
 3)重启网络
sudo /etc/init.d/networking restart

2.将虚拟机网络改为桥接方式或者安装新的虚拟机使用桥接网络


一个脚本文件
#start kvm.winxp
USERID=`whoami`
MACADDR="32:32:32:32:32:32"
model=e1000e
iface=`sudo tunctl -b -u $USERID`
kvm -net nic,vlan=0,macaddr=$MACADDR -net tap,vlan=0,ifname=$iface $@
sudo tunctl -d $iface
#end kvm.winxp
 使用iso文件安装guest,运行如下命令:
sudo ./kvm.bridge -m 512 -hda winxp.img -cdrom /home/software/***.iso -boot d
运行安装完的虚拟机,运行如下命令:
sudo ./kvm.bridge -m 512 -hda winxp.img -boot c

若只建立tap,不适用桥
tunctl -t tap0 -u root










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值