设为首页 收藏本站
查看: 1984|回复: 0

[经验分享] [转]部署KVM虚拟机

[复制链接]

尚未签到

发表于 2015-4-10 12:33:21 | 显示全部楼层 |阅读模式

  环境:ubuntu 11.04
准备工作
检查CPU是否支持虚拟化
  如果支持VT的话,Intel会打印出vmx,AMD会打印出svm。
$ egrep '(vmx|svm)' /proc/cpuinfo检查内核是否编译了kvm支持
  kvm支持从linux 2.6.20已被集成到内核中,成为内核的一部分。
$ lsmod |grep kvm  检查设备 /dev/kvm 的权限,如果你不想使用root权限,需要把你的用户加入kvm用户组:
$ sudo usermod -aG kvm jqian安装kvm管理组件
$ sudo apt-get install kvm安装网络工具
  用于桥接网络,依赖工具tunctl;如果不需要桥接,可以不用安装。
$ sudo apt-get install bridge-utilities uml-utilities安装虚拟机
  打算虚拟一个Windows XP。
创建磁盘文件
  虚拟机磁盘文件可以有很多格式,qcow2、raw、vdi、vmdk等。官方推荐qcow2+virtio,其性能和raw基本接近。qcow2的优点是根据磁盘使用量自增长,不需要一次性分配;raw的优点是便于移植,且能直接挂载到本地,不用开启虚拟机即可访问虚拟机数据。
$ qemu-img create -f qcow2 winxp.img 10G 安装虚拟机
$ kvm -no-acpi -m 512 -cdrom /store1/Public/WinISO/WindowsXP_PRO_SP3_VOL.iso -hda winxp.img -boot d  其中,

  • -M pc选择模拟PC机型,可用-M ?得到机型列表;
  • -hd(a|b|c..)指定硬盘镜像文件;
  • -boot d表示从光盘启动,-boot c表示从硬盘启动;
  • -no-acpi表示禁止电源管理;
  • -m 512设置虚拟机内存大小。
运行虚拟机
直接运行
$ kvm -m 512 winxp.img -boot c  这是最简单的运行方法,执行后将出现一个Windows运行窗口。网络默认是工作在NAT方式,虚拟机DHCP得到的地址一般是10.0.2.x,主机作为网关地址是10.0.2.2,你可以通过samba协议共享主机内容。
  kvm的图形性能很差,所以,直接访问虚拟机鼠标移动速度很慢,基本不可用,只用于测试虚拟机是否安装成功,或进行简单的设置。
后台运行
$ kvm -M pc -m 512 -smp 2 -hda winxp.img -net nic -net user -usb -localtime -daemonize -nographic -vnc 127.0.0.1:0 -redir tcp:3389::3389 -soundhw all  其中,

  • -net nic -net user即默认的NAT方式,KVM充当虚拟机的网关和防火墙,这种方式下一般需要搭配-redir参数,后者用于重定向端口号,否则无法从外部访问虚拟机网络,
  • -redir tcp:3389::3389重定向虚拟机的3389端口到主机的网络界面上,可以在远程使用RDP协议登录虚拟机,
  • -smp 2表示使用两个CPU核心;
  • -vnc :0开启vnc远程访问;
  • -daemonize在后台运行虚拟机;
  • -nographic不显示图形界面;
  • -soundhw all开启声卡。
  此时,可以使用vncviewer访问虚拟机,但鼠标性能还是较差:
$ vncviewer 127.0.0.1:0  最佳的办法是使用RDP协议访问,需要先直接访问Windows开启远程桌面支持;然后,使用RDP客户端访问宿主机IP加端口号,即可远程访问后台运行的虚拟机,比如:
$ rdesktop host-ip:3389 -g 1024x768 -u "Julian Qian" -p password -r sound:local  这种方式比直接登录虚拟机界面速度要快很多,也比VirtualBox之类的虚拟机方案方便快捷很多,就好像你有一台远程主机一样。
桥接网络
  桥接可以使得虚拟机和主机在同一个子网内。
