KR101626186B1 - 피어 및 클라우드로부터 파일 및 시스템의 차분 복구 - Google Patents

피어 및 클라우드로부터 파일 및 시스템의 차분 복구 Download PDF

Info

Publication number
KR101626186B1
KR101626186B1 KR1020117023057A KR20117023057A KR101626186B1 KR 101626186 B1 KR101626186 B1 KR 101626186B1 KR 1020117023057 A KR1020117023057 A KR 1020117023057A KR 20117023057 A KR20117023057 A KR 20117023057A KR 101626186 B1 KR101626186 B1 KR 101626186B1
Authority
KR
South Korea
Prior art keywords
network
file
version
location
data item
Prior art date
Application number
KR1020117023057A
Other languages
English (en)
Other versions
KR20120027132A (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 KR20120027132A publication Critical patent/KR20120027132A/ko
Application granted granted Critical
Publication of KR101626186B1 publication Critical patent/KR101626186B1/ko

Links

Images

Classifications

    • 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
    • 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/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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
    • 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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • 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/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

네트워크-기반 백업 시스템에서 고도로 효율적인 복구를 위한 시스템 및 방법론이 여기에 제공된다. 설명된 바처럼, 차분-기반 분석(differential-based analysis)이 사용되어 백업 데이터를 검색하기 전에 새로운 완전한 차분이 임의의 복구될 항목과 관련된 서명 및/또는 다른 정보에 기초하여 계산된다. 상기 차분에 기초하여, 상기 항목의 현재 버전과 원버는 버전 사이에 고유하다고 판정된 블록만이 전송되며, 상기 고유하다고 판정된 블록은 상기 항목의 완전한 복구 버전을 획득하기 위해 로컬로 나타나는 비고유 블록과 병합될 수 있다. 또한, 혼성 구조가 사용되어, 서명 및/또는 데이터가 하나 이상의 로컬 피어 뿐만 아니라 네트워크 내의 글로벌 위치에도 저장될 수 있다. 따라서, 백업 클라이언트는 백업에 필요한 정보를 글로벌 위치 또는 근처의 피어 모두로부터 획득할 수 있고, 지연과 대역폭 소비를 감소할 수 있다.

Description

피어 및 클라우드로부터 파일 및 시스템의 차분 복구{DIFFERENTIAL FILE AND SYSTEM RESTORES FROM PEERS AND THE CLOUD}
컴퓨팅 장치가 일반화되고 일반 대중들 사이에서 널리 사용됨에 따라, 그러한 장치에서 생성되고 이용되는 데이터의 양이 빠르게 증가하고 있다. 예를 들어, 컴퓨팅과 데이터 저장 기술의 발전은 가장 제한된 폼-팩터(form-factor) 장치 조차도 문서 편집, 미디어 프로세싱 등의 다양한 데이터-헝그리(data-hungry) 애플리케이션을 위한 많은 양의 정보를 저장하고 처리할 수 있게 하였다. 또한, 통신 기술에서의 최근의 발전은 컴퓨팅 장치가 빠른 속도로 데이터를 통신할 수 있게 하였다. 이러한 발전은 다른 기술 분야 가운데서도 특히, 네트워크상의 여러 위치에서 컴퓨팅 장치를 사용하여 처리되는 분산 컴퓨팅 서비스(distributed comptuing services)의 구현을 이루어냈다. 또한, 그러한 발전은 컴퓨팅 장치의 사용자가 네트워크상의 원격 위치(remote location)에 상기 컴퓨팅 장치와 관련된 데이터의 하나 이상의 백업 카피를 유지하는 것을 가능하게 하는 네트워크 기반 백업(network-based backup)과 같은 서비스의 구현을 가능하게 했다.
현존하는 시스템 및/또는 데이터 백업 솔루션은 사용자가 백업 정보를 그 오리지널 소스(original source)로부터 분리된 위치(location) 및/또는 매체에 저장하는 것을 가능하게 한다. 따라서, 예를 들어, 컴퓨팅 장치의 데이터가 하드 드라이브에서 테이프 드라이브(tape drive) 또는 외장 하드 드라이브 등의 외부 매체(external media)로 백업 될 수 있다. 그러나, 물리적으로 떨어진 위치에 백업데이터의 저장을 제공하기 위해 이용되는 네트워크 기반 백업 및/또는 다른 솔루션을 구현하는 데는, 사용자 기계와 원격 저장 위치 간의 전송과 복구와 관련된 비용 및 복잡성(complexity)이 발생하여 백업 시스템의 유용성을 상당히 제한할 수 있다. 예를 들어, 백업 데이터가 원격 네트워크 위치에 저장된 경우, 파일 및/또는 시스템 이미지의 원본의 각각의 버전과 관련된 데이터가 원격 저장소에 전송될 수 있고, 상기 각각의 버전은 추후에 복구를 위해 검색될 수 있다. 그러나, 일반적으로 상당한 양의 데이터가 네트워크를 통해 전송되므로 값비싼 대역폭(bandwidth)을 소비하게 된다. 이러한 관점에서, 향상된 효율성을 가지는 네트워크 기반 백업 기술의 구현이 요구된다.
이 개요는 상세한 설명에서 더 후술 되는 몇몇 개념을 간단한 형태로 소개하기 위해 제공된다. 이 개요는 청구 주제의 주요 특징 또는 핵심적 특징을 확인하려는 것이 아니며, 또한 청구 주제의 범주를 제한하는데 사용하려는 것도 아니다. 이 개요의 유일한 목적은 후술될 보다 상세한 설명에 앞서 간략화된 형태로 청구 주제에 대한 몇몇 개념을 제공하는 데 있다.
여기에 제공된 시스템 및 방법은 네트워크 기반 백업 시스템을 위한 고도로 효율적인 복구 기술을 가능하게 한다. 복구될 항목의 특정 버전의 복구를 위해서, 네트워크를 통한 데이터 전송에 앞서 하나 이상의 원격 백업 위치와 백업 클라이언트 간의 차분(differential)가 계산되는 방식의 차분 기반 분석(differential-based analysis)이 이용될 수 있다. 차분은 상기 백업 클라이언트와 상기 원격 백업 위치 모두에서 계산될 수 있으며, 상기 백업 클라이언트에 위치하는 상기 저장될 항목의 현재 버전과 상기 원격 백업 위치에 위치하는 원하는 버전에 해당되는 서명(signature)을 비교하여 계산된다. 상기 계산된 차분에 기초하여, 상기 항목의 현재 버전과 그 원하는 버전 사이에서 고유하다고 판정된 블록에 대해서만 전송이 수행되고, 그로 인해 상기 복구에 걸리는 지연시간과 소비되는 네트워크 대역폭이 감소된다. 원격 백업 위치에서 획득된 고유한 블록이 일단 획득되면, 상기 백업 클라이언트에 이미 위치하는 상기 항목의 현재 버전에 나타나는 비고유한 블록과 병합되어 완전한 복구 버전을 얻을 수 있다.
일 실시예에 따르면, 혼성 구조(hybird architecture)가 사용되어, 복구를 실행하는데 필요한 서명 및/또는 데이터가 네트워크 또는 "클라우드(cloud)"와 같은 인터네트워크(internetwork) 내의 글로벌 위치(global location) 뿐만 아니라 백업 클라이언트가 위치하는 기계와 관련된 하나 이상의 피어 기계(peer machine)로부터 백업 클라이언트에 이용가능하게 될 수 있다. 따라서, 백업 클라이언트는 상기 클라우드 또는 인근의 피어로부터 복구를 수행하고 지연 및 대역폭 소비를 줄이는데 필요한 부분적인 또는 모든 정보를 얻을 수 있다. 한 예에서, 백업 정보의 저장 및/또는 검색을 위해 이용될 위치는 네트워크 위치, 상대적인 로딩(relative loading), 또는 네트워크 토폴로지(network topology) 등의 유효성(availability)과 같은 요소에 기초하여 지능적(intelligent)이고 자동적인 방법으로 선택될 수 있다.
후술될 상세 설명과 그에 따른 도면은 청구되는 주제의 특정 실례적 실시예를 상세하게 제시한다. 이들 실시예는 본원에 개시된 원리를 실시할 수 있는 다양한 방식을 나타내고 있으며, 이 모든 실시예 및 그 등가물은 특허청구된 대상의 범위 내에 속하는 것으로 보아야 한다. 그 외의 효과 및 새로운 특징들은 도면과 함께 살펴볼 때, 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 다양한 실시예에 따른 백업 정보에서 차분 복구(differential restore)를 수행하기 위한 시스템의 상위 레벨 블록도.
도 2는 다양한 실시예에 따른 백업 정보의 생성을 위한 시스템의 블록도.
도 3은 다양한 실시예에 따른 백업 정보에 해당하는 서명을 생성하기 위한 시스템의 블록도.
도 4는 다양한 실시예에 따른 서명 기반 차별(signature-based differential)을 수행하는 시스템의 블록도.
도 5는 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어(peer-to-peer)의 혼성 백업 저장소를 구현하는 시스템의 블록도.
도 6은 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어의 혼성 백업 구조에서 차분 복구를 수행하기 위한 시스템의 블록도.
도 7은 여기에 기술된 다양한 실시예와 연관되어 이용될 수 있는 예시적인 네트워크 구현을 도시하는 도면.
도 8은 파일의 차분 복구를 수행하는 방법의 흐름도.
도 9는 파일의 서명 기반 차별을 수행하는 방법의 흐름도.
도 10은 피어-투-피어 및 클라우드-기반 혼성 시스템으로부터 파일 세그먼트(file segment)를 얻기 위한 방법의 흐름도.
도 11은 여기에 기술된 다양한 실시예가 동작할 수 있는 컴퓨팅 시스템의 블록도.
도 12는 예시적인 네트워크 컴퓨팅 환경을 도시하는 개괄적인 블록도.
이하에서 본 발명의 몇몇 실시예는, 본 발명의 전체의 실시예가 아닌 일부의 실시예를 도시하는 첨부된 도면을 참조하여 보다 구체적으로 설명될 것이다. 또한 본 발명의 여러 실시예는 여러 상이한 형태로 구현될 수 있고, 본 명세서에 설명된 실시예만으로 한정된다고 해석되지 않아야 한다. 도면에 걸쳐 동일한 참조 번호는 동일한 구성 요소를 지칭한다.
본 명세서에서 사용된 바와 같이, "컴포넌트(component)", "모듈(module)", "시스템", "인터페이스(interface)", "스키마(schema)", 또는 "알고리즘(algorithm)" 등의 용어는 일반적으로 하드웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어와 같은 컴퓨터 연관 개체(computer-related entity)를 지칭하기 위하여 사용된다. 예를 들어, 컴포넌트는 프로세서상에서 실행되는 프로세스, 프로세서, 객체(object), 실행가능 파일(executable), 실행중인 쓰레드(thread), 프로그램, 및/또는 컴퓨터 등일 수 있으나, 이에 한정되는 것은 아니다. 일례로서, 콘트롤러 상에서 실행중인 애플리케이션과 상기 콘트롤러 모두 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행중인 쓰레드 내에 존재(reside)할 수도 있고, 컴포넌트는 하나의 컴퓨터 및/또는 두 개 이상의 컴퓨터 사이에 분산되어 지역화(localized)될 수도 있다.
또한, 청구된 주제는 기술된 주제를 구현하기 위해 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어(firmware), 하드웨어 또는 그들 간의 조합을 생성하기 위한 표준 프로그래밍(standard programmings) 및 엔지니어링 기술(engineering techniques)을 사용한 방법, 장치, 또는 제조품으로서 구현된다. 여기서 사용된 "제조품"이라는 용어는 모든 컴퓨터 판독 가능 (computer-readable) 장치, 캐리어(carrier), 또는 매체(media)로부터 액세스 가능한(accessible) 컴퓨터 프로그램을 망라한다. 예를 들어, 컴퓨터 판독 가능 매체는 자기 저장 장치(magnetic storage devices) (예컨데, 하드 디스크, 플로피 디스크, 마그네틱 스트립 ...), 광학 디스크(optical disks) (예컨데, CD (compact disk), DVD (digital versatile disk)...), 스마트 카드, 플래시 메모리 장치 (예컨데, 카드, 스틱, 키 드라이브 ...)등을 포함할 수 있다. 이와 더불어, 반송파(carrier wave)가 전자 메일의 송수신 또는 인터넷이나 근거리통신망(LAN)과 같은 네트워크에 액세스하는데 사용되는 것과 같은 컴퓨터 판독 가능 전자 데이터를 실어보낼 수 있음을 주지해야 한다. 물론 당업자는 청구된 주제의 범위와 사상을 벗어남 없이 이러한 구성에 대한 여러 수정이 가능함을 인지할 것이다.
이와 더불어, "예시적인(exemplary)"이라는 용어는 여기서 예시(example), 사례(instance), 또는 실례(illustration)를 의미하기 위해 사용된다. 여기서 예시로서 기술된 실시예 또는 디자인은 다른 실시예 또는 디자인보다 선호되거나 유용하다고 해석될 필요는 없다. 그보다는 "예시적인"이라는 용어의 사용은 구체적인 방식으로 컨셉을 나타내기 위한 것이다. 본 명세서에서 사용된 바와 같이, "또는(or)"이라는 용어는 배타적인(exclusive) "또는"이라기보다는 포괄적인(inclusive) "또는"을 의미한다. 즉, 특별한 언급이 없거나, 문맥으로부터 명화하지 않는 한, "X가 A 또는 B를 이용한다"는 것은 자연적인 포괄적 치환을 의미한다. 즉, X가 A를 이용하거나, X가 B를 이용하거나 또는 X가A 및 B를 모두 이용한다면, "X가 A 또는 B를 이용한다"는 표현이 위 예들 중 어느 예에서도 성립한다. 또한, 본 명세서 및 첨부된 청구범위에서 사용된 단수형 표현은 단수형으로 지시되도록 특별히 언급하지 않거나 문맥으로부터 명확하지 않는 한, 일반적으로 "하나 이상"을 의미하는 것으로 해석해야 한다.
이제 도면을 참조하면, 도 1은 여기에 기술된 다양한 실시예에 따라 백업 정보로부터 차분 복구를 수행하는 시스템(100)의 블록도을 도시한다. 일례로, 시스템(100)은 시스템(100)을 구현하거나 상기 시스템과 연관되는 클라이언트 기계에 존재하는 현재 버전으로부터 백업 시스템에 존재하는 원하는 버전으로 파일, 시스템 이미지 및/또는 다른 데이터를 복구하는데 사용될 수 있다.
한 실시예에 따르면, 시스템(100)은 후에 자세히 설명될 클라우드 백업 시스템(cloud backup system)과 같은 네트워크 기반 또는 온라인 백업 솔루션과 관련되어 이용될 수 있는데, 이 백업 솔루션은 클라이언트 기계와 연관된 네트워크 또는 인터네트워크 상의 하나 이상의 원격 저장 위치(remote storage location)에 있는 클라이언트 기계로부터의 백업 정보를 저장한다. 종래의 온라인 백업 솔루션은 원격 저장 위치에서 다양한 시점에 백업 클라이언트로부터 얻은 파일의 집합을 보유(maintain)함으로써 동작한다. 그 후에, 요청된 저장 위치로부터 하나 이상의 파일을 검색함으로써 복구가 수행된다. 그러나, 이러한 방식으로 온라인 백업 시스템으로부터 정보를 복구하는 것은 과도한 양의 시간 및/또는 대역폭을 소비하게 된다. 더욱이, 그러한 시스템은 일반적으로 주어진 파일 내의 데이터의 적은 부분에만 클라이언트 상의 현재 버전과 원격 위치상의 원하는 버전 간에 변경이 발생한 경우에도 복구 동작을 위해 파일 전체를 검색한다. 예를 들어, 그러한 시스템은 어떤 경우에는 클라이언트 상의 파일의 현재 버전과 검색된 버전 간에 이름 및/또는 메타데이터(metadata)에만 차분이 있을 때도 파일 전체를 검색한다.
다른 종래의 온라인 백업 솔루션은 정보의 여러 가지 완전한 버전을 저장하기 보다는 상기 정보의 원래 버전(original version)을 저장하고, 그 후에 상기 원래 버전에 발생한 변경 사항을 반영하는 업데이트를 추가하여 저장함으로써 점증적인 원격 저장소(incremental remote storage)를 제공할 수 있다. 그러나, 추가된 업데이트는 것은 일반적으로 누적되는 방식(cumulative manner)으로 저장되고 검색되기 때문에, 여러 이전 버전에 걸쳐서 파일 또는 다른 정보를 롤백(roll back)하기를 바라는 백업 클라이언트는 상기 정보가 롤백되는 각각의 이전 버전에 해당되는 추가된 업데이트를 검색할 필요가 있다. 몇몇의 경우 버전 간의 변화가 매우 클 수 있으며, 이러한 경우 심지어 현재 버전과 원하는 버전 간의 알짜 변화(net change)가 상대적으로 작은 경우에도 네트워크 간에 통신 되는 데이터의 양이 많아지고 많은 양의 대역폭 소비 및/또는 시간이 요구될 수 있다.
따라서, 원격으로 저장된 백업 정보와 관련하여 향상된 효율성과 적은 시간 및 대역폭 소비를 제공하기 위하여, 시스템(100)은 정보의 차분 복구(differential restoration)를 이용할 수 있다. 보다 상세히, 사용자가 하나 이상의 파일에 대한 이전 정보를 복구하기를 원하는 경우, 원하는 버전과 현재 사용자 기계에 의해 저장된 현재 버전 간의 차별(differential)을 수행하기 위해 차분 컴포넌트(110)가 이용될 수 있다. 일 실시예에 따르면, 파일과 그와 연관된 모든 백업의 수명에 걸쳐서 사용되는 점증적 차분 업데이트 프로세스(incremental differential update process)를 뒤바꾸는(reverse) 대신에, 차분 컴포넌트(110)는 어떤 점증적인 프로세스(incremental process)를 뒤바꿀 필요 없이 상기 원하는 버전과 현재 버전 사이에 존재하는 고유한 세그먼트 또는 블록만을 판정하기 위한 서명(signature) 및/또는 다른 표시(indicator)의 집합을 대신 이용한다.
또 다른 실시예에 따르면, 현재 파일 버전과 원하는 버전 사이의 고유한 블록의 목록을 식별함에 있어서, 연관된 네트워크상의 고유한 블록의 각각의 위치를 식별하기 위해 블록 위치 컴포넌트(120)가 이용될 수 있다. 특정 파일의 원하는 버전과 그 현재 버전에 차분이 발생한 것으로 판정된 파일의 블록 또는 세그먼트에 대해서만 식별, 위치 지정(locating), 및/또는 검색을 수행함으로써, 시스템(100)에 의해 수행되는 상기 복구 프로세스가 지연 및 밴드폭 소비를 줄일 수 있고, 전통적인 온라인 백업 솔루션에 비해 향상된 성능을 제공할 수 있다.
한 예시로서, 블록 위치 컴포넌트(120)는 현재와 원하는 파일 버전이 다르다고 판정된 각각의 블록을 검색하기 위해서 네트워크와 연관된 각각의 블록의 위치와 관련된 지도(map), 인덱스, 및/또는 다른 메타데이터를 이용할 수 있다. 또 다른 예시로서, 블록 위치 컴포넌트(120)는 각각의 블록을 획득하는데 최소한의 저항(resistance)를 갖는 경로를 탐색(discover)하기 위해서 지능적 및/또한 자동적인 방법으로 블록을 위치를 찾을 수 있다. 따라서, 블록 위치 컴포넌트(120)는 파일 세그먼트 또는 블록을 획득하기 위해 가장 효율적인 방법을 결정하기 위해서 네트워크 가용성(availability) 또는 로딩(loading) 등의 요소를 이용할 수 있다. 특정 예로서, 블록 위치 컴포넌트(120)는 어떤 블록이 인터넷상의 클라우드 저장 위치 및 로컬 네트워크와 연관된 하나 이상의 피어 기계(peer machine)에 위치되는가를 판정할 수 있다. 그러한 예에서, 블록 위치 컴포넌트(120)는 더욱 빠른 검색과 네트워크 대역폭을 아끼기 위해서 가장 가까이에 있는 이용 가능한(available) 피어에 있는 블록의 검색을 가능하게 할 수 있고, 이용 가능한 피어가 없을 때에만 클라우드로 되돌아 간다. 피어-투-피어 및/또는 클라우드 기반 저장 구조의 구현예들이 하기에서 더욱 자세히 제공된다.
또 다른 실시예에 따르면, 블록 위치 컴포넌트(120)가 어떤 파일에 해당하는 고유한 블록의 각각의 위치를 식별한 후에, 블록 위치 컴포넌트(120)를 통해 알아낸 위치에서부터 상기 식별된 블록을 빼내고, 상기 검색된 블록에 기초하여 상기 파일의 원하는 버전을 복구하기 위해 복구 컴포넌트(130)가 이용될 수 있다. 일례에서, 복구 컴포넌트(130)가 각각의 식별된 블록을 검색하는 위치는 블록 위치 컴포넌트(120)에 의해 설정될 수 있고, 하나 이상의 주어진 블록이 위치해 있는 위치의 목록을 이와 달리, 블록 위치 컴포넌트(120)가 제공할 수도 있으며, 이 위치 목록에 기초하여 복구 컴포넌트(130)가 이용 가능성, 로딩, 대역폭, 및/또는 다른 적절한 요소에 기초하여 자동적인 방법으로 블록을 검색할 위치를 선택할 수 있다. 예를 들어, 블록 위치 컴포넌트(120)는 복구 컴포넌트(130)에 인터넷상의 클라우드 저장 시스템의 해당 위치뿐만 아니라 어떤 블록이 위치하는 하나 이상의 피어를 제공할 수 있고, 복구 컴포넌트(130)는 대역폭을 아끼고 지연을 줄일 수 있는 피어 기계의 사용에 중점을 두고 블록을 검색할 수 있다.
파일의 원하는 버전에 해당하는 식별된 블록이 복구 컴포넌트(130)에 의해 검색된 후, 복구 컴포넌트(130)는 검색된 블록과 파일의 현재 버전 상에 이미 로컬로 존재하는 비고유 블록(non-unique block)을 병합하여 상기 파일의 원하는 버전을 재생성할 수 있다. 파일의 원하는 버전을 재생성하는 것은, 예를 들어, 파일의 현재 버전과 원하는 버전 간의 차분에 해당하는 블록을 사용하여 원하는 버전에 대한 현재 버전 상의 변화가 롤백되는 전환 차분 알고리즘(reverse difference algorithm)을 사용하여 수행될 수 있다. 파일 복구는 복구 컴포넌트(130)에 의해 현재 파일 버전과 원하는 파일 버전에 연관되는 고유한 파일 세그먼트를 병합하는 임의의 적합한 알고리즘을 사용하여 수행될 수 있음을 주목해야 한다. 또한, 블록 또는 파일 세그먼트의 생성(construction), 식별(identification) 및/또는 사용은 따로 명시적으로 언급되지 않는 한, 임의의 적합한 방법을 통해 시스템(100)에 의해 수행되며, 여기에 첨부된 청구항은 파일 세그먼트 또는 복구의 어떤 특정한 예시에 한정되는 것이 아님을 주목해야 한다.
이제 도 2로 되돌아 가서, 다양한 실시예에 따라 백업 정보를 생성하는 시스템(200)이 도시된다. 도 2에 도시된 바와 같이, 시스템(200)은 파일, 시스템 스냅샷(snapshot), 및/또는 백업 클라이언트 기계와 연관된 다른 정보의 백업 사본을 생성하고 사용할 수 있는 백업 컴포넌트(210)를 포함한다. 일 실시예에서, 백업 컴포넌트(210)는 백업될 클라이언트 정보가 위치할 기계에 위치할 수 있고/또는 상기 기계에서 동작할 수 있다. 이와 더불어 또는 그 대신에, 백업 컴포넌트(210)는 원격 실행 컴포넌트(remotely executed component)와 같은 이종의 컴퓨팅 장치에 위치할 수도 있다. 일 실시예에서, 백업 컴포넌트(210)는 규칙적인 간격으로, 파일의 수정과 같은 하나 이상의 이벤트의 트리거 시에 및/또는 임의의 다른 적절한 활성화 조건(activating criteria)에 기초하여, 파일의 집합 및/또는 다른 정보를 백업할 수 있다.
일 실시예에 따르면, 파일의 백업은 시스템(200)을 구현하는 데 필요한 대역폭 및/또는 저장 공간의 양을 줄이기 위해 백업 컴포넌트(210)에 의해 점증적인 방법(incremental manner)을 통해 수행될 수 있다. 이것은 먼저, 분할 컴포넌트(212)를 이용하여 백업될 파일을 블록, 청크(chunk) 등의 세그먼트(segment)로 나눔으로써 이뤄질 수 있다. 일례에서, 파일의 분할은 각각의 파일 세그먼트의 중복을 없애는 방식으로 분할 컴포넌트(212)에 의해 수행된다. 예를 들어, 도 3에 도시된 시스템(300)에서와 같이, 분할 컴포넌트(310)는 버전 A(302)와 같은 파일의 제1 버전을 도 3에 도시된 A1 내지 A4와 같은 균일한(uniform) 및/또는 비균일한 블록의 집합으로 나눌 수 있다. 다음으로, 버전 B(304)와 같은 파일에 수정이 감지됨에 따라, 분할 컴포넌트(310)는 버전 A(302)의 분할과 동일한 방법으로 파일을 재분할하여, 버전 A(302)의 상태와 다른 버전 B(304)의 파일이 즉각적으로 식별될 수 있다. 도 3에 도시된 바와 같이, 버전 B(304)는 그 안에 버전 A(302)와는 다른 변화가 발생한 B1으로 도시된 블록을 포함한다.
파일의 업데이트된 버전에 고유한 블록이 감지됨에 따라, 분할 컴포넌트(310) (및, 이와 유사하게 시스템(200)의 분할 컴포넌트(212))는 파일에 해당하는 새로운 그리고/또는 변경된 블록뿐만 아니라 파일의 각 버전 간의 변경에 관련된 다른 정보의 점증적인 저장(incremental storage)을 가능하게 할 수 있다. 시스템(300)은 또한, 여기에서 일반적으로 점증적(incremental) 또는 델타(delta) 업데이트라고 지칭되는 이러한 업데이트들 또한 버전 C(306)에 블록 C1의 추가와 같은 새로운 파일 블록의 추가, 버전 D(308)에서의 블록 A4의 삭제와 같은 파일 블록의 삭제 및/또는 임의의 다른 적절한 파일 동작 및/또는 수정과 관련되는 정보의 저장소을 가능하게 하도록 수행될 수 있음을 예시하고 있다.
도 2의 시스템(200)으로 돌아가서, 파일에 해당되는 블록 또는 세그먼트의 생성에 따라, 각각의 파일 및/또는 파일 업데이트에 해당하는 여러 블록이 세그먼트 분산 컴포넌트(214)에 제공될 수 있다. 세그먼트 분산 컴포넌트(214)는 하나 이상의 네트워크 저장 위치의 하나 이상의 세그먼트 저장소(220)의 블록에 교대로 분산될 수 있다. 세그먼트 저장소(220)는 예를 들어 로컬 네트워크의 피어 기계, 클라우드 저장 서비스 및/또는 다른 적절한 인터넷 기반 저장 위치, 및/또는 임의 다른 저장소와 연관될 수 있다. 네트워크 저장 위치 간에 정보를 분산하는 기술은 이후 자세히 설명된다.
일 실시예에 따르면, 서명 생성 컴포넌트(216)가 하나 이상의 파일 및/또는 분할 컴포넌트(212)에 의해 분할된 그의 여러 버전에 해당하는 서명 정보(signature information)을 생성하기 위해 백업 컴포넌트(210)에 의해 추가적으로 사용될 수 있다. 도 3의 시스템(300)에 도시된 바와 같이, 서명 생성 컴포넌트(320)는 특정 파일의 각 버전(302-308)에 해당하는 각 서명(322-328)을 생성할 수 있다. 이와 더불어 또는 그 대신에, 서명 생성 컴포넌트(216)에 의해 생성된 서명은 단독 블록, 파일 및/또는 파일에 대한 점증적 업데이트와 같은 블록의 그룹, 전체 파일, 및/또는 파일 버전, 및/또는 임의의 적절한 그룹에 해당될 수 있다. 특정 예로써, 각 블록은 4KB의 균일한 크기로 미리 구성될 수 있고, 각각의 서명은 소정의 균일한 개수 -예를 들어, 12-로 나타날 수 있다. 그러나, 임의의 적절한 블록 사이즈 및/또는 서명 구조가 사용될 수 있음을 주지해야 한다.
일례로, 서명 생성 컴포넌트(216)에 의해 생성된 서명은 파일의 특정 버전에 존재하는 블록 또는 세그먼트를 식별하는데 사용될 수 있다. 이와 더불어, 분할 컴포넌트(212)는 파일의 각 버전에 걸쳐 균일하게 분할을 수행하여 파일의 각 버전마다 생성된 서명이 각각의 버전에 걸쳐 일어나는 변경을 나타낼 수 있다. 따라서, 파일의 현재 버전과 원하는 버전 사이의 고유한 블록의 집합이 도 4에 도시된 시스템(400)에 의해 식별될 수 있다.
도 4에 도시된 바와 같이, 차분 컴포넌트(420)는 복구될 파일의 현재 버전에 해당하는 서명(424)을 얻기 위해 구성될 수 있다. 파일을 임의의 이전 버전으로 복구해야할 것으로 판단되면, 서명 소스(410)는 원하는 버전과 관련된 서명을 제공할 수 있다. 비교 컴포넌트(422)는 원하는 버전과 현재 버전 사이에서 고유한 블럭의 식별인자(identifier)를 얻기 위해 상기 양 버전의 각 서명을 비교한다. 따라서, 비교 컴포넌트(420)는 임의의 파일의 성공적인 복구를 위해 필요한 각각의 고유한 블록의 식별인자를 판정하기 위해 서명에 기반하여 차별 동작(differential)을 수행한다. 다른 예에서, 서명 소스(410)는 차분 컴포넌트(420)와 연관된 장치 및/또는 클라우드 서비스 제공 장치, 피어 또는 수퍼-피어 등의 다른 적절한 장치와 관련될 수 있다. 서명 소스(410)는 관련 시스템 정보의 각 버전과 그의 해당 서명을 추적(track)하는 버전 목록 인덱스(version listing index)로 구현될 수 있다. 일례로, 그러한 인덱스는 관련된 시스템 내의 피어, 수퍼 피어 또는 클라우드 저장 위치와 같은 다수의 네트워크 위치에 걸쳐 분산될 수 있다. 그러나, 그러한 구현은 이용될 수 있는 구현의 일례일 뿐이며, 따로 명시적으로 언급되지 않는 한, 여기에 첨부된 청구항은 그러한 구현에 국한되는 것은 아님을 주목해야 한다.
이제 도 5로 가보면, 여러 실시예에 따른 혼성 클라우드-기반 및 피어-투-피어 백업 저장소를 구현하는 시스템(500)의 블럭 도면이 도시되어 있다. 도 5에 도시된 바와 같이, 시스템(500)은 상기에 설명된 바와 같이 파일 및/또는 그의 각 버전에 해당되는 파일 세그먼트 또는 블록을 생성할 수 있는 분할 컴포넌트(510)를 포함할 수 있다. 일례에서, 분할 컴포넌트(510)에서 생성된 블록은 각 블록에 하나 이상의 연관된 저장 위치를 제공할 수 있는 세그먼트 분산 컴포넌트(520)에 제공될 수 있다.
일 실시예에 따르면, P2P(peer-to-peer) 및 클라우드-기반의 혼성 구조는 시스템(500)을 이용하여 세그먼트 분산 컴포넌트(520)가 피어(532) 및/또는 수퍼 피어(534) 뿐만 아니라 하나 이상의 클라우드 저장 위치(536)에서 사용 가능한 복구 동작 및/또는 그와 관련된 서명을 수행하는데 사용되는 데이터의 조각을 생성할 수 있도록 할 수 있다. 시스템(500)에 또한 도시되어 있듯이, 피어(532), 수퍼 피어(534), 및/또는 클라우드 저장소(536)는 또한 파일 세그먼트, 서명, 및/또한 다른 정보 사이에 서로 통신하도록 동작할 수 있다. 이와 더불어, 분할 컴포넌트(510), 세그먼트 분산 컴포넌트(520), 및/또는 시스템(500) 내의 임의의 다른 컴포넌트는 하나 이상의 피어(532), 수퍼 피어(534) 또는 클라우드 저장소(536)와 관련된 독립체(entity)와 추가적으로 관련될 수 있다. 피어(532), 수퍼 피어(534), 및 클라우드 저장소(536)가 이용될 수 있는 기술 및 혼성 구조 내의 독립체의 기능과 관련된 보다 상세한 설명이 이후에 제공된다.
다른 실시예에 따르면, 세그먼트 분산 컴포넌트(520)는 분할 컴포넌트(510)에 의해 생성된 블록과 상기 블록이 분산될 해당 위치 간의 관계를 맵핑하는 인덱스를 보유하는 인덱싱 컴포넌트(522)를 포함하거나, 그와 연관될 수 있다. 일례로, 이러한 인덱스는 하나 이상의 피어(532), 수퍼 피어(534) 또는 클라우드 저장 위치(536)에 나타나는 블록을 따라 분산될 수 있다. 전체 목록이 하나 이상의 위치에 분산될 수도 있고, 하나의 인덱스가 분할되어 여러 위치로 분산될 수도 있다.
추가적인 실시예에 따르면, 세그먼트 분산 컴포넌트(520)은 또한 각각의 블록, 인덱스, 또는 인덱스 세그먼트 등등을 분산할 하나 이상의 위치를 결정하기 위해 시스템(500)과 연관되는 컴퓨팅 네트워크를 분석하는 네트워크 분석 컴포넌트(524)를 선택적으로 포함할 수 있다. 한 예로, 네트워크 분석 컴포넌트(524)는 네트워크 로딩(network loading) 또는 장치 활성도(device activity level), 파워의 온/오프 상태, 각 위치에서의 저장 공간의 가용성 등을 기초로 한 저장 위치 가용성 등을 기초로 분산될 정보의 하나 이상의 목적지를 선택할 수 있다. 이것은 여러 데이터가 최적의 집약성(locality)을 가지고 활용될 수 있도록 이뤄질 수 있다.
시스템(500)에 더 도시된 바와 같이, MLR(machine learning and reasoning) 컴포넌트(526)가 각 정보의 저장 위치를 지능적 그리고 자동으로 선택하기 위해서 네트워크 분석 컴포넌트(524)에 의해 추가로 사용될 수 있다. MLR 컴포넌트(526)는 임의의 적절한 인공 지능(AI), 기계 학습(machine learning), 및/또는 기술 분야에서 일반적으로 알려진 다른 알고리즘을 이용할 수 있다. 본 명세서에서 사용된 바처럼, "지능"이란 용어는 시스템에 관한 주어진 정보에 기초하여 상기 시스템의 현재 및 미래 상태를 추론(reason)하거나 도출(draw)하는 능력을 지칭한다. 인공 지능은 인간의 개입 없이 특정 상황 정보(context) 또는 행위(action)를 식별하거나 시스템의 특정 확률 분포(probability distribution)를 생성하는데 사용될 수 있다. 인공 지능은 시스템상의 가용 데이터(정보)의 집합에 대해 결정 트리(decision tree), 신경 회로망(neural networks), 회귀 분석(regression analysis), 클러스터 분석(cluster analysis), 유전적 알고리즘(genetic algorithm), 및 강화 학습(reinforced learning) 등의 고등 수학 알고리즘의 적용에 의존한다. 예를 들어, 데이터로부터 학습하고 모델 - 예를 들어, HMM(hidden Markov models) 및 관련 원형 의존 모델(prototypical dependency models), 베이즈 모델(Bayesian model)의 수치(score) 또는 근사치(approximation)을 사용하여 생성한 베이즈 네트워크(Bayesian networks)와 같은 더 일반적인 확률적 그래픽 모델, SVM(support vector machine)와 같은 선형적 분류기(classifier), "신경망(neural network)" 방법론으로 지칭되는 방법과 같은 비선형적 분류기, 모호 논리 방법론(fuzzy logic methodology), 및 여기에 기술된 다양한 자동적 실시예의 구현에 따른 자료 융합(data fusion)을 수행하는 다른 접근론들 - 로부터 추론을 도출하기 위해 여러 방법론 중 하나 이상을 사용할 수 있다.
도 6을 참조하면, 다양한 실시예에 따른 클라우드-기반 및 피어-투-피어 혼성 백업 구조에서 차분 복구를 수행하는 시스템(600)이 도시된다. 시스템(600)이 도시하듯이, 혼성 P2P/클라우드 백업 구조가 사용되어 하나 이상의 컴퓨팅 장치에 해당되는 백업 데이터가 하나 이상의 피어 기계(610 또는 640) 및/또는 하나 이상의 수퍼 피어 기계(650) 및 하나 이상의 클라우드 저장 위치(660)에 분산된다.
한 예에서, 피어 기계(640)는 각각 블록 저장소(642)를 포함할 수 있고, 상기 블록 저장소(642)는 하나 이상의 파일과 각각의 파일의 델타 업데이트에 해당하는 블록의 집합을 수신하고 유지할 수 있다. 파일 및/또는 그에 대한 업데이트는 분할 컴포넌트(510)에 의해 생성되고 세그먼트 분산 컴포넌트(520)에 의해 분산되는 복구 피어(610)와 연관될 수 있다. 더불어, 시스템(600)에는 도시되지 않았으너, 복구 피어(610)는 추가로 또는 대신에 복구 피어(610)에 로컬로 존재하는 파일 및/또는 그의 델타 업데이트에 해당하는 하나 이상의 블록을 로컬로 저장하는 블록 저장소를 포함할 수 있다.
또 다른 예에서, 시스템(600) 내의 하나 이상의 수퍼 피어(650)는 시스템(600) 내에 저장되는 파일 블록과 그 각각의 위치의 마스터 목록(master listing)을 제공하는 블록 저장소(652) 및 파일-블록 인덱스(654)를 추가로 포함할 수 있다. 상기 마스터 목록은 인덱스 컴포넌트(522)에서 생성될 수 있다. 비록 파일-블록 인덱스(654)가 시스템(600) 내의 수퍼 피어(650)에 위치하도록 도시되어 있으나, 파일-블록 인덱스(654)의 일부 또는 전부는 추가적으로 또는 그 대신에 하나 이상의 피어(610 또는 640) 뿐만 아니라 클라우드 저장소(660)에도 위치할 수 있다.
일 실시예에 따르면, 복구 피어(610)에 존재하는 정보의 버전으로부터 이전 버전으로의 복구가 요구됨을 식별함에 따라, 서명-기반 차별 동작이 복구 피어(610)에 존재하는 버전과 원하는 버전 사이에 수행되고 상기 버전들이 서로 일치하지 않는 하나 이상의 블록을 식별하게 된다. 서명을 비교한 후, 블록 위치 컴포넌트(620)가 파일-블록 인덱스(654) 및/또는 복구 피어(610)에 위치한 채로 복구될 정보의 버전과 원하는 버전 사이에 고유하다고 판정된 블록의 각 위치를 지정하는 임의의 다른 적합한 소스로부터 메타데이터를 획득하기 위해 인덱스 룩업 컴포넌트(622)를 이용할 수 있다.
인덱스 룩업 컴포넌트(622)에 의해 획득한 위치에 기초하여, 블록 위치 컴포넌트(620) 및/또는 복구 컴포넌트(630)는 블록 저장소(642 또는 652) 및/또는 시스템(600) 내의 임의의 다른 적절한 저장 위치 내의 그 해당 위치로부터 고유 블록을 빼낼(pull) 수 있다. 상기 블록은 일단 한번 획득되면, 그 이후에는 원하는 버전을 재생성하기 위해서 복구될 정보의 현재 버전에 이미 존재하는 비고유 블록과 병합될 수 있다. 따라서, 현재 파일 버전과 복구될 파일 버전 간에 서명-기반 차별 동작을 수행하면서, 점증적으로 업데이트되는 버전 간에 차분이 나는 비트(bit) 또는 블록만을 빼냄으로써 복구가 수행될 수 있다. 한 예에서, 블록이 복구 피어(610)에 있는 하나 이상의 다른 파일의 일부분이 되기 때문에, 인덱스 룩업 컴포넌트(622)에 의해 하나 이상의 상기 블록이 이미 복구 피어(610)에 로컬로 존재함을 판정할 수 있다. 그러한 경우에, 시스템(600) 내의 하나 이상의 다른 위치로부터 블록을 빼내는 대신에 상기 판정된 로커 블록이 이용될 수 있다.
따라서, 클라우드 저장소(660)의 특정 예로써, 원본과 그에 뒤따른 버전 Y 및 버전 Z로 표기된 파일의 각 버전이 연속하는 버전들 - 예를 들어, 원본, 버전 Y, 및 버전 Z 등 - 간의 점증적인 업데이트와 함께 저장될 수 있다. 그 뒤, 만약 사용자가 버전 Z로부터 원본을 복구하기를 원하는 경우, 원본과 버전 Y 사이 및 버전 Y와 버전 Z 사이의 상기 점증적인 업데이트의 전체적인 전환(full reversal)이나 상기 업데이트의 전체를 다운로드할 필요 없이 원본과 버전 Z 사이에 고유한 블록만을 빼내기 위해서 서명-기반 차별 동작이 이용될 수 있다.
또 다른 예에서, 시스템(600)의 P2P/클라우드 혼성 백업 구조는 복구 피어(610)에서 하나 이상의 파일을 복구하는데 필요한 지연 및/또는 대역폭을 최소화하기 위하여 사용될 수 있다. 예를 들어, 블록 위치 컴포넌트(620)는 시스템(600)을 분석하고 시스템(600)을 통해 최소한의 저항을 가지는 경로를 이용하여 해당 파일 세그먼트를 빼내는 것을 가능하게 하는 네트워크 분석 컴포넌트(624)를 사용할 수 있다. 따라서, 예를 들어, 임의의 블록이 피어(640), 수퍼 피어(650) 또는 클라우드 저장소(660)의 블록 저장소(642 또는 652)에 위치하는 경우에, 가장 가까운 네트워크 노드(network node)로부터 먼저 상기 블록을 빼내도록 하는 선호도(preference)가 설정될 수 있다. 결과적으로, 클라우드 저장소(660)와의 통신과 관계되는 지연과 대역폭의 사용을 최소화하기 위해서 피어(640) 및/또는 수퍼 피어(650)가 클라우드 저장소(660)보다 우선적으로 처리된다.
추가적으로 또는 그 대신에, 네트워크 분석 컴포넌트(624)는 각 블록을 획득할 노드의 지능적인 검색을 가능하게 하기 위하여, 시스템(600) 내의 각 노드의 가용성, 상대적인 네트워크 로딩, 및/또는 다른 요인들을 분석할 수 있다. 따라서, 복구 피어(610)는 먼저 피어 기계(640) 또는 수퍼 피어(650)로부터 블록의 집합을 획득하기 위해 시도하고, 상기 피어들(640 및/또는 650)에서 필요한 블록을 구할 수 없을 때만 클라우드 저장소(660)에서 시도한다. 다른 예에서, MLR 컴포넌트(626)가 블록을 획득하기 위한 네트워크 노드를 자동적으로 선택하는 것을 가능하게 하기 위하여 사용될 수 있다.
대안적인 예에서, 네트워크 분석 컴포넌트(624)가 복구 피어(610)과 연관된 시스템(600) 내에 도시되었으나, 수퍼 피어(650) 및/또는 복구 피어(610)가 파일-블록 인덱스(654)에 접근할 수 있는 다른 개체가 상기 파일-블록 인덱스(654)가 가리키는 각 블록의 여러 위치들 중에서 가장 적합한 위치를 선택하기 위하여 유사한 네트워크 분석을 이용할 수 있다. 그러한 위치는 일단 한번 선택되면 복구 피어(610)에 제공될 수 있다.
일 실시예에 따르면, 하나 이상의 파일을 원하는 버전으로 복구하기 위해 필요한 고유한 블록을 획득함에 따라, 복구 피어(610)의 복구 컴포넌트(630)는 상기 획득된 고유 블록과 상기 파일의 현재 버전에 이미 로컬로 존재하는 비고유 블록을 병합할 수 있다. 특정한 비한정적 예로서, 현재 버전과 원하는 버전 사이의 하나 이상의 차분을 현재 버전에서 빼기(subtract)함으로써 원하는 버전으로 롤백되는 전환 차분 알고리즘이 복구 컴포넌트(630)에 의해 사용될 수 있다. 그러한 빼기는 각 파일 버전 및/또는 각 파일 버전에 관련되는 임의의 다른 적절한 정보에 해당하는 서명 또는 해시(hash)에 기초한다. 그러나, 이런 알고리즘은 이용 가능한 복구 기술의 한 예에 불과하며, 임의의 다른 복구 알고리즘이 이런 알고리즘 대신에 또는 이런 알고리즘에 더하여 사용될 수 있다.
다음으로 도 7을 참조하면, 700은 여기에 설명된 다양한 실시예와 관련되어 사용될 수 있는 네트워크 구현의 예시를 도시하기 위해 제공된다. 도면(700)에 도시되어 있듯이, 네트워크 구현은 피어-투-피어 및 클라우드-기반 혼성 구조를 사용할 수 있으며, 클라우드 서비스 제공자(710)는 하나 이상의 수퍼 피어(720) 및 하나 이상의 피어(730, 740)와 상호작용한다.
일 실시예에 따르면, 클라우드 서비스 제공자(710)는 수퍼 피어(들)(720) 및/또는 피어(들)(730, 740)과 관련된 네트워크/인터 네트워크 - 예를 들어, 인터넷 - 의 주어진 위치로부터 하나 이상의 컴퓨팅 서비스를 원격으로 제공하기 위하여 사용될 수 있다. 클라우드 서비스 제공자(710)는 하나의 위치로부터 기원(originate)할 수도 있고, 또는 그 대신에 분산 인터넷-기반 서비스 제공자로서 구현될 수도 있다. 한 예에서, 클라우드 서비스 제공자(710)는 그와 연관된 하나 이상의 피어(720-740)에 백업 기능성(functionality)을 제공하기 위해 사용될 수 있다. 결과적으로, 클라우드 서비스 제공자(710)는 백업 서비스(712)를 구현 및/또는 관련 데이터 저장소(714)를 제공할 수 있다.
한 예에서, 데이터 저장소(714)는 각 피어 개체(720-740)에 존재하는 데이터를 위한 중앙 저장 위치로서 동작하기 위해서 수퍼 피어(720)의 백업 클라이언트(722) 및/또는 각 피어(730 또는 740)의 백업 클라이언트(732 또는 742)와 상호작용할 수 있다. 이러한 방법으로, 클라우드 서비스 제공자(710)는 피어(720-740)에 위치하는 데이터를 위한 온라인 "안전-저장 박스(safe-deposit box)"로 효과적으로 동작할 수 있다. 백업은 문서, 사진, 오디오, 비디오 등의 파일 및 시스템 정보 등과 같은 임의의 적절한 정보의 형태로 수행될 수 있다. 추가적으로 또는 그 대신에, 분산 네트워크 저장소가 구현되어 수퍼 피어(720) 및/또는 피어(730, 740)가 또한 연관 로컬 네트워크상에서 하나 이상의 기계와 연관된 백업 데이터를 위한 각각의 데이터 저장소(724, 734 및/또는 744)를 포함할 수 있다. 또 다른 예에서, 중복 제거(de-duplication), 점증적 저장소 및/또는 다른 적절한 기술들이 클라우드-기반 백업 서비스를 구현하는 도면(700)에 나타난 네트워크 내의 하나 이상의 해당 개체에 포함되는 데이터 저장소(714, 724, 734 및/또는 747)에 필요한 저장 공간의 양을 줄이는데 사용될 수 있다.
또 다른 실시예에서, 클라우드 서비스 제공자(710)는 하나 이상의 피어 기계(720, 730 및/또는 740)와 상호작용할 수 다. 도면(700)에 도시된 바와 같이, 하나 이상의 피어(720)가 수퍼 피어로 지정되어 관련 로컬 네트워크 내의 클라우드 서비스 제공자(710)와 하나 이상의 다른 피어(730, 740) 간의 연락책(liaison)으로 동작할 수 있다. 도 7에는 도시되지 않았으나, 임의의 적절한 피어(730 및/또는 740)와 지정된 수퍼 피어(들)(720)가 클라우드 서비스 제공자(710)과 적절하다고 여겨지는 형태로 직접적으로 상호작용할 수 있다. 따라서, 클라우드 서비스 제공자(710), 수퍼 피어(들)(720) 및/또는 피어(730 또는 740)는 임의의 적절한 시간에 파일 또는 도면(700)에 도시된 각 개체 간의 다른 정보를 동기화하기 위하여 서로 간에 통신할 수 있다.
한 예에서, 수퍼 피어(720)는 피어(720-740)와 연관된 네트워크상의 중앙 개체(central entity) - CDN(content distribution network), 기업 서버(enterprise server), 가정 서버(home server) 및/또는 임의의 다른 적절한 컴퓨팅 장치(들)과 같이 여기에 설명된 방법으로 수퍼 피어로서 동작할 수 있는 능력을 가졌다고 판단됨 - 가 될 수 있다. 기본적인 피어의 기능(standard peer functionality)과 더불어, 수퍼 피어(들)(720)는 로컬 네트워크 내의 피어(720-740) 간의 정보를 수집하고, 분산하고, 인덱싱할 수 있다. 예를 들어, 수퍼 피어(720)는 저장 인덱스(726)를 보유할 수 있고, 상기 저장 인덱스(726)는 피어(720-740)에 해당되는 각 파일 및/또는 파일 세그먼트의 식별인자(identifier)와 파일과 그 세그먼트가 발견되는 네트워크 및/또는 클라우드 데이터 저장소(714) 내의 각 위치에 대한 지정인자(pointer)를 포함할 수 있다. 추가적으로 또는 그 대신에, 수퍼 피어(720)는 클라우드 업로드 컴포넌트(728)를 통하여 지정된 오프-피크 기간마다 클라우드 서비스 제공자(710)에 각각의 데이터를 업로드 함으로써 다른 피어(730, 740)와 상기 클라우드 서비스 제공자(710) 간의 게이트웨이(gateway)로서 동작할 수 있다. 다른 예에서, 수퍼 피어(720)는 "뜨거운(hot)" 또는 "차가운(cold)" 데이터의 캐시(cache)로서 동작해서, 가장 복구가 일어날 것 같은 데이터의 사본을 복구 또는 원본의 피어에 보다 가깝게 위치시켜서 시간이 지날수록 더 많은 사본이 분산 시스템 내의 "더 차가운(colder)" 부분 - 예를 들어, 클라우드 서비스 제공자(710)의 데이터 저장소(714) - 에 분산되도록 할 수 있다.
도 8-10에는, 여기에 나타난 다양한 특징들에 따라 구현된 방법이 일련의 단계를 통해 기술된다. 여기에 청구된 방법론들은 그 단계의 순서가 제한되는 것은 아니고, 몇몇 단계가 다른 순서로 일어날 수 있으며, 또는 여기에 기술된 다른 단계와 동시에 일어날 수도 있다. 예를 들어, 당업자는 방법론들이 상태도(state diagram) 내의 서로 연관되는 연속적인 상태(state) 또는 이벤트로 대신 나타날 수 있음을 이해할 수 있을 것이다. 또한, 본 명세서에 개시된 방법을 구현하는 데 예시된 모든 단계가 필요하지는 않을 수도 있다.
도 8을 참조하면, 차분 파일 복구를 수행하는 방법(800)이 도시되어 있다. 802 단계에서, 하나 이상의 파일의 로컬로 사용 가능한 버전 및 상기 하나 이상의 파일이 복구될 원하는 버전이 식별된다. 804 단계에서, 802 단계에서 식별된 하나 이상의 파일 내의 블록이 상기 로컬로 사용 가능한 버전이 원하는 버전과 다름을 식별한다. 804 단계에서의 식별은 (예를 들어, 차분 컴포넌트(110)를 사용하여) 상기 로컬로 사용 가능한 버전과 원하는 버전 사이에 최소한 일부분에라도 차별 동작을 수행함으로써 이루어진다. 806 단계에서, 804 단계에서 식별된 블록이 (예를 들어, 블록 위치 컴포넌트(120) 및/또는 복구 컴포넌트(130)에 의해) 하나 이상의 데이터 저장소 - 예를 들어, 피어(532), 수퍼 피어(534) 및/또는 클라우드 저장소(536) - 에서 획득된다. 808 단계에서, 802 단계에서 식별된 하나 이상의 파일의 원하는 버전이 806 단계에서 획득한 블록과 상기 하나 이상의 파일의 로컬로 사용 가능한 버전 내의 하나 이상의 블록을 최소한 일부라도 병합함으로써 복구된다.
이제 도 9를 참조하면, 파일의 서명-기반 차별 동작을 수행하는 방법(900)의 흐름도가 제공된다. 902 단계에서, 파일의 현재 버전 내의 각 블록에 해당하는 하나 이상의 서명 - 예를 들어, 서명(424) - 이 식별된다. 904 단계에서, 902 단계에서 식별된 파일이 복구될 원하는 버전 내의 각 블록에 해당하는 하나 이상의 서명이 (예를 들어, 서명 소스(410)로부터) 수신된다. 906 단계에서, 파일의 현재 버전과 원하는 버전 사이의 고유한 하나 이상의 블록이 (예를 들어, 비교 컴포넌트(422)를 통해) 902 및 904 단계에서 식별된 서명을 비교함으로써 식별된다. 908 단계에서, 906 단계에서 식별된 고유한 블록이 하나 이상의 관련 블록 저장소로부터 획득된다.
도 10은 피어-투-피어/클라우드-기반 혼성 시스템으로부터 파일 세그먼트를 얻는 방법(1000)을 도시한다. 1002 단계에서, 네트워크상의 피어 - 예를 들어, 피어 (610 또는 640) 및/또는 수퍼 피어(650) - 와 클라우드 저장 위치 - 예를 들어, 클라우드 저장소(660) - 의 집합으로부터 얻어질 파일 세그먼트의 집합이 식별된다. 1004 단계에서, 각 파일 세그먼트를 얻기 위한 네트워크상의 하나 이상의 위치가 (예를 들어, 블록 위치 컴포넌트(620)에 의해) 네트워크 로딩, 위치 가용성(location availability), 네트워크 지연, 및/또는 대역폭 사용 등의 함수로써 선택된다. 1006 단계에서, 1004 단계에서 선택된 위치로부터 파일 세그먼트를 획득한다.
여기에 기술된 다양한 실시예에 대한 추가적인 상황 정보(context)를 제공하기 위하여, 도 11 및 그에 따른 설명이 청구된 주제의 다양한 실시예가 구현될 적절한 컴퓨팅 환경(1100)의 간략하고 일반적인 설명이 제공된다. 추가적으로, 상기 특성이 하나 이상의 컴퓨터에서 실행되는 컴퓨터 실행가능 명령어의 일반적인 상황 정보로서 기술되었지만, 당업자는 상기 특성이 다른 프로그램 모듈 및/또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있음을 인식할 것이다.
일반적으로, 프로그램 모듈은 특정 업무를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다. 더욱이, 당업자는 청구된 주제가 단일 프로세서 또는 여러개의 프로세서를 포함하는 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터, 개인용 컴퓨터, 휴대용 컴퓨팅 장치, 마이크로프로세서-기반 또는 프로그램 가능한 전자 제품 등 - 각각 하나 이상의 관련 장치와 동작적으로 연결될 수 있음 - 을 포함하는 다른 컴퓨터 시스템 구성(configuration)을 통해 실행될 수 있음을 이해할 것이다.
상기 도시된 실시예는 통신 네트워크를 통해 연결된 원격 처리 장치에 의해 특정 업무가 수행되는 분산 컴퓨팅 환경에서 실행될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 로컬 또는 원격 메모리 저장 장치 모두에 위치될 수 있다.
컴퓨터는 일반적으로 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 가능하고 휘발성(volatile) 및 휘발성 매체를 포함하는 어떠한 매체도 가능하다. 한 예로서, 컴퓨터 판독 가능 장치는 컴퓨터 저장 매체와 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보를 저장하는 어떠한 방법 또는 기술에서 구현되는 휘발성 및 비휘발성, 리무버블(removable) 및 넌리무버블(non-removable) 매체를 포함할 수 있다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 디스크 저장 장치, 자기(magnetic) 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하고 컴퓨터에 의해 액세스될 수 있는 다른 매체를 포함한다.
통신 매체는 일반적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 다른 데이터를 반송파와 같은 조절된 데이터 신호(modulated data signal) 또는 다른 전송 메커니즘을 통해 구현하고 임의의 정보 전달 매체(information delivery media)를 포함한다. "조절된 데이터 신호"라는 용어는 하나 이상의 특성 집합(characteristics set)을 가지거나 인코드된 정보로 변경되는 신호를 의미한다. 일례로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결(direct-wired connection) 등의 유선 매체와 음향(acoustic), RF, 적외선 등의 무선 매체를 포함한다. 상기의 어떠한 조합도 컴퓨터 판독 가능 매체의 범주에 포함될 수 있다.
다시 도 11을 참조하면, 여기에 기술된 다양한 실시예를 구현하는 예시적인 환경(1100)은 컴퓨터(1102)를 포함하고, 상기 컴퓨터(1102)는 처리부 (1104), 시스템 메모리(1106), 및 시스템 버스(1108)를 포함한다. 시스템 버스(1108)는 반드시 한정되는 것은 아니지만 시스템 메모리(1106)을 포함하는 시스템 컴포넌트와 처리부(1104)를 연결한다. 처리부(1104)는 다양한 상업적 프로세서 중 어떤 것도 가능하다. 듀얼 마이크로프로세서(dual-microprocessor) 및 다른 여러 개의 프로세서를 가지는 구조가 상기 처리부(1104)로서 사용될 수 있다.
시스템 버스(1108)는 여러 타입의 버스 구조 중 어떤 것이라도 사용할 수 있으며, 여러 상업적으로 가용한 버스 구조의 어떤 것이라도 이용하여 메모리 버스(메모리 콘트롤러를 사용하거나 사용하지 않고), 주변 기계 버스(peripheral bus), 및 로컬 버스와 상호 연결될 수 있다. 시스템 메모리(1106)는 ROM(1110) 및 RAM(1112)를 포함한다. BIOS(basic input/output system)가 ROM, EPROM 및 EEPROM과 같은 비휘발성 메모리(1110)에 저장될 수 있으며, BIOS는 스타트-업(start-up)과 같은 때에 컴퓨터(1102) 내의 구성요소 간에 정보를 전송하는 것을 돕는 기본적인 루틴을 포함한다. RAM은 또한 데이터를 캐싱하기 위한 정적 RAM과 같은 고속 RAM을 포함할 수 있다.
컴퓨터(1102)는 EIDE, SATA와 같은 내부 HDD(1114)를 더 포함하며, 상기 내부 HDD(1114)는 적절한 섀시(chassis, 도시되지 않음), - 예를 들어, 리무버블 디스켓(1118)을 읽거나 또는 쓰기 위한 - 자기 FDD(floppy disk drive, 1116), 및 - 예를 들어, CD-ROM 디스크(1122)를 읽거나, 또는 DVD와 같은 다른 대용량 광학 매체를 읽거나 쓰기 위한 - 광학 디스크 드라이브에서 외부적으로도 사용될 수 있다. HDD(1114), 자기 디스크 드라이브(1116) 및 광학 디스크 드라이브(1120)는 HDD 인터페이스(1124), 자기 디스크 드라이브 인터페이스(1126), 및 광학 드라이브 인터페이스(1128)를 각각 통하여 시스템 버스(1108)에 연결될 수 있다. 외부 드라이브 구현을 위한 인터페이스(1124)는 USB(Universal Serial Bus) 및 IEEE-1394 인터페이스 기술의 최소 하나 또는 둘 다를 포함한다. 다른 외부 드라이브 연결 기술은 본 명세서 내에서 고려된다.
드라이브와 그와 관련된 컴퓨터 판독 가능 매체는 데이터, 데이터 구조, 컴퓨터 실행가능 명령어 등등에 대한 비휘발성 저장소를 제공한다. 컴퓨터(1102)에서, 드라이브와 매체는 적합한 디지털 포맷의 임의의 데이터를 위한 저장소를 제공한다. 상기의 컴큐터 판독 가능 매체에 대한 기술이 HDD, 리무버블 자기 디스켓 및 CD 또는 DVD 같은 리무버블 광학 매체를 지칭하지만, 당업자는 컴퓨터에 의해 판독가능한 다른 타입의 매체 즉, 집 드라이브(zip drive), 자기 카세트, 플래시 메모리 카드, 및 카드리지(cartridge) 등등 또한 예시적인 동작 환경에서 사용될 수 있으며, 그러한 임의의 매체가 여기에 기술된 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 포함하는 것을 주지해야 한다.
많은 프로그램 모듈이 운영 체제(1130), 하나 이상의 애플리케이션 프로그램(1132), 다른 프로그램 모듈(1134) 및 프로그램 데이터(1136)을 포함하는 드라이브와 RAM(1112)에 저장될 수 있다. 상기 운영 체제, 애플리케이션, 모듈 및/또는 데이터의 전부 또는 일부가 RAM(1112)에 캐쉬(cache)될 수 있다. 청구된 주제는 다양한 상업적으로 가용한 운영 체제 또는 운영 체제의 조합으로 구현될 수 있다.
사용자는 하나 이상의 유선/무선 입력 장치 - 예를 들어, 키보드(1138) 및 마우스(1140)와 같은 위치 결정 장치(pointing device) - 를 통해 명령어 및 정보를 컴퓨터(1102)에 입력할 수 있다. 도시되지는 않았으나, 마이크, IR 원격 콘트롤, 조이스틱, 게임 패드, 스타일러스 펜, 또는 터치 스크린 등등의 다른 입력장치가 포함될 수 있다. 이러한 입력 장치들 및 다른 입력 장치들은 주로 시스템 버스(1108)와 연결된 입력 장치 인터페이스(1142)를 통해 처리부(1104)와 연결되지만, 병렬 포트, 직렬 포트, IEEE-1394 포트, 게임 포트, USB 포트, IR 인터페이스 등등의 다른 인터페이스를 통해 연결될 수 있다.
모니터(1144) 또는 다른 타입의 디스플레이 장치가 또한 비디오 어댑터(1146) 등의 인터페이스를 통해 시스템 버스(1108)와 연결된다. 모니터(1144)에 더하여, 컴퓨터는 일반적으로 스피커나 프린터 등등의 다른 주변 출력 장치(도시되지 않음)를 포함한다.
컴퓨터(1102)는 원격 컴퓨터(1148)와 같은 하나 이상의 원격 컴퓨터에 대한 유선 및/또는 무선 통신을 통해 논리 연결을 사용하여 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(1148)는 워크스테이션, 서버 컴퓨터, 라우터(router), 개인용 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기계(microprocessor-based entertainment appliance), 피어 장치 또는 다른 범용(common) 네트워크 노드일 수 있으며, 비록 간결한 설명을 위해 메모리/저장소 장치(1150) 만이 도시되었으나 일반적으로 컴퓨터(1102)와 관계되어 기술된 많은 또는 모든 요소들을 포함한다. 도시된 논리적 연결은 LAN(local area network, 1152) 및/또는 WAN(wide area network, 1154)과 같은 더 큰 네트워크와의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워크 환경은 회사와 사무실에서 흔히 쓰이고 인트라넷과 같은 전사적 컴퓨터 네트워크(enterprise-wide computer networks)를 가능하게 하며, 이 모든 네트워크 환경은 인터넷과 같은 글로벌 통신 네트워크와 연결된다.
LAN 네트워크 환경에서 사용될 때, 컴퓨터(1102)는 유선 및/또는 무선 통신 네트워크 인터페이스 또는 어댑터(1156)를 통해 로컬 네트워크(1152)에 연결된다. 어댑터(1156)는 LAN(1152)과 유선 또는 무선 통신을 가능하게 하며, 상기 LAN(1152)은 또한 무선 어댑터(1156)와 통신하기 위해 그 안에 배치된 무선 액세스 포인트를 포함할 수 있다.
WAN 네트워크 환경에서 사용될 때, 컴퓨터(1102)는 모뎀(1158)을 포함하거나, WAN 상의 통신 서버에 연결되거나, 인터넷과 같은 WAN(1154)을 통한 통신을 구축하기 위한 다른 수단을 포함할 수 있다. 모뎀(1158)은 내장형 또는 외장형일 수 있고, 유선형 또는 무선형 일 수 있으며, 직렬 포트 인터페이스(1142)를 통해 시스템 버스(1108)에 연결된다. 네트워크 환경에서, 컴퓨터(1102)와 관련된 또는 그 일부로서 도시된 프로그램 모듈은 원격 메모리/저장소 장치(1150)에 저장될 수 있다. 도시된 네트워크 연결은 예시일 뿐이며, 컴퓨터 간의 통신 링크를 구축하기 위한 다른 수단도 사용될 수 있음을 주지해야 한다.
컴퓨터(1102)는 예를 들어 프린터, 스캐너, 데스크탑 및/또는 휴대용 컴퓨터, 휴대용 데이터 단말기(portable data assistant), 통신 위성, 무선 추적 태그 (wirelessly detectable tag)와 연관된 장비 또는 위치 - 예를 들어, 키오스크(kiosk), 신문 판매대, 화장실 - 및 전화기 등의 무선 통신에 동작적으로 배치된 무선 장치 및 개체와 통신하도록 동작할 수 있다. 이것은 적어도 Wi-Fi와 BluetoothTM 무선 기술을 포함한다. 따라서, 통신은 기존의 네트워크와 같은 미리 정의된 구조 또는 단순히 최소 두 장치 간의 즉석 통신(ad hoc communication)일 수 있다.
Wi-Fi(Wireless Fidelity)는 기지국의 범위 내의 어디에서나 데이터를 송신하고 수신할 수 있는 장치를 활성화하는 휴대 전화기에서 사용되는 것과 유사한 무선 기술이다. Wi-Fi 네트워크는 안전하고, 믿을 수 있고, 빠른 무선 연결을 제공하기 위해 IEEE-802.11 a, b, g 등의 라디오 기술을 사용한다. Wi-Fi 네트워크는 컴퓨터들을 서로에게 연결시키고, 인터넷 및 무선네트워크(IEEE-802.3 또는 이더넷을 사용)에 연결하는데 사용될 수 있다. Wi-Fi 네트워크는 예를 들어 허가되지 않은 2.4 및 5 GHz 라디오 대역에서 13 Mbps (802.11a) 또는 54 Mbps (802.11b) 데이터 전송속도로 동작하거나 두 대역을 모두 포함하는 듀얼 밴드(dual band) 장치로 동작할 수 있다. 따라서, Wi-Fi 무선 기술을 사용하는 네트워크는 10BaseT 유선 이더넷 네트워크와 유사한 실세계 성능(real-world performance)을 제공할 수 있다.
이제 도 12를 참조하면, 기재된 구조를 실행하기 위해 동작 가능한 예시적인 컴퓨터 컴파일 시스템(computer compilation system)의 간략한 블록도이 도시되었다. 시스템(1200)은 하나 이상의 클라이언트(1202)를 포함한다. 클라이언트(1202)는 쓰레드, 프로세스, 컴퓨팅 디바이스 등의 하드웨어 및/또는 소프트웨어일 수 있다. 다른 예에서, 클라이언트(1202)는 여기에 기술된 하나 이상의 특성을 사용하여 쿠키(cookie) 및/또는 그 연관 정보(contextual information)를 저장할 수 있다.
시스템(1200)은 또한 하나 이상의 서버(1204)를 포함한다. 서버(1204)는 또한, 쓰레드, 프로세스, 컴퓨팅 디바이스 등의 하드웨어 및/또는 소프트웨어일 수 있다. 한 예에서, 서버(1204)는 여기에 기술된 하나 이상의 특성을 사용하여 변환(transformation)을 수행하기 위한 쓰레드를 저장할 수 있다. 클라이언트(1202)와 서버(1204) 간에 한가지 가능한 통신은 둘 이상의 컴퓨터 프로세스 간에 전송되기에 적당한 데이터 패킷의 형태로 이루어진다. 데이터 패킷은 예를 들어 쿠키 및/또는 그 연관 정보를 포함할 수 있다. 시스템(1200)은 통신 프레임워크(1206) - 예를 들어, 인터넷과 같은 글로벌 통신 네트워크 - 를 포함하며, 상기 통신 프레임워크(1206)는 클라이언트(1202)와 서버(1204) 간의 통신을 가능하게 하기 위하여 사용될 수 있다.
통신은 유선 (광 섬유(optical fiber) 포함) 및/또는 무선 기술을 통해 가능해 진다. 클라이언트(1202)는 예를 들어 쿠키 및/또는 그 연관 정보와 같은 클라이언트(1202)에만 로컬인 정보를 저장하기 위해 사용되는 하나 이상의 클라이언트 데이터 저장소(1208)와 동작적으로 연결된다. 이와 유사하게, 서버(1204)는 서버(1204)에만 로컬인 정보를 저장하기 위해 사용되는 하나 이상의 서버 데이터 저장소(1210)와 동작적으로 연결된다.
상기에서 설명된 바는 청구된 주제의 일례를 포함한다. 물론, 청구된 주제를 설명할 목적으로 모든 도출 가능한 요소 및 방법의 조합을 기술하는 것은 불가능하지만, 당업자는 많은 다른 조합 및 순열(permutation)이 가능함을 인식할 것이다. 따라서, 상세한 설명은 첨부된 청구범위의 사상과 범위 내에서 이루어지는 그러한 모든 개조, 수정 및 변경을 포괄하는 것을 의도한다.
특히, 상기 설명된 컴포넌트, 장치, 회로, 시스템 등등에 의해 수행되는 다양한 기능과 관련하여, 그러한 요소들을 설명하는데 사용된 용어("수단"을 포함하여)는 별도로 지정되지 않는 한 여기에 도시된 예시적 실시예의 기능을 수행하는 기재된 구조와 구조적 등가물(structural equivalent)은 아니더라도, 상기 기술된 요소의 특정 기능을 수행하는 임의의 요소 - 기능적 등가물(functional equivalent) - 에 해당함을 의미한다. 이 점과 관련하여, 상기 설명된 실시예는 다양한 방법의 행위 및/또는 이벤트를 수행하기 위한 컴퓨터 실행 가능 명령어를 포함하는 시스템 및 컴퓨터 판독 가능 매체를 포함함을 또한 인식해야 한다.
이와 더불어, 특정한 특성이 여러 구현 중 하나와 관련되어 기재되었지만, 그러한 특성은 임의의 주어진 또는 특정 애플리케이션을 위해 요구되거나 유익한 다른 구현의 하나 이상의 특성과 조합될 수 있다. 또한 , "포함한다(includes)", "포함하는(including)" 및 그의 변형과 같은 용어가 상세한 설명 또는 청구범위에 사용되며, 이러한 용어는 포괄적 의도로 사용된다.

Claims (20)

  1. 네트워크 백업 시스템으로부터 정보를 복구하는 클라이언트 시스템으로서,
    명령어를 저장하도록 구성된 메모리와 상기 명령어를 실행하도록 구성된 프로세서
    를 포함하되,
    상기 명령어는
    복구될 데이터 항목에 대해, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간에 상이한 데이터 항목의 하나 이상의 부분을 상기 클라이언트 시스템에서 계산된, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간의 제 1 차분(differential) 및 상기 클라이언트 시스템으로부터 원거리에 있는 백업 위치(backup location)에서 계산된, 상기 데이터 항목의 현재 버전과 상기 데이터 항목의 타깃 버전 간의 제 2 차분 모두에 기초하여, 식별하도록 구성된 차분 컴포넌트(differential component)와,
    상기 하나 이상의 식별된 부분이 저장되는 복수의 네트워크 위치를 결정하고 상기 결정된 네트워크 위치 중 하나를 선택하도록 구성되는 위치 결정 컴포넌트 - 상기 복수의 네트워크 위치는 클라우드 서비스 제공자와 연관된 적어도 하나의 위치를 포함함 - 와,
    상기 선택된 위치로부터 상기 하나 이상의 식별된 부분을 가져와서, 상기 데이터 항목의 현재 버전을 상기 가져온 하나 이상의 식별된 부분을 이용하여 상기 데이터 항목의 타깃 버전으로 복구하도록 구성된 복구 컴포넌트
    를 포함하는 클라이언트 시스템.
  2. 제 1 항에 있어서,
    상기 차분 컴포넌트는 적어도 부분적으로 상기 데이터 항목의 현재 버전의 부분과 연관된 각각의 부분의 서명(portion signature)을 상기 데이터 항목의 타깃 버전의 대응하는 부분과 연관된 각각의 부분의 서명과 비교함으로써 상기 하나 이상의 부분을 식별하도록 더 구성되는
    클라이언트 시스템.
  3. 제 1 항에 있어서,
    상기 위치 결정 컴포넌트는 사전지정된 네트워크 위치에 있는 인덱스로부터 상기 복수의 네트워크 위치를 검색(look up)하도록 구성된 인덱스 룩업 컴포넌트(index lookup component)를 포함하는
    클라이언트 시스템.
  4. 제 3 항에 있어서,
    상기 인덱스는 상기 데이터 항목의 하나 이상의 부분 각각에 대한 적어도 하나의 위치에 대한 포인터 및 상기 데이터 항목의 상기 하나 이상의 부분의 리스트를 포함하는
    클라이언트 시스템.
  5. 제 1 항에 있어서,
    상기 복수의 네트워크 위치는
    광역 네트워크를 통해 상기 클라이언트 시스템에 연결된 원격 장치의 위치와,
    로컬 피어 장치의 위치 및 로컬 수퍼 피어 장치의 위치 중 적어도 하나
    를 포함하되,
    상기 로컬 피어 장치의 위치는 지역 네트워크(local area network)를 통해 상기 클라이언트 시스템에 연결되고 상기 데이터 항목의 하나 이상의 부분을 저장하도록 구성되며,
    상기 로컬 수퍼 피어 장치의 위치는 상기 지역 네트워크를 통해 상기 클라이언트 시스템에 연결되고, 상기 데이터 항목의 상기 하나 이상의 부분과 함께, 상기 하나 이상의 부분 각각에 대한 적어도 하나의 위치에 대한 포인터 및 상기 하나 이상의 부분의 리스트를 포함하는 인덱스를 저장하도록 구성되는
    클라이언트 시스템.
  6. 제 5 항에 있어서,
    상기 위치 결정 컴포넌트는 상기 원격 장치의 위치에 대한 상기 로컬 피어 장치 또는 상기 수퍼 피어 장치의 위치의 우선순위 결정에 적어도 부분적으로 기초하여 상기 결정된 네트워크 위치 중 하나를 선택하도록 더 구성되는
    클라이언트 시스템.
  7. 제 1 항에 있어서,
    상기 위치 결정 컴포넌트는, 네트워크 로딩(network loading), 네트워크 위치 가동시간(network location uptime), 상기 클라이언트 시스템에 대한 각각의 네트워크 위치의 근접도(proximity) 및 상기 각각의 네트워크 위치로부터 상기 식별된 부분을 가져오기 위한 예상 대역폭 소비(expected bandwidth consumption)에 적어도 부분적으로 기초하여 상기 결정된 네트워크 위치 중 하나를 선택하도록 구성되는 네트워크 분석 컴포넌트를 포함하는
    클라이언트 시스템.
  8. 제 1 항에 있어서,
    상기 복수의 네트워크 위치 각각에 있는 장치는 상기 데이터 항목 및 상기 데이터 항목에 대한 하나 이상의 점증적 업데이트(incremental update)를 저장하도록 구성되는
    클라이언트 시스템.
  9. 제 1 항에 있어서,
    상기 복구 컴포넌트는
    상기 가져온 부분을 상기 데이터 항목의 현재 버전의 하나 이상의 부분과 병합(merge)하여 상기 데이터 항목의 타깃 버전을 복구하도록 더 구성되는
    클라이언트 시스템.
  10. 제 9 항에 있어서,
    상기 복구 컴포넌트는 적어도 부분적으로 상기 데이터 항목의 현재 버전의 하나 이상의 부분을 상기 데이터 항목의 타깃 버전의 대응하는 부분으로 교체함으로써 상기 가져온 부분을 상기 데이터 항목의 현재 버전의 하나 이상의 부분과 병합하도록 더 구성되는
    클라이언트 시스템.
  11. 제 1 항에 있어서,
    상기 복구될 데이터 항목은 시스템 이미지인
    클라이언트 시스템.
  12. 하나 이상의 파일의 차분 복구(differential restore)를 수행하는 방법으로서,
    컴퓨팅 장치의 적어도 하나의 메모리 상에 저장된 파일의 로컬로 이용가능한 버전을 식별하는 단계와,
    상기 파일의 로컬로 이용가능한 버전이 복구될 파일의 타깃 버전을 식별하는 단계와,
    상기 컴퓨팅 장치에 의해, 적어도 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치로부터 원격인 백업 서버 컴퓨팅 장치 모두에 의해 수행되는 계산에 기초하여, 상기 파일의 상기 로컬로 이용가능한 버전의 대응하는 세그먼트와 상이한 상기 파일의 타깃 버전의 각각의 세그먼트를 식별하는 단계와,
    각각의 식별된 세그먼트를 획득하는 단계 - 상기 획득하는 단계는 상기 각각의 식별된 세그먼트에 대해,
    상기 식별된 세그먼트를 가져올 수 있는 복수의 네트워크 데이터 저장소를 판정하는 단계 - 상기 복수의 네트워크 데이터 저장소는 클라우드 서비스 제공자의 적어도 하나의 네트워크 데이터 저장소를 포함함 - 와,
    상기 복수의 판정된 네트워크 데이터 저장소로부터 하나의 네트워크 데이터 저장소를 선택하는 단계와,
    상기 컴퓨팅 장치에 의해, 상기 선택된 네트워크 데이터 저장소로부터 상기 식별된 세그먼트를 획득하는 단계
    를 포함함 - 와,
    상기 컴퓨팅 장치에 의해, 상기 파일의 현재 버전 및 획득된 상기 식별된 세그먼트로부터 상기 파일의 타깃 버전을 복구하는 단계
    를 포함하는
    차분 복구 수행 방법.
  13. 제 12 항에 있어서,
    상기 각각의 세그먼트를 식별하는 단계는, 상기 파일의 타깃 버전의 세그먼트와 연관된 서명을 상기 파일의 로컬로 이용가능한 버전의 대응하는 세그먼트와 연관된 서명과 비교하는 단계를 포함하는
    차분 복구 수행 방법.
  14. 제 12 항에 있어서,
    상기 각각의 식별된 세그먼트를 획득하는 단계는,
    제 1 네트워크 데이터 저장소로부터 제 1 식별된 세그먼트를 획득하는 단계와,
    제 2 네트워크 데이터 저장소로부터 제 2 식별된 세그먼트를 획득하는 단계 - 상기 제 1 네트워크 데이터 저장소는 상기 제 2 네트워크 데이터 저장소와 다름 -
    를 더 포함하는 차분 복구 수행 방법.
  15. 제 12 항에 있어서,
    상기 네트워크 데이터 저장소는
    클라우드 서비스 제공자의 클라우드 기반 네트워크 데이터 저장소 - 상기 클라우드 기반 네트워크 데이터 저장소는 광역 네트워크를 통해 상기 컴퓨팅 장치에 연결됨 - 와,
    지역 네트워크를 통해 상기 컴퓨팅 장치에 연결되고 백업 세그먼트를 저장하도록 구성된 로컬 피어 네트워크 데이터 저장소와,
    상기 지역 네트워크를 통해 상기 컴퓨팅 장치에 연결되고 상기 백업 세그먼트와 함께 상기 백업 세그먼트를 가져올 수 있는 상기 네트워크 데이터 저장소에 대한 포인터 및 상기 백업 세그먼트의 리스트를 포함하는 인덱스를 저장하도록 구성되는 로컬 수퍼 피어 네트워크 데이터 저장소
    를 포함하는 차분 복구 수행 방법.
  16. 제 15 항에 있어서,
    상기 하나의 네트워크 데이터 저장소를 선택하는 단계는,
    상기 로컬 피어 네트워크 데이터 저장소 및 상기 로컬 수퍼 피어 네트워크 데이터 저장소에 제 1 선호도(preference) 레벨을 적용하는 단계와,
    상기 클라우드 기반 네트워크 데이터 저장소에 제 2 선호도 레벨을 적용하는 단계
    를 포함하되,
    상기 제 1 선호도 레벨은 상기 제 2 선호도 레벨에 대한 선호도를 나타내는
    차분 복구 수행 방법.
  17. 제 15 항에 있어서,
    상기 하나의 네트워크 데이터 저장소를 선택하는 단계는, 상기 컴퓨팅 장치 및 상기 네트워크 데이터 저장소 사이의 네트워크 로딩, 상기 네트워크 데이터 저장소의 가용성 및 상기 클라우드 기반 네트워크 데이터 저장소로부터 상기 식별된 세그먼트를 가져오는 것과 연관된 예상(anticipated) 대역폭 소비 중 적어도 하나에 적어도 부분적으로 기초하여 상기 하나의 네트워크 데이터 저장소를 선택하는 것을 포함하는
    차분 복구 수행 방법.
  18. 제 12 항에 있어서,
    상기 복구하는 단계는 상기 파일의 타깃 버전의 획득된 세그먼트를 상기 파일의 로컬로 이용가능한 버전의 세그먼트와 병합하는 단계를 포함하는
    차분 복구 수행 방법.
  19. 제 12 항에 있어서,
    상기 파일은 시스템 이미지의 일부 또는 상기 시스템 이미지인
    차분 복구 수행 방법.
  20. 피어-투-피어 및 클라우드 기반 혼성 백업 시스템(hybrid peer-to-peer/cloud-base backup system)으로부터 정보를 복구하는 장치로서,
    상기 장치는,
    파일의 로컬로 이용가능한 블록 및 상기 파일의 타깃 버전의 대응하는 블록 간에 서명 기반 비교(signature-based comparison)를 수행하고, 상기 서명 기반 비교 및 원격 백업 위치에서 계산된 다른 서명 기반 비교 모두에 기초하여 상기 파일의 로컬로 이용가능한 버전의 임의의 블록에 똑같이(identically) 대응하지 않는 상기 파일의 타깃 버전의 적어도 하나의 블록을 식별하는 수단과,
    상기 파일의 타깃 버전의 적어도 하나의 블록이 검색을 위해 이용될 수 있는 복수의 네트워크 장치를 결정하고, 상기 결정된 복수의 네트워크 장치 중 하나를 상기 파일의 상기 타깃 버전의 적어도 하나의 블록을 위한 소스로서 선택하는 수단 - 상기 복수의 네트워크 장치는 클라우드 서비스 제공자의 적어도 하나의 장치를 포함함 - 과,
    상기 결정된 복수의 네트워크 장치 중 선택된 장치로부터 상기 파일의 타깃 버전의 적어도 하나의 블록을 획득하고, 상기 파일의 타깃 버전의 적어도 하나의 블록을 상기 파일의 로컬로 이용가능한 버전의 하나 이상의 블록과 병합하여 상기 파일의 타깃 버전을 복구하는 수단
    을 포함하는 장치.
KR1020117023057A 2009-04-03 2010-03-26 피어 및 클라우드로부터 파일 및 시스템의 차분 복구 KR101626186B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/417,992 US8805953B2 (en) 2009-04-03 2009-04-03 Differential file and system restores from peers and the cloud
US12/417,992 2009-04-03

Publications (2)

Publication Number Publication Date
KR20120027132A KR20120027132A (ko) 2012-03-21
KR101626186B1 true KR101626186B1 (ko) 2016-05-31

Family

ID=42827026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023057A KR101626186B1 (ko) 2009-04-03 2010-03-26 피어 및 클라우드로부터 파일 및 시스템의 차분 복구

Country Status (12)

Country Link
US (1) US8805953B2 (ko)
EP (1) EP2414933A4 (ko)
JP (1) JP5559867B2 (ko)
KR (1) KR101626186B1 (ko)
CN (1) CN102388361B (ko)
AU (1) AU2010232795B2 (ko)
BR (1) BRPI1014698A2 (ko)
CA (1) CA2756085C (ko)
MX (1) MX2011010287A (ko)
RU (1) RU2531869C2 (ko)
TW (1) TWI474164B (ko)
WO (1) WO2010114777A2 (ko)

Families Citing this family (340)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6746483B1 (en) * 2000-03-16 2004-06-08 Smith & Nephew, Inc. Sheaths for implantable fixation devices
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US8250030B2 (en) 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US8533169B1 (en) 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8068433B2 (en) * 2007-11-26 2011-11-29 Microsoft Corporation Low power operation of networked devices
US8074014B2 (en) * 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US20140222758A1 (en) * 2009-08-14 2014-08-07 Ic Manage, Inc. Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
US8874534B2 (en) * 2009-08-14 2014-10-28 Ic Manage, Inc. File state subset satellites to provide block-based version control
WO2011021909A2 (en) 2009-08-21 2011-02-24 Samsung Electronics Co., Ltd. Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system
US8433682B2 (en) 2009-12-31 2013-04-30 Commvault Systems, Inc. Systems and methods for analyzing snapshots
CA2783370C (en) 2009-12-31 2016-03-15 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
US9684563B1 (en) * 2010-01-04 2017-06-20 Veritas Technologies Llc Techniques for backup management
US9256899B2 (en) 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US9235399B2 (en) 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9100396B2 (en) 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8977661B2 (en) * 2010-02-22 2015-03-10 Sookasa Inc. System, method and computer readable medium for file management
US9262643B2 (en) 2010-02-22 2016-02-16 Sookasa Inc. Encrypting files within a cloud computing environment
US8370672B2 (en) * 2010-02-26 2013-02-05 Microsoft Corporation Reducing power consumption of distributed storage systems
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US20110246721A1 (en) * 2010-03-31 2011-10-06 Sony Corporation Method and apparatus for providing automatic synchronization appliance
US9417969B2 (en) * 2010-05-13 2016-08-16 Sony Corporation Distributed network backup of multimedia files
US8707087B2 (en) * 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8650159B1 (en) * 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
US8713265B1 (en) * 2010-09-21 2014-04-29 Western Digital Technologies, Inc. Visual indicator of online backup
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
WO2012057581A2 (ko) * 2010-10-28 2012-05-03 에스케이텔레콤 주식회사 클라우드 컴퓨팅 시스템 및 그의 데이터 동기화 방법
US8583599B2 (en) * 2010-11-29 2013-11-12 Ca, Inc. Reducing data duplication in cloud storage
US8688645B2 (en) * 2010-11-30 2014-04-01 Netapp, Inc. Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith
US8656454B2 (en) 2010-12-01 2014-02-18 Microsoft Corporation Data store including a file location attribute
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US8316057B2 (en) * 2010-12-17 2012-11-20 International Business Machines Corporation Restoring deduplicated data objects from sequential backup devices
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US11544288B2 (en) * 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9280550B1 (en) * 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US9037597B2 (en) * 2011-01-10 2015-05-19 International Business Machines Corporation Verifying file versions in a networked computing environment
US8676763B2 (en) 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US9225791B2 (en) * 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US9384199B2 (en) 2011-03-31 2016-07-05 Microsoft Technology Licensing, Llc Distributed file system
US8868859B2 (en) * 2011-06-03 2014-10-21 Apple Inc. Methods and apparatus for multi-source restore
US20130138615A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Synchronizing updates across cluster filesystems
US9152659B2 (en) * 2011-12-30 2015-10-06 Bmc Software, Inc. Systems and methods for migrating database data
KR101429334B1 (ko) * 2012-02-02 2014-08-12 충북대학교 산학협력단 P2p 네트워크 환경에서 모바일 피어 검색을 위한 연속 범위 질의 처리 방법
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
US20130339298A1 (en) 2012-06-13 2013-12-19 Commvault Systems, Inc. Collaborative backup in a networked storage system
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
US11544284B2 (en) 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的系统及方法
CN107704198B (zh) * 2012-12-17 2020-01-31 联想(北京)有限公司 信息处理的方法及电子设备
US9165001B1 (en) * 2012-12-19 2015-10-20 Emc Corporation Multi stream deduplicated backup of collaboration server data
US9015122B2 (en) * 2012-12-21 2015-04-21 Zetta, Inc. Systems and methods for minimizing network bandwidth for replication/back up
US9373001B2 (en) 2012-12-26 2016-06-21 Barracuda Networks, Inc. Distributed encryption and access control scheme in a cloud environment
TWI489889B (zh) 2012-12-28 2015-06-21 Ind Tech Res Inst 內容遞送網路及同儕網路之流量控制方法及系統
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
JP2014164614A (ja) * 2013-02-26 2014-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
US8732135B1 (en) * 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US8682870B1 (en) 2013-03-01 2014-03-25 Storagecraft Technology Corporation Defragmentation during multiphase deduplication
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US8874527B2 (en) 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US9594643B2 (en) * 2013-03-06 2017-03-14 Quest Software Inc. Handling restores in an incremental backup storage system
US10191823B2 (en) 2014-03-11 2019-01-29 Cloudendure Ltd. System and method for restoring original machines from replicated machines in a secondary computing environment
US9582386B2 (en) 2013-03-15 2017-02-28 Cloudendure, Ltd. System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
US10157107B2 (en) 2013-07-03 2018-12-18 Catalogic Software, Inc. Data backup and progressive restoration using data chunks in cloud storage and a data cache
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
CN104754007A (zh) * 2013-12-26 2015-07-01 伊姆西公司 用于管理网络附加存储的方法和装置
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US8751454B1 (en) 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
JP6269174B2 (ja) * 2014-03-05 2018-01-31 富士通株式会社 データ処理プログラム、データ処理装置及びデータ処理方法
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US10911537B1 (en) * 2014-12-31 2021-02-02 Acronis International Gmbh Increasing speed of synchronization and restore
CN104572354A (zh) * 2015-01-22 2015-04-29 上海迈微软件科技有限公司 基于恢复服务的操作系统备份和恢复的方法及其设备
EP3248101B1 (en) 2015-01-23 2021-12-08 ServiceNow, Inc. Distributed computing system with resource managed database cloning
CN104639629A (zh) * 2015-01-30 2015-05-20 英华达(上海)科技有限公司 一种在客户端和云端进行文件的比较方法及比较系统
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US10592357B2 (en) 2015-12-30 2020-03-17 Commvault Systems, Inc. Distributed file system in a distributed deduplication data storage system
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10133639B2 (en) * 2016-02-10 2018-11-20 International Business Machines Corporation Privacy protection of media files for automatic cloud backup systems
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
JP6638489B2 (ja) * 2016-03-14 2020-01-29 オムロン株式会社 中継装置、中継装置の制御方法、制御プログラム、および記録媒体
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10671496B2 (en) 2016-05-31 2020-06-02 Mongodb, Inc. Method and apparatus for reading and writing committed data
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US9946617B2 (en) * 2016-06-06 2018-04-17 International Business Machines Corporation Optimized recovery in data replication environments
US10776220B2 (en) 2016-06-27 2020-09-15 Mongodb, Inc. Systems and methods for monitoring distributed database deployments
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
WO2018038650A1 (en) * 2016-08-22 2018-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Method for enabling a communication device to receive a partial modification of a resource
US10437730B2 (en) 2016-08-22 2019-10-08 International Business Machines Corporation Read cache synchronization in data replication environments
US10572245B1 (en) 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10666707B2 (en) * 2017-01-11 2020-05-26 Microsoft Technology Licensing, Llc Nonconsecutive file downloading
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10264054B2 (en) 2017-02-10 2019-04-16 International Business Machines Corporation Predictive device to device file transfer system for local cloud storage files
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11249671B2 (en) * 2017-04-28 2022-02-15 Netapp, Inc. Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US20180357017A1 (en) 2017-06-12 2018-12-13 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
CN110720088A (zh) 2017-06-12 2020-01-21 净睿存储股份有限公司 集成到大容量存储设备的可访问快速耐久存储
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10635632B2 (en) 2017-08-29 2020-04-28 Cohesity, Inc. Snapshot archive management
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11321192B2 (en) * 2017-09-07 2022-05-03 Cohesity, Inc. Restoration of specified content from an archive
US11874805B2 (en) 2017-09-07 2024-01-16 Cohesity, Inc. Remotely mounted file system with stubs
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US10671434B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Storage based artificial intelligence infrastructure
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US10992598B2 (en) 2018-05-21 2021-04-27 Pure Storage, Inc. Synchronously replicating when a mediation service becomes unavailable
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
JP7248267B2 (ja) * 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム
CN108874590A (zh) * 2018-06-16 2018-11-23 武汉商启网络信息有限公司 一种云主机自动备份与恢复的系统
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11023179B2 (en) 2018-11-18 2021-06-01 Pure Storage, Inc. Cloud-based storage system storage management
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
CN110362429B (zh) * 2019-07-12 2021-08-06 优刻得科技股份有限公司 数据库的连续数据保护方法、系统、设备和介质
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11550514B2 (en) 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
TWI711288B (zh) * 2019-08-27 2020-11-21 中華電信股份有限公司 異地備份方法
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11625416B1 (en) 2019-09-13 2023-04-11 Pure Storage, Inc. Uniform model for distinct types of data replication
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
KR102427418B1 (ko) * 2019-09-27 2022-08-01 주식회사 데이타커맨드 백업 데이터 합성 장치 및 방법
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
CN112685225A (zh) * 2019-10-18 2021-04-20 伊姆西Ip控股有限责任公司 用于传输数据的方法、设备和计算机程序产品
US10715524B1 (en) * 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11868318B1 (en) 2019-12-06 2024-01-09 Pure Storage, Inc. End-to-end encryption in a storage system with multi-tenancy
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
CN111309388B (zh) * 2020-02-03 2023-07-21 杭州迪普科技股份有限公司 设备的系统软件版本的自动回滚系统及其方法
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11831773B1 (en) 2020-06-29 2023-11-28 Amazon Technologies, Inc. Secured database restoration across service regions
US11422733B2 (en) * 2020-06-29 2022-08-23 EMC IP Holding Company LLC Incremental replication between foreign system dataset stores
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11487701B2 (en) 2020-09-24 2022-11-01 Cohesity, Inc. Incremental access requests for portions of files from a cloud archival storage tier
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765173A (en) 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US6366930B1 (en) * 1996-04-12 2002-04-02 Computer Associates Think, Inc. Intelligent data inventory & asset management systems method and apparatus
KR970076238A (ko) * 1996-05-23 1997-12-12 포만 제프리 엘 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US5794254A (en) * 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6367029B1 (en) * 1998-11-03 2002-04-02 Sun Microsystems, Inc. File server system tolerant to software and hardware failures
GB2353611B (en) * 1999-08-24 2004-03-17 Ibm Disk image backup/restore with data preparation phase
US7574496B2 (en) * 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US7257584B2 (en) * 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US6990666B2 (en) * 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US6993539B2 (en) * 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7139808B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Method and apparatus for bandwidth-efficient and storage-efficient backups
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
US7925623B2 (en) * 2002-09-10 2011-04-12 Exagrid Systems, Inc. Method and apparatus for integrating primary data storage with local and remote data protection
US7203711B2 (en) * 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US7275177B2 (en) * 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync
US20050015416A1 (en) * 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US7257257B2 (en) * 2003-08-19 2007-08-14 Intel Corporation Method and apparatus for differential, bandwidth-efficient and storage-efficient backups
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7315930B2 (en) * 2003-10-30 2008-01-01 Hewlett-Packard Development Company, L.P. Method of selecting heuristic class for data placement
US7383463B2 (en) * 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
JP2005301497A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ストレージ管理装置、リストア方法及びそのプログラム
JP2005301464A (ja) 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7330997B1 (en) * 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7979404B2 (en) * 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US20060212439A1 (en) * 2005-03-21 2006-09-21 Microsoft Corporation System and method of efficient data backup in a networking environment
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
WO2007017857A1 (en) * 2005-04-15 2007-02-15 Zak Dechovich Accelerated computer recovery
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
ATE504878T1 (de) * 2005-10-12 2011-04-15 Datacastle Corp Verfahren und system zur datensicherung
US7653668B1 (en) * 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US20070136200A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Backup broker for private, integral and affordable distributed storage
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US7529785B1 (en) * 2006-02-28 2009-05-05 Symantec Corporation Efficient backups using dynamically shared storage pools in peer-to-peer networks
US20070214198A1 (en) * 2006-03-10 2007-09-13 Nathan Fontenot Allowing state restoration using differential backing objects
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
EP3336707A1 (en) * 2006-05-05 2018-06-20 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
EP2078269A4 (en) * 2006-10-31 2011-02-23 Rebit Inc AUTOMATIC MASKING SYSTEM OF DATA AND FILE DIRECTORY STRUCTURES RECORDED ON A COMPUTER MEMORY
US7734669B2 (en) * 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US7685189B2 (en) * 2006-12-27 2010-03-23 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
JP2008197745A (ja) * 2007-02-08 2008-08-28 Hitachi Ltd ストレージ仮想化システムにおける記憶制御装置
US8874518B2 (en) * 2007-06-06 2014-10-28 International Business Machines Corporation System, method and program product for backing up data
WO2008154448A2 (en) * 2007-06-08 2008-12-18 Apple Inc. Application-based backup-restore of electronic information
JP2009070143A (ja) * 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
US8190836B1 (en) * 2008-04-30 2012-05-29 Network Appliance, Inc. Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume
US8108502B2 (en) * 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765173A (en) 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list

Also Published As

Publication number Publication date
WO2010114777A2 (en) 2010-10-07
AU2010232795A1 (en) 2011-10-20
JP5559867B2 (ja) 2014-07-23
CN102388361B (zh) 2015-02-25
US8805953B2 (en) 2014-08-12
CA2756085A1 (en) 2010-10-07
TW201040713A (en) 2010-11-16
EP2414933A4 (en) 2012-11-14
BRPI1014698A2 (pt) 2019-04-16
AU2010232795B2 (en) 2014-06-19
WO2010114777A3 (en) 2011-02-03
EP2414933A2 (en) 2012-02-08
CN102388361A (zh) 2012-03-21
RU2011139997A (ru) 2013-04-20
KR20120027132A (ko) 2012-03-21
RU2531869C2 (ru) 2014-10-27
MX2011010287A (es) 2011-10-19
CA2756085C (en) 2017-04-25
US20100257142A1 (en) 2010-10-07
TWI474164B (zh) 2015-02-21
JP2012523044A (ja) 2012-09-27

Similar Documents

Publication Publication Date Title
KR101626186B1 (ko) 피어 및 클라우드로부터 파일 및 시스템의 차분 복구
EP2422274B1 (en) Intelligent tiers of backup data
US9792306B1 (en) Data transfer between dissimilar deduplication systems
US8769055B2 (en) Distributed backup and versioning
US20100257403A1 (en) Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8261126B2 (en) Bare metal machine recovery from the cloud
US20100318759A1 (en) Distributed rdc chunk store
EP2997497B1 (en) Selecting a store for deduplicated data
US10872017B2 (en) Restoring a file system object
US9785646B2 (en) Data file handling in a network environment and independent file server
EP2997474B1 (en) Reporting degraded state of data retrieved for distributed object
US10789002B1 (en) Hybrid data deduplication for elastic cloud storage devices

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4