'thread-count'小于或等于你的CPU数量。
IO-Cache Translator
IO-Cache translator 如果在client端被加载,能够帮助减小server的负载(如果client正在读一些文件,而且这个文件在两次读操作期间没有被修改)。举个例子,在编译内核时所需要访问的头文件。
volume io-cache
type performance/io-cache
option cache-size 64MB # default is 32MB
option page-size 1MB #128KB is default option
option priority *.h:3,*.html:2,*:1 # default is '*:0'
option force-revalidate-timeout 2 # default is 1
subvolumes
end-volume
Booster Translator
同样的,GlusterFS是一个userspace文件系统,它使用FUSE模块去get the fops,许多使用者会问"难道没有一种方法能够消除使用fuse这种上层结构吗?"。
尽管使用FUSE作为上层的理由很小,就像网络的上层结构,但是,他对处理大的文件I/O会很有帮助。因此Gluster团队提供了Booster
translator作为处理文件I/O的一种方法。使用booster
translator,可以带来更高的吞吐。它能够在client或者server端被加载。 注意: booster translator需要预先加载"glusterfs-booster.so".
volume booster
type performance/booster
# option transport-type tcp # Default is 'unix', which is only used when booster is loaded on client side.
# when used on server side, it does take all the options of client protocol and server protocol.
subvolumes
end-volume 注意: 通常情况下,这个没有考虑过小文件,一旦我们使用booster测试了,我们会推荐应用在这种场景里。
集群\聚合相关的Translators
Automatic File Replication Translator (AFR)
AFR
提供了与RAID-1相似的功能。AFR将文件和目录进行复制,存放到subvolume里。所以,如果AFR有4个subvolume,他就会把文件和
目录复制4份。AFR提供了HA高可用。当一个subvolume失效(比如,服务器宕机、网络失效等),AFR会继续服务,从其他副本中响应请求。
AFR同时也提供了自我恢复的功能。假设失效的AFR节点重新恢复了,将会从其他节点自动同步到最新的数据。AFR使用扩展特性,后台跟踪文件和目录的版本已完成自我恢复功能。 注意: 以前支持的"option replicate *html:2,*txt:1" 匹配方式已经从AFR里取消。由Unify的switch.case调度器替代。
volume afr-example
type cluster/afr
subvolumes brick1 brick2 brick3
# option debug on # turns on detailed debug messages in log by default is debugging off
# option self-heal off # turn off self healing default is on
# option read-subvolume brick2 # by default reads are scheduled from all subvolumes
end-volume
这个配置例子描述:将所有的文件和目录在brick1、brick2、brick3上同时存放。subvolume可以是其他类型(storage/posix or protocol/client). 注意: AFR需要在底层文件系统支持extended attribute。
参考 "GlusterFS文档翻译 - Understanding AFR Translator 中文化" 了解更多volume的配置文件和设计样例。
Stripe Translator
striping translator根据你的设计,将文件进行条带化处理,并存放到给定的块大小(默认是128K)的subvolumes(或者他的子节点)上。 注意: Stripe需要在底层文件系统支持extended attribute。
volume stripe
type cluster/stripe
option block-size *:1MB
subvolumes brick1 brick2 brick3 brick4
end-volume
Unify Translator
Unify translator合并了多个存储bricks形成一个大的快速的存储空间。你可以绑定你首选的I/O调度器到unify volume。你可以有多种I/O调度器选择,这个要看你的应用环境。
参见 ( http://www.gluster.org/docs/index.php/Understanding_Unify_Translator
) 了解更多有关于unify translator的信息。
volume unify
type cluster/unify
subvolumes brick1 brick2 brick3 brick4 brick5 brick6 brick7 brick8
option namespace brick-ns # should be a node which is not present in 'subvolumes'
option scheduler rr # simple round-robin scheduler
end-volume 注意:
'1.3.0-pre5'之前的版本,unify translator有一个选项叫'option namespace'。它可以被当作一个empty export,它可以被重建出必要的数据,就像unify也有自我恢复功能一样。
GlusterFS Schedulers
Scheduler依靠负载、有效性和其他因素,决定了如何在聚合的文件系统中去分布一个新的create操作。下面是一个可供你选择的I/O schedulers列表...
ALU Scheduler
ALU即"Adaptive Least Usage"。它是GlusterFS里最高级的调度器。他通过多个纬度的计算来负载均衡访问。通过配置,他会调整自己的I/O模式。当配置适当时,它能够在现有文件系统上发挥很好的负载均衡效果。
ALU scheduler由多种算法子调度器组成。每一个子掉调度器反映出每个subvolume的某一方面的负载情况:* disk-usage - volume的disk空间占用情况