TWI841160B - 存儲控制器的驅動管理方法及相關設備 - Google Patents

存儲控制器的驅動管理方法及相關設備 Download PDF

Info

Publication number
TWI841160B
TWI841160B TW111150757A TW111150757A TWI841160B TW I841160 B TWI841160 B TW I841160B TW 111150757 A TW111150757 A TW 111150757A TW 111150757 A TW111150757 A TW 111150757A TW I841160 B TWI841160 B TW I841160B
Authority
TW
Taiwan
Prior art keywords
storage controller
driver
drive
file
configuration file
Prior art date
Application number
TW111150757A
Other languages
English (en)
Other versions
TW202420081A (zh
Inventor
袁傑
Original Assignee
新加坡商鴻運科股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新加坡商鴻運科股份有限公司 filed Critical 新加坡商鴻運科股份有限公司
Application granted granted Critical
Publication of TWI841160B publication Critical patent/TWI841160B/zh
Publication of TW202420081A publication Critical patent/TW202420081A/zh

Links

Abstract

本申請公開一種存儲控制器的驅動管理方法及相關設備,存儲控制器的驅動管理方法包括:擷取第一存儲控制器的驅動設定檔和第二存儲控制器的驅動設定檔;根據第一存儲控制器的驅動設定檔和第二存儲控制器的驅動設定檔擷取根檔案系統的驅動映射檔;更新第二存儲控制器的驅動設定檔;根據第二存儲控制器的驅動設定檔更新虛擬檔案系統的驅動鏡像檔;重新開機電子設備的作業系統;在啟動虛擬檔案系統時根據驅動鏡像檔啟動第二存儲控制器的驅動程式;在啟動根檔案系統時根據驅動映射檔啟動第一存儲控制器的驅動程式。

Description

存儲控制器的驅動管理方法及相關設備
本申請涉及電腦存儲技術領域,具體涉及一種存儲控制器的驅動管理方法及相關設備。
電子設備可透過配置存儲控制器來管理記憶體。電子設備在啟動作業系統時,首先啟動存儲控制器的驅動程式,然後透過存儲控制器掃描記憶體,並按照掃描到記憶體的次序來分配盤符。然而,存儲控制器的驅動程式是多執行緒運行的,難以確定驅動程式的運行次序,導致分配盤符具有隨機性,容易造成盤符漂移的問題。
鑒於此,本申請提供一種存儲控制器的驅動管理方法及相關設備,旨在解決如何有序地分配盤符的技術問題。
本申請第一方面提供一種存儲控制器的驅動管理方法,應用於電子設備,電子設備包括第一存儲控制器和第二存儲控制器,存儲控制器的驅動管理方法包括:擷取第一存儲控制器的驅動設定檔和第二存儲控制器的驅動設定檔;根據第一存儲控制器的驅動設定檔和第二存儲控制器的驅動設定檔擷取根檔案系統的驅動映射檔;更新第二存儲控制器的驅動設定檔;根據第二存儲 控制器的驅動設定檔更新虛擬檔案系統的驅動鏡像檔;重新開機電子設備的作業系統;在啟動虛擬檔案系統時根據驅動鏡像檔啟動第二存儲控制器的驅動程式;在啟動根檔案系統時根據驅動映射檔啟動第一存儲控制器的驅動程式。
採用本實施例的存儲控制器的驅動管理方法,透過更新第二存儲控制器的驅動設定檔,使虛擬檔案系統的驅動鏡像檔包含第二存儲控制器的驅動程式的安裝配置資訊,從而將第二存儲控制器的驅動程式的啟動時間調整到啟動虛擬檔案系統時,可在啟動虛擬檔案系統時優先啟動第二存儲控制器的驅動程式,優先給第二存儲控制器連接的記憶體分配盤符,在啟動根檔案系統時再啟動第一存儲控制器的驅動程式,再給第一存儲控制器連接的記憶體分配盤符,從而使第一存儲控制器連接的記憶體的盤符和第二存儲控制器連接的記憶體的盤符均連續。
本申請第二方面提供一種電子設備,包括處理器、內部記憶體以及第一存儲控制器和第二存儲控制器,當電子設備檢測到連接至少一個外部記憶體時,處理器運行存儲於內部記憶體中的電腦程式或代碼,實現本申請實施例的存儲控制器的驅動管理方法。
本申請第三方面提供一種電子設備,包括處理器、複數記憶體以及第一存儲控制器和第二存儲控制器,處理器運行存儲於一個記憶體中的電腦程式或代碼,實現本申請實施例的存儲控制器的驅動管理方法。
本申請第四方面提供一種電腦可讀存儲介質,用於存儲電腦程式或代碼,當電腦程式或代碼被處理器執行時,實現本申請實施例的存儲控制器的驅動管理方法。
可以理解,本申請第二方面和第三方面提供的電子設備以及第四方面提供的電腦可讀存儲介質的具體實施方式和有益效果均與本申請第一方面 提供的存儲控制器的驅動管理方法的具體實施方式和有益效果大致相同,此處不再贅述。
100:電子設備
110:處理器
120-128:記憶體
129:內部記憶體
130:第一存儲控制器
140:第二存儲控制器
200:外部記憶體
S401-S417:步驟
圖1是電子設備分配盤符的示意圖。
圖2是本申請一種實施例提供的電子設備的結構示意圖。
圖3是本申請另一種實施例提供的電子設備的結構示意圖。
圖4是本申請一種實施例提供的存儲控制器的驅動管理方法的流程圖。
圖5是本申請一種實施例提供的電子設備分配盤符的示意圖。
需要說明的是,本申請實施例中“至少一個”是指一個或者複數,“複數”是指兩個或多於兩個。“和/或”,描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B可以表示:單獨存在A,同時存在A和B,單獨存在B的情況,其中A,B可以是單數或者複數。本申請的說明書和請求項書及附圖中的術語“第一”、“第二”、“第三”、“第四”等(如果存在)是用於區別類似的物件,而不是用於描述特定的順序或先後次序。
另外需要說明的是,本申請實施例中公開的方法或流程圖所示出的方法,包括用於實現方法的一個或複數步驟,在不脫離請求項的範圍的情況下,複數步驟的執行順序可以彼此互換,其中某些步驟也可以被刪除。
下面對本申請的部分技術術語進行說明。
1,存儲控制器(storage controller)
存儲控制器是按照一定的時序規則對記憶體的訪問進行控制的設備,包括位址信號、資料信號以及各種命令信號的控制,使訪問記憶體的電子設備能夠使用記憶體上的存儲資源。存儲控制器的作用是進行介面的轉換,將電子設備發出的讀、寫等命令轉換成記憶體能夠識別的信號,以及完成電子設備與記憶體之間的位址解碼、資料格式轉換等。
存儲控制器可包括,但不限於主機匯流排適配器(Host Bus Adapter,HBA)、獨立磁碟容錯陣列(Redundant Array of Independent Disks,RAID)等。
2,驅動程式(driver)
驅動程式可簡稱為驅動,驅動程式是指存儲控制器的驅動程式,是添加到電子設備的作業系統中的特定程式,其中包含電子設備的相關資訊。此相關資訊能夠使電子設備與相應的存儲控制器進行通信,從而使電子設備能夠透過存儲控制器來訪問相應的記憶體。
3,作業系統(operating system,os)
作業系統是一組管理並控制電腦操作、運用和運行硬體、軟體資源和提供公共服務來組織使用者交互的相互關聯的系統軟體程式。電子設備在啟動作業系統時,首先啟動虛擬檔案系統(例如initramfs),在啟動虛擬檔案系統時啟動系統磁片的存儲控制器的驅動程式和資料盤的存儲控制器的驅動程式,然後啟動根檔案系統(例如rootfs)。虛擬檔案系統的作用是掛載(mount)根檔案系統。掛載是將一個檔案系統與一個記憶體關聯起來的過程。根檔案系統包含作業系統啟動時所需的目錄和關鍵性的檔,以及掛載其他檔案系統所需的檔。
4,驅動原始檔案
驅動原始檔案包含存儲控制器的驅動程式。電子設備在啟動作業系統時從驅動原始檔案擷取存儲控制器的驅動程式。驅動原始檔案可為內核模組(kernel object,ko)檔。
5,驅動設定檔
驅動設定檔包含啟動存儲控制器的驅動程式的安裝配置資訊,例如存儲控制器的類型、驅動程式的版本資訊等。
6,驅動鏡像檔
驅動鏡像檔包含驅動設定檔的全部內容。電子設備可在虛擬檔案系統中打開驅動鏡像檔,從而在啟動虛擬檔案系統時可根據驅動鏡像檔啟動存儲控制器的驅動程式。
7,驅動映射檔
驅動映射檔包含作業系統的各個模組之間的依賴關係資訊。電子設備可在根檔案系統中打開驅動映射檔,從而在啟動根檔案系統時可根據驅動映射檔啟動存儲控制器的驅動程式。
8,盤符(drive letter)
盤符是作業系統對記憶體的識別字。電子設備在啟動作業系統時,首先啟動存儲控制器的驅動程式,然後透過存儲控制器掃描記憶體,並按照掃描到記憶體的次序來分配盤符,例如依次分配以下盤符:sda、sdb、sdc等。然而,存儲控制器的驅動程式是多執行緒運行的,難以確定驅動程式的運行次序,導致分配盤符具有隨機性,容易造成盤符漂移的問題。
舉例而言,如圖1所示,電子設備100包括第一存儲控制器130和第二存儲控制器140,第一存儲控制器130電連接記憶體121、記憶體122、記憶體123和記憶體124,第二存儲控制器140電連接記憶體125、記憶體126、記憶體127和記憶體128。電子設備100在啟動作業系統時,首先啟動第一存儲控制器130 的驅動程式,透過第一存儲控制器130掃描記憶體121和記憶體122,依次給記憶體121和記憶體122分配盤符sda和sdb。接著,電子設備100啟動第二存儲控制器140的驅動程式,透過第二存儲控制器140掃描記憶體125,給記憶體125分配盤符sdc。然後,電子設備100透過第一存儲控制器130掃描記憶體123,給記憶體123分配盤符sdd。電子設備100再透過第二存儲控制器140掃描記憶體126,給記憶體126分配盤符sde。接著,電子設備100透過第一存儲控制器130掃描記憶體124,給記憶體124分配盤符sdf。然後,電子設備100透過第二存儲控制器140掃描記憶體127和記憶體128,依次給記憶體127和記憶體128分配盤符sdg和sdh。可見,電子設備100透過第一存儲控制器130管理的記憶體121、記憶體122、記憶體123和記憶體124的盤符不連續,透過第二存儲控制器140管理的記憶體125、記憶體126、記憶體127和記憶體128的盤符也不連續,導致電子設備100對記憶體的管理容易出現混亂,也容易造成盤符漂移的問題,可能會錯誤地對記憶體的盤符進行寫入或擦除操作,導致資料存儲異常。
基於此,本申請提供一種存儲控制器的驅動管理方法及相關設備,透過更新第二存儲控制器的驅動設定檔,使虛擬檔案系統的驅動鏡像檔包含第二存儲控制器的驅動程式的安裝配置資訊,從而將第二存儲控制器的驅動程式的啟動時間調整到啟動虛擬檔案系統時,可在啟動虛擬檔案系統時優先啟動第二存儲控制器的驅動程式,優先給第二存儲控制器連接的記憶體分配盤符,在啟動根檔案系統時再啟動第一存儲控制器的驅動程式,再給第一存儲控制器連接的記憶體分配盤符,從而使第一存儲控制器連接的記憶體的盤符和第二存儲控制器連接的記憶體的盤符均連續。
下面對本申請提供的電子設備進行說明。
圖2是本申請一種實施例提供的電子設備100的結構示意圖。
可參閱圖2,電子設備100可以包括處理器110、複數記憶體120以及第一存儲控制器130和第二存儲控制器140。其中,第一存儲控制器130和第二存儲控制器140分別電連接複數記憶體120。處理器110可以運行存儲於一個記憶體120中的電腦程式或代碼,實現本申請實施例的存儲控制器的驅動管理方法。
處理器110可以包括一個或複數處理單元。例如,處理器110可以包括,但不限於應用處理器(Application Processor,AP)、調製解調處理器、圖形處理器(Graphics Processing Unit,GPU)、圖像信號處理器(Image Signal Processor,ISP)、控制器、視頻轉碼器、數位訊號處理器(Digital Signal Processor,DSP)、基帶處理器、神經網路處理器(Neural-Network Processing Unit,NPU)等。其中,不同的處理單元可以是獨立的器件,也可以集成在一個或複數處理器中。
處理器110中還可以設置記憶體,用於存儲指令和資料。在一些實施例中,處理器110中的記憶體為高速緩衝記憶體。該記憶體可以保存處理器110剛用過或迴圈使用的指令或資料。如果處理器110需要再次使用該指令或資料,可從所述記憶體中直接調用。
在一些實施例中,處理器110可以包括一個或複數介面。介面可以包括,但不限於積體電路(Inter-Integrated Circuit,I2C)介面、積體電路內置音訊(Inter-Integrated Circuit Sound,I2S)介面、脈衝碼調製(Pulse Code Modulation,PCM)介面、通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter,UART)介面、移動產業處理器介面(Mobile Industry Processor Interface,MIPI)、通用輸入輸出(General-Purpose Input/Output,GPIO)介面、使用者標識模組(Subscriber Identity Module,SIM)介面、通用序列匯流排(Universal Serial Bus,USB)介面等。
可以理解,本申請實施例示意的各模組間的介面連接關係,只是示意性說明,並不構成對電子設備100的結構限定。在另一些實施例中,電子設備100也可以採用上述實施例中不同的介面連接方式,或多種介面連接方式的組合。
記憶體120可以包括外部記憶體介面和內部記憶體。其中,外部記憶體介面可以用於連接外部存儲卡,例如Micro SD卡,實現擴展電子設備100的存儲能力。外部存儲卡透過外部記憶體介面與處理器110通信,實現資料存儲功能。內部記憶體可以用於存儲電腦可執行程式碼,所述可執行程式碼包括指令。內部記憶體可以包括存儲程式區(系統磁片)和存儲資料區(資料盤)。其中,存儲程式區可存儲作業系統,至少一個功能所需的應用程式(例如聲音播放功能,圖像播放功能等)等。存儲資料區可存儲電子設備100使用過程中所創建的資料(例如音訊資料,圖像資料等)等。此外,內部記憶體可以包括高速隨機存取記憶體,還可以包括非易失性記憶體,例如至少一個磁碟記憶體件、快閃記憶體器件或通用快閃記憶體(Universal Flash Storage,UFS)等。處理器110透過運行存儲在內部記憶體的指令,和/或存儲在設置於處理器110中的記憶體的指令,執行電子設備100的各種功能應用以及資料處理,例如實現本申請實施例的存儲控制器的驅動管理方法。
圖3是本申請另一種實施例提供的電子設備100的結構示意圖。
可參閱圖3,電子設備100可以包括處理器110、至少一個內部記憶體129以及第一存儲控制器130和第二存儲控制器140。當電子設備100檢測到連接至少一個外部記憶體200時,處理器110可以運行存儲於一個內部記憶體129中的電腦程式或代碼,實現本申請實施例的存儲控制器的驅動管理方法。
在本實施例中,第一存儲控制器130電連接至少一個內部記憶體129和至少一個外部記憶體200,第二存儲控制器140電連接除第一存儲控制器 130連接的內部記憶體129和外部記憶體200之外的其餘內部記憶體129和外部記憶體200。
在一些實施例中,第一存儲控制器130電連接內部記憶體129,第二存儲控制器140電連接外部記憶體200。
可以理解,本申請實施例示意的結構並不構成對電子設備100的具體限定。在另一些實施例中,電子設備100可以包括比圖示更多或更少的部件,或者組合某些部件,或者拆分某些部件,或者不同的部件佈置。圖示的部件可以以硬體,軟體或軟體和硬體的組合實現。
電子設備100可以包括,但不限於智慧型電話、平板電腦、個人電腦(Personal Computer,PC)、電子書閱讀器、工作站、伺服器、個人數位助理(Personal Digital Assistant,PDA)、可攜式多媒體播放機(Portable Multimedia Player,PMP)等。
下面對本申請提供的存儲控制器的驅動管理方法進行具體說明。
圖4是本申請一種實施例提供的存儲控制器的驅動管理方法的流程圖。
可參閱圖4,本實施例的存儲控制器的驅動管理方法可應用於圖2或圖3所示的電子設備100。存儲控制器的驅動管理方法可包括如下步驟:
S401,根據第一存儲控制器130的驅動標識創建第一存儲控制器130的驅動設定檔的路徑。
可以理解,驅動標識用於區分不同的驅動程式,驅動標識可包括驅動名稱或編號,例如驅動標識可為以下任一種:mpt3sas、megaraid_sas、aacraid。
在本實施例中,電子設備100可使用mkdir命令來創建第一存儲控制器130的驅動設定檔的路徑。
舉例而言,第一存儲控制器130的驅動標識為DriverModule_A,電子設備100可使用如下命令來創建第一存儲控制器130的驅動設定檔的路徑:mkdir -p/lib/modules/`uname -r`/extra/$DriverModule_A/
S402,在第一存儲控制器130的驅動設定檔的路徑下複製第一存儲控制器130的驅動原始檔案。
在本實施例中,電子設備100可使用cp命令來複製第一存儲控制器130的驅動原始檔案。
舉例而言,第一存儲控制器130的驅動原始檔案為$DriverModule_A.ko,電子設備100可使用如下命令來複製第一存儲控制器130的驅動原始檔案:cp -f $DriverModule_A.ko/lib/modules/`uname -r`/extra/$DriverModule_A/
S403,根據第二存儲控制器140的驅動標識創建第二存儲控制器140的驅動設定檔的路徑。
舉例而言,第二存儲控制器140的驅動標識為DriverModule_B,電子設備100可使用如下命令來創建第二存儲控制器140的驅動設定檔的路徑:mkdir -p/lib/modules/`uname -r`/extra/$DriverModule_B/
S404,在第二存儲控制器140的驅動設定檔的路徑下複製第二存儲控制器140的驅動原始檔案。
舉例而言,第二存儲控制器140的驅動原始檔案為$DriverModule_B.ko,電子設備100可使用如下命令來複製第二存儲控制器140的驅動原始檔案:cp -f $DriverModule_B.ko/lib/modules/`uname -r`/extra/$DriverModule_B/
S405,擷取第一存儲控制器130的驅動設定檔和第二存儲控制器140的驅動設定檔。
在本實施例中,電子設備100以第一存儲控制器130的驅動標識為檔案名稱創建第一存儲控制器130的驅動設定檔,以第二存儲控制器140的驅動標識為檔案名稱創建第二存儲控制器140的驅動設定檔。
在一些實施例中,電子設備100可在驅動映射檔的路徑下保存第一存儲控制器130的驅動設定檔和第二存儲控制器140的驅動設定檔。
在另一些實施例中,電子設備100可使用override命令來重寫第一存儲控制器130的驅動設定檔和第二存儲控制器140的驅動設定檔。
舉例而言,電子設備100可使用如下命令來重寫第一存儲控制器130的驅動設定檔:echo override $DriverModule_A `uname -r | awk -F "-" '{print $1}'`-*
weak-updates/$DriverModule_A > /etc/depmod.d/$DriverModule_A.conf
電子設備100可使用如下命令來重寫第二存儲控制器140的驅動設定檔:echo override $DriverModule_B `uname -r | awk -F "-" '{print $1}'`-*
weak-updates/$DriverModule_B > /etc/depmod.d/$DriverModule_B.conf
其中,$DriverModule_A.conf為第一存儲控制器130的驅動設定檔,$DriverModule_B.conf為第二存儲控制器140的驅動設定檔。
S406,根據第一存儲控制器130的驅動設定檔和第二存儲控制器140的驅動設定檔擷取根檔案系統的驅動映射檔。
在本實施例中,電子設備100可使用depmod命令來創建根檔案系統的驅動映射檔。
可以理解,電子設備100在創建驅動映射檔之後,可在啟動根檔案系統時根據驅動映射檔啟動第一存儲控制器130的驅動程式和第二存儲控制器140的驅動程式。
S407,確定是否優先啟動第二存儲控制器140的驅動程式。
在本實施例中,電子設備100可保存啟動優先順序列表,啟動優先順序清單包含各種類型的存儲控制器的驅動程式的優先順序排序。電子設備100可查詢啟動優先順序列表,從啟動優先順序清單中擷取第一存儲控制器130的驅動程式和第二存儲控制器140的驅動程式的優先順序排序,按照優先順序排序來確定優先啟動第一存儲控制器130的驅動程式,或優先啟動第二存儲控制器140的驅動程式。
在一些實施例中,電子設備100可回應於優先啟動指令,根據優先啟動指令來確定優先啟動第一存儲控制器130的驅動程式,或優先啟動第二存儲控制器140的驅動程式。
可以理解,電子設備100的顯示幕可展示優先啟動第一存儲控制器130的驅動程式的控制項和優先啟動第二存儲控制器140的驅動程式的控制項。當優先啟動第一存儲控制器130的驅動程式的控制項被觸發時,觸發優先啟動第一存儲控制器130的驅動程式的指令,電子設備100回應於優先啟動第一存儲控制器130的驅動程式的指令,確定優先啟動第一存儲控制器130的驅動程式。當優先啟動第二存儲控制器140的驅動程式的控制項被觸發時,觸發優先啟動第二存儲控制器140的驅動程式的指令,電子設備100回應於優先啟動第二存儲控制器140的驅動程式的指令,確定優先啟動第二存儲控制器140的驅動程式。優先啟動第一存儲控制器130的驅動程式的控制項和優先啟動第二存儲控制器140的驅動程式的控制項可由使用者操作觸發,例如用戶點擊或觸摸相應的控制項。
若確定優先啟動第二存儲控制器140的驅動程式,則執行步驟S408至S412;若否,則執行步驟S413至S417。
S408,更新第二存儲控制器140的驅動設定檔。
在本實施例中,當確定優先啟動第二存儲控制器140的驅動程式時,電子設備100可在新的路徑下創建第二存儲控制器140的驅動設定檔。例如,電子設備100可在驅動鏡像檔的路徑下創建第二存儲控制器140的驅動設定檔。
可以理解,電子設備100可使用add_drivers命令來創建第二存儲控制器140的驅動設定檔。
舉例而言,電子設備100可使用如下命令來創建第二存儲控制器140的驅動設定檔:echo add_drivers+=\" $DriverModule_B \" >
/etc/dracut.conf.d/$DriverModule_B.conf
其中,重新創建的第二存儲控制器140的驅動設定檔為$DriverModule_B.conf。
可以理解,當確定優先啟動第二存儲控制器140的驅動程式時,電子設備100透過更新第二存儲控制器140的驅動設定檔,可將第二存儲控制器140的驅動程式的啟動時間調整到啟動虛擬檔案系統時,從而優先給第二存儲控制器140連接的記憶體分配盤符,在給第二存儲控制器140連接的記憶體分配盤符時不會干擾後續給第一存儲控制器130連接的記憶體分配盤符。
S409,根據第二存儲控制器140的驅動設定檔更新虛擬檔案系統的驅動鏡像檔。
在本實施例中,電子設備100可使用dracut命令來重新創建虛擬檔案系統的驅動鏡像檔,並替換更新前的驅動鏡像檔。
在一些實施例中,電子設備100可根據第二存儲控制器140的驅動設定檔的內容相應地更改驅動鏡像檔的內容。
S410,重新開機電子設備100的作業系統。
在本實施例中,電子設備100可使用reboot命令來重新開機作業系統。
在一些實施例中,電子設備100可回應於重啟指令,根據重啟指令來重新開機作業系統。
可以理解,電子設備100的顯示幕可展示重啟控制項。當重啟控制項被觸發時,觸發重啟指令,電子設備100回應於重啟指令,重新開機作業系統。重啟控制項可由使用者操作觸發,例如用戶點擊或觸摸重啟控制項。重啟控制項也可設置等待時長,當用戶操作超過等待時長時,作業系統觸發重啟控制項,從而觸發重啟指令。
S411,在啟動虛擬檔案系統時根據驅動鏡像檔啟動第二存儲控制器140的驅動程式。
可以理解,電子設備100重新開機作業系統可包括啟動虛擬檔案系統的階段和啟動根檔案系統的階段。在虛擬檔案系統啟動完成之後,開始啟動根檔案系統。
在本實施例中,當確定優先啟動第二存儲控制器140的驅動程式時,驅動鏡像檔的內容包含第二存儲控制器140的驅動程式,電子設備100在啟動虛擬檔案系統的階段根據驅動鏡像檔啟動第二存儲控制器140的驅動程式,從而優先給第二存儲控制器140連接的記憶體分配盤符,在給第二存儲控制器140連接的記憶體分配盤符時不會干擾後續給第一存儲控制器130連接的記憶體分配盤符。
S412,在啟動根檔案系統時根據驅動映射檔啟動第一存儲控制器130的驅動程式。
在本實施例中,在虛擬檔案系統啟動完成之後,電子設備100在啟動根檔案系統的階段啟動第一存儲控制器130的驅動程式,從而給第一存儲控 制器130連接的記憶體分配盤符,由於第二存儲控制器140連接的記憶體的盤符在啟動虛擬檔案系統的階段都已分配完成,因此在給第一存儲控制器130連接的記憶體分配盤符時不會干擾給第二存儲控制器140連接的記憶體分配盤符。
可以理解,當根檔案系統載入(loading)完成時,作業系統會載入其他檔案系統。其中,載入是指啟動根檔案系統時電子設備100的記憶體(memory)讀取資訊的過程。當所有的檔案系統載入完成時,作業系統重啟完成。在作業系統重啟完成之後,電子設備100可透過第一存儲控制器130或第二存儲控制器140來訪問相應的記憶體。
S413,更新第一存儲控制器130的驅動設定檔。
舉例而言,電子設備100可使用如下命令來創建第一存儲控制器130的驅動設定檔:echo add_drivers+=\" $DriverModule_A \" >
/etc/dracut.conf.d/$DriverModule_A.conf
其中,重新創建的第一存儲控制器130的驅動設定檔為$DriverModule_A.conf。
S414,根據第一存儲控制器130的驅動設定檔更新虛擬檔案系統的驅動鏡像檔。
S415,重新開機電子設備100的作業系統。
S416,在啟動虛擬檔案系統時根據驅動鏡像檔啟動第一存儲控制器130的驅動程式。
S417,在啟動根檔案系統時根據驅動映射檔啟動第二存儲控制器140的驅動程式。
可以理解,步驟S413至S417的具體實施方式與步驟S408至S412大致相同,此處不再贅述。
在本實施例中,當確定優先啟動第一存儲控制器130的驅動程式時,電子設備100透過更新第一存儲控制器130的驅動設定檔,可將第一存儲控制器130的驅動程式的啟動時間調整到啟動虛擬檔案系統時,從而優先給第一存儲控制器130連接的記憶體分配盤符,在給第一存儲控制器130連接的記憶體分配盤符時不會干擾後續給第二存儲控制器140連接的記憶體分配盤符。
舉例而言,如圖5所示,電子設備100包括第一存儲控制器130和第二存儲控制器140,第一存儲控制器130電連接記憶體121、記憶體122、記憶體123和記憶體124,第二存儲控制器140電連接記憶體125、記憶體126、記憶體127和記憶體128。電子設備100採用本申請實施例的存儲控制器的驅動管理方法,確定優先啟動第一存儲控制器130的驅動程式,在啟動作業系統時,首先在啟動虛擬檔案系統時啟動第一存儲控制器130的驅動程式,透過第一存儲控制器130掃描記憶體121、記憶體122、記憶體123和記憶體124,依次給記憶體121、記憶體122、記憶體123和記憶體124分配盤符sda、sdb、sdc和sdd。然後,電子設備100在啟動根檔案系統時啟動第二存儲控制器140的驅動程式,透過第二存儲控制器140掃描記憶體125、記憶體126、記憶體127和記憶體128,依次給記憶體125、記憶體126、記憶體127和記憶體128分配盤符sde、sdf、sdg和sdh。可見,電子設備100透過第一存儲控制器130管理的記憶體121、記憶體122、記憶體123和記憶體124的盤符是連續的,透過第二存儲控制器140管理的記憶體125、記憶體126、記憶體127和記憶體128的盤符也是連續的。
本申請還提供一種電腦可讀存儲介質,用於存儲電腦程式或代碼,當所述電腦程式或代碼被處理器執行時,實現本申請實施例的存儲控制器的驅動管理方法。
電腦可讀存儲介質包括在用於存儲資訊(諸如電腦可讀指令、資料結構、程式模組或其它資料)的任何方法或技術中實施的易失性和非易失性、 可移除和不可移除介質。電腦可讀存儲介質包括,但不限於隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、帶電可擦可程式設計唯讀記憶體(Electrically Erasable Programmable Read-Only Memory,EEPROM)、快閃記憶體或其它記憶體、唯讀光碟(Compact Disc Read-Only Memory,CD-ROM)、數位通用光碟(Digital Versatile Disc,DVD)或其它光碟存儲、磁盒、磁帶、磁片存儲或其它磁存儲裝置、或者可以用於存儲期望的資訊並且可以被電腦訪問的任何其它的介質。
上面結合附圖對本申請實施例作了詳細說明,但是本申請不限於上述實施例,在所屬技術領域具通常技藝者所具備的知識範圍內,還可以在不脫離本申請宗旨的前提下做出各種變化。
S401-S417:步驟

Claims (9)

  1. 一種存儲控制器的驅動管理方法,應用於電子設備,所述電子設備包括第一存儲控制器和第二存儲控制器,其改良在於,所述方法包括:擷取所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔;根據所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔擷取根檔案系統的驅動映射檔;確定是否優先啟動所述第二存儲控制器的驅動程式;若確定優先啟動所述第二存儲控制器的驅動程式,則更新所述第二存儲控制器的驅動設定檔;根據所述第二存儲控制器的驅動設定檔更新虛擬檔案系統的驅動鏡像檔;重新開機所述電子設備的作業系統,所述作業系統的啟動包括啟動所述虛擬檔案系統和啟動所述根檔案系統;在啟動所述虛擬檔案系統時根據所述驅動鏡像檔啟動所述第二存儲控制器的驅動程式;在啟動所述根檔案系統時根據所述驅動映射檔啟動所述第一存儲控制器的驅動程式。
  2. 如請求項1所述之存儲控制器的驅動管理方法,其中,在確定是否優先啟動所述第二存儲控制器的驅動設定檔之後,所述方法還包括:若確定優先啟動所述第一存儲控制器的驅動程式,則更新所述第一存儲控制器的驅動設定檔; 根據所述第一存儲控制器的驅動設定檔更新虛擬檔案系統的驅動鏡像檔;重新開機所述電子設備的所述作業系統;在啟動所述虛擬檔案系統時根據所述驅動鏡像檔啟動所述第一存儲控制器的驅動程式;在啟動所述根檔案系統時根據所述驅動映射檔啟動所述第二存儲控制器的驅動程式。
  3. 如請求項1所述之存儲控制器的驅動管理方法,其中,在擷取所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔之前,所述方法還包括:根據所述第一存儲控制器的驅動標識創建所述第一存儲控制器的驅動設定檔的路徑;在所述第一存儲控制器的驅動設定檔的路徑下複製所述第一存儲控制器的驅動原始檔案;根據所述第二存儲控制器的驅動標識創建所述第二存儲控制器的驅動設定檔的路徑;在所述第二存儲控制器的驅動設定檔的路徑下複製所述第二存儲控制器的驅動原始檔案。
  4. 如請求項1所述之存儲控制器的驅動管理方法,其中,所述擷取所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔,包括:以所述第一存儲控制器的驅動標識為檔案名稱創建所述第一存儲控制器的驅動設定檔;以所述第二存儲控制器的驅動標識為檔案名稱創建所述第二存儲控制 器的驅動設定檔。
  5. 如請求項1所述之存儲控制器的驅動管理方法,其中,在根據所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔擷取根檔案系統的驅動映射檔之前,所述方法還包括:在所述驅動映射檔的路徑下保存所述第一存儲控制器的驅動設定檔和所述第二存儲控制器的驅動設定檔。
  6. 如請求項1所述之存儲控制器的驅動管理方法,其中,在根據所述第二存儲控制器的驅動設定檔更新虛擬檔案系統的驅動鏡像檔之前,所述方法還包括:在所述驅動鏡像檔的路徑下創建所述第二存儲控制器的驅動設定檔。
  7. 一種電子設備,包括處理器、內部記憶體以及第一存儲控制器和第二存儲控制器,其改良在於,所述處理器運行存儲於一個所述記憶體中的電腦程式或代碼,實現如請求項1至6中任一項所述的存儲控制器的驅動管理方法。
  8. 一種電子設備,包括處理器、複數記憶體以及第一存儲控制器和第二存儲控制器,其改良在於,所述處理器運行存儲於一個所述記憶體中的電腦程式或代碼,實現如請求項1至6中任一項所述的存儲控制器的驅動管理方法。
  9. 一種電腦可讀存儲介質,用於存儲電腦程式或代碼,其改良在於,當所述電腦程式或代碼被處理器執行時,實現如請求項1至6中任一項所述的存儲控制器的驅動管理方法。
