关键要点 1. 云原生存储面临挑战,需要解决成本和性能问题。
2. 存储硬件有不同物理特性,需有效管理。
3. ZNS SSDs可以解决传统SSD的问题,并提供更高的性能和容量。
4. Linux支持Zoned Storage生态系统成熟,多个发行版和工具库都已支持。
云原生存储当前现况 • 云服务提供商(CSPs)面临着大量数据和客户对成本效益存储及高性能的不断增长的需求。• 测量指标:IOPS/TB、GB/$、TB/机架 • 为了解决这些挑战,CSPs 提供软件定义的存储解决方案,通过将数据作为服务来实现多个存储层,以提供适当的好处。 面临的挑战 存储层具有固有的物理特性,如果要在云中使用,就需要有效管理,区分性能层和容量层。
基于闪存的SSD(性能层):
• 存储介质(TLC/QLC)、WAF、DRAM、OP → 成本(GB/$) • 相比HDD相对昂贵。传统SSD的特性使其表现出:• 写放大效应影响寿命、性能和总体成本。 • 典型开销包括2倍成本(CacheLib文献)和3-4倍减少寿命(rw工作负载*),减少寿命(在5-7年内使用QLC)。 • 单设备带宽惩罚 - 多租户设置。 → ZNS SSD解决了这些问题,同时保持高性能。
HDD(容量层):
• 转速、执行器数量和盘片数量 → 成本和每GB的吞吐量(IOPS/GB和GB/$) • 大规模HDD部署(受电力和空间限制)通过使用SMR技术 得到改善(22TB对比26TB)。 SMR(Shingled Magnetic Recording)是一种机械硬盘(HDD)技术,通过重叠写入轨道以提高数据存储密度。与传统的PMR(Perpendicular Magnetic Recording)技术相比,SMR允许在相同的盘面上存储更多的数据,但这也意味着写入性能可能受到影响,因为重叠的轨道在更新时可能需要重新写入相邻轨道。
SMR适用于以写入为主、读取较少的应用场景,如数据归档和备份。主要厂商如西部数据、希捷和东芝等都在其产品中采用SMR技术,以满足对高容量存储的需求。各厂商在SMR实现上可能有不同的优化措施,影响性能和可靠性。
区域存储的好处 • SMR HDD(叠加磁记录硬盘)提供比传统的CMR HDD(常规磁记录硬盘)多18%的存储容量,最新的26TB SMR HDD表现尤为突出。 • 支持分区命名空间(Zoned Namespace)的SSD在写入密集型工作负载中可提供3-4倍的性能,容量提高7-28%,并能使用QLC(四层单元)存储技术。 • 主要应用于超大规模数据中心和大型存储集群(SMR HDD和ZNS SSD)。 • 利用支持分区命名空间和SMR HDD的SSD,软件需要相应的支持。 支持区域存储的Linux生态
自2016年以来的官方Linux®支持
• 从内核版本4.10开始支持Zoned API(2017年2月) • 在内核版本5.9中添加ZNS支持(2020年10月) • UFS支持将在标准化后提供(约2023年) 5个以上支持Zoned Storage的Linux®发行版
• RHEL 9+、CentOS 7+、Fedora 33+、Debian 11+和Ubuntu 21.04+ 两个支持Zoned Storage的文件系统
• f2fs(客户端 - UFS)和btrfs(企业 - ZNS/SMR) 库/工具支持
• libzbd、libnvme、SPDK、fio、qemu、blkzone、blktests等 更广泛的启用
• 云编排、数据库、分布式存储、数据库、缓存、通用存储 成熟、稳健,并被一些最大的存储消费者广泛使用
由 Longhorn 发起的云原生区域存储
• Longhorn 是一种持久的分布式存储系统,没有单点故障• 复制品通过文件系统抽象访问 SSD • 容器以 POSIX 兼容的文件系统作为 Kubernetes 卷,或选择常规块设备 • 必要的变更• 利用 BTRFS 中对区域存储的原生支持 • 多年的启用工作现在使得集成变得简单 • 开箱即用,配置最小 • OpenEBS - Mayastor(用Rust编写)类似于Longhorn,是一种持久的高可用容器附加存储(CAS)解决方案。 • 利用SPDK → 避免与节点正常运行相关的存储内核模块。 • 正在进行的工作:修复Mayastor I/O路径,以原生处理ZNS NVMe块设备 → 第一个提议的副本因子为1。 • 区域复制的有趣挑战:• 在副本之间保持区域写指针同步。 • I/O错误发生时会怎样? • CSI驱动程序消费者将通过NVMe-oF接收一个区域块设备。 • 云存储加速层(CSAL)正在开发区域存储支持,可以通过spdk-csi驱动程序或Mayastor作为CAS进行部署。• 实现了一个缓存和转换层,将区域存储转变为传统存储。 • CSAL使用传统(高性能)块设备来处理元数据,并顺序写入ZNS SSD,从而隐藏ZNS的顺序写入限制。 • 作为NVMe-oF目标暴露为传统块设备。 • 4个节点(一个控制节点和三个工作节点)• 工作节点1 • 工作节点2• Longhorn - 暴露一个由Ultrastar® DC ZN540 SSD支持的通用文件系统/块设备 • Mayastor - 将Ultrastar® DC ZN540 SSD原生暴露给一个容器 • 工作节点3• SPDK CSAL - 使用Ultrastar® DC ZN540作为存储后端,暴露一个基于NVMe-oF的通用块设备 简要说明下作者的测试意图:
1. 基于K8s启动一个pod,同时挂载 mayastor 和spdk-csi 支持的区域存储; 2. 在pod内使用命令查看盘符情况,并运行fio测试; • Linux® 区域存储生态系统持续成熟• BTRFS、Longhorn、Ceph、OpenEBS - Mayastor、CSAL,端到端区域应用 • 由 Kubernetes 协调的工作负载现在能够无缝受益于区域存储设备,作为具有成本效益和高性能的存储 • 部署和使用区域存储在规模上不再需要软件堆栈的更改 总结 1. Zoned Storage技术的引入 :随着数据量激增和对低成本高性能存储的需求增加,云服务提供商(CSPs)面临挑战,传统存储解决方案已无法满足需求,Zoned Storage技术应运而生以优化云存储。 2. 性能与成本优势 :Zoned Storage技术通过软件定义的多级存储,提高了存储性能并降低了成本,使云应用能够高效利用存储资源,而无需对现有软件栈做重大调整。 3. 项目与生态系统整合 :实现Zoned Storage的项目如Longhorn、Mayastor和SPDK CSAL,致力于提供灵活高效的云存储解决方案,并与Linux生态系统紧密集成。 ---【本文完】---