KR20110056275A - 원본 pit 데이터를 저장하는 장치 및 방법 - Google Patents
원본 pit 데이터를 저장하는 장치 및 방법 Download PDFInfo
- Publication number
- KR20110056275A KR20110056275A KR1020117001672A KR20117001672A KR20110056275A KR 20110056275 A KR20110056275 A KR 20110056275A KR 1020117001672 A KR1020117001672 A KR 1020117001672A KR 20117001672 A KR20117001672 A KR 20117001672A KR 20110056275 A KR20110056275 A KR 20110056275A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- store
- pit data
- target
- segment
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 104
- 238000004891 communication Methods 0.000 claims description 31
- 238000013500 data storage Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims 5
- 238000007796 conventional method Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/02—Addressing or allocation; Relocation
-
- 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/065—Replication 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
-
- 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/0608—Saving storage space on 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0686—Libraries, e.g. tape libraries, jukebox
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
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)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
블록 크기를 설정하는 단계 및 (S)개의 블록을 포함하는 소스 데이터 저장소 및 (T)개의 블록을 포함하는 대상 데이터 저장소를 제공하는 단계를 포함하는 PIT(point-in-time) 데이터를 저장하는 방법이 개시된다. 방법은 (B)개의 소스 저장소 세그먼트 및 (B)개의 대상 저장소 세그먼트를 구성하고, 제(i) 소스 저장소 세그먼트에 기록된 원본 PIT 데이터에 대한 업데이트된 PIT 데이터를 수신한다. 방법은 이어서 제(j) 대상 저장소 세그먼트가 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정한다. 제(j) 대상 저장소 세그먼트가 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 경우, 방법은 원본 PIT 데이터를 그 제(j) 대상 저장소 세그먼트에 기록한다.
Description
본 발명은 일반적으로 원본 PIT(point-in-time) 데이터를 저장하는 장치 및 방법에 관한 것이다.
데이터 저장 시스템은 하나 이상의 호스트 컴퓨터 시스템에 의해 제공된 정보를 저장하는 데 사용된다. 이러한 데이터 저장 시스템은 정보를 복수의 데이터 저장 장치에 기록하라는 요청 및 복수의 데이터 저장 장치로부터 정보를 검색하라는 요청을 수신한다.
PIT(point-in-time) 데이터는 지정된 때에 발생되는 데이터를 포함한다. 이러한 PIT 데이터의 일부가 나중에 업데이트될 때, 원본 PIT 데이터는, 업데이트되기 전에, 먼저 대상 데이터 저장소(target data storage)에 복사된다. 이 절차는 원본 PIT 데이터를 보존한다. 원본 PIT 데이터가 랜덤한 순서로 업데이트되는 경우, 종래의 방법을 사용하면, 업데이트될 원본 PIT 데이터가 유사한 랜덤한 순서로 대상 저장소(target storage)에 기록된다.
출원인의 발명은 PIT(point-in-time) 데이터를 저장하는 방법을 포함한다. 방법은 블록 크기를 설정하고, (S)개의 블록을 포함하는 소스 데이터 저장소(source data storage) 및 (S)보다 작은 (T)개의 블록을 포함하는 대상 데이터 저장소를 제공하며, (B)개의 소스 저장소 세그먼트(source storage segment) 및 (B)개의 대상 저장소 세그먼트(target storage segment)를 구성하고, 각각의 소스 저장소 세그먼트는 [(S)/(B)]개의 블록을 포함하며, 각각의 대상 저장소 세그먼트는 [(T)/(B)]개의 블록을 포함한다.
방법은 제(i) 소스 저장소 세그먼트에 기록된 원본 PIT 데이터에 대한 업데이트된 PIT 데이터를 수신하고, (j)를 (i)로 설정하며, 제(j) 대상 저장소 세그먼트가 원본 PIT 데이터를 저장할 가용 저장 용량(available storage capacity)을 포함하는지를 판정한다. 제(j) 대상 저장소 세그먼트가 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 경우, 방법은 원본 PIT 데이터를 제(j) 대상 저장소 세그먼트에 기록한다.
본 발명의 이점이 쉽게 이해될 수 있도록 하기 위해, 이상에서 간략히 기술된 본 발명의 보다 상세한 설명이 첨부 도면에 예시된 구체적인 실시 형태를 참조하여 행해질 것이다. 이들 도면이 발명의 대표적인 실시 형태만을 도시하고 있고 따라서 발명의 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 잘 알 것이며, 발명이 첨부 도면을 사용하여 더 구체적이고 상세하게 기술되고 설명될 것이다.
도 1은 2개의 클러스터를 포함하는 출원인의 저장소 라이브러리(storage library)의 일 실시 형태를 도시한 블록도.
도 2는 PIT 데이터에 대한 소스 데이터 저장소 및 대상 데이터 저장소를 도시한 도면으로서, 업데이트된 원본 PIT 데이터는, 소스 데이터 저장소에서 업데이트되기 전에, 소스 데이터 저장소로부터 대상 데이터 저장소로 복사됨.
도 3은 5개의 저장소 세그먼트를 포함하도록 구성된 도 2의 소스 데이터 저장소를 도시한 도면.
도 4는 5개의 저장소 세그먼트를 포함하도록 구성된 도 2의 대상 데이터 저장소를 도시한 도면.
도 5는 출원인의 방법의 특정 단계들을 요약한 순서도.
도 6은 출원인의 방법의 부가적인 단계들을 요약한 순서도.
도 7은 출원인의 방법을 사용하는 제1 실시예를 도시한 도면.
도 8은 출원인의 방법을 사용하는 제2 실시예를 도시한 도면.
도 9a는 출원인의 방법을 사용하는 제3 실시예의 일부분을 도시한 도면.
도 9b는 출원인의 방법을 사용하는 제3 실시예의 일부분을 도시한 도면.
도 10a는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 10b는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 10c는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 11은 출원인의 방법을 사용하는 제5 실시예를 도시한 도면.
도 12는 출원인의 방법을 사용하여 제1 실시예, 제2 실시예, 제3 실시예, 제4 실시예 및 제5 실시예에서 대상 저장소에 복사된 원본 PIT 데이터의 후속 판독 동작을 도시한 도면.
도 13은 종래 기술의 방법을 사용하여 제1 실시예, 제2 실시예, 제3 실시예, 제4 실시예 및 제5 실시예에서 대상 저장소에 복사된 원본 PIT 데이터의 후속 판독 동작을 도시한 도면.
도 1은 2개의 클러스터를 포함하는 출원인의 저장소 라이브러리(storage library)의 일 실시 형태를 도시한 블록도.
도 2는 PIT 데이터에 대한 소스 데이터 저장소 및 대상 데이터 저장소를 도시한 도면으로서, 업데이트된 원본 PIT 데이터는, 소스 데이터 저장소에서 업데이트되기 전에, 소스 데이터 저장소로부터 대상 데이터 저장소로 복사됨.
도 3은 5개의 저장소 세그먼트를 포함하도록 구성된 도 2의 소스 데이터 저장소를 도시한 도면.
도 4는 5개의 저장소 세그먼트를 포함하도록 구성된 도 2의 대상 데이터 저장소를 도시한 도면.
도 5는 출원인의 방법의 특정 단계들을 요약한 순서도.
도 6은 출원인의 방법의 부가적인 단계들을 요약한 순서도.
도 7은 출원인의 방법을 사용하는 제1 실시예를 도시한 도면.
도 8은 출원인의 방법을 사용하는 제2 실시예를 도시한 도면.
도 9a는 출원인의 방법을 사용하는 제3 실시예의 일부분을 도시한 도면.
도 9b는 출원인의 방법을 사용하는 제3 실시예의 일부분을 도시한 도면.
도 10a는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 10b는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 10c는 출원인의 방법을 사용하는 제4 실시예의 일부분을 도시한 도면.
도 11은 출원인의 방법을 사용하는 제5 실시예를 도시한 도면.
도 12는 출원인의 방법을 사용하여 제1 실시예, 제2 실시예, 제3 실시예, 제4 실시예 및 제5 실시예에서 대상 저장소에 복사된 원본 PIT 데이터의 후속 판독 동작을 도시한 도면.
도 13은 종래 기술의 방법을 사용하여 제1 실시예, 제2 실시예, 제3 실시예, 제4 실시예 및 제5 실시예에서 대상 저장소에 복사된 원본 PIT 데이터의 후속 판독 동작을 도시한 도면.
이하의 설명에서, 동일한 참조 번호는 동일하거나 유사한 구성요소를 나타내는 도면을 참조하여 본 발명의 바람직한 실시 형태가 기술된다. 본 명세서의 전반에 걸쳐 언급되는 "일 실시 형태", "실시 형태" 또는 유사한 문구는 그 실시 형태와 관련하여 기술되는 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시 형태에 포함되어 있다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 나오는 "일 실시 형태에서", "실시 형태에서" 및 유사한 문구 모두가 동일한 실시 형태를 언급하는 것일 수 있지만, 꼭 그러한 것은 아니다.
발명의 기술된 특징, 구조 또는 특성이 하나 이상의 실시 형태에서 임의의 적절한 방식으로 결합될 수 있다. 이하의 설명에서, 발명의 실시예의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 언급된다. 그렇지만, 당업자라면 발명이 구체적인 상세 중 하나 이상을 사용하지 않거나 다른 방법, 구성요소, 물질 등을 사용하여 실시될 수 있다는 것을 잘 알 것이다. 다른 경우에, 발명의 측면들을 모호하게 하는 것을 피하기 위해, 공지의 구조, 물질 또는 동작이 상세히 도시되거나 기술되어 있지 않다.
본 명세서에 포함된 개략적인 순서도는 일반적으로 논리적 순서도로서 제시되어 있다(예를 들어, 도 5 및 도 6). 그에 따라, 도시된 순서 및 표시된 단계들이 제시된 방법의 일 실시 형태를 나타낸다. 예시된 방법의 하나 이상의 단계 또는 그의 일부분과 기능, 논리 또는 효과가 동등한 다른 단계 및 방법이 생각될 수 있다. 또한, 이용되는 형식 및 심볼은 방법의 논리적 단계를 설명하기 위해 제공된 것이며, 방법의 범위를 제한하지 않는다는 것을 잘 알 것이다. 순서도에서 다양한 화살표 유형 및 라인 유형이 이용될 수 있지만, 이들이 대응하는 방법의 범위를 제한하지 않는다는 것을 잘 알 것이다(예를 들어, 도 5 및 도 6). 실제로, 몇몇 화살표 또는 다른 커넥터가 방법의 논리적 흐름만을 나타내는 데 사용될 수 있다. 예를 들어, 화살표는 도시된 방법의 열거된 단계들 간의 명시되지 않은 지속기간의 대기 기간 또는 모니터링 기간을 나타낼 수 있다. 또한, 특정의 방법이 행해지는 순서가 도시된 대응하는 단계의 순서를 엄격히 준수할 수도 있고 그렇지 않을 수 있다.
도 2를 참조하면, 소스 데이터 저장소(220)에 기록되는 PIT(point-in-time) 데이터는 지정된 때에 생성된 데이터를 포함한다. 이러한 원본 PIT 데이터의 일부가 나중에 업데이트될 때, 원본 PIT 데이터는, 업데이트되기 전에, 먼저 대상 데이터 저장소(230)에 복사된다. 이 절차는 원본 PIT 데이터를 보존한다.
특정 실시 형태에서, 출원인의 방법은 씬 프로비저닝 방식의 PIT 복사 절차(thinly provisioned point-in-time copy procedure)를 이용하고, 여기서 방법은 단지 업데이트되는 원본 PIT 데이터를 복사하는 데 필요하게 되는 일정량의 대상 저장소를 할당한다. 출원인의 방법은 의사-순서 시퀀스(pseudo-ordered sequence)로 원본 PIT 데이터를 대상 저장소에 기록한다. 이 의사-순서의 원본 PIT 데이터를 나중에 순차적으로 판독하는 것은 종래 기술의 PIT 데이터 복사 방법과 비교할 때 감소된 탐색 거리 및 시간을 필요로 한다.
도 5는 출원인의 방법에서의 초기 단계들을 요약한 것이다. 이제 도 5를 참조하면, 단계(510)에서, 방법은 원본 PIT 데이터를 포함하는 소스 데이터 저장소 및 대상 데이터 저장소를 제공하며, 여기서 업데이트될 원본 PIT 데이터는 먼저 소스 데이터 저장소로부터 대상 데이터 저장소로 복사될 것이다. 단계(520)에서, 방법은 블록 크기를 설정하고, 여기서 그 블록 크기는 복수의 저장 주소(storage address)를 포함한다. 특정 실시 형태에서, 단계(520)의 블록 크기는 지정된 수의 블록 ID(blockid)를 포함한다. 특정 실시 형태에서, 단계(520)의 블록 크기는 지정된 수의 트랙 번호를 포함한다. 특정 실시 형태에서, 단계(520)의 블록 크기는 지정된 수의 개별 저장소 블록을 포함한다.
특정 실시 형태에서, 단계(520)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(520)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(520)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(520)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
예를 들어, 도 2는 소스 데이터 저장소(210) 및 대상 데이터 저장소(230)를 도시하고 있으며, 여기서 소스 데이터 저장소(210)는 (S)개의 저장소 블록(220)을 포함하고, 대상 데이터 저장소(230)는 (T)개의 저장소 블록(240)을 포함한다. 도 2의 예시된 실시 형태에서, 소스 저장소 블록(source storage block)(220)은 전체적으로 대상 저장소 블록(target storage block)(240)보다 더 많은 저장 용량(storage capacity)을 포함한다.
특정 실시 형태에서, 소스 데이터 저장소(210)와 대상 데이터 저장소(230)는 모두 동일한 데이터 저장소 라이브러리에 배치된다. 특정 실시 형태에서, 소스 데이터 저장소(210)와 대상 데이터 저장소(230)는 서로 다른 데이터 저장소 라이브러리에 배치된다. 특정 실시 형태에서, 소스 데이터 저장소가 하나 이상의 자기 정보 저장 매체, 하나 이상의 광 정보 저장 매체, 하나 이상의 전자 정보 저장 매체, 및 하나 이상의 홀로그래픽 데이터 저장 매체로 구성되는 그룹으로부터 선택된다. 특정 실시 형태에서, 소스 데이터 저장소는 하나 이상의 제1 정보 저장 매체를 포함하고, 대상 데이터 저장소는 하나 이상의 제2 정보 저장 매체를 포함하며, 여기서 제1 정보 저장 매체와 제2 정보 저장 매체는, 즉 자기 디스크 및 자기 테이프와 같이, 그 종류가 다르다.
이제 도 1을 참조하면, 특정 실시 형태에서, 소스 데이터 저장소(210) 및 대상 데이터 저장소(230)는 호스트 컴퓨터(390)(도 1)와 같은 하나 이상의 호스트 컴퓨터와 통신하고 있는 데이터 저장소 라이브러리(100)(도 1)와 같은 데이터 저장소 라이브러리에 배치된다. 도 1의 예시된 실시 형태에서, 데이터 저장소 라이브러리(100)는 제1 클러스터(101A) 및 제2 클러스터(101B)를 포함하며, 여기서 클러스터(101A, 101B)는 동일한 하우징에 배치되어 있다. 도 1의 예시된 실시 형태에서, 데이터 저장 시스템(100)은 4개의 호스트 베이(host bay)(101, 106, 111, 116)에 배치된 복수의 호스트 어댑터(host adapter)(102 - 105, 107 - 110, 112 - 115, 117 - 120)를 포함한다. 다른 실시 형태에서, 출원인의 데이터 저장 시스템은 16개 미만의 호스트 어댑터를 포함한다. 출원인의 시스템의 임의의 실시 형태에서 배치된 호스트 어댑터의 수에 상관없이, 그 호스트 어댑터들 각각은 중앙 처리/캐시 요소(130, 140) 모두에 똑같이 액세스할 수 있는 공유 리소스를 포함한다.
각각의 호스트 어댑터는 하나 이상의 Fibre Channel 포트, 하나 이상의 FICON 포트, 하나 이상의 ESCON 포트, 또는 하나 이상의 SCSI 포트를 포함할 수 있다. 각각의 클러스터가 임의의 호스트 어댑터로부터의 I/O를 처리할 수 있도록, 그리고 어느 한 클러스터의 저장소 제어기 부분이 데이터 저장 시스템(100)과 상호 연결된 모든 물리적 및/또는 논리적 통신 경로에 대한 통신 경로 오류율을 모니터링할 수 있도록, 각각의 호스트 어댑터는 상호연결 버스(121)를 통해 두 클러스터들(101A, 101B) 모두에 연결된다.
저장소 제어기 부분(130)은 프로세서(132) 및 캐시(134)를 포함한다. 특정 실시 형태에서, 저장소 제어기 부분(130)은 컴퓨터 판독가능 매체(133)를 추가로 포함한다. 특정 실시 형태에서, 컴퓨터 판독가능 매체(133)는 랜덤 액세스 메모리를 포함한다. 특정 실시 형태에서, 컴퓨터 판독가능 매체(133)는 비휘발성 메모리를 포함한다.
저장소 제어기 부분(140)은 프로세서(142) 및 캐시(144)를 포함한다. 특정 실시 형태에서, 저장소 제어기 부분(140)은 컴퓨터 판독가능 매체(143)를 추가로 포함한다. 특정 실시 형태에서, 컴퓨터 판독가능 매체(143)는 랜덤 액세스 메모리를 포함한다. 특정 실시 형태에서, 컴퓨터 판독가능 매체(143)는 비휘발성 메모리를 포함한다.
I/O 부분(160)은 장치 어댑터(165, 166, 167, 168)와 같은 복수의 장치 어댑터를 포함한다. I/O 부분(170)은 장치 어댑터(175, 176, 177, 178) 등의 복수의 장치 어댑터를 더 포함한다.
출원인의 시스템의 특정 실시 형태에서, 하나 이상의 호스트 어댑터, 저장소 제어기 부분(130) 및 하나 이상의 장치 어댑터는 출원인의 데이터 저장 시스템에 배치된 하나의 카드 상에 함께 패키징되어 있다. 이와 유사하게, 특정 실시 형태에서, 하나 이상의 호스트 어댑터, 저장소 제어기 부분(140) 및 하나 이상의 장치 어댑터는 출원인의 데이터 저장 시스템에 배치된 다른 카드 상에 배치되어 있다. 이들 실시 형태에서, 출원인의 데이터 저장소 라이브러리(100)는 복수의 데이터 저장 장치와 상호 연결된 2개의 카드를 포함한다.
도 5를 재차 참조하면, 단계(530)에서, 방법은 (B)개의 저장소 세그먼트를 설정하고, 여기서 (B)는 2와 같거나 그보다 크고, (T)와 같거나 그보다 작다. 특정 실시 형태에서, 단계(530)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(530)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(530)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(530)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
예를 들어, 도 3의 예시된 실시 형태에서, 소스 데이터 저장소(210)는 10개의 저장소 블록, 즉 소스 저장소 블록(305, 315, 325, 335, 345, 355, 365, 375, 385, 395)을 포함하는 것으로 도시되어 있다. 게다가, 도 3의 예시된 실시 형태에서, 저장 주소(S0 내지 S99)는 저장소 블록(305)에 존재한다. 이와 유사하게, 저장 주소(S100 내지 S199, S200 내지 S299, S300 내지 S399, S400 내지 S499, S500 내지 S599, S600 내지 S699, S700 내지 S799, S800 내지 S899, S900 내지 S999)는 소스 저장소 블록(315, 325, 335, 345, 355, 365, 375, 385, 395)에 각각 존재한다.
또한, 도 3의 예시된 실시 형태에서, 저장소 세그먼트의 수 (B)는 5로 설정되어 있다. 소스 저장소 세그먼트(1)는 소스 저장소 블록(305, 315)을 포함한다. 이와 유사하게, 소스 저장소 세그먼트(2, 3, 4, 5)는 소스 저장소 블록(325/335, 345/355, 365/375, 385/395)을 각각 포함한다.
도 4의 예시된 실시 형태에서, 대상 데이터 저장소(230)는 5개의 저장소 블록, 즉 대상 저장소 블록(410, 420, 430, 440, 450)을 포함하는 것으로 도시되어 있다. 각각의 대상 저장소 블록의 저장 용량은 동일하며, 각각의 대상 저장소 블록의 저장 용량은 각각의 소스 저장소 블록의 저장 용량과 동일하다.
또한, 도 4의 예시된 실시 형태에서, 대상 데이터 저장소(230)는 5개의 대상 저장소 세그먼트를 포함하는 것으로 도시되어 있다. 대상 저장소 세그먼트(1)는 대상 저장소 블록(410)을 포함한다. 이와 유사하게, 대상 저장소 세그먼트(2, 3, 4, 5)는 대상 저장소 블록(420, 430, 440, 450)을 각각 포함한다.
재차 도 5를 참조하면, 단계(540)에서, 방법은 제(i) 저장소 세그먼트에 위치하는 하나 이상의 저장 주소에 기록될 업데이트된 PIT(point-in-time) 데이터를 수신한다. 특정 실시 형태에서, 단계(540)의 업데이트된 PIT 데이터는 소스 데이터 저장소 및/또는 대상 데이터 저장소를 포함하는, 데이터 저장소 라이브러리(100) 등의 데이터 저장소 라이브러리에 의해 수신된다. 특정 실시 형태에서, 단계(540)의 업데이트된 PIT 데이터는 소스 데이터 저장소 및/또는 대상 데이터 저장소를 포함하는 데이터 저장소 라이브러리와 통신하고 있는, 호스트 컴퓨터(390, 도 1) 등의 호스트 컴퓨터에 의해 생성 및 제공된다.
단계(550)에서, 방법은 소스 데이터 저장소로부터 원본 PIT 데이터를 검색하고, 여기서 그 원본 PIT 데이터는 단계(540)의 업데이트된 PIT 데이터로 수정될 것이다. 특정 실시 형태에서, 단계(550)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(550)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(550)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(550)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
단계(560)에서, 방법은 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하는지를 판정하며, 여기서 (j)는 초기에 (i)로 설정된다. 특정 실시 형태에서, 단계(560)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(560)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(560)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(560)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(560)에서, 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하는 것으로 판정하는 경우, 방법은 단계(560)로부터 단계(570)로 진행하고, 단계(570)에서 방법은 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 제(j) 대상 데이터 저장소에 인코딩한다. 방법은 단계(570)로부터 단계(540)로 진행하여 본 명세서에 기술된 바와 같이 계속한다.
특정 실시 형태에서, 단계(570)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(570)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(570)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(570)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(560)에서, 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하지 않는 것으로 판정하는 경우, 방법은 단계(560)에서 단계(580)로 진행하고, 단계(580)에서 방법은 (j)가 (B)와 같은지를 판정한다. 특정 실시 형태에서, 단계(580)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(580)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(580)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(580)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(580)에서, (j)가 (B)와 같은 것으로 판정하는 경우, 방법은 단계(580)에서 단계(610, 도 6)로 진행한다. 이와는 달리, 방법이 단계(580)에서 (j)가 (B)와 같지 않은 것으로 판정하는 경우, 방법은 단계(580)로부터 단계(590)로 진행하고, 단계(590)에서 방법은 (j)를 1 만큼 증가시킨다. 방법은 단계(590)로부터 단계(560)로 진행하여 본 명세서에 기술된 바와 같이 계속한다.
특정 실시 형태에서, 단계(590)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(590)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(590)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(590)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
이제 도 6을 참조하면, 단계(610)에서 방법은 (j)를 (i-1)로 설정한다. 특정 실시 형태에서, 단계(610)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(610)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(610)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(610)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
단계(620)에서, 방법은 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하는지를 판정한다. 특정 실시 형태에서, 단계(620)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(620)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(620)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(620)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(620)에서, 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하는 것으로 판정하는 경우, 방법은 단계(620)로부터 단계(630)로 진행하고, 단계(630)에서 방법은 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 제(j) 대상 데이터 저장소 세그먼트에 인코딩한다. 방법은 단계(630)로부터 단계(540)로 진행하여 본 명세서에 기술된 바와 같이 계속한다.
특정 실시 형태에서, 단계(630)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(630)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(630)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(630)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(620)에서, 제(j) 대상 저장소 세그먼트가 단계(550)에서 제(i) 소스 저장소 세그먼트로부터 검색된 원본 PIT 데이터를 인코딩할 저장 용량을 포함하지 않는 것으로 판정하는 경우, 방법은 단계(620)로부터 단계(640)로 진행하고, 단계(640)에서 방법은 (j)가 (1)과 같은지를 판정한다. 특정 실시 형태에서, 단계(640)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(640)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(640)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(640)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
방법이, 단계(640)에서, (j)가 (1)과 같은 것으로 판정하는 경우, 방법은 단계(640)로부터 단계(650)로 진행하고, 단계(650)에서 방법은 오류 메시지를 생성한다. 방법은 단계(650)로부터 단계(540)로 진행하여 본 명세서에 기술된 바와 같이 계속한다.
특정 실시 형태에서, 단계(650)의 오류 메시지는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 제공된다. 특정 실시 형태에서, 단계(650)의 오류 메시지는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 제공된다. 특정 실시 형태에서, 단계(650)의 오류 메시지는 단계(540)의 업데이트된 PIT 데이터를 제공했던 호스트 컴퓨터에 제공된다.
이와는 달리, 방법이, 단계(640)에서, (j)가 (1)과 같지 않은 것으로 판정하는 경우, 방법은 단계(640)로부터 단계(660)로 진행하고, 단계(660)에서 방법은 (j)를 1만큼 감소시킨다. 방법은 단계(660)로부터 단계(620)로 진행하여 본 명세서에 기술된 바와 같이 계속한다.
특정 실시 형태에서, 단계(660)는 소스 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(660)는 대상 데이터 저장소를 포함하는 저장소 라이브러리에 배치된 제어기에 의해 수행된다. 특정 실시 형태에서, 단계(660)는 소스 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다. 특정 실시 형태에서, 단계(660)는 대상 데이터 저장소를 포함하는 저장소 라이브러리와 통신하고 있는 호스트 컴퓨터에 의해 수행된다.
도 5 및 도 6의 방법을 어떻게 구현하는지를 당업자에게 추가적으로 설명하기 위해 이하의 실시예가 제시된다. 그렇지만, 이들 실시예는 발명의 범위를 제한하기 위한 것이 아니다.
실시예 I
이제 도 7을 참조하면, 단계(540)에서 방법은 저장 주소(S325-S380)에 인코딩된 원본 PIT 데이터를 수정하는 데 사용될 업데이트된 PIT 데이터를 수신한다. 도 3을 참조하면, 저장 주소(S325-S380)는 소스 저장소 블록(335)에 위치하고, 소스 저장소 블록(335)은 소스 저장소 세그먼트(2)에 구성되어 있다. 따라서, (i)는 2이다. 단계(560)에서, 방법은 대상 저장소 세그먼트(2)가 저장 주소(S325-S380)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(2)가 충분한 저장 용량을 포함하는 것으로 판정하면, 도 7은 저장 주소(S325-S380)에 인코딩된 원본 PIT 데이터가 단계(570)에서 대상 저장소 세그먼트(2)에 복사되고 있는 것을 도시하고 있다.
실시예 II
이제 도 8을 참조하면, 단계(540)에서 방법은 저장 주소(S720-S780)에 인코딩된 원본 PIT 데이터를 수정하는 데 사용될 업데이트된 PIT 데이터를 수신한다. 도 3을 참조하면, 저장 주소(S720-S780)는 소스 저장소 블록(375)에 위치하고, 소스 저장소 블록(375)은 소스 저장소 세그먼트(4)에 구성되어 있다. 따라서, (i)는 4이다.
단계(560)에서, 방법은 대상 저장소 세그먼트(4)가 저장 주소(S720-S780)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(4)가 충분한 저장 용량을 포함하는 것으로 판정하면, 도 8은 저장 주소(S720-S780)에 인코딩된 원본 PIT 데이터가 단계(570)에서 대상 저장소 세그먼트(4)에 복사되고 있는 것을 도시하고 있다.
실시예 III
이제 도 9a를 참조하면, 단계(540)에서 방법은 저장 주소(S600-S650)에 인코딩된 원본 PIT 데이터를 수정하는 데 사용될 업데이트된 PIT 데이터를 수신한다. 도 3을 참조하면, 저장 주소(S600-S650)는 소스 저장소 블록(365)에 위치하고, 소스 저장소 블록(365)은 소스 저장소 세그먼트(4)에 구성되어 있다. 따라서, (i)는 4이다.
단계(560)에서, 방법은 대상 저장소 세그먼트(4)가 저장 주소(S600-S650)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(4)가 충분한 저장 용량을 포함하지 않는 것으로 판정하면, 도 8은 저장 주소(S600-S650)에 인코딩된 원본 PIT 데이터가 대상 저장소 세그먼트(4)에 복사될 수 없다는 것을 도시하고 있다. 단계(580)에서, 방법은 (j)의 값인 4가 (B)의 값인 5와 같지 않은 것으로 판정한다.
따라서, 단계(590)에서 (j)가 1만큼 증가되고, 단계(560)에서 방법은 대상 저장소 세그먼트(5)가 저장 주소(S600-S650)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(5)가 충분한 저장 용량을 포함하는 것으로 판정하면, 도 9b는 저장 주소(S600-S650)에 인코딩된 원본 PIT 데이터가 단계(570)에서 대상 저장소 세그먼트(5)에 복사되고 있는 것을 도시하고 있다.
실시예 IV
이제 도 10a를 참조하면, 단계(540)에서 방법은 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터를 수정하는 데 사용될 업데이트된 PIT 데이터를 수신한다. 도 3을 참조하면, 저장 주소(S651-S699)는 소스 저장소 블록(365)에 위치하고, 소스 저장소 블록(365)은 소스 저장소 세그먼트(4)에 구성되어 있다. 따라서, (i)는 4이다. 단계(560)에서, 방법은 대상 저장소 세그먼트(4)가 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(4)가 충분한 저장 용량을 포함하지 않는 것으로 판정하면, 도 10a는 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터가 대상 저장소 세그먼트(4)에 복사될 수 없다는 것을 도시하고 있다.
단계(580)에서, 방법은 (j)의 값인 4가 (B)의 값인 5와 같지 않은 것으로 판정한다. 따라서, 단계(590)에서 (j)가 1 만큼 증가되고, 단계(560)에서 방법은 대상 저장소 세그먼트(5)가 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(5)가 충분한 저장 용량을 포함하지 않는 것으로 판정하면, 도 10b는 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터가 대상 저장소 세그먼트(5)에 복사될 수 없다는 것을 도시하고 있다. 단계(580)에서, 방법은 (j)의 값인 5가 (B)의 값인 5와 같은 것으로 판정한다.
단계(610)에서, 방법은 (j)를 3, 즉 (i-1)로 설정한다. 단계(620)에서, 방법은 대상 저장소 세그먼트(3)가 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(3)가 충분한 저장 용량을 포함하는 것으로 판정하면, 도 10c는 저장 주소(S651-S699)에 인코딩된 원본 PIT 데이터가 단계(630)에서 대상 저장소 세그먼트(3)에 복사되고 있는 것을 도시하고 있다.
실시예 V
이제 도 11을 참조하면, 단계(540)에서 방법은 저장 주소(S025-S080)에 인코딩된 원본 PIT 데이터를 수정하는 데 사용될 업데이트된 PIT 데이터를 수신한다. 도 3을 참조하면, 저장 주소(S025-S080)는 소스 저장소 블록(305)에 위치하고, 소스 저장소 블록(305)은 소스 저장소 세그먼트(1)에 구성되어 있다. 따라서, (i)는 1이다.
단계(560)에서, 방법은 대상 저장소 세그먼트(1)가 저장 주소(S025-S080)에 인코딩된 원본 PIT 데이터를 저장할 충분한 저장 용량을 포함하는지를 판정한다. 대상 저장소 세그먼트(1)가 충분한 저장 용량을 포함하는 것으로 판정하면, 도 11은 저장 주소(S025-S080)에 인코딩된 원본 PIT 데이터가 대상 저장소 세그먼트(1)에 복사되고 있는 것을 도시하고 있다.
실시예 VI
이제 도 12를 참조하면, 대상 데이터 저장소(310)에 기록된 원본 PIT 데이터가 판독될 때, 그 원본 PIT 데이터는 나중에 순차적으로, 즉 소스 데이터 저장소(210)에 원래 기록된 순서로 판독된다. 실시예 1, 실시예 2, 실시예 3, 실시예 4 및 실시예 5에서 복사된 원본 PIT 데이터를 사용하여, 도 12에 도시된 "판독 순서"는 대상 저장소 세그먼트(1), 대상 저장소 세그먼트(2), 대상 저장소 세그먼트(4), 대상 저장소 세그먼트(5) 및 대상 저장소 세그먼트(3)이다. 이 판독 시퀀스는 총 2번의 "건너뛰기(skip)"를 포함한다. "건너뛰기"란, 판독 헤드가 제1 대상 데이터 세그먼트에 인코딩된 데이터를 판독하고, 어떤 대상 데이터 세그먼트를 건너뛰고, 이어서 제2 대상 데이터 세그먼트에 인코딩된 데이터를 판독하는 것을 의미한다.
실시예 VII
이제 도 13을 참조하면, 원본 PIT 데이터를 업데이트하기 전에 그 원본 PIT 데이터를 복사하기 위해 종래의 방법을 사용하여, 업데이트된 PIT 데이터가 수신된 것과 동일한 순서로 원본 PIT 데이터가 대상 데이터 저장소에 기록된다. 도 13은 실시예 1, 실시예 2, 실시예 3, 실시예 4 및 실시예 5의 업데이트된 PIT 데이터가 수신된 순서로 대상 데이터 저장소(320)에 기록되어 있는 것을 도시하고 있다. 그 원본 PIT 데이터는 나중에 순차적으로, 즉 소스 데이터 저장소(210)에 원래 기록된 순서로 판독된다.
실시예 1, 실시예 2, 실시예 3, 실시예 4 및 실시예 5에서 대상 데이터 저장소 블록에 복사된 원본 PIT 데이터를 사용할 때, 종래 기술의 방법을 사용하는 도 13에 도시된 "판독 순서"는 대상 블록(5), 대상 블록(1), 대상 블록(3) 대상 블록(4) 그리고 대상 블록(2)이다. 이 종래 기술의 판독 시퀀스는 총 5번의 "건너뛰기"를 포함한다.
실시예 VII 및 실시예 VIII의 총 "건너뛰기" 횟수를 비교하는 것은 출원인의 방법의 유용성을 보여준다. 출원인의 방법은 의사-순서 시퀀스로 원본 PIT 데이터를 대상 데이터 저장소에 복사한다. 이 의사-순서 시퀀스의 후속하는 판독은, 종래 기술의 방법을 사용하여 대상 데이터 저장소 블록에 복사된 원본 PIT 데이터의 판독에 대해, 판독 헤드가 이동해야만 하는 거리를 감소시킨다. 당업자라면 후속하는 판독 동작 동안에 판독 헤드가 이동해야만 하는 거리를 감소시키는 것이 후속하는 판독 동작을 수행하는 데 필요한 시간을 필연적으로 감소시킨다는 것을 잘 알 것이다.
특정 실시 형태에서, 도 5 및 도 6에서 언급된 개개의 단계들은 결합되거나, 생략되거나, 또는 그 순서가 조정될 수 있다.
특정 실시 형태에서, 출원인의 발명은 컴퓨터 판독가능 매체(133, 143 및/또는 396)에 각각 존재하는 명령어(136, 도 1) 및/또는 명령어(146, 도 1) 및/또는 명령어(398)와 같은 명령어를 포함하고, 그 명령어는, 도 5에 언급된 단계들(520, 530, 540, 550, 560, 570, 580, 및/또는 590) 중 하나 이상 및/또는 도 6에 언급된 단계들(610, 620, 630, 640, 650, 및/또는 660) 중 하나 이상을 수행하기 위해, 프로세서(132, 142, 및/또는 394)와 같은 프로세서에 의해 각각 실행된다.
다른 실시 형태에서, 출원인의 발명은 임의의 다른 컴퓨터 프로그램 제품에 존재하는 명령어를 포함하고, 그 명령어는, 도 5에 언급된 단계들(520, 530, 540, 550, 560, 570, 580, 및/또는 590) 중 하나 이상 및/또는 도 6에 언급된 단계들(610, 620, 630, 640, 650, 및/또는 660) 중 하나 이상을 수행하기 위해, 저장소 라이브러리(100, 도 1) 또는 호스트 컴퓨터(390, 도 1)의 외부에 또는 그 내부에 있는 컴퓨터에 의해 실행된다.
어느 경우든지, 명령어는, 예를 들어, 자기 정보 저장 매체, 광 정보 저장 매체, 전자 정보 저장 매체, 기타 등등을 포함하는 컴퓨터 판독가능 매체에 인코딩될 수 있다. "전자 저장 매체"란, 예를 들어 하나 이상의 장치일 수 있으나 이에 한정되지 않으며, 이러한 장치는 PROM, EPROM, EEPROM, 플래시 PROM, 컴팩트 플래시(compactflash), 스마트 미디어(smartmedia), 기타 등등과 같은 것일 수 있으나 이에 한정되지 않는다.
본 발명의 바람직한 실시 형태가 상세히 설명되어 있지만, 이하의 특허청구범위에 기술된 본 발명의 범주를 벗어나지 않는 범위 내에서 그 실시 형태에 대한 여러 수정 및 개조가 당업자에게 안출될 수 있다는 것이 명백할 것이다.
Claims (10)
- PIT(point-in-time) 데이터를 저장하는 방법으로서,
블록 크기를 설정하는 단계;
(S)개의 블록을 포함하는 소스 데이터 저장소를 제공하는 단계;
(S)보다 작은 (T)개의 블록을 포함하는 대상 데이터 저장소를 제공하는 단계;
(B)개의 소스 저장소 세그먼트 및 (B)개의 대상 저장소 세그먼트를 구성하는 단계 - 각각의 소스 저장소 세그먼트는 [(S)/(B)]개의 블록을 포함하고, 각각의 대상 저장소 세그먼트는 [(T)/(B)]개의 블록을 포함함 - ;
제(i) 소스 저장소 세그먼트에 기록된 원본 PIT 데이터에 대한 업데이트된 PIT 데이터를 수신하는 단계;
(j)를 (i)로 설정하는 단계;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
를 포함하고,
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하지 않는 경우,
(j)를 1 만큼 증가시키는 단계;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 확인하는 단계;
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 복사하는 단계;
(j)가 (B)와 같은지를 판정하는 단계; 및
(j)가 (B)와 같지 않은 경우, 상기 증가시키는 단계, 상기 확인하는 단계 및 상기 복사하는 단계를 반복하는 단계
를 더 포함하며,
(j)가 (B)와 같은 경우,
(j)를 (i-1)로 설정하는 단계;
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
를 더 포함하는, PIT 데이터를 저장하는 방법. - 제1항에 있어서, (B)는 (T)와 같은, PIT 데이터를 저장하는 방법.
- 제1항에 있어서,
상기 소스 데이터 저장소 및 상기 대상 데이터 저장소를 포함하는 데이터 저장소 라이브러리를 공급하는 단계;
호스트 컴퓨터에 의해 업데이트된 상기 업데이트된 PIT 데이터를 상기 데이터 저장소 라이브러리에 제공하는 단계; 및
상기 데이터 저장소 라이브러리에 의해 상기 원본 PIT 데이터를 상기 대상 데이터 저장소에 복사하는 단계
를 더 포함하는, PIT 데이터를 저장하는 방법. - 제1항에 있어서, 상기 블록 크기가 하나 이상의 트랙 번호를 포함하는, PIT 데이터를 저장하는 방법.
- 제1항에 있어서, 상기 블록 크기가 하나 이상의 블록 ID(blockid)를 포함하는, PIT 데이터를 저장하는 방법.
- 1보다 큰 (S)개의 블록을 포함하는 소스 데이터 저장 매체, 및 업데이트된 PIT 데이터를 복사하도록 배치된 컴퓨터 판독가능 프로그램 코드를 포함하는 컴퓨터 판독가능 매체를 포함하는 제조물로서,
상기 제조물이 (S)보다 작은 (T)개의 블록을 포함하는 대상 데이터 저장 매체와 통신하고, 상기 (S)개의 블록 및 상기 (T)개의 블록은 각각 동일한 블록 크기를 포함하며, 상기 컴퓨터 판독가능 프로그램 코드는:
(B)개의 소스 저장소 세그먼트 및 (B)개의 대상 저장소 세그먼트를 구성하는 단계 - 각각의 소스 저장소 세그먼트는 [(S)/(B)]개의 블록을 포함하고, 각각의 대상 저장소 세그먼트는 [(T)/(B)]개의 블록을 포함함 - ;
업데이트된 PIT 데이터를 수신하는 단계;
제(i) 소스 저장소 세그먼트에 기록된 원본 PIT 데이터에 대한 업데이트된 PIT 데이터를 수신하는 단계;
(j)를 (i)로 설정하는 단계;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 포함하고,
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하지 않는 경우, 상기 컴퓨터 판독가능 프로그램 코드는:
(j)를 1 만큼 증가시키는 단계;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 확인하는 단계;
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 복사하는 단계;
(j)가 (B)와 같은지를 판정하는 단계;
(j)가 (B)와 같지 않은 경우, 상기 증가시키는 단계, 상기 확인하는 단계, 및 상기 복사하는 단계를 반복하는 단계;
(j)를 (i-1)로 설정하는 단계;
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물. - 제6항에 있어서, 상기 컴퓨터 판독가능 프로그램 코드가,
호스트 컴퓨터로부터 상기 업데이트된 PIT 데이터를 수신하는 단계
를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물. - 제6항에 있어서, 상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하지 않는 경우, 상기 컴퓨터 판독가능 프로그램 코드는:
(j)가 (1)과 같은지를 판정하는 단계;
(j)가 (1)과 같지 않은 경우, (j)를 1 만큼 감소시키는 단계;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물. - 컴퓨터 상에서 실행될 때, 제1항 내지 제5항 중 어느 한 항의 단계들 전부를 수행하도록 구성된 프로그램 코드 수단을 포함하는, 컴퓨터 프로그램.
- PIT(point-in-time) 데이터를 저장하는 장치로서,
블록 크기를 설정하는 수단;
(S)개의 블록을 포함하는 소스 데이터 저장소를 제공하는 수단;
(S)보다 작은 (T)개의 블록을 포함하는 대상 데이터 저장소를 제공하는 수단;
(B)개의 소스 저장소 세그먼트 및 (B)개의 대상 저장소 세그먼트를 구성하는 수단 - 각각의 소스 저장소 세그먼트는 [(S)/(B)]개의 블록을 포함하고, 각각의 대상 저장소 세그먼트는 [(T)/(B)]개의 블록을 포함함 - ;
제(i) 소스 저장소 세그먼트에 기록된 원본 PIT 데이터에 대한 업데이트된 PIT 데이터를 수신하는 수단;
(j)를 (i)로 설정하는 수단;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 수단; 및
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 수단
을 포함하고,
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하지 않는 경우,
(j)를 1 만큼 증가시키는 수단;
제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 확인하는 수단;
상기 제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 복사하는 수단;
(j)가 (B)와 같은지를 판정하는 수단; 및
(j)가 (B)와 같지 않은 것에 응답하여, 상기 증가시키는 수단, 상기 확인하는 수단, 및 상기 복사하는 수단을 반복하는 수단
을 더 포함하며,
(j)가 (B)와 같은 경우,
(j)를 (i-1)로 설정하는 수단;
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 수단; 및
상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 수단
을 더 포함하는, PIT 데이터를 저장하는 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/182,059 | 2008-07-29 | ||
US12/182,059 US8055868B2 (en) | 2008-07-29 | 2008-07-29 | Apparatus and method to store original point-in-time data |
PCT/EP2009/059125 WO2010012603A1 (en) | 2008-07-29 | 2009-07-16 | Apparatus and method to store original point-in-time data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110056275A true KR20110056275A (ko) | 2011-05-26 |
KR101369036B1 KR101369036B1 (ko) | 2014-02-28 |
Family
ID=41011875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117001672A KR101369036B1 (ko) | 2008-07-29 | 2009-07-16 | 원본 pit 데이터를 저장하는 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8055868B2 (ko) |
EP (1) | EP2307950B1 (ko) |
KR (1) | KR101369036B1 (ko) |
CN (1) | CN102112956B (ko) |
WO (1) | WO2010012603A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2509057A (en) * | 2012-12-18 | 2014-06-25 | Ibm | Predictive point-in-time copy for storage systems |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6349356B2 (en) | 1997-12-10 | 2002-02-19 | International Business Machines Corporation | Host-available device block map for optimized file retrieval from serpentine tape drives |
GB2349543B (en) | 1999-04-30 | 2003-09-17 | Ericsson Telefon Ab L M | Signalling in a telecommunications network |
US6857018B2 (en) | 2000-07-31 | 2005-02-15 | Dongyi Jiang | System, method and computer software products for network firewall fast policy look-up |
US7249227B1 (en) | 2003-12-29 | 2007-07-24 | Network Appliance, Inc. | System and method for zero copy block protocol write operations |
US7469068B2 (en) | 2004-05-27 | 2008-12-23 | Seiko Epson Corporation | Method and apparatus for dimensionally transforming an image without a line buffer |
US7647357B2 (en) * | 2004-11-12 | 2010-01-12 | International Business Machines Corporation | Data transfer management in consistency group formation |
US20060174074A1 (en) * | 2005-02-03 | 2006-08-03 | International Business Machines Corporation | Point-in-time copy operation |
US7657550B2 (en) * | 2005-11-28 | 2010-02-02 | Commvault Systems, Inc. | User interfaces and methods for managing data in a metabase |
US7660955B2 (en) * | 2005-12-01 | 2010-02-09 | International Business Machines Corporation | Node polling in consistency group formation |
US7783850B2 (en) * | 2006-03-28 | 2010-08-24 | Dot Hill Systems Corporation | Method and apparatus for master volume access during volume copy |
US20080086608A1 (en) * | 2006-10-10 | 2008-04-10 | Hitachi, Ltd. | System and method for migration of CDP journal data between storage subsystems |
US7650476B2 (en) | 2006-10-18 | 2010-01-19 | International Business Machines Corporation | System, method and computer program product for generating a consistent point in time copy of data |
-
2008
- 2008-07-29 US US12/182,059 patent/US8055868B2/en not_active Expired - Fee Related
-
2009
- 2009-07-16 WO PCT/EP2009/059125 patent/WO2010012603A1/en active Application Filing
- 2009-07-16 KR KR1020117001672A patent/KR101369036B1/ko not_active IP Right Cessation
- 2009-07-16 CN CN2009801294531A patent/CN102112956B/zh not_active Expired - Fee Related
- 2009-07-16 EP EP20090780686 patent/EP2307950B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2307950B1 (en) | 2015-04-22 |
WO2010012603A1 (en) | 2010-02-04 |
US8055868B2 (en) | 2011-11-08 |
CN102112956A (zh) | 2011-06-29 |
EP2307950A1 (en) | 2011-04-13 |
CN102112956B (zh) | 2013-10-16 |
KR101369036B1 (ko) | 2014-02-28 |
US20100030956A1 (en) | 2010-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8280855B2 (en) | Extended logical worm data integrity protection with unique worm identifier in header and database | |
US7634624B2 (en) | Memory system for data storage and retrieval | |
US9164921B2 (en) | Dynamic reuse and reconfiguration of logical data objects in a virtual tape system | |
US7444465B2 (en) | Tape emulating disk based storage system and method | |
US7039786B2 (en) | Memory device and recording and/or reproducing apparatus employing this memory device | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
US20080244211A1 (en) | Memory device and controller | |
KR20110107857A (ko) | 솔리드 스테이트 메모리 포멧팅 | |
US8255656B2 (en) | Storage device, memory controller, and data protection method | |
US20030177130A1 (en) | Method, system, program, and data structures for maintaining metadata in a storage system | |
CN101630290A (zh) | 重复数据处理方法和装置 | |
JP2003150322A (ja) | 単一ライブラリ内で仮想ライブラリを使って複数のドライブタイプをサポートする仮想電子データ・ライブラリ | |
CN101957728B (zh) | 用于向本地物理卷复制远程虚拟卷的装置和方法 | |
US6636954B2 (en) | Method and apparatus for inter-disk copy processing, and a computer product | |
US20050033933A1 (en) | Systems and methods for modifying disk drive firmware in a raid storage system | |
CN104133640B (zh) | 从休眠快速恢复 | |
JP2007206068A (ja) | 試験データのサマリーを蓄積するシステム及び方法 | |
US20140164697A1 (en) | Mainframe Storage Apparatus That Utilizes Thin Provisioning | |
KR20100121389A (ko) | 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치 | |
US20050138318A1 (en) | Apparatus and method to initialize information disposed in an information storage and retrieval system | |
KR101369036B1 (ko) | 원본 pit 데이터를 저장하는 장치 및 방법 | |
KR100932801B1 (ko) | 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체 | |
US7177108B2 (en) | Emulation of auxiliary memory | |
KR20050062638A (ko) | 공통의 논리적 블록과 연관된 물리적 블록들을 결정하기위한 방법 및 장치 | |
CN101464837A (zh) | 信息记录装置和信息记录方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |