一種數(shù)據(jù)處理方法、裝置、服務(wù)器及控制器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、裝置、服務(wù)器及控制器。
【背景技術(shù)】
[0002]隨著光纖通道的存儲設(shè)備、光纖通道交換機(jī)等設(shè)備的出現(xiàn)將存儲領(lǐng)域推向了網(wǎng)絡(luò)化的新階段,誕生了存儲區(qū)域網(wǎng)絡(luò)(Storage Area Network,SAN),實現(xiàn)了存儲設(shè)備的共享,服務(wù)器可以通過存儲網(wǎng)絡(luò)直接對存儲系統(tǒng)中的多個存儲設(shè)備進(jìn)行數(shù)據(jù)訪問。
[0003]現(xiàn)有技術(shù)中,服務(wù)器通常會將多個I/O請求合并發(fā)送,以提高數(shù)據(jù)訪問效率,并且能夠進(jìn)行合并的I/O請求必須是訪問同一個存儲設(shè)備的。如果服務(wù)器需要完成由一個數(shù)據(jù)處理請求產(chǎn)生的多個存儲設(shè)備的I/O請求訪問時,現(xiàn)有技術(shù)會將不同存儲設(shè)備的I/O請求分散到不同的聚合指令中,再將不同聚合指令分別發(fā)送至對應(yīng)的存儲設(shè)備以完成讀寫操作。為了保證數(shù)據(jù)的一致性,現(xiàn)有技術(shù)中增加了事務(wù)機(jī)制以對同一個數(shù)據(jù)處理請求的I/O請求進(jìn)行監(jiān)控和管理。由于不同存儲設(shè)備的聚合請求處理時間不同,事務(wù)機(jī)制管理一個數(shù)據(jù)處理請求的時間被延長,增加了事務(wù)機(jī)制的負(fù)荷??梢?,目前SAN對同一數(shù)據(jù)處理請求的不同存儲設(shè)備的I/O請求需要復(fù)雜的事務(wù)機(jī)制進(jìn)行管理。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種數(shù)據(jù)處理方法、裝置、服務(wù)器及控制器,能夠解決目前SAN對同一數(shù)據(jù)處理請求的不同存儲設(shè)備的I/O請求需要復(fù)雜的事務(wù)機(jī)制進(jìn)行管理的問題。
[0005]本發(fā)明實施例第一方面提供了一種數(shù)據(jù)處理方法,應(yīng)用于數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括服務(wù)器和存儲系統(tǒng),所述存儲系統(tǒng)包括控制器和多個存儲設(shè)備,所述方法由所述服務(wù)器執(zhí)行,包括:
[0006]接收數(shù)據(jù)處理請求,所述數(shù)據(jù)處理請求包括請求序號,所述請求序號用于標(biāo)記所述數(shù)據(jù)處理請求;
[0007]根據(jù)所述數(shù)據(jù)處理請求生成至少一個I/O請求;
[0008]對所述至少一個I/O請求中的每一個I/O請求添加所述請求序號;
[0009]當(dāng)具有所述請求序號的I/O請求數(shù)量大于預(yù)設(shè)閾值時,將具有所述請求序號的1/0請求進(jìn)行合并,生成聚合指令;
[0010]向所述存儲系統(tǒng)的控制器發(fā)送所述聚合指令。
[0011]在第一方面的第一種可能實現(xiàn)方式中,所述聚合指令包括合并的每個I/O請求的操作字段和合并的I/o請求數(shù)量。
[0012]結(jié)合第一方面或第一方面的第一種可能實現(xiàn)方式,在第一方面的第二種可能實現(xiàn)方式中,還包括:
[0013]接收所述存儲系統(tǒng)的控制器發(fā)送的表示所述聚合指令解析錯誤的提示消息;
[0014]向所述存儲系統(tǒng)的控制器再次發(fā)送所述聚合指令。
[0015]本發(fā)明實施例第二方面提供了另一種數(shù)據(jù)處理方法,應(yīng)用于數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括服務(wù)器和存儲系統(tǒng),所述存儲系統(tǒng)包括控制器和多個存儲設(shè)備,所述方法由所述控制器執(zhí)行,包括:
[0016]接收所述服務(wù)器發(fā)送的聚合指令;
[0017]解析所述聚合指令,獲得具有請求序號的至少一個I/O請求的操作字段和I/O請求的數(shù)量;
[0018]統(tǒng)計具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量;
[0019]判斷具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量與所述I/O請求數(shù)量是否相同;
[0020]若是,則按照所述至少一個I/O請求的操作字段進(jìn)行處理;
[0021]若否,則向所述服務(wù)器發(fā)送表示所述聚合指令解析錯誤的提示消息。
[0022]本發(fā)明實施例第三方面提供了一種數(shù)據(jù)處理裝置,應(yīng)用于數(shù)據(jù)處理系統(tǒng)的服務(wù)器中,所述數(shù)據(jù)處理系統(tǒng)還包括存儲系統(tǒng),所述存儲系統(tǒng)包括控制器和多個存儲設(shè)備,所述數(shù)據(jù)處理裝置包括:
[0023]接收單元,用于接收數(shù)據(jù)處理請求,所述數(shù)據(jù)處理請求包括請求序號,所述請求序號用于標(biāo)記所述數(shù)據(jù)處理請求;
[0024]生成單元,用于根據(jù)所述數(shù)據(jù)處理請求生成至少一個I/O請求;
[0025]添加單元,用于對所述至少一個I/O請求中的每一個I/O請求添加所述請求序號;
[0026]合并單元,用于當(dāng)具有所述請求序號的I/O請求數(shù)量大于預(yù)設(shè)閾值時,將具有所述請求序號的I/O請求進(jìn)行合并,生成聚合指令;
[0027]發(fā)送單元,用于向所述存儲系統(tǒng)的控制器發(fā)送所述聚合指令。
[0028]在第三方面的第一種可能實現(xiàn)方式中,所述聚合指令包括合并的每個I/O請求對應(yīng)的操作字段和合并的I/O請求數(shù)量。
[0029]結(jié)合第三方面或第三方面的第一種可能實現(xiàn)方式,在第三方面的第二種可能實現(xiàn)方式中,所述接收單元,還用于接收所述存儲系統(tǒng)的控制器發(fā)送的表示所述聚合指令解析錯誤的提示消息;
[0030]所述發(fā)送單元,還用于向所述存儲系統(tǒng)的控制器再次發(fā)送所述聚合指令。
[0031]本發(fā)明實施例第四方面提供了另一種數(shù)據(jù)處理裝置,所述數(shù)據(jù)處理裝置應(yīng)用于數(shù)據(jù)處理系統(tǒng)的存儲系統(tǒng)的控制器中,所述數(shù)據(jù)處理系統(tǒng)還包括服務(wù)器和存儲系統(tǒng),所述存儲系統(tǒng)還包括多個存儲設(shè)備,所述數(shù)據(jù)處理裝置包括:
[0032]接收單元,用于接收所述服務(wù)器發(fā)送的聚合指令;
[0033]解析單元,用于解析所述聚合指令,獲得具有請求序號的至少一個I/O請求的操作字段和I/O請求的數(shù)量;
[0034]統(tǒng)計單元,用于統(tǒng)計具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量;
[0035]判斷單元,用于判斷具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量與所述I/o請求數(shù)量是否相同;
[0036]處理單元,用于若具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量與所述I/O請求數(shù)量相同時,則按照所述至少一個I/O請求的操作字段進(jìn)行處理;
[0037]發(fā)送單元,用于若具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量與所述I/O請求數(shù)量不相同時,則向所述服務(wù)器發(fā)送表示所述聚合指令解析錯誤的提示消息。
[0038]本發(fā)明實施例第五方面提供了一種服務(wù)器,應(yīng)用于數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)還包括存儲系統(tǒng),所述存儲系統(tǒng)包括控制器和多個存儲設(shè)備,所述服務(wù)器包括通信接口、存儲器和處理器,所述存儲器用于存儲程序代碼,所述處理器用于調(diào)用所述存儲器存儲的程序代碼執(zhí)行如下步驟:
[0039]通過通信接口接收數(shù)據(jù)處理請求,所述數(shù)據(jù)處理請求包括請求序號,所述請求序號用于標(biāo)記所述數(shù)據(jù)處理請求;
[0040]根據(jù)所述數(shù)據(jù)處理請求生成至少一個I/O請求;
[0041]對所述至少一個I/O請求中的每一個I/O請求添加所述請求序號;
[0042]當(dāng)具有所述請求序號的I/O請求數(shù)量大于預(yù)設(shè)閾值時,將具有所述請求序號的1/0請求進(jìn)行合并,生成聚合指令;
[0043]通過通信接口向所述存儲系統(tǒng)的控制器發(fā)送所述聚合指令。
[0044]在第五方面的第一種可能實現(xiàn)方式中,所述聚合指令包括合并的每個I/O請求對應(yīng)的操作字段和合并的I/O請求數(shù)量。
[0045]結(jié)合第五方面或第五方面的第一種可能實現(xiàn)方式,在第五方面的第二種可能實現(xiàn)方式中,通過通信接口接收所述存儲系統(tǒng)的控制器發(fā)送的表示所述聚合指令解析錯誤的提示消息;
[0046]通過通信接口向所述存儲系統(tǒng)的控制器再次發(fā)送所述聚合指令。
[0047]本發(fā)明實施例第六方面提供了一種控制器,應(yīng)用于數(shù)據(jù)處理系統(tǒng)中的存儲系統(tǒng)中,所述數(shù)據(jù)處理系統(tǒng)還包括故武器,所述存儲系統(tǒng)還包括多個存儲設(shè)備,所述控制器包括通信接口、存儲器和處理器,所述存儲器用于存儲程序代碼,其特征在于,所述處理器用于調(diào)用所述存儲器存儲的程序代碼執(zhí)行如下步驟:
[0048]通過通信接口接收所述服務(wù)器發(fā)送的聚合指令;
[0049]解析所述聚合指令,獲得具有請求序號的至少一個I/O請求的操作字段和I/O請求的數(shù)量;
[0050]統(tǒng)計具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量;
[0051]判斷具有所述請求序號的所述至少一個I/O請求的操作字段的數(shù)量與所述I/O請求數(shù)量是否相同;
[0052]若是,則按照所述至少一個