如果你查找的单词虚拟化在字典中,你会发现,它的意思是“ 创造的东西虚拟(而非实际)的版本 。” 在计算中,术语虚拟化是指同时从另一个孤立的运行多个操作系统,在相同的物理(硬件)系统,在该虚拟模式作为主机已知的顶部的可能性。
RHCSA系列:使用KVM实现虚拟化和访客管理的要点 - 第15部分
通过使用虚拟机监视器(也称为管理程序 )的,虚拟机(简称为客人 )从底层硬件提供的虚拟资源(即CPU,RAM,存储器,网络接口,仅举几例)。
考虑到这一点,很明显,虚拟化的主要优点之一是成本节约(在设备和网络基础设施以及维护工作方面),并且大大减少了容纳所有必要硬件所需的物理空间。
由于这个简短的操作无法涵盖所有虚拟化方法,因此我建议您参考摘要中列出的文档以获取有关该主题的更多详细信息。
请记住,本条旨在成为一个起点,用学习虚拟化的基础知识在RHEL 7 KVM (基于内核的虚拟机)使用命令行工具,而不是话题进行了深入的讨论。
验证硬件要求和安装软件包
为了设置虚拟化,您的CPU必须支持它。 您可以使用以下命令验证您的系统是否满足要求:
# grep -E 'svm|vmx' /proc/cpuinfo
在下面的截图我们可以看到当前系统(带有AMD处理器)支持虚拟化,通过SVM所示。 如果我们有一个基于Intel的处理器,我们将看到在VMX代替上面命令的结果。
检查KVM支持
此外,你需要在你的主机(BIOS或UEFI)的固件支持虚拟化功能。
现在安装必要的软件包:
- QEMU-KVM是一个开源的虚拟器,可提供硬件仿真的KVM管理程序,而QEMU-IMG提供了操作磁盘映像的命令行工具。
- libvirt的包括到与操作系统的虚拟化功能进行交互的工具。
- libvirt的-python包含模块允许用Python编写的使用由libvirt的提供的接口应用。
- libguestfs工具 :杂的系统管理员的命令行工具为虚拟机。
- VIRT安装 :虚拟机管理等命令行实用工具。
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install
一旦安装完成,确保启动并启用的libvirtd服务:
# systemctl start libvirtd.service # systemctl enable libvirtd.service
默认情况下,每个虚拟机只能与同一物理服务器中的其余虚拟机通信,并与主机本身通信。 为了让客人达到我们的局域网内其他机器,也是互联网,我们需要建立在我们的主机桥接口(比如BR0,例如),
1.添加以下行到我们的主要配置网卡(最有可能/etc/sysconfig/network-scripts/ifcfg-enp0s3
):
BRIDGE=br0
2.创建BR0配置文件( /etc/sysconfig/network-scripts/ifcfg-br0
这些内容)(请注意,您可能需要更改IP地址,网关地址和DNS信息):
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 ONBOOT=yes DNS1=8.8.8.8 DNS2=8.8.4.4
3.最后,通过在使数据包转发/etc/sysctl.conf
,
net.ipv4.ip_forward = 1
并将更改加载到当前内核配置:
# sysctl -p
请注意,您可能还需要告诉firewalld,这种流量应该被允许。 请记住,你可以参考这篇文章关于这一主题在这同一系列( 11部分:网络流量控制使用FirewallD和Iptables )如果您需要帮助做到这一点。