PolarFS: An Ultra-low Latency and Failure Resilient Distributed File System for Shared...——论文泛读

VLDB 2018 Paper 分布式元数据论文阅读笔记整理

背景

将存储与计算的设计使体系结构更加灵活,有助于利用共享存储功能:

  • 计算和存储节点可以使用不同类型的服务器硬件,并且可以单独定制。例如,计算节点不再需要考虑内存大小与磁盘容量的比率,这高度依赖于应用场景,而且很难预测。

  • 集群中存储节点上的磁盘可以形成单个存储池,从而降低了碎片化、节点间磁盘使用不平衡和空间浪费。存储集群的容量和吞吐量可以轻松透明地扩展。

  • 由于数据都存储在存储集群上,因此计算节点上没有本地持久状态,因此更容易、更快地执行数据库迁移。由于底层分布式存储系统的数据复制和其他高可用性功能,还可以提高数据可靠性。

云数据库服务也受益于这种体系结构。

  • 数据库可以基于虚拟化技术(如Xen[4]、KVM[19]或Docker[26])建立在更安全、更易于扩展的环境上。

  • 数据库的一些关键功能,如多个只读实例和检查点,可以通过后端存储集群的支持提供快速I/O、数据共享和快照。

当前的云平台很难充分利用RDMA和NVMe SSD等新兴硬件标准。一些广泛使用的开源分布式文件系统,如HDFS[5]和Ceph[35],延迟比本地磁盘高得多。当使用最新的PCIe SSD时,性能差距甚至可能达到几个数量级。直接在这些存储系统上运行的关系数据库(如MySQL)的性能明显不如具有相同CPU和内存配置的本地PCIe SSD。

挑战

为了解决以上问题,云计算供应商提供了实例存储。实例存储使用本地SSD和高I/O VM实例来满足客户对高性能数据库的需求。但在实例存储上运行云数据库有几个缺点。

  • 实例存储容量有限,不适合大型数据库服务。

  • 无法在潜在的磁盘驱动器故障中恢复。为了提高数据可靠性,数据库必须自己管理数据复制。

  • 实例存储使用通用文件系统,如ext4或XFS。当使用RDMA或PCIe SSD等低I/O延迟硬件时,内核空间和用户空间之间的消息传递会影响I/O吞吐量。

  • 实例存储无法支持共享一切数据库集群架构,这是高级云数据库服务的关键功能。

本文方法

本文提出PolarFS,具有超低延迟和高可用性的分布式文件系统,专为POLARDB数据库服务而设计。

  • 在用户空间中利用了轻量级的网络堆栈和I/O堆栈,避免陷入内核和处理内核锁,充分利用了RDMA、NVMe和SPDK等新兴技术,大大降低端到端延迟。

  • 提供了类似POSIX的文件系统API,从而编译到数据库进程中,取代操作系统提供的文件系统接口,从而使整个I/O路径可以保留在用户空间中。

  • 数据平面的I/O模型也设计为消除锁,避免关键数据路径上的上下文切换,消除不必要的内存副本,同时利用DMA在主内存和RDMA NIC/NVMe磁盘之间传输数据。使端到端延迟大大降低,与SSD上的本地文件系统非常接近。

  • 为了提高I/O吞吐量的同时保持副本一致性,开发了ParallelRaft,利用数据库的无序I/O完成容忍能力打破了Raft的严格序列化。ParallelRaft继承了Raft的易理解性和易实现性,同时为PolarFS提供了更好的I/O可扩展性。

  • 共享存储架构,为POLARDB提供了强大的支持。主节点和RO节点在PolarFS中的同一数据库目录下共享重做日志文件和数据文件。

实验表明,PolarFS的写入延迟与SSD上的本地文件系统的写入延迟非常接近。

总结

针对POLARDB和新硬件的使用的需求,本文提出PolarFS,可提供极高的性能和高可靠性的分布式文件系统。(1)在用户空间中利用了轻量级的网络堆栈和I/O堆栈,避免陷入内核和处理内核锁。同时实现类似POSIX接口,将整个I/O路径保留在用户空间中。(2)将数据平面的I/O模型也设计为无锁,避免关键数据路径上的上下文切换,消除不必要的内存副本,同时利用DMA在主内存和RDMA NIC/NVMe磁盘之间传输数据。(3)开发了新的共识协议ParallelRaft,在不牺牲存储语义一致性的情况下,利用数据库的无序I/O放宽了Raft的严格顺序写入,提高了PolarFS的并行写入性能。(4)共享存储架构,主节点和RO节点在PolarFS中的同一数据库目录下共享重做日志文件和数据文件。

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值