Reiser5 宣布支持突发缓冲区(数据分层)

爱德华·希什金 公布 Reiser5 项目框架内开发的新机遇。 雷瑟5 它代表 ReiserFS 文件系统经过重大重新设计的版本,其中对并行可扩展逻辑卷的支持是在文件系统级别(而不是块设备级别)实现的,允许您在逻辑卷上高效地分发数据。

在最近开发的创新中,提供
用户有机会添加小型高性能
块设备(例如 NVRAM)称为 代理磁盘,去
相对较大的逻辑卷组成较慢
预算驱动。 这会给人留下这样的印象:所有
该卷由同样昂贵的高性能组成
设备,例如“代理磁盘”。

所实现的方法基于简单的观察,即实际上磁盘不会持续写入,并且 I/O 负载曲线具有峰值形状。 在此类“峰值”之间的间隔中,始终可以从代理磁盘重置数据,将后台的所有数据(或仅部分)重写到主“慢速”存储。 因此,代理磁盘始终准备好接收新的数据部分。

这种技术(称为突发缓冲区)最初起源于
高性能计算 (HPC) 领域。 但事实证明,普通应用程序也需要它,特别是那些对数据完整性要求更高的应用程序(通常是各种类型的数据库)。 此类应用程序以原子方式执行任何文件中的任何更改,即:

  • 首先,创建一个包含更改数据的新文件;
  • 然后使用 fsync(2) 将这个新文件写入磁盘;
  • 之后新文件会自动重命名为旧文件
    释放旧数据占用的块。

    所有这些步骤都在某种程度上导致了重大的
    任何文件系统上的性能下降。 情况
    如果新文件首先写入分配的文件,则会有所改善
    高性能设备,这正是发生在
    支持突发缓冲区的文件系统。

    在 Reiser5 中,计划不仅选择性地发送
    文件的新逻辑块,以及一般的所有脏页。 而且,
    不仅包含数据的页面,还包含元数据
    写在步骤(2)和(3)中。

    对代理磁盘的支持是在常规工作的背景下进行的
    Reiser5 逻辑卷, 宣布 今年年初。 那是,
    聚合系统“代理盘-主存储”正常
    逻辑卷,唯一的区别是代理磁盘具有优先级
    磁盘地址分配策略中的其他卷组件。

    将代理磁盘添加到逻辑卷不伴随任何
    数据重新平衡及其删除的方式与
    删除常规磁盘。 所有代理磁盘操作都是原子的。
    错误处理和系统部署(包括系统崩溃后)的发生方式与代理磁盘是常规组件完全相同
    逻辑卷。

    添加代理盘后逻辑卷总容量
    随该磁盘的容量而增加。 自由空间监控
    代理磁盘的执行方式与其他卷组件相同,即使用volume.reiser4(8)实用程序。

    必须定期清理代理磁盘,即重置数据从
    它到主存储器。 达到 Beta 稳定性后 Reiser5
    清洁计划是自动的(它将由
    特殊的内核线程)。 在此阶段,清洁责任
    取决于用户。 将数据从代理磁盘重置到主磁盘
    只需使用选项调用volume.reiser4实用程序即可生成存储
    “-b”。 作为参数,您需要指定逻辑的安装点
    卷当然,一定要记得定期进行清洁。 为了
    您可以编写一个简单的 shell 脚本来执行此操作。

    如果代理磁盘上没有可用空间,则所有数据
    自动写入主存储器。 同时,默认情况下
    FS的整体性能降低(由于不断的调用
    提交所有现有交易的程序)。 您可以选择设置
    模式而不损失性能。 然而,在这种情况下,磁盘
    代理设备空间的使用效率将会降低。
    使用元数据分段(块)作为代理磁盘很方便,只要它是在足够高性能的块设备上创建的。

    来源: opennet.ru

  • 添加评论