KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")

"深入解析KVM虚拟化技术和常用命令",KVM虚拟化技术及常用命令详解。小编来告诉你更多相关信息。KVM虚拟化技术及常用命令详解今天介绍KVM虚拟化技术及常用命令详解方面的知识,接下来小编为网友介绍。KVM全称是Kernel-bas...

"深入解析KVM虚拟化技术和常用命令",KVM虚拟化技术及常用命令详解。小编来告诉你更多相关信息。

KVM虚拟化技术及常用命令详解

今天介绍KVM虚拟化技术及常用命令详解方面的知识,接下来小编为网友介绍。

KVM全称是Kernel-based Virtual Machine,即基于内核的虚拟机,是采用硬件辅助虚拟化技术的全虚拟化解决方案。对于I/O设备(如硬盘、网卡等),KVM即支持QEMU仿真的全虚,也支持virtio方式的半虚。

KVM从诞生开始就定位于基于硬件虚拟化支持的全虚实现,由于其在Linux内核2.6版本后被集成,通过内核加载模式使得Linux内核变成一个事实上的Hypervisor(虚拟机管理器,也叫VMM(Virtual Machine Monitor)),但是硬件管理还是由Linux Kernel来完成。

Hypervisor和VMM:

可以把hypervisor和VMM(virtual machine monitor)理解为同一样东西,它们都是用于监控和控制虚拟机操作系统。

在创建虚拟机的过程中,会虚拟出一整套的硬件资源,例如硬盘、内存、CPU、网络设备等,这些工作都是由hypervisor负责,除此之外,它还负责虚拟系统运行过程的资源分配和虚拟机的生命周期管理等。

一个KVM客户机就对应一个Linux进程,每个vCPU对应这个进程下的一个线程,还有单独处理I/O的线程,属于同一个进程组。

所以,宿主机上Linux Kernel可以像调度普通Linux进程一样调度KVM虚拟机,这种机制使得Linux Kernel的进程优化和调度功能优化等策略,都能用于KVM虚拟机。比如:通过进程权限限定功能可以限制KVM客户机的权限和优先级等。

由于KVM嵌入Linux内核中,除了硬件辅助虚拟化(如VT-d)的硬件设备能被虚拟机看见外,其他的I/O设备都是QEMU模拟出来的,所以QEMU是KVM天生的好基友。

可以说KVM就是在硬件辅助虚拟化技术之上构建起来的VMM。

但并非要求所有硬件虚拟化技术都支持才能运行KVM虚拟化,KVM对硬件最低的依赖是CPU的硬件虚拟化支持(比如:Intel的VT-x技术和AMD的AMD-V技术),而其他的内存和I/O的硬件虚拟化支持,会让整个KVM虚拟化下的性能得到更多的提升。

