一种面向Docker容器的文件系统资源隔离方法技术方案

技术编号:21853930 阅读:15 留言:0更新日期:2019-08-14 01:10
本发明专利技术涉及一种面向Docker容器的文件系统资源隔离方法,根据容器的访问请求对主机文件系统资源进行分配并确定与访问请求对应的锁资源,文件系统资源隔离方法至少包括如下步骤:基于锁资源的粒度将锁资源划分为能够细化的第一锁和不能够细化的第二锁,并按照配置第一锁的细化副本以构成单独的锁的方式创建若干个新容器;根据新容器所需的文件资源请求参数对主机文件系统资源进行分配并基于分配结果将若干个新容器划分为第一标记容器和第二标记容器;在第一标记容器或第二标记容器执行文件系统操作时存在锁竞争或需要使用文件系统资源的情况下,根据已分配给第一标记容器或第二标记容器的文件系统资源用量对文件系统操作的执行进行控制。

A Docker Container Oriented File System Resource Isolation Method

【技术实现步骤摘要】
一种面向Docker容器的文件系统资源隔离方法
本专利技术属于虚拟化系统
,尤其涉及一种面向Docker容器的文件系统资源隔离方法。
技术介绍
当前,虚拟化是云计算环境中提升设备利用率的一种关键技术手段。Docker的出现推动了操作系统级虚拟化技术的发展,容器凭借其性能高,启动快,开销小,隔离性等特点,开始取代虚拟机在云计算环境中占据越来越重要的地位。然而,虽然容器在性能上比起虚拟机有一定优势,但是隔离性方面却比虚拟机差。本质原因是容器共享相同的操作系统内核。同时,由于容器比虚拟机更轻,相同配置的服务器上可以部署更多的容器,因此容器间的资源竞争会比虚拟机间的资源竞争更激烈。容器间性能隔离的手段主要借助于内核cgroups系统。它可以为进程提供CPU,Memory和I/O隔离。比如,blkio子系统可以为每个进程指定一个权重,当使用cfq调度器进行I/O调度时,每个进程可以获得相应权重的调度时间片,从而可以实现容器间的I/O隔离。但是这些隔离手段都没有办法解决因为共享内核所引起的竞争。比如,当多个容器同时创建文件时,都需要向主机文件系统申请inode,所有文件的inode组织成一个全局的链表并由锁保护,因此当多个容器同时创建文件时,就会因为竞争这个锁相互影响。同时,由于容器共享主机文件系统的资源,当出现一个恶意容器大量创建文件时,会耗尽主机文件系统中所有的inode,导致其它容器无法创建文件。为了减轻由于共享内核出现的隔离性问题,主要的技术手段是将主机文件系统资源进行划分,抽象成多个互相独立的实体,然后将多个进程I/O栈的共享部分进行分离,使得每个进程具有独立的I/O栈。但是这种方法需要对主机文件系统进行修改,而Docker容器使用存储驱动来管理镜像和容器,不同存储驱动对主机文件系统有不同要求。所以这种方法不适用于Docker容器。同时,Docker的镜像和容器分层的存储特性使得Docker容器具有更深更复杂的I/O栈,会引入新的隔离性问题。例如,公开号为CN106874125A的专利文献公开了一种多容器系统间共享系统资源的方法及装置,该方法包括:当内核监测到来自任一容器系统的针对设备的访问请求时,确定访问请求中与设备对应的系统资源相匹配的资源锁;基于系统资源相匹配的资源锁,确定系统资源的状态信息;根据系统资源的状态信息,对系统资源进行加锁,并将加锁后的系统资源分配至容器系统,以用于容器系统对系统资源进行独占访问。由上可以看到,Docker容器已有的性能隔离手段是直接和硬件相关的性能隔离,无法解决由于共享内核带来的隔离性问题。而解决共享内核带来的隔离性问题的技术手段并不适用于Docker容器。因此,本专利技术试图探寻一种容器文件系统资源的隔离方法,针对容器共享内核中的锁竞争和文件系统资源的竞争,提供一种技术手段,将文件系统资源分配到每个容器文件系统示例中,避开共享,从而防止竞争带来的性能干扰,提升隔离性。此外,一方面由于申请人所理解的本领域技术人员与审查部门必然有所差异;另一方面由于专利技术人做出本专利技术时研究了大量文献和专利,但篇幅所限并未详细罗列所有的细节与内容,然而这绝非本专利技术不具备这些现有技术的特征,相反本专利技术已经具备现有技术的所有特征,而且申请人保留依据审查指南相关规定随时在
技术介绍
中增加相关现有技术之权利。
技术实现思路
如本文所用的词语“模块”描述任一种硬件、软件或软硬件组合,其能够执行与“模块”相关联的功能。针对现有技术之不足,本专利技术提供一种面向Docker容器的文件系统资源隔离方法,根据容器的访问请求对主机文件系统资源进行分配并确定与所述访问请求对应的锁资源,所述文件系统资源隔离方法至少包括如下步骤:基于锁资源的粒度将所述锁资源划分为能够细化的第一锁和不能够细化的第二锁,并按照配置第一锁的细化副本以构成单独的锁的方式创建若干个新容器;根据新容器所需的文件资源请求参数对主机文件系统资源进行分配并基于分配结果将所述若干个新容器划分为第一标记容器和第二标记容器;在所述第一标记容器或所述第二标记容器执行文件系统操作时存在锁竞争或需要使用文件系统资源的情况下,根据已分配给所述第一标记容器或所述第二标记容器的文件系统资源用量对所述文件系统操作的执行进行控制。根据一种优选实施方式,在所述新容器创建时执行主机文件系统资源的分配,并且所述分配结果取决于剩余的主机文件系统资源能否满足所述文件资源请求参数,其中:在主机文件系统资源的剩余量大于等于新容器创建的需求量的情况下,为所述新容器分配所需的主机文件系统资源并将其划分为所述第一标记容器,或者在主机文件系统资源的剩余量小于新容器创建的需求量的情况下,所述新容器共享所有剩余的主机文件系统资源并被划分为所述第二标记容器。根据一种优选实施方式,对所述文件系统操作的执行进行控制至少包括如下步骤:判断所述文件系统操作是否存在锁竞争,在所述文件系统操作存在锁竞争且竞争的锁是所述第一锁的情况下,所述新容器按照获取所述细化副本的方式避免锁竞争;在所述文件系统操作需要获取主机文件系统资源的情况下,所述第一标记容器配置为:在其文件系统操作所需的主机文件系统资源未超过为其分配的主机文件系统资源的情况下继续执行所述文件系统操作,并且所述第二标记容器配置:在其文件系统操作所需的主机文件系统资源未超过底层文件系统剩余的资源的情况下继续执行所述文件系统操作。根据一种优选实施方式,所述文件系统资源隔离方法还包括如下步骤:在删除所述第一标记容器的情况下,释放为其分配的文件系统资源并对主机文件系统资源的剩余量进行更新;按照直接删除第二标记容器的方式结束其对应的文件系统操作。根据一种优选实施方式,所述第一锁的细化副本按照如下方式配置至所述新容器:为所述新容器配置相应的联合挂载文件系统挂载实例,并在容器文件系统源码中添加相应的字段信息以使得新容器在创建时其对应的容器文件系统挂载实例中便包含所述细化副本;为联合挂载文件系统挂载实例配置至少一个新的加锁函数,使得在所述新容器执行文件系统操作时,所述新容器能够根据所述加锁函数获取与其对应的联合挂载文件系统挂载实例中的细化副本。根据一种优选实施方式,在创建新容器时,至少能够根据新容器所运行的负载的特征提出对所述主机文件系统资源的需求,其中:所述主机文件系统资源至少包括由索引节点和文件描述符组成的文件系统软资源。本专利技术还提供一种面向Docker容器的文件系统资源隔离系统,至少包括文件操作系统调用模块、系统内核和若干个容器,基于文件操作系统调用模块能够将容器中的应用程序的请求传至所述系统内核以调用相应的内核函数完成所需的处理,所述文件系统资源隔离系统至少包括细化锁资源模块和文件系统资源分配模块,其中:所述细化锁资源模块配置为:基于锁资源的粒度将所述锁资源划分为能够细化的第一锁和不能够细化的第二锁;所述文件系统资源分配模块配置为:按照配置第一锁的细化副本以构成单独的锁的方式创建若干个新容器;根据新容器所需的文件资源请求参数对主机文件系统资源进行分配并基于分配结果将所述若干个新容器划分为第一标记容器和第二标记容器;在所述第一标记容器或所述第二标记容器执行文件系统操作时存在锁竞争或需要使用文件系统资源的情况下,根据已分配给所述第一标记容器或所述第二标记容器的文件本文档来自技高网
...

