`
lancelotwjq
  • 浏览: 53614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Glusterfs扩展属性

 
阅读更多

英文原文: 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"。 这时系统很难或者说几乎不可能自己恢复正常。

 

 

 

 

 

 

分享到:
评论

相关推荐

    glusterfs 管理手册

    glusterfs 管理手册 3.3.0 非常好用的分布式文件系统

    Glusterfs文档分析

    关于Glusterfs分布式文件系统的总结

    GlusterFS Distribution Model.pdf

    2. GlusterFS concepts 3. Introduction to GlusterFS 4. Introduction to DHT - the distribution model 5. Scalability and reliability in GlusterFS 6. Features in DHT 7. Performance translators 8. Demo 9. ...

    glusterfs安装包-centos6.6

    glusterfs安装包-centos6.6

    GlusterFS 101培训课程

    GlusterFS 101培训主要针对企业内训,同时面向IT主管、运维人员、测试人员、研发人员以及售前售后人员,提供GlusterFS相关基本原理、系统运维、软件测试、研发定制、解决方案等培训内容。

    GlusterFS学习笔记.docx

    GlusterFS学习笔记.docx

    glusterfs 结构体系分析

    glusterfs 结构体系分析,挺好的文档。

    glusterfs的那些事-3.4.11

    一些重要的概念与进程前面提到了一些 glusterfs 的数据内存模型,还有一些 posxi 接口的实现,那么 glusterfs 当中其中还有一些其他比较重要

    glusterfs 5.0

    Glusterfs5.0 Ubuntu 18.04离线安装包和安装说明,测试可用

    Keepalived+GlusterFS多机热备集群方案

    通过keepalived,实现多台GlusterFS高可用的存储配置方案。2个节点的GlusterFS无法避免脑裂问题,多台GlusterFS如何提供统一的挂载服务,通过该技术方案,完美的实现了VIP方式的高可用的GlusterFS存储方案。

    GlusterFS分布式文件系统

    GlusterFS分布式文件系统架构介绍,EHA算法介绍,5中分布式卷的详细介绍,性能测试对比

    GlusterFS文件系统的搭建和使用

    GlusterFS文件系统的搭建和使用,运维操作

    glusterfs3.7.9

    glusterfs分布式文件系统3.7.9====稳定版====全家桶安装包

    GlusterFS开发与学习

    GlusterFS入门学习,了解分布式存储系统

    GlusterFS文件系统

    GlusterFS,glusterfs,分布式文件系统

    GlusterFS系统管理手册中文版

    这篇文章主要是自己对英文版的GlusterFS系统管理手册进行翻译,并加入一些自己的理解!希望大家能一起学习一起进步!

    GlusterFS Performance.pdf

    “distributed software RAID” ● Alternative to RAID controllers or 3-way replication ● Cuts storage cost/TB, but computationally expensive ● Better Sequential Write performance for some workloads ...

    GlusterFS与Ceph 性能测试报告

    GlusterFS与Ceph是不一样的存贮系统,GlusterFS更加针对分布式文件系统,虽然目前开发者也正在努力增加块与对象存贮服务。 由于两者在设计理念等各个方面有所不同,单纯的测试比较从功能应用的角度来说意义不大(如...

    GlusterFS分析报告.pdf

    glusterfs分析报告,源码分析,网上下载下来的, 现在上传共享资源。

    glusterfs.tar.gz

    glusterfs rpm安装包以及依赖(离线安装时使用)。使用rpm -ivh * 安装,适合centos 7的平台。包含server和client。

Global site tag (gtag.js) - Google Analytics