KR20170108739A - DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법 및 시스템 - Google Patents
DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법 및 시스템Info
- Publication number
- KR20170108739A KR20170108739A KR1020160064509A KR20160064509A KR20170108739A KR 20170108739 A KR20170108739 A KR 20170108739A KR 1020160064509 A KR1020160064509 A KR 1020160064509A KR 20160064509 A KR20160064509 A KR 20160064509A KR 20170108739 A KR20170108739 A KR 20170108739A
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- data
- logical block
- host
- dix
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
-
- 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/062—Securing 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0647—Migration mechanisms
-
- 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
-
- 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/0661—Format or protocol conversion 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/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Transfer Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Retry When Errors Occur (AREA)
Abstract
DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법 및 시스템이 제공된다. DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법은 호스트가 장치와 통신을 시작하고, 상기 장치는, 통신되는 데이터에 상응하는 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하고, 상기 호스트 및 상기 장치는, 상기 통신이 수행되는 동안 상기 생성된 메타 데이터(MetaData, MD) - 로지컬 블록(Logical Block, LB) 쌍(pair)을 전송하는 것을 포함하고, 상기 호스트 및 상기 장치는 DIX(Data Integrity Extension) 모드에서 통신하고, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍은 순차적으로 전송되는 것을 포함한다.
Description
본 발명은 데이터 스토리지 시스템에 관한 것이다. 좀 더 구체적으로, 본 발명은 데이터 스토리지 시스템에서 데이터 보호에 관한 것이다.
NVMe(Non-Volatile Memory Express)는 SSD(Solid State Devices)를 위해 개발된 커뮤니케이션 인터페이스 프로토콜로서, PCIe 버스를 통해 SSD에 엑세스하기 위한 사양을 정의할 수 있다. 다른 커뮤니케이션 인터페이스와 같이, NVMe도 또한 데이터 보안/보호를 위한 대비를 갖추고 있다. 널리 사용되는 대중적인 데이터 보호 기술은 DIX(Data Integrity Extension)이다. DIX는 메타 데이터 (MD; Meta Data) 정보로서 커뮤니케이션 된 데이터와 연관된 검사 합(checksum)에 기초하여 데이터 완전성(data integrity) 체크를 가능하게 한다. DIX 모드에서 동작하는 호스트는 로지컬 버퍼(LBA 호스트 버퍼) 내에 로지컬 블록(예를 들어, 커뮤니케이션될 실제 데이터)을 저장하고, 보호 정보(예를 들어 MD)는 메타데이터 호스트 버퍼(MD host buffer)에 저장한다. 장치는 LBA 호스트 버퍼로부터 연속적으로 LBA 데이터를 읽고, MD 호스트 버퍼로부터 MD 데이터를 연속적으로 읽을 수 있다.
DIX 모드의 동작은 데이터의 종단간(end to end) 데이터 완전성 및 보호를 보장할 수 있지만, 실행 단계에서 확실한 약점이 있다. 예를 들어, 모든 LBA 데이터를 모든 후의 장치는, MD 호스트 버퍼로부터 상응하는 MD 데이터가 수집될 때까지, LBA 데이터를 버퍼에 내부적으로 저장해야한다. 나아가, 확실한 LBA 및 상응하는 MD가 처리되는 동안, 남아있는 LBA 및 MD는 장치 내의 버퍼에 저장된다. 버퍼 요구사항은, 별도의 하드웨어를 요구할 수 있다. 나아가, 버퍼링 시간은 전체 에러 처리를 지연시킬 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 DIX(Data Integrity Extension)를 지지하는 스토리지 시스템에서 데이터 보호를 간소화하기 위한 메커니즘을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 DIX를 지지하는 스토리지 시스템에서 로지컬 블록(LB)-메타 데이터(MD) 쌍의 형태로 데이터를 생성 및 전송하는 메커니즘을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법은, 호스트가 장치와 통신을 시작하고, 장치는, 통신되는 데이터에 상응하는 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하고, 호스트 및 상기 장치는, 통신이 수행되는 동안 생성된 메타 데이터(MetaData, MD) - 로지컬 블록(Logical Block, LB) 쌍(pair)을 전송하는 것을 포함하고, 호스트 및 장치는 DIX(Data Integrity Extension) 모드에서 통신하고, 메타 데이터(MD) - 로지컬 블록(LB) 쌍은 순차적으로 전송되는 것을 포함한다.
몇몇 실시예에서, 데이터 전송 커맨드(data transfer command)에 해당하는 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 것은, 상기 장치가 상기 호스트로부터 상기 데이터 전송 커맨드를 수신하고, 상기 장치가 상기 데이터 전송 커맨드에 상응하는 적어도 하나의 로지컬 블록을 전송하고, 상기 장치가 상기 적어도 하나의 로지컬 블록에 상응하는 메타 데이터를 전송하고, 상기 장치가 상기 적어도 하나의 로지컬 블록 및 상기 상응하는 메타 데이터의 블록을 이용하여, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 것을 더 포함할 수 있다.
몇몇 실시예에서, 상기 장치는, 데이터 전송 커맨드와 매치(match)되는 상기 데이터의 에러 체크를 수행하고, 상기 에러 체크는, 상기 통신되는 데이터의 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍에 대한 보호 정보의 값(value of a protection information)을 계산하고, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍의 상기 메타 데이터와 상기 보호 정보의 계산된 값을 비교하고, 상기 보호 정보의 계산된 값이 상기 메타 데이터와 일치하지 않은 경우 적어도 하나의 에러가 존재한다고 결정하는 것을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예들에 따른 DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 시스템은, 통신되는 데이터에 상응하는 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 시스템의 장치 및 상기 시스템의 장치와 DIX 모드에서 통신하는 시스템의 호스트를 포함하고, 상기 생성된 메타 데이터(MD) - 로지컬 블록(LB) 쌍은, 상기 통신 중에, 상기 호스트 및 상기 장치에 의해 순차적으로 전송될 수 있다.
몇몇 실시예에서, 상기 생성된 메타 데이터(MD) - 로지컬 블록(LB) 쌍은, 데이터 전송 커맨드(data transfer command)에 상응하고, 상기 장치는, 상기 호스트로부터 상기 데이터 전송 커맨드를 수신하고, 상기 데이터 전송 커맨드에 상응하는 적어도 하나의 로지컬 블록을 전송하고, 상기 적어도 하나의 로지컬 블록에 상응하는 메타 데이터를 전송하고, 상기 상응하는 메타 데이터 및 상기 적어도 하나의 로지컬 블록을 이용하여 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성할 수 있다.
몇몇 실시예에서, 상기 시스템은, 상기 장치가, 상기 통신되는 데이터에 대한 보호 정보(protection information)의 값을 계산하고, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍의 상기 메타 데이터와 상기 계산된 보호 정보 값을 비교하고, 상기 정보 보호 값과 상기 메타 데이터가 불일치하면 적어도 하나의 에러가 존재한다고 결정하는 것에 의해, 데이터 전송 커맨드와 매치(match)되는 상기 데이터의 에러 체크를 수행하는 것을 더 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템의 블록 다이어그램이다.
도 2는 본 발명의 몇몇 실시예들에 따른 장치의 구성요소를 도시한 블록 다이어그램이다.
도 3은 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템을 이용하는 DIX 모드에서 데이터 전송 프로세스와 연관된 단계들을 도시한 순서도이다.
도 4는 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템의 장치와 호스트 사이에서 DIX 모드 데이터 전송을 도시한 예시적인 도면이다.
도 2는 본 발명의 몇몇 실시예들에 따른 장치의 구성요소를 도시한 블록 다이어그램이다.
도 3은 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템을 이용하는 DIX 모드에서 데이터 전송 프로세스와 연관된 단계들을 도시한 순서도이다.
도 4는 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템의 장치와 호스트 사이에서 DIX 모드 데이터 전송을 도시한 예시적인 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 층 및 영역들의 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하에서, 도 1 내지 도 4를 참조하여 본 발명의 몇몇 실시예들에 따른 NVMe 인터페이스 스토리지 시스템에서 데이터 전송(transfer) 관리를 위한 메커니즘에 대해 설명한다. 유사한 참조 번호는 도면 전체에 걸쳐 일관되게 같은 구성요소를 지칭할 수 있다.
도 1은 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템의 블록 다이어그램이다. 도 2는 본 발명의 몇몇 실시예들에 따른 장치의 구성요소를 도시한 블록 다이어그램이다. 도 3은 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템을 이용하는 DIX 모드에서 데이터 전송 프로세스와 연관된 단계들을 도시한 순서도이다. 도 4는 본 발명의 몇몇 실시예들에 따른 데이터 전송 시스템의 장치와 호스트 사이에서 DIX 모드 데이터 전송을 도시한 예시적인 도면이다.
도 1을 참조하면, 본 발명의 기술적 사상에 따른 데이터 전송 시스템(100)은 적어도 하나의 호스트(101) 및 적어도 하나의 장치(102)를 포함할 수 있다. 적어도 하나의 장치(102)는 적절한 인터페이스를 이용하여 적어도 하나의 호스트(101)와 연결되어 있을 수 있다.
인터페이스는 파라미터에 관하여 요구사항들을 제공할 수 있는 그 어떤 인터페이스일 수 있다. 파라미터는, 예를 들어, 대역폭, 프로토콜 및 보안일 수 있으나, 이에 제한되는 것은 아니다. 인터페이스는, 예를 들어, NVMe 유형의 인터페이스일 수 있다.
호스트(101)는 적절한 포맷으로 데이터를 저장할 수 있다. 호스트(101)는 또한, 데이터 액세스를 간소화하기 위해, 적절한 메모리 어드레싱 기술을 이용할 수 있다. 호스트(101)는 데이터 완전성 및 보호를 위해 DIX를 이용할 수 있다. 호스트(101)는 메타 데이터(Meta Data, MD)를 저장할 수 있다. 메타 데이터(MD)는 보호 정보(protection information)의 값을 포함할 수 있다. 보호 정보는 적어도 하나의 파라미터 관점에서 정의될 수 있다. 적어도 하나의 파라미터는, 예를 들어, 로지컬 블록(Logical Blocks, LB)으로서 저장되는 실제 데이터의 보호를 위한 CRC(Cyclic Redundancy Check)일 수 있으나, 이에 제한되는 것은 아니다.
호스트(101)는 호스트와 장치 사이에서 데이터 전송이 시작되도록 하기 위해, 장치(102)에 대해 읽기/쓰기 커맨드를 발행할 수 있다. 쓰기 커맨드의 경우, 장치(102)는 로지컬 블록(LB) 및 이에 상응하는 메타 데이터(MD)를 호스트(101)로부터 호출(fetch)할 수 있다. 읽기 커맨드의 경우, 장치(102)는 로지컬 블록(LB) 및 이에 상응하는 메타 데이터(MD)를 호스트(101)에 기록할 수 있다.
몇몇 실시예에서, 데이터는, 읽기 및 쓰기 커맨드 모두의 경우, 로지컬 블록(LB) - 메타 데이터(MD) 쌍으로서, 순차적으로 전송될 수 있다. 로지컬 블록(LB) - 메타 데이터(MD) 쌍의 개수는 로지컬 블록(LB) 및 이에 상응하는 메타 데이터(MD)의 개수에 기초하여 달라질 수 있다. 로지컬 블록(LB) 및 이에 상응하는 메타 데이터(MD)의 개수는, 호스트(101)에 의해 발행된 커맨드의 일부로서, 호스트(101)와 장치(102) 사이에서 커뮤니케이션되는 데이터와 일치할 수 있다.
장치(102)는 데이터에 오류가 생겼는지 아닌지 결정하기 위해, 에러 체크를 수행할 수 있다. 장치(102)는 호스트(101)에 응답을 보낼 수 있다. 응답은, 데이터에 오류가 생겼는지 아닌지를 나타내는 것일 수 있다.
호스트(101)는 명칭 공간 포맷 커맨드(Namespace Format command)를 이용하여 DIX 모드에 대해 장치(102)의 명칭 공간(namespace)을 구성할 수 있다. DIX 모드에서, 호스트(101)의 로지컬 블록(LB) 및 메타 데이터(MD)는 별개의 버퍼에 저장될 수 있다. 예를 들어, 별개의 버퍼는, 각각 호스트 로지컬 버퍼 및 호스트 메타 데이터 버퍼일 수 있다.
몇몇 실시예에서, 호스트(101)는 DIF 모드에 대해 장치(102)의 명칭 공간을 구성할 수 있다. 메타 데이터(MD)는 로지컬 블록(LB) 데이터에 인접하게 저장될 수 있다. 몇몇 실시예에서, 호스트(101)는 DIF 모드에서 장치(102)의 몇몇 명칭 공간 및 DIX 모드에서 장치(102)의 몇몇 다른 명칭 공간을 포맷할 수 있다. 장치(102)는 또한, DIX 모드에서, 로지컬 블록(LB) - 메타 데이터(MD) 쌍의 형태로 데이터를 처리 및 호출할 수 있다.
도 2를 참조하면, 장치(102)는 인터페이스 모듈(201), 스토리지 매체(storage medium)(202), 데이터 이동 모듈(203), 및 프로세싱 모듈(204)을 포함할 수 있다.
인터페이스 모듈(201)은 적어도 하나의 적절한 인터페이스를 이용하여, 적어도 하나의 호스트(101)와 연결되도록 하기 위해, 장치(102)를 위한 적어도 하나의 인터페이스를 제공할 수 있다. 예를 들어, 적어도 하나의 적절한 인터페이스는 통신 채널일 수 있다. 예를 들어, 통신 채널은 PCIe를 이용하는 NVMe에 기초할 수 있다.
스토리치 매체(202)는 스토리지 공간일 수 있다. 스토리지 공간에는 다양한 파라미터의 관점에서 정의되는 그 어떤 상세한 가이드라인들을 따르는 디지털 정보가 저장될 수 있다. 다양한 파라미터는, 예를 들어, 저장되는 데이터를 위한 데이터 보안 및 스토리지 공간의 양일 수 있으나, 이에 제한되는 것은 아니다. 스토리지 매체(202)는 또한, 저장되는 데이터에 관계된 메타 데이터(MD)뿐만 아니라 로지컬 블록(LB)도 저장할 수 있다.
프로세싱 모듈(204)은 호스트(101)로부터 커맨드를 처리 및 호출할 수 있다. 프로세싱 모듈(204)은, 수신된 데이터 전송 커맨드와 일치하는 메타 데이터(MD) 및 로지컬 블록(LB)을 식별할 수 있다. 프로세싱 모듈(204)은 읽기 커맨드의 경우, 스토리지 매체(202)로부터 로지컬 블록(LB) - 메타 데이터(MD) 쌍을 호출하기 위해, 데이터 이동 모듈(203)에 지시를 내릴 수 있다. 또한, 프로세싱 모듈(204)은, 읽기 커맨드의 경우, 호출된 로지컬 블록(LB) - 메타 데이터(MD) 쌍을 호스트(101)로 전송할 수 있다. 프로세싱 모듈(204)은 쓰기 커맨드의 경우, 호스트(101)로부터 로지컬 블록(LB) - 메타 데이터(MD) 쌍을 호출하기 위해 데이터 이동 모듈(203)에 지시를 내릴 수 있다. 또한, 프로세싱 모듈(204)은, 쓰기 커맨드의 경우, 호출된 로지컬 블록(LB) - 메타 데이터(MD) 쌍을 스토리지 매체(202)에 기록할 수 있다.
데이터 이동 모듈(203)은 인터페이스 모듈(201)의 특징에 기초하여, 읽기 및 쓰기 커맨드 모두를 위해 동시에 동작할 수 있다.
도 3을 참조하면, 단계(302)에서, 장치(102)는 호스트(101)로부터 데이터 전송 커맨드를 전송할 수 있다. 장치(102)는 수신된 데이터 전송 커맨드(data transfer command)에 응답하여 커맨드를 처리할 수 있다. 장치(102)는 또한, 수신된 데이터 전송 커맨드에 응답하여, 호스트(101)로부터 전송되거나, 호스트(101)에 발송되어야 하는 데이터를 식별할 수 있다.
단계(304)에서, 장치(102)는 DIX 케이스에서, 로지컬 블록(LB) - 메타 데이터(MD) 쌍 데이터 전송이 순차적인 것을 보장하기 위해, 호스트 어드레스를 생성할 수 있다.
단계(306)에서, 장치(102)는, 호스트(101)와 장치(102) 사이에서 로지컬 블록(LB) 데이터를 전송할 수 있다. 호스트(101)와 장치(102) 사이의 로지컬 블록(LB) 데이터 이동 방향은, 커맨드의 유형에 의해 결정될 수 있다. 다시 말해서, 호스트(101)와 장치(102) 사이의 로지컬 블록(LB) 데이터 이동 방향은, 커맨드가 읽기 커맨드(Read Command, RD)인지 또는 쓰기 커맨드(Write Command, WR)인지에 의해 결정될 수 있다.
단계(308)에서, 장치(102)는 또한, 호스트(101)와 장치(102) 사이에서, 전송될 로지컬 블록(LB) 데이터에 상응하는 메타 데이터(MD)를 전송할 수 있다. 호스트(101)와 장치(102) 간의 메타 데이터(MD) 이동 방향은, 커맨드의 유형에 의해 결정될 수 있다. 다시 말해서, 호스트(101)와 장치(102) 사이의 메타 데이터(MD) 이동 방향은, 커맨드가 읽기 커맨드(Read Command, RD)인지 또는 쓰기 커맨드(Write Command, WR)인지에 의해 결정될 수 있다.
단계(310)에서, 장치(102)는 로지컬 블록(LB) - 메타 데이터(MD) 쌍에 대해 종단 보호 체크(end to end protection check)를 수행할 수 있다. 몇몇 실시예에서, 종단 보호 체크는 어떤 불일치에 대해, 해당 메타 데이터 정보와 함께 전송된 데이터에 대해 계산된 보호 정보의 값을 비교하는 것을 포함할 수 있다. 어떤 불일치는, 에러를 나타낼 수 있다. 나아가, 만약 어떤 에러가 발견되면, 장치(102)는 호스트(101)에 대해 메시지를 통해 에러를 보고할 수 있다. 메시지는 예를 들어, 해당 커맨드에 대한 완성 엔트리(completion entry)일 수 있다.
몇몇 실시예에서, DIX 모드에서 호스트(101)와 장치(102) 사이의 로지컬 블록(LB) - 메타 데이터(MD) 쌍을 전송하는 것은, 로지컬 블록(LB) 및 해당 메타 데이터(MD)를 호스트(101) 내의 별개의 버퍼에 전송하는 것을 포함할 수 있다. DIX 모드에서 로지컬 블록(LB)/메타 데이터(MD) 별개의 호스트 어드레스에 대한 순차적인 쌍으로서의 로지컬 블록(LB) 및 해당 메타 데이터(MD)를 함께 전송하는 것은, 버퍼링 요구사항을 제거할 수 있고, 또한 전체적인 데이터 처리 속도를 높힐 수 있다.
방법(300)에서의 다양한 동작들은 제시된 순서와 같이 수행되거나 이와 다른 순서대로 혹은 동시에 수행될 수 있다. 나아가, 몇몇 실시예에서, 도 3에 도시된 동작 중 일부는 생략될 수도 있다.
도 4를 참조하면, 본 발명의 기술적 사상에 따른 메커니즘에서, DIX 모드 데이터 전송은, 호스트(101)와 장치(102) 사이에 로지컬 블록(LB) - 메타 데이터(MD) 쌍의 형태로, 순차적으로 데이터를 전송 및/또는 수신하는 것을 포함할 수 있다. DIX 모드에서 이러한 순서는, 장치(102)에 의해 읽기 커맨드(RD) 및 쓰기 커맨드(WR)를 따라갈 수 있다.
DIX에서 로지컬 블록(LB) - 메타 데이터(MD) 쌍의 형태로 데이터 전송이 가능하도록 함으로써 동작의 DIF 모드를 지지하는 장치는, 동작의 DIX 모드를 또한 지지하는 것이 허여될 수 있다. 이는, 장치(102) 내에서 게이트 개수(gate count)를 절약할 수 있다.
나아가, 장치(102) 내에서 로지컬 블록(LB) - 메타 데이터(MD) 쌍의 버퍼링 요구사항을 제거함으로써, 전체적인 데이터 전송 및 종단 체크를 위해 요구되는 시간이 감소될 수 있다. 또한, DIX 모드에서 로지컬 블록(LB) - 메타 데이터(MD) 쌍으로서 데이터를 전송하는 것은, 그 어떤 에러를 즉시 처리할 수 있기 때문에, 에러를 처리하고 보고하는데에 소요되는 시간을 줄일 수 있다.
본 명세서에 개시된 실시예들은 적어도 하나의 하드웨어 장치에서 실행되는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 본 명세서에 개시된 실시예들은 네트워크 구성요소들을 제어하기 위한 네트워크 관리 기능들을 수행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1에 도시된 네트워크 구성요소들은, 적어도 하나의 하드웨어 장치 또는 하드웨어 장치와 소프트웨어 모듈의 조합일 수 있는 블록들을 포함할 수 있다.
본 명세서에 개시된 실시예들은 NVMe 인터페이스에서 데이터 보호를 위한 메커니즘을 구체화하고 있다. 메커니즘은 DIX 모드 동작에서, 로지컬 블록(LB) - 메타 데이터(MD) 쌍으로서 로지컬 블록(LB) 및 해당 메타 데이터(MD)를 함께 전송할 수 있고, 이를 가능케하는 시스템을 제공할 수 있다. 그러므로, 보호의 범위는, 그러한 시스템 및, 더 나아가, 내부에 메시지를 갖는 컴퓨터로 판독 가능한 수단에까지 연장될 수 있음을 이해하여야 한다. 컴퓨터로 판독 가능한 수단은, 프로그램이 서버, 모바일 장치 또는 임의의 적절한 프로그램 가능한 장치에서 실행될 때, 방법의 하나 이상의 단계를 실현하기 위한 프로그램 코드를 포함할 수 있다.
방법은 시스템과 시스템 내에 기록된 소프트웨어 프로그램을 함께 이용하는 선호되는 실시예에서 구현될 수 있다. 시스템과 시스템 내에 기록된 소프트웨어 프로그램은 예를 들어, VHDL(Very high speed integrated circuit Hardware Description Language) 또는 다른 프로그래밍 언어가 있을 수 있다. 또는 방법은, 적어도 하나의 하드웨어 장치에서 실행될 수 있는 몇몇의 소프트웨어 모듈 또는 하나 이상의 VHDL에 의해 구현될 수 있다.
하드웨어 장치는, 예를 들어, 어떤 종류의 개인용 컴퓨터 또는 서버와 같은 컴퓨터 또는 그들의 조합으로, 예를 들어, 하나의 프로세서와 두 개의 FPGA 등을 포함하는 프로그램될 수 있는 어떤 종류의 장치일 수 있다. 장치는 예를 들어, ASIC와 같은 하드웨어 수단 또는 하드웨어와 호스트웨어 수단의 조합(ASIC와 FPGA) 또는 적어도 하나의 마이크로프로세서와 메모리에 위치하는 소프트웨어 모듈을 포함하는 적어도 하나의 메모리일 수 있는 수단들을 포함할 수 있다. 따라서, 수단은 적어도 하나의 하드웨어 수단 또는 적어도 하나의 하드웨어 겸 소프트웨어 수단일 수 있다.
본 명세서에 개시된 방법의 실시예들은, 하드웨어 자체만으로 구현될 수 있고, 또는 하드웨어 일부 및 소프트웨어 일부에 의해 구현될 수 있다. 또는, 실시예는 예를 들어, 복수의 CPU를 이용하는 상이한 하드웨어 장치들에 의해 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
101: 호스트
102: 장치
201: 인터페이스 모듈 202: 스토리지 매체
203: 데이터 이동 모듈
201: 인터페이스 모듈 202: 스토리지 매체
203: 데이터 이동 모듈
Claims (6)
- 호스트가 장치와 통신을 시작하고,
상기 장치는, 통신되는 데이터에 상응하는 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하고,
상기 호스트 및 상기 장치는, 상기 통신이 수행되는 동안 상기 생성된 메타 데이터(MetaData, MD) - 로지컬 블록(Logical Block, LB) 쌍(pair)을 전송하는 것을 포함하고,
상기 호스트 및 상기 장치는 DIX(Data Integrity Extension) 모드에서 통신하고,
상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍은 순차적으로 전송되는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법. - 제 1항에 있어서,
데이터 전송 커맨드(data transfer command)에 해당하는 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 것은,
상기 장치가 상기 호스트로부터 상기 데이터 전송 커맨드를 수신하고,
상기 장치가 상기 데이터 전송 커맨드에 상응하는 적어도 하나의 로지컬 블록을 전송하고,
상기 장치가 상기 적어도 하나의 로지컬 블록에 상응하는 메타 데이터를 전송하고,
상기 장치가 상기 적어도 하나의 로지컬 블록 및 상기 상응하는 메타 데이터의 블록을 이용하여, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 것을 더 포함하는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법. - 제 1항에 있어서,
상기 장치는, 데이터 전송 커맨드와 매치(match)되는 상기 데이터의 에러 체크를 수행하고,
상기 에러 체크는,
상기 통신되는 데이터의 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍에 대한 보호 정보의 값(value of a protection information)을 계산하고, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍의 상기 메타 데이터와 상기 보호 정보의 계산된 값을 비교하고, 상기 보호 정보의 계산된 값이 상기 메타 데이터와 일치하지 않은 경우 적어도 하나의 에러가 존재한다고 결정하는 것을 포함하는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법. - 통신되는 데이터에 상응하는 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는 시스템의 장치; 및
상기 시스템의 장치와 DIX 모드에서 통신하는 시스템의 호스트를 포함하고,
상기 생성된 메타 데이터(MD) - 로지컬 블록(LB) 쌍은, 상기 통신 중에, 상기 호스트 및 상기 장치에 의해 순차적으로 전송되는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 시스템. - 제 4항에 있어서,
상기 생성된 메타 데이터(MD) - 로지컬 블록(LB) 쌍은, 데이터 전송 커맨드(data transfer command)에 상응하고, 상기 장치는, 상기 호스트로부터 상기 데이터 전송 커맨드를 수신하고, 상기 데이터 전송 커맨드에 상응하는 적어도 하나의 로지컬 블록을 전송하고, 상기 적어도 하나의 로지컬 블록에 상응하는 메타 데이터를 전송하고, 상기 상응하는 메타 데이터 및 상기 적어도 하나의 로지컬 블록을 이용하여 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍을 생성하는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 시스템. - 제 4항에 있어서,
상기 시스템은,
상기 장치가, 상기 통신되는 데이터에 대한 보호 정보(protection information)의 값을 계산하고, 상기 메타 데이터(MD) - 로지컬 블록(LB) 쌍의 상기 메타 데이터와 상기 계산된 보호 정보 값을 비교하고, 상기 정보 보호 값과 상기 메타 데이터가 불일치하면 적어도 하나의 에러가 존재한다고 결정하는 것에 의해, 데이터 전송 커맨드와 매치(match)되는 상기 데이터의 에러 체크를 수행하는 것을 더 포함하는, DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201641009471 | 2016-03-18 | ||
IN201641009471 | 2016-03-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170108739A true KR20170108739A (ko) | 2017-09-27 |
Family
ID=59855565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160064509A KR20170108739A (ko) | 2016-03-18 | 2016-05-26 | DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법 및 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170269858A1 (ko) |
KR (1) | KR20170108739A (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109213772B (zh) * | 2018-09-12 | 2021-03-26 | 华东师范大学 | 数据存储方法及NVMe存储系统 |
KR102686917B1 (ko) | 2018-10-31 | 2024-07-19 | 삼성전자주식회사 | 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
-
2016
- 2016-05-26 KR KR1020160064509A patent/KR20170108739A/ko unknown
- 2016-11-09 US US15/346,782 patent/US20170269858A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170269858A1 (en) | 2017-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112543925B (zh) | 用于使用专用低延迟链路的多个硬件加速器的统一地址空间 | |
US8473816B2 (en) | Data verification using checksum sidefile | |
JP5107880B2 (ja) | データ転送処理装置及び方法 | |
KR101196547B1 (ko) | 결정론적 sas 검색 및 구성을 위한 방법 | |
CN111258493B (zh) | 控制器、存储器控制器、存储设备以及操作控制器的方法 | |
WO2012050935A2 (en) | Apparatus, system, and method for data transformations within a data storage device | |
TWI510932B (zh) | 塊儲存閘道模組、儲存中介系統、雲端儲存系統、提供對塊儲存的存取的方法、儲存中介方法與內容遞送裝置 | |
US9734028B2 (en) | Reverse resynchronization by a secondary data source when a data destination has more recent data | |
US20180113635A1 (en) | Memory controller utilizing scatter gather list techniques | |
WO2016048725A9 (en) | Memory write management in a computer system | |
CN110059042B (zh) | 一种uart设备的数据dma传输方法 | |
US20060190772A1 (en) | File control system and file control device | |
CN111625181B (zh) | 数据处理方法、独立硬盘冗余阵列控制器和数据存储系统 | |
US9442672B2 (en) | Replicating data across controllers | |
CN104317716B (zh) | 分布式节点间的数据传输方法及分布式节点设备 | |
WO2013084571A1 (ja) | 情報機器間のデータ転送のデータ欠落を検出する方法 | |
KR20170013319A (ko) | 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템 | |
US20090210634A1 (en) | Data transfer controller, data consistency determination method and storage controller | |
CN115145492A (zh) | 一种raid控制器下物理盘管理的方法和系统 | |
KR20170108739A (ko) | DIX (Data Integrity Extension )모드의 NVMe(Non-Volatile Memory Express) 인터페이스에서 데이터를 전송하기 위한 방법 및 시스템 | |
KR101576833B1 (ko) | 이중화 장치에서 수신 버퍼를 이용한 통신 데이터의 중복 검사 방법 | |
US20140289489A1 (en) | Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media | |
JP4394533B2 (ja) | ディスクアレイシステム | |
US9715477B2 (en) | Shared-bandwidth multiple target remote copy | |
CN112463067A (zh) | 一种NVMe-oF场景下的数据保护方法及设备 |