CentOS6中KVM如何安装和运行

这篇文章主要介绍了CentOS6中KVM如何安装和运行,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的夏津网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

硬件开启虚拟化支持

虚拟化,现在的CPU一般都支持,在BIOS中开启即可。关于服务器如何开启,可自行google,我是用个人本子玩KVM的。

我的硬件配置:公司的屌丝本(DELL Inspiron14, i5-3337U, 8G, 500G, 硬盘丫出来100G的ext3格式分区,其他都是NTFS分区) + CentOS6.5(请参考此文安装和基本设置:CentOS安装和基本设置,我在安装的时候选择的是Development Enviroment,并且安装了相应的虚拟化的package,大家可以自行决定)

用以下命令确认当前机器是否支持虚拟化,如果有输出结果,则表示支持,否则不支持。其中:vmx 标志位表示Intel VT 虚拟化技术,svm 标志位表示AMD-V虚拟化技术。

grep -E ’vmx|svm’ /proc/cpuinfo

下面的是我的输出,说明是 Intel VT 虚拟化技术

[mwu@morgan local]$ grep -E 'vmx|svm' /proc/cpuinfo 
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms

安装和配置KVM

可以在安装的时候把KVM和虚拟化安装进去,也可以后续安装。

安装过程

  1. 由于KVM与Xen不兼容,确保Linux没有运行一个Xen的Kernel,用uname -a 命令可以检测出,如果你发现类似"2.6.18-164.el5Xen"的输出,则需要先将该Xen Kernel停止. 

  2. 安装KVM软件:

    yum install kvm

  3. 安装虚拟化管理包

    yum install virt-manager libvirt libvirt-python python-virtinst

配置过程

  1. 载入KVM模块

    modprobe kvm

  2. 载入芯片相关KVM模块

    modprobe kvm-amd(svm标志位) 
    modprobe kvm-intel(vmx标志位)

  3. 确认模块是否载入成功

    [root@morgan local]# lsmod|grep kvm
    kvm_intel              54285  0 
    kvm                   333172  1 kvm_intel

  4. 开启libvirtd后台服务并且

    [root@morgan local]# /etc/init.d/libvirtd start
    Starting libvirtd daemon:             [OK]

  5. 设置libvirtd服务自动启动

    chkconfig libvirtd on

  6. 确保默认的虚拟网络正常工作。默认的隔离的虚拟网络有一个虚拟网桥:virbr0,默认使用192.168.122.x作为其子网。host机,即运行libvirtd服务的机器IP地址为192.168.122.1,您可以在guest虚拟机中安装系统过程中或者安装系统完毕后设置其IP。验证虚拟网桥设备的运行情况,与下述结果类似:

    [root@morgan local]# ifconfig virbr0
    virbr0    Link encap:Ethernet  HWaddr 52:54:00:94:70:F4  
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:290 (290.0 b)

配置网络

您可以使用默认网络配置,或者重新设置一个Linux网桥。默认的网络只能从KVM虚拟机访和外面的网络通信。如果KVM虚拟机需要双向通信,则需要在host机设置一个Linux网桥。

使用默认的网络配置

在如下情况则使用默认的网络配置

  1. 只需要host机器和KVM虚拟机互相通信

  2. 只需要从KVM虚拟机访问外网络,而不需要反过来

在host机设置Linux网桥

确保网卡正常工作,KVM虚拟机也将使用该网卡和外界进行网络通信。输出和下面类似则为正常工作,表示有一个p1p2网卡。如果您的网卡工作不正常,则不在此文讨论范围内。

[root@morgan local]# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:13471 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13471 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6107173 (5.8 MiB)  TX bytes:6107173 (5.8 MiB)

