首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 软件包 / 软件组件 / 插件 / 一种实现容器存储扩容的方法及系统

一种实现容器存储扩容的方法及系统

阅读:203发布:2020-05-08

专利汇可以提供一种实现容器存储扩容的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种实现容器存储扩容的方法及系统,属于容器存储扩容领域,本发明要解决的技术问题为如何满足用户在Kubernetes中给容器正在使用的PVC及其对应的PV与底层存储系统进行扩容操作的需求,提高存储的利用效率,避免部署时估计存储空间过大造成浪费或者过小造成承载业务难以扩展,采用的技术方案为:该方法是定义一组扩容 接口 ,将承载Kubernetes集群的物理机与后端存储系统通过FC协议或iSCSI协议相连接,在Kubernetes中实现存储 插件 支持PVC扩容的功能。该系统包括扩容接口定义模 块 、存储插件定义模块、扩容PVC编辑模块、扩容 请求 发起模块、磁盘扩容模块、文件系统系统扩容模块及扩容接口镜像及部署模块。,下面是一种实现容器存储扩容的方法及系统专利的具体信息内容。

1.一种实现容器存储扩容的方法,其特征在于,该方法是定义一组扩容接口,将承载Kubernetes集群的物理机与后端存储系统通过FC协议或iSCSI协议相连接,在Kubernetes中实现存储插件支持PVC扩容的功能;具体如下:
定义一组扩容接口,包括扩容磁盘和扩容文件系统;
定义存储插件对应的StorageClass,在定义中增加允许扩容字段;
用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求
存储插件的扩容磁盘接口根据扩容请求调用传来的参数,实现扩容磁盘;
用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;
扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
2.根据权利要求1所述的实现容器存储扩容的方法,其特征在于,所述允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容。
3.根据权利要求1所述的实现容器存储扩容的方法,其特征在于,所述扩容磁盘具体如下:
调用磁盘扩容接口,根据磁盘扩容请求中的PVC的信息获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
组装参数,调用后端存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;
命令执行过程信息记录日志到Kubernetes;
磁盘扩容接口向Kubernetes返回操作结果,同时Kubernetes修改PVC状态。
4.根据权利要求3所述的实现容器存储扩容的方法,其特征在于,所述存储系统提供的扩容磁盘接口是RestfulApi或命令行。
5.根据权利要求3所述的实现容器存储扩容的方法,其特征在于,所述PVC状态为FileSystemResizePending。
6.根据权利要求1所述的实现容器存储扩容的方法,其特征在于,所述扩容文件系统具体如下:
调用文件系统扩容接口,根据文件系统扩容请求中PVC的信息取得原存储的信息;
组装参数,调用后端存储系统文件系统扩容接口;
命令执行过程信息记录日志到Kubernetes;
将结果返回给Kubernetes,Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成文件系统扩容操作。
7.一种实现容器存储扩容的系统,其特征在于,该系统包括,
扩容接口定义模,用于定义一组扩容接口,包括扩容磁盘和扩容文件系统;
存储插件定义模块,用于定义存储插件对应的StorageClass,在定义中增加允许扩容字段,允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容;
扩容PVC编辑模块,用于用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
扩容请求发起模块,用于在storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求;
磁盘扩容模块,用于根据扩容请求调用传来的参数,实现扩容磁盘;
文件系统系统扩容模块,用于用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;
扩容接口镜像及部署模块,用于扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
8.根据权利要求7所述的实现容器存储扩容的系统,其特征在于,所述磁盘扩容模块的工作过程如下:
(1)、存储插件的扩容磁盘接口根据磁盘扩容请求中的PVC的信息调用传来的参数,获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
(2)、组装好参数,调用存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;
其中,存储系统提供的扩容磁盘接口是RestfulApi或命令行;
(3)、整个执行命令的过程信息都保存在Kubernetes中以方便后续查询。
(4)、磁盘扩容接口向Kubernetes返回操作结果,Kubernetes将PVC状态设为FileSystemResizePending。
9.根据权利要求7所述的实现容器存储扩容的方法,其特征在于,所述文件系统扩容模块的工作过程如下:
①、用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口;
②、存储插件获取传入的参数,完成对文件系统的扩容操作;
③、将结果返回给Kubernetes;
④、Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成全部扩容操作。

