TWI795491B - 驅動器至驅動器儲存系統、儲存驅動器和儲存資料的方法 - Google Patents
驅動器至驅動器儲存系統、儲存驅動器和儲存資料的方法 Download PDFInfo
- Publication number
- TWI795491B TWI795491B TW107145535A TW107145535A TWI795491B TW I795491 B TWI795491 B TW I795491B TW 107145535 A TW107145535 A TW 107145535A TW 107145535 A TW107145535 A TW 107145535A TW I795491 B TWI795491 B TW I795491B
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- drive
- memory
- peer
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Automatic Disk Changers (AREA)
- Vehicle Body Suspensions (AREA)
Abstract
本發明的實施例包括一種驅動器至驅動器儲存系統,所
述驅動器至驅動器儲存系統包括:主機伺服器,具有主機中央處理器及主機儲存驅動器;一個或多個遠端儲存驅動器;以及對等鏈路,將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器。所述主機儲存驅動器包括處理器及記憶體,其中所述記憶體上儲存有指令,所述指令在由所述處理器執行時使所述處理器在所述主機中央處理器發出寫入命令時將資料從所述主機儲存驅動器經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器。也提供一種主機儲存驅動器和一種儲存資料的方法。
Description
本發明涉及用於形成陣列的固態驅動器,更具體來說,涉及用於自主管理陣列中的固態驅動器的機制。
現代企業資料儲存系統儲存大量重要資料。這種資料需要保護措施來防止因儲存裝置故障而導致資料丟失。通常,一個或多個控制實體實行多種保護方法來實現此目標。這些實體常常是儲存伺服器單元中央處理器(central processing unit,CPU)。
從儲存裝置的角度來看,儲存伺服器CPU以監督方式實行儲存及保護方法,且儲存裝置作為嚴格的從屬裝置參與進行。通過構造,控制實體通常使用基於策略的準則來確定將哪些資料儲存在受所述控制實體控制的哪些從屬儲存裝置上。
CPU與儲存裝置之間的傳輸活動至少涉及沿資料傳輸路徑的本地CPU快取記憶體及動態隨機存取記憶體(dynamic random access memory,DRAM)以及對網路資源的使用。因此,實行這種受CPU控制的資料保護方法通常會消耗大量的儲存伺服
器資源。CPU參與資料傳輸可能會導致因CPU快取記憶體污染、顯著的DRAM使用、同步軟體工作負荷及另外的處理而引起延遲。
同時,儲存裝置常常具有可用的、未使用的資源及能力。舉例來說,固態驅動器(solid-state drive,SSD)(尤其是非易失性儲存快速(Non-Volatile Memory Express,NVMe)SSD)具有相對大量的用於不同功能的DRAM。舉例來說,NVMe SSD的DRAM用於主機讀取/寫入緩衝器、用於內部SSD中繼資料儲存以及用於託管控制記憶體緩衝器(control memory buffer)。控制記憶體緩衝器是由SSD暴露給主機的SSD的DRAM的部分,其用於輸入/輸出(input/output,I/O)記憶體佇列、資料緩衝器等。
需要一種改善的儲存裝置以及驅動器至驅動器儲存方法,所述儲存裝置及驅動器至驅動器儲存方法可實行自主資料儲存及資料保護服務而不涉及CPU或其他控制實體。另外,需要一種改善的儲存裝置以及驅動器至驅動器儲存方法,所述儲存裝置及驅動器至驅動器儲存方法可利用儲存裝置的未使用的資源及能力。這種改善的儲存裝置及方法可減少資料保護及備份所需的主機資源量。
在此背景部分中公開的上述資訊僅用於增強對本公開背景的理解且因此可包含不構成現有技術的資訊。
本發明的目的在於提供一種改善的儲存裝置及驅動器至驅動器儲存方法,所述儲存裝置及驅動器至驅動器儲存方法可
實行自主資料儲存及資料保護服務而不涉及CPU或其他控制實體。本發明的另一目的在於提供一種改善的儲存裝置以及驅動器至驅動器儲存方法,所述儲存裝置及驅動器至驅動器儲存方法可利用儲存裝置的未使用的資源及能力。
本發明的實施例包括一種驅動器至驅動器儲存系統,所述驅動器至驅動器儲存系統包括:主機伺服器,具有主機CPU及主機儲存驅動器;一個或多個遠端儲存驅動器;以及對等鏈路,將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器。所述主機儲存驅動器包括處理器及記憶體,其中所述記憶體上儲存有指令,所述指令在由所述處理器執行時使所述處理器在所述主機中央處理器發出寫入命令時將資料從所述主機儲存驅動器經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器。
再一些實施例包括一種主機儲存驅動器,所述主機儲存驅動器包括:對等鏈路,將所述主機儲存驅動器連接到一個或多個遠端儲存驅動器;以及處理器及記憶體,其中所述記憶體上儲存有指令,所述指令在由所述處理器執行時使所述處理器將資料從所述主機儲存驅動器經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器。
另一些實施例包括一種使用驅動器至驅動器儲存系統來儲存資料的方法,其中所述驅動器至驅動器儲存系統包括主機伺服器、一個或多個遠端儲存驅動器、及對等鏈路,所述主機服務器具有主機CPU及主機儲存驅動器,所述主機儲存驅動器具有處理器及記憶體,所述對等鏈路將所述主機儲存驅動器連接到所
述一個或多個遠端儲存驅動器。所述方法包括:發起要向所述主機儲存驅動器寫入資料的寫入命令;利用直接記憶體存取將所述資料發送到所述主機儲存驅動器的所述記憶體;以及將所述資料從所述主機儲存驅動器的所述記憶體經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器。
根據本發明,提供改善的儲存裝置及方法,所述儲存裝置及方法可減少資料保護及備份所需的主機資源量。
10、20、30:節點
11、21、31:CPU
12、32:儲存驅動器/本地驅動器
13、23、33、330:DRAM
22:儲存驅動器/遠端驅動器/本地驅動器/驅動器
100、200、300:節點/儲存伺服器/儲存伺服器節點
110、210、310:CPU/主機CPU/儲存伺服器CPU
120:儲存驅動器/主機儲存驅動器/驅動器/主機驅動器
121:控制記憶體緩衝器/DRAM
122:控制記憶體緩衝器
130:DRAM/本地DRAM
140:根複合體裝置
150、250、350:交換機
220、320:儲存驅動器/遠端驅動器/驅動器/從屬儲存驅動器/終端儲存裝置/遠端儲存驅動器
221、321:記憶體
230:DRAM
S1、S2、S3、S4、S5、S6、S7、S8:操作
通過參照結合圖式論述的以下詳細說明,其他特徵及方面將變得顯而易見且將得到最好的理解:在圖式中:圖1是用於資料保護的受CPU控制的系統的示意圖。
圖2是根據本發明實施例的驅動器至驅動器儲存系統的示意圖。
圖3是圖2所示實施例的示意圖,其中儲存系統中的儲存驅動器經由專用埠或經重新程式化的交換機埠進行連接。
圖4是根據本發明實施例的主機儲存驅動器的示意圖。
圖5是繪示使用圖2或圖3所示驅動器至驅動器儲存系統來儲存資料的方法的流程圖。
在下文中,將參照附圖更詳細地闡述示例性實施例,其中在所有附圖中相同的參考編號指代相同的元件。然而,本發明
可被實施為各種不同形式,而不應被視為僅限於本文所示出的實施例。確切來說,提供這些實施例作為實例是為了使本公開將透徹及完整,並將向所屬領域中的技術人員充分傳達本發明的各個方面及特徵。因此,可不再闡述對於所屬領域中的一般技術人員完整理解本發明的各個方面及特徵而言並非必需的工藝、元件及技術。除非另有注明,否則在所有附圖及書面說明通篇中相同的參考編號表示相同的元件,且因此,將不再對其予以重複說明。在圖式中,為清晰起見,可誇大各個元件、各個層及各個區的相對大小。
應理解,當稱一元件或層位於另一元件或層“上(on)”、“連接到(connected to)”或“耦合到(coupled to)”另一元件或層時,所述元件或層可直接位於所述另一元件或層上、直接連接到或直接耦合到所述另一元件或層,抑或可存在一個或多個中間元件或層。另外,還應理解,當稱一元件或層“位於”兩個元件或層“之間(between)”時,所述元件或層可為所述兩個元件或層之間的唯一元件或層,抑或也可存在一個或多個中間元件或層。
本文所用術語僅是出於闡述特定實施例的目的而並非旨在限制本發明。除非上下文清楚地另外指明,否則本文所用單數形式“一(a及an)”旨在也包括複數形式。還應理解,當在本說明書中使用用語“包括(comprises、comprising、includes及including)”時,是指明所陳述特徵、整數、步驟、操作、元件和/或元件的存在,但不排除一個或多個其他特徵、整數、步驟、操作、元件、元件和/或其群組的存在或添加。本文所用用語“和/
或”包括相關列出項中的一個或多個項的任意及所有組合。當例如“...中的至少一者”等表達位於一系列元件之後時,所述表達是修飾整個系列的元件而非修飾所述列表中的各別元件。
在闡述本發明的實施例時使用“可(may)”是指“本發明的一個或多個實施例”。本文所用用語“使用(use)”、“正使用(using)”及“被使用(used)”可被視為分別與用語“利用(utilize)”、“正利用(utilizing)”及“被利用(utilized)”同義。另外,用語“示例性(exemplary)”旨在指實例或例示。
根據本文所述本發明實施例的電子裝置或電裝置和/或任何其他相關裝置或元件可利用任何適合的硬體、韌體(例如,應用專用積體電路(application-specific integrated circuit))、軟體、或軟體、韌體、及硬體的組合來實施。舉例來說,可將這些裝置的各種元件形成在一個積體電路(integrated circuit,IC)晶片上或形成在單獨的積體電路晶片上。此外,可將這些裝置的各種元件實施在柔性印刷電路膜(flexible printed circuit film)、載帶封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成在一個基板上。此外,這些裝置的各種元件可為在一個或多個計算裝置中由一個或多個處理器運行的、執行電腦程式指令並與用於實行本文所述各種功能性的其他系統元件進行交互的過程或執行緒(thread)。電腦程式指令儲存在記憶體中,所述記憶體可使用例如(舉例來說)隨機存取記憶體(random access memory,RAM)等標準記憶體裝置在計算裝置中實施。電腦程式指令也可儲存在例如(舉例來說)壓縮磁碟唯讀記憶體(compact disc read only memory,CD-ROM)、快閃記憶體
驅動器(flash drive)或類似元件等其他非暫時性電腦可讀介質中。另外,所屬領域中的技術人員應知,可將各種計算裝置的功能性組合或集成到單一的計算裝置中,或者可使一特定計算裝置的功能性分佈在一個或多個其他計算裝置中,此並不背離本發明示例性實施例的精神及範圍。
除非另外定義,否則本文所用所有用語(包括技術及科學用語)的含義均與本發明所屬領域中的一般技術人員所通常理解的含義相同。還應理解,用語(例如在常用詞典中所定義的用語)應被解釋為具有與其在相關技術的上下文和/或本說明書中的含義一致的含義,且除非在本文中明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
本發明的實施例包括一種儲存裝置(例如,主機儲存裝置),所述儲存裝置知曉其作為儲存裝置與主機CPU之間的連線性且知曉其與一個或多個儲存裝置之間的連線性。主機儲存裝置的實施例可對一個或多個遠端儲存裝置發起資料的直接對等傳輸以提供基於策略的自主資料傳輸服務。這將主機CPU從實行另外的輸入/輸出來向主機儲存儲存裝置提供複製以及其他資料保護服務有效地卸載,從而降低了主機CPU的計算要求以及減小了由於儲存伺服器CPU對資料傳輸的參與減少而引起的儲存系統延遲。一些實施例將特定儲存協定從對於儲存裝置的CPU至SSD方法(CPU-to-SSD method)卸載到SSD至SSD方法(SSD-to-SSD method)。再一些實施例提供機會來將本機儲存裝置定義成儲存裝置廠商定義的(專有)方法。另外,再一些實施例包括一種儲存裝置,所述儲存裝置能夠使推送或拉取模型對儲存裝置之間的寫
入流量進行同步以實現資料保護目的。
圖1是資料保護系統,其中儲存伺服器的CPU控制資料的儲存。在圖1中,節點10、20及30是儲存伺服器。每一個節點10、20、30包括CPU 11、CPU 21、CPU 31、DRAM 13、DRAM 23、DRAM 33及一個或多個儲存驅動器12、22、32。如果儲存驅動器12、22、32是雙埠儲存裝置(例如,周邊元件連接快速(peripheral component interconnect express,PCIe)交換機結構、網路結構或其他適合的連接結構(connector)),則所述一個或多個儲存驅動器12、22、32可經由次要埠連接到各自相應的CPU 11、21、31。
為儲存資料,節點10的CPU 11向節點10的本地驅動器12發出寫入命令。要儲存的資料在被儲存在本地驅動器12上之前首先被快取在節點10的本地DRAM 13中。
與在本地驅動器12上進行儲存同時地,節點10的CPU 11以相同的資料發起對節點20的遠端驅動器22的寫入來滿足基於策略的重複要求。節點10的CPU 11啟用節點20的CPU 21來儲存資料。CPU 21通過CPU 21向驅動器22發出寫入命令。資料在被儲存在本地驅動器22上之前首先被快取在節點20的本地DRAM 23中。在其他實施例中,可使用雙埠驅動器來配置第二寫入,其中不涉及節點20的CPU 21。
另外,節點10的CPU 11可將資料提交給節點30上的附加驅動器。CPU 11可啟用節點30的CPU 31,節點30的CPU 31接著根據與節點20相同的過程將資料寫入到節點30的本地驅動器32。
在根據圖1的過程中,伺服器CPU 11、21及31對資料傳輸進行協調。因此,傳輸活動涉及沿著資料傳輸路徑的本地CPU快取記憶體及DRAM,且需要CPU耗用功率來進行各個本地驅動器之間的儲存。另外,可能需要另一軟體來使各個節點之間的資料儲存同步。舉例來說,儲存伺服器軟體可對複製過程的兩端進行協調以提供同步功能及非同步功能。
圖2是根據本發明實施例的驅動器至驅動器儲存系統的示意圖。在圖2中,節點100、200及300是儲存伺服器。每一個節點100、200及300包括CPU 110、CPU 210、CPU 310、DRAM 130、DRAM 230、DRAM 330及一個或多個儲存驅動器120、220、320。在一些實施例中,所述一個或多個儲存驅動器120、220、320可為SSD。在再一些實施例中,所述一個或多個儲存驅動器120、220、320可為NVMe SSD。在一些實施例中,可不包括CPU 210、310及DRAM 230、330,且節點200、300可僅包括儲存驅動器220、320。
如果儲存驅動器120、220、320是雙埠儲存裝置(例如,PCIe交換機結構、網路結構或其他適合的連接結構),則所述一個或多個儲存驅動器120、220、320可舉例來說經由次要埠連接到各自相應的CPU 110、210、310。另外,儲存驅動器120、220、320可採用PCIe直接配置、交換機結構配置或其中儲存驅動器120、220、320對等連接的任何其他配置連接到彼此。在一些實施例中,儲存驅動器120、220、320可經由專用埠或經重新程式化的交換機埠連接到彼此。儲存驅動器120、220、320可使用現有的協定或廠商專用實施方式來進行通訊。
作為對等配置的一部分的這些連接及通訊協定可驅動直接儲存存取(direct memory access,DMA)請求以及儲存驅動器120、220、320之間的同步,如以下所述。儲存驅動器120、220、320可暴露出為了實行對等連接而配置的其他配置選項。這種配置控制路徑的實例是獲得或設定log_page(peer_config)。此將是專門針對對等邏輯而定義的新的日誌頁。在一些實施例中,可使用現有的、眾所周知的及標準化的日誌頁、SMART日誌頁。作為對等配置的一部分的連接及通訊協定可允許儲存驅動器120、22、320彼此之間進行通訊、以雙模式進行配置、共用能夠實現資料傳輸的硬體資源以及提供傳送及信令機制(其在一些實施例中可為廠商專用的)。
圖3是圖2所示實施例的示意圖,其中儲存驅動器120、220、320經由專用埠或經重新程式化的交換機埠進行連接。在此種配置中,遠端驅動器220、320可附接到單獨的CPU(例如,210、310);然而,如圖3中所示,遠端驅動器220、320不需要具有單獨的CPU。(驅動器220、320被稱為遠端驅動器,這是因為驅動器220、320不直接連接到主機CPU,而是經由其各自相應的CPU 210、310或經由另一個儲存驅動器(例如,儲存驅動器120)連接到主機CPU 110。)在此實施例中,儲存伺服器100包括根複合體裝置140,根複合體裝置140將儲存伺服器100連接到交換機150,交換機150連接到主機儲存驅動器120。交換機150還連接到分別連接到儲存驅動器220、320的交換機250、350。交換機150、250、350可為PCIe交換機或其它適合的專用埠或經重新程式化的交換機埠。交換機150、250、350應支援存取控制服務
(Access Control Services,ACS)(舉例來說在使用PCIe交換機時)或者支援適合的通訊協定以允許儲存驅動器120、220、320彼此進行通訊並共用用於資料傳輸的硬體資源。舉例來說,如果交換機150、250、350是網路結構配置中的網路交換機,則驅動器120、220、320可通過網路通訊協定而非PCIe來直接網路附接到彼此。這種實施例中用於進行同步的記憶體存取將被網路記憶體映射。
一旦採用對等鏈路進行了連接,圖2與圖3所示儲存驅動器120、220、320便可進行通訊以實行基於策略的資料傳輸。這本質上在儲存驅動器120、220、320之間創建了服務品質(quality of service,QoS)通道,因為它們能夠彼此直接傳輸資料。
在一個實施例中,CPU 110、210、310可採用自上而下配置(top-down configuration)來管理儲存驅動器120、220、320之間的對等連接。舉例來說,相應的儲存驅動器120、220、320的CPU 110、210、310可管理驅動器的對等存取來進行配對。CPU 110、210、310還可對儲存驅動器120、220、320之間的相關聯的交換機150、250、350進行程式化,以允許通過所使用的通訊協議(例如,在使用PCIe交換機時為ACS)進行對等連接。或者,如果儲存驅動器120、220、320位於網路上(例如,為交換機結構配置形式),則CPU 110、210、310可對網路交換機進行程式化以實現對等連接。在一些實施例中,CPU 110可對儲存驅動器120、220、320使用設定log_page(peer_config)命令以向儲存驅動器120、220、320指示它們的對等連線性及保護群組。此命令是由主機CPU 110管理並在驅動器中實施,且可只在自上而下配
置中需要。相應的儲存驅動器120、220、320的CPU 110、210、310也可管理錯誤路徑(error path)。
在替代實施例中,儲存驅動器120、220、320可採用自下而上配置來管理儲存驅動器120、220、320之間的對等連接。儲存驅動器120、220、320可推選或以其他方式向主控制器提供從屬遠端驅動器,以例如採用獨立磁盤的冗餘陣列(Redundant Array of Independent Disk,RAID)構造形式來形成自管理集群(self-managed cluster)。在一些實施例中,儲存驅動器120(在下文中稱為主機驅動器120)可充當從屬儲存驅動器220、320的主控制器。主機驅動器120可對儲存池資源進行整合,從而提供一個管理視圖(management view)且視需要提供一個位址範圍。一旦主機驅動器120位於集群鏈上,CPU 110上的軟體便可對主機驅動器120進行程式化。在一些實施例中,log_page命令可規定及標識哪個驅動器是主機驅動器120以及哪些驅動器是遠端儲存驅動器220、320。
在自下而上配置的一些實施例中,主機驅動器120可控制資料流程且可在其本地路徑中包括資料,或者可將資料從CPU 110直接推送到終端儲存裝置220、320。推送模型的實施例可使用RAID配置。在此種實施例中,連接到CPU 110的主機驅動器120充當主控制器來提取邏輯區塊位址(logical block address,LBA)空間及資料移動。在錯誤修正(error correction,EC)/RAID0/5的情形中,一些LBA空間將位於主機驅動器120本地,而其他LBA空間位於遠端儲存驅動器220、320上。本地的資料將被寫入到主機驅動器120,而位於遠端儲存驅動器220、320上的LBA範圍中
的資料將被推送到遠端儲存驅動器220、320。此處,主機驅動器120對資料移動進行協調。
在其他實施例中,遠端驅動器220、320可將資料拉取到自己。此拉取模型的實施例可使用RAID1(複製)配置,其中控制消息被推送到儲存驅動器120、220、320且資料被拉取到遠端儲存驅動器220、320中。
推送模型與拉取模型二者均根據來自主機CPU 110的資料流程對寫入流量進行同步。
在自下而上配置的一些實施例中,主機驅動器120可控制邏輯區塊位址(LBA)資訊以及位於主機驅動器的控制記憶體緩衝器(control memory buffer,CMB)121(參見圖4)處的記憶體緩衝器。在再一些實施例中,主機驅動器120可管理錯誤路徑及替代路徑,且CPU 110可索取由主機驅動器120管理的錯誤流通知(error flow notification)。在一些實施例中,主機驅動器120可僅將可見驅動器上的錯誤作為正常錯誤流暴露給主機CPU 110。在其他實施例中,主機驅動器120可使那些驅動器上的錯誤不可見且可通過可能需要附加軟體的特殊通知來通知主機CPU 110。
在自下而上配置中,一旦儲存驅動器120、220、320被置於基於策略的資料保護方案的對等配置中,儲存驅動器120、220、320便將相對於主機CPU 110獨立地被自主驅動(且在一些情形中相對於主機CPU 110為透明的)。在儲存驅動器120、220、320相對於主機CPU 110為透明的後一種情形中,需要外部機制來發現、配置及修改保護方案。此可通過例如單獨的控制平面、
基板管理控制器(Baseboard Management Controller,BMC)或交換機管理埠來實現,以上僅為幾個實例。
一旦建立對等連接,則無論通過自上而下配置還是自下而上配置,主機驅動器120均包括可指示其他儲存伺服器200、300上的一個或多個遠端儲存驅動器220、320感知主機驅動器120的軟體。所述軟體可儲存在主機儲存驅動器120的DRAM 121的控制記憶體緩衝器122中,如圖4所示。控制記憶體緩衝器122是NVMe驅動器定義,NVMe驅動器定義是主機驅動器的DRAM 121記憶體的一部分,其可暴露到主機CPU 110以用於本發明實施例中的資料傳輸機制。CMB可用於共用控制及資料載荷包(control and data payload packets)。通知本身是針對特定傳送的(transport specific),例如,對於PCIe為事務層協定(Transaction Layer protocol,TLP)。此種組織允許主機驅動器120的控制記憶體緩衝器122的一部分用作複製及資料傳輸暫存區域(data transfer staging area)。主機驅動器120可使用控制記憶體緩衝器122來暴露資料載荷及同步記憶體指針。主機驅動器120將利用其緩衝器管理選項及控制來與所述一個或多個遠端儲存驅動器220、320進行協調,且所述一個或多個遠端儲存驅動器220、320將類似地作出回應。主機驅動器120將以這種方式暴露其緩衝器管理方案及其同步方法,從而實施有效的緩衝器管理。然而,這些機制可能不嚴格遵循現有協定的規範(例如,NVMe),且因此可被實施成專有協定或廠商專用協定。
這種對等連接有效地卸載了主機CPU 110、210、310的工作負荷,從而降低了主機CPU計算要求並且有助於減小因儲存
伺服器CPU對資料傳輸的參與減少而引起的儲存系統延遲。
圖5是繪示使用圖2或圖3所示驅動器至驅動器儲存系統來儲存資料的方法的流程圖。為在本地備份資料,節點100的CPU 110以與以上參照圖1所述的類似方式來將資料儲存在主機驅動器120中。CPU 110向主機驅動器120發出寫入命令(S1)。要儲存的資料在被儲存在主機驅動器120中之前首先被快取在節點100的本地DRAM 130中。
為遠端地儲存資料(即,為將資料儲存在儲存驅動器220、320上),當CPU 110向主機驅動器120發出寫入命令(S1)時,主機驅動器120使用對於主機CPU 110的直接記憶體存取(direct memory access,DMA)請求將要寫入的資料發送(S2)到其DRAM 121,由此觸發當前在主機伺服器的DRAM 130中的資料被寫入到主機驅動器的DRAM 121的控制記憶體緩衝器122中。主機驅動器120還觸發(S3、S4)將以下資訊通知給一個或多個遠端驅動器220、320:關於要寫入的資料、所述資料在控制記憶體緩衝器112內的位置及偏移、以及例如命名空間/邏輯單元號(logic unit number,LUN)、邏輯區塊位址偏移、位元組數目等附加詳細情況的資訊、和/或關於為了啟用儲存而可能需要的資料的任何其他資訊。所述通知本身可為主機驅動器120與遠端驅動器220、320之間的有線消息(wire message)。主機驅動器120還設定旗標(例如,主機驅動器120可使將由主機驅動器120根據基於策略的資料保護方案來寫入資料的每一個遠端驅動器220、320的引用計數遞增)來指示相關聯的儲存區塊被引用且不應過早地為被解除引用以供主機驅動器120自己進行跟蹤。
所述一個或多個遠端驅動器220、320使用所接收的資訊來以給定資訊構造並從主機驅動器控制記憶體緩衝器121發出(S5、S6)對於所述一個或多個遠端驅動器220、320各自的記憶體(221、321)的DMA請求。所提供的資訊(例如,命名空間/LUN、LBA、位元組數目等)也可在資料緩衝器之前在DMA請求中作為檔頭來提供。
一旦各個DMA完成而由此完成遠端儲存,則相關聯的一個或多個遠端驅動器220、320便向主機驅動器120發出表明所述完成的訊號(S7、S8),從而允許主機驅動器120將控制記憶體緩衝器122中的參考計數遞減。這可使用單獨的調用或者通過DMA操作直接以原子方式(atomically)操縱主機驅動器記憶體指標來進行。
以上參照圖5所述的整個過程可相對於儲存伺服器節點100、200、300透明地進行。
在以上實施例中,遠端驅動器220、320不需要具有被使能的CMB。然而,如果遠端驅動器220、320具有CMB且所述CMB被使能,則這些相應的CMB可在上述推送模型中由主機驅動器120用於複製載荷。
在其他實施例中,資料分發可採用其他方式實現,例如通過菊輪鍊(daisy-chain)或環狀(torus)方式,而非採用主機驅動器至一個或多個遠端驅動器方式。菊輪鍊及環面拓撲二者均為無交換機互連(switchless interconnect)。在菊輪鍊模型中,對於系統中所包括的任何數目的儲存驅動器而言,驅動器串聯連接,其中主機驅動器120連接到第一遠端儲存驅動器(例如,遠端驅
動器220),第一遠端儲存驅動器連接到下一個遠端儲存驅動器(例如,遠端驅動器320),以此類推。驅動器至驅動器通訊是直接的且不需要遵循基於標準的協定。例如通用序列匯流排(Universal Serial Bus,USB)、火線(FireWire)、雷電介面(Thunderbolt)及乙太網等連接是菊輪鍊中所使用的其他實例。
在環狀拓撲中,每一個儲存驅動器在並行系統組態中直接連接到其他儲存驅動器中的多於一個儲存驅動器,且在驅動器之間(1D、2D、3D、ND)不具有交換機。舉例來說,在此種配置的實施例中,主機驅動器120連接到遠端儲存驅動器220及遠端儲存驅動器320二者,儲存驅動器220連接到主機驅動器120及遠端儲存驅動器320,且遠端儲存驅動器320連接到主機驅動器120及遠端儲存驅動器220二者。由於在每一個驅動器處具有資料保護集群的足夠的配置及端點資訊,資料可採用更高效的方式在各驅動器之間分散。在這種拓撲中,也可因硬體要求降低而降低成本。另外,在這種配置中,驅動器密切接近,此可減小延遲並帶來縮放優勢(scaling benefits)。
在再一些實施例中,驅動器120、220、320可在控制之外且甚至在儲存伺服器CPU 110、210、310的視野之外另外構建專有網路。選擇現有通訊協定可能需要遵守現有協定的所有要求(包括邊角案例及錯誤情況),這可能需要在主機驅動器中具有附加的硬體/韌體資源。然而,如果主機驅動器以及所述一個或多個遠端儲存驅動器來自一個廠商,則可通過使用不受約束的廠商專用方法來放寬一些現有協議限制。這種專有定義的實例是公共的基於結構的NVMe(NVMe over Fabrics,NVMe-oF)定義及NVMe
的廠商專用實施方式,例如基於乙太網的NVMe以及基於網路的NVMe廠商專用實施方式。對於PCIe來說,基於PCI快速的管理元件傳輸協定(MCTP)可通過移除分散式管理任務組(Distributed Management Task Force,DMTF)專用定義及其所要求的相容性及時序規範而重新定義成廠商專用實施方式。這使其成為適用于本發明實施例的原始定義的精簡版本。在其他實施例中,網路互連可用於使主機驅動器能夠直接與對等遠端驅動器對話。這種專有網路可同樣利用廠商專用定義來進行簡化。
因此,與當前使用的協定傳輸相比,以上實例中所示出的專有裝置連線性可成為廠商專用的且不受公共規範的限制,從而使得廠商專用驅動器方法能夠在儲存裝置之間更有效地傳送資訊,從而提供一致的性能。
另外,利用對等儲存驅動器之間的廠商專用傳送定義,驅動器可將其原子性(atomicity)向下暴露到SSD的快閃記憶體轉換層(Flash translation layer,FTL)及其邏輯至物理映射(Logical-to-Physical mapping,L2P)提交(commit)。在進行複製時,當樣本載荷到達主機驅動器時,其可將對其映射的更新延遲,直到所有對等遠端驅動器均已與此寫入請求同步為止。如果所有對等方均成功提交了寫入,則將有一條用於更新快閃記憶體L2P映射的附加同步相關消息返回到對等方。這之所以是可能的,是因為驅動器不會將其內部配置定義暴露給外部軟體且會使所述內部配置定義在其對等方與廠商對等方之間被隱藏,其驅動器佈局上的IP保持不變。“IP”是處理器的內部電路和邏輯佈局的用語。它通常被處理器製造商視為機密。這是實現原子性的一種方
式。此外,以上實施例在資料保護樣本集(例如複製樣本集)之間提供原子性。
以上實施例提供一種主機儲存裝置及方法來使儲存裝置能夠在沒有中間CPU的情況下直接彼此定址,從而將通常需要伺服器CPU參與的資料移動活動卸載。通過卸載儲存伺服器CPU,儲存伺服器可潛在地支援更多數目的儲存裝置,或者CPU的功率可降低且仍然支援相同數目的儲存裝置。上述實施例還簡化了多個驅動器之間的主機軟體協調,且一旦建立儲存裝置同步,則主機軟體便不會影響輸入/輸出性能及延遲度量,這是因為儲存驅動器可實行資料傳輸而無需進一步涉及主機系統。
本發明實施例的可能用途包括但不限於資料複製、直接資料的快照以及間接資料的鍵數值型別用途。
儘管已闡述了本發明的示例性實施例,然而應理解,本發明並非僅限於這些示例性實施例,而是可由所屬領域中的技術人員在本發明的精神及範圍內作出各種改變及修改,本發明的精神及範圍如上文由隨附權利要求書及其等效範圍所主張。
100、200、300:節點/儲存伺服器/儲存伺服器節點
110、210、310:CPU/主機CPU/儲存伺服器CPU
120:儲存驅動器/主機儲存驅動器/驅動器/主機驅動器
220、320:儲存驅動器/遠端驅動器/驅動器/從屬儲存驅動器/終端儲存裝置/遠端儲存驅動器
130:DRAM/本地DRAM
230、330:DRAM
Claims (19)
- 一種驅動器至驅動器儲存系統,包括:主機伺服器,包括主機中央處理器及主機儲存驅動器;一個或多個遠端儲存驅動器;以及對等鏈路,將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器,其中所述主機儲存驅動器包括處理器及記憶體,其中所述記憶體包括儲存在所述記憶體上的指令,所述指令在由所述處理器執行時使所述處理器至少部分地基於所述主機中央處理器發出寫入命令而將資料從所述主機儲存驅動器經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器,其中所述寫入命令配置為觸發從所述主機儲存驅動器到所述一個或多個遠端儲存驅動器的通知,其中所述一個或多個遠端儲存驅動器包括記憶體,其中所述一個或多個遠端儲存驅動器配置為基於來自所述主機儲存驅動器的所述通知發出從所述主機儲存驅動器的所述記憶體到所述一個或多個遠端儲存驅動器中個別的記憶體的記憶體存取請求,其中所述通知包括用於所述資料的所述主機儲存驅動器的所述記憶體內的記憶體區塊的位置或偏移中的至少一者,以及其中所述主機儲存驅動器配置為用於要寫入所述資料的所述一個或多個遠端儲存驅動器來遞增計數,以指示被引用的所述記憶體區塊,以及用於所述一個或多個遠端儲存驅動器的所述記憶體存取請求的完成來遞減所述計數。
- 如申請專利範圍第1項所述的系統,其中所述記憶體是動態隨機存取記憶體。
- 如申請專利範圍第2項所述的系統,其中所述動態隨機存取記憶體包括控制記憶體緩衝器且所述指令儲存在所述控制記憶體緩衝器上。
- 如申請專利範圍第1項所述的系統,其中所述對等鏈路包括次要埠、周邊元件連接快速交換機結構、或者將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器的網路結構。
- 如申請專利範圍第1項所述的系統,其中所述對等鏈路包括專用埠或者將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器的經重新程式化的交換機埠。
- 如申請專利範圍第1項所述的系統,其中所述對等鏈路是在所述記憶體中通過一個或多個特定命令進行配置。
- 一種主機儲存驅動器,包括:對等鏈路,將所述主機儲存驅動器連接到一個或多個遠端儲存驅動器;以及處理器及記憶體,其中所述記憶體包括儲存在所述記憶體上的指令,所述指令在由所述處理器執行時使所述處理器將資料從所述主機儲存驅動器經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器,其中所述主機儲存驅動器配置為發送通知到所述一個或多個遠端儲存驅動器, 其中所述一個或多個遠端儲存驅動器包括記憶體,其中所述一個或多個遠端儲存驅動器配置為基於來自所述主機儲存驅動器的所述通知發出從所述主機儲存驅動器的所述記憶體到所述一個或多個遠端儲存驅動器中個別的記憶體的記憶體存取請求,其中所述通知包括用於所述資料的所述主機儲存驅動器的所述記憶體內的記憶體區塊的位置或偏移中的至少一者,以及其中所述主機儲存驅動器配置為用於要寫入所述資料的所述一個或多個遠端儲存驅動器來遞增計數,以指示被引用的所述記憶體區塊,以及用於所述一個或多個遠端儲存驅動器的所述記憶體存取請求的完成來遞減所述計數。
- 如申請專利範圍第7項所述的驅動器,其中所述記憶體是動態隨機存取記憶體。
- 如申請專利範圍第8項所述的驅動器,其中所述動態隨機存取記憶體包括控制記憶體緩衝器且所述指令儲存在所述控制記憶體緩衝器上。
- 如申請專利範圍第7項所述的驅動器,其中所述對等鏈路包括次要埠、周邊元件連接快速交換機結構、或者將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器的網路結構。
- 如申請專利範圍第7項所述的驅動器,其中所述對等鏈路包括專用埠或者將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器的經重新程式化的交換機埠。
- 如申請專利範圍第7項所述的驅動器,其中所述對等鏈路是在所述記憶體中通過一個或多個特定命令進行配置。
- 一種使用驅動器至驅動器儲存系統來儲存資料的方法,其中所述驅動器至驅動器儲存系統包括主機伺服器、一個或多個遠端儲存驅動器、及對等鏈路,所述主機服務器具有主機中央處理器及主機儲存驅動器,所述主機儲存驅動器包括處理器及記憶體,所述對等鏈路將所述主機儲存驅動器連接到所述一個或多個遠端儲存驅動器,所述方法包括:發起要向所述主機儲存驅動器寫入資料的寫入命令;利用直接記憶體存取將所述資料發送到所述主機儲存驅動器的所述記憶體;以及將所述資料從所述主機儲存驅動器的所述記憶體經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器,其中將所述資料從所述主機儲存驅動器的所述記憶體經由所述對等鏈路傳送到所述一個或多個遠端儲存驅動器包括:觸發從所述主機儲存驅動器到所述一個或多個遠端儲存驅動器的通知,以提供有關於所述資料的資訊,其中所述一個或多個遠端儲存驅動器包括記憶體,由所述主機儲存驅動器用於要寫入所述資料的所述一個或多個遠端儲存驅動器來遞增計數,以指示用於所述資料的所述主機儲存驅動器的所述記憶體內的記憶體區塊被引用,由所述一個或多個遠端儲存驅動器基於來自所述主機儲存驅動器的所述通知發出從所述主機儲存驅動器的所述記憶 體到所述一個或多個遠端儲存驅動器中個別的記憶體的直接記憶體存取請求,由所述主機儲存驅動器用於所述一個或多個遠端儲存驅動器的所述直接記憶體存取請求的完成來遞減所述計數,以及其中所述通知包括用於所述資料的所述主機儲存驅動器的所述記憶體內的所述記憶體區塊的位置或偏移中的至少一者。
- 如申請專利範圍第13項所述的方法,更包括:將所述主機儲存驅動器經由所述對等鏈路連接到所述一個或多個遠端儲存驅動器。
- 如申請專利範圍第13項所述的方法,更包括:在所述一個或多個遠端儲存驅動器處接收所述資訊並響應於所述資訊而發出所述直接記憶體存取。
- 如申請專利範圍第15項所述的方法,更包括:回應於所述資訊而完成所述直接記憶體存取並向所述主機儲存驅動器發出表明所述完成的訊號。
- 如申請專利範圍第13項所述的方法,其中所述主機儲存驅動器的所述記憶體是動態隨機存取記憶體。
- 如申請專利範圍第17項所述的方法,其中所述動態隨機存取記憶體包括控制記憶體緩衝器且所述資料是從所述控制記憶體緩衝器傳送。
- 如申請專利範圍第13項所述的方法,其中所述對等鏈路包括專用埠或者用於將所述主機儲存驅動器連接到所述一個或 多個遠端儲存驅動器的經重新程式化的交換機埠,且所述資料分別經由所述專用埠或所述經重新程式化的交換機埠被傳送到所述一個或多個遠端儲存驅動器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862648292P | 2018-03-26 | 2018-03-26 | |
US62/648,292 | 2018-03-26 | ||
US15/957,773 | 2018-04-19 | ||
US15/957,773 US11321249B2 (en) | 2018-03-26 | 2018-04-19 | Mechanism to autonomously manage SSDS in an array |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201945946A TW201945946A (zh) | 2019-12-01 |
TWI795491B true TWI795491B (zh) | 2023-03-11 |
Family
ID=67985075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107145535A TWI795491B (zh) | 2018-03-26 | 2018-12-18 | 驅動器至驅動器儲存系統、儲存驅動器和儲存資料的方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11321249B2 (zh) |
JP (1) | JP7311280B2 (zh) |
KR (1) | KR20190112626A (zh) |
CN (1) | CN110362515A (zh) |
TW (1) | TWI795491B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321249B2 (en) * | 2018-03-26 | 2022-05-03 | Samsung Electronics Co., Ltd. | Mechanism to autonomously manage SSDS in an array |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
US10846020B2 (en) * | 2018-11-02 | 2020-11-24 | Dell Products L.P. | Drive assisted storage controller system and method |
US11316917B2 (en) * | 2020-03-04 | 2022-04-26 | Samsung Electronics Co., Ltd. | Methods and apparatus for peer-to-peer data channels for storage devices |
US11656795B2 (en) * | 2021-01-21 | 2023-05-23 | EMC IP Holding Company LLC | Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026368A1 (en) * | 2013-07-17 | 2015-01-22 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
TW201546717A (zh) * | 2014-05-02 | 2015-12-16 | Cavium Inc | 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法 |
TW201720123A (zh) * | 2015-09-02 | 2017-06-01 | Cnex Labs Inc | 用於透過乙太式網路遠端存取記憶體及輸入/輸出之特快非揮發性記憶體控制器 |
TW201732622A (zh) * | 2016-03-07 | 2017-09-16 | 廣達電腦股份有限公司 | 可擴充集中式非揮發性記憶體儲存盒、電腦實施方法以及非暫態電腦可讀取儲存裝置 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0520263A (ja) * | 1991-07-15 | 1993-01-29 | Nec Corp | データ転送制御装置 |
KR20000021045A (ko) | 1998-09-25 | 2000-04-15 | 차동해 | 컴퓨터 제어의 이중화 방법 및 그 시스템 |
JP3617437B2 (ja) | 2000-09-13 | 2005-02-02 | 日本電気株式会社 | データコピー方法およびデータコピー用プログラムを記録したプログラム記録媒体 |
CN101187849A (zh) * | 2003-07-07 | 2008-05-28 | 日立超大规模集成电路系统株式会社 | 存储装置和存储系统 |
JP2005293435A (ja) | 2004-04-05 | 2005-10-20 | Konica Minolta Business Technologies Inc | データ転送装置およびその設定方法 |
US7334076B2 (en) * | 2005-03-08 | 2008-02-19 | Microsoft Corporation | Method and system for a guest physical address virtualization in a virtual machine environment |
US7660943B2 (en) * | 2006-02-17 | 2010-02-09 | International Business Machines Corporation | Data storage drive for automated data storage library |
US9331955B2 (en) * | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
EP2761472B1 (en) * | 2011-09-30 | 2020-04-01 | Intel Corporation | Memory channel that supports near memory and far memory access |
US9158461B1 (en) * | 2012-01-18 | 2015-10-13 | Western Digital Technologies, Inc. | Measuring performance of data storage systems |
US10651975B2 (en) * | 2012-08-02 | 2020-05-12 | Pure Storage, Inc. | Forwarding data amongst cooperative DSTN processing units of a massive data ingestion system |
US9983953B2 (en) | 2012-12-20 | 2018-05-29 | Intel Corporation | Multiple computer system processing write data outside of checkpointing |
EP2960800B1 (en) | 2013-02-20 | 2019-06-19 | Panasonic Intellectual Property Management Co., Ltd. | Wireless access device and wireless access system |
US9483431B2 (en) * | 2013-04-17 | 2016-11-01 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) |
CN103946828B (zh) | 2013-10-29 | 2017-02-22 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
WO2015138245A1 (en) | 2014-03-08 | 2015-09-17 | Datawise Systems, Inc. | Methods and systems for converged networking and storage |
US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
US9678910B2 (en) * | 2014-04-25 | 2017-06-13 | Liqid Inc. | Power handling in a scalable storage system |
US9817607B1 (en) | 2014-06-20 | 2017-11-14 | EMC IP Holding Company LLC | Optimizations to avoid intersocket links |
US10210107B2 (en) * | 2014-10-29 | 2019-02-19 | Hewlett Packard Enterprise Development Lp | Trans-fabric instruction set for a communication fabric |
US9565269B2 (en) * | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9934177B2 (en) * | 2014-11-04 | 2018-04-03 | Cavium, Inc. | Methods and systems for accessing storage using a network interface card |
US10061719B2 (en) * | 2014-12-25 | 2018-08-28 | Intel Corporation | Packed write completions |
JP6517549B2 (ja) * | 2015-03-13 | 2019-05-22 | 東芝メモリ株式会社 | メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム |
US9772794B2 (en) * | 2015-06-05 | 2017-09-26 | University Of Florida Research Foundation, Incorporated | Method and apparatus for big data cloud storage resource management |
CN106557429B (zh) | 2015-09-29 | 2019-11-05 | 华为技术有限公司 | 一种内存数据的迁移方法和节点控制器 |
TWI721319B (zh) * | 2016-06-10 | 2021-03-11 | 美商利魁得股份有限公司 | 資料儲存系統中的多埠中介件架構 |
ES2714804T3 (es) | 2016-07-06 | 2019-05-30 | Nestec Sa | Envase reciclable que comprende una bolsa flexible |
US10390114B2 (en) * | 2016-07-22 | 2019-08-20 | Intel Corporation | Memory sharing for physical accelerator resources in a data center |
US10613974B2 (en) * | 2016-10-04 | 2020-04-07 | Pure Storage, Inc. | Peer-to-peer non-volatile random-access memory |
US10860508B2 (en) * | 2017-05-25 | 2020-12-08 | Western Digital Technologies, Inc. | Offloaded disaggregated storage architecture |
US11138103B1 (en) * | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US20190034306A1 (en) * | 2017-07-31 | 2019-01-31 | Intel Corporation | Computer System, Computer System Host, First Storage Device, Second Storage Device, Controllers, Methods, Apparatuses and Computer Programs |
US10802753B2 (en) * | 2018-02-15 | 2020-10-13 | Seagate Technology Llc | Distributed compute array in a storage system |
US11054991B2 (en) * | 2018-03-21 | 2021-07-06 | Western Digital Technologies, Inc. | Data storage system scale-out with local address remapping |
US11321249B2 (en) * | 2018-03-26 | 2022-05-03 | Samsung Electronics Co., Ltd. | Mechanism to autonomously manage SSDS in an array |
US10678433B1 (en) * | 2018-04-27 | 2020-06-09 | Pure Storage, Inc. | Resource-preserving system upgrade |
US11385792B2 (en) * | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
-
2018
- 2018-04-19 US US15/957,773 patent/US11321249B2/en active Active
- 2018-12-04 KR KR1020180154812A patent/KR20190112626A/ko not_active Application Discontinuation
- 2018-12-18 TW TW107145535A patent/TWI795491B/zh active
-
2019
- 2019-03-11 JP JP2019043503A patent/JP7311280B2/ja active Active
- 2019-03-22 CN CN201910223119.8A patent/CN110362515A/zh active Pending
-
2022
- 2022-05-02 US US17/734,908 patent/US11775454B2/en active Active
-
2023
- 2023-09-27 US US18/373,711 patent/US20240020247A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150026368A1 (en) * | 2013-07-17 | 2015-01-22 | Mellanox Technologies Ltd. | Direct memory access to storage devices |
TW201546717A (zh) * | 2014-05-02 | 2015-12-16 | Cavium Inc | 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法 |
TW201720123A (zh) * | 2015-09-02 | 2017-06-01 | Cnex Labs Inc | 用於透過乙太式網路遠端存取記憶體及輸入/輸出之特快非揮發性記憶體控制器 |
TW201732622A (zh) * | 2016-03-07 | 2017-09-16 | 廣達電腦股份有限公司 | 可擴充集中式非揮發性記憶體儲存盒、電腦實施方法以及非暫態電腦可讀取儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US11775454B2 (en) | 2023-10-03 |
US20220327068A1 (en) | 2022-10-13 |
US20240020247A1 (en) | 2024-01-18 |
US11321249B2 (en) | 2022-05-03 |
US20190294565A1 (en) | 2019-09-26 |
JP2019175445A (ja) | 2019-10-10 |
CN110362515A (zh) | 2019-10-22 |
JP7311280B2 (ja) | 2023-07-19 |
TW201945946A (zh) | 2019-12-01 |
KR20190112626A (ko) | 2019-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI795491B (zh) | 驅動器至驅動器儲存系統、儲存驅動器和儲存資料的方法 | |
TW202145025A (zh) | 用於管理記憶體資源的系統以及實行遠端直接記憶體存取的方法 | |
US20210311646A1 (en) | Disaggregated memory server | |
US10205653B2 (en) | Fabric discovery for a cluster of nodes | |
CN110941576B (zh) | 具有多模pcie功能的存储控制器的系统、方法和设备 | |
US8949486B1 (en) | Direct memory access to storage devices | |
TW202145767A (zh) | 用於提供儲存資源的元件、系統以及方法 | |
US20110004732A1 (en) | DMA in Distributed Shared Memory System | |
US10970207B2 (en) | Storage system with interconnected solid state disks | |
TW201727479A (zh) | 內含目錄狀態之更新技術(二) | |
CN104011696A (zh) | 用于隐式存储器注册的显式流控制 | |
JP2015518203A (ja) | マルチキャストdmaおよび統合されたアドレス空間を有するストレージシステム | |
US20200019521A1 (en) | METHOD OF ACCESSING A DUAL LINE SSD DEVICE THROUGH PCIe EP AND NETWORK INTERFACE SIMULTANEOUSLY | |
WO2014005261A1 (zh) | 存储扩展装置及服务器 | |
WO2017101080A1 (zh) | 处理写请求的方法、处理器和计算机 | |
US20220137864A1 (en) | Memory expander, host device using memory expander, and operation method of sever system including memory expander | |
US20190018814A1 (en) | Networked storage system with access to any attached storage device | |
US20190303316A1 (en) | Hardware based virtual memory management |