[zt] Oracle10g ASM Auto IO Rebalance新特性及ASM體系結構

tolywang發表於2011-01-17

ASM ( Automatic Storage Management ) 的一個重要特性是可以進行線上磁碟重配置及動態均衡。

當我們向已有磁碟組中增加磁碟後,會自動進行IO均衡,為了完成這個任務,引入了一個新的後臺程式:

[@danaly ~]$ ps -ef|grep ora_rbal*
    3815     1  0 Jan23 ?        00:00:01 ora_rbal_danaly
   31601 23407  0 14:33 pts/2    00:00:00 grep ora_rbal* 

這個程式用來進行IO均衡。

IO調整是自動進行的,並且這個平衡速度是可以控制的。

透過一個新增的引數:asm_power_limit 來控制速度。
該引數取值範圍為1~11,引數值越大平衡速度越快。

文件對該引數解釋為:

ASM_POWER_LIMIT specifies the maximum power on an Automatic Storage Management instance for disk rebalancing. The higher the limit, the faster rebalancing will complete. Lower values will take longer, but consume fewer processing and I/O resources.

If the POWER clause of a rebalance operation is not specified, then the default power will be the value of ASM_POWER_LIMIT.

 該引數預設值為1:

SQL> show parameter power
NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ----------------
asm_power_limit                      integer                1
 

該引數也可以在增加磁碟時指定: 

SQL> alter diskgroup ORADG add disk 'ORCL:VOL6' rebalance power 11;
Diskgroup altered. 

我們可以看一下,最初我的磁碟使用情況為: 

SQL> select name,total_mb,free_mb from v$asm_disk;
NAME                   TOTAL_MB    FREE_MB
-------------------- ---------- ----------
                           2870          0
VOL1                      19077       6571
VOL2                      19077       6497
VOL3                      19077       6558
VOL4                      12228       4321
VOL6                     104187      97622
6 rows selected. 

經過的自動調整均衡之後,磁碟空間使用情況變為:

SQL> select name,total_mb,free_mb from v$asm_disk;
NAME                   TOTAL_MB    FREE_MB
-------------------- ---------- ----------
                           2870          0
VOL1                      19077      13337
VOL2                      19077      13381
VOL3                      19077      13337
VOL4                      12228       8548
VOL6                     104187      72966
6 rows selected. 

ASM在儲存管理上實在是給我們帶來了更多的便利之處。

 

 

---------------------------------------------------------------------------------------------------- 

 

ASM體系結構

 

1 ASM 作為Oracle推薦的首選方案,除了具有叢集檔案系統的功能,同時還整合了冗餘,I/O分散等卷管理器的功能.可以透過兩種方式使用ASM,
包括建立在裸裝置上,如果安裝ASMLIB,也可以建立在塊裝置上.

2 ASM Instance 與RDBMS 的互動
當ASM例項掛載一個磁碟組之後,ASM會把Disk Group Name, ASM Instance Name, Oracle Home Path等資訊註冊到CSS,這些資訊會被用來構造Connect String.
當RDBMS啟動過程中需要訪問某個ASM File時, RDBMS會和CSS聯絡,從CSS中獲取Connect String,然後發起一個到ASM例項的連線,這條ASM和RDBMS例項之間的初始連線叫作
Umbilicu(臍帶),只要RDBMS開啟ASM File,這個連線就會保持活動.直到所有ASM File都被RDBMS例項關閉之後,這個連線才會關閉.

3 SGA
ASM 的SGA和RDBMS沒有區別, 也包括Buffer Cache, Shared Pool, Large Pool等部分,需要注意的是Shared Pool, 因為Extent Map也放在這部分記憶體中.
Extent Map: 儲存RDBMS例項中的儲存分配單元Extent與ASM例項中的分配單元AU的對應關係.

4 後臺程式
ASM例項:
1) RBAL: reblancer程式,負責規劃ASM磁碟組的Reblance活動

2) ABRn: 是RBAL程式的子程式,真正完成Reblance活動

RDBMS例項:
1) RBAL: 負責開啟每個磁碟組的所有磁碟
2) ASMB: 這個程式作為ASM例項和資料庫例項之間的資訊通道.這個程式負責與ASM例項的通訊,它先利用Diskgroup name從CSS獲得管理該Diskgroup的ASM例項的連線串,然後建立到ASM的持久連線,兩個例項透過這條連線定期交換資訊,同時也是一種心跳機制.
3)O0nn 01-10:這組程式建立到ASM例項的連線,某些長時間操作比如建立資料檔案,RDBMS會透過這些程式向ASM傳送資訊


5 檔案
ASM例項的執行表面上看不需要任何檔案,實際上ASM也需要許多"檔案"用來保證正常執行,只是這些檔案是Oracle內部維護的,對於DBA不可見,而且也不需要DBA的干預.


6 存在的問題

問題記錄:
1) Oracle文件一再強調的在新增/刪除DiskGroup, Disk,在ASM層面的管理操作時不影響應用系統的理解是, 在RAC層面, 對某一個節點上ASM操作,這個節點上的RDBMS必須Shutdown,ASM 例項必須Dismount. 但由於這是RAC,業務不會受到影響,還可以走另一個節點. 不是這樣的.
ASM 與RAC 並沒有必然的關聯, Oracle一再強調的可以線上管理,是指DiskGroup組之間不會互相影響.
假定你想刪除一個DiskGroup,只要這個DiskGroup上的檔案在RDBMS不是 ACTIVE的就行.


2) 對ASM的理解,ASM其實就是LVM披上了Oracle的馬甲,
 Disk 對應PV, Diskgroup 對應VG,

3) ASM 例項的Spfile, 或pfile 在哪裡呢?
$ORACLE_HOME/dbs/spfile+ASM.ora

 

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

相關文章