CentOS 8.1 安装部署KVM虚拟机
一、KVM简介
1. 什么是虚拟化?
虚拟化,通过模拟计算机的硬件,来实现在同一台计算机上同时运行多个不同的操作系统的技术。虚拟化有两种类型:
Hypervisor直接在安装在宿主机的逻辑上:
Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。
Hypervisor安装在宿主机的操作系统上:
物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。
2. KVM是什么?
KVM 全称是 基于内核的虚拟机(Kernel-based Virtual Machine),它是一个 Linux 的一个内核模块,该内核模块使得 Linux 变成了一个 Hypervisor:
- 它由 Quramnet 开发,该公司于 2008年被 Red Hat 收购。
- 它支持 x86 (32 and 64 位), s390, Powerpc 等 CPU。
- 它从 Linux 2.6.20 起就作为一模块被包含在 Linux 内核中。
- 它需要支持虚拟化扩展的 CPU。
- 它是完全开源的。
3. KVM架构
KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。
但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。
4. KVM功能
KVM 所支持的功能包括:
- 支持CPU 和 memory 超分(Overcommit)
- 支持半虚拟化I/O (virtio)
- 支持热插拔 (cpu,块设备、网络设备等)
- 支持对称多处理(Symmetric Multi-Processing,缩写为 SMP )
- 支持实时迁移(Live Migration)
- 支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV)
- 支持 内核同页合并 (KSM )
- 支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 )
5. KVM磁盘管理
在KVM虚拟机中有两种磁盘格式,分别是:
RAW:裸格式。占用空间较大,性能比较好,但不支持快照功能;
qcow2:此为默认虚拟机磁盘格式,占用空间较小,性能相比较RAW稍差,,但它支持快照功能;
6. 虚拟机网络管理
我们之所以在KVM虚拟机中创建多个虚拟机,是为了能够给互联网的用户提供相应的服务。那么首先我们介绍KVM虚拟机的两个模式:
1)、NAT模式
NAT方式是KVM安装完成之后的默认方式,它支持KVM宿主机和虚拟机之间的访问,同时也支持虚拟机访问互联网,但不支持互联网用户对其进行访问!
2)、bridge模式(桥接网络)
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信。可以使虚拟机成为网络中具有独立IP的主机。
桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况。
KVM网桥的配置方法,可参考网址:https://www.liuwg.com/archives/kvm-bridge
二、KVM安装与配置
1. 查看系统版本
[root@localhost /]# cat /etc/centos-release
CentOS Linux release 8.1.1911 (Core)
2. 关闭防火墙和系统增强功能
[root@localhost /]# systemctl stop firewalld
[root@localhost /]# systemctl disable firewalld
[root@localhost /]# vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,重启计算机生效。
3. KVM管理软件安装
[root@localhost /]# yum -y install qemu-kvm libvirt libvirt-daemon libvirt-client libvirt-daemon-driver-qemu virt-manager virt-install virt-viewer virt-v2v
软件包介绍:
qemu-kvm: 为kvm提供底层仿真支持;
libvirt-daemon: libvirtd守护进程,管理虚拟机;
libvirt-client: 用户端软件,提供客户端管理命令;
libvirt-daemon-driver-qemu: libvirtd连接qemu的驱动;
libvirt: 虚拟管理模块;
virt-manager: 图形界面管理工具;
virt-install: 虚拟机命令行安装工具;
virt-v2v: 虚拟机迁移工具;
4. 启动KVM并设为开机启动
[root@localhost /]# systemctl start libvirtd
[root@localhost /]# systemctl enable libvirtd
三、安装虚拟机
1. 使用virt-manager软件新建虚拟机,CentOS8.1需要安装图形化桌面,安装方法如下:
[root@localhost /]# yum grouplist #查看系统中可安装图形化桌面
Last metadata expiration check: 0:00:04 ago on Sat 18 Apr 2020 05:52:35 PM CST.
Available Environment Groups:
**Server with GUI
Server
Workstation
Virtualization Host
Custom Operating System**
Installed Environment Groups:
Minimal Install
Installed Groups:
Container Management
Headless Management
Available Groups:
.NET Core Development
RPM Development Tools
Development Tools
Graphical Administration Tools
Legacy UNIX Compatibility
Network Servers
Scientific Support
Security Tools
Smart Card Support
System Tools
[root@localhost /]# yum groupinstall "Server with GUI" #安装此图形化桌面
[root@centos8 ~]# systemctl set-default graphical #启用图形模式,至此图形化桌面已安装完成。如果使用VNC连接进行安装时,可以不将图形桌面设置为默认模式。
2.新建ISO与images目录,并上传所要安装系统iso文件
[root@localhost /]# mkdir -p /data/iso #上传系统文件目录
[root@localhost /]# mkdir -p /data/images
3.打开virt-manager安装虚拟机
配置iso存储路径及文件:
新建虚拟机,选择本地ISO:
配置虚拟机内存、CPU及磁盘大小:
配置完成后,即可开始系统安装工作了。
选择桥接的网络br0
附,除此之外,还有可以使用VNC方式进行虚拟机安装工作,VNC安装与配置可参考网址:https://www.liuwg.com/archives/vncserver