所以在虚拟机部署KVM功能时,首先就是要查看宿主机Host(也就是主机上的虚拟机,这里是在VMware Workstations的虚拟机打开CPU虚拟化功能。

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图1

然后在Linux系统中可以通过如下命令确定支持VT-x功能:

如果什么输出都没有,那说明你的系统并没有支持虚拟化的处理 ,不能使用KVM。

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图2

“vmx” 是 Intel CPU 的虚拟化技术标识,”svm” 是 AMD CPU 的虚拟化技术标识。安装KVM及相关的工具:

sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager

qemu-kvm:KVM虚拟化的基本包

libvirt-daemon-system:libvirt守护程序,提供API和管理虚拟化功能

libvirt-clients:包含用于与libvirt守护程序通信的客户端实用程序

bridge-utils:用于创建和管理网络桥接的工具集

virt-manager:用于管理虚拟机的图形化工具确认libvirtd服务已启动并运行:

sudo systemctl start libvirtdsudo systemctl status libvirtd#确保在系统启动时自动启动sudo systemctl enable libvirtd

通过virt-manger(图形化工具)来创建或者管理虚拟机

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图3

或者通过virsh(命令行工具)来创建或者管理虚拟机

"深入解析KVM虚拟化技术和常用命令",KVM虚拟化技术及常用命令详解。小编来告诉你更多相关信息。

KVM虚拟化技术及常用命令详解

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图4

下面是一些常用的virsh命令:

  • virsh list: 列出当前运行的虚拟机
  • virsh start : 启动指定名称的虚拟机
  • virsh shutdown : 关闭指定名称的虚拟机
  • virsh reboot : 重启指定名称的虚拟机
  • virsh create : 根据指定的XML文件创建虚拟机
  • virsh destroy : 强制停止指定名称的虚拟机
  • virsh undefine : 删除指定名称的虚拟机配置
  • virsh console : 进入指定名称的虚拟机控制台
  • virsh dominfo : 显示指定名称的虚拟机信息
  • virsh domstate : 显示指定名称的虚拟机状态

接下来分析一下kvm的Makefile :

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图5

KVM虚拟化技术及常用命令详解("深入解析KVM虚拟化技术和常用命令")-图6

可以看出kvm的Makefile主要生成三个模块,kvm.o和kvm-intel.o、kvm-amd.o。

  • kvm.o是kvm的核心模块,kvm基本只实现硬件辅助虚拟化相关部分,而不支持的用Qemu来模拟实现。
  • kvm-intel.o是intel平台架构虚拟化模块,平台相关
  • kvm-amd.o是amd架构虚拟化模块,平台相关

上述就是KVM虚拟化技术及常用命令详解的全面知识讲解,网小编希望能帮到您。

阅读前请先查看【免责声明】本文内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅供展示。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 1217266901@qq.com 举报,一经查实,本站将立刻删除。 转载请注明出处:https://www.jingfakeji.com/tech/14675.html

上一篇 2023年09月18日 19:00
下一篇 2023年09月18日 20:58

相关推荐

  • 简述dubbo的分层设计

    简述dubbo的分层设计。小编来告诉你更多相关信息。简述dubbo的分层设计跟大家说一说简述dubbo的分层设计的相关经验,请看下面详细的介绍。Service,业务层,就是咱们开发的业务...

    2024年02月06日
    6
  • Redis事务实现原理(深入解析Redis事务的实现机制)

    深入解析Redis事务的实现机制,Redis事务实现原理。小编来告诉你更多相关信息。Redis事务实现原理关于这方面的知识你知道吗?Redis事务实现原理方面的内容,下面为您详细介绍事务开始MULTI命令的执行,标识着...

    2024年02月06日
    6
  • Vue.js入门指南从安装到创建第一个应用程序

    Vue.js入门指南从安装到创建第一个应用程序。小编来告诉你更多相关信息。Vue.js入门指南从安装到创建第一个应用程序为网友们详解Vue.js入门指南从安装到创建第一个应用程序方面的内容,一起跟随小编看看吧...

    2024年02月06日
    7
  • dubbo的工作流程

    dubbo的工作流程。小编来告诉你更多相关信息。dubbo的工作流程本文导读:dubbo的工作流程的教程内容,一起跟随小编看看吧!Start:启动Spring容器时,自动启动Dubb...

    2024年02月05日
    8
  • Dubbo支持的注册中心有哪些?

    Dubbo支持的注册中心有哪些?。小编来告诉你更多相关信息。Dubbo支持的注册中心有哪些今日重点为您介绍Dubbo支持的注册中心有哪些方面的知识,下面来一起了解一下吧。Zookeeper(官方...

    2024年02月05日
    7
  • 为什么netflix从大单体演进到联合网关了

    为什么netflix从大单体演进到联合网关了。小编来告诉你更多相关信息。为什么netflix从大单体演进到联合网关了小编为大家解答为什么netflix从大单体演进到联合网关了的电脑方面的小经验,接下来一起来...

    2024年02月05日
    7

联系我们

在线咨询: QQ交谈

邮箱:1217266901@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信