掌桥专利:专业的专利平台
掌桥专利
首页

文件系统创建方法及装置

文献发布时间:2023-06-19 10:58:46


文件系统创建方法及装置

技术领域

本发明涉及计算机技术领域,尤其涉及一种文件系统创建方法及装置。

背景技术

随着云计算技术的快速发展,大量现代化企业应用正逐步由传统物理机部署模式转化为更为轻量化、资源弹性可控的云上部署模式。然而,随着入云应用近几年数量的快速增长,诸如阿里云、移动云、华为云、腾讯云等各类云平台正顺应时代需求快速崛起,面对海量业务需求,如何实现虚拟机的高效供应正成为各大云平台共同需要面对的挑战。其中,基于逻辑卷管理机制(LOGICAL VOLUME MANAGER,简称LVM)的虚拟文件系统创建和扩容是影响虚机整体供应效率的一个关键因素。

在现有技术中,大多数云平台对于虚拟文件系统创建的主流做法是:在实施流程中将这一环节从虚机发放流程中剥离开,先通过云管平台进行虚机下发与云硬盘挂载,再手动批量登入目标虚机依次执行物理卷(PHYSICAL VOLUME,简称PV)创建、卷组(VOLUMEGROUP,简称VG)创建、逻辑卷(LOGIC VOLUME,简称LV)划分、进行文件系统创建与挂载等步骤。

现有技术这一主流做法存在较为显著的弊端:文件系统创建依赖工作人员批量手工执行,针对多文件系统创建场景,单台虚机需要重复执行多次手工文件系统创建流程,对于大规模虚机需求场景,供应流程上自动化程度不高。

发明内容

本发明实施例提供一种文件系统创建方法,整个过程无需工作人员手工操作,可以实现虚拟机文件系统的自动化批量创建,自动化程度较高,该方法包括:

根据云硬盘的存储容量和盘符挂载点生成配置文件,所述配置文件包含多个用于创建虚拟机文件系统的参数信息,其中,所述参数信息中至少包括:文件系统类型信息、文件系统大小信息和新挂载盘符路径信息;

根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

根据所述物理卷创建卷组;

根据所述卷组创建逻辑卷;

根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统;

生成所述虚拟机文件系统的挂载点信息,所述挂载点信息用于访问所述虚拟机文件系统。

本发明实施例还提供一种文件系统创建装置,整个过程无需工作人员手工操作,可以实现虚拟机文件系统的自动化批量创建,自动化程度较高,该装置包括:

配置文件生成模块,用于根据云硬盘的存储容量和盘符挂载点生成配置文件,所述配置文件包含多个用于创建虚拟机文件系统的参数信息,其中,所述参数信息中至少包括:文件系统类型信息、文件系统大小信息和新挂载盘符路径信息;

物理卷创建模块,用于根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

卷组创建模块,用于根据所述物理卷创建卷组;

逻辑卷创建模块,用于根据所述卷组创建逻辑卷;

虚拟机文件系统创建模块,用于根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统;

挂载点信息生成模块,用于生成所述虚拟机文件系统的挂载点信息,所述挂载点信息用于访问所述虚拟机文件系统。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

本发明实施例中,通过根据云硬盘的存储容量和盘符挂载点生成配置文件,并根据所述新挂载盘符路径信息获取所述云硬盘的设备名,基于所述云硬盘的设备名创建物理卷,再根据所述物理卷创建卷组,根据所述卷组创建逻辑卷,根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统,生成所述虚拟机文件系统的挂载点信息,即可完成虚拟机文件系统的创建,整个过程无需工作人员手工操作,可以实现虚拟机文件系统的自动化批量创建,自动化程度较高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中文件系统创建方法的流程图;

图2为本发明实施例中文件系统创建装置的结构示意图;

图3为本发明实施例中文件系统创建方法的具体示例图;

图4为本发明实施例中文件系统扩容的具体示例图;

图5是本发明实施例计算机设备示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1为本发明实施例提供的一种文件系统创建方法的流程图,如图1所示,该方法包括:

步骤101、根据云硬盘的存储容量和盘符挂载点生成配置文件,所述配置文件包含多个用于创建虚拟机文件系统的参数信息,其中,所述参数信息中至少包括:文件系统类型信息、文件系统大小信息和新挂载盘符路径信息。

在实施例中,参数信息还包括:文件系统挂载点名称信息、文件系统属主信息、文件系统属组信息和文件系统权限信息。

配置文件可以为脚本文件,参数信息即为脚本文件的入参。

步骤102、根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷。

具体实施时,根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名,结合逻辑卷管理机制(LOGICAL VOLUME MANAGER,LVM)命令创建物理卷。

步骤103、根据所述物理卷创建卷组。

在实施例中,卷组是基于LVM命令创建的。

