CN114185669A - 给容器分配磁盘的方法、装置、宿主机及存储介质 - Google Patents

给容器分配磁盘的方法、装置、宿主机及存储介质 Download PDF

Info

Publication number
CN114185669A
CN114185669A CN202111343435.2A CN202111343435A CN114185669A CN 114185669 A CN114185669 A CN 114185669A CN 202111343435 A CN202111343435 A CN 202111343435A CN 114185669 A CN114185669 A CN 114185669A
Authority
CN
China
Prior art keywords
container
disk
file
virtual disk
host
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.)
Pending
Application number
CN202111343435.2A
Other languages
English (en)
Inventor
李坤颖
孔令晶
王辉静
唐琪
廖朗
汪卫明
刘君尧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Institute of Information Technology
Original Assignee
Shenzhen Institute of Information Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Institute of Information Technology filed Critical Shenzhen Institute of Information Technology
Priority to CN202111343435.2A priority Critical patent/CN114185669A/zh
Publication of CN114185669A publication Critical patent/CN114185669A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

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

本申请适用于计算机技术领域,提供了一种给容器分配磁盘的方法、装置、宿主机及存储介质,其中该方法包括:获取待分配磁盘的容器所需存储空间的大小;在容器的宿主机的磁盘上创建文件;文件的大小与容器所需存储空间的大小相同;将文件的路径信息发送给宿主机的内核模块;通过内核模块根据文件的路径信息,在宿主机的磁盘上创建虚拟磁盘;在拉起容器时,将虚拟磁盘分配给容器使用。本申请能给容器分配一个完整的磁盘设备,从而满足容器存储的个性化需求,同时还便于宿主机限制容器写入磁盘的数据总量,提高宿主机磁盘的使用效率。

Description

