目录结构

include/

  • config.h: 定义公共的宏
  • bitops.h: 有关的位操作,主要是针对oid的使用情况
  • util.h: 公用操作的实现
  • list.h: 双向链表的实现,主要是参考linux内核代码的实现
  • event.h: epoll异步事件模型
  • logger.h: 日志操作
  • net.h: socket网络IO
  • sheepdog_proto.h: sheepdog中用到的操作类型及数据结构的定义:
  • sheep.h: Sheep本身需要的数据结构和操作类型,与sheedog_proto.h为何分开定义暂不清楚

lib/

  • logger.c: 有关日志文件的操作的实现
  • net.c: 有关socket网络IO的实现
  • event.c: 事件模型的有关实现

sheep/

  • sheep_priv.h: 定义相关数据结构和声明相关函数
  • work.h: 定义工作队列对外提供的数据结构和API
  • work.c: 实现工作线程
  • sdnet.c: 对网络IO的进一步封装,包括回调函数的定义
  • group.c: 利用corosync对组进行管理
  • store.c:  sheepdog有关数据存储、epoch和日志的操作
  • vdi.c:    sheepdog中vdi的相关操作
  • sheep.c:  sheep的main函数入口

collie/

  • treeview.h: vdi tree的有关操作
  • treeview.c: vdi tree的实现
  • collie.c: 对sheep进行管理实现
来自yaronspace.cn  本文链接:http://yaronspace.cn/blog/archives/1209