主机装置的容器运行加速方法及系统与流程

文档序号:12719036阅读:269来源:国知局
主机装置的容器运行加速方法及系统与流程

本发明总体上涉及一种主机装置的容器运行加速方法及容器运行加速系统,具体地涉及一种主机装置的容器同时运行时进行日志文件读写的加速方法及系统。



背景技术:

近年,以Docker为代表的容器技术作为轻量化的虚拟化方案,在互联网中被大量部署。容器为应用程序提供了隔离的运行空间:每个容器内都包含一个独享的完整用户环境空间,并且一个容器内的变动不会影响其他容器的运行环境。为了达到这种效果,容器技术使用了一系列的系统级别的机制,例如,利用Linux namespaces来进行空间隔离,通过文件系统的挂载点来决定容器可以访问哪些文件,通过cgroups来确定每个容器可以利用多少资源。此外,容器之间共享同一系统内核。这样,当同一个库(即,文件系统)被多个容器使用时,内存的使用效率会得到提升。

通常,单台物理机上可以有几十到几百个容器同时运行,这些容器在进行数据读写的时候会产生IO瓶颈,特别是在带有日志功能的文件系统上,情况会变的更糟,文件日志的读写成为瓶颈,导致容器间的资源竞争和容器对外服务中断(DOS)。

以常用的linux的EXT3/4文件系统为例,在现在的情况下,假设多个容器(容器1、容器2和容器3等)在同时写硬盘的时候,为了防止系统突发故障,每次文件的操作要写入日志文件中。这样,这个日志文件的读写就成为系统瓶颈,每次的文件操作,都要排队来更新日志文件内容。更糟糕的是,由于这个文件是存在于硬盘上,因此,每次都要确认文件改动内容并写入日志文件后才可以进行下一步动作,这样,就使容器的存储IO性能变得更差。

在现有技术中,日志文件存在于硬盘上,每次文件系统更新都要把相关操作写入日志文件中,以防止系统突然掉电后文件系统的崩溃。

其缺点在于,首先,日志文件存于硬盘上,性能差且IO延时长。其次,当多个容器并行运行的时候,日志文件会成为系统瓶颈,在严重的情况下还会导致系统拒绝服务(DOS)。



技术实现要素:

本发明的一个方面提供了一种主机装置的容器运行加速方法,包括:当由多个容器对所共享的文件系统进行操作时,将日志文件写入非易失性内存,其中,所述日志文件用于记录所述多个容器对所述文件系统进行的操作,在所述主机装置启动时,将所述非易失性内存映射到该主机装置的内核地址空间。

根据本发明的一个方面的主机装置的容器运行加速方法,所述多个容器对所共享的文件系统同时进行操作。

根据本发明的一个方面的主机装置的容器运行加速方法,所述日志文件仅被写入非易失性内存,而不被写入所述主机装置的硬盘。

根据本发明的一个方面的主机装置的容器运行加速方法,在所述主机装置正常关机时,从所述非易失性内存中读取所述日志文件,并将所读取的该日志文件写入所述主机装置的硬盘。

根据本发明的一个方面的主机装置的容器运行加速方法,所述内核地址空间是所述主机装置的操作系统的逻辑地址空间。

本发明的另一个方面提供了一种主机装置的容器运行加速系统,包括:写入模块,当由多个容器对所共享的文件系统进行操作时,将日志文件写入非易失性内存,其中,所述日志文件用于记录所述多个容器对所述文件系统进行的操作;以及映射模块,在所述主机装置启动时,将所述非易失性内存映射到该主机装置的内核地址空间。

根据本发明的另一个方面的主机装置的容器运行加速系统,所述多个容器对所共享的文件系统同时进行操作。

根据本发明的另一个方面的主机装置的容器运行加速系统,所述日志文件仅被写入非易失性内存,而不被写入所述主机装置的硬盘。

根据本发明的另一个方面的主机装置的容器运行加速系统,在所述主机装置正常关机时,从所述非易失性内存中读取所述日志文件,并将所读取的该日志文件写入所述主机装置的硬盘。

根据本发明的另一个方面的主机装置的容器运行加速系统,所述内核地址空间是所述主机装置的操作系统的逻辑地址空间。

本发明的其他另一个方面提供了一种主机装置,包括:非易失性内存;处理器;以及存储器,存储有计算机可执行指令,所述指令在被处理器执行时,使得处理器执行本发明的一个方面的所述主机装置的容器运行加速方法。

本发明的其他另一个方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被处理器执行时,使得处理器执行本发明的一个方面的所述主机装置的容器运行加速方法。

附图说明

为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了本发明的实施例的主机装置100的结构图。

图2示意性示出了本发明的实施例的主机装置100的容器运行加速方法的流程图;

图3示意性示出了本发明的实施例的主机装置100的容器运行加速方法的变形例的局部流程图;

图4示意性示出了本发明的与实施例的主机装置100的容器运行加速方法对应的容器运行加速系统500的框图;

