KR20040053142A - 대형 파일들의 효율적 관리 - Google Patents

대형 파일들의 효율적 관리 Download PDF

Info

Publication number
KR20040053142A
KR20040053142A KR10-2004-7004480A KR20047004480A KR20040053142A KR 20040053142 A KR20040053142 A KR 20040053142A KR 20047004480 A KR20047004480 A KR 20047004480A KR 20040053142 A KR20040053142 A KR 20040053142A
Authority
KR
South Korea
Prior art keywords
file
data
partitions
files
computer system
Prior art date
Application number
KR10-2004-7004480A
Other languages
English (en)
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 KR20040053142A publication Critical patent/KR20040053142A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

객체 관리 시스템은 객체(72)를 저장하기 위해 구성된 컴퓨터 시스템을 포함하며, 객체는 파일일 수 있다. 컴퓨터 시스템은 객체(72)를 파티션들(70)로 나누고, 파티션들을 선택하며, 선택된 파티션들을 저장하기 위하여 저장 디바이스(14)로 제공하도록 구성된다. 파티션들은 파티션들이 변경되었는지에 기초하여 파티션들이 이동될 필요가 있는 디바이스인지를 결정하는 것에 의해 선택된다. 시스템은 객체와 연관된 데이터 객체를 조사하는 것에 의해 이를 결정한다. 컴퓨터 시스템은 저장 디바이스로부터 선택된 파티션을 검색하도록 구성된다.

Description

