运维工程师面试题总结-虚拟化技术与KVM企业级应用14

简介: 个人学习

1. 为什么要用虚拟化

充分利用物理资源,提供冗余性、向云计算演进的必要基础。

2. CPU虚拟化

CPU的虚拟化本质上是时间分片。这里我们用的是KVM来虚拟的。

流程如下: QEMU调用ioctl进入内核,内核读取VMCS,(这里先解释下VMCS,VMCS是异常处理的关键结构,里面存储了 客户机,宿主机,陷入退出的各种状态。)把客户机的状态装在到CPU的CS:EIP,然后执行 kvm_exit_handler. 如果是IO引起的,则进入用户模式,执行QEMU

3. 内存虚拟化

一般的内存虚拟化都经过了两次的页表转换。 客户机线性地址到 客户机物理地址, 然后再到宿主机物理地 址。 这样经过了两次转换,效率很难提高。于是就出现了影子页表。

这里就不得不说影子页表了。 这里有一张hash表,维护者物理机和客户机的内存地址映射表。 那么如何被建 立的呢?

当发生页故障的时候,VMM搜索客户页表,如果不存在客户线性地址VGA 到 客户机物理地址 GPA的转换,那 么则返回给虚拟机异常,由虚拟机处理页故障。

如果存在映射关系,则先去寻找QEMU地址空间的主机线性地址 HVA, 如果不存在 HVA 映射到 HPA, 那么 kernel 去分配物理地址。 然后VMM可以使用该HPA构建影子页表。 至此,影子页表建立完成。

4. 磁盘使用raw/qcow2有什么区别

raw不支持快照但性能好,常用的是qcom2支持快照,性能相比差一点。

5. kvm和Xen有何区别?

Xen是一个外部的hypervisor程序(虚拟机管理程序);它能够控制虚拟机和给多个客户机分配资源. 另一方 面, kvm是linux的一部分, 可使用通常的linux调度器和内存管理. 这意味着kvm更小更易使用. 另一方面, Xen同时支持全虚拟化和半虚拟化(修改过的客户机能有更好的性能). kvm当前不支持半虚拟化

6. 如果对一个VM进程使用kill -9将会发生什么?

从客户机的角度来看, 就如你猛地把电源线从主机上拔出一样. 从主机的角度来看, 进程被杀掉, 进程占用的所有资源被施放

7. kvm各模式说明

有三种模式:用户模式,内核模式,客户模式。 QEMU运行在用户模式,用户模式就是一般意义上运行的进程的模式,QEMU调用一系列的ioctl就可以进入内核模式,这里内核模式再调用kvm_create等函数就可以进入客户模式,客户模式也就是虚拟机运行的模式。

但是如果虚拟机出现了异常或者常见的缺页中断或者IO操作的时候呢,他是没有权限对全局资源进行操作的, 这样就会被VMM,这里也就是KVM进行捕获,然后捕获之后呢再跳转到用户模式调用QEMU进行IO操作。所以说内核模式其实是个中间变量,专门用来进行错误发现的时候的转换的。

8. kvm框架包含哪些

KVM 分为了两个模块,一个是KVM Driver, 另一个是QEMU。前者负责CPU和内存的虚拟化,后者负责IO的 虚拟化。用户空间的QEMU调用一系列的ioctl() 函数进入内核空间,然后内核控件再调用一系列函数进入 Guest OS客户空间运行虚拟机

9. kvm的三个组件及作用

libvirt(用来管理虚拟机)、virt(安装和克隆虚拟机)、qemu(管理虚拟机磁盘的)

10. 简述kvm的几种模式

有三种模式:用户模式,内核模式,客户模式。 QEMU运行在用户模式,用户模式就是一般意义上运行的进程 的模式,QEMU调用一系列的ioctl就可以进入内核模式,这里内核模式再调用kvm_create等函数就可以进入 客户模式,客户模式也就是虚拟机运行的模式。

但是如果虚拟机出现了异常或者常见的缺页中断或者IO操作的时候呢,他是没有权限对全局资源进行操作的, 这样就会被VMM,这里也就是KVM进行捕获,然后捕获之后呢再跳转到用户模式调用QEMU进行IO操作。所以说 内核模式其实是个中间变量,专门用来进行错误发现的时候的转换的。

11. kvm如何做CPU虚拟化

CPU的虚拟化本质上是时间分片。这里我们用的是KVM来虚拟的。流程如下:

QEMU调用ioctl进入内核,内核读取VMCS,(这里先解释下VMCS,VMCS是异常处理的关键结构,里面存储了 客户机,宿主机,陷入退出的各种状态。)把客户机的状态装在到CPU的CS:EIP,然后执行  kvm_exit_handler. 如果是IO引起的,则进入用户模式,执行QEMU

12. 如何对KVM的I/O优化

调优kvm的I/O调度算法,centos7默认的是deadline,使用命令将参数改为noop并查询,将以上的命令和 查询结果以文本形式提交到答题框。

