前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.glusterfs 目录说明

.glusterfs 目录说明

作者头像
党志强
发布2020-02-01 17:05:54
2K0
发布2020-02-01 17:05:54
举报
文章被收录于专栏:敏而好学

    .glusterfs目录大小基本是等于当前brick中的所有文件大小,原因是里面主要存放的是brick中文件的硬链接。

    .glusterfs目录是3.3版本引入的一个新结构,它是用来做什么的呢?

什么是GFID?

    你可能知道,glusterfs将元数据信息存储在文件的扩展属性中。其中一个元数据就是trusted.gfid,这个就是inode号,在集群中,每个文件都有一个唯一的uuid号,这个在gluster 3.1和3.2版本工作的都很好,但是在文件自动修复(AFR)过程中经常会有一些误判。

    这个GFID用于建立.glusterfs这个目录结构,每个文件都对应一个硬链接放在.glusterfs目录中,存放规则是,前两个数字创建一个目录,接着两个数字创建一个目录,然后目录中存放是一个完整的uuid硬链接。

例如:

代码语言:javascript
复制
# getfattr -m . -d -e hex /data/glusterfs/d_home/stat.c
getfattr: Removing leading '/' from absolute path names
# file: data/glusterfs/d_home/stat.c
trusted.afr.home-client-10=0x000000000000000000000000
trusted.afr.home-client-11=0x000000000000000000000000
trusted.afr.home-client-9=0x000000000000000000000000
trusted.gfid=0xc62757554baf4a33bc7690c56dac23e0

会创建一个硬链接到:

代码语言:javascript
复制
/data/glusterfs/d_home/.glusterfs/c6/27/c6275755-4baf-4a33-bc76-90c56dac23e0

为什么要这样做?

    之前执行删除、重命名、建硬链接的几种方法是有缺陷的。如果一个连接到复制卷并执行了重命名操作的连接丢失,自动修复进程不知道是纯粹的删除或者是重命名等操作,这样会出现问题,可能产生重复的文件导致混乱。

    现在一个文件被删除,.glusterfs目录中对应的文件也会被删除,自动修复守护进程会在好的服务器上遍历,查看到文件是否被存在,由于对应的gfid文件被删除了,所以认为是真正被删除了,如果文件丢失,但对应的gfid文件存在,说明被重命名了,过期的服务器会删除文件名,但不会删除对应的gfid文件,一旦自动修复守护进程遍历到新的文件名,会直接创建到gfid文件的硬链接,因为数据仍然在服务器上,所以这样修复一个重命名文件就避免了数据传输。

    如果gfid文件是普通文件而不是硬链接,那基本上就完蛋了。最终会发生链接分离,原因是一个文件会过期,客户端没有办法知道一个文件和另一个具有相同的gfid,所以会重新创建一个,这样操作会创建大量不必要的重复文件,而使用硬链接后,每个gfid文件会对应一个文件,就不会出现空间浪费。

NFSv4支持

    很快,glusterfs会支持NFS v4,会使用匿名文件描述符。gfid文件允许在目录中创建gfid文件,但不在目录中创建对应的条目。

这对管理员来说有什么新要求吗?

    作为管理员,了解gfid机制对文件修复和裂脑修复是很用帮助,建议详细了解。

    首先,每个brick的根目录对应的gfid是00000000-0000-0000-0000-000000000001,这个文件放在 .glusterfs/00/00目录中,实际上是一个符号链接,连接到“../../..”,其他目录也会链接到这个目录下面。

    如果删除一个文件不删除对应的gfid文件,修复进程会修复该文件,如果gfid文件损坏,对应的文件也会损坏。

参考:

https://joejulian.name/blog/what-is-this-new-glusterfs-directory-in-33/

https://www.gluster.org/pipermail/gluster-users/2014-January/015494.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/06/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档