menglunyang
作者menglunyang课题专家组·2023-07-04 11:37
系统工程师·中国银行

企业容器云持久化存储选型探讨

字数 4442阅读 937评论 0赞 1

企业容器云持久化存储选型的重要性包括以下几个方面:
• 可以提高应用的可移植性和灵活性,支持容器在不同节点和环境中动态地启动、停止、伸缩或迁移。
• 可以提高应用的性能和可靠性,支持多租户和多并发的访问,以及智能感知热点和故障的自动迁移和恢复。
• 可以提高开发人员的工作效率,支持快速迭代和部署应用,以及利用快照或克隆等数据服务进行测试和编辑。
• 可以提高存储资源的利用率和管理简便性,支持自动弹缩、策略管理、SaaS式用户体验等特点。

围绕上述方面twt社区对以下几个问题进行了交流总结:

Q:容器存储有哪些方式,生产环境建议使用哪种?

A:主要有三种:内部存储、宿主机本地磁盘存储、远程卷存储。
内部存储在容器启动时自动生成,作为容器的读写层会在容器销毁时自动销毁,类似于主机的内存,在主机宕机时内存数据消失,建议不要在生产环境中使用,此方案仅为快速测试使用。
宿主机本地磁盘存储可以理解为容器数据存储在宿主机本地,创建简单,无需增加额外资源,缺点时无法在不同节点间漂移,不建议在生产环境使用,可以在开发环境使用节约资源。
远程卷存储类似于SAN存储,推荐用于生产环境,可以使存储在不同节点漂移,使生产环境具备高可靠性,分布式存储卷包括Ceph、GlusterFS等。

Q:容器存储选择分布式存储还是集中式存储?

A:容器存储选择分布式存储还是集中式存储,需要根据具体的应用场景和需求来决定。一般来说,分布式存储相比集中式存储,具有以下优势:
• 可以实现存储资源的弹性扩展和动态调度,适合云原生和容器化应用
• 可以提供高并发和高吞吐的数据访问性能,适合海量非结构化数据
• 可以支持多种存储功能,如块存储、文件存储和对象存储,实现统一的数据平台
• 可以利用标准化硬件和开源软件,降低存储成本和运维复杂度
但是,分布式存储也有一些局限性,例如:
• 数据访问延迟相对较高,不适合对低延迟有严格要求的场景
• 数据保护机制相对复杂,需要使用多副本或纠删码等技术
• 系统架构相对复杂,需要考虑数据一致性、容错性、负载均衡等问题
因此,如果应用场景是核心数据库、高IOPS、低延时、强一致性等要求,那么集中式存储可能更适合;如果应用场景是云平台、大数据分析、视频媒资、医疗影像等海量数据需求,那么分布式存储可能更适合。

Q:容器存储如何满足中小企业的应用场景和大企业的应用场景?

