ASM 翻譯系列第一彈:基礎知識 ASM AU,Extents,Mirroring 和 Failgroups

沃趣科技發表於2016-06-20

原作者:Bane Radulovic
譯者:    魏興華
稽核:    魏興華


ASM Allocation Units

在ASM磁碟組中,最基本空間分配單位是allocation unit,簡稱AU,每個ASM的磁碟在初始化後都會被切割成一個一個的AU。

當磁碟組建立時,可以透過設定AU_SIZE的屬性值,來指定AU的大小(在11.1版本以後),AU的大小可以是1,2,4,8,16,32,64MB,如果不指定AU的大小,預設值是1MB(Exadata下為4MB)。

AU size是磁碟組的屬性(不是磁碟的屬性,不是ASM例項的屬性),因此每一個ASM磁碟組都可以有自己的AU size值。

ASM Extents

一個或多個AU組成一個extent,一個或多個ASM extent組成了一個ASM的檔案,因此一個ASM檔案邏輯上是由extent組成的。

我們需要區分物理extent和虛擬extent,一個虛擬extent或者說extent set,在外部冗餘的磁碟組中,是由一個物理extent組成,在normal冗餘的磁碟組中,是由至少2個物理extent組成,在一個high冗餘的磁碟組中,由至少3個物理extent組成。

在ASM 11.1版本之前,extent的大小是固定的,在ASM 11.1版本之後,出現了可變extent,可變extent的出現是為了更好的支援大資料檔案,減少對ASM和資料庫例項的SGA要求、提升建立檔案和開啟檔案等操作的效能,初始化的extent大小等於磁碟組的AU_SIZE設定值,隨著一個檔案分配的extent越來越多,extent的size會按照4或16倍的AU_SIZE增大。這個特性在檔案新建或者resize的時候自動起作用,當然ASM磁碟組的屬性值COMPATIBLE.ASM 和COMPATIBLE.RDBMS要設定為大於等於11.1。

一個檔案的extent大小變化規律遵循如下方式:

一個檔案的前20000個extent set,extent的size等於磁碟組的AU_SIZE的設定值。

接下來的20000個extent set,extent的size等於磁碟組的AU_SIZE*4。

如果一個檔案的總extent set數多於40000個,那麼後面所有的extent的size等於磁碟組的AU_SIZE*16。

這個可變extent特性有一個煩人的BUG 8898852,更多資訊可以參考MOS 965751.1。

譯者注:我很懷疑可變extent能起到的效果,因為大部分使用者新增資料檔案時,一般會指定資料檔案的大小,假如AU_SIZE設定成1M,那麼只有大於20G的資料檔案才會有一些extent的大小為4MB,而就我接觸到的DBA來說,可能大部分DBA都會把資料檔案的大小設定成20G左右。還有就是雖然Oracle中有bigfile表空間,但是用的人並不多。

ASM Mirroring

ASM的資料映象功能用來保護資料的完整性,它是透過對一份資料在不同的磁碟多儲存一份資料副本來做到這一點。當一個ASM的磁碟組被建立時,ASM管理員可以指定磁碟組的映象方式:

  • External – 不提供映象保護
  • Normal – 2副本
  • High – 3副本

ASM映象的粒度是extent而非磁碟或者block,ASM中的映象是透過對組成的每一個ASM檔案的extent做映象來實現的。在ASM中,我們可以指定每個檔案的冗餘級別。例如,一個在normal冗餘的磁碟組中的檔案,它的每一個extent可能會被映象一次(預設行為),另一個檔案,在相同的磁碟組,可能會被映象二次,也就是三副本(假設磁碟組中至少有3個failgroup),事實上,ASM後設資料檔案在normal冗餘的磁碟組中就是做的三副本,這裡同樣需要磁碟組中至少要有3個failgroup。

譯者注:在normal冗餘的磁碟組中,會有檔案被映象兩次,也就是三副本,對於這點不必懷疑,這些檔案都是ASM的後設資料檔案,在後續的文章中,我們會多次看到這種現象。

ASM Failgroups

一個ASM磁碟組可以邏輯上被劃分為一個一個的failgroup,failgroup需要在磁碟組建立指定,如果我們在建立磁碟組時,不指定failgroup ,那麼ASM會自動把每一個磁碟作為一個failgroup,這一點可能在Exadata上會不一樣,Exadata 下所有來自相同儲存節點的磁碟會自動放入到一個failgroup ,即使你沒有指定failgroup。

normal冗餘的磁碟組要求至少2個failgroup,high冗餘的磁碟組要求至少3個failgroup,external冗餘模式的磁碟組不要求有failgroup。

當一個extent分配給一個具有雙副本的檔案時,ASM會分配一個primary copy 和 一個 mirror copy,primary copy儲存在一個磁碟,而mirror copy會儲存在另外一個不同failgroup的磁碟上。

當向ASM磁碟組新增磁碟時,failgroup可以手工指定,ASM會智慧的把磁碟新增到正確的failgroup中。

關於譯者

魏興華,沃趣科技高階技術專家,主要參與公司一體機產品、監控產品、容災產品、DBaaS平臺的研發和設計。曾就職於東軟集團,阿里巴巴集團,Oracle ACE組成員,DBGEEK 使用者組發起人,ITPUB認證部落格專家,ACOUG、SHOUG核心成員。曾在中國資料庫大會、Oracle技術嘉年華、ORCL-CON、YY分享平臺等公開場合多次做過資料庫技術專題分享。對Oracle 並行機制、資料庫異常恢復方法、ASM等有深入的研究,人稱”Oracle Internal達人”,對企業資料庫架構設計、故障恢復、高併發下資料庫效能調優有豐富的經驗,擅長從等待事件角度分析解決資料庫效能問題,是OWI方法論的提倡者和踐行者。



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

相關文章