在非易失性存儲系統中建立連接的方法和裝置的制造方法
【專利摘要】本發明實施例涉及在非易失性存儲系統中建立連接的方法,該非易失性存儲系統包括主機、服務器和至少一個非易失性存儲器NVM子系統,該方法包括:與該主機建立連接;接收該主機發送請求消息,該請求消息包括該主機需要連接的NVM子系統的目標參數;通過查找該至少一個NVM子系統的參數信息,確定滿足該目標參數的目標NVM子系統以及該目標NVM子系統的路由信息;向該主機發送包括該目標NVM子系統的路由信息的響應消息,以便于該主機與該目標NVM子系統建立連接。本申請的在非易失性存儲系統中建立連接的方法和裝置,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
【專利說明】
在非易失性存儲系統中建立連接的方法和裝置
技術領域
[0001]本發明涉及存儲領域,尤其涉及在非易失性存儲系統中建立連接的方法和裝置。
【背景技術】
[0002]非易失性存儲器標準(Non-Volatile Memory Express,NVMe)是一種高速的接口總線規范,當前已發布的NVMe標準主要是基于外圍設備互連標準(Peripheral ComponentInterconnect-Express,PCIe)架構進行設計和開發的,統一了基于PCIe總線進行連接的設備和主機之間的隊列(queue)傳輸機制。由于PCIe總線的高性能,基于PCIe架構的NVMe已經成為了業界主流固態硬盤(Solid State Drives,SSD)設備的標準接口。
[0003]但對于數據中心領域,由于該領域沒有現成大量PCIe網絡以及PCIe協議本身的擴展性等缺陷,將NVMe標準擴展到數據中心領域,就需要一種新的標準,將NVMe協議運行在廣域因特網上的遠程直接數據存取(Remote Direct Memory Access,RDMA)協議(internetWide-Area RDMA Protocol,iWARP)、基于融合以太網的RDMA(RDMA over ConvergedEthernet,RoCE)、高速互連(Inf iniBand,IB)或光纖通道(Fibre-Channel,FC)等網絡技術中,提供更靈活的、更廣泛的應用,這種新的標準可以稱為基于交換平面的NVMe(NVMe overFabric)。
[0004]在現有NVMe over Fabric標準中,圖1不出了現有NVMe over Fabric的系統架構,在該系統中,主機可以通過向服務器發送發現(discovery)命令,指示服務器向主機發送NVM子系統的路由信息,服務器接收該發現命令后,可以由服務器中的控制器讀取路由信息,并將路由信息返回至主機,主機根據接收到的路由信息,選擇NVMe over Fabric系統架構中的一個或多個非易失性存儲器(Non-VoIatiIe Memory,NVM)子系統(NVM Subsystem)進行連接。
[0005]現有技術中,由于現階段服務器向主機發送的路由信息僅包括主機的標識,如主機的身份標識(IDentity,ID),多個NVM Subsystem的標識信息,如NVM Subsystem的NVMe限定名稱(NVMe Qualified Name,NQN),以及每個NVM Subsystem的端口信息主機根據路由信息隨機選擇NVM Subsystem進行連接,會導致該主機連接到不匹配的NVM Subsystem,例如連接的NVM Subsystem故障,或連接的NVM Subsystem不符合主機對存儲資源要求,從而導致連接失敗,或主機需要反復多次進行連接,連接效率低。
【發明內容】
[0006]本申請提供了一種在非易失性存儲系統中建立連接的方法和裝置,能夠提高系統的可靠性。
[0007]第一方面,提供了一種在非易失性存儲系統中建立連接的方法,該非易失性存儲系統包括主機、服務器和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機提供數據存儲,該服務器中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,該方法由該服務器執行,該方法包括:與該主機建立連接;接收該主機發送請求消息,該請求消息包括該主機需要連接的NVM子系統的目標參數;通過查找該至少一個NVM子系統的參數信息,確定滿足該目標參數的目標NVM子系統以及該目標NVM子系統的路由信息;向該主機發送響應消息,該響應消息包括該目標NVM子系統的路由信息,以便于該主機根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0008]本申請的在非易失性存儲系統中建立連接的方法,服務器接收主機發送的需要連接的NVM子系統的目標參數,通過查找至少一個NVM子系統的參數信息確定滿足目標參數的NVM子系統作為目標NVM子系統,以便于主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0009]可選地,在該目標NVM子系統中可以包括多個NVM控制器,該方法還包括:根據該多個NVM控制器的信息,在該多個NVM控制器中確定目標NVM控制器,該目標NVM控制器用于與該主機相連。
[0010]應理解,每個NVM子系統可以包括一個或多個NVM控制器,若目標NVM子系統只包括一個NVM控制器,則可以在確定該目標NVM子系統后,該主機與該目標NVM子系統建立連接,也就是與該目標NVM子系統中的唯——個NVM控制器建立連接;若該目標NVM子系統中包括多個NVM控制器,則還可以根據該多個NVM控制器的信息,在該多個NVM控制器中繼續確定一個與主機相匹配的目標NVM控制器,則該主機與目標NVM子系統建立連接,也就是與該目標NVM子系統中的目標NVM控制器建立連接。
[0011]應理解,該目標NVM子系統可以包括多個端口,因此,服務器向主機發送的路由信息,可以用于該主機根據該目標NVM子系統的路由信息選擇一個路徑通過一個端口與該目標NVM子系統建立連接。
[0012]可選地,該目標NVM子系統的路由信息可以包括:該主機的標識、該目標NVM子系統的標識和該主機到該目標NVM子系統的路徑信息。
[0013]結合第一方面,在第一方面的一種實現方式中,在該確定滿足該預設規則的目標NVM子系統之前,該方法還包括:獲取該每個NVM子系統的當前參數信息;根據該每個NVM子系統的該當前參數信息,更新存儲的該每個NVM子系統的參數信息。
[0014]應理解,每個NVM子系統的參數信息可以包括每個NVM子系統的容量或性能相關信息,當主機與NVM子系統建立連接后,會使用該NVM子系統中的存儲資源,因此,NVM子系統的參數信息會隨著不同主機與NVM子系統建立連接而隨時變化,服務器可以隨時更新保存的每個NVM子系統的參數信息,從而為主機提供更加準確的參數信息。
[0015]例如,可以在服務器中設置更新周期,服務器周期性向NVM子系統發送請求更新的信息,并獲取NVM子系統反饋的當前參數信息,服務器根據該當前參數信息,更新保存的對應的NVM子系統的參數信息;或者,也可以在NVM子系統中設置更新周期,由NVM子系統周期性發送當前參數信息,服務器根據獲取到的NVM子系統的當前參數信息,更新保存的對應的NVM子系統的參數信息。
[0016]再例如,可以通過主機發送的請求消息觸發服務器進行參數信息的更新。服務器接收該請求消息,該請求消息觸發服務器更新NVM子系統的參數信息,服務器在更新NVM子系統的參數信息后,根據該更新后的NVM子系統的參數信息,為主機確定滿足目標參數的目標NVM子系統。其中,服務器更新參數信息,可以通過向每個NVM主機發送更新信息,再根據每個NVM子系統反饋的當前參數信息,對服務器中的參數信息進行更新。
[0017]結合第一方面及其上述實現方式,在第一方面的另一種實現方式中,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name space的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[0018]可選地,在該每個NVM子系統的參數信息中可以包括該NVM子系統的總容量,主機提供的目標參數可以包括NVM子系統的總容量,則可以根據該目標參數中的總容量確定滿足主機對容量需求的NVM子系統。這樣,主機可以通過啟動數據在不同NVM子系統之間的迀移調度,從而使得當前的目標NVM子系統的存儲資源充足。
[0019 ]可選地,在該每個NVM子系統的參數信息中可以包括該NVM子系統的可用容量。NVM子系統可以連接一個或多個主機,因為該NVM子系統中部分容量可能已經被其他主機占用,NVM子系統的可以容量即該NVM子系統中未被任何主機占用的資源的容量,即該NVM子系統的剩余容量。
[0020]可選地,該至少一個Namespace的信息至少包括:該至少一個Namespace的數量、該至少一個Name space中每個Name space的容量、該每個Name space的性能、該至少一個Namespace中可用Namespace的數量、該可用Namespace的容量和該可用Namespace的性能中的一個。
[0021 ] 具體地,由于每個NVM子系統可以包括至少一個Namespace,該至少一個Namespace可以具有相同或不相同的容量,并且可以存在部分Namespace已經被其他主機占用,因此,通過Name space的數量和每個Name space的容量,或者未被占用的可用Name space的數據和可用Namespace的容量,可以從容量的角度選擇合適的Namespace,進而選擇對應的NVM子系統作為滿足主機的目標參數的NVM子系統為目標NVM子系統。
[0022]另外,由于該至少一個Namespace可能具有不同的屬性,例如不同的Namespace可能由不同的存儲介質組成,從而存在不同的性能差異,因此,服務器還可以根據Namespace的性能選擇合適的Namespace,進而選擇對應的NVM子系統作為目標NVM子系統進行連接。
[0023]可選地,該至少一個NVM控制器的信息至少包括:該至少一個NVM控制器的數量、該至少一個NVM控制器中每個NVM控制器的身份標識ID、該每個NVM控制器的性能、該至少一個NVM控制器中可用NVM控制器的數量、該可用NVM控制器的ID和該可用NVM控制器的性能中的一個。
[0024]具體地,由于每個NVM子系統可以包括至少一個NVM控制器,并且每個NVM控制器只能與一個主機相連,因此,對于任意NVM子系統中包括的至少一個NVM控制器,可以根據該至少一個NVM控制器的數量和標識,或者根據可用NVM控制器的數量和標識,選擇一個合適的NVM控制器用于與主機進行連接,即該NVM控制器屬于與目標NVM子系統,這樣還可以避免主機在與目標NVM子系統進行連接后,再協商選擇NVM控制器的過程,而且可以避免主機與不合適或不可用的NVM控制器建立連接,提高了主機與NVM控制器連接的可靠性。
[0025]另外,還可以根據NVM控制器的性能,例如該NVM控制器占用物理資源或虛擬資源,占用資源的大小等,根據目標參數中主機的對NVM控制器性能的需求,選擇合適的NVM控制器進行連接,進一步提高主機與NVM控制器連接的可靠性。
[0026]可選地,在NVM子系統的參數信息中還可以包括NVM控制器與Namespace之間的映射關系。由于每個NVM控制器可以對應管理一個或多個Name space,因此,還可以根據NVM控制器與Namespace之間的映射關系,根據目標參數中主機對Namespace的需求,確定合適的NVM控制器作為目標NVM控制器進行連接。
[0027]第二方面,提供了一種在非易失性存儲系統中建立連接的方法,該非易失性存儲系統包括主機、服務器和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機提供數據存儲,該服務器中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,該方法由該主機執行,該方法包括:與該服務器建立連接;向該服務器發送請求消息;接收該服務器根據該請求信息發送的響應消息,該響應消息包括該至少一個NVM子系統中部分或全部NVM子系統的參數信息和路由信息;根據該部分或全部NVM子系統的參數信息,確定滿足目標參數的目標NVM子系統以及該目標NVM子系統的路由信息,該目標參數為該主機需要連接的NVM子系統的參數;根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0028]本申請的在非易失性存儲系統中建立連接的方法,主機與服務器建立連接,獲取服務器中保存的部分或全部NVM子系統的參數信息,根據部分或全部NVM子系統的參數信息,選擇滿足主機需求的NVM子系統作為目標NVM子系統,主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0029]可選地,在該目標NVM子系統中可以包括多個NVM控制器,該方法還包括:根據該多個NVM控制器的信息,在該多個NVM控制器中確定目標NVM控制器,該目標NVM控制器用于與該主機相連。
[0030]應理解,每個NVM子系統可以包括一個或多個NVM控制器,若目標NVM子系統只包括一個NVM控制器,則可以在確定該目標NVM子系統后,該主機與該目標NVM子系統建立連接,也就是與該目標NVM子系統中的唯——個NVM控制器建立連接;若該目標NVM子系統中包括多個NVM控制器,則還可以根據該多個NVM控制器的信息,在該多個NVM控制器中繼續確定一個與主機相匹配的目標NVM控制器,則該主機與目標NVM子系統建立連接,也就是與該目標NVM子系統中的目標NVM控制器建立連接。
[0031 ]應理解,該目標NVM子系統可以包括多個端口,因此,該主機確定該目標NVM子系統的路由信息可以包括通過多個路徑中不同端口與該NVM子系統建立連接,主機可以根據路由信息選擇一個路徑通過一個端口與該目標NVM子系統建立連接。
[0032]可選地,該目標NVM子系統的路由信息可以包括:該主機的標識、該目標NVM子系統的標識和該主機到該目標NVM子系統的路徑信息。
[0033]結合第二方面,在第二方面的一種實現方式中,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name spac e的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[0034I應理解,該每個NVM子系統的參數信息與第一方面中的每個NVM子系統的參數信息相同,主機根據每個NVM子系統的參數信息確定目標NVM子系統的過程,與服務器根據每個NVM子系統的參數信息確定目標NVM子系統的過程也類似,在此不再贅述。
[0035]結合第二方面及其上述實現方式,在第二方面的另一種實現方式中,該服務器用于根據該每個NVM子系統的當前參數信息,更新該每個NVM子系統的參數信息。
[0036]應理解,每個NVM子系統的參數信息可以包括每個NVM子系統的容量或性能相關信息,當主機與NVM子系統建立連接后,會使用該NVM子系統中的存儲資源,因此,NVM子系統的參數信息會隨著不同主機與NVM子系統建立連接而隨時變化,服務器可以隨時更新保存的每個NVM子系統的參數信息,從而為主機提供更加準確的參數信息。
[0037]例如,可以在服務器中設置更新周期,服務器周期性向NVM子系統發送請求更新的信息,并獲取NVM子系統反饋的當前參數信息,服務器根據該當前參數信息,更新保存的對應的NVM子系統的參數信息;或者,也可以在NVM子系統中設置更新周期,由NVM子系統周期性發送當前參數信息,服務器根據獲取到的NVM子系統的當前參數信息,更新保存的對應的NVM子系統的參數信息。
[0038]再例如,可以通過主機發送的請求消息觸發服務器進行NVM子系統的參數信息的更新,服務器根據接收到的主機發送的請求消息,先觸發服務器更新NVM子系統的參數信息,服務器獲取更新后的NVM子系統的參數信息,并向主機發送更新后的NVM子系統的參數
?目息O
[0039]可選地,服務器更新路由信息,可以通過向每個NVM主機發送更新信息,再根據每個NVM主機反饋的響應信息,對服務器中的路由信息進行更新。
[0040]第三方面,提供了一種非易失性存儲系統中的服務器,用于執行上述第一方面或第一方面的任意可能的實現方式中的方法。具體地,該裝置包括用于執行上述第一方面或第一方面的任意可能的實現方式中的方法的單元。
[0041]第四方面,提供了一種非易失性存儲系統中的主機,用于執行上述第二方面或第二方面的任意可能的實現方式中的方法。具體地,該裝置包括用于執行上述第二方面或第二方面的任意可能的實現方式中的方法的單元。
[0042]第五方面,提供了一種非易失性存儲系統中的服務器,包括:存儲單元和處理器,該存儲單元用于存儲指令,該處理器用于執行該存儲器存儲的指令,并且當該處理器執行該存儲器存儲的指令時,該執行使得該處理器執行第一方面或第一方面的任意可能的實現方式中的方法。
[0043]第六方面,提供了一種非易失性存儲系統中的主機,包括:存儲單元和處理器,該存儲單元用于存儲指令,該處理器用于執行該存儲器存儲的指令,并且當該處理器執行該存儲器存儲的指令時,該執行使得該處理器執行第二方面或第二方面的任意可能的實現方式中的方法。
[0044]第七方面,提供了一種計算機可讀介質,用于存儲計算機程序,該計算機程序包括用于執行第一方面或第一方面的任意可能的實現方式中的方法的指令。
[0045]第八方面,提供了一種計算機可讀介質,用于存儲計算機程序,該計算機程序包括用于執行第二方面或第二方面的任意可能的實現方式中的方法的指令。
【附圖說明】
[0046]為了更清楚地說明本發明實施例的技術方案,下面將對本發明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0047]圖1是根據本發明實施例的NVMeover Fabric的系統架構的示意圖。
[0048]圖2是根據本發明實施例的在非易失性存儲系統中建立連接的方法的示意性流程圖。
[0049]圖3是根據本發明另一實施例的在非易失性存儲系統中建立連接的方法的示意性流程圖。
[0050]圖4是根據本發明實施例的非易失性存儲系統中的服務器的示意性框圖。
[0051]圖5是根據本發明實施例的非易失性存儲系統中的主機的示意性框圖。
[0052]圖6是根據本發明另一實施例的非易失性存儲系統中的服務器的示意性框圖。
[0053]圖7是根據本發明另一實施例的非易失性存儲系統中的主機的示意性框圖。
【具體實施方式】
[0054]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都應屬于本發明保護的范圍。
[0055]圖1示出了NVMeover Fabric的系統架構,該系統架構主要包括一個或多個主機(Host)、服務器以及至少一個NVM Subsystem,該至少一個NVM Subsystem用于為Host提供數據存儲。其中,該Host可以為物理服務器,或者還可以為虛擬機;服務器也可以為物理機,或者也可以為虛擬機,在現有技術中,該服務器中保存了至少一個NVM Subsystem路由信息,該服務器中包括一個或多個控制器,該控制器僅用于讀取服務器中保存的路由信息,該路由信息包括多個日志頁記錄(Log Page Entry),每個Log Page Entry可以包括:Host到NVM Subsystem的路由信息。NVM Subsystem中包括至少一個NVM控制器(NVM controller)以及至少一個NAND閃存,該NAND閃存是一種電壓元件,用于存儲數據,例如,如圖1中每個NVM Subsystem包括5個NAND閃存,或者,每個NVM Subsystem還可以包括不同個數的NAND閃存。該NAND閃存可以通過一種邏輯塊的集合體進行表示,即命名空間(Namespace),NAND閃存與Name space之間的映射關系不定,即一個NAND閃存可以對應多個Name space,或者一個Namespace對應多個NAND閃存,Namespace的容量可以根據實際應用進行設置。
[0056]在現有技術中,當任意一個Host需要與NVM Subsystem連接時,可以先與服務器建立連接,然后向服務器發送發現命令,服務器根據發現命令,通過服務器中的控制器讀取保存的Log Page,該Log Page可以包括多條Log Page Entry,每條Log Page Entry對應一個NVM Subsystem的連接路徑,例如,一個NVM Subsystem有多個路徑可以訪問,則每個路徑都對應一個Log Page Entry0
[0057]對于每個LogPage Entry,現有技術僅包括Host ID、Host NQN、NVM SubsystemNQN以及連接到NVM Subsystem的路徑信息,其中,該連接到NVM Subsystem的路徑信息僅包括地址類型(Address Family)、傳輸地址(Transport Address)、端口標識(Port ID)以及控制器標識(Controller ID),其中Address Family表示地址類型,例如可以為IPv4或IPv6 ; Transport Address表示具體的地址信息,例如IP地址;Port ID用于表示NVMSubsystem的不同端口,由于每個NVM Subsystem可以包括一個或多個端口,因此,Host可以根據Log Page Entry中的提供的信息與NVM Subsystem建立連接;Controller ID表示NVMSubsystem中的控制器(NVM Controller),每個NVM Subsystem可以包括至少一個NVMController。在ControIIer選擇上,Host可以指定NVM Subsystem中一個固定的ControlIer與NVM Subsystem進行連接;亦可以指定NVM Subsystem中任意一個ControlIer與NVMSubsystem進行連接。
[0058]由于,現有技術中的路由信息只包括上述標識類信息,因此Host只能連接到一個NVM Subsystem,但是該NVM Subsystem可能并不能滿足該Host的存儲或者性能等要求。例如,如果一個Host需要連接一個存儲資源為100GB的NVM Subsystem,但是當前多個NVMSubsystem中僅僅有一個NVM Subsystem可以提供這些存儲資源,現有技術中Host將一個一個去嘗試連接NVM Subsystem,直到連接到一個可以滿足存儲容量需求的NVM Subsystem,操作流程復雜,連接效率低下。再例如:在單路徑的情況下,一個NVM Subsystem僅對應一個Log Page Entry,由于Log Page Entry中僅僅返回了一個Controller ID供Host連接,該Controller在后續的連接過程中出現故障,這時候會引起Host與對應的NVM Subsystem也不能連接,導致存儲資源浪費。因此,本發明實施例提出了一種該系統架構中的建立連接的方法,可以提高Host與對應的NVM Subsystem建立連接的效率和可靠性。
[0059]如圖2所示,圖2示出了根據本發明實施例的在非易失性存儲系統中建立連接的方法100的示意性流程圖,該方法100可以應用于如圖1所示的非易失性存儲系統中,即該非易失性存儲系統包括Host、服務器和至少一個NVM Subsystem。如圖2所示,該方法100包括:
[0060]S110,Host與服務器建立連接。
[0061 ] 應理解,在Host啟動時,或者任何需要與至少一個NVM Subsystem建立連接時,或者Host需要NVM Subsystem的路由信息時,Host先與服務器建立連接。例如,該建立連接的過程,Host可以通過NVMe over Fabric標準中的連接(Connect)命令來實現,但本發明實施例并不限于此。
[0062]S120,Host向服務器發送請求消息,該請求消息用于請求該服務器發送NVMSubsystem的參數信息和路由信息,以便于該Host可以根據該NVM Subsystem的參數信息確定滿足預設條件的目標NVM Subsystem。
[0063]具體地,當Host需要連接NVM Subsystem時,可以向服務器發送請求消息,通過該請求消息請求服務器發送NVM Subsystem的參數信息和路由信息,由于在該NVMe overFabric的系統架構中可以包括至少一個NVM Subsystem,因此該主機可以請求該服務器發送該至少一個NVM Subsystem中的部分或全部NVM Subsystem的參數信息和路由信息。
[0064]SI30,Host接收服務器根據請求消息發送的響應消息,該響應消息包括至少一個NVM Subsystem中部分或全部NVM Subsystem的參數信息和路由信息。
[0065]應理解,該NVM Subsystem的參數信息可以保存在服務器中,即如圖1所示的服務器中,在現有技術中,該服務器保存每個NVM Subsystem的路由信息,而在本發送實施例中,該服務器中還保存了每個NVM Subsystem的參數信息,服務器根據請求消息,讀取全部或者部分NVM Subsystem的參數信息和路由信息,通過Log Page Entry指示每個NVM Subsystem的參數信息和路由信息,服務器向Host發送響應消息,該響應消息包括指示NVM Subsystem的參數信息和路由信息的一個或者多個Log Page Entry0
[00??] 應理解,與現有技術相同,該每個NVM Subsystem的路由信息可以包括Host的標識、每個NVM Subsystem的標識以及指示Host到每個NVM Subsystem的路徑信息。
[0067]S140,Host分析接收到的NVM Subsystem的參數信息,根據該NVM Subsystem的參數信息,確定滿足目標參數的目標NVM Subsystem,該目標NVM Subsystem可以滿足Host存儲容量和性能等需求。可選地,該Host還可以確定該目標NVM Subsystem的路由信息,以便于該Host根據路由信息與該目標NVM Subsystem建立連接D
[0068]應理解,該目標參數即該Host設置的預設條件,該目標參數可以用于表示該Host需要連接的NVM Subsystem要滿足的存儲容量或性能等方面的需要。例如,該Host需要與總存儲容量大于100GB的NVM Subsystem建立連接,則該目標參數就可以為NVM Subsystem的總存儲容量大于10GBtj
[0069]應理解,Host確定目標NVM Subsystem,可以與該目標NVM Subsystem建立連接,也就是與該目標NVM Subsystem中的一個NVM controller建立連接,通過該NVM controller使用存儲資源因此,Host確定目標NVM Subsystem,包括在該目標NVM Subsystem中確定目標NVM controller,Host與該目標NVM controller建立連接。
[0070]可選地,對于服務器中保存的每個NVMSubsystem的參數信息,或者Host接收到的一個或多個NVM Subsystem中每個NVM Subsystem的參數信息,可以包括以下信息中的至少一種:該每個NVM Subsystem的總容量、該每個NVM Subsystem的可用容量、該每個NVMSubsystem中至少一個Nam espace的信息、該每個N VM Subsystem中至少一個N VMcontrolIer的信息以及該至少一個Namespace與該至少一個NVM cont:roller之間的映射關系中的一種。
[0071 ] 其中,對于每個NVM Subsystem的總容量,Host獲取該NVM Subsystem的總容量,選擇總容量滿足Host要求的目標參數的NVM Subsystem作為匹配的目標NVM Subsystem,這樣,在存儲資源不足時,Host可以通過啟動數據在不同NVM Subsystem之間的迀移調度,從而使得當前的目標NVM Subsystem的存儲資源充足。
[0072]對于每個NVM Subsystem的可用容量,該可用容量也可以稱為該NVM Subsystem的剩余容量,由于每個NVM Subsystem可以包括多個NVM controller,每個NVM controller可以與一個Host相連,因此,對于任意一個NVM Subsystem,其部分容量可能已經被其他相連的Host占用,因此,服務器發送的NVM Subsystem參數信息可以包括NVM Subsystem的剩余容量,該剩余容量即為該NVM Subsystem的可用容量,Host可以根據NVM Subsystem的可用容量確定該NVM Subsystem是否滿足Host的目標參數的要求,確定滿足Host容量需求的NVMSubsystem為目標NVM Subsystem。
[0073]例如,Host希望連接的NVM Subsystem具有10GB的存儲資源,即目標參數為存儲資源大于或等于10GB,貝IjHost可以先根據NVM Subsystem的可用容量選擇滿足要求的NVMSubsystem進行連接,若當前存在可用容量大于或等于10GB的NVM Subsystem,則Host確定該NVM Subsystem為目標NVM Subsystem,并與該目標NVM Subsystem進行連接;若當前不存在可用容量大于或等于10GB的NVM Subsystem,則Host可以根據NVM Subsystem的總容量,選擇總容量大于或等于1GB的NVM Subsystem,確定該N VM Subsystem為目標NVMSubsystem,并與該目標NVM Subsystem進行連接,并在連接后,可以通過NVM Subsystem之間的數據迀移,使得該目標NVM Subsystem的容量滿足該Host的要求D
[0074]可選地,對于每個NVM Subsystem的參數信息中的至少一個Namespace的信息,該至少一個Namespace的信息至少包括:至少一個Namespace的數量、每個Namespace的容量、每個Namespace的性能、至少一個Name space中可用Name space的數據、每個可用Name space的容量以及每個可用Namespace的性能中的一個。
[0075]具體地,由于每個NVM Sub sy stem可以包括至少一個Name space,該至少一個Namespace可以具有相同或不相同的容量,并且可以存在部分Namespace已經被其他Host占用,因此,通過Namespace的數量和每個Namespace的容量,或者未被占用的可用Namespace的數據和可用Namespace的容量,Host可以從容量的角度選擇合適的Namespace,進而選擇對應的NVM Subsystem作為相匹配的目標NVM Subsystem進行連接。
[0076]另外,由于該至少一個Namespace可能具有不同的屬性,例如不同的Name space可能由不同的存儲介質組成,從而存在不同的性能差異,因此,目標參數還可以包括Host對Namespace性能的要求,Host還可以根據Namespace的性能選擇滿足目標參數的Namespace,進而選擇對應的NVM Subsystem作為目標NVM Subsystem進行連接。
[0077]可選地,對于每個NVM Subsystem的參數信息中的至少一個NVM controlIer的信息,該至少一個NVM controller的信息至少包括:至少一個NVM controller的數量、每個NVM controller的標識、每個NVM controller的性能、至少一個NVM controller中可用NVMcontroller的數量、每個可用NVM controller的標識、每個可用NVM controller的性能中的一個。
[0078]具體地,由于每個NVM Subsystem可以包括至少一個NVM controller,并且每個NVM controller只能與一個Host相連,因此,對于任意NVM Subsystem中包括的至少一個NVM controller,可以根據該至少一個NVM controlIer的數量和標識,或者根據可用NVMcontroller的數量和標識,Host可以選擇一個滿足目標參數的NVM controller進行連接,即該NVM controller屬于的目標NVM Subsystem,這樣還可以避免Host在選擇目標NVMSubsystem進行連接后,再協商選擇NVM controlIer的過程,而且可以避免Host與不合適或不可用的NVM controlIer建立連接,提高了Host與NVM controller連接的可靠性。
[0079]另外,Host還可以根據NVM controller的性能,例如該NVM controller占用物理資源或虛擬資源,占用資源的大小等,根據目標參數中Host對NVM controlIer的需求,選擇合適的NVM controller進行連接,進一步提高Host與NVM controller連接的可靠性。
[0080]可選地,在NVM Subsystem的參數信息中還可以包括NVM controller與Namespace之間的映射關系由于每個NVM control Ier可以對應管理一個或多個Namespace,因此,Host可以根據NVM controller與Namespace之間的映射關系,根據目標參數中Host對Namespace的需求,確定合適的NVM controlIer作為目標NVM controller進行連接。
[00S^ ] 在本發明實施例中,Host確定目標NVM Subsystem,對應的可以確定該目標NVMSubsystem的路由信息,即Log Page Entry。由于每個NVM Subsystem的每個路徑都可以對應一個Log Page Entry,服務器可以在每個Log Page Entry中都攜帶上述NVM Subsystem的參數信息,但是由于每個NVM Subsystem可能存在多條路徑,每個路徑對應的Log PageEntry均攜帶相同的NVM Subsystem的參數信息會導致信息重復傳遞,因此,對于相同NVMSubsystem的不同路徑對應的多個Log Page Entry,可以只在其中一個Log Page Entry中攜帶該NVM Subsystem的參數信息,從而避免信息的重復傳遞。
[0082]應理解,由于在服務器發送的NVM Subsystem的參數信息中,涉及每個NVMSubsystem的容量或性能相關信息,這些信息會隨著不同Host與不同NVM Subsystem建立連接而隨時變化,因此,服務器可以隨時更新保存的NVM Subsystem的參數信息。
[0083]例如,可以在服務器中設置更新周期,服務器周期性向NVM子系統發送請求更新的信息,并獲取NVM子系統反饋的當前參數信息,服務器根據該當前參數信息,更新保存的對應的NVM子系統的參數信息;或者,也可以在NVM子系統中設置更新周期,由NVM子系統周期性發送當前參數信息,服務器根據獲取到的NVM子系統的當前參數信息,更新保存的對應的NVM子系統的參數信息。
[0084]再例如,可以通過Host發送的請求消息觸發服務器進行參數信息的更新,服務器根據接收到的Host發送的請求消息,先觸發服務器更新參數信息,服務器讀取并獲取更新后的參數信息,并向Host發送更新后的參數信息,本發明實施例并不限于此。
[0085]可選地,服務器更新參數信息,可以通過向每個NVM Subsystem發送更新信息,再根據每個NVM Subsystem反饋的響應信息,對服務器中的參數信息進行更新。
[0086]S150,根據目標NVM Subsystem的路由信息,Host與目標NVM Subsystem建立連接。
[0087]具體地,Host確定了滿足目標參數的目標NVM Subsystem后,可以與該NVMSubsystem建立連接。可選地,由于該目標NVM Subsystem可以包括多個NVM controller,因此,Host可以根據現有技術,與目標NVM Subsystem協商確定目標NVM controller進行連接。或者,該Host確定目標NVM Subsystem的同時,根據NVM Subsystem的參數信息中關于NVM controller的信息,根據Host對NVM controlIer的需求,例如:性能,或能訪問的Namespace等,確定目標NVM controller,直接與該目標NVM controller建立連接,本發明實施例并不限于此。
[0088]可選地,如圖1所示,對于NVMe over Fabr i c的系統架構,Hos t與目標NVMSubsystem建立連接,可以通過交換機實現。
[0089]可選地,在該目標NVM Subsystem的路由信息中,可以包括多個端口信息,即該目標NVM Subsystem對應多個Log Page Entry,則該Host可以選擇其中一條路徑通過一個端口與目標NVM Subsystem建立連接。
[0090]因此,本發明實施例的在非易失性存儲系統中建立連接的方法,Host接收服務器發送的NVM Subsystem的參數信息,根據該NVM Subsystem的參數信息中關于每個NVMSubsystem中包括的各個部分的相關性能的信息,選擇與Host相匹配的NVM Subsystem作為目標NVM Subsystem,Host與該目標NVM Subsystem建立連接,可以避免連接到錯誤或不合適的NVM Subsystem,避免盲目選擇和連接而導致的反復連接,使得Host可以與到滿足Host需求的NVM Subsystem建立連接,提高連接的可靠性。
[0091]上文中結合圖1和圖2,詳細描述了在一種實施例中,通過HoSt確定目標Subsystem,然后建立host與目標Subsystem的連接的方法,,下面將結合圖3,描述在另一種實施例中,通過服務器中確定目標Subsystem,然后建立host與目標Subsystem的連接的方法。
[0092]圖3示出了根據本發明另一實施例在非易失性存儲系統中建立連接的方法200的示意性流程圖,該方法200同樣應用于非易失性存儲系統中,該非易失性存儲系統可以如圖1所示,該非易失性存儲系統即為上述現有技術中的NVMe over Fabric的系統架構。
[0093]在方法100中,Host接收服務器發送的NVM Subsystem的參數信息,分析確定相匹配的目標NVM Subsystem進行連接,該服務器與現有技術中服務器類似,只具有讀取功能;可選地,在該方法200中,該服務器不但具有讀取功能,還可以根據Host的性能要求,對NVMSubsystem參數進行分析,確定與Host相匹配的目標NVM Subsystem,具體地,如圖3所示,該方法200包括:
[0094]S210,服務器與Host建立連接。
[0095]與方法I00中的S 11 O類似,在Ho s t啟動時,或者任何需要與至少一個NVMSubsystem建立連接時,或者Host需要NVM Subsystem的路由信息時,Host先與服務器建立連接ο例如,該建立連接的過程,Host可以通過NVMe over Fabric標準中的連接(Connect)命令來實現,但本發明實施例并不限于此
[0096]S220,服務器接收Host發送的請求消息,該請求消息用于請求服務器為該Host確定目標NVM Subsystem。
[0097]具體地,Host向該服務器發送請求消息,該請求消息用于請求服務器為該Host確定滿足目標參數的目標NVM Subsystem,該目標參數即該Host設置的預設條件,該目標參數可以用于表示該Host需要連接的NVM Subsystem要滿足的存儲容量或性能等方面的需要。因此,在該請求消息中可以包括該目標參數,即包括Host對該目標NVM Subsystem的要求,例如,該目標參數可以該Host對存儲資源大小的要求,該Host要求NVM Subsystem的存儲資源大于或等于10GB;再例如,該目標參數還可以為該Host對該NVM Subsystem中Namespace的性能或容量的要求。
[0098]S230,服務器根據該請求消息,查找至少一個NVM Subsystem的參數信息,分析該至少一個NVM Subsystem的參數信息,確定滿足目標參數的目標NVM Subsystem。相應地,該服務器還可以確定該目標NVM Subsystem的路由信息。
[0099]具體地,服務器接收Host發送的請求消息后,獲取至少一個NVM SubsystemNVMSubsystem的參數信息和路由信息,其中,該路由信息可以與現有技術中類似,包括Host的標識、每個NVM Subsy stem的標識以及Ho st到每個NVM Sub system的路徑信息。而NVMSubsystem的參數信息可以包括以下信息中的至少一種:該每個NVM Subsystem的總容量、該每個NVM Subsy stem的可用容量、該每個NVM Subsy stem中至少一個Name space的信息、該每個NVM Subsystem中至少一個NVM controller的信息以及該至少一個Namespace與該至少一個NVM contro 11 er之間的映射關系中的一種。
[0100]具體地,該NVM Subsystem參數信息中包括的各個信息與上述方法100中S130以及S140中服務器向Host發送的NVM Subsystem的參數信息一致,并且服務器可以根據目標參數中Host對NVM Subsystem的需要,同樣按照上述方法100中S140的Hos t分析該NVMSubsystem參數信息的過程,服務器對每個NVM Subsystem的參數信息進行分析,確定與Host相匹配的目標NVM Subsystem,在此不再贅述。
[0101]可選地,該服務器可以一個個讀取NVM Subsystem的參數信息,當確定了滿足目標參數的NVM Subsystem后,停止分析,將該NVM Subsystem確定為目標NVM Subsystem;或者,該服務器可以查找保存的每個NVM Subsystem的參數信息,確定滿足目標參數的目標NVMSubsystem,本發明實施例并不限于此。
[0102]可選地,類似方法100中Host分析NVM Subsystem的參數信息過程,服務器可以確定該目標NVM Subsystem,進一步,由于該目標NVM Subsystem可以包括多個NVMcontroller,因此,服務器還可以根據目標參數中Host的要求,進一步確定與Host相匹配的該目標NVM Subsystem中的目標NVM controller0
[0103]S240,服務器向Host發送響應消息,該響應消息包括目標NVM Subsystem的路信息,以便于主機與該目標NVM Subsystem建立連接。
[0104]具體地,服務器根據目標參數表示的Host的需求,根據NVMSubsystem的參數數據確定目標NVM Subsystem,可以通過響應消息向該Host發送該目標NVM Subsystem的路由信息,以便于Host與該目標NVM Subsystem建立連接。
[0105]可選地,可以通過Log Page Entry表示該目標NVM Subsystem的路由信息,該NVMSubsystem的路由信息可以包括:目標NVM Subsystem的ID、該目標NVM Subsystem的NQN、Host到該目標NVM Subsystem的路徑信息中的至少一種。可選地,該Log Page Entry還可以包括該目標NVM Subsystem的端口信息,由于該目標NVM Subsystem可以包括一個或多個端口,因此可以通過一個或多個Log Page Entry指示不同的端口,每個Log Page Entry對應一個NVM Subsystem的端口,由Host選擇一個端口與該目標NVM Subsystem建立連接。
[0106]S250,Host與目標NVM Subsystem建立連接。
[0107]具體地,該S250與方法100中的S150類似,Host根據接收到的目標NVM Subsystem的路由信息,與目標NVM Subsystem建立連接;或者根據接收到的目標NVM Subsystem中的目標NVM controller,直接與該目標NVM contro I Ier建立連接,在此不再贅述。
[0108]應理解,與方法100類似,服務器中保存NVM Subsystem的參數信息,可以隨時更新。例如,可以在服務器中設置更新周期,服務器周期性更新保存的參數信息,使得Host獲取的NVM Subsystem的參數信息更加準確。再例如,可以通過Host發送的請求消息觸發服務器進行參數信息的更新,服務器根據接收到的Host發送的請求消息,先觸發服務器更新參數信息,服務器讀取并獲取更新后的參數信息,再根據更新后的參數信息為Host確定目標NVM Subsystem,本發明實施例并不限于此。
[0109]可選地,服務器更新參數信息,可以通過向每個NVM Subsystem發送更新信息,再根據每個NVM Subsystem反饋的響應信息,對服務器中的參數信息進行更新。
[0110]應理解,在本發明的各種實施例中,上述各過程的序號的大小并不意味著執行順序的先后,各過程的執行順序應以其功能和內在邏輯確定,而不應對本發明實施例的實施過程構成任何限定。
[0111]因此,本發明實施例的在非易失性存儲系統中建立連接的方法,Host向服務器發送請求消息,服務器根據請求消息獲取NVM Subsystem的參數信息,并根據該NVMSubsystem的參數信息中關于每個NVM Subsystem中包括的各個部分的相關性能的信息,選擇與Host相匹配的NVM Subsystem作為目標NVM Subsystem,并通過響應消息向Host發送該目標NVM Subsystem,以便于Host與該目標NVM Subsystem建立連接,可以避免Host連接到錯誤或不合適的NVM Subsystem,避免Host盲目的反復連接測試,使得Host可以與到滿足需求的NVM Subsystem建立連接,提高連接的可靠性。
[0112]上文中結合圖1至圖3,詳細描述了根據本發明實施例的在非易失性存儲系統中建立連接的方法,下面將結合圖4至圖7,描述根據本發明實施例的在非易失性存儲系統中建立連接的裝置。
[0113]圖4示出了根據本發明實施例的非易失性存儲系統中的服務器300的示意性框圖,該非易失性存儲系統包括主機、該服務器300和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機提供數據存儲,該服務器300中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,如圖4所示,該服務器300包括:
[0114]處理單元310,用于與該主機建立連接;
[0115]接收單元320,用于接收該主機發送請求消息,該請求消息包括該主機需要連接的NVM子系統的目標參數;
[0116]確定單元330,用于通過查找該至少一個NVM子系統的參數信息,確定滿足該目標參數的目標NVM子系統以及該目標NVM子系統的路由信息;
[0117]發送單元340,用于向該主機發送響應消息,該響應消息包括該目標NVM子系統的路由信息,以便于該主機根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0118]因此,本發明實施例的非易失性存儲系統中的服務器,通過接收主機發送的需要連接的NVM子系統的目標參數,查找至少一個NVM子系統的參數信息確定滿足目標參數的NVM子系統作為目標NVM子系統,以便于主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0119]可選地,該確定單元330具體用于:在確定滿足該目標參數的目標NVM子系統之前,獲取該每個NVM子系統的當前參數信息;根據該每個NVM子系統的該當前參數信息,更新存儲的該每個NVM子系統的參數信息。
[0120]可選地,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name space的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[0121]應理解,根據本發明實施例的非易失性存儲系統中的服務器300可對應于執行本發明實施例中的方法200中的服務器,并且服務器300中的各個模塊的上述和其它操作和/或功能分別為了實現圖3中的方法中的服務器的相應流程,為了簡潔,在此不再贅述。
[0122]因此,本發明實施例的非易失性存儲系統中的服務器,通過接收主機發送的需要連接的NVM子系統的目標參數,查找至少一個NVM子系統的參數信息確定滿足目標參數的NVM子系統作為目標NVM子系統,以便于主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0123]圖5示出了根據本發明實施例的非易失性存儲系統中的主機400的示意性框圖,該非易失性存儲系統包括該主機400、服務器和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機400提供數據存儲,該服務器中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,如圖5所示,該主機400包括:
[0124]處理單元410,用于與該服務器建立連接;
[0125]發送單元420,用于向該服務器發送請求消息;
[0126]接收單元430,用于接收該服務器根據該請求信息發送的響應消息,該響應消息包括該至少一個NVM子系統中部分或全部NVM子系統的參數信息和路由信息;
[0127]確定單元440,用于根據該部分或全部NVM子系統的參數信息,確定滿足目標參數的目標NVM子系統以及該目標NVM子系統的路由信息,該目標參數為該主機需要連接的NVM子系統的參數;
[0128]該處理單元410還用于:根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0129]因此,本發明實施例的非易失性存儲系統中的主機,通過與服務器建立連接,獲取服務器中保存的部分或全部NVM子系統的參數信息,根據部分或全部NVM子系統的參數信息,選擇滿足主機需求的NVM子系統作為目標NVM子系統,主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0130]可選地,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name space的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[01311應理解,根據本發明實施例的非易失性存儲系統中的主機400可對應于執行本發明實施例中的方法100中的主機,并且主機400中的各個模塊的上述和其它操作和/或功能分別為了實現圖2中的方法的主機的相應流程,為了簡潔,在此不再贅述。
[0132]因此,本發明實施例的非易失性存儲系統中的主機,通過與服務器建立連接,獲取服務器中保存的部分或全部NVM子系統的參數信息,根據部分或全部NVM子系統的參數信息,選擇滿足主機需求的NVM子系統作為目標NVM子系統,主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0133]圖6示出了根據本發明實施例的非易失性存儲系統中的服務器500的示意性框圖,該非易失性存儲系統包括主機、該服務器500和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機提供數據存儲,該服務器500中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,如圖6所示,該服務器500包括:處理器510和收發器520,處理器510和收發器520相連,可選地,該裝置500還包括存儲器530,存儲器530與處理器510相連,進一步可選地,該裝置500包括總線系統540。其中,處理器510、存儲器530和收發器520可以通過總線系統540相連,該存儲器530可以用于存儲指令,該處理器510用于執行該存儲器530存儲的指令,以控制收發器520發送信息或信號。
[0134]該處理器510用于:與該主機建立連接;該收發器520用于:接收該主機發送請求消息,該請求消息包括該主機需要連接的NVM子系統的目標參數;該處理器510用于:通過查找該至少一個NVM子系統的參數信息,確定滿足該目標參數的目標NVM子系統以及該目標NVM子系統的路由信息;該收發器520用于:向該主機發送響應消息,該響應消息包括該目標NVM子系統的路由信息,以便于該主機根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0135]因此,本發明實施例的非易失性存儲系統中的服務器,通過接收主機發送的需要連接的NVM子系統的目標參數,查找至少一個NVM子系統的參數信息確定滿足目標參數的NVM子系統作為目標NVM子系統,以便于主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0136]應理解,在本發明實施例中,該處理器510可以是中央處理單元(CentralProcessing Unit,簡稱為“CPU”),該處理器510還可以是其他通用處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
[0137]該存儲器530可以包括只讀存儲器和隨機存取存儲器,并向處理器510提供指令和數據。存儲器530的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器530還可以存儲設備類型的信息。
[0138]該總線系統540除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線等。但是為了清楚說明起見,在圖中將各種總線都標為總線系統540。
[0139]在實現過程中,上述方法的各步驟可以通過處理器510中的硬件的集成邏輯電路或者軟件形式的指令完成。結合本發明實施例所公開的方法的步驟可以直接體現為硬件處理器執行完成,或者用處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器530,處理器510讀取存儲器530中的信息,結合其硬件完成上述方法的步驟。為避免重復,這里不再詳細描述。
[0140]可選地,該處理器510具體用于:在確定滿足該目標參數的目標NVM子系統之前,獲取該每個NVM子系統的當前參數信息;根據該每個NVM子系統的該當前參數信息,更新存儲的該每個NVM子系統的參數信息。
[0141]可選地,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name space的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[0142]應理解,根據本發明實施例的非易失性存儲系統中的服務器500可對應于本發明實施例中的服務器300,并可以對應于根據本發明實施例的方法200中的服務器,并且服務器500中的各個模塊的上述和其它操作和/或功能分別為了實現圖3中的方法中服務器的相應流程,為了簡潔,在此不再贅述。
[0143]因此,本發明實施例的非易失性存儲系統中的服務器,通過接收主機發送的需要連接的NVM子系統的目標參數,查找至少一個NVM子系統的參數信息確定滿足目標參數的NVM子系統作為目標NVM子系統,以便于主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0144]圖7示出了根據本發明實施例的非易失性存儲系統中的主機600的示意性框圖,該非易失性存儲系統包括該主機600、服務器和至少一個非易失性存儲器NVM子系統,該至少一個NVM子系統用于為該主機600提供數據存儲,該服務器中存儲有該至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,如圖7所示,該主機600包括:處理器610和收發器620,處理器610和收發器620相連,可選地,該裝置600還包括存儲器630,存儲器630與處理器610相連,進一步可選地,該裝置600包括總線系統640。其中,處理器610、存儲器630和收發器620可以通過總線系統640相連,該存儲器630可以用于存儲指令,該處理器610用于執行該存儲器630存儲的指令,以控制收發器620發送信息或信號。
[0145]該處理器610用于:與該服務器建立連接;該收發器620用于:向該服務器發送請求消息;接收該服務器根據該請求信息發送的響應消息,該響應消息包括該至少一個NVM子系統中部分或全部NVM子系統的參數信息和路由信息;該處理器610用于:根據該部分或全部NVM子系統的參數信息,確定滿足目標參數的目標NVM子系統以及該目標NVM子系統的路由信息,該目標參數為該主機需要連接的NVM子系統的參數;根據該目標NVM子系統的路由信息,與該目標NVM子系統建立連接。
[0146]因此,本發明實施例的非易失性存儲系統中的主機,通過與服務器建立連接,獲取服務器中保存的部分或全部NVM子系統的參數信息,根據部分或全部NVM子系統的參數信息,選擇滿足主機需求的NVM子系統作為目標NVM子系統,主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0147]應理解,在本發明實施例中,該處理器610可以是CPU,該處理器610還可以是其他通用處理器、DSP、ASIC、FPGA或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。
[0148]該存儲器630可以包括只讀存儲器和隨機存取存儲器,并向處理器610提供指令和數據。存儲器630的一部分還可以包括非易失性隨機存取存儲器。例如,存儲器630還可以存儲設備類型的信息。
[0149]該總線系統640除包括數據總線之外,還可以包括電源總線、控制總線和狀態信號總線等。但是為了清楚說明起見,在圖中將各種總線都標為總線系統640。
[0150]在實現過程中,上述方法的各步驟可以通過處理器610中的硬件的集成邏輯電路或者軟件形式的指令完成。結合本發明實施例所公開的方法的步驟可以直接體現為硬件處理器執行完成,或者用處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器630,處理器610讀取存儲器630中的信息,結合其硬件完成上述方法的步驟。為避免重復,這里不再詳細描述。
[0151]可選地,該每個NVM子系統的參數信息至少包括:該每個NVM子系統的總容量、該每個NVM子系統的可用容量、該每個NVM子系統中至少一個命名空間Name space的信息、該每個NVM子系統中至少一個NVM控制器的信息以及該至少一個Namespace與該至少一個NVM控制器之間的映射關系中的一種。
[0152]應理解,根據本發明實施例的非易失性存儲系統中的主機600可對應于本發明實施例中的主機400,并可以對應于根據本發明實施例的方法100中的主機并且主機600中的各個模塊的上述和其它操作和/或功能分別為了實現圖2中的方法中主機的相應流程,為了簡潔,在此不再贅述。
[0153]因此,本發明實施例的非易失性存儲系統中的主機,通過與服務器建立連接,獲取服務器中保存的部分或全部NVM子系統的參數信息,根據部分或全部NVM子系統的參數信息,選擇滿足主機需求的NVM子系統作為目標NVM子系統,主機與該目標NVM子系統建立連接,可以避免主機連接到錯誤或不合適的NVM子系統,避免盲目選擇和連接而導致的反復連接,使得主機可以與滿足需求的NVM子系統建立連接,提高連接的可靠性。
[0154]本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
[0155]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0156]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0157]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
[0158]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0159]所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
[0160]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應所述以權利要求的保護范圍為準。
【主權項】
1.一種在非易失性存儲系統中建立連接的方法,其特征在于,所述非易失性存儲系統包括主機、服務器和至少一個非易失性存儲器NVM子系統,所述至少一個NVM子系統用于為所述主機提供數據存儲,所述服務器中存儲有所述至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,所述方法由所述服務器執行,所述方法包括: 與所述主機建立連接; 接收所述主機發送請求消息,所述請求消息包括所述主機需要連接的NVM子系統的目標參數; 通過查找所述至少一個NVM子系統的參數信息,確定滿足所述目標參數的目標NVM子系統以及所述目標NVM子系統的路由信息; 向所述主機發送響應消息,所述響應消息包括所述目標NVM子系統的路由信息,以便于所述主機根據所述目標NVM子系統的路由信息,與所述目標NVM子系統建立連接。2.根據權利要求1所述的方法,其特征在于,在所述確定滿足所述預設規則的目標NVM子系統之前,所述方法還包括: 獲取所述每個NVM子系統的當前參數信息; 根據所述每個NVM子系統的所述當前參數信息,更新存儲的所述每個NVM子系統的參數?目息O3.根據權利要求1或2所述的方法,其特征在于,所述每個NVM子系統的參數信息至少包括:所述每個NVM子系統的總容量、所述每個NVM子系統的可用容量、所述每個NVM子系統中至少一個命名空間Name s P a c e的信息、所述每個NVM子系統中至少一個NVM控制器的信息以及所述至少一個Namespace與所述至少一個NVM控制器之間的映射關系中的一種。4.一種在非易失性存儲系統中建立連接的方法,其特征在于,所述非易失性存儲系統包括主機、服務器和至少一個非易失性存儲器NVM子系統,所述至少一個NVM子系統用于為所述主機提供數據存儲,所述服務器中存儲有所述至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,所述方法由所述主機執行,所述方法包括: 與所述服務器建立連接; 向所述服務器發送請求消息; 接收所述服務器根據所述請求信息發送的響應消息,所述響應消息包括所述至少一個NVM子系統中部分或全部NVM子系統的參數信息和路由信息; 根據所述部分或全部NVM子系統的參數信息,確定滿足目標參數的目標NVM子系統以及所述目標NVM子系統的路由信息,所述目標參數為所述主機需要連接的NVM子系統的參數; 根據所述目標NVM子系統的路由信息,與所述目標NVM子系統建立連接。5.根據權利要求4所述的方法,其特征在于,所述每個NVM子系統的參數信息至少包括:所述每個NVM子系統的總容量、所述每個NVM子系統的可用容量、所述每個NVM子系統中至少一個命名空間Namespace的信息、所述每個NVM子系統中至少一個NVM控制器的信息以及所述至少一個Namespace與所述至少一個NVM控制器之間的映射關系中的一種。6.—種非易失性存儲系統中的服務器,其特征在于,所述非易失性存儲系統還包括主機和至少一個非易失性存儲器NVM子系統,所述至少一個NVM子系統用于為所述主機提供數據存儲,所述服務器中存儲有所述至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,所述服務器包括: 處理單元,用于與所述主機建立連接; 接收單元,用于接收所述主機發送請求消息,所述請求消息包括所述主機需要連接的NVM子系統的目標參數; 確定單元,用于通過查找所述至少一個NVM子系統的參數信息,確定滿足所述目標參數的目標NVM子系統以及所述目標NVM子系統的路由信息; 發送單元,用于向所述主機發送響應消息,所述響應消息包括所述目標NVM子系統的路由信息,以便于所述主機根據所述目標NVM子系統的路由信息,與所述目標NVM子系統建立連接。7.根據權利要求6所述的服務器,其特征在于,所述確定單元具體用于: 在確定滿足所述預設規則的目標NVM子系統之前,獲取所述每個NVM子系統的當前參數信息; 根據所述每個NVM子系統的所述當前參數信息,更新存儲的所述每個NVM子系統的參數?目息O8.根據權利要求6或7所述的服務器,其特征在于,所述每個NVM子系統的參數信息至少包括:所述每個NVM子系統的總容量、所述每個NVM子系統的可用容量、所述每個NVM子系統中至少一個命名空間Name s pa c e的信息、所述每個NVM子系統中至少一個NVM控制器的信息以及所述至少一個Namespace與所述至少一個NVM控制器之間的映射關系中的一種。9.一種非易失性存儲系統中的主機,其特征在于,所述非易失性存儲系統還包括服務器和至少一個非易失性存儲器NVM子系統,所述至少一個NVM子系統用于為所述主機提供數據存儲,所述服務器中存儲有所述至少一個NVM子系統中每個NVM子系統的參數信息和路由信息,所述主機包括: 處理單元,用于與所述服務器建立連接; 發送單元,用于向所述服務器發送請求消息; 接收單元,用于接收所述服務器根據所述請求信息發送的響應消息,所述響應消息包括所述至少一個NVM子系統中部分或全部NVM子系統的參數信息和路由信息; 確定單元,用于根據所述部分或全部NVM子系統的參數信息,確定滿足目標參數的目標NVM子系統以及所述目標NVM子系統的路由信息,所述目標參數為所述主機需要連接的NVM子系統的參數; 所述處理單元還用于:根據所述目標NVM子系統的路由信息,與所述目標NVM子系統建立連接。10.根據權利要求9所述的主機,其特征在于,所述每個NVM子系統的參數信息至少包括:所述每個NVM子系統的總容量、所述每個NVM子系統的可用容量、所述每個NVM子系統中至少一個命名空間Name s P a c e的信息、所述每個NVM子系統中至少一個NVM控制器的信息以及所述至少一個Namespace與所述至少一個NVM控制器之間的映射關系中的一種。
【文檔編號】G06F3/06GK105912275SQ201610268770
【公開日】2016年8月31日
【申請日】2016年4月27日
【發明人】邱鑫, 譚春毅
【申請人】華為技術有限公司