[root@localhost ~]# cat /sys/block/vda/queue/scheduler  

[root@localhost ~]# echo noop > /sys/block/vda/queue/scheduler  

[root@localhost ~]# cat /sys/block/vda/queue/scheduler

13. 如何对KVM内存调优

Kvm大页:所谓的大页指的是内存的大页面,内存采用的是分页机制,内存默认的页面大小都是4KB,假如系统 里的一个应用程序需要2MB的内容,如果操作系统还是以4KB小页为单位,那么内存里就要有512个页面 (512*4KB=2M),所以在TLB里就需要512个表项以及512个页表项,因此操作系统就要经历512次的TLB  miss和512次的缺页中断才能将2MB的应用程序空间全部映射到物理内存里。必然操作数量会大大增加,从而 间接的影响性能。

使用cat命令,只查看当前系统有多少大页,然后设置大页数量为20并查看,接着使用命令使配置永久生效, 最后将大页挂载到/dev/hugepages/上。将上述所有命令和返回结果以文本形式提交到答题框。

[root@localhost ~]# cat /proc/meminfo | grep HugePages

[root@localhost ~]# echo 20 >/proc/sys/vm/nr_hugepages

[root@localhost ~]# cat /proc/meminfo |grep Hugepages

[root@localhost ~]# sysctl -w vm.nr_HugePages=20

[root@localhost ~]# mount -t hugetlbfs huagetlbfs /dev/huagepages/

如果想上手操作的朋友们可以通过阿里云ecs服务器免费试用和低价购买,入口如下

入口一:新人免费试用

入口二:大学生免费试用

入口三:低价服务器购买

入口四:低价服务器购买2

入口五:建站特惠购买


目录
相关文章
|
3月前
|
传感器 边缘计算 运维
AR 虚实叠加技术在工业设备运维中的实现流程方案
AR技术通过虚实信息融合,实现工业设备参数可视化、故障立体化、操作直观化,提升运维效率与精度。结合物联网与数字孪生,打造智能运维新范式。
|
3月前
|
传感器 人工智能 运维
AR技术电力智慧运维白皮书
AR技术正重塑电力运维模式,通过“端-边-云”协同系统,实现设备可视化、远程协作与智能预警,大幅提升效率与安全性,推动电力行业迈入智能运维新时代。
|
5月前
|
Java 测试技术 微服务
最新技术栈下 Java 面试高频技术点实操指南详解
本指南结合最新Java技术趋势,涵盖微服务(Spring Cloud Alibaba)、响应式编程(Spring WebFlux)、容器化部署(Docker+Kubernetes)、函数式编程、性能优化及测试等核心领域。通过具体实现步骤与示例代码,深入讲解服务注册发现、配置中心、熔断限流、响应式数据库访问、JVM调优等内容。适合备战Java面试,提升实操能力,助力技术进阶。资源链接:[https://pan.quark.cn/s/14fcf913bae6](https://pan.quark.cn/s/14fcf913bae6)
214 25
|
4月前
|
缓存 Java API
Java 面试实操指南与最新技术结合的实战攻略
本指南涵盖Java 17+新特性、Spring Boot 3微服务、响应式编程、容器化部署与数据缓存实操,结合代码案例解析高频面试技术点,助你掌握最新Java技术栈,提升实战能力,轻松应对Java中高级岗位面试。
432 0
|
1月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
3月前
|
运维 监控 jenkins
企业服务交付慢?运维技术其实就是“加速器”
企业服务交付慢?运维技术其实就是“加速器”
101 5
|
5月前
|
Cloud Native Java 程序员
【2025 最新版互联网一线大厂 Java 程序员面试 + 学习指南】覆盖全面面试知识点、实用面试技巧及前沿技术实操内容
本内容涵盖互联网大厂主流技术栈的最新实操指南,包括微服务架构(Spring Cloud Alibaba Nacos、OpenFeign、Spring Cloud Gateway)、容器化与Kubernetes、云原生技术(Istio、Prometheus+Grafana)、高性能开发(Reactor响应式编程、CompletableFuture异步编程)及数据持久化(Redis分布式锁、ShardingSphere分库分表)。通过详细代码示例和操作步骤,帮助开发者掌握核心技术,适用于本地环境搭建与模块功能实践。适合Java程序员学习和面试准备,附带资源链接供深入研究。
154 5
|
10月前
|
机器学习/深度学习 运维 自然语言处理
大模型技术在运维中的知识管理革命
大模型技术在运维中的知识管理革命
526 81
|
8月前
|
机器学习/深度学习 运维 自然语言处理
大模型也能当“运维警察”?——大模型技术在异常检测中的应用
大模型也能当“运维警察”?——大模型技术在异常检测中的应用
1504 13
|
10月前
|
弹性计算 运维 安全
为了提升运维工程师及开发者
为了提升运维工程师及开发者

热门文章

最新文章