docker容器数据卷扩展到HDFS的存储实现方法与流程

文档序号:27909506发布日期:2021-12-11 07:46阅读:466来源:国知局
docker容器数据卷扩展到HDFS的存储实现方法与流程
docker容器数据卷扩展到hdfs的存储实现方法
技术领域
1.本发明是关于一种docker容器数据卷扩展到hdfs的存储实现方法,涉及容器化技术领域。


背景技术:

2.docker容器存储问题一直是容器技术的一个瓶颈,尤其是基于docker容器的分布式计算。虽然docker容器可以通过创建本地数据卷,将宿主机的文件目录挂载到容器中进行数据存储,以防止数据丢失。但是使用docker作为分布式计算引擎时,同一个计算任务被划分为不同小任务。一个小的任务对应一个docker容器,容器在不同的宿主机上运行,跨主机的数据访问共享,就成为了一个最大的问题,而且挂载宿主机本地数据目录,数据存储量也是一个瓶颈。
3.现有docker数据卷的不足之处在于:docker容器实例在物理机中运行时,容器中的服务需要进行数据持久化时,就需要挂载宿主机的磁盘路径映射,作为docker容器的数据卷,用来持久化容器需要存储的数据。但是在实际的应用场景中,大部分的docker应用实例都是分布式服务。分布式式服务的特点是docker容器需要跨物理机部署,所有的分布式docker容器数据需要能够实现共享,比如服务f1是分布式服务,服务f1的docker容器,分别运行在物理机a1、a2、a3中。如图1所示,物理机a1中的docker容器1的数据保存在路径/path1/下,在默认情况下,物理机a2、a3中的docker容器就无法访问在物理机a1中的/path2/路径下的数据。当长期高频对物理机a1、a2、a3读写,物理机磁盘也容易老化、损害,一旦盘损坏,数据恢复的往往很难恢复。
4.因此,docker容器挂载本地数据存在一下几个问题:1)数据跨物理无法共享访问;2)数据无法保证可靠性;3)本地磁盘存储,对于分布式应用,数据存储量是一个很大的瓶颈。


技术实现要素:

