KR101369036B1 - 원본 pit 데이터를 저장하는 장치 및 방법 - Google Patents

원본 pit 데이터를 저장하는 장치 및 방법 Download PDF

Info

Publication number
KR101369036B1
KR101369036B1 KR1020117001672A KR20117001672A KR101369036B1 KR 101369036 B1 KR101369036 B1 KR 101369036B1 KR 1020117001672 A KR1020117001672 A KR 1020117001672A KR 20117001672 A KR20117001672 A KR 20117001672A KR 101369036 B1 KR101369036 B1 KR 101369036B1
Authority
KR
South Korea
Prior art keywords
data
store
pit data
target
segment
Prior art date
Application number
KR1020117001672A
Other languages
English (en)
Other versions
KR20110056275A (ko
Inventor
리 챨스 라프레스
크리스토퍼 마이클 산소네
다나 페어베언 스캇
올가 이파라키
얀 수
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110056275A publication Critical patent/KR20110056275A/ko
Application granted granted Critical
Publication of KR101369036B1 publication Critical patent/KR101369036B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk 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 데이터를 저장하는 장치 및 방법{APPARATUS AND METHOD TO STORE ORIGINAL POINT-IN-TIME DATA}
본 발명은 일반적으로 원본 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 데이터의 후속 판독 동작을 도시한 도면.
이하의 설명에서, 동일한 참조 번호는 동일하거나 유사한 구성요소를 나타내는 도면을 참조하여 본 발명의 바람직한 실시 형태가 기술된다. 본 명세서의 전반에 걸쳐 언급되는 "일 실시 형태", "실시 형태" 또는 유사한 문구는 그 실시 형태와 관련하여 기술되는 특정의 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시 형태에 포함되어 있다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 나오는 "일 실시 형태에서", "실시 형태에서" 및 유사한 문구 모두가 동일한 실시 형태를 언급하는 것일 수 있지만, 꼭 그러한 것은 아니다.
발명의 기술된 특징, 구조 또는 특성이 하나 이상의 실시 형태에서 임의의 적절한 방식으로 결합될 수 있다. 이하의 설명에서, 발명의 실시예의 완전한 이해를 제공하기 위해 다수의 구체적인 상세가 언급된다. 그렇지만, 당업자라면 발명이 구체적인 상세 중 하나 이상을 사용하지 않거나 다른 방법, 구성요소, 물질 등을 사용하여 실시될 수 있다는 것을 잘 알 것이다. 다른 경우에, 발명의 측면들을 모호하게 하는 것을 피하기 위해, 공지의 구조, 물질 또는 동작이 상세히 도시되거나 기술되어 있지 않다.
본 명세서에 포함된 개략적인 순서도는 일반적으로 논리적 순서도로서 제시되어 있다(예를 들어, 도 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)

  1. 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 데이터를 저장하는 방법.
  2. 제1항에 있어서, (B)는 (T)와 같은, PIT 데이터를 저장하는 방법.
  3. 제1항에 있어서,
    상기 소스 데이터 저장소 및 상기 대상 데이터 저장소를 포함하는 데이터 저장소 라이브러리를 공급하는 단계;
    호스트 컴퓨터에 의해 업데이트된 상기 업데이트된 PIT 데이터를 상기 데이터 저장소 라이브러리에 제공하는 단계; 및
    상기 데이터 저장소 라이브러리에 의해 상기 원본 PIT 데이터를 상기 대상 데이터 저장소에 복사하는 단계
    를 더 포함하는, PIT 데이터를 저장하는 방법.
  4. 제1항에 있어서, 상기 블록 크기가 하나 이상의 트랙 번호를 포함하는, PIT 데이터를 저장하는 방법.
  5. 제1항에 있어서, 상기 블록 크기가 하나 이상의 블록 ID(blockid)를 포함하는, PIT 데이터를 저장하는 방법.
  6. 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) 대상 저장소 세그먼트에 기록하는 단계
    를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물.
  7. 제6항에 있어서, 상기 컴퓨터 판독가능 프로그램 코드가,
    호스트 컴퓨터로부터 상기 업데이트된 PIT 데이터를 수신하는 단계
    를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물.
  8. 제6항에 있어서, 상기 제(j) 대상 저장소 세그먼트가 상기 업데이트된 PIT 데이터를 저장할 가용 저장 용량을 포함하지 않는 경우, 상기 컴퓨터 판독가능 프로그램 코드는:
    (j)가 (1)과 같은지를 판정하는 단계;
    (j)가 (1)과 같지 않은 경우, (j)를 1 만큼 감소시키는 단계;
    제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는지를 판정하는 단계; 및
    제(j) 대상 저장소 세그먼트가 상기 원본 PIT 데이터를 저장할 가용 저장 용량을 포함하는 것에 응답하여, 상기 원본 PIT 데이터를 상기 제(j) 대상 저장소 세그먼트에 기록하는 단계
    를 수행하는 일련의 컴퓨터 판독가능 프로그램 단계들을 더 포함하는, 제조물.
  9. 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 프로그램은, 컴퓨터 상에서 실행될 때, 제1항 내지 제5항 중 어느 한 항의 단계들 전부를 수행하도록 구성된 컴퓨터 프로그램 코드를 포함하는,
    컴퓨터 판독가능 매체.
  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 데이터를 저장하는 장치.
