TranslateProject/published/201504/20150318 The future of Linux storage.md
2015-05-01 18:27:00 +08:00

7.8 KiB
Raw Permalink Blame History

Linux存储的未来

摘要Linux系统的软件开发者们正致力于使Linux支持更多种类的文件和存储方案。

波士顿 - 在Linux基金会最近的Vault展示会上,全都是关于文件系统和存储方案的讨论。你可以会觉得关于这两个主题并没有什么值得讨论的最新进展,但事实并非如此。

对Linux文件系统比如Btrfs和存储方案的支持正在持续发展中。 -- Facebook

自从Linus提出“[讨厌的、生锈的机械磁盘]”的观点以来存储技术已经走过一段长路Linux也始终保持跟进。比如说近几年来闪存已经逐渐成为企业服务器的主要存储器持久化内存也正给我们带来拥有DRAM一般快速的存储。与此同时大数据、云计算和容器化技术正给Linux引入新的应用场景。

为了应对挑战Linux开发者们一边继续扩展已有的文件系统和存储程序一边致力于开发新的方案。

Btrfs

例如Chris Mason一位来自Facebook的软件工程师也是Btrfs(念做 Butter FS的维护者之一介绍了Facebook是如何使用这种文件系统。Btrfs拥有文件系统固有的许多优点比如既能处理大量的小文件也能处理大小可达16EB的单个文件支持RAID ;内置的文件系统压缩,以及集成了对多种存储设备的支持。

当然Facebook的服务器也运行在Linux上。更准确地讲是运行在一个基于CentOS的内部发行版上它是基于3.10和3.18版的内核。对Facebook来说真正的收获是Btrfs在Facebook持续更新的用户操作所带来的巨大的IOPS每秒钟输入输出的操作数的负载下依旧保持稳定和快速。

这就是好消息但坏消息是对于像MySQL一样的传统DBMS数据库管理系统来说Btrfs还是太慢了。对此Facebook采用了XFS。为了协同这两种文件系统Facebook又用到了一种叫做Gluster的开源分布式文件系统。

Facebook一直与上游的负责Btrfs的Linux内核开发者保持密切联系致力于提高Btrfs在DBMS上的速度。Mason和他的同事的目标是在RocksDB数据库上使用BtrfsRocksDB是一种为提供快速存储开发的持久化键值存储系统可以作为客户端服务器模式数据库的基础部分。

当然Btrfs也还存在一些问题比如如果有用户傻到用数据把硬盘几乎要撑爆时Btrfs会在硬盘被完全装满前阻止用户继续写入。对某些工程来说比如CoreOS一款依赖容器化的企业版Linux系统这种问题是致命的。因此CoreOS已经切换到使用xt4和overlayfs了

Btrfs的开发人员正致力于数据去重。在这一点上当文件系统中拥有超过一个的相同文件时会自动删除多余文件。正如Mason所说“并非每个人都需要这个功能但如果有人需要那就是真的有用

在正在开展的重要性工作中Btrfs并非是唯一的文件系统。John SparyRed Hat的一位高级软件工程师,提到了另一款名为Ceph的分布式文件系统。

Ceph FS

Ceph提供了一种分布式对象存储方案和文件系统反过来它依托于一种使用商用硬件集群的弹性的、可扩展的存储模型RADOS。配合RADOS块设备RBD和RADOS对象网关RGWCeph提供了一种POSIX接口的文件系统 -- Ceph FS。尽管RBD和RGW已经在生产环境中使用了一段时间但使Ceph FS适用于生产的工作还是进行中。

Rad Hat在收购Ceph的母公司Inktank后在2014年一直致力于使CephFS适用于生产环境。不管怎样Spray说“有些人已经在生产中使用了它我们对此表示担忧毕竟它还没有准备好。”然而Spray也补充说“这具有两面性因为一方面这是让人担心的另一方面我们又从用户获得了真正有用的反馈和测试。”

这是因为尽管Ceph对象存储很好地支持扩展但Ceph Fs作为一种兼容POSIX的文件系统却很难实现扩展。比如作为一种分布式文件系统Ceph FS必须解决来自多个客户端的多个写操作。这会导致全有或全无的情况即一个客户端可以写入但其它客户端必须等待也会产生文件加锁的情形即相比普通文件系统中更加复杂。

但是Ceph FS仍值得去做正如Spray所说“因为兼容POSIX的文件系统是操作系统通用的。”这并不是说Ceph FS就一无是处。“它并不是支离破碎的相反它奏效了。所缺的是修复和监控工具。”

Red Hat目前正致力于完成fsck和日志修复工具开发、快照强化、更好客户端访问控制以及云与容器的集成。尽管Ceph FS到目前为止只是一种有潜力或者没前景的文件系统但仍然值得用在生产环境中。

文件与存储的差别与目标

至于文件系统和存储上的更大问题Jeff LaytonPrimary Data的一位高级软件工程师,解释说为了“在不断开电源的情况下给灾难性的电源故障提供测试”,大量的相关工作正在进行中。这些测试很快会被集成到xftests它是Linux文件系统测试的黄金标准。

Rik van Riel一位Red Hat的主要软件工程师谈到了解决持久化内存产品的问题。你可以把它们作为存储器或者内存。但是如果你现在把它们作为内存来用是不能为备份创建快照。真正的问题是van Riel确信人们会尝试使用持久的内存作这两种用途这会导致出现和“如果不备份你会如何处理一个200GB大小的持久化内存数据库”类似的情形发生。更糟的是现在日志系统也无法和持久化的内存一起发挥作用。

正确的答案是什么呢Linux至今还没有一个但编程人员们正在努力寻找答案。

因此尽管Linux支持很多文件系统可以使用这里以外的任何一种存储器来存储数据但是仍然有很多工作要做。技术从来不会止步不前。Linux正运行在移动设备、桌面电脑、服务器、云端和超级计算机上等几乎所有的主流设备上必须跟紧存储的发展步伐不管它们以何种形式出现。


via: http://www.zdnet.com/article/linux-storage-futures/

作者:Steven J. Vaughan-Nichols 译者:KayGuoWhu 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出