说明书全文

一种实现容器存储扩容的方法及系统

技术领域

[0001] 本发明涉及容器存储扩容领域,具体地说是一种实现容器存储扩容的方法及系统。

背景技术

[0002] 随着容器技术在公有、私有云、混合云等领域越来越广泛的应用,用户对于云端的数据的存储有了更高的要求。最新的容器技术由于其卓越的性能和易用性等众多优点在云计算领域已经得到了广泛的使用。目前Kubernetes已经成为容器编排技术事实上的标准。Kubernetes容器编排技术可以支持使用多种存储作为容器的底层存储实现。通过Kubernetes本身所提供的In-tree插件或者由存储提供商或云服务提供商开发的Out-of-tree插件,各种存储系统几乎都可以与Kubernetes集群集成起来,并方便地实现存储磁盘或存储卷的创建、删除、查询、使用、快照等操作。但目前无论是开源社区还是相应的存储系统提供商、云服务商对存储扩容的支持还比较少,这极大地限制了用户对存储的使用,亟待改善。
[0003] 目前很多厂商已经研发出了多种企业级智能存储系统,这类存储系统一般采用双控制器冗余设计,能为用户提供丰富的存储服务和灵活配置的主机连接包括FC与iSCSI,并且主要针对数据库、虚拟化等高IO以及高业务连续性的应用场合,目前很多对信息安全性等级要求较高的客户核心应用数据存储均采用这类存储系统。
[0004] 故如何满足用户在Kubernetes中给容器正在使用的PVC及其对应的PV与底层存储系统进行扩容操作的需求,提高存储的利用效率,避免部署时估计存储空间过大造成浪费或者过小造成承载业务难以扩展是目前急需解决的技术问题。
[0005] 专利号为CN105959416A的专利文献公开了一种基于容器化技术的私有云存储系统,以容器化技术docker为基础搭建私有云存储系统,利用Docker容器技术扩充出计算存储节点,利用MooseFS文件系统实现对单机资源的有效利用,再结合Seafile云存储系统实现对松散资源的集中管理,加密存储;其系统架构主要包括数据存储层和服务提供层。该技术方案解决了传统存储存在空间、加密和共享上的瓶颈;实现了私有云存储系统,保证了数据的隐私性,且易于扩展,但是不能满足用户在Kubernetes中给容器正在使用的PVC及其对应的PV与底层存储系统进行扩容操作的需求,提高存储的利用效率,同时无法避免部署时估计存储空间过大造成浪费或者过小造成承载业务难以扩展的问题。

发明内容

