v0.4 发布

sage

我标记了 v0.4。 此版本的新内容

  • 灵活的快照(创建任何子目录的快照)
  • 递归的尺寸、ctime、文件计数统计
  • 大量的客户端错误修复和改进,包括异步写页、网络消息的额外 crc 保护、sendpage(在支持的情况下进行零拷贝写入)。

此版本的主要新功能是快照支持。 与大多数其他文件系统中的快照不同,Ceph 快照不是卷范围的;它们可以在每个子目录(树)的基础上创建。 也就是说,您可以执行以下操作:

$ cd /ceph $ mkdir foo/.snap/foo_snap $ ls foo/.snap foo_snap $ mkdir foo/bar/.snap/bar_snap $ ls foo/bar/.snap _12020210321_foo_snap    # 父快照以 ino# 开头 bar_snap

快照包括准确的递归统计信息(例如 rsize,它反映了嵌套在目录下的所有文件的总大小,并默认报告为目录的 st_size)。 例如,

$ cd test $ tar jxf something.tar.bz2 & $ mkdir .snap/1 $ mkdir .snap/2 $ killall %1 $ ls -al .snap total 0 drwxr-xr-x 1 root root       0 Jan  1  1970 .   # 虚拟“.snap”目录 drwxr-xr-x 1 root root 3590037 Oct  7 20:36 ..  # “活动”目录最大 drwxr-xr-x 1 root root 1220238 Oct  7 20:36 1 drwxr-xr-x 1 root root 2366114 Oct  7 20:36 2

删除快照就像这样简单:

$ rmdir foo/.snap/foo_snap

内核客户端在过去几个月里已经稳定下来。 下一个版本将侧重于改进存储云的故障恢复行为(主要是,节流恢复和快照删除与客户端工作负载),智能地响应部分故障(单个文件对象的 EIO),以及应对 ENOSPC 条件。

源代码可用

git clone git://ceph.newdream.net/ceph.git

或者可以通过 gitweb 浏览。