Staleness Directory包含映射Staleness Registry中插槽到特定磁盘与ASM客户端的元数据。Staleness Directory在磁盘组中的文件号为12(F12)。当需要它时它将与Staleness Registry一起分配。staleness registry在磁盘组中的文件号为254,当磁盘offline时,用于跟踪AU的状态。这两个特性适用于COMPATIBLE.RDBMS设置为11.1或以上且NORMAL或HIGH冗余模式的磁盘组。只有在需要时staleness元信息才会被创建,本身的内容大小会随着offline磁盘的增多而增长。
当一个磁盘offline时,每个RDBMS实例都会从staleness registry中得到一个映射到该磁盘的槽位。这个槽位中的每一个比特位映射这个offline磁盘上的一个AU。当RDBMS实例对offline的磁盘发起写IO操作时,该实例会在staleness registry中修改对应的比特位。
当一个磁盘被online时,ASM会从冗余的extent中拷贝staleness registry比特位中记录的AU。因为只有offline时被改变过的AU会被更新,所以磁盘online操作的效率会高于该盘被drop并添加一块新盘的效率。
当所有磁盘都处于online状态时,意味着不会存在staleness directory与staleness registry
SQL> col "disk group" for 999 SQL> col "group#" for 999 SQL> col "disk#" for 999 SQL> col "disk status" for a30 SQL> select g.name "disk group", 2 g.group_number "group#", 3 d.disk_number "disk#", 4 d.name "disk", 5 d.path, 6 d.mode_status "disk status", 7 g.type 8 from v$asm_disk d, v$asm_diskgroup g 9 where g.group_number=d.group_number and g.group_number<>0 10 order by 1, 2, 3; disk group group# disk# disk PATH disk status TYPE ---------------------------- ------ ----- ---------------------- ------------------------------ ------------------------------ ---------- ACFS 4 0 ACFS_0000 /dev/raw/raw5 ONLINE NORMAL ACFS 4 1 ACFS_0001 /dev/raw/raw6 ONLINE NORMAL ARCHDG 1 0 ARCHDG_0000 /dev/raw/raw2 ONLINE NORMAL ARCHDG 1 1 ARCHDG_0001 /dev/raw/raw9 ONLINE NORMAL CRSDG 2 0 CRSDG_0000 /dev/raw/raw1 ONLINE EXTERN CRSDG 2 1 CRSDG_0001 /dev/raw/raw8 ONLINE EXTERN DATADG 3 0 DATADG_0001 /dev/raw/raw11 ONLINE NORMAL DATADG 3 1 DATADG_0003 /dev/raw/raw4 ONLINE NORMAL DATADG 3 2 DATADG_0002 /dev/raw/raw3 ONLINE NORMAL DATADG 3 3 DATADG_0000 /dev/raw/raw10 ONLINE NORMAL USD 5 0 USD_0000 /dev/raw/raw7 ONLINE NORMAL USD 5 1 USD_0001 /dev/raw/raw12 ONLINE NORMAL 12 rows selected. SQL> select x.number_kffxp "file#",x.group_kffxp "group#",x.disk_kffxp "disk #",d.name "disk name",d.path "disk path",x.xnum_kffxp "virtual extent",pxn_kffxp "physical extent",x.au_kffxp "au" 2 from x$kffxp x, v$asm_disk_stat d 3 where x.group_kffxp=d.group_number 4 and x.disk_kffxp=d.disk_number 5 and x.group_kffxp=3 6 and x.number_kffxp in(12,254) 7 order by 1,2,3; no rows selected
Staleness信息在磁盘offline并且在针对该offline盘有写IO时会才被创建。在下面的例子中,通过ALTER DISKGROUP OFFLINE DISK命令手动把一个磁盘offline。staleness元信息的创建跟磁盘以何种方式何种原因offline无关。
SQL> alter diskgroup datadg offline disk DATADG_0000; Diskgroup altered. SQL> select x.number_kffxp "file#",x.group_kffxp "group#",x.disk_kffxp "disk #",d.name "disk name",d.path "disk path",x.xnum_kffxp "virtual extent",pxn_kffxp "physical extent",x.au_kffxp "au" 2 from x$kffxp x, v$asm_disk_stat d 3 where x.group_kffxp=d.group_number 4 and x.disk_kffxp=d.disk_number 5 and x.group_kffxp=5 6 and x.number_kffxp in(12,254) 7 order by 1,2,3; no rows selected
数据库针对该磁盘组进行不断的写入,过一会就可以观察到该磁盘组中已经创建了staleness directory 和 staleness registry。
SQL> select x.number_kffxp "file#",x.group_kffxp "group#",x.disk_kffxp "disk #",d.name "disk name",d.path "disk path",x.xnum_kffxp "virtual extent",pxn_kffxp "physical extent",x.au_kffxp "au" 2 from x$kffxp x, v$asm_disk_stat d 3 where x.group_kffxp=d.group_number 4 and x.disk_kffxp=d.disk_number 5 and x.group_kffxp=3 6 and x.number_kffxp in(12,254) 7 order by 1,2,3; file# group# disk # disk name disk path virtual extent physical extent au ----- ------ ---------- -------------------- -------------------- -------------- --------------- ---------- 12 3 1 DATADG_0003 /dev/raw/raw4 0 2 1707 12 3 2 DATADG_0002 /dev/raw/raw3 0 1 1707 12 3 3 DATADG_0000 0 0 4294967294 254 3 0 DATADG_0001 /dev/raw/raw11 0 1 1711 254 3 1 DATADG_0003 /dev/raw/raw4 0 0 1706 254 3 1 DATADG_0003 /dev/raw/raw4 1 5 1708 254 3 2 DATADG_0002 /dev/raw/raw3 1 4 1708 254 3 3 DATADG_0000 0 2 4294967294 254 3 3 DATADG_0000 1 3 4294967294 9 rows selected.
上面的结果显示staleness directory(12号文件)分布在1号磁盘(/dev/raw/raw4)的1707号AU与2号磁盘(/dev/raw/raw3)的1707号AU中。staleness registry(254号文件)分布在0号磁盘(/dev/raw/raw11)的1711号AU,1号磁盘(/dev/raw/raw4)的1706,1708号AU,2号磁盘(/dev/raw/raw3)的1708号AU中。
通过kfed工具来定位staleness directory 和 staleness registry的AU分布情况
[grid@jyrac1 ~]$ kfed read /dev/raw/raw11 aun=2 blkn=12 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 4 ; 0x002: KFBTYP_FILEDIR kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 12 ; 0x004: blk=12 kfbh.block.obj: 1 ; 0x008: file=1 kfbh.check: 3437528684 ; 0x00c: 0xcce4866c kfbh.fcn.base: 7010 ; 0x010: 0x00001b62 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfffdb.node.incarn: 1 ; 0x000: A=1 NUMM=0x0 kfffdb.node.frlist.number: 4294967295 ; 0x004: 0xffffffff kfffdb.node.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0 kfffdb.hibytes: 0 ; 0x00c: 0x00000000 kfffdb.lobytes: 1048576 ; 0x010: 0x00100000 kfffdb.xtntcnt: 3 ; 0x014: 0x00000003 kfffdb.xtnteof: 3 ; 0x018: 0x00000003 kfffdb.blkSize: 4096 ; 0x01c: 0x00001000 kfffdb.flags: 1 ; 0x020: O=1 S=0 S=0 D=0 C=0 I=0 R=0 A=0 kfffdb.fileType: 15 ; 0x021: 0x0f kfffdb.dXrs: 19 ; 0x022: SCHE=0x1 NUMB=0x3 kfffdb.iXrs: 19 ; 0x023: SCHE=0x1 NUMB=0x3 kfffdb.dXsiz[0]: 4294967295 ; 0x024: 0xffffffff kfffdb.dXsiz[1]: 0 ; 0x028: 0x00000000 kfffdb.dXsiz[2]: 0 ; 0x02c: 0x00000000 kfffdb.iXsiz[0]: 4294967295 ; 0x030: 0xffffffff kfffdb.iXsiz[1]: 0 ; 0x034: 0x00000000 kfffdb.iXsiz[2]: 0 ; 0x038: 0x00000000 kfffdb.xtntblk: 3 ; 0x03c: 0x0003 kfffdb.break: 60 ; 0x03e: 0x003c kfffdb.priZn: 0 ; 0x040: KFDZN_COLD kfffdb.secZn: 0 ; 0x041: KFDZN_COLD kfffdb.ub2spare: 0 ; 0x042: 0x0000 kfffdb.alias[0]: 4294967295 ; 0x044: 0xffffffff kfffdb.alias[1]: 4294967295 ; 0x048: 0xffffffff kfffdb.strpwdth: 0 ; 0x04c: 0x00 kfffdb.strpsz: 0 ; 0x04d: 0x00 kfffdb.usmsz: 0 ; 0x04e: 0x0000 kfffdb.crets.hi: 33047659 ; 0x050: HOUR=0xb DAYS=0x3 MNTH=0x1 YEAR=0x7e1 kfffdb.crets.lo: 121661440 ; 0x054: USEC=0x0 MSEC=0x1a SECS=0x34 MINS=0x1 kfffdb.modts.hi: 33047659 ; 0x058: HOUR=0xb DAYS=0x3 MNTH=0x1 YEAR=0x7e1 kfffdb.modts.lo: 121661440 ; 0x05c: USEC=0x0 MSEC=0x1a SECS=0x34 MINS=0x1 kfffdb.dasz[0]: 0 ; 0x060: 0x00 kfffdb.dasz[1]: 0 ; 0x061: 0x00 kfffdb.dasz[2]: 0 ; 0x062: 0x00 kfffdb.dasz[3]: 0 ; 0x063: 0x00 kfffdb.permissn: 0 ; 0x064: 0x00 kfffdb.ub1spar1: 0 ; 0x065: 0x00 kfffdb.ub2spar2: 0 ; 0x066: 0x0000 kfffdb.user.entnum: 0 ; 0x068: 0x0000 kfffdb.user.entinc: 0 ; 0x06a: 0x0000 kfffdb.group.entnum: 0 ; 0x06c: 0x0000 kfffdb.group.entinc: 0 ; 0x06e: 0x0000 kfffdb.spare[0]: 0 ; 0x070: 0x00000000 kfffdb.spare[1]: 0 ; 0x074: 0x00000000 kfffdb.spare[2]: 0 ; 0x078: 0x00000000 kfffdb.spare[3]: 0 ; 0x07c: 0x00000000 kfffdb.spare[4]: 0 ; 0x080: 0x00000000 kfffdb.spare[5]: 0 ; 0x084: 0x00000000 kfffdb.spare[6]: 0 ; 0x088: 0x00000000 kfffdb.spare[7]: 0 ; 0x08c: 0x00000000 kfffdb.spare[8]: 0 ; 0x090: 0x00000000 kfffdb.spare[9]: 0 ; 0x094: 0x00000000 kfffdb.spare[10]: 0 ; 0x098: 0x00000000 kfffdb.spare[11]: 0 ; 0x09c: 0x00000000 kfffdb.usm: ; 0x0a0: length=0 kfffde[0].xptr.au: 4294967294 ; 0x4a0: 0xfffffffe kfffde[0].xptr.disk: 3 ; 0x4a4: 0x0003 kfffde[0].xptr.flags: 32 ; 0x4a6: L=0 E=0 D=0 S=1 kfffde[0].xptr.chk: 8 ; 0x4a7: 0x08 kfffde[1].xptr.au: 1707 ; 0x4a8: 0x000006ab kfffde[1].xptr.disk: 2 ; 0x4ac: 0x0002 kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0 kfffde[1].xptr.chk: 133 ; 0x4af: 0x85 kfffde[2].xptr.au: 1707 ; 0x4b0: 0x000006ab kfffde[2].xptr.disk: 1 ; 0x4b4: 0x0001 kfffde[2].xptr.flags: 0 ; 0x4b6: L=0 E=0 D=0 S=0 kfffde[2].xptr.chk: 134 ; 0x4b7: 0x86 kfffde[3].xptr.au: 4294967295 ; 0x4b8: 0xffffffff kfffde[3].xptr.disk: 65535 ; 0x4bc: 0xffff kfffde[3].xptr.flags: 0 ; 0x4be: L=0 E=0 D=0 S=0 kfffde[3].xptr.chk: 42 ; 0x4bf: 0x2a
从上面的kfffde[1].xptr.au=1707,kfffde[1].xptr.disk=2与kfffde[2].xptr.au=1707,kfffde[2].xptr.disk=1可知staleness directory(12号文件)分布在1号磁盘(/dev/raw/raw4)的1707号AU与2号磁盘(/dev/raw/raw3)的1707号AU中。
[grid@jyrac1 ~]$ kfed read /dev/raw/raw11 aun=2 blkn=254 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 4 ; 0x002: KFBTYP_FILEDIR kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 254 ; 0x004: blk=254 kfbh.block.obj: 1 ; 0x008: file=1 kfbh.check: 3989368441 ; 0x00c: 0xedc8ee79 kfbh.fcn.base: 6753 ; 0x010: 0x00001a61 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfffdb.node.incarn: 1 ; 0x000: A=1 NUMM=0x0 kfffdb.node.frlist.number: 4294967295 ; 0x004: 0xffffffff kfffdb.node.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0 kfffdb.hibytes: 0 ; 0x00c: 0x00000000 kfffdb.lobytes: 2097152 ; 0x010: 0x00200000 kfffdb.xtntcnt: 6 ; 0x014: 0x00000006 kfffdb.xtnteof: 6 ; 0x018: 0x00000006 kfffdb.blkSize: 4096 ; 0x01c: 0x00001000 kfffdb.flags: 17 ; 0x020: O=1 S=0 S=0 D=0 C=1 I=0 R=0 A=0 kfffdb.fileType: 25 ; 0x021: 0x19 kfffdb.dXrs: 19 ; 0x022: SCHE=0x1 NUMB=0x3 kfffdb.iXrs: 19 ; 0x023: SCHE=0x1 NUMB=0x3 kfffdb.dXsiz[0]: 4294967295 ; 0x024: 0xffffffff kfffdb.dXsiz[1]: 0 ; 0x028: 0x00000000 kfffdb.dXsiz[2]: 0 ; 0x02c: 0x00000000 kfffdb.iXsiz[0]: 4294967295 ; 0x030: 0xffffffff kfffdb.iXsiz[1]: 0 ; 0x034: 0x00000000 kfffdb.iXsiz[2]: 0 ; 0x038: 0x00000000 kfffdb.xtntblk: 6 ; 0x03c: 0x0006 kfffdb.break: 60 ; 0x03e: 0x003c kfffdb.priZn: 0 ; 0x040: KFDZN_COLD kfffdb.secZn: 0 ; 0x041: KFDZN_COLD kfffdb.ub2spare: 0 ; 0x042: 0x0000 kfffdb.alias[0]: 4294967295 ; 0x044: 0xffffffff kfffdb.alias[1]: 4294967295 ; 0x048: 0xffffffff kfffdb.strpwdth: 8 ; 0x04c: 0x08 kfffdb.strpsz: 20 ; 0x04d: 0x14 kfffdb.usmsz: 0 ; 0x04e: 0x0000 kfffdb.crets.hi: 33047659 ; 0x050: HOUR=0xb DAYS=0x3 MNTH=0x1 YEAR=0x7e1 kfffdb.crets.lo: 121410560 ; 0x054: USEC=0x0 MSEC=0x325 SECS=0x33 MINS=0x1 kfffdb.modts.hi: 33047659 ; 0x058: HOUR=0xb DAYS=0x3 MNTH=0x1 YEAR=0x7e1 kfffdb.modts.lo: 0 ; 0x05c: USEC=0x0 MSEC=0x0 SECS=0x0 MINS=0x0 kfffdb.dasz[0]: 0 ; 0x060: 0x00 kfffdb.dasz[1]: 0 ; 0x061: 0x00 kfffdb.dasz[2]: 0 ; 0x062: 0x00 kfffdb.dasz[3]: 0 ; 0x063: 0x00 kfffdb.permissn: 0 ; 0x064: 0x00 kfffdb.ub1spar1: 0 ; 0x065: 0x00 kfffdb.ub2spar2: 0 ; 0x066: 0x0000 kfffdb.user.entnum: 0 ; 0x068: 0x0000 kfffdb.user.entinc: 0 ; 0x06a: 0x0000 kfffdb.group.entnum: 0 ; 0x06c: 0x0000 kfffdb.group.entinc: 0 ; 0x06e: 0x0000 kfffdb.spare[0]: 0 ; 0x070: 0x00000000 kfffdb.spare[1]: 0 ; 0x074: 0x00000000 kfffdb.spare[2]: 0 ; 0x078: 0x00000000 kfffdb.spare[3]: 0 ; 0x07c: 0x00000000 kfffdb.spare[4]: 0 ; 0x080: 0x00000000 kfffdb.spare[5]: 0 ; 0x084: 0x00000000 kfffdb.spare[6]: 0 ; 0x088: 0x00000000 kfffdb.spare[7]: 0 ; 0x08c: 0x00000000 kfffdb.spare[8]: 0 ; 0x090: 0x00000000 kfffdb.spare[9]: 0 ; 0x094: 0x00000000 kfffdb.spare[10]: 0 ; 0x098: 0x00000000 kfffdb.spare[11]: 0 ; 0x09c: 0x00000000 kfffdb.usm: ; 0x0a0: length=0 kfffde[0].xptr.au: 1706 ; 0x4a0: 0x000006aa kfffde[0].xptr.disk: 1 ; 0x4a4: 0x0001 kfffde[0].xptr.flags: 0 ; 0x4a6: L=0 E=0 D=0 S=0 kfffde[0].xptr.chk: 135 ; 0x4a7: 0x87 kfffde[1].xptr.au: 1711 ; 0x4a8: 0x000006af kfffde[1].xptr.disk: 0 ; 0x4ac: 0x0000 kfffde[1].xptr.flags: 0 ; 0x4ae: L=0 E=0 D=0 S=0 kfffde[1].xptr.chk: 131 ; 0x4af: 0x83 kfffde[2].xptr.au: 4294967294 ; 0x4b0: 0xfffffffe kfffde[2].xptr.disk: 3 ; 0x4b4: 0x0003 kfffde[2].xptr.flags: 32 ; 0x4b6: L=0 E=0 D=0 S=1 kfffde[2].xptr.chk: 8 ; 0x4b7: 0x08 kfffde[3].xptr.au: 4294967294 ; 0x4b8: 0xfffffffe kfffde[3].xptr.disk: 3 ; 0x4bc: 0x0003 kfffde[3].xptr.flags: 32 ; 0x4be: L=0 E=0 D=0 S=1 kfffde[3].xptr.chk: 8 ; 0x4bf: 0x08 kfffde[4].xptr.au: 1708 ; 0x4c0: 0x000006ac kfffde[4].xptr.disk: 2 ; 0x4c4: 0x0002 kfffde[4].xptr.flags: 0 ; 0x4c6: L=0 E=0 D=0 S=0 kfffde[4].xptr.chk: 130 ; 0x4c7: 0x82 kfffde[5].xptr.au: 1708 ; 0x4c8: 0x000006ac kfffde[5].xptr.disk: 1 ; 0x4cc: 0x0001 kfffde[5].xptr.flags: 0 ; 0x4ce: L=0 E=0 D=0 S=0 kfffde[5].xptr.chk: 129 ; 0x4cf: 0x81 kfffde[6].xptr.au: 4294967295 ; 0x4d0: 0xffffffff kfffde[6].xptr.disk: 65535 ; 0x4d4: 0xffff kfffde[6].xptr.flags: 0 ; 0x4d6: L=0 E=0 D=0 S=0 kfffde[6].xptr.chk: 42 ; 0x4d7: 0x2a
从kfffde[0].xptr.au=1706,kfffde[0].xptr.disk=1,kfffde[1].xptr.au=1711,kfffde[1].xptr.disk=0,kfffde[4].xptr.au=1708,kfffde[4].xptr.disk=2,kfffde[5].xptr.au=1708,kfffde[5].xptr.disk=1可知staleness registry(254号文件)分布在0号磁盘(/dev/raw/raw11)的1711号AU,1号磁盘(/dev/raw/raw4)的1706,1708号AU,2号磁盘(/dev/raw/raw3)的1708号AU中。
元信息中并没有很多有价值的信息,连kfed都无法分辨出这种类型元信息block,除了一些比特位,没有太多有价值信息
[grid@jyrac1 ~]$ kfed read /dev/raw/raw4 aun=1707 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 21 ; 0x002: *** Unknown Enum *** kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 0 ; 0x004: blk=0 kfbh.block.obj: 12 ; 0x008: file=12 kfbh.check: 981317996 ; 0x00c: 0x3a7db96c kfbh.fcn.base: 7015 ; 0x010: 0x00001b67 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kffdnd.bnode.incarn: 1 ; 0x000: A=1 NUMM=0x0 kffdnd.bnode.frlist.number: 4294967295 ; 0x004: 0xffffffff kffdnd.bnode.frlist.incarn: 0 ; 0x008: A=0 NUMM=0x0 kffdnd.overfl.number: 1 ; 0x00c: 0x00000001 kffdnd.overfl.incarn: 1 ; 0x010: A=1 NUMM=0x0 kffdnd.parent.number: 0 ; 0x014: 0x00000000 kffdnd.parent.incarn: 1 ; 0x018: A=1 NUMM=0x0 kffdnd.fstblk.number: 0 ; 0x01c: 0x00000000 kffdnd.fstblk.incarn: 1 ; 0x020: A=1 NUMM=0x0 kfdsde.entry.incarn: 1 ; 0x024: A=1 NUMM=0x0 kfdsde.entry.hash: 0 ; 0x028: 0x00000000 kfdsde.entry.refer.number: 4294967295 ; 0x02c: 0xffffffff kfdsde.entry.refer.incarn: 0 ; 0x030: A=0 NUMM=0x0 kfdsde.cid: jyrac2:jyrac:+ASM2 ; 0x034: length=18 kfdsde.indlen: 1 ; 0x074: 0x0001 kfdsde.flags: 0 ; 0x076: 0x0000 kfdsde.spare1: 0 ; 0x078: 0x00000000 kfdsde.spare2: 0 ; 0x07c: 0x00000000 kfdsde.indices[0]: 0 ; 0x080: 0x00000000 kfdsde.indices[1]: 0 ; 0x084: 0x00000000 kfdsde.indices[2]: 0 ; 0x088: 0x00000000 kfdsde.indices[3]: 0 ; 0x08c: 0x00000000 kfdsde.indices[4]: 0 ; 0x090: 0x00000000 kfdsde.indices[5]: 0 ; 0x094: 0x00000000 kfdsde.indices[6]: 0 ; 0x098: 0x00000000 kfdsde.indices[7]: 0 ; 0x09c: 0x00000000 kfdsde.indices[8]: 0 ; 0x0a0: 0x00000000 kfdsde.indices[9]: 0 ; 0x0a4: 0x00000000 kfdsde.indices[10]: 0 ; 0x0a8: 0x00000000 kfdsde.indices[11]: 0 ; 0x0ac: 0x00000000 kfdsde.indices[12]: 0 ; 0x0b0: 0x00000000 kfdsde.indices[13]: 0 ; 0x0b4: 0x00000000 kfdsde.indices[14]: 0 ; 0x0b8: 0x00000000 kfdsde.indices[14]: 0 ; 0x0b8: 0x00000000 [grid@jyrac1 ~]$ kfed read /dev/raw/raw4 aun=1708 | more kfbh.endian: 1 ; 0x000: 0x01 kfbh.hard: 130 ; 0x001: 0x82 kfbh.type: 20 ; 0x002: *** Unknown Enum *** kfbh.datfmt: 1 ; 0x003: 0x01 kfbh.block.blk: 256 ; 0x004: blk=256 kfbh.block.obj: 254 ; 0x008: file=254 kfbh.check: 3890924893 ; 0x00c: 0xe7eacd5d kfbh.fcn.base: 0 ; 0x010: 0x00000000 kfbh.fcn.wrap: 0 ; 0x014: 0x00000000 kfbh.spare1: 0 ; 0x018: 0x00000000 kfbh.spare2: 0 ; 0x01c: 0x00000000 kfdsHdrB.clientId: 996679687 ; 0x000: 0x3b682007 kfdsHdrB.incarn: 0 ; 0x004: 0x00000000 kfdsHdrB.dskNum: 3 ; 0x008: 0x0003 kfdsHdrB.ub2spare: 0 ; 0x00a: 0x0000 ub1[0]: 0 ; 0x00c: 0x00 ub1[1]: 0 ; 0x00d: 0x00 ub1[2]: 0 ; 0x00e: 0x00 ub1[3]: 0 ; 0x00f: 0x00 ub1[4]: 0 ; 0x010: 0x00 ub1[5]: 0 ; 0x011: 0x00 ub1[6]: 0 ; 0x012: 0x00 ub1[7]: 0 ; 0x013: 0x00 ub1[8]: 0 ; 0x014: 0x00 ub1[9]: 32 ; 0x015: 0x20 ub1[10]: 0 ; 0x016: 0x00 ub1[11]: 128 ; 0x017: 0x80 ub1[12]: 0 ; 0x018: 0x00 ub1[13]: 56 ; 0x019: 0x38 ub1[14]: 120 ; 0x01a: 0x78 ub1[15]: 1 ; 0x01b: 0x01 ub1[16]: 32 ; 0x01c: 0x20 ub1[17]: 0 ; 0x01d: 0x00 ub1[18]: 0 ; 0x01e: 0x00 ub1[19]: 0 ; 0x01f: 0x00 ub1[20]: 0 ; 0x020: 0x00 ub1[21]: 0 ; 0x021: 0x00 ub1[22]: 0 ; 0x022: 0x00 ub1[23]: 0 ; 0x023: 0x00 ub1[24]: 0 ; 0x024: 0x00 ub1[25]: 0 ; 0x025: 0x00 ub1[26]: 0 ; 0x026: 0x00 ub1[27]: 0 ; 0x027: 0x00 ub1[28]: 0 ; 0x028: 0x00
小结:
staleness directory 和 staleness registry提供的元信息结构用来为ASM 11中引入的fast mirror resync新特性提供支持。staleness directory是ASM文件号为12,包含了可以把staleness registry中的槽位映射给特定磁盘和客户端的元信息。当磁盘offline时,staleness registry用于跟踪AU的状态。这个特性只在NORMAL或HIGH冗余模式的磁盘组中生效。