TW111150757A 2022-11-12 2022-12-29 存儲控制器的驅動管理方法及相關設備 TWI841160B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2022114163846 2022-11-12

Publications (2)

Publication Number Publication Date
TWI841160B true TWI841160B (zh) 2024-05-01
TW202420081A TW202420081A (zh) 2024-05-16

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415939A (zh) 2021-12-16 2022-04-29 中科可控信息产业有限公司 硬盘控制方法、装置、计算机设备、存储介质和程序产品

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415939A (zh) 2021-12-16 2022-04-29 中科可控信息产业有限公司 硬盘控制方法、装置、计算机设备、存储介质和程序产品

Similar Documents

Publication Publication Date Title
US11360696B2 (en) System startup method and apparatus, electronic device, and storage medium
US7293166B2 (en) Method of indicating a format of accessing an operating system contained on a USB memory device
CN101650660B (zh) 从中央存储装置引导计算机系统
JP5636034B2 (ja) データ利用についてのマウント時間の調停
US20220197818A1 (en) Method and apparatus for performing operations to namespaces of a flash memory device
EP3769224B1 (en) Configurable recovery states
JP2004152301A (ja) 不揮発性メモリシステムにおいて用いられる電力管理ブロック
US6718373B1 (en) Method and system for installing files in a computing system
KR20040019260A (ko) 비-휘발성 어플리케이션 및 화일 저장 디바이스로부터부팅시키기 위한 시스템 및 방법
CN104679540A (zh) 计算机系统与计算机系统启动方法
CN113835644B (zh) 整机迁移方法、装置、设备及存储介质
CN112306581A (zh) 一种基板管理控制器管理bios配置的方法及介质
US20050223209A1 (en) Apparatus for fast booting computer and method for the same
TWI841160B (zh) 存儲控制器的驅動管理方法及相關設備
EP3769225B1 (en) Free space pass-through
US20210181977A1 (en) Optimizing atomic writes to a storage device
KR20170037017A (ko) 메모리 업그레이드 시스템 및 방법
TWI518594B (zh) 計算機系統與計算機系統啓動方法
WO2023123896A1 (zh) 一种磁盘加载控制方法、装置、设备及可读存储介质
TW202420081A (zh) 存儲控制器的驅動管理方法及相關設備
US20240160383A1 (en) Method for managing storage controllers, electronic device, and computer readable storage medium thereof
TW202420058A (zh) 存儲控制器的驅動管理方法及相關設備
CN109656881B (zh) 一种基于fat16技术实现文件动态管理的方法和系统
CN110515665B (zh) 一种处理器系统的启动方法、系统及装置
US20240160430A1 (en) Method for managing storage controllers, electronic device, and computer readable storage medium thereof