Quantcast
Channel: gi –数据库恢复服务热线:13764045638 QQ: 47079569
Viewing all articles
Browse latest Browse all 7

GI 中新的基础架构–MDNS, gipc 和 gpnp 是如何协同工作的

$
0
0

  最近一直有朋友来询问oracle 的集群管理软件从11.2 这个版本开始开始出现的新的组件mdns, gipc, gpnp 是做什么的,以及他们是如何协调工作的。所以就花了时间写了这篇文章来解释一下这些新组件的基本功能和它们之间是如何协同工作的。


  首先来回顾一下历史。对于10g版本的oracle 集群管理软件(CRS),当集群启动的时候,集群节点的列表和每个节点的公网地址,私网地址是可以从OCR当中获得的,而且如果集群包含多块私有网卡的话,是需要依赖于OS层面的网卡绑定软件(例如:linux bonding)的,也就是说集群的私网网卡数量是对CRS透明的,集群只需要知道经过聚合之后的网卡名称就可以了。


  但是,在11.2 这个版本开始,oracle的集群管理软件(GI)开始需要自己来管理集群的网卡,也就是说GI要能够管理多块私网网卡;另外,由于集群启动的流程发生了改变,OLR的出现改变了11.2 集群启动的行为,OCR在集群最初启动时不再被使用了,而完全变成了集群应用资源层的一个注册表(registry)。所以,就需要一些组件来完成节点发现,集群节点列表构建的工作(这部分信息在10.2中都是在OCR中写好的)。所以,就出现了:


1. mdns:这个组件以mdmsd.bin 的方式出现,他负责在集群启动时找到本地节点集群需要使用的所有网卡,以便为节点发现提供基本的网络通信功能。


2. gpnpd:这个组件以gpnpd.bin 的方式出现,它通过维护gpnpd profile 的方式把构建集群所需要的核心信息在节点之间进行同步。当然,这种信息同步的过程是需要借助mdns来实现的。具体说,gpnpd再启动之后会:


步骤1:读取本地的gpnp profile得到构建集群的核心信息。


步骤2:和mdns进行通行,通过mdns发现的网卡向网络中发送消息,找到集群中的其他节点。


步骤3:和其他的节点建立链接,同步彼此的gpnp profile 文件。


    注意:详细的gpnpd 的功能,请参考之前的文章“11gR2新特性---Gpnp守护进程


     当gpnp 正常启动成功之后,实际上节点发现,集群节点列表构建的工作就结束了


   3.gipc:这部分功能是以gipcd.bin 的方式出现的,它负责管理集群中节点的私网网卡。并建立节点和节点之间通过私网的点对点通信。它相当于gpnp 的一个重要客户,因为集群的核心信息是要通过gpnp来提供的。关于gipc的详细功能,请参考我之前的文章“11gR2新特性---gipc守护进程”。


  通过上面的三个组件,就可以完成节点发现,集群节点列表构建的工作,以及管理节点私有网络的工作。而这种设计的另外一个好处在于,它能够使集群的结构更加的灵活和有弹性。如果简单的解释着三个组件的关系的话,可以认为,Mdns gpnp 提供了网络通信服务, gpnp相当于mdns的客户;gpnp相当于集群的其他上层资源的一个服务组件,它能够向集群的其它组件提供集群的基本核心信息。gipc相当于gpnpd的一个重要客户,它负责管理集群节点的私有网络。


  望这篇文章对于大家理解这三个11.2新出现的组件有所帮助。


Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles





Latest Images