A:容器存储满足中小企业的应用场景和大企业的应用场景区别,主要取决于容器存储的性能、成本、可靠性、易用性和兼容性等方面。一般来说,小企业的应用场景相对简单,对容器存储的要求也相对较低,而大企业的应用场景往往更复杂,对容器存储的要求也更高。
中小企业的应用场景可能包括:
• 虚拟化/云资源池:使用容器技术实现服务器资源的虚拟化和池化,提高资源利用率和运维效率
• 桌面云:使用容器技术实现桌面虚拟化,提供安全、便捷、高效的桌面服务
• 分支机构:使用容器技术实现分支机构的快速部署和管理,降低网络延迟和成本
• 智慧园区:使用容器技术实现智慧园区的数字化管理和服务,提升园区的安全、舒适和效率
中小企业的应用场景对容器存储的要求可能包括:
• 低成本:使用标准化硬件和开源软件,降低存储采购和运维成本
• 易部署:使用超融合基础设施(HCI),实现存储、计算、网络的一体化部署和管理
• 易扩展:使用分布式架构,实现存储资源的弹性扩展和动态调度
• 易共享:使用多种存储功能,如块存储、文件存储和对象存储,实现数据的统一管理和共享
大企业的应用场景可能包括:
• 大数据分析:使用容器技术实现大数据平台的快速搭建和运行,提供海量数据的收集、处理、分析和展示服务
• 高性能计算(HPC):使用容器技术实现高性能计算平台的高效调度和运行,提供高并发、高吞吐、高精度的计算服务
• 视频/内容存储/备份归档:使用容器技术实现视频/内容存储/备份归档平台的高可靠和高效率,提供海量非结构化数据的存储、保护和访问服务
• 云原生/容器/超融合等:使用容器技术实现云原生/容器/超融合平台的灵活部署和运维,提供多样化、开放化、微服务化的应用服务
大企业的应用场景对容器存储的要求可能包括:
• 高性能:使用全闪存或混合闪存存储,提供高IOPS、低延迟、高吞吐的数据访问性能
• 高可靠:使用多副本或纠删码等数据保护机制,提供高可用、高可靠、高安全的数据保障
• 高兼容:使用标准接口协议,如SCSI/iSCSI、CIFS/NFS、S3等,提供与主流容器管理平台(如Kubernetes、Openshift等)的兼容性
• 高智能:使用智能管理引擎和云端智能运维平台,提供智能风险预测、智能调优、智能诊断等功能

Q:有哪些容器存储的产品以及他们的优缺点?

A:容器存储的产品有很多,不同的产品有不同的优缺点,这里我只列举一些比较常见的产品和它们的特点。
• Ceph:Ceph是一个开源的分布式文件系统,支持块存储、文件存储和对象存储。Ceph的优点是可以利用标准化硬件和开源软件,实现存储资源的弹性扩展和动态调度,提供高并发和高吞吐的数据访问性能,支持多种存储功能,实现统一的数据平台。Ceph的缺点是数据访问延迟相对较高,不适合对低延迟有严格要求的场景,数据保护机制相对复杂,需要使用多副本或纠删码等技术,系统架构相对复杂,需要考虑数据一致性、容错性、负载均衡等问题。
• Longhorn:Longhorn是一个开源的容器原生存储项目,基于微服务架构,为容器提供分布式块存储服务。Longhorn的优点是可以轻松地与Kubernetes集成,实现存储资源按需发放,简单易用,资源高效调度,海量容器应用批量部署效率提升。Longhorn的缺点是目前还处于初级阶段,功能和稳定性还有待完善,目前只支持块存储功能,不支持文件存储和对象存储功能。
• OpenEBS:OpenEBS是一个开源的容器原生存储项目,为容器提供动态、分布式、持久化和可扩展的块存储服务。OpenEBS的优点是可以与Kubernetes无缝集成,实现容器级别的数据管理和保护,支持多种底层存储引擎(如Ceph、Jiva等),提供灵活的选择和优化。OpenEBS的缺点是目前还处于发展阶段,功能和稳定性还有待提高,目前只支持块存储功能,不支持文件存储和对象存储功能。
• Rook:Rook是一个开源的云原生存储编排项目,为Kubernetes提供分布式文件系统、块存储和对象存储服务。Rook的优点是可以将多种开源存储项目(如Ceph、Minio等)作为后端插件集成到Kubernetes中,实现统一的管理和调度,提供多样化的存储功能和服务。Rook的缺点是目前还处于发展阶段,功能和稳定性还有待提高,依赖于后端插件的性能和可靠性。
• Portworx:Portworx是一个商业化的容器原生存储产品,为容器提供高性能、高可靠、高安全的分布式块存储服务。Portworx的优点是可以与Kubernetes深度集成,实现容器级别的数据管理和保护,支持多种云平台和本地服务器上运行,提供灵活性和可移植性。Portworx的缺点是需要付费使用,并且目前只支持块存储功能,不支持文件存储和对象存储功能。
• NAS:优点:支持多节点共享访问,实现容器应用高可用。支持文件的随机读写和在线修改,兼容现有的文件系统接口。支持存储容量和性能的弹性扩展,适配容器的弹性能力。支持文件级别的授权和元数据管理,提高数据的安全性和可管理性。缺点:访问时延相对较高,不适合对时延敏感的应用场景。存储成本相对较高,不适合存储大量写入后较少修改的数据。

Q:容器云持久化存储的需求要考虑那些方面?

A:容器云是基于容器技术和云计算技术构建的云平台,为用户提供容器化应用的部署、运行和管理服务。容器云持久化存储是指为容器云中的有状态应用提供数据的持久保存和访问服务,保证应用的数据安全和可靠性。容器云持久化存储的需求主要包括以下几点:
• 支持多种存储类型,如块存储、文件存储和对象存储,满足不同应用的数据格式和访问方式的需求。
• 支持多种存储协议,如SCSI/iSCSI、CIFS/NFS、S3等,满足不同应用的数据接口和兼容性的需求。
• 支持多种存储功能,如快照、备份、恢复、克隆、迁移等,满足不同应用的数据保护和管理的需求。
• 支持多种存储服务级别,如性能、可靠性、安全性等,满足不同应用的数据质量和服务保障的需求。
在考虑容器云持久化存储时,最重要时要考虑容器平台的自身存储以及业务数据的持久化存储。
容器平台由于自身有很多组件,例如etc组件存储了容器中的大量元数据,在考虑持久化存储要保证重要组件数据不能丢失损坏,具备高可靠性,确保安全合规的访问数据,初次使用镜像仓库也是容器平台的一部分功能,由于镜像仓库只是用于保存打包好的容器镜像,针对它的使用场景可以重点考虑空间要求,对性能要求不高。
业务数据的持久化存储包括应用业务的文件、日志等,部分支持应用的中间件产生的日志及数据也需要关注性能和容量要求,如Kafka、mysql等需要持久化的存储支持来部署并保存数据。通常nas、分布式块存储、分布式文件存储等是容器平台的首选。

Q:容器云持久化存储的架构分成那几个层次?

A:容器云持久化存储的架构主要包括以下几个层次:
• 存储资源层:是指提供物理或虚拟的存储资源,如磁盘、阵列、SAN、NAS等,为上层提供基础的存储能力。
• 存储服务层:是指提供逻辑或软件定义的存储服务,如分布式文件系统、对象存储系统等,为上层提供高级的存储功能。
• 存储接口层:是指提供标准或定制的存储接口,如CSI(容器存储接口)、FlexVolume等,为上层提供统一的存储访问方式。

Q:容器云持久化存储方案设计中要考虑的难点有哪些?

A:容器云持久化存储的难点主要包括以下几点:
• 数据一致性:由于容器云中的应用可能会在不同节点上动态调度和迁移,需要保证数据在不同节点上的一致性和可见性,避免数据丢失或冲突。
• 数据可移植性:由于容器云中的应用可能会在不同平台或环境上运行,需要保证数据在不同平台或环境上的可移植性和兼容性,避免数据损坏或不可用。
• 数据可扩展性:由于容器云中的应用可能会根据负载变化而动态扩缩容,需要保证数据在不同规模或范围上的可扩展性和弹性,避免数据瓶颈或浪费。
• 数据可管理性:由于容器云中的应用可能会涉及多种类型或来源的数据,需要保证数据在不同维度或角度上的可管理性和可监控性,避免数据混乱或异常。

将容器化的应用需要保留的数据存储在容器外部的数据卷中,以避免容器销毁时数据丢失的问题。随着容器被应用的越来越广泛,云原生成为助力企业全面拥抱云计算的最佳捷径,同时对容器存储提出了更高的要求:一贯的稳定性、极高的性能,严格的网络安全隔离性、无限制的横向扩展能力以及智能灵活的弹缩能力。

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

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广