本技術(shù)涉及計(jì)算機(jī)存儲(chǔ),特別是涉及一種多盤場(chǎng)景測(cè)試方法和裝置、一種電子設(shè)備和一種存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著存儲(chǔ)需求的持續(xù)增長(zhǎng),raid卡(redundant?array?of?independent?disks,冗余獨(dú)立磁盤陣列)作為存儲(chǔ)設(shè)備的關(guān)鍵組件,其更新與迭代顯得尤為關(guān)鍵。在raid卡的研發(fā)過程中,構(gòu)建不同raid場(chǎng)景所需的固態(tài)硬盤數(shù)量各異,且在項(xiàng)目驗(yàn)證的初期階段,平臺(tái)提供的固態(tài)硬盤數(shù)量通常是有限的。
2、當(dāng)前技術(shù)無法直接擴(kuò)展驗(yàn)證平臺(tái)中有限的固態(tài)硬盤數(shù)量,這給raid卡的功能與性能驗(yàn)證帶來了顯著限制:固態(tài)硬盤數(shù)量的不足可能妨礙特定raid組的創(chuàng)建,固態(tài)硬盤數(shù)量過少則限制了某些raid場(chǎng)景的性能驗(yàn)證,從而影響了驗(yàn)證的全面性與深度。
3、因此,如何有效擴(kuò)展驗(yàn)證平臺(tái)中有限的固態(tài)硬盤數(shù)量,以支持raid卡在多盤功能與性能場(chǎng)景下的全面驗(yàn)證,成為本領(lǐng)域亟需解決的重要問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供了一種多盤場(chǎng)景測(cè)試方法,以解決如何有效擴(kuò)展驗(yàn)證平臺(tái)中有限的固態(tài)硬盤數(shù)量,以支持磁盤陣列卡在多盤功能與性能場(chǎng)景下的全面驗(yàn)證的問題。
2、相應(yīng)的,本技術(shù)實(shí)施例還提供了一種多盤場(chǎng)景測(cè)試裝置、一種電子設(shè)備以及一種存儲(chǔ)介質(zhì),用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
3、為了解決上述問題,本技術(shù)實(shí)施例公開了一種多盤場(chǎng)景測(cè)試方法,應(yīng)用于服務(wù)器,所述服務(wù)器包括磁盤陣列卡,所述磁盤陣列卡與物理固態(tài)硬盤之間存在連接,所述方法包括:
4、對(duì)所述物理固態(tài)硬盤的物理端口進(jìn)行編號(hào),得到所述物理固態(tài)硬盤對(duì)應(yīng)的端口編號(hào);
5、根據(jù)所述端口編號(hào),為所述物理固態(tài)硬盤分配邏輯編號(hào);
6、獲取所述物理固態(tài)硬盤的有效名稱空間編號(hào)列表;
7、按照所述有效名稱空間編號(hào)列表,構(gòu)造虛擬固態(tài)硬盤,所述虛擬固態(tài)硬盤存在對(duì)應(yīng)的所述邏輯編號(hào);
8、根據(jù)所述邏輯編號(hào)從所述物理固態(tài)硬盤和所述虛擬固態(tài)硬盤中選擇預(yù)設(shè)數(shù)量的目標(biāo)固態(tài)硬盤;
9、控制所述磁盤陣列卡使用所述目標(biāo)固態(tài)硬盤創(chuàng)建磁盤陣列組;
10、對(duì)所述磁盤陣列組下發(fā)硬盤命令,以對(duì)在多盤場(chǎng)景下的所述磁盤陣列卡進(jìn)行測(cè)試。
11、在本技術(shù)一種可選的實(shí)施例中,所述物理固態(tài)硬盤包括盤控制器,所述按照所述有效名稱空間編號(hào)列表,構(gòu)造虛擬固態(tài)硬盤,包括:
12、啟動(dòng)所述物理固態(tài)硬盤的盤控制器;
13、按照所述有效名稱空間編號(hào)列表構(gòu)造與所述物理固態(tài)硬盤對(duì)應(yīng)的所述虛擬固態(tài)硬盤的邏輯編號(hào);
14、向所述盤控制器發(fā)送識(shí)別控制器數(shù)據(jù)命令,以拷貝所述盤控制器的控制器數(shù)據(jù);
15、將所述控制器數(shù)據(jù)保存于以所述邏輯編號(hào)為索引的虛擬固態(tài)硬盤數(shù)據(jù)結(jié)構(gòu)中;
16、向所述盤控制器發(fā)送識(shí)別名稱空間數(shù)據(jù)命令,以獲取所述盤控制器的名稱空間數(shù)據(jù);
17、將對(duì)應(yīng)的所述名稱空間數(shù)據(jù)保存于所述以所述邏輯編號(hào)為索引的虛擬固態(tài)硬盤數(shù)據(jù)結(jié)構(gòu)中;
18、根據(jù)所述有效名稱空間編號(hào)列表中的有效名稱空間編號(hào)數(shù)量,計(jì)算所述虛擬固態(tài)硬盤需要的數(shù)據(jù)讀寫隊(duì)列數(shù)量;
19、為保存有所述控制器數(shù)據(jù)和所述名稱空間數(shù)據(jù)的所述虛擬固態(tài)硬盤數(shù)據(jù)結(jié)構(gòu)配置所述數(shù)據(jù)讀寫隊(duì)列數(shù)量,得到完成構(gòu)造的所述虛擬固態(tài)硬盤。
20、在本技術(shù)一種可選的實(shí)施例中,所述邏輯編號(hào)具有對(duì)應(yīng)的虛擬端口編號(hào),所述虛擬端口編號(hào)包括保留位與有效位,所述物理固態(tài)硬盤對(duì)應(yīng)的所述虛擬端口編號(hào)的所述有效位為所述端口編號(hào),所述物理固態(tài)硬盤對(duì)應(yīng)的所述虛擬端口編號(hào)的所述保留位為預(yù)設(shè)值,所述按照所述有效名稱空間編號(hào)列表構(gòu)造與所述物理固態(tài)硬盤對(duì)應(yīng)的所述虛擬固態(tài)硬盤的邏輯編號(hào),包括:
21、根據(jù)所述有效名稱空間編號(hào)列表,設(shè)置與所述物理固態(tài)硬盤對(duì)應(yīng)的所述虛擬固態(tài)硬盤的所述虛擬端口編號(hào)的所述保留位,得到所述虛擬固態(tài)硬盤對(duì)應(yīng)的所述虛擬端口編號(hào);
22、根據(jù)所述虛擬固態(tài)硬盤對(duì)應(yīng)的所述虛擬端口編號(hào),構(gòu)造所述虛擬固態(tài)硬盤的邏輯編號(hào)。
23、在本技術(shù)一種可選的實(shí)施例中,所述硬盤命令包括管理命令和讀寫命令,所述物理固態(tài)硬盤通過通信通道與磁盤陣列卡連接,在所述啟動(dòng)所述物理固態(tài)硬盤的盤控制器之前,所述方法還包括:
24、為所述物理固態(tài)硬盤注冊(cè)所述管理命令對(duì)應(yīng)的中斷向量號(hào)到所述通信通道的中斷拓展表中;
25、在所述得到完成構(gòu)造的所述虛擬固態(tài)硬盤之后,所述方法還包括:
26、為所述物理固態(tài)硬盤以及所述虛擬固態(tài)硬盤注冊(cè)所述讀寫命令對(duì)應(yīng)的中斷向量號(hào)到所述通信通道的所述中斷拓展表中。
27、在本技術(shù)一種可選的實(shí)施例中,所述數(shù)據(jù)讀寫隊(duì)列包括讀寫提交隊(duì)列和讀寫完成隊(duì)列,所述根據(jù)所述有效名稱空間編號(hào)列表中的有效名稱空間編號(hào)數(shù)量,計(jì)算所述虛擬固態(tài)硬盤需要的數(shù)據(jù)讀寫隊(duì)列數(shù)量,包括:
28、根據(jù)所述有效名稱空間編號(hào)列表中的有效名稱空間編號(hào)數(shù)量以及最大讀寫提交隊(duì)列數(shù)量,計(jì)算所述虛擬固態(tài)硬盤需要的讀寫提交隊(duì)列數(shù)量,所述最大讀寫提交隊(duì)列數(shù)量為所述物理固態(tài)硬盤需要的最大讀寫提交隊(duì)列數(shù)量;
29、根據(jù)所述有效名稱空間編號(hào)列表中的有效名稱空間編號(hào)數(shù)量以及最大讀寫完成隊(duì)列數(shù)量,計(jì)算所述虛擬固態(tài)硬盤需要的讀寫完成隊(duì)列數(shù)量,所述最大讀寫完成隊(duì)列數(shù)量為所述物理固態(tài)硬盤需要的最大讀寫完成隊(duì)列數(shù)量;
30、根據(jù)所述虛擬固態(tài)硬盤需要的所述讀寫提交隊(duì)列數(shù)量以及所述讀寫完成隊(duì)列數(shù)量,確定所述虛擬固態(tài)硬盤需要的所述數(shù)據(jù)讀寫隊(duì)列數(shù)量。
31、在本技術(shù)一種可選的實(shí)施例中,在所述按照所述有效名稱空間編號(hào)列表,構(gòu)造虛擬固態(tài)硬盤之后,所述方法還包括:
32、根據(jù)所述物理固態(tài)硬盤與所述虛擬固態(tài)硬盤的數(shù)量計(jì)算數(shù)據(jù)通道的數(shù)量,所述數(shù)據(jù)通道用于在所述物理固態(tài)硬盤與所述磁盤陣列卡之間傳輸數(shù)據(jù);
33、按照所述數(shù)據(jù)通道的數(shù)量,在所述物理固態(tài)硬盤與所述磁盤陣列卡之間綁定所述數(shù)據(jù)通道。
34、在本技術(shù)一種可選的實(shí)施例中,所述對(duì)所述磁盤陣列組下發(fā)硬盤命令,以對(duì)在多盤場(chǎng)景下的所述磁盤陣列卡進(jìn)行測(cè)試,包括:
35、控制所述磁盤陣列卡對(duì)所述磁盤陣列組下發(fā)所述管理命令,所述管理命令中包含所述邏輯編號(hào);
36、若所述邏輯編號(hào)對(duì)應(yīng)于所述虛擬固態(tài)硬盤,則將所述邏輯編號(hào)轉(zhuǎn)換為所述虛擬固態(tài)硬盤對(duì)應(yīng)的所述物理固態(tài)硬盤對(duì)應(yīng)的邏輯編號(hào);
37、按照所述虛擬固態(tài)硬盤對(duì)應(yīng)的所述物理固態(tài)硬盤對(duì)應(yīng)的邏輯編號(hào),將所述管理命令轉(zhuǎn)發(fā)至所述物理固態(tài)硬盤,以使所述物理固態(tài)硬盤執(zhí)行所述管理命令;
38、若所述邏輯編號(hào)對(duì)應(yīng)于所述物理固態(tài)硬盤,將所述管理命令轉(zhuǎn)發(fā)至所述物理固態(tài)硬盤,以使所述物理固態(tài)硬盤執(zhí)行所述管理命令;
39、和/或,
40、控制所述磁盤陣列卡對(duì)所述磁盤陣列組下發(fā)所述讀寫命令,所述讀寫命令中包含所述邏輯編號(hào)以及隊(duì)列標(biāo)識(shí);
41、按照所述邏輯編號(hào),將所述讀寫命令轉(zhuǎn)發(fā)至所述邏輯編號(hào)對(duì)應(yīng)的所述物理固態(tài)硬盤或所述虛擬固態(tài)硬盤;
42、根據(jù)所述隊(duì)列標(biāo)識(shí),將所述讀寫命令發(fā)送至所述物理固態(tài)硬盤對(duì)應(yīng)的讀寫提交隊(duì)列或所述虛擬固態(tài)硬盤對(duì)應(yīng)的讀寫提交隊(duì)列,以使所述物理固態(tài)硬盤或所述虛擬固態(tài)硬盤執(zhí)行所述讀寫命令。
43、本技術(shù)實(shí)施例還公開了一種多盤場(chǎng)景測(cè)試裝置,應(yīng)用于服務(wù)器,所述服務(wù)器包括磁盤陣列卡,所述磁盤陣列卡與物理固態(tài)硬盤之間存在連接,所述裝置包括:
44、端口編號(hào)模塊,用于對(duì)所述物理固態(tài)硬盤的物理端口進(jìn)行編號(hào),得到所述物理固態(tài)硬盤對(duì)應(yīng)的端口編號(hào);
45、邏輯編號(hào)分配模塊,用于根據(jù)所述端口編號(hào),為所述物理固態(tài)硬盤分配邏輯編號(hào);
46、編號(hào)列表獲取模塊,用于獲取所述物理固態(tài)硬盤的有效名稱空間編號(hào)列表;
47、虛擬固態(tài)硬盤構(gòu)造模塊,用于按照所述有效名稱空間編號(hào)列表,構(gòu)造虛擬固態(tài)硬盤,所述虛擬固態(tài)硬盤存在對(duì)應(yīng)的所述邏輯編號(hào);
48、目標(biāo)固態(tài)硬盤確定模塊,用于根據(jù)所述邏輯編號(hào)從所述物理固態(tài)硬盤和所述虛擬固態(tài)硬盤中選擇預(yù)設(shè)數(shù)量的目標(biāo)固態(tài)硬盤;
49、磁盤陣列組創(chuàng)建模塊,用于控制所述磁盤陣列卡使用所述目標(biāo)固態(tài)硬盤創(chuàng)建磁盤陣列組;
50、測(cè)試模塊,用于對(duì)所述磁盤陣列組下發(fā)硬盤命令,以對(duì)在多盤場(chǎng)景下的所述磁盤陣列卡進(jìn)行測(cè)試。
51、本技術(shù)實(shí)施例還公開了一種電子設(shè)備,包括:處理器;和存儲(chǔ)器,其上存儲(chǔ)有可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼被執(zhí)行時(shí),使得所述處理器執(zhí)行如本技術(shù)實(shí)施例中一個(gè)或多個(gè)所述的多盤場(chǎng)景測(cè)試方法。
52、本技術(shù)實(shí)施例還公開了一個(gè)或多個(gè)機(jī)器可讀介質(zhì),其上存儲(chǔ)有可執(zhí)行代碼,當(dāng)所述可執(zhí)行代碼被執(zhí)行時(shí),使得處理器執(zhí)行如本技術(shù)實(shí)施例中一個(gè)或多個(gè)所述的多盤場(chǎng)景測(cè)試方法。
53、與現(xiàn)有技術(shù)相比,本技術(shù)實(shí)施例包括以下優(yōu)點(diǎn):
54、在本技術(shù)實(shí)施例中,對(duì)物理固態(tài)硬盤的物理端口進(jìn)行編號(hào),得到物理固態(tài)硬盤對(duì)應(yīng)的端口編號(hào);根據(jù)端口編號(hào),為物理固態(tài)硬盤分配邏輯編號(hào);獲取物理固態(tài)硬盤的有效名稱空間編號(hào)列表;按照有效名稱空間編號(hào)列表,構(gòu)造虛擬固態(tài)硬盤,虛擬固態(tài)硬盤存在對(duì)應(yīng)的邏輯編號(hào);根據(jù)邏輯編號(hào)從物理固態(tài)硬盤和虛擬固態(tài)硬盤中選擇預(yù)設(shè)數(shù)量的目標(biāo)固態(tài)硬盤;控制磁盤陣列卡使用目標(biāo)固態(tài)硬盤創(chuàng)建磁盤陣列組;對(duì)磁盤陣列組下發(fā)硬盤命令,以對(duì)在多盤場(chǎng)景下的磁盤陣列卡進(jìn)行測(cè)試。本技術(shù)實(shí)施例通過利用單個(gè)物理固態(tài)硬盤具備多個(gè)名稱空間的特性模擬出多個(gè)虛擬固態(tài)硬盤,從而突破了固態(tài)硬盤數(shù)量對(duì)構(gòu)建磁盤陣列組的限制。本技術(shù)實(shí)施例不僅支持磁盤陣列卡在多盤功能與性能場(chǎng)景下的全面驗(yàn)證,還能迅速識(shí)別磁盤陣列卡開發(fā)過程中的軟件和硬件問題,有效降低了驗(yàn)證成本,提高了驗(yàn)證效率,并顯著縮短了磁盤陣列卡的開發(fā)周期。