Linux KVM自2.6.20版本后就直接整合到Linux内核,它依托CPU虚拟化指令集实现高性能的虚拟化支持。它与Linux内核高度整合,因此在性能,安全性,兼容性、稳定性上都有很好的表现。
在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SELinux),可以灵活的实现硬件资源的管理和分配,KVM虚拟化的架构图如下:
话不多说,开始搭建KVM虚拟化平台:
<强> 1,安装:强>
<代码> [root@localhost媒体]# yum - y groupinstall“GNOME桌面”#安装GNOME桌面环境 [root@localhost媒体]# yum - y安装qemu-kvm # KVM模块 [root@localhost媒体]# yum - y安装qemu-kvm-tools # KVM调试工具,可不安装 [root@localhost媒体]# yum - y安装virt-install #构建虚拟机的命令行工具 [root@localhost媒体]# yum - y安装qemu-img # qemu组件,创建磁盘,启动虚拟机等 [root@localhost媒体]# yum - y安装bridge-utils #网络支持工具 [root@localhost媒体]# yum - y安装libvirt #虚拟机管理工具 [root@localhost媒体]# yum - y安装virt-manager #图形界面管理虚拟机 [root@localhost媒体]# yum - y安装libguestfs-tools #用来管理虚拟机磁盘格式 (root@localhost ~) # ls科幻/lib/systemd/system/graphical.目标/etc/systemd/system/default.target #将系统默认运行的目标更改为graphical.target,若不执行该命令,重启时可能会报的错。 代码>
<强> 2,安装完毕后,需重启系统,执行下面命令对系统进行检查:强>
<代码> [root@localhost ~] #猫/proc/cpuinfo | grep vmx #查看英特尔的CPU是否支持虚拟化,若是AMD的CPU,需“猫/proc/cpuinfo | grep smv” (root@localhost ~) # lsmod | grep kvm #检查kvm模块是否安装 kvm_intel 170181 0 kvm 554609 1 kvm_intel kvm irqbypass 13503 1 (root@localhost ~) # systemctl开始libvirtd #启动libvirtd服务 (root@localhost ~) # systemctl启用libvirtd 代码>
<强> 3,设置KVM网络:强>
在libvirt中运行KVM网络有两种方法:NAT和桥,默认是NAT。
关于两种模式的说明如下:
(1) NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外部访问虚拟机网络,所以一般不会用的到。
(2)桥:也就是桥接模式,这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。
我这里以桥(桥接模式)为例:
<代码> root@localhost ~ # vim/etc/sysconfig/network-scripts/ifcfg-ens33 类型=以太网 BOOTPROTO=#没有将这项改为没有 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=没有 IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=没有 IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 设备=ens33 ONBOOT=yes 桥=br0 #添加该行,若有UUID的配置项,建议删除。 #将网卡ens33的文件复制一份改名为br0 # vim/etc/sysconfig/network-scripts/ifcfg-br0 root@localhost ~ 类型=桥#将类型改为桥 BOOTPROTO=静态#这里根据实际情况改为静态或dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=没有 IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=没有 IPV6_ADDR_GEN_MODE=stable-privacy NAME=br0 #改名字 设备=br0 #改名字 ONBOOT=yes IPADDR=192.168.1.1 #该ip将为宿主机的ip地址 网关=192.168.1.254 (root@localhost ~) # systemctl重启网络#重启网络服务 (root@localhost ~) # ifconfig #确认IP地址信息 br0:旗帜=4163 & lt;,广播,跑步,MULTICAST>mtu 1500 inet 192.168.1.1子网掩码255.255.255.0 192.168.1.255播出 64年inet6 fe80:: db0f: ab79:54a1:241b prefixlen scopeid 0 x20<每日 醚00:0c: 29:1a: e0:46 txqueuelen 1000(以太网) RX包50字节4155(4.0简约) RX错误0 0超支0框架0下降 TX数据包58 7046字节(6.8简约) TX错误0下降0超支0载体0碰撞0 ens33:旗帜=4163 & lt;,广播,跑步,MULTICAST>mtu 1500 醚00:0c: 29:1a: e0:46 txqueuelen 1000(以太网) RX 1062字节数据包95264(93.0简约) RX错误0 0超支0框架0下降 TX包81579 688字节(79.6简约) TX错误0下降0超支0载体0碰撞0centos7部署KVM虚拟化平台详解