图5示意性示出了本发明的变形例的主机装置200的结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进行详细说明。

应当注意,这里描述的实施例只用于举例说明,并不用于限制本公开。在以下描述中,为了提供对本公开的透彻理解,阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本公开。

在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本公开至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”、“在实施例中”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和/或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。相同的附图标记指示相同的要素。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。

在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。

本发明的实施例提供了一种能够使容器的存储IO性能得到大幅提升的主机装置的容器运行加速方法及容器运行加速系统。

图1示意性示出了本发明的实施例的主机装置100的结构图。

如图1所示,本发明的主机装置100包括处理器103(例如,微处理器(μP)、数字信号处理器(DSP)等)。处理器103可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。主机装置100还可以包括用于从其他实体接收信号的输入单元101、以及用于向其他实体提供信号的输出单元102。输入单元101和输出单元102可以被布置为单一实体或者是分离的实体。

此外,主机装置100包括具有非易失性内存105,存储在该非易失性内存105中的数据在系统掉电后可以恢复。主机装置100还可以包括硬盘104。在该硬盘104中存储有文件系统11,当由主机装置100中的多个容器对所共享的文件系统11进行操作时,将用于记录多个容器对文件系统11进行的操作的日志文件写入非易失性内存105。其中,多个容器在主机装置100中可以是同时运行的,即:多个容器对所共享的文件系统11同时进行操作。此外,该硬盘104中还可以存储有计算机程序模块12,该计算机程序模块12包括代码/计算机可读指令,其在由主机装置100中的处理器103执行时使得主机装置100可以执行例如下面图2~3所描述的流程及其任何变形。

