深入瞭解Oracle ASM(一):基礎概念

hd_system發表於2016-10-13

相關文章連結:

在Linux 6上使用UDEV解決RAC ASM儲存裝置名問題

利用UDEV服務解決RAC ASM儲存裝置名


Oracle 自動儲存管理概述

自動儲存管理 (ASM) 是 Oracle Database 的一個特性,它為資料庫管理員提供了一個在所有伺服器和儲存平臺上均一致的簡單儲存管理介面。作為專門為 Oracle 資料庫檔案建立的垂直整合檔案系統和卷管理器,ASM 提供了直接非同步 I/O 的效能以及檔案系統的易管理性。ASM 提供了可節省 DBA 時間的功能,以及管理動態資料庫環境的靈活性,並且提高了效率。ASM 的主要優點有:

  • 簡化和自動化了儲存管理
  • 提高了儲存利用率和敏捷性
  • 提供可預測的效能、可用性和可伸縮性


Oracle Cloud File System 概述

Oracle Cloud File System (CloudFS) 前所未有地簡化了通用檔案的儲存管理、供應自動化和儲存整合。CloudFS 是一個儲存雲基礎架構,提供資源池、網路可訪問性、快速伸縮以及快速供應 — 這些都是雲端計算環境的關鍵要求。該產品包括:

  • Oracle ASM Dynamic Volume Manager (ADVM)

ADVM 提供了一個通用卷管理服務和一個標準裝置驅動程式介面,便於系統管理員跨不同平臺進行管理。ACFS 和第三方檔案系統可以使用 ASM 動態卷建立和管理可利用 ASM 特性的所有功能的檔案系統。因此,無需停機即可輕鬆調整 ADVM 卷的大小以適應檔案系統的儲存需求。 

  • Oracle ASM Cluster File System (ACFS)

一個通用的與 POSIX、X/OPEN 和 Windows 相容的檔案系統,專為單節點和單叢集的配置而設計。使用作業系統自帶的命令、ASM asmcmd 和 Oracle Enterprise Manager 對 ACFS 進行管理。ACFS 支援高階資料服務,如時間點複製快照、檔案系統複製和標籤,以及檔案系統安全性和加密。



Automatic Storage Management是Oracle 在版本10g中率先(對比其他RDBMS)提出的資料庫儲存自動解決方案,在版本11g中得到進一步昇華。ASM提供了資料庫管理所需要的一個簡單、有效 的儲存管理介面,該介面實現了跨伺服器和儲存平臺。 ASM是檔案系統filesystem和volume manager卷管理軟體的一體化,專門為Oracle的資料庫檔案鎖設計的; ASM在保證如檔案系統般管理簡單的基礎上提供高效能的非同步Async IO。ASM的引入提高了資料庫的可擴充套件容量,同時節約了DBA的時間,使其能夠更敏捷、更高效地管理一個流動性較大的資料庫環境。


ASM的出現是為RDBMS管理檔案儲存

  • 注意ASM不會替代RDBMS去實施IO讀寫,很多對這一點存在誤解,認為RDBMS傳送IO request給ASM,ASM去做真正的IO操作,這是錯誤的。
  • 真正的IO還是由RDBMS程式去實施,和不用ASM的裸裝置一樣
  • 因此ASM不是IO的中間層,也就不存在因為ASM而出現所謂的IO瓶頸
  • 對於ASM而言LUN DISK可以是裸裝置也可以直接是塊裝置(10.2.0.2以後)
  • 適合存放在ASM中的檔案型別包括:資料檔案datafile、控制檔案controlfile、重做日誌redolog、歸檔日誌 archivelog、閃回日誌flashback log、spfile、RMAN備份以及block tracking file、datapump檔案
  • 從11gR2開始,ASM引入了ACFS特性可以存放任何型別的檔案; 但是ACFS不支援存放資料檔案


ASM基礎概念:

  • ASM的最小儲存單位是一個”allocation unit”(AU),通常為1MB,在Exadata上推薦為4MB
  • ASM的核心是儲存檔案
  • 檔案被劃分為多個檔案片,稱之為”extent”
  • 11g之前extent的大小總是為一個AU,11g之後一個extent可以是1 or 8 or 64個AU
  • ASM使用file extent map維護檔案extent的位置
  • ASM在LUN DISK的頭部header維護其後設資料,而非資料字典
  • 同時RDBMS DB會在shared pool中快取file extent map,當server process處理IO時使用
  • 因為ASM instance使用類似於普通RDBMS的原理的instance/crash recovery,所以ASM instance奔潰後總是能復原的。

ASM儲存以diskgroups的概念呈現:

  • Diskgroup DG對RDBMS例項可見,例如一個DATA DG,對於RDBMS來說就是以’+DATA’表示的一個儲存點, 可以在該DG上建立一個tablespace,例如: create tablespace ONASM datafile ‘+DATA’ size 10M。
  • Diskgroup下面是一個或者多個failure group (FG)
  • FG被定義為一組Disk
  • Disk在這裡可以是裸的物理卷、磁碟分割槽、代表某個磁碟陣列的LUN,亦或者是LVM或者NAS裝置
  • 多個FG中的disk不應當具備相同的單點故障,否則ASM的冗餘無效


ASM所提供的高可用性:

  • ASM提供資料映象以便從磁碟失敗中恢復
  • 使用者可以選擇EXTERNAL、NORMAL、HIGH三種冗餘映象
  • EXTERNAL即ASM本身不做映象,而依賴於底層儲存陣列資深實現映象;在External下任何的寫錯誤都會導致Disk Group被強制dismount。在此模式下所有的ASM DISK必須都存在健康,否則Disk Group將無法MOUNT
  • NORMAL 即ASM將為每一個extent建立一個額外的複製以便實現冗餘;預設情況下所有的檔案都會被映象,這樣每一個file extent都有2份複製。若寫錯誤發生在2個Disk上且這2個Disk是partners時將導致disk Disk Group被強制dismount。若發生失敗的磁碟不是partners則不會引起資料丟失和不可用。
  • HIGH 即ASM為每一個extent建立兩個額外的複製以便實現更高的冗餘。2個互為partners的Disk的失敗不會引起資料丟失,當然不能有更多的partners Disk失敗了。
  • 資料映象依賴於failure group和extent partnering實現。ASM在NORMAL 或 HIGH 冗餘度下可以容許丟失一個failure group中所有的磁碟。


Failure Group映象的使用

  • ASM的映象並不像RAID 1那樣
  • ASM的映象基於檔案extent的粒度,extent分佈在多個磁碟之間,稱為partner
  • Partner disk會存放在一個或者多個分離的failure group上
  • ASM自動選擇partner並限制其數量小於10個
  • 若磁碟失敗,則ASM更新其extent map使今後的讀取操作指向剩餘的健康partner
  • 在11g中,若某個disk處於offline狀態,則對於檔案的變更會被追蹤記錄這樣當disk被重現online時則這些變化得以重新應用, 前提是offline的時間不超過DISK_REPAIR_TIME所指定的時間(預設為3.6個小時). 這種情況常發生在儲存控制器故障或者類似的短期磁碟故障:
  • 這種對於檔案變更的追蹤基於一個發生變化的file extent的點陣圖,該點陣圖告訴ASM哪些extents需要從健康的partner哪裡複製至需要修復的disk,該特性稱之為fast mirror resync
  • 在10g中沒有fast mirror resync特性,若disk出現offline則直接自動被drop掉,不存在允許修復的週期
  • 對於無法再online的disk,則必須被drop掉; 一個新的disk會被ASM選擇並透過rebalancing 操作複製資料,這些工作是後臺自動完成的。


重新平衡Rebalancing

  • Rebalancing是在磁碟之間移動檔案extent以實現diskgroup上的IO負載均衡的過程
  • Rebalancing在後臺非同步發生,是可監控的
  • 在叢集環境中,一個diskgroup的重平衡只能在一個ASM instance上發生,不能透過叢集多節點同時處理以加速
  • 當disk被加入或移除時,ASM會自動在後臺開始資料重新平衡工作
  • 重平衡的速度和力度可以透過asm_power_limit引數控制
  • asm_power_limit引數預設為1,其範圍為0~11(從11.2.0.2開始是0-1024),該引數控制實施重平衡後臺程式的數量;Level 0表示不實施重新平衡
  • 在重新平衡過程中IO效能(主要是吞吐量和響應時間)可能受到影響,其影響程度取決於儲存本身的能力和重新平衡的力度,預設的asm_powner_limit=1不會造成過度的影響


效能方面

  • ASM會透過在DG中條帶化檔案extent分佈以最大化可用的IO頻寬
  • 有2種可用條帶化寬度:coarse粗糙條帶化大小為1個AU,fine精細條帶化為128K
  • 即便是fine精細條帶化仍採用普通大小的file extent,但是條帶化以更小的片形式迴圈式地分佈在多個extent上
  • ASM預設不讓RDBMS去讀備用的映象複製extent,即使這樣請放心IO還是均衡的
  • 預設情況下RDBMS總是去讀取主primary extent,從11.1開始可以透過PREFERRED_READ_FAILURE_GROUP引數設定讓本地節點優先讀取某個failure group中的extent; 該特性主要為extended distance RAC設計,不建議在常規ASM中使用


 其他知識

  • 並非RAC才能使用ASM,單節點同樣可以從ASM哪裡獲得好處
  • 節點上的一個ASM instance例項可以為多個RDBMS DB例項服務
  • RAC環境中的ASM必須也是叢集化的,以便能夠協調更新後設資料
  • 從11.2開始,ASM從RDBMS HOME分離出來,而和clusterware一起安裝在GRID HOME下。



Disk Group:

Disk Group”磁碟組” 是ASM管理的邏輯概念物件,一個Disk Group由多個ASM disk組成。每一個Disk Group都是子描述的,如同一個標準的檔案系統一樣。所有關於該Diskgroup 空間使用資訊的後設資料均完整地包含在這個磁碟組中。 若ASM可以找到所有屬於該ASM diskgroup的DISK則他不需要任何其他額外的後設資料。

檔案空間從Disk Group中分配。任何一個ASM檔案總是完整地包含在一個單獨的Disk Group中。但是,一個Disk Group可能包含了屬於多個資料庫的檔案,一個單獨的資料庫的檔案也可以存放在多個不同的Disk Group中。 在大多數實際的部署中,不會建立太多數量的Disk Groups,一般在3~4個。

Disk Group提供三種不同的redundancy冗餘度,詳見上文。


ASM Disk


一個ASM Disk是組成Disk Group的基本的持久的儲存。 當一個ASM Disk加入到Disk Group中時,它要麼採用管理員指定的ASM Disk Name要麼採用系統自動分配的Disk Name。 這不同於OS 給用於訪問該裝置的”藝名”。  在一個Cluster叢集中, 同一個Disk 可能在不同的節點上顯示不同的Device Name裝置名,例如在 Node1上的 /dev/sdc ,對應於Node2上的/dev/sdd。 ASM Disk必須在所有使用該Disk Group的例項上可用直接磁碟I/O訪問。

實際上對於RDBMS Oracle而言訪問ASM disk和訪問普通的檔案並沒有什麼不同,除非使用了ASMLIB(ASMLIB不是ASM必須的,再次強調!)。常規情況下ASM Disk是OS上可見的LUN的partition,該分割槽覆蓋了所有不被作業系統所保留的磁碟的空間。 大多數作業系統需要保留LUN的第一個block作為分割槽表(partition table); 由於ASM總是會寫ASM Disk的第一個塊,所以要保證ASM不會去覆蓋前幾個block上的分割槽表(partition table),例如在Solaris上分割槽時不要把前幾個柱面劃給partition。LUN可以是簡單的物理JBOD,或者是由高階儲存陣列管理的虛擬 LUN。既可以是直連的裝置也可以是SAN。ASM Disk可以是任何被開發系統呼叫所訪問的東西,除了本地檔案系統。 甚至於NFS上的檔案都可以被當做一個ASM Disk來用,這樣便於喜歡NAS的使用者使用ASM,當然比起NFS來我更建議乾脆用ISCSI。


注意雖然可以使用普通logical Volume Manager LVM管理的logical volume作為ASM Disk,但是這並不是推薦組合,除非你想不到其他更好的辦法。 即便你一定要這樣用,但是注意也不要在LVM級別做映象和條帶化。

