当前位置:   article > 正文

KVM虚拟化常见面试题 | 常用命令整理_kvm面试题

kvm面试题

目录

一、KVM虚拟化高频面试题

1、简单介绍KVM

2、kvm的三个组件及作用

3、磁盘镜像格式raw和qcow2的区别

4、虚拟机文件中配置文件和硬盘文件分别在哪哥路径下

5、kvm虚拟机的网络配置有哪两种模式?默认使用哪一种?

6、KVM三种工作模式 

7、什么是虚拟化技术

 8、kvm支持哪些虚拟磁盘格式?

9、kvm和VMware有何区别?

10、Libvirt 包含 哪3 个组件?

二、KVM虚拟化常用命令

三、KVM虚拟化架构解析


一、KVM虚拟化高频面试题

1、简单介绍KVM

  • KVM是Kernel-based Virtual Machine的简称,一个开源的系统虚拟化模块,使用Linux自身的调度器进行管理,KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。

2、kvm的三个组件及作用

  1. kvm:负责cpu虚拟化+内存虚拟化
  2. qemu:负责IO的虚拟化
  3. libvirt:是调用kvm虚拟化技术的接口用于管理的

3、磁盘镜像格式raw和qcow2的区别

  • raw:创建时占用全部容量,不支持动态扩容,不支持快照,性能好
  • qcow2:写时复制,开始只占用少许容量,支持动态扩容,性能不如raw

4、虚拟机文件中配置文件和硬盘文件分别在哪哥路径下

  • 虚拟机配置文件,XML文件,位置 :/etc/libvirt/qemu/
  • 虚拟机硬盘文件,位置:/var/lib/libvirt/images/

5、kvm虚拟机的网络配置有哪两种模式?默认使用哪一种?

  • NAT模式:也是用户模式,数据包由NAT方式通过主机的接口进行传送,可以访问公网,但是无法从外部访问虚拟机网络,kvm默认用的这种网络。
  • Bridge:也就是桥接模式,这种模式允许虚拟机像一个独立的主机一样拥有网络,外部的机器可以直接访问到虚拟机内部,但需要网卡支持,一般有线网卡都支持。

6、KVM三种工作模式 

  1. 客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下
  2. 用户模式:用户执行I/O代码,QEMU运行在这个模式下
  3. 内核模式:CPU调度和内存管理相关,KVM内核模块运行在该模式下

7、什么是虚拟化技术

  • 虚拟化技术是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。

 8、kvm支持哪些虚拟磁盘格式?

  • kvm从qemu继承了丰富的磁盘格式, 包括裸映象(raw images), 原始qemu格式(qcow), VMware格式和更多

9、kvm和VMware有何区别?

  • VMware是一个专利产品.,企业级的是收费的。
  • kvm是一个开源的系统虚拟化软件。

10、Libvirt 包含 哪3 个组件?

  • libvirtd是服务程序,接收和处理 API 请求;
  • API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virt-manager,这是个图形化的 KVM 管理工具;
  • virsh 是我们经常要用的 KVM 命令行工具

二、KVM虚拟化常用命令

  • vm为虚机的名字

#列出正在运行的虚机
virsh list

#列出所有的虚拟机
virsh list --all

#查看virsh的版本
virsh version

#启动虚机
virsh start vm

#关闭虚机
virsh shutdown vm

#强制性关闭该虚拟机,相当于强行断电
virsh destroy vm

#将虚机的配置文件导出到/tmp/目录下,并命名为vm.xml
virsh dumpxml centos7-2 > /tmp/vm.xml

#虚拟机自启动
virsh autostart vm

#虚拟机自启动撤销
virsh autostart --disable vm

#虚拟机克隆
virt-clone -o 【原虚拟机】 -n 【新虚拟机】 -f 【新虚拟机镜像名(含路径)】
virt-clone -o vm-1 -n vm-2 -f /var/lib/libvirt/images/vm-2.img

#查看虚拟机镜像
qemu-img info vm.img

#创建快照
virsh snapshot-create vm

#列出虚机快照
virsh snapshot-list vm
qemu-img info vm

#指定虚拟机名字创建快照
virsh snapshot-create-as 【虚拟机名】 【快照名】
virsh snapshot-create-as vm snapshot-vm

#查看该虚拟机当前使用的快照
virsh snapshot-current vm

#恢复快照
virsh snapshot-revert 【虚拟机名】 【快照名】
virsh snapshot-revert vm snapshot-vm

#删除快照
virsh snapshot-delet vm snapshot-vm

#定义存储池与其目录
virsh pool-define-as vmdisk --type dir --target /data/vmfs

#创建已定义的存储池
virsh pool-build vmdisk

#激活已定义的存储池
virsh pool-start vmdisk

#自动启动已定义的存储池
virsh pool-autostart vmdisk

