kvm介绍

2023-05-16

KVM(Kernel-Based Virtual Machines)是一个基于Linux内核的虚拟化技术, 可以直接将Linux内核转换为Hypervisor(系统管理程

序)从而使得Linux内核能够直接管理虚拟机, 直接调用Linux内核中的内存管理、进程管理子系统来管理虚拟机

KVM在2007年2月被收录进Linux 2.6.20版本的内核

虚拟化分为两种类型:

    1:Hypervisor直接运行在硬件上   (例如:kvm)

    2:Hypervisor运行在OS上    (例如:vmware)

 

kvm技术比较奇葩只要当前系统(Linux)装载了KVM模块, Linux内核就直接变成Hypervisor, Hypervisor可以直接在系统上运行相关

的管理命令来建、删除…KVM虚拟机,每个创建出来的虚拟机又有自己的用户空间和内核空间

注意在原有系统上执行各种命令是不受kvm模块管理的

那虚拟机上的cpu是如何虚拟出来的?

就是由原有的内核中的一个线程,通过kvm模块辅助完成,比如一个虚拟机的一颗cpu运行就是通过原有内核中的一个线程通过kvm模

块辅助在内核中完成,两颗cpu就是用两个线程,从原有内核的角度来看虚拟cpu就是一个线程

 

如果kvm虚拟机的用户空间进行了i/o调用,是怎么个过程?(我们知道i/o调用一般都是特权指令)

首先用户空间,会发起系统调用,将请求转交给自己的内核空间,内核空间再转交给原有的用户空间的qemu应用程序所模拟出来的各

种硬件设备,再由qemu转交给原有内核空间完成真正的i/o系统调用,如果非i/o类的特权指令则直接交给硬件cpu处理,这一特性使得

kvm技术性能的损失和真正的物理机相比小于10%

 

kvm的两类组件:

    /dev/kvm:工作于hypervisor,在用户空间可通过ioctl(),系统调用来完成VM创建、启动等管理功能;它是一个字符设备

    功能:创建VM、为VM分配内存、读写VCPU的寄存器、向VCPU注入中断、运行VCPU等等

    qemu进程:工作于用户空间,主要用于实现模拟PC机的IO设备

 

 KVM的管理工具栈:qemu:qemu-kvm,qemu-img 和libvirt:CLI: virt-install, virsh  (根据自己的喜好选择一个就行,我喜

qemu)

  QEMU主要提供了以下几个部分:
      处理器模拟器
      仿真IO设备
      关联模拟的设备至真实设备;
      调试器
      与模拟器交互的用户接口

 

 安装:

    (1) 确保CPU支持HVM(硬件虚拟化)

      如果是虚拟机做实验确保下面此项勾选

      

     如何查看:grep -E --color=auto "(vmx|svm)" /proc/cpuinfo   如存在vmx或svm则支持硬件虚拟化

       (2) 装载模块

      modprobe kvm-intel  或者amd根据cpu类型选择

    (3) 验正:

      

      /dev/kvm 是否存在此文件 

     

 如何使centos6支持虚拟化:

      

Virtualization:提供qemu-kvm

Virtualization Client:提供python-virtinst, virt-manager, virt-viewer

Virtualization Platform:提供libvirt, libvirt-client

 Virtualization Tools:提供libguestfs

 

 如果使用qemu-kvm管理的话。直接yum -y install qemu-kvm就行了

/usr/libexec/qemu-kvm  就是它的管理命令

  ln -sv /usr/libexec/qemu-kvm /usr/bin/  创建链接文件

现在就可以直接使用qemu-kvm命令创建管理虚拟机了,使用qemu-kvm --help查看帮助选项

补充:centos7上安装也一样没什么区别

 所谓的Ias云,其实就是一个横跨N个物理节点,管理N*N个虚拟机实例的工具,当前市面上还有许多kvm管理工具像Openstack就是

最总量级的一个kvm虚拟机管理工具

 

 

 

          

