`
lancelotwjq
  • 浏览: 53542 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
虽然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 ...
为了提高以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开源社区使用 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扩展属性

 
英文原文: http://hekafs.org/index.php/2011/04/glusterfs-extended-attributes/   天马行空的意译,对正确性负责,不一定全和准确。   扩展属性是现代文件系统普遍支持,而又不容易被用户发现的特性。   Glusterfs中DHT,AFT, stripe都广泛使 ...

图说DHT

  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

如果是通过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 ...
我在这里 介绍了如何用iozone来测试glusterfs性能。 下面贴上测试结果,并做简单分析。 测试环境: Glusterfs版本 Release3.4 GB级网卡, 即千兆网 测试场景1: 一个节点,使用本地brick,本地挂载测试: Glusterfs的读写性能和Native的差不多,都在200Mb/s(读) 150Mb/s(写) 。 可见此时Fuse层对性能的影响几乎为0, 另外使用perfermance xlator基本没有提高性能。 测试场景2 : ...
当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的术语。   Xlator=translator: glusterfs模块的代名词 Brick :存储目录是Glusterfs的基本存储单元,由可信存储池中服务器上对外输出的目录表示。存储目录的格式由服务器和目录的绝对路径构成,具体如下:SERVER:EXPORT.例如:myhostname:/exports/myexportdir/ Volume :卷是存储目录的逻辑组合。大部分gluster管理操作是在卷上进行的。 Metadata:元数据关于数据的数据,用于描述文件、目录等的相关信息。 FUSE= ...
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详解

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

  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目录(不是volume挂载目录)执行:    getfattr -d -m ".*" -R .
Global site tag (gtag.js) - Google Analytics