- 博客(27)
- 收藏
- 关注
原创 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 468
原创 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 643
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 270
Glusterfs扩展属性
英文原文: http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/ 天马行空的意译,对正确性负责,不一定全和准确。 扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。 Glusterfs中DHT,AFT, stripe都广泛使用了扩展属性即xattr。 xattr是一个key...
2013-03-06 12:27:22 211
图说DHT
dht-diskusage.c 它包含dht中关于磁盘空间的获取与控制相关函数。 图片中箭头代表数据流,其他是调用流。图片中的核心数据是conf->du_stats, 图片左半部分的函数负责获取数据存入du_stats结构体,而右半部分函数使用du_stats判断subvol是否可以再存放文件。 dht-rename.c 它包含dht层...
2013-02-28 14:22:50 254
原创 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 319
原创 使用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 941
原创 Glusterfs吞吐量性能测试
我在这里介绍了如何用iozone来测试glusterfs性能。下面贴上测试结果,并做简单分析。测试环境:Glusterfs版本 Release3.4GB级网卡, 即千兆网测试场景1:一个节点,使用本地brick,本地挂载测试:Glusterfs的读写性能和Native的差不多,都在200Mb/s...
2013-01-10 13:55:54 909
glusterd中的状态机浅析
当RPC请求到达Glusterd守护进程后, 它会根据rpcsvc_actor_t gd_svc_cli_actors[] 数组来选择相应的处理函数。一般函数名为glusterd_handle_XXX。这类函数一般负责从xdr中提取出请求数据,比如卷名,主机名等等。然后调用glusterd_op_begin 或者其他函数 向请求队列里面注入事件(...
2012-12-20 13:14:38 198
Gluster术语表
接触新的东西的时候,缩写/术语啥的最头疼了。下面我总结了一些glusterfs的术语。 Xlator=translator: glusterfs模块的代名词Brick :存储目录是Glusterfs的基本存储单元,由可信存储池中服务器上对外输出的目录表示。存储目录的格式由服务器和目录的绝对路径构成,具体如下:SERVER:EXPORT.例如:myhostname:/exports/...
2012-12-19 16:31:34 156
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 245
原创 inode详解
inode是glusterfs中重要的数据结构之一, glusterfs用它来表示文件系统中的inode,但二者不是等价的。 inode数据结构 先粗略看下inode数据结构定义,对它有个整体印象 typedef struct _inode inode_t;struct _inode { inode_table_t *table...
2012-11-23 16:38:21 420
原创 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.csdn.net/delphiwcdj/article/details/8827659--...
2012-11-07 14:56:06 376
原创 CircleBuffer@glusterfs
CircleBuffer是逻辑上呈环形的缓冲区。 当缓冲区满了的时候可以让新的数据覆盖最旧的数据。 Glusterfs使用CircleBuffer来存储Afr的自修复日志。CircleBuffer在 libglusterfs/src/circ-buff.c 中定义:下面介绍下其关键函数 __cb_add_entry_buffer (...
2012-11-05 17:22:08 243
原创 关于卷的配置文件(Volume Spec)
Glusterfs使用了xlator模块化架构,用户可以通过编辑卷的配置文件来自定义xlator的结构。下面本人结合源码,说说从配置文件构建xlator结构的流程。 首先要说明的是glusterfs根据执行程序名字的不同,有三种启动方式:glusterd, server , client, 具体可见函数glusterfsd/src/glusterfsd.c:gf_get_process_...
2012-10-10 17:07:29 339
原创 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 107
原创 如何以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 1240
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 266
原创 Glusterfs调试
直接attach到相关进程 > gdb(gdb) attach [pid of the glusterfs]....(gdb) detach -------------------------------------------------------------------------------------------------------------...
2012-09-03 15:13:44 271
原创 邮件列表语录
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 167
原创 rbthash@glusterfs
Glustefs里面有一个很有意思的数据结构叫做rbthash, 全称是red black tree hash, 顾名思义就是使用红黑树做的哈希, 这个数据结构在io-cache xlator的实现中用到。 首先,有红黑树数据结构(contirb/rbtree), 它是从libavl库中偷过来的。虽然红黑树有点复杂,但是是相当经典的数据结构,有很多资料可以参考,这里就不展...
2012-08-27 10:23:58 140
原创 glusterfs中Trie树的使用
Trie树,又称前缀数,是一种有序树,经常用来做字典。所以又称字典树。 同样,在Glusterfs中,Trie树就作为字典树使用,完成两个功能:1.判断用户输入的volume option是否存在 2. 若不存在,给出与用户输入最相似的选择,比较人性化。下面一张来自维基百科 的图片形象的描述了这个数据结构 图中这颗树存储了"A", "to", "tea",...
2012-07-30 10:41:12 91
CLI简析
CLI是Command Line Interface的缩写,它是用户与gluster交互界面,一般称为控制台。安装好glusterfs后,输入gluster即可进入该控制台。输入gluster help 或者 进入控制台后输入help即可查看命令列表。CLI的源码在glusterfs/cli/src中:cli.hcli...
2012-07-27 14:16:17 408
原创 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 275
原创 glusterfs卷类型
Glusterfs提供三种基本卷类型,分别是Replicated, Distributed,Striped,分别对应于xlator中的AFR, DHT, Stripe。 这三种基本类型还可以自由组合,构成3种复合类型和1种混合类型。 Replicated Volume 副本卷 如图,File1同时存储在server1和server2上。 File2也是如此。相当...
2012-07-12 14:51:28 231
原创 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 232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人