给容器分配磁盘的方法、装置、宿主机及存储介质
技术领域
本申请属于计算机技术领域,尤其涉及一种给容器分配磁盘的方法、装置、宿主机及存储介质。
背景技术
微服务架构现在广泛运用在各个系统中。微服务通过将功能分解到各个离散的服务中,以实现对解决方案的解耦,通常把一个大型的单个应用程序和服务拆分为数个甚至数十个的微服务。容器是微服务的运行载体,目前容器技术是实现微服务的常用技术选择。
容器在运行过程中,有存储数据和共享数据的要求,通常的做法是给容器配置一个容器卷来存储和共享数据,容器卷通常是宿主机的一个目录或者文件。这种方法可以满足一般性的要求,但由于宿主机的磁盘已经分区了,无法给容器分配一个完整的磁盘设备,从而无法满足容器存储的个性化需求,同时因为是共享一个目录给容器,宿主机无法限制容器在容器卷的写入数据的总量,容器如果无限制的写入,理论上是可以把宿主机当前的磁盘分区写满的。
发明内容
本申请实施例提供了一种给容器分配磁盘的方法、装置、宿主机及存储介质,可以解决无法给容器分配一个完整的磁盘设备的问题。
第一方面,本申请实施例提供了一种给容器分配磁盘的方法,包括:
获取待分配磁盘的容器所需存储空间的大小;
在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;
将所述文件的路径信息发送给所述宿主机的内核模块;
通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;
在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
其中,在所述在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用的步骤之后,所述方法还包括:
通过所述容器将所述虚拟磁盘格式化为符合所述容器业务要求的文件系统。
其中,在所述在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用的步骤之后,所述方法还包括:
在所述容器挂载所述虚拟磁盘时,给所述虚拟磁盘添加符合所述容器业务要求的参数。
其中,所述通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘的步骤,包括:
通过所述内核模块,根据所述文件的路径信息,获取所述文件在所述宿主机的磁盘中所占用的物理块的块号信息;
通过所述内核模块,在所述块号信息对应的物理块上创建虚拟磁盘。
其中,所述将所述虚拟磁盘分配给所述容器使用的步骤,包括:
根据所述虚拟磁盘的路径信息,将所述虚拟磁盘分配给所述容器使用。
其中,所述方法还包括:
当所述虚拟磁盘接收到读写请求时,根据所述读写请求携带的磁盘物理块号信息,从所述文件所占用的物理块中确定出与所述磁盘物理块号信息对应的物理块;
在确定出的物理块上执行所述读写请求对应的读写操作。
其中,所述方法还包括:
当所述容器重启时,将所述虚拟磁盘继续分配给所述容器挂载使用。
第二方面,本申请实施例提供了一种给容器分配磁盘的装置,包括:
获取模块,用于获取待分配磁盘的容器所需存储空间的大小;
第一创建模块,用于在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;
发送模块,用于将所述文件的路径信息发送给所述宿主机的内核模块;
第二创建模块,用于通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;
分配模块,用于在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
第三方面,本申请实施例提供了一种宿主机,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的方法。
本申请实施例与现有技术相比存在的有益效果是:
在本申请的实施例中,通过在宿主机的磁盘上创建一大小与容器所需存储空间的大小一致的文件,并将该文件的路径信息发送给宿主机的内核模块,然后通过内核模块根据该文件的路径信息,在宿主机的磁盘上创建虚拟磁盘,并在拉起容器的时,将创建的虚拟磁盘分配给容器使用,从而确保有一个完整的磁盘设备分配给容器使用,进而满足容器存储的个性化需求,同时还便于宿主机限制容器写入磁盘的数据总量,提高宿主机磁盘的使用效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的给容器分配磁盘的方法的流程图;
图2是本申请一实施例提供的给容器分配磁盘的装置的结构示意图;
图3是本申请一实施例提供的宿主机的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的给容器分配磁盘的方法可应用于各种计算机终端设备,终端设备通过在宿主机(即终端设备自身)的磁盘上创建虚拟磁盘的方式,给容器分配完整的磁盘设备,从而使得容器可以根据自身的业务特点,选择磁盘使用某种特定的文件系统,也可以在挂载磁盘上添加特别的参数。同时宿主机还可以限制容器写入磁盘的数据的大小,提高宿主机磁盘的使用效率。
具体的,在本申请的一些实施例中,上述终端设备可以是手机、平板电脑、笔记本电脑、超级移动个人计算机(UMPC,Ultra-mobile Personal Computer)、上网本、个人数字助理(PDA,Personal Digital Assistant)等终端设备,例如,终端设备可以是WLAN中的站点(ST,STAION),可以是蜂窝电话、无绳电话、会话启动协议(SIP,Session InitiationProtocol)电话、无线本地环路(WLL,Wireless Local Loop)站、个人数字处理(PDA,Personal Digital Assistant)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备等。本申请实施例对终端设备的具体类型不作任何限制。
下面结合具体实施例对本申请提供的给容器分配磁盘的方法进行示例性的说明。
如图1所示,本申请的实施例提供了一种给容器分配磁盘的方法,包括:
步骤11,获取待分配磁盘的容器所需存储空间的大小。
在本申请的一些实施例中,由于容器在运行过程中,有存储数据和共享数据的要求,因此容器需要一定的存储空间,该存储空间大小与容器的业务要求相关。
具体的,在本申请的一些实施例中,当微服务需要启动容器时,能根据微服务的需求确定容器所需存储空间的大小。
步骤12,在所述容器的宿主机的磁盘上创建文件。
在本申请的一些实施例中,创建的文件的大小与所述容器所需存储空间的大小相同,从而在满足容器存储需求的情况下,提高宿主机磁盘的使用效率。
作为一个优选的示例,上述文件可以为一个二进制文件,该二进制文件的大小与容器所需存储空间的大小一致。例如容器所需存储空间是1GB,则该二进制文件的大小也为1GB。
步骤13,将所述文件的路径信息发送给所述宿主机的内核模块。
在本申请的一些实施例中,在文件创建好后,需要将该文件的路径信息告知给宿主机的内核模块,以便后续内核模块在宿主机的磁盘上创建虚拟磁盘给容器使用。
另外,在本申请的一些实施例中,在文件创建好后,需要在宿主机侧把该文件的打开模式设定为只读模式,以使宿主机侧不能修改该文件内容。
步骤14,通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘。
在本申请的一些实施例中,内核模块在获取到文件的路径信息后,可以根据路径信息读取文件的相关信息(例如文件占用的是宿主机的磁盘的哪些物理块),并根据读取到的相关信息创建虚拟磁盘。
具体的,在本申请的一些实施例中,上述步骤14的具体实现方式可以为:通过所述内核模块,根据所述文件的路径信息,获取所述文件在所述宿主机的磁盘中所占用的物理块的块号信息;然后通过所述内核模块,在所述块号信息对应的物理块上创建虚拟磁盘。
即,在本申请的一些实施例中,内核模块在确定出文件所占用的物理块后,会在这些物理块上创建虚拟磁盘,以供容器使用。
步骤15,在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
在本申请的一些实施例中,在内核模块创建好虚拟磁盘后,当拉起容器时,能直接将创建好的虚拟磁盘分配给该容器使用。
具体的,在本申请的一些实施例中,在内核模块创建好虚拟磁盘后,宿主机侧可以看到一个新的磁盘设备,该新的磁盘设备会有一个路径,因此可根据所述虚拟磁盘的路径信息(例如/dev/vdisk0),将所述虚拟磁盘分配给所述容器使用。
值得一提的是,在本申请的一些实施例中,通过在宿主机的磁盘上创建一大小与容器所需存储空间的大小一致的文件,并将该文件的路径信息发送给宿主机的内核模块,然后通过内核模块根据该文件的路径信息,在宿主机的磁盘上创建虚拟磁盘,并在拉起容器的时,将创建的虚拟磁盘分配给容器使用,从而确保有一个完整的磁盘设备分配给容器使用,进而满足容器存储的个性化需求,同时还便于宿主机限制容器写入磁盘的数据总量,提高宿主机磁盘的使用效率。
需要说明的是,在本申请的一些实施例中,内核模块在创建好虚拟磁盘后,会在宿主机侧保持创建好的文件不会被释放或者回收,除非用户需要删除对应的虚拟磁盘,以确保后续容器能一直使用该虚拟磁盘。
且在本申请的一些实施例中,上述方法还包括如下步骤:当所述容器重启时,将所述虚拟磁盘继续分配给所述容器挂载使用。
需要说明的是,由于创建的文件没有删除,因此容器写入的数据是可以保存的。在容器重新启动、挂载虚拟磁盘后,仍然可以使用这些数据,即,数据可以做到持久化。
其中,在本申请一些实施例中,在执行完上述步骤15之后,上述方法还包括如下步骤:通过所述容器将所述虚拟磁盘格式化为符合所述容器业务要求的文件系统。
在本申请的一些实施例中,在将创建好的虚拟磁盘分配给容器使用后,容器可以在容器自身的运行空间内看到一个完整的磁盘设备,可以对该磁盘设备进行格式化,格式化的时候可以选择符合自身业务特点的文件系统,从而满足容器存储的个性化需求。
举例说明,可以将虚拟磁盘格式化为f2fs文件系统,f2fs文件系统是专门为基于计算机闪存设备(NAND)的存储设备设计的新型开源闪存(flash)文件系统。
其中,在本申请一些实施例中,在执行完上述步骤15之后,上述方法还包括如下步骤:在所述容器挂载所述虚拟磁盘时,给所述虚拟磁盘添加符合所述容器业务要求的参数。
作为一个优选的示例,在容器挂载虚拟磁盘时,可以给虚拟磁盘添加同步参数,这样容器内部的文件写入默认会以同步形式写入,从而避免因为系统异常导致数据丢失。
其中,在本申请的一些实施例中,上述方法还包括如下执行读写操作的步骤:当所述虚拟磁盘接收到读写请求时,根据所述读写请求携带的磁盘物理块号信息,从所述文件所占用的物理块中确定出与所述磁盘物理块号信息对应的物理块;然后在确定出的物理块上执行所述读写请求对应的读写操作。
在本申请的一些实施例中,上述磁盘物理块号信息是虚拟磁盘的物理块号信息(即物理块的编号)。即,上述读写请求是针对虚拟磁盘的物理块发出的。而由于虚拟磁盘是在文件所占用的物理块上创建的,因此虚拟磁盘的物理块号信息与文件的物理块号信息之间存在映射关系,只是虚拟磁盘的物理块的编号是从0开始的,文件的物理块的编号是宿主机真实磁盘的物理块编号。例如虚拟磁盘的物理块号信息是100,对应的文件的物理块号信息可能是10000。
由上可知,在从文件所占用的文件块中确定出磁盘物理块号信息对应的物理块后,直接在该确定出该物理块上执行读写操作即可,从而使得容器对虚拟磁盘的读写不需要经过宿主机的文件系统,直接在宿主机磁盘的底层读写数据,因此也提高了磁盘的读写效率。
值得一提的是,因为创建的虚拟磁盘是限制了大小的,因此容器写入的数据量也能得到控制,不会超出宿主机侧创建的文件的大小,这样也提高了宿主机侧的系统安全。
其中,在本申请的一些实施例中,当宿主机上有运行多个容器,并且这些容器都有磁盘需求时,则需要在宿主机上创建多个文件,并通知内核模块创建多个虚拟磁盘,然后依次把这些虚拟磁盘分配给对应的容器使用。具体的分配过程可分别针对每个容器执行上述步骤11至步骤15。
接下来通过一具体实例对上述方法作进一步说明。
在该实例中,假设微服务需要启动两个容器(容器A和容器B),每个容器需要的存储空间是2GB,那么首先可在宿主机上创建两个2GB的文件,并把这两个文件的路径信息传递给内核模块;然后内核模块在这两个文件所占用的物理块上创建虚拟磁盘,两个虚拟磁盘的路径分别为/dev/vdisk0,/dev/vdisk1;当拉起容器A和容器B时,将路径为/dev/vdisk0的虚拟磁盘分配给容器A使用,将路径为/dev/vdisk1的虚拟磁盘分配给容器B使用。在使用过程中,容器A把自身使用的虚拟磁盘格式化为f2fs文件系统,容器B把自身使用的虚拟磁盘格式化为ext4文件系统(ext4文件系统是Linux标准的文件系统,Linux是计算机操作系统)。其中,如果容器B在运行过程中因为发生异常需要重启时,重启后继续把路径为/dev/vdisk1的虚拟磁盘分配给容器B使用,之前的数据没有丢失,仍然可以使用。
对应于上文实施例所述的给容器分配磁盘的方法,如图2所示,本申请的实施例提供了一种给容器分配磁盘的装置200,包括:
获取模块201,用于获取待分配磁盘的容器所需存储空间的大小;
第一创建模块202,用于在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;
发送模块203,用于将所述文件的路径信息发送给所述宿主机的内核模块;
第二创建模块204,用于通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;
分配模块205,用于在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
其中,上述给容器分配磁盘的装置200还包括:
格式化模块,用于通过所述容器将所述虚拟磁盘格式化为符合所述容器业务要求的文件系统。
其中,上述给容器分配磁盘的装置200还包括:
添加模块,用于在所述容器挂载所述虚拟磁盘时,给所述虚拟磁盘添加符合所述容器业务要求的参数。
其中,上述第二创建模块204包括:
获取单元,用于通过所述内核模块,根据所述文件的路径信息,获取所述文件在所述宿主机的磁盘中所占用的物理块的块号信息;
创建单元,用于通过所述内核模块,在所述块号信息对应的物理块上创建虚拟磁盘。
其中,上述分配模块205,具体用于根据所述虚拟磁盘的路径信息,将所述虚拟磁盘分配给所述容器使用。
其中,上述给容器分配磁盘的装置200还包括:
确定模块,用于当所述虚拟磁盘接收到读写请求时,根据所述读写请求携带的磁盘物理块号信息,从所述文件所占用的物理块中确定出与所述磁盘物理块号信息对应的物理块;
执行模块,用于在确定出的物理块上执行所述读写请求对应的读写操作。
其中,上述给容器分配磁盘的装置200还包括:
处理模块,用于当所述容器重启时,将所述虚拟磁盘继续分配给所述容器挂载使用。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
如图3所示,本申请的实施例还提供了一种宿主机,该实施例的宿主机D10包括:至少一个处理器D100(图3中仅示出一个处理器)、存储器D101以及存储在所述存储器D101中并可在所述至少一个处理器D100上运行的计算机程序D102,所述处理器D100执行所述计算机程序D102时实现上述任意各个方法实施例中的步骤。或者,所述处理器D100执行所述计算机程序D102时实现上述各装置实施例中各模块/单元的功能。
在一些实施例中,所述处理器D100执行所述计算机程序D102时实现如下步骤:获取待分配磁盘的容器所需存储空间的大小;在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;将所述文件的路径信息发送给所述宿主机的内核模块;通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:通过所述容器将所述虚拟磁盘格式化为符合所述容器业务要求的文件系统。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:在所述容器挂载所述虚拟磁盘时,给所述虚拟磁盘添加符合所述容器业务要求的参数。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:通过所述内核模块,根据所述文件的路径信息,获取所述文件在所述宿主机的磁盘中所占用的物理块的块号信息;通过所述内核模块,在所述块号信息对应的物理块上创建虚拟磁盘。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:根据所述虚拟磁盘的路径信息,将所述虚拟磁盘分配给所述容器使用。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:当所述虚拟磁盘接收到读写请求时,根据所述读写请求携带的磁盘物理块号信息,从所述文件所占用的物理块中确定出与所述磁盘物理块号信息对应的物理块;在确定出的物理块上执行所述读写请求对应的读写操作。
可选的,所述处理器D100执行所述计算机程序D102时还实现如下步骤:当所述容器重启时,将所述虚拟磁盘继续分配给所述容器挂载使用。
所称处理器D100可以是中央处理单元(CPU,Central Processing Unit),该处理器D100还可以是其他通用处理器、数字信号处理器(DSP,Digital Signal Processor)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现成可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器D101在一些实施例中可以是所述宿主机D10的内部存储单元,例如宿主机D10的硬盘或内存。所述存储器D101在另一些实施例中也可以是所述宿主机D10的外部存储设备,例如所述宿主机D10上配备的插接式硬盘,智能存储卡(SMC,Smart MediaCard),安全数字(SD,Secure Digital)卡,闪存卡(Flash Card)等。进一步地,所述存储器D101还可以既包括所述宿主机D10的内部存储单元也包括外部存储设备。所述存储器D101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器D101还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到给容器分配磁盘的装置/宿主机的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种给容器分配磁盘的方法,其特征在于,包括:
获取待分配磁盘的容器所需存储空间的大小;
在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;
将所述文件的路径信息发送给所述宿主机的内核模块;
通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;
在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
2.根据权利要求1所述的方法,其特征在于,在所述在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用的步骤之后,所述方法还包括:
通过所述容器将所述虚拟磁盘格式化为符合所述容器业务要求的文件系统。
3.根据权利要求1所述的方法,其特征在于,在所述在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用的步骤之后,所述方法还包括:
在所述容器挂载所述虚拟磁盘时,给所述虚拟磁盘添加符合所述容器业务要求的参数。
4.根据权利要求1所述的方法,其特征在于,所述通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘的步骤,包括:
通过所述内核模块,根据所述文件的路径信息,获取所述文件在所述宿主机的磁盘中所占用的物理块的块号信息;
通过所述内核模块,在所述块号信息对应的物理块上创建虚拟磁盘。
5.根据权利要求1所述的方法,其特征在于,所述将所述虚拟磁盘分配给所述容器使用的步骤,包括:
根据所述虚拟磁盘的路径信息,将所述虚拟磁盘分配给所述容器使用。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述虚拟磁盘接收到读写请求时,根据所述读写请求携带的磁盘物理块号信息,从所述文件所占用的物理块中确定出与所述磁盘物理块号信息对应的物理块;
在确定出的物理块上执行所述读写请求对应的读写操作。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述容器重启时,将所述虚拟磁盘继续分配给所述容器挂载使用。
8.一种给容器分配磁盘的装置,其特征在于,包括:
获取模块,用于获取待分配磁盘的容器所需存储空间的大小;
第一创建模块,用于在所述容器的宿主机的磁盘上创建文件;所述文件的大小与所述容器所需存储空间的大小相同;
发送模块,用于将所述文件的路径信息发送给所述宿主机的内核模块;
第二创建模块,用于通过所述内核模块根据所述文件的路径信息,在所述宿主机的磁盘上创建虚拟磁盘;
分配模块,用于在拉起所述容器时,将所述虚拟磁盘分配给所述容器使用。
9.一种宿主机,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202111343435.2A 2021-11-13 2021-11-13 给容器分配磁盘的方法、装置、宿主机及存储介质 Pending CN114185669A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111343435.2A CN114185669A (zh) 2021-11-13 2021-11-13 给容器分配磁盘的方法、装置、宿主机及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111343435.2A CN114185669A (zh) 2021-11-13 2021-11-13 给容器分配磁盘的方法、装置、宿主机及存储介质

