目录
1. 介绍
1.1 本文件的目的
本文档介绍如何在戴尔PowerEdge服务器上使用红帽企业Linux 7上使用KVM(基于内核的虚拟机)快速设置和管理虚拟化环境。这不是关于虚拟化或KVM的深入讨论,而是关于如何在物理服务器上安装和管理虚拟机(vm)的易于遵循的逐步描述。
也许虚拟化的最大优势是节省了成本。即使使用最简单的部署,您也可以节省硬件($$)和管理(时间)成本。例如,在我的实验室里,我曾经有3个独立的物理服务器,运行我所有的服务和应用程序,现在我只有一个物理服务器,有4个vm和大量的资源(cpu、内存和磁盘空间)。在本文中,我分享了我在实验室中安装和管理虚拟环境所遵循的完全相同的步骤。
我在实验室里不使用Windows,所以我只覆盖Linux虚拟机。安装Windows虚拟机的步骤与Linux相同,还有一个(可选)步骤:在Windows虚拟机中安装virtio驱动程序,可以直接访问物理主机中的设备和外设,从而提高性能。为更多细节的病毒驱动程序的窗口。
1.2 对KVM的一个非常简要的概述
一两句关于KVM的话,然后我们继续讲有趣的东西。KVM是一个Linux内核模块,它允许用户空间程序访问英特尔和AMD处理器的硬件虚拟化特性。在KVM内核模块中,虚拟机作为普通的用户空间进程运行。
KVM使用QEMU来进行I/O硬件仿真。QEMU是一个用户空间模拟器,它可以在主机处理器上模拟各种客户处理器。使用KVM内核模块允许它接近本机的速度。
KVM可以通过libvirt API和工具进行管理。本文中使用的一些自由病毒工具包括病毒sh、病毒安装和病毒克隆。
1.3 条款和约定
让我们同意我在这里使用的一些术语和约定:
- 主机——安装了所有虚拟机的虚拟机监控程序或物理服务器。
- 虚拟机(虚拟机)——安装在物理服务器之上的虚拟服务器。一些在线文档将虚拟机称为“域”或“客人”。
- 文本在快递新字体之前的 # 是你在一个外壳终端上输入的命令。
- 文本在快递新字体是命令输出或文件内容。
2. 准备您的环境
2.1 硬件
您不需要一个顶级的PowerEdge服务器,一个2套接字服务器(每个4-6核),8-16 GB的内存和100 GB的磁盘空间对于4到8个vm就足够了,当然这将取决于您的需要。在我的实验室里,我有一台PowerEdge T610,带有2个英特尔Xeon4核5520处理器,16 GB的内存和大约160GB的磁盘空间,我可以轻松地运行8-10 RHEL的虚拟机。我的大多数虚拟机使用1 GB的内存,1个虚拟CPU(VCPU)和大约15 GB的磁盘空间。
KVM中一个很棒的特性是过度提交的概念,它允许您分配比主机上可用资源更多的虚拟化cpu和内存。然后vm只使用它们需要的东西,允许其他vm使用未使用的资源。因此,当您在规划您的VM资源时,请记住,您可以分配比您实际拥有的更多的资源,但当然要注意,所有VM实际使用的资源总量不能超过主机上可用的资源总量。
2.2 虚拟化技术
验证在服务器的BIOS中是否启用了虚拟化技术(VT)。重新启动服务器,在POST期间按F2进入BIOS,然后选择“处理器设置”,并验证“虚拟化技术”是否设置为“启用”。保存并退出,并让服务器启动。
服务器启动后需要检查的另一项内容是处理器是否支持VT。这不是一个要求,但它在性能上有很大帮助,所以使用支持VT的处理器会更好。检查这些CPU扩展:
grep -E 'svm|vmx' /proc/cpuinfo
- vmx: Intel 处理器支持
- svm: AMD处理器支持
2.3 安装包
有几个要安装的软件包不属于基础RHEL 7安装的一部分。假设您已经定义了yum存储库,请安装以下内容:(原文提到的libvirt-python不一定存在, 可换成python3-libvirt)
yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
启动libvirtd服务:
systemctl enable libvirtd && systemctl start libvirtd
验证以下内核模块已加载,
lsmod | grep kvm
- kvm
- kvm_intel (只在Intel CPU环境上)
如果没有手动加载
modprobe kvm && modprobe kvm_intel
2.4 操作系统安装源文件
您需要为您的虚拟机准备好一个操作系统安装源代码。您可以使用iso或可以通过http、ftp、ftp或nfs访问的网络安装源。
2.5 磁盘空间
当创建虚拟机时,映像文件将在默认目录/var/lib/libvirt/映像中创建,但是您可以选择您想要的任何目录。无论您选择哪个目录,您都必须验证该分区中有足够的可用磁盘空间。在本白皮书中提供的示例中,我使用了目录 /vm-images
KVM支持几种类型的VM映像格式,这些格式决定了每个VM在主机上使用的实际磁盘空间量。在本文中,我们将只创建原始文件格式的虚拟机,它们使用指定的磁盘空间。例如,如果您指定一个VM将有10 GB的磁盘空间,VM安装工具将在主机上创建一个完全为10 GB的文件映像,无论VM是否使用所有10 GB。
这里的最佳实践是在主机上分配足够多的磁盘空间,以安全地容纳所有虚拟机。例如,如果您想创建4个每个都有20 GB存储空间的虚拟机,请确保您的主机上至少有85-90 GB的可用空间。磁盘空间现在很便宜,所以希望这不是一个问题。
2.6 网络
默认情况下,虚拟机只能通过私有网络192.168.122.0对同一台服务器上的其他虚拟机(以及主机本身)进行网络访问。如果您希望虚拟机能够访问您的局域网,那么您必须在连接到连接到局域网的主机上创建一个网桥。按照以下步骤创建网络网桥:
1. 我们将创建一个名为“br0”的桥。将这行添加到您的网络控制器配置文件(比如: /etc/sysconfig/network-scripts/ifcfg-em1):
BRIDGE=br0
2. 创建/etc/sysconfig/network-scripts/ifcfg-br0 并添加:
DEVICE="br0"
# BOOTPROTO is up to you. If you prefer “static”, you will need to
# specify the IP address, netmask, gateway and DNS information.
BOOTPROTO="dhcp"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
ONBOOT="yes"
TYPE="Bridge"
DELAY="0
3. 开启网络转发, 并将下面配置添加到 /etc/sysctl.conf:
net.ipv4.ip_forward = 1
读取文件
sysctl -p /etc/sysctl.conf