【技术保护点】
1.一种面向Docker容器的文件系统资源隔离方法,根据容器的访问请求对主机文件系统资源进行分配并确定与所述访问请求对应的锁资源,其特征在于,所述文件系统资源隔离方法至少包括如下步骤:基于锁资源的粒度将所述锁资源划分为能够细化的第一锁和不能够细化的第二锁,并按照配置第一锁的细化副本以构成单独的锁的方式创建若干个新容器;根据新容器所需的文件资源请求参数对主机文件系统资源进行分配并基于分配结果将所述若干个新容器划分为第一标记容器和第二标记容器;在所述第一标记容器或所述第二标记容器执行文件系统操作时存在锁竞争或需要使用文件系统资源的情况下,根据已分配给所述第一标记容器或所述第二标记容器的文件系统资源用量对所述文件系统操作的执行进行控制。

【技术特征摘要】
1.一种面向Docker容器的文件系统资源隔离方法,根据容器的访问请求对主机文件系统资源进行分配并确定与所述访问请求对应的锁资源,其特征在于,所述文件系统资源隔离方法至少包括如下步骤:基于锁资源的粒度将所述锁资源划分为能够细化的第一锁和不能够细化的第二锁,并按照配置第一锁的细化副本以构成单独的锁的方式创建若干个新容器;根据新容器所需的文件资源请求参数对主机文件系统资源进行分配并基于分配结果将所述若干个新容器划分为第一标记容器和第二标记容器;在所述第一标记容器或所述第二标记容器执行文件系统操作时存在锁竞争或需要使用文件系统资源的情况下,根据已分配给所述第一标记容器或所述第二标记容器的文件系统资源用量对所述文件系统操作的执行进行控制。2.根据权利要求1所述的文件系统资源隔离方法,其特征在于,在所述新容器创建时执行主机文件系统资源的分配,并且所述分配结果取决于剩余的主机文件系统资源能否满足所述文件资源请求参数,其中:在主机文件系统资源的剩余量大于等于新容器创建的需求量的情况下,为所述新容器分配所需的主机文件系统资源并将其划分为所述第一标记容器,或者在主机文件系统资源的剩余量小于新容器创建的需求量的情况下,所述新容器共享所有剩余的主机文件系统资源并被划分为所述第二标记容器。3.根据权利要求2所述的文件系统资源隔离方法,其特征在于,对所述文件系统操作的执行进行控制至少包括如下步骤:判断所述文件系统操作是否存在锁竞争,在所述文件系统操作存在锁竞争且竞争的锁是所述第一锁的情况下,所述新容器按照获取所述细化副本的方式避免锁竞争;在所述文件系统操作需要获取主机文件系统资源的情况下,所述第一标记容器配置为:在其文件系统操作所需的主机文件系统资源未超过为其分配的主机文件系统资源的情况下继续执行所述文件系统操作,并且所述第二标记容器配置:在其文件系统操作所需的主机文件系统资源未超过底层文件系统剩余的资源的情况下继续执行所述文件系统操作。4.根据权利要求3所述的文件系统资源隔离方法,其特征在于,所述文件系统资源隔离方法还包括如下步骤:在删除所述第一标记容器的情况下,释放为其分配的文件系统资源并对主机文件系统资源的剩余量进行更新;按照直接删除第二标记容器的方式结束其对应的文件系统操作。5.根据权利要求4所述的文件系统资源隔离方法,其特征在于,所述第一锁的细化副本按照如下方式配置至所述新容器:为所述新容器配置相应的联合挂载文件系统挂载实例,并在容器文件系统源码中添加相应的字段信息以使得新容器在创建时其对应的容器文件系统挂载实例(4)中便包含所述细化...

【专利技术属性】
技术研发人员:吴松金海陈希明
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1