5.针对上述问题,本发明的目的是提供一种能够实现docker容器跨主机访问共享数据的docker容器数据卷扩展到hdfs的存储实现方法。
6.为实现上述目的,本发明采取以下技术方案:
7.第一方面,本发明提供的docker容器数据卷扩展到hdfs的存储实现方法,包括:
8.将符合容器设定使用规则的docker数据卷扩展插件安装到各个物理机;
9.对每个物理机进行seaboxdataftpsever挂载;
10.当容器物理机内进行数据操作时,通过挂载点将数据操作自动传入seaboxdataftpsever;
11.seaboxdataftpsever调用hdfs的api,将数据写入到hdfs中。
12.进一步地,挂载的方式采用命令行加参数形式进行。
13.第二方面,本发明还提供一种docker容器数据卷扩展到hdfs的存储实现系统,该
系统包括:
14.插件安装单元,被配置为将符合容器设定使用规则的seaboxdata volume plugin安装到各个物理机;
15.挂载单元,被配置为对每个物理机进行seaboxdataftpsever挂载;
16.容器操作单元,被配置为当容器物理机内进行数据操作时,通过挂载点将数据操作自动传入seaboxdataftpsever;
17.数据写入单元,被配置为seaboxdataftpsever调用hdfs的api,将数据写入到hdfs中。
18.进一步地,挂载的方式可以采用命令行加参数形式进行。
19.第三方面,本发明还提供一种电子设备,所述电子设备至少包括处理器和存储器,所述存储器上存储有计算机程序,所述处理器运行所述计算机程序时执行以所述的方法。
20.第四方面,本发明还提供一种计算机存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现所述的方法。
21.本发明由于采取以上技术方案,其具有以下优点:
22.1、本发明通过seaboxdataftpsever调用hdfs的api,将数据写入到hdfs中,实现docker容器跨主机访问共享数据;
23.2、本发明实现docker容器大数据存储,能够提供docker容器可靠性存储;
24.3、本发明能够解决容器存储数据量的问题;
25.综上,本发明可以广泛应用于容器存储中。
附图说明
26.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。在整个附图中,用相同的附图标记表示相同的部件。在附图中:
27.图1是现有的docker容器挂载本地数据原理示意图;
28.图2是本发明实施例的docker容器数据卷扩展到hdfs的存储实现方法原理图;
29.图3是本发明实施例的docker容器数据卷扩展到hdfs的存储实现方法流程图;
30.图4为本发明实施例的电子设备结构图。
具体实施方式
31.下面将参照附图更详细地描述本发明的示例性实施方式。虽然附图中显示了本发明的示例性实施方式,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
32.应理解的是,文中使用的术语仅出于描述特定示例实施方式的目的,而无意于进行限制。除非上下文另外明确地指出,否则如文中使用的单数形式“一”、“一个”以及“所述”也可以表示包括复数形式。术语“包括”、“包含”、“含有”以及“具有”是包含性的,并且因此指明所陈述的特征、步骤、操作、元件和/或部件的存在,但并不排除存在或者添加一个或多个其它特征、步骤、操作、元件、部件、和/或它们的组合。文中描述的方法步骤、过程、以及操
作不解释为必须要求它们以所描述或说明的特定顺序执行,除非明确指出执行顺序。还应当理解,可以使用另外或者替代的步骤。
33.尽管可以在文中使用术语第一、第二、第三等来描述多个元件、部件、区域、层和/或部段,但是,这些元件、部件、区域、层和/或部段不应被这些术语所限制。这些术语可以仅用来将一个元件、部件、区域、层或部段与另一区域、层或部段区分开。除非上下文明确地指出,否则诸如“第一”、“第二”之类的术语以及其它数字术语在文中使用时并不暗示顺序或者次序。因此,以下讨论的第一元件、部件、区域、层或部段在不脱离示例实施方式的教导的情况下可以被称作第二元件、部件、区域、层或部段。
34.为了便于描述,可以在文中使用空间相对关系术语来描述如图中示出的一个元件或者特征相对于另一元件或者特征的关系,这些相对关系术语例如为“内部”、“外部”、“内侧”、“外侧”、“下面”、“上面”等。这种空间相对关系术语意于包括除图中描绘的方位之外的在使用或者操作中装置的不同方位。
35.本发明提供的docker容器数据卷扩展到hdfs的存储实现方法、系统及存储介质方法包括:将符合容器设定使用规则的docker数据卷扩展插件安装到各个物理机;对每个物理机进行seaboxdataftpsever挂载;当容器物理机内进行数据操作时,通过挂载点将数据操作自动传入seaboxdataftpsever;seaboxdataftpsever调用hdfs的api,将数据写入到hdfs中。本发明通过seaboxdataftpsever调用hdfs的api,将数据写入到hdfs中,实现docker容器跨主机访问共享数据。
36.实施例一
37.docker本身提供了数据卷插件扩展的接口,本发明基于docker数据卷插件扩展的接口进行实现。
38.如图2所示,数据存储的可靠性和数据量的问题,采用海盒大数据平台的分布式文件存储系统(hdfs)实现,能够解决跨主机访问数据的问题,实现思路是将hdfs封装成为一个文件服务器(seaboxdataftpserver)。整体而言,扩展docker容器volum plugin,当进行docker容器数据卷挂载时,通过插件挂载seaboxdataftpserver,如此就可以将docker容器计算的优势和海盒分布式文件存储系统(hdfs)的优势相互结合起来。
39.如图3所示,本实施例提供的docker容器数据卷扩展到hdfs的存储实现方法,具体过程包括:
40.s1、将符合容器设定使用规则的seaboxdata volume plugin(docker数据卷扩展插件)安装到各个物理机1

