ASM 翻譯系列第十一彈:高階知識 Offline or drop?

shilei1發表於2018-05-13

原作者:Bane Radulovic

譯者:    莊培培

稽核:    魏興華  沃趣科技

DBGeeK社群聯合出品




Offline or drop?
當一個ASM磁碟不可用時,ASM會把它從磁碟組裡移除,對嗎?要看情況,通常取決於ASM版本和磁碟組的冗餘級別。因為一個external冗餘的磁碟組會直接被dismount,所以主要關注normal和high冗餘磁碟組的情況。ASM 10g版本,磁碟會被直接drop。從11gR1,一個磁碟不可用時會先被offline,此時disk repair計時器開始介入,如果計時器達到磁碟組DISK_REPAIR_TIME 屬性值時,這個磁碟會從所屬的磁碟組中drop掉。如果這個磁碟在計時器過期前恢復可用,那麼它的狀態會變回online,不會被drop。但是ASM是如何發現磁碟恢復可用又有什麼機制將它恢復online呢?

Unavailable
當一個磁碟不能被ASM或者ASM客戶端讀或寫時,會被認為不可用。資料庫是一種典型的ASM客戶端,但ASM客戶端並不只限於是資料庫。磁碟會因為各種原因變成不可用,本地硬碟的SCSI線纜受損,儲存的SAN交換機或者網路故障,NFS空間的伺服器故障,雙活場景的站點故障,又或是磁碟本身故障等各種場景。無論是哪種情況,ASM或者是ASM客戶端會報IO錯誤,然後ASM會進行相應的處理。

Drop
在ASM 10G時,ASM會立即Drop變成不可用的磁碟。這會觸發一個嘗試恢復資料冗餘的重平衡操作。一旦重平衡過程完成,資料冗餘度會恢復,同時磁碟會被移除出磁碟組。一旦磁碟不可用的故障被解決,可以透過alter diskgroup命令將磁碟重新新增回磁碟組。 例如:alter diskgroup DATA add disk 'ORCL: DISK077'; 這又會再次觸發一個重平衡操作,一旦重平衡過程完成,磁碟會恢復成為磁碟組成員。 但是如果多個磁碟同時發生故障,又或者一個磁碟故障在重平衡過程中又有磁碟故障會導致什麼結果?這取決於多個因素,磁碟組的冗餘度、磁碟是否來自於相同或不同的failgroup和故障磁碟是否是partner關係。 在一個normal冗餘級別的磁碟組,ASM能容忍來自於一個failgroup中的一塊或者多塊,甚至是全部的磁碟故障。如果來自於不同的failgroup的磁碟變成不可用,僅當它們之間不存在partner關係時,ASM才能容忍。 這裡提到的“容忍"的具體含義是指磁碟組能繼續online同時ASM客戶端訪問不受影響。 在一個high冗餘級別的磁碟組,ASM能容忍僅來自於兩個failgroup中的一塊或者多塊,甚至是全部的磁碟故障。如果來自於兩個以上failgroup的磁碟變成不可用,partner關係規則仍然有效。基本上,ASM能容忍任意數量的磁碟變成不可用,只要它們之間不存在partner關係時。

Offline
當一個磁碟被drop,整個磁碟組需要為此進行rebalance,整個過程需要耗費大量的時間。在此期間,其他磁碟也可能會發生故障,使得資料丟失的風險大大增加。為解決這個問題,在11gR1開始,ASM引入了fast disk resync特性。ASM不再立即drop不可用的磁碟,而是先置為offline狀態。這樣做的意義是能讓ASM管理員被告知有磁碟發生故障後在disk repair time計時器到達閾值前修復故障。 預設的disk repair計時器閾值是3.6小時。這個閾值是可以透過alter diskgroup命令來調整的,假設要設定為12小時,命令如下:alter diskgroup DATA set attribute 'DISK_REPAIR_TIME' = '12h'; 在磁碟處於offline的這段時間裡,ASM持續跟蹤需要在offline磁碟上做的修改操作。如果磁碟在計時器到達閾值前恢復可用並且恢復到online狀態,那麼ASM會將這些修改操作應用到磁碟上去。這就是fast disk resync特性的具體用途。 如果導致磁碟離線的故障不能解決,在計時器到達閾值後,磁碟會從磁碟組中被drop掉。

Online
當一個系統管理員或者ASM管理員修復了導致磁碟不可用的故障後(可能是更換了某條故障的線纜),接下來該怎麼做能讓磁碟恢復online狀態?這個過程能否能自動呢? 答案同樣也是看情況。如果是Exadata或者是Oracle Database Appliance,磁碟會被自動online。其他情況是ASM管理員需要透過alter diskgroup命令將磁碟恢復為online狀態。 例如: alter diskgroup DATA online disk 'ORCL: DISK077'; 或者 alter diskgroup DATA online all;

Conclusion
知道在不同的故障場景下會發生什麼事情是這件非常有價值的事情,比如:目前使用的ASM版本分別能做什麼和不能做什麼,當前使用的磁碟組冗餘度能提供什麼樣的保護級別。關於譯者莊培培,沃趣科技資料庫售前工程師,主要負責資料庫平臺架構方案設計、產品驗證測試。

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

相關文章