西部数据发布了专门用于分区驱动器的 Zonefs 文件系统

西部数据软件开发总监 предложил 在 Linux 内核开发者邮件列表中,有一个名为 Zonefs 的新文件系统,旨在简化底层工作 分区存储设备。 Zonefs 将驱动器上的每个区域与一个单独的文件相关联,该文件可用于以原始模式存储数据,而无需进行扇区和块级操作。

Zonefs 不是符合 POSIX 标准的 FS,并且仅限于相当狭窄的范围,允许应用程序使用文件 API,而不是使用 ioctl 直接访问块设备。 与区域相关的文件需要从文件末尾开始顺序写入操作(追加模式写入)。

Zonefs 中提供的文件可用于放置在使用 LSM(日志结构合并)日志形式的存储结构的分区数据库驱动器之上,从一个文件 - 一个存储区域的概念开始。 例如,RocksDB 和 LevelDB 数据库中使用了类似的结构。 所提出的方法可以降低最初设计用于操作文件而不是块设备的移植代码的成本,以及从使用 C 以外的编程语言的应用程序中组织分区驱动器的低级工作。

分区驱动器下 默示 设备开启 硬磁盘 или NVMe SSD,其中的存储空间被划分为构成块组或扇区组的区域,在更新整个块组时只允许顺序添加数据。

例如,记录分区用于具有平铺磁记录的设备(鹅卵石磁记录,SMR),其中磁道宽度小于磁头的宽度,并且以相邻磁道部分重叠的方式进行记录,即进行记录。 任何重新录制都会导致需要重新录制整组曲目。 对于SSD驱动器来说,它们最初绑定了初步数据清除的顺序写入操作,但这些操作隐藏在控制器层和FTL(Flash Translation Layer)层。 为了提高某些类型负载的效率,NVMe 组织标准化了 ZNS(分区命名空间)接口,该接口允许绕过 FTL 层直接访问区域。

西部数据发布了专门用于分区驱动器的 Zonefs 文件系统

自内核 4.10 起,Linux 中的分区硬盘驱动器 提供 ZBC (SCSI) 和 ZAC (ATA) 块设备,从版本 4.13 开始,添加了 dm-zoned 模块,将分区驱动器表示为常规块设备,隐藏操作期间应用的写入限制。 在文件系统级别,对分区的支持已经集成到 F2FS 文件系统中,并且正在开发 Btrfs 文件系统的一组补丁,通过在 CoW 中工作(copy-on -写)模式。
分区驱动器上的 Ext4 和 XFS 操作 可以安排 使用 dm 分区。 为了简化文件系统的转换,提出了ZBD接口,它将对文件的随机写操作转换为顺序写操作流。

西部数据发布了专门用于分区驱动器的 Zonefs 文件系统

来源: opennet.ru

添加评论