转载于:https://www.cnblogs.com/linuxboke/p/5525209.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kvm介绍 的相关文章

  • KVM下Ubuntu18.04打开设置注销问题

    问题描述 xff1a 在KVM中创建Ubuntu18 04 xff0c 打开系统设置 xff0c 发现直接注销 xff08 不是锁屏 xff0c 因为所有程序都退出 xff09 解决思路 在google上搜索发现大多数都是指向显卡问题 xf
  • kvm常见故障及解决

    一 启动虚拟机Connection reset by peer virsh start vmhost1error Failed to start domain vmhost1error Unable to read from monitor
  • linux编译安装kvm、qemu

    kvm作为主流虚拟化产品 其实它的用户层使用的是qemu 所以要安装使用kvm 一般需要安装kvm kmod以及qemu两部分 安装kvm kmod 1 首先下载kvm kmod源码并解压 2 进入源码目录 3 configure kern
  • ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

    设备直通是一种虚拟化资源分配方式 通过将物理设备直通给虚拟机环境 达到虚拟机可以直接访问物理设备的目的 直通功能对设备的要求不高 不需要设备支持PF VF 目前市面上的显卡 网卡一般都支持直通 典型场景比如有两块显卡 一块主机用 另一块虚拟
  • Zstack 挂载云盘,在Windows下面看不到解决方法

    原因 在使用 Zstack 私有云时 创建 WinServer2019 时 想添加一块数据云盘 但是添加好后 进入系统看不到硬盘 主要是因为添加的云盘驱动是 virtio 格式 所以要安装相关驱动 1 查看挂载的云盘 root zstack
  • QEMU-KVM基本操作

    本文主要介绍KVM虚拟机的一些基本实践操作 对KVM虚拟机的管理操作主要是基于libvirt的命令行工具virsh进行的 一 安装与启动 1 KVM模块检查 1 查看当前Linux系统核心是否包含KVM模块 Linux内核2 6 20及以上
  • kvm qemu内幕介绍

    kvm qemu内幕介绍 标签 虚拟化io数据结构linux内核优化磁盘 2012 09 14 11 10 6923人阅读 评论 4 收藏 举报 分类 linux 56 版权声明 本文为博主原创文章 未经博主允许不得转载 目录 1 硬件虚拟
  • 关于对cpu的理解和kvm虚拟机到物理cpu的绑定

    这段时间一直在想 云计算除了虚拟化之外 还应该有其它的东西 那就是优化 因为我们虚拟出来资源之后怎么用 怎么划分 是并行也好 是租给用户使用也好 都要实现资源调度和使用的最优化 嗯 这是这段时间关于云计算的想法 下面分享一下最近两天做的一些
  • kvm虚拟化技术

    前言 kvm是一种虚拟化技术 使用 概念 kvm是linux内核的模块 它需要CPU支持 采用硬件辅助虚拟化技术Intel VT AMD V 内存的相关技术如Intel的EPT和AMD的RVI 是底层虚拟化内核模块 检查cpu是否支持虚拟化
  • 33 KVM管理设备-配置虚拟机PCIe控制器

    文章目录 33 KVM管理设备 配置虚拟机PCIe控制器 33 1 概述 33 2 配置PCIe Root PCIe Root Port和PCIe PCI Bridge 33 2 1 简化配置方法 33 2 1完整配制方法 33 KVM管理
  • 再论KVM超量使用

    转载自 http www sohu com a 111248295 251444 KVM超量使用一直是热门话题 前段时间发的文章 群讨论 虚拟机能否使用32个CPU 又引去了群友的激烈讨论 本文为群友根据自己的经验总结投稿 感谢这位热心的群
  • Linux 桌面虚拟化技术 KVM

    KVM 是 Kernel based Virtual Machine 的简称 是一个开源的系统虚拟化模块 自Linux 2 6 20之后集成在Linux的各个主要发行版本中 它使用Linux自身的调度器进行管理 所以相对于Xen 其核心源码
  • kvm-ovirt-vdsm安装记录

    小技巧 1 fedaro 19自动查找最快yum源 yum install yum fastestmirror 2 libvirt启动sasl添加用户 saslpasswd2 c a libvirt admin 3 查看kvm模块 lsmo
  • KVM初始化过程

    之前打算整理一下在Guest VM KVM QEMU中IO处理的整个流程 通过查阅资料和阅读源码 已经大致知道IO在Guest KVM中的处理流程 当想要整理IO在KVM和QEMU中的处理时 发现很难理清楚QEMU和KVM之间的跳转和交互的
  • qemu-guest-agent windows下的监控开发

    windows下的qemu guest agent 简称qga 的名字叫做qemu guest agent win32 目前最新版的版本号是qemu guest agent win32 0 12 1 2 2 355 el6 4 9 x86
  • 云安全技术——kvm虚拟化技术

    目录 10 1 kvm简介 10 2 在CentOS 7 图形化界面下安装KVM 使用IDEA开发读写MySQL数据库程序 实验目的 了解 CentOS7图形化界面的部署方法 了解 KVM的组成和作用 了解 KVM的技术架构 了解KVM的安
  • KVM热迁移

    KVM热迁移 介绍 KVM热迁移的前提是拥有共享存储 以下通过NFS实现KVM热迁移 迁移过程 将一处于运行状态的KVM虚拟机从节点kvm 01迁移到kvm 02后继续运行 准备 主机准备 hostname IP地址 系统 配置 kvm 0
  • libvirtError:XML 错误:预期单播 mac 地址,发现多播

    我正在通过 ansible 设置 KVM 自动化 并且我有一个虚拟机一直给我这个错误 libvirtError XML 错误 预期的单播 mac 地址 发现多播 53 54 00 b4 ad 81 我不认为这是一个可靠的问题 因为其他几个虚
  • 当 KVM-QEMU 打开时,Intel-PT 不记录任何数据包

    我尝试在主机上使用 Intel PT 同时在客户机上运行通用软件程序 所以我期望主机中运行的 Intel PT 将记录所有相关数据包 如 PIP FUP TSC 等 以及所有基于 VM 的数据包 如 VMCS 我使用以下命令 perf kv
  • update-alternatives:错误:arptables 的替代 /usr/sbin/arptables-legacy 未注册;不设置

    我在 Buster 主机上有 Debian 10 Buster KVM 来宾计算机 尝试切换到旧版iptables在以下虚拟机上Debian 维基 https wiki debian org iptables update alternat

