本發(fā)明涉及服務器技術(shù)領(lǐng)域,特別是涉及一種用于磁盤鏡像高可用集群diskless的處理方法和系統(tǒng)。
背景技術(shù):
隨著信息化的發(fā)展,企事業(yè)單位對關(guān)鍵應用的可靠性和可用性要求越來越高,服務器系統(tǒng)一旦發(fā)生故障,帶來的損失無可估量。高可用集群技術(shù)是解決由軟硬件問題導致可靠性降低的有效措施,典型的高可用集群方案由兩個以上的服務器連接起來,通過高可用集群軟件實現(xiàn)心跳和協(xié)調(diào),當一臺服務器停機時,集群中的其他服務器能夠?qū)⑼C服務器的業(yè)務接管過來。
典型的高可用集群方案多個服務器間數(shù)據(jù)的共享使用共享磁陣,由于共享磁陣的部署成本較高,對部署成本敏感的企事業(yè)單位可以選擇磁盤鏡像的方案來實現(xiàn)數(shù)據(jù)的共享,該方案的用戶數(shù)據(jù)存儲在服務器的本地硬盤,通過tcp/ip實現(xiàn)數(shù)據(jù)的實時同步,保障master服務器和slave服務器的塊設備的實時一致性,在master服務器發(fā)生故障時,業(yè)務能夠切換到slave節(jié)點,同時使用最新的用戶數(shù)據(jù)。但是,開源的磁盤鏡像方案有drbd(distributedreplicatedblockdevice),使用drbd方案部署磁盤鏡像高可用集群,系統(tǒng)運行過程中有時磁盤會出現(xiàn)diskless狀態(tài),磁盤的讀寫功能受到影響,繼而會影響用戶業(yè)務,對系統(tǒng)的高可靠性帶來極大的風險。
因此,如何解決上述技術(shù)問題,是本領(lǐng)域技術(shù)人員目前需要解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種用于磁盤鏡像高可用集群diskless的處理方法和系統(tǒng),以解決服務器系統(tǒng)運行過程中有時磁盤會出現(xiàn)diskless狀態(tài),磁盤的讀寫功能受到影響,繼而會影響用戶業(yè)務,對系統(tǒng)的高可靠性帶來極大的風險的問題。
為解決上述技術(shù)問題,本發(fā)明提供了如下技術(shù)方案:
一種用于磁盤鏡像高可用集群diskless的處理方法,包括:
實時監(jiān)測磁盤鏡像高可用集群是否發(fā)生i/o錯誤;
若是,則通過drbd進行錯誤分離,并通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊;
判斷當前所述磁盤鏡像高可用集群的磁盤狀態(tài)是否為diskless;
若是,則控制所述磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使所述drbd的狀態(tài)重新連接,并觸發(fā)所述主節(jié)點和所述輔助節(jié)點進行一次數(shù)據(jù)同步。
優(yōu)選地,所述控制所述磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使所述drbd的狀態(tài)重新連接,并觸發(fā)所述主節(jié)點和所述輔助節(jié)點進行一次數(shù)據(jù)同步,喚醒所述輔助節(jié)點運行,包括:
控制所述磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令;
判斷所述drbd的狀態(tài)是否重新連接,并觸發(fā)了所述主節(jié)點和所述輔助節(jié)點的數(shù)據(jù)同步;
若否,則發(fā)出預設的告警信息。
優(yōu)選地,在所述發(fā)出預設的告警信息之后,還包括:
實時檢測所述主節(jié)點的磁盤的錯誤是否被修復;
若是,則控制所述磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令。
一種用于磁盤鏡像高可用集群diskless的處理系統(tǒng),包括:
監(jiān)測模塊,用于實時監(jiān)測磁盤鏡像高可用集群是否發(fā)生i/o錯誤;
分離模塊,用于在所述監(jiān)測模塊監(jiān)測到所述磁盤鏡像高可用集群發(fā)生i/o錯誤時,通過drbd進行錯誤分離,并通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊;
判斷模塊,用于判斷當前所述磁盤鏡像高可用集群的磁盤狀態(tài)是否為diskless;
執(zhí)行模塊,用于在判定當前所述磁盤鏡像高可用集群的輔助節(jié)點宕機時,控制所述磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使所述drbd的狀態(tài)重新連接,并觸發(fā)所述主節(jié)點和所述輔助節(jié)點進行一次數(shù)據(jù)同步。
優(yōu)選地,所述執(zhí)行模塊包括:
第一執(zhí)行單元,用于在判定當前所述磁盤鏡像高可用集群的輔助節(jié)點宕機時,控制所述磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令;
判斷單元,用于判斷所述drbd的狀態(tài)是否重新連接,并觸發(fā)了所述主節(jié)點和所述輔助節(jié)點的數(shù)據(jù)同步;
告警單元,用于在判定所述drbd的狀態(tài)未重新連接,且未觸發(fā)所述主節(jié)點和所述輔助節(jié)點的數(shù)據(jù)同步時,發(fā)出預設的告警信息。
優(yōu)選地,所述執(zhí)行模塊還包括:
檢測單元,用于實時檢測所述主節(jié)點的磁盤的錯誤是否被修復;
第二執(zhí)行單元,用于在檢測到所述主節(jié)點的磁盤的錯誤被修復時,控制所述磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令
與現(xiàn)有技術(shù)相比,上述技術(shù)方案具有以下優(yōu)點:
本發(fā)明所提供的一種用于磁盤鏡像高可用集群diskless的處理方法,包括:實時監(jiān)測磁盤鏡像高可用集群是否發(fā)生i/o錯誤;若是,則通過drbd進行錯誤分離,并通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊;判斷當前磁盤鏡像高可用集群的磁盤狀態(tài)是否為diskless;若是,則控制磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使drbd的狀態(tài)重新連接,并觸發(fā)主節(jié)點和輔助節(jié)點進行一次數(shù)據(jù)同步。使得在高可用集群出現(xiàn)diskless的情況下,用戶業(yè)務持續(xù)運行不受影響,同時很大程度上能夠使得服務器系統(tǒng)從diskless狀態(tài)自動恢復,保障了用戶業(yè)務的高可用性。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一種具體實施方式所提供的用于磁盤鏡像高可用集群diskless的處理方法流程圖;
圖2為本發(fā)明一種具體實施方式所提供的用于磁盤鏡像高可用集群diskless的處理系統(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
本發(fā)明的核心是提供一種用于磁盤鏡像高可用集群diskless的處理方法和系統(tǒng),以解決服務器系統(tǒng)運行過程中有時磁盤會出現(xiàn)diskless狀態(tài),磁盤的讀寫功能受到影響,繼而會影響用戶業(yè)務,對系統(tǒng)的高可靠性帶來極大的風險的問題。
為了使本發(fā)明的上述目的、特征和優(yōu)點能夠更為明顯易懂,下面結(jié)合附圖對本發(fā)明的具體實施方式做詳細的說明。
在以下描述中闡述了具體細節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實施的限制。
請參考圖1,圖1為本發(fā)明一種具體實施方式所提供的用于磁盤鏡像高可用集群diskless的處理方法流程圖。
本發(fā)明的一種具體實施方式提供了一種用于磁盤鏡像高可用集群diskless的處理方法,包括:
s11:實時監(jiān)測磁盤鏡像高可用集群是否發(fā)生i/o錯誤。
在本實施方式中,磁盤鏡像高可用集群主要包括ha模塊和drbd模塊,ha模塊負責資源管理和業(yè)務切換,drbd模塊主要實現(xiàn)磁盤鏡像功能,即保持雙節(jié)點本地數(shù)據(jù)的實時同步。預先將磁盤鏡像高可用集群中的drbd磁盤錯誤處理策略配置為detach。
s12:若是,則通過drbd進行錯誤分離,并通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊。此時,該i/o錯誤被drbd對上層屏蔽,并且drbd透明底通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊,服務器本地磁盤的狀態(tài)是diskless,所有響應的i/o操作讀寫實際上都是發(fā)生在對端,這種模式下磁盤讀寫性能會略微降低,但是服務將繼續(xù)運行不受影響。
這種情況下,雖然不影響用戶業(yè)務的持續(xù)進行,但是對于集群的可靠性來說是一個風險,因為當集群輔助節(jié)點宕機的時候,主節(jié)點磁盤不能正常被讀寫,用戶的業(yè)務會中斷。
s13:判斷當前磁盤鏡像高可用集群的磁盤狀態(tài)是否為diskless。
s14:若是,則控制磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使drbd的狀態(tài)重新連接,并觸發(fā)主節(jié)點和輔助節(jié)點進行一次數(shù)據(jù)同步。
如果檢測到磁盤狀態(tài)為diskless,針對該鏡像資源執(zhí)行一次attach命令,對于由于系統(tǒng)重啟后drbd模塊咸魚存儲(raid、lvm等)啟動而導致的diskless問題,該命令能夠觸發(fā)一次數(shù)據(jù)的自動同步,同步完成后drbd能自動使用主節(jié)點數(shù)據(jù)來為高可用集群提供讀寫。數(shù)據(jù)同步完畢,輔助節(jié)點具備備份節(jié)點的功能,即主節(jié)點宕機,輔助節(jié)點能夠自動運行業(yè)務。
通過對drbd進行合理的配置,使得高可用集群出現(xiàn)diskless的情況下,在合適的時間執(zhí)行drbdattach命令,用戶業(yè)務持續(xù)運行不受影響,同時能夠使得系統(tǒng)從diskless狀態(tài)自動恢復,保障了用戶業(yè)務的高可用性。
進一步地,控制磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使drbd的狀態(tài)重新連接,并觸發(fā)主節(jié)點和輔助節(jié)點進行一次數(shù)據(jù)同步,喚醒輔助節(jié)點運行,包括:控制磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令;判斷drbd的狀態(tài)是否重新連接,并觸發(fā)了主節(jié)點和輔助節(jié)點的數(shù)據(jù)同步;若否,則發(fā)出預設的告警信息。
更進一步地,在發(fā)出預設的告警信息之后,還包括:實時檢測主節(jié)點的磁盤的錯誤是否被修復;若是,則控制磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令。
為了避免自動運行drbdattach命令,不能觸發(fā)數(shù)據(jù)同步的情況的出現(xiàn)導致影響用戶的業(yè)務運行,若第一次命令后,不能實現(xiàn)數(shù)據(jù)同步,則發(fā)出告警信息,以提醒用戶進行手動修復主節(jié)點磁盤的錯誤,待手動修復錯誤完畢后,再次執(zhí)行drbdattach命令,以實現(xiàn)數(shù)據(jù)同步。進一步地提高了系統(tǒng)的高可靠性。
請參考圖2,圖2為本發(fā)明一種具體實施方式所提供的用于磁盤鏡像高可用集群diskless的處理系統(tǒng)結(jié)構(gòu)示意圖。
相應的,本發(fā)明一種實施方式還提供了一種用于磁盤鏡像高可用集群diskless的處理系統(tǒng),包括:監(jiān)測模塊21,用于實時監(jiān)測磁盤鏡像高可用集群是否發(fā)生i/o錯誤;分離模塊22,用于在監(jiān)測模塊監(jiān)測到磁盤鏡像高可用集群發(fā)生i/o錯誤時,通過drbd進行錯誤分離,并通過網(wǎng)絡從對端節(jié)點提取受該i/o錯誤影響的數(shù)據(jù)塊;判斷模塊23,用于判斷當前磁盤鏡像高可用集群的磁盤狀態(tài)是否為diskless;執(zhí)行模塊24,用于在判定當前磁盤鏡像高可用集群的輔助節(jié)點宕機時,控制磁盤鏡像高可用集群的主節(jié)點執(zhí)行drbdattach命令,以使drbd的狀態(tài)重新連接,并觸發(fā)主節(jié)點和輔助節(jié)點進行一次數(shù)據(jù)同步。
如果檢測到磁盤狀態(tài)為diskless,針對該鏡像資源執(zhí)行一次attach命令,對于由于系統(tǒng)重啟后drbd模塊咸魚存儲(raid、lvm等)啟動而導致的diskless問題,該命令能夠觸發(fā)一次數(shù)據(jù)的自動同步,同步完成后drbd能自動使用主節(jié)點數(shù)據(jù)來為高可用集群提供讀寫。數(shù)據(jù)同步完畢,輔助節(jié)點具備備份節(jié)點的功能,即主節(jié)點宕機,輔助節(jié)點能夠自動運行業(yè)務。
通過對drbd進行合理的配置,使得高可用集群出現(xiàn)diskless的情況下,在合適的時間執(zhí)行drbdattach命令,用戶業(yè)務持續(xù)運行不受影響,同時能夠使得系統(tǒng)從diskless狀態(tài)自動恢復,保障了用戶業(yè)務的高可用性。
進一步地,執(zhí)行模塊包括:第一執(zhí)行單元,用于在判定當前磁盤鏡像高可用集群的輔助節(jié)點宕機時,控制磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令;判斷單元,用于判斷drbd的狀態(tài)是否重新連接,并觸發(fā)了主節(jié)點和輔助節(jié)點的數(shù)據(jù)同步;告警單元,用于在判定drbd的狀態(tài)未重新連接,且未觸發(fā)主節(jié)點和輔助節(jié)點的數(shù)據(jù)同步時,發(fā)出預設的告警信息。
執(zhí)行模塊還包括:檢測單元,用于實時檢測主節(jié)點的磁盤的錯誤是否被修復;第二執(zhí)行單元,用于在檢測到主節(jié)點的磁盤的錯誤被修復時,控制磁盤鏡像高可用集群的主節(jié)點自動執(zhí)行drbdattach命令。
為了避免自動運行drbdattach命令,不能觸發(fā)數(shù)據(jù)同步的情況的出現(xiàn)導致影響用戶的業(yè)務運行,若第一次命令后,不能實現(xiàn)數(shù)據(jù)同步,則發(fā)出告警信息,以提醒用戶進行手動修復主節(jié)點磁盤的錯誤,待手動修復錯誤完畢后,再次執(zhí)行drbdattach命令,以實現(xiàn)數(shù)據(jù)同步。進一步地提高了系統(tǒng)的高可靠性。
以上對本發(fā)明所提供的一種用于磁盤鏡像高可用集群diskless的處理方法及系統(tǒng)進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。