KR1020117001672A 2008-07-29 2009-07-16 원본 pit 데이터를 저장하는 장치 및 방법 KR101369036B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/182,059 US8055868B2 (en) 2008-07-29 2008-07-29 Apparatus and method to store original point-in-time data
US12/182,059 2008-07-29
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 KR20110056275A (ko) 2011-05-26
KR101369036B1 true 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)

* Cited by examiner, † Cited by third party
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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060174074A1 (en) 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US20080098187A1 (en) 2006-10-18 2008-04-24 Gal Ashour System, method and computer program product for generating a consistent point in time copy of data

Family Cites Families (10)

* Cited by examiner, † Cited by third party
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
US7831795B2 (en) * 2005-11-28 2010-11-09 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060174074A1 (en) 2005-02-03 2006-08-03 International Business Machines Corporation Point-in-time copy operation
US20080098187A1 (en) 2006-10-18 2008-04-24 Gal Ashour System, method and computer program product for generating a consistent point in time copy of data

Also Published As

Publication number Publication date
EP2307950B1 (en) 2015-04-22
US8055868B2 (en) 2011-11-08
WO2010012603A1 (en) 2010-02-04
KR20110056275A (ko) 2011-05-26
CN102112956A (zh) 2011-06-29
CN102112956B (zh) 2013-10-16
US20100030956A1 (en) 2010-02-04
EP2307950A1 (en) 2011-04-13

Similar Documents

Publication Publication Date Title
US8280855B2 (en) Extended logical worm data integrity protection with unique worm identifier in header and database
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
US20080244211A1 (en) Memory device and controller
US6832290B2 (en) Method, system, program, and data structures for maintaining metadata in a storage system
KR20140016440A (ko) 솔리드 스테이트 메모리를 포멧팅하기 위한 메모리 제어기, 방법, 및 솔리드 스테이트 메모리 시스템
US8255656B2 (en) Storage device, memory controller, and data protection method
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
KR20100121389A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
CN104133640B (zh) 从休眠快速恢复
US20050138318A1 (en) Apparatus and method to initialize information disposed in an information storage and retrieval system
KR101369036B1 (ko) 원본 pit 데이터를 저장하는 장치 및 방법
US7177108B2 (en) Emulation of auxiliary memory
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
US6606693B1 (en) Method and system for long-term digital data storage
KR20050062638A (ko) 공통의 논리적 블록과 연관된 물리적 블록들을 결정하기위한 방법 및 장치
CN101464837A (zh) 信息记录装置和信息记录方法
US7447714B1 (en) Management of multiple virtual data copies
CN103617802B (zh) 基于光存储阵列的数据读写权限控制方法以及光存储系统
KR20060089486A (ko) 플래시 파일 시스템의 오류 복구 방법
CN102549550A (zh) 一种数据访问方法及系统
KR100608774B1 (ko) 휴대폰 파일 시스템의 에러 처리방법

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