ASM Physically addressed metadata-Partner and Status Table

Partner and Status Table(PST)位于asm磁盘的第二个AU(AU1),也属于Physically addressed metadata,PST对于ASM非常重要,它记录了该磁盘组所有磁盘的磁盘号、磁盘之间的partner关系、failgroup信息、PST心跳信息以及磁盘状态,磁盘的第二个AU(AU1)为PST保留,但并不是磁盘组内的所有磁盘都有PST,磁盘组冗余级别不同,PST的个数也不同,如下:

  • External Redundancy一般有一个PST
  • Normal Redundancy至多有个3个PST
  • High Redundancy 至多有5个PST

PST元数据由ASM实例的GMON进程维护,当mount diskgroup时,GMON进程会读取diskgroup中所有磁盘去找到PST,通过PST确认哪些磁盘是ONLINE可以使用的,哪些是OFFLINE不能使用的。当NORMAL或者HIGH Redundancy的磁盘组有磁盘发生offline或者drop时,GMON会去更新PST,并且最新版本的PST会在磁盘之间发生迁移。

磁盘第二个AU(AU1)的第一个block时PST header block,它属于PST的元数据,描述了PST的副本数量以及分布情况
没有PST的磁盘AU1的第一个block显示如下

拥有PST的磁盘AU1的第一个block显示如下

  • super.time.hi:最近一次更新PST的时间(年、月、日、时)
  • super.time.lo:最近一次更新PST的时间(分、秒、毫秒、微妙)
  • super.last:最近一次更新的PST版本号
  • super.next:下一个可用的PST版本号
  • super.copyCnt:拥有PST的磁盘个数
  • super.copy[n]:PST副本列表,描述PST分布在哪些磁盘上
  • super.incarn:PST副本列表的当前版本号,当PST迁移到其他磁盘上时,该值将变为super.last
  • super.dtaSz:该磁盘组的磁盘数(包含offline和online)

除了PST header block之外,还有PST数据实时记录了磁盘组每一块磁盘的状态以及磁盘之间的PARTNER关系

  • kfdpDtaEv1[n].status:该磁盘状态,正常online可读写的磁盘状态为0x7f也就是127
  • kfdpDtaEv1[n].fgNum:该磁盘所属failgroup number
  • kfdpDtaEv1[n].addTs:该磁盘加入磁盘组的时间戳
  • kfdpDtaEv1[n].partner[i]:该磁盘的partner列表,该列表最大为20个slot,最多只能有8个slot为active状态,也就是说该磁盘最多只能与8块盘互为partner

为了保护NORMAL和HIGH冗余磁盘partner之间的安全和数据一致性,oracle设计了一个PST的心跳块位于拥有PST的磁盘AU1的最后一个块上,当PST心跳延时超过“_asm_hbeatiowait”(默认15s)时,磁盘组将被强制dismount

 

此条目发表在Oracle, Oracle Recover分类目录,贴了, 标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注