这篇文章主要介绍“GlusterFS扩展属性是什么”,在日常操作中,相信很多人在GlusterFS扩展属性是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”GlusterFS扩展属性是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。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.* xattrDHT功能的核心是一致性哈希(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”。 这时系统很难或者说几乎不可能自己恢复正常。到此,关于“GlusterFS扩展属性是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!
相关推荐: c语言中怎么使用DES_ncbc_encrypt
这篇文章主要介绍“c语言中怎么使用DES_ncbc_encrypt”,在日常操作中,相信很多人在c语言中怎么使用DES_ncbc_encrypt问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言中怎么使用DES_ncbc_en…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。