1.一种容器镜像中心,其特征在于,包括:存储模块及多台主机,每台主机设置有一个harbor模块和对应的保活模块,所述存储模块存储有容器镜像数据;
保活模块包括:主保活模块和多个从保活模块;
所述主保活模块,用于检测对应的主harbor模块的工作状态;当检测到对应的主harbor模块的工作状态为非正常工作状态时,停止向各个从保活模块发送vrrp通告报文,以使各个从保活模块进行选举确定出新的主保活模块以及对应的新的主harbor模块;
所述harbor模块包括:主harbor模块和多个从harbor模块;
所述主harbor模块,用于根据客户端的读/写请求向相应的存储模块读/写容器镜像数据。
2.如权利要求1所述的容器镜像中心,其特征在于,所述存储模块包括:主控制子模块和多个存储子模块;
所述主控制子模块,用于保存每个存储子模块和存储的容器镜像数据的存储关系;以及每个存储子模块写入或者删除容器镜像数据后,更新存储关系;
以及用于接收所述主harbor模块发送的读/写请求;
当读/写请求为读请求时,根据所述读请求携带的目标容器镜像数据的标识和预先设定的存储关系确定所述目标容器镜像数据存储的目标存储子模块;从所述目标存储子模块获取所述容器镜像数据;将所述容器镜像数据发送给所述主harbor模块;
当读/写请求为写请求时,根据预先设定的分配规则确定目标存储子模块;将写请求的容器镜像数据发送给所述目标存储子模块进行存储并更新存储关系。
3.如权利要求2所述的容器镜像中心,其特征在于,所述根据预先设定的分配规则确定目标存储子模块具体包括:
统计每个存储子模块的剩余存储空间的大小;
将多个存储子模块按照剩余存储空间从大到小的顺序进行排序;
选择排序前m位的存储子模块作为目标存储子模块。
4.如权利要求2所述的容器镜像中心,其特征在于,所述根据预先设定的分配规则确定目标存储子模块具体包括:
根据所述容器镜像数据的标识统计所述容器镜像数据在多个存储子模块中的副本数量以及分布;
根据所述副本数量确定对所述容器镜像数据再次进行复制得到多个容器镜像数据副本;
根据所述副本的分布确定所述多个容器镜像数据副本的目标存储子模块。
5.如权利要求2所述的容器镜像中心,其特征在于,所述存储模块还包括多个从控制子模块,当所述主控制子模块处于非正常工作状态时,所述多个从控制子模块选举出新的主控制子模块。
6.如权利要求1所述的容器镜像中心,其特征在于,所述主harbor模块非正常工作状态包括:健康状态异常;所述主保活模块还用于,向对应的主harbor模块发送健康状态查询请求消息;
接收所述主harbor模块发送的携带健康状态的响应消息;
根据所述响应消息确定所述主harbor模块的健康状态异常。
7.如权利要求1所述的容器镜像中心,其特征在于,所述主harbor模块非正常工作状态包括:故障;所述主保活模块还用于,在向所述主harbor模块发送健康状态查询请求消息之后,从零开始进行计时;
判断在预定的时间阈值之内是否接收到所述主harbor模块发送的响应消息;
如果否,则确定所述主harbor模块故障。
8.如权利要求1所述的容器镜像中心,其特征在于,所述主保活模块还用于,将主harbor模块的虚拟地址和所在主机的物理网卡进行绑定,向多个客户端以广播的方式发送所述主harbor模块的虚拟地址,以使每个客户端根据所述物理网卡地址向所述主harbor模块发送读/写请求。
9.一种容器镜像中心运行方法,应用于权利要求1-8任一项所述的容器镜像中心;所述方法包括:
主harbor模块接收客户端发送的读/写请求;
所述主harbor模块根据所述读/写请求向相应的存储模块读/写容器镜像数据;如果是读请求,则将读取到的容器镜像数据发送给所述客户端。
10.如权利要求9所述的容器镜像中心运行方法,其特征在于,所述主保活模块检测对应的所述主harbor模块的工作状态;
当所述主保活模块检测到对应的所述主harbor模块的工作状态为非正常工作状态时,停止向各个从保活模块发送vrrp通告报文,以使各个从保活模块进行选举确定出新的主保活模块以及对应的新的主harbor模块。