System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算機領域,更加具體地,涉及一種寫入數據的方法和存儲設備。
技術介紹
1、存儲區域網絡(storage?area?network,san)是一種基于塊的存儲網絡架構,利用網絡將主機服務器與存儲控制器相連。邏輯硬盤單元(logical?disk?unit,lun)是san中一系列通過共享存儲池配置的塊,以邏輯硬盤的形式呈現給主機服務器。主機服務器通過存儲控制器對這些塊進行分區和格式化,通常使用文件系統,以便可以像在本地硬盤存儲上一樣在lun上存儲數據。san的設計消除了單點故障,因此具有極高的可用性和故障恢復能力。
2、在以san為代表的存儲網絡架構下,數據的讀寫指令由主機服務器發出,由存儲控制器根據讀寫指令進行讀寫操作。因此在現有架構下,以寫操作為例,數據和寫請求需要從主機服務器的網卡通過網絡發送至存儲控制器的網卡,再由存儲控制器的網卡發送至存儲控制器的中央處理器(central?processing?unit,cpu)處理,通過工作在cpu上的存儲軟件將數據寫入內存和/或硬盤。上述過程占用大量cpu資源以及數據帶寬,成為存儲控制器的數據寫入性能的瓶頸,從而導致存儲控制器寫入數據的效率較低。因此,如何提高存儲網絡架構中存儲控制器的數據寫入效率成為亟需解決的技術問題。
技術實現思路
1、本申請實施例提供一種寫入數據的方法和存儲控制器,通過在網卡中建立內存和/或硬盤的地址與網卡的映射關系,能夠在網卡中直接生成待寫入數據的元數據索引信息,并根據元數據索引信息直接將數
2、第一方面,提供一種寫入數據的方法,該方法應用于存儲設備,存儲設備包括網卡、cpu和存儲器,該方法包括:網卡通過網絡獲取寫指令,寫指令中包括待寫入的第一數據;網卡生成第一數據的元數據索引信息并發給cpu,元數據索引信息用于描述第一數據寫入存儲器的地址;cpu將元數據索引信息寫入存儲器;網卡根據元數據索引信息,將第一數據寫入存儲器。
3、寫指令來自于所述存儲控制器的外部,例如來自客戶主機。
4、可選地,存儲設備可以是存儲區域網絡(storage?area?network,san)中的存儲控制器;存儲設備還可以是分布式存儲中的存儲服務器;存儲設備還可以是單獨的存儲服務器。
5、可選地,存儲器包括內存儲器和外存儲器,內存儲器包括但不限于:隨機存取存儲器(random?access?memory,ram)、只讀存儲器(read-only?memory,rom),外存儲器包括但不限于機械硬盤(hard?disk?drive,hdd)、固態硬盤(solid?state?drive,ssd)。外存儲器位于所述存儲設備的本地或者遠端。本地存儲器設置于存儲設備內部,或者通過總線和存儲設備連接;遠端存儲器通過網絡和所述存儲設備連接,或者以云的方式為所述存儲設備提供存儲空間。
6、可選地,元數據索引信息包括但不限于以下至少一項:邏輯區塊地址(logicalblock?address,lba)、邏輯硬盤單元識別碼(logical?disk?unit?identity,lunid)。
7、根據本申請提供的技術方案,由網卡中直接生成待寫入數據的元數據索引信息,并由網卡根據元數據索引信息直接將數據寫入內存和/或硬盤中對應的地址。使得待寫入數據在從存儲設備外部到底網卡后,不需要經過存儲控制器的cpu處理就能夠被存儲起來。與傳統方案中由cpu上的存儲軟件生成待寫入數據的元數據索引信息,并且待寫入數據和元數據索引信息都通過cpu寫入存儲器的方式相比,能夠節省寫入數據過程中待寫入數據所占用的部分cpu資源和數據帶寬,從而提高存儲網絡架構中存儲設備的數據寫入效率。
8、結合第一方面,在第一方面的某些實現方式中,生成第一數據的元數據索引信息,包括:根據存儲在網卡中的地址映射表,生成第一數據的元數據索引信息,地址映射表用于指示存儲器中可用于寫入數據的地址。
9、根據上述技術方案,通過將內存和/或硬盤的地址可用于寫入數據的地址以地址映射表的方式存儲在網卡中,使得內存和/或硬盤的地址與網卡的映射關系能夠長期保存在網卡中,從而提高網卡生成元數據索引信息的效率。
10、結合第一方面,在第一方面的某些實現方式中,地址映射表中包括網卡維護的標識的值和存儲器的地址的映射關系,根據存儲在網卡中的地址映射表,生成第一數據的元數據索引信息,包括:為第一數據分配第一標識;根據第一標識的值和地址映射表,確定第一數據寫入存儲器的第一地址,其中,地址映射表中包括第一標識的值和第一地址的映射關系;根據第一地址和第一數據的屬性,生成元數據索引信息。
11、根據上述技術方案,通過將網卡為待寫入數據分配的標識與內存和/或硬盤的地址之間的映射關系作為地址映射表存儲在網卡中,使得網卡為待寫入數據分配標識后能夠通過查表快速查詢確定數據寫入的地址,從而提高網卡確定待寫入數據寫入存儲器地址的效率。
12、結合第一方面,在根據存儲在網卡中的地址映射表,生成第一數據的元數據索引信息之前,該方法還包括:網卡獲取第二數據;網卡為第二數據分配第二標識;cpu將第二數據寫入存儲器的第二地址;網卡根據第二標識的值和第二地址,建立地址映射表;在第二地址處于空閑狀態后,該方法還包括:cpu向網卡發送指示信息,指示信息用于指示第二地址可用。
13、根據上述技術方案,通過先使用cpu中軟件系統將數據寫入內存和/或硬盤,根據寫入結果確定地址映射表,使得地址映射表中網卡為待寫入數據分配的標識與內存和/或硬盤的地址之間的映射關系與通過cpu軟件寫入的方式一致,使通過網卡直接寫入數據和通過cpu寫入數據得到的結果一致,從而提高系統的可靠性。
14、結合第一方面,在第一方面的某些實現方式中,cpu包括第一緩存模塊和第二緩存模塊,將元數據索引信息寫入存儲器,包括:將元數據索引信息寫入第一緩存模塊;將元數據信息從第一緩存模塊寫入存儲器;該方法還包括:cpu根據第一緩存模塊中的元數據索引信息,在第二緩存模塊中建立元數據索引信息的鏡像。
15、根據上述技術方案,由于緩存根據寫入的元數據索引信息能夠從網卡中確定對應的待寫入數據,因此通過鏡像的方式對緩存進行備份時,也只需要將元數據索引信息從當前緩存傳輸至鏡像節點的緩存,使得鏡像節點能夠根據元數據索引信息直接從網卡中獲取待寫入數據,避免了緩存間大量數據傳輸所占用的cpu資源和數據帶寬,從而提高系統內保持多副本運行的效率。
16、結合第一方面,在第一方面的某些實現方式中,根據元數據索引信息,將第一數據寫入存儲器,包括:根據元數據索引信息,通過遠程直接數據存取rdma將第一數據寫入存儲器。
17、根據上述技術方案,通過rdma技術將待寫入數據直接從網卡傳輸至內存和/或硬盤,而不對存儲控制器的操作系統本文檔來自技高網...
【技術保護點】
1.一種寫入數據的方法,其特征在于,所述方法應用于存儲設備,所述存儲設備包括網卡、中央處理器CPU和存儲器,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述生成所述第一數據的元數據索引信息,包括:
3.根據權利要求2所述的方法,其特征在于,所述地址映射表中包括所述網卡維護的標識的值和所述存儲器的地址的映射關系,所述根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息,包括:
4.根據權利要求3所述的方法,其特征在于,在根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息之前,所述方法還包括:
5.根據權利要求1至4中任意一項所述的方法,其特征在于,所述根據所述元數據索引信息,將所述第一數據寫入所述存儲器,包括:
6.根據權利要求1至5中任意一項所述的方法,其特征在于,所述將所述元數據索引信息寫入所述存儲器,包括:
7.根據權利要求1至6中任意一項所述的方法,其特征在于,在根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息之前,所述方法還包括:
< ...【技術特征摘要】
1.一種寫入數據的方法,其特征在于,所述方法應用于存儲設備,所述存儲設備包括網卡、中央處理器cpu和存儲器,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述生成所述第一數據的元數據索引信息,包括:
3.根據權利要求2所述的方法,其特征在于,所述地址映射表中包括所述網卡維護的標識的值和所述存儲器的地址的映射關系,所述根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息,包括:
4.根據權利要求3所述的方法,其特征在于,在根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息之前,所述方法還包括:
5.根據權利要求1至4中任意一項所述的方法,其特征在于,所述根據所述元數據索引信息,將所述第一數據寫入所述存儲器,包括:
6.根據權利要求1至5中任意一項所述的方法,其特征在于,所述將所述元數據索引信息寫入所述存儲器,包括:
7.根據權利要求1至6中任意一項所述的方法,其特征在于,在根據存儲在所述網卡中的地址映射表,生成所述第一數據的元數據索引信息之前,所述方法還包括:
8.根據權利要求1至7中任意一項所述的方法,其特征在于,所述元數據索引信息包括以下至少一項:邏輯區塊地址lba、邏輯硬盤單元識別碼lunid。
9.根據權利要求1至8中任意一項所述的方法,其特征在于,所述方法還包括:
10.一種存儲設備,其特征在于,所述存儲設備包括網卡、中央處理器cpu和存儲器,
【專利技術屬性】
技術研發人員:劉會林,譚春華,葉利杰,
申請(專利權)人:成都華為技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。