聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

FAST 15 论文导读(上): CalvinFS、FlashGraph、ANViL

2015-02-27 18:20 浏览: 2434553 次 我要评论(0 条) 字号:

Snip20150227_2

每次 FAST 会议都是存储工业界的盛宴,这次 FAST 15 也跟去年一样,会挑选部分熟悉的领域着重介绍,部分简单介绍衍生,对于不太熟悉的存储领域就不好班门弄斧了。

CalvinFS: Consistent WAN Replication and Scalable Metadata Management for Distributed File Systems

为了应对跨数据中心在 WAN (Wide Area Network) 下工作的分布式文件系统挑战,文章提出了一系列的方法来解决元数据的横向扩展问题。众所周知,分布式文件系统(包括类 POSIX API)非常依赖于元数据的更新,而在目前的众多分布式文件系统设计中,要么是有单点元数据服务器设计,要么就是有严重性能问题的分布式哈希元数据服务存储设计,并且无法应对 WAN 环境下不稳定且高延迟的网络传输情况。CalvinFS 结合 GFS/HDFS 对于数据块的管理方式再加上 Paxos 协议来同步元数据服务器来实现它的设计目标。

比如更新一个新文件: CalvinsFS 的一个 Front-end Server 会先向 Block Server 得到一个唯一 Block ID,然后写入数据。然后开始拼接元数据操作,如创建文件,Resize 等,然后将这个系列操作写入另一个块存储的集群(为 Append 操作优化,日志集群),最后把这一系列结果发送给 Paxos-metadata Servers(也就是分布在多个数据中心,利用 Paxos 协议同步的),再将写到日志集群的事务应用的 metaserver,包括检查文件权限有效性、是否是合理操作等等,完成后返回。

在这个过程,我们可以发现其有两个特点,第一是利用 Paxos 协议完成多数据中心同步,第二是从日志集群到最后 metaserver 写回会牵扯到多个 metaserver,这里会有一个分布式事务的逻辑在里面,因此 CalvinFS 额外引入了 Scheduler 的概念,会进行锁管理。

CalvinsFS 从 IO 路径看,Paxos 协议进行 metadata log 的处理能力是值得怀疑的关键点,不过似乎在 WAN 下也没有太好的办法,特别是在灾难测试时,相信 Paxos 能比主备方式有着更强的适应能力。

pdf

FlashGraph: Processing Billion-Node Graphs on an Array of Commodity SSDs

为了解决图计算越来越大的数据集需要,本文提出了用 Flash SSD 来代替 DRAM 来容纳更多的数据并且提供相媲美的性能。据论文描述,目前存在的分布式图计算要么完全使用 DRAM 进行,追求高性能但是成本高,要么退步使用传统磁盘作为存储,但是有严重的性能影响并且编程模型存在一定局限性(不允许随机访问 vertex list)。

本文提出的 FlashGraph 主要做三个事情,一个是利用其构造的数据尽可能紧凑来减少 IO,二是尽可能采用顺序 IO,三是将 IO 和计算并行化。为了做到这三个事情基于 Linux VFS 之上做了一层用户空间文件系统,主要是为了避免内存拷贝和理解 IO。因为向 SSD 发出 IO 都需要进行用户态和内核态的拷贝,这样在用户态实现一个简单的 Page Cache 可以大大减小 Context Switch 带来的内存拷贝。同时因为缓存可以被应用感知,可以根据应用(Task)的上下文来提高缓存命中率。另外,FlashGraph 提供的编程模型使得在每个执行体可以下方到用户空间文件系统层执行,完全利用 Userspace Page Cache 来进行访问,避免用户空间的二次拷贝。

计算密集型的应用往往是对内存访问有极高的要求,局部性和空间性都是主要的优化点。因此尽可能需要将整个程序的执行空间规划到一个扁平的空间,尽量提高缓存命中率。

pdf

Host-side Filesystem Journaling for Durable Shared Storage

本文主要介绍在分布式文件系统的环境下,为了提高客户端的性能和持久性而在客户端主机上增加一个 Journal 设备(持久化),这样可以使用 writeback 策略避免数据丢失。

文中将 Ceph 作为实验的分布式系统,通过在 CephFS Kernel Client 中提供挂钩将其所有读写先导到 Journal 设备中,然后根据策略进行写回到 Ceph 集群。这样可以降低对网络的依赖。

最后的性能测试显示了普通操作会有50%的提高,并且减少了网络传输。

pdf

LADS: Optimizing Data Transfers using Layout-Aware Data Scheduling

这篇论文开头铺的比较开,看得一愣一愣,后面讲到实现就简单很多。总的来说,它是在 PFS (Parallel File System) 和客户端中间加了一层,用来解决 PFS 存在的不足(主要是拥塞控制)。

通过在客户端和 PFS 中建立一个 Client/Server 架构的中间层,对每一个 IO 对应文件都进行分片然后感知存储位置,然后根据拥塞情况进行调度。总的来说,对于一个复杂应用需求下,通过弹性的增加中间层来解决 Load Balance 的问题是个不错的选择。

pdf

ANViL: Advanced Virtualization for Modern Non-Volatile Memory Devices

论文主要讲述了在目前存在的 Block Interface 主要是以传统 HDD 工作逻辑衍生出来的,对于新的 NVM 设备来说,我们需要扩展出新的 Block Interface 来增加在虚拟化环境下的应用对于存储的需求。

主要扩展了 Range Clone,Range Move 和 Range Delete 这三种接口,然后介绍了在 File Snapshot, Volume Snapshot, Dedup 和 Journaling 这这四个场景下使用新扩展接口带来的性能提升。

如果 SSD 厂商能在设备上支持这些扩展接口,想必有更大的收益。

pdf



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复