作业环境

服务器端
操作系统:CentOS 6.3 final x86_64
IP: 133.133.10.50
Hostname:myKVM
KVM:qemu-kvm-0.12.1.2-2.295.el6_3.2.x86_64

客户端
Ubuntu和Win7,先在服务器端装好VNC,通过VNC连接服务器CentOS

一、安装KVM及相关软件
1、KVM 需要有 CPU 的支持(Intel vmx 或 AMD svm),在安装 KVM 之前检查一下 CPU
是否提供了虚拟技术的支持:
[root@myKVM ~]# egrep '^flags.*(vmx|svm)' /proc/cpuinfo
有显示, 有显示则说明处理器具有VT功能

2、在主板BIOS中开启CPU的Virtual Technolege(VT,虚化技术)

3、安装kvm及其需要的软件包
[root@myKVM ~]# yum install kvm kmod-kvm qemu kvm-qemu-img
virt-viewer virt-manager libvirt libvirt-python
python-virtinst

[root@myKVM ~]# yum groupinstall KVM

4、检查kvm模块是否安装,使用以下命令显示两个模块则表示安装完成
[root@myKVM ~]# lsmod | grep kvm
kvm_intel              52570
 0 
kvm                
  314739  1 kvm_intel

二、启动virt-manager管理界面

1、客户端
VNC到服务器端,因为需要用服务器的图形界面

2、服务器端
启动libvirtd服务,并保证下次自动启动
[root@myKVM ~]# service libvirtd start
Starting libvirtd
daemon:                                 
[ 确定 ]
[root@myKVM ~]# chkconfig libvirtd on

三、远程创建和管理KVM虚拟机
1. 打开Application=> System Tools => Virtual Machine
Manager就可以装虚拟机了,功能跟VMware类似

2. “Details”中可查看或修改Guest OS的配置信息

3、安装完成后需要将默认的IDE硬盘和网卡换成virtio,并打上驱动程序,这样性能就可以得到提升。(默认好像就是这样的)

4、在远程管理KVM虚拟化物理主机的过程中,可以动态调节VM的内存,实现clone,开机,关机,暂停主机等操作。

5、服务器端使用virsh list命令可查看主机虚拟化情况
[root@myKVM ~]# virsh list
 Id    Name          
                State
----------------------------------------------------
 1     CentOSKVM            
         running
我在myKVM上由装了centOS的虚拟机,命名为centOSKVM
8、KVM虚拟机的信息保存在 /var/lib/libvirt目录下

三、KVM默认网络配置
1、kvm上网有两种配置,一种是default,它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机。另外一种方式是bridge方式,可以使用虚拟机成为网络中具有独立IP的主机。

四、配置bridge上网方式

1、创建桥接器
在/etc/sysconfig/network-scripts目录下,创建一个ifcfg-br0
文件,其类型设为Bridge:
[root@myKVM libvirt]# cat
/etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
TYPE="Bridge"
BOOTPROTO="static"
#HWADDR="00:23:AE:72:50:90"
NM_CONTROLLED="yes"
ONBOOT="yes"
#TYPE="Ethernet"
IPADDR=133.133.10.50
NETMASK=255.255.0.0

2、将物理接口桥接到桥接器
修改eth0的内容(本服务器是用eth0上网的),去掉其IP相关信息,加上“BRIDGE=br0”,将其桥接到br0上;如果是双网卡或是多网卡,照此过程修改:
[root@myKVM libvirt]# cat
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static"
HWADDR="00:23:AE:72:50:90"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
#UUID="18ffa985-2081-4be5-951b-fb0d136741bf"
#IPADDR=133.133.10.50
#NETMASK=255.255.0.0
BRIDGE=br0

3、重启物理机网络服务
[root@etone ~]# service network restart

4、查看当前桥接情况(有一个虚拟机正在运行)
[root@myKVM libvirt]# brctl show
bridge name     bridge id        
      STP enabled     interfaces
br0             8000.0023ae725090
      no            
 eth0
