版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
云计算技术基础与实践
第3章
KVM虚拟化技术学习目标:理解虚拟化及虚拟化技术的概念掌握虚拟化技术的分类,及理解每种技术的区别理解并掌握KVM架构、CPU、内存、I/O虚拟化及其基本原理区分KVM迁移与克隆掌握KVM网络配置模式、存储方式、及优化方法目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.1KVM简介IBMLPARSSunLDOMsKVM你知道哪些虚拟技术?HPvParsIBMPowerVMMicrosoftHyper-V3.1KVM简介2006年10月,Qumranet完成了虚拟化基本功能、动态迁移及主要的性能优化后,正式对外宣布了KVM的诞生。2008年,红帽收购Qumranet2011年5月,IBM和红帽,并联合惠普和Intel一起,成立了开放虚拟化联盟(OVA),加速KVM投入市场的速度。3.1KVM简介KVM是一个开源的系统虚拟化模块,是基于虚拟化扩展(IntelVT或者AMD-V)的x86硬件的开源的Linux原生的全虚拟化解决方案。在KVM中,虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度;虚拟机的每个虚拟CPU被实现为一个常规的Linux进程,使得KVM能够使用Linux内核的已有功能。目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.2.1定义3.2KVM虚拟化技术原理虚拟化(Virtualization)是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每台逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。——虚拟化的定义3.2.1定义3.2KVM虚拟化技术原理虚拟化技术是将计算机的各种物理实体资源,如服务器、网络、内存及存储等,予以抽象、转换成逻辑资源,不受物理实体资源之间的限制,使用户可以更加灵活地使用这些资源。一般所指的虚拟化资源包括计算资源、存储资源和网络资源。——虚拟化技术3.2.1定义3.2KVM虚拟化技术原理——虚拟化技术分类资源虚拟化平台虚拟化应用程序虚拟化虚拟化技术计算机和操作系统的虚拟化特定的系统资源的虚拟化,如内存、存储和网络资源等。包括仿真、模拟、解释技术等。3.2.1定义3.2KVM虚拟化技术原理虚拟化主要是指平台虚拟化技术,通过使用控制程序(ControlProgram,也称为VMM或Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。——虚拟化技术分类3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术全虚拟化(FullVirtualization)超虚拟化(Paravirtualization)硬件辅助虚拟化(Hardware-AssistedVirtualization)部分虚拟化(PartialVirtualization)操作系统级虚拟化(OperatingSystemLevelVirtualization)3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术全虚拟化指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其他系统软件完全不做任何修改就可以在虚拟机中运行。比较著名的全虚拟化VMM有MicrosoftVirtualPC、VMwareWorkstation、SunVirtualBox、ParallelsDesktopforMac和QEMU。3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术超虚拟化是一种修改客户机操作系统部分访问特权状态的代码以便直接与VMM交互的技术。比较著名的超虚拟化VMM有Denali、Xen。3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术硬件辅助虚拟化指借助硬件的支持来实现高效的全虚拟化。Intel-VT和AMD-V是目前x86体系结构上典型硬件辅助虚拟化技术。3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术部分虚拟化VMM只模拟部分底层硬件,因此客户机操作系统不做修改是无法在虚拟机上运行的,其他程序可能也需要进行修改。3.2.1定义3.2KVM虚拟化技术原理——平台虚拟化技术操作系统级虚拟化是一种在服务器操作系统中使用的轻量级的虚拟化技术,内核通过创建多个虚拟的操作系统实例(内核和库)来隔离不同的进程,不同实例中的进程完全不了解对方的存在。比较著名的操作系统级虚拟化VMM有SolarisContainer、FreeBSDJail和OpenVZ等。3.2KVM虚拟化技术原理3.2.2KVM架构主机系统由硬件和软件组成,操作系统是软件系统的核心,而操作系统又分为内核空间和用户空间,虚拟机是在用户空间运行的,KVM作为Hypervisor运行在主机操作系统内核空间。Guest:硬件包括CPU(vCPU)、内存、驱动(Console、网卡、I/O设备驱动等)。KVM:提供CPU和内存的虚级化,以及客户机的I/O拦截。QEMU:提供硬件I/O虚拟化,通过IOCTL/dev/kvm设备与KVM交互。3.2KVM虚拟化技术原理3.2.3KVMCPU虚拟化Ring是指CPU的运行级别,分别是Ring0、Ring1、Ring2、Ring3,Ring0是最高级别,Ring3级别最低。——为什么需要CPU虚拟化操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在Ring0上,这样,可以使用特权指令,控制中断、修改页表、访问设备等。应用程序的代码做受控操作,则需要用户态和内核态的切换。客户机操作系统和主机操作系统均有自己的内核,都需要运行在Ring0上,这样就冲突了,VMM需要解决运行冲突的问题。3.2KVM虚拟化技术原理3.2.3KVMCPU虚拟化VMXRootoperation和VMXNon-RootOperation两种操作模式可以互相转换。——KVM的CPU虚拟化KVM采用硬件辅助虚拟化。Intel引入了Intel-VT(VirtualizationTechnology)技术。这种CPU有VMXRootoperation和VMXNon-RootOperation两种模式,两种模式都支持Ring0~Ring3共4个运行级别。VMM可以运行在VMXRootOperation模式下,客户机操作系统运行在VMXNon-RootOperation模式下。3.2KVM虚拟化技术原理3.2.4内存虚拟化——为什么需要内存虚拟化在虚拟化模式下,虚拟机处于非Root模式,无法直接访问Root模式下的主机上的内存。VMM的介入,截获虚拟机的内存访问指令,模拟主机上的内存,相当于VMM在虚拟机的虚拟地址空间和主机的虚拟地址空间中间增加了一层虚拟机的物理地址空间。内存软件虚拟化的目标就是要将虚拟机的虚拟地址(GVA)转化为主机的物理地址HPA),中间要经过虚拟机的物理地址(GPA)和主机的虚拟地址(HVA)的转化,即GVA->GPA->HVA->HPA。Intel采用EPT,AMD采用NPT实现硬件辅助内存虚拟化。3.2KVM虚拟化技术原理3.2.4内存虚拟化EPT基本原理图——KVM的内存虚拟化EPT在原有CR3页表地址映射的基础上,引入了EPT页表来实现另一层映射,这样,GVA->GPA->HPA的两次地址转换都由硬件来完成。3.2KVM虚拟化技术原理3.2.5KVM的I/O虚拟化从处理器的角度看,外设是通过一组I/O资源来进行访问的,所以,设备的相关虚拟化被称为I/O虚拟化。全虚拟化方式半虚拟化方式硬件辅助虚拟化方式3.2KVM虚拟化技术原理3.2.5KVM的I/O虚拟化——qemu全虚拟化方式虚拟机的设备驱动发起I/O请求KVM捕获I/O请求,将I/O请求放入KVM和qemu的共享内存页通知用户空间的qemu进程qemu进程从内核中读取I/O请求,由硬件模拟模块模拟这个I/O操作qemu的硬件模拟模块与不同的真实物理设备驱动进行交互,完成真正的I/O操作(如通过物理网卡访问外部网络),将结果放回共享内存页中,通知KVM的I/O处理模块。KVM的I/O处理模块读取处理结果并返回给客户机设备驱动。特点:不用修改客户机操作系统,就可以实现模拟设备在客户机中正常工作,但每次I/O操作的路径比较长,有较多的VMEntry、VMExit发生,需要多次上下文切换(contextswitch),也需要多次数据复制,所以性能较差。3.2KVM虚拟化技术原理3.2.5KVM的I/O虚拟化——virtio半虚拟化方式virtio在部署时由前端、后端和virt-queue组成。virtio架构可以分为4层,包括前端虚拟机中各种驱动程序模块,后端Hypervisor上的处理程序模块,中间用于前后端通信的virtio层和virtio-ring层,可以将virtio和virtio-ring看成一层,virtio属于控制层,负责前后端之间的通知机制(kick,notify)和控制流程,而virtio-vring则负责具体数据流转发。特点:可以获得很好的I/O性能,其性能几乎可以达到和native差不多的I/O性能,但它必须要客户机安装特定的Virtio驱动使其知道是运行在虚拟化环境中,且按照Virtio的规定格式进行数据传输。不过主流Windows系统都有对应的virtio驱动程序可供下载使用。3.2KVM虚拟化技术原理3.2.5KVM的I/O虚拟化——硬件辅助虚拟化方式直接将物理设备分配给客户机操作系统,由客户机操作系统直接访问目标设备。这种情况下不存在设备模拟,硬件本身支持虚拟化,可以向不同的虚拟机提供独立的硬件支持,设备本身支持多个虚拟机同时访问。特点:客户机通过原有的驱动操作真实硬件,从性能上说是最优的,但这种方式需要比较多的硬件资源。比较典型的是IntelVT-D和SR-IOV技术。目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.3KVM管理工具命令行管理工具,功能强大,能完成几乎所有虚拟机管理任务。包括在线迁移、虚拟机快照、创建和转换虚拟机磁盘文件格式等,适合以脚本的形式自动管理虚拟机。以Web的方式,实现大部分的管理方式,并且可以随时访问虚拟机状态,获取虚拟机监视器界面。使虚拟机的管理跨越地域的限制,在任何有网络的地方都可以管理虚拟机。以桌面应用的方式,提供了方便与性能兼具的高效率管理,支持多节点管理,以完全一样的方式,管理多个节点。思考题1、云计算的基石是什么?2、什么是虚拟化3、常用的虚拟机管理工具有哪些?目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.4KVM迁移和克隆——KVM虚拟机迁移KVM虚拟机的迁移是在不同主机之间进行的,可以分为热迁移和冷迁移。KVM迁移热迁移冷迁移也称为静态迁移、常规迁移、离线迁移。是在虚拟机关机或暂停的情况下从一台主机迁移到另一台主机。也称为动态迁移,在线迁移。是在保证虚拟机上服务正常运行的同时,将一个虚拟机系统从一台主机移动到另一台主机的过程。3.4KVM迁移和克隆热迁移:不会对最终用户造成明显的影响,管理员在不影响用户正常使用的情况下,对主机进行离线维修或者升级。为了保证迁移过程中虚拟机服务的可用,迁移过程仅有非常短暂的停机时间。在迁移的前面阶段,服务在源主机的虚拟机上运行,当迁移进行到一定阶段,目的主机已经具备了运行虚拟机系统的必须资源,经过一个非常短暂的切换,源主机将控制权转移到目的主机,虚拟机系统在目的主机上继续运行。由于切换的时间非常短暂,用户感觉不到服务的中断,因而迁移过程对用户是透明的。适用于对虚拟机服务可用性要求很高的场合。——KVM虚拟机迁移3.4KVM迁移和克隆冷迁移:因为虚拟机的文件系统建立在虚拟机镜像上面,所以在虚拟机关机的情况下,只需要简单的迁移虚拟机镜像和相应的配置文件到另外一台主机上即可。若需要保存虚拟机迁移之前的状态,则在迁移之前将虚拟机暂停,然后复制当前状态至目的主机,最后在目的主机重建虚拟机状态,恢复执行。这种方式的迁移过程需要显式的停止虚拟机的运行。从用户角度看,有明确的一段停机时间,虚拟机上的服务不可用。这种迁移方式简单易行。适用于对服务可用性要求不严格的场合。——KVM虚拟机迁移3.4KVM迁移和克隆虚拟机的克隆:就是根据源虚拟机复制一台新的虚拟机,两台虚拟机是完全一样的。KVM虚拟机的克隆一般采用虚拟机直接克隆或者复制配置文件与磁盘文件的方式进行克隆。——KVM虚拟机克隆目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.5KVM网络和存储——KVM网络KVM网络配置有Bridge和NAT模式。KVM网络Bridge模式NAT模式虚拟机不需要配置自己的IP,虚拟机隐藏在宿主机后面,虚拟机能通过主机访问外网,但局域网中的其他主机访问不到虚拟机。虚拟机需要配置自己的IP,虚拟出一个网卡,与主机的网卡一起挂载到一个虚拟网桥上(类似于交换机)来访问外部网络,此模式下,虚拟机拥有独立的IP,虚拟机与主机一样,局域网中其他主机能直接通过IP与其通信。3.5KVM网络和存储——KVM存储KVM存储选项有多种,包括虚拟磁盘文件、基于文件系统的存储和基于设备的存储。KVM存储当系统创建KVM虚拟机时,默认使用虚拟磁盘文件作为后端存储。对于文件系统的KVM存储(dir、fs、netfs),在安装KVM宿主机时,可选文件系统为dir或fs作为初始KVM存储格式。默认选项为dir,用户指定本地文件系统中的一个目录用于创建磁盘镜像文件。fs选项允许用户指定某个格式化文件系统的名称,把它作为专用的磁盘镜像文件存储。(两种KVM存储选项之间最主要的区别在于:fs文件系统不需要挂载到某个特定的分区。)对于设备的KVM存储(disk、iscsi、logical),共支持4种不同的物理存储:磁盘、iSCSI、SCSI和lvm逻辑盘。目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.6KVM优化——KVM优化KVM性能优化主要在CPU、内存、I/O这三方面,根据不同的场景,采取不同场景优化方向。KVM性能优化CPUI/O内存3.6KVM优化——KVM优化CPU的优化Intel的CPU运行级别,Ring3为用户态,Ring0为内核态,上下文切换,会导致性能出现问题,采用VT-x技术,在CPU硬件上实现了加速转换。采用CPU缓存绑定,L1是静态缓存,造价高,L2、L3是动态缓存,通过脉冲的方式写入0和1,造价较低。若CPU调度器把进程随便调度到其他CPU上,而不是当前L1、L2、L3的缓存CPU上,缓存就不生效了,就会产生丢失,为了减少Cache丢失,需要把KVM进程绑定到固定的CPU上。可以使用taskset命令把某一个进程绑定在某一个CPU上,例如:taskset-cp125718(1指的是CPU1,也可以绑定到多个CPU上,25718是指pid)。CPU绑定的优点:提高性能20%以上;CPU绑定的缺点:不方便迁移,灵活性差。3.6KVM优化——KVM优化内存的优化Intel处理器上集成了EPT技术,GVA->GPA->HPA的两次地址转换都由硬件来完成,提高了性能。采用KSM(KernelSamepageMerging)相同页合并(可以通过cat/sys/kernel/mm/ksm/run命令可以查看是否开启)。将主机内容相同的内存合并,以节省内存的使用。采用大页后端内存(可以用cat/proc/meminfo查看)。在逻辑地址向物理地址转换时,CPU保持一个翻译后备缓冲器TLB,用来缓冲转换结果,而TLB容量很小,所以若Page很小,则TLB很容易就被充满,这样就容易导致Cache丢失;相反若Page变大,则TLB需要保存的缓存项就变少,就会减少Cache丢失,通过为客户端提供大页后端内存,就能减少客户机消耗的内存并提高TLB的命中率,从而提高KVM性能。对使用的内存进行限制(可以通过virshmemtune命令实现)。3.6KVM优化——KVM优化I/O的优化为了防止某台虚拟机过度消耗磁盘资源而对其他的虚拟机造成影响,需要每台虚拟机对磁盘资源的消耗是都可控的,如多个虚拟机向硬盘中写数据,谁可以优先写,可以调整I/O的权重,权重越高写入磁盘的优先级越高(可以通过virshblkiotune命令查看和设置某台虚拟机的具体权重优先级。)。目录CONTENTS3.1KVM简介3.2KVM虚拟化技术原理3.3KVM管理工具3.7项目实验3.4KVM迁移和克隆3.5KVM网络和存储3.6KVM优化3.7项目实验-安装和配置KVM步骤1:安装KVM准备工作。安装KVM工作的前提:系统是x86、x64架构并且虚拟化VT-x(对于Intel系列)打开。(1)检测系统架构。adminroot@ubuntu-server20:~$uname-mx86_64(2)检查CPU支持硬件虚拟化,命令执行后显示数字非0即可。adminroot@ubuntu-server20:~$egrep-c'(vmx|svm)'/proc/cpuinfo4(3)检查支持KVM虚拟化。adminroot@ubuntu-server20:~$sudokvm-okINFO:/dev/kvmexistsKVMaccelerationcanbeused第1部分:安装和配置KVM组件。3.7项目实验-安装和配置KVM步骤2:安装KVM组件。先对源更新,然后执行安装命令。adminroot@ubuntu-server20:~$sudoaptupdateadminroot@ubuntu-server20:~$sudoapt-getinstallqemu-kvmlibvirt-daemon-systemlibvirt-clientsbridge-utilsvirtinst安装完成后进行校验,采用virshlist--all命令,正常执行说明安装完成。adminroot@ubuntu-server20:~$sudovirshlist--allIdNameState第1部分:安装和配置KVM组件。3.7项目实验-安装和配置KVM步骤1:配置KVM网络。从Ubuntu18.04开始,网络配置通过命令netplan实现,更改配置文件
/etc/netplan/50-cloud-init.yaml。(1)查看系统网络信息。adminroot@ubuntu-server20:~$ipashowens322:ens32:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscfq_codelstateUPgroupdefaultqlen1000link/ether00:0c:29:0a:2a:32brdff:ff:ff:ff:ff:ffinet29/24brd55scopeglobalens32valid_lftforeverpreferred_lftforeverinet6fe80::20c:29ff:fe0a:2a32/64scopelinkvalid_lftforeverpreferred_lftforever可以看到ens32的IP地址和mac地址。第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM(2)编辑00-installer-config.yaml文件。新建br0并与ens32绑定一起,并指定IP地址为29/24,nameservers指定为DNS服务器。adminroot@ubuntu-server20:~$sudovi/etc/netplan/00-installer-config.yamlbridges:br0:interfaces:[enp7s0]dhcp4:noaddresses:[29/24]gateway4:nameservers:addresses:[66]修改完后,通过sudonetplanapply重启网络服务生效。第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM(3)查看地址信息和桥接信息。通过使用命令ipa查看IP信息。adminroot@ubuntu-server20:~$ipa2:ens32:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscfq_codelmasterbr0stateUPgroupdefaultqlen1000link/ether00:0c:29:0a:2a:32brdff:ff:ff:ff:ff:ff6:br0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscnoqueuestateUPgroupdefaultqlen1000link/ether00:0c:29:0a:2a:32brdff:ff:ff:ff:ff:ffinet29/24brd55scopeglobalbr0第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM查看桥接信息。adminroot@ubuntu-server20:~$brctlshowbridgenamebridgeidSTPenabledinterfacesbr08000.000c290a2a32noens32步骤2:下载镜像。下载一个ubuntu测试镜像,存放在/var/lib/libvirt/images目录中。adminroot@ubuntu-server20:~$cd/var/lib/libvirt/imagesadminroot@ubuntu-server20:/var/lib/libvirt/images$sudowget/0.4.0/cirros-0.4.0-x86_64-disk.imgadminroot@ubuntu-server20:/var/lib/libvirt/images$sudolscirros-0.4.0-x86_64-disk.img第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM步骤3:安装虚拟机。在/var/lib/libvirt/images目录创建test-vm文件夹存放硬盘文件,将已有镜像复制为cirros虚拟机镜像cirros-vm1.img文件,生成cirros虚拟机xml配置文件。(1)创建test-vm目录。root@ubuntu-server20:/var/lib/libvirt/images#mkdirtest-vm(2)复制镜像文件。root@ubuntu-server20:/var/lib/libvirt/images#cpcirros-0.4.0-x86_64-disk.img./test-vm/cirros-vm1.img(3)生成虚拟机和配置文件。root@ubuntu-server20:/var/lib/libvirt/images#virt-install-n"cirros"-r512--vcpus=1--diskpath=/var/lib/libvirt/images/test-vm/cirros-vm1.img--networkbridge=br0--importroot@ubuntu-server20:/var/lib/libvirt/images#cd/etc/libvirt/qemu/root@ubuntu-server20:/etc/libvirt/qemu#lscirros.xmlnetworks第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM步骤4:查看和测试虚拟机。(1)查看虚拟机。使用virshlist命令查看cirros虚拟机。root@ubuntu-server20:/etc/libvirt/qemu#virshlistIdNameState1cirrosrunning(2)连接虚拟机控制台。用virshconsole连接cirros虚拟机控制台。root@ubuntu-server20:/etc/libvirt/qemu#virshconsolecirrosConnectedtodomaincirros(3)登录cirros虚拟机。cirroslogin:cirrosPassword:第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM(4)查看虚拟机网络信息。查看网络信息,可以看到cirros虚拟机的IP地址是30/24,查看完毕后,用组合键“Ctrl+]”退出cirros虚拟机控制台。$ipa1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueueqlen1link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_fastqlen1000link/ether52:54:00:bc:57:0ebrdff:ff:ff:ff:ff:ffinet30/24brd55scopeglobaleth0valid_lftforeverpreferred_lftforeverinet6fe80::5054:ff:febc:570e/64scopelinkvalid_lftforeverpreferred_lftforever第2部分:安装和测试虚拟机。3.7项目实验-安装和配置KVM(5)用终端软件连接并测试cirros虚拟机。查看网络信息并测试网络连通性,如下图所示。第2部分:安装和测试虚拟机。3.7项目实验-利用KVM管理工具管理实例步骤1:虚拟机信息查看。安装KVM工作的前提是系统为x86、x64架构并且虚拟化VT-x(对于Intel系列)打开。(1)查看当前主机列表。用virshlist命令可以查看当前运行的虚拟机的ID、名称和状态信息。root@ubuntu-server20:~#virshlistIdNameState1cirrosrunning第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(2)虚拟机信息。用virshdominfocirros可以查看某台虚拟机详细信息,如ID、名称、状态、CPU、内存等信息。root@ubuntu-server20:~#virshdominfocirrosId:1Name:cirrosUUID:e5421675-b279-4b78-b498-def54eeba22cOSType:hvmState:runningCPU(s):1CPUtime:48.2sMaxmemory:524288KiBUsedmemory:524288KiBPersistent:yesAutostart:disableManagedsave:noSecuritymodel:apparmorSecurityDOI:0Securitylabel:libvirt-e5421675-b279-4b78-b498-def54eeba22c(enforcing)第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(3)查看虚拟机磁盘信息。root@ubuntu-server20:~#virshdomblklistcirrosTargetSourcehda/var/lib/libvirt/images/test-vm/cirros-vm1.imghad
是虚拟机磁盘的设备名称,/var/lib/libvirt/images/test-vm/cirros-vm1.img是磁盘文件路径。第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(4)查看虚拟网卡信息。显示宿主机接口信息。root@ubuntu-server20:~#virshiface-list--allNameStateMACAddressbr0active00:0c:29:0a:2a:32ens35inactive00:0c:29:0a:2a:3cloinactive00:00:00:00:00:00virbr0inactive52:54:00:54:2a:2e显示虚拟机接口信息。root@ubuntu-server20:~#virshdomiflistcirrosInterfaceTypeSourceModelMACvnet0bridgebr0e100052:54:00:bc:57:0eVnet0是虚拟机网卡接口,该接口通过桥接模式挂接在br0上,可以认为br0是虚拟交换机,可以连接多台计算机。第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(5)查看网络信息。通过查看网络列表,进一步可以查看网络详细信息。root@ubuntu-server20:~#virshnet-listNameStateAutostartPersistentdefaultactiveyesyesroot@ubuntu-server20:~#virshnet-infodefaultName: defaultUUID: 4aec3105-2338-4278-a695-677f436cccfbActive: yesPersistent: yesAutostart: yesBridge: virbr0第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(6)查看虚拟机CPU绑定信息。用virshvcpuinfo命令可以查看的绑定关系,下面命令说明vCPU0和物理CPU3绑定。root@ubuntu-server20:~#virshvcpuinfocirrosVCPU: 0CPU: 3State: runningCPUtime: 39.1sCPUAffinity: yyyy第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例步骤2:虚拟机基本管理。(1)挂起和恢复虚拟机。先用命令virshdomstate查看虚拟机的状态,处于运行状态,然后执行挂起操作,可以发现虚拟机被挂起,然后恢复虚拟机,虚拟机又处于运行状态。root@ubuntu-server20:~#virshdomstatecirrosrunningroot@ubuntu-server20:~#virshsuspendcirrosDomaincirrossuspendedroot@ubuntu-server20:~#virshdomstatecirrospausedroot@ubuntu-server20:~#virshresumecirrosDomaincirrosresumedroot@ubuntu-server20:~#virshdomstatecirros第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(2)关闭和启动虚拟机。先用命令virshdomstate查看虚拟机的状态,处于运行状态,然后执行关闭操作,可以发现虚拟机被关机,然后启动虚拟机,虚拟机又处于运行状态。root@ubuntu-server20:~#virshdomstatecirrosrunningroot@ubuntu-server20:~#virshshutdowncirrosDomaincirrosisbeingshutdownroot@ubuntu-server20:~#virshdomstatecirrosshutoffroot@ubuntu-server20:~#virshstartcirrosDomaincirrosstartedroot@ubuntu-server20:~#virshdomstatecirrosrunning第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例(3)设置自动启动虚拟机。可以使用以下命令将虚拟机设置在宿主机启动时自动启动。root@ubuntu-server20:~#virshautostartcirrosDomaincirrosmarkedasautostarted(4)创建快照和恢复虚拟机。下面操作过程首先查看虚拟机列表,然后用snapshot-create-asing命令将cirros虚拟机创建快照为cirros_bak,用snapshot-list命令查看快照列表,最后用snapshot-revert命令还原快照。root@ubuntu-server20:~#virshlistIdNameState2cirrosrunningroot@ubuntu-server20:~#virshsnapshot-create-ascirroscirros_bakDomainsnapshotcirros_bakcreatedroot@ubuntu-server20:~#virshsnapshot-listcirrosNameCreationTimeStatecirros_bak2021-05-1213:26:59+0000runningroot@ubuntu-server20:~#virshsnapshot-revertcirroscirros_bak第1部分:虚拟机基本管理。3.7项目实验-利用KVM管理工具管理实例步骤1:虚拟机网卡管理。用attach-interface命令添加一块网卡,绑定在virbr0上,然后用domiflistcirros命令可以看到添加后的结果。root@ubuntu-server20:~#virshattach-interfacecirros--typebridge--sourcevirbr0--live--configInterfaceattachedsuccessfullyroot@ubuntu-server20:~#virshdomiflistcirrosInterfaceTypeSourceModelMACvnet0bridgebr0e100052:54:00:bc:57:0evnet1bridgevirbr0rtl813952:54:00:6b:05:80第2部分:虚拟机硬件管理。3.7项目实验-利用KVM管理工具管理实例步骤2:虚拟机硬盘管理。下面用qemu-img命令创建磁盘文件,然后通过attach-disk命令挂载到虚拟机上,用domblklist命令查看,可以看到新增加的硬盘vdb。root@ubuntu-server20:~#qemu-imgcreate-fqcow2/var/lib/libvirt/images/test-vm/share-device.qcow2-osize=1G,preallocation=metadataFormatting'/var/lib/libvirt/images/test-vm/share-device.qcow2',fmt=qcow2size=1073741824cluster_size=65536preallocation=metadatalazy_refcounts=offrefcount_bits=16root@ubuntu-server20:~#virshattach-diskcirros/var/lib/libvirt/images/test-vm/share-device.qcow2vdb--live
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年聊城市粮食和物资储备系统事业单位人员招聘考试备考试题及答案详解
- 2026年低压驱动器行业分析报告及未来发展趋势报告
- 2026合肥聚和运营管理有限公司委托招聘4人考试备考题库及答案解析
- 2026年三维成像行业分析报告及未来发展趋势报告
- 2026年以太网芯片行业分析报告及未来发展趋势报告
- 2026广东东莞滨海湾未来学校采购员招聘1人备考题库有完整答案详解
- 2026年连江县中医院医护人员招聘笔试模拟试题及答案解析
- 2026年甘孜市气象系统事业单位人员招聘考试备考试题及答案详解
- 泗水县2025山东济宁市泗水县动物检疫协检员招聘31人笔试历年参考题库典型考点附带答案详解
- 2026年食用蜡行业分析报告及未来发展趋势报告
- 2026年江西金融租赁股份有限公司社会招聘14人笔试备考题库及答案解析
- 2026上海药品审评核查中心招聘辅助人员17人考试备考试题及答案解析
- 2026山西晋城市城区城市建设投资经营有限公司招聘15人备考题库含答案详解(考试直接用)
- 2026年信息处理和存储支持服务行业分析报告及未来发展趋势报告
- 北京保障房中心有限公司法律管理岗笔试参考题库及答案解析
- (二模)太原市2026年高三年级模拟考试(二)语文试卷(含答案及解析)
- 2026年上海市长宁区高三下学期二模数学试卷和答案
- 初中化学九年级下册“化学与社会·跨学科实践”单元整体建构教案
- 2026食品安全抽查考试试题与答案
- 特种设备考核奖惩制度
- 2025南京溧水区招聘社保员2人(公共基础知识)测试题附答案解析
评论
0/150
提交评论