LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1349|回复: 5

KVM

[复制链接]
发表于 2010-9-3 17:32:48 | 显示全部楼层 |阅读模式
1.安装要求
检查CPU是否支持虚拟化
/proc/cpuinfo
intel vmx
amd svm

emerge
app-emulation/qemu-kvm
sys-apps/usbutils
net-misc/bridge-utils
sys-apps/usermode-utilities

gpasswd -a <your_user_name> kvm

2.内核配置
  1. [*] Virtualization --->
  2.     --- Virtualization
  3.      Kernel-based Virtual Machine (KVM) support
  4.     <M>   KVM for Intel processors support
  5.     <M>   KVM for AMD processors support
  6. Device Drivers --->
  7.     [*] Network device support --->
  8.              Universal TUN/TAP device driver support
  9. Networking support --->
  10.     Networking options --->
  11.         <*> 802.1d Ethernet Bridging
  12.         <*> 802.1Q VLAN Support
复制代码

3.创建一个虚拟机磁盘
qemu-img create -f qcow2 guet.img 10G
还可以先来创建一个快照
qemu-img snapshot -c snapshot1 guest.img

4.启动脚本
注:这个配合qemu-ifup启动,如使用《虚拟网桥》中的方法2按需重新配置
  1. #!/bin/sh
  2. KVM_CMD=/usr/bin/qemu
  3. MACHINE=pc
  4. DAEMON="-daemonize"
  5. HOST=192.168.0.252
  6. SMP=2,cores=2
  7. TAP=2
  8. NET="-net nic -net tap,ifname=tap$TAP,script=/etc/qemu/qemu-ifup"
  9. #CDROM="-cdrom /home/shom/sfot/DEEPIN-LITEXP-6.2.iso -boot d"
  10. MEM=512
  11. DISK=/home/shom/kvm/xp0.img
  12. #SNAPSHOT="-snapshot"
  13. test -n "$1" &amp;&amp; TAP=$1
  14. test -n "$DISK" &amp;&amp; HDA="-drive file=$DISK,cache=writeback,boot=on" || HDA="-hda $2"
  15. shift 2
  16. OTHER=$@
  17. RUN_CMD="sudo $KVM_CMD -M $MACHINE -smp $SMP $NET -m $MEM $HDA $CDROM $SNAPSHOT -enable-kvm -daemonize -rtc base=localtime -clock rtc"
  18. echo "运行命令:$RUN_CMD"
  19. $RUN_CMD
  20. if test $? = 0; then
  21.     echo "KVM 运行成功,$HOST:$TAP ..."
  22.     exit 0
  23. else
  24.     echo "KVM 运行失败,请检查命令行是否有错误!"
  25.     exit 1
  26. fi
  27. # -m 内存大小
  28. # -rtc base=localtime 使用主机时间
  29. # -clock 选择时钟,优先使用HPET -&gt; RTC
  30. # -M 系统类型
  31. # -snapshot数据不保存到磁盘映像
  32. # -smp 设置CPU
  33. # -drive 设定虚拟机文件 cache=writeback 缓存方式 boot=on 可启动介质
  34. # -boot 启动选项 c 为硬盘 d 光驱
  35. # -no-acpi 关闭acpi
  36. # -enable-kvm 开启kvm虚拟化
  37. # -name 设置guest标示
复制代码

5.虚拟网桥
注:可能在大多数(可能全部)无线设备不能工作,应该是这些设备不知道桥接吧
方法1:使用脚本创建网桥
注:配置完成后,如果不想重启就停止net.eth0;然后执行/etc/ini.t/net.br0
  1. #!/bin/sh
  2. switch=$(/sbin/route |awk '/^default / { print $8 }')
  3. #/usr/bin/tunctl -u shom -t $1
  4. /sbin/ifconfig $1 0.0.0.0 up
  5. /sbin/brctl addif ${switch} $1
