GlusterFS 主函数工作流程.pdf

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GlusterFS 主函数工作流程

GlusterFS -- 01_ GlusterFS -- 01_ GGlluusstteerrFFSS源码分析 0011__主函数工作流程 GlusterFS GlusterFS GGlluusstteerrFFSS 主函数工作流程 /**************************************************** * $Version: glusterfs-2.0.3 * $Draft: 2009.09 * $Email: NNing.a# * $Link: /u/33029 * * ***~~~ 仅供学习交流,请勿用于其它用途! ~~~*** ****************************************************/ glusterfs主函数实现在glusterfs/glusterfsd/src/glusterfsd.c文件中。主函数大概分两步, 一是设置glusterfs进程运行的相关环境变量,另一个是转入事件处理部分。需要注意的几个 模块: 1.开辟IO 缓存 1.开辟IO 缓存 11..开开辟辟IIOO 缓缓存存 ctx-page_size =128 *1024; //128k ctx-iobuf_pool =iobuf_pool_new (8* 1048576,ctx-page_size + 4096);//(8M,132K) 开辟一个IO缓冲池(iobuf_pool)的过程涉及到主要三个数据结构:structiobuf_pool,struct iobuf_arena,struct iobuf,其中从整体上理解就是iobuf_pool包含了iobuf_arena,iobuf_arena 又包含了数个iobuf,实际上他们是通过链表来相互关联起来的。 //iobuf 结构体 -- 最小的io buffer单元 struct iobuf struct iobuf ssttrruucctt iioobbuuff{ union { // 链接同一个arena 中其它iobuf 的指针 struct list_head list; struct { struct iobuf *next; struct iobuf *prev; }; }; struct iobuf_arena *iobuf_arena; // 从属的iobuf_arena gf_lock_t lock;/* for-ptrand -ref*/ int ref; /* 0==passive, 0==active */ void *ptr; /* usable memoryregion by the consumer*/ // 初始化iobuf_arena 块时,每个iobuf 的地址会被映射 1/20 GlusterFS -- 01_ GlusterFS

您可能关注的文档

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档