[0006] 本发明的技术任务是提供一种实现容器存储扩容的方法及系统,来解决如何满足用户在Kubernetes中给容器正在使用的PVC及其对应的PV与底层存储系统进行扩容操作的需求,提高存储的利用效率,避免部署时估计存储空间过大造成浪费或者过小造成承载业务难以扩展的问题。
[0007] 本发明的技术任务是按以下方式实现的,一种实现容器存储扩容的方法,该方法是定义一组扩容接口,将承载Kubernetes(一个开源的容器编排引擎,是基于容器技术的分布式架构领先方案)集群的物理机与后端存储系统通过FC协议(FC采用光纤和同轴电缆实现的远距离的高速数据传输)或iSCSI协议(iSCSI是将SCSI命令封装在IP包内通过以太网进行传输的通信协议)相连接,在Kubernetes中实现存储插件支持PVC(持久化卷声明)扩容的功能;具体如下:
[0008] 定义一组扩容接口,包括扩容磁盘和扩容文件系统,便于实现高内聚低耦合的软件工程思想,无论是使用任何存储提供方式都能提供很好的支持;
[0009] 定义存储插件对应的StorageClass(存储类),在定义中增加允许扩容字段;
[0010] 用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
[0011] storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求
[0012] 存储插件的扩容磁盘接口根据扩容请求调用传来的参数,实现扩容磁盘;
[0013] 用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;
[0014] 扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
[0015] 作为优选,所述允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容。
[0016] 作为优选,所述扩容磁盘具体如下:
[0017] 调用磁盘扩容接口,根据磁盘扩容请求中的PVC的信息获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
[0018] 组装参数,调用后端存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;
[0019] 命令执行过程信息记录日志到Kubernetes;
[0020] 磁盘扩容接口向Kubernetes返回操作结果,同时Kubernetes修改PVC状态。
[0021] 更优地,所述存储系统提供的扩容磁盘接口是RestfulApi或命令行。
[0022] 更优地,所述PVC状态为FileSystemResizePending。
[0023] 作为优选,所述扩容文件系统具体如下:
[0024] 调用文件系统扩容接口,根据文件系统扩容请求中PVC的信息取得原存储的信息;
[0025] 组装参数,调用后端存储系统文件系统扩容接口;
[0026] 命令执行过程信息记录日志到Kubernetes;
[0027] 将结果返回给Kubernetes,Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成文件系统扩容操作。
[0028] 一种实现容器存储扩容的系统,该系统包括,
[0029] 扩容接口定义模,用于定义一组扩容接口,包括扩容磁盘和扩容文件系统,便于实现高内聚低耦合的软件工程思想,无论是使用任何存储提供方式都能提供很好的支持;
[0030] 存储插件定义模块,用于定义存储插件对应的StorageClass(存储类),在定义中增加允许扩容字段,允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容;
[0031] 扩容PVC编辑模块,用于用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
[0032] 扩容请求发起模块,用于在storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求;
[0033] 磁盘扩容模块,用于根据扩容请求调用传来的参数,实现扩容磁盘;
[0034] 文件系统系统扩容模块,用于用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;
[0035] 扩容接口镜像及部署模块,用于扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
[0036] 作为优选,所述磁盘扩容模块的工作过程如下:
[0037] (1)、存储插件的扩容磁盘接口根据磁盘扩容请求中的PVC的信息调用传来的参数,获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
[0038] (2)、组装好参数,调用存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;其中,存储系统提供的扩容磁盘接口是RestfulApi或命令行;
[0039] (3)、整个执行命令的过程信息都保存在Kubernetes中以方便后续查询。
[0040] (4)、磁盘扩容接口向Kubernetes返回操作结果,Kubernetes将PVC状态设为FileSystemResizePending。
[0041] 作为优选,所述文件系统扩容模块的工作过程如下:
[0042] ①、用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口;
[0043] ②、存储插件获取传入的参数,如VolumeId,完成对文件系统的扩容操作;
[0044] ③、将结果返回给Kubernetes;
[0045] ④、Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成全部扩容操作。
[0046] 本发明的实现容器存储扩容的方法及系统具有以下优点:
[0047] (一)本发明包括一组接口,实现了存储扩容功能,为使用多种存储系统,包括FC协议或iSCSI协议的各种存储系统方案都能提供良好支持,同时本发明将多种存储系统与Kubernetes容器编排技术结合,实现集群中对容器正在使用的PVC的扩容接口操作,该扩容操作的底层由对应存储系统实现,可以便捷地实现服务开发人员针对业务的存储使用情况按需增加存储容量的需求,提高存储的利用效率,避免部署时估计存储空间过大造成浪费或者过小造成承载业务难以扩展的问题,具有很高的实用价值;
[0048] (二)本发明满足了用户在Kubernetes中给容器正在使用的PVC及其对应的PV与底层存储系统进行扩容操作的需求,具有较强的通用性;
[0049] (三)本发明是云计算领域非常实用的技术,能够满足用户日常的数据存储卷扩容需求;依托于业界广泛实用的Kubernetes容器编排技术和多种支持FC、iSCSI的存储系统,该发明使用场景广泛,能够极大地满足云计算产品对高级特性和高级功能的需求。附图说明
[0050] 下面结合附图对本发明进一步说明。
[0051] 附图1为扩容磁盘的流程示意图;
[0052] 附图2为扩容文件系统的流程示意图。

具体实施方式

