全称grid plug and play。
目的:
1)将集群的基本配置信息保存在本地,以便在启动集群时能够从本地文件中获得足够的信息,而不再需要完全依赖OCR
2)通过和mdnsd进行通信,更灵活的识别集群中的节点,使集群结构更加灵活,而不再需要从OCR中获取节点列表
gpnp组件由2部分组成:gpnp wallet和gpnp profile
gpnp wallet
功能是保存需要访问的gpnp profile文件的客户签名信息,当客户访问gpnp profile时通过wallet中的签名信息进行验证,确保只有指定的客户能访问profile文件。这部分内容不需要用户配置,在安装gi时,oracle会自动完成签名信息的初始化。
gpnp的wallet文件可在<gi home>/gpnp/wallets/peer下找到

gpnp profile
是一个xml文件,用于保存启动(bootstrap)集群节点时所需的必要信息。gpnp profile中的信息类似数据库bootstrap时所需要的信息。
gpnp profile保存在路径<gi home>/gpnp/profiles/peer下
![]()
可通过gpnptool工具来获取gpnp profile的内容

profilesequence表示该gpnp profile的序列号,该文件做一次修改,序列号+1.
clusteruid表示集群的global id。12c开始gi通过clusteruid来唯一标识一个集群。随机生成,无法修改。
clustername表示集群名称。12c前gi通过集群名称来标识集群。
gpnp:network id="net1" IP="*.*.*.0" adapter="eth0" use="public"表示集群公网信息。use用于区分网络,这个选项只能是public或者cluster_interconnect。
gpnp:network id="net2" IP="*.*.*.0" adapter="eth1" use="cluster_interconnect"表示集群的私网信息。id表示网络资源的名称,ip指定子网信息,adapter为网卡信息。
orcl:CSS-profile id="css" discoverystring="+asm" leaseduration="400" 其中id="css"表示这部分信息是css需要的。discoverystring="+asm"表示表决盘(VF)保存的路径,cssd在启动时会在这个路径下扫描表决盘,上面例子中,cssd会扫描ASM的disk_string发现表决盘。leaseduration="400"定义了节点号的租借有效期。
orcl:ASM-profile id="asm" discoverystring="" SPFile="+DATA/test-cluster/asmparameterfile/register.253.827833411"
其中 id="asm"表示这部分信息是ASM需要使用的。spfile指定了asm实例启动时需要访问的spfile位置。
问:
gpnp profile中部分信息是集群信息(集群名称、公网私网定义等等),那么这些信息改变后,如何实现信息的同步?
gpnpd守护进程
gpnp是一个多线程的进程,主要线程包括:
gpnp主线程(clsgpnpd_mainwork):该线程负责主要工作,例如,访问gpnp profile,对该文件进行读取。
push线程(clsgpnpd_pushthread):当本地gpnp profile发生改变or需要向远程节点推送gpnp profile,该线程负责传输gpnp profile。
派遣线程(clsgpnpd_dispathThread):该线程负责接受gpnpd收到的各种信息并分派给对应的线程。
OCR线程(clsgpnp_ocrDetectThread):该线程在发现OCR中相关的信息发生改变时通知派遣线程。
可回答上面的问题:
在集群部分信息发生变更时,本地gpnpd的派遣线程通知所有远程节点的派遣线程,发生了配置改变。本地gpnpd的push线程将新版本的gpnp profile发送给所有远程节点。远程节点的派遣线程收到信息后,开始接收新版本的gpnp profile。
gpnpd被启动时:
1)gpnpd的主线程访问gpnp profile,并加载到cache中打开。如果本地的gpnp profile丢失,可以通过OLR中的信息重新构建gpnp profile。
2)派遣线程向集群的所有节点发送信息,并确认最新的gpnp profile位置。
3)拥有最新版本gpnp profile的节点向该节点发送信息。
4)本地节点收到最新版本的gpnp profile后,开始向外提供服务。

文章讲述了GridPlugAndPlay(gpnp)的组件gpnpwallet和gpnpprofile的作用,以及gpnpd守护进程在集群配置变更时的同步流程。gpnpprofile存储启动集群所需信息,gpnpd通过多线程处理本地和远程节点的配置更新。
131

被折叠的 条评论
为什么被折叠?