대형 파일들의 효율적 관리{Efficient management of large files}
배경
본 발명은 객체 관리 시스템에 있는 대형 파일들의 관리에 관한 것이다. 오라클(Oracle) 데이터베이스들에 사용되는 것과 같은, 존재하는 시스템들은 매우 큰 테이블공간들을 조절하도록 설계되었다. 테이블공간(tablespace)은 복수의 데이터 파일들로 만들어질 수 있으며, 이들은 운영 시스템에 의해 액세스되거나 또는 처리될 수 있는 파일들이다. "데이터 파일(Data file)"이란 복제될 수 있고, 이동될 수 있으며, 또는 그렇지 않은 경우 저장 미디어 상에 인접한 방식으로 데이터가 물리적으로 저장되는지에 상관없이 인접한 정보로서 처리될 수 있는 파일을 의미한다.
로컬 저장 장치 용량은 하나 또는 그 이상의 데이터베이스들과 연관된 전체 테이블공간을 저장하기 위해 효율적이지 않을 수 있다. 전체 데이터베이스를 저장하기 위한 충분한 용량을 제공하기 위해, 특히 모든 데이터가 반드시 상대적으로 빠른 속도들로 액세스가능할 필요가 없는 때에 (하드 디스크들 또는 광학 미디어와 같은) 효율적이고 빠른 액세스 저장 미디어를 마련하는 것은 비경제적일 수 있다. 종래의 데이터베이스 시스템들은 데이터가 덜 비싼 미디어로 "이동되고(migrated)" 단지 필요할 때만 미디어로부터 검색될 수 있도록 수행되어 왔다. 그러나, 현존하는 시스템들 및 방법들은 이동될 데이터, 이동 후의 데이터 및 검색 후의 데이터를 효율적으로 관리하지 않는다. 이러한 시스템들은 잠복(latency)으로 성능이 나빠지며, 높은 대역폭을 요구하고, 긴 백업 시간들을 요구하며, 가격이 높아지고, "그 당시의(point in time)" 스냅샷들을 만드는 것이 가능하지 않을 수 있다. 이러한 문제들은 데이터베이스들 및 테이블공간들에만 제한되지 않는다. 그보다, 이들은 멀티미디어와 같은 대형 파일들을 저장하는 시스템들에 적용될 수 있다.
여기서 논의될 보다 효과적인 접근은 잠복 및 대역폭 요구들을 감소시키고, 비용을 감소시키며, 보다 작은 백업창을 요구할 것이며, 따라서 데이터를 보다 효율적으로 관리한다. 본 명세가 데이터베이스들과 테이블공간들의 관련하여 문제와 발명을 설명하지만, 본 발명은 이동을 이용한 임의의 데이터 관리 시스템, 특히 시스템이 오디오 또는 비디오와 같은 큰 데이터 파일들을 관리할 때 적용될 수 있다.
관련된 출원들로의 교차 참조
본 출원은 2001년 9월 26일에 출원된 발명의 명칭이 SYSTEMS & METHOD FOR MANAGING TABLESPACES AND DATABASES인 공동 계류중인 미국 특허 출원 번호 60/324,578(대리인 명세서 번호 OTG-001PROV)에 우선권을 청구하며, 이는 모든 목적들을 위해 본 명세서에 참조로 포함된다.
발명의 분야
본 발명은 일반적으로 객체 관리 시스템에 있는 대형 파일들의 효율적인 관리를 위한 방법, 제조 규약, 및 장치에 관한 것이다. 보다 특별하게, 본 발명은 속도, 가격, 크기, 유효성, 접근성(accessibility), 및 원격성(remoteness)과 같은, 상이한 속성들을 갖는 저장 장치의 다양한 조합들을 포함할 수 있는 객체 관리 시스템에 있는 대형 파일들의 효율적인 저장 및 검색에 관한 것이다.
도 1은 전단(front end) 및 후단(back end)을 갖는 객체 관리 시스템의 개략도.
도 2는 부착된 매스 저장 디바이스들을 갖는 컴퓨터 시스템의 개략도.
도 3은 DMAPI 정보가 저장되는 아이노드들과 파일 사이의 논리적 관계들의 블럭도.
도 4는 DMAPI 정보가 저장되는 아이노드와 확장 블럭 사이의 논리적 관계의 블럭도.
도 5는 후단에 저장된 파일, DMAPI 확장 데이터 파일, 컨테이너 파일들, 및 파티션들의 블럭도.
도 6은 객체 관리 시스템에서 사용된 데몬들(daemons)을 도시하는 블럭도.
도 7은 파티션들의 버저닝을 도시하는 블럭도.
도 8은 이동 프로세스를 나타내는 흐름도.
도 9는 일관성을 확실히 하도록 파일 상태의 업테이트를 나타내는 흐름도.
도 10은 소거 프로세스를 나타내는 흐름도.
도 11은 이벤트 조절 및 데이터의 다시부름을 나타내는 흐름도.
도 12는 파티션의 다시부름을 도시하는 블럭도.
도 13은 이동 또는 소거 지원자들 및 지원자 경로이름들의 획득을 위한 효율적인 검색을 나타내는 흐름도.
도 14는 이동 또는 소거 지원자들을 위한 검색으로의 몇몇의 접근들을 도시하는 블럭도.
도 15는 다른 컴퓨터 상에서 사용가능한 하나의 컴퓨터로부터 데이터를 만들기 위한 컨테이너 파일들의 사용을 나타내는 흐름도.
도 16은 도 15의 컴퓨터들의 블럭도.
따라서, 간단하게, 본 발명은 객체 관리 시스템에 있는 대형 파일들의 효율적인 관리를 위한 방법, 제조 규약, 및 장치를 제공한다. 본 발명의 한 실시예에서, 객체 관리 시스템은 객체를 저장하기 위해 구성된 컴퓨터 시스템을 포함하며, 객체는 파일일 수 있다. 컴퓨터 시스템은 객체를 파티션들로 나누고, 파티션들을 선택하며, 선택된 파티션들을 저장하기 위해 저장 디바이스로 제공하도록 구성된다.
파티션들은 어떤 파티션들이 변경되었는지에 기초하여 어떤 파티션들이 저장 디바이스로 이동될 필요가 있는지를 결정함으로써 선택된다. 시스템은 객체와 연관된 데이터 객체를 조사하여 이를 결정한다.
컴퓨터 시스템은 저장 디바이스로부터 선택된 파티션을 검색하도록 구성될 수 있다. 시스템은 데이터 액세스 요청을 수신하고, 파티션을 선택하기 위해 데이터 액세스 요청을 사용하며, 선택된 파티션이 컴퓨터 시스템에 존재하는지를 결정하기 위해 데이터 객체를 사용하고, 선택된 파티션이 컴퓨터 시스템 상에 존재하지않을 때 저장 디바이스로부터 선택된 파티션을 검색한다.
본 발명의 장점들 및 다른 상세한 설명들이 첨부한 도면들과 함께 취해질 때 다음의 상세한 설명으로부터 당업자에게 명백해질 것이다.
본 발명은 동일 참조 번호들이 동일 구성 요소들을 나타내는 첨부 도면들과 연관하여 다음 상세한 설명에 의해 쉽게 이해될 것이다.
실시예의 상세한 설명이 여기서 제공된다. 본 발명이 실시예와 관련하여 설명되지만, 본 발명은 임의의 한 실시예에 제한되지 않는다는 것이 이해되어야 한다. 이와 반대로, 본 발명의 범위는 단지 첨부된 청구항들에 의해서만 제한되고, 본 발명은 다수의 대안들, 변경들 및 동등물들을 포함한다. 예의 목적을 위하여, 다수의 특정한 항목들이 본 발명의 완전한 이해를 제공하기 위해 다음 서술에서 설명된다. 본 발명은 이러한 특정한 항목들의 일부 또는 전체 없이 청구항들에 따라 실행될 수 있다. 명확하게 하기 위하여, 본 발명과 관련된 기술 분야들에서 알려진 기술적인 재료는 상세히 설명되지 않으며 따라서 본 발명은 불필요하게 모호하지않다.
본 발명은 프로세스, 장치, 시스템, 디바이스, 방법 또는 컴퓨터 판독가능한 저장 매체와 같은 컴퓨터 판독가능한 매체, 또는 프로그램 명령들이 광 또는 전자 통신 링크들을 통해 송신되는 컴퓨터 네트워크를 포함하여 다양한 방법들로 수행될 수 있다는 것이 인정되어야 한다.
개요
실시예에서, 도 1에 도시된 바와 같이 객체 관리 시스템(10)은 제 1의 또는 로컬, 컴퓨터 시스템(12)과 저장 시스템(14)을 포함하며, 저장 시스템(14)은 제 2의 또는 원격 컴퓨터 시스템일 수 있다. 전단(12)으로 불릴 수 있는 제 1 컴퓨터 시스템(12)은 제 1의 어플리케이션 및 데이터 저장 서비스들을 사용자(도시되지 않음)에게 제공한다. 일반적인 동작 중에, 제 1 컴퓨터 시스템(12)은 그의 CPU(20)상의 어플리케이션을 동작시키고 그의 로컬 파일시스템들(16)상의 로컬 데이터로 액세스를 제공하며, 로컬 파일시스템들(16)은 일반적으로 하드 디스크 드라이브들(18)과 같은 고속 디바이스들을 단독으로, RAID 어레이로, 또는 다른 구성으로 포함한다. 후단(14)으로 또한 불릴 수 있는 저장 시스템(14)은 파일시스템들(26)로 구조화될 수 있는 다양한 저장 디바이스들에 연결된 범용 CPU(22)이거나 특별화된 저장 장치일 수 있다. 후단(14)에 사용된 매스 저장 디바이스들은 하드 디스크 드라이브들(24), 또는 보다 값싸고, 느린, 또는 기록 목적들로 의도된 다른 디바이스들일 수 있다. 예를 들어, 광 디스크들(28), 테이프 드라이브들(30), 및자기-광 드라이브들이 사용될 수 있다. 후단(14)은 임의로 액세스된 데이터의 저렴한 거의 선형(near-line) 저장으로 사용될 수 있으며, 또한 전단(12) 상의 데이터를 백업하는데 사용될 수 있다.
후단(14)은 전단(12)과 동일한 장소에 위치될 수 있으며, 또는 떨어져서 위치될 수 있다. 데이터 전송은 NFS, AFS, FTP 또는 다른 방법을 통해 이루어진다. 전단(12) 및 후단(14)은 일대일, 다대일, 또는 다대다 관계로 연결될 수 있다. 전단(12) 상의 파일시스템들(16)은 일반적으로 후단들(14)과 일대일 관계들이지만, 전단(12) 상의 몇몇의 파일시스템들(16)은 각각이 다른 후단(14)과 매핑할 수 있다. 이러한 구성은 예를 들면, 각 파일시스템(16)이 회사의 다른 그룹에 속한 다른 어플리케이션을 위해 사용될 때 사용될 수 있다. 따라서, 회계 부서를 위한 데이터는 한 후단(14) 시스템으로 갈 수 있으나, 임금 대장(payroll)을 위한 데이터는 다른 후단(14)으로 갈 것이다. 이러한 후단 시스템들(14)은 다른 원격 위치들에 있을 수 있다.
동작에서, 이동 데몬(daemon)은 데이터를 전단(12)에서 후단(14)으로 이동시킨다(복제한다); 즉, 이는 데이터를 전단(12)으로부터 후단(14)으로 복제한다. 데이터는 후단(14)으로 기록되는 파티션들로 분산된다. 한번 파일이 이동되면, 전단(12) 상에 이동된 것으로 마크된다. 이는 파일이 이동되었다는 것을 나타내는 비트 또는 다른 플래그에 의해 이루어진다. 소거 데몬은 전단(12) 상에서 더이상 필요하지 않은 데이터를 가진 이동된 파일들을 찾으며, 필요치 않은 데이터를 삭제한다. 이벤트 데몬은 데이터 액세스 이벤트들을 트랩(trap)하며, 데이터가전단(12) 상에 필요할 때 후단(14)으로부터 전단(12)으로 데이터를 다시 불러낸다. 이벤트 데몬은 필요한 파일의 부분들을 이동시키도록 구성되며, 따라서 단지 파일의 부분만이 다시 불려질 수 있다. 이는 전송될 데이터의 양을 감소시키는 장점을 가지며, 따라서 대역폭 요구량들 및 잠복을 감소시킨다.
주기적으로, 이동 데몬은 이동할 필요가 있는 파일들(또는 그보다 파일들의 부분들)을 체크한다. 소거되었다고 마크된 다시불린 파일을 찾으면(즉, 이는 그의 마지막 이동이 후단(14)이라고 기록되었다), 파일을 후단(14)으로 이동시킬 것이다. 이동 데몬은 변경되었던 파티션들 만을 기록하도록 구성된다. 변경되지 않은 파티션들이 기록될 필요가 없으므로, 이동하는 데이터의 양이 감소된다. 후단(14)에서, 변경된 파티션들이 버저닝(versioning)되고 매스 저장 디바이스들로 기록된다. 그들은 또한 현재 존재하는 파티션들 상에 기록될 수 있으나, 앞선 버전들이 그 당시의 스냅샷들이 생성되도록 하는 것은 막으며, 따라서 임의의 주어진 시간에서의 시스템의 상태가 보존될 수 있다. 파티션들 및 다른 메타데이터의 위치에 대한 정보는 컨테이너 파일들에 기록되고, 이는 후단(14)의 고속 저장에 위치될 수 있다. 이러한 구성에서, 시스템의 동작의 장점에 의해 백업들이 생성되고, 컨테이너 파일들은 전단(12)으로 데이터를 재저장해야할 필요가 있는 정보의 모든 것을 포함하므로 분리 백업들이 요구되지 않는다.
이러한 동작들이 파티션 크기 설정 및 다른 구성과 환경 정보 외에 어플리케이션 사용자의 부분상에서 특별한 개입없이 명백하게 수행된다.
이러한 시스템은 사용가능한 하나의 컴퓨터 시스템으로부터 다른 컴퓨터 시스템으로 모든 데이터를 복제하지 않고도 데이터를 생성하는데 사용될 수 있다. 이를 완성하기 위하여, 제 2 컴퓨터 시스템이 그의 로컬 파일시스템 상의 그 자신의 파일들을 생성하기 위하여 후단(14) 상의 제 1 컴퓨터의 컨테이너 파일들을 사용하도록 구성된다. 제 2 컴퓨터 시스템은 셋업 또는 필요한 동안 그가 그 자신의 데이터를 후단(14)에 기록할 때 그 자신의 컨테이너 파일들을 생성한다. 제 2 컴퓨터의 동작동안, 데이터 액세스들은 그들이 전단(12)에 존재하지 않는다면 후단(14)으로부터 파일들의 요구된 파티션들을 다시부르는 결과를 가져올 것이다. 컴퓨터 시스템이 테이터를 변경한다면, 이는 그 자신의 파티션들을 데이터를 이동시킬 때 후단(14)에 기록할 것이며, 그 자신의 컨테이너 파일들을 업데이트할 것이다. 따라서,각 컴퓨터 시스템은 그 자신의 파일들의 버전을 갖는다.
시스템은 파일이름들, 아이노드 숫자들, 및 단일 파일에서 확장된 속성들을 저장하는 것에 의해 지원자들의 이동 및 소거를 위해 효율적으로 검색하도록 구성될 수 있다. 시스템은 아이노드 및 가능하다면 이름공간의 모든 파일에 대하여 확장 블럭을 검사하지 않고 지원자들의 이동 또는 소거를 빠르게 식별하기 위하여 이러한 파일을 검색할 수 있다. 아이노드 숫자를 사용하는 역조사(reverse lookup)는 경로이름을 결정하기 위해 사용된다. 이러한 접근은 시스템이 지원자들의 이동 및 소거에 대해 단지 아이노드만을 찾아보도록 하여 요구되는 시간을 감소시킨다.
시스템은 데이터베이스들에 의해 사용된 큰 데이터공간들을 관리하도록 사용될 수 있으나, 특히 데이터 액세스가 단지 파일의 부분으로만인 대형 파일들의 관리에서 응용성을 갖는다.
상세한 설명
실시예에서, 제 1 및 제 2 컴퓨터 시스템은 각각 유닉스를 사용하는 워크스테이션과 같은 범용 컴퓨터에서 수행되는 소프트웨어 프로그램을 포함한, 다른 컴퓨터 시스템들은 윈도우들 또는 리눅스 운영 시스템을 사용하는 인텔 펜티엄 기반 PC와 같이 사용될 수 있다. 컴퓨터 시스템을 수행하기 위한 다른 수단이 ASIC(application specific integrated circuit) 또는 FPGA(field-programmable gate array)와 같은 칩들로 새겨진 명령들을 가진 특정 목적의 배선 시스템과 같이 사용될 수 있다. 저장 시스템으로 사용되는 제 2 컴퓨터 시스템은 NAS(Network Attached Storage) 또는 SAN(Storage Area Network) 구성에 연결된 EMC, Network Appliance, StorageTek, 및 ADIC에 의해 만들어진 특별화된 저장 장치의 형태로 수행될 수 있다. 컴퓨터 시스템(40)은 도 2에 도시된 중앙 처리 유닛(41), 메모리(42), 디스플레이(44), 키보드(46), 매스 저장 디바이스들(48), 네트워크 인터페이스(50), 및 다른 입력 또는 출력 디바이스들(52) 중 임의의 개수를 가질 수 있다. 일반적인 관례에 따라, 메모리(42) 및 매스 저장 디바이스들(48)은 프로그램 명령들 및 데이터를 저장하기 위해 사용될 수 있다. 컴퓨터 시스템(40)은 또한 멀티프로세서 팬티엄 기반 시스템 또는 Sun SPARC 스테이션과 같은 하나 이상의 중앙 처리 유닛(41)을 가질 수 있다. 매스 저장 디바이스들(48)은 하나 또는 그 이상의 하드 디스크 드라이브들, 광 드라이브들, 테이프 드라이브들, 자기-광학 드라이브들, DAT들, CD 드라이브들, DVD 드라이브들, 또는 데이터를 저장하는 다른 디바이스들을 RAID, 광섬유 채널 또는 다른 인터페이스를 사용하여 포함할 수 있다.
객체 저장의 형태인 파일시스템은 파일들(객체의 ID가 그의 경로이름인 경우) 또는 객체들(객체가 파일시스템 이름과 다른 일부 ID에 의해 참조되는 경우)을 저장할 수 있다. 객체 저장은 다음 구성요소들을 갖는다:객체들을 식별하는 방법; 객체들의 조종을 허용하는 인터페이스(API, 파일시스템 초기화, 등); 및 객체에 대한 저장. 파일은 객체의 형태로 고려될 수 있다. 여기서 논의된 원리들은 파일들 및 파일시스템들 뿐만 아니라 객체들과 객체 저장들에도 동일하게 적용한다. 객체 저장에 대하여, 후단의 어디에서 객체들을 찾는지를 설명하는 확장된 속성이 파일 이름을 대신하여 객체 ID일 수 있다.
전단(12)으로서 작용하는 제 1 컴퓨터 시스템은 일반적으로 데이터에 빠른 액세스를 위해 하드 디스크 드라이브들(18)의 형태로 고속 저장을 갖는다. 후단(14)으로 작용하는 저장 시스템은 느릴 뿐만 아니라 일부는 고속의 저장을 가질 것이지만, 테이프 백업들(30) 및 광 드라이브들(28)보다는 경제적인 디바이스들이다. 다른 기록 디바이스들이 저장 시스템(14)에 부착될 수 있다. 후단(14)은 드물게 액세스되는 데이터의 저장을 위해 사용되어, 비싼 고속 저장 공간의 필요가 감소된다.
후단(14)은 또한 제 1 컴퓨터 시스템(12)의 부분으로서 수행될 수 있으며, 따라서 후단(14)의 저장 디바이스들은 제 1 컴퓨터 시스템(12)에 부착된다. 개시된 실시예가 전단(12) 및 후단(14)에 대하여 개별적인 제 1 및 제 2 컴퓨터 시스템을 각각 설명하고 있으나, 개별적인 제 2 컴퓨터 시스템은 본 발명을 수행하기 위해 요구되지 않는다.
도시된 제 1 컴퓨터 시스템은 UK ISBN 1-85912-190-X로서 The Open Group(이전에는 X/Open)에 의해 출판된 Systems Management: Data Storage Management(XDSM) API, Document Number C429의 설명을 따르며, 그 내용은 본 명세서에 참조로 포함된다. 본 문서는 http://www.opengroup.org에서 온라인으로 사용가능하며, Data Management API(DMAPI)를 따르는 어플리케이션들에 대하여 동일한 설명들이 있다. 그들이 여기서 설명된 데이터 관리 기능들에 대한 지원을 제공할 때 다른 운영 시스템이 사용가능하다.
유닉스 또는 리눅스 시스템에서, 운영 시스템은 크기, 소유권, 날짜들, 및 허가와 같은 표준 파일시스템 정보를 저장하기 위하여 아이노드들을 사용한다. 아이노드는 또한 링크를 DMAPI 확장 데이터로 저장하기 위해 사용될 수 있으며, 이는 확장된 속성들/메타데이터와 XDSM 규약에 의해 정해진 바와 같은 지역 정보를 포함한다. 바람직하게, DMAPI 확장 데이터는 한 실시예에서 .DMATTR이라 불리는 DMAPI 확장 데이터 파일(60)에 저장된다. DMAPI 확장 데이터 파일(60)은 전단(12)에 저장되었으나 후단(14)에 저장되는 것도 가능한 단일 파일 또는 몇몇의 연결된 파일들일 수 있다. 전단(12)의 저장은 메모리에서의 캐싱과 같이 보다 빠른 액세스를 제공한다. 도 3은 파일시스템(16)의 아이노드들(62)과 DMAPI 확장 데이터 파일(60) 사이의 논리적 관계들을 도시한다. 요소들이 함께 그룹지어져 도시되었으나, 이는 디스크상의 그들의 물리적인 위치들을 반영하기 위해 필요하지 않음이 이해되어야 한다. DMAPI 확장 데이터 파일(60)은 도 3에 도시된 바와 같이 아이노드 숫자에 의해 인덱스된, 확장된 속성들 및 지역들의 테이블로 수행될 수 있다. 다른 정렬은도 4에 도시된 바와 같이 그 자신의 확장 블럭(64)으로 향하는 각 아이노드(62)를 가질 수 있다. .DMATTR 파일(60)에 DMAPI 정보를 저장하는 것은 그의 아이노드(62)와 DMAPI 확장 블럭(64)를 판독하지 않고도 판독될 파일에 대하여 DMAPI 정보를 허용하며, 이는 많은 파일들이 세밀하게 조사되는 경우 유익하다. 이러한 정보는 어떤 아이노드 정보가 저장되는가와 유사하게, 파일시스템(16)의 부분으로서 저장될 수 있다.
확장된 속성들은 파일이 이동되었는지, 소거되었는지와 같은 정보의 트랙과, 디렉토리 경로, 객체 ID 등의 형태로 후단(14) 상의 컨테이너 파일(76)로의 링크를 유지하기 위해 사용된다. 지역 정보는 파티션의 데이터가 지역적으로 존재하는지, 데이터가 소거되었는지 및 이동할 필요가 있는지와, 로컬 파일에 대응하는 데이터의 위치와 같은 파일의 파티션들에 대한 정보를 포함한다. 플래그들이 사용될 수 있으며, 로컬 파일의 데이터의 위치는 오프셋 및 길이에 대한 정보에 의해 나타내질 수 있다. 지역 정보는 데이터가 파일의 매핑된 지역에 액세스되거나 바뀔 때 생성되는 이벤트들의 세트를 규정하는 필드;예를 들면, dm_region_read, dm_region_write, dm_region_truncate를 포함할 수 있다. 데이터가 존재하는지, 또는 소거되었는지 및 다시 이동할 필요가 있는지를 나타내기 위해 플래그들이 설정될 수 있다. 파티션들이 동적으로 크기가 규정되면, 파티션의 크기에 대한 정보가 유지될 수 있다. 지역 정보가 데이터 위치의 트랙을 유지하는데 사용되므로, 파일을 매핑하는 지역들의 숫자는 데이터가 액세스될 때 증가할 수 있다.
파일(72)이 후단(14)으로 이동될 때, 이는 도 5에 도시된 바와 같이 파티션들(70)로 나뉘어진다. 파티션(70)의 크기는 고정될 수 있으며, 또는 동적으로 변할 수 있다. 고정된 파티션들은 구성에 의해 정의된 파티션 크기 또는 시스템 파일에 저장된 가변 환경을 가질 수 있다. 파티션 크기는 파일시스템 속성들, 파일들의 크기, 및 데이터 액세스의 패턴에 따라 선택될 수 있다. 파티션 크기가 커질수록 보다 큰 잠복, 대역폭 사용, 및 버저닝을 위해 후단(14)에 사용된 보다 큰 공간을 초래하기 때문에, 파티션 크기는 너무 커서는 안된다. 이와 달리, 너무 작은 파티션 크기는 관리해야 할 파티션들이 많아지므로 관리 요청들을 증가시킨다. 큰 데이터베이스들에 대하여, 100 메가바이트(MB)의 파티션 크기가 사용될 수 있다. 따라서, 예를 들면 2GB파일이 후단(14)에 대하여 20개의 100MB 파티션들로 나뉘어질 것이다. 한 구성에서, 시스템은 오라클 데이터베이스에 대해 사용되며, 후단(14)에 대하여 9840의 테이프들을 갖고, 128MB 크기의 16개의 파티션들을 갖는다. 파티션 크기에 영향을 주는 일부 인자들은 데이터를 필요로 하는 어플리케이션의 액세스 패턴들, 후단(14)과 전단(12) 간의 데이터 전송 속도, 데이터 전송을 위해 후단(14)에 있는 저장 미디어의 속도, 및 후단(14) 미디어의 잠복이다. 보다 느린 위치 시간(테이프(30)와 같은)을 갖는 후단 미디어는 큰 파티션 크기들을 위하여 작용할 것이다.
파일(72)을 파티셔닝하는 것에 의해, 시스템은 보다 작은 부분들(70)로 데이터를 이동시킬 수 있다. 어플리케이션이 2GB 파일로부터 단지 데이터의 작은 부분들로 데이터 액세스를 요청한다면, 그 데이터를 포함하는 단지 특정한 100MB 파티션만이 그가 로컬 파일시스템 상에 존재하지 않을 때 액세스를 위해 검색될 필요가있을 것이다. 이는 데이터를 이동시키기 위해 요청되는 시간이 매우 작아지므로 잠복을 감소시키며, 이동되는 데이터의 보다 작은 양 때문에 대역폭 사용을 감소시킨다. 유사하게, 단지 데이터 파일(72)의 작은 부분만이 그 다음에 변경되면, 단지 데이터의 변경된 부분들을 포함하는 파티션들(70)이 후단(14)으로 이동될 필요가 있을 것이다.
도 6에 도시된 바와 같이, 제 1 컴퓨터 시스템이 구성되어 동작되며, 3개의 데몬들이 있다: 이벤트 데몬 dxdbmigd(80), 이동 데몬 dxdbmigwatch(82), 및 소거 데몬 dxdbpurgewatch(84). 연결되는 단지 하나의 데몬을 포함하여 데몬들의 임의의 개수가 사용될 수 있으며, 데몬들과 다른 접근들이 사용될 수 있다. 예를 들어, 윈도우즈 시스템은 시스템 에이전트들과 서비스들을 사용할 수 있다. 이벤트 데몬(80)은 파일 데이터가 액세스될 때 트랩된다. 요청된 데이터가 전단(12) 상의 로컬 파일시스템(16) 상에 존재하지 않으면, 이벤트 데몬(80)은 후단(14)으로부터 로컬 파일시스템(16)으로 데이터를 복제하며, 이후 데이터 액세스가 일어난다. 이동 데몬(82)은 그의 데이터가 전단(12)으로부터 후단(14)으로 이동될 필요가 있는 파일들을 찾는다. 그의 데이터가 이동될 필요가 있는 파일들을 한번 식별하면, 이는 전단(12)으로부터 후단(14)으로 데이터를 복제한다. 소거 데몬(84)은 그의 데이터가 더이상 로컬 파일시스템(16)에 존재할 필요가 없는 파일들을 찾으며, 필요없는 데이터를 삭제한다. 여기서 설명된 이동 및 소거 지원자들에 대한 효율적인 검색이 작은 비용으로 이동 및 소거 지원자들을 찾는 것을 허용하므로 이동 및 소거 데몬들(82 및 84) 모두 5분 간격들과 같이 주기적으로 수행되도록 구성될 수 있다.
도 8의 단계(100)를 참조하면, 이동 데몬(82;또는 연속되는 단일 데몬)이 파일이 이동할 필요가 있는지를 결정하기 위해 .DMATTR 파일(60)에 저장된 속성 정보를 사용하거나, 또는 여기서 설명된 바와 같이 확장 블럭들(64)에 저장된 속성 정보를 사용할 수 있다. 파일(72)이 전에 이동되지 않았다면, 고정된 크기이거나 동적으로 결정되는 파티션들(70)로 나눠진다. 파티션 크기는 데이터 액세스의 주파수, 얼마나 많은 인접 데이터가 액세스마다 판독되는가, 및 다른 액세스 패턴 정보와 같은 요인들에 기초하여 동적으로 결정될 수 있다. 이동 데몬(82)은 다양한 작업들을 조절하기 위해 다른 프로세스들을 분기한다. 신호기들, 파일 잠금들, 및 다른 방법들이 전이동 프로세싱, 데이터 이동 동안에 또는 파일의 이동동안 변화되었는지를 체크하는 동안(그렇다면, 현재의 이동은 실패하고 다음에 이동을 시도한다) 파일을 보호하기 위하여 사용될 수 있다.
이동 프로세스는 단계(102)에서 오직 파일을 잠그고, 단계(104)에서 속성 및 지역 정보를 판독하며, 단계(106)에서 파일이 이동될 필요가 있는지를 결정한다. 이동이 필요하지 않으면, 단계(108)에서 잠금이 해제된다. 그렇지 않다면, 단계(110)에서 지역 정보, 파일 크기 및 파티션 크기가 파일의 어떤 조각들이 이동될 필요가 있을 것인지를 결정하기 위하여 사용된다. 단계(112)에서 파일이 이전에 이동되었다면, 이전 이동들을 설명하는 정보를 포함하는 컨테이너 파일(76)이 있을 것이며, 이 파일이 파일에 대한 새로운 버전 숫자를 결정하기 위해 판독될 것이다. 파일이 전혀 이동되지 않았으면, 이러한 버전 숫자는 1로 가정된다. 새로운 데이터 또는 마지막 이동으로부터 대체된 데이터만이 후단(14)으로 이동될 수 있다.단계(114)에서 데이터는 파티션 크기에 따라 파티션되며, 이는 고정되거나 동적일 수 있다. 단계(116)에서 잠금이 해제되면, 따라서 파일을 이용하는 다른 프로세싱이 이동이 일어나는 동안 진행될 수 있다.
단계(120)에서, 이동되어야할 필요가 있는 파티션들(70)이 전단(12) 상에서 파일 액세스 시간들을 바꾸지 않고 후단(14)으로 복제된다. 이러한 이동 중에 에러가 발생하면, 단계(124)에서 이동 시도는 다음 이동 수행중에 다시 시도될 것이다. 이동이 성공적이면, 파일은 단계(126)에서 다시 잠기고, 단계(128)에서 파일 속성들 및 지역 정보는 다시 판독되어 파일이 데이터 움직임 동안 변화되었는지를 결정하기 위해 사용된다. 단계(124)에서, 파일이 변경되었다면, 단계(132)에서 잠금이 해제되고, 데이터가 일치하지 않으므로 이동은 실패하며, 후에 다시 시도하게 될 것이다. 단계(134)에서, 데이터 움직임 동안 파일로 만들어진 변화들이 없다면, 파일 정보는 파일이 성공적으로 이동되었음을 보여주기 위하여 업데이트된다. 확장된 속성들(DMAPI/XDSM) 및 지역 정보가 업데이트 되며, 경로이름, 크기, 소유권, 허용등, 및 다른 파일 속성들을 포함하는 파일에 대한 정보가 데이터 파일과 연관되는, *.cont 파일로 불리는 컨테이너 파일(76)로 기록된다. 버저닝 정보를 포함하여, 후단(14)에 저장된 파티션들에 대한 정보가 또한 컨테이너 파일(76)로 기록된다.
파일 상태는 일관성 상태를 보장하기 위하여 특정한 순서로 업데이트되어야 한다. 도 9의 단계(140)에서, 속성들은 파일이 소거되지 않았다는 것을 보여주기 위해 설정되며, 파일의 파티션 크기가 설정되고(필요하다면), 후단(14)의 위치가 설정되며, 정보가 파일 시스템(16)으로 통하여 단계(142)에서 기록된다. 이는 크래쉬의 경우에 새로운 상태로 앞으로 감기 또는 이전 상태로 뒤로 감기를 통하여 액세스되는 파일을 사용할 수 있는 충분한 정보가 파일에 존재한다는 것을 보장한다. *.cont 파일(76)의 새로운 버전이 단계(144)에서 *.cont 파일(76)이 파일의 오래된 상태 또는 새로운 상태를 포함하는 것을 보장하는 방법과 같이 기록된다. 단계(146)에서, 지역 정보는 DMAPI/XDSM 인터페이스를 통해 모든 파일 데이터가 후단(14)으로 성공적으로 이동되었음을 보여주기 위해 기록되고, 이후 단계(148)에서 .DMATTR 파일(60)이 동기화된다(밖의 정보가 디스크로 기록된다). 이것이 실패하면, 오래된 지역 정보는 여전히 유효하며, 따라서 다른 이동들이 다른 이동 시도들 동안 진행될 수 있다. 단계(150)에서 DMAPI/XDSM 속성들은 파일이 이동되었음을 마크하기 위해 업데이트된다. 이는 데이터가 후단(14)에 저장되는 것과, 이동 횟수를 보여주고, 이동됨에 따라 파일을 마크하기 위한 메타데이터를 설정하는 것을 포함한다. 메타데이터는 임의의 시간에서의 실패가 항상 일관된 상태에 파일을 남길 것이라는 이러한 방법으로 기록된다.
이는 실패의 이벤트에서 데이터가 변조되는 것으로부터 지키며, 혹시 약한 파일 데이터로의 액세스를 허용하는 상태로부터 파일을 보호한다. 지역 정보, 파일 메타데이터, 및 후단 버전 파일(*.cont 파일)에 저장된 상태는 소거한 후 필요할 때 파일을 재저장하거나 또는 지역적으로 관리된 디스크들이 분실되었거나 파일이 의도치않게 소거되었을 때 파일을 복구하기에 충분하다.
각 데이터 파일(72)은 그에 연관된 *.cont 파일(76)을 가질 수 있으나, 단일 컨테이너 파일의 다중 데이터 파일들을 위하여 *.cont 정보를 저장하는 것이 또한가능한데, 이는 데이터 파일의 이름 또는 객체 ID와 같은 다른 식별자에 의해 인덱스될 수 있다. 파일이 전에 이동되었다면, .DMATTR 파일(60)의 지역 정보가 파티션들이 소거되었음을, 즉 마지막 이동 이후 변경되었음을 결정하기 위하여 체크된다. 변경된 파티션들은 후단(14)으로 복제되며, 버전될 수 있고, 따라서 그들은 파티션들의 존재하는 사본들을 덮어쓸 수 없다. *.cont 파일(76)은 도 7에 도시된 바와 같이, 버전들의 트랙을 유지한다.
예를 들어, *.cont 파일(76)이 파티션의 버전(54)이 이미 후단(14)에 존재하고 있음을 나타낸다면, 변경된 파티션은 버전(54)을 바꾸거나 덮어쓰지 않고 버전(55)으로서 기록되고, *.cont 파일(76)은 동작을 반영하기 위하여 업데이트된다. 결과적으로, *.cont 파일은 파일 변화들의 트랙을 보존한다. *.cont 파일(76)은 효율적으로 스냅샷들을 유지하기 때문에, 제 시간에 임의의 지점에 존재되는 것으로서 연관된 파일을 회복시킬 필요성이 있는 정보를 갖는데; 즉, 임의의 특정 데이터 및 시간에서, 데이터 파일(72)이 유사한 것을 결정하는 것이 가능하다. 이동이 완성된 후(예를 들면, 이동된 데이터가 성공적으로 테이프로 기록된 때), 새롭게 이동된 파티션들에 대한 정보가 컨테이너 파일(76)에 저장된다. .DMATTR 파일(60)은 파일이 이동되었음을 나타내기 위해 파일이 처음으로 이동되었다면 후단(14)의 컨테이너 파일로의 링크와 함께 업데이트된다. 변경된 파티션들이 이동되었다면, 지역 정보는 파티션들이 더이상 소거되지 않으며 따라서 더이상 이동될 필요가 없음을 나타내기 위해 업데이트된다. 따라서, 전단(12) 상의 파일과 후단(14) 상의 그의 파티션들 사이의 링크들이 존재하며, .DMATTR 파일(60)과 *.cont파일(76)에 저장된다.
이동을 설명하기 위하여, 전에 이동된 적이 없는 ABC라고 불리는 전단(12) 상의 데이터 파일이 있다면, 단일한 경로이름이 후단(14)의 그를 위해 선택될 것이며, 이를 123이라 부른다. ABC 파일은 객체 관리 시스템 구성에 의해 결정된 파티션 크기를 갖는 파티션들로 나뉘어진다. 이러한 파티션들은 단일 경로이름, 파티션 번호, 및 버전 번호; 예를 들면, 123.partition1.version1, 123.partition2.version1, 에서 123.partitionN.version1까지를 나타내는 개별적인 파일들로서 후단(14)으로 복제된다. 이후 123.cont 파일이 기록되는데, 이는 로컬 파일시스템(16) 상의 파일이름, 파티션의 이름들, 및 파티션들의 버전들을 포함하여 이동 동안 무엇이 이루어지는지를 설명한다. 부가적인 정보가 .DMATTR 파일(60)의 로컬 파일시스템(16) 또는 파일시스템의 다른 공간에 기록된다. 이것이 다른 장소에 위치될 수 있으나, 로컬 파일시스템(16) 상의 배치는 액세스를 빠르게 한다. .DMATTR 파일(60)이 또한 전단(12) 상의 메모리에 캐시될 수 있으나, 이는 크래쉬의 이벤트에서 일관성을 확실히 하기 위해 주기적으로 디스크 상의 파일을 갖는 캐시된 파일을 동기화할 필요가 있다. 기록된 속성들은 파일 ABC가 파일 123로 이동되었다는 알림과, 이동이 발생한 때, 파일이 이동한 곳을 나타내는 타임 스탬프, 및 파일이 후단(14)으로 성공적으로 이동되었다는 알림을 포함한다.
도 10을 참조하면, 소거 데몬(84; 또는 연결된 데몬)이 이동되었으나(이동의 필요가 없으나) 소거되지 않은 파일들을 .DMATTR 파일(60)에 저장된 속성 정보를 사용하여 단계(200)에서 식별한다. 소거 데몬(84)은 자유 공간이 로컬파일시스템(16) 상에 필요하다는 것을 결정한 후 이를 수행할 수 있으며, 충분한 자유 공간이 사용가능해지면 소거를 정지한다. 단계(202)에서, 소거 지원자들이 소거 정책에 따라 결과적으로 분류되고, 이는 사용자-구성가능하게될 수 있다. 다른 정책들이 선택될 수 있으나, 파일시스템(16) 상에 저장된 데이터의 속성들, 파일시스템(16) 상의 데이터를 이용하는 어플리케이션들, 및 데이터 액세스 패턴들에 기초하여 LRU(Least Recently Used)가 소거 정책으로 사용될 수 있다. 정책들은 파일 레벨 또는 파티션 레벨에서 적용될 수 있다. 소거 데몬(84)은 파일에 있는 파티션들의 마지막 액세스의 시간, 액세스의 주기 등을 결정하기 위하여 확장된 속성들에 있는 정보를 사용할 수 있다. 소거 정책에 기초하여, 소거 데몬(84)은 소거될 파티션들을 식별한다. 예를 들어, 소거 데몬(84)은 LRU 알고리즘을 사용하여 파일들을 분류하며 이후 소거를 위해 선택된 파일들 내로 임의의 시간보다 오래된 마지막 액세스 데이터들을 갖는 파티션들을 선택한다.
파일 잠금들, 신호기들 또는 다른 방법들이 데이터 손실 또는 변조를 방지하기 위해 사용된다. 단계(204)에서 소거 프로세스가 소거 지원자들의 리스트를 편집한 후에, 파일이 소거를 위해 선택되고, 파일은 잠궈진다. 단계(206)에서 속성들 및 지역 정보가 판독되고, 단계(208)에서 파일이 리스트가 편집된 후에 액세스되었는지를; 즉, 이것이 여전히 소거 지원자인지를 나타내도록 체크된다. 그렇지 않다면, 파일은 소거되지 않고 단계(210)에서 잠금은 해제된다. 파일이 여전히 소거 지원자이면, 파일 지역 정보는 전체 파일이 소거되었는지를 보이기 위해 단계(212)에서 설정될 것이다. 소거 데몬(84)은 파일로부터 선택된 파티션들에 대응하는 로컬데이터를 단계(214)에서 삭제한다. DMAPI를 따르는 시스템에서, 소거 데몬(84)은 로컬 데이터를 삭제하기 위하여 dm_punch_hole()를 사용한다. 운영 시스템의 능력들에 의존하여, 로컬 파일(72)은 대부분의 운영 시스템들에서 공통인 것처럼 오프셋으로부터 파일의 마지막으로 절단될 수 있고, 또는 구멍이 AIX에 의해 제공되는 바와 같이 파일의 중간으로 뚫릴 수 있다. 삭제되는 데이터는 파일의 시작에 있을 것이고, 이 경우 스터브(74)가 남는다(도 5에 도시됨).
로컬 데이터가 삭제된 후에, 속성들 및 지역 정보가 데이터의 소거를 반영하기 위해 단계(216)에서 업데이트된다. 지역 정보는 실질적으로 소거된 데이터가 더이상 로컬 파일시스템(16) 상에 존재하지 않음을 나타내며, 전체 파일이 소거되면(스터브(74) 제외) 속성들은 파일이 소거되었다는 것을 나타낸다. 파일의 임의의 부분이 남으면, 파일은 계속하여 소거 지원자가 된다. 파일 메타데이터가 업데이트된 후에, 단계(218)에서 잠금이 파일로부터 삭제된다. 이는 시스템의 이벤트에 있는 파일을 크래쉬 또는 다른 실패로부터 보호한다. 파일이 아직까지 소거된 것으로 마크되지 않았으므로, 이는 소거 지원자로 여전히 보여질 것이나, 파일의 모든 파티션들은 그들이 소거 동작 전에 소거된 것으로 마크되므로 액세스되었을 때 다시 불려지는 원인이 될 것이다. 일부 데이터는 여전히 로컬에 남아있을 것이나, 소거 동작 동안 에러가 발생되면, 무엇이 소거되었는지를 말하는 것이 불가능해 질 수 있다. 따라서, 소거 프로세스는 모든 파티션들을 소거된 것으로 마크하고, 소거가 완성된 후에 실패를 업데이트하며, 파일은 소거 지원자로 여전히 나타날 것이나, 그의 데이터의 일부 또는 전부가 로컬 파일로부터 이미 소거되었을 것이다. 설명된시퀀스는 데이터 변조를 방지하기 위해 의도되나, 다른 접근들이 지역 정보, 파일 데이터 이전만큼 가능하고, 파일 메타데이터 업데이트들이 일관성을 보장하기 위해 동기화된다. 이는 시간이 지난 데이터가 액세스될 수 있는 비일관성 상태에 파일이 남겨지는 것을 피하게 된다.
파일들(72)은 전형적으로 헤더와 다른 주기적으로 사용된 정보를 어플리케이션들에 의해 스캔되는 파일의 시작에 포함하며, 파일을 소거할 때 적절히 남은 스터브(74)는 데이터 액세스 시간을 빠르게 한다. 사용자는 주기적으로 액세스되는 파일(72)의 시작에 정보가 있는지 및 얼마나 많은 데이터가 파일(72)의 시작에 액세스되는지와 같은 정보에 기초하여 스터브(74)의 길이를 정의할 수 있다. 예를 들어, 오라클 데이터베이스는 오라클이 모든 오라클 데이터 파일을 액세스할 때 오라클이 주기적으로 데이터 파일들의 시작 시간과 같은 이러한 데이터를 액세스하기 때문에 적어도 128KB의 스터브 크기를 요구할 수 있다. 스터브 데이터가 존재하지 않으면, 오라클은 데이터가 후단(14)으로부터 회복될 때까지 칸막이를 만들 것이며, 이는 많은 테이프 양들(또는 CD들과 같은 다른 저장 미디어의 양들)을 의미한다. 스터브들(74)은 파일들 또는 객체들로서 후단(14)에 버전되고 저장될 수 있다.
도 11에서, 단계(300)에서 이벤트 데몬(80) 또는 이어지는 데몬은 데이터 액세스 이벤트들을 트랩하고, 데이터 액세스 활성화의 트랙을 유지한다. 데이터 액세스 요청이 발생되면, 단계(302)에서 프로세싱은 데이터 액세스가 판독인지 또는 파일을 변경시킬(기록 또는 절단과 같은) 액세스인지에 의존한다. 데이터 액세스가 판독이면, 단계(304)에서, .DMATTR 파일(60)의 지역 정보는 요청된 데이터가 로컬파일시스템(16)에 존재하는지; 즉, 지역 정보가 액세스되는 파일의 부분에 대응하는 파티션이 존재하는 것으로 마크되었는지를 나타내는지 결정하기 위해 체크된다. 단계(306)에서, 요청된 데이터가 존재하면, 단계(308)에서 액세스 요청이 파일시스템으로 통과되고, 단계(324)에서 파일 속성들 및 지역 정보가 액세스를 반영하기 위하여 업데이트될 수 있다. 요청된 데이터가 존재하지 않으면, 이벤트 데몬(80) 또는 이벤트 데몬(80)으로부터 이벤트를 수신하는 다른 프로세스가 단계(312)에서 프로세싱이 필요한지를 결정하기 위하여 단계(310)에서 파일을 잠그고 지역 및 속성 정보를 체크한다. 단계(314)에서, 요청되는 프로세싱이 없으면 이전의 이벤트 프로세싱 때문에 잠금이 해제되고, 이벤트에 대한 응답이 생성되며, 이는 I/O 요청을 완성하기 위해 대기하는 프로세스를 깨울 것이다. 프로세싱이 요청되면, 단계(316)에서 파일은 삭제가능하다고 마크되며, 메타데이터가 동기화되고, 이벤트 프로세싱을 완성해야 할 필요가 있는 파일 데이터가 결정되며, 후단(14) 파일들의 위치가 결정되고, *.cont 파일이 판독되며, 파일 상의 잠금이 해제된다.
데이터 움직임 동안 파일이 잠궈지지 않으면, 로컬 파일시스템(16) 상에 미리 위치한 데이터의 프로세싱을 허용한다. 단계(318)에서 필요한 파티션들은 후단(14)으로부터 판독되며, 전단(12) 상의 로컬 파일시스템(16)으로 기록된다. 단계(320)에서, 파일은 다시 폐쇄적으로 잠궈지며; 단계(322)에서 지역 및 속성 정보가 일관성있는 방법으로 업데이트되고, 잠금이 해제된다. 응답이 대기 프로세스로 보내지고, 단계(314)에서 그의 판독 요청을 완성하도록 깨운다. 이러한 데이터로의 다른 액세스들은 데이터가 다시 소거되지 않으면 재저장 이벤트를 발생시키지 않을것이다.
데이터 액세스 패턴들에 기초하여, 일부 예언적인 파티션 검색이 사용될 수 있다; 즉, 데이터 액세스 패턴들에 대한 정보가 기록될 수 있으며, 특정 파티션으로의 액세스가 주기적으로 다른 파티션으로의 액세스를 야기하면, 그 패터닝은 앞서 검색될 수 있다.
단계(324)에서, 이벤트 데몬(80)이 데이터 액세스 이벤트를 조절한 후, .DMATTR 파일(60)이 소거 정책이 파티션 레벨에서 데이터 액세스 정보를 사용할 때와 같이 액세스된 파일의 부분에 대응하는 파티션(들)에 대한 액세스 횟수를 나타내기 위하여 업데이트될 수 있다. 시스템은 파일 액세스의 횟수를 나타내기 위하여 파일 속성들을 업데이트한다.
액세스 요청이 기록이었다면, 단계(326)에서 지역들은 액세스 횟수들을 업데이트하기 위해 변경될 것이고, 데이터에 대응하는 파티션들은 소거되었다고 마킹될 것이다(또한 따라서 이동되어야 할 필요가 있다). 이러한 경우에, 파일은 폐쇄적으로 잠궈지고, 단계(328)에서 이벤트는 프로세싱이 필요한지를 결정하기 위하여 조사된다. 그렇지 않다면, 잠금이 해제되고 이벤트는 단계(330)에서 종료 프로세싱에 응답한다. 프로세싱이 필요하면 단계(332)에서 메타데이터가 파일이 소거 지원자이며 또한 데이터가 변경될 것에 대한 것이므로 이동 소거자가 되는 것임을 나타내기 위하여 업데이트된다. 파일 메타데이터, 지역 정보 및 *.cont 파일이 파일의 상태를 결정하기 위하여 판독된다. 이벤트를 생성한 파일의 상태가 결정되고, 지역 정보가 데이터가 지역적으로 존재하지 않는다는 것을 나타내면, 단계(336)에서 잠금이 해제되고, 단계(338)에서 위에서 설명된 프로세스를 판독하기 위하여 유사한 방법으로 데이터가 이동된다. 데이터가 이미 존재하면, 후단(14)으로부터 데이터가 이동될 필요가 없다. 단계(340)에서, 데이터가 다시 불려진 후, 파일은 다시 잠궈지고, 파일 메타데이터 및 지역 정보는 파일의 일부 데이터가 이동될 필요가 있음을 나타내기 위하여 업데이트되고, 파일의 부분들이 변경된다. 폐쇄적인 잠금이 해제되고 단계(342)에서 대기 프로세스로 응답이 보내진다.
이벤트 조종을 설명하기 위하여, 구성에 의해 정의된 길이를 갖는 스터브(74)를 제외하고 모두 이동되고 소거된 N개의 파티션들을 갖는 파일 ABC에 대하여, 파티션(77)에 있는 데이터를 요청한 데이터 액세스가 이벤트 데몬(80)에 의해 트랩될 것이다. 이는 도 12에 도시된다. 데몬은 파티션(77)의 데이터가 로컬 파일시스템(16) 상에 존재하지 않는다는 것을 나타내며, .DMATTR 파일(60)을 체크하고, 대응하는 컨테이너 파일이 후단(14) 상의 123.cont임을 결정한다. 대응하는 후단 파일 123의 파티션(77)에 대한 요청이 발생될 것이다. 123.cont는 버전(55)이 파일 123의 파티션(77)의 가장 마지막 버전임을 나타내며, 따라서 123.partition77.version55가 전단(12)으로 검색될 것이다. 파티션을 디스크에 다시 저장하고 난 후에, 속성들 및 지역 정보가 업데이트된다.
모든 파일들 보다 파일들의 세그먼트들을 이동시키고 검색하는 것에 의해, 시스템은 크고 시간소모적인 파일 전송들을 피한다. 예를 들어, 데이터베이스 파일들은 기가바이트로 측정되는 매우 큰 경향이 있다. 이동 및 검색동안, 특히 오라클과 같은 데이터베이스 어플리케이션이 테이블의 단지 매우 작은 부분(예를 들면,열들)을 액세스할 때 모든 파일을 앞뒤로 이동시키는 것은 실용적이지 않다. 예를 들면, 오라클은 전체 파일을 한번에 스캔하지 않는다. 그보다, 하나의 데이터베이스 파일을 통해 부분적으로 스캔하고, 다른 파일로 진행하며, 마지막으로 제 1 파일로 돌아와 다른 데이터를 스캔할 때까지 계속한다. 모든 파일 검색을 사용하는 것은 시스템 고장 및 보다 긴 검색 시간들을 야기한다.
시스템은 또한 이들이 여기서 기술된 파일들의 파티셔닝 및 파티션들의 관리를 수행하기 위해 요청되지 않더라도 이동 및 소거 지원자들에 대해 효율적으로 검색하고 그들의 경로이름들을 얻기 위해 구성된다. 도 14에 도시된 바와 같이, 파일이름들에 대한 이름공간을 검색하고 각 파일에 대하여 아이노드 및 확장된 속성들을 찾기 위한 한가지 접근 방법이 있다. 일부 구성들에서, 아이노드는 확장된 속성들을 포함하고, 제 2 검색을 요청하며, 디스크 액세스에 대응하는 확장 블럭으로의 포인터를 포함한다. 도들 13 및 14에 도시된 보다 효율적인 접근에서, 단계(350)에서 시스템은 파일이름들, 아이노드 숫자들, 및 확장된 속성들에 대하여 DMAPI 확장 데이터 파일(60; .DMATTR 파일)을 검색한다. 시스템은 또한 다른 파일 또는 몇몇의 파일들을 사용하도록 구성될 수 있다. 이러한 방법으로, 단계(352)에서 시스템은 이름공간의 모든 파일에 대하여 아이노드 및 가능하게는 또한 확장된 블럭을 살펴보지 않고 어떤 파일들이 이동 또는 소거 지원자들인지를 빠르게 결정할 수 있다. 지원자에 대한 경로이름을 생성시키기 위하여, 그의 아이노드 숫자가 그의 경로이름을 찾기 위해 단계(354)에서 사용된다. 이는 아이노드들 및 경로이름들의 리스트에서 역조사로 수행될 수 있다. 리스트는 동일한 파일, .DMATTR, 또는 개별 파일또는 파일들의 그룹들에 테이블로서 저장될 수 있다. 이러한 구성으로, 시스템은 이동되었거나 소거된 것을 포함하는 모든 파일들에 대한 정보를 탐색하는 대신, 이동 및 소거 지원자들로서 식별되는 파일들에 대하여 단지 아이노드들만을 찾는다. 이는 실행 시간과 이동 및 삭제를 위해 요구되는 시스템 로드를 상당히 감소시킨다. 예를 들면, 어떤 파일들이 삭제를 요청하는가를 결정하는데 있어, 여기서 설명된 효율적인 검색을 사용하는 시스템은 이동 및 삭제 지원자들에 대하여 1분 미만의 시간동안 100만개의 파일들을 갖는 파일시스템을 검색할 수 있다. 단지 하나의 이동 지원자를 갖는 100만개의 파일들을 갖는 솔라리스(Solaris) 기계는 하나의 파일을 찾는데 10초를 취하는데 반하여, 이전의 이름공간 검색으로는 20분이 걸린다. 이러한 접근은 리눅스 및 솔라리스와 같은 유닉스를 선호하는 운영 시스템들을 사용하는 NFS-형 파일시스템들, XFS, UFS, Veritas, 및 유사한 파일 시스템들에 사용될 수 있으나, 이는 다른 운영 시스템들 및 파일시스템들로도 확장될 수 있다.
도 15 및 도 16에 도시된, 여기서 설명된 컨테이너 파일들(76)의 사용은 사용가능하게 만들어지는 하나의 컴퓨터 시스템(기계 A)으로부터 먼저 데이터의 전체를 복제하지 않고도 다른 컴퓨터 시스템(기계 B)으로 데이터를 사용할 수 있게 한다(하나의 파일시스템의 콘텐츠를 다른 것으로 복제하는 것은 종종 매우 시간소모적인 공정이다). 단계(400)에서 기계 B는 후단(14) 상의 기계 A의 컨테이너 파일들을 사용하도록 구성될 수 있다. 각 컨테이너 파일(76)은 크기, 소유권, 허가들 및 경로와 같은 파일 속성들에 대한 정보를 포함하며, 기계 B는 이것의 로컬 파일시스템 상에 새로운 파일을 생성하도록 사용할 수 있다. 기계 B가 단계(402)에서*.cont 파일을 판독하고, 단계(404)에서 새로운 파일이 생성되며, 새로운 파일의 크기는 단계(406)에서 *.cont 파일(76)에 적당한 크기로 설정되고, 단계(408)에서 배치된 공간이 자유로워져서(파일이 소거되는 경우에 따라), 기계 B의 파일시스템 상에 스터브(stub) 파일이 생성된다. 단계(410)에서 .DMATTR 파일(60) 또는 다른 확장 데이터 블럭 또는 파일이 생성되고, 속성들 및 지역들이 설정된다. 기계 B에 유일한 컨테이너(*.cont) 파일들은 단계(412)에서 후단(14)에 기록되나, 이는 기계 B가 데이터를 변경하고 이를 후단(14)으로 이동시킬 때 요청 기반으로 수행될 수 있다. 기계 B가 동작함에 따라, 데이터 액세스 요청들은 일반적으로 요청된 데이터가 기계 B의 로컬 파일시스템 상에 존재하지 않는다는 결정에 이를 것이며, 요청된 파티션들은 단계(414)에서 후단(14)으로부터 기계 B의 로컬 파일시스템으로 복제될 것이다. 파일 속성들 및 지역 정보는 설명되었던 동일한 방법으로 기계 B 상에서 업데이트될 것이다. 기계 B가 데이터를 변경하면, 단계(416)에서 변경된 파티션들은(도 16에 B의 변경된 데이터로 도시됨) 후단(14)에 기록될 것이고, 변경들에 대한 정보는 기계 B의 컨테이너 파일들에 저장된다(*.cont로 도시됨). 단계(418)에서 기계 A는 그가 가진 파티션들을 계속하여 기록하며 그의 변화들에 대한 정보를 그 자신의 컨테이너 파일들(76)에 저장한다. 각 컴퓨터 시스템은 그 자신의 변경된 파티션들을 후단(14)에 기록한다. 각 컴퓨터 시스템은 그 자신의 컨테이너 파일들을 이용하며, 따라서 그 자신의 데이터의 버전을 가진다.
본 발명이 많은 다른 사용자들에 대하여 유익할 것이라는 것이 명백하지만, 앞선 설명 및 실시예들은 컴퓨터 시스템들의 객체 관리의 효율성 증가의 면에서 본발명의 유용성을 증명한다. 본 발명은 데이터베이스들, 비디오, 오디오 및 파일의 부분이 액세스될 수 있고 파일의 모든 데이터를 액세스할 필요가 없이 적절한 임의의 어플리케이션에 특정 값을 가진다. 명백하게 하기 위하여, 본 명세서의 프로세스들 및 방법들은 특정 흐름으로 도시되었으나, 다른 시퀀스들이 가능하며 일부는 본 발명의 정신으로부터 벗어남이 없이 동시에 수행될 수 있다는 것이 이해되어야 한다. 부가적으로, 단계들은 다시 세분되거나 조합될 수 있다. 여기에 설명된 바와 같이, 본 발명에 따라 기록된 소프트웨어는 메모리 또는 CD-ROM과 같은 컴퓨터 판독가능한 매체의 일부 형태로 저장될 수 있거나, 또는 네트워크를 통해 전송될 수 있고, 프로세서에 의해 수행될 수 있다.
본 명세서에 인용된 모든 참조들은 참조에 의해 포함되는 것으로 의도된다. 본 발명이 특정 실시예들의 형태로 위에서 설명되었지만, 본 발명에 대한 대안들 및 변경들이 당업자에게 의심없이 명백하게 될 것이라는 것과 첨부된 청구항들의 범위 및 동등물들 내로 실행될 수 있다는 것이 예상된다. 병렬의 다수의 컴퓨터들을 사용하는 것 또는, 로드 공유 배열 또는 전체적으로 다수의 컴퓨터들을 통해 작업들을 분배하는 것과 같은 하나보다 많은 컴퓨터가 사용될 수 있으며, 이들은 객체 관리 시스템의 기능들을 수행한다;즉, 이들은 단일 컴퓨터를 대신한다. 위에서 설명된 다양한 기능들이 단일 프로세스 또는 프로세스들의 그룹들에 의해 단일 컴퓨터 또는 몇몇의 컴퓨터들상에 분배되어 수행될 수 있다. 프로세스들은 임의의 작업들을 조절하기 위해 다른 프로세스들을 불러올 수 있다. 본 실시예들은 예시의 것이며 제한되는 것으로 인식되지 않고, 본 발명은 여기서 주어진 상세한 설명들로제한되지 않는다. 따라서 명세서 및 다음의 청구항들이 본 발명의 진정한 정신과 범위 내에 위치하는 모든 이러한 변화들 및 변경들을 포함하는 것으로 설명되도록 의도된다.

Claims (13)

  1. 컴퓨터 시스템을 포함하는 객체 관리 시스템에 있어서, 상기 컴퓨터 시스템은, 객체를 저장하고, 상기 객체를 파티션들로 분할하고, 파티션들을 선택하고, 상기 선택된 파티션들을 개별적으로 저장된 객체들로 저장하기 위해 저장 디바이스에 제공하도록 구성되는, 객체 관리 시스템.
  2. 제 1 항에 있어서,
    상기 컴퓨터 시스템은 상기 파티션들의 단지 일부를 선택하도록 구성되는, 객체 관리 시스템.
  3. 제 2 항에 있어서,
    상기 컴퓨터 시스템은 어떤 파티션들이 상기 저장 디바이스로 이동될 필요가 있는지를 결정하는 것에 의해 상기 파티션들을 선택하도록 구성되는, 객체 관리 시스템.
  4. 제 3 항에 있어서,
    상기 컴퓨터 시스템은 파티션이 변경되었는지를 결정하는 것에 의해 어떤 파티션들이 이동되어야 할 필요가 있는지를 결정하도록 구성되는, 객체 관리 시스템.
  5. 제 4 항에 있어서,
    상기 객체와 연관된 데이터 객체를 더 포함하고, 상기 데이터 객체는 파티션이 변경되었는지에 대한 정보를 포함하는, 객체 관리 시스템.
  6. 제 1 항에 있어서,
    상기 객체는 파일인, 객체 관리 시스템.
  7. 제 1 항에 있어서,
    상기 컴퓨터 시스템은 상기 저장 디바이스로부터 선택된 파티션을 검색하기 위해 또한 구성되는, 객체 관리 시스템.
  8. 제 7 항에 있어서,
    상기 컴퓨터 시스템은, 데이터 액세스 요청을 수신하고, 상기 데이터 액세스 요청을 사용하여 상기 저장 디바이스로부터 검색되는 상기 파티션을 선택하도록 또한 구성되는, 객체 관리 시스템.
  9. 제 8 항에 있어서,
    상기 객체와 연관된 데이터 객체를 더 포함하고, 상기 데이터 객체는 상기 파티션이 상기 컴퓨터 시스템에 존재하는지에 대한 정보를 포함하는, 객체 관리 시스템.
  10. 제 9 항에 있어서,
    상기 컴퓨터 시스템은, 상기 데이터 객체가 파티션이 상기 컴퓨터 시스템에 없다는 것을 지시할 경우, 상기 저장 디바이스로부터 검색될 상기 파티션을 선택하는, 객체 관리 시스템.
  11. 객체를 저장하기 위해 구성된 컴퓨터 시스템과 저장 디바이스를 포함하는 시스템에서 객체들을 관리하기 위한 방법에 있어서, 상기 객체를 파티션들로 분할하는 단계와, 파티션들을 선택하는 단계와, 상기 선택된 파티션을 저장하기 위해 상기 저장 디바이스로 제공하는 단계를 포함하는, 객체 관리 방법.
  12. 제 11 항에 있어서,
    데이터 액세스 요청을 수신하는 단계를 더 포함하고, 상기 저장 디바이스로부터 검색될 파티션을 선택하는 단계는 어떤 파티션을 선택하는지를 결정하기 위하여 상기 데이터 액세스 요청을 이용하는 단계를 포함하는, 객체 관리 방법.
  13. 객체를 저장하기 위해 구성된 컴퓨터 시스템과 저장 디바이스를 포함하는 시스템에서 객체들을 관리하기 위한 컴퓨터 프로그램 제품에 있어서, 상기 객체를 파티션들로 분할하고, 파티션들을 선택하고, 상기 선택된 파티션들을 상기 저장 디바이스에 제공하기 위해 내부에 구현된 기계 판독가능한 코드를 갖는 컴퓨터 사용가능한 매체를 포함하는, 객체 관리 컴퓨터 프로그램 제품.
