某股份制商业银行生产容器云基于NAS存储技术路线实现Elasticsearch等容器持久化存储实践分享

科技   2024-12-05 07:35   海南  
【摘要】本文介绍了某股份制商业银行基于NAS存储技术实现容器化应用(如Elasticsearch)持久化存储的最佳实践。随着银行业逐步采用容器化技术,容器持久化存储面临高可用性、可扩展性、高性能和数据一致性等的挑战,不仅要满足传统存储要求,还要适应容器的动态部署特性。NAS因其操作简单、共享方便和高可靠性,其作为容器持久化存储方案具有较高的适应性,成为适合银行架构平滑演进的存储方案。华为OceanStor的NAS存储和HyperMetro双活技术为容器应用提供了优异的持久化解决方案。文章还介绍了Elasticsearch日志平台的容器化持久化设计,并总结了采用华为NAS双活模式后的实践效果。该方案大幅降低了部署复杂度,提升了容器集群的高可用性和数据一致性,并建议容器集群应部署适配的CSI插件,以进一步优化存储资源管理和扩展能力。总体来看,NAS存储在容器化环境中的应用,已证明其在银行私有云环境下的高效性和可行性。

【作者】周昆,现就职于某股份制商业银行科技运维中心,任系统管理岗。目前主要负责云原生技术运维工作,熟悉银行业多平台组件技术,在AIX、VMware、华为云等虚拟化云计算方面具有丰富的工作经验,参与过各类平台技术选型和建设工作。

一、银行容器持久化建设的背景、需求分析、难点

近年来,行业应用架构趋势朝着微服务、松耦合、弹性伸缩、敏捷交付的方向发展。容器化技术很好地满足现有需求,因此作为“新质生产力”受到广泛青睐。

银行业科技运维工作需要服务“稳健运营、防范风险”的底线,业务的可用性、数据的完整性和一致性,这些会是考察一个技术架构是否适用的重要因素。经过多年演进,应用高可用和数据多副本,是现阶段比较认可的行业规范。

存算分离,是容器架构的行业标准。谈论容器化或者应用上云,数据持久化是绕不开的课题。容器持久化对数据存储的需求,除了与传统架构存储相同的高可用、可扩展、高性能、强一致外,还需要满足容器动态部署的特性。

本文仅从初具规模的私有云原生集群使用情况出发,讨论一种普适的持久化技术。


二、银行容器持久化存储NAS方案选择理由

容器持久化存储方案主要有以下三种:

1、本地磁盘。使用本地磁盘方案会存在巨大缺陷,本地磁盘无法提供节点级别的高可用,当存储数据的节点发生故障时,数据即不可访问读写,造成业务中断影响。同时,本地磁盘可扩容空间极为有限。但本地磁盘的读写路径短,访问性能极佳,在容器架构中仍然起着临时空间的重要作用。

2、集中式存储。SAN和NAS两类存储,是银行以往传统架构的存储解决方案,在某些场景下仍为目前的最佳解决方案。在K8S支持CSI插件后,外置存储可以便捷对接容器应用,注重数据安全和技术平滑过渡的银行业,会更加倾向安全可靠的集中式存储。

3、分布式存储。兼顾各方优点,并且拥有出色性能,IaaS云计算平台也有大规模实践案例。但在选型过程中,没有调研到可单独为容器架构服务的成熟商用分布式存储。

目前容器化的应用主要为轻量功能的应用,此类应用的持久化需求主要为两点,一是交易运行日志,二是与传统架构应用共享的数据。本文也主要针对此类场景分析下来,持久化的数据没有极致的性能要求,单套系统的容量需求扩展性要求不高。再将前文提到的需要满足容器从节点漂移后的快速访问之前数据,并且从搭建成本、应用改造难度、运维复杂度等方面综合考虑。采取NAS存储作为容器持久化方案,是适合银行架构体系平滑演进的一种选择。


三、银行容器持久化存储整体架构设计

NAS作为一个已诞生40年的文件存储协议,以其接口开放性、功能易用性和广泛的平台兼容性,在云原生时代,作为广泛采用的存储底座,主要有以下三个原因:

1、操作简单,功能丰富