p1p2      Link encap:Ethernet  HWaddr E0:DB:55:94:AB:15  
          inet addr:10.10.10.77  Bcast:10.10.10.255  Mask:255.255.255.0
          inet6 addr: fe80::e2db:55ff:fe94:ab15/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:306724 errors:0 dropped:0 overruns:0 frame:0
          TX packets:224917 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:252108544 (240.4 MiB)  TX bytes:36948789 (35.2 MiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:94:70:F4  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:290 (290.0 b)

注意:KVM不支持无线网卡!

配置网络过程

  1. 备份对应的网卡脚本文件到另一个不同的文件夹下,千万不可拷贝到同一文件夹下面

    [root@morgan local]# cp /etc/sysconfig/network-scripts/ifcfg-p1p2 /root/

  2. 复制现有网卡文件为br0网卡文件,我们将基于这个网卡文件进行修改

    cp /etc/sysconfig/network-scripts/ifcfg-p1p2 /etc/sysconfig/network-scripts/if-cfg br0

  3. 配置网桥文件br0

    # 静态IP情况
    DEVICE=eth0 
    TYPE=Ethernet 
    HWADDR=00:14:5E:C2:1E:40 
    ONBOOT=yes 
    NM_CONTROLLED=no 
    BRIDGE=br0 
    # 网桥设置,eth0里面需要设置MAC地址,br0里面需要设置IP地址,通过eth0里面的Bridge指向了br0来用eth0作为网桥。
    DEVICE=br0
    TYPE=Bridge
    NM_CONTROLLED=no
    BOOTPROTO=static
    IPADDR=10.10.1.152
    NETMASK=255.255.255.0
    ONBOOT=yes
    DEFROUTE=yes
    # 动态IP情况
    DEVICE=eth0 
    TYPE=Ethernet 
    HWADDR=00:14:5E:C2:1E:40 
    ONBOOT=yes 
    NM_CONTROLLED=no 
    BRIDGE=br0 
    # 网桥设置,eth0需要设置MAC地址,br0需要设置dhcp,通过eth0里面的Bridge指向了br0来用eth0作为网桥。
    DEVICE=br0
    TYPE=Bridge
    NM_CONTROLLED=no
    BOOTPROTO=dhcp
    ONBOOT=yes

  4. 注意将NetworkManager服务关闭。

  5. 重启网络使得网桥网卡配置生效。

    service network restart

  6. 添加下述代码到文件 /etc/sysctl.conf 来禁止桥接网络中的 Netfilter (默认已经关闭)

    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0

  7. 确认网络设置正确。

    [root@morgan etc]# ifconfig
    br0       Link encap:Ethernet  HWaddr E0:DB:55:94:AB:15  
              inet addr:10.10.10.77  Bcast:10.10.10.255  Mask:255.255.255.0
              inet6 addr: fe80::e2db:55ff:fe94:ab15/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:57088 errors:0 dropped:0 overruns:0 frame:0
              TX packets:39839 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:36880981 (35.1 MiB)  TX bytes:7833048 (7.4 MiB)
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:2519 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2519 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:784954 (766.5 KiB)  TX bytes:784954 (766.5 KiB)
    
    p1p2      Link encap:Ethernet  HWaddr E0:DB:55:94:AB:15  
              inet6 addr: fe80::e2db:55ff:fe94:ab15/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:95378 errors:0 dropped:0 overruns:0 frame:0
              TX packets:50049 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:46445815 (44.2 MiB)  TX bytes:9686445 (9.2 MiB)
    
    virbr0    Link encap:Ethernet  HWaddr 52:54:00:94:70:F4  
              inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

    [root@morgan etc]# brctl show
    bridge name	bridge id		STP enabled	interfaces
    br0		8000.e0db5594ab15	no		p1p2
    virbr0		8000.5254009470f4	yes		virbr0-nic

创建KVM虚拟机以待安装操作系统

virt-manager是一个用来创建和管理KVM虚拟机的GUI工具。下面的过程是使用virt-manager来安装SLES 11虚拟机系统。

  1. 开启X11环境

    ssh -X root@127.0.0.1

  2. 执行virt-mananger命令以开启virt-manager管理GUI工具。

  3. 创建一个虚拟机,输入基本信息,一步步往下就行了,无需多说,反正鼠标点击点击。

 

虚拟机内部的网络环境配置

内部网络采用NAT(在virt-manager中设置)方式,使得:

1. 虚拟机可以访问host机器和外网

2. 虚拟机的IP为内网192.168.122.*的IP

3. 虚拟机之间可以互相访问。

一个VM的网络配置的例子:

DEVICE=eth0
HWADDR=52:54:00:3A:F0:FA
TYPE=Ethernet
UUID=6332797f-a76a-43ea-97b9-729a96acaebd
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.122.2
NETMASK=255.255.255.0
DEFROUTE=yes
GATEWAY=192.168.122.1

感谢你能够认真阅读完这篇文章,希望小编分享的“CentOS6中KVM如何安装和运行”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻标题:CentOS6中KVM如何安装和运行
网站网址:http://myzitong.com/article/ipjoid.html