01Kvm 概述

1、开源软件,全称是kernel-based virtual machine(基于内核的虚拟机),

2、一种用于Linux内核中的虚拟化基础设施,可以将Linux内核转化为一个hypervisor。

3、x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案。

4、包含一个为处理器提供底层虚拟化 ,可加载的核心模块kvm.ko(kvm-intel.ko或kvm-AMD.ko)。

5、KVM还需要一个经过修改的QEMU软件(qemu-kvm),作为虚拟机上层控制和界面。

6、KVM能在不改变linux或windows镜像的情况下同时运行多个虚拟机,并为每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器……)。

7、在主流的Linux内核,如2.6.20以上的内核均已包含了KVM内核模块。        02Kvm 工作模式     

1、Guest mode:执行客户机系统非 I/O 代码, Virtual Machine运行在这个模式下;

2、User mode:代表客户机系统执行 I/O 操作,Qemu运行在这个模式下;

3、Kernel mode:实现Guest mode的切换,处理因为I/O或者其他指令引起的从客户模式退出(VM_EXIT)的指令;kvm模块工作在这个模式下;

03Kvm 工作模式切换KVM 内核模块作为 User mode 和 Guest mode 之间的桥梁:

04Libvirt调用流程

1、libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用。

2、Libvirtd调用qemu-kvm操作虚拟机:

05Kvm进程与服务

06配置文件和日志文件

配置文件

/etc/libvirt/libvirtd.conf

虚机配置文件

/etc/libvirt/qemu/instance-0000xxxx.xml

虚拟化守护进程日志文件

/var/log/libvirt/libvirtd.log

虚机日志文件

/var/log/libvirt/qemu/instance-0000xxxx.log

07虚机日常管理与配置        管理配置工具集: virtsh , virt-manager ,  virt-install , virt-viewer  等。

virsh: 命令行交互式管理工具实现

查看virsh语法

virsh help  查看所有virsh子命令

查看某子命令详细语法virsh  help  attach-devicevirsh  help  migrate

08KVM巡检步骤        

1、执行lsmod |grep kvm ,确认kvm内核模块正常加载;

2、执行systemctl status libvirtd,确认libvirt服务正常运行;

3、执行ps -efww |grep qemu-kvm,确认每一个kvm虚机进程存活;

4、执行netstat -tunlp |grep qemu-kvm ,确认虚机控制台端口能被正常访问;

5、执行virsh list --all,确认所有虚机能被正常罗列;

09Kvm问题云主机排查过程(向上滑动查看内容)

问题描述:

Kvm虚拟化云主机热迁移后异常关机虚机:5f3689f6-df22-4928-ad8e-220dcedb17c7       instance-000a183a出问题的迁移操作:PSC-BCEC-YW-SV777 -> PSC-BCEC-YW-SV801迁移时间

从nova记录看,12:33开始,12:51结束。问题根因在迁移过程中,源端的qemu因为OOM被系统杀死,迁移结束。同时因为迁移不完整,目的端的qemu也被杀死。结果是两端的qemu都不存在了。相关日志

源端的messages日志:instance-000a183a因为OOM被杀

源端libvirt日志:qemu monitor被关闭

源端sa记录:内存占用在09:00PM时下降,原因是qemu被OOM目的端messages日志:qemu进程被systemd-machined杀死

10总 结KVM作为一个快速成长的Linux开源虚拟化技术,已经获得了许多厂商的支持,性能方面,KVM在逐渐显示其威力。另一方面,开源技术往往伴随很多不稳定因素,写这篇文章目的是希望大家在排查故障过程应该更加考虑全局问题,切勿头痛医头脚痛医脚。如在虚机宕机后,先看看是不是宿主机有内存溢出?Cpu使用率过高,后端存储读写异常等等导致。

本期作者

本期作者|东兴黄宗泽    从事云计算相关行业多年,熟悉vmware、kvm、xenserver等开源主流虚拟化维护,熟悉cloudstack,openstack等开源云管理平台维护。乐于助人,热爱生活,享受生活。

