本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤具體地說是一種實用性強(qiáng)、非對稱雙活雙控系統(tǒng)的故障處理方法。
背景技術(shù):
雙控存儲系統(tǒng)提供了冗余,主機(jī)端如何利用起雙控,要依靠多路徑軟件。通常主機(jī)會與a控和b控分別連接,從而從兩個控制器上發(fā)現(xiàn)到同一個物理lun的兩份副本,系統(tǒng)中會生成兩個盤符,而多路徑軟件的功能則是負(fù)責(zé)鏈路故障后的路徑切換、鏈路正常時的io負(fù)載均衡以及冗余盤符的消除。
非對稱雙活雙控系統(tǒng),因為有l(wèi)un的ownership存在,發(fā)向?qū)?yīng)lun的io要確保走最優(yōu)路徑,而不能走非屬主控制器,否則將引發(fā)內(nèi)部轉(zhuǎn)發(fā),增加時延,除非在鏈路帶寬達(dá)到瓶頸而控制器處理能力未達(dá)到瓶頸的時候可以利用這條非最優(yōu)路徑。
探測某個lun的最優(yōu)路徑以及其他一些陣列端的運行信息,需要多路徑軟件與陣列之間做一些信息交互,這些信息可以走帶外通道比如以太網(wǎng),也可以走帶內(nèi)通道也就是數(shù)據(jù)鏈路比如fc/sas/iscsi,通常使用后者,而scsi指令體系內(nèi)沒有針對多路徑軟件與陣列之間的交互協(xié)議做什么規(guī)定,所以各個廠商都有自己不同的實現(xiàn)模式,比如通過一些特殊指令序列,或者封裝到某些特殊指令內(nèi)部。正是由于各廠家的交互協(xié)議不統(tǒng)一,所以scsi體系最新的規(guī)范里定義了alua(asymmetriclogicalunitaccess)協(xié)議,期望各廠商按照alua協(xié)議規(guī)范來實現(xiàn)多路徑軟件和陣列之間的交互。
傳統(tǒng)非對稱雙活雙控系統(tǒng)中,多路徑軟件與存儲陣列之間的交互由各廠家制定,用戶配置存儲產(chǎn)品時需安裝相應(yīng)廠家的多路徑軟件,這種方式不具備通用型,使用也不方便。
基于此,本發(fā)明提供一種非對稱雙活雙控系統(tǒng)的故障處理方法,解決上述問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種實用性強(qiáng)、非對稱雙活雙控系統(tǒng)的故障處理方法。
一種非對稱雙活雙控系統(tǒng)的故障處理方法,基于非對稱雙活雙控系統(tǒng),該系統(tǒng)包括雙控制器,即a控制器、b控制器,其實現(xiàn)過程為:
當(dāng)前端鏈路故障中,某控制器接收到不屬于自己的io數(shù)據(jù)時,觸發(fā)故障接管過程,完成歸屬權(quán)的切換;故障接管后,在前端鏈路故障恢復(fù)時,設(shè)置定時器,等狀態(tài)保持一定時間后,進(jìn)行下一次切換;故障控制器恢復(fù)正常,進(jìn)行故障恢復(fù)時,根據(jù)lun是否回到初始狀態(tài)來判斷,哪些lun歸屬于對端。
在故障恢復(fù)和前端鏈路故障時,若控制器不宕機(jī),由本控制器完成歸屬權(quán)切換前io的下發(fā);若控制器宕機(jī),由對端控制器完成歸屬權(quán)切換前io的下發(fā)。
在前端鏈路故障前,發(fā)送io數(shù)據(jù)的控制器為a控制器,當(dāng)故障發(fā)生時,與該a控制器完成歸屬權(quán)切換的對端控制器為b控制器,觸發(fā)故障接管時,首先判斷a控制器是否正常:如果異常,b控制器完成歸屬權(quán)切換,如果正常,則a控制器完成歸屬權(quán)切換。
當(dāng)a控制器異常時,歸屬權(quán)切換前的io由b控制器完成,其歸屬權(quán)切換過程為:
1)b控制器直接進(jìn)行歸屬權(quán)切換;
2)該b控制器處理切換前對端io的下發(fā);
3)處理完成后,b控制器再進(jìn)行后續(xù)接收io的下發(fā)。
當(dāng)a控制器正常時,歸屬權(quán)切換前的io由a控制器完成,歸屬權(quán)切換過程為:
1)a控制器、b控制器均進(jìn)行歸屬權(quán)切換;
2)a控制器處理歸屬權(quán)切換前io的下發(fā),并通知對端,即b控制器;
3)b控制器等待對端,即a控制器完成切換前io的下發(fā),收到確認(rèn)信息后再進(jìn)行后續(xù)接收到io的下發(fā)。
當(dāng)a控制器lun歸屬權(quán)由主切換至從時間超過一定時間,進(jìn)入故障恢復(fù)過程,該時間為30min。
所述故障恢復(fù)過程的具體操作如下:
1)a控制器發(fā)起歸屬權(quán)切換請求;
2)b控制器響應(yīng)該請求并進(jìn)行io下發(fā),下發(fā)完成后告知a控制器;
3)a控制器收到io下發(fā)完成的確認(rèn)信號后,再處理后續(xù)收到的io請求。
當(dāng)a控制器由宕機(jī)恢復(fù)正常后,進(jìn)入控制器故障恢復(fù)過程,具體操作如下:
1)b控制器將lun映射信息同步至a控制器;
2)b控制器針對歸屬權(quán)沒有回到初始狀態(tài)的lun,發(fā)起歸屬權(quán)切換請求;
3)a控制器根據(jù)歸屬權(quán)切換請求,配置alua并阻塞等待;
4)b控制器對歸屬權(quán)切換前的lun進(jìn)行io下發(fā),完成后告知a控制器;
5)a控制器收到io下發(fā)完成的ack信號后,再處理針對該lun的后續(xù)io下發(fā)。
本發(fā)明的一種非對稱雙活雙控系統(tǒng)的故障處理方法,具有以下優(yōu)點:
本發(fā)明的一種非對稱雙活雙控系統(tǒng)的故障處理方法,通過故障接管和故障恢復(fù)的設(shè)計,解決lun歸屬切換和誰下發(fā)故障前io的問題,通用型強(qiáng),使用方便,實用性強(qiáng),易于推廣。
附圖說明
附圖1為本發(fā)明的故障接管處理流程圖。
附圖2為本發(fā)明的前端鏈路故障時故障恢復(fù)處理流程圖。
附圖3為本發(fā)明的控制器故障時故障恢復(fù)處理流程圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明。
如附圖1、圖2、圖3所示,本發(fā)明提供一種非對稱雙活雙控系統(tǒng)的故障處理方法,該方法針對雙控系統(tǒng)的前端鏈路和控制器故障,基于最新scsi體系規(guī)范中的alua協(xié)議來進(jìn)行多路徑軟件與存儲陣列之間的交互。它將故障發(fā)生后的處理分兩個階段,即故障接管和故障恢復(fù);對lun歸屬切換和誰下發(fā)故障前io的問題進(jìn)行了設(shè)計。
在本發(fā)明的方法中,通過設(shè)置定時器避免頻繁插拔網(wǎng)線導(dǎo)致的歸屬權(quán)頻繁切換問題;故障接管及故障恢復(fù)處理流程。
本發(fā)明基于非對稱雙活雙控系統(tǒng),該系統(tǒng)包括雙控制器,即a控制器、b控制器,其實現(xiàn)過程為:
當(dāng)前端鏈路故障中,某控制器接收到不屬于自己的io數(shù)據(jù)時,觸發(fā)故障接管過程,完成歸屬權(quán)的切換;故障接管后,在前端鏈路故障恢復(fù)時,此處為避免頻繁插拔網(wǎng)線導(dǎo)致的歸屬權(quán)切換問題,設(shè)置定時器,等狀態(tài)保持一定時間后,進(jìn)行下一次切換;故障控制器恢復(fù)正常,進(jìn)行故障恢復(fù)時,根據(jù)lun是否回到初始狀態(tài)來判斷,哪些lun歸屬于對端。
在故障恢復(fù)和前端鏈路故障時,若控制器不宕機(jī),由本控制器完成歸屬權(quán)切換前io的下發(fā);若控制器宕機(jī),由對端控制器完成歸屬權(quán)切換前io的下發(fā)。故障接管及故障恢復(fù)處理流程如圖1至圖3所示。
在前端鏈路故障前,發(fā)送io數(shù)據(jù)的控制器為a控制器,當(dāng)故障發(fā)生時,與該a控制器完成歸屬權(quán)切換的對端控制器為b控制器,觸發(fā)故障接管時,首先判斷a控制器是否正常:如果異常,b控制器完成歸屬權(quán)切換,如果正常,則a控制器完成歸屬權(quán)切換。
當(dāng)a控制器異常時,歸屬權(quán)切換前的io由b控制器完成,其歸屬權(quán)切換過程為:
1)b控制器直接進(jìn)行歸屬權(quán)切換;
2)該b控制器處理切換前對端io的下發(fā);
3)處理完成后,b控制器再進(jìn)行后續(xù)接收io的下發(fā)。
當(dāng)a控制器正常時,歸屬權(quán)切換前的io由a控制器完成,歸屬權(quán)切換過程為:
1)a控制器、b控制器均進(jìn)行歸屬權(quán)切換;
2)a控制器處理歸屬權(quán)切換前io的下發(fā),并通知對端,即b控制器;
3)b控制器等待對端,即a控制器完成切換前io的下發(fā),收到確認(rèn)信息后再進(jìn)行后續(xù)接收到io的下發(fā)。
當(dāng)a控制器lun歸屬權(quán)由主切換至從時間超過一定時間,進(jìn)入故障恢復(fù)過程,該時間為30min。
所述故障恢復(fù)過程的具體操作如下:
1)a控制器發(fā)起歸屬權(quán)切換請求;
2)b控制器響應(yīng)該請求并進(jìn)行io下發(fā),下發(fā)完成后告知a控制器;
3)a控制器收到io下發(fā)完成的確認(rèn)信號后,再處理后續(xù)收到的io請求。
當(dāng)a控制器由宕機(jī)恢復(fù)正常后,進(jìn)入控制器故障恢復(fù)過程,具體操作如下:
1)b控制器將lun映射信息同步至a控制器;
2)b控制器針對歸屬權(quán)沒有回到初始狀態(tài)的lun,發(fā)起歸屬權(quán)切換請求;
3)a控制器根據(jù)歸屬權(quán)切換請求,配置alua并阻塞等待;
4)b控制器對歸屬權(quán)切換前的lun進(jìn)行io下發(fā),完成后告知a控制器;
5)a控制器收到io下發(fā)完成的ack信號后,再處理針對該lun的后續(xù)io下發(fā)。
在實際操作中,配置控制器a所在路徑為主路徑,控制器b所在路徑為從路徑,具體配置如下。
控制器a:
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#cat~/alua.sh
cd/sys/kernel/scst_tgt/device_groups
echocreatedgroup1>mgmt
echoadddisk01>dgroup1/devices/mgmt
echocreatetgroup1>dgroup1/target_groups/mgmt
echo1>dgroup1/target_groups/tgroup1/group_id
echoaddiqn.2006-10.net.vlnb:tgt>dgroup1/target_groups/tgroup1/mgmt
echo1>dgroup1/target_groups/tgroup1/iqn.2006-10.net.vlnb\:tgt/rel_tgt_id
echo1>dgroup1/target_groups/tgroup1/preferred
echocreatetgroup2>dgroup1/target_groups/mgmt
echo2>dgroup1/target_groups/tgroup2/group_id
echoaddiqn.2007-10.net.vlnb:tgt>dgroup1/target_groups/tgroup2/mgmt
echo2>dgroup1/target_groups/tgroup2/iqn.2007-10.net.vlnb\:tgt/rel_tgt_id
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#ls
group_idiqn.2006-10.net.vlnb:tgtmgmtpreferredstate
控制器b:
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#cat~/alua.sh
cd/sys/kernel/scst_tgt/device_groups
echocreatedgroup1>mgmt
echoadddisk01>dgroup1/devices/mgmt
echocreatetgroup1>dgroup1/target_groups/mgmt
echo2>dgroup1/target_groups/tgroup1/group_id
echoaddiqn.2006-10.net.vlnb:tgt>dgroup1/target_groups/tgroup1/mgmt
echo2>dgroup1/target_groups/tgroup1/iqn.2006-10.net.vlnb\:tgt/rel_tgt_id
echocreatetgroup2>dgroup1/target_groups/mgmt
echo1>dgroup1/target_groups/tgroup2/group_id
echoaddiqn.2007-10.net.vlnb:tgt>dgroup1/target_groups/tgroup2/mgmt
echo1>dgroup1/target_groups/tgroup2/iqn.2007-10.net.vlnb\:tgt/rel_tgt_id
root@cy:/sys/kernel/scst_tgt/device_groups/dgroup1/target_groups/tgroup1#ls
group_idiqn.2006-10.net.vlnb:tgtmgmtpreferredstate。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的一種非對稱雙活雙控系統(tǒng)的故障處理方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。