分类: 虚拟化
2015-03-13 15:08:25
Volume文件就像是glusterfs的配置文件,这个文件能够定义glusterfs的布局,控制glusterfs的动作。编写volume文件是高级开发人员的工作。
在vol文件中,每个volume选择一个适当的tanslator模块和与之相关的配置操作。通过vol文件中translator和模块的配置信息,你可以完全的控制glusterfs。由于这个灵活的机制使glusterfs适应不同存储的要求。
目录
|
Vol 语法
Vol 文件实例
下面看一下编写vol文件的命名规则
volume client
type protocol/client
# option remote-port 7000
option transport-type tcp
option remote-host localhost
option remote-subvolume brick
end-volume
volume iothreads
type performance/io-threads
option thread-count 4
subvolumes client
end-volume
volume writeback
type performance/write-behind
subvolumes iothreads
end-volume
# volume trace
# type debug/trace
# subvolumes writeback
# end-volume
在这个例子中, 'volume client' 在 'volume iothreads'之前定义, 而'volume iothreads'在 'volume writeback'之前被定义. 但是在使用时,fuse先用到'volume writeback', 'volume client' 最后一个被用到.每个volumes的顺序是自下而上的.
单个volume段
1 volume unify
2 type cluster/distribute
3 option scheduler rr # check alu, random, nufa
4 option rr.limits.min-free-disk 5 # 5% of free disk is minimum.
5 option namespace namespace-child
6 subvolumes child1 child2 child3 child4 # client[1-n], n < 32bit number :D
7 end-volume
逐行解释
注:行首的数字是用作引用的,在真正的文件中没有这些数字.
这里的 'volume' 是语法分析器的标示符, 用来声明一个新的translator. 'unify' 是volume的名字, 这个在vol文件中师唯一的. Volume段是可以随意命名的,但是其名字最好能够说明这个段的意义.
这里 'type' 是语法分析器的标示符, 用来查找translator的类型(请在wiki中查找类型的说明). 'cluster/distribute' 是查阅在lib目录中目标文件的路径: "/
可以看出,glusterfs中每个tanslator是在运行时通过特定文件加载的,所以glusterfs的行为是通过vol文件控制的.
这里 'option' 是语法分析器的标示符, 用来定义tanslator的特定的操作. 'option' 需要两个参数:'key', 'value' ('option key value'). 这些操作对于不同的translator而不同.
'scheduler' translator的一个操作, 它定义在创建文件时使用何种调度方式. Glusterfs的调度算法比较少,所以可以去wiki查看更多信息.
'rr' 是调度算法的一种('rr' means round-robin). 还有其它算法,如: 'alu', 'random', 和 'nufa'.
'subvolumes' 是创建translator树的关键字. 使用 'subvolumes' 关键字可以定义那个translator会在这个translator后被加载. 所有的cluster translators 有一个或多个subvolumes, 而别的translators 仅有一个subvolume. 这个关键字不会再叶translator上使用. 这些叶translator是 'storage/posix' 和 'protocol/client'.
这里 'end-volume' 表示所定义的 'volume unify' translator结束.
进一步阅读
"GlusterFS_1.2_Configuration_Example_for_Four_Bricks" tutorial written by Julien Perez gives a very nice understanding of volume file and its pictorial representation. The volume file options may be bit older, but still is a nice article to understand the GlusterFS volume file.
编辑vol文件工具
参考