WEB开发网
开发学院服务器服务器方案 集群系统MOSIX分析(4) 阅读

集群系统MOSIX分析(4)

 2008-12-01 11:02:39 来源:WEB开发网   
核心提示:作为一个集群系统,节点之间要经常合作,集群系统MOSIX分析(4),不时的散布和收集负载信息,获取其它节点的情况,它维持着该连接的状态和一些控制信息,定义如下:struct mosix_link {struct socket *sock; /* 套接字控制结构,另外,我们也已经看到

作为一个集群系统,节点之间要经常合作,不时的散布和收集负载信息,获取其它节点的情况。另外,我们也已经看到,在MOSIX中,一个迁移进程实际上是由deputy和remote两部分组成的。Deputy和remote是两个单独的进程,分别位于不同的节点,但在逻辑上,它们却是看出一个独立的进程的。它们之间经常要通过频繁的通讯来合作。因此,通信机制是至关重要的。MOSIX提供了一个连接层抽象(linker layer),在套接字接口之上封装了一层,提供了一系列类似BSD SOCKET的接口函数用于在进程间接收和发送MOSIX相关数据的。MOSIX连接是位于内核中的,对用户态进程是不可见的。

作为一个集群系统,MOSIX中的每个节点都被分配一个唯一的节点号,节点号是一个整型值,从1开始连续分配的。0表示的是当前节点。通过节点号抽象,可以很方便的定位某个节点。但是通过网络发送和接收数据,都是以IP地址来寻找节点的。因此,MOSIX系统提供了一系列函数用于在节点号和IP地址间的互相转换和匹配。每个节点在/etc/目录下都存在着一个配置文件mosix.map,保存着整个集群系统节点的IP地址信息。该文件的每一行都包含3个域,分别为节点范围的起始号,IP地址或主机名,该范围中的节点数目。例如某系统的配置文件如下:

1  172.26.4.138  1

2  172.26.4.139  2

4  MOSIX_4    1

机器MOSIX_4的IP为172.26.4.22。在这个系统中,节点1的IP为172.26.4.138。节点2,3的IP则分别为172.26.4.139,172.26.4.140。节点4的IP则为172.26.4.22。

数据结构

struct mosix_link表示一条MOSIX连接,它维持着该连接的状态和一些控制信息。定义如下:

struct mosix_link {
  struct socket *sock; /* 套接字控制结构,用于通讯,通过它进行实际的网络操作*/
  int flags;   /* 状态标志 */
  int dlen;    /*悬挂数据的长度 */
  int peer;    /* 连接另一端的节点号*/
  char *hideptr;   /*指向当前隐藏数据的指针*/
  char *hidebuf;   /*指向隐藏数据缓冲区起始地址的指针 */
  int hidelen;    /* 隐藏数据的长度*/
  char head[COMM_DEF_HEADSIZE];  /* 存放着消息头*/
};
struct comm_header {消息格式
  unsigned short olen;//Option data length--
  unsigned short hlen;
  int type;
  int dlen;
  int regs;
  int dfsalen;
};
#define COMM_HLEN  (sizeof(struct comm_header))

1 2 3 4 5  下一页

Tags:集群 MOSIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接