随机推荐

  • python中如何输入多行文字_python中怎么输入多行字符串 | 学会python

    关键词 xff1a 疾风 不言 生存 努力 人生 起风了 方法 字符串 输入 斜杠 更多 详细内容 相关文章 中文网 引号 Python中输入多行字符串 xff1a 方法一 xff1a 使用三引号 gt gt gt str1 61 39 3
  • linux apt查找安装包,apt搜索是否安装了某个包,但全名不记得

    apt命令很多 xff1a apt cache search package 搜索包 apt cache show package 获取包的相关信息 xff0c 如说明 大小 版本等 sudo apt get install package
  • 人间地狱服务器一直显示有人,人间地狱常见问题及解决方法_Hell Let Loose常见问题Q&A_游戏堡...

    在 Q xff1a 刷不出服务器 xff0c 或只有少量服务器 A xff1a 在Steam设置中 xff0c 将ping设置由自动改为250 Q xff1a 启动游戏时 xff0c 说检测到你作弊 A xff1a 禁用你系统上的防火墙 x
  • 魔兽服务器负载显示新,魔兽世界部分服务器的负载过高 官方将会开启免费转服服务...

    魔兽世界已经正式迎来的了游戏的9 0 xff0c 魔兽世界的9 0一开就是引来了相当多的玩家们 xff0c 各位玩家大量涌入导致部分人多的服务器负载过高 xff0c 进而会造成排队 xff0c 卡顿 xff0c 甚至是炸服 xff0c 最近
  • 虚拟服务器+ftp上传错误,虚拟主机FTP无法上传文件解决办法

    虚拟主机ftp无法上传文件 大家都遇到过吗 如果虚拟主机无法上载文件 xff0c 您可以通过以下方法解决问题 检查是否存在以下情况 1 您要上传文件的文件夹属性是不是 777 的属性 使用 FTP 软件 xff0c 查看目录 xff0c 在
  • ctags的使用

    在windows上进行软件开发 xff0c 有很多的IDE可供选择 xff0c 像是source insight vs等 xff0c 非常方便好用 习惯于windows上的软件开发 xff0c 当转到linux上后 xff0c 没有与win
  • firewall

    centos 7中防火墙是一个非常的强大的功能了 xff0c 但对于centos 7中在防火墙中进行了升级了 xff0c 下面我们一起来详细的看看关于centos 7中防火墙使用方法 FirewallD 提供了支持网络 防火墙区域 zone
  • Spring MVC原理及配置

    Spring MVC原理及配置 1 Spring MVC概述 Spring MVC是Spring提供的一个强大而灵活的web框架 借助于注解 xff0c Spring MVC提供了几乎是POJO的开发模式 xff0c 使得控制器的开发和测试
  • vue 复制功能 复制到剪切板

    首先 使用npm安装依赖 npm install save vue clipboard2 然后在main js中注入 复制到剪切板 import VueClipboard from 39 vue clipboard2 39 Vue use
  • git.教程资料

    1 Git使用教程 最详细 xff0c 最傻瓜 xff0c 最浅显 xff0c 真正手把手教 qq 36150631的博客 CSDN博客 html xff08 https blog csdn net qq 36150631 article
  • maven(私库)上传jar包

    在实际开发过程中 xff0c 我们经常会遇到需要引用的jar依赖 xff0c 在我们公司的maven仓库不存在 xff0c 这个时候我们就需要把jar上传上去 xff0c 在项目中添加对应依赖就OK了 步骤1 下载jar 在http mvn
  • [Vue warn]: Duplicate keys detected: '0'. This may cause an update error.

    1 Vue warn Duplicate keys detected 39 0 39 This may cause an update error 第一眼看到这个错误一脸懵逼 xff0c 项目使用很久了 xff0c 代码也没有改过 xff0
  • jsp 实现修改和删除功能

    main jsp 实现查询 在此界面快捷方式到修改界面 点击修改 会把数据传递到exit jsp 修改 edit jsp 前面数据 xff1a 数据库 xff1a 1 2 Navicat Premium Data Transfer 3 4
  • [nginx]invalid number of arguments

    invalid number of arguments nginx出现以下的错误 xff0c 基本上错误的原因就是少了后面的分号导致 invalid number of arguments in 34 include 34 directiv
  • HDU 2246 考研路茫茫——考试大纲

    HDU 2246 考研路茫茫 考试大纲 聽說這題要打表999 43 就傻傻的從0 N一個個地貼在代碼上了 打了幾個文件 xff0c 一同學就說我錯了 xff0c 杯具 因為提交上去的代碼長度不能超64K 白打了 xff0c 不過提示我測試數
  • MariaDB简介

    一 什么是数据库 DB 与 DBMS xff1a DB xff08 DataBase xff09 即数据库 xff0c 存储已经组织好的数据的容器 DBMS xff08 DataBase Manage System xff09 是数据库管理
  • 面试问题之操作系统:动态链接库和静态链接库的区别

    动态链接库是一个可以被其它应用程序共享的程序模块 xff0c 其中封装了一些可以被共享的例程和资源 动态链接库文件名的扩展名一般是dll xff0c 也有可能是drv xff0c sys和fon xff0c 它和可执行文件 exe 非常类似
  • linux中使用Crontab定时执行java的jar包无法使用环境变量的问题

    1 crontab简单使用 cmd 其实就是5个星星的事情 xff0c 随便百度一下吧 5个时间标签用来标注执行的设定 比如每5分钟执行一次 5 cmd 要特别注意 2 有些命令在命令行里执行很好 xff0c 到了crontab里面不能正常
  • Linux内核版本介绍与查询

    Linux内核版本命名在不同时期有着不同的规范 xff0c 在涉及到Linux版本问题时经常容易混淆 xff0c 主线版本 xff0f 稳定版 xff0f 长期支持版本经常搞不清楚 xff0c 本文主要记录下内核版本命名的规则以及如何查看L
  • kvm介绍

    KVM Kernel Based Virtual Machines 是一个基于Linux内核的虚拟化技术 可以直接将Linux内核转换为Hypervisor xff08 系统管理程 序 xff09 从而使得Linux 内核能够直接管理虚拟机