KR102030786B1 - 데이터 처리 방법, 장치 및 시스템 - Google Patents
데이터 처리 방법, 장치 및 시스템 Download PDFInfo
- Publication number
- KR102030786B1 KR102030786B1 KR1020177012992A KR20177012992A KR102030786B1 KR 102030786 B1 KR102030786 B1 KR 102030786B1 KR 1020177012992 A KR1020177012992 A KR 1020177012992A KR 20177012992 A KR20177012992 A KR 20177012992A KR 102030786 B1 KR102030786 B1 KR 102030786B1
- Authority
- KR
- South Korea
- Prior art keywords
- strip
- read
- written
- version number
- recorded
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims abstract description 93
- 238000013500 data storage Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001174 ascending effect Effects 0.000 claims description 6
- 238000013523 data management Methods 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 45
- 238000004364 calculation method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 239000012634 fragment Substances 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 239000013589 supplement Substances 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
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)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
도 1은 본 발명의 실시예에 따른 객체 저장 시스템의 아키텍처도이다.
도 2는 본 발명에 따른 데이터 처리 방법의 실시예의 흐름도이다.
도 3a 및 도 3b는 본 발명의 실시예에 따른 스트립 분배 정책(strip distribution policy )의 개략도이다.
도 4는 ROW 기반 스트립 판독 방안의 실시예의 도면이다.
도 5는 COW 기반 트립 판독 방안의 실시예의 도면이다.
도 6은 본 발명의 실시예에 따른 저장 시스템의 실시예의 개략 구성도이다.
도 7은 본 발명에 따른 저장 시스템의 개략 구성도이다.
Claims (45)
- 객체 저장 기기(object storage device, OSD)가 클라이언트 서버에 의해 전송되는 스트립 기록 요청(strip write request)을 수신하는 단계 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷(snapshot)의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -; 및
상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 상기 기록될 스트립을 기록하는 단계
를 포함하는 데이터 저장 방법. - 제1항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 상기 기록될 스트립이 속하는 파일 또는 볼륨의 스냅샷을 획득하여, 상기 최근 스냅샷의 스냅샷 ID을 생성하는 단계; 및
상기 최근 스냅샷의 스냅샷 ID에 따라 상기 기록될 스트립의 버전 번호를 생성하는 단계를 더 포함하는 데이터 저장 방법. - 제2항에 있어서,
상기 클라이언트 서버가 상기 기록될 스트립의 버전 번호를 상기 파일 또는 상기 볼륨의 메타데이터로 갱신하는 단계
를 더 포함하는 데이터 저장 방법 - 제1항 또는 제2항 또는 제3항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가 파일 기록 요청을 수신하는 단계 - 상기 파일 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 파일명을 포함하고, 상기 기록될 데이터는 상기 파일의 일부임 -;
상기 클라이언트 서버가, 상기 파일명에 따라 파일 식별자(file identifier, FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하고, 상기 파일의 버전 번호를 상기 기록될 스트립의 버전 번호로 사용하는 단계 - 상기 파일의 버전 번호는 상기 기록될 스트립이 속하는 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 클라이언트 서버가, 상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 상기 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하는 단계; 및
상기 스트립 기록 요청을 생성하는 단계를 더 포함하는 데이터 저장 방법. - 제1항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 볼륨 기록 요청을 수신하는 단계 - 상기 볼륨 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 볼륨 식별자(ID)를 포함하고, 상기 기록될 데이터는 상기 볼륨의 일부임 -;
상기 클라이언트 서버가, 상기 볼륨 ID에 따라, 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고, 상기 볼륨의 버전 번호를 상기 기록될 스트립의 버전 번호로 사용하는 단계 - 상기 볼륨의 버전 번호는 상기 기록될 스트립이 속하는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 클라이언트 서버가, 상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 상기 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 결정하는 단계; 및
상기 스트립 기록 요청을 생성하는 단계를 더 포함하는 데이터 저장 방법. - 객체 저장 기기(OSD)가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 OSD가 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계; 및
상기 객체가 백업되어 있으면, 상기 OSD가, 상기 기록될 스트립을 상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 OSD가, 상기 기록될 스트립을 사용하여 스플라이싱된 객체(spliced object)를 생성한 다음, 상기 스플라이싱된 객체를 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 기록하는 단계
를 포함하는 데이터 저장 방법. - 제6항에 있어서,
상기 OSD가, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성하는 것은,
상기 OSD가, 상기 기록될 스트립의 객체 ID의 객체 세트에 속하는 백업된 객체 중에서 최근 스냅샷 시각을 가진 객체를 선택하여, 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 취득하고, 상기 기록될 스트립 및 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 사용하여 공동으로 상기 스플라이싱된 객체를 구성하는 것을 포함하고,
상기 기록될 스트립의 객체 ID의 객체 세트란, 상기 OSD에 저장되어 있고 상기 기록될 스트립의 객체 ID과 동일한 객체 ID를 가지고 상기 기록될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체의 세트인, 데이터 저장 방법. - 제6항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 상기 기록될 스트립이 속하는 파일 또는 볼륨의 스냅샷을 획득하여, 상기 최근 스냅샷의 스냅샷 ID을 생성하는 단계;
상기 최근 스냅샷의 스냅샷 ID에 따라 상기 기록될 스트립의 버전 번호를 생성하는 단계; 및
상기 클라이언트 서버가 상기 기록될 스트립의 버전 번호를 상기 파일 또는 상기 볼륨의 메타데이터로 갱신하는 단계를 더 포함하는 데이터 저장 방법. - 객체 저장 기기(OSD)가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 OSD가, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하는 단계; 및
상기 스트립이 백업되어 있으면, 상기 기록될 스트립을 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 상기 스트립이 백업되어 있지 않으면, 상기 OSD 중의 기본 버전(base version)의 객체에 있고 크기가 상기 기록될 스트립의 크기인 데이터를, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋, 및 상기 기록될 스트립의 객체 ID를 사용하여 결정된 저장 위치에 백업하고 - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 -, 상기 기록될 스트립을 상기 기록될 스트립의 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하는 단계
를 포함하는 데이터 처리 방법. - 제9항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 상기 기록될 스트립이 속하는 파일 또는 볼륨의 스냅샷을 획득하여, 상기 최근 스냅샷의 스냅샷 ID을 생성하는 단계; 및
상기 최근 스냅샷의 스냅샷 ID에 따라 상기 기록될 스트립의 버전 번호를 생성하는 단계를 더 포함하는 데이터 처리 방법. - 제10항에 있어서,
상기 클라이언트 서버가 상기 기록될 스트립의 버전 번호를 상기 파일 또는 상기 볼륨의 메타데이터로 갱신하는 단계를 더 포함하는 데이터 처리 방법 - 제9항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가 파일 기록 요청을 수신하는 단계 - 상기 파일 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 파일명을 포함하고, 상기 기록될 데이터는 상기 파일의 일부임 -;
상기 클라이언트 서버가, 상기 파일명에 따라 파일 식별자(FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하고, 상기 파일의 버전 번호를 상기 기록될 스트립의 버전 번호로 사용하는 단계 - 상기 파일의 버전 번호는 상기 기록될 스트립이 속하는 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 클라이언트 서버가, 상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 상기 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하는 단계; 및
상기 스트립 기록 요청을 생성하는 단계를 더 포함하는 데이터 처리 방법. - 제9항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 볼륨 기록 요청을 수신하는 단계 - 상기 볼륨 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 볼륨 식별자(ID)를 포함하고, 상기 기록될 데이터는 상기 볼륨의 일부임 -;
상기 클라이언트 서버가, 상기 볼륨 ID에 따라, 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고, 상기 볼륨의 버전 번호를 상기 기록될 스트립의 버전 번호로 사용하는 단계 -;
상기 클라이언트 서버가, 상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 상기 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 결정하는 단계; 및
상기 스트립 기록 요청을 생성하는 단계를 더 포함하는 데이터 처리 방법. - 객체 저장 기기(OSD)가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 OSD가 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계; 및
상기 객체가 백업되어 있으면, 상기 OSD가, 상기 기록될 스트립을 상기 객체 ID, 상기 객체의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 OSD 중의 기본 버전의 객체에 있는 데이터를, 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 백업하고, - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 -, 그리고 상기 OSD가, 상기 기록될 스트립을 상기 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하는 단계
를 포함하는 데이터 처리 방법. - 객체 저장 기기(OSD)가 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하는 단계 - 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -; 및
상기 OSD가 상기 객체 ID, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하는 단계; 및
상기 스트립이 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 스트립이 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하는 단계 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
를 포함하는 데이터 판독 방법. - 제15항에 있어서,
상기 OSD의 기록 모드가 ROW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 내림차순이거나;
상기 OSD의 기록 모드가 COW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 오름차순인, 데이터 판독 방법. - 제15항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 파일 판독 요청을 수신하는 단계 - 상기 파일 판독 요청은 파일명, 판독될 데이터의 크기 및 상기 판독될 데이터의 오프셋을 포함하고, 상기 판독될 데이터는 상기 파일의 일부임 -;
상기 클라이언트 서버가, 상기 파일명에 따라 파일 식별자(FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하고, 상기 파일의 버전 번호를 상기 판독될 스트립의 버전 번호로 사용하는 단계 - 상기 파일의 버전 번호는 상기 판독될 스트립이 속하는 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 클라이언트 서버가, 상기 판독될 데이터의 오프셋 및 상기 판독될 데이터의 크기에 따라, 상기 판독될 스트립이 속하는 객체의 ID를 결정하고, 상기 판독될 스트립의 오프셋을 취득하는 단계; 및
상기 스트립 판독 요청을 생성하는 단계를 더 포함하는 데이터 판독 방법. - 제15항에 있어서,
상기 OSD가 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하는 단계 전에,
상기 클라이언트 서버가, 볼륨 판독 요청을 수신하는 단계 - 상기 볼륨 판독 요청은 볼륨 ID, 판독될 데이터의 크기 및 상기 판독될 데이터의 오프셋을 포함하고, 상기 판독될 데이터는 상기 볼륨의 일부임 -;
상기 클라이언트 서버가, 상기 볼륨 ID에 따라, 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고, 상기 볼륨의 버전 번호를 상기 판독될 스트립의 버전 번호로 사용하는 단계 - 상기 볼륨의 버전 번호는 상기 판독될 스트립이 속하는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 클라이언트 서버가, 상기 판독될 데이터의 오프셋 및 상기 판독될 데이터의 크기에 따라, 상기 판독될 스트립이 속하는 객체의 ID를 결정하고, 상기 판독될 스트립의 오프셋을 취득하는 단계; 및
상기 스트립 판독 요청을 생성하는 단계를 더 포함하는 데이터 판독 방법. - 객체 기반 저장 기기(OSD) 및 클라이언트 서버를 포함하는 객체 저장 시스템에 적용되는 데이터 판독 방법으로서,
상기 OSD가 상기 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하는 단계 - 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -; 및
상기 OSD가 상기 객체 ID 및 상기 판독될 스트립의 버전 번호를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계; 및
상기 객체가 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체가 발견될 때까지, 객체의 스냅샷 시각의 내림차순에 따라 하나씩 검색하고, 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하는 단계 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
를 포함하는 데이터 판독 방법. - 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷(snapshot)의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -; 및
상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 상기 기록될 스트립을 기록하도록 구성된 스트립 저장 모듈
을 포함하는 데이터 저장 방법. - 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷(snapshot)의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -; 및
상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하도록 구성된 스트립 저장 모듈
을 포함하고,
상기 객체가 백업되어 있으면, 상기 스트립 저장 모듈은 추가로, 상기 기록될 스트립을 상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하도록 구성되거나;
상기 객체가 백업되어 있지 않으면, 상기 스트립 저장 모듈은 추가로, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성한 다음, 상기 스플라이싱된 객체를 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 기록하도록 구성되는,
를 포함하는 데이터 저장 장치. - 제21항에 있어서,
상기 스트립 저장 모듈이 추가로, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성하도록 구성되는 것은,
상기 스트립 저장 모듈이, 상기 기록될 스트립의 객체 ID의 객체 세트에 속하는 백업된 객체 중에서 최근 스냅샷 시각을 가진 객체를 선택하여, 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 취득하고, 상기 기록될 스트립 및 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 사용하여 공동으로 상기 스플라이싱된 객체를 구성하는 것을 포함하고,
상기 기록될 스트립의 객체 ID의 객체 세트란, 상기 데이터 저장 장치에 저장되어 있고 상기 기록될 스트립의 객체 ID과 동일한 객체 ID를 가지고 상기 기록될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체의 세트인, 데이터 저장 장치. - 데이터 처리 장치로서,
클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -; 및
상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하고;
상기 스트립이 백업되어 있으면, 상기 기록될 스트립을 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나;
상기 스트립이 백업되어 있지 않으면, 데이터 저장 장치 중의 기본 버전의 객체에 있고 오프셋이 상기 기록될 스트립의 오프셋이고 크기가 상기 기록될 스트립의 크기인 데이터를, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋, 및 상기 기록될 스트립의 객체 ID를 사용하여 결정된 저장 위치에 백업하고 - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 -, 상기 기록될 스트립을 상기 기록될 스트립의 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하도록 구성되는 스트립 저장 모듈
을 포함하는 데이터 처리 장치. - 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -; 및
(1) 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하고; (2-1) 상기 객체가 백업되어 있으면, 상기 기록될 스트립을 상기 객체 ID, 상기 객체의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 (2-2) 상기 객체가 백업되어 있지 않으면, 기본 버전의 객체에 있는 데이터를, 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 백업하도록 구성된 스트립 저장 모듈 - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 -
을 포함하고,
상기 스트립 저장 모듈은 추가로, 상기 기록될 스트립을 상기 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하도록 구성되는,
데이터 처리 장치. - 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -; 및
(1) 상기 객체 ID, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하고; (2-1) 상기 스트립이 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 (2-2) 상기 스트립이 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하도록 구성된 스트립 판독 모듈 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
을 포함하는 데이터 판독 장치. - 제25항에 있어서,
상기 객체의 스냅샷 시각의 내림차순은,
상기 데이터 판독 장치의 기록 모드가 ROW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 내림차순이거나;
상기 데이터 판독 장치의 기록 모드가 COW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 오름차순인 것을 포함하는, 데이터 판독 장치. - 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하도록 구성된 스트립 요청 수신 모듈 - 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -; 및
(1) 상기 객체 ID 및 상기 판독될 스트립의 버전 번호를 사용하여 결정된 객체가 백업되어 있는지를 판정하고; (2-1)상기 객체가 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 (2-2) 상기 객체가 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번로를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하도록 구성된 스트립 판독 모듈 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
을 포함하는 데이터 판독 장치. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 저장 시스템으로서,
상기 클라이언트 서버는,
파일 기록 요청을 수신하고 - 상기 파일 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 파일명을 포함하고, 상기 기록될 데이터는 상기 파일의 일부임 -;
상기 파일명에 따라 파일 식별자(FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하며 - 상기 파일의 버전 번호는 상기 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하며;
스트립 기록 요청을 생성하고 상기 스트립 기록 요청을 상기 객체 저장 기기에 전송하도록 구성되며;
상기 객체 저장 기기는,
스트립 기록 요청을 수신하고 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 기록될 스트립을 상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하도록 구성되는,
데이터 저장 시스템. - 제28항에 있어서,
상기 클라이언트 서버는 추가로,
상기 스트립 기록 요청을 전송하기 전에, 상기 기록될 스트립이 속하는 파일의 스냅샷을 획득하여, 상기 최근 스냅샷의 스냅샷 ID을 생성하고;
상기 최근 스냅샷의 스냅샷 ID에 따라 상기 기록될 스트립의 버전 번호를 생성하고;
상기 기록될 스트립의 버전 번호를 상기 파일의 메타데이터로 갱신하도록 구성되는, 데이터 저장 시스템. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 저장 시스템으로서,
상기 클라이언트 서버는,
볼륨 기록 요청을 수신하고 - 상기 볼륨 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 볼륨 식별자(ID)를 포함하고, 상기 기록될 데이터는 볼륨의 일부임 -;
상기 볼륨 ID에 따라 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고 - 상기 볼륨의 버전 번호는 상기 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하며;
스트립 기록 요청을 생성하고 상기 스트립 기록 요청을 상기 객체 저장 기기에 전송하도록 구성되며;
상기 객체 저장 기기는,
상기 스트립 기록 요청을 수신하고 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 볼륨의 버전 번호는 상기 기록될 스트립의 버전 번호이고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 기록될 스트립을 상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하도록 구성되는,
데이터 저장 시스템. - 제30항에 있어서,
상기 클라이언트 서버는 추가로,
상기 스트립 기록 요청을 전송하기 전에, 상기 기록될 스트립이 속하는 볼륨의 스냅샷을 획득하여, 상기 최근 스냅샷의 스냅샷 ID을 생성하고;
상기 최근 스냅샷의 스냅샷 ID에 따라 상기 기록될 스트립의 버전 번호를 생성하고;
상기 기록될 스트립의 버전 번호를 상기 볼륨의 메타데이터로 갱신하도록 구성되는, 데이터 저장 시스템. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 저장 시스템으로서,
상기 클라이언트 서버는,
파일 기록 요청을 수신하고 - 상기 파일 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 파일명을 포함하고, 상기 기록될 데이터는 상기 파일의 일부임 -;
상기 파일명에 따라 파일 식별자(FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하며 - 상기 파일의 버전 번호는 상기 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 상기 기록될 데이터를 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하며;
스트립 기록 요청을 생성하고 상기 스트립 기록 요청을 상기 객체 저장 기기에 전송하도록 구성되며;
상기 객체 저장 기기는,
상기 스트립 기록 요청을 수신하고 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하고;
상기 객체가 백업되어 있으면, 상기 기록될 스트립을 상기 객체 ID, 상기 객체의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성한 다음, 상기 스플라이싱된 객체를 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 기록하도록 구성되는,
데이터 저장 시스템. - 제32항에 있어서,
상기 객체 저장 기기가 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성하도록 구성되는 것은,
상기 기록될 스트립의 객체 ID의 객체 세트에 속하는 백업된 객체 중에서 최근 스냅샷 시각을 가진 객체를 선택하여, 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 취득하고, 상기 기록될 스트립 및 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 사용하여 공동으로 상기 스플라이싱된 객체를 구성하는 것을 포함하고,
상기 기록될 스트립의 객체 ID과 동일한 객체 ID를 가지고 상기 기록될 스트립의 버전 번호와 다른 버전을 가진, 상기 객체 저장 기기에 저장되어 있는 객체의 세트를 상기 기록될 스트립의 객체 ID의 객체 세트라고 하는, 데이터 저장 시스템. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 저장 시스템으로서,
상기 클라이언트 서버는,
볼륨 기록 요청을 수신하고 - 상기 볼륨 기록 요청은 기록될 데이터, 상기 기록될 데이터의 오프셋, 및 볼륨 식별자(ID)를 포함하고, 상기 기록될 데이터는 상기 볼륨의 일부임 -;
상기 볼륨 ID에 따라 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고 - 상기 볼륨의 버전 번호는 상기 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 기록될 데이터의 오프셋 및 상기 기록될 데이터의 크기에 따라, 기록될 데이터를 기록될 스트립을 포함하는 복수의 스트립으로 분할하고, 상기 기록될 스트립이 속하는 객체의 ID를 결정하고, 상기 기록될 스트립의 오프셋을 취득하며;
스트립 기록 요청을 생성하고 상기 스트립 기록 요청을 상기 객체 저장 기기에 전송하도록 구성되며;
상기 객체 저장 기기는,
스트립 기록 요청을 수신하고 - 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID임 -;
상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하고;
상기 객체가 백업되어 있으면, 상기 기록될 스트립을 상기 객체 ID, 상기 객체의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는
상기 객체가 백업되어 있지 않으면, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성한 다음, 상기 스플라이싱된 객체를 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 기록하도록 구성되는,
데이터 저장 시스템. - 제34항에 있어서,
상기 객체 저장 기기가 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성하도록 구성되는 것은,
상기 기록될 스트립의 객체 ID의 객체 세트에 속하는 백업된 객체 중에서 최근 스냅샷 시각을 가진 객체를 선택하여, 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 취득하고, 상기 기록될 스트립 및 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 사용하여 공동으로 상기 스플라이싱된 객체를 구성하는 것을 포함하고,
상기 기록될 스트립의 객체 ID의 객체 세트란, 상기 객체 저장 기기에 저장되어 있고 상기 기록될 스트립의 객체 ID과 동일한 객체 ID를 가지고 상기 기록될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체의 세트인, 데이터 저장 시스템. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 판독 시스템으로서,
상기 클라이언트 서버는,
파일 판독 요청을 수신하고 - 상기 파일 판독 요청은 파일명, 판독될 데이터의 크기 및 상기 판독될 데이터의 오프셋을 포함하고, 상기 판독될 데이터는 상기 파일의 일부임 -;
상기 파일명에 따라 파일 식별자(FID)를 취득하고, 상기 FID에 따라 상기 파일의 메타데이터를 조회하여 상기 파일의 버전 번호를 취득하며 - 상기 파일의 버전 번호는 상기 파일의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 판독될 데이터의 오프셋 및 상기 판독될 데이터의 크기에 따라, 판독될 스트립이 속하는 객체의 ID를 결정하고, 상기 판독될 스트립의 오프셋을 취득하며;
스트립 판독 요청을 생성하고 상기 스트립 판독 요청을 전송하도록 구성되며;
상기 객체 저장 기기는,
스트립 판독 요청을 수신하고 - 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호, 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -;
상기 객체 ID, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하고;
상기 스트립이 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 스트립이 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하도록 구성되는 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
데이터 저장 시스템. - 클라이언트 서버와 객체 저장 기기를 포함하는 데이터 판독 시스템으로서,
상기 클라이언트 서버는,
볼륨 판독 요청을 수신하고 - 상기 볼륨 판독 요청은 볼륨 ID, 판독될 데이터의 크기 및 상기 판독될 데이터의 오프셋을 포함하고, 상기 판독될 데이터는 상기 볼륨의 일부임 -;
상기 볼륨 ID에 따라 상기 볼륨의 메타데이터를 조회하여 상기 볼륨의 버전 번호를 취득하고 - 상기 볼륨의 버전 번호는 상기 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -;
상기 판독될 데이터의 오프셋 및 상기 판독될 데이터의 크기에 따라, 판독될 스트립이 속하는 객체의 ID를 결정하고, 상기 판독될 스트립의 오프셋을 취득하며;
스트립 판독 요청을 생성하고 상기 스트립 판독 요청을 전송하도록 구성되며;
상기 객체 저장 기기는,
상기 스트립 판독 요청을 수신하고 - 상기 스트립 판독 요청은 상기 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID임 -;
상기 객체 ID, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하고;
상기 스트립이 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 스트립이 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하도록 구성되는 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -
데이터 판독 시스템. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성되며, 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷(snapshot)의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행함으로써, 다음 단계:
상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 상기 기록될 스트립을 기록하는 단계를 실행하는,
데이터 저장 기기. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성되며, 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷(snapshot)의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행함으로써, 다음 단계:
상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계; 및
상기 객체가 백업되어 있으면, 상기 기록될 스트립을 상기 객체 ID, 상기 기록될 스트립의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성한 다음, 상기 스플라이싱된 객체를 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 기록하는 단계를 실행하는,
객체 저장 기기. - 제39항에 있어서,
상기 프로세서가 상기 기록될 스트립을 사용하여 스플라이싱된 객체를 생성하는 것은,
상기 프로세서가, 상기 기록될 스트립의 객체 ID의 객체 세트에 속하는 백업된 객체 중에서 최근 스냅샷 시각을 가진 객체를 선택하여, 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 취득하고, 상기 기록될 스트립 및 상기 기록될 스트립의 오프셋과 다른 오프셋을 가진 스트립을 사용하여 공동으로 상기 스플라이싱된 객체를 구성하도록 구성되는 것을 포함하고,
상기 기록될 스트립의 객체 ID의 객체 세트란, 상기 객체 저장 기기에 저장되어 있고 상기 기록될 스트립의 객체 ID과 동일한 객체 ID를 가지고 상기 기록될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체의 세트인, 객체 저장 기기. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성되며, 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행함으로써, 다음 단계:
상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID, 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하는 단계; 및
상기 스트립이 백업되어 있으면, 상기 기록될 스트립을 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 객체 ID 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하고; 또는 상기 스트립이 백업되어 있지 않으면, 상기 기록될 스트립의 오프셋과 동일한 오프셋을 가지고 상기 기록될 스트립의 크기와 동일한 크기를 가진, 상기 객체 저장 기기 중의 기본 버전의 객체에 있는 데이터를, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋, 및 상기 기록될 스트립의 객체 ID를 사용하여 결정된 저장 위치에 백업하고 - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 -, 상기 기록될 스트립을 상기 기록될 스트립의 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하는 단계를 실행하는,
객체 저장 기기. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 기록 요청을 수신하도록 구성되며, 상기 스트립 기록 요청은 기록될 스트립, 상기 기록될 스트립의 버전 번호, 상기 기록될 스트립의 오프셋 및 상기 기록될 스트립의 객체 ID를 포함하고, 상기 기록될 스트립의 버전 번호는 상기 기록될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 기록될 스트립의 오프셋은 상기 기록될 스트립이 속하는 객체 내에서의 상기 기록될 스트립의 위치를 기술하고, 상기 기록될 스트립의 객체 ID는 상기 기록될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행함으로써, 다음 단계:
상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계; 및
상기 객체가 백업되어 있으면, 상기 객체 저장 기기가, 상기 기록될 스트립을 상기 객체 ID, 상기 객체의 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하거나; 상기 객체가 백업되어 있지 않으면, 상기 객체 저장 기기가, 기본 버전의 객체에 있는 데이터를, 상기 기록될 스트립의 버전 번호 및 상기 객체 ID를 사용하여 결정된 저장 위치에 백업하고 - 상기 기본 버전의 객체의 객체 ID는 상기 기록될 스트립의 객체 ID와 동일하고, 상기 기본 버전의 객체의 버전 번호가 기본 버전 번호임 - , 상기 객체 저장 기기가, 상기 기록될 스트립을 상기 객체 ID, 상기 기본 버전 번호 및 상기 기록될 스트립의 오프셋을 사용하여 결정된 저장 위치에 기록하는 단계를 실행하는,
객체 저장 기기. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하도록 구성되고, 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행하여 다음 단계:
상기 객체 ID, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 오프셋을 사용하여 결정된 스트립이 백업되어 있는지를 판정하는 단계; 및
상기 스트립이 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 스트립이 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하는 단계 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -를 실행하는,
객체 저장 기기. - 제43항에 있어서,
상기 객체의 스냅샷 시각의 내림차순은,
상기 객체 저장 기기의 기록 모드가 ROW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 내림차순이거나;
상기 객체 저장 기기의 기록 모드가 COW이면, 상기 객체의 스냅샷 시각의 내림차순이 버전 번호의 오름차순인, 객체 저장 기기. - 프로세서와, 상기 프로세서에 연결되는 저장 매체 및 인터페이스를 포함하는 객체 저장 기기로서,
상기 인터페이스는 클라이언트 서버에 의해 전송되는 스트립 판독 요청을 수신하도록 구성되고, 상기 스트립 판독 요청은 판독될 스트립의 크기, 상기 판독될 스트립의 오프셋, 상기 판독될 스트립의 버전 번호 및 상기 판독될 스트립의 객체 ID를 포함하고, 상기 판독될 스트립의 버전 번호는 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응하고, 상기 판독될 스트립의 객체 ID는 상기 판독될 스트립이 속하는 객체의 ID이며;
상기 저장 매체는 컴퓨터 프로그램을 저장하고;
상기 프로세서는 상기 컴퓨터 프로그램을 실행하여 다음 단계:
상기 객체 ID 및 상기 판독될 스트립의 버전 번호를 사용하여 결정된 객체가 백업되어 있는지를 판정하는 단계;
상기 객체가 백업되어 있으면, 상기 객체 ID, 상기 판독될 스트립의 버전 번호, 상기 판독될 스트립의 오프셋, 및 상기 판독될 스트립의 크기를 사용하여 결정된 데이터를 판독하고, 상기 판독된 데이터를 상기 판독될 스트립으로 사용하여, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하거나; 또는 상기 객체가 백업되어 있지 않으면, 상기 판독될 스트립의 객체 ID와 동일한 객체 ID를 가지고 버전 번호가 상기 판독될 스트립의 버전 번호와 상이한 버전 번호를 가진 객체를, 객체의 스냅샷 시각의 내림차순에 따라 하나씩, 상기 판독될 스트립의 오프셋을 사용하여 결정된 저장 위치에서 유효한 데이터를 저장하고 있는 객체가 발견될 때까지 검색하고, 상기 발견된 유효한 데이터를 상기 판독될 스트립으로 사용하고, 상기 판독될 스트립을 상기 클라이언트 서버에 전송하는 단계 - 상기 객체의 버전 번호는 상기 객체가 생성되기 전에 존재하고 있는, 상기 판독될 스트립이 속하는 파일 또는 볼륨의 최근 스냅샷의 스냅샷 ID에 대응함 -를 실행하는,
객체 저장 기기.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/095223 WO2016101283A1 (zh) | 2014-12-27 | 2014-12-27 | 一种数据处理方法装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170068564A KR20170068564A (ko) | 2017-06-19 |
KR102030786B1 true KR102030786B1 (ko) | 2019-10-10 |
Family
ID=56149009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177012992A KR102030786B1 (ko) | 2014-12-27 | 2014-12-27 | 데이터 처리 방법, 장치 및 시스템 |
Country Status (10)
Country | Link |
---|---|
US (3) | US11032368B2 (ko) |
EP (1) | EP3203386A4 (ko) |
JP (1) | JP6607941B2 (ko) |
KR (1) | KR102030786B1 (ko) |
CN (2) | CN108733761B (ko) |
AU (1) | AU2014415350B2 (ko) |
BR (1) | BR112017011412B1 (ko) |
CA (1) | CA2965715C (ko) |
SG (1) | SG11201703410YA (ko) |
WO (1) | WO2016101283A1 (ko) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108021333B (zh) * | 2016-11-03 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 随机读写数据的系统、装置及方法 |
US10733305B2 (en) | 2016-11-15 | 2020-08-04 | StorageOS Limited | System and method for implementing cryptography in a storage system |
US10691350B2 (en) | 2016-11-15 | 2020-06-23 | StorageOS Limited | Method for provisioning a volume of data including placing data based on rules associated with the volume |
US10353632B2 (en) | 2016-11-15 | 2019-07-16 | StorageOS Limited | System and method for storing data blocks in a volume of data |
CN108604201B (zh) * | 2016-12-30 | 2022-02-25 | 华为技术有限公司 | 一种快照回滚方法、装置、存储控制器和系统 |
CN106708443B (zh) * | 2017-01-03 | 2020-01-17 | 北京百度网讯科技有限公司 | 数据读写方法及装置 |
US10652330B2 (en) * | 2017-01-15 | 2020-05-12 | Google Llc | Object storage in cloud with reference counting using versions |
CN110546620B (zh) * | 2017-04-14 | 2022-05-17 | 华为技术有限公司 | 数据处理方法、存储系统和交换设备 |
US10547683B2 (en) * | 2017-06-26 | 2020-01-28 | Christopher Squires | Object based storage systems that utilize direct memory access |
US20190114232A1 (en) * | 2017-10-17 | 2019-04-18 | Christopher Squires | Local and offloaded snapshots for volatile memory |
CN110309100B (zh) * | 2018-03-22 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 一种快照对象生成方法和装置 |
CN110837479B (zh) * | 2018-08-17 | 2023-09-01 | 华为云计算技术有限公司 | 数据处理方法、相关设备及计算机存储介质 |
CN110874181B (zh) * | 2018-08-31 | 2021-12-17 | 杭州海康威视系统技术有限公司 | 一种数据更新方法及更新装置 |
CN109634526B (zh) * | 2018-12-11 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种基于对象存储的数据操作方法及相关装置 |
CN109669634B (zh) * | 2018-12-17 | 2022-03-04 | 浪潮电子信息产业股份有限公司 | 一种数据落盘方法、装置、设备及可读存储介质 |
EP3889752B1 (en) | 2018-12-25 | 2024-09-25 | Huawei Cloud Computing Technologies Co., Ltd. | Data storage method and apparatus in distributed storage system, and computer program product |
US11163730B2 (en) * | 2019-05-13 | 2021-11-02 | Microsoft Technology Licensing, Llc | Hard link operations for files in a file system |
CN110674518A (zh) * | 2019-09-26 | 2020-01-10 | 海南新软软件有限公司 | 一种设备标识信息生成方法、装置及系统 |
CN110769062A (zh) * | 2019-10-29 | 2020-02-07 | 广东睿江云计算股份有限公司 | 一种分布式存储的异地灾备方法 |
CN112835511B (zh) * | 2019-11-25 | 2022-09-20 | 浙江宇视科技有限公司 | 分布式存储集群的数据写入方法、装置、设备和介质 |
CN111064801B (zh) * | 2019-12-26 | 2023-06-13 | 浪潮电子信息产业股份有限公司 | 一种基于分布式文件系统的osd通信方法、装置及介质 |
US11609834B2 (en) * | 2020-01-21 | 2023-03-21 | Druva Inc. | Event based aggregation for distributed scale-out storage systems |
CN111352594B (zh) * | 2020-03-12 | 2023-06-20 | 湖州旻合科技有限公司 | eFuse中写入数据、读取数据的方法及装置 |
CN111857602B (zh) * | 2020-07-31 | 2022-10-28 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、数据节点及存储介质 |
CN111966845B (zh) * | 2020-08-31 | 2023-11-17 | 重庆紫光华山智安科技有限公司 | 图片管理方法、装置、存储节点及存储介质 |
CN112261097B (zh) * | 2020-10-15 | 2023-11-24 | 科大讯飞股份有限公司 | 用于分布式存储系统的对象定位方法及电子设备 |
CN114697351B (zh) * | 2020-12-30 | 2023-03-10 | 华为技术有限公司 | 一种存储管理方法、设备及介质 |
CN113821377B (zh) * | 2021-08-27 | 2023-12-22 | 济南浪潮数据技术有限公司 | 一种分布式存储集群的数据恢复方法、系统及存储介质 |
CN113742140B (zh) * | 2021-11-03 | 2022-03-18 | 统信软件技术有限公司 | 一种文件备份方法、装置及计算设备 |
CN115981875B (zh) * | 2023-03-21 | 2023-08-25 | 人工智能与数字经济广东省实验室(广州) | 内存存储系统的增量更新方法、装置、设备、介质和产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146904A (ja) | 2004-11-17 | 2006-06-08 | Hitachi Ltd | ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法 |
CN100355899C (zh) | 2006-04-14 | 2007-12-19 | 清华大学 | 一种对具荚膜细菌发酵液过滤预处理方法 |
US8825602B1 (en) | 2010-03-15 | 2014-09-02 | Symantec Corporation | Systems and methods for providing data protection in object-based storage environments |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651147B2 (en) | 2001-05-08 | 2003-11-18 | International Business Machines Corporation | Data placement and allocation using virtual contiguity |
US6957362B2 (en) | 2002-08-06 | 2005-10-18 | Emc Corporation | Instantaneous restoration of a production copy from a snapshot copy in a data storage system |
US7209933B2 (en) * | 2003-12-12 | 2007-04-24 | Oracle International Corporation | Object versioning |
US7386663B2 (en) * | 2004-05-13 | 2008-06-10 | Cousins Robert E | Transaction-based storage system and method that uses variable sized objects to store data |
EP1815340A2 (en) * | 2004-11-05 | 2007-08-08 | Trusted Data Corporation | Dynamically upgradeable fault-tolerant storage system permitting variously sized storage devices and method |
US20060204134A1 (en) | 2005-03-01 | 2006-09-14 | James Modrall | Method and system of viewing digitized roll film images |
US7373366B1 (en) * | 2005-06-10 | 2008-05-13 | American Megatrends, Inc. | Method, system, apparatus, and computer-readable medium for taking and managing snapshots of a storage volume |
US7716171B2 (en) | 2005-08-18 | 2010-05-11 | Emc Corporation | Snapshot indexing |
US8285758B1 (en) * | 2007-06-30 | 2012-10-09 | Emc Corporation | Tiering storage between multiple classes of storage on the same container file system |
US20100082538A1 (en) * | 2008-09-29 | 2010-04-01 | Heiko Rentsch | Isolated replication of shared objects |
US8099572B1 (en) * | 2008-09-30 | 2012-01-17 | Emc Corporation | Efficient backup and restore of storage objects in a version set |
JP5244979B2 (ja) * | 2009-02-23 | 2013-07-24 | 株式会社日立製作所 | ストレージシステムおよびその制御方法 |
CN101515296A (zh) * | 2009-03-06 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 数据更新方法和装置 |
US8285681B2 (en) | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
CN101783814A (zh) * | 2009-12-29 | 2010-07-21 | 上海交通大学 | 海量存储系统的元数据存储方法 |
US8352501B2 (en) | 2010-01-28 | 2013-01-08 | Cleversafe, Inc. | Dispersed storage network utilizing revision snapshots |
US9852150B2 (en) | 2010-05-03 | 2017-12-26 | Panzura, Inc. | Avoiding client timeouts in a distributed filesystem |
US9824095B1 (en) | 2010-05-03 | 2017-11-21 | Panzura, Inc. | Using overlay metadata in a cloud controller to generate incremental snapshots for a distributed filesystem |
US8396905B2 (en) | 2010-11-16 | 2013-03-12 | Actifio, Inc. | System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies |
JP5775177B2 (ja) * | 2011-09-14 | 2015-09-09 | 株式会社日立製作所 | クローンファイル作成方法と、それを用いたファイルシステム |
US9804928B2 (en) | 2011-11-14 | 2017-10-31 | Panzura, Inc. | Restoring an archived file in a distributed filesystem |
US9635132B1 (en) * | 2011-12-15 | 2017-04-25 | Amazon Technologies, Inc. | Service and APIs for remote volume-based block storage |
US9817834B1 (en) * | 2012-10-01 | 2017-11-14 | Veritas Technologies Llc | Techniques for performing an incremental backup |
US9092837B2 (en) | 2012-11-29 | 2015-07-28 | International Business Machines Corporation | Use of snapshots to reduce risk in migration to a standard virtualized environment |
US9742873B2 (en) | 2012-11-29 | 2017-08-22 | International Business Machines Corporation | Adjustment to managed-infrastructure-as-a-service cloud standard |
CN104079600B (zh) | 2013-03-27 | 2018-10-12 | 中兴通讯股份有限公司 | 文件存储方法、装置、访问客户端及元数据服务器系统 |
US20140344539A1 (en) | 2013-05-20 | 2014-11-20 | Kaminario Technologies Ltd. | Managing data in a storage system |
CN103558998B (zh) * | 2013-11-07 | 2016-03-30 | 华为技术有限公司 | 一种数据操作的方法和设备 |
US20150244795A1 (en) * | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US9400741B1 (en) * | 2014-06-30 | 2016-07-26 | Emc Corporation | Reclaiming space from file system hosting many primary storage objects and their snapshots |
-
2014
- 2014-12-27 SG SG11201703410YA patent/SG11201703410YA/en unknown
- 2014-12-27 KR KR1020177012992A patent/KR102030786B1/ko active IP Right Grant
- 2014-12-27 BR BR112017011412-7A patent/BR112017011412B1/pt active IP Right Grant
- 2014-12-27 CA CA2965715A patent/CA2965715C/en active Active
- 2014-12-27 CN CN201810336937.4A patent/CN108733761B/zh active Active
- 2014-12-27 JP JP2017528138A patent/JP6607941B2/ja active Active
- 2014-12-27 AU AU2014415350A patent/AU2014415350B2/en active Active
- 2014-12-27 WO PCT/CN2014/095223 patent/WO2016101283A1/zh active Application Filing
- 2014-12-27 CN CN201480075382.2A patent/CN105993013B/zh active Active
- 2014-12-27 EP EP14908851.0A patent/EP3203386A4/en not_active Ceased
-
2017
- 2017-06-27 US US15/634,819 patent/US11032368B2/en active Active
- 2017-06-27 US US15/634,774 patent/US20170295239A1/en not_active Abandoned
-
2021
- 2021-01-27 US US17/160,032 patent/US11799959B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146904A (ja) | 2004-11-17 | 2006-06-08 | Hitachi Ltd | ストレージシステムでオブジェクトレベルのスナップショットを生成するシステムと方法 |
CN100355899C (zh) | 2006-04-14 | 2007-12-19 | 清华大学 | 一种对具荚膜细菌发酵液过滤预处理方法 |
US8825602B1 (en) | 2010-03-15 | 2014-09-02 | Symantec Corporation | Systems and methods for providing data protection in object-based storage environments |
Also Published As
Publication number | Publication date |
---|---|
AU2014415350B2 (en) | 2019-02-21 |
CA2965715A1 (en) | 2016-06-30 |
AU2014415350A1 (en) | 2017-05-18 |
EP3203386A1 (en) | 2017-08-09 |
EP3203386A4 (en) | 2017-12-27 |
US11032368B2 (en) | 2021-06-08 |
BR112017011412A2 (pt) | 2018-06-26 |
JP6607941B2 (ja) | 2019-11-20 |
CN108733761B (zh) | 2021-12-03 |
WO2016101283A1 (zh) | 2016-06-30 |
US20170293533A1 (en) | 2017-10-12 |
KR20170068564A (ko) | 2017-06-19 |
SG11201703410YA (en) | 2017-06-29 |
US20170295239A1 (en) | 2017-10-12 |
US20210152638A1 (en) | 2021-05-20 |
US11799959B2 (en) | 2023-10-24 |
JP2017537397A (ja) | 2017-12-14 |
CN105993013A (zh) | 2016-10-05 |
CA2965715C (en) | 2019-02-26 |
CN105993013B (zh) | 2018-05-04 |
BR112017011412A8 (pt) | 2022-09-06 |
BR112017011412B1 (pt) | 2023-02-14 |
CN108733761A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102030786B1 (ko) | 데이터 처리 방법, 장치 및 시스템 | |
CN110321301B (zh) | 一种数据处理的方法及装置 | |
US8612488B1 (en) | Efficient method for relocating shared memory | |
US11579777B2 (en) | Data writing method, client server, and system | |
JP6501916B2 (ja) | ファイルストレージにおけるインデックス付け実施方法及びシステム | |
CN102779180A (zh) | 数据存储系统的操作处理方法,数据存储系统 | |
US12086116B2 (en) | Object and sequence number management | |
US9436410B2 (en) | Replication of volumes on demands using absent allocation | |
JP6388339B2 (ja) | 分散キャッシングおよびキャッシュ分析 | |
JP2020506444A (ja) | 期限切れバックアップ処理方法及びバックアップサーバ | |
CN111090618B (zh) | 一种数据读取方法、系统及设备 | |
US12141106B2 (en) | File system cloning method and apparatus | |
US9122689B1 (en) | Recovering performance of a file system post-migration | |
US10387043B2 (en) | Writing target file including determination of whether to apply duplication elimination | |
KR20190056087A (ko) | 블록 삭제시의 데이터 입출력을 최소화하는 파일 관리 구조 제어 시스템 및 방법 | |
WO2021189312A1 (en) | Meta server crash recovery in object storage system using enhanced meta structure | |
WO2021189308A1 (en) | Delete operation in object storage system using enhanced meta structure | |
WO2021189306A1 (en) | Write operation in object storage system using enhanced meta structure | |
WO2021189315A1 (en) | Proxy server crash recovery in object storage system using enhanced meta structure | |
WO2021189314A1 (en) | Data server crash recovery in object storage system using enhanced meta structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0105 | International application |
Patent event date: 20170512 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PA0201 | Request for examination | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20180718 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190121 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20190708 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20191002 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20191004 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20220915 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20230918 Start annual number: 5 End annual number: 5 |