在Windows平台上,我们习惯使用VmWare或者virtualbox来实现虚拟化。虽然有Linux版本,但大多数公司选择使用KVM进行Linux平台虚拟化,所以学习掌握KVM是必备技能。安装KVM以centos为例,以下是安装KVM虚拟化的命令。yuminstall-yqemu-kvmlibvirtvirt-installbridge-utils这么多软件的功能是什么?软件功能qemu-kvm集成了QEMU和KVM的一个软件。libvirt封装了QEMU接口,可以更方便的操作虚拟机,并提供多种编程语言的SDK。virt-install是一个用于创建虚拟机的命令行工具。bridge-utilsLinux网桥,用于配置虚拟机的网桥网络。kvm、qemu、qemu-kvm和libvirt之间有什么关系?KVM(KernelVirtualMachine)是Linux的内核驱??动模块。需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT和AMD-V;与内存相关的技术,如Intel的EPT和AMD的RVI技术,使其能够将Linux主机变成一个Hypervisor(虚拟机监视器)。QEMU是纯软件实现的虚拟机。可以模拟CPU、内存、磁盘等硬件,让虚拟机认为底层是硬件。其实这些都是QEMU模拟出来的。虚拟机的所有操作都必须由QEMU翻译。层,这导致QEMU本身的性能很差。qemu-kvm是QEMU集成了KVM,将CPU虚拟化和内存虚拟化交给KVM,模拟IO设备,如网卡、磁盘等。经过这一套组合拳之后,性能损失就大大减少了。与直接使用硬件相比,造成的损失约为1%-2%。libvirt是目前使用最广泛的用于管理KVM虚拟机的工具和API。Libvirtd是一个守护进程,可以被本地virsh或远程virsh调用。Libvirtd调用qemu-kvm来操作虚拟机。启动libvirtsystemctlstartlibvirtdsystemctlenablelibvirtd如果不想使用命令行工具管理虚拟机,可以安装virt-manager。yuminstall-yvirt-manager在支持x11转发的ssh客户端(例如:MobaXterm),直接输入virt-manager即可启动。虚拟网络类型和vmware类型,kvm也支持多种网络类型,主要分为三种。在NAT模式下,虚拟机需要向宿主机发送流量,宿主机将网络信息转换后再发送出去。外部机器无法感知虚拟机的存在。这样宿主机就相当于一个路由器,所以在宿主机上就会有一个和虚拟机在同一网段的IP,虚拟机的网关地址就是宿主机的IP。主机模式虚拟机只能相互访问,不能访问宿主机。这种方式类似于NAT方式,但是它没有和虚拟机在同一网段的IP,所以虚拟机无法通过宿主机访问外网。桥接模式虚拟机和宿主机关联一个网桥,所以虚拟机可以和宿主机在同一网段,外部机器可以直接访问虚拟机,虚拟机也可以使用网桥访问外部网络。还有一种模式在openstack等云平台上被广泛使用。网桥绑定的物理网卡没有IP,交换机对应的端口配置为trunk模式。达到隔离和互连的目的。NAT模式和主机模式都不需要单独配置。接下来,让我们看看如何配置桥接网络。配置桥接网络物理网卡绑定到桥接后,网络会断开,所以我们需要给桥接配置原来的IP。#进入网卡配置文件夹cd/etc/sysconfig/network-scripts/#复制原网卡配置文件为网桥网卡cpifcfg-enp134s0f0ifcfg-br0修改ifcfg-br0中的TYPE=Ethernet为TYPE=Bridge,最终效果如下:DEVICE=br0ONBOOT=yesBOOTPROTO=noneTYPE=BridgeIPADDR=172.16.0.52PREFIX=16GATEWAY=172.16.0.1DNS1=114.114.114.114修改ifcfg-enp134s0f0文件删除IPADDR=NETMASK=GATEWAY=行,和在末尾添加0,BRIDGE=br最终效果如下:DEVICE="enp134s0f0"ONBOOT=yesBOOTPROTO=noneTYPE=EthernetBRIDGE=br0最后重启网络。systemctlrestartnetwork查看网络信息,还可以看到网桥上配置了IP,网桥关联了一块物理网卡。[root@localhostnetwork-scripts]#ipa8:enp134s0f0:
