一、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安装虚拟机

image.png

配置iso存储路径及文件:
image.png

新建虚拟机,选择本地ISO:
image.png
image.png

配置虚拟机内存、CPU及磁盘大小:
image.png
image.png

配置完成后,即可开始系统安装工作了。
image.png

选择桥接的网络br0
image.png

image.png

附,除此之外,还有可以使用VNC方式进行虚拟机安装工作,VNC安装与配置可参考网址:https://www.liuwg.com/archives/vncserver

上一篇 下一篇