复制代码
  1. # This blank configuration will automatically use DHCP for any net.*
  2. # scripts in /etc/init.d.  To create a more complete configuration,
  3. # please review /etc/conf.d/net.example and save your configuration
  4. # in /etc/conf.d/net (this file :]!).
  5. bridge_br0="eth0"
  6. brctl_br0=( "setfd 0" "sethello 0" "stp off" )
  7. config_br0=( "192.168.0.8/24" )
  8. routes_br0=( "default via 192.168.0.1" )
  9. dns_domain_br0="domain.local"
  10. dns_servers_br0="202.102.224.68 202.102.227.68"
  11. dns_search_br0="domain.local"
  12. config_eth0=("null")
复制代码
  1. cd /etc/init.d
  2. ln -s net.lo net.br0
  3. rc-update add net.br0 default
  4. rc-update del net.eth0
复制代码

方法2:手动配置网桥
  1. # This blank configuration will automatically use DHCP for any net.*
  2. # scripts in /etc/init.d.  To create a more complete configuration,
  3. # please review /etc/conf.d/net.example and save your configuration
  4. # in /etc/conf.d/net (this file :]!).
  5. bridge_br0="eth0 tap0 tap1 tap2 tap3"
  6. brctl_br0=( "setfd 0" "sethello 0" "stp off" )
  7. rc_need_br0="net.tap0 net.tap1 net.tap2 net.tap3"
  8. config_br0=( "192.168.0.8/24" )
  9. routes_br0=( "default via 192.168.0.1" )
  10. dns_domain_br0="domain.local"
  11. dns_servers_br0="202.102.224.68 202.102.227.68"
  12. dns_search_br0="domain.local"
  13. config_tap0=( "null" )
  14. tuntap_tap0="tap"
  15. tunctl_tap0="-u shom"
  16. mac_tap0="52:54:00:12:34:56"
  17. config_tap1=( "null" )
  18. tuntap_tap1="tap"
  19. tunctl_tap1="-u shom"
  20. mac_tap1="52:54:00:12:34:57"
  21. config_tap2=( "null" )
  22. tuntap_tap2="tap"
  23. tunctl_tap2="-u shom"
  24. mac_tap3="52:54:00:12:34:58"
  25. config_tap3=( "null" )
  26. tuntap_tap3="tap"
  27. tunctl_tap3="-u shom"
  28. mac_tap3="52:54:00:12:34:59"
  29. config_eth0=("null")
复制代码
  1. cd /etc/init.d
  2. ln -s net.lo net.br0
  3. ln -s net.lo net.tap0
  4. ln -s net.lo net.tap1
  5. ln -s net.lo net.tap2
  6. ln -s net.lo net.tap3
  7. rc-update add net.br0 default
  8. rc-update del net.eth0
  9. brctl addbr br0
  10. ifconfig br0 192.168.0.8 netmask 255.255.255.0 up
  11. tunctl -b -u  -t tap0
  12. brctl addif br0 tap0
  13. ifconfig tap0 up 0.0.0.0 promisc
复制代码

相关链接
KVM
http://en.gentoo-wiki.com/wiki/KVM#Required_packages
http://www.linux-kvm.org/page/Main_Page
HPET
http://www-01.ibm.com/support/docview.wss?uid=swg21443045
http://blog.fpmurphy.com/2009/07/linux-hpet-support.html
TUN/TAP
http://www.ibm.com/developerworks/cn/linux/l-tuntap/index.html
 楼主| 发表于 2010-9-3 17:37:49 | 显示全部楼层
为什么不让用html?
USB和VLAN,NAT,VDE支持部分还没用到,等到用的时侯再补充
回复 支持 反对

使用道具 举报

发表于 2010-9-3 20:55:07 | 显示全部楼层
也在用着KVM,先回复后再慢慢参考学习。
回复 支持 反对

使用道具 举报

发表于 2010-9-3 23:10:46 | 显示全部楼层
对于guest为xp,kvm、xen和virtualbox、vmware比感觉如何?我只想知道桌面应用的结果,不考虑大量guest的情况。
回复 支持 反对

使用道具 举报

发表于 2010-9-7 16:57:02 | 显示全部楼层
用libvirt 来管理也不错 省去手动很多麻烦。
回复 支持 反对

使用道具 举报

发表于 2010-9-9 09:25:13 | 显示全部楼层
支持一下,过几天准备安装KVM
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表