作业环境
服务器端 操作系统: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转载请注明原文地址: