几个月前,我们在博客上谈到了 旅行5哪一个 是一个文件系统 由Edward Shishkin维护, 在并行扩展方面的创新中脱颖而出, 这不是在块级别执行的,而是通过文件系统执行的。
Reiser5是ReiserFS文件系统的实质性修订版,其中实现了对并行可扩展逻辑卷的支持, 允许在逻辑卷之间高效地分发数据。
现在,在最近的新闻中,Eduard Shishkin宣布了作为Reiser5项目一部分正在开发的新功能。
在最近的创新中, 已经观察到用户可以添加一个小型高性能块设备 (例如NVRAM)(称为代理磁盘)到由低预算磁盘组成的相对较大的逻辑卷。 这给人的印象是整个卷都由与“代理磁盘”相同的高性能设备组成。
实施的方法是基于一个简单的观察 在实践中 刻录光盘不经常执行,并且曲线 I / O负载 它具有喙的形状。 在这种“峰值”之间的间隔中,总是有机会通过覆盖后台“慢速”主存储中的所有数据(或其中的一部分)从代理磁盘中转储数据。 因此,代理单元总是准备好接收新的数据。
最初,这种技术 (称为突发缓冲区) 起源于高性能计算领域 (HPC)。 但是事实证明,它也需要普通的应用程序,特别是那些对数据完整性有很高要求的应用程序(这通常是另一种数据库)。 这些更改是由任何文件中的任何应用程序自动进行的,即:
- 首先,创建一个包含修改后的数据的新文件;
- 然后,使用fsync(2)将这个新文件写入磁盘;
- 之后,新文件将重命名为旧文件,这将自动释放旧数据所占用的块。
所有这些步骤在某种程度上会导致任何文件系统的性能显着下降。 如果将新文件首先写入专用的高性能设备,情况会有所改善, 这正是“突发缓冲区”文件系统中发生的情况。
在Reiser5中,计划有选择地发送不仅新的逻辑块从文件到代理磁盘, 但通常也包括所有脏页。 而且,不仅页面具有数据,而且还具有在步骤(2)和(3)中记录的元数据。
在逻辑卷的常规工作环境中支持代理磁盘 Reiser5在今年早些时候宣布。 也就是说,聚合系统“代理磁盘-主存储”是普通的逻辑卷,唯一的区别是代理磁盘在磁盘寻址策略中优先于该卷的其他组件。
将代理磁盘添加到逻辑卷不会伴随任何数据重新平衡,并且删除代理磁盘的方式与删除普通磁盘的方式相同。 所有代理磁盘操作都是原子的。
添加代理磁盘后,逻辑卷的总容量将增加此磁盘的容量.
应当定期清理代理磁盘,即将数据从其转储到主存储器。 在达到Reiser5 beta稳定性之后,计划自动进行清洁(将由特殊的核心线程处理)。 在此阶段,清洁责任由用户承担。
如果代理磁盘上没有可用空间,则所有数据都会自动写入主存储器。 同时,默认情况下会降低FS的整体性能 (由于不断调用所有可用交易的确认程序)。
数据来源: https://marc.info
在汉斯(Hans)造成的中断之后,我不知道ReiserFS仍然处于活动状态,
它一直保持安静,但发展仍在继续。