virbr0          8000.525400efd043
      yes            
virbr0-nic
                 
  vnet0

5、将虚拟机接口桥接到桥接器
[root@myKVM ~]# brctl delif virbr0 vnet0
[root@myKVM ~]# brctl addif br0 vnet0
[root@myKVM ~]# brctl show
[root@myKVM libvirt]# brctl show
bridge name     bridge id        
      STP enabled     interfaces
br0             8000.0023ae725090
      no            
 eth0
vnet0
virbr0          8000.525400efd043
      yes            
virbr0-nic
这一步也可以在Virtual Machine Manager中进行。

6、将虚拟机centOSKVM IP设置为同一网段地址:133.133.10.51
此时,该虚机可以访问外部网络,并可被外部网络访问。
服务器可以连虚拟机
[root@myKVM libvirt]# ping 133.133.10.51
PING 133.133.10.51 (133.133.10.51) 56(84) bytes of data.
64 bytes from 133.133.10.51: icmp_seq=1 ttl=64 time=0.700 ms
64 bytes from 133.133.10.51: icmp_seq=2 ttl=64 time=0.093 ms
64 bytes from 133.133.10.51: icmp_seq=3 ttl=64 time=0.072 ms
^C
--- 133.133.10.51 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time
2137ms
rtt min/avg/max/mdev = 0.072/0.288/0.700/0.291 ms
虚拟机可以连外网
[root@centOSKVM ~]# ping 133.133.10.50
PING 133.133.10.50 (133.133.10.50) 56(84) bytes of data.
64 bytes from 133.133.10.50: icmp_seq=1 ttl=64 time=0.090 ms
64 bytes from 133.133.10.50: icmp_seq=2 ttl=64 time=0.075 ms
^C
--- 133.133.10.50 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time
1492ms
rtt min/avg/max/mdev = 0.075/0.082/0.090/0.011 ms
[root@centOSKVM ~]# ping 133.133.133.53
PING 133.133.133.53 (133.133.133.53) 56(84) bytes of data.
64 bytes from 133.133.133.53: icmp_seq=1 ttl=64 time=2.14 ms
64 bytes from 133.133.133.53: icmp_seq=2 ttl=64 time=0.323
ms
^C
--- 133.133.133.53 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time
1836ms
rtt min/avg/max/mdev = 0.323/1.235/2.147/0.912 ms

转载请注明原文地址:http://www.server110.com/qemu/201308/704.html

最新文章

  1. [LeetCode] Combination Sum 组合之和
  2. ebs history to look for password
  3. 039. asp.netWeb用户控件之七实现具有虚拟键盘的功能的用户控件
  4. ios计算内容的高度 (含7.0前及以后的版本的用法)
  5. C#中的预处理指令
  6. 几本关于PHP安全的书
  7. Redis 和 Memcached 的区别详解
  8. 贪心 uvaoj 11134 Fabled Rooks
  9. Python文件操作方法
  10. ajax 基础
  11. 使用XmlWriter创建XML文件
  12. Golang学习--TOML配置处理
  13. (Linux)初探cmake .和make命令
  14. 基于STM32L4的开源NBIOT开发资料
  15. 对两个数求和的str_echo函数
  16. 部署 tomcat
  17. 关于cf[转]
  18. [JSOI2009] 球队收益 (费用流)
  19. Roundcube login via PHP script
  20. redis sentinel(哨兵机制)部署(Windows下实现)

热门文章

  1. LinkCutTree 总结
  2. CountDownLatch源码分析
  3. python开发_shelve_完整版_博主推荐
  4. hdu 1540 Tunnel Warfare 线段树 单点更新,查询区间长度,区间合并
  5. CXF生成调用webservice的客户端
  6. python string和dict转换
  7. Spring集合 (List,Set,Map,Properties) 实例
  8. ASP.NET数据库连接字符串总结
  9. [Android Pro] android 杀死进程的方法
  10. C# 将Dictionary,StringDictionary等集合数据绑定到如comboBox等控件数据源中将获取健值