KR20110070992A - 점증 맵들을 포함하는 플래시카피 캐스케이드에서 맵들의 최적화된 청소를 위한 방법 - Google Patents

점증 맵들을 포함하는 플래시카피 캐스케이드에서 맵들의 최적화된 청소를 위한 방법 Download PDF

Info

Publication number
KR20110070992A
KR20110070992A KR1020117009495A KR20117009495A KR20110070992A KR 20110070992 A KR20110070992 A KR 20110070992A KR 1020117009495 A KR1020117009495 A KR 1020117009495A KR 20117009495 A KR20117009495 A KR 20117009495A KR 20110070992 A KR20110070992 A KR 20110070992A
Authority
KR
South Korea
Prior art keywords
disk
map
bitmap
data
downstream
Prior art date
Application number
KR1020117009495A
Other languages
English (en)
Other versions
KR101539813B1 (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 KR20110070992A publication Critical patent/KR20110070992A/ko
Application granted granted Critical
Publication of KR101539813B1 publication Critical patent/KR101539813B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

방법이 컴퓨터 판독가능 저장 매체상에 유형으로 포함된 프로그래밍 명령들을 가지는 컴퓨터 실행가능 코드를 가지는 컴퓨터 인프라구조에 구현된다. 상기 프로그래밍 명령들은 맵의 타켓 디스크가 플래시카피 캐스케이드내 업스트림 디스크로부터 다운스트림 디스크가 이용할 수 없는 데이터를 포함하는지 여부를 결정하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는지 여부를 감지하도록 동작가능하다. 또한, 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 이용할 수 없는 데이터를 포함하고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지고 있지 않다면, 상기 프로그래밍 명령들이 상기 데이터를 상기 타켓 디스크로부터 상기 다운스트림 디스크로 카피하도록 동작가능하다. 또한, 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 다운스트림 디스크가 사용불가능한 데이터를 포함하지 않거나 상기 다운스트림 디스크가 상기 데이터의 카피를 가지면, 상기 프로그래밍 명령들이 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피하는 것을 회피하도록 동작가능하다. 또한, 상기 프로그래밍 명령들은 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제하도록 동작가능하다.

Description

점증 맵들을 포함하는 플래시카피 캐스케이드에서 맵들의 최적화된 청소를 위한 방법{METHOD FOR OPTIMIZING CLEANING OF MAPS IN FLASHCOPY CASCADES CONTAINING INCREMENTAL MAPS}
본 발명은 플래시카피 캐스케이드들(FlashCopy cascades)에 관한 것으로서, 보다 자세하게는, 점증 맵들을 포함하는 플래시카피 캐스케이드내 맵들의 청소를 최적화하는 방법에 관한 것이다.
플래시카피(FlashCopy®)는 전체 논리 볼륨들이나 데이터 세트들의 거의 즉각적인 시점 카피(copy)들이 만들어지는 것을 허용하는 다양한 저장 디바이스들에 지원되는 기능이다.(플래시카피는 미국, 그외 국가들 또는 둘다에서 IBM사의 등록된 상표이다). 따라서, 상기 플래시카피 기능은 판독이나 기록 엑세스를 위해 바로 사용가능한 카피와 함께, 시점 데이터의 전체 볼륨을 카피하는 것을 가능하게 한다. 상기 카피는 테이프상에 백업 카피들을 생성하도록 컴퓨팅 환경에서 사용가능한 표준 백업 툴과 함께 사용될 수 있다.
또한, 플래쉬카피는 타켓 볼륨상에 소스 볼륨의 시점 카피를 생성한다. 플래시카피 동작이 개시될 때, 플래시카피 관계가 상기 소스 볼륨과 상기 타켓 볼륨 사이에서 생성된다. 따라서, 플래시카피 관계는 상기 플래시카피 소스 볼륨과 상기 플래시카피 타겟 볼륨의 "매핑(mapping)"이다. 이러한 매핑은 소스 볼륨의 시점 카피가 연관된 목표 볼륨에 카피되는 것을 허용한다. 상기 플래시카피 관계는, 플래시카피 동작이 개시되는 시점으로부터 상기 저장 유닛이 상기 소스 볼륨으로부터 상기 타켓 볼륨으로 모든 데이터를 카피할 때까지 또는 상기 플래시카피 관계가 삭제될 때까지, 존재한다. 또한, 캐스케이드된 플래시카피 구성이란 하나의 맵의 소스 디스크가 다른 맵의 타켓 디스크인 경우이다. 예를 들어, 소스 디스크 A와 타켓 디스크 B로 정의된 하나의 맵과, 소스 디스크 B와 타켓 디스크 C로 정의된 다른 맵이 있을 수 있다. 상기 캐스케이드는 상기 3개의 디스크들(A,B 및 C)와 2개의 맵들을 포함할 수 있다. 일단 카피들이 이루어지면, 상기 카피들은 판독 및 기록 엑세스 둘다 즉시 가능하다.
상기 데이터가 물리적으로 카피되면, 백그라운드 프로세스가 트랙들(또는 그레인들(grains))을 상기 소스 볼륨으로부터 상기 타켓 볼륨으로 카피한다. 상기 백그라운드 카피를 완료하는데 걸리는 시간량은 예를 들어: 카피되고 있는 데이터량; 진행되고 있는 백그라운드 카피 프로세스들의 수 그리고 상기 저장 시스템에서 발생하고 있는 다른 활동(activitie)들 및 기타 요인들에 달려있다.
플래시카피 동작은 데이터를 소스 볼륨으로부터 타켓 볼륨으로 카피하는데, 상기 소스 볼륨은 동시에 하나 이상의 플래시카피 관계에 연관될 수 있다(멀티 관계 플래시카피로 호칭). 즉, 상기 멀티 관계 플래시카피 기능은 소스 볼륨이 동시에 다수의 타켓들을 가지는 것을 허용한다. 만약에 볼륨상의 트랙이 기존의 플래시카피 관계의 타켓 트랙이 아니면, 이는 새로운 플래시카피 관계내 타켓이 될 수 있다.
따라서, 예를 들어, 상기 동일한 데이터의 다수의 카피들이 필요하면, 플래시카피 볼륨이 설정되자마자, 이러한 멀티 관계 플래시카피 기능이 하나의 소스 볼륨이 서로다른 타켓 볼륨들로 여러번 카피되는 것을 허용한다. 플래시카피가 볼륨 A를 볼륨 B로 카피하기 위해 사용되는 경우를 가정하자. 플래시카피 관계가 설정되지마자, 볼륨 A는 볼륨 C로 카피될 수 있다. 관계가 설정되면, 볼륨 A는 볼륨 D로 곧 카피될 수 있다. 또한, 하나의 볼륨안에서의 다수의 세션들이 가능해진다.
캐스케이드 방법론을 이용하여 구현될때, 멀티 타켓 플래시카피는 유저에게 카피들의 카피를 만들수 있는 기능을 제공하면서, 카피의 숫자면에서 커다란 확장성을 제공한다. 그러나, 캐스케이드 방법론을 이용하여 구현될 때, 멀티 타켓 플래시카피는 또한 플래시카피 맵이 캐스케이드로부터 삭제될 수 있기전에 이를 "청소(clean)"해야하는 원하지 않는 컨셉을 전해준다. 상기 청소 프로세스는 상기 캐스케이드내 어떤 디스크도 제거되고 있는 맵의 타켓 디스크에 종속되지 않는 것을 보장한다. 상기 청소 프로세스는 완료하기 위해 상당한 시간량을 취할 수 있다.
또한, 플래시카피는 공간-효율 볼륨들(space-efficient volumes)을 활용할 수 있다. 상기 플래시카피 공간-효율(SE) 기능은, 상기 소스 볼륨으로부터 상기 타켓 볼륨으로 트랙들(또는 그레인들)을 실제록 카피할 때만 타켓 볼륨상이 공간을 이용함으로써, 저장 공간을 "필요량(as-needed)" 기반으로 할당한다.
공간-효율 볼륨들이 없으면, 상기 플래시카피 기능은 심지어 데이터가 거기에 카피되지 않더라도 할당되고 이용하능한 타켓 볼륨상의 모든 공간을 필요로한다. 그러나, 공간-효율 볼륨들을 가지면, 플래시카피는 오직 상기 플래시카피 관계의 수명(lifetime)동안 변경되는 데이터를 기록하기 위해 필요한 트랙들(또는 그레인들)의 수만을 이용하고, 이에 따라 공간의 할당은 "필요량" 기반이다. 공간-효율 플래시카피 볼륨들은 타켓 볼륨이 소스 볼륨의 크기와 동일할 것을 필요로하지 않으므로, 상기 플래시카피 SE 기능은 시스템 저장장치의 더욱 효과적인 이용을 위한 가능성을 증가시킨다.
상기 공간-효율 속성은 볼륨 생성 프로세스동안에 타켓 볼륨들에 대해 정의될 수 있다. 공간-효율 볼륨은 기생성된 공간-효율 저장장치를 가지는 익스텐트 풀(extent pool)로부터 생성될 수 있다. 상기 공간-효율 소스 및 타켓 볼륨들이 생성되고 이용가능한 동안, 이들은 플래시카피 관계가 생성될 때 선택될 수 있다.
따라서, 상술한 바와 같이, 상기 플래시카피 SE 기능은 시스템 저장장치의 더욱 효율적 이용을 위한 가능성을 증가시킨다. 멀티 타켓 플래시카피를 공간 효율 볼륨들과 결합하는 것은 상기 청소 프로세스에 다른 문제들을 부가한다. 즉, 고객이 매일 백업 카피를 하는 상황을 가정하면, 예를 들어, 매일 상기 고객은 이러한 백업의 새로운 공간 효율 카피를 만든다. 캐스캐이드 및 멀티 타켓 플래시카피 그리고 공간 효율 볼륨들이 이러한 설정을 가능케한다. 또한, 상기 매일의 백업을 완료하기 위해 취해지는 시간을 감소시키기 위해서, 상기 플래시카피 맵이 점증적으로(incremental) 만들어지는 경우를 가정하자. 이러한 경우 상기 청소 프로세스의 문제는, 상기 청소 프로세스는 상기 매일 백업으로부터 최근의 공간 효율 카피로 데이터 모두를 카피할 필요가 있을 것이라는 점이다. 그러나, 상기 매일 백업은 완전 카피이기 때문에, 이는 공간 효율 카피의 전체가 할당 되어지는 것을 필요로 할 것이다. 따라서, 이러한 시나리오에선, 상기 공간 효율 볼륨의 활용은 상기 캐스케이드 청소 방법론에 의해 "파괴(broken)"된다.
이에 따라, 본 기술분야에서 상술한 약점 및 한계를 극복하기 위해 필요가 있다.
제1 실시예에서, 본 발명은 프로그래명 명령들을 가지는 컴퓨터 판독가능 저장 매체상에 유형으로 포함된(tangibly embodied) 컴퓨터 실행가능 코드를 가지는 컴퓨터 인프라구조에 구현된 방법을 제공하는데, 상기 프로그래밍 명령들은
맵의 타켓 디스크가, 플래시카피(FlashCopy) 캐스케이드(cascade)내 업스트림(upstream) 디스크로부터 다운스트림(downstream) 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정;
상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지;
만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피;
만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하고(refrain); 그리고
상기 플래시카피 캐스케이드로부터 상기 맵을 삭제;하도록 동작가능하다.
본 발명은 상기 타켓 디스크로부터 상기 다운스트림 디스크로 카피가 수행될 때, 상기 다운스트림 디스크로부터 새로운 소스 디스크로의 매핑을 반영하도록, 다운스트림 맵을 업데이트하는 것을 더 포함한다. 바람직하게는, 상기 맵은 점증 맵(incremental map)이다. 바람직하게는, 상기 점증 맵은 상기 타켓 디스크가 특정 그레인(grain)의 데이터의 실제 카피를 포함하는지 또는 상기 특정 그레인에 대한 데이터를 포함하는 소스 디스크에 의지하는지 여부를 나타내는 분할 비트맵 값(split bitmap value); 및 상기 타켓 디스크의 특정 그레인에 포함된 데이터가 상기 소스 디스크의 대응하는 그레인에 포함된 데이터와 다른지 여부를 가리키는 차이 비트맵 값(difference bitmap value)을 포함한다. 바람직하게는, 상기 특정 그레인에 대해 0인 분할 비트맵 값과 상기 특정 그레인에 대해 0인 차이 비트맵 값은, 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하지 않는 것을, 가리킨다. 바람직하게는, 상기 특정 그레인에 대한 0인 분할 비트맵값과 상기 특정 그레인에 대해 1인 차이 비트맵값은, 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하지 않는 것을 나타낸다. 바람직하게는, 상기 프로그래밍 명령들은 상기 특정 그레인에 대해 1인 분할 비트맵 값과 상기 특정 그레인에 대해 0인 차이 비트맵 값과 함께, 상기 카피가 필요한지를 결정하기 위해 업스트림 맵의 비트맵값들을 이용하는 것을 더 수행한다. 바람직하게는, 상기 다운스트림 디스크로의 상기 특정 그레인의 카피는, 만약 대응하는 그레인에 대해 업스트림 맵 분할 비트맵 값이 1이고 상기 대응하는 그레인에 대해 업스트립 맵 차이 비트맵 값이 1이면 발생한다(occurs). 바람직하게는, 상기 특정 그레인에 대한 1인 분할 비트맵값과 상기 특정 그레인에 대해 1인 차이 비트맵값은, 상기 맵의 타켓 디스크가 다른 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하는 것을 나타낸다. 바람직하게는, 상기 다운스트림 디스크는 공간 효율 디스크이다. 본 발명에서 상기 프로그래밍 명령들은 상기 공간 효율 디스크에 최소로 필요한 수의 그레인들을 할당; 및 만약 상기 맵의 삭제후에, 상기 공간 효율 디스크의 특정 그레인이 현재 다른 업스트림 디스크에서 이용가능하면, 상기 공간 효율 디스크에 공간을 할당해제하고 다운스트림 맵을 업데이트;하는 것을 더 수행한다. 바람직하게는, 상기 서비스 제공자가 하나 또는 그 이상의 고객들에 대해 본 발명의 프로세스 단계들을 수행하는 컴퓨터 인프라구조를 생성, 유지, 배치, 지원 등을 할 수 있다. 바람직하게는, 상기 단계들은 회비, 광고 및/또는 요금 기반하에서 상기 서비스 제공자에 의해 제공된다.
제2 실시예에서, 플래시카피 캐스케이드내 맵에 대한 비트맵값들을 감지; 상기 감지에 기초하여, 플래시카피 청소 프로세스(FlashCopy cleaning process)가 필요한지를 결정; 및 만약 필요하다면, 상기 플래시카피 청소 프로세스를 수행; 상기 플래시카피 청소 프로세스가 수행될 때, 상기 플래시카피 캐시케이드내 다운스트림 맵에 대한 비트맵값들을 수정; 및 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제;를 수행하도록 동작가능한 비트맵 툴(bitmap tool);을 포함하는 시스템이 있다. 바람직하게는 상기 맵은 타켓 디스크가 특정 그레인에 대해 데이터의 실제 카피를 포함하는지 또는 상기 특정 그레인에 대해 데이터를 포함하는 소스 디스크에 의지하는지 여부를 나타내는 분할 비트맵 값(split bitmap value); 및 상기 타켓 디스크의 특정 그레인에 포함된 데이터가 상기 소스 디스크의 대응하는 그레인에 포함된 데이터와 다른지 여부를 나타내는 차이 비트맵값(difference bitmap value);을 포함하는 점증 맵(incremental map)이다. 바람직하게는, 상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 0의 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 1의 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스(FlashCopy cleaning process)가 상기 특정 그레인에 대해 필요하지 않다고 결정하고, 상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 0의 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 0인 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스가 상기 특정 그레인에 대해 필요하지 않다고 결정하고, 만약 상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 1인 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 0인 값을 감지하면, 상기 비트맵 툴이 카피가 필요한지를 결정하기 위해 업스트림 맵의 비트맵들의 값들을 활용하고, 그리고 상기 비트맵 툴이 상기 특정 그레인에 대해 분할 비트맵 값에 대해 1인 값과 상기 특정 그레인에 대한 차이 비트맵 값에 대해 1인 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스가 상기 특정 그레인에 대해 필요하다고 결정한다. 바람직하게는, 상기 다운스트림 디스크는 공간 효율 디스크(space efficient disk)이고, 상기 비트맵 툴이 상기 공간 효율 디스크에 최소 필요수의 그레인들을 할당한다.
제3 실시예에서, 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램 코드는 컴퓨터 시스템에 로드되고 그 안에서 실행될 때, 상기 컴퓨터 시스템이 제1 실시예에 따른 방법의 모든 단계들을 수행하도록 하는 컴퓨터 프로그램이 제공된다.
상기 컴퓨터 프로그램은 매체내에 포함된 판독가능 프로그램 코드를 가지는 컴퓨터 사용가능 저장 매체를 포함하는 컴퓨터 프로그램 제품의 형태로 구현될 수 있는데, 상기 컴퓨터 프로그램 제품은 맵의 타켓 디스크가 캐스케이드내 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정; 상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지; 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피; 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하고(refrain); 그리고 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제;하도록 동작가능한 적어도 하나의 컴포넌트를 포함한다.
본 발명의 실시예들은 방법으로 구현될 수 있는데, 상기 방법들은 맵의 타켓 디스크가, 플래시카피(FlashCopy) 캐스케이드(cascade)내 업스트림(upstream) 디스크로부터 다운스트림(downstream) 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정; 상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지; 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피; 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하고(refrain); 만약 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 카피가 수행되면, 상기 다운스트림 디스크로부터 새로운 소스 디스크로의 매핑을 반영하기 위해 다운스트림 맵을 업데이트; 및 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제;하도록 동작가능한 컴퓨터 인프라구조가 제공한다.
본 발명의 제1 실시예에서, 방법은 프로그래밍 명령들을 가지는 컴퓨터 판독가능 매체에 유형으로 포함된 컴퓨터 실행가능 코드를 가지는 컴퓨터 인프라구조에 구현된다. 상기 프로그래밍 명령들은 맵의 타켓 디스크가 플래시카피 캐스케이드내 업스트림 디스크로부터 다운스트림 디스크가 사용할 수 없는 데이터를 포함하는지 여부를 결정하고, 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는지 여부를 감지하도록 동작가능하다. 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피하도록 동작가능하다. 또한, 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피(refrain)하도록 동작가능하다. 더욱이, 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제되도록 동작가능하다.
본 발명의 다른 실시예에서, 시스템은 플래시카피 캐스케이드내 맵에 대한 비트맵값들을 감지하고 상기 감지에 기초하여, 플래시카피 청소 프로세스(FlashCopy cleaning process)가 필요한지를 결정하고, 그렇다면 상기 플래시카피 청소 프로세스를 수행하도록 동작가능한 비트맵 툴을 포함한다. 또한, 상기 비트맵 툴은 상기 플래시카피 청소 프로세스가 수행될 때, 상기 플래시카피 캐시케이드내 다운스트림 맵에 대한 비트맵값들을 수정하도록 동작가능하다. 또한, 상기 비트맵 툴은 플래시카피 캐스케이드로부터 상기 맵을 삭제하도록 동작가능하다.
본 발명의 추가적인 실시예에서, 매체내에 포함된 판독가능하나 프로그램 코드를 가지는 컴퓨터 사용가능 저장 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 맵의 타켓 디스크가, 플래시카피(FlashCopy) 캐스케이드(cascade)내 업스트림(upstream) 디스크로부터 다운스트림(downstream) 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정하고 상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지하도록 동작가능한 적어도 하나의 컴포넌트를 포함한다. 또한, 상기 적어도 하나의 컴포넌트는 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피하도록 동작가능하다. 또한, 상기 적어도 하나의 컴포넌트는 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하도록 동작가능하다. 또한, 상기 적어도 하나의 컴포넌트는 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제하도록 동작가능하다.
본 발명의 또 다른 실시예에서, 방법이 맵의 타켓 디스크가, 플래시카피(FlashCopy) 캐스케이드(cascade)내 업스트림(upstream) 디스크로부터 다운스트림(downstream) 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정하고, 상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지하도록 동작가능한 컴퓨터 인프라구조를 제공하는 것을 포함한다. 또한, 상기 컴퓨터 인프라구조는 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피하도록 동작가능하다. 또한, 상기 컴퓨터 인프라구조는 만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하도록 동작가능하다. 또한, 상기 컴퓨터 인프라구조는 상기 타켓 디스크로부터 상기 다운스트림 디스크로 카피가 수행되면, 상기 다운스트림 디스크로부터 새로운 소스 디스크로의 매핑을 반영하도록, 다운스트림 맵을 업데이트하도록 동작가능할 수 있다. 또한, 상기 컴퓨터 인프라구조는 상기 플래시카피 캐스케이드로부터 상기 맵을 삭제하도록 동작가능할 수 있다.
본 발명은 본 발명의 바람직한 실시예들에 대해서 도시된 복수의 도면들을 참조로, 이하의 상세한 설명에서 기술될 것이다.
도 1은 본 발명에 따른 단계들을 구현하기 위한 환경을 도시한다;
도 2-6은 본 발명의 실시예들에 따른 바람직한 플래시카피 캐스케이드들을 도시한다; 그리고
도 7은 본 발명의 실제 구현예들에 대한 바람직한 흐름도를 도시한다.
본 발명은 일반적으로 플래시카피 캐스케이드들에 관련된 것으로, 더욱 상세하게는, 점증 맵들(incremental maps)을 포함하는 플래시카피 캐스케이드들내 맵들의 최적화 청소(cleaning)를 위한 방법에 관한 것이다. 본 발명을 구현함으로써, 상기 캐스케이드에 점증 맵들이 있을 때 플래시카피 맵을 청소하는데 들어가는 시간은 감소될 수 있다. 또한 본 발명의 구현은 공간의 불필요한 할당을 방지하기 위해 공간 효율 카피들에서 그레인들(grains)의 청소를 제한할 수 있다.
시스템 환경
본 기술분야에서 통상의 기술을 가진 자들에 의해 인식될 수 있는 바와 같이, 본 발명은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 또한, 본 발명은 전체적으로 하드웨어 구현, 전체적으로 소프트웨어 구현(펌웨어, 상주 소프트웨어, 마이크로 코드등을 포함) 또는 여기서 보통 "회로", "모듈" 또는 "시스템"으로 호칭될 수 있는 소프트웨어와 하드웨어 형태을 조합하는 구현의 형태를 취할 수 있다. 또한, 본 발명은 상기 매체내 포함된 컴퓨터-사용가능 프로그램 코드를 가지는 표현에 관한 유형 미디어에 포함된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 또는 그 이상의 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체(들)의 조합이 활용될 수 있다. 상기 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 예를 들어(한정은 아님) 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체일 수 있다. 상기 컴퓨터-판독가능 매체의 더욱 상세한 예들(불완전 리스트)로는 이하를 포함할 수 있다:
하나 또는 그 이상의 배선들을 가지는 전자 연결,
휴대용 컴퓨터 디스켓,
하드 디스크,
램(RAM),
롬(ROM),
EPROM이나 플래시 메모리(erasable programmable read-only memory),
광 섬유,
휴대용 CDROM(compact disc read-only memory),
광 저장 디바이스,
예를 들어 인터넷이나 인트라넷을 지원하는 전송 매체나 자기 저장 디바이스.
상기 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 심지어는 프로그램이 프린트된 종이나 다른 적절한 매체도 될 수 있는데, 이는 상기 프로그램이 예를 들어 상기 종이나 다른 매체의 광 스캐닝을 통해 전기적으로 캡쳐될 수 있고, 그리고나서 적절한 방법으로 컴파일, 해석 또는 다르게 처리될 수 있고, 만약 필요하다면 그리고나서 컴퓨터 메모리에 저장될 수 있기 때문이다.
본 문서의 구문에서, 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 연결하여 사용하기 위해 상기 프로그램을 포함, 저장, 통신, 전파 또는 전달할 수 있는 그 어떤 매체도 될 수 있다. 상기 컴퓨터-사용가능 매체는, 베이스밴드나 전송파의 일부로서 중 하나로 내포된 컴퓨터-사용가능 프로그램 코드를 가진 전파된 데이터 신호를 포함할 수 있다. 상기 컴퓨터 사용가능 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등을 포함하는(그러나 한정은 아님) 적절한 매체를 이용해서 전송될 수 있다.
본 발명의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는 객체 지향 프로그래밍 언어(예를 들어 자바, 스몰토크, C++ 등)나 종래의 절차지향 프로그래밍 언어들(예를 들어 C 프로그래밍 언어나 유사한 프로그래밍 언어)를 포함하는, 하나 또는 그 이상의 프로그래밍 언어들의 조합으로 기록될 수 있다. 상기 프로그램 코드는 독립형 소프트웨어 패키지로서 유저의 컴퓨터상에서 전체적으로, 유저의 컴퓨터에서 일부가, 상기 유저의 컴퓨터상에 일부가 그리고 원격 컴퓨터상에서 일부가 또는 원격 켬퓨터나 서버에서 전체적으로 실행될 수 있다. 후자의 경우, 상기 원격 컴퓨터는 임의의 타입의 네트워크를 통해서 상기 유저의 컴퓨터에 연결될 수 있다. 이는 예를 들어, 랜(LAN), WAN, 또는 외부 컴퓨터로 이루어질 수 있는 연결(예를 들어, 인터넷 서비스 제공자를 이용해서 인터넷을 통해서)을 포함할 수 있다.
도 1은 본 발명에 따라 프로세스를 관리하기 위한 환경(10)을 도시한다. 여기서, 상기 환경(10)은 여기서 기술된 프로세스들을 수행할 수 있는 서버나 다른 컴퓨팅 시스템(12)을 포함한다. 특히, 상기 서버(12)는 컴퓨팅 디바이스(14)를 포함한다. 상기 컴퓨팅 디바이스(14)는 제3 서비스 제공자의 네트워크 인프라구조나 컴퓨팅 디바이스상에 상주될 수 있다(도 1에서 일반적으로 표시되는 어느 것이라도).
상기 컴퓨팅 디바이스(14)는 비트맵 툴(30)을 포함한다. 상기 비트맵 툴(30)은 맵들의 비트맵 값들을 감지하고, 상기 맵들의 비트맵 값들을 조정하고, 그리고 플래시 프로세스 등 여기서 기술된 프로세스들을 개시하도록 동작가능하다. 상기 비트맵 툴(30)은 별도의 또는 조합된 모듈로서 메모리(22A)에 저장된 프로그램 제어(44)내의 하나 또는 그 이상의 프로그램 코드로서 구현될 수 있다.
또한 상기 컴퓨팅 디바이스(14)는 프로세서(20), 메모리(22A), I/O 인터페이스(24) 및 버스(26)를 포함한다. 상기 메모리(22A)는 프로그램 코드의 실제 실행시에 사용되는 로컬 메모리, 벌크 저장장치 및 실행시에 코드가 벌크 저장장치로부터 리트리브 되어야하는 회수를 감소시키기 위해 적어도 일부 프로그램 코드의 임시 저장공간을 제공하는 캐쉬 메모리를 포함할 수 있다. 또한, 상기 컴퓨팅 디바이스는 램(RAM), 롬(ROM) 및 CPU를 포함한다.
상기 컴퓨팅 디바이스(14)는 외장 I/O 디바이스/리소스(28) 및 저장 시스템(22B)과 통신한다. 예를 들어, 상기 I/O 디바이스(28)는 개인이 상기 컴퓨팅 디바이스(14)와 인터렉트하도록 하는 디바이스, 또는 상기 컴퓨팅 디바이스(14)가 임의의 통신 링크 타입을 이용해서 하나 또는 그 이상의 다른 컴퓨팅 디바이스들과 통신하도록 하는 디바이스를 포함할 수 있다.
일반적으로, 상기 프로세서(20)는 컴퓨터 프로그램 코드(예를 들어 프로그램 제어(44))를 실행하는데, 이는 메모리(22A) 및/또는 저장 시스템(22B)에 저장될 수 있다. 또한, 본 발명의 실시예들과 관련하여, 프로그램 코드를 가지는 프로그램 제어(44)는 상기 비트맵 툴(30)을 제어한다. 상기 컴퓨터 프로그램 코드를 실행하는 동안, 상기 프로세서(20)는 메모리(22A), 저장 시스템(22B) 및/또는 I/O 인터페이스(24)로/부터 데이터를 판독 및/또는 기록할 수 있다. 본 프로그램 코드는 본 발명의 프로세스들을 실행한다. 상기 버스(26)는 상기 컴퓨팅 디바이스(14)내 컴포넌트들 각각간에 통신 링크를 제공한다.
상기 컴퓨팅 디바이스(14)는 내부에 인스톨된 컴퓨터 프로그램 코드를 실행할 수 있는 범용 컴퓨팅 제품(예를 들어, 퍼스널 컴퓨터, 서버 등)을 포함할 수 있다. 그러나, 상기 컴퓨팅 디바이스(14)는 여기서 기술된 프로세스들을 수행할 수 있는 다양한 후보 대응-컴퓨팅 디바이스들의 일 예일 뿐이라는 점이 이해되어져야 한다. 본 실시예들에서, 상기 컴퓨팅 디바이스(14)에 의해 제공된 기능들은 범용 및/또는 전용 하드웨어 및/또는 컴퓨터 프로그램 코드의 임의의 조합을 포함하는 컴퓨팅 제품에 의해 구현될 수 있다. 각 실시예에서, 상기 프로그램 코드 및 하드웨어는 표준 프로그래밍 및 엔지니어링 기술들 각각을 이용해서 생성될 수 있다.
유사하게, 상기 컴퓨팅 인프라구조(12)는 본 발명을 구현하기 위한 컴퓨터 다양한 타입의 인프라 구조의 일 예일 분이다. 예를 들어, 실시예들에서, 상기 서버(12)는 여기서 기술된 프로세스를 수행하기 위해, 임의의 타입의 통신 링크(예를 들어 네트워크, 공유 메모리 등등)를 통해 통신하는 두개 또는 그 이상의 컴퓨팅 디바이스들(예를 들어 서버 클러스터)을 포함한다. 또한, 여기서 기술된 프로세스들을 수행하는 동안, 상기 서버(12)상의 하나 또는 그 이상의 컴퓨팅 디바이스들은 임의의 타입의 통신 링크를 이용해서, 상기 서버(12) 외부의 하나 또는 그 이상의 다른 컴퓨팅 디바이스들과 통신할 수 있다. 상기 통신 링크는 유선 및/또는 무선 링크들의 조합; 하나 또는 그 이상의 타입들의 네트워크들의 조합(상기 인터넷, WAN, LAN, 가상 사설 네트워크 등); 및/또는 전송 기술들 및 프로토콜들의 조합의 활용을 포함할 수 있다.
실시예들에서, 본 발명은 회비, 광고 및/또는 요금 기반으로 본 발명의 단계들을 수행하는 비지니스 방법을 제공한다. 즉, 서버 제공자(예를 들어 솔류션 통합자(Solution Integrator))가 여기서 기술된 프로세스들을 수행을 제공할 수 있다. 이 경우, 상기 서비스 제공자가 하나 또는 그 이상의 고객들에 대해 본 발명의 프로세스 단계들을 수행하는 컴퓨터 인프라구조를 생성, 유지, 배치, 지원 등을 할 수 있다. 이러한 고객들은, 예를 들어 기술을 이용하는 그 어떤 사업도 될 수 있다. 대가로, 상기 서비스 제공자는 회비 및/또는 요금 합의하에서 상기 고객(들)로부터 요금을 받을 수 있거나 및/또는 상기 서비스 제공자는 하나 또는 그 이상의 제3자에 광고 컨텐츠를 판매함으로써 요금을 받을 수 있다.
점증 맵들(INCREMENTAL MAPS)
본 발명의 실시예들에 따라, 점증 맵은 소스 디스크와 타켓 디스크간의 차이점들을 추적하는 것을 허용하는 메카니즘을 제공한다. 상술한 바와 같이, 플래시카피 맵의 청소는, 상기 타켓 디스크상에 있는 데이터를 판독하고 이를 이러한 데이터를 필요로하는 캐스케이드내 다음 다운스트림 디스크로 기록하는 것과 관련된다. 여기서, 만약 상기 다운스트림 디스크가 공간 효율이라면, 상기 다운스트림 디스크로의 임의의 데이터 기록은 이러한 디스크상에 할당되어야 하는 공간을 유발할 것이다. 그러나, 상기 청소 맵의 타켓상의 데이터가 상기 청소 맵의 소스상의 데이터와 동일하다면, 본 발명의 실시예들에 따라서, 이러한 데이터는 청소될 필요가 없는데, 이는 일단 상기 소스 디스크와 타켓 디스크간의 맵이 제거되도, 상기 다운스트림 디스크는 여전히 상기 소스 디스크로부터 상기 데이터를 얻을 수 있기 때문이다.
도 2는 본 발명의 실시예들에 따른 2 맵들의 바람직한 캐스케이드를 도시한다. 더욱 상세하게는, 도 2는 3개의 디스크들(205, 210 및 215)을 도시한다. 도 2에 도시된 바와 같이, 상기 디스크들의 윗부분들은 각각의 디스크들로부터 예를 들어 호스트로 제공되는 데이터를 나타내고, 그리고 상기 디스크들 표시의 아래부분들은 각 디스크들에 실제로 포함된 데이터를 나타낸다. 따라서, 디스크1(205)은 데이터(A,B,C,D)의 4개의 그레인들(또는 트랙들)을 유저에게 제공하고 실제로 디스크1(205)상에 저장된 그러한 그레인들(A,B,C,D)를 가지고 있다. 반대로, 디스크2(210)는 데이터 A,F,C,D의 4개의 그레인들을 유저에게 제공한다. 그러나, 디스크2(210)의 하단부에 도시된 바와 같이, 디스크2(210)는 실제로는 그안에 오직 그레인들 2 및 4(각각 F와 D)를 가지고 있고, 상기 호스트에 그레인들 1 및 3(각각 A와 C)을 제공하기 위해 디스크1(205)에 저장된 데이터에 의존한다.
또한, 디스크1(205)과 디스크2(210) 각각은 전부 할당되어 있는 디스크들이다. 그말은, 전부 할당된 디스크들(즉 공간-효율 볼륨들이 없음)에 관해 상술한 바와 같이, 상기 플래시카피 기능은 어떤 데이터도 거기에 카피되어 있지 않더라도, 타켓 볼륨상의 모든 공간들이 할당되어 있고 이용가능해야 하는 것을 필요로한다. 따라서, 도 2에 도시된 바와 같이, 디스크2(210)가 그안에 그레인들 A 및 C의 실제 카피본들을 포함하고 있지 않더라도, 그러한 그레인들을 위한 공간이 할당된다(물음표에 의해 표시된 바와 같이).
또한, 도 2에 예로서 도시된 바와 같이, 디스크3(215)은 공간 효율 디스크이다. 즉, 상술한 바와 같이, 공간 효율 디스크를 써서, 소스 볼륨으로부터 타켓 볼륨으로 트랙들(또는 그레인들)이 실제로 카피될 때만 타켓 볼륨상의 공간을 이용함으로써, "필요 기반"으로 저장 공간이 할당된다. 따라서, 도 2에 도시된 바와 같이, 디스크3(215)은 오직 그레인 B를 위한 공간만이 할당되어 있다(디스크2(215)상에 저장된 데이터의 표시의 검은 부분들로 표시된 바와 같이).
도 2에 추가적으로 도시된 바와 같이, 맵1(220)은 디스크1(205)와 디스크2(210)사이의 점증 맵이다. 즉, 맵1(220)은 분할 비트맵(분할:split) 및 차이 비트맵(차이:difference)을 포함한다. 본 발명의 실시예들에 따라, 본 분할 비트맵은 상기 데이터의 위치를 추적하기 위해 플래시카피 프로세스에서 사용된다. 더욱 상세하게는, 상기 분할 비트맵의 "0"은 상기 데이터가 상시 소스 디스크상에 위치하고 있음을 나타내고, 상기 분할 비트맵의 "1"은 상기 데이터가 상기 타켓 디스크상에 위치되고 있음을 나타낸다. 또한, 플래시카피 프로세스에서 사용되는 차이 비트맵은 상기 소스와 타켓 디스크(예를 들어 가상 디스크들)간의 차이를 추적하는데 사용된다. 더욱 상세하게는, 상기 차이 비트맵의 "0"은 상기 소스 디스크와 상기 타켓 디스크상에 위치한 데이터간에 차이가 없음을 나타내고, 상기 차이 비트맵의 "1"은 상기 소스 디스크에 위치한 데이터와 상기 타켓 디스크에 위치한 데이터간에 차이가 있음을 나타낸다.
따라서, 도 2의 예를 참조로하면, 상기 맵1(220)의 분할 비트맵이, 그레인들(A와 C)은 소스 디스크(디스크1(205))상에 위치하고 그레인들(F와 D)은 타켓 디스크(디스크2(210))상에 위치하고 있다는 것을 나타낸다. 또한, 맵1(220)의 차이 비트맵은 상기 소스 디스크(디크스1(205))와 타켓 디스크(디스크2(210))간에 그레인1, 그레인3 및 그레인4간에 차이가 없다는 것을 나타낸다. 이는 그레인들 1, 3 및 4는 상기 소스 디스크와 타켓 디스크간에 각각 동일하게 남아있다는(즉 A,C 및 D) 것이다. 그러나, 맵1(220)의 차이 비트맵은, 상기 소스 디스크(디크스1(205))와 타켓 디스크(디스크2(210))사이에서 그레인2에 대해 차이가 있다는 것을 나타낸다. 즉, 도 2에 도시된 바와 같이, 그레인2는 디스크1(205)의 B에서 디스크2(210)의 F로 변경되었다.
맵2(225)는 디스크2(210)와 디스크3(215)간의 맵이다. 또한, 맵2(225)는 점증 맵이 아니고, 오직 분할 비트맵만 도시되어 있다. 그러나, 비-점증 맵에서는, 상기 분할 비트맵과 차이 비트맵이 동일할 것이다. 따라서, 오직 분할 비트맵만이 도시되어 있다. 그러나, 실시예들에서, 상기 분할 비트맵과 차이 비트맵 둘다가 명확하게 표시될 수 있다는 점이 이해되어져야 한다.
이해할 수 있는 바와 같이, 맵2(225)는 그레인들 1,3 및 4(각각 A,C 및 D)는 소스 디스크(디스크2(210))상에 위치되고, 그리고 그레인2(B)는 타켓 디스크(디스크3(215))상에 위치하고 있음을 나타낸다. 더욱이, 맵2(225)는 또한 그레인들 1, 3 및 4(각각 A,C 및 D)은 상기 소스 디스크(디스크2(210))와 타켓 디스크(디스크3(215))간에 동일하고, 그리고 그레인2는 상기 소스 디스크(디스크2(210))와 타켓 디스크(디스크3(215))간에 동일하지 않음을 나타낸다.
청소 프로세스(CLEANING PROCESS)
종래의 구현을 통한 캐스케이드 구현의 단점은 타켓 디스크들간의 추가적인 종속성들을 생성한다는 점이다. 하나의 타켓 디스크로부터의 판독 요청들을 만족시킬수 있기 위해서, 캐스케이드 구현은 상기 케스케이드내 다른 타켓 디스크로부터 데이터를 판독해야만 할 수 있다. 따라서, 만약 유저가 캐스케이드의 일부인 플래시카피 매핑을 정지하고 삭제하기를 원한다면, 우선적으로 상기 케스케이드내 다른 타켓 디스크들에 의해 필요한 모든 데이터를 다른 타켓 디스크로 카피할 필요가 있다. 데이터를 카피하는 이러한 프로세스가 청소(cleaning)라고 호칭된다. 이러한 과정중에, 삭제되고 있는 맵의 타켓 디스크는 청소 동작의 완벽성을 보장하기 위해 엑세스될 수 없다. 상기 타켓 디스크가 청소된 경우에만, 맵은 정지되고 그리고나서 삭제될 수 있다.
따라서, 도 2에 도시된 바와 같이, 두개의 그레인들이 디스크1(205)로부터 디스크2(210)로 카피되어진다. 그러나, 디스크3(215)상에 오직 디스크2 그레인만이 할당되어 있다. 이제 케스케이드로부터 맵1(220)을 삭제하기 위해서, 디스크3(215)가 디스크2(210)를 삭제하기 전에 호스트들로 보내는 이미지를 유지할 수 있음이 보장되어야 한다. 따라서, 상술한 바와 같이, 맵1(220)이 점증적인 경우, 상기 비트맵 툴(30)은 그레인4(D)가 디스크2(210)와 디스크1(205)에서 동일한지를 결정한다.
따라서, 본 발명의 실시예들에 따라, 본 바람직한 시나리오에서는, 디스크2(210)가 상기 케스케이드로부터 삭제되기 전에, 어떤 그레인들도 디스크2(210)로부터 디스크3(215)으로 카피될 필요는 없다. 즉, 청소 프로세스에서 점증 맵을 활용하지 않는 종래의 접근방법으로는, 청소할지 말지의 결정은 분할 비트맵에 기초한다. 따라서, 본 실시예에서, 맵1(220)의 분할 비트맵이 디스크2가 그레인 D를 포함하고 있다고 표시하므로, 종래의 접근방법으로 이용하면, 공간이 그레인 D를 위해 디스크3(215)상에 할당되어질 것이고, 그리고 그레인 D가 디스크2(210)로부터 디스크3(215)으로 카피되어질 것이다. 그러나, 본 발명을 구현함으로써, 상기 비트맵 툴(30)은 그레인 D의 청소가 필수가 아니라고 결정할 수 있고, 따라서 회피될 수 있다.
청소 프로세스를 회피하는 것의 장점으로는 2가지가 있을 수 있다. 첫번째로는, 불필요한 최소 프로세스를 회피함으로써 시간과 리소스가 소비되지 않는다. 또한, 다운스트림 공간 효율 디스크상의 공간이 다른곳에서 엑세스할 수 있는 데이터의 저장을 위해 불필요하게 사용되지 않는다. 이는 상기 공간 효율 디스크상의 이러한 공간이 다른 목적(예를 들어 다른 그레인들이나 데이터를 저장)으로 활용되도록 한다.
도 3은 맵1이 상기 캐스케이드로부터 제거되고 디스크2가 제거된 이후에, 도 2에 도시된 바람직한 캐스케이드(200)의 일 예(200')를 도시한다. 도 3에 도시된 바와 같이, 그러나 맵2(225)는 남아있고, 맵2(225)는 현재 디스크1(205)와 디스크3(215)사이의 맵으로 유지된다. 또한, 도 3에 도시된 바와 같이, 본 예에서는, 맵2(225)가 디스크1(205)와 디스크3(215)사이에서 맵으로 제공되기 위해서, 상기 비트맵 툴(30)이 맵2(225)를 수정하는 것이 필수는 아니다.
도 4는 맵1이 캐스케이드로부터 제거되고 디스크2가 제거된 이후에, 도 2에 도시된 바람직한 캐스케이드(200)의 다른 실시예(200")를 도시한다. 실시예들에서, 본 발명은 공간 효율 디스크상의 자유 공간을 최대화하는 것이 바람직할 수 있다는 점에 주목한다. 도 4에 도시된 바와 같이, 디스크3(215")은 디스크1(205)에 포함된 것과 같이 호스트로 동일한 데이터를 제공하고 있다. 이에 따라, 디스크3(215")의 그레인2(B)는 디스크3상에 남아있을 필요가 없는데(도 3에 도시된 바와 같이), 그러한 데이터는 디스크1(205)에 포함되어 있기 때문이다. 따라서, 도 4에 도시된 바와 같이, 본 발명의 실시예들에 따라, 상기 비트맵 툴(30)은 디스크3(215")으로부터 그레인2(B)를 삭제한다. 디스크3(215")으로부터 그레인2를 삭제함으로써, 그레인2를 위해 이전에 할당된 공간은 예를 들어 다른 데이터를 저장하는데 사용가능해질 수 있다.
또한, 도 4에 도시된 바와 같이, 상기 비트맵 툴(도 1에 도시된)은 도 2에 도시된 맵2(225)로부터 맵2(225")를 수정한다. 더욱 상세하게는, 상기 비트맵 툴은, 더 이상 그레인2(B)의 카피를 포함하지 않고 디스크1(205)내 포함된 그레인2의 카피에 의지하여, 디스크3(215")을 나타내면서, 이제 그레인2에 대해 제로를 포함되도록 맵2(225")의 분할 비트맵을 수정한다. 이는 도 3과는 반대로, 여기서 디스크3이 그레인2(B)의 그 자신의 카피를 유지하고, 맵2(225)의 변경은 불필요하다. 또한, 도 4의 실시예에 도시된 바와 같이, 이제 맵2(225")는, 맵2(225")내 제로들에 의해 표시된 바와 같이 디스크1(205)로 자신의 그레인들 모두를 매핑한다.
도 5는 본 발명의 실시예들에 따라 두개의 맵들의 추가적인 바람직한 캐스케이드를 도시한다. 더욱 상세하게는, 도 5는 3개의 디스크들(205, 210 및 515)의 표시를 도시한다. 디스크1(205)는 데이터의 4개 그레인들(A, B, C, D)을 유저에게 제공하고 그리고 디스크1(205)상에 저장된 그들의 그레인들(A, B, C, D)을 실제로 가지고 있다. 반대로, 디스크1(210)은 데이터의 4개 그레인들(A, F, C, D)를 유저에게 제공한다. 그러나, 디스크2(210)의 하단부에 도시된 바와 같이, 디스크2(210)는 실제적으로 오직 그레인들 2 및 4(F와 D, 각각)만을 그안에 저장하고 있고, 호스트로 그레인들 1 및 3(A와 C, 각각)을 제공하기 위해서 디스크1(205)에 저장된 데이터에 의지한다.
또한, 도 5에 도시된 바와 같이, 디스크3(515)은 공간 효율 디스크다. 즉, 상술한 바와 같이, 공간 효율 디스크과 함께, 소스 볼륨으로부터 타켓 볼륨으로 트랙들을 실제로 카피할 경우에만, 타켓 볼륨상의 공간을 이용함으로써, 저장 공간이 "필요" 기반으로 할당된다. 따라서, 도 5에 도시된 바와 같이, 디스크3(515)은 어떤 그레인들에 대해서도 할당된 공간이 없다(디스크3(515)상에 저장된 데이터의 도시의 검은색 부분들에 의해 표시된 바와 같이). 더욱이, 호스트로 제공된 그레인들 모두에 대해, 디스크3은 디스크2(210)에 의지한다. 따라서, 그레인2(F)와 그레인4(D)는 디스크2(210)에 의해 제공된다. 또한, 디스크2가 그레인1(A)과 그레인3(C)에 대해 디스크1(205)에 의지하는바, 맵1(220)에 의해 표시된 바와 같이, 디스크3(515)은 디스크1(205)에 포함된 그레인1(A)과 그레인3(C)의 카피에 의지한다.
상기 캐스케이드로부터 이제 맵1(220)(증분 맵인)을 제거하기 위해서, 디스크2(210)를 삭제하기 전에 디스크3(515)이 호스트로 제공하는 이미지를 유지할 수 있다는 것을, 상기 비트맵 툴이 보장한다. 따라서, 상술한 바와 같이, 맵1(220)이 증분이고, 상기 비트맵 툴은 그레인4(D)가 디스크1(205)상에서 디스크2(210)와 동일하다고 결정할 수 있다. 따라서, 상술한 바와 같이, 본 발명의 실시예들에 따라, 다운스트림 디스크(디스크3(215))로 그레인4(D)를 카피하지 않음으로써 리소스들이 저장된다.
그러나, 그레인2는 디스크1(205)과 디스크2(210)상에서 동일하지 않다. 따라서, 본 발명의 실시예들에 따라, 본 바람직한 실시예에서는, 상기 비트맵 툴은 플래시카피 프로세스를 시작하고, 맵1(220)이 상기 캐스케이드로부터 삭제되고 디스크2(210)가 삭제되기 전에, 그레인2(F)이 디스크2(210)로부터 디스크3(515)으로 카피된다.
도 6은 상기 비트맵 툴(30)이 상기 캐스케이드로부터 맵1을 삭제하고 디스크2가 삭제된 이후에, 도 5에 도시된 바람직한 캐스케이드(500)의 일 예(500')를 도시한다. 도 6에 도시된 바와 같이, 그러나 맵2(525')는 현재 디스크1(205)와 디스크3(515')사이의 맵으로서, 상기 맵2(525')는 남아있는다. 또한, 도 6에 도시된 바와 같이, 본 실시예에서는, 맵2(525')를 디스크1(205)와 디스크3(515')사이에 맵으로서 제공하기 위해서, 상기 비트맵 툴(30)이 맵2(525')를 수정하는 것이 필수적이다. 즉, 디스크3(515')은 여기서 그레인2(F)의 자신의 카피를 포함하고 있고, 반면에 디스크1(205)는 이러한 데이터를 포함하지 않는다. 따라서, 도 6에 도시된 바와 같이, 디스크3(515')이 그레인2(F)의 카피를 포함하고, 디스크3(515')의 그레인2이 디스크1(205)의 그레인2과 다른 것을 나타내기 위해서, 상기 비트맵 툴(30)은 맵2(525')를 수정한다.
따라서, 본 발명의 실시예들에 따르면, 상기 점증 맵들을 사용은, 상기 감소된 청소 동작을 완료하기 위해 필요한 작업일 뿐만 아니라, 최소수의 그레인들이 다운스트림 공간 효율 디스크들(예를 들어 디스크3(515'))에 할당되는것을 보장하기 위해서이다.
일반 규칙들(GENERAL RULES)
또한, 본 발명의 실시예들에 따라, 일반 규칙 이후 그레인이 청소될 필요가 있는지 결정이 뒤따를 수 있다. 더욱 상세하게는, 상기 비트맵 툴(30)이, 캐스케이드로부터 삭제될 맵에 대한 타켓 디스크가 상기 타켓 디스크의 업스트림에서 획득될 수 있는 데이터를 가지는지를 결정하기 위해서, 상기 점증 맵 값들을 활용한다. 또한, 상기 비트맵 툴(30)이, 만약 다운스트림 디스크(삭제될 맵의 타켓 디스크에 상대적으로)가 삭제될 맵의 타켓 디스크의 업스트림에서 획득될 수 없는 데이터의 카피를 이미 가지고 있는지를 결정하기 위해서, 상기 점증 맵들을 활용할 수 있다. 또한, 본 발명의 실시예들에 따라, 만약 상기 다운스트림 디스크가 상기 데이터의 카피를 이미 가지고 있지 않다면, 상기 캐스케이드로부터 상기 맵을 삭제하기 전에, 상기 비트맵 툴은 삭제될 상기 맵의 타켓 디스크로부터 상기 다운스트림 디스크로 이러한 데이터를 카피한다.
따라서, 본 발명의 실시예들에 따라서, 삭제될 맵의 비트맵을 참조하여, 0인 차이 비트맵 값과 0인 분할 비트맵 값은 청소(또는 캐스케이드로부터 삭제될 맵의 타켓 티스크로부터 다운스트림 디스크로 데이터의 카피)가 필요하지 않다는 것을 나타낸다. 또한, 1인 차이 비트맵값과 0인 분할 비트맵값은 청소가 필요하지 않다는 것을 나타낸다.
또한, 0인 차이 비트맵 값과 1인 분할 비트맵 값은 청소가 필요할 수 있다는 것을 나타낸다. 이러한 시나리오에서, 다음 업스트림(Upstream) 맵이 청소가 필요한지 여부를 결정하는데 사용된다. 즉, 상기 비트맵 툴이 상기 다음 업스트림 맵이 1인 분할 비트맵값과 1인 차이 비트맵값을 가진다고 결정하면, 상기 그레인은 청소되어야 한다. 그렇지 않다면, 상기 그레인은 청소될 필요가 없다. 또한, 만약 업스트림 맵이 없다면, 1인 분할 비트맵값과 0인 차이 비트맵값 그리고 청소할 필요가 없다라고 추정될 수 있다.
마지막으로, 만약 상기 다운스트림 디스크가 이미 상기 데이터의 카피를 포함하고 있지 않다면, 1인 차이 비트맵값과 1인 분할 비트맵값이 청소(캐스케이드로부터 삭제될 맵의 타켓 디스크로부터 다운스트림 디스크로 데이터의 카피)가 필요하다라고 가리킨다. 상술한 바와 같이, 만약 맵이 점증이 아니라면 상기 차이 비트값은 분할 비트값과 동일하다는 점에 유념해야만 한다.
따라서, 다시 도 2를 참조하면, 맵1(220)의 그레인2이 1의 차이 비트맵 값과 1의 분할 비트맵 값을 가지고 있다는 점을 인식할 수 있다. 따라서, 상기 점증 비트맵의 이러한 값들은, 만약 상기 다운스트림 디스크가 상기 데이터의 카피를 이미 포함하고 있지 않다면 청소(또는 캐스케이드로부터 삭제될 맵의 타겟 디스크로부터 다운스트림 디스크로 데이터의 카피)가 필수적이다는 점을 나타낸다. 그러나, 도 2에서 볼 수 있는 바와 같이, 맵2(225)의 그레인2에 의해 표시되는 바와 같이, 다운스트림 디스크3(215)은 이미 "B"의 카피를 포함하고 있다,
따라서, 도 3에 도시된 바와 같이, 맵1(220)과 디스크2(210)는 상기 캐스케이드로부터 제거되어 있다. 또한, 본 발명의 실시예들에 따라, 타켓 디스크(예를 들어 디스크3(215))이 이미 데이터(예를 들어 "B")의 카피를 포함하고 있는바, 청소(또는 타켓 디스크로 데이터의 카피)가 필요하지 않다.
반대로, 도 5를 다시 참조하면, 맵1(220)의 그레인2이 1인 차이 비트맵값과 1인 분할 비트맵값을 가진 것을 볼 수 있다. 따라서, 상기 점증 비트맵의 이렇나 값들은 만약 상기 다운스트림 디스크가 상기 데이터의 카피를 이미 포함하고 있지 않으면 청소(또는 캐스케이드로부터 삭제될 맵의 타켓디스크로부터 다운스트림 디스크로 데이터의 카피)가 필요하다는 것을 나타낸다. 또한, 도 5에서 관찰할 수 있는 바와 같이, 맵2(525)의 그레인2에 의해 표시된 바와 같이, 다운스트림 디스크3(515)은 그레인(F)의 카피를 포함하지 않는다.
따라서, 도 6에 도시된 바와 같이, 맵1(220)과 디스크2(210)은 상기 캐스케이드로부터 삭제되어 있다. 또한, 본 발명의 실시예들에 따라, 상기 캐스케이드로부터 맵1(220)의 삭제와 디스크2(210)의 삭제 전에, 디스크2(210)로부터의 데이터가 다운스트림 디스크3(515')로 카피되어지는 청소 프로세스가 발생할 수 있다. 또한, 도 5에 도시된 바와 같이, 디스크3(515')이 이제 그레인(F)에 대한 자신 스스로의 카피를 포함하는 것을 반영하기 위해, 상기 비트맵 툴(30)이 맵2(525')을 업데이트한다.
또한, 특정 그레인을 판독하도록 위에서 표시된 일반 규칙들은 상기 청소하는 맵이 있건 없건간에 동일할 수 있는바, 본 발명은 임의의 캐스케이드로 확장될 수 있다는 점이 이해되어져야 한다.
흐름도
도 7은 본 발명의 실시예들을 수행하는 바람직한 흐름을 도시한다. 도 7의 단계들은 예를 들어 도 1의 환경에서 구현될 수 있다. 상기 흐름도는 본 발명의 고레벨 블럭도를 동일하게 도시할 수 있다. 도 7의 상기 흐름도 및/또는 블럭도는 본 발명의 다양한 실시예들에 따라 시스템, 방법 및 컴퓨터 프로그램 제품들의 가능한 구현에 관한 아키텍쳐, 기능 및 동작들을 도시한다. 이러한 관점에서, 흐름도나 블럭도내 각 블럭은 규정된 로직 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행가능한 명령들을 포함하는, 모듈, 세그먼트, 또는 코드의 일부를 나타낼 수 있다. 또한 몇몇 다른 구현들에서는, 블럭들에 표시된 기능들은 도면들에 기재된 순서와 다르게 발생할 수 있다는 점에 유념해야만 한다. 예를 들어, 관련된 기능에 따라, 연속으로 도시된 두 블럭들이 실제로는 거의 동시에 실행되거나, 또는 상기 블럭들이 때때로 반대 순서로 실행될 수 있다. 상술한 바와 같이, 상기 흐름도의 각 블럭, 및 흐름도 구현의 조합들은 규정된 기능이나 동작들을 수행하는 전용 하드웨어-기반 시스템들에 의해 또는 전용 하드웨어 및 컴퓨터 명령 및/또는 소프트웨어의 조합에 의해 구현될 수 있다. 또한, 상기 흐름도의 단계들은 클라이언트 서버 관계로서 각 서버로부터 구현되고 실행될 수 있거나, 또는 이들은 유저 워크스테인션으로 전달되는 동작 정보와 함께 상기 유저 워크스테이션상에서 구동할 수 있다. 일 실시예에서, 상기 소프트웨어 요소들은 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함한다.
또한, 본 발명은 컴퓨터나 명령 실행 시스템에 의해서 또는 이와 연결하여 사용하기 위해 프로그램 코드를 제공하는 컴퓨터-사용가능 또는 컴퓨터-판독가능 매체로부터 엑세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 상기 소프트웨어 및/또는 컴퓨터 프로그램 제품은 도 1의 환경에서 구현될 수 있다. 이러한 설명을 위한 목적으로, 컴퓨터-사용가능 또는 컴퓨터 판독가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 연결하여 프로그램을 포함, 저장, 통신, 전파 또는 전달할 수 있는 임의의 장치일 수 있다. 상기 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템(또는 장치나 디바이스) 또는 전파 매체일 수 있다. 컴퓨터-판독가능 매체의 예들로는 반도체나 고체 상태 메모리, 자기 테이프, 착탈가능 컴퓨터 디스켓, 램(RAM), 롬(ROM), 리지드 자기 디스크 및 광 디스크를 포함한다. 광 디스크들의 현재 예들로는 CD-ROM, CD-R/W 및 DVD를 포함한다.
도 7의 바람직한 흐름도(700)에 도시된 바와 같이, 단계 705에서, 상기 비트맵 툴은 삭제될 맵의 점증 비트맵을 리뷰한다. 단계 710에서, 상기 비트맵 툴은 타켓 디스크의 특정 그레인에 대해서 각각 상기 분할/차이 비트맵이 0/0이나 0/1 중 어느 것인지를 결정한다. 단계 710에서, 만약 상기 비트맵 툴이 분할/차이 비트맵이 0/0 또는 0/1 중 어느 것인지를 결정하면, 단계 715에서, 상기 비트맵 툴은 청소를 수행하지 않는다. 추가적으로, 단계 765에서, 상기 비트맵 툴이 삭제될 맵의 타켓 디스크에 다른 그레인이 있는지를 결정한다. 단계 765에서, 만약 상기 비트맵이 삭제될 맵의 타켓 디스크에 다른 그레인이 있다고 결정하면, 상기 프로세스는 단계 705로 진행한다. 단계 765에서, 만약 상기 비트맵 툴이 삭제될 맵의 타켓 디스크에 다른 그레인이 없다고 결정하면, 상기 프로세스는 단계770에서 종료된다.
단계 710에서, 만약 상기 비트맵이 분할/차이 비트맵이 0/0도 0/1도 아니라고 결정하면, 상기 프로세스는 단계 720으로 진행한다. 단계 720에서, 상기 비트맵 툴이 삭제될 맵의 타켓 디스크상의 특정 그레인 각각에 대해, 상기 분할/차이 비트맵이 1/0인지를 결정한다. 단계 720에서, 만약 상기 비트맵 툴이 타켓 디스크상의 특정 그레인에 대해 상기 분할/차이 비트맵이 1/0이라고 결정하면, 상기 프로세스는 단계 725로 진행한다. 단계 720에서, 만약 상기 비트맵 툴이 상기 분할/차이 비트맵이 타켓 디스크의 특정 그레인에 대해 1/0이 아니라고 결정하면, 상기 분할/차이 비트맵은 1/1이라고 가정될 수 있고, 상기 프로세스는 단계 735로 진행한다.
단계 725에서, 상기 비트맵 툴은 상기 캐스케이드내 업스트림 맵이 있는지를 결정한다. 단계 725에서, 만약 상기 비트맵 툴이 업스트림 맵이 있다고 결정하면, 단계 730에서, 상기 비트맵 툴이 상기 업스트림 맵의 특정 그레인에 대해 분할/차이가 1/1인지를 결정한다. 단계 730에서, 만약 상기 비트맵 툴이 다음 업스트림 맵의 특정 그레인에 대해 분할/차이가 1/1이라고 결정하면, 단계 755에서, 삭제될 맵의 타켓 디스크로부터 상기 다운스트림 디스크로 상기 그레인을 카피함으로써, 상기 비트맵 툴이 상기 특정 그레인의 청소를 수행한다. 추가적으로, 단계 745에서, 상기 데이터가 상기 다운스트림 디스크상에 포함되었음을 반영하기 위해, 상기 맵이 업데이트된다. 단계 730에서, 만약 상기 비트맵 툴이 다음 업스트림 맵상의 특정 그레인에 대해 상기 분할/차이가 1/1이 아니라고 결정하면, 단계 750에서, 상기 비트맵 툴은 청소를 수행하지 않는다. 단계 725에서, 만약 상기 비트맵 툴이 업스트림 맵이 없다라고 결정하면, 단계 750에서, 상기 비트맵 툴은 청소를 수행하지 않고, 그리고 상기 프로세스는 단계 760으로 진행한다.
단계 735에서, 상기 비트맵 툴이 상기 다운스트림 디스크가 상기 그레인의 카피를 포함하고 있는지를 결정한다. 단계 735에서, 만약 상기 비트맵 툴이 상기 다운스트림 디스크가 상기 그레인의 카피를 포함하고 있다고 결정하면, 상기 프로세스는 단계 750으로 진행한다. 단계 735에서, 만약 상기 비트맵 툴이 상기 다운스트림 디스크가 상기 그레인의 카피를 포함하지 않는다고 결정하면, 상기 프로세스는 단계 740으로 진행한다. 단계 740에서, 청소가 수행되는데, 이에 따라 상기 그레인이 삭제될 맵의 타켓 디스크로부터 다운스트림 디스크로 카피된다. 단계 745에서, 이제 상기 데이터가 상기 다운스트림 디스크에 포함되었음을 반영하기 위해 상기 맵이 업데이트되고, 상기 프로세스는 단계 760으로 진행한다.
단계 760에서, 상기 비트맵 툴이 삭제될 맵의 타켓 디스크상에 다른 그레인이 있는지를 결정한다. 단계 760에서, 만약 상기 비트맵 툴이 삭제될 맵의 타켓 디스크에 다른 그레인이 있다고 결정하면, 상기 프로세스는 단계 705로 진행한다. 단계 760에서, 만약 상기 비트맵 툴이 삭제될 맵의 타켓 디스크의 다른 그레인이 없다고 결정하면, 상기 프로세스는 단계 770에서 종료한다.
여기서 사용된 용어는 단지 특정 실시예들을 기술하려는 목적이고 본 발명을 한정하려는 의도는 아니다. 여기에 사용된 바와 같이, 단수 형태 "한", "하나" 및 "상기"는 구문에서 명확하게 따로 지시하지 않는 한 복수의 형태들도 포함하려는 의도이다. 용어 "포함" 및/또는 "포함하는"은 본 상세한 설명에서 사용될 때, 개시된 특징, 숫자, 단계, 동작, 요소 및/또는 컴포넌트의 존재를 명시하는 것이고, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 요소, 컴포넌트 및/또는 이들의 그룹의 존재가 추가를 제한하려는 것은 아니다.
청구항들의 모든 수단들 및 기능식 단계 요소들의 대응하는 구조, 물질, 동작 및 균등물들은, 해당된다면, 특별히 청구된 다른 청구항 요소들과 조합으로 기능을 수행하기 위한 구조, 물질 또는 동작을 포함하려는 의도이다. 본 발명의 상세한 설명은 도시 및 설명을 위한 목적으로 개시되어 있고, 개시된 형태로 본 발명을 한정하거나 제한하려는 의도는 아니다. 수많은 변형 및 수정이 본 기술분야에서 통상의 기술을 가진 자들에 의해 수행될 수 있다.

Claims (15)

  1. 프로그래명 명령들을 가지는 컴퓨터 판독가능 저장 매체상에 유형으로 포함된(tangibly embodied) 컴퓨터 실행가능 코드를 가지는 컴퓨터 인프라구조에 구현된 방법에 있어서,
    상기 프로그래밍 명령들은
    맵의 타켓 디스크가, 플래시카피(FlashCopy) 캐스케이드(cascade)내 업스트림(upstream) 디스크로부터 다운스트림(downstream) 디스크가 획득할 수 없는 데이터를 포함하는지 여부를 결정하는 단계;
    상기 다운스트림 디스크가 상기 데이터의 카피(copy)를 가지는지 여부를 감지하는 단계;
    만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하고 그리고 상기 다운스트림 디스크가 상기 데이터의 카피를 가지지 않으면, 상기 타켓 디스크로부터 상기 다운스트림 디스크로 상기 데이터를 카피하는 단계;
    만약 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림 디스크가 획득할 수 없는 데이터를 포함하지 않거나 또는 상기 다운스트림 디스크가 상기 데이터의 카피를 가지는 경우, 상기 타켓 디스크로부터 상기 다운스트림 디스크로의 데이터 카피를 회피하는(refrain) 단계; 및
    상기 플래시카피 캐스케이드로부터 상기 맵을 삭제하는 단계;를 수행할 수 있도록 하는
    방법.
  2. 제1항에 있어서,
    상기 타켓 디스크로부터 상기 다운스트림 디스크로 카피가 수행될 때, 상기 다운스트림 디스크로부터 새로운 소스 디스크로의 매핑을 반영하도록, 다운스트림 맵을 업데이트하는 단계를 더 포함하는
    방법.
  3. 제1항에 있어서,
    상기 맵은 점증 맵(incremental map)인
    방법.
  4. 제3항에 있어서,
    상기 점증 맵은
    상기 타켓 디스크가 특정 그레인(grain)의 데이터의 실제 카피를 포함하는지 또는 상기 특정 그레인에 대한 데이터를 포함하는 소스 디스크에 의지하는지 여부를 나타내는 분할 비트맵 값(split bitmap value); 및
    상기 타켓 디스크의 특정 그레인에 포함된 데이터가 상기 소스 디스크의 대응하는 그레인에 포함된 데이터와 다른지 여부를 가리키는 차이 비트맵 값(difference bitmap value)을 포함하는
    방법.
  5. 제4항에 있어서,
    상기 특정 그레인에 대해 0인 분할 비트맵 값과 상기 특정 그레인에 대해 0인 차이 비트맵 값은, 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하지 않는 것을, 가리키는
    방법.
  6. 제4항에 있어서,
    상기 특정 그레인에 대한 0인 분할 비트맵값과 상기 특정 그레인에 대해 1인 차이 비트맵값은, 상기 맵의 타켓 디스크가 상기 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하지 않는 것을 나타내는
    방법.
  7. 제4항에 있어서,
    상기 특정 그레인에 대해 1인 분할 비트맵 값과 상기 특정 그레인에 대해 0인 차이 비트맵 값과 함께, 상기 카피가 필요한지를 결정하기 위해 업스트림 맵의 비트맵값들을 이용하는 단계를 더 포함하는
    방법.
  8. 제7항에 있어서,
    상기 다운스트림 디스크로의 상기 특정 그레인의 카피는, 만약 대응하는 그레인에 대해 업스트림 맵 분할 비트맵 값이 1이고 상기 대응하는 그레인에 대해 업스트립 맵 차이 비트맵 값이 1이면 발생하는(occurs)
    방법.
  9. 제4항에 있어서,
    상기 특정 그레인에 대한 1인 분할 비트맵값과 상기 특정 그레인에 대해 1인 차이 비트맵값은, 상기 맵의 타켓 디스크가 다른 업스트림 디스크로부터 상기 다운스트림이 획득할 수 없는 특정 그레인에 대한 데이터를 포함하는 것을 나타내는
    방법.
  10. 제1항에 있어서,
    상기 다운스트림 디스크는 공간 효율 디스크이고; 그리고
    상기 공간 효율 디스크에 최소로 필요한 수의 그레인들을 할당하는 단계; 및
    만약 상기 맵의 삭제후에, 상기 공간 효율 디스크의 특정 그레인이 현재 다른 업스트림 디스크에서 이용가능하면, 상기 공간 효율 디스크에 공간을 할당해제하고 다운스트림 맵을 업데이트하는 단계;를 더 포함하는
    방법.
  11. 플래시카피 캐스케이드내 맵에 대한 비트맵값들을 감지;
    상기 감지에 기초하여, 플래시카피 청소 프로세스(FlashCopy cleaning process)가 필요한지를 결정; 그리고
    만약 필요하다면,
    상기 플래시카피 청소 프로세스를 수행;
    상기 플래시카피 청소 프로세스가 수행될 때, 상기 플래시카피 캐시케이드내 다운스트림 맵에 대한 비트맵값들을 수정; 및
    상기 플래시카피 캐스케이드로부터 상기 맵을 삭제;를 수행하도록 동작가능한 비트맵 툴(bitmap tool);을 포함하는
    시스템.
  12. 제11항에 있어서,
    상기 맵은
    타켓 디스크가 특정 그레인에 대해 데이터의 실제 카피를 포함하는지 또는 상기 특정 그레인에 대해 데이터를 포함하는 소스 디스크에 의지하는지 여부를 나타내는 분할 비트맵 값(split bitmap value); 및
    상기 타켓 디스크의 특정 그레인에 포함된 데이터가 상기 소스 디스크의 대응하는 그레인에 포함된 데이터와 다른지 여부를 나타내는 차이 비트맵값(difference bitmap value);을 포함하는 점증 맵(incremental map)인
    시스템.
  13. 제12항에 있어서,
    상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 0의 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 1의 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스(FlashCopy cleaning process)가 상기 특정 그레인에 대해 필요하지 않다고 결정하고,
    상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 0의 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 0인 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스가 상기 특정 그레인에 대해 필요하지 않다고 결정하고,
    만약 상기 비트맵 툴이 상기 특정 그레인에 대한 분할 비트맵값에 대해 1인 값과 상기 특정 그레인에 대한 차이 비트맵값에 대해 0인 값을 감지하면, 상기 비트맵 툴이 카피가 필요한지를 결정하기 위해 업스트림 맵의 비트맵들의 값들을 활용하고, 그리고
    상기 비트맵 툴이 상기 특정 그레인에 대해 분할 비트맵 값에 대해 1인 값과 상기 특정 그레인에 대한 차이 비트맵 값에 대해 1인 값을 감지하면, 상기 비트맵 툴이 상기 플래시카피 청소 프로세스가 상기 특정 그레인에 대해 필요하다고 결정하는
    시스템.
  14. 제12항에 있어서,
    상기 다운스트림 디스크는 공간 효율 디스크(space efficient disk)이고,
    상기 비트맵 툴이 상기 공간 효율 디스크에 최소 필요수의 그레인들을 할당하는
    시스템.
  15. 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램 코드는 컴퓨터 시스템에 로드되고 그 안에서 실행될 때,
    상기 컴퓨터 시스템이 제1항 내지 제10항 중 어느 한항에 따른 방법의 모든 단계들을 수행하도록 하는
    컴퓨터 프로그램.
KR1020117009495A 2008-10-08 2009-10-07 점증 맵들을 포함하는 플래시카피 캐스케이드에서 맵들의 최적화된 청소를 위한 방법 KR101539813B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/247,642 US8230185B2 (en) 2008-10-08 2008-10-08 Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US12/247,642 2008-10-08

Publications (2)

Publication Number Publication Date
KR20110070992A true KR20110070992A (ko) 2011-06-27
KR101539813B1 KR101539813B1 (ko) 2015-08-06

Family

ID=41339738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009495A KR101539813B1 (ko) 2008-10-08 2009-10-07 점증 맵들을 포함하는 플래시카피 캐스케이드에서 맵들의 최적화된 청소를 위한 방법

Country Status (7)

Country Link
US (3) US8230185B2 (ko)
EP (1) EP2288975B1 (ko)
JP (1) JP4932063B2 (ko)
KR (1) KR101539813B1 (ko)
CN (1) CN102177505B (ko)
AT (1) ATE523845T1 (ko)
WO (1) WO2010040768A2 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7855998B2 (en) 2001-11-07 2010-12-21 Tektronix, Inc. Gb parameter based radio priority
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
ATE535867T1 (de) 2008-10-30 2011-12-15 Ibm Flashcopy-handling
US8799597B2 (en) * 2009-09-02 2014-08-05 International Business Machines Corporation Data copying
US8862848B2 (en) 2009-09-24 2014-10-14 International Business Machines Corporation Data storage using bitmaps
WO2011036020A1 (en) 2009-09-25 2011-03-31 International Business Machines Corporation Data storage
US8285679B2 (en) * 2010-03-11 2012-10-09 International Business Machines Corporation Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship
US8533411B2 (en) * 2010-03-11 2013-09-10 International Business Machines Corporation Multiple backup processes
AU2010201718B2 (en) * 2010-04-29 2012-08-23 Canon Kabushiki Kaisha Method, system and apparatus for identifying a cache line
US8788770B2 (en) * 2010-05-25 2014-07-22 International Business Machines Corporation Multiple cascaded backup process
US10114701B2 (en) 2011-01-28 2018-10-30 International Business Machines Corporation Space efficient cascading point in time copying
JP6048976B2 (ja) * 2011-03-08 2016-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation マルチターゲット・アーキテクチャにおけるソースと空間効率の良いターゲットとの間の関係の削除のための方法、コンピュータ・プログラム、および装置
US9075723B2 (en) 2011-06-17 2015-07-07 International Business Machines Corporation Efficient discard scans
US8868860B2 (en) 2011-09-23 2014-10-21 International Business Machines Corporation Restore in cascaded copy environment
US9063883B2 (en) * 2011-09-26 2015-06-23 International Business Machines Corporation Management of point-in-time copy relationship for extent space efficient volumes
US8719523B2 (en) * 2011-10-03 2014-05-06 International Business Machines Corporation Maintaining multiple target copies
US9047233B2 (en) 2012-06-25 2015-06-02 International Business Machines Corporation Source cleaning cascaded volumes using write and background copy indicators
US9037819B2 (en) 2012-06-25 2015-05-19 Inernational Business Machines Corporation Source cleaning cascaded volumes using reference counts
JP5963324B2 (ja) 2014-08-11 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US9652163B2 (en) 2015-05-03 2017-05-16 International Business Machines Corporation Coordinated space reclamation in space-efficient flashcopy volumes
US9747171B2 (en) 2015-09-16 2017-08-29 International Business Machines Corporation Point-in-time copy restore
US9760450B2 (en) 2015-09-16 2017-09-12 International Business Machines Corporation Restoring a clone point-in-time copy
US9760449B2 (en) 2015-09-16 2017-09-12 International Business Machines Corporation Restoring a point-in-time copy
US10146683B2 (en) 2016-01-18 2018-12-04 International Business Machines Corporation Space reclamation in space-efficient secondary volumes
US10114551B2 (en) 2016-01-18 2018-10-30 International Business Machines Corporation Space reclamation in asynchronously mirrored space-efficient secondary volumes
US10126971B1 (en) 2017-06-21 2018-11-13 International Business Machines Corporation Enhanced application performance in multi-tier storage environments
US10083087B1 (en) 2017-07-14 2018-09-25 International Business Machines Corporation Managing backup copies in cascaded data volumes
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
JP3260923B2 (ja) * 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6859888B2 (en) * 2000-09-19 2005-02-22 Matsushita Electric Industrial Co., Ltd. Data storage array apparatus storing error information without delay in data access, and method, program recording medium, and program for the same
US6889228B1 (en) * 2001-03-29 2005-05-03 Network Appliance, Inc. Cascading support for mirrored volumes
US20030014523A1 (en) * 2001-07-13 2003-01-16 John Teloh Storage network data replicator
US6820180B2 (en) * 2002-04-04 2004-11-16 International Business Machines Corporation Apparatus and method of cascading backup logical volume mirrors
DE60313661D1 (de) 2002-12-20 2007-06-14 Koninkl Philips Electronics Nv Backup-dvd-rws mit vorkonfiguration
US7024530B2 (en) * 2003-03-14 2006-04-04 International Business Machines Corporation Method, system, and program for establishing and using a point-in-time copy relationship
US7133982B2 (en) 2003-06-18 2006-11-07 International Business Machines Corporation Method, system, and article of manufacture for consistent copying of storage volumes
JP2005235058A (ja) 2004-02-23 2005-09-02 Hitachi Ltd スナップショット取得方法、スナップショット取得装置及びスナップショット取得機能を備えたコンピュータシステム
JP4439960B2 (ja) * 2004-03-22 2010-03-24 株式会社日立製作所 ストレージ装置
CN1926819B (zh) 2004-03-31 2012-02-08 艾利森电话股份有限公司 用于避免不必要的重传的方法和布置
JP2005301590A (ja) * 2004-04-09 2005-10-27 Hitachi Ltd ストレージシステム及びデータ複製方法
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
US7738385B2 (en) * 2004-11-30 2010-06-15 Broadcom Corporation Mirroring of data in a network device
GB0428108D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
GB0428105D0 (en) * 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting and disk failure protection
KR20070100761A (ko) * 2004-12-27 2007-10-11 카네카 코포레이션 응고 입자 조성물
US7395378B1 (en) 2005-01-04 2008-07-01 Symantec Operating Corporation System and method for updating a copy-on-write snapshot based on a dirty region log
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
GB0504390D0 (en) * 2005-03-02 2005-04-06 Ibm Storage system with cascaded copy targeting and enhanced integrity
US7702851B2 (en) * 2005-09-20 2010-04-20 Hitachi, Ltd. Logical volume transfer method and storage network system
US7636824B1 (en) * 2006-06-28 2009-12-22 Acronis Inc. System and method for efficient backup using hashes
CN101601004A (zh) 2007-01-31 2009-12-09 国际商业机器公司 存储数据保护和恢复的装置和方法
US7873809B2 (en) 2007-03-29 2011-01-18 Hitachi, Ltd. Method and apparatus for de-duplication after mirror operation
US8195620B2 (en) 2007-10-19 2012-06-05 International Business Machines Corporation Storage system with improved multiple copy targeting
US8051259B2 (en) 2008-06-23 2011-11-01 International Business Machines Corporation Space efficient de-allocation for cascade/multiple target flash copy cleaning
US8195906B2 (en) 2008-08-06 2012-06-05 International Business Machines Corporation Method and system for cascaded flashcopy zoning and algorithm and/or computer program code and method implementing the same
US8230185B2 (en) 2008-10-08 2012-07-24 International Business Machines Corporation Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
ATE535867T1 (de) 2008-10-30 2011-12-15 Ibm Flashcopy-handling
US8560787B2 (en) 2009-03-30 2013-10-15 International Business Machines Corporation Incremental backup of source to target storage volume
US8468316B2 (en) 2009-06-15 2013-06-18 International Business Machines Corporation Apparatus and method for data backup
US9047233B2 (en) 2012-06-25 2015-06-02 International Business Machines Corporation Source cleaning cascaded volumes using write and background copy indicators
US9037819B2 (en) 2012-06-25 2015-05-19 Inernational Business Machines Corporation Source cleaning cascaded volumes using reference counts

Also Published As

Publication number Publication date
CN102177505B (zh) 2014-04-16
EP2288975A2 (en) 2011-03-02
US20120246426A1 (en) 2012-09-27
ATE523845T1 (de) 2011-09-15
WO2010040768A3 (en) 2010-07-08
JP2012503240A (ja) 2012-02-02
US20140189233A1 (en) 2014-07-03
US8688937B2 (en) 2014-04-01
US8990529B2 (en) 2015-03-24
JP4932063B2 (ja) 2012-05-16
KR101539813B1 (ko) 2015-08-06
US8230185B2 (en) 2012-07-24
EP2288975B1 (en) 2011-09-07
US20100088468A1 (en) 2010-04-08
WO2010040768A2 (en) 2010-04-15
CN102177505A (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
US8990529B2 (en) Method for optimizing cleaning of maps in flashcopy cascades containing incremental maps
US11132264B2 (en) Point-in-time copy restore
US8051259B2 (en) Space efficient de-allocation for cascade/multiple target flash copy cleaning
US10997127B2 (en) Preventing inefficient recalls in a hierarchical storage management (HSM) system
CN110096227B (zh) 数据存储方法、数据处理方法、装置、电子设备及计算机可读介质
US20120239896A1 (en) Optimized Shrinking of Virtual Disks
US9606873B2 (en) Apparatus, system and method for temporary copy policy
US20170075773A1 (en) Restoring a point-in-time copy
JP2009064160A (ja) 計算機システム、管理計算機及びデータ管理方法
US8751739B1 (en) Data device spares
US9760450B2 (en) Restoring a clone point-in-time copy
JP7323769B2 (ja) ストレージ装置、ストレージシステムおよびプログラム
US7089392B2 (en) Method, system, and program for allocating storage units to a data set
US11099751B2 (en) Determining tracks to release in a source volume being copied to a target volume
CN112905541B (zh) 镜像仓库垃圾清理方法和装置
US11640339B2 (en) Creating a backup data set
US8775732B1 (en) Method and system for passing information to disk arrays for efficient storage management
US8769182B1 (en) Virtual tape library with the ability to perform multiple, simultaneous reads of a single virtual tape
US11822791B1 (en) Writing data to lower performance storage tiers of a multi-tier storage system
US10664188B2 (en) Data set allocations taking into account point-in-time-copy relationships
CN113986117A (zh) 文件的存储方法、系统、计算设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 4