步骤104、根据所述卷组创建逻辑卷。

步骤105、根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统。

步骤106、生成所述虚拟机文件系统的挂载点信息,所述挂载点信息用于访问所述虚拟机文件系统。

由上可知,本发明实施例提供的文件系统创建方法,通过根据云硬盘的存储容量和盘符挂载点生成配置文件,并根据所述新挂载盘符路径信息获取所述云硬盘的设备名,基于所述云硬盘的设备名创建物理卷,再根据所述物理卷创建卷组,根据所述卷组创建逻辑卷,根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统,生成所述虚拟机文件系统的挂载点信息,即可完成虚拟机文件系统的创建,整个过程无需工作人员手工操作,可以实现虚拟机文件系统的自动化批量创建,自动化程度较高。

在本发明实施例中,为了实现单盘多虚拟机文件系统的创建,根据云硬盘的存储容量和盘符挂载点生成配置文件之后,所述方法还包括:

判断所述配置文件中的参数信息是否为列表的形式;

若是,则对所述配置文件中各个参数信息的列表长度进行校验,并在校验结果为正常的情况下,校验所述文件系统类型信息与虚拟机镜像操作系统的兼容性。

具体实施时,配置文件中的所有参数信息均支持以列表List的形式进行单盘多虚拟机文件系统的创建,当进行多虚拟机文件系统创建时,各参数信息的列表可以用空格进行分隔。

当判断所述配置文件中的参数信息是否为列表的形式的结果为“是”时,对所述配置文件中各个参数信息的列表长度进行校验,即校验各个参数信息的列表长度是否一致,若校验结果为不正常,则终止虚拟机文件系统的创建。若校验结果为正常,则校验所述文件系统类型信息与虚拟机镜像操作系统的兼容性(由于文件系统类型信息可能会有多种形式,如ext2、ext3、ext4等,所以需要判断入参类型是否与虚拟机镜像操作系统适配)。若文件系统类型信息与虚拟机镜像操作系统的兼容性满足预设兼容规则,则继续进行后续的虚拟机文件系统创建工作,否则,进行异常捕获并终止虚拟机文件系统创建流程。

当判断所述配置文件中的参数信息是否为列表的形式的结果为“否”时,抛出异常信息,终止虚拟机文件系统创建流程。

进一步地,为了保证虚拟机文件系统的顺利创建,校验所述文件系统类型信息与虚拟机镜像操作系统的兼容性之后,所述方法还包括:

校验所述文件系统挂载点名称信息是否和所述虚拟机镜像根目录下已创建的挂载点名称重复。

具体实施时,判断文件系统挂载点名称信息是否和所述虚拟机镜像根目录下已创建的挂载点名称重复,若重复,则终止虚拟机文件系统创建流程,若不重复,则继续进行后续虚拟机文件系统创建流程。

进一步地,校验所述文件系统类型信息与虚拟机镜像操作系统的兼容性之后,所述方法还包括:

判断所述配置文件中的参数信息列表的索引是否为零;

若是,则根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

否则,根据所述卷组创建逻辑卷。

在进行单盘多虚拟机文件系统创建时,若配置文件中的参数信息列表的索引为零,即创建第一个虚拟机文件系统,则根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷。

若配置文件中的参数信息列表的索引不为零,例如,当其为一、二、三时,则直接根据所述卷组创建逻辑卷即可。

在本发明实施例中,为了保证单盘多虚拟机文件系统的顺利创建,所述参数信息还包括:文件系统挂载点名称信息;

根据所述卷组创建逻辑卷包括:

根据所述列表中不同的所述卷组、所述文件系统挂载点名称信息和所述文件系统大小信息分别创建对应的逻辑卷。

具体实施时,举例来说,可以根据列表中第一卷组、第一文件系统挂载点名称信息和第一文件系统大小信息创建第一逻辑卷;根据第二卷组、第二文件系统挂载点名称信息和第二文件系统大小信息创建第二逻辑卷等;根据第三卷组、第三文件系统挂载点名称信息和第三文件系统大小信息创建第三逻辑卷等,逻辑卷具体如何创建,由所述卷组、所述文件系统挂载点名称信息和所述文件系统大小信息决定。

在本发明实施例中,为了使虚拟机文件系统便于用户操作,所述参数信息还包括:文件系统属主信息、文件系统属组信息、文件系统权限信息;

生成所述虚拟机文件系统的挂载点信息之后,所述方法还包括:

根据所述文件系统属主信息为生成的所述虚拟机文件系统配置所属用户;

根据所述文件系统属组信息为生成的所述虚拟机文件系统配置所属用户组;

根据所述文件系统权限信息为生成的所述虚拟机文件系统配置操作权限。

