LWN: Zoned block device的专用文件系统

栏目: 后端 · 发布时间: 4年前

内容简介:全文完

Filesystems for zoned block devices

By Jake Edge

May 21, 2019

LSFMM

Damien Le Moal和Naohiro Aota,在2019 Linux Storage, Filesystem, and Memory-Management Summit (LSFMM)峰会上,一起介绍了一下zoned block devices相关的工作。这类device内部有多个不同的区域,每个区域有不同的特性。例如有的区域只能按顺序来写(write sequential order),有的区域就是可以正常随机写入。zoned block devices起源于shingled magnetic recording(SMR,叠瓦式磁记录盘)设备,当初发明出来是为了增加硬盘的存储空间(不过要牺牲一些易用性)。

Le Moal的这个话题,主要关注于zoned block device该用什么文件系统。目前唯一支持zoned device的文件系统是F2FS,不过支持仍然不完善,还在进行bug fix以及补充功能。也有人在Btrfs里面增加相关支持,Aota比较熟悉这部分。

Btrfs

为了在Btrfs里面支持zoned block device,需要对每个区域对应的"device extent"结构都仔细配置。如果extent size比其中某个区域的size小,那么就意味着会有空间浪费掉。更大的extent值能支持更多区域。Extent是按顺序分配的。需要增加内部buffer,来对write request进行排序,这样能确保满足此区域的write sequence的要求。

LWN: Zoned block device的专用文件系统

Btrfs里已经支持了多种磁盘管理模式,包括单磁盘,DUP,RAID0,RAID1,RAID10。目前不支持RAID5和RAID6,因为太大的SMR磁盘不适用那些RAID模式,因为在某个磁盘损坏的时候,恢复数据需要太多时间(rebuild time )。

Aota指出目前还有两个功能还需要更多时间才能支持。“Device Replace”基本完成了,不过有些情况下还会出现一些软件逻辑竞争的corner case。还需要支持fallocate(),因为很难实现在需要按顺序写入的趋于上预先分配空间,可能需要在内存里来做preallocation来变相支持这个功能。Chris Mason觉得fallocate()不太重要,对copy-on-write(CoW)文件系统上来说这不是个必须功能。

Aota认为,今后NVMe Zone Namespace (ZNS) 也需要支持。在支持ZNS的设备场景,根本不支持random write(随机写入)。也就是说superblock也需要copy on write。这样会保留两块区域给superblock,文件系统会在两块superblock区域之间来回切换来解决不能随机写入的问题。

Ric Wheeler问了一下具体来说RAID rebuild在RAID5和RAID6上需要多长时间。Le Moal回答道,需要一两天的时间。Wheeler觉得这个时长应该还是可以接受的,尤其是RAID6的场景。他觉得这些RAID场景还是挺有必要支持的。RAID6 rebuild I/O操作可以用低优先级进程慢慢做嘛。不过Mason觉得RAID5/6的支持也不着急,今后再说。尽量先把当前版本的支持合入为好。Le Moal计划尽快把patch发出来review。

ZoneFS

ZongFS是一个新的文件系统,用来以最简单的方式把zoned block device暴露给用户使用。因此,在mount之后,会在mount目录下面针对每个区域都展示成一个单独的文件,分别位于/conventional (此目录用于管理可以随机访问的区域)和/sequential (此目录是管理只能顺序访问的区域)两个目录下。每个zone对应的文件都会用zone number来作为文件名。

ZoneFS管理方式下,这些zone文件都不能更改、删除、更名,也不能新建文件。对sequential zone来说,只能支持length为0的truncate()和ftruncate()操作,会把zone的写入指针重置回本区域的最开头的地方。磁盘上也不会存文件系统的metadata(辅助信息),而write pointer(写指针)的位置就是当前的sequential file的文件大小。

ZoneFS不是特别强大,不过还是很有用的。应用程序虽然可以直接对block device设备节点做文件操作来达到类似的功能,不过应用开发者一般不太喜欢这样做,觉得不安全。对RocksDB和LevelDB等应用程序,ZoneFS就足够满足需求了,因为他们本身就是基于很多sequential data structures来操作的。

此外,ZoneFS还能用于支持ZNS。不过Ted Ts'o指出,NVMe开发者会担心底层implicit进行的对每个zone的open和close操作可能会影响文件访问性能。这样的话,Btrfs文件系统设计者此前并没有考虑过explicit open和close操作,今后可以考虑一下这个需求了。没有什么其他反对意见,因此Le Moal打算尽快发出ZoneFS patch做review了。

全文完


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Applications (Hacking Exposed)

Web Applications (Hacking Exposed)

Joel Scambray、Mike Shema / McGraw-Hill Osborne Media / 2002-06-19 / USD 49.99

Get in-depth coverage of Web application platforms and their vulnerabilities, presented the same popular format as the international bestseller, Hacking Exposed. Covering hacking scenarios across diff......一起来看看 《Web Applications (Hacking Exposed)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具