解决云中容器数据存储的移动性挑战?
这两个平台都使用基于块的存储来为容器数据提供持久性。最初,假定容器是无状态的,就需要使用应用程序复制和冗余来维护对持久数据的访问。但这被证明是不切实际的,而且大家都认为我们需要某种形式的持久性存储,即使是对于短期存在的容器也是如此。 块存储速度快,为应用程序提供低延迟。在容器部署中,块存储设备使用本地文件系统进行格式化并映射到容器中。根据使用要求,块存储设备可以在容器的生命周期内继续使用,或者仅在容器运行时使用。 如果容器中的应用程序任务是可重新启动的,那么块存储只需为容器数据提供可伸缩的快速存储。通过可重新启动,意味着应用程序组件可以用新格式化的空块设备进行实例化。 然而,当我们走出这些简单的界限时,存储必须提供更多能力。例如,如果一个容器由于硬件或软件故障而需要重新启动,那么在现有块存储设备上重用数据可能是可行的,而不是从另一个源重新创建数据。如果应用程序的一部分必须移动到另一个物理位置,那么容器数据可能也必须移动。 构建一个数据平面框架 为了实现数据和应用程序迁移,我们需要为数据平面构建一个框架。基于此,数据将比任何单独的容器寿命更长,并且需要跨多个数据中心和位置移动,这意味着可能还需要在公有云和本地位置之间移动。一个很好的例子是,需要将数据复制到公有云中,从而为测试/开发环境提供原料。 对象存储是构建数据框架的多种方法之一。它本质上是可移动的,可以通过使用http(s)协议的广域网进行访问。对象存储提供了跨距离复制的能力,并且可以轻松地跨平台工作。对象存储的主要挑战是如何实现良好的安全性,并将数据映射到应用程序层次结构,例如,使用bucket和文件夹映射到应用程序名称。 将块和文件存储添加到容器框架更加复杂。与文件存储相比,块存储具有更低的延迟和更大的吞吐量,但现在情况已经不同了。使用诸如NVMe这样的新型媒介,初创公司正在构建高性能、可伸缩的文件系统,这些系统既可以在场所中工作,也可以在公有云中工作。
本地块存储(如AWS的弹性计算云)的另一个挑战是,这些设备只能连接到本地容器或虚拟实例。没有直接的方法将公有云中的块存储复制到不同的提供商或本地位置中。 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |