4.1 为何需要下层文件系统支持?
MTFS的目的是为众多文件系统提供一种通用的高可用框架。为了这个目的,MTFS的大部分实现方式都是通用的。但是下层文件系统千奇百怪,因此还需要一种机制来处理下层文件系统的差异性,这个机制就是枢纽机制。
4.2 如何添加下层文件系统支持?
对于每种作为MTFS的下层文件系统,首先需要定义structlowerfs_operations,在其中给出下层文件系统类型、名字,并给定一些底层操作,以供MTFS调用。
同时MTFS设计了枢纽(junction)机制。通过枢纽机制,可以针对某些文件系统的组合,定制MTFS操作。例如下面几种情况可能需要进行不同的处理:
1. 将ext3作为主分支,将Lustre作为从分支
2. 将lustre作为主分支,将ext3作为从分支
在这种情况下,可以分别定义不同的枢纽struct MTFS_junction。枢纽中提供与默认的MTFS操作不同的操作struct MTFS_operations。对于在struct MTFS_operations中未定制的操作,将使用默认操作。
综上所述,为了对新的下层文件系统提供支持,只需要参考现有源码,根据新文件系统的特性,给定struct lowerfs_operations,然后定制struct MTFS_junction即可。
以添加ext2支持为例.
1. 创建MTFS/ext2目录。可以从MTFS/ext3目录复制过来。
2. 修改MTFS/ext2下的autoMakefile.am和Makefile.in