emui内核支持kvm吗_KVM虚拟化详解相关推荐

  1. emui内核支持kvm吗_Linux专题—使用kvm搭建虚拟机

    Linux下使用kvm搭建虚拟机群 1.安装kvm 1.检查cpu是否支持虚拟化 [root@kevin ~]# grep vmx /proc/cpuinfo 如果有vmx信息输出,就说明支持VT;如 ...

  2. linux内核的块设备驱动框架详解

    1.块设备和字符设备的差异 (1)块设备只能以块为单位接受输入和返回输出,而字符设备则以字节为单位.大多数设备是字符设备,因为它们不需要缓冲而且不以固定块大小进行操作; (2)块设备对于 I/O 请求 ...

  3. 内核启动流程分析(二)配置详解

    总体概述 配置详解 配置的最终目的,是生成了.config文件,查看下这个文件, # # Automatically generated make config: don't edit # Linux ...

  4. STM32F1系列以及CM3内核的时钟与中断内容详解

    Stm32F1系统架构 STM32主系统有由四个驱动单元和四个被动单元: 驱动单元:内核DCode总线,系统总线,通用DMA1,通用DMA2 被动单元:AHB到APB的桥--连接所有APB设备, 内部 ...

  5. linux内核中send与recv函数详解

    Linux send与recv函数详解 1.简介 #include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t n ...

  6. KVM虚拟化详解以及如何创建KVM虚拟机

    一.何为虚拟化 虚拟化是云计算的基础,是通过虚拟化技术将一台计算机虚拟为多台逻辑计算机,在一台计算机上同时运行多个逻辑计算机,同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运 ...

  7. 智能服务器虚拟化,详解四大服务器虚拟化架构

    在本指南中,你将了解到服务器虚拟化.操作系统虚拟化.主机式虚拟化(hosted virtualization)和裸机虚拟化(bare-metal virtualization)的一些细节和它们的差异. ...

  8. linux内核 删除文件_Linux内核与根文件系统的关系详解

    Linux内核与根文件系统的关系 开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题! 一语破天机: "尽管内核是 Linux 的核心,但文件却是用户与操作 ...

  9. 一站式linux0.11内核head.s代码段图表详解

    阅读本文章需要的基础: 计算机组成原理:针对8086,80386CPU架构的计算机硬件体系要有清楚的认知,我们都知道操作系统是用来管理硬件的,那我们就要对本版本的操作系统所依赖的硬件体系有系统的了解, ...

最新文章

  1. Altium Protel PCB Layer
  2. boost::mp11::mp_list_c相关用法的测试程序
  3. java 加密解密编程,java 加密解密容易实现
  4. 1/4美国理工博士生中途离学 | Science:原因何在?
  5. mysql 分类_MYSQL数据类型分类
  6. 空值用前值填充_用Excel进行数据处理
  7. 前端开发 图片的插入 。。。。需演练
  8. 微信录音滑动撤销 html5,微信中这个被取消的功能悄悄上线了,将语音上滑即可转换成文字...
  9. 采集浏览器访问某网站时产生的流量,并保存为pcap文件
  10. Django Ajax发送请求使用方法
  11. phonegap安装 环境搭建与配置详解(3.4 完整版 提供下载地址)
  12. Get!读懂数据科学和机器学习,看这文就够了!
  13. 用php写圣诞祝福页面,圣诞祝福文案 抖音圣诞节一句话祝福
  14. 章节3.4----队列的实现与应用
  15. codeblocks17.12安装及汉化
  16. IDEA 导入p3c-formatter 格式化代码
  17. 计算机视觉 什么是图像配准?
  18. 如何提高你的个人价值
  19. [02]时区时间获取
  20. 我为SEO代言,屌丝为我代言

热门文章

  1. 聚焦国内名企开源!OSCAR 开源先锋日(1020)全部议程首次曝光
  2. python3 yield_Python3基础 yield 在函数中的用法示例
  3. cgo 调用dll Failed to load xxxxx.dll: The specified module could not be found.
  4. java8使用stream操作集合类,如何使用bigDicemal计算工资?
  5. 计算机更新阶段,较旧的计算机开始自动升级到Windows10 2004版
  6. 我在暴躁同事小张的胁迫下学会了Go的交叉编译和条件编译
  7. Java虚拟机JVM的内存管理
  8. 问题:org.apache.dubbo.remoting.TimeoutException
  9. 浅析多线程中的各种锁
  10. 浅出Vue 错误处理机制errorCaptured、errorHandler