less than 1 minute read

LineFS: Efficient SmartNIC Offload of a Distributed File System with Pipeline Parallelism

总结

针对基于PM的分布式文件系统中的高CPU和网络资源竞争问题,提出将部分操作卸载到SmartNIC中,并设计相应的流水,从而加速PM持久化和链式副本更新的性能。此外,还保证了host崩溃时的数据一致性,以及SmartNIC故障时的节点转移。

背景及问题分析

PM能够极大地减少持久化存储设备的访问延迟,但是目前基于client-server的分布式文件系统,如ceph并不能充分发挥PM的设备优势。目前最新的基于PM的分布式文件系统Assise采用client-local方式,在客户端放置PM,减少对server端的数据访问,从而大幅提升性能。但是该种文件系统设计方式会带来更严重的CPU和网络资源竞争,因为文件系统的数据管理将和应用线程竞争资源。

图 1

图 1. client-local分布式文件系统中的资源竞争

由于文件系统本身和应用线程会竞争客户端的主机资源,对于文件系统而言,其资源主要可分为以下几部分: (1)数据移动及索引开销。 (2)数据副本复制,以保证高可用性。 (3)本节点中的数据无法从local PM中获取,需要访问远端节点。 (4)数据一致性保障。

面临的挑战:(1)资源竞争带来的性能不可预测;(2)尾延迟;(3)带宽大幅下降。

对于SmartNIC而言,其本身的计算能力相较于主机端CPU是有限的,其存在以下限制:(1)DDR带宽有限,且PCIe数据传输较慢;(2)计算核数量有限,核心频率较低,导致计算处理速度有限。因此,不可直接将操作卸载到SmartNIC中,否则会导致严重的性能下降,因此本文的工作重心则是设计相应的数据流水,从而实现操作并行,并对操作进行拆分,将部分操作卸载到SmartNIC中,以提升带宽,降低尾延迟。

设计

图2给出了LineFS的整体架构,其采用Assise分布式文件系统,将其中的持久化和链式副本进行拆分和流水化,并将子操作卸载到SmartNIC中。LineFS节点包含LibFS和NICFS,其中LibFS运行于主机端,NICFS运行于SmartNIC.LineFS沿用了Assise中的设计,采用lease作为一致性保障机制,并采用ZooKeeper对集群进行管理。

图 2

图 2. LineFS整体架构

1.DFS中的操作流水化

主要包括两类操作,数据的持久化(Publishing)以及链式副本(Chained-Replication)。 图3给出了publish过程的流水操作,其中分为了四个子操作,fetching——即通过RDMA将client中的PM log数据读取到SmartNIC中;Validation——通过对读取的数据,借助lease来对文件的数据,元数据,一致性等信息进行验证,此过程中的数据访问通过PCIe;Publication——主机端采用DMA将log中的数据拷贝至PM区域;ACK——SmartNIC向host发送ack信号。其中对于log数据的fetch,以chunk为粒度,将数据合并为一个chunk之后再进行传输。同时,不同chunk之间的操作需要保证数据约束。

图 3

图 3. Publish流水操作

图4给出了replication的流水操作,其中分为四个子操作,Fetching和Validation和publish过程类似,且可以复用。对于transfer,通过RDMA将数据链式传输至下一个副本,同时,传输的数据可压缩。完成之后,返回ack。

图 4

图 4. Replication流水操作

2.共享文件管理

通过lease来保证共享文件的访问控制,其中cluster manager将lease授权给SmartNIC,LibFS通过NICFS获取lease信息(PCIe)。此外,NICFS仅在SmartNIC内存中更改lease状态,并异步lease的持久化和副本,而此时应用程序还是采用之前授权的lease。这并不会影响一致性,因为在调用 fsync() 时 NICFS 会等待所有lease被保留和复制。

3.可用性

主要的错误为软件错误,即主机端OS崩溃,此时SmartNIC接管相应的任务。为了检测主机端错误,NICFS持续监测主机端kernel worker线程,如果kernel worker无心跳反馈,表明该主机端崩溃,从而转换到隔离的SmartNIC中执行相应操作,通过PCIe和RDMA访问local和remote的PM。当检测到kernel worker时,表明主机端以恢复,从而继续之前的操作。

测试

测试采用了3个节点,主机端CPU有48核,96GB DRAM和768GB PM,SmartNIC选用Mellanox BlueField MBF1M332A,每个SmartNIC有16个ARMv8 A72 cores,每个核L3缓存为6MB,16 GB DRAM和25Gbps RDMA网络。SmartNIC的内存带宽为10 GB/s,网络带宽为2.2 GB/s。

图 5

图 5.写带宽测试

图 6

图 6.读带宽测试

图 7

图 7.Publish和Replication子操作延迟分解

图 8

图 8.延迟测试

评价&思考

优点

1.首个针对基于PM的DFS进行硬件卸载加速的工作。

2.方案有效。

3.实验做了很多,比较扎实

缺点

1.主要针对写操作进行优化,读操作没有进行硬件卸载。

2.针对于无法进行后台操作的应用,没有较大的性能优势。如varmail负载,每个小文件的更新之后都调用fsync()。