CN112379828A - 基于动态文件系统的容器创建方法及装置 - Google Patents
基于动态文件系统的容器创建方法及装置 Download PDFInfo
- Publication number
- CN112379828A CN112379828A CN202011165855.1A CN202011165855A CN112379828A CN 112379828 A CN112379828 A CN 112379828A CN 202011165855 A CN202011165855 A CN 202011165855A CN 112379828 A CN112379828 A CN 112379828A
- Authority
- CN
- China
- Prior art keywords
- data
- container
- directory
- target
- file system
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000015654 memory Effects 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 abstract description 29
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及容器技术领域,具体涉及一种基于动态文件系统的容器创建方法及装置,所述方法包括获取目标容器目录并在目标容器目录下创建数据目录;查找可用于创建动态文件系统的至少一个目标对象;基于至少一个目标对象创建存储池,并将存储池挂载到所述数据目录上;利用挂载后的数据目录创建目标容器。利用动态文件系统中存储池功能,将可用于创建动态文件系统的至少一个目标对象形成存储池,并将该存储池挂载到数据目录下,后续再进行目标容器的创建,那么创建出的目标容器的数据将会依据数据目录进行存储,而数据目录下又挂载有由至少一个对象形成的存储池,因此,最终容器数据是存储在目标对象中的,即实现了容器数据的持久化存储。
Description
技术领域
本发明涉及容器技术领域,具体涉及基于动态文件系统的容器创建方法及装置。
背景技术
随着容器化技术的成熟和普及,越来越多的服务器开始从裸机向容器上转移。主流的容器自身会使用分层的文件系统,不使用存储持久化数据,如数据库等。服务器在容器化后一般会通过创建数据卷来存储持久化数据,其中,所述的容器的持久化数据,即,使数据不随着容器的结束而结束,数据存在于宿主机上。
以Docker容器技术为例,Docker容器使用的创建持久化数据卷的方案主要有两种,一种是Bind Mount(即,绑定挂载),一种是Volume(即,数据卷)。Bind Mount和Volume都是绕过容器的文件系统,直接将数据写到宿主机上,其中bind mount是通过将宿主机的目录挂载到容器实现的,而volume是将Docker创建的目录挂载到容器实现的。
不论是上述的Bind Mount还是Volume,容器的持久化存储性能和宿主机的文件系统有很大的关系,如果宿主机文件系统的存储性能很差,也会直接影响到上面运行的容器的存储性能。那么,如何保证容器能够得到令人满意的持久化存储性能呢。
由于动态文件系统(ZettabyteFileSystem,简称为ZFS),是一种革新性的新文件系统,它强健可靠、可伸缩、易于管理,并且ZFS文件系统还具有强大的性能和性价比。那么,在确定采用ZFS文件系统之后,如何使用该ZFS文件系统进行容器数据的存储是一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供了一种基于动态文件系统的容器创建方法及装置,以解决使用ZFS文件系统进行容器数据存储的问题。
根据第一方面,本发明实施例提供了一种基于动态文件系统的容器创建方法,包括:
获取目标容器目录并在所述目标容器目录下创建数据目录;
查找可用于创建动态文件系统的至少一个目标对象;
基于所述至少一个目标对象创建存储池,并将所述存储池挂载到所述数据目录上;
利用挂载后的所述数据目录创建目标容器。
本发明实施例提供的基于动态文件系统的容器创建方法,利用动态文件系统中存储池功能,将可用于创建动态文件系统的至少一个目标对象形成存储池,并将该存储池挂载到数据目录下,后续再进行目标容器的创建,那么创建出的目标容器的数据将会依据数据目录进行存储,而数据目录下又挂载有由至少一个对象形成的存储池,因此,最终容器数据是存储在目标对象中的,即实现了容器数据的持久化存储。
结合第一方面,在第一方面第一实施方式中,所述基于所述至少一个目标对象创建存储池,并将所述存储池挂载到所述数据目录上,包括:
响应于动态文件系统的创建命令;
基于所述创建命令以及所述至少一个目标对象,创建存储池并将所述存储池挂载到所述数据目录上。
本发明实施例提供的基于动态文件系统的容器创建方法,利用动态文件系统的创建命令创建存储池以及存储池的挂载,简化了数据处理过程,直接利用动态文件系统的命令即可实现。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述基于所述创建命令以及所述至少一个目标对象,创建存储池并将所述存储池挂载到所述数据目录上,包括:
利用所述创建命令,将所述至少一个目标对象组建成所述存储池;
将所述存储池挂载到所述数据目录上。
本发明实施例提供的基于动态文件系统的容器创建方法,由至少一个目标对象组建存储池,再将该存储池挂载到数据目录上,从而可以实现在数据目录下具有至少一个目标对象用于数据的持久化存储。
结合第一方面,在第一方面第三实施方式中,所述目标对象包括磁盘、文件以及镜像中的至少一种,所述查找可用于创建动态文件系统的目标对象,包括:
遍历所有对象,并依据预设条件对所述所有对象进行筛选,以得到可用于创建动态文件系统的目标对象。
本发明实施例提供的基于动态文件系统的容器创建方法,通过对所有对象进行筛选,从而使得筛选出的目标对象能够满足需求,以保证后续数据的正常存储。
结合第一方面,在第一方面第四实施方式中,所述在所述目标容器目录下创建数据目录,包括:
响应于容器命令;
基于所述容器命令,在所述目标容器目录下创建数据卷形式的存储盘,以得到所述数据目录。
本发明实施例提供的基于动态文件系统的容器创建方法,在目标容器目标下创建数据卷形式的存储盘,提高容器数据的存储性能。
结合第一方面,或第一方面第一实施方式至第四实施方式中任一项,在第一方面第五实施方式中,所述方法还包括:
将所述目标容器的存储数据路径设置为所述数据目录;
获取待存储数据;
基于所述数据目录存储所述待存储数据。
本发明实施例提供的基于动态文件系统的容器创建方法,通过将目标容器的存储路径设置为数据目录,由于数据目录下挂载有存储池,而存储池又是由至少一个目标对象形成的,最终待存储数据是存储在目标对象中,实现了容器数据的持久化存储。
结合第一方面第五实施方式,在第一方面第六实施方式中,所述基于所述数据目录存储所述待存储数据,包括:
将所述待存储数据存储至所述存储池中;
基于所述存储池中各个所述目标对象的负载,确定目标存储对象;
利用所述目标存储对象进行所述待存储数据的存储。
根据第二方面,本发明实施例还提供了一种基于动态文件系统的容器创建装置,包括:
获取模块,用于获取目标容器目录并在所述目标容器目录下创建数据目录;
查找模块,用于查找可用于创建动态文件系统的至少一个目标对象;
挂载模块,用于基于所述至少一个目标对象形成存储池,并将所述存储池挂载到所述数据目录上;
创建模块,用于利用挂载后的所述数据目录创建目标容器。
本发明实施例提供的基于动态文件系统的容器创建装置,利用动态文件系统中存储池功能,将可用于创建动态文件系统的至少一个目标对象形成存储池,并将该存储池挂载到数据目录下,后续再进行目标容器的创建,那么创建出的目标容器的数据将会依据数据目录进行存储,而数据目录下又挂载有由至少一个对象形成的存储池,因此,最终容器数据是存储在目标对象中的,即实现了容器数据的持久化存储。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的基于动态文件系统的容器数据存储方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的基于动态文件系统的容器数据存储方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于动态文件系统的容器创建方法的流程图;
图2是根据本发明实施例的基于动态文件系统的容器创建方法的流程图;
图3是根据本发明实施例的基于动态文件系统的容器创建方法的流程图;
图4是根据本发明实施例的基于动态文件系统的容器创建装置的结构框图;
图5是本发明实施例提供的电子设备的硬件结构示意图;
图6是根据本发明实施例的容器创建及容器数据存储的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为下文描述方便,对本文所涉及的名词解释如下:
(1)ZFS Pool:ZFS存储池,存储池是一种设备集合,提供ZFS文件系统中数据的物理存储。
(2)vdev:虚拟设备,描述的是单个设备或者按特定的性能和故障特征组织的设备集合,vdev可以是disk、file、mirror等多种实现(本专利中使用宿主机disk作为vdev)。一个ZFS存储池可以配置有任意数目的虚拟设备,数据在所有设备间动态分布,以平衡设备间的数据。添加新的虚拟设备时,ZFS自动将数据放在新近可用的设备上。
(3)/dev/sda…/dev/sdx:宿主机磁盘(disk)在系统中的名称。
(4)Docker Container:Docker容器。
(5)Docker Volume:Docker通过Volume实现的持久化存储卷。
(6)ZFS Mount:ZFS挂载,在本发明实施例中ZFS Pool通过ZFS挂载技术挂载到Docker Volume所在的宿主机目录的方法,为容器持久化存储提供实际的底层存储,即容器存储在Docker Volume中的数据实际是存储在ZFS Pool中的。
本发明实施例提出了一种在宿主机上使用ZFS文件系统提供容器持久化存储的服务器容器化方案,其能够有效保证服务器在容器化之后依然可以使用到高性能的持久化存储。因此,本发明所提供的基于动态文件系统的容器创建方法,可以解决服务器在容器化后如何使用高性能存储的问题。
根据本发明实施例,提供了一种基于动态文件系统的容器创建方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种基于动态文件系统的容器创建方法,可用于电子设备,如服务器等,图1是根据本发明实施例的基于动态文件系统的容器创建方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取目标容器目录并在目标容器目录下创建数据目录。
电子设备在进行容器化之前,需要确定出目标容器的目录,即目标容器对应的存储目录。电子设备在查询到目标容器目录之后,在该目标容器目标下创建数据目录,该数据目录用于后续的容器数据的存储。
其中,数据目录的创建可以是创建数据卷(Volume)方式的存储盘,也可以是创建其他方式的存储盘,在此对数据目录的具体形式并不做任何限制,具体可以根据实际情况进行相应的设置。
例如,电子设备在创建出Volume方式的存储盘之后,将该存储盘设置在目标容器目录下;也可以是直接在目标容器目录下进行存储盘的创建等等。
S12,查找可用于创建动态文件系统的至少一个目标对象。
其中,所述的目标对象可以是电子设备中的文件、磁盘等等。电子设备可以通过对本地的各个可以用于存储数据的对象进行查询,从中确定出可以用于创建动态文件系统的目标对象。对于目标对象的确定,可以是设置预设条件对用于存储数据的对象进行筛选,例如,预设条件可以是对象的可用存储容量,对象的目录等等。在此对具体的筛选方式并不做任何限制,具体可以根据实际情况进行相应的设置即可。
所述的目标对象可以是一个,可以是两个,也可以是多个等等,具体可以根据实际情况进行相应的设置。
S13,基于至少一个目标对象创建存储池,并将存储池挂载到数据目录上。
电子设备在上述S12中查找到至少一个目标对象之后,可以将至少一个目标对象组成一个存储池,即,将至少一个目标对象组成一个集合,该集合可以采用存储池的形式表示。当然,电子设备也可以直接采用动态文件系统的命令直接创建存储池,以及存储池的挂载。
其中,所述的将存储池挂载在数据目录上,也可以理解为,建立数据目录与存储池之间的映射;或者,将存储池的名称设置在数据目录上等等。
S14,利用挂载后的数据目录创建目标容器。
电子设备在是上述S13之后,即可得到挂载了存储池的数据目录。其中,数据目录是是在目标容器目录下创建的,且数据目录下又挂载有存储池,而存储池又是由本地筛选出的至少一个目标对象形成的。因此,电子设备在利用该数据目录创建出的目标容器之后,该目标容器的容器数据就能够实现高性能持久化的数据存储。这是由于,容器数据最终是存储在目标对象中的。
本实施例提供的基于动态文件系统的容器创建方法,利用动态文件系统中存储池功能,将可用于创建动态文件系统的至少一个目标对象形成存储池,并将该存储池挂载到数据目录下,后续再进行目标容器的创建,那么创建出的目标容器的数据将会依据数据目录进行存储,而数据目录下又挂载有由至少一个对象形成的存储池,因此,最终容器数据是存储在目标对象中的,即实现了容器数据的持久化存储。
在本实施例中提供了一种基于动态文件系统的容器创建方法,可用于上述的电子设备,如服务器等,图2是根据本发明实施例的基于动态文件系统的容器创建方法的流程图,如图2所示,该流程包括如下步骤:
S21,获取目标容器目录并在目标容器目录下创建数据目录。
具体地,上述S21包括如下步骤:
S211,获取目标容器目录。
例如,以创建的容器为Docker容器为例,电子设备检查目标容器对应在宿主机上设置的存储目录,假设为/path/to/volume-01.
其余详细请参见图1所示实施例的S11中的相关描述,在此不再赘述。
S212,响应于容器命令。
用户在电子设备中输入容器命令,电子设备就会响应于该容器命令。所述的容器命令用于在指定目录下创建数据卷形式的存储盘。
例如,Docker命令可以为:docker volume create volume-name。
S213,基于容器命令,在目标容器目录下创建数据卷形式的存储盘,以得到数据目录。
电子设备在响应容器命令之后,就会在目标容器目标下创建数据卷形式的存储盘。沿用上述示例,电子设备在响应于上述容器命令之后,就会在电子设备的Docker目录下新建一个对应的volume目录,这个volume即为所述的数据目录。例如,使用Docker命令创建一个Volume方式的持久化存储盘,假设盘名称为volume-01。
在目标容器目标下创建数据卷形式的存储盘,提高容器数据的存储性能。
S22,查找可用于创建动态文件系统的至少一个目标对象。
其中,所述目标对象包括磁盘、文件以及镜像中的至少一种。
具体地,电子设备通过遍历本地的所有可用于存储数据的对象,并依据预设条件对所有对象进行筛选,以得到可用于创建动态文件系统的目标对象。
例如,用户可以根据自己的需要设置查找可用磁盘的条件,比如,只用大于100G的磁盘,这样性能和功能都可以得到保证。
电子设备在查找到目标对象之后,可以记录下目标对象的路径,并利用该路径作为后续存储池创建的条件。例如,在宿主机查找可用于创建ZFS文件系统的磁盘,假设为/dev/sdb、/dev/sdc以及/dev/sde。
通过对所有对象进行筛选,从而使得筛选出的目标对象能够满足需求,以保证后续数据的正常存储。
S23,基于至少一个目标对象创建存储池,并将存储池挂载到数据目录上。
具体地,上述S23包括如下步骤:
S231,响应于动态文件系统的创建命令。
用户在电子设备中输入动态文件系统的创建命令,即,输入ZFS命令,以指示该电子设备创建存储池。
S232,基于创建命令以及至少一个目标对象,创建存储池并将存储池挂载到数据目录上。
如上文所述,所述的存储池是由上述S22中查询到的所有目标对象组成的,那么,电子设备基于上述S231中动态文件系统的创建命令创建存储池,并将该存储池挂载到数据目录上。
在本实施例的一种可选实施方式中,上述S232包括如下步骤:
(1)利用创建命令,将至少一个目标对象组建成存储池。
电子设备在接收到动态文件系统的创建命令之后,将所有的目标对象组成存储池。例如,所有目标对象在该存储池中可以采用各个目标对象的路径进行表示。
(2)将存储池挂载到数据目录上。
电子设备在组成存储池之后,再将该存储池挂载到数据目录上,从而实现存储池与数据目录的对应关系。
例如,使用ZFS命令创建存储池(假设存储池名称设置为zpool-01),并将存储池挂载到Docker volume上。其中,ZFS命令可以为:zpool create-m/path/to/volume-01zpool-01/dev/sdb/dev/sdc/dev/sde
由至少一个目标对象组建存储池,再将该存储池挂载到数据目录上,从而可以实现在数据目录下具有至少一个目标对象用于数据的持久化存储。
S24,利用挂载后的数据目录创建目标容器。
例如,使用Docker命令使用volume-01作为持久化存储创建容器。
其余详细请参见图1所示实施例的S14,在此不再赘述。
本实施例提供的基于动态文件系统的容器创建方法,利用动态文件系统的创建命令创建存储池以及存储池的挂载,简化了数据处理过程,直接利用动态文件系统的命令即可实现。
作为本实施例的一种具体实施方式,本实施例主要描述的是目标容器的创建过程。其中,以创建的容器为Docker容器为例,如图6所示,所述的基于动态文件系统的容器创建方法,包括如下步骤:
(1)首先使用Docker命令创建一个Volume方式的持久化存储盘,假设盘名称为volume-01;
(2)获取volume-01对应在宿主机上Docker设置的存储目录,假设为/path/to/volume-01;
(3)在宿主机上查找可用于创建ZFS文件系统的磁盘,假设为/dev/sdb、/dev/sdc以及/dev/sde;
(4)使用ZFS命令创建存储池(假设存储池名称设置为zpool-01),并将存储池挂载到Docker volume上。其中,ZFS命令可以为:zpool create-m/path/to/volume-01zpool-01/dev/sdb/dev/sdc/dev/sde;
(5)使用Docker命令使用volume-01作为持久化存储创建容器。
在本实施例中提供了一种基于动态文件系统的容器创建方法,可用于上述的电子设备,如服务器等,图3是根据本发明实施例的基于动态文件系统的容器创建方法的流程图,如图3所示,该流程包括如下步骤:
S31,获取目标容器目录并在目标容器目录下创建数据目录。
详细请参见图2所示实施例的S21,在此不再赘述。
S32,查找可用于创建动态文件系统的至少一个目标对象。
详细请参见图2所示实施例的S22,在此不再赘述。
S33,基于至少一个目标对象创建存储池,并将存储池挂载到数据目录上。
详细请参见图2所示实施例的S23,在此不再赘述。
S34,利用挂载后的数据目录创建目标容器。
详细请参见图2所示实施例的S24,在此不再赘述。
S35,将目标容器的存储数据路径设置为数据目录。
电子设备在创建出目标容器之后,可以将目标容器的存储数据路径设置为上述的数据目录。
例如,在上述Docker容器创建完成之后,volume-01映射在容器中的目录为/path/to/date_dir,那么电子设备就将目标容器中相关服务(如mysql)存储持久化数据的路径设置为/path/to/date_dir。
S36,获取待存储数据。
电子设备的目标容器在运行过程中将会产生待存储数据。
S37,基于数据目录存储待存储数据。
由于上述S35中电子设备已经将目标容器的存储数据的路径设置为数据目录,那么电子设备就利用数据目标对待存储数据进行存储。
在容器运行过程中,电子设备会将数据存放在/path/to/date_dir目录下,由于/path/to/date_dir与volume-01相映射,电子设备实际将数据存放在volume-01下。
在本实施例的一种可选实施方式中,上述S37可以包括如下步骤:
S371,将待存储数据存储至存储池中。
其中,由于存储池是挂载在数据目录下的,那么电子设备就会将待存储数据存储至存储池中。
例如,由于ZFS存储池pool-01已经挂载在volume-01下,容器的持久化数据会转而存储到pool-01存储池中。
S372,基于存储池中各个目标对象的负载,确定目标存储对象。
进一步地,由于存储池是由至少一个目标对象形成的,那么最终待存储数据就会存储在各个目标对象中。同时,电子设备在进行数据存储时,是基于负载均衡原则,对待存储数据进行存储。因此,电子设备会基于存储池中各个目标对象的负载,从中确定目标存储对象。
S373,利用目标存储对象进行待存储数据的存储。
电子设备在确定出目标存储对象之后,就可以利用该目标存储对象进行待存储数据的存储。最终,容器的持久化数据会被ZFS文件系统存储到vdev上,在本实施例中,待存储数据会被最终存储到宿主机的磁盘(disk)上。
本实施例提供的基于动态文件系统的容器创建方法,通过将目标容器的存储路径设置为数据目录,由于数据目录下挂载有存储池,而存储池又是由至少一个目标对象形成的,最终待存储数据是存储在目标对象中,实现了容器数据的持久化存储。
作为本实施例的一个具体实施方式,上述S35-S37主要描述的是容器数据的持久化存储,具体地,继续以上述Docker容器为例,如图6所示,上述S35-S37可以包括如下步骤:
(1)Docker容器创建完毕后,假设volume-01映射在容器中的目录为/path/to/date_dir;
(2)将容器中相关服务(如mysql)存储持久化数据的路径设置为/path/to/date_dir;
(3)在容器运行过程中,程序会将数据存放在/path/to/date_dir目录下,由于/path/to/date_dir与volume-01相映射,程序实际将数据存放在volume-01下;
(4)由于ZFS存储池pool-01已经挂载在volume-01下,容器的持久化数据会转而存储到pool-01存储池中;
(5)最终,容器的持久化数据会被ZFS文件系统存储到vdev上,在本专利中,会被最终存储到宿主机的磁盘上。
由于ZFS文件系统强大的性能和健壮性,整个存储过程会非常快速和可靠。
在本实施例中还提供了一种基于动态文件系统的容器创建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种基于动态文件系统的容器创建装置,如图4所示,包括:
获取模块41,用于获取目标容器目录并在所述目标容器目录下创建数据目录;
查找模块42,用于查找可用于创建动态文件系统的至少一个目标对象;
挂载模块43,用于基于所述至少一个目标对象形成存储池,并将所述存储池挂载到所述数据目录上;
创建模块44,用于利用挂载后的所述数据目录创建目标容器。
本实施例提供的基于动态文件系统的容器创建装置,利用动态文件系统中存储池功能,将可用于创建动态文件系统的至少一个目标对象形成存储池,并将该存储池挂载到数据目录下,后续再进行目标容器的创建,那么创建出的目标容器的数据将会依据数据目录进行存储,而数据目录下又挂载有由至少一个对象形成的存储池,因此,最终容器数据是存储在目标对象中的,即实现了容器数据的持久化存储。
本实施例中的基于动态文件系统的容器创建装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图4所示的基于动态文件系统的容器创建装置。
请参阅图5,图5是本发明可选实施例提供的一种电子设备的结构示意图,如图5所示,该电子设备可以包括:至少一个处理器51,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(Display)、键盘(Keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图4所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线52可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器54还可以包括上述种类的存储器的组合。
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本申请图1至3实施例中所示的基于动态文件系统的容器创建方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于动态文件系统的容器创建方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于动态文件系统的容器创建方法,其特征在于,包括:
获取目标容器目录并在所述目标容器目录下创建数据目录;
查找可用于创建动态文件系统的至少一个目标对象;
基于所述至少一个目标对象创建存储池,并将所述存储池挂载到所述数据目录上;
利用挂载后的所述数据目录创建目标容器。
2.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个目标对象创建存储池,并将所述存储池挂载到所述数据目录上,包括:
响应于动态文件系统的创建命令;
基于所述创建命令以及所述至少一个目标对象,创建存储池并将所述存储池挂载到所述数据目录上。
3.根据权利要求2所述的方法,其特征在于,所述基于所述创建命令以及所述至少一个目标对象,创建存储池并将所述存储池挂载到所述数据目录上,包括:
利用所述创建命令,将所述至少一个目标对象组建成所述存储池;
将所述存储池挂载到所述数据目录上。
4.根据权利要求1所述的方法,其特征在于,所述目标对象包括磁盘、文件以及镜像中的至少一种,所述查找可用于创建动态文件系统的目标对象,包括:
遍历所有对象,并依据预设条件对所述所有对象进行筛选,以得到可用于创建动态文件系统的目标对象。
5.根据权利要求1所述的方法,其特征在于,所述在所述目标容器目录下创建数据目录,包括:
响应于容器命令;
基于所述容器命令,在所述目标容器目录下创建数据卷形式的存储盘,以得到所述数据目录。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述方法还包括:
将所述目标容器的存储数据路径设置为所述数据目录;
获取待存储数据;
基于所述数据目录存储所述待存储数据。
7.根据权利要求6所述的方法,其特征在于,所述基于所述数据目录存储所述待存储数据,包括:
将所述待存储数据存储至所述存储池中;
基于所述存储池中各个所述目标对象的负载,确定目标存储对象;
利用所述目标存储对象进行所述待存储数据的存储。
8.一种基于动态文件系统的容器创建装置,其特征在于,包括:
获取模块,用于获取目标容器目录并在所述目标容器目录下创建数据目录;
查找模块,用于查找可用于创建动态文件系统的至少一个目标对象;
挂载模块,用于基于所述至少一个目标对象形成存储池,并将所述存储池挂载到所述数据目录上;
创建模块,用于利用挂载后的所述数据目录创建目标容器。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的基于动态文件系统的容器数据存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-7中任一项所述的基于动态文件系统的容器数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165855.1A CN112379828B (zh) | 2020-10-27 | 2020-10-27 | 基于动态文件系统的容器创建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165855.1A CN112379828B (zh) | 2020-10-27 | 2020-10-27 | 基于动态文件系统的容器创建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112379828A true CN112379828A (zh) | 2021-02-19 |
CN112379828B CN112379828B (zh) | 2024-03-19 |
Family
ID=74576817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165855.1A Active CN112379828B (zh) | 2020-10-27 | 2020-10-27 | 基于动态文件系统的容器创建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112379828B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905537A (zh) * | 2021-02-20 | 2021-06-04 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN114064594A (zh) * | 2021-11-22 | 2022-02-18 | 马上消费金融股份有限公司 | 数据处理方法和装置 |
CN115629772A (zh) * | 2022-09-05 | 2023-01-20 | 摩尔线程智能科技(北京)有限责任公司 | Kubernetes软件安装方法及装置、电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306269A1 (en) * | 2009-05-26 | 2010-12-02 | Roger Frederick Osmond | Method and apparatus for large scale data storage |
CN105637487A (zh) * | 2013-06-13 | 2016-06-01 | 数据引力公司 | 用于数据智能存储系统的实况还原 |
CN107291386A (zh) * | 2017-06-14 | 2017-10-24 | 湖北第二师范学院 | 一种用于蓝光vtl网关的缓存管理系统及方法 |
CN111782339A (zh) * | 2020-06-28 | 2020-10-16 | 京东数字科技控股有限公司 | 一种容器创建方法、装置、电子设备及存储介质 |
-
2020
- 2020-10-27 CN CN202011165855.1A patent/CN112379828B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306269A1 (en) * | 2009-05-26 | 2010-12-02 | Roger Frederick Osmond | Method and apparatus for large scale data storage |
CN105637487A (zh) * | 2013-06-13 | 2016-06-01 | 数据引力公司 | 用于数据智能存储系统的实况还原 |
CN107291386A (zh) * | 2017-06-14 | 2017-10-24 | 湖北第二师范学院 | 一种用于蓝光vtl网关的缓存管理系统及方法 |
CN111782339A (zh) * | 2020-06-28 | 2020-10-16 | 京东数字科技控股有限公司 | 一种容器创建方法、装置、电子设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905537A (zh) * | 2021-02-20 | 2021-06-04 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN112905537B (zh) * | 2021-02-20 | 2022-09-02 | 北京百度网讯科技有限公司 | 文件处理方法、装置、电子设备和存储介质 |
CN114064594A (zh) * | 2021-11-22 | 2022-02-18 | 马上消费金融股份有限公司 | 数据处理方法和装置 |
CN114064594B (zh) * | 2021-11-22 | 2023-09-22 | 马上消费金融股份有限公司 | 数据处理方法和装置 |
CN115629772A (zh) * | 2022-09-05 | 2023-01-20 | 摩尔线程智能科技(北京)有限责任公司 | Kubernetes软件安装方法及装置、电子设备 |
CN115629772B (zh) * | 2022-09-05 | 2023-09-19 | 摩尔线程智能科技(北京)有限责任公司 | Kubernetes软件安装方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112379828B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112379828A (zh) | 基于动态文件系统的容器创建方法及装置 | |
CN112148678B (zh) | 一种文件访问方法、系统、设备以及介质 | |
CN110941393A (zh) | 一种基于逻辑卷管理的lv供应方法、装置、设备及介质 | |
US11461031B1 (en) | Non-disruptive storage volume migration between storage controllers | |
CN111787036B (zh) | 一种前端私有云部署的解决方法、装置、存储介质及设备 | |
CN112433812B (zh) | 一种虚拟机跨集群迁移方法、系统、设备及计算机介质 | |
CN113179670B (zh) | 用于文档存储和管理的方法、系统和介质 | |
CN105095103A (zh) | 用于云环境下的存储设备管理方法和装置 | |
CN111767169B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111399760B (zh) | Nas集群元数据处理方法、装置、nas网关及介质 | |
CN111352899B (zh) | 路径聚合方法、访问方法及通信设备、存储介质 | |
CN109600260A (zh) | 分布式存储系统高可用组件配置方法、系统及装置 | |
US11301436B2 (en) | File storage method and storage apparatus | |
CN110471744B (zh) | 密码修改方法、装置、设备和计算机可读存储介质 | |
CN112199176A (zh) | 一种业务处理方法、装置及相关设备 | |
CN112988062A (zh) | 一种元数据读取限制方法、装置、电子设备及介质 | |
CN113127258A (zh) | 一种数据备份方法、装置、设备及介质 | |
CN115454617A (zh) | 处理器性能调整方法、装置、电子设备及存储介质 | |
CN116418826A (zh) | 对象存储系统扩容方法、装置、系统及计算机设备 | |
CN115510016A (zh) | 一种基于目录分片的客户端应答方法、装置及介质 | |
CN114861003A (zh) | 一种指定目录下的对象列举方法、装置及其介质 | |
CN114860166A (zh) | 一种卷的本地化方法、装置以及介质 | |
EP3798859A1 (en) | File system using approximate membership filters | |
CN114020214A (zh) | 存储集群的扩容方法、装置、电子设备及可读存储介质 | |
CN114567641A (zh) | 一种超融合集群部署方法、装置、设备及可读存储介质 |
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 |