- 浏览: 54889 次
- 性别:
- 来自: 北京
最新评论
-
mayatama:
jiakon 写道你好,请问yum install glust ...
Glusterfs+Swift 对外提供对像存储 -
jiakon:
你好,请问yum install glusterfs glus ...
Glusterfs+Swift 对外提供对像存储
文章列表
虽然Glusterfs本身对外只提供POSIX兼容的文件存储, 它也可以借助OpenStack的Swift对外提供对象存储。
我的实验环境为Fedora18,其他环境在命令格式上可能略有不同:
1.安装依赖包
yum install glusterfs glusterfs-server glusterfs-fuse glusterfs-swift glusterfs-swift-account glusterfs-swift-container glusterfs-swift-object glusterfs-swift-proxy glusterfs-swift-p ...
qemu-kvm使用gluster协议
- 博客分类:
- glusterfs
为了提高以glusterfs做为存储的 虚拟机的IO性能, Bharata B Rao在qemu-kvm中开发了gluster协议,主要就是让qemu-kvm通过glustefs-api绕过fuse直接访问文件,因为fuse被认为带来了性能损耗。
目前支持gluster协议的qemu-kvm版本是1.3.1以上,还没有方便使用的rpm包,所以我们直接从源码编译安装。
# git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
# cd qemu-kvm
# ./configure
这时,如果已经安装了glu ...
Glusterfs社区开发流程
- 博客分类:
- glusterfs
Glusterfs开源社区使用 Git + Gerrit + Jenkins的开发流程。
Register
Sign 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 openID identity.
首先需要去 http://review.gluster.org 注册一个账号,你需要有gmail账号或者其他OpenID账号来注册和登陆。
SSH key ...
Glusterfs扩展属性
- 博客分类:
- glusterfs
英文原文: http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/
天马行空的意译,对正确性负责,不一定全和准确。
扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。
Glusterfs中DHT,AFT, stripe都广泛使 ...
dht-diskusage.c
它包含dht中关于磁盘空间的获取与控制相关函数。
图片中箭头代表数据流,其他是调用流。
图片中的核心数据是conf->du_stats, 图片左半部分的函数负责获取数据存入du_stats结构体,而右半部分函数使用du_stats判断subvol是否可以再存放文件。
dht-rename.c
它包含dht层对文件/文件夹进行rename(mv)操作
图中,当is dir = yes的时候,dht先对真正存放dir的client请求rename操作,操作成功后,再对其他client发送rename请求。 ...
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, having been called by a subroutine DrawSquare, the top part of the call stack might be laid out like ...
使用glusterfs API
- 博客分类:
- glusterfs
如果是通过rpm安装的glusterfs
在执行 glusterfs/api/example/gfapi.py 之前,需要执行
ln -s /usr/lib64/libglusterfs.so.0 /usr/lib64/libglusterfs.so
ln -s /usr/lib64/libgfapi.so.0 /usr/lib64/libgfapi.so
ln -s /usr/lib64/libgfxdr.so.0 /usr/lib64/libgfxdr.so
运行:python gfapi.py abc /mnt
PASS: wrote 5 bytesPA ...
Glusterfs吞吐量性能测试
- 博客分类:
- glusterfs
我在这里
介绍了如何用iozone来测试glusterfs性能。
下面贴上测试结果,并做简单分析。
测试环境:
Glusterfs版本 Release3.4
GB级网卡, 即千兆网
测试场景1:
一个节点,使用本地brick,本地挂载测试:
Glusterfs的读写性能和Native的差不多,都在200Mb/s(读) 150Mb/s(写) 。
可见此时Fuse层对性能的影响几乎为0, 另外使用perfermance xlator基本没有提高性能。
测试场景2 :
...
glusterd中的状态机浅析
- 博客分类:
- glusterfs
当RPC请求到达Glusterd守护进程后, 它会根据rpcsvc_actor_t gd_svc_cli_actors[] 数组来选择相应的处理函数。
一般函数名为glusterd_handle_XXX
。
这类函数一般负责从xdr中提取出请求数据,比如卷名,主机名等等。
然后调用glusterd_op_begin 或者其他函数 向请求队列里面注入事件(inject event)。
glusterd有两个状态机(state machine): friend sm 和 operation sm ,
friend sm负责处理pe ...
Gluster术语表
- 博客分类:
- glusterfs
接触新的东西的时候,缩写/术语啥的最头疼了。下面我总结了一些glusterfs的术语。
Xlator=translator: glusterfs模块的代名词
Brick :存储目录是Glusterfs的基本存储单元,由可信存储池中服务器上对外输出的目录表示。存储目录的格式由服务器和目录的绝对路径构成,具体如下:SERVER:EXPORT.例如:myhostname:/exports/myexportdir/
Volume :卷是存储目录的逻辑组合。大部分gluster管理操作是在卷上进行的。
Metadata:元数据关于数据的数据,用于描述文件、目录等的相关信息。
FUSE= ...
iozone测试glusterfs性能
- 博客分类:
- 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
...
inode是glusterfs中重要的数据结构之一, glusterfs用它来表示文件系统中的inode,但二者不是
等价的。
inode数据结构
先粗略看下inode数据结构定义,对它有个整体印象
typedef struct _inode inode_t;
struct _inode {
inode_table_t *table; /* the table this inode belongs to */
uuid_t gfid;
gf_lock_ ...
epoll与event_pool
- 博客分类:
- glusterfs
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
------------------------------------------------
当从一个描述符读,然后又写到另一个描述符时,可以在下列形式的循环中使用阻塞I/O:
但是如果需要从 ...
CircleBuffer
是逻辑上呈环形的缓冲区
。 当缓冲区满了的时候可以让新的数据覆盖最旧的数据。
Glusterfs使用CircleBuffer来存储Afr的自修复日志。
CircleBuffer在 libglusterfs/src/circ-buff.c
中定义:
下面介绍下其关键函数 __cb_add_entry_buffer (buffer_t *buffer, void *item)
该函数负责添加一个buffer到环中:
//当环满了时候
...
如何查看brick上文件扩展属性
- 博客分类:
- glusterfs
在brick目录(不是volume挂载目录)执行:
getfattr -d -m ".*" -R .