运维工程师面试题总结-虚拟化技术与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

入口五:建站特惠购买


目录
相关文章
|
1月前
|
存储 安全 虚拟化
虚拟化技术:实现资源高效利用和灵活管理的利器
虚拟化技术作为实现资源高效利用和灵活管理的重要手段,在数字化时代背景下,正逐步改变传统IT架构模式。本文概述了虚拟化技术的概念、原理及其在数据中心管理、云计算平台、企业信息化建设、科研教育及医疗行业的应用,并探讨了其面临的挑战与未来发展趋势。
120 3
|
2月前
|
运维 监控 安全
运维技术——从基础到高阶的全面解析
本文是一篇技术性文章,主要探讨了运维技术。运维不仅仅是保持系统的稳定运行,更包括优化、预防故障和应对突发事件的能力。本文将从运维的基本概念入手,逐步深入到高阶技术和策略,为读者提供一个全面的运维知识体系。希望通过这篇文章,读者能够更好地理解和应用运维技术,提升自己的运维能力。
|
2月前
|
运维 Kubernetes 监控
提升运维效率:容器化技术在现代IT基础设施中的应用
本文将探讨容器化技术如何优化企业的IT基础设施,提高部署效率和资源利用率。我们将深入分析容器技术的优势、实现步骤以及在实际运维中的应用场景。通过实例展示,帮助读者更好地理解并应用这一前沿技术,助力企业实现高效运维。
|
2月前
|
存储 分布式计算 分布式数据库
云计算和虚拟化技术
云计算是指把计算资源、存储资源、网络资源、应用软件等集合起来,采用虚拟化技术,将这些资源池化,组成资源共享池,共享池即是“云”。
160 64
|
1月前
|
边缘计算 运维 Cloud Native
云原生技术的崛起:重新定义软件开发与运维
云原生技术的崛起:重新定义软件开发与运维
|
1月前
|
存储 运维 关系型数据库
开源新发布|PolarDB-X v2.4.1 增强企业级运维能力
PolarDB-X 是阿里云推出的云原生分布式数据库,自2021年10月开源以来,持续迭代升级,至2024年4月发布的v2.4.1版本,重点增强了企业级运维能力,如无锁变更、物理扩缩容、数据TTL等,提供金融级高可用、透明分布式、HTAP一体化等特性。PolarDB-X 支持集中式和分布式一体化形态,兼容MySQL生态,适用于金融、通信、政务等行业。
|
1月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
83 2
|
1月前
|
运维 监控 安全
运维自动化:提升效率与可靠性的关键技术
在信息技术飞速发展的今天,企业对IT系统的稳定性和高效性要求越来越高。运维自动化作为实现这一目标的重要手段,通过软件工具来模拟、执行和管理IT运维任务,不仅大幅提高了工作效率,还显著增强了系统的可靠性。本文将探讨运维自动化的概念、实施步骤以及面临的挑战,旨在为读者提供一份关于如何有效实施运维自动化的指南。
|
1月前
|
运维 资源调度 监控
提升运维效率的关键技术与实践
在当今快速发展的信息技术时代,运维工作面临着前所未有的挑战和机遇。本文旨在探讨如何通过采用先进的技术和实施最佳实践来提高IT运维的效率和效果。我们将深入分析自动化工具、监控策略、灾难恢复计划以及持续集成/持续部署(CI/CD)等关键领域,展示它们如何协同工作以优化运维流程。此外,文章还将提供一些实际案例研究,帮助读者更好地理解这些概念的应用。无论是对于初创公司还是大型企业,掌握这些技术都将是提升竞争力的关键。
|
1月前
|
存储 持续交付 虚拟化
下一篇
DataWorks