Oracle ASM Attributes Directory

eric0435發表於2017-01-02

Attributes Directory包含了關於磁碟組屬性的後設資料。只有當compatible.asm設定為11.1或更高版本時目錄才會在磁碟組中存在。Attribute Directory在磁碟組中的檔案號為9。直到ASM 11.1版本開始,才引入了磁碟組屬性的概念,它被用來細粒度的調整磁碟組的屬性。有些屬性只能在磁碟組建立時指定(如au_size),AU_SIZE屬性儲存在disk header中。如果compatible.asm設定為11.1或更高版本那麼compatible.asm將會儲存在PST中,否則compatible.asm將會被儲存在disk header中。在Oracle 11gr1中,compatible.rdbms與disk_repair_time以及compatible.asm被儲存在屬性目錄中。有些屬性可以在任何時候指定(如disk_repair_time)。

公共屬性
大多數屬性存放在屬性目錄並且可以透過查詢v$asm_attribute檢視獲得。我們透過查詢這個檢視來看下我的所有磁碟組的屬性資訊

SQL> col "group " for a30
SQL> col "attribute" for a50
SQL> col "value" for a50
SQL> select g.name "group", a.name "attribute", a.value "value"
  2  from v$asm_diskgroup g, v$asm_attribute a
  3  where g.group_number=a.group_number and a.name not like 'template%';

group                                                        attribute                                          value
------------------------------------------------------------ -------------------------------------------------- --------------------------------------------------
ARCHDG                                                       compatible.asm                                     11.2.0.0.0
ARCHDG                                                       sector_size                                        512
ARCHDG                                                       access_control.umask                               066
ARCHDG                                                       access_control.enabled                             FALSE
ARCHDG                                                       cell.smart_scan_capable                            FALSE
ARCHDG                                                       compatible.rdbms                                   10.1.0.0.0
ARCHDG                                                       disk_repair_time                                   3.6h
ARCHDG                                                       au_size                                            1048576
CRSDG                                                        disk_repair_time                                   3.6h
CRSDG                                                        access_control.enabled                             FALSE
CRSDG                                                        cell.smart_scan_capable                            FALSE
CRSDG                                                        compatible.rdbms                                   10.1.0.0.0
CRSDG                                                        compatible.asm                                     11.2.0.0.0
CRSDG                                                        sector_size                                        512
CRSDG                                                        au_size                                            1048576
CRSDG                                                        access_control.umask                               066
DATADG                                                       compatible.asm                                     11.2.0.0.0
DATADG                                                       sector_size                                        512
DATADG                                                       au_size                                            1048576
DATADG                                                       disk_repair_time                                   3.6h
DATADG                                                       compatible.rdbms                                   10.1.0.0.0
DATADG                                                       access_control.umask                               066
DATADG                                                       access_control.enabled                             FALSE
DATADG                                                       cell.smart_scan_capable                            FALSE
ACFS                                                         disk_repair_time                                   3.6h
ACFS                                                         au_size                                            1048576
ACFS                                                         access_control.umask                               066
ACFS                                                         access_control.enabled                             FALSE
ACFS                                                         cell.smart_scan_capable                            FALSE
ACFS                                                         compatible.advm                                    11.2.0.0.0
ACFS                                                         compatible.rdbms                                   10.1.0.0.0
ACFS                                                         compatible.asm                                     11.2.0.0.0
ACFS                                                         sector_size                                        512
USD                                                          disk_repair_time                                   3.6h
USD                                                          compatible.advm                                    11.2.0.0.0
USD                                                          cell.smart_scan_capable                            FALSE
USD                                                          access_control.enabled                             FALSE
USD                                                          access_control.umask                               066
USD                                                          compatible.asm                                     11.2.0.0.0
USD                                                          sector_size                                        512
USD                                                          au_size                                            1048576
USD                                                          compatible.rdbms                                   11.2.0.0.0

42 rows selected.

可以在任何時候修改的屬性是disk repair time。以下是透過asmcmd修改USD磁碟組disk repair time屬性的命令

[grid@jyrac1 ~]$ asmcmd setattr -G USD disk_repair_time '8.0h'
[grid@jyrac1 ~]$ asmcmd lsattr -lm disk_repair_time
Group_Name  Name              Value  RO  Sys  
ACFS        disk_repair_time  3.6h   N   Y    
ARCHDG      disk_repair_time  3.6h   N   Y    
CRSDG       disk_repair_time  3.6h   N   Y    
DATADG      disk_repair_time  3.6h   N   Y    
USD         disk_repair_time  8.0h   N   Y    

從上面的查詢可以看到成功將USD磁碟組disk repair time屬性修改為8.0h了。

隱藏屬性
屬性目錄位於ASM後設資料的9號檔案。現在我們定位到5號磁碟組(USD)的屬性目錄。

SQL> select 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=9
  7  order by 1,2; 

    group#     disk # disk name                      disk path                                virtual extent physical extent         au
---------- ---------- ------------------------------ ---------------------------------------- -------------- --------------- ----------
         5          0 USD_0000                       /dev/raw/raw7                                         0               0         50
         5          1 USD_0001                       /dev/raw/raw12                                        0               1         50

上面的查詢結果顯示屬性目錄有兩份映象副本(磁碟組是normal冗餘),AU分佈在5號磁碟組(USD)的0號磁碟(/dev/raw/raw7)的50號AU,與1號磁碟(/dev/raw/raw12)的50號AU中。

透過kfed工具來獲得5號磁碟組(USD)的屬性目錄AU分佈情況
由於1號檔案總是開始在0號磁碟2號AU,記住這個位置:0號盤2號AU。這是ASM中定位檔案的起點,它的作用,有點相當於磁碟上的引導區,在電腦開機後負責將OS啟動起來。1號檔案在最少情況下,至少有兩個AU。在1號檔案中,每個檔案佔用一個後設資料塊,存放自身的空間分佈資訊。每個後設資料塊大小是4K,一個AU是1M,哪麼,每個AU中,可以儲存256個檔案的空間分佈資訊。這其中,0號盤2號AU中,全是元檔案的資訊。再具體一點,0號盤2號AU,第一個後設資料塊被系統佔用,從第二個塊開始,到255為止,共255個後設資料塊,對應索引號1至255的檔案。其實,也就是全部的元檔案了。也就是說0號盤2號AU,儲存了全部元檔案的空間分佈資訊。1號檔案的第二個AU,從第一個塊開始,儲存256號檔案。第二個塊對應257號檔案,等等。每次從ASM中讀資料時,Oracle都要先讀到1號檔案,從中找出要讀的目標檔案在磁碟上的分佈位置,然後再去讀取相應的檔案的資料。由於屬性目錄是9號檔案,這可以透過讀取5號磁碟組的0號磁碟(/dev/raw/raw7)的2號AU的9號塊來獲得

[grid@jyrac1 ~]$ kfed read /dev/raw/raw7 aun=2 blkn=9 | 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:                       9 ; 0x004: blk=9
kfbh.block.obj:                       1 ; 0x008: file=1
kfbh.check:                    20914363 ; 0x00c: 0x013f20bb
kfbh.fcn.base:                     6545 ; 0x010: 0x00001991
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:                        17 ; 0x020: O=1 S=0 S=0 D=0 C=1 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:               33043406 ; 0x050: HOUR=0xe DAYS=0x1e MNTH=0xc YEAR=0x7e0
kfffdb.crets.lo:             3959646208 ; 0x054: USEC=0x0 MSEC=0xda SECS=0x0 MINS=0x3b
kfffdb.modts.hi:                      0 ; 0x058: HOUR=0x0 DAYS=0x0 MNTH=0x0 YEAR=0x0
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:                   50 ; 0x4a0: 0x00000032
kfffde[0].xptr.disk:                  0 ; 0x4a4: 0x0000
kfffde[0].xptr.flags:                 0 ; 0x4a6: L=0 E=0 D=0 S=0
kfffde[0].xptr.chk:                  24 ; 0x4a7: 0x18
kfffde[1].xptr.au:                   50 ; 0x4a8: 0x00000032
kfffde[1].xptr.disk:                  1 ; 0x4ac: 0x0001
kfffde[1].xptr.flags:                 0 ; 0x4ae: L=0 E=0 D=0 S=0
kfffde[1].xptr.chk:                  25 ; 0x4af: 0x19
kfffde[2].xptr.au:           4294967294 ; 0x4b0: 0xfffffffe
kfffde[2].xptr.disk:              65534 ; 0x4b4: 0xfffe
kfffde[2].xptr.flags:                 0 ; 0x4b6: L=0 E=0 D=0 S=0
kfffde[2].xptr.chk:                  42 ; 0x4b7: 0x2a