ASM將任何檔案以AU大小均勻分佈在Disk Group的所有Disk上。每一個ASM Disk均被維護以保持同樣的使用比率。這保證同一個Disk Group中的所有Disk的IO負載基本一致。由於ASM在一個Disk Group中的磁碟上的負載均衡,所以為同一個物理磁碟的不同區域劃分為2個ASM Disk不會對效能有所影響;而同一個物理磁碟上劃分2個不同分割槽置於不同的2個Disk Group則有效。

當ASM Disk Group啟用冗餘時單個ASM Disk僅是一個失敗單元。對於該ASM Disk的寫失敗在10g會自動從該Disk Group drop掉該Disk,前提是該Disk的丟失被容許。


Allocation Unit

每一個ASM Disk都被劃分為許多個AU allocation units(單個AU 的大小在 1MB ~64MB,注意總是2的次方MB)。而且AU allocation unit也是Disk Group的基本分配單元。一個ASM Disk上的可用空間總是整數倍個AU。在每一個ASM Disk的頭部均有一個表,該表的每一條記錄代表該ASM Disk上的一個AU。檔案的extent指標(pointer)給出了ASM Disk Number磁碟號和AU號,這就描述了該extent的物理位置。由於所有的空間操作都以AU為單位,所以不存在所謂ASM碎片這樣的概念和問題。

一個AU(1M~64M)足夠小,以便一個檔案總是要包含很多個AU,這樣就可以分佈在很多磁碟上,也不會造成熱點。一個AU又足夠大以便能夠在一 個IO操作中訪問它,以獲得更加的吞吐量,也能提供高效的順序訪問。訪問一個AU的時間將更多的消耗在磁碟傳輸速率上而非花在尋找AU頭上。對於Disk Group的重新平衡也是對每一個AU逐次做的。






瞭解ASM後臺程式的作用:


GMON: ASM Diskgroup監控程式

ASMB: ASM後臺網路程式

RBAL: ASM reblance master process 重新平衡主程式

ARBx:   reblance slave process實際實施reblance的後臺程式

MARK: AU resync AU重新同步的指揮家程式


瞭解ASM前臺程式的作用:


ASM的client(主要是RDBMS DB和CRSD))在連線ASM例項時會產生前臺程式,前天程式的名字一般為oracle+ASM__ (例如: oracle+ASM_DBW0_DB1)。


OCR 特有的前臺程式foreground: oracle+ASM1_ocr



 ASM相關的V$和X$檢視


檢視名 X$基表名 描述
V$ASM_DISKGROUP X$KFGRP 實施磁碟發現disk discovery和列出磁碟組
V$ASM_DISKGROUP_STAT X$KFGRP_STAT 顯示disk group狀態
V$ASM_DISK X$KFDSK, X$KFKID 實施磁碟發現disk discovery和列出磁碟以及這些磁碟的使用度量資訊
V$ASM_DISK_STAT X$KFDSK_STAT,X$KFKID 列出磁碟和其使用度量資訊
V$ASM_FILE X$KFFIL 列出ASM檔案也包括了後設資料資訊
V$ASM_ALIAS X$KFALS 列出了ASM的別名,檔案和目錄
V$ASM_TEMPLATE X$KFTMTA 列出可用的模板和其屬性
V$ASM_CLIENT X$KFNCL 列出連結到ASM的DB例項
V$ASM_OPERATION X$KFGMG 列出rebalancing重平衡操作
N/A X$KFKLIB 可用的ASMLIB路徑
N/A X$KFDPARTNER 列出Disk-partners關係
N/A X$KFFXP 所有ASM檔案的extent map
N/A X$KFDAT 所有ASM Disk的extent列表
N/A X$KFBH 描述ASM cache
N/A X$KFCCE ASM block的連結串列
V$ASM_ATTRIBUTE(new in 11g) X$KFENV(new in 11g) Asm屬性,該X$基表還顯示一些隱藏屬性
V$ASM_DISK_IOSTAT(new in 11g) X$KFNSDSKIOST(new in 11g) I/O統計資訊
N/A X$KFDFS(new in 11g)
N/A X$KFDDD(new in 11g)
N/A X$KFGBRB(new in 11g)
N/A X$KFMDGRP(new in 11g)
N/A X$KFCLLE(new in 11g)
N/A X$KFVOL(new in 11g)
N/A X$KFVOLSTAT(new in 11g)
N/A X$KFVOFS(new in 11g)
N/A X$KFVOFSV(new in 11g)