KR10-2004-7004480A 2001-09-26 2002-09-20 대형 파일들의 효율적 관리 KR20040053142A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32457801P 2001-09-26 2001-09-26
US60/324,578 2001-09-26
PCT/US2002/031928 WO2003027909A1 (en) 2001-09-26 2002-09-20 Efficient mangement of large files

Publications (1)

Publication Number Publication Date
KR20040053142A true KR20040053142A (ko) 2004-06-23

Family

ID=23264218

Family Applications (3)

Application Number Title Priority Date Filing Date
KR10-2004-7004480A KR20040053142A (ko) 2001-09-26 2002-09-20 대형 파일들의 효율적 관리
KR1020047004501A KR100962055B1 (ko) 2001-09-26 2002-09-26 컴퓨터 시스템들간의 객체 공유
KR1020047004500A KR20050030883A (ko) 2001-09-26 2002-09-26 이송 및 소거 후보들에 대한 효율적인 탐색

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020047004501A KR100962055B1 (ko) 2001-09-26 2002-09-26 컴퓨터 시스템들간의 객체 공유
KR1020047004500A KR20050030883A (ko) 2001-09-26 2002-09-26 이송 및 소거 후보들에 대한 효율적인 탐색

Country Status (8)

Country Link
US (3) US8442957B2 (ko)
EP (3) EP1433086A4 (ko)
JP (3) JP2005512171A (ko)
KR (3) KR20040053142A (ko)
CN (3) CN1307580C (ko)
AT (1) ATE555445T1 (ko)
CA (3) CA2461025A1 (ko)
WO (3) WO2003027909A1 (ko)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392234B2 (en) 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
JP4168626B2 (ja) * 2001-12-06 2008-10-22 株式会社日立製作所 記憶装置間のファイル移行方法
JP3966459B2 (ja) * 2002-05-23 2007-08-29 株式会社日立製作所 ストレージ機器管理方法、システム、およびプログラム
US7562089B2 (en) * 2002-06-26 2009-07-14 Seagate Technology Llc Systems and methods for storing information to allow users to manage files
US7752226B1 (en) * 2002-12-20 2010-07-06 Symantec Operating Corporation Reverse pathname lookup by inode identifier
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
US7240080B2 (en) * 2003-07-30 2007-07-03 International Business Machines Corporation Method and apparatus for determining using least recently used protocol if one or more computer files should be written to one or more information storage media and synchronously providing one or more computer files between first and storage devices
US7181647B2 (en) 2003-10-15 2007-02-20 International Business Machines Corporation Error tracking method and system
US7509327B2 (en) * 2003-12-03 2009-03-24 Microsoft Corporation Business data migration using metadata
US7171532B2 (en) * 2004-08-30 2007-01-30 Hitachi, Ltd. Method and system for data lifecycle management in an external storage linkage environment
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7483929B2 (en) * 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
JP2006301854A (ja) * 2005-04-19 2006-11-02 Sony Corp データ処理方法、データ処理装置、プログラムおよびデータ処理システム
US7590799B2 (en) 2005-06-16 2009-09-15 Seagate Technology Llc OSD deterministic object fragmentation optimization in a disc drive
US7529903B2 (en) * 2005-07-05 2009-05-05 International Business Machines Corporation Systems and methods for memory migration
JP4704161B2 (ja) 2005-09-13 2011-06-15 株式会社日立製作所 ファイルシステムの構築方法
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
US8316008B1 (en) * 2006-04-14 2012-11-20 Mirapoint Software, Inc. Fast file attribute search
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
US9946791B1 (en) * 2006-11-21 2018-04-17 Google Llc Making modified content available
CA2714961A1 (en) * 2007-02-05 2008-08-14 Moonwalk Universal Pty Ltd Data management system
US8768895B2 (en) * 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US8849940B1 (en) * 2007-12-14 2014-09-30 Blue Coat Systems, Inc. Wide area network file system with low latency write command processing
US20090259771A1 (en) * 2008-04-09 2009-10-15 Tanik Haluk K Identification of memory cards by host
US8949614B1 (en) * 2008-04-18 2015-02-03 Netapp, Inc. Highly efficient guarantee of data consistency
US20090265780A1 (en) * 2008-04-21 2009-10-22 Varonis Systems Inc. Access event collection
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8272026B1 (en) * 2008-06-02 2012-09-18 Symantec Corporation Method and apparatus for using a dynamic policy to manage a file purging process
US8589358B2 (en) * 2008-06-26 2013-11-19 Emc Corporation Mechanisms to share attributes between objects
JP2010064336A (ja) * 2008-09-10 2010-03-25 Canon Inc 画像形成装置、情報処理システム、画像形成装置の制御方法、プログラム及び記憶媒体
US8300098B1 (en) 2008-09-16 2012-10-30 Emc Corporation Techniques for providing access to video data using a network attached storage device
CN101419616A (zh) 2008-12-10 2009-04-29 阿里巴巴集团控股有限公司 一种数据同步方法及装置
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US20100191708A1 (en) * 2009-01-23 2010-07-29 International Business Machines Corporation Synchronous Deletion of Managed Files
US8219526B2 (en) 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
WO2011044480A1 (en) * 2009-10-08 2011-04-14 Bridgette, Inc. Dba Cutting Edge Networked Storage Power saving archive system
US8140821B1 (en) 2009-12-18 2012-03-20 Emc Corporation Efficient read/write algorithms and associated mapping for block-level data reduction processes
US8156306B1 (en) 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US8423727B2 (en) * 2010-03-16 2013-04-16 Hitachi, Ltd. I/O conversion method and apparatus for storage system
CN102281312B (zh) * 2010-06-12 2015-05-20 深圳市腾讯计算机系统有限公司 一种数据加载方法、系统和数据处理方法、系统
KR101753313B1 (ko) 2010-07-08 2017-07-19 삼성전자주식회사 파일 백업 장치 및 방법
US8549229B2 (en) * 2010-08-19 2013-10-01 Sandisk Il Ltd. Systems and methods for managing an upload of files in a shared cache storage system
US8548959B2 (en) * 2010-11-29 2013-10-01 Ca, Inc. System and method for minimizing data recovery window
US8484649B2 (en) 2011-01-05 2013-07-09 International Business Machines Corporation Amortizing costs of shared scans
US8352435B1 (en) 2011-03-17 2013-01-08 Emc Corporation Continuous data reduction for highly available synchronous mirrors
US20120303654A1 (en) * 2011-05-26 2012-11-29 James Michael Ferris Methods and systems to automatically extract and transport data associated with workload migrations to cloud networks
US8856591B2 (en) 2011-06-14 2014-10-07 Ca, Inc. System and method for data disaster recovery
US9552367B2 (en) 2011-09-16 2017-01-24 Ca, Inc. System and method for network file system server replication using reverse path lookup
US8301597B1 (en) 2011-09-16 2012-10-30 Ca, Inc. System and method for network file system server replication using reverse path lookup
CN102523285B (zh) * 2011-12-15 2014-04-02 杭州电子科技大学 一种基于对象分布式文件系统的存储缓存方法
CN102571952B (zh) * 2011-12-31 2015-11-25 北京金山软件有限公司 一种传输文件的系统及方法
US9218371B2 (en) 2012-02-29 2015-12-22 International Business Machines Corporation Automatic table cleanup for relational databases
US8934662B1 (en) 2012-03-12 2015-01-13 Google Inc. Tracking image origins
CN102722474A (zh) * 2012-03-20 2012-10-10 华为终端有限公司 信息处理方法及终端
US9813353B1 (en) 2012-06-07 2017-11-07 Open Invention Network Llc Migration of files contained on virtual storage to a cloud storage infrastructure
US8983908B2 (en) * 2013-02-15 2015-03-17 Red Hat, Inc. File link migration for decommisioning a storage server
US20140258672A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Demand determination for data blocks
DE102013114214A1 (de) * 2013-12-17 2015-06-18 Fujitsu Technology Solutions Intellectual Property Gmbh POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung
US10210191B2 (en) 2014-03-20 2019-02-19 International Business Machines Corporation Accelerated access to objects in an object store implemented utilizing a file storage system
CN103970869A (zh) * 2014-05-12 2014-08-06 浙江宇视科技有限公司 一种大文件存储方法
US9087012B1 (en) 2014-06-04 2015-07-21 Pure Storage, Inc. Disaster recovery at high reliability in a storage cluster
US9607004B2 (en) 2014-06-18 2017-03-28 International Business Machines Corporation Storage device data migration
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9606930B2 (en) 2014-08-05 2017-03-28 International Business Machines Corporation Tape-managed partition support for effective workload allocation and space management
US10078639B1 (en) * 2014-09-29 2018-09-18 EMC IP Holding Company LLC Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas
KR101916240B1 (ko) * 2015-01-30 2018-11-08 드롭박스, 인크. 공유 콘텐츠 항목의 저장소 제약된 동기화
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
CN106570005A (zh) * 2015-10-08 2017-04-19 阿里巴巴集团控股有限公司 清理数据库的方法和装置
CN106855871B (zh) * 2015-12-09 2020-04-07 阿里巴巴集团控股有限公司 一种数据迁移的方法和装置
US10083096B1 (en) * 2015-12-15 2018-09-25 Workday, Inc. Managing data with restoring from purging
US10719532B2 (en) 2016-04-25 2020-07-21 Dropbox, Inc. Storage constrained synchronization engine
US10049145B2 (en) 2016-04-25 2018-08-14 Dropbox, Inc. Storage constrained synchronization engine
US20180067972A1 (en) 2016-09-07 2018-03-08 International Business Machines Corporation Automatically setting an auto-purge value to multiple tables within a database
US10146684B2 (en) * 2016-10-24 2018-12-04 Datrium, Inc. Distributed data parallel method for reclaiming space
US10191936B2 (en) * 2016-10-31 2019-01-29 Oracle International Corporation Two-tier storage protocol for committing changes in a storage system
US10432724B2 (en) 2016-11-18 2019-10-01 International Business Machines Corporation Serializing access to data objects in a logical entity group in a network storage
US10769029B2 (en) * 2016-11-18 2020-09-08 International Business Machines Corporation Accessing records of a backup file in a network storage
US10402388B1 (en) * 2017-01-31 2019-09-03 Levyx, Inc. Partition-based analytic systems and methods
CN110235118B (zh) * 2017-02-13 2023-09-19 日立数据管理有限公司 通过存根化优化内容存储
US11341103B2 (en) * 2017-08-04 2022-05-24 International Business Machines Corporation Replicating and migrating files to secondary storage sites
CN109614237A (zh) * 2018-12-10 2019-04-12 浪潮(北京)电子信息产业有限公司 一种资源释放方法、装置、设备及介质
CN110134645B (zh) * 2019-04-15 2023-07-11 深圳市战音科技有限公司 文件系统存储管理方法、读取方法、管理装置和读取装置
US11886605B2 (en) * 2019-09-30 2024-01-30 Red Hat, Inc. Differentiated file permissions for container users
US11593215B2 (en) * 2020-02-05 2023-02-28 EMC IP Holding Company LLC Method and system for generating immutable backups with configurable retention spans
KR20220079212A (ko) * 2020-12-04 2022-06-13 삼성전자주식회사 가비지 컬렉션을 수행하기 위한 전자 장치 및 방법
CN112711562B (zh) * 2020-12-31 2024-03-26 珠海豹趣科技有限公司 文件的迁移方法、装置、电子设备和存储介质
CN114328134B (zh) * 2022-03-16 2022-05-31 深圳超盈智能科技有限公司 计算机内存动态测试系统

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US537698A (en) * 1895-04-16 Jules michaud
BR8800290A (pt) 1987-02-13 1988-09-06 Ibm Metodos de obtencao de imagem unica de sistema
US5318603A (en) * 1988-08-05 1994-06-07 Jason, Inc. Abrasive filament honing tool and method of making and using same
US5276867A (en) * 1989-12-19 1994-01-04 Epoch Systems, Inc. Digital data storage system with improved data migration
JPH05120092A (ja) 1991-10-29 1993-05-18 Ricoh Co Ltd フアイル装置のフアイル削除制御方法
US5367698A (en) * 1991-10-31 1994-11-22 Epoch Systems, Inc. Network file migration system
EP0681721B1 (en) * 1993-02-01 2005-03-23 Sun Microsystems, Inc. Archiving file system for data servers in a distributed network environment
US5991753A (en) * 1993-06-16 1999-11-23 Lachman Technology, Inc. Method and system for computer file management, including file migration, special handling, and associating extended attributes with files
US5566328A (en) * 1995-01-23 1996-10-15 Tandem Computers Incorporated Reconstructing directory pathnames from file handles in a computer system
US6182121B1 (en) * 1995-02-03 2001-01-30 Enfish, Inc. Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment
US6108759A (en) * 1995-02-23 2000-08-22 Powerquest Corporation Manipulation of partitions holding advanced file systems
US5564037A (en) * 1995-03-29 1996-10-08 Cheyenne Software International Sales Corp. Real time data migration system and method employing sparse files
US5813009A (en) * 1995-07-28 1998-09-22 Univirtual Corp. Computer based records management system method
JPH0944381A (ja) 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
US5742817A (en) * 1995-12-08 1998-04-21 Emc Corporation Method and apparatus for file server addressing
US5754844A (en) * 1995-12-14 1998-05-19 Sun Microsystems, Inc. Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location
US5857203A (en) * 1996-07-29 1999-01-05 International Business Machines Corporation Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system
US6021405A (en) * 1996-08-23 2000-02-01 Tandem Computers, Inc. System and method for optimizing database queries with improved performance enhancements
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6745224B1 (en) * 1996-12-06 2004-06-01 Microsoft Corporation Object framework and services for periodically recurring operations
US5822780A (en) * 1996-12-31 1998-10-13 Emc Corporation Method and apparatus for hierarchical storage management for data base management systems
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
US6128627A (en) * 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
DE69920363T2 (de) 1998-04-27 2005-09-29 Sony Corp. Daten aufnahme/wiedergabgabegerät und verfahren hierfür
US6493725B1 (en) * 1998-05-18 2002-12-10 Sharp Kabushiki Kaisha Database managing system
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US6317754B1 (en) * 1998-07-03 2001-11-13 Mitsubishi Electric Research Laboratories, Inc System for user control of version /Synchronization in mobile computing
US6269382B1 (en) * 1998-08-31 2001-07-31 Microsoft Corporation Systems and methods for migration and recall of data from local and remote storage
JP2000207370A (ja) 1999-01-20 2000-07-28 Matsushita Electric Ind Co Ltd 分散ファイル管理装置及び分散ファイル管理システム
US6535911B1 (en) * 1999-08-06 2003-03-18 International Business Machines Corporation Viewing an information set originated from a distribution media and updating using a remote server
JP2001109767A (ja) 1999-10-08 2001-04-20 Nippon Telegr & Teleph Corp <Ntt> 階層的データベース管理方法、装置、および階層的データベース管理プログラムを記録した記録媒体
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
DE69933142T2 (de) * 1999-11-30 2007-08-30 Kabushiki Kaisha Toshiba Chipkarte und verfahren zur verwaltung eines flüchtigen speichers auf derselben
GB0002019D0 (en) * 2000-01-29 2000-03-22 Ibm Data migration tool
JP2001229062A (ja) 2000-02-15 2001-08-24 Hitachi Ltd 分散ファイル管理方法
US7266555B1 (en) * 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US6938039B1 (en) * 2000-06-30 2005-08-30 Emc Corporation Concurrent file across at a target file server during migration of file systems between file servers using a network file system access protocol
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
US7266556B1 (en) * 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US6950833B2 (en) * 2001-06-05 2005-09-27 Silicon Graphics, Inc. Clustered filesystem
US6877016B1 (en) * 2001-09-13 2005-04-05 Unisys Corporation Method of capturing a physically consistent mirrored snapshot of an online database
US6775673B2 (en) * 2001-12-19 2004-08-10 Hewlett-Packard Development Company, L.P. Logical volume-level migration in a partition-based distributed file system
US6772161B2 (en) * 2001-12-19 2004-08-03 Hewlett-Packard Development Company, L.P. Object-level migration in a partition-based distributed file system
US6775672B2 (en) * 2001-12-19 2004-08-10 Hewlett-Packard Development Company, L.P. Updating references to a migrated object in a partition-based distributed file system
US6959310B2 (en) * 2002-02-15 2005-10-25 International Business Machines Corporation Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system

