glusterfs的directory-layout-spread参数怎么用

本篇内容主要讲解“glusterfs的directory-layout-spread参数怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“glusterfs的directory-layout-spread参数怎么用”吧!

专注于为中小企业提供网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业沿河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

    最近遇到了dht的directory-layout-spread参数,这是个什么东东?默认值为subvolume-count。按字面意思是说layout的分布个数,那具体效果是怎样的呢?我做了个实验:

    1)创建了一个distributed的服务(1 x 4, disk1, disk2,disk3,disk4)test,启动服务。修改fuse客户端对应的vol配置文件trusted-xxxxx-fuse.vol,在dht处添加“option directory-layout-spread 3”字段,将directory-layout-spread设置为3.

    注:目前只能通过手动修改配置文件方式设置该参数,无法通过gluster命令动态修改。

    2)mount客户端,在挂载点内创建a,b三个目录。1. 然后向目录a内copy大量小文件,查看后端brick上文件分布情况发现文件只分布在disk2,disk3,disk4上,而disk1上没有任何文件。2. 删除目录a内的所有文件,然后想目录b内copy大量小文件,查看后端brick上文件分布情况发现文件只分布在disk1,disk2,disk3上,disk4上没有任何文件。

    通过上述实验以及结合源代码分析:directory-layout-spread由用户设定,默认值为dht模块的subvolume-count,用于目录hash布局的子卷个数。即用户可以指定某个目录下的文件分布式到N个(具体是哪几个由hash算法决定)子卷上而不是分布到所有子卷上,根据hash算法,每个目录分配的不同的N个子卷,从而在存在大量目录和文件时,使文件的分布总体上达到均衡状态。

    引入此参数的好处有:

    1)由于目录的layout并不是分配到所有的子卷上,所以出现某子卷down掉时,不会导致所有的目录均出现文件丢失的情况。

    2)由于目录的layout并不是分配到所有的子卷上,所以某子卷引起layout修复时不会导致所有目录均需进行layout修复。

    3)rebalance时不需要所有的子卷都参与(此点尚未验证^-^)。

    后话:

    由glusterfs的directory-layout-spread参数,我想到了moosefs的lables功能(需moosefs 3.0以上),lables是给某个目录指定分配指定的chunkservers(storage server)。比如存储在A目录内的文件访问性能要求较高,我们可以将该目录的文件分配到装有SSD固态硬盘的chunkservers上,而B目录文件性能要求较低,我们可以将该目录的文件分别到普通HDD的chunkservers上。当然后续若有变动或业务需要,可进行SSD--->HDD或HDD---->SSD的动态迁移。

到此,相信大家对“glusterfs的directory-layout-spread参数怎么用”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


文章名称:glusterfs的directory-layout-spread参数怎么用
链接分享:http://scyanting.com/article/gehgij.html