從kfffde[0].xptr.au=50,kfffde[0].xptr.disk=0,與kfffde[1].xptr.au=50,kfffde[1].xptr.au=50,kfffde[1].xptr.disk=1,可知屬性目錄有兩份映象副本(磁碟組是normal冗餘),AU分佈在5號磁碟組(USD)的0號磁碟(/dev/raw/raw7)的50號AU,與1號磁碟(/dev/raw/raw12)的50號AU中,這與查詢語句所獲得的結果相符。

現在用kfed工具進行檢視屬性目錄的具體內容:

[grid@jyrac1 ~]$ kfed read /dev/raw/raw7 aun=50 blkn=0 | more
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                           23 ; 0x002: KFBTYP_ATTRDIR
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       0 ; 0x004: blk=0
kfbh.block.obj:                       9 ; 0x008: file=9
kfbh.check:                  2524475834 ; 0x00c: 0x967871ba
kfbh.fcn.base:                     7211 ; 0x010: 0x00001c2b
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:                 5 ; 0x00c: 0x00000005
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
kfede[0].entry.incarn:                1 ; 0x024: A=1 NUMM=0x0
kfede[0].entry.hash:                  0 ; 0x028: 0x00000000
kfede[0].entry.refer.number: 4294967295 ; 0x02c: 0xffffffff
kfede[0].entry.refer.incarn:          0 ; 0x030: A=0 NUMM=0x0
kfede[0].name:         disk_repair_time ; 0x034: length=16
kfede[0].value:                    8.0h ; 0x074: length=4
kfede[0].length:                      4 ; 0x174: 0x0004
kfede[0].flags:                      16 ; 0x176: R=0 D=0 H=0 H=0 S=1 C=0 S=0 V=0 I=0
kfede[0].spare1[0]:                   0 ; 0x178: 0x00000000
kfede[0].spare1[1]:                   0 ; 0x17c: 0x00000000
kfede[0].spare1[2]:                   0 ; 0x180: 0x00000000
kfede[0].spare1[3]:                   0 ; 0x184: 0x00000000
kfede[0].spare1[4]:                   0 ; 0x188: 0x00000000
kfede[0].spare1[5]:                   0 ; 0x18c: 0x00000000
kfede[0].spare1[6]:                   0 ; 0x190: 0x00000000
kfede[0].spare1[7]:                   0 ; 0x194: 0x00000000
kfede[1].entry.incarn:                1 ; 0x198: A=1 NUMM=0x0
kfede[1].entry.hash:                  0 ; 0x19c: 0x00000000
kfede[1].entry.refer.number: 4294967295 ; 0x1a0: 0xffffffff
kfede[1].entry.refer.incarn:          0 ; 0x1a4: A=0 NUMM=0x0
kfede[1].name:       _rebalance_compact ; 0x1a8: length=18
kfede[1].value:                    TRUE ; 0x1e8: length=4
kfede[1].length:                      4 ; 0x2e8: 0x0004
kfede[1].flags:                      22 ; 0x2ea: R=0 D=1 H=1 H=0 S=1 C=0 S=0 V=0 I=0
kfede[1].spare1[0]:                   0 ; 0x2ec: 0x00000000
kfede[1].spare1[1]:                   0 ; 0x2f0: 0x00000000
kfede[1].spare1[2]:                   0 ; 0x2f4: 0x00000000
kfede[1].spare1[3]:                   0 ; 0x2f8: 0x00000000
kfede[1].spare1[4]:                   0 ; 0x2fc: 0x00000000
kfede[1].spare1[5]:                   0 ; 0x300: 0x00000000
kfede[1].spare1[6]:                   0 ; 0x304: 0x00000000
kfede[1].spare1[7]:                   0 ; 0x308: 0x00000000
kfede[2].entry.incarn:                1 ; 0x30c: A=1 NUMM=0x0
kfede[2].entry.hash:                  0 ; 0x310: 0x00000000
kfede[2].entry.refer.number: 4294967295 ; 0x314: 0xffffffff
kfede[2].entry.refer.incarn:          0 ; 0x318: A=0 NUMM=0x0
kfede[2].name:            _extent_sizes ; 0x31c: length=13
kfede[2].value:                  1 4 16 ; 0x35c: length=6
kfede[2].length:                      6 ; 0x45c: 0x0006
kfede[2].flags:                      22 ; 0x45e: R=0 D=1 H=1 H=0 S=1 C=0 S=0 V=0 I=0
kfede[2].spare1[0]:                   0 ; 0x460: 0x00000000
kfede[2].spare1[1]:                   0 ; 0x464: 0x00000000
kfede[2].spare1[2]:                   0 ; 0x468: 0x00000000
kfede[2].spare1[3]:                   0 ; 0x46c: 0x00000000
kfede[2].spare1[4]:                   0 ; 0x470: 0x00000000
kfede[2].spare1[5]:                   0 ; 0x474: 0x00000000
kfede[2].spare1[6]:                   0 ; 0x478: 0x00000000
kfede[2].spare1[7]:                   0 ; 0x47c: 0x00000000
kfede[3].entry.incarn:                1 ; 0x480: A=1 NUMM=0x0
kfede[3].entry.hash:                  0 ; 0x484: 0x00000000
kfede[3].entry.refer.number: 4294967295 ; 0x488: 0xffffffff
kfede[3].entry.refer.incarn:          0 ; 0x48c: A=0 NUMM=0x0
kfede[3].name:           _extent_counts ; 0x490: length=14
kfede[3].value:  20000 20000 2147483647 ; 0x4d0: length=22
kfede[3].length:                     22 ; 0x5d0: 0x0016
kfede[3].flags:                      22 ; 0x5d2: R=0 D=1 H=1 H=0 S=1 C=0 S=0 V=0 I=0
kfede[3].spare1[0]:                   0 ; 0x5d4: 0x00000000
kfede[3].spare1[1]:                   0 ; 0x5d8: 0x00000000
kfede[3].spare1[2]:                   0 ; 0x5dc: 0x00000000
kfede[3].spare1[3]:                   0 ; 0x5e0: 0x00000000
kfede[3].spare1[4]:                   0 ; 0x5e4: 0x00000000
kfede[3].spare1[5]:                   0 ; 0x5e8: 0x00000000
kfede[3].spare1[6]:                   0 ; 0x5ec: 0x00000000
kfede[3].spare1[7]:                   0 ; 0x5f0: 0x00000000
kfede[4].entry.incarn:                1 ; 0x5f4: A=1 NUMM=0x0
kfede[4].entry.hash:                  0 ; 0x5f8: 0x00000000
kfede[4].entry.refer.number:          1 ; 0x5fc: 0x00000001
kfede[4].entry.refer.incarn:          1 ; 0x600: A=1 NUMM=0x0
kfede[4].name:                        _ ; 0x604: length=1
kfede[4].value:                       0 ; 0x644: length=1
kfede[4].length:                      1 ; 0x744: 0x0001
kfede[4].flags:                      22 ; 0x746: R=0 D=1 H=1 H=0 S=1 C=0 S=0 V=0 I=0
kfede[4].spare1[0]:                   0 ; 0x748: 0x00000000
kfede[4].spare1[1]:                   0 ; 0x74c: 0x00000000
kfede[4].spare1[2]:                   0 ; 0x750: 0x00000000
kfede[4].spare1[3]:                   0 ; 0x754: 0x00000000
kfede[4].spare1[4]:                   0 ; 0x758: 0x00000000
kfede[4].spare1[5]:                   0 ; 0x75c: 0x00000000
kfede[4].spare1[6]:                   0 ; 0x760: 0x00000000
kfede[4].spare1[7]:                   0 ; 0x764: 0x00000000
kfede[5].entry.incarn:                1 ; 0x768: A=1 NUMM=0x0
kfede[5].entry.hash:                  0 ; 0x76c: 0x00000000
kfede[5].entry.refer.number: 4294967295 ; 0x770: 0xffffffff
kfede[5].entry.refer.incarn:          0 ; 0x774: A=0 NUMM=0x0
kfede[5].name:                  au_size ; 0x778: length=7
kfede[5].value:                ; 0x7b8: length=9
kfede[5].length:                      9 ; 0x8b8: 0x0009
kfede[5].flags:                     147 ; 0x8ba: R=1 D=1 H=0 H=0 S=1 C=0 S=0 V=1 I=0
kfede[5].spare1[0]:                   0 ; 0x8bc: 0x00000000
kfede[5].spare1[1]:                   0 ; 0x8c0: 0x00000000
kfede[5].spare1[2]:                   0 ; 0x8c4: 0x00000000
kfede[5].spare1[3]:                   0 ; 0x8c8: 0x00000000
kfede[5].spare1[4]:                   0 ; 0x8cc: 0x00000000
kfede[5].spare1[5]:                   0 ; 0x8d0: 0x00000000
kfede[5].spare1[6]:                   0 ; 0x8d4: 0x00000000
kfede[5].spare1[7]:                   0 ; 0x8d8: 0x00000000
kfede[6].entry.incarn:                1 ; 0x8dc: A=1 NUMM=0x0
kfede[6].entry.hash:                  0 ; 0x8e0: 0x00000000
kfede[6].entry.refer.number: 4294967295 ; 0x8e4: 0xffffffff
kfede[6].entry.refer.incarn:          0 ; 0x8e8: A=0 NUMM=0x0
kfede[6].name:              sector_size ; 0x8ec: length=11
kfede[6].value:                ; 0x92c: length=9
kfede[6].length:                      9 ; 0xa2c: 0x0009
kfede[6].flags:                     147 ; 0xa2e: R=1 D=1 H=0 H=0 S=1 C=0 S=0 V=1 I=0
kfede[6].spare1[0]:                   0 ; 0xa30: 0x00000000
kfede[6].spare1[1]:                   0 ; 0xa34: 0x00000000
kfede[6].spare1[2]:                   0 ; 0xa38: 0x00000000
kfede[6].spare1[3]:                   0 ; 0xa3c: 0x00000000
kfede[6].spare1[4]:                   0 ; 0xa40: 0x00000000
kfede[6].spare1[5]:                   0 ; 0xa44: 0x00000000
kfede[6].spare1[6]:                   0 ; 0xa48: 0x00000000
kfede[6].spare1[7]:                   0 ; 0xa4c: 0x00000000
kfede[7].entry.incarn:                1 ; 0xa50: A=1 NUMM=0x0
kfede[7].entry.hash:                  0 ; 0xa54: 0x00000000
kfede[7].entry.refer.number:          2 ; 0xa58: 0x00000002
kfede[7].entry.refer.incarn:          1 ; 0xa5c: A=1 NUMM=0x0
kfede[7].name:               compatible ; 0xa60: length=10
kfede[7].value:                ; 0xaa0: length=9
kfede[7].length:                      9 ; 0xba0: 0x0009
kfede[7].flags:                     178 ; 0xba2: R=0 D=1 H=0 H=0 S=1 C=1 S=0 V=1 I=0
kfede[7].spare1[0]:                   0 ; 0xba4: 0x00000000
kfede[7].spare1[1]:                   0 ; 0xba8: 0x00000000
kfede[7].spare1[2]:                   0 ; 0xbac: 0x00000000
kfede[7].spare1[3]:                   0 ; 0xbb0: 0x00000000
kfede[7].spare1[4]:                   0 ; 0xbb4: 0x00000000
kfede[7].spare1[5]:                   0 ; 0xbb8: 0x00000000
kfede[7].spare1[6]:                   0 ; 0xbbc: 0x00000000
kfede[7].spare1[7]:                   0 ; 0xbc0: 0x00000000
kfede[8].entry.incarn:                1 ; 0xbc4: A=1 NUMM=0x0
kfede[8].entry.hash:                  0 ; 0xbc8: 0x00000000
kfede[8].entry.refer.number:          3 ; 0xbcc: 0x00000003
kfede[8].entry.refer.incarn:          1 ; 0xbd0: A=1 NUMM=0x0
kfede[8].name:                     cell ; 0xbd4: length=4
kfede[8].value:                   FALSE ; 0xc14: length=5
kfede[8].length:                      5 ; 0xd14: 0x0005
kfede[8].flags:                      34 ; 0xd16: R=0 D=1 H=0 H=0 S=0 C=1 S=0 V=0 I=0
kfede[8].spare1[0]:                   0 ; 0xd18: 0x00000000
kfede[8].spare1[1]:                   0 ; 0xd1c: 0x00000000
kfede[8].spare1[2]:                   0 ; 0xd20: 0x00000000
kfede[8].spare1[3]:                   0 ; 0xd24: 0x00000000
kfede[8].spare1[4]:                   0 ; 0xd28: 0x00000000
kfede[8].spare1[5]:                   0 ; 0xd2c: 0x00000000
kfede[8].spare1[6]:                   0 ; 0xd30: 0x00000000
kfede[8].spare1[7]:                   0 ; 0xd34: 0x00000000
kfede[9].entry.incarn:                1 ; 0xd38: A=1 NUMM=0x0
kfede[9].entry.hash:                  0 ; 0xd3c: 0x00000000
kfede[9].entry.refer.number:          4 ; 0xd40: 0x00000004
kfede[9].entry.refer.incarn:          1 ; 0xd44: A=1 NUMM=0x0
kfede[9].name:           access_control ; 0xd48: length=14
kfede[9].value:                   FALSE ; 0xd88: length=5
kfede[9].length:                      5 ; 0xe88: 0x0005
kfede[9].flags:                      18 ; 0xe8a: R=0 D=1 H=0 H=0 S=1 C=0 S=0 V=0 I=0
kfede[9].spare1[0]:                   0 ; 0xe8c: 0x00000000
kfede[9].spare1[1]:                   0 ; 0xe90: 0x00000000
kfede[9].spare1[2]:                   0 ; 0xe94: 0x00000000
kfede[9].spare1[3]:                   0 ; 0xe98: 0x00000000
kfede[9].spare1[4]:                   0 ; 0xe9c: 0x00000000
kfede[9].spare1[5]:                   0 ; 0xea0: 0x00000000
kfede[9].spare1[6]:                   0 ; 0xea4: 0x00000000
kfede[9].spare1[7]:                   0 ; 0xea8: 0x00000000