#查看已定义的存储池
virsh pool-list --all

#在存储池中创建虚拟机存储卷
virsh vol-create-as vmdisk test.qcow2 3G --format qcow2


整合一下如下:

  1. #列出正在运行的虚机
  2. virsh list
  3. #列出所有的虚拟机
  4. virsh list --all
  5. #查看virsh的版本
  6. virsh version
  7. #启动虚机
  8. virsh start vm
  9. #关闭虚机
  10. virsh shutdown vm
  11. #强制性关闭该虚拟机,相当于强行断电
  12. virsh destroy vm
  13. #将虚机的配置文件导出到/tmp/目录下,并命名为vm.xml
  14. virsh dumpxml centos7-2 > /tmp/vm.xml
  15. #虚拟机自启动
  16. virsh autostart vm
  17. #虚拟机自启动撤销
  18. virsh autostart --disable vm
  19. #虚拟机克隆
  20. virt-clone -o 【原虚拟机】 -n 【新虚拟机】 -f 【新虚拟机镜像名(含路径)】
  21. virt-clone -o vm-1 -n vm-2 -f /var/lib/libvirt/images/vm-2.img
  22. #查看虚拟机镜像
  23. qemu-img info vm.img
  24. #创建快照
  25. virsh snapshot-create vm
  26. #列出虚机快照
  27. virsh snapshot-list vm
  28. qemu-img info vm
  29. #指定虚拟机名字创建快照
  30. virsh snapshot-create-as 【虚拟机名】 【快照名】
  31. virsh snapshot-create-as vm snapshot-vm
  32. #查看该虚拟机当前使用的快照
  33. virsh snapshot-current vm
  34. #恢复快照
  35. virsh snapshot-revert 【虚拟机名】 【快照名】
  36. virsh snapshot-revert vm snapshot-vm
  37. #删除快照
  38. virsh snapshot-delet vm snapshot-vm
  39. #定义存储池与其目录
  40. virsh pool-define-as vmdisk --type dir --target /data/vmfs
  41. #创建已定义的存储池
  42. virsh pool-build vmdisk
  43. #激活已定义的存储池
  44. virsh pool-start vmdisk
  45. #自动启动已定义的存储池
  46. virsh pool-autostart vmdisk
  47. #查看已定义的存储池
  48. virsh pool-list --all
  49. #在存储池中创建虚拟机存储卷
  50. virsh vol-create-as vmdisk test.qcow2 3G --format qcow2

三、KVM虚拟化架构解析

  • 从rhel6开始使用,红帽公司直接把KVM的模块做成了内核的一部分。
  • xen用在rhel6之前的企业版中默认内核不支持,需要重新安装带xen功能的内核
  • KVM 针对运行在x86 硬件上的、驻留在内核中的虚拟化基础结构。KVM 是第一个成为原生 Linux 内核 (2.6.20)的一部分的 hypervisor,它是由 Avi Kivity 开发和维护的,现在归 Red Hat 所有。这个hypervisor 提供 x86 虚拟化,同时拥有到 PowerPC@ 和A64的通道。另外,KM 最近还添加了对对称多处理(SMP)主机(和来宾)的支持,并且支持企业级特性,比如活动迁移(允许来宾操作系统在物理服务器之间迁移)。
  • KVM 是作为内核模块实现的,因此 Linux 只要加载该模块就会成为一个hypervisor。KVM为支持 hypervisor 指令的硬件平台提供完整的虚拟化(比如 ntel@ Virtualization Technology [lntel VT] 或AMD Virtualization[AMD-V] 产品)。KVM 还支持准虚拟化来宾操作系统,包括 Linux和 Windows。
  • 这种技术由两个组件实现。第一个是可加载的 KVM 模块,当在 Linux 内核安装该模块之后,它就可以管理虚拟化硬件,并通过/proc 文件系统公开其功能。第二个组件用于 PC 平台模拟,它是由修改版 QEMU 提供的。QEMU作为用户空间进程执行,并且在来宾操作系统请求方面与内核协调。
  • 当新的操作系统在 KVM 上启动时(通过一个称为 KVM 的实用程序),它就成为宿主操作系统的一个进程,因此就可以像其他进程一样调度它。但与传统的 Linux 进程不一样,来宾操作系统被 hypervisor 标识为处于“来宾”模式(独立于内核和用户模式)。
  • 每个来宾操作系统都是通过 /dev/KVM 设备映射的,它们拥有自己的虚拟地址空间,该空间映射到主机内核的物理地址空间。如前所述,KVM 使用底层硬件的虚拟化支持来提供完整的(原生)虚拟化。I/0 请求通过主机内核映射到在主机上 (hypervisor) 执行的 QEMU进程
  • KVM 在 Linux 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统.

感谢阅览

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/157859
推荐阅读
相关标签
  

闽ICP备14008679号