yyf123
作者yyf123联盟成员·2023-08-08 10:23
系统工程师·威海市商业银行

数据库容器化如何保障IO性能要求

字数 2249阅读 869评论 0赞 3

课题概要

本文基于传统数据库解决IO问题方法出发,探讨数据库容器化后如何保障IO性能要求。围绕数据库容器化以后是否可以参照传统的数据库解决IO问题、支持哪些存储方式以及哪些方式适合生产使用,在IO方面对于高并发高吞吐的存储方式的选择,实际使用中数据库容器的存储规模选择、数据库的架构类型等方面进行分析。

课题主持

姚雅飞 某金融机构 系统工程师
twt社区数据库领域委员会专业委员。从事过开发、安全、主机、数据库运维等岗位,其中主机、数据库运维岗位从事11年,独立规划实施VMware虚拟化、power虚拟化,IBM、EMC存储的使用规划,两地三中心的规划实施,现从事架构规划工作。
杨梦伦 中国银行 系统工程师
twt社区数据库领域委员会专业委员。 现任某国有银行信息科技部工程师,负责系统运维,擅长开源软件、大数据、容器平台相关技术。喜欢开源,曾经做过开发,接触过安全,擅长研究。

课题指导:

twt社区数据库领域委员会顾问委员——某股份制银行数据库架构师孔再华老师
twt社区私有云领域委员会顾问委员——某金融机构系统架构师李威老师
twt社区专家——某大型金融企业解决方案架构师沈达老师

课题协作:

twt社区大数据领域委员会互动委员——某金融机构数据库管理员王子若老师

数据库容器化是一个近几年比较流行的一个话题,之前容器主要用于承载无状态的应用环境,对IO要求不高。数据库容器化以后不仅有状态,而且如何保障IO性能要求是一个难点问题。

本文基于传统数据库解决IO问题方法出发,探讨数据库容器化后如何保障IO性能要求。围绕数据库容器化以后是否可以参照传统的数据库解决IO问题、支持哪些存储方式以及哪些方式适合生产使用,在IO方面对于高并发高吞吐的存储方式的选择,实际使用中数据库容器的存储规模选择、数据库的架构类型等方面进行分析,具体如下:

一、 数据库容器化以后是否可以参照传统的数据库解决IO问题

数据库容器化以后逻辑存储结构和传统的数据库相比并没有发生变化,因此对于数据库容器化以后IO的设计优化思路依然可以参照传统数据库。对于高IO的要求,传统数据库主要是通过外置存储和采用高性能的存储介质来实现。

二、 数据库容器化以后支持哪些存储方式以及哪些方式适合生产使用

容器存储主要有三种方式:内部存储、宿主机本地磁盘存储、远程卷存储。

(1) 内部存储在容器启动时自动生成,作为容器的读写层会在容器销毁时自动销毁,类似于主机的内存,在主机宕机时内存数据消失,建议不要在生产环境中使用,此方案仅为快速测试使用。

(2) 宿主机本地磁盘存储可以理解为容器数据存储在宿主机本地,创建简单,无需增加额外资源,缺点时无法在不同节点间漂移,不建议在生产环境使用,可以在开发环境使用节约资源。

(3) 远程卷存储类似于SAN存储,推荐用于生产环境,可以使存储在不同节点漂移,使生产环境具备高可靠性,分布式存储卷包括Ceph、GlusterFS等。

三、 在IO方面对于高并发高吞吐的存储方式的选择

容器存储选择分布式存储还是集中式存储,需要根据具体的应用场景和需求来决定。一般来说,分布式存储相比集中式存储,具有以下优势:

  • 可以实现存储资源的弹性扩展和动态调度,适合云原生和容器化应用 ;
  • 可以提供高并发和高吞吐的数据访问性能,适合海量非结构化数据
  • 可以支持多种存储功能,如块存储、文件存储和对象存储,实现统一的数据平台 ;
  • 可以利用标准化硬件和开源软件,降低存储成本和运维复杂度 ;

但是,分布式存储也有一些局限性,例如:

  • 数据访问延迟相对较高,不适合对低延迟有严格要求的场景 ;
  • 数据保护机制相对复杂,需要使用多副本或纠删码等技术;
  • 系统架构相对复杂,需要考虑数据一致性、容错性、负载均衡等问题 ;

因此,如果应用场景是核心数据库、高IOPS、低延时、强一致性等要求,那么集中式存储可能更适合;如果应用场景是云平台、大数据分析等海量数据需求,那么分布式存储可能更适合。

四、 实际使用中数据库的架构选择、数据库容器的存储规模选择建议

1、 数据库的架构选择

业务刚开始我们只用单机数据库就够了,但随着业务增长,数据规模和用户规模上升,这个时候数据库会面临IO瓶颈、存储瓶颈、可用性、安全性问题。因此规划数据库IO时首先要了解我们的业务情况,选择合适的数据库架构,从源头上解决IO瓶颈。

2、 数据库容器的存储规模选择建议

(1) 考虑存储的安全和生命周期

目前生产存储的生命周期一般为五年,根据用户的实际情况及业务类型建议使用过程中尽量规划多套存储,每套存储的功能要求要根据未来多中心部署要求的数据同步能力进行确定,满足三年的容量需求,保证底层存储的安全和故障域的范围。

(2) 数据库部署密度不宜过大

生产环境业务对数据库的响应要求极高,单计算节点规划的数据库数量过大,在资源设置时如何应对峰值、如何兼顾业务的等级特性,都需要较长时间的摸索,因此为了保证生产环境的安全,在部署上优先选择中小型数据库部署开始探索,结合监控指标逐渐加量,资源冗余度建议保持在40%以上来应对峰值和后续业务增长压力。

参考内容:
赋能活动——金融行业数据库容器化中如何保证性能及设计高可用架构?
社区文章——《企业容器云持久化存储选型探讨》
社区问答——金融行业传统数据库一般如何解决io需求?

欢迎各领域的IT技术专家,踊跃加入社区专业委员会,与委员会同行专家们共同协作,沉淀自身经验,向行业输出更多实践参考标准! 具体详情可添加社区管理员微信了解详情:twthenglong

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

相关文章

相关问题

相关资料

X社区推广