NAS存储资源使用简单,直接挂载即可使用;NAS具备多网络、多租户、配额、QoS等云服务必须的功能,无需重复建设,避免增加接入复杂度,大大降低建设和维护容器平台的难度。

2、共享方便,兼容广泛

SAN存储如果需要和多个服务器之间互联互通,需要每个服务器通过光纤接入SAN网,这增加了板载光纤卡、光纤布线、SAN环搭建配置等一系列高昂成本和部署复杂度。而NAS则可通过IP网,和多个服务器之间共享访问同一份数据。另外,除了PowerVM或VMware等虚拟化平台商业软件,当下流行平台很少完整支持管理SAN存储资源,而NAS却可以兼容几乎所有平台类型。

3、稳态运行,敏态容错

NAS存储一般采用主流厂商中高端存储,可靠性稳定性都有保证。容错,即容器漂移,在某个服务器上运行的容器应用,可以在该服务器故障后转移到另一个健康的服务器上继续运行。漂移成功的前提是两个服务器上有相同的数据,否则容器应用漂移后会出现访问不一致的问题。当使用无法共享的存储资源时,如使用服务器本地盘,容器就无法完成漂移。而NAS由于支持共享访问,不仅无需考虑数据一致性问题,也不需要与服务器一一映射,新服务器挂载即可访问原数据,容器漂移恢复状态都在秒级。

容器集群加NAS存储,构成了本文的容器持久化存储方案,也符合主流存算分离的架构设计。容器集群针对承载的应用提供了原生的高可用解决方案,而为了避免NAS存储成为整个方案里的单点。为实现负载均衡和灾难自动切换的需求,NAS存储采用本地双活高可用方案。项目里采用的华为OceanStor Dorado NAS作为容器持久化NAS存储的解决方案,并且使用HyperMetro技术构建NAS本地双活模式,保证数据零丢失、业务零中断。

容器集群与存储间通常通过交换机方式通信,对于NAS文件系统,需要采用IP交换机。同时,存储两端通过双活复制网络连接,保证双活业务的运行。NAS双活模式一般仍然采用IP方式直接访问,区别在于双活模式NAS对外提供两个IP提供容器集群访问。另外,虽然NAS存储的访问采取IP方式,但仍然建议NAS存储和容器集群部署在同一个网络安全区域内,避免跨防火墙的访问,减少网络策略、流量限制等带来的访问丢包、影响读写性能等问题。

NAS存储双活建立后,存储A的前端业务逻辑端口的配置信息会自动同步到存储B。容器集群可以通过访问不同的逻辑端口IP地址,实现双活的读写服务。NAS双活方案带来的优势包括:

1、高可靠:任一存储节点故障时,数据零丢失,业务零中断,保障客户业务的连续运行。满足RTO≈0、RPO=0的业务需求。

2、高性能:厂商双活技术提供优化带宽利用、减少同步交互的功能,增强NAS性能。

3、资源隔离:双活技术引入租户模式,支持本地和跨站点集群隔离,实现普通文件系统与双活文件系统之间的隔离、互不干扰,支持以租户粒度进行权限分离、互不影响。

容器集群存算分离的高可用架构已经初具雏形,进一步考虑的是假如整个容器集群出现不可用情况,此时的恢复方案应如何考虑。传统架构下的设计必然是两地三中心的灾备模式,并且辅以存储复制技术。容器环境下,灾备建设仍然是必要的,但灾备建设的目标则被定位业务连续性的最后一道保障。容器技术下的高可用,不仅仅要拜托重基础环境的束缚,也要提供快速恢复的能力,这样的要求下,容器双集群部署成为避免容器集群故障的一个推荐方案。一个可用区内部署两套同规模的容器集群,应用同时部署在两套容器集群,前端流量汇入可采用负载均衡器进行转发。同时,两套容器集群接入同一组NAS双活存储,保证了底层数据的一致性。当然,容器双集群部署会带来一定成本的增加,而且不同于NAS双活改造的基本无感知,容器双集群会提高应用上云的复杂度,对应用改造是带来一定挑战的。因此容器双集群可作为一个推荐方案,实践中应综合考虑。

