下一代 Linux 文件系统:NiLFS(2) 和 exofs(4)

NiLFS(2) 的挑战

  NiLFS(2) 版本和内核

这个 NiLFS(2) 演示 是在 2.6.27 Linux 内核中完成的。2.6.30-rc1 内核在 mainline 中包括 NiLFS(2),但是在这里,NILFS 文件系统模块和工具是从源代码安装的。请参阅 参考资料 了解关于如何将 NiLFS(2) 安装到内核中的信息。

 
 

虽然连续快照是一个很好的特性,但是也有一定的副作用。前面已经提到,它的优点在于它是日志结构的,采用连续写的方式(减少物理磁盘的查找行为),因此非常快。而缺点在于,它是日志结构的,所以需要垃圾收集,以便清理旧的数据和元数据。一般情况下,这种文件系统非常快,但是一旦需要进行垃圾收集,性能就会慢下来。

探索 NiLFS(2)

我们来看看 NiLFS(2) 的实际应用。这个演示展示如何在循环设备上创建一个 NiLFS(2) 文件系统(测试文件系统的一种简单方法),然后看看 NiLFS(2) 的一些特性。首先安装 NiLFS(2) 内核模块:

$ sudo modprobe nilfs2 $  

接下来,创建一个文件,该文件将包含文件系统(主机操作系统上的一个区域,可通过循环设备将它挂载为操作系统本身的文件系统),然后使用 mkfs 在其中构建 NiLFS(2) 文件系统(如图 1 所示)。


清单 1. 准备 NiLFS(2) 文件系统
$ dd if=/dev/zero of=/tmp/disk.img bs=384M count=1 1+0 records in 1+0 records out 402653184 bytes (403 MB) copied, 60.7253 s, 6.6 MB/s $ mkfs.nilfs2 /tmp/disk.img mkfs.nilfs2 ver 2.0 Start writing file system initial data to the device Blocksize:4096 Device:/tmp/disk.img Device Size:402653184 File system initialization succeeded !! $  

现在,您有了自己的以 NiLFS(2) 文件系统格式初始化的磁盘镜像。接下来,使用循环设备将该文件系统挂载到一个挂载点上(如清单 2 所示)。注意,当挂载文件系统时,会启动一个用户空间程序 nilfs_cleanerd,以提供垃圾收集服务。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27790.html