云原生应用在容器平台上可以实现快速部署,这是云原生应用的一大优势。相对于传统的虚拟化以虚拟机为单位的部署方式,虚拟机部署完成后还要进行业务的部署,而云原生以应用为单位,借助容器技术进行部署,部署完成后,业务天然就绪,体现出更敏捷、更灵活的特性。这使得跨数据中心部署业务的复杂度也大大降低,基于容器的双活数据中心需求也随之而来。这次,焱融云又率先实现了跨数据中心的容器存储 YRCloudFile 的双活部署,不仅如此,YRCloudFile 的容器存储双活还有其它不一样的特性。这次,我们又当仁不让地充当了国内容器存储的风向标。
业务场景
客户有两个地理位置不超过70公里,网络延迟低于3ms的数据中心,部分业务需要在两个数据中心上同时运行和提供服务,涉及部分有状态容器,需要容器存储的支持。当其中一个数据中心A发生故障时,另一个数据中心B上运行同一业务的有状态容器不受影响,且可以将故障数据中心A的业务在数据中心B快速进行重建。
解决方案
在安装YRCloudFile时,实施人员可以在安装界面上将YRCloudFile服务分别运行在数据中心A、B中,同时部署仲裁节点。Kubernetes容器云平台的工作节点也可以跨数据中心部署,K8S使用YRCloudFile的方式与单数据中心完全相同。管理员在YRCloudFile上创建一个跨数据中心的存储池pool1,当依赖持久化数据的业务需要跨数据中心部署,且希望获得双活特性时,可以将PV通过storageclass配置在pool1中。这样,写入该PV的数据会同时分布到两个数据中心,任何一个数据中心发生火灾或电力中断等灾难故障时,pool1在另一个数据中心的数据副本都可以继续提供读写服务。同时,借助YRCloudFile支持有状态容器快速恢复和迁移的特性(我们已经在之前的《有状态应用如何在Kubernetes平台上快速迁移和重建》文章中介绍过),可以帮助管理员快速地将故障数据中心上运行的业务迁移至安全的数据中心。
实现容器存储跨数据中心的双活只是开端,运行在跨数据中心双活存储池pool1上的业务,在进行数据读取时,YRCloudFile能够智能地直接从本数据中心进行读取,极大减低了跨数据中心网络传输的读延时。
到这里,还不是我们创新的极致。
客户除了需要依赖双活容器存储池,进行跨数据中心部署的应用,也有只需要部署在某一数据中心内的应用,这种应用只要把数据存放在应用所在的数据中心即可。这时,管理员可以在同一个YRCloudFile集群的统一命名空间内,创建另外一个新的存储池pool2,pool2的数据副本策略设置为同一个数据中心。管理员通过YRCloudFile提供的另一个storageclass,即可将PV创建在pool2。这样,有状态应用容器所生成的数据副本,就都管理在pool2内,数据的读和写都发生在本数据中心了。
以上场景的部署架构如下图所示:
云原生应用的大范围使用,使企业越来越多地考虑基于容器平台的IT架构,容器平台跨数据中心的需求和场景也越来越多,给容器存储也提出了相应的挑战。焱融云又一次率先捕获了这样的业务需求,创新性地实现了双活容器存储、本地优先读、双活存储池加本地存储池统一管理的功能,为客户提供了更灵活的IT架构。
关于焱融云
焱融云是一家以软件定义存储技术为核心竞争力的高新技术企业,在分布式存储等关键技术上拥有自主知识产权,是高性能分布式存储解决方案的行业领导者。焱融云针对各行业业务特性,打造个性化行业解决方案,提供一站式的产品与服务。焱融云系列产品已服务于金融、政府、制造业、互联网等行业的众多客户。