技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)冗余存儲(chǔ)技術(shù),具體的說是一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法。
背景技術(shù):
目前K1平臺(tái)(浪潮天梭K1系統(tǒng))上的LV管理軟件和多路徑軟件沒有實(shí)現(xiàn)存儲(chǔ)雙活的功能,無(wú)法在操作系統(tǒng)層實(shí)現(xiàn)存儲(chǔ)雙活。存儲(chǔ)雙活架構(gòu)廣泛數(shù)據(jù)的容災(zāi),對(duì)于使用ASM存儲(chǔ)管理的ORACLE數(shù)據(jù)庫(kù),可以借助ASM磁盤組的冗余功能將不同存儲(chǔ)的LUN磁盤劃分到不同組的方式實(shí)現(xiàn)存儲(chǔ)的雙活,但在配置和管理上比較復(fù)雜。如果在操作系統(tǒng)層能夠?qū)崿F(xiàn)不同存儲(chǔ)之間LUN磁盤的鏡像,對(duì)于實(shí)現(xiàn)存儲(chǔ)雙活有非常重要的意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法。
本發(fā)明所述一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,解決上述技術(shù)問題采用的技術(shù)方案如下:所述一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,通過將多路徑操作命令集成在K1操作系統(tǒng)中,K1操作系統(tǒng)啟動(dòng)時(shí)運(yùn)行多路徑操作命令,自動(dòng)查看不同存儲(chǔ)的LUN磁盤信息,將來自不同存儲(chǔ)的LUN磁盤在K1上實(shí)現(xiàn)鏡像,實(shí)現(xiàn)存儲(chǔ)雙活;其主要包括如下內(nèi)容:1)將來自不同存儲(chǔ)的LUN磁盤根據(jù)WWID號(hào)進(jìn)行綁定;2)對(duì)LUN磁盤實(shí)現(xiàn)鏡像;3)對(duì)LUN磁盤控制進(jìn)行數(shù)據(jù)的并行讀寫;4)對(duì)LUN磁盤狀態(tài)監(jiān)控自動(dòng)維護(hù)綁定關(guān)系。
優(yōu)選的,所述1)中,將來自不同存儲(chǔ)的LUN磁盤根據(jù)WWID號(hào)進(jìn)行綁定形成虛擬LUN磁盤,并設(shè)置虛擬LUN磁盤別名的配置文件;手動(dòng)修改配置文件進(jìn)行添加,或者通過操作命令將兩個(gè)不同LUN磁盤進(jìn)行綁定,自動(dòng)將配置信息添加到配置文件中。
優(yōu)選的,所述2)中,通過操作命令將一個(gè)新LUN磁盤與一個(gè)已有LUN磁盤進(jìn)行綁定,綁定后將原LUN磁盤中的數(shù)據(jù)在線復(fù)制到新LUN磁盤中,兩個(gè)LUN磁盤數(shù)據(jù)達(dá)到完全一致,實(shí)現(xiàn)兩個(gè)LUN磁盤的鏡像。
優(yōu)選的,通過操作命令將原LUN磁盤從已有的綁定關(guān)系中刪除:將需要?jiǎng)h除的LUN磁盤先標(biāo)記為刪除,控制不再對(duì)其發(fā)起新的讀寫操作,待所有對(duì)該LUN磁盤的讀寫操作完成后自動(dòng)解除綁定關(guān)系,并將該LUN磁盤從配置文件中清除。
優(yōu)選的,所述3)中,所有對(duì)虛擬LUN磁盤的讀寫操作都轉(zhuǎn)換為對(duì)兩個(gè)綁定LUN磁盤的并行讀寫操作:寫操作在兩個(gè)綁定LUN磁盤都寫入成功時(shí)才會(huì)返回成功,讀操作并行從兩個(gè)LUN磁盤讀取,返回速度較快的存儲(chǔ)的數(shù)據(jù)。
優(yōu)選的,將來自不同存儲(chǔ)的LUN磁盤進(jìn)行綁定,通過對(duì)綁定關(guān)系中的LUN磁盤進(jìn)行讀寫控制,使綁定關(guān)系中的LUN磁盤中的數(shù)據(jù)時(shí)刻都保持完全一致;當(dāng)一臺(tái)存儲(chǔ)故障致使相應(yīng)LUN磁盤無(wú)法被訪問時(shí),自動(dòng)將該故障存儲(chǔ)的LUN磁盤進(jìn)行隔離,而其余LUN磁盤可正常進(jìn)行讀寫。
優(yōu)選的,所述4)中,每秒一次通過只讀的方式對(duì)綁定的兩個(gè)LUN磁盤進(jìn)行讀測(cè)試,判斷它們狀態(tài)是否正常;當(dāng)發(fā)現(xiàn)LUN磁盤不可用時(shí)及時(shí)將其標(biāo)記為不可用,在規(guī)定時(shí)間內(nèi)若該LUN磁盤狀態(tài)恢復(fù)正常,數(shù)據(jù)會(huì)從幸存的LUN磁盤中向該LUN磁盤重新同步;當(dāng)超過規(guī)定時(shí)間時(shí),該LUN磁盤自動(dòng)從綁定關(guān)系中刪除,同時(shí)將其從配置文件中清除。
本發(fā)明所述一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明通過將來自不同存儲(chǔ)的LUN磁盤在K1上實(shí)現(xiàn)鏡像,實(shí)現(xiàn)存儲(chǔ)的雙活,也可為已有LUN磁盤增加鏡像磁盤實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的在線遷移;克服了目前K1平臺(tái)上的LV管理軟件和多路徑軟件沒有存儲(chǔ)雙活的功能,無(wú)法在操作系統(tǒng)層實(shí)現(xiàn)存儲(chǔ)雙活的技術(shù)缺陷;并且,不需要存儲(chǔ)具備特殊的功能,操作方便,具有較好的推廣應(yīng)用價(jià)值。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,對(duì)本發(fā)明所述一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法進(jìn)一步詳細(xì)說明。
本發(fā)明所述一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,通過將多路徑操作命令集成在K1操作系統(tǒng)中,K1操作系統(tǒng)啟動(dòng)時(shí)運(yùn)行多路徑操作命令,自動(dòng)查看不同存儲(chǔ)的LUN磁盤信息,將來自不同存儲(chǔ)的LUN磁盤在K1上實(shí)現(xiàn)鏡像,不需要存儲(chǔ)具備特殊的功能;能夠?qū)崿F(xiàn)存儲(chǔ)雙活,同時(shí)能夠?yàn)橐延蠰UN磁盤增加鏡像磁盤,實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的在線遷移。
所述將來自不同存儲(chǔ)的LUN磁盤在K1上實(shí)現(xiàn)鏡像,實(shí)現(xiàn)存儲(chǔ)雙活,其主要是指,將來自不同存儲(chǔ)的LUN磁盤進(jìn)行綁定,通過對(duì)綁定關(guān)系中的LUN磁盤進(jìn)行讀寫控制,使綁定關(guān)系中的LUN磁盤中的數(shù)據(jù)時(shí)刻都保持完全一致,實(shí)現(xiàn)存儲(chǔ)冗余。當(dāng)一臺(tái)存儲(chǔ)故障致使相應(yīng)LUN磁盤無(wú)法被訪問時(shí),自動(dòng)將該故障存儲(chǔ)的LUN磁盤進(jìn)行隔離,而其余LUN磁盤可正常進(jìn)行讀寫,即一臺(tái)存儲(chǔ)故障后數(shù)據(jù)不會(huì)丟失,保持了業(yè)務(wù)的持續(xù)性。綁定關(guān)系中某個(gè)LUN磁盤故障對(duì)應(yīng)用系統(tǒng)或操作系統(tǒng)來說是透明的,不影響應(yīng)用系統(tǒng)和操作系統(tǒng)對(duì)LUN磁盤的正常使用。
所述為已有LUN磁盤增加鏡像磁盤,實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的在線遷移,主要是指,通過將新LUN磁盤與原LUN磁盤進(jìn)行綁定,綁定后控制數(shù)據(jù)從原LUN磁盤拷貝到新LUN磁盤,拷貝完畢后兩個(gè)LUN磁盤數(shù)據(jù)達(dá)到完全一致;數(shù)據(jù)同步完畢后將原LUN磁盤從綁定關(guān)系中刪除,新存儲(chǔ)接管數(shù)據(jù)服務(wù)。在整個(gè)過程中不影響應(yīng)用系統(tǒng)和操作系統(tǒng)對(duì)LUN磁盤中數(shù)據(jù)的正常讀寫,實(shí)現(xiàn)了存儲(chǔ)的在線遷移。
實(shí)施例:
本實(shí)施例一種基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,其主要包括如下內(nèi)容:1)將來自不同存儲(chǔ)的LUN磁盤根據(jù)WWID號(hào)進(jìn)行綁定;2)對(duì)LUN磁盤實(shí)現(xiàn)鏡像;3)對(duì)LUN磁盤控制進(jìn)行數(shù)據(jù)的并行讀寫;4)對(duì)LUN磁盤狀態(tài)監(jiān)控自動(dòng)維護(hù)綁定關(guān)系。
存儲(chǔ)映射給K1的每個(gè)LUN磁盤都有一個(gè)WWID號(hào),該WWID號(hào)為該磁盤的唯一標(biāo)識(shí),能夠通過WWID號(hào)識(shí)別不同的LUN磁盤。根據(jù)兩個(gè)LUN磁盤原WWID號(hào)計(jì)算生成一個(gè)唯一的、不再變化的虛擬WWID號(hào)供操作系統(tǒng)進(jìn)行識(shí)別,另外可以給該虛擬LUN磁盤自動(dòng)生成或指定一個(gè)磁盤名稱供應(yīng)用軟件和操作系統(tǒng)使用。
所述1)中,將來自不同存儲(chǔ)的LUN磁盤根據(jù)WWID號(hào)進(jìn)行綁定形成虛擬LUN磁盤,并設(shè)置虛擬LUN磁盤別名的配置文件;可以手動(dòng)修改配置文件進(jìn)行添加,也可以通過操作命令將兩個(gè)不同LUN磁盤進(jìn)行綁定,自動(dòng)將配置信息添加到配置文件中;別名是虛擬LUN磁盤用于提供給應(yīng)用系統(tǒng)或操作系統(tǒng)使用的名稱。
操作系統(tǒng)對(duì)普通磁盤的所有操作都適用于該綁定后的虛擬磁盤,比如:對(duì)虛擬磁盤創(chuàng)建VG、創(chuàng)建分區(qū)、創(chuàng)建并掛載文件系統(tǒng)等;兩個(gè)LUN磁盤的綁定關(guān)系對(duì)于應(yīng)用軟件來說是透明的,虛擬磁盤的使用和普通磁盤相同,比如向ORACLE ASM中添加虛擬磁盤。如果綁定的兩個(gè)LUN磁盤同時(shí)映射給了多個(gè)主機(jī),那么在各主機(jī)上將這兩個(gè)LUN綁定后生成的虛擬WWID號(hào)相同,即在各主機(jī)對(duì)相同虛擬WWID號(hào)虛擬磁盤的訪問能夠?qū)崿F(xiàn)對(duì)相同物理磁盤的訪問。
所述2)中,通過操作命令將一個(gè)新LUN磁盤與一個(gè)已有LUN磁盤進(jìn)行綁定,綁定后將原LUN磁盤中的數(shù)據(jù)在線復(fù)制到新LUN磁盤中,實(shí)現(xiàn)兩個(gè)LUN磁盤的鏡像;此外,通過操作命令將一個(gè)LUN磁盤從已有的綁定關(guān)系中刪除:將需要?jiǎng)h除的LUN磁盤先標(biāo)記為刪除,控制不再對(duì)其發(fā)起新的讀寫操作,待所有對(duì)該LUN磁盤的讀寫操作完成后自動(dòng)解除綁定關(guān)系,并將該LUN磁盤從配置文件中清除。
向虛擬磁盤寫入數(shù)據(jù)時(shí),將需要寫入的數(shù)據(jù)分別向綁定的兩個(gè)LUN磁盤進(jìn)行寫入,當(dāng)兩個(gè)綁定的LUN磁盤都返回寫入成功后,會(huì)向操作系統(tǒng)或應(yīng)用系統(tǒng)返回成功寫入的消息。當(dāng)其中一個(gè)LUN磁盤寫入成功,而另一個(gè)LUN磁盤寫入失敗時(shí),會(huì)向操作系統(tǒng)或應(yīng)用系統(tǒng)返回成功寫入的消息,同時(shí)將有故障的LUN磁盤在綁定關(guān)系中進(jìn)行標(biāo)記,新發(fā)起的寫入不會(huì)再向該故障LUN磁盤寫入。從虛擬磁盤讀取數(shù)據(jù)時(shí),會(huì)向綁定的兩個(gè)LUN磁盤同時(shí)發(fā)起讀取請(qǐng)求,將最先返回的數(shù)據(jù)返回給操作系統(tǒng)或應(yīng)用系統(tǒng),返回慢的數(shù)據(jù)將被丟棄,即兩個(gè)存儲(chǔ)會(huì)同時(shí)對(duì)相同數(shù)據(jù)進(jìn)行讀取操作,將速度較快的存儲(chǔ)的數(shù)據(jù)返回。
所述3)中,所有對(duì)虛擬LUN磁盤的讀寫操作都轉(zhuǎn)換為對(duì)兩個(gè)綁定LUN磁盤的并行讀寫操作:寫操作在兩個(gè)綁定LUN磁盤都寫入成功時(shí)才會(huì)返回成功,讀操作并行從兩個(gè)LUN磁盤讀取,返回速度較快的存儲(chǔ)的數(shù)據(jù)。
所述4)中,設(shè)定固定時(shí)間間隔,比如每秒一次通過只讀的方式對(duì)綁定的兩個(gè)LUN磁盤進(jìn)行讀測(cè)試,判斷它們狀態(tài)是否正常;當(dāng)發(fā)現(xiàn)LUN磁盤不可用時(shí)及時(shí)將其標(biāo)記為不可用,在規(guī)定時(shí)間內(nèi)若該LUN磁盤狀態(tài)恢復(fù)正常,數(shù)據(jù)會(huì)從幸存的LUN磁盤中向該LUN磁盤重新同步;當(dāng)超過規(guī)定時(shí)間時(shí),LUN磁盤自動(dòng)從綁定關(guān)系中刪除并解除LUN綁定關(guān)系,同時(shí)將該LUN磁盤從配置文件中清除。
本實(shí)施例所述基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,通過查看命令,對(duì)各LUN磁盤及綁定后的虛擬LUN磁盤狀態(tài)、LUN磁盤信息、綁定關(guān)系、多鏈路狀態(tài)等進(jìn)行查看,方便對(duì)各組件狀態(tài)進(jìn)行監(jiān)控。同時(shí),自動(dòng)檢測(cè)LUN磁盤從K1到存儲(chǔ)之間的鏈路,當(dāng)其中鏈路出現(xiàn)故障后自動(dòng)切換到狀態(tài)正常的鏈路,不影響K1對(duì)存儲(chǔ)的讀寫訪問。
該基于K1的實(shí)現(xiàn)存儲(chǔ)雙活的多路徑方法,具體實(shí)施時(shí),所使用的多路徑操作命令集成在K1操作系統(tǒng)中,以系統(tǒng)服務(wù)的形式存在,K1操作系統(tǒng)啟動(dòng)后能夠自動(dòng)運(yùn)行上述操作命令,通過狀態(tài)監(jiān)控命令查看發(fā)現(xiàn)的存儲(chǔ)LUN磁盤信息,將需要綁定的LUN磁盤兩兩綁定, 并給綁定后的虛擬LUN磁盤設(shè)置別名?;蛘撸鶕?jù)發(fā)現(xiàn)的LUN磁盤信息,進(jìn)行配置文件,設(shè)置綁定的LUN磁盤及別名,然后重啟該多路徑服務(wù)以重新讀取配置文件內(nèi)容,使得配置信息生效。并可以在配置完畢后,通過命令查看綁定后狀態(tài)是否正常。
正常綁定后的虛擬LUN磁盤會(huì)在/dev下生成與別名相同的盤符,操作系統(tǒng)可以使用該盤符創(chuàng)建VG、創(chuàng)建分區(qū)、創(chuàng)建并掛載文件系統(tǒng)、創(chuàng)建裸設(shè)備等操作。該虛擬磁盤可用于ORACLE RAC等需要對(duì)共享磁盤進(jìn)行訪問的應(yīng)用系統(tǒng)。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。