一种基于LVM的磁盘瘦供给配置方法、存储介质及设备与流程
未命名
10-19
阅读:122
评论:0

一种基于lvm的磁盘瘦供给配置方法、存储介质及设备
技术领域
1.本发明属于云计算存储计算领域,具体地,涉及一种基于lvm的磁盘瘦供给配置方法、存储介质及设备。
背景技术:
2.虚拟化技术是一种软件模拟技术,它模拟了一台物理服务器,为运行在虚拟机内部的操作系统提供软件模拟的硬件设备,这其中就包括磁盘设备。虚拟机支持多种磁盘设备类型,包括:文件、物理磁盘直通和其他后端存储软件提供的诸多存储类型,其中使用最为广泛的就是文件类型和逻辑卷管理器(logical volume manager,lvm)。
3.虚拟机在使用lvm的时候,由于lvm无法像文件一样自动扩展空间,必须一次申请到位,会有较大的空间浪费,尽管lvm本身有瘦供给方案,但是不支持在集群环境下创建,只支持单主机。而云计算的场景下,希望能提供基于集群范围内访问的lvm,以完成虚拟机集群内的在线迁移及故障高可用功能。同时,虚拟机通常需要支持快照功能,存在内部快照和外部快照两种解决方案:
4.1.在使用内部快照时,由于快照打在磁盘内部,因此磁盘的空间会逐渐膨胀,而传统lvm的使用无法支持自动扩展,无法支持内部快照;
5.2.在使用外部快照方案时,即使快照本身有效数据不多,快照卷的大小也需要和原盘的大小保持一致,这样就对存储的空间造成了极大的浪费。
技术实现要素:
6.针对现有技术中存在的问题,本发明提供了一种基于lvm的磁盘瘦供给配置方法、存储介质及设备,能够根据数据写入情况自动扩展逻辑卷空间。
7.为实现上述技术目的,本发明采用如下技术方案:一种基于lvm的磁盘瘦供给配置方法,具体包括如下步骤:
8.步骤1、将物理磁盘通过lvm分区划分逻辑卷,根据物理磁盘的格式设置逻辑卷tag属性,标识物理磁盘的虚拟大小vsize;
9.步骤2、虚拟机启动时打开磁盘设备,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,读取逻辑卷tag属性,获取物理磁盘的虚拟大小,计算出物理磁盘的实际最大空间上限;
10.步骤3、虚拟机在写入磁盘数据的时候,当物理磁盘空间不足时,调用读写函数返回enospc的错误码,判断当前逻辑卷空间大小是否达到更新的物理磁盘的最大空间的上限,若否,通过写入的偏移量和数据长度确定应扩展的空间大小,根据应扩展的空间大小确定扩充步长,通过lvm指令扩展所述逻辑卷;否则,返回enospc的错误码。
11.进一步地,所述物理磁盘的格式为qcow2格式或raw格式。
12.进一步地,所述物理磁盘的格式为raw格式时,物理磁盘的虚拟大小vsize与物理磁盘的大小相等。
13.进一步地,所述逻辑卷tag属性设置于逻辑卷记录元数据的区域,所述逻辑卷tag属性的总容量不超过1024个字节。
14.进一步地,步骤2中若需要修改物理磁盘的空间大小,则通过虚拟机指令或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,更新逻辑卷tag属性中物理磁盘的虚拟大小,并更新物理磁盘的最大空间上限;
15.进一步地,更新物理磁盘的最大空间上限的具体过程为:虚拟机或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,将物理磁盘的虚拟大小vsiz的最大值更新到逻辑卷tag属性中,调用qemu的resize命令通告qemu进程,qemu进程将物理磁盘的属性更新最大空间的上限,并将记录在qemu进程的内存中的。
16.进一步地,步骤3中扩充步长后的逻辑卷空间不超过更新的物理磁盘的最大空间的上限。
17.进一步地,本发明还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行所述的基于lvm的磁盘瘦供给配置方法。
18.进一步地,本发明还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现所述的基于lvm的磁盘瘦供给配置方法。
19.与现有技术相比,本发明具有如下有益效果:本发明基于lvm的磁盘瘦供给配置方法以逻辑卷作为虚拟机的磁盘镜像,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,使得在逻辑卷共享物理卷的场景下,不同主机可以同时访问到同一个物理卷和逻辑卷,支持瘦供给;且逻辑卷扩展时,虚拟机不会被暂停,也不需要进行虚拟机的恢复操作,不影响虚拟机的运行。本发明基于lvm的磁盘瘦供给配置方法实现在共、私有云场景下使用lvm时,极大提高存储利用率。
附图说明
20.图1为本发明基于逻辑卷的磁盘瘦供给配置方法的流程图。
具体实施方式
21.下面结合附图对本发明的技术方案作进一步地解释说明。
22.如图1为本发明基于逻辑卷的磁盘瘦供给配置方法的流程图,该磁盘瘦供给配置方法具体包括如下步骤:
23.步骤1、将物理磁盘通过lvm分区划分逻辑卷,根据物理磁盘的格式设置逻辑卷tag属性,标识物理磁盘的虚拟大小vsize;本发明中物理磁盘的格式为qcow2格式或raw格式,qcow2格式可以支持qemu很多基于磁盘的特性,其物理磁盘的虚拟大小vsize会随着数据的增加而增加;而物理磁盘的格式为raw格式时,物理磁盘的虚拟大小vsize与物理磁盘的大小相等。
24.本发明中逻辑卷tag属性设置于逻辑卷记录元数据的区域,tag属性可以存储标识信息、用户个性化信息,逻辑卷tag属性的总容量不超过1024个字节。
25.步骤2、虚拟机启动时打开磁盘设备,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,读取逻辑卷tag属性,获取物理磁盘的虚拟大小,计算出物理磁盘的实际
最大空间的上限。若需要修改物理磁盘的空间大小,则通过虚拟机指令或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,更新逻辑卷tag属性中物理磁盘的虚拟大小,并更新物理磁盘的最大空间上限;具体地,虚拟机或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,将物理磁盘的虚拟大小vsiz的最大值更新到逻辑卷tag属性中,调用qemu的resize命令通告qemu进程,qemu进程将物理磁盘的属性更新最大空间的上限,并将记录在qemu进程的内存中的。
26.步骤3、虚拟机在写入磁盘数据的时候,当物理磁盘空间不足时,调用读写函数返回enospc的错误码,判断当前逻辑卷空间大小是否达到更新的物理磁盘的最大空间上限,若否,通过写入的偏移量和数据长度确定应扩展的空间大小,为了避免每次写入磁盘数据时扩展,根据应扩展的空间大小确定扩充步长,通过lvm指令扩展所述逻辑卷;否则,返回enospc的错误码。
27.本发明基于lvm的磁盘瘦供给配置方法以逻辑卷作为虚拟机的磁盘镜像,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,使得在逻辑卷共享物理卷的场景下,不同主机可以同时访问到同一个物理卷和逻辑卷,支持瘦供给;随着虚机内部写入逻辑卷的有效数据越来越多,自动对物理磁盘空间进行扩展,以保证磁盘空间存储的最大利用率,同时,虚拟机不会被暂停,也不需要进行虚拟机的恢复操作,不影响虚拟机的运行。本发明基于lvm的磁盘瘦供给配置方法实现在共、私有云场景下使用lvm时,极大提高存储利用率。
28.在本发明的一个技术方案中,还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序使计算机执行所述的基于lvm的磁盘瘦供给配置方法。
29.在本发明的一个技术方案中,还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现所述的基于lvm的磁盘瘦供给配置方法。
30.实施例
31.本实施例提供了一种基于lvm的磁盘瘦供给配置方法,具体包括如下步骤:
32.步骤1、创建一个1g空间大小的lv逻辑卷,并初始化为qcow2格式,虚拟空间大小为100g的磁盘;
33.步骤2、作为qemu虚拟机的磁盘启动:在qemu中,通过stat系统调用可知当前磁盘的类型为块设备,则通过libudev去查询该块设备信息,如果是逻辑卷或查询出该逻辑卷对应的物理卷和逻辑卷的名称,进行记录,并标记该块设备为一个逻辑卷设备;同时,通过磁盘的虚拟大小及格式推算出物理磁盘的实际大小的值,作为空间扩展的上限值;
34.步骤3、当虚拟机中持续写入磁盘数据大于1g空间时,触发空间不足的错误码返回;在发生磁盘io写时,如果返回错误码不是enospace,则直接中断io操作,当返回空间不足错误enospace,判断当前磁盘类型是否为逻辑卷,若否,直接返回错误终止io操作,否则,通过写入的偏移量和数据长度确定应扩展的空间大小,为避免频繁扩展,根据应扩展的空间大小确定扩充步长,调用lvm2cmd库函数执行命令lvextend或lvresize命令对该逻辑卷进行空间扩展,若扩展失败,返回错误码enospce,成功则重新尝试写io操作,重新写上一次失败的数据。
35.在本技术所公开的实施例中,计算机存储介质可以是有形的介质,其可以包含或
存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序。计算机存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
36.本领域普通技术人员可以意识到,结合本技术所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
37.以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
技术特征:
1.一种基于lvm的磁盘瘦供给配置方法,其特征在于,具体包括如下步骤:步骤1、将物理磁盘通过lvm分区划分逻辑卷,根据物理磁盘的格式设置逻辑卷tag属性,标识物理磁盘的虚拟大小vsize;步骤2、虚拟机启动时打开磁盘设备,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,读取逻辑卷tag属性,获取物理磁盘的虚拟大小,计算出物理磁盘的实际最大空间上限;步骤3、虚拟机在写入磁盘数据的时候,当物理磁盘空间不足时,调用读写函数返回enospc的错误码,判断当前逻辑卷空间大小是否达到更新的物理磁盘的最大空间上限,若否,通过写入的偏移量和数据长度确定应扩展的空间大小,根据应扩展的空间大小确定扩充步长,通过lvm指令扩展所述逻辑卷;否则,返回enospc的错误码。2.根据权利要求1所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,所述物理磁盘的格式为qcow2格式或raw格式。3.根据权利要求1所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,所述物理磁盘的格式为raw格式时,物理磁盘的虚拟大小vsize与物理磁盘的大小相等。4.根据权利要求1所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,所述逻辑卷tag属性设置于逻辑卷记录元数据的区域,所述逻辑卷tag属性的总容量不超过1024个字节。5.根据权利要求1所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,步骤2中若需要修改物理磁盘的空间大小,则通过虚拟机指令或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,更新逻辑卷tag属性中物理磁盘的虚拟大小,并更新物理磁盘的最大空间上限。6.根据权利要求5所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,更新物理磁盘的最大空间上限的具体过程为:虚拟机或磁盘镜像格式转换工具qemu-img执行虚拟磁盘或镜像的resize操作时,将物理磁盘的虚拟大小vsiz的最大值更新到逻辑卷tag属性中,调用qemu的resize命令通告qemu进程,qemu进程将物理磁盘的属性更新最大空间的上限,并将记录在qemu进程的内存中的。7.根据权利要求1所述的一种基于lvm的磁盘瘦供给配置方法,其特征在于,步骤3中扩充步长后的逻辑卷空间不超过更新的物理磁盘的最大空间的上限。8.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序使计算机执行如权利要求1-7任一项所述的基于lvm的磁盘瘦供给配置方法。9.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行计算机程序时,实现如权利要求1-7任一项所述的基于lvm的磁盘瘦供给配置方法。
技术总结
本发明公开了一种基于LVM的磁盘瘦供给配置方法、存储介质及设备,该磁盘瘦供给配置方法以逻辑卷作为虚拟机的磁盘镜像,通过设备管理器udev获取对应物理卷的名称和逻辑卷的名称,使得在逻辑卷共享物理卷的场景下,不同主机可以同时访问到同一个物理卷和逻辑卷,支持瘦供给;且逻辑卷扩展时,虚拟机不会被暂停,也不需要进行虚拟机的恢复操作,不影响虚拟机的运行。本发明基于LVM的磁盘瘦供给配置方法实现在共、私有云场景下使用LVM时,极大提高存储利用率。利用率。利用率。
技术研发人员:王聪 段俊
受保护的技术使用者:中电信数智科技有限公司
技术研发日:2023.07.18
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/