X$KFFXP包含了檔案、extent和AU之間的對映關係。 從該X$檢視可以追蹤給定檔案的extent的條帶化和映象情況。注意對於primary au和mirror au讀操作的負載是均衡的, 而寫操作要求同時寫2者到磁碟。以下是X$KFFXP檢視列的含義



X$KFFXP Column Name Description
ADDR x$ table address/identifier
INDX row unique identifier
INST_ID instance number (RAC)
NUMBER_KFFXP ASM file number. Join with v$asm_file and v$asm_alias
COMPOUND_KFFXP File identifier. Join with compound_index in v$asm_file
INCARN_KFFXP File incarnation id. Join with incarnation in v$asm_file
PXN_KFFXP Progressive file extent number
XNUM_KFFXP ASM file extent number (mirrored extent pairs have the same extent value)
GROUP_KFFXP ASM disk group number. Join with v$asm_disk and v$asm_diskgroup
DISK_KFFXP Disk number where the extent is allocated. Join with v$asm_disk
AU_KFFXP Relative position of the allocation unit from the beginning of the disk. The allocation unit size
(1 MB) in v$asm_diskgroup
LXN_KFFXP 0->primary extent, ->mirror extent, 2->2nd mirror copy (high redundancy and metadata)
FLAGS_KFFXP N.K.
CHK_KFFXP N.K.



X$KFDAT該X$檢視包含了所有allocation unit AU的細節,不管是FREE的還是USED。


X$KFDAT Column Name Description
ADDR x$ table address/identifier
INDX row unique identifier
INST_ID instance number (RAC)
GROUP_KFDAT diskgroup number, join with v$asm_diskgroup
NUMBER_KFDAT disk number, join with v$asm_disk
COMPOUND_KFDAT disk compund_index, join with v$asm_disk
AUNUM_KFDAT Disk allocation unit (relative position from the beginning of the disk), join with
x$kffxp.au_kffxp
V_KFDAT V=this Allocation Unit is used; F=AU is free
FNUM_KFDAT file number, join with v$asm_file
I_KFDAT N/K
XNUM_KFDAT Progressive file extent number join with x$kffxp.pxn_kffxp
RAW_KFDAT raw format encoding of the disk,and file extent information



X$KFDPARTNER 這個X$檢視包含了 disk-partner(1-N)的對映關係,在一個給定ASM Diskgroup,若2個Disk存有同一個extent的映象複製,則將2個disk視作partners。因此partners必須屬於同一個 diskgroup下的不同的failgroup。


X$KFDPARTNER Column Name Description
ADDR x$ table address/identifier
INDX row unique identifier
INST_ID instance number (RAC)
GRP diskgroup number, join with v$asm_diskgroup
DISK disk number, join with v$asm_disk
COMPOUND disk identifier. Join with compound_index in v$asm_disk
NUMBER_KFDPARTNER partner disk number, i.e. disk-to-partner (1-N) relationship
MIRROR_KFDPARNER if=1 in a healthy normal redundancy config
PARITY_KFDPARNER if=1 in a healthy normal redundancy config
ACTIVE_KFDPARNER if=1 in a healthy normal redundancy config


研究ASM必要的技巧


1)找出ASM的映象mirror extent,在例子中是ASM的spfile



[grid@localhost ~]$ sqlplus  / as sysasm

SQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 13 11:13:39 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option

INSTANCE_NAME
----------------
+ASM

SQL> 
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +SYSTEMDG/asm/asmparameterfile
                                                 /registry.253.805993079

select GROUP_KFFXP, DISK_KFFXP, AU_KFFXP
  from x$kffxp
 where number_kffxp =
       (select file_number
          from v$asm_alias
         where name = 'REGISTRY.253.805993079');

GROUP_KFFXP DISK_KFFXP   AU_KFFXP
----------- ---------- ----------
          3          2         38
          3          1         39
          3          0         44

也可以這樣定位

select GROUP_KFDAT, NUMBER_KFDAT, AUNUM_KFDAT
  from x$kfdat
 where fnum_kfdat = (select file_number
                       from v$asm_alias
                      where name = 'REGISTRY.253.805993079')

GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT
----------- ------------ -----------
          3            0          44
          3            1          39
          3            2          38

==> 找到該 DISK對應的路徑
SQL> select path,DISK_NUMBER from v$asm_disk where GROUP_NUMBER=3 and disk_number in (0,1,2);

PATH                 DISK_NUMBER
-------------------- -----------
/dev/asm-diski                 2
/dev/asm-diskh                 1
/dev/asm-diskg                 0

SQL> create pfile='/home/grid/pfile' from spfile;

File created.

SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Automatic Storage Management option

[grid@localhost ~]$ cat pfile 
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'

透過dd讀取該AU		  

[grid@localhost ~]$ dd if=/dev/asm-diski of=/tmp/spfile.dmp skip=38 bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00328614 seconds, 319 MB/s

[grid@localhost ~]$ strings /tmp/spfile.dmp 
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'

[grid@localhost ~]$ dd if=/dev/asm-diskh of=/tmp/spfile1.dmp skip=39 bs=1024k count=1  
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0325114 seconds, 32.3 MB/s

[grid@localhost ~]$ strings /tmp/spfile1.dmp                                          
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'		

[grid@localhost ~]$ dd if=/dev/asm-diskg of=/tmp/spfile2.dmp skip=44 bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0298287 seconds, 35.2 MB/s

[grid@localhost ~]$ strings /tmp/spfile2.dmp                                          
+ASM.asm_diskgroups='EXTDG','NORDG'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1
*.diagnostic_dest='/g01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.local_listener='LISTENER_+ASM'
*.remote_login_passwordfile='EXCLUSIVE'



2) 顯示asm disk failure group和 disk partners的對映關係:


  1* select DISK_NUMBER,FAILGROUP,path from v$asm_disk where group_number=3
SQL> /

DISK_NUMBER FAILGROUP                      PATH
----------- ------------------------------ --------------------
          3 SYSTEMDG_0003                  /dev/asm-diskj
          2 SYSTEMDG_0002                  /dev/asm-diski
          1 SYSTEMDG_0001                  /dev/asm-diskh
          0 SYSTEMDG_0000                  /dev/asm-diskg

SQL> select disk,NUMBER_KFDPARTNER,DISKFGNUM from X$KFDPARTNER where grp=3;

      DISK NUMBER_KFDPARTNER  DISKFGNUM
---------- ----------------- ----------
         0                 1          1
         0                 2          1
         0                 3          1
         1                 0          2
         1                 2          2
         1                 3          2
         2                 0          3
         2                 1          3
         2                 3          3
         3                 0          4
         3                 1          4
         3                 2          4

12 rows selected.



ASM常見問題, FAQ:


Q:ASM做 rebalance和 mirror 的基本顆粒是什麼?

A: ASM做mirror 映象的基本顆粒是file的extent,預設情況下一個extent等於一個AU,11g之後一個extent可以是1 or 8 or 64個AU

ASM做rebalance重新平衡的基本顆粒也是extent,雖然重新平衡是對每一個AU逐次做的。



Q:ASMLIB和ASM的關係是什麼?

A:ASMLIB是一種種基於Linux module,專門為Oracle Automatic Storage Management特性設計的核心支援庫(kernel support library)。

簡單來說ASMLIB是一種Linux下的程式包,它不屬於Oracle ASM kernel。 透過ASMLIb可以做到裝置名繫結,便於ASM使用的目的; 但是Linux上能實現裝置名繫結並便於ASM使用的服務有很多,例如udev、mpath等;

所以ASMLIB並不是ASM必須的元件; 國內的中文文章對於該概念的描述大多不清晰,造成了ASMLIB=ASM或者ASM必須用ASMLIB的誤解,這是以訛傳訛。


Q: ASM是否是raid 10或者raid 01?

A:ASM的mirror是基於file extent的,而不是像raid那樣基於disk或者block。 所以ASM既不同於Raid 10,也不是Raid 01。 如果硬要說相似點的話,因為ASM是先mirror映象後stripe條帶化,所以在這個特徵上更像Raid 10。 但是注意,再次強調,ASM既不是RAID 10也不是RAID 01, 重複一千遍。。。。。。。。。。。。。

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

相關文章