kfede[i]欄位包含了磁碟組屬性的名稱和值。使用kfed read path | egrep  "name|value"命令檢視所有的ASM磁碟組的屬性值
[grid@jyrac1 ~]$ kfed read /dev/raw/raw7 aun=50 blkn=0  |  egrep "name|value"
kfede[0].name:         disk_repair_time ; 0x034: length=16
kfede[0].value:                    8.0h ; 0x074: length=4
kfede[1].name:       _rebalance_compact ; 0x1a8: length=18
kfede[1].value:                    TRUE ; 0x1e8: length=4
kfede[2].name:            _extent_sizes ; 0x31c: length=13
kfede[2].value:                  1 4 16 ; 0x35c: length=6
kfede[3].name:           _extent_counts ; 0x490: length=14
kfede[3].value:  20000 20000 2147483647 ; 0x4d0: length=22
kfede[4].name:                        _ ; 0x604: length=1
kfede[4].value:                       0 ; 0x644: length=1
kfede[5].name:                  au_size ; 0x778: length=7
kfede[5].value:                ; 0x7b8: length=9
kfede[6].name:              sector_size ; 0x8ec: length=11
kfede[6].value:                ; 0x92c: length=9
kfede[7].name:               compatible ; 0xa60: length=10
kfede[7].value:                ; 0xaa0: length=9
kfede[8].name:                     cell ; 0xbd4: length=4
kfede[8].value:                   FALSE ; 0xc14: length=5
kfede[9].name:           access_control ; 0xd48: length=14
kfede[9].value:                   FALSE ; 0xd88: length=5

上面的資訊還窺探到了許多隱藏的磁碟組屬性。可以看到_rebalance_compact屬性是TRUE。這個屬性關係到磁碟組rebalance中的compact環節。我們還可以看到extent的增長方式(extent_sizes),初始化大小會從1個AU到4個AU再到16AU。_extent_counts表示extent增長的斷點,前20000個extent只包含1個AU,接下來20000個extent包含4個AU,再往後的extent會包含16個AU。cell屬性是FALSE,access_control屬性是FALSE。

小結:
每個磁碟組都具有一些磁碟組的屬性,磁碟組屬性用來細粒度的控制磁碟組的特性。大多數屬性存放在屬性目錄並且可以透過查詢v$asm_attribute檢視獲得。] 在ASM 11.1之前的版本,我們也可以在建立磁碟組時指定AU的大小,這是透過ASM隱含引數_ASM_AUSIZE來實現的,在ASM 11.1及之後的版本,由於ASM磁碟組屬性的出現,就可以透過設定ASM磁碟組的AU_SIZE屬性值來達到同樣的目的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2131762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章