當一個ASM磁盤不可用時,ASM會把它從磁盤組里移除,對嗎?要看情況,通常取決于ASM版本和磁盤組的冗余級別。因為一個external冗余的磁盤組會直接被dismount,所以主要關注normal和high冗余磁盤組的情況。
ASM 10g版本,磁盤會被直接drop。從11gR1,一個磁盤不可用時會先被offline,此時disk repair計時器開始介入,如果計時器達到磁盤組DISK_REPAIR_TIME 屬性值時,這個磁盤會從所屬的磁盤組中drop掉。如果這個磁盤在計時器過期前恢復可用,那么它的狀態(tài)會變回online,不會被drop。但是ASM是如何發(fā)現(xiàn)磁盤恢復可用又有什么機制將它恢復online呢?
當一個磁盤不能被ASM或者ASM客戶端讀或寫時,會被認為不可用。數(shù)據(jù)庫是一種典型的ASM客戶端,但ASM客戶端并不只限于是數(shù)據(jù)庫。磁盤會因為各種原因變成不可用,本地硬盤的SCSI線纜受損,存儲的SAN交換機或者網絡故障,NFS空間的服務器故障,雙活場景的站點故障,又或是磁盤本身故障等各種場景。無論是哪種情況,ASM或者是ASM客戶端會報IO錯誤,然后ASM會進行相應的處理。
在ASM 10G時,ASM會立即Drop變成不可用的磁盤。這會觸發(fā)一個嘗試恢復數(shù)據(jù)冗余的重平衡操作。一旦重平衡過程完成,數(shù)據(jù)冗余度會恢復,同時磁盤會被移除出磁盤組。一旦磁盤不可用的故障被解決,可以通過alter diskgroup命令將磁盤重新添加回磁盤組。 例如:alter diskgroup DATA add disk ‘ORCL: DISK077’; 這又會再次觸發(fā)一個重平衡操作,一旦重平衡過程完成,磁盤會恢復成為磁盤組成員。 但是如果多個磁盤同時發(fā)生故障,又或者一個磁盤故障在重平衡過程中又有磁盤故障會導致什么結果?這取決于多個因素,磁盤組的冗余度、磁盤是否來自于相同或不同的failgroup和故障磁盤是否是partner關系。 在一個normal冗余級別的磁盤組,ASM能容忍來自于一個failgroup中的一塊或者多塊,甚至是全部的磁盤故障。如果來自于不同的failgroup的磁盤變成不可用,僅當它們之間不存在partner關系時,ASM才能容忍。 這里提到的“容忍”的具體含義是指磁盤組能繼續(xù)online同時ASM客戶端訪問不受影響。 在一個high冗余級別的磁盤組,ASM能容忍僅來自于兩個failgroup中的一塊或者多塊,甚至是全部的磁盤故障。如果來自于兩個以上failgroup的磁盤變成不可用,partner關系規(guī)則仍然有效。基本上,ASM能容忍任意數(shù)量的磁盤變成不可用,只要它們之間不存在partner關系時。
當一個磁盤被drop,整個磁盤組需要為此進行rebalance,整個過程需要耗費大量的時間。在此期間,其他磁盤也可能會發(fā)生故障,使得數(shù)據(jù)丟失的風險大大增加。為解決這個問題,在11gR1開始,ASM引入了fast disk resync特性。ASM不再立即drop不可用的磁盤,而是先置為offline狀態(tài)。這樣做的意義是能讓ASM管理員被告知有磁盤發(fā)生故障后在disk repair time計時器到達閾值前修復故障。 默認的disk repair計時器閾值是3.6小時。這個閾值是可以通過alter diskgroup命令來調整的,假設要設置為12小時,命令如下:alter diskgroup DATA set attribute ‘DISK_REPAIR_TIME’ = ‘12h’; 在磁盤處于offline的這段時間里,ASM持續(xù)跟蹤需要在offline磁盤上做的修改操作。如果磁盤在計時器到達閾值前恢復可用并且恢復到online狀態(tài),那么ASM會將這些修改操作應用到磁盤上去。這就是fast disk resync特性的具體用途。 如果導致磁盤離線的故障不能解決,在計時器到達閾值后,磁盤會從磁盤組中被drop掉。
當一個系統(tǒng)管理員或者ASM管理員修復了導致磁盤不可用的故障后(可能是更換了某條故障的線纜),接下來該怎么做能讓磁盤恢復online狀態(tài)?這個過程能否能自動呢? 答案同樣也是看情況。如果是Exadata或者是Oracle Database Appliance,磁盤會被自動online。其他情況是ASM管理員需要通過alter diskgroup命令將磁盤恢復為online狀態(tài)。 例如: alter diskgroup DATA online disk ‘ORCL: DISK077’; 或者 alter diskgroup DATA online all;
知道在不同的故障場景下會發(fā)生什么事情是這件非常有價值的事情,比如:目前使用的ASM版本分別能做什么和不能做什么,當前使用的磁盤組冗余度能提供什么樣的保護級別。
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業(yè)目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯(lián)系我們,我們將根據(jù)著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。