
glusterfs
文章平均质量分 59
salareo
这个作者很懒,什么都没留下…
展开
-
如何查看brick上文件扩展属性
在brick目录(不是volume挂载目录)执行: getfattr -d -m ".*" -R .原创 2012-10-25 16:25:00 · 335 阅读 · 0 评论 -
Glusterfs调试
直接attach到相关进程 > gdb(gdb) attach [pid of the glusterfs]....(gdb) detach -------------------------------------------------------------------------------------------------------------...原创 2012-09-03 15:13:44 · 296 阅读 · 0 评论 -
Afr中4种触发自修复的过程
Afr(Auto File Replication) 由于其有副本, 使得自修复(Self Heal)的特性得以实现。 self heal以下简称SH。副本数为n 1. afr_lookup触发 在afr模块中的调用先后关系是 afr_lookup -> n次 afr_lookup_cbk -> afr_lookup_done -> afr_lookup_p...2012-09-03 15:57:22 · 291 阅读 · 0 评论 -
Gluster术语表
接触新的东西的时候,缩写/术语啥的最头疼了。下面我总结了一些glusterfs的术语。 Xlator=translator: glusterfs模块的代名词Brick :存储目录是Glusterfs的基本存储单元,由可信存储池中服务器上对外输出的目录表示。存储目录的格式由服务器和目录的绝对路径构成,具体如下:SERVER:EXPORT.例如:myhostname:/exports/...2012-12-19 16:31:34 · 170 阅读 · 0 评论 -
glusterd中的状态机浅析
当RPC请求到达Glusterd守护进程后, 它会根据rpcsvc_actor_t gd_svc_cli_actors[] 数组来选择相应的处理函数。一般函数名为glusterd_handle_XXX。这类函数一般负责从xdr中提取出请求数据,比如卷名,主机名等等。然后调用glusterd_op_begin 或者其他函数 向请求队列里面注入事件(...2012-12-20 13:14:38 · 214 阅读 · 0 评论 -
如何以nfs方式挂载glusterfs卷
mount -t nfs -o proto=tcp,vers=3 <hostname/ip>:<volume name> <mountpoint>如 mount -t nfs -o proto=tcp,vers=3 localhost:cat /mntproto = protocol, vers = version原创 2012-09-07 14:28:59 · 1276 阅读 · 0 评论 -
glusterfs资料列表
官方: http://www.gluster.org/ http://gluster.org/pipermail/gluster-users/ 邮件列表 http://lists.gnu.org/archive/html/gluster-devel/ 邮件列表 https://access.redhat.com/knowledge/docs/en...原创 2012-09-12 09:42:50 · 113 阅读 · 0 评论 -
Glusterfs吞吐量性能测试
我在这里介绍了如何用iozone来测试glusterfs性能。下面贴上测试结果,并做简单分析。测试环境:Glusterfs版本 Release3.4GB级网卡, 即千兆网测试场景1:一个节点,使用本地brick,本地挂载测试:Glusterfs的读写性能和Native的差不多,都在200Mb/s...原创 2013-01-10 13:55:54 · 941 阅读 · 0 评论 -
关于卷的配置文件(Volume Spec)
Glusterfs使用了xlator模块化架构,用户可以通过编辑卷的配置文件来自定义xlator的结构。下面本人结合源码,说说从配置文件构建xlator结构的流程。 首先要说明的是glusterfs根据执行程序名字的不同,有三种启动方式:glusterd, server , client, 具体可见函数glusterfsd/src/glusterfsd.c:gf_get_process_...原创 2012-10-10 17:07:29 · 358 阅读 · 0 评论 -
Glusterfs+Swift 对外提供对像存储
虽然Glusterfs本身对外只提供POSIX兼容的文件存储, 它也可以借助OpenStack的Swift对外提供对象存储。 我的实验环境为Fedora18,其他环境在命令格式上可能略有不同:1.安装依赖包 yum install glusterfs glusterfs-server glusterfs-fuse glusterfs-swift glusterfs-s...原创 2013-11-27 16:14:51 · 483 阅读 · 0 评论 -
使用glusterfs API
如果是通过rpm安装的glusterfs 在执行 glusterfs/api/example/gfapi.py 之前,需要执行 ln -s /usr/lib64/libglusterfs.so.0 /usr/lib64/libglusterfs.soln -s /usr/lib64/libgfapi.so.0 /usr/lib64/libgfapi.soln -s /u...原创 2013-02-21 10:43:15 · 969 阅读 · 0 评论 -
call_stack 与 call_frame
call_stack由一个或多个call_frame组成。 Each call_frame corresponds to a call to a subroutine which has not yet terminated with a return. For example, if a subroutine named DrawLine is currently running, ...原创 2013-02-28 10:04:51 · 342 阅读 · 0 评论 -
邮件列表语录
Jeff Darcy: The GlusterFS philosophy has generally been to handle performance issues via horizontal scaling - which works even for data sizes greater than any cache - and be conservative about the o...原创 2012-08-30 17:04:02 · 183 阅读 · 0 评论 -
rbthash@glusterfs
Glustefs里面有一个很有意思的数据结构叫做rbthash, 全称是red black tree hash, 顾名思义就是使用红黑树做的哈希, 这个数据结构在io-cache xlator的实现中用到。 首先,有红黑树数据结构(contirb/rbtree), 它是从libavl库中偷过来的。虽然红黑树有点复杂,但是是相当经典的数据结构,有很多资料可以参考,这里就不展...原创 2012-08-27 10:23:58 · 156 阅读 · 0 评论 -
iozone测试glusterfs性能
iozone是linux下的磁盘性能测试工具,编译完成后就一个bin文件,用起来也很方便。./iozone -a -n 1g -g 2g -i 0 -i 1 -i 2 -i 3 -i 7 -f /mnt/iozone -Rb no-rh.xls-a 表示自动测试-n , -g 表示最小和最大的文件大小-i...2012-11-27 11:39:53 · 258 阅读 · 0 评论 -
Glusterfs扩展属性
英文原文: http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/ 天马行空的意译,对正确性负责,不一定全和准确。 扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。 Glusterfs中DHT,AFT, stripe都广泛使用了扩展属性即xattr。 xattr是一个key...2013-03-06 12:27:22 · 236 阅读 · 0 评论 -
glusterfs3.3源码目录结构解析
获得源码:> git clone git://github.com/gluster/glusterfs.git.|-- argp-standalone 命令行参数解析器(Argument Parser)|-- cli gluster命令行(Command Line Interface)|-- contrib| |-- fuse-include | |-- fuse-lib...原创 2012-07-11 17:04:15 · 248 阅读 · 0 评论 -
glusterfs卷类型
Glusterfs提供三种基本卷类型,分别是Replicated, Distributed,Striped,分别对应于xlator中的AFR, DHT, Stripe。 这三种基本类型还可以自由组合,构成3种复合类型和1种混合类型。 Replicated Volume 副本卷 如图,File1同时存储在server1和server2上。 File2也是如此。相当...原创 2012-07-12 14:51:28 · 251 阅读 · 0 评论 -
glusterfs简介
GlusterFS is an open source, clustered file system capable of scaling to several petabytes andhandling thousands of clients. GlusterFS can be flexibly combined with commodity physical, virtual,and ...原创 2012-07-12 17:21:50 · 291 阅读 · 0 评论 -
Glusterfs社区开发流程
Glusterfs开源社区使用 Git + Gerrit + Jenkins的开发流程。 RegisterSign up for an account at http://review.gluster.org by clicking 'Register' on the right-hand top. You can use your gmail login as the o...2013-03-21 14:36:00 · 290 阅读 · 0 评论 -
qemu-kvm使用gluster协议
为了提高以glusterfs做为存储的 虚拟机的IO性能, Bharata B Rao在qemu-kvm中开发了gluster协议,主要就是让qemu-kvm通过glustefs-api绕过fuse直接访问文件,因为fuse被认为带来了性能损耗。 目前支持gluster协议的qemu-kvm版本是1.3.1以上,还没有方便使用的rpm包,所以我们直接从源码编译安装。 # git ...原创 2013-03-29 10:12:42 · 680 阅读 · 0 评论 -
CLI简析
CLI是Command Line Interface的缩写,它是用户与gluster交互界面,一般称为控制台。安装好glusterfs后,输入gluster即可进入该控制台。输入gluster help 或者 进入控制台后输入help即可查看命令列表。CLI的源码在glusterfs/cli/src中:cli.hcli...2012-07-27 14:16:17 · 425 阅读 · 0 评论 -
glusterfs中Trie树的使用
Trie树,又称前缀数,是一种有序树,经常用来做字典。所以又称字典树。 同样,在Glusterfs中,Trie树就作为字典树使用,完成两个功能:1.判断用户输入的volume option是否存在 2. 若不存在,给出与用户输入最相似的选择,比较人性化。下面一张来自维基百科 的图片形象的描述了这个数据结构 图中这颗树存储了"A", "to", "tea",...原创 2012-07-30 10:41:12 · 105 阅读 · 0 评论 -
CircleBuffer@glusterfs
CircleBuffer是逻辑上呈环形的缓冲区。 当缓冲区满了的时候可以让新的数据覆盖最旧的数据。 Glusterfs使用CircleBuffer来存储Afr的自修复日志。CircleBuffer在 libglusterfs/src/circ-buff.c 中定义:下面介绍下其关键函数 __cb_add_entry_buffer (...原创 2012-11-05 17:22:08 · 261 阅读 · 0 评论 -
epoll与event_pool
epoll is a scalable I/O event notification . 它在内核2.5.44首次引入, 用来取代POSIX select和poll系统调用。 说到select和poll,也就是IO多路转接,在APUE 14.5节有详细介绍:转自http://blog.youkuaiyun.com/delphiwcdj/article/details/8827659--...原创 2012-11-07 14:56:06 · 388 阅读 · 0 评论 -
inode详解
inode是glusterfs中重要的数据结构之一, glusterfs用它来表示文件系统中的inode,但二者不是等价的。 inode数据结构 先粗略看下inode数据结构定义,对它有个整体印象 typedef struct _inode inode_t;struct _inode { inode_table_t *table...原创 2012-11-23 16:38:21 · 450 阅读 · 0 评论 -
图说DHT
dht-diskusage.c 它包含dht中关于磁盘空间的获取与控制相关函数。 图片中箭头代表数据流,其他是调用流。图片中的核心数据是conf->du_stats, 图片左半部分的函数负责获取数据存入du_stats结构体,而右半部分函数使用du_stats判断subvol是否可以再存放文件。 dht-rename.c 它包含dht层...2013-02-28 14:22:50 · 263 阅读 · 0 评论