Publications (1)

Publication Number Publication Date
CN114185669A true CN114185669A (zh) 2022-03-15

Family

ID=80601559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111343435.2A Pending CN114185669A (zh) 2021-11-13 2021-11-13 给容器分配磁盘的方法、装置、宿主机及存储介质

Country Status (1)

Country Link
CN (1) CN114185669A (zh)

Similar Documents

Publication Publication Date Title
CN102981990B (zh) 采用Android平台终端设备的数据传输方法及装置
US20100070544A1 (en) Virtual block-level storage over a file system
CN110389935B (zh) 一种启动小程序的方法、设备和计算机存储介质
CN111679921A (zh) 内存共享方法、内存共享装置及终端设备
US11853767B2 (en) Inter-core data processing method, system on chip and electronic device
CN109347898B (zh) 场景信息的发送方法、显示方法以及服务器和移动终端
CN103544153A (zh) 一种基于数据库的数据更新方法和系统
CN109271211B (zh) 应用程序的分身方法、装置、设备和介质
CN115309511B (zh) 基于Xen的数据交互方法、装置、存储介质以及电子设备
US11237761B2 (en) Management of multiple physical function nonvolatile memory devices
CN111079125A (zh) 一种应用程序调用第三方库动态提升权限的方法及装置
CN111198777A (zh) 数据处理方法、装置、终端及存储介质
CN117355817A (zh) 区片段驱动器管理
CN103369038A (zh) 平台即服务PaaS管理平台及方法
CN113010265A (zh) Pod的调度方法、调度器、存储插件及系统
CN116028455A (zh) 一种数据处理方法、装置、存储介质及电子设备
CN108228842B (zh) Docker镜像库文件存储方法、终端、设备以及存储介质
CN112445766A (zh) 一种终端碎片整理方法、装置以及终端
CN108255434B (zh) 标签管理方法、管理装置及计算机可读存储介质
CN114185669A (zh) 给容器分配磁盘的方法、装置、宿主机及存储介质
CN116633900A (zh) 逻辑地址分配方法、装置、电子设备及存储介质
CN115562871A (zh) 内存分配管理的方法和装置
CN115756868A (zh) 内存分配方法、装置、设备、存储介质及计算机程序产品
CN116610648A (zh) 日志保存方法、装置、电子设备及存储介质
CN110045929B (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