增加桥接设备
  编辑 /etc/network/interface,增加虚拟网卡设备tap0和桥接设备br0。
auto eth0 iface eth0 inet manual  auto tap0 iface tap0 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down tunctl_user jqian  auto br0 iface br0 inet static address 192.168.1.150 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eth0 tap0 bridge_stp off bridge_fd 0 bridge_hello 0 bridge_maxwait 0   这里把实际网卡eth0和虚拟网卡tap0都加入了网桥设备br0,所以eth0和tap0都不用再设置IP地址。
  另外,检查一下设备/dev/net/tun的访问权限,也许需要把你的用户加入uml-net用户组:
$ sudo usermod -aG uml-net jqian   激活网卡设备后可以用brctl命令检查,可以看到eth0和tap0都桥接到了br0上:
$ brctl show bridge name     bridge id               STP enabled     interfaces br0             8000.00012e36c181       no              eth0                                                         tap0 禁止netfilter
  kvm通过VLAN向处于同一VLAN的虚拟机发送数据包。如果没有特别指定VLAN,默认就是VLAN0。如果虚拟机没法接收到数据包,应该查看 /proc/sys/net/bridge,禁止netfilter相关设置。
$ cd /proc/sys/net/bridge $ for f in bridge-nf-*; do sudo echo 0 > $f; done   或者,编辑 /etc/sysctl.conf,增加如下内容:
# Disable netfilter on the bridge interface for KVM # Solution is associated with launchpad bug number 573461 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 运行虚拟机
  由于此时虚拟机会分配到和宿主机相同子网的IP地址,所以,最好先直接登录虚拟机取消DHCP,设置固定IP,然后再后台运行虚拟机。
$ kvm -no-acpi -M pc -m 512 -smp 2 -drive file=/home/jqian/winxp.img,cache=none,if=virtio -net nic -net tap,ifname=tap0,script=no -rtc base=localtime,clock=host -vnc :0 -daemonize -usb -soundhw es1370   其中,

  • -net nic -net tap表示使用TAP网络设备;
  • -drive和-rtc都是新的参数格式,用法类似。
连接USB设备
  目前好像没有看到自动挂载usb设备的方法,只能手动加载。
  可以在主机上用lsusb,或者在虚拟机的控制台里运行info usbhost,得到设备的verdorID:productID。
控制台挂载
  挂载USB设备的话,启动kvm时需要加上-usb参数。如果以图形界面启动,直接按下Ctrl-Alt-2,进入控制台;如果以vnc后台启动,需要远程使用vncviewer连上vnc server,然后按下Ctrl-Alt-2,进入控制台。
  在控制台内,你也可以查询USB设备信息,使用命令 usb_add 挂载设备。
(qemu) info usbhost husb: using sys file-system with /dev/bus/usb   Device 1.1, speed 480 Mb/s     Hub: USB device 1d6b:0002, EHCI Host Controller   Device 2.1, speed 480 Mb/s     Hub: USB device 1d6b:0002, EHCI Host Controller   Device 3.1, speed 12 Mb/s     Hub: USB device 1d6b:0003, xHCI Host Controller   Device 1.2, speed 480 Mb/s     Hub: USB device 8087:0024   Device 2.2, speed 480 Mb/s     Hub: USB device 8087:0024   Device 3.2, speed 480 Mb/s     Hub: USB device 2109:0811, USB 2.0 Hub   Device 2.3, speed 480 Mb/s     Class 00: USB device 1307:0165, USB Flash Disk (qemu) usb_add host:1307:0165   挂载完成后,按下Ctrl-Alt-1,返回虚拟机界面。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-55666-1-1.html 上篇帖子: qemu kvm 虚拟化 下篇帖子: QEMU KVM Libvirt手册(7): 硬件虚拟化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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