处理器103可以是单个CPU(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器103还可以包括用于缓存用途的板载存储器。计算机程序模块可以由连接到处理器103的计算机程序产品来承载。

下面,以图2来具体描述本发明实施例的主机装置100的容器运行加速方法。

图2示意性示出了本发明的实施例的主机装置100的容器运行加速方法的流程图。

如图2所示,首先,在主机装置100启动时,通过使用非易失性内存105的APP模式,将非易失性内存105映射到该主机装置100的内核地址空间(步骤S1)。其中,上述内核地址空间是指主机装置100的操作系统的逻辑地址空间。

接着,判断主机装置100的多个容器是否对所共享的文件系统11进行了操作而要将用于记录上述多个容器对文件系统11进行的操作的日志文件写入(步骤S2)。

然后,当上述步骤S2的判断结果为“是”,即:上述多个容器对文件系统11进行了操作而要写入上述日志文件时,将上述日志文件写入非易失性内存105(步骤S3),处理结束。当上述步骤S2的判断结果为“否”,即:上述多个容器未对文件系统11进行操作而不需要写入上述日志文件时,处理结束。

这样,根据本发明的实施例的主机装置及主机装置的容器运行加速方法,日志写入非易失性内存缓存后,可以直接返回(write back模式),并不需要等待同步到后台存储设备(硬盘)上,这样就解决了日志文件瓶颈问题。

此外,日志写入的设备是非易失性内存,相当于数据的内存拷贝,性能提升很大。对于容器的存储IO性能会有一个数量级的性能提升。

而且,由于非易失性内存的特性,缓存中的数据在系统掉电后可以恢复,所以日志文件是安全的。

下面,作为上述实施例的一种变形例,在上述实施例的将日志文件写入非易失性内存而不写入硬盘这样的技术方案的基础上,还优选在主机装置100的正常关机时,可以考虑追加如下图3所示的日志读写处理。

图3示意性示出了本发明的实施例的主机装置100的容器运行加速方法的变形例的局部流程图。

如图3所示,在上述步骤S3之后,即:将日志文件写入非易失性内存105之后,判断主机装置100是否正常关机(步骤S3-1)。

接着,在上述步骤S3-1的判断结果为“是”,即:正常关机时,从非易失性内存105中读取上述日志文件(步骤S3-2),处理进入步骤S3-3。在上述步骤S3-1的判断结果为“否”,即:非正常关机时,处理结束。

在步骤S3-3中,将由上述步骤S3-2所读取的上述日志文件写入上述硬盘104,作为最终备份,处理结束。

这样,该变形例的方法,通过在正常关机时,才最终将日志文件写入硬盘,作为最终备份,从而不仅实现了如上述实施例的方法那样的技术效果,而且通过双重备份,进一步确保了日志文件的安全保存、和在系统故障时利用日志文件的可靠恢复。

以上的详细描述通过使用方框图、流程图和/或示例,已经阐述了主机装置的容器运行加速方法的实施例。在这种方框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种方框图、流程图或示例中的每一功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中,本公开的实施例所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为同件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于:可记录型介质,如软盘、硬盘驱动器、紧致盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。

下面,以图4为例,说明一种以硬件方式实现了上述主机装置的容器运行加速方法的容器运行加速系统。

图4示意性示出了本发明的与实施例的主机装置100的容器运行加速方法对应的容器运行加速系统500的框图。

如图4所示,容器运行加速系统500包括映射模块501和日志写入模块502。

在映射模块501中,在主机装置100启动时,通过使用非易失性内存105的APP模式,将非易失性内存105映射到该主机装置100的内核地址空间。其中,上述内核地址空间是指主机装置100的操作系统的逻辑地址空间。

在日志写入模块502中,判断主机装置100的多个容器是否对所共享的文件系统11进行了操作而要将用于记录上述多个容器对文件系统11进行的操作的日志文件写入。

当上述判断结果为“是”,即:上述多个容器对文件系统11进行了操作而要写入上述日志文件时,将上述日志文件写入非易失性内存105。当上述判断结果为“否”,即:上述多个容器未对文件系统11进行操作而不需要写入上述日志文件时,结束处理。

这样,根据本发明的实施例的主机装置的容器运行加速系统,日志写入非易失性内存缓存后,可以直接返回(write back模式),并不需要等待同步到后台存储设备(硬盘)上,这样就解决的日志文件瓶颈问题。

此外,日志写入的设备是非易失性内存,相当于数据的内存拷贝,性能提升很大。对于容器的存储IO性能会有一个数量级的性能提升。

而且,由于非易失性内存的特性,缓存中的数据在系统掉电后可以恢复,所以日志文件是安全的。

此外,如图4所示,优选在上述主机装置的容器运行加速系统中还包括日志读写模块503。

在日志读写模块503中,首先判断主机装置100是否正常关机。在上述判断结果为“是”,即:正常关机时,从非易失性内存105中读取上述日志文件,并将由所读取的上述日志文件写入上述硬盘104,作为最终备份。在上述判断结果为“否”,即:非正常关机时,结束处理。

这样,通过在正常关机时,才最终将日志文件写入硬盘,作为最终备份,从而通过双重备份,进一步确保了日志文件的安全保存、和在系统故障时利用日志文件的可靠恢复。

下面,作为上述实施例的主机装置100的变形例,以图5为例说明程序模块并非保存于硬盘而保存于任意其他记录介质的结构。

图5示意性示出了本发明的变形例的主机装置200的结构图。

如图5所示,主机装置200包括具有非易失性内存205,存储在该非易失性内存205中的数据在系统掉电后可以恢复。主机装置200还可以包括硬盘204。在该硬盘204中存储有文件系统22,当由主机装置200中的多个容器对所共享的文件系统21进行操作时,将用于记录多个容器对文件系统21进行的操作的日志文件写入非易失性内存205。其中,多个容器在主机装置200中可以是同时运行的,即:多个容器对所共享的文件系统11同时进行操作。此外,主机装置200还包括记录介质206(即,计算机可读存储介质)。该记录介质206中可以存储有计算机程序模块22,该计算机程序模块22包括代码/计算机可读指令,其在由主机装置200中的处理器203执行时使得主机装置200可以执行例如上面图2~3所描述的流程及其任何变形。

此外,上述记录介质206可以是ROM、随机存取内存(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,且上述计算机程序模块22在备选实施例中可以用UE内的存储器的形式被分布到不同计算机程序产品中。

这样,本发明的该变形例的主机装置200也同样可以实现上述各实施例的技术效果。

这样,根据本发明实施例的主机装置、计算机可读存储介质和主机装置的容器运行加速方法及系统,日志写入非易失性内存缓存后,可以直接返回(write back模式),并不需要等待同步到后台存储设备上,这样就解决的日志文件瓶颈问题。

此外,日志写入的设备是非易失性内存,相当于数据的内存拷贝,性能提升很大。

此外,对于NAS一类的网络文件系统,有着同样的加速效果。

而且,由于非易失性内存的特性,缓存中的数据在系统掉电后可以恢复,所以日志文件是安全的。

此外,对于容器的存储IO性能会有一个数量级的性能提升。

如本领域技术人员将会理解的,为了任何的以及所有的目的,例如在提供书面说明书的方面,本申请中所公开的所有范围也涵盖任何的以及所有的可能的子范围以及其子范围的组合。任何所列出的范围均能够被容易地识别成充分的描述以及使同样的范围能够至少被分解成同等的两部分、三部分、四部分、五部分、十部分,等等。作为非限制性的例子,本申请中所讨论的每个范围均能够被容易地分解成下三分之一、中三分之一以及上三分之一等等。如本领域技术人员还将会理解的,诸如“直到”、“至少”、“大于”、“小于”等的所有语言均包括所表述的数量并且是指能够随之被分解成如以上所讨论的子范围的范围。最后,如本领域技术人员将会理解的,范围包括各个单独的成分。所以,例如,具有1-3个单元的组是指具有1、2或者3个单元的组。类似地,具有1-5个单元的组是指具有1、2、3、4或者5个单元的组,等等。

尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1