雨果的书房|Kubernetes永久卷:分开计算和存储

_本文原题为:Kubernetes永久卷:分开计算和存储
导语:Kubernetes文档指出“管理存储与管理计算实例是一个明显的问题” 。 这概括了现代数据中心设计的基本原则 , 即从规划和部署角度出发 , 最好将计算和存储分开考虑 。
在Kubernetes中 , 通过诸如容器存储接口(CSI)之类的子系统 , 计算和存储的逻辑分离已变得越来越形式化 。 在本文中 , 我认为计算和存储的物理分离可带来更高的经济效益和更高效的运营 。 因此 , 与Kubernetes一起使用是一种强大的策略 。
雨果的书房|Kubernetes永久卷:分开计算和存储
文章图片
计算机存储本身只是一项技术 。 与其考虑存储 , 不如考虑数据及其用途 。 人们通常认为正确性是正确的 , 但是研究表明 , 在现实世界的系统中不应将正确性视为理所当然 。 一致性在某些应用程序中至关重要 , 但对于大多数数据中心数据使用而言 , 一致性通常会放宽 。 可用性和性能(访问数据并足够快地检索数据的能力)通常是存储系统需求的重点 , 其次是可恢复性 。 持久性通常包含在可恢复性下 , 并假设现实世界的系统最终会失败 , 并且必须实施一种方案来恢复丢失的数据 。
今天 , 访问数据的性能通常与存储介质本身有关 。 HDD用于纯顺序流访问 , 而SSD用于随机I/O工作负载 。 但这是一个过分的简化 , 因为固态存储的其他特性(例如低功率占用量 , 密度和对物理冲击的抵抗力(耐用性)再加上更高的性能 , 已使其在移动应用中无处不在 。 但是 , 从数据中心的数据存储角度来看 , HDD和SSD仍在使用中-当部署纯顺序工作负载时 , HDD通常更具成本效益 。
传统的企业应用程序已假定 , 如果您要存储数据 , 那么它应该始终可用 。 这导致了冗余 , 镜像和擦除编码技术 , 可以防止常见的组件故障(风扇或机箱中的机械故障 , 介质故障等) 。 虽然企业存储侧重于设计较小的高度调试的平台(设备-考虑10个控制器) , 这些平台侧重于对应用程序透明的数据可用性技术 , 但现代的横向扩展 , 数据密集型应用程序将存储堆栈直接合并到应用程序中并通常使用三重副本配置以提高可用性 。
【雨果的书房|Kubernetes永久卷:分开计算和存储】与考虑擦除性能要求的采用擦除编码的工程存储系统相比 , 行业标准(即商品)存储介质和存储模块的经济性更倾向于采用三重副本方法 。 而且应用程序存储部署的规模(考虑到1 , 000个控制器)导致了实现机架故障语义的战略 , 并通过添加更多计算和存储来简单地提高性能或容量 。 但是从某种意义上说 , 这是没有意义的 , 因为当今企业中更常见的数据不可用的原因是计划在应用程序升级 , 网络和基础架构升级以及技术更新的停机时间 。
如今 , 数据中心架构师可用来提高可用性的最大杠杆是通过无处不在的高速以太网网络将计算和存储分离到单独管理的层中 。 通过这种方法不仅可以解决可用性问题 , 而且可以通过提高经济效益和潜在地提高可操作性获得收益 。 分离计算和存储所带来的好处有几个:通过在服务器“故障”的情况下消除重建/恢复来减少停机时间-只需将存储重新连接到新节点即可 。 通过部署较少数量的优化瘦客户端计算节点优化配置来消除SKU扩散 。 通过优化存储层的密度 , 形状因数和填充量 , 降低每插槽媒体的开销成本 。 最后 , 通过解耦生命周期 , 更快地在计算和存储层中采用新技术 。
Kubernetes已经发展为支持称为容器存储接口(CSI)的灵活存储接口 , 该接口允许任何存储提供商通过定义明确的接口提供服务 。 CSI不赞成使用以前的树内存储提供程序方法 , 并向各种存储部署方法开放了Kubernetes 。
CSI提供程序接口为Kubernetes定义了一个动态存储模型 。 在许多方面 , CSI接口鼓励供应商为现有存储解决方案定义新接口 , 以在Kubernetes的控制下按需动态分配持久性存储卷 。 CSI甚至将功能扩展到了传统企业存储解决方案 。 CSI抽象提供了对计算和存储的必要和有益的分离 , 该分离支持上述物理分离方法 。 CSI还允许专注于“网络存储”网络方面的更新的网络存储方法为Kubernetes提供健壮的解决方案 , 该解决方案更适合于Web规模数据应用程序的存储配置 。