设为首页 收藏本站
查看: 1195|回复: 0

[经验分享] GlusterFS扩展属性

[复制链接]

尚未签到

发表于 2019-2-1 11:01:55 | 显示全部楼层 |阅读模式
  英文原文: http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/
  天马行空的意译,对正确性负责,不一定全和准确。
  扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。
  Glusterfs中DHT,AFT, stripe都广泛使用了扩展属性即xattr。
  xattr是一个key-value结构, 包括一个字符串key, 和一个二进制的value。我们有get/set/list xattr方法来操作它们。
  在glusterfs中广泛使用了这样一个小伎俩:  当set/get xattr的时候,会触发gluster server的相关操作。例如:DHT中的 reblance代码使用了一个特定的attr来触发重新计算DHT layout的操作。
  下面着重讨论 DHT中的trusted.glusterfs.dht xattr和 AFR中的trusted.glusterfs.afr.* xattr
  DHT功能的核心是一致性哈希(consistent hashing)。文件存放的地点取决于文件名的哈希值, 每个brick都有一个哈希值区间,文件名的哈希值的落在某brick的哈希值区间,文件就存放在该birck上。
  而目录有点不一样,目录在每个brick上都有。但是每个目录的xattr trusted.glusterfs.dht都不一样。因为它们所具有的哈希区间不同。
  当lookup目录的时候,我们需要收集这些xattr, 组成一个table。同时需要注意区间之间存在的空隙和重叠的问题。
  不难发现,这种方法有严重的扩展性(scalability)问题, 每当添加/删除一个brick的时候,我们就要重新计算xattr中存放的哈希区间。
  然而, AFR在使用attr方面,比DHT更加复杂。
  比如一个叫test1的afr卷,由test1-client-0和test1-client-1两个brick组成。 那么test1-client-0上的文件就会具有名为 trusted.afr.test1-client-1的xattr.
  这是因为AFR的目的就是为了从failure中恢复。所以在一个brick上的操作会在其他所有brick上的xattr中记录,这样当副本数目多余2个时候很浪费。:-/
  在xattr中存放的是“等待操作的counter”,
  操作分为三种类型:

  •   数据操作– mostly writes but also e.g. truncates
  •   元数据操作– e.g. chmod/chown/chgrp, and xattrs (yes, this gets recursive)
  •   文件操作 – create, delete, rename, etc.
  每次文件系统操作执行前,都会首先对counter加1。
  执行完成后,再对counter 减一。
  正常情况下,counter应该回到0。入如果有节点中途出了问题,counter不是0,那么我们就可以知道这个节点out of date, 并启动self-heal修复它。
  那么可想而知,最严重的情况是 AFR两个副本节点的counter都不是0, 我们将这种特殊情况称为 "split brain"。 这时系统很难或者说几乎不可能自己恢复正常。
  转自:http://glusterfs.iteye.com/blog/1823744


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670378-1-1.html 上篇帖子: GlusterFS小文件读写导致内存泄漏问题 下篇帖子: 如何选择GlusterFS版本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表