n;
41.s2、对每个物理机进行seaboxdataftpsever挂载,挂载的方式可以采用命令行加参数形式进行,例如:参数可以是http地址、端口、name或者password等,可以根据实际使用要求进行选择,在此不做限定。
42.s3、当容器物理机内进行数据操作时,能够通过挂载点将数据操作自动传入seaboxdataftpsever。
43.s4、seaboxdataftpsever调用hdfs的api(应用程序编程接口),将数据写入到hdfs中。
44.本实施例提供的docker容器数据卷扩展到hdfs的存储实现方法,当物理机1、2

中的容器通过数据卷插件挂载hdfs以后,所有物理机中存储的数据,都可以通过hdfs实现
数据共享读写,docker容器的跨主机问题依托于seaboxdataftpserver得到实现,docker容器数据的可靠性和大数据量和都依托于hdfs得到保证。docker容器数据的可靠性和数据量都依托于hdfs得到保证。
45.实施例二
46.上述实施例一提供了docker容器数据卷扩展到hdfs的存储实现的方法,与之相对应地,本实施例提供一种docker容器数据卷扩展到hdfs的存储实现的系统。本实施例提供的系统可以实施实施例一的docker容器数据卷扩展到hdfs的存储实现的方法,该系统可以通过软件、硬件或软硬结合的方式来实现。为了描述的方便,描述本实施例时以功能分为各种单元分别描述。当然,在实施时可以把各单元的功能在同一个或多个软件和/或硬件中实现。例如,该系统可以包括集成的或分开的功能模块或功能单元来执行实施例一各方法中的对应步骤。由于本实施例的系统基本相似于方法实施例,所以本实施例描述过程比较简单,相关之处可以参见实施例一的部分说明即可,本发明提供的docker容器数据卷扩展到hdfs的存储实现的系统的实施例仅仅是示意性的。
47.具体地,本实施例提供的docker容器数据卷扩展到hdfs的存储实现的系统,包括:
48.插件安装单元,被配置为将符合容器设定使用规则的seaboxdata volume plugin安装到各个物理机1

n;
49.挂载单元,被配置为对每个物理机进行seaboxdataftpsever挂载,挂载的方式可以采用命令行加参数形式进行,例如:参数可以是http地址、端口、name或者password等,可以根据实际使用要求进行选择,在此不做限定。
50.容器操作单元,被配置为容器物理机内进行数据操作时,能够通过挂载点将数据操作自动传入seaboxdataftpsever。
51.数据写入单元,seaboxdataftpsever调用hdfs的api(应用程序编程接口),将数据写入到hdfs中。
52.实施例三
53.本实施例提供一种与本实施例一所提供的docker容器数据卷扩展到hdfs的存储实现的方法对应的电子设备,电子设备可以是用于客户端的电子设备,例如手机、笔记本电脑、平板电脑、台式机电脑等,以执行实施例一的方法。
54.如图4所示,电子设备包括处理器、存储器、通信接口和总线,处理器、存储器和通信接口通过总线连接,以完成相互间的通信。总线可以是工业标准体系结构(isa,industry standard architecture)总线,外部设备互连(pci,peripheral component)总线或扩展工业标准体系结构(eisa,extended industry standard component)总线等等。存储器中存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行本实施例一所提供的docker容器数据卷扩展到hdfs的存储实现的方法。本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
55.在一些实现中,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可
以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、光盘等各种可以存储程序代码的介质。
56.在另一些实现中,处理器可以为中央处理器(cpu)、数字信号处理器(dsp)等各种类型通用处理器,在此不做限定。
57.实施例四
58.本实施例一的docker容器数据卷扩展到hdfs的存储实现的方法可被具体实现为一种计算机程序产品,计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本实施例一所述的docker容器数据卷扩展到hdfs的存储实现的方法的计算机可读程序指令。
59.计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。
60.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实现”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
61.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
62.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
63.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
64.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1