如何为容器云环境的Kafka集群选择合适持久化存储?

参与3

1同行回答

洪月洪月企业存储产品规划华为
Kafka的存储需求,在功能面是存储的数据是消息流,数据量级非常大;数据CRUD操作足够简单,主要为并发非常高和百万级TPS的追加写、无需更改、能根据消费位移offset和时间戳timestamp查询消息、能定期删除过期的消息;在非功能性面是高性能要求、高可用的稳定性要求、高扩展性要求...显示全部

Kafka的存储需求,在功能面是存储的数据是消息流,数据量级非常大;数据CRUD操作足够简单,主要为并发非常高和百万级TPS的追加写、无需更改、能根据消费位移offset和时间戳timestamp查询消息、能定期删除过期的消息;在非功能性面是高性能要求、高可用的稳定性要求、高扩展性要求。
在存储的选择过程中,服务器本地盘、外置SAN存储和外置NAS存储的主要能力对比如下:
• 性能:服务器本地盘性能较好,但存在故障率高、故障后恢复慢、不同节点容量使用不均衡、容量使用率低、扩容难等问题;而且容器化部署后,使用本地盘会限制POD漂移能力,影响组件的高可用。外置的高性能存储是更好的选择。同时在单副本部署状态下,外置存储的性能明显占优,在可靠性和性能之间达成了完美的平衡。
• 隔离:部署多Kafka集群或者Kafka集群与其他业务集群共享一套存储时需要做数据隔离;NAS在对接K8S平台时具备多租户能力,可以实现多集群共享存储资源池。NAS在隔离性上优于SAN。
• 可靠性:使用外置存储,尤其是共享的NAS存储时,在Kafka集群节点故障后,POD容器漂移后可直接在目的端重新挂载存储,不需要拷贝数据,恢复时长可降低至分钟级别,快速实现故障自动切换。

收起
硬件生产 · 2023-05-12
浏览460

ChatGPT 回答

在容器云环境中,Kafka集群的持久化存储是非常重要的,因为它直接影响到Kafka集群的性能、可靠性和可扩展性。以下是为容器云环境的Kafka集群选择合适持久化存储的建议:

  1. 考虑使用云原生存储解决方案:云原生存储解决方案(如AWS EBS、Azure Disk、Google Persistent Disk等)是为云环境设计的,可以提供高可用性、高性能和可扩展性。这些解决方案可以与Kubernetes等容器编排工具集成,使得管理和扩展Kafka集群变得更加容易。
  2. 考虑使用分布式文件系统:分布式文件系统(如GlusterFS、Ceph等)可以提供高可用性和可扩展性,可以为Kafka集群提供持久化存储。这些解决方案可以与Kubernetes等容器编排工具集成,使得管理和扩展Kafka集群变得更加容易。
  3. 考虑使用本地存储:本地存储可以提供更高的性能,但是缺乏高可用性和可扩展性。因此,如果选择本地存储,需要考虑使用多个节点进行复制和备份,以确保数据的可靠性。
  4. 考虑使用SSD存储:SSD存储可以提供更高的性能,但是价格相对较高。如果对性能有较高要求,可以考虑使用SSD存储。

总之,在选择持久化存储时,需要考虑Kafka集群的性能、可靠性和可扩展性。根据实际需求和预算,选择合适的存储解决方案。同时,需要注意与容器编排工具的集成,以便更好地管理和扩展Kafka集群。

提问者

Andy_wu
存储工程师某大型股份制银行
擅长领域: 存储灾备双活

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2023-05-09
  • 关注会员:2 人
  • 问题浏览:874
  • 最近回答:2023-05-12
  • X社区推广