Also Published As

Publication number Publication date
US20040133608A1 (en) 2004-07-08
ATE555445T1 (de) 2012-05-15
CN1559035A (zh) 2004-12-29
EP1430413A4 (en) 2006-08-16
JP2005512171A (ja) 2005-04-28
CN1559041B (zh) 2011-11-30
EP1430413A1 (en) 2004-06-23
CN1311358C (zh) 2007-04-18
EP1430400B1 (en) 2012-04-25
US8484172B2 (en) 2013-07-09
KR20050030883A (ko) 2005-03-31
CA2461025A1 (en) 2003-04-03
JP2005505829A (ja) 2005-02-24
WO2003032171A3 (en) 2003-08-14
KR20040084889A (ko) 2004-10-06
CA2458281A1 (en) 2003-04-03
WO2003027882A1 (en) 2003-04-03
US8442957B2 (en) 2013-05-14
CN1307580C (zh) 2007-03-28
JP2005510780A (ja) 2005-04-21
CA2458672A1 (en) 2003-04-17
EP1430400A2 (en) 2004-06-23
WO2003032171A2 (en) 2003-04-17
WO2003027909A1 (en) 2003-04-03
EP1433086A1 (en) 2004-06-30
US20040133540A1 (en) 2004-07-08
EP1430400A4 (en) 2006-06-14
CN1559041A (zh) 2004-12-29
US7500246B2 (en) 2009-03-03
US20040143563A1 (en) 2004-07-22
CN1556961A (zh) 2004-12-22
EP1433086A4 (en) 2006-07-26
KR100962055B1 (ko) 2010-06-08

Similar Documents

Publication Publication Date Title
KR100962055B1 (ko) 컴퓨터 시스템들간의 객체 공유
JP4157858B2 (ja) ストレージ・エリア・ネットワーク(san)ファイル・システムの並列高速バックアップ
US7860907B2 (en) Data processing
US8640136B2 (en) Sharing objects between computer systems
US8095678B2 (en) Data processing
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US8090925B2 (en) Storing data streams in memory based on upper and lower stream size thresholds
GB2440357A (en) Data storage method
US20080005506A1 (en) Data processing
AU2002330129A1 (en) Sharing objects between computer systems
AU2002360252A1 (en) Efficient search for migration and purge candidates
AU2002349890A1 (en) Efficient management of large files

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application