使用华为NAS存储本地双活模式作为容器集群持久化方案的整体架构图参考如下:


四、容器持久化存储应用场景示例——ElasticSearch

ElasticSearch是银行日志平台主流使用的技术组件。云原生应用日志持久化设计如下:

(1) 容器应用(Pod)的日志输出到标准输出和文件

(2) 输出到标准输出的日志,通过FluentD收集到ElasticSearch中, 可供项目组集中查询

(3) 如果应用无法输出到标准输出,则使用filebeat sidecar的方式直接 发送到ElasticSearch

(4) 推荐应用采用双日志方案,保存两份日志,可进一步保障日志数据安 全,方便后续日志分析和故障定位。


五、经验总结及效果

采用华为OceanStor Dorado双活NAS存储架构作为银行私有云原生应用集群容器持久化方案,保证了存储接入容器集群的使用灵活度,降低了采取SAN架构的部署成本和复杂度,实现了不同类型业务数据的合理存储。同时,华为NAS存储HyperMetro本地双活方案,也确保了重要业务系统对于文件存储的高可用需求。

目前本行主要应用系统均已将部分或全部应用功能迁移容器化,并且平稳运行未遇到和存储读写有关的性能问题。容器集群在节点故障发生后,也能调度节点承载的应用快速漂移恢复,华为NAS存储通过读写校验、快照技术也保证了漂移过程中数据的完整性和一致性。

应用上云是现今技术趋势,任何新技术的引入不仅仅通过新特性提高现有系统的稳定性和易用性,也应将历史沉疴借机整改。因此,容器化部署的需求要明确,功能改造难度要适中,资源申请要合理,应用特性要充分测试。这样多方面把控和论证下,容器化部署才能在降本增效的今天,真正做到科技引领、赋能业务快速增长。

NAS存储作为容器持久化存储方案,建议应在容器集群层面部署对应存储品牌的CSI插件。适配的CSI插件,可以对NAS存储底层对象化和抽象化,简化对NAS的操作,大幅降低应用部署的流程和工作量。同时,厂家适配的CSI插件可以提供对NAS文件系统进行在线扩容,进一步增加了持久化存储的可扩展性。华为NAS同时提供自研CSI插件,能够全面提升容器资源的发放效率。因为CSI插件提供了自动化部署的底层实现,在配置和使用的过程中,一定要结合自身环境的一些安全要求和配置规范,比如默认建立NAS路径的权限(如775),对StorageClass、PV/PVC标准化命名等。

在私有云环境中,容器集群与NAS存储一般不会采用相同厂商,因此NAS存储和容器部署的对应关系,通常需要辅以采集脚本或第三方管控平台接口调用,来生成可供查询的CMDB信息。这也是在规模使用的场景下必须考虑的问题。同样,CMDB信息的准确也为NAS存储容量告警提供了快速定位,保证了监控的准确性和有效性。

NAS存储的租户模式天然提供资源域的隔离功能,这一特性值得在多可用区多容器集群的场景下进行技术可行性研究,也可为存储容量的精细化管理提供帮助。这些都会是今后努力的方向。

参与协作反馈用户

罗文江 某股份制银行 云架构师

石帅 某银行 云计算工程师

尚峰 某大型银行云 架构师

段国彬 某银行 云工程师

顾问审核专家:

周奇凡 某银行 云架构师

如有任何问题,可点击文末阅读原文,到社区原文下评论交流

觉得本文有用,请转发或点击“在看”,让更多同行看到


 资料/文章推荐:

欢迎关注社区 “容器云”技术主题  ,将会不断更新优质资料、文章。地址:

https://www.talkwithtrend.com/Topic/98447

下载 twt 社区客户端 APP


长按识别二维码即可下载

或到应用商店搜索“twt”


长按二维码关注公众号

*本公众号所发布内容仅代表作者观点,不代表社区立场

twt企业IT社区
talkwithtrend.com社区(即twt社区)官方公众号,持续发布优秀社区原创内容。内容深度服务企业内各方向的架构师、运维主管、开发和运维工程师等IT专业岗位人群,让您时刻和国内企业IT同行保持信息同步。
 最新文章