v0.5 版本发送至 linux-fsdevel, -kernel
sage
我标记了一个 v0.5 版本,并且这次将客户端部分以补丁的形式发送到 linux-kernel 和 linux-fsdevel 进行审查。我们拭目以待!它包含 20k 行代码,所以如果有人决定立即仔细阅读它,我会感到印象深刻。
此版本的新增内容
- 修复了大量错误,尤其是在对象存储区域。我们一直在进行大量的恢复测试(再次感谢 UFL 的 Brent Nelson 提供的测试帮助),并且情况已经有了显著改善。快照目前看起来也相当稳定。
- OSD 存储现在接受“复合”操作,这些操作可以在一次性更新对象中的多个更新。目前,这仅由 MDS 用于设置目录对象上的一些附加属性,这些属性可用于 fsck 类型的工具。更大的目标是支持更高阶的对象突变,以实现某种轻量级的“活动存储”系统。(UCSC 系统研究组最近一直在研究这个问题。)
- btrfs 存储层继续发展。更新的 ioctl 补丁已提交到 btrfs(这些补丁于昨天击中 btrfs-unstable)。
- 现在可以强制卸载 ceph 挂载(如果服务器永久离线)。
- OSD 在收到 SIGTERM 或 SIGINT 信号时会正常关闭。
- OSD 恢复由一个单独的线程管理并(简单地)被节流。
- 太多小的改进和修复无法一一列举。
下一个版本待办事项包括
- ENOSPC 处理。
- 异步元数据操作。目前所有元数据更新都同步记录到日志中,这使得许多操作(例如 untar)非常缓慢。当客户端是目录的独占用户时,我们应该异步执行这些操作,并且仅在包含目录上进行 fsync 时才阻塞。现有的文件能力和内部 MDS 锁定基础设施应该使这非常简单,并且性能提升将非常巨大。
- 完全集成的基于内容寻址存储 (CAS) 仍然在列表中,并且大部分基础工作已经完成。我希望尽快开始,但它目前肯定不是首要任务。