由于现有技术在对虚拟机文件系统创建后,已分配的云存储资源并未得到充分利用,从而造成云硬盘资源浪费,对此,本发明根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统之后,所述方法还包括:

接收扩容参数信息,所述扩容参数信息包括:文件系统挂载点名称信息、文件系统扩容大小信息和新挂载盘符路径信息;

根据所述扩容参数信息对所述虚拟机文件系统进行扩容。

在实施例中,根据所述扩容参数信息对所述虚拟机文件系统进行扩容,包括:

判断所述新挂载盘符路径信息是否为空;

若为空,则判断所述文件系统挂载点名称信息所述逻辑卷是否满足预设扩容规则,并在满足预设扩容规则时对所述虚拟机文件系统进行扩容;

否则,根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

根据创建的物理卷扩容所述虚拟机文件系统的卷组。

具体实施时,判断所述新挂载盘符路径信息是否为空;

若为空,则为无盘扩容,判断所述文件系统挂载点名称信息所述逻辑卷是否满足预设扩容规则(即判断卷组的可用空间是否大于等于文件系统扩容大小),若满足,则对所述虚拟机文件系统进行扩容,若不满足,则终止流程并进行异常日志捕获。

若新挂载盘符路径信息不为空,则为加盘扩容,根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;根据创建的物理卷扩容所述虚拟机文件系统的卷组。

下面通过一具体实施例对本发明进行说明:

如图3所示,当进行虚拟机文件系统创建时:

根据云硬盘的存储容量和盘符挂载点生成脚本,该脚本入参(可指定为默认值),包括文件系统挂载点名称FS_NAME、文件系统大小FS_SIZE、文件系统属主FS_USER、文件系统属组FS_GROUP、文件系统权限FS_LIMITS、文件系统类型FS_TYPE(默认ext3)、新挂载盘符路径VOL_SDX(基于fdisk-l命令自动回填);

判断脚本入参是否为列表List的形式,并初始化List索引为0;

若脚本入参为List的形式,则对各脚本入参List的长度进行合法性校验,若不合法,则抛出异常信息,终止创建流程,其中,List索引遍历各组脚本入参,随后,校验文件系统类型信息与虚拟机镜像操作系统的兼容性;

若脚本入参不为List的形式,直接校验文件系统类型信息与虚拟机镜像操作系统的兼容性;

判断List索引是否为0,若是,则基于新挂载盘符路径VOL_SDX获取云硬盘设备名(如dev、vdb等),基于pvcreate命令进行物理卷初始化操作;

进行卷组创建操作,基于vgcreate命令将新增物理卷划分为一个卷组VG_New;

进行逻辑卷创建,基于新增卷组VG_New和预置入参文件系统挂载点名称FS_NAME、文件系统大小FS_SIZE,利用lvcreate命令划分单个或多个逻辑卷lv1、lv2;

基于划分的逻辑卷lv1、lv2..与文件系统类型FS_TYPE参数,利用mkfs命令自适应创建与新增逻辑卷对等数量的虚拟机文件系统;

结合文件系统挂载点名称FS_NAME,创建挂载点文件夹,基于mount命令将新建文件系统进行挂载;

基于FS_USER、FS_GROUP、FS_LIMITS划分新增文件系统的所属用户、用户组、文件系统权限;

判断List是否遍历完成,若遍历完成,则虚拟机文件系统创建结束,否则,进行索引自增,继续遍历各组脚本入参。

如图4所示,当虚拟机文件系统创建后,进行扩容时:

根据云硬盘的存储容量和盘符挂载点生成脚本,该脚本入参(可指定为默认值),包括文件系统挂载点名称FS_NAME、文件系统扩容大小FS_SIZE、新挂载盘符路径VOL_SDX(基于fdisk-l命令自动回填);

判断盘符路径VOL_SDX参数是否为空,若为空,则为无盘扩容,执行lvs查询判断FS_NAME所属逻辑卷剩余存储空间Available_Storage是否满足扩容需求(即Available_Storage≤FS_SIZE),若不满足则终止流程进行异常日志捕获;若VOL_SDX参数不为空为加盘扩容,基于挂载盘符路径VOL_SDX获取云硬盘设备名(如dev、vdb等),基于pvcreate命令进行物理卷初始化操作,基于vgextend命令将新增物理卷归入目标文件系统所属卷组;

基于lvextend命令对目标文件系统所属逻辑卷进行扩容,基于resize2fs命令对目标文件系统进行扩容后初始化,使扩容动作生效。

由上可知,本发明将虚拟机文件系统创建与扩容手动搭建LVM指令串接到编排脚本中,将涉及的到的相关参数统一配置为脚本入参,针对可能涉及到的操作系统OS与文件系统兼容问题、参数合法性问题进行逻辑判断与异常捕获,实现虚机文件系统创建流程的自动化与轻量化,并且支持批量入参,允许单云盘多文件系统创建,能有效提升云管平台虚机资源的整体供应效率。

