【超详细~KVM】KVM概述、安装及简单操作-------从小白到大神之路之学习运维第91天

news2025/1/23 4:46:44

第四阶段提升

时  间: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/966048.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MPI之通信模式(标准,缓存,同步,就绪)

MPI缓冲区 由MPI自行维护的一块内存区域,也可由用户(MPI_Bsend)自行维护;发送方 维护一块发送缓冲区; 接收方 维护一块接收缓冲区。 数据收发过程: 当发送端将数据拷贝到自身的数据缓冲区后(注意这里是拷贝,即数据到…

Redis——认识Redis

简单介绍 Redis诞生于2009年,全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。 特征 键值(Key-value)型,value支持多种不同数据结构,功能丰富单线程&…

多线程专栏------多线程的实现方式(三)

目录 1、使用线程池1.1、什么是线程池1.2、使用线程池的优点1.3、线程池的核心工作流程1.3、线程池的五种状态生命周期1.3.1、RUNNING1.3.2、SHUTDOWN1.3.3、STOP1.3.4、TIDYING1.3.5、TERMINATED 1.4、创建线程池的方式1.4.1、通过 ThreadPoolExecutor 创建1.4.1.1、线程池的核…

类的静态成员变量 static member

C自学精简教程 目录(必读) 类的静态成员 static member 变量全局只有一份副本&#xff0c;不会随着类对象的创建而产生副本。 static 静态成员 在类的成员变量前面增加static关键字&#xff0c;表示这个成员变量是类的静态成员变量。 #include <iostream> using name…

kaggle赛后总结

1. 宽表 2.缺失值的处理方法 最简单粗暴的就是删除&#xff0c;这种情况是凡是有缺失值行数很少。均值替代。缺失值的行数比较多一点儿的时候&#xff0c;直接删除会影响样本数量&#xff0c;那就均值替代&#xff0c;或者中位数替代等方法。还有复杂的方法&#xff0c;把有缺…

NMS(非极大值抑制)的 Python 实现

文章目录 1. NMS的步骤2. Python代码 非极大值抑制&#xff08;Non-Maximum Suppression&#xff0c;NMS&#xff09;是一种在目标检测中常用的技术。 NMS的目的是消除重叠区域中冗余的边界框&#xff0c;并选择最具代表性的目标作为最终结果。通过调整重叠阈值&#xff0c;可…

400电话号码怎么开通

开通400电话是企业提供客户服务的重要步骤。下面是一些步骤和注意事项&#xff0c;帮助您顺利开通400电话。 第一步&#xff1a;选择400电话服务提供商 选择一家可靠的400电话服务提供商非常重要。您可以通过搜索引擎、咨询行业内人士或者参考其他企业的经验来选择合适的服务提…

FLASH读写数据

目录 嵌入式 Flash大概了解 数据手册2.3.2章节 结构图f407 等待周期 Flash 控制寄存器解锁 编程/擦除并行位数 擦除 编程&#xff08;写入&#xff09; 工程程序 嵌入式 Flash大概了解 可以从flash区域启动程序&#xff1b;大概是程序区可以在flash&#xff0c;所以是可以…

python调用git出错:ImportError: Failed to initialize: Bad git executable.

报错信息 #报错信息 Traceback (most recent call last): File “”, line 1, in File “C:\Python27\lib\site-packages\git_init_.py”, line 85, in raise ImportError(‘Failed to initialize: {0}’.format(exc)) ImportError: Failed to initialize: Bad git executab…

春秋云镜 CVE-2018-16283

春秋云镜 CVE-2018-16283 WordPress Plugin Wechat Broadcast LFI 靶标介绍 WordPress Plugin Wechat Broadcast LFI 启动场景 漏洞利用 exp # Exploit Title: WordPress Plugin Wechat Broadcast 1.2.0 - Local File Inclusion # Author: Manuel Garcia Cardenas # Date:…

图论-01-图的基本表示-邻接矩阵和邻接表-Java

文章目录 邻接矩阵邻接表邻接表的问题和改进总结 邻接矩阵 import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner;public class AdjMatrix {private int V;private int E;private int[][] adj;// 构造函数&#xff0c;从文…

利用网络流通过拆点判断图的路径存在性问题:abc318_g

https://atcoder.jp/contests/abc318/tasks/abc318_g 对于图上一类路径是否存在问题&#xff0c;可以考虑网络流。 Trick1 路径存在转网络流 题目转化为&#xff1a; 找出两条不交路径 B->A, B->C 对于已经找到的路径&#xff0c;我们不能再走。对于当前我们找到的某条…

Matlab图像处理-幂次变换

幂次变换 如下图所示的幂次变换函数曲线图&#xff1a; 当γ <1时&#xff0c;效果和对数变换相似&#xff0c;放大暗处细节&#xff0c;压缩亮处细节&#xff0c;随着数值减少&#xff0c;效果越强。 当γ >1时&#xff0c;放大亮处细节&#xff0c;压缩暗处细节&…

云备份——配置信息及获取配置信息类模块

一&#xff0c;配置信息 使用文件配置加载一些程序的运行关键信息&#xff0c;如ip&#xff0c;端口等&#xff0c;可以让程序的运行更加灵活 我们需要的配置信息如下 IP地址端口号热点判断时间&#xff0c;也就是非热点文件的时间要求文件下载的URL前缀路径&#xff0c;用于表…

Matlab图像处理-

对数变换 对数变换的一项主要应用是压缩动态范围。一些特别的图像在实际显示中&#xff0c;高灰度值部分较占优势&#xff0c;而低灰度值的可见细节部分丢失。通过计算对数&#xff0c;如10的动态范围会降至14左右[即 ln1013.8]&#xff0c;这样就更易于处理。 对数变换就是压…

Pygame中Trivia游戏解析6-4

3.3.3 显示题目选项 在显示题目选项时&#xff0c;有三种情况&#xff1a;分别是用户还未选择答案时&#xff1b;用户的答案是正确时&#xff1b;用户的答案是错误时。 &#xff08;1&#xff09;用户还未选择答案时 此时&#xff0c;用白色显示四个备选答案&#xff0c;如图…

数据工厂-生成接口通用用例

章节目录&#xff1a; 一、背景介绍二、前置准备三、设计思路四、代码具体实现五、执行效果六、其他说明七、结束语 一、背景介绍 有哪些用例是可以通用且固定的&#xff1f; 针对之前提到的接口用例设计思路&#xff0c;拆分为三个切入点&#xff1a; 举个例子&#xff1a; {…

【原创】H3C三层交换机VLAN路由

网络拓扑图 VLAN 配置 VLAN 100 VLAN 200 [H3C]int vlan 100 ip address 1.1.1.1 255.255.255.0[H3C-Vlan-interface100]int vlan 200 ip address 2.2.2.1 255.255.255.0[H3C]int GigabitEthernet 1/0/1port access vlan 100[H3C]int GigabitEthernet 1/0/2port access vlan 2…

R语言中缺失值的处理

目录 一.寻找缺失值 1.complete.cases() 2.manyNAs 二.缺失值的处理 1.直接删除 2.填补缺失值 一.寻找缺失值 1.complete.cases() #会展现缺失值 algae[!complete.cases(algae),] 2.manyNAs > manyNAs(algae) [1] 62 199 #表示第62条和第199条都有很多缺失值>m…

文本标注技术方案(NLP标注工具)

Doccano doccano 是一个面向人类的开源文本注释工具。它为文本分类、序列标记和序列到序列任务提供注释功能。您可以创建用于情感分析、命名实体识别、文本摘要等的标记数据。只需创建一个项目&#xff0c;上传数据&#xff0c;然后开始注释。您可以在数小时内构建数据集。 支持…