[0053] 参照说明书附图和具体实施例对本发明的一种实现容器存储扩容的方法及系统作以下详细地说明。
[0054] 实施例1:
[0055] 本发明的实现容器存储扩容的方法,该方法是定义一组扩容接口,将承载Kubernetes(一个开源的容器编排引擎,是基于容器技术的分布式架构领先方案)集群的物理机与后端存储系统通过FC协议(FC采用光纤和同轴电缆实现的远距离的高速数据传输)或iSCSI协议(iSCSI是将SCSI命令封装在IP包内通过以太网进行传输的通信协议)相连接,在Kubernetes中实现存储插件支持PVC(持久化卷声明)扩容的功能;具体如下:
[0056] S1、定义一组扩容接口,包括扩容磁盘和扩容文件系统,便于实现高内聚低耦合的软件工程思想,无论是使用任何存储提供方式都能提供很好的支持;
[0057] S2、定义存储插件对应的StorageClass(存储类),在定义中增加允许扩容字段;允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容;
[0058] S3、用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
[0059] S4、storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求;
[0060] S5、存储插件的扩容磁盘接口根据扩容请求调用传来的参数,实现扩容磁盘;
[0061] S6、用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;
[0062] S7、扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
[0063] 其中,如附图1所示,步骤S5中扩容磁盘具体如下:
[0064] S501、调用磁盘扩容接口,根据磁盘扩容请求中的PVC的信息获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
[0065] S502、组装参数,调用后端存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;存储系统提供的扩容磁盘接口是RestfulApi或命令行
[0066] S503、命令执行过程信息记录日志到Kubernetes;
[0067] S504、磁盘扩容接口向Kubernetes返回操作结果,同时Kubernetes修改PVC状态,PVC状态置为FileSystemResizePending。
[0068] 如附图2所示,步骤S6中扩容文件系统具体如下:
[0069] S601、调用文件系统扩容接口,根据文件系统扩容请求中PVC的信息取得原存储的信息;
[0070] S602、组装参数,调用后端存储系统文件系统扩容接口;
[0071] S603、命令执行过程信息记录日志到Kubernetes;
[0072] S604、将结果返回给Kubernetes,Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成文件系统扩容操作。
[0073] 实施例2:
[0074] 本发明的实现容器存储扩容的系统,该系统包括,
[0075] 扩容接口定义模块,用于定义一组扩容接口,包括扩容磁盘和扩容文件系统,便于实现高内聚低耦合的软件工程思想,无论是使用任何存储提供方式都能提供很好的支持;
[0076] 存储插件定义模块,用于定义存储插件对应的StorageClass(存储类),在定义中增加允许扩容字段,允许扩容字段为allowVolumeExpansion:true,该字段表示该存储提供器可以支持扩容;
[0077] 扩容PVC编辑模块,用于用户编辑需要扩容的PVC,将该PVC的storage字段修改为想要扩容的大小;
[0078] 扩容请求发起模块,用于在storage字段修改完成后,自动触发Kubernetes容器编排服务调用对应存储插件的扩容磁盘接口,发起扩容请求;
[0079] 磁盘扩容模块,用于根据扩容请求调用传来的参数,实现扩容磁盘;磁盘扩容模块的工作过程如下:
[0080] (1)、存储插件的扩容磁盘接口根据磁盘扩容请求中的PVC的信息调用传来的参数,获取需要扩容的PVC底层的存储系统的VolumeId信息以及扩容后的磁盘大小信息;
[0081] (2)、组装好参数,调用存储系统提供的扩容磁盘接口,实现对容器中PVC的扩容功能;其中,存储系统提供的扩容磁盘接口是RestfulApi或命令行;
[0082] (3)、整个执行命令的过程信息都保存在Kubernetes中以方便后续查询。
[0083] (4)、磁盘扩容接口向Kubernetes返回操作结果,Kubernetes将PVC状态设为FileSystemResizePending。
[0084] 文件系统系统扩容模块,用于用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口,实现扩容文件系统;文件系统扩容模块的工作过程如下:
[0085] ①、用户手动删除并重启与该PVC相关联的Pod,Kubernetes触发调用存储插件提供的扩容文件系统接口;
[0086] ②、存储插件获取传入的参数,如VolumeId,完成对文件系统的扩容操作;
[0087] ③、将结果返回给Kubernetes;
[0088] ④、Kubernetes将PVC的大小设置为扩容后大小,Pod重启后正常挂载原PVC,完成全部扩容操作。
[0089] 扩容接口镜像及部署模块,用于扩容磁盘接口和扩容文件系统接口的实现编译出来的二进制文件制作成镜像,和Kubernetes集群一起部署即可。
[0090] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