目录
一、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的三个组件及作用
- kvm:负责cpu虚拟化+内存虚拟化
- qemu:负责IO的虚拟化
- 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三种工作模式
- 客户模式:执行非I/O的客户代码,虚拟机运行在这个模式下
- 用户模式:用户执行I/O代码,QEMU运行在这个模式下
- 内核模式: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
整合一下如下:文章来源:https://www.toymoban.com/news/detail-419588.html
#列出正在运行的虚机
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
三、KVM虚拟化架构解析
文章来源地址https://www.toymoban.com/news/detail-419588.html
- 从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 环境中以主机的方式运行,不过只要底层硬件虚拟化支持,它就能够支持大量的来宾操作系统.
感谢阅览
到了这里,关于KVM虚拟化常见面试题 | 常用命令整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!