背景:
2017年发布Linux 7.4以来就包含了对NFSv4.2的支持,2019年8月,随着RHEL 7.7和其他标准Linux发⾏版引入带有Flex Files的pNFS v4.2
Linux已是世界上部署量最多的服务器操作系统,包括:麒麟,欧拉,TencentOS, Alibaba Cloud Linux等等
现状 :
- 急需通过统一命名空间,跨多云、多数据中心或本地存储系统提供一致的文件访问体验
- 用户或应用无需关心数据的实际存储位置,可以无缝访问和管理
- 高性能需求已成为主流(AI/ML/渲染/量化)
- 世界正转向软件定义的商品化基础架构设施
- Linux无处不在,其本身就是一个基于标准的开源高性能客户端(非私有第三方)
因此:
- NFSv4.2使用pNFS和灵活文件布局已解决上述问题
- NFSv4.2实现单一命名空间下跨存储孤岛、数据中心和云的文件访问
- NFSv4.2无需安装私有客户端和管理工具即可实现并行文件系统架构
- NFSv4.2实现避免重写应用程序即可使用对象存储
关于并行NFS和灵活文件布局类型(pNFS和Flex Files)
pNFS于2010年作为NFS v4.1中的可选功能引入,并在后来的RFC中进行了增强。pNFS定义了一种NFS架构,其中元数据和数据路径是分开的,一旦元数据服务器授予访问权限,客户端将获得并行直接与存储通信的能力。
为使pNFS更加开放,并为共享存储添加新功能,Hammerspace在2018年设计了Flex Files布局类型,如IETF RFC 8435所述。在Flex Files布局中,NFSv3或更高版本被用作存储协议。这意味着现在可以使用pNFS元数据服务器加上NFS存储或服务器的任意组合来创建高性能并行NAS系统。
NFS v4.2中的其他增强和修复包括:
- 使用复合操作(与序列化)以及缓存和委托(包括客户端时间戳生成)消除过多的协议聊天,消除了前往服务器的需要。这些增强功能消除了80%的NFSv3的GETATTR流量(用于获取文件或目录的属性信息)
- 客户端和服务器之间的多个并行网络连接,包括对RDMA的可选支持,以避免TCP堆栈性能限制
- 能够使用条带或镜像同步写入多个存储节点,从不可靠的存储节点构建高度可靠、高可用的系统,并在多个后端NFS v3存储节点之间分发单个文件访问权限
- 能够在访问数据时不间断地移动数据(类似vMotion)
- 文件粒度访问和性能预测报告
- 能够通过NFS提供SMB服务,通过NFS协议映射Active Directory主体和ACL。
还添加了早期NFS版本所不具备的一些常见本地文件系统功能:
- 服务器端克隆和复制
- 应用程序 I/O 建议
- 稀疏文件和空间预留
- 应用程序数据块支持
- NFS标签
- 布局增强
这些增强功能都很棒,但要利用它们不仅需要元数据服务器,还需要了解 pNFS和NFS v4.2客户端。值得庆幸的是,只有一个客户端很重要,那就是Linux自带的NFS客户端!Hammerspace首席技术官Trond Myklebust担任NFS客户端的Linux内核维护者超过20年。他与社区合作,确保在NFS新功能出现时为它们提供强大的支持。例如,自2017年发布RHEL 7.4版本以来,就已包含对NFSv4.2的支持。
回顾当前存储业界读取一个数据的“跳数”(hops)
DAS - SSD直连存储
RAID控制器一直是个瓶颈
DAS - NVMe直连存储
NVMe(Fusion-IO)的出现消灭了RAID控制器
DAS - NVMe遇上GPU Direct
NVIDIA引入GPU Direct后“跳数”降至1个,但在传统NAS中如何?
传统NAS (如:NetApp, Dell Powerscale/Isilon, Pure, Ceph)
传统NAS存储需要疯狂的9个“跳数”
次传统NAS (使用NVMEoF, 如:VAST, Weka)
为再次提升效率,业界引入NVMEoF,“跳数”从9个降至8个
Hyperscale NAS 架构(使用Linux原生NFSv4.2, 如:Hammerspace)
NFSv4.2没有瓶颈,实现元数据旁路后,不需要NVMEoF,“跳数”从9个降至4个
Hyperscale NAS 架构(使用Linux原生NFSv4.2, 启用Tier 0技术,如:Hammerspace)
比高速网络更好的唯一方法就是没有网络,1个“跳数” 使GPU直接访问存储
Hyperscale NAS (使用Linux原生NFSv4.2和NFS-eSSD)
元数据旁路后,再将文件偏移到块的映射下放至SSD,只剩一层映射。
设想一个新存储形态:搭载SOC,Linux NFS客户端使用原生纠删技术将数据写入大量SSD磁盘,最后该存储通过以太网接入。
NFS-eSSD优势:
- 低延迟
- 功耗更低
- 降低运营(和资本)成本
- 较低的写入放大
- 在不牺牲性能下增加密度
- 更高接入存储密度
- 更好的可靠性、可用性和可服务性
- 更大的弹性扩展范围
- 大规模(实现超大规模,上万个存储节点)
- 小规模(办公/家用,配上USB-C接口即可,因为其速率已达10Gbps)
9. 实现计算存储
- 在了解文件布局后,压缩,重复数据删除,加密,擦除编码,复制/克隆,过滤,搜索,映射等等这些功能都可以卸载到SSD。
为什么是现在?
- AI/ML/渲染/量化场景下对性能的极致追求
- 数据治理/云计算资源需要调度编排
- PCIe/以太网组合下可以轻松满足闪存性能
- 通过E1.S或其他形态展现(主要是密度和功耗)
- 64位处理器和IP网络普及
- 处理器性能密度完全胜任
- IPv6, RoCE
- 嵌入式Linux
- 高性能、轻量级文件系统(XFS)
- 高性能、轻量级NFS服务器(kNFSd)
- 业界标准化带有灵活文件(Flexible Files)的并行NFSv4.2出现