此外,本发明针对传统的基于新挂载云盘扩容文件系统的方式导致云硬盘存储资源利用率不高的问题,对文件系统扩容脚本实现逻辑进行优化,支持加盘扩容与无盘扩容两类场景。在无盘扩容场景下,预先对存量物理卷、卷组空间进行扫描,当剩余存储资源满足扩容需求时,自动对已划分目标文件系统所属逻辑卷进行增量扩展,进而完成文件系统扩容动作,能有效解决虚机已分配云盘存储资源利用率低问题。

基于同一发明构思,本发明实施例中还提供了一种文件系统创建装置,如下面的实施例所述。由于文件系统创建装置解决问题的原理与文件系统创建方法相似,因此,文件系统创建装置的实施可以参见文件系统创建方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2为本发明实施例提供的一种文件系统创建装置的结构示意图,如图2所示,该装置包括:

配置文件生成模块201,用于根据云硬盘的存储容量和盘符挂载点生成配置文件,所述配置文件包含多个用于创建虚拟机文件系统的参数信息,其中,所述参数信息中至少包括:文件系统类型信息、文件系统大小信息和新挂载盘符路径信息。

物理卷创建模块202,用于根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷。

卷组创建模块203,用于根据所述物理卷创建卷组。

逻辑卷创建模块204,用于根据所述卷组创建逻辑卷。

虚拟机文件系统创建模块205,用于根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统。

挂载点信息生成模块206,用于生成所述虚拟机文件系统的挂载点信息,所述挂载点信息用于访问所述虚拟机文件系统。

在本发明实施例中,所述装置还包括:

第一判断模块,用于判断所述配置文件中的参数信息是否为列表的形式;

若是,则对所述配置文件中各个参数信息的列表长度进行校验,并在校验结果为正常的情况下,校验所述文件系统类型信息与虚拟机镜像操作系统的兼容性。

在本发明实施例中,所述装置还包括:

第二判断模块,用于判断所述配置文件中的参数信息列表的索引是否为零;

若是,则根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

否则,根据所述卷组创建逻辑卷。

在本发明实施例中,所述参数信息还包括:文件系统挂载点名称信息;

逻辑卷创建模块204进一步用于:

根据所述列表中不同的所述卷组、所述文件系统挂载点名称信息和所述文件系统大小信息分别创建对应的逻辑卷。

在本发明实施例中,所述装置还包括:

校验模块,用于校验所述文件系统挂载点名称信息是否和所述虚拟机镜像根目录下已创建的挂载点名称重复。

在本发明实施例中,所述参数信息还包括:文件系统属主信息、文件系统属组信息、文件系统权限信息;

所述装置还包括:

所属用户配置模块,用于根据所述文件系统属主信息为生成的所述虚拟机文件系统配置所属用户;

所属用户组配置模块,用于根据所述文件系统属组信息为生成的所述虚拟机文件系统配置所属用户组;

操作权限配置模块,用于根据所述文件系统权限信息为生成的所述虚拟机文件系统配置操作权限。

在本发明实施例中,所述装置还包括:

扩容参数信息接收模块,用于接收扩容参数信息,所述扩容参数信息包括:文件系统挂载点名称信息、文件系统扩容大小信息和新挂载盘符路径信息;

扩容模块,用于根据所述扩容参数信息对所述虚拟机文件系统进行扩容。

在本发明实施例中,所述扩容模块进一步用于:

判断所述新挂载盘符路径信息是否为空;

若为空,则判断所述文件系统挂载点名称信息所述逻辑卷是否满足预设扩容规则,并在满足预设扩容规则时对所述虚拟机文件系统进行扩容;

否则,根据所述新挂载盘符路径信息获取所述云硬盘的设备名,并基于所述云硬盘的设备名创建物理卷;

根据创建的物理卷扩容所述虚拟机文件系统的卷组。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图5所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。

处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。

综上所述,本发明通过根据云硬盘的存储容量和盘符挂载点生成配置文件,并根据所述新挂载盘符路径信息获取所述云硬盘的设备名,基于所述云硬盘的设备名创建物理卷,再根据所述物理卷创建卷组,根据所述卷组创建逻辑卷,根据所述逻辑卷和所述文件系统类型信息创建虚拟机文件系统,生成所述虚拟机文件系统的挂载点信息,即可完成虚拟机文件系统的创建,整个过程无需工作人员手工操作,可以实现虚拟机文件系统的自动化批量创建,自动化程度较高。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 文件系统创建方法及装置
  • 创建JBOD文件系统的方法及装置
技术分类

06120112758665