第四阶段提升
时 间:2023年8月30日
参加人:全班人员
内 容:
KVM概述、安装及简单操作
目录
一、KVM 概述
二、KVM工作原理
三、KVM应用场景
四、centos7 下安装部署
五、新建虚拟机步骤
1、创建存储池并创建存储卷
2、点击+号创建KVM存储池
3、创建存储卷
4、创建ISO存储池
5、利用winscp工具,将主机上的镜像上传到虚拟机的ISO的目录
6、生成新虚拟机
六、KVM的简单操作
一、KVM 概述
KVM 是 Kernel-based Virtual Machine 的缩写,是一种用于虚拟化的开源硬件虚拟化技术。
它使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。
KVM 允许虚拟机直接访问物理硬件资源,从而提供出色的性能和稳定性,同时还支持许多常见的操作系统和应用程序。
KVM 使用了 QEMU (Quick Emulator) 作为其默认的虚拟机监控程序。
除此之外,KVM 还支持多种嵌入式和云计算场景,并且得到了广泛的应用。
二、KVM工作原理
KVM 的工作原理是使用 Linux 内核的虚拟化模块,将物理服务器划分为多个虚拟机。
具体来说,它在 Linux 内核之上构建一个虚拟化层,该虚拟化层允许多个虚拟机共享物理服务器上的计算资源(如 CPU、内存和 0 设备)。在此虚拟化层中,每个虚拟机都被视为单独的计算机,每个虚拟机可以运行不同的操作系统和应用程序。
KVM使用硬件虚拟化技术,即通过 intel VT-x 和 AMD-V 等 CPU 虚拟化指集的支持,将虚拟化性能提升到接近原生性能。
此外,KVM 还使用 QEMU 作为其虚拟机监控程序,QEMU为每个虚拟机提供了一个虚拟化的环境,在该环境中,虚拟机可以访问它需要的资源(如磁盘、网络和其他I/0 设备)。
同时,KVM 利用 Linux 内核的强大功能,如分时调度和内存管理,来确保多个虚拟机之间的隔离性和安全性。
综上所述,KVM 的工作原理是结合硬件虚拟化技术和 Linux 内核的虚拟化模块,创建出一个虚拟化层,将物理服务器划分为多个虚拟机,并为每个虚拟机提供一个虚拟化的环境,从而实现资源共享和隔离。
三、KVM应用场景
KVM 作为一种强大的硬件虚拟化技术,在许多场景下都具有广泛的应用,以下是几个主要的应用场景:
1.云计算: KVM 在云计算中表现优异,可用于构建虚拟私有云、虚拟机托管服务等。KVM可以帮助企业实现资源共享、高可用性和快速部署的目标,同时还可以提高数据安全性和隔离性。
2.Web 托管: KVM 可以用于 Web 服务器的虚拟化,通过将多个虚拟机分配在一个物理服务器上,可以极大地提高服务器的利用率和性能。同时,KVM 还提供了快速备份和恢复数据的功能,保证了服务器的高可靠性。
3.测试和开发:KVM 可以帮助开发者创建多个虚拟机进行测试和开发,从而提高软件开发周期的效率和速度。开发者可以在虚拟机中运行不同的操作系统和应用程序,隔离他们的开发环境,同时可以在开发过程中随时备份和还原虚拟机。
4.HPC(高性能计算): KVM 可以用于构建 HPC 集群系统。通过虚拟化技术,HPC 集群系统可以实现资源共享和高效管理,同时保证计算资源的隔离性和安全性。
5.VDI(虚拟桌面基础设施): KVM 可以用于构建VDI 系统,将多个桌面虚拟机部署在一个物理服务器上,实现桌面虚拟化。VDI 系统可以提供远程访问、资源共享和快速部署的功能,同时可以保证数据隔离和安全性。
四、centos7 下安装部署
下面是在 Centos 7 上安装和部署 KVM 的步骤:
1、硬性条件,支持VT技术
确保您的系统支持虚拟化技术,可以通过以下命令来检查:
egrep -c '(vmx|svm)' /proc/cpuinfo
如果返回结果大于 0,则表示您的系统支持虚拟化技术
2.安装 KVM 和相关软件包,可以通过以下命令来安装:
[root@localhost ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager
3.创建一个网络桥接器:
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-br0
[root@localhost network-scripts]#
vim ifcfg-br0
编辑如下内容:
4.配置网络,编辑网卡配置文件:
[root@localhost network-scripts]#
vim ifcfg-ens33
添加如下内容:
5.重启网络服务,并检查网络:
[root@localhost network-scripts]# ifconfig
[root@localhost network-scripts]#
systemctl restart network
[root@localhost network-scripts]# ifconfig
6.测试 KVM
使用 virt-manager 工具 (可以在本地安装或远程连接) 进行测试,如果可以成功启动虚拟机,则说明 KVM 已经安装并配置成功。
注意:在 centos7上,防火墙可能会阻止 KVM 的运行,如果您遇到问题,请确保您已将必要的端口添加到防火墙例外列表中。
五、新建虚拟机步骤
1、创建存储池并创建存储卷
双击QEMU/KVM
呈现如图
点击存储
2、点击+号创建KVM存储池
前进下一步
创建如下
3、创建存储卷
4、创建ISO存储池
前进下一步
创建如下
5、利用winscp工具,将主机上的镜像上传到虚拟机的ISO的目录
进入页面如下
选择文件传输
选择文件接收位置
文件传输
传输成功
验证
6、生成新虚拟机
虚拟管理器新建虚拟机
生成新虚拟机选择本地安装介质
选择镜像位置
确定镜像位置,前进下一步
根据需要,选择合适的运行内存和CPU数量,前进
前进
自定义存储,前进
点击完成
弹出如图
选择如下
选择如下
开始安装
选择中文
选择安装ubuntu
选择中文,继续安装
继续安装
选择清除,现在安装
选择位置,继续安装
选择汉语,继续安装
输入信息,创建普通用户
等待安装
安装完重启
输入用户密码进入
进入页面如下
六、KVM的简单操作
1、查看虚拟机
[root@localhost ~]# virsh list --all
2、关闭虚拟机
[root@localhost ~]# virsh shutdown ubuntu14.04
3、强制关机
[root@localhost ~]# virsh destroy ubuntu14.04
4、开启虚拟机
[root@localhost ~]# virsh start ubuntu14.04
5、通过虚拟机配置文件启动
[root@localhost ~]# virsh create /etc/libvirt/qemu/ubuntu14.04.xml
6、挂起虚拟机
[root@localhost ~]# virsh suspend ubuntu14.04
7、恢复虚拟机挂起
[root@localhost ~]# virsh resume ubuntu14.04
8、设置虚拟机开机和物理机一起自动启动
[root@localhost ~]# virsh autostart ubuntu14.04
9、设置虚拟机取消开机自动启动
[root@localhost ~]#
virsh autostart --disable ubuntu14.04
10、备份虚拟机配置文件,备份虚拟机到根目录下
[root@localhost ~]# virsh dumpxml ubuntu14.04 > /root/ubuntu14.04.xml
11、删除虚拟机和恢复备份虚拟机
错误示范:
[root@localhost ~]# virsh undefine ubuntu14.04
[root@localhost ~]# virsh create ubuntu14.04.xml
正确做法:
[root@localhost ~]# virsh destroy ubuntu14.04
[root@localhost ~]# virsh create ubuntu14.04.xml
12、虚拟机的克隆和快照
1)虚拟机的克隆,将Centos克隆为localhost指定虚拟机磁盘文件类型
[root@localhost ~]# virt-clone -o ubuntu14.04 -n localhost -f /virtual/KVM /ubuntu14.04.qcow2
错误示范:
正确操作:
2)对Centos虚拟机创建快照
[root@localhost ~]# virsh snapshot-create ubuntu14.04
3)查看快照
[root@localhost ~]# virsh snapshot-list ubuntu14.04
4)恢复用户创建的快照
[root@localhost ~]# virsh snapshot-revert ubuntu14.04
1693386741
5)删除虚拟机创建的快照
[root@localhost ~]# virsh snapshot-delete ubuntu14.04 1693386857
6)修改虚拟机创建的快照名字
[root@localhost ~]# virsh snapshot-edit ubuntu14.04
--snapshotname 1574074089 --rename
[root@localhost ~]# virsh snapshot-list ubuntu14.04