一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明涉及一種適用于擴(kuò)展柜的磁盤(pán)命名方法和裝置,屬于計(jì)算機(jī)存儲(chǔ)【技術(shù)領(lǐng)域】。在本方法中:磁盤(pán)名包括但不限于前綴域和id域;前綴域?yàn)槿我庾址?,id域?yàn)槟荏w現(xiàn)磁盤(pán)在所屬擴(kuò)展柜中的位置關(guān)系,以及所屬擴(kuò)展柜與其他擴(kuò)展柜或SAS卡的級(jí)聯(lián)關(guān)系的數(shù)字或字符串;磁盤(pán)id既可以通過(guò)修改驅(qū)動(dòng)直接獲取,也可以通過(guò)設(shè)備接口間接計(jì)算出。與現(xiàn)有的磁盤(pán)命名方法相比,在多擴(kuò)展柜的級(jí)聯(lián)存儲(chǔ)環(huán)境下,優(yōu)點(diǎn)如下:(1)不需要換算即可獲取磁盤(pán)在系統(tǒng)中的位置,更方便問(wèn)題定位及故障排除;(2)對(duì)擴(kuò)展柜的尺寸規(guī)格無(wú)限制,可適用于多種擴(kuò)展柜混用的情況;(3)磁盤(pán)id與擴(kuò)展柜的上電順序無(wú)關(guān),可以確保存儲(chǔ)配置不因意外斷電或重啟丟失。
【專(zhuān)利說(shuō)明】一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種更加有效的多級(jí)擴(kuò)展柜下的磁盤(pán)命名方法和裝置,屬于計(jì)算機(jī)存儲(chǔ)【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]擴(kuò)展柜是存儲(chǔ)領(lǐng)域中一類(lèi)重要的存儲(chǔ)設(shè)備,擴(kuò)展柜主要包括背板和磁盤(pán),一般是通過(guò)背板連接多塊磁盤(pán),通常為滿(mǎn)足大容量存儲(chǔ)應(yīng)用而存在。
[0003]如圖2所示,部署存儲(chǔ)陣列時(shí),為滿(mǎn)足高密度大容量存儲(chǔ)需求,通常部署I個(gè)主柜和若干級(jí)擴(kuò)展柜,主柜利用外置SAS/RAID卡或集成SAS/RAID芯片充當(dāng)SAS控制器(SAS Controller)的角色;擴(kuò)展柜背板的輸入端口(In Port)通過(guò)SAS線(xiàn)纜連接到SASController引出的SAS端口(SAS port)或其他背板的輸出端口(Out Port);終端存儲(chǔ)設(shè)備一般是磁盤(pán),通過(guò)SAS接口連接到背板。
[0004]在Linux系統(tǒng)中,通常用sd[a_z]來(lái)表示磁盤(pán)的設(shè)備名,且設(shè)備名與磁盤(pán)識(shí)別順序相關(guān);當(dāng)磁盤(pán)數(shù)目較多(比如超過(guò)26塊)時(shí),這樣的命名方式尤其不直觀(guān),無(wú)法反應(yīng)磁盤(pán)的任何信息,因此顯然不適于于大容量存儲(chǔ)系統(tǒng)。在存儲(chǔ)系統(tǒng)中實(shí)際使用時(shí),一般會(huì)利用一定的命名算法建立指向設(shè)備的軟鏈接,軟鏈接名稱(chēng)一般為字符串加數(shù)字的形式,作為磁盤(pán)別名呈現(xiàn)給用戶(hù);數(shù)字部分,一般用背板id和磁盤(pán)在背板上的位置計(jì)算得出,當(dāng)問(wèn)題發(fā)生時(shí),通過(guò)磁盤(pán)名反推磁盤(pán)的位置,從而進(jìn)一步分析定位問(wèn)題。
[0005]通用的命名方法中,磁盤(pán)id跟背板id及slot_id的關(guān)系如下所示:
[0006]Disk_id(Expander_id, Slot_id) = SlotPerExpander XExpander_id+Slot_id
[0007]其中,SlotPerExpander代表每塊背板可以連接的磁盤(pán)數(shù)目,Expander_id代表當(dāng)前背板在所有背板中的序號(hào),Slot_id代表當(dāng)前磁盤(pán)在所屬背板上的插槽位置;后兩個(gè)參數(shù)均從驅(qū)動(dòng)中導(dǎo)出。
[0008]通用的命名方法有以下問(wèn)題:
[0009](I)不夠直觀(guān):要想獲取Expander_id和Slot_id,必須通過(guò)公式進(jìn)行換算,在多級(jí)擴(kuò)展柜的情況下非常不利于磁盤(pán)出現(xiàn)問(wèn)題時(shí)的快速定位;
[0010](2)受制于背板規(guī)格:根據(jù)上述公式,SlotPerExpander必須是預(yù)先手動(dòng)指定的且所有的背板規(guī)格必須是統(tǒng)一的,否則就可能出現(xiàn)不同背板上的不同磁盤(pán)有相同的Disk_id的情況;
[0011](3)受制于擴(kuò)展柜上電順序:不同的上電順序下,擴(kuò)展柜的Expander_id是會(huì)發(fā)生變化的,因此Disk_id也會(huì)相應(yīng)變化,用戶(hù)使用時(shí)若不人工指定上電順序,在使用時(shí)會(huì)造成極大的困擾。
[0012]綜上而言,通用的命名方法不利于快速磁盤(pán)定位、要求背板規(guī)格統(tǒng)一且無(wú)法保證Disk_id的穩(wěn)定,在實(shí)際應(yīng)用時(shí)會(huì)帶給用戶(hù)諸多不便和限制。
【發(fā)明內(nèi)容】
[0013]本發(fā)明的目的是為解決現(xiàn)有磁盤(pán)命名存在的不夠直觀(guān)、受制于背板規(guī)格和上電順序等問(wèn)題,提出一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法和裝置。
[0014]本發(fā)明的思想是磁盤(pán)名包括但不限于前綴域和id域;前綴域?yàn)槿我庾址?,id域?yàn)槟荏w現(xiàn)磁盤(pán)在所屬擴(kuò)展柜中的位置關(guān)系,以及所屬擴(kuò)展柜與其他擴(kuò)展柜或SAS卡的級(jí)聯(lián)關(guān)系的數(shù)字或字符串;磁盤(pán)id既可以通過(guò)修改驅(qū)動(dòng)直接獲取,也可以通過(guò)設(shè)備接口間接計(jì)笪并ο
[0015]本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0016]一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,包括以下步驟:
[0017]步驟一、根據(jù)WffN為SAS Controller各個(gè)端口指定一個(gè)全局唯一的端口號(hào),并建立SAS Controller的端口與WffN的映射表;
[0018]步驟二、根據(jù)磁盤(pán)所屬背板的上級(jí)SAS設(shè)備的WffN確定當(dāng)前背板的端口號(hào)和級(jí)別;
[0019]作為優(yōu)選,可以采用下述步驟確定:
[0020](I)若所屬背板的上級(jí)SAS設(shè)備的WffN與SAS Controller的某個(gè)端口相匹配,則該端口的端口號(hào)即為背板的端口號(hào)port_id,該背板的expander_level為O ;
[0021](2)若所屬背板的上級(jí)SAS設(shè)備的WffN與SAS Controller的任一端口都不匹配,則該背板的port_id即為上級(jí)SAS設(shè)備的端口號(hào)port_id,該背板的expander_level則為上級(jí) SAS 設(shè)備的 expander_level 加 I ;
[0022]步驟三、讀取磁盤(pán)所在背板的插槽位置,并將其作為slot_id ;
[0023]作為優(yōu)選,可以利用SES協(xié)議進(jìn)行磁盤(pán)所在背板的插槽位置的讀??;
[0024]步驟四、將磁盤(pán)所屬背板的port_id和expander_level與磁盤(pán)的slot_id組合起來(lái),即為磁盤(pán)的disk_id ;
[0025]作為優(yōu)選,可以采用將三者所代表的數(shù)字字符依次連接得到的字符串作為disk_id ;
[0026]步驟五、選擇合適的字符串,確定磁盤(pán)的前綴域;
[0027]步驟六、將前綴域與disk_id組合起來(lái),即為磁盤(pán)名;
[0028]作為優(yōu)選,可以采用將二者所代表的字符串進(jìn)行連接后得到的字符串作為磁盤(pán)名。
[0029]一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名裝置,包括用戶(hù)空間模塊和內(nèi)核空間模塊兩部分,其中用戶(hù)空間模塊包括前綴域生成模塊、磁盤(pán)別名生成模塊和軟鏈接管理模塊,內(nèi)核空間模塊包括SAS Controller端口管理模塊、磁盤(pán)背板從屬關(guān)系管理模塊、磁盤(pán)插槽讀取模塊、背板端口及級(jí)別計(jì)算模塊和磁盤(pán)Disk_id合成模塊;
[0030]所述前綴域生成模塊用于生成磁盤(pán)前綴;
[0031]所述磁盤(pán)別名生成模塊用于將所述磁盤(pán)前綴與所述內(nèi)核空間得到的Disk_id合并為磁盤(pán)命名;
[0032]所述軟鏈接管理模塊用于插拔磁盤(pán)時(shí)在特定目錄下建立或刪除指向?qū)嶋H設(shè)備的鏈接;
[0033]所述SAS Controller端口管理模塊用于管理SAS控制器的端口映射關(guān)系;
[0034]所述磁盤(pán)背板從屬關(guān)系管理模塊用于管理磁盤(pán)與背板間的從屬關(guān)系;
[0035]所述磁盤(pán)插槽讀取模塊用于讀取磁盤(pán)所在的插槽位置;
[0036]所述背板端口及級(jí)別計(jì)算模塊用于根據(jù)所述SAS Controller端口管理模塊及所述磁盤(pán)背板從屬關(guān)系管理模塊的內(nèi)容計(jì)算磁盤(pán)所屬背板的端口及級(jí)別;
[0037]所述磁盤(pán)Diskjd合成模塊用于根據(jù)所述磁盤(pán)背板的端口、級(jí)別和所述磁盤(pán)插槽位置合成磁盤(pán)Disk_id。
[0038]有益效果
[0039]本發(fā)明實(shí)現(xiàn)了一種磁盤(pán)命名方法,尤其適用于多級(jí)擴(kuò)展柜下的存儲(chǔ)環(huán)境。磁盤(pán)名的前綴域可以體現(xiàn)廠(chǎng)商或產(chǎn)品信息,id域可以體現(xiàn)磁盤(pán)的位置關(guān)系。磁盤(pán)的id由三級(jí)構(gòu)成,第一級(jí)是SAS Controller的端口號(hào),第二級(jí)是磁盤(pán)所屬背板在SAS Controller某端口上的串聯(lián)級(jí)別,第三級(jí)是磁盤(pán)在所屬背板上的插槽位置,因此磁盤(pán)的位置關(guān)系非常直觀(guān),便于問(wèn)題發(fā)生時(shí)快速定位;磁盤(pán)所屬背板的端口號(hào)和級(jí)別都與背板規(guī)格以及上電順序無(wú)關(guān),因此磁盤(pán)id也不再受制于背板規(guī)格及上電順序,可以實(shí)現(xiàn)多種背板的混用,也減少了對(duì)用戶(hù)操作的限制。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0040]圖1為本發(fā)明一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法的命名區(qū)域劃分示意圖;
[0041]圖2為本發(fā)明一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法的適用環(huán)境拓?fù)鋱D;
[0042]圖3為本發(fā)明一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名裝置組成結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0043]本發(fā)明提出一種新的磁盤(pán)命名方法和裝置,應(yīng)用于多級(jí)擴(kuò)展柜下的存儲(chǔ)環(huán)境中,總體思想如圖1所示,假設(shè)擴(kuò)展柜直接連接到SAS Controller的第O個(gè)端口,則該擴(kuò)展柜的第11塊磁盤(pán)即pdOOll。以圖2所示的環(huán)境為例進(jìn)行講解,其處理步驟如下:
[0044]根據(jù)步驟一,將SAS Controller的N+1個(gè)端口分別命名為PortO——Port N ;
[0045]根據(jù)步驟二,計(jì)算各背板的port_id和expander_level:
[0046](I)背板 A 的上級(jí) SAS 設(shè)備為 SAS Controller 的 PortO,因此其 port_id 為 0,expnader_level 為 O ;
[0047](2)背板 B 的上級(jí) SAS 設(shè)備為 SAS Controller 的 Port I,因此其 port_id 為 1,expaner_level 為 O ;
[0048](3)背板C的上級(jí)SAS設(shè)備為背板A,因此其port_id等同于背板A的port_id,即為 0,其 expander_level 為背板 A 的 expander_level+l,即為 I ;
[0049](4)背板D的上級(jí)SAS設(shè)備為背板B,因此其port_id等同于背板B的port_id,即為 1,其 expander_level 為背板 B 的 expnader_level+l,即為 I ;
[0050]根據(jù)步驟三,規(guī)定各背板上的插槽位置從左到右依次從O開(kāi)始遞增,以此確定各磁盤(pán)的slot_id ;
[0051]根據(jù)步驟四,背板A上左數(shù)第I塊磁盤(pán)的id即為背板A的port_id、expander_level與磁盤(pán)的slot_id的組合,即為“0000”,左數(shù)第2塊磁盤(pán)的id即為“0001”;
[0052]以此類(lèi)推,背板B上左數(shù)第I塊磁盤(pán)的id即為“1000”,左數(shù)第2塊磁盤(pán)的id即為“1001”;背板C上左數(shù)第I塊磁盤(pán)的id即為“0100”,左數(shù)第2塊磁盤(pán)的id即為“0101”;背板D上左數(shù)第I塊磁盤(pán)的id即為“1100”,左數(shù)第2塊磁盤(pán)的id即為“1101” ;
[0053]根據(jù)步驟五,確定磁盤(pán)前綴域,在這里不妨將前綴字符串設(shè)定為磁盤(pán)類(lèi)型;
[0054]根據(jù)步驟六,確定最終磁盤(pán)名稱(chēng),假設(shè)背板A左數(shù)第I塊磁盤(pán)為SAS盤(pán),則其磁盤(pán)名最終為“sasOOOO”,假設(shè)背板D左數(shù)第2塊磁盤(pán)為SATA盤(pán),則其磁盤(pán)名最終為“satallOl”。
[0055]如圖3所示為應(yīng)用本發(fā)明方法實(shí)現(xiàn)的一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名裝置組成結(jié)構(gòu)示意圖,該裝置包括用戶(hù)空間模塊和內(nèi)核空間模塊兩部分內(nèi)容,本發(fā)明方法所述步驟一、步驟二、步驟三和步驟四的內(nèi)容由內(nèi)核空間模塊實(shí)現(xiàn),且該模塊需要與SASController Driver和背板Firmware進(jìn)行交互,本發(fā)明方法所述步驟五和步驟六的內(nèi)容由用戶(hù)空間模塊實(shí)現(xiàn)。本發(fā)明裝置已成功應(yīng)用于x86、MIPS、Sparc平臺(tái),且運(yùn)行良好。下面將詳述本發(fā)明裝置各組成部分。
[0056]用戶(hù)空間模塊包括前綴域生成模塊、磁盤(pán)別名生成模塊和軟鏈接管理模塊,內(nèi)核空間模塊包括SAS Controller端口管理模塊、磁盤(pán)背板從屬關(guān)系管理模塊、磁盤(pán)插槽讀取模塊、背板端口及級(jí)別計(jì)算模塊和磁盤(pán)Disk_id合成模塊;
[0057]所述SAS Controller端口管理模塊用于管理SAS控制器的端口映射關(guān)系;
[0058]所述磁盤(pán)背板從屬關(guān)系管理模塊用于管理磁盤(pán)與背板間的從屬關(guān)系;
[0059]所述磁盤(pán)插槽讀取模塊用于讀取磁盤(pán)所在的插槽位置;
[0060]所述背板端口及級(jí)別計(jì)算模塊用于根據(jù)所述SAS Controller端口管理模塊及所述磁盤(pán)背板從屬關(guān)系管理模塊的內(nèi)容計(jì)算磁盤(pán)所屬背板的端口及級(jí)別;
[0061]所述前綴域生成模塊用于生成磁盤(pán)前綴;此處采用用戶(hù)指定與系統(tǒng)默認(rèn)兩種方式進(jìn)行,有用戶(hù)指定的情況下采用用戶(hù)指定的字符串作為磁盤(pán)前綴,否則采用系統(tǒng)默認(rèn)的字符串作為磁盤(pán)前綴;
[0062]所述磁盤(pán)別名生成模塊用于將所述磁盤(pán)前綴與所述內(nèi)核空間得到的Diskjd合并為磁盤(pán)命名;
[0063]所述軟鏈接管理模塊用于插拔磁盤(pán)時(shí)在特定目錄下建立或刪除指向?qū)嶋H設(shè)備的鏈接;
[0064]所述磁盤(pán)Disk_id合成模塊用于根據(jù)所述磁盤(pán)背板的端口、級(jí)別和所述磁盤(pán)插槽位置合成磁盤(pán)Disk_id。
[0065]以上所述僅為本發(fā)明在一種適用環(huán)境下的具體實(shí)施而已,并不用以限制本發(fā)明,凡在本發(fā)明的設(shè)計(jì)思路內(nèi),不管使用何種SAS Controller,何種端口劃分方法,何種擴(kuò)展柜連接方式,何種擴(kuò)展柜規(guī)格,何種類(lèi)型存儲(chǔ)介質(zhì),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,其特征在于:包括以下步驟: 步驟一、根據(jù)WffN為SAS ControIler各個(gè)端口指定一個(gè)全局唯一的端口號(hào),并建立SASController的端口與WffN的映射表; 步驟二、根據(jù)磁盤(pán)所屬背板的上級(jí)SAS設(shè)備的WffN確定當(dāng)前背板的端口號(hào)(port_id)和級(jí)別(expander_level); 步驟三、讀取磁盤(pán)所在背板的插槽位置(slot_id); 步驟四、將磁盤(pán)所屬背板的port_id、expander_level與磁盤(pán)的slot_id組合起來(lái)得到磁盤(pán)標(biāo)識(shí)(disk_id); 步驟五、選擇合適的字符串,確定磁盤(pán)的前綴域; 步驟六、將前綴域與disk_id組合起來(lái)得到磁盤(pán)名。
2.根據(jù)權(quán)利要求1所述的一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,其特征在于:所述步驟二可以采用下述步驟確定當(dāng)前背板的port_id和expander_level: (1)若所屬背板的上級(jí)SAS設(shè)備的WffN與SASController的某個(gè)端口相匹配,則該端口的端口號(hào)即為背板的端口號(hào)port_id,該背板的expander_level為O ; (2)若所屬背板的上級(jí)SAS設(shè)備的WffN與SASController的任一端口都不匹配,則該背板的port_id即為上級(jí)SAS設(shè)備的端口號(hào)port_id,該背板的expander_level則為上級(jí)SAS 設(shè)備的 expander_level 加 I。
3.根據(jù)權(quán)利要求1所述的一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,其特征在于:所述步驟三讀取磁盤(pán)所在背板的插槽位置可以利用SES協(xié)議進(jìn)行讀取。
4.根據(jù)權(quán)利要求1所述的一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,其特征在于:所述步驟四將磁盤(pán)所屬背板的port_id、expander_level與磁盤(pán)的slot_id組合起來(lái)得到disk_id,可以采用將三者所代表的數(shù)字字符依次連接得到的字符串作為disk_id。
5.根據(jù)權(quán)利要求1所述的一種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名方法,其特征在于:步驟六將前綴域與disk_id組合起來(lái)得到磁盤(pán)名,可以采用將二者所代表的字符串進(jìn)行連接后得到的字符串作為磁盤(pán)名。
6.—種適用于多級(jí)擴(kuò)展柜的磁盤(pán)命名裝置,其特征在于,包括用戶(hù)空間模塊和內(nèi)核空間模塊兩部分,其中用戶(hù)空間模塊包括前綴域生成模塊、磁盤(pán)別名生成模塊和軟鏈接管理模塊,內(nèi)核空間模塊包括SAS Cont1ller端口管理模塊、磁盤(pán)背板從屬關(guān)系管理模塊、磁盤(pán)插槽讀取模塊、背板端口及級(jí)別計(jì)算模塊和磁盤(pán)Disk_id合成模塊; 所述前綴域生成模塊用于生成磁盤(pán)前綴; 所述磁盤(pán)別名生成模塊用于將所述磁盤(pán)前綴與所述內(nèi)核空間得到的Disk_id合并為磁盤(pán)命名; 所述軟鏈接管理模塊用于插拔磁盤(pán)時(shí)在特定目錄下建立或刪除指向?qū)嶋H設(shè)備的鏈接; 所述SAS Controller端口管理模塊用于管理SAS控制器的端口映射關(guān)系; 所述磁盤(pán)背板從屬關(guān)系管理模塊用于管理磁盤(pán)與背板間的從屬關(guān)系; 所述磁盤(pán)插槽讀取模塊用于讀取磁盤(pán)所在的插槽位置; 所述背板端口及級(jí)別計(jì)算模塊用于根據(jù)所述SAS Controller端口管理模塊及所述磁盤(pán)背板從屬關(guān)系管理模塊的內(nèi)容計(jì)算磁盤(pán)所屬背板的端口及級(jí)別; 所述磁盤(pán)Disk_id合成模塊用于根據(jù)所述磁盤(pán)背板的端口、級(jí)別和所述磁盤(pán)插槽位置合成磁盤(pán)Disk_id。
【文檔編號(hào)】G06F17/30GK104503701SQ201410718707
【公開(kāi)日】2015年4月8日 申請(qǐng)日期:2014年12月1日 優(yōu)先權(quán)日:2014年12月1日
【發(fā)明者】劉磊, 潘興旺, 王道邦, 李艷國(guó), 陳侃, 王清翰, 周澤湘, 羅華, 方侖 申請(qǐng)人:北京同有飛驥科技股份有限公司