專利名稱:基于Linux下的磁盤的盤符正確分配方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù)領(lǐng)域,特別涉及一種基于Linux下的磁盤的盤符正確分 配方法及裝置。
背景技術(shù):
目前,Linux下盤符的分配方式比較簡單,哪個盤在內(nèi)核里先啟動就按照從sda至 sdz順序分配。具體地,通過Udev軟件對盤符重新進行映射,并按照總線順序創(chuàng)建符號鏈 接。在Intel新一代的C600系列主板芯片組中同時存在AHCI和SCU這兩組磁盤接口芯片。 在這種芯片混用的情況下,磁盤設備的啟動順序總不能按照接口總線ID或者物理ID順序 啟動,因此在Linux下便發(fā)生了盤符亂序的問題。如表一所示:
權(quán)利要求
1.一種基于Linux下的磁盤的盤符正確分配方法,包括如下步驟: 在檢測到磁盤的盤符分配請求時,檢測所述磁盤的芯片類型,如果所述磁盤的芯片類型為SCU芯片,則內(nèi)核調(diào)用盤符分配驅(qū)動; 所述盤符分配驅(qū)動根據(jù)所述磁盤的總線ID和物理ID計算所述磁盤對應的位圖起始訪問值; 所述盤符分配驅(qū)動訪問所述位圖起始訪問值開始,從所述位圖起始訪問值對應的所述盤符依次進行遍歷;以及 所述盤符分配驅(qū)動判斷進行遍歷的所述盤符是否被占用,如果所述盤符未被占用,則將當前位圖值所對應的所述盤符分配至所述磁盤。
2.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,檢測所述磁盤上的芯片類型是否為domain設備,如果是,則判斷所述磁盤的芯片類型為SCU芯片。
3.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,所述盤符分配驅(qū)動根據(jù)所述磁盤的總線ID和物理ID計算所述磁盤對應的位圖起始訪問值還包括: 所述盤符分配函數(shù)傳入一個設備結(jié)構(gòu)體指針,并根據(jù)所述設備的信息讀出請求盤符分配的所述磁盤設備的信息,同時進行盤符分配。
4.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,如果所述磁盤的芯片類型為S⑶芯片,則所對應的位圖起始訪問值=4* (SOT的總線ID值-5)+物理ID。
5.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,如果所述磁盤的芯片類型為AHCI芯片,則所對應的位圖起始訪問值=AHCI的總線ID值。
6.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,所述盤符分配驅(qū)動根據(jù)所述磁盤的總線ID和物理ID計算所述磁盤對應的位圖起始訪問值進一步包括:所述盤符分配驅(qū)動調(diào)用盤符分配函數(shù),以通過所述盤符分配函數(shù)實現(xiàn)所述磁盤對應的位圖起始訪問值的計算。
7.如權(quán)利要求1所述的基于Linux下的磁盤的盤符正確分配方法,其特征在于,還包括: 判斷進行遍歷的所述盤符是否被占用,如果所述盤符被占用,繼續(xù)訪問所述當前位圖值的下一位圖值所對應的所述盤符,判斷所述盤符是否被占用,如果所述盤符未被占用,則對所述盤符進行分配。
8.一種基于Linux下的磁盤的盤符正確分配裝置,包括: 內(nèi)核,用于檢測是否接收到磁盤的盤符分配請求,如果是,則檢測所述磁盤的芯片類型,如果所述磁盤的芯片類型為SCU芯片,則調(diào)用盤符分配驅(qū)動模塊; 所述盤符分配驅(qū)動模塊,用于根據(jù)所述磁盤的總線ID和物理ID計算所述磁盤對應的位圖起始訪問值,訪問所述位圖起始訪問值開始,從所述位圖起始訪問值對應的所述盤符依次進行遍歷,以及所述盤符分配驅(qū)動模塊判斷進行遍歷的所述盤符是否被占用,如果所述盤符未被占用,則將當前位圖值所對應的所述盤符分配至所述磁盤。
9.如權(quán)利要求8所述的裝置,其特征在于,所述內(nèi)核用于檢測所述磁盤上的芯片類型是否為domain設備,如果是,則判斷所述磁盤的芯片類型為SCU芯片。
10.如權(quán)利要求8所述的裝置,其特征在于,所述盤符分配驅(qū)動模塊還包括: 調(diào)用單元,用于調(diào)用盤符分配函數(shù),以通過所述盤符分配函數(shù)實現(xiàn)所述磁盤對應的位圖起始訪問值的計算。
11.如權(quán)利要求 8所述的裝置,其特征在于,所述盤符驅(qū)動模塊通過所述盤符分配函數(shù)傳入一個設備結(jié)構(gòu)體指針,并根據(jù)所述設備的信息讀出請求盤符分配的所述磁盤設備的信息,同時進行盤符分配。
12.如權(quán)利要求8所述的裝置,其特征在于,如果所述磁盤的芯片類型為SCU芯片,則所述盤符分配驅(qū)動模塊計算所對應的位圖起始訪問值=4* (SCT的總線ID值-5) +物理ID。
13.如權(quán)利要求8所述的裝置,其特征在于,如果所述磁盤的芯片類型為AHCI芯片,則所述盤符分配驅(qū)動模塊計算所對應的位圖起始訪問值=AHCI的總線ID值。
14.如權(quán)利要求8所述的裝置,其特征在于,所述盤符驅(qū)動模塊還用于判斷進行遍歷的所述盤符是否被占用,如果所述盤符被占用,繼續(xù)訪問所述當前位圖值的下一位圖值所對應的所述盤符,判斷所述盤符是否被占用,如果所述盤符未被占用,則對所述盤符進行分配。
全文摘要
本發(fā)明提出了一種基于Linux下的磁盤的盤符正確分配方法,包括如下步驟在檢測到磁盤的盤符分配請求時,檢測磁盤的芯片類型,如果磁盤的芯片類型為SCU芯片,則內(nèi)核調(diào)用盤符分配驅(qū)動;盤符分配驅(qū)動根據(jù)磁盤的總線ID和物理ID計算磁盤對應的位圖起始訪問值;盤符分配驅(qū)動訪問位圖起始訪問值開始,從位圖起始訪問值對應的盤符依次進行遍歷;以及盤符分配驅(qū)動判斷進行遍歷的盤符是否被占用,如果盤符未被占用,則將當前位圖值所對應的盤符分配至磁盤。本方法消除了硬件和軟件運維兼容性的問題,降低了因運維方式變更而產(chǎn)生的風險和成本代價,且具有高效性與易用性。本發(fā)明還公開了一種基于Linux下的磁盤的盤符正確分配裝置。
文檔編號G06F3/06GK103150126SQ20131006458
公開日2013年6月12日 申請日期2013年2月28日 優(yōu)先權(quán)日2013年2月28日
發(fā)明者崔黎麟 申請人:北京百度網(wǎng)訊科技有限公司