CN114510324B - 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 - Google Patents
一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 Download PDFInfo
- Publication number
- CN114510324B CN114510324B CN202210414973.4A CN202210414973A CN114510324B CN 114510324 B CN114510324 B CN 114510324B CN 202210414973 A CN202210414973 A CN 202210414973A CN 114510324 B CN114510324 B CN 114510324B
- Authority
- CN
- China
- Prior art keywords
- volume
- ceph
- disk
- kvm
- qemu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统,本发明方法包括在Qemu主线程中调用卷容量使用获取接口;遍历KVM虚拟机的磁盘卷,针对每一个为共享卷的ceph卷,若该ceph卷的容量大小a超过第一预设阈值或者ceph卷总容量大小sum超过第二预设阈值,则在Qemu主线程中创建一个Qemu查询线程,通过Qemu查询线程调用磁盘容量快速接口执行读卷操作以得到该ceph卷的实际数据分配使用量。本发明能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。
Description
技术领域
本发明涉及虚拟机技术,具体涉及一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统。
背景技术
KVM(Kernel-based Virtual Machine,基于内核的虚拟机)是当前主流的开源的服务器虚拟化技术。从Linux2.6.20起,KVM作为内核的一个模块集成到Linux主要发行版本中。从技术架构(代码量、功能特性、调度管理、性能等)、社区活跃度,以及应用广泛度来看,KVM显现出明显优势,已逐渐替换另一开源虚拟化技术Xen。主要包括KVM虚拟化核心模块KVM.ko,以及硬件相关的KVM_intel或KVM_AMD模块;负责CPU与内存虚拟化,包括VM创建,内存分配与管理、vCPU执行模式切换等。QEMU是一款开源的模拟器及虚拟机监管器(VirtualMachine Monitor, VMM),用于实现I/O虚拟化与各设备模拟(磁盘、网卡、显卡、声卡等),通过IOCTL系统(设备驱动程序中对设备的I/O通道进行管理的程序)调用与KVM内核交互。KVM仅支持基于硬件辅助的虚拟化(如Intel公司的Intel-VT虚拟化技术与AMD公司的AMD-V虚拟化技术),在内核加载时,KVM先初始化内部数据结构,打开CPU控制寄存器CR4(决定处理器的工作模式和当前执行的任务的特性的寄存器)里面的虚拟化模式开关,执行VMXON指令将Host OS(主机操作系统)设置为root模式(根权限模式),并创建的特殊设备文件/dev/kvm等待来自用户空间的命令,然后由KVM内核与QEMU相互配合实现VM(虚拟机)的管理。KVM会复用部分Linux内核的能力,如进程管理调度、设备驱动,内存管理等。
KVM虚拟机的磁盘主要有本地磁盘和远端磁盘,针对远端ceph存储类型为块存储的场景,块存储的接口以内核模块(Kernel Module)或者Qemu 驱动(Qemu Driver)的形式存在。KVM虚拟机需要监控块设备的实际使用率情况。在KVM虚拟机挂载多个ceph卷设备场景下,想要获取后端ceph卷实际使用情况、计算得到ceph卷的实际使用率,业界比较常见的是获取文件系统层的磁盘使用情况,是通过qga(Qemu-guest-agent,Qemu客户段代理)方式实现,还需要客户在虚拟机里面单独安装一个代理(agent),此种方案无法获取ceph块设备的使用情况,客户无法根据监控侧观察到ceph块设备的使用情况,也无法对块设备实现管理,使用较少的磁盘实现资源的合理使用。想要获取块设备的使用率,需要通过者Qemu 驱动(Qemu Driver)来实现,Qemu社区中通过Qemu块驱动(Qemu block driver)获取块设备的使用值,得到的是一个模拟虚假的值,对外展示的并不是真实的使用情况。在Qemu RBD(RADOS 块设备)的驱动中,设计RBD相关的回调函数,去真实的获取后端ceph卷的使用情况。现有KVM虚拟机挂载多个ceph卷获取块设备实际使用量时包括针对不同的存储部署场景,判断是否为ceph卷,ceph卷features是否开启独占锁功能、开启对象映射功能等特性值。相关特征值都开启使用rbd_diff_iterate2快速接口获取卷容量。ceph存储采用定制化功能,其他存储使用社区默认的功能,并通过ceilometor组件收集磁盘使用量数据信息,统计计算出磁盘使用率。此种方案在挂载的ceph卷块设备为1T大小,采样频率在120s,此时系统的稳定性和I/O性能都比较好,但是在挂载多个30T级别的卷虚拟机,采样频率在30s的时候,会出现虚拟机周期性卡顿,iops(Input/Output Per Second,每秒的输入输出量或读写次数)跑分低的情况。采用Qemu RBD的驱动中设计RBD相关的回调函数的方式,当挂载ceph卷容量为30T的时候,会导致周期性出现短暂的访问和操作虚拟机出现卡顿现象,特别是客户对虚拟机进行频繁的I/O(输入/输出)读写操作的场景,导致虚拟机稳定性变差和iops性能降低。
发明内容
本发明要解决的技术问题是:针对现有技术存在的技术问题,提供一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统,本发明能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。
为了解决上述技术问题,本发明采用的技术方案为:
一种挂载有ceph卷的KVM虚拟机的磁盘管理方法,包括:
1)在Qemu主线程中调用卷容量使用获取接口,初始化KVM虚拟机的ceph卷总容量大小sum为0;
2)遍历KVM虚拟机的磁盘卷,如果遍历成功则跳转下一步;否则结束;
3)判断磁盘卷的类型为ceph卷,且该ceph卷为共享卷是否成立,如果成立则跳转下一步;
4)判断该ceph卷的容量大小a超过第一预设阈值,或者ceph卷总容量大小sum超过第二预设阈值,则在Qemu主线程中创建一个Qemu查询线程Qemu-query-block,通过Qemu查询线程Qemu-query-block调用磁盘容量快速接口执行读卷操作以得到该ceph卷的实际数据分配使用量,然后将该ceph卷的实际数据分配使用量放入块设备的全局变量结构体中以发送给Qemu主线程;否则,直接在Qemu主线程中调用磁盘容量快速接口以得到该ceph卷的实际数据分配使用量,并将ceph卷总容量大小sum加上该ceph卷的容量大小a;跳转步骤2)。
可选地,步骤3)包括:调用磁盘类型接口,判断磁盘卷的类型,如是磁盘卷为ceph卷则获取该ceph卷的RBD镜像默认的属性值,基于该ceph卷的RBD镜像默认的属性值确定该ceph卷的类型,并判断该ceph卷的类型是否是共享卷,如果该ceph卷的类型是共享卷,则判定磁盘卷的类型为ceph卷,且该ceph卷为共享卷成立,跳转执行步骤4)。
可选地,步骤3)之后、步骤4)之前还包括首先开启独占锁功能、开启对象映射功能、开启快速计算差异功能,然后判断该ceph卷的RBD镜像默认的属性值是否都有效,当且仅当在该ceph卷的RBD镜像默认的属性值都有效的情况下才跳转步骤4);且步骤3)中判断该ceph卷的类型是否是共享卷时,若判定该ceph卷的类型为非共享卷,则关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能。
可选地,所述判断该ceph卷的RBD镜像默认的属性值是否都有效时,如果判定该ceph卷的RBD镜像默认的属性值并非都有效,则还包括使用计量服务组件,获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。
可选地,所述关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能之后还包括使用计量服务组件,获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。
可选地,所述判断磁盘卷的类型时,如是磁盘卷为非ceph卷时还包括调用该磁盘卷对应的设备文件的获取已分配文件大小接口以获得该磁盘卷的实际数据分配使用量,使用计量服务组件,获取该磁盘卷的使用情况,得到该磁盘卷的实际数据分配使用量,跳转执行步骤2)。
可选地,所述得到该磁盘卷的实际数据分配使用量或得到该ceph卷的实际数据分配使用量之后,还包括:判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立,若成立则输出磁盘空间已满的消息以及是否需要增加磁盘卷的选项,若用户选择增加磁盘卷,则判断当前磁盘的iops是否超过预设阈值,若超过预设阈值,则挂载带IOthread参数选项的磁盘卷,使得挂载的磁盘卷使用IOthread技术,将挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制放到IOthread线程中以提升I/O性能;若未超过预设阈值,则挂载不带IOthread参数选项的磁盘卷,使得挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制保留在Qemu主线程中。其中,IOthread技术用于为每个虚拟处理器vCPU启动一个线程(即IOthread线程)以及一个独立的事件循环线程。
可选地,所述判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立时,还包括在该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值不成立时,进一步判断该磁盘卷或ceph卷的实际数据分配使用量低于第四预设阈值是否成立,所述第四预设阈值比第三预设阈值小,若低于第四预设阈值成立,则输出磁盘空间过剩的消息以及是否需要卸载磁盘卷的选项,若用户选择卸载磁盘卷,则卸载该磁盘卷或ceph卷。
此外,本发明还提供一种挂载有ceph卷的KVM虚拟机的磁盘管理系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
和现有技术相比,本发明具有下述优点:
1、现有技术中KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿现象,由于Qemu复杂的架构,在此监控环境下,libvirt(虚拟化平台管理API,用于对虚拟机进行统一管理)通过qmp(Qemu虚拟机的监控协议)下发的查询卷实际使用量的操作,遍历卷全部大小块,逐步计算每一块的使用情况,进行累计计算,当ceph卷的容量过大,会导致Qemu主线程查询等待时间过长,而Qemu的其他时间响应也是在主线程的主循环(main loop)事件轮询中,导致其他线程等待Qemu线程锁,长时间无法得到调度执行。因此,在研究发现了Qemu是在ceph卷的容量过大的情况下导致KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿现象的主要原因的基础上,本发明基于Qemu是一种多线程和事件轮询的一种架构,提出一种基于监控KVM虚拟机挂载多个ceph块设备使用场景下系统优化设计方法,通过设计开启独立的线程Qemu-query-block来查询ceph卷的容量大小a超过第一预设阈值,或者ceph卷总容量大小sum超过第二预设阈值的使用情况,Qemu主线程来处理其他的ceph卷查询操作,从而能够根据Qemu事件轮询和多线程架构的复杂性,对监控场景下KVM虚拟机挂载的设备类型和大小,针对系统稳定性和性能的影响进行优化设计,解决了虚拟机挂载30T大卷周期性CPU占比较高导致虚拟机会出现短暂的卡顿,同时提升了Qemu主线程的对其他事件响应速度。本发明能够减少Qemu主线程CPU占用率,提高Qemu主线程响应其他事件的速度,提升Qemu进程运行稳定性,能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。
2、本发明能够根据用户的使用场景,让用户用最少的花费,获取最大的CPU算力和I/O性能,提升用户使用满意度。
3、本发明还可根据需要进一步针对虚拟机进行频繁的I/O读写操作的场景,导致虚拟机iops性能降低,使用IOthread技术,将I/O密集型虚拟机的事件轮询机制放到IOthread线程中,提升I/O性能,和Qemu主线程对其它事件的处理能力。因此,本发明能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。
附图说明
图1为本发明实施例中KVM虚拟机获取磁盘卷实际使用量的流程图。
图2为本发明实施例中新增磁盘的流程图。
具体实施方式
下面参照附图对本发明的实施例进行详细的说明,在描述过程中省略了对于本发明来说不必要的细节和功能,以防止对本发明的理解造成混淆。
假设一个物理机有32核,定义启动一个8 vcpu虚拟机, 将8个vcpu(虚拟CPU)分别绑定在物理核上2-9,预留0-1核给系统使用。同时定义块设备磁盘的种类和大小的xml。类型选项为普通非ceph磁盘、非ceph I/O密集型磁盘、普通ceph磁盘、ceph I/O密集型磁盘,其中“I/O密集型”是指I/O(输入输出)比较密集的类型。下文将以该物理机上的KVM虚拟机为例,对本发明本挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统进行进一步说明。
实施例一:
如图1所示,本实施例挂载有ceph卷的KVM虚拟机的磁盘管理方法包括:
1)在Qemu主线程中调用卷容量使用获取接口,初始化KVM虚拟机的ceph卷总容量大小sum为0;
2)遍历KVM虚拟机的磁盘卷,如果遍历成功则跳转下一步;否则结束;
3)判断磁盘卷的类型为ceph卷,且该ceph卷为共享卷是否成立,如果成立则跳转下一步;
4)判断该ceph卷的容量大小a超过第一预设阈值,或者ceph卷总容量大小sum超过第二预设阈值,则在Qemu主线程中创建一个Qemu查询线程Qemu-query-block,通过Qemu查询线程Qemu-query-block调用磁盘容量快速接口(rbd_interate2_diff)执行读卷操作以得到该ceph卷的实际数据分配使用量(vol_cur),然后将该ceph卷的实际数据分配使用量(vol_cur)放入块设备的全局变量结构体中以发送给Qemu主线程;否则,直接在Qemu主线程中调用磁盘容量快速接口(rbd_interate2_diff)以得到该ceph卷的实际数据分配使用量,并将ceph卷总容量大小sum加上该ceph卷的容量大小a;跳转步骤2)。第一预设阈值和第二预设阈值的取值可根据需要进行确定,例如作为一种可选的实施方式,本实施例中第一预设阈值为5T或者第二预设阈值为10T,若满足a > 5T或者sum > 10T,则在Qemu主线程中创建一个Qemu查询线程Qemu-query-block,通过Qemu查询线程Qemu-query-block调用磁盘容量快速接口执行读卷操作以得到该ceph卷的实际数据分配使用量。
如图1所示,本实施例中步骤3)包括:调用磁盘类型接口,判断磁盘卷的类型,如是磁盘卷为ceph卷则获取该ceph卷的RBD镜像默认的属性值,基于该ceph卷的RBD镜像默认的属性值确定该ceph卷的类型,并判断该ceph卷的类型是否是共享卷,如果该ceph卷的类型是共享卷,则判定磁盘卷的类型为ceph卷,且该ceph卷为共享卷成立,跳转执行步骤4)。
如图1所示,本实施例中步骤3)之后、步骤4)之前还包括首先开启独占锁功能、开启对象映射功能、开启快速计算差异功能,然后判断该ceph卷的RBD镜像默认的属性值是否都有效,当且仅当在该ceph卷的RBD镜像默认的属性值都有效的情况下才跳转步骤4);且步骤3)中判断该ceph卷的类型是否是共享卷时,若判定该ceph卷的类型为非共享卷,则关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能。其中,独占锁功能是ceph卷一种共享锁机制,开启对象映射功能、开启快速计算功能用于快速获取计算ceph卷的使用量,采用的一种快速接口,这些功能均为ceph卷的现有功能,通过添加这些功能来快速获取卷的实际使用量,可减少获取卷的使用量对主线程的影响。
如图1所示,本实施例中判断该ceph卷的RBD镜像默认的属性值是否都有效时,如果判定该ceph卷的RBD镜像(RBD mirror)默认的属性(feture)值并非都有效,则还包括使用计量服务组件(ceilometor),获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。其中,计量服务组件(ceilometor组件)为现有功能,用于收集磁盘使用量数据信息,统计计算出磁盘使用率。其中,RBD镜像中的RBD是指RADOS块设备,RADOS(Reliable, Autonomic Distributed Object Store,可靠、自主的分布式对象存储)是Ceph的核心之一,作为ceph分布式文件系统的一个子项目,特别为ceph的需求设计,能够在动态变化和异质结构的存储设备机群之上提供一种稳定、可扩展、高性能的单一逻辑对象(Object)存储接口和能够实现节点的自适应和自管理的存储系统。
如图1所示,本实施例中关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能之后还包括使用计量服务组件,获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。
如图1所示,本实施例中判断磁盘卷的类型时,如是磁盘卷为非ceph卷时还包括调用该磁盘卷对应的设备文件的获取已分配文件大小接口(具体名称为bdrv_get_allocated_file_size)以获得该磁盘卷的实际数据分配使用量,使用计量服务组件,获取该磁盘卷的使用情况,得到该磁盘卷的实际数据分配使用量,跳转执行步骤2)。
综上所述,在挂载ceph卷的KVM虚拟机环境中,KVM虚拟机需要首先将遍历虚拟机挂载的所有磁盘,然后判断磁盘的类型。如果挂载ceph卷的大小有单个卷虚拟机超过5T的ceph卷或者挂载所有的ceph卷容量总和超过10T,此时要使用IOthread技术,将I/O事件轮询放到专用线程中,同时开启一个独立的Qemu-block-query线程来进行查卷操作,将查询得到的实际使用的卷容量大小存在结构体内存中等待Qemu主线程来获取,使得Qemu主线程直接从结构体内存中读取上一次获取的实际使用卷容量,查询完成后主动释放Qemu-block-qurey线程,从而能够根据Qemu事件轮询和多线程架构的复杂性,对监控场景下KVM虚拟机挂载的设备类型和大小,针对系统稳定性和性能的影响进行优化设计,解决了虚拟机挂载30T大卷周期性CPU占比较高导致虚拟机会出现短暂的卡顿,同时提升了Qemu主线程的对其他事件响应速度。本实施例方法能够减少Qemu主线程CPU占用率,提高Qemu主线程响应其他事件的速度,提升Qemu进程运行稳定性,能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。未经过优化的监控KVM虚拟机挂载多个ceph块设备使用场景,当挂载的单个ceph磁盘容量为5T,或者总的磁盘容量大小大于10T或者多个数据盘都在进行频繁的I/O操作,此时Qemu主线程会出现周期性的短暂卡顿现象,并且iops性能不是很好,经过优化的监控虚拟机场景下挂载多个大卷的场景下,Qemu主线程的CPU占比不会出现较高的使用情况,大卷容量获取的过程放到Qemu其他线程中,不再影响Qemu主循环(main loop)事件轮询,对其他事件及时响应。
此外,本实施例还提供一种挂载有ceph卷的KVM虚拟机的磁盘管理系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
实施例二:
本实施例为对实施例一的进一步改进。应用层的监控一般会设置30s-60s 更新一次数据,因此两次获取数据的时间间隔很短,完全可以满足此场景应用。用户根据查询卷的实际使用率情况,决定是否需要挂载新的磁盘,同时libvirt(虚拟化平台管理API,用于对虚拟机进行统一管理)根据qmp(Qemu监控协议)查询的现有磁盘的iops情况。
参见图2,本实施例中在实施例一中得到该磁盘卷的实际数据分配使用量或得到该ceph卷的实际数据分配使用量之后,进一步还包括:判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立,若成立则输出磁盘空间已满的消息以及是否需要增加磁盘卷的选项,若用户选择增加磁盘卷,则判断当前磁盘的iops是否超过预设阈值,若超过预设阈值,则挂载带IOthread参数选项的磁盘卷,使得挂载的磁盘卷使用IOthread技术,将挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制放到IOthread线程中以提升I/O性能;若未超过预设阈值,则挂载不带IOthread参数选项的磁盘卷,使得挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制保留在Qemu主线程中。
本实施例方法可根据获取磁盘的使用率情况,通知客户可以选择增加磁盘使用或者减少磁盘使用,同时通过libvirt(虚拟化平台管理API,用于对虚拟机进行统一管理)利用qmp(Qemu虚拟机的监控协议)命令获取虚拟机磁盘iops的使用情况,针对iops使用量较高的特定场景下可以自动选择带有IOthread参数的磁盘配置文件进行磁盘的挂载操作,提升新挂载磁盘I/O能力,满足客户需求,提升用户使用体验和产品使用满意度。而且,通过动态选择挂载是否带IOthread参数选项的磁盘卷,可防止全部带IOthread参数时带来的系统性能负荷过大的问题,从而确保新挂载磁盘在满足iops使用量的前提下,实现系统性能负荷的最优化。
参见图2,作为一种可选的实施方式,本实施例中判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立时,还包括在该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值不成立时,进一步判断该磁盘卷或ceph卷的实际数据分配使用量低于第四预设阈值是否成立,所述第四预设阈值比第三预设阈值小,若低于第四预设阈值成立,则输出磁盘空间过剩的消息以及是否需要卸载磁盘卷的选项,若用户选择卸载磁盘卷,则卸载该磁盘卷或ceph卷。作为一种可选的实施方式,本实施例中第三预设阈值取值为85%,第四预设阈值取值为15%,两者均可根据需要进行调整。
由此可见,在监控虚拟机磁盘使用量过程中,用户发现如要新增磁盘时,通过qmp协议查询客户的iops情况,如发现iops很高,新增磁盘选择带IOthread配置项的磁盘,本实施例通过挂载新磁盘选择带有IOthread策略的磁盘,将I/O相关的事件轮询不再和CPU计算、VNC显示等事件统一放入KVM虚拟机的主循环(main loop)事件中,而是单独放到IOthread事件轮询中。通过上述方式,IOthread和不同磁盘绑定策略设计,既保证操作系统其他应用的CPU资源的使用,同时数据云盘的随机读写能力提升30%多,可进一步使得本实施例方法能够解决KVM虚拟机周期性出现短暂的访问和操作虚拟机出现卡顿的问题,提高KVM虚拟机的iops性能,提高KVM虚拟机在频繁I/O读写操作场景下的稳定性。
此外,本实施例还提供一种挂载有ceph卷的KVM虚拟机的磁盘管理系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,包括:
1)在Qemu主线程中调用卷容量使用获取接口,初始化KVM虚拟机的ceph卷总容量大小sum为0;
2)遍历KVM虚拟机的磁盘卷,如果遍历成功则跳转下一步;否则结束;
3)判断磁盘卷的类型为ceph卷,且该ceph卷为共享卷是否成立,如果成立则跳转下一步;
4)判断该ceph卷的容量大小a超过第一预设阈值,或者ceph卷总容量大小sum超过第二预设阈值,则在Qemu主线程中创建一个Qemu查询线程Qemu-query-block,通过Qemu查询线程Qemu-query-block调用磁盘容量快速接口执行读卷操作以得到该ceph卷的实际数据分配使用量,然后将该ceph卷的实际数据分配使用量放入块设备的全局变量结构体中以发送给Qemu主线程;否则,直接在Qemu主线程中调用磁盘容量快速接口以得到该ceph卷的实际数据分配使用量,并将ceph卷总容量大小sum加上该ceph卷的容量大小a;跳转步骤2);
步骤3)之后、步骤4)之前还包括首先开启独占锁功能、开启对象映射功能、开启快速计算差异功能,然后判断该ceph卷的RBD镜像默认的属性值是否都有效,当且仅当在该ceph卷的RBD镜像默认的属性值都有效的情况下才跳转步骤4);且步骤3)中判断该ceph卷的类型是否是共享卷时,若判定该ceph卷的类型为非共享卷,则关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能;所述判断该ceph卷的RBD镜像默认的属性值是否都有效时,如果判定该ceph卷的RBD镜像默认的属性值并非都有效,则还包括使用计量服务组件,获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。
2.根据权利要求1所述的挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,步骤3)包括:调用磁盘类型接口,判断磁盘卷的类型,如是磁盘卷为ceph卷则获取该ceph卷的RBD镜像默认的属性值,基于该ceph卷的RBD镜像默认的属性值确定该ceph卷的类型,并判断该ceph卷的类型是否是共享卷,如果该ceph卷的类型是共享卷,则判定磁盘卷的类型为ceph卷,且该ceph卷为共享卷成立,跳转执行步骤4)。
3.根据权利要求1所述的挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,所述关闭快速计算差异功能、关闭对象映射功能、关闭独占锁功能之后还包括使用计量服务组件,获取该ceph卷的使用情况,得到该ceph卷的实际数据分配使用量,跳转执行步骤2)。
4.根据权利要求3所述的挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,所述判断磁盘卷的类型时,如是磁盘卷为非ceph卷时还包括调用该磁盘卷对应的设备文件的获取已分配文件大小接口以获得该磁盘卷的实际数据分配使用量,使用计量服务组件,获取该磁盘卷的使用情况,得到该磁盘卷的实际数据分配使用量,跳转执行步骤2)。
5.根据权利要求4所述的挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,所述得到该磁盘卷的实际数据分配使用量或得到该ceph卷的实际数据分配使用量之后,还包括:判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立,若成立则输出磁盘空间已满的消息以及是否需要增加磁盘卷的选项,若用户选择增加磁盘卷,则判断当前磁盘的iops是否超过预设阈值,若超过预设阈值,则挂载带IOthread参数选项的磁盘卷,使得挂载的磁盘卷使用IOthread技术,将挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制放到IOthread线程中以提升I/O性能;若未超过预设阈值,则挂载不带IOthread参数选项的磁盘卷,使得挂载的磁盘卷的I/O密集型虚拟机的事件轮询机制保留在Qemu主线程中。
6.根据权利要求5所述的挂载有ceph卷的KVM虚拟机的磁盘管理方法,其特征在于,所述判断该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值是否成立时,还包括在该磁盘卷或ceph卷的实际数据分配使用量超过第三预设阈值不成立时,进一步判断该磁盘卷或ceph卷的实际数据分配使用量低于第四预设阈值是否成立,所述第四预设阈值比第三预设阈值小,若低于第四预设阈值成立,则输出磁盘空间过剩的消息以及是否需要卸载磁盘卷的选项,若用户选择卸载磁盘卷,则卸载该磁盘卷或ceph卷。
7.一种挂载有ceph卷的KVM虚拟机的磁盘管理系统,包括相互连接的微处理器和存储器,其特征在于,该微处理器被编程或配置以执行权利要求1~6中任意一项所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,且该计算机程序用于被计算机设备执行以实施权利要求1~6中任意一项所述挂载有ceph卷的KVM虚拟机的磁盘管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414973.4A CN114510324B (zh) | 2022-04-20 | 2022-04-20 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210414973.4A CN114510324B (zh) | 2022-04-20 | 2022-04-20 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114510324A CN114510324A (zh) | 2022-05-17 |
CN114510324B true CN114510324B (zh) | 2022-07-22 |
Family
ID=81554905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210414973.4A Active CN114510324B (zh) | 2022-04-20 | 2022-04-20 | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114510324B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324927A (zh) * | 2018-09-06 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的虚拟机备份方法及系统 |
CN110750334A (zh) * | 2019-10-25 | 2020-02-04 | 北京计算机技术及应用研究所 | 一种基于Ceph的网络靶场后端存储系统设计方法 |
CN113485786A (zh) * | 2021-06-29 | 2021-10-08 | 济南浪潮数据技术有限公司 | 一种基于云物理机实现pod挂载cinder卷的方法及系统 |
CN113970998A (zh) * | 2020-07-24 | 2022-01-25 | 中移(苏州)软件技术有限公司 | 一种信息处理方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
GB2510185A (en) * | 2013-01-29 | 2014-07-30 | Ibm | Data de-duplication between emulated disk sub-systems |
-
2022
- 2022-04-20 CN CN202210414973.4A patent/CN114510324B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109324927A (zh) * | 2018-09-06 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种基于分布式存储系统的虚拟机备份方法及系统 |
CN110750334A (zh) * | 2019-10-25 | 2020-02-04 | 北京计算机技术及应用研究所 | 一种基于Ceph的网络靶场后端存储系统设计方法 |
CN113970998A (zh) * | 2020-07-24 | 2022-01-25 | 中移(苏州)软件技术有限公司 | 一种信息处理方法、装置、终端及存储介质 |
CN113485786A (zh) * | 2021-06-29 | 2021-10-08 | 济南浪潮数据技术有限公司 | 一种基于云物理机实现pod挂载cinder卷的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114510324A (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901802B2 (en) | Method and apparatus for implementing virtual GPU and system | |
US9413683B2 (en) | Managing resources in a distributed system using dynamic clusters | |
EP3036625B1 (en) | Virtual hadoop manager | |
US9323547B2 (en) | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores | |
US9619287B2 (en) | Methods and system for swapping memory in a virtual machine environment | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
US9098337B2 (en) | Scheduling virtual central processing units of virtual machines among physical processing units | |
US9027017B2 (en) | Methods and apparatus for movement of virtual resources within a data center environment | |
US8145872B2 (en) | Autonomic self-tuning of database management system in dynamic logical partitioning environment | |
US9852008B2 (en) | Computer-readable recording medium storing execution information notification program, information processing apparatus, and information processing system | |
CN113312142B (zh) | 虚拟化处理系统、方法、装置及设备 | |
AU2007281686A1 (en) | System and method for providing hardware virtualization in a virtual machine environment | |
US20120239952A1 (en) | Information processing apparatus, power control method, and recording medium | |
CN111796908A (zh) | 一种资源自动弹性伸缩的系统、方法及云平台 | |
US20190213033A1 (en) | Optimizing Host CPU Usage Based on Virtual Machine Guest OS Power and Performance Management | |
CN108351810B (zh) | 用于虚拟化图形处理的扩展 | |
US20190377612A1 (en) | VCPU Thread Scheduling Method and Apparatus | |
CN108733585B (zh) | 缓存系统及相关方法 | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
CN114510324B (zh) | 一种挂载有ceph卷的KVM虚拟机的磁盘管理方法及系统 | |
US20190087124A1 (en) | Dynamic scheduling for virtual storage devices | |
CN116578416A (zh) | 一种基于gpu虚拟化的信号级仿真加速方法 | |
US11934890B2 (en) | Opportunistic exclusive affinity for threads in a virtualized computing system | |
CN103562869B (zh) | 虚拟化环境下的音频处理方法和设备 | |
LU501202B1 (en) | Prioritized thin provisioning with eviction overflow between tiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |