数据存储的技术有_ 如何解决云中容器数据存储的移动性挑战?

目前,越来越多的IT组织在云计算领域帮助云和多云混合环境的运营。 从容器的角度看,容器应用程序从一开始就内置了非常高的移动性、灵活性和效率。 但是,对于容器数据,如何构建数据框架以优化公共云并为容器应用程序及其数据提供真正的移动性?

数据存储的技术有

容器和块存储

容器流行的原因大部分来自Docker公司,该公司在容器运行时向我们介绍了应用程序库、多节点(服务器)结构。 很快,Docker就嵌入到了kuberetes-google的开源容器平台中。

这两个平台都使用基于块的存储来提供容器数据的持久性。 首先,假设容器是无状态的,则必须使用应用程序复制和冗馀来保持对永久数据的访问。 但是,这被证明是不现实的,短期存在的容器也需要某种形式的持续记忆。

块存储速度快,为应用程序提供低延迟。 在容器放置中,块存储使用本地文件系统进行格式化并映射到容器。 视使用需求而定,区块储存装置只能在容器生命周期或容器执行时使用。

如果容器中的应用程序任务可以重新启动,块存储只会为容器数据提供可扩展、快速的存储。 可重新启动意味着应用程序组件可以由新格式化的空块设备实例化。

但是,如果跨越这些简单的边界,存储需要提供更多的能力。 例如,如果因硬件或软件故障而需要重新启动容器,则在现有块存储设备上可以重用数据,而不能从其他源重新创建数据。 如果某些应用程序需要移动到另一个物理位置,容器数据也需要移动。

构建数据平面框架

要实现数据和应用程序迁移,必须构建数据平面框架。 在此基础上,数据比单个容器长,并且需要在多个数据中心和位置之间移动。 也就是说,您可能需要在公共云和本地站点之间移动。 一个很好的例子是将数据复制到公共云并为测试/开发环境提供配料。

对象存储是构建数据框架的几种方法之一。 本质上是可移动的,并且能够通过使用http(s )协议的广域网来接入。 对象存储提供跨距复制功能,以便于跨平台工作。 对象存储的主要难题是如何提供适当的安全性并将数据映射到应用程序层。 例如,如何使用bucket和文件夹将其映射到应用程序名称。

在容器框架中添加块和文件存储更加复杂。 块存储比文件存储具有更低的延迟和更高的吞吐量,但是现在情况已经改变。 利用NVMe等新媒体,创业公司构建了高性能、可扩展的文件系统。 这些系统无论在场所还是在公共云都可以工作。

本地分区存储(如AWS灵活计算云)的另一个难题是,这些设备只能连接到本地容器或虚拟实例。 无法将公共云的块存储复制到其他提供程序或本地位置。

数据抽象

如果需要数据可移植性,最好构建独立的数据平面,而不依赖于公共云提供商的本地存储。 目前,有些产品提供跨一个或多个地理位置的扩展块和文件存储。 这包括公共云和私有云的集成。

一些扩展产品可以在多个位置显示单个数据视图,也可以使用快照复制数据。 这意味着必须设置适当的流程,以便复制数据并确保跟踪和管理最新副本。 使数据得到广泛利用会导致延迟问题。

API发挥的作用和挑战

生态系统开发人员开始为存储添加API。 Kubernetes提供了一个容器存储接口( CSI ),它提供了一组用于在容器上创建和附着卷的功能。 CSI确保存储正确映射到Pod中可以部署到多台物理服务器的容器。

Docker使用卷插件提供与CSI相同的功能。 然后,用户可以通过存储硬件和软件部署卷驱动程序,以确保数据从存储正确映射到容器。

与容器数据相关的存储、多个容器部署和平台之间的无缝数据迁移仍然面临许多挑战。 例如,AWS Fargate仅支持灵活的云计算外部卷。

大家都在看

相关专题