KR100541530B1 - Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity - Google Patents

Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity Download PDF

Info

Publication number
KR100541530B1
KR100541530B1 KR1020030088732A KR20030088732A KR100541530B1 KR 100541530 B1 KR100541530 B1 KR 100541530B1 KR 1020030088732 A KR1020030088732 A KR 1020030088732A KR 20030088732 A KR20030088732 A KR 20030088732A KR 100541530 B1 KR100541530 B1 KR 100541530B1
Authority
KR
South Korea
Prior art keywords
snapshot
cow
data block
block
mapping
Prior art date
Application number
KR1020030088732A
Other languages
Korean (ko)
Other versions
KR20050055510A (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 한국전자통신연구원
Priority to KR1020030088732A priority Critical patent/KR100541530B1/en
Publication of KR20050055510A publication Critical patent/KR20050055510A/en
Application granted granted Critical
Publication of KR100541530B1 publication Critical patent/KR100541530B1/en

Links

Images

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/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

본 발명은 멀티 호스트에서 대용량 저장장치를 공유하여 사용하는 환경에서 매핑을 기반으로 하는 대용량 저장장치 볼륨을 위한 스냅샷 기법에 관한 것으로, 본 발명의 스냅샷 상태 테이블(SST)은 디스크가 아닌 메모리상에 유지되고, 데이터 블록의 할당 시점을 나타내는 COW(Copy-on-Write)의 수행 여부를 나타내는 DAB(Data-block Allocation-time Bit)와 CDB(COW of Data-block Bit)로 이루어진 엔트리들로 구성된다. The present invention relates to a snapshot technique for a mass storage volume based on a mapping in an environment in which mass storage devices are shared by multiple hosts, and the snapshot state table (SST) of the present invention is stored on a memory rather than a disk. It consists of entries consisting of Data-block Allocation-time Bits (DABs) and COW of Data-block Bits (CDBs), which indicate whether to perform copy-on-write (COW), which indicates when to allocate a data block. do.

따라서, 본 발명은 스냅샷이 존재하는 볼륨에 대한 쓰기 연산과 스냅샷 삭제 수행 시 COW의 수행 여부 판단을 위해 추가적인 디스크 접근이 요구되지 않는다. 기존 스냅샷 기법이 디스크에 저장된 원본 매핑 블록의 매핑 엔트리를 이용하여 COW의 수행 여부를 판단하던 것을, 메모리상의 SST를 통해 처리하여 매핑 블록에 대한 접근을 완전히 없애 스냅샷 기법의 성능을 향상시킬 수 있다.Therefore, in the present invention, additional disk access is not required for determining whether to perform COW when performing a write operation and a snapshot deletion on the volume where the snapshot exists. It is possible to improve the performance of the snapshot technique by eliminating the access to the mapping block by completely removing the access to the mapping block by using the SST in memory to determine whether the COW has been performed using the mapping entry of the original mapping block stored in the disk. have.

스냅샷, 매핑 테이블, 스냅샷 상태 테이블, COW(Copy-on-Write)Snapshot, mapping table, snapshot state table, copy-on-write

Description

메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법{Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity} Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity}

도 1은 일반적인 스냅샷 기법의 카피 온 라이트(Copy-on-Write: COW) 과정을 도시한 도면.1 illustrates a copy-on-write (COW) process of a general snapshot technique.

도 2는 본 발명이 적용되는 스토리지를 공유하는 멀티 호스트 시스템의 구성 환경을 도시한 도면.2 is a diagram illustrating a configuration environment of a multi-host system sharing storage to which the present invention is applied.

도 3은 본 발명에 따른 스냅샷 상태 테이블 및 엔트리의 구조를 도시한 도면.Figure 3 illustrates the structure of a snapshot status table and entries in accordance with the present invention.

도 4a,4b는 본 발명의 일 실시예에 따른 스냅샷 삭제 방법의 동작 흐름도.4A and 4B are flowcharts illustrating an operation of deleting a snapshot according to an embodiment of the present invention.

도 5a,5b는 본 발명의 일 실시예에 따른 쓰기 연산의 동작 흐름도.5A and 5B are operational flowcharts of a write operation according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

200: 스토리지 에리어 네트워크 환경 202: 네트워크 저장장치200: storage area network environment 202: network storage device

201: 스위치 203: 호스트201: switch 203: host

204: LAN 110: 원본 파일시스템204: LAN 110: original file system

120: 스냅샷 영역 301: 스냅샷 상태 테이블120: Snapshot area 301: Snapshot state table

302: 스냅샷 상태 테이블 엔트리 303: 논리주소302: Snapshot State Table Entry 303: Logical Address

304: 데이터블록 할당 비트(DAB) 305: COW 데이터블록 비트(CDB)304: Data Block Allocation Bits (DAB) 305: COW Data Block Bits (CDB)

본 발명은 공유 스토리지 환경의 대용량 저장 장치를 위한 스냅샷 기법에 관한 것으로, 더욱 상세하게는 스토리지 에리어 네트워크(SAN: Storage Area Network) 기반의 공유 스토리지 클러스터 환경에서 대용량 저장장치의 스냅샷(Snapshot) 수행 방법에 관한 것이다.The present invention relates to a snapshot technique for a mass storage device in a shared storage environment, and more particularly, to perform a snapshot of a mass storage device in a shared storage cluster environment based on a storage area network (SAN). It is about a method.

기업 규모의 시스템에서는 데이터 웨어하우스(Data Warehouse)의 구축과 ERP(Enterprise Resource Planning), CRM(Customer Relationship Management) 시스템 등의 도입으로 사용자에게 공유되고 서비스되는 데이터의 양이 기하급수적으로 증가하고 있다. 즉, 인터넷의 폭발적인 성장과 온라인 상에서의 정보유지 필요성, 의사결정 지원정보의 수집/추적에 대한 필요성, 서버 통합 및 비즈니스 중심 애플리케이션으로의 PC 서버 움직임, 그리고 애플리케이션의 복잡성 증가 등 다양한 요인들로 인해 대용량 스토리지에 대한 요구가 계속 높아지고 있다. 이처럼 고속 대용량 데이터 처리요구를 충족시키기 위한 솔루션으로 등장한 것이 바로 스토리지 에리어 네트워크(SAN: Storage Area Network)이다. SAN은 분산 네트워킹에서 주류가 되고 있으며, 이미 스토리지를 구성하는 데 있어서 기본적인 조건으로 자리잡고 있다.In enterprise-scale systems, the amount of data shared and serviced to users is growing exponentially with the establishment of data warehouses, enterprise resource planning (ERP), and customer relationship management (CRM) systems. In other words, due to the explosive growth of the Internet and the necessity of maintaining information online, the need for collecting and tracking decision support information, PC server movement toward server consolidation and business-oriented applications, and increased application complexity The demand for storage continues to rise. It is the Storage Area Network (SAN) that emerged as a solution to meet high-speed, high-capacity data processing needs. SANs are becoming mainstream in distributed networking, and they are already the basic conditions for configuring storage.

한편, 24 X 7 X 365 환경을 지원해야 하는 엔터프라이즈 시스템에서는 고속의 대용량 데이터 처리 이외에도 데이터에 대한 가용성 및 신뢰성이 요구된다. 여러 가지 신뢰성 및 가용성을 보장해주는 방법 중, 이러한 시스템의 요구 사항을 만족시켜 줄 수 있는 방법으로 온라인 백업의 중요성이 부각되고 있다. 그런데 대용량의 데이터에 대한 백업을 수행하기 위해서는 백업 수행 시간이 기하급수적으로 증가하게 된다. 따라서, 서비스의 중단이나 시스템의 재시작 없이 백업을 수행할 수 있는 매핑 테이블 기반의 온라인 스냅샷(snapshot)의 제공이 필수적이다. On the other hand, enterprise systems that need to support 24 x 7 x 365 environments require data availability and reliability in addition to high-speed, high-volume data processing. Among the many ways to ensure reliability and availability, the importance of online backup is emerging as a way to meet the requirements of these systems. However, in order to perform a backup of a large amount of data, the backup execution time increases exponentially. Therefore, it is essential to provide an online snapshot based on a mapping table that can perform backup without interruption of service or restart of the system.

하지만, 매핑 테이블 기반의 스냅샷 기법을 SAN을 기반으로 하는 대용량의 공유 스토리지 시스템에 적용할 경우에 다음과 같은 몇 가지 문제점을 가진다.However, there are some problems when applying the mapping table-based snapshot technique to a large capacity shared storage system based on SAN.

첫째, 스냅샷 생성 후 데이터 블록에 대한 처음 변경의 처리를 수행하는 Copy-on-Write(COW)와 COW 이후에 발생하는 데이터 블록의 변경은 COW의 수행 여부를 판단하기 위해 매핑 블록에 대한 추가적인 디스크 입출력(I/O)을 요구하게 되어 쓰기 연산의 성능 저하를 초래한다. First, copy-on-write (COW), which handles the initial changes to the data blocks after the snapshot is taken, and changes to the data blocks that occur after the COW are additional disks to the mapping block to determine whether to perform the COW. Input / output (I / O) is required, resulting in poor performance of write operations.

둘째, 스냅샷 삭제를 수행할 경우에도 데이터 블록에 대한 할당을 해제할 때 COW가 수행된 데이터 블록인지 판단하는 과정에서 매핑 블록에 대한 추가적인 디스크 입출력(I/O)이 요구되어 동시 수행되는 쓰기 연산의 성능 저하가 발생하고, 스냅샷 삭제 수행 시간이 길어지는 문제점이 있다.Second, even when the snapshot deletion is performed, additional disk input / output (I / O) is required for the mapping block in the process of determining whether the data block is COW performed when deallocating the data block. There is a problem in that performance degradation occurs, and the time for performing the snapshot deletion is long.

도 1은 일반적인 디스크 기반의 스냅샷(Snapshot) 기법에서 Copy-on-Write(COW)의 수행 과정을 나타낸 개략도이다. 1 is a schematic diagram illustrating a process of performing Copy-on-Write (COW) in a general disk-based snapshot technique.

도 1을 참조하면, 참조번호 110은 가장 최근의 데이터를 가지고 있는 원본 파일시스템이고, 120은 스냅샷이 생성되었을 때 변경된 데이터에 대해서 스냅샷이 걸린 상태를 유지하기 위해 필요한 데이터를 저장하는 스냅샷 영역이다. 파일시스템(110)에는 파일 A(111)와 파일 B(112)가 저장되어 있고, 파일 A(111)는 A1, A2 블록으로 이루어지고, 파일 B(112)는 B1, B2 그리고 B3 블록으로 이루어져 있다.Referring to FIG. 1, reference numeral 110 denotes an original file system having the most recent data, and 120 denotes a snapshot for storing data necessary to maintain a snapshot state for changed data when a snapshot is created. Area. In the file system 110, a file A 111 and a file B 112 are stored. The file A 111 is composed of A1 and A2 blocks, and the file B 112 is composed of B1, B2 and B3 blocks. have.

이와 같은 구조에서 응용(application) 프로그램으로부터 스냅샷이 생성되기 전에 파일 A(111)의 첫번째 블록(A1)에 대한 읽기 요청이 들어오면(151), 파일 시스템(110)에 저장되어 있는 파일 A(111)의 블록 A1을 읽어서 서비스를 수행한다. In this structure, when a read request for the first block A1 of file A 111 is received before a snapshot is generated from an application program (151), file A (stored in file system 110) is stored. Read the block A1 of 111) to perform the service.

그러나 스냅샷이 생성된 이후에 파일 B(112)의 첫번째 블록(B1)에 대한 쓰기가 요청되면(154), 첫번째 갱신인지를 검사하는 과정(140)이 필요하다. 즉, COW가 수행되었는지 검사하는 과정이 필요하다. 만일, 파일 B(112)의 첫 번째 블록(B1)에 대한 쓰기 연산이 첫 갱신이라면 카피 온 라이트(COW)를 수행해야 한다. However, if a write to the first block B1 of the file B 112 is requested 154 after the snapshot is created, a process 140 for checking whether it is the first update is necessary. In other words, it is necessary to check whether the COW has been performed. If the write operation for the first block B1 of the file B 112 is the first update, a copy on write COW should be performed.

카피 온 라이트(COW) 수행과정은 파일 시스템(110)에 있는 파일 B(112)의 첫 번째 블록(B1)을 새로 할당된 스냅샷 영역(120)의 블록(B1':122)으로 복사하고, 스냅샷 데이터 블록에 대한 매핑 정보를 변경된 블록 맵(121)에 기록한다. 그리고 실제 갱신할 내용은 원본 파일 시스템(110) 내의 파일 B(112)의 첫 번째 블록(B1)에 기록한다. 만일, 처음 갱신이 아니라면 원본 파일시스템(110)의 파일 B(112)의 첫 번째 블록(B1)에 변경된 데이터의 내용을 기록한다.The copy on write process copies the first block B1 of the file B 112 in the file system 110 to the blocks B1 ': 122 of the newly allocated snapshot area 120. The mapping information for the snapshot data block is recorded in the changed block map 121. The actual update contents are recorded in the first block B1 of the file B 112 in the original file system 110. If it is not the first update, the changed data is recorded in the first block B1 of the file B 112 of the original file system 110.

한편, 스냅샷에 대한 읽기 연산 수행 시에도 카피 온 라이트(COW)에 의해 변경된 블록인지를 검사하는 과정(130)이 필요하다. 만일, 변경되지 않은 블록이라면 원본 파일 시스템(110)의 데이터를 바로 읽는다. 하지만 변경이 발생한 경우에 는 스냅샷 영역(120)의 변경된 블록 맵(121)을 검사하여 변경된 블록의 물리적인 위치(122)를 찾아 데이터를 읽는다. 즉, 파일 A의 첫번째 블록(A1)에 대한 읽기(153)라면, 변경되지 않은 블록이므로 원본 파일시스템(110)의 블록(A1)을 읽어 오고, 파일 B의 첫번째 블록(B1)에 대한 읽기(152)라면 변경된 블록이므로 스냅샷 영역의 블록(B1')을 읽어 온다.Meanwhile, even when performing a read operation on the snapshot, a process 130 for checking whether the block has been changed by the copy on write COW is required. If the block is not changed, the data of the original file system 110 is immediately read. However, if a change occurs, the changed block map 121 of the snapshot area 120 is inspected to find the physical location 122 of the changed block and read the data. That is, if it is a read 153 of the first block A1 of file A, it is an unchanged block, so that block A1 of the original file system 110 is read, and a read of the first block B1 of file B is performed. In step 152, the block B1 'of the snapshot area is read because it is a changed block.

이와 같이 종래에는 스냅샷에 대한 읽기 과정이나 스냅샷 삭제시에 카피 온 라이트(COW)의 수행여부를 확인하기 위해 매핑 블록을 접근하기 위해 매핑 블록이 저장된 디스크에 대한 추가적인 입출력(I/O)이 요구되어 동시 수행되는 쓰기 연산의 성능 저하가 발생하고, 스냅샷 삭제 수행 시간이 길어지는 문제점이 있다. As described above, additional input / output (I / O) to the disk in which the mapping block is stored to access the mapping block to check whether the COW is performed when the snapshot is read or the snapshot is deleted is conventionally performed. There is a problem in that performance of a write operation that is requested and executed concurrently occurs, and a snapshot deletion execution time becomes long.

따라서, 본 발명은 상술한 종래의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 대용량 공유 스토리지를 제공하는 SAN(Storage Area Network) 기반에서 대용량 논리 볼륨을 위해 성능이 향상된 스냅샷 수행 방법을 제공하는데 있다. 즉, 본 발명은 메모리에 스냅샷 상태를 나타내는 테이블을 유지하여 스냅샷이 존재하는 경우의 쓰기 연산과 스냅샷 삭제 시 카피 온 라이트(COW)의 판단을 위해 요구되던 디스크의 매핑 블록에 대한 읽기를 없애 성능을 향상시키고, COW 수행 후 이를 나타내는 처음 할당 비트(DAB: Data-block Allocation-time Bit)와 COW 데이터블록 비트(CDB: COW of Snapshot Bit)값을 가진 스냅샷 상태 테이블 엔트리를 디스크에 저장하는 과정이 요구되지 않아 쓰기 연산의 성능을 향상시킬 수 있다. Accordingly, an object of the present invention is to provide a method for performing a performance-enhanced snapshot for a large-capacity logical volume on a storage area network (SAN) that provides large shared storage. have. In other words, the present invention maintains a table indicating a snapshot status in memory to read a mapping block of a disk that is required for a write operation when a snapshot exists and the determination of a copy on write when the snapshot is deleted. To improve performance and save snapshot state table entries to disk with initial data-block allocation location (DAB) and COW of snapshot bit (CDB) values that indicate this after COW It does not require a process to improve the performance of write operations.

상기와 같은 목적을 달성하기 위하여 본 발명의 스냅샷 삭제 방법은, 다수의 호스트들이 대용량의 네트워크 저장장치를 공유하도록 된 스토리지 에리어 네트워크(SAN) 기반의 시스템에서 스냅샷을 삭제하는 방법에 있어서, 매핑 서버가 존재하는 모든 노드의 연산 모드를 스냅샷 삭제(SNAPSHOT_DESTROY) 모드로 변경하는 제1 단계; 매핑 블록에 대한 잠금을 획득하는 제2 단계; 매핑 엔트리가 가리키는 데이터 블록의 카피-온-라이트(COW) 수행 여부의 판단을 스냅샷 상태 테이블 엔트리의 처음 할당 비트(DAB)와 COW 데이터블록 비트(CDB)를 사용하여 처리하는 제3 단계; 카피-온-라이트(COW)가 수행된 경우, 처음 할당비트(DAB)나 COW 데이터블록 비트(CDB)를 초기화하고, 상기 매핑 블록의 잠금을 해제하는 제4 단계; 및 모든 데이터 블록에 대한 초기화가 완료되면, 스냅샷을 삭제하는 제5 단계를 포함하는 것을 특징으로 한다. In order to achieve the above object, the snapshot deletion method of the present invention provides a method of deleting a snapshot in a storage area network (SAN) -based system in which a plurality of hosts share a large amount of network storage. A first step of changing an operation mode of all nodes in which a server exists to a snapshot deletion (SNAPSHOT_DESTROY) mode; Obtaining a lock on the mapping block; A third step of processing whether to perform copy-on-write (COW) of the data block indicated by the mapping entry by using the first allocation bit (DAB) and the COW data block bit (CDB) of the snapshot state table entry; A fourth step of initializing a first allocation bit (DAB) or a COW data block bit (CDB) when the copy-on-write (COW) is performed and unlocking the mapping block; And a fifth step of deleting a snapshot when initialization of all data blocks is completed.

또한 상기와 같은 목적을 달성하기 위하여 본 발명의 스냅샷 수행 방법은 다수의 호스트들이 대용량의 네트워크 저장장치를 공유하도록 된 스토리지 에리어 네트워크(SAN) 기반의 시스템에서 쓰기 연산을 수행하는 방법에 있어서, 스냅샷이 존재하는지 아닌지를 판단하여 매핑을 수행하는 제1 단계; 상기 매핑 블록을 디스크로부터 읽어서 원하는 매핑 엔트리의 값을 구하는 제2 단계; 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(DAB) 값을 확인하여 데이터 블록이 스냅샷 생성 이후 처음 할당, 사용되었는지 판단하는 제3 단계; 데이터블록 할당 비트(DAB) 값이 0이고 매핑 엔트리 값이 초기값인 경우, 새로운 블록을 할당하고 데이터 내용을 복사 디스크에 기록하고, 데이터블록 할당 비트(DAB) 값을 1로 변경하는 제4 단계; 데이터 블록이 스냅샷 이전에 할당된 경우, COW 데이터블록 비트(CDB) 값을 통하여 카피 온 라이트(COW)가 수행되었는지를 판단하는 제5 단계; 및 COW 데이터블록 비트(CDB)값이 0으로서 COW가 수행되지 않은 경우, 카피 온 라이트(COW)를 수행하고, COW 데이터블록 비트(CDB) 값을 1로 변경하는 제6 단계를 포함하는 것을 특징으로 한다.
In addition, in order to achieve the above object, a snapshot performing method of the present invention provides a method for performing a write operation in a storage area network (SAN) -based system in which a plurality of hosts share a large amount of network storage. Determining whether a shot exists or not and performing mapping; A second step of reading the mapping block from a disk to obtain a value of a desired mapping entry; Checking a data block allocation bit (DAB) value of a snapshot state table entry to determine whether a data block is first allocated and used after a snapshot is created; A fourth step of allocating a new block, writing the data contents to a copy disk, and changing the datablock allocation bit (DAB) value to 1 when the datablock allocation bit (DAB) value is 0 and the mapping entry value is an initial value. ; A fifth step of determining whether a copy on write has been performed through a COW data block bit (CDB) value when the data block has been allocated before the snapshot; And a sixth step of performing a copy on write (COW) and changing the COW data block bit (CDB) value to 1 when the COW data block bit (CDB) value is 0 and COW is not performed. It is done.

이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 설명한다. Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings.

본 발명의 실시예에서는 대용량 공유 저장 장치를 위한 스냅샷 기법을 LVM(Logical Volume Manager)에 적용시켜 설명한다. 또한 본 발명에 따른 실시예의 알고리즘을 스냅샷 삭제, 및 쓰기 연산으로 구분하여 설명하기로 한다. In an embodiment of the present invention, a snapshot technique for mass shared storage is applied to a Logical Volume Manager (LVM). In addition, the algorithm of the embodiment according to the present invention will be described by dividing into a snapshot delete and a write operation.

도 2는 본 발명에 따라 멀티 호스트간에 대용량 공유 저장장치를 제공하는 SAN 기반의 물리적인 환경을 나타내는 시스템 구성도로서, 논리 볼륨 관리자(LVM)가 SAN(Storage Area Network)을 통한 멀티 호스트 환경에서 스토리지 공유를 제공하는 공유 스토리지 클러스터 시스템이 도시되어 있다. FIG. 2 is a system configuration diagram illustrating a SAN-based physical environment providing mass shared storage between multiple hosts according to the present invention, wherein a logical volume manager (LVM) stores storage in a multi-host environment through a storage area network (SAN). A shared storage cluster system is provided that provides sharing.

논리 볼륨 관리자(LVM)의 기반이 되는 SAN 환경(200)은 도 2에 도시된 바와 같이, 데이터를 저장 및 보관하기 위한 네트워크 스토리지 풀(Network Storage Pool: 202)과, 이러한 네트웍크 스토리지 풀(202)들을 공유하면서 사용자에게 서비스를 제공하기 위해 이들을 액세스하는 다중 호스트들(Host1~Host4: 203), 그리고 네트워크 스토리지 풀(202)들과 호스트들(203)을 화이버 채널(Fibre Channel: FC)을 통해 연결하고 있는 저장장치 네트워크 연결망인 스위치(Switch)들(201)로 구성 된다. 여기서, 네트워크 스토리지 풀(202)은 백업 디바이스, 디스크 어레이, 디스크, RAID, JBOD 등으로 이루어진 저장장치이다. The SAN environment 200 on which the Logical Volume Manager (LVM) is based includes a Network Storage Pool (202) for storing and storing data, and the Network Storage Pool (202), as shown in FIG. The multiple hosts (Host1-Host4: 203), and the network storage pools (202) and hosts (203) via Fiber Channel (FC) to share them. It is composed of switches (201) which is a storage network network. Here, the network storage pool 202 is a storage device consisting of a backup device, a disk array, a disk, a RAID, a JBOD, and the like.

이러한 구성에서 각 호스트(203)는 스위치(switch: 201)와의 연결을 위해 HBA(Host Bus Adaptor)를 사용하고, 호스트(203)와 스위치(201)의 연결도 화이버 채널(Fibre Channel: FC)을 사용하여 구성된다. 각 호스트(Host1~Host4)(203)는 제어 및 관리 정보를 처리하기 위해 LAN(204)으로 연결된다. 이러한 물리적인 환경이 준비되면 논리 볼륨 관리자(LVM)를 사용할 수 있는 환경이 갖추어지게 된다. In this configuration, each host 203 uses a host bus adapter (HBA) for connection with the switch 201, and the connection between the host 203 and the switch 201 uses a Fiber Channel (FC). Is configured using. Each host (Host1-Host4) 203 is connected to a LAN 204 to process control and management information. When this physical environment is ready, you are ready to use Logical Volume Manager (LVM).

도 3은 본 발명에서 제안하는 스냅샷을 구현하기 위한 스냅샷 상태 테이블의 엔트리 구조를 나타낸다.3 shows an entry structure of a snapshot state table for implementing a snapshot proposed in the present invention.

도 3을 참조하면, 본 발명의 스냅샷 상태 테이블(301)은 메인 메모리상에 구현되어 있고, 스냅샷 상태 테이블의 각 엔트리(302)는 2 종류의 스냅샷 상태 정보를 나타내는 비트로 구성된다. 이때, 각 엔트리(302)는 매핑 블록 엔트리의 논리적인 주소(0~N: 303)에 해당한다. 즉, 하나의 매핑 블록 엔트리에 대해 하나의 스냅샷 상태 테이블 엔트리(302)가 할당된다. 각 엔트리(302)는 데이터블록 할당 비트(DAB)(304)와 COW 데이터블록 비트(CDB: )(305)들로 이루어진다.Referring to Fig. 3, the snapshot status table 301 of the present invention is implemented in main memory, and each entry 302 of the snapshot status table is composed of bits representing two kinds of snapshot status information. At this time, each entry 302 corresponds to a logical address (0 to N: 303) of the mapping block entry. That is, one snapshot state table entry 302 is assigned to one mapping block entry. Each entry 302 is made up of data block allocation bits (DAB) 304 and COW data block bits (CDB) 305.

데이터블록 할당 비트(DAB)(304)는 모든 스냅샷 상태 테이블 엔트리(302)의 제일 첫 번째 비트를 할당하여 사용한다. DAB(304)는 스냅샷 생성 이후 처음 할당, 사용되는 데이터 블록을 구별하기 위해 사용되는 비트이다. 스냅샷 생성 이후 데이터 블록이 할당되고 처음 사용될 때 DAB 값을 '1'로 변경한다. COW 데이터블록 비트(CDB)(305)는 스냅샷의 상태를 나타내는 비트로서, '1'이면 스냅샷 생성 후 카피 온 라이트(COW)가 수행되었다는 의미이고, '0'이면 초기값이나 아직 카피 온 라이트(COW)가 수행되지 않은 상태임을 표시한다. CDB(305)는 스냅샷 마다 1비트씩 할당되고, 최대 스냅샷 개수 만큼의 비트가 할당된다. 데이터블록 할당 비트(DAB: 304)와 COW 데이터블록 비트(CDB: 305)는 스냅샷이 처음 생성될 때 메모리의 스냅샷 상태 테이블(301) 생성 및 초기화 과정에서 '0'으로 초기화된다. The datablock allocation bit (DAB) 304 allocates and uses the first bit of every snapshot state table entry 302. The DAB 304 is a bit used to distinguish the data block that is first allocated and used after the snapshot is taken. Change the DAB value to '1' when the data block is allocated and used for the first time after taking the snapshot. The COW data block bit (CDB) 305 is a bit indicating the status of the snapshot. If '1', it means that the COW was performed after the snapshot was created. Indicates that the COW has not been performed. The CDB 305 is allocated one bit per snapshot, and as many bits as the maximum number of snapshots are allocated. The data block allocation bit (DAB) 304 and the COW data block bit (CDB) 305 are initialized to '0' during the creation and initialization of the snapshot state table 301 in memory when the snapshot is first created.

통상, 디스크 기반의 스냅샷 기법에서는 스냅샷 이후 처음 사용되는 블록에 대해 그 이후에 발생하는 데이터 변경 연산이 카피 온 라이트(COW)를 수행해야 하는지 판단하기 위해 원본 매핑 엔트리 및 스냅샷 매핑 엔트리를 모두 읽어서 물리 주소의 값을 비교해야 한다. 즉, 두 번의 디스크 입출력(I/O)을 수행해야 한다. 또한, 스냅샷 삭제 시에 수행되는 카피 온 라이트(COW) 수행 블록의 할당 반환의 처리에서 스냅샷 생성 이후 처음 할당된 블록에 대해서는 데이터 블록의 반환 작업을 수행하지 않아야 된다. 이러한 판단을 위해 기존의 스냅샷 기법에서는 원본 매핑 엔트리와 스냅샷 매핑 엔트리에 대한 두 번의 디스크 입출력(I/O)을 수행해야 한다. 또한 COW 데이터블록 비트(CDB:305)를 디스크의 원본 매핑 테이블에 유지하여 처리하는 방법도 원본 매핑 블록에 대한 접근으로 디스크 입출력(I/O)이 요구된다. Typically, disk-based snapshot techniques use both the original mapping snapshot entry and the snapshot mapping entry to determine if subsequent data change operations must perform copy on write (COW) for the first block used after the snapshot. Read and compare the values of the physical addresses. In other words, two disk I / Os must be performed. In addition, in the process of returning the allocation of the copy on write (COW) execution block performed at the time of deleting the snapshot, the return operation of the data block should not be performed for the block first allocated after the creation of the snapshot. To make this determination, the existing snapshot technique requires two disk input / output (I / O) of the original mapping entry and the snapshot mapping entry. In addition, a method of maintaining and processing COW data block bits (CDB: 305) in the original mapping table of the disk requires disk input / output (I / O) as access to the original mapping block.

그러나 본 발명에 따른 스냅샷 기법에서는 메모리에 저장된 스냅샷 상태 테이블 엔트리(302)의 데이터블록 할당 비트(DAB)(304)와 COW 데이터블록 비트(CDB)(305)를 사용하여 디스크의 매핑 블록에 대한 I/O를 수행하지 않고도 카피 온 라이트(COW) 수행 여부의 판단이 가능하다. 이를 위해 스냅샷 생성 이후 처음 할당/사용되는 데이터 블록에 대해 스냅샷 상태 테이블 엔트리의 DAB(304) 값을 '1'로 변경한다. However, in the snapshot scheme according to the present invention, the data block allocation bit (DAB) 304 and the COW data block bit (CDB) 305 of the snapshot state table entry 302 stored in the memory are used to map the disk to the mapping block. It is possible to determine whether to perform a copy on light (COW) without performing I / O for each other. To this end, the DAB 304 value of the snapshot state table entry is changed to '1' for the first data block allocated / used after the snapshot is created.

따라서 본 발명에서는 카피 온 라이트(COW)의 수행 여부를 판단하는 과정에서 해당 엔트리의 DAB(304)가 '1'이면, 해당 데이터 블록의 내용을 변경하고 그대로 디스크에 변경을 반영하면 된다. 이미 할당된 블록으로서 해당 엔트리의 DAB(304)가 '0'인 경우에는 COW 데이터블록 비트(CDB)(305) 값을 통해 판단한다. Accordingly, in the present invention, if the DAB 304 of the corresponding entry is '1' in the process of determining whether to perform a copy on write (COW), the contents of the data block may be changed and the change may be reflected in the disk as it is. If the DAB 304 of the entry is '0' as an already allocated block, it is determined through the COW data block bit (CDB) 305 value.

스냅샷이 존재하는 경우에 각 데이터 블록은 각각의 상태에 따라 세 가지 경우로 분류할 수 있다. When a snapshot exists, each data block can be classified into three cases according to its state.

첫 번째는 스냅샷 생성 이후에 처음으로 할당 및 사용되는 데이터 블록이다. 두 번째는 스냅샷 이전에 사용되고 스냅샷 이후에는 아직 변경이 발생하지 않은 데이터 블록이다. 즉, COW의 수행이 이루어지지 않은 데이터 블록이다. 세 번째는 스냅샷 이후에 변경이 발생한, 즉 COW가 수행된 데이터 블록이다. 통상, 스냅샷 생성 이후에 변경되는 데이터 블록의 상태는 위의 3가지 중의 하나이고, 두 번째의 경우에만 해당 데이터 블록에 대해 변경이 발생하면 COW를 수행해야 한다. The first is the data block that is allocated and used for the first time after the snapshot is created. The second is a block of data that is used before the snapshot and has not yet changed since the snapshot. That is, the data block is not performed COW. The third is the data block where the change occurred after the snapshot, that is, the COW was performed. In general, the state of a data block that is changed after a snapshot is created is one of the above three, and in the second case, a COW should be performed when a change occurs for the data block.

첫 번째의 경우와 같이 데이터 블록 중 스냅샷 생성 이후 처음 할당되는 데이터 블록들이 있을 수 있다. 이러한 데이터 블록에 대한 변경 연산이 발생하면, 처음 변경인 경우 새로운 데이터 블록을 할당하고 디스크에 쓰기를 수행한다. 그러나 스냅샷 이전에 사용되지 않은 블록이므로 카피 온 라이트(COW)는 수행되지 않는다. 즉, COW가 수행되지 않았으므로 COW 데이터블록 비트(CDB:305)의 값이 초기값인 '0'을 그대로 유지하게 된다. 그런데 처음 할당된 데이터 블록이라도 두 번 째 변경부터는 데이터 블록이 사용중이고 CDB값이 '0'이기 때문에 COW를 수행하게 되는 문제점이 있다. 즉, 본 발명에 따른 스냅샷 기법에서는 COW의 수행 여부를 판단하는 과정에서 디스크에 기록된 매핑 엔트리를 읽기 위한 추가적인 디스크 접근을 하지 않기 때문에 스냅샷 생성 후 처음 사용된 블록과 스냅샷 생성 이전에 할당되고 COW가 수행되지 않은 블록을 구별하는 것이 불가능하다. 따라서, 본 발명에서는 CDB(305) 이외의 추가 1비트(이것이 "DAB"이다)를 두어서 스냅샷 생성 후 처음으로 할당되어 사용되는 데이터 블록을 표시하고, DAB(304)에 의해 스냅샷 생성 후 처음 사용된 블록과 스냅샷 생성 이전에 할당되고 COW가 수행되지 않은 블록을 구별한다. 세 번째의 경우는 COW의 수행으로 CDB(305)의 값이 이미 ‘1’로 변경된 상태로, 변경 연산이 발생해도 원본 데이터 블록에 대한 쓰기 연산만 수행하면 된다.As in the first case, there may be data blocks first allocated after the snapshot is created. When a change operation on such a data block occurs, the first change allocates a new data block and writes to the disk. However, COW is not performed because the block was not used before the snapshot. That is, since the COW has not been performed, the value of the COW data block bit (CDB: 305) is kept at the initial value '0'. However, even if it is the first allocated data block, COW is performed because the data block is in use and the CDB value is '0' from the second change. That is, the snapshot technique according to the present invention does not perform additional disk access to read mapping entries recorded on the disk in the process of determining whether to perform COW. Therefore, the first used block after the snapshot is created and allocated before the snapshot is created. It is impossible to distinguish blocks that are not COW performed. Therefore, in the present invention, an additional 1 bit (this is "DAB") other than the CDB 305 is displayed to indicate a data block allocated and used for the first time after the snapshot is created, and after the snapshot is generated by the DAB 304. Distinguish between blocks that are first used and blocks that were allocated before the snapshot was taken and no COW was performed. In the third case, the value of the CDB 305 has already been changed to '1' by the COW, and only a write operation on the original data block needs to be performed even if a change operation occurs.

1. 스냅샷 삭제1. Delete Snapshot

기존의 스냅샷 기법에서 성능 저하를 초래하는 요인 중의 하나가 스냅샷 삭제 연산 수행 시에 데이터 블록의 할당 해제 시 COW의 수행 여부를 판단하기 위해 스냅샷 매핑 블록을 접근하는 오버헤드로 인한 성능 저하이다. 즉, 기존의 스냅샷 기법에서는 COW가 수행되었는지 여부를 판단하기 위해 원본 매핑 엔트리와 스냅샷 매핑 엔트리를 모두 읽어서 두 엔트리가 가리키는 물리 블록의 주소를 비교하여 확인한다. 스냅샷이 한 개 이상일 경우에는 다른 스냅샷의 매핑 엔트리까지 비교해야 한다. 즉, 최소한 두 번 이상의 추가적인 디스크 I/O 작업을 수행해야 한다.One of the factors causing performance degradation in the conventional snapshot technique is the performance degradation due to the overhead of accessing the snapshot mapping block to determine whether to perform COW when deallocating data blocks during the snapshot delete operation. . That is, in the conventional snapshot technique, both the original mapping entry and the snapshot mapping entry are read to compare whether the COW has been performed, and then the addresses of the physical blocks pointed to by the two entries are compared. If you have more than one snapshot, you need to compare mapping entries from other snapshots as well. That is, at least two additional disk I / O operations must be performed.

이와 같이 매핑 블록에 대한 접근으로 성능 저하가 발생되는 스냅샷 삭제 연산의 문제점을 해결하기 위해 본 발명은 스냅샷 상태 테이블의 각 엔트리(302)가 COW 데이터블록 비트(CDB: 305)와 데이터블록 할당 비트(DAB: 304)값으로 구성된 스냅샷 상태 테이블(301)을 메인 메모리에 도입하여 해결한 것이다.As described above, in order to solve the problem of a snapshot delete operation in which performance is degraded due to the access to the mapping block, the present invention allocates a COW data block bit (CDB) 305 and a data block to each entry 302 of the snapshot state table. This is solved by introducing a snapshot state table 301 having a bit (DAB) 304 value into the main memory.

이와 같이 본 발명에 따른 스냅샷 기법에서는 디스크의 매핑 블록의 값을 이용하여 판단하는 방법을 사용하지 않고, 스냅샷 상태 테이블의 엔트리(302)를 이용하여 COW의 수행 여부를 판단할 수 있다.As described above, in the snapshot technique according to the present invention, it is possible to determine whether to perform COW using the entry 302 of the snapshot state table without using a method of determining using the value of the mapping block of the disk.

먼저, 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(DAB: 304) 값을 검사하고, 데이터블록 할당 비트(DAB: 304)가 '1'이면 삭제가 수행되는 스냅샷이 첫 번째 스냅샷인지 확인한다. DAB(304)가 '1'이고 첫 번째 스냅샷인 경우, 해당 데이터 블록은 스냅샷이 생성된 후 처음으로 할당된 블록이므로 할당을 해제하지 않는다. 그 외의 경우에는 COW 데이터블록 비트(CDB: 305) 값을 검사한다. 삭제하는 스냅샷 위치의 CDB(305) 값이 '1'이면 카피 온 라이트(COW)가 수행된 경우이다. COW 데이터블록 비트(CDB: 305)가 '0'이면 다음 데이터 블록에 대한 수행을 계속하고, CDB(305)가 '1'인 경우에는 다음 스냅샷이 존재하는가를 확인한 후 스냅샷이 존재하는 경우, 그 스냅샷 상태 테이블 엔트리(302)의 COW 데이터블록 비트(CDB:305) 값을 확인한다. 다음 스냅샷이 존재하지 않거나 스냅샷이 존재하는데 COW가 수행된 경우에는 현재 데이터 블록의 할당을 해제해야 한다. 이러한 경우는 다음 스냅샷이 존재하는 경우, CDB(305) 값을 통해 COW의 수행을 판단하여 현재 스냅샷에 대한 할당의 해제 여부를 결정한다.First, the value of the data block allocation bit (DAB: 304) of the snapshot state table entry is checked, and if the data block allocation bit (DAB: 304) is '1', it is checked whether the snapshot to be deleted is the first snapshot. . If the DAB 304 is '1' and is the first snapshot, the corresponding data block is the first allocated block after the snapshot is created and thus is not deallocated. Otherwise, the COW data block bit (CDB: 305) value is checked. If the CDB 305 value of the snapshot position to be deleted is '1', it is a case where a copy on write (COW) is performed. If the COW data block bit (CDB: 305) is '0', execution continues for the next data block. If the CDB 305 is '1', the operation checks whether the next snapshot exists and if the snapshot exists. The COW data block bit (CDB: 305) value of the snapshot state table entry 302 is checked. If the next snapshot does not exist or if the snapshot exists and COW is performed, the current data block must be deallocated. In this case, when the next snapshot exists, it is determined whether to perform the COW through the CDB 305 value to determine whether to release the allocation to the current snapshot.

도 4는 본 발명에 따른 스냅샷 삭제의 흐름을 도시한 흐름도로서, 본 발명의 스냅샷 삭제의 흐름을 살펴보면 다음과 같다.Figure 4 is a flow chart illustrating the flow of snapshot deletion according to the present invention, look at the flow of snapshot deletion of the present invention as follows.

스냅샷 삭제가 요청되면 매핑 서버의 볼륨 연산 모드를 "스냅샷 삭제 (SNAPSHOT_DESTROY)" 모드로 변경한다(401). 스냅샷 삭제 모드로 변경하는 이유는 스냅샷 삭제가 완료되기 전에 발생하는 데이터 블록에 대해 해당 스냅샷에 대한 COW가 수행되는 것을 방지하기 위해서이다. 매핑 블록이 저장된 디스크 블록의 위치를 구하고(402), 매핑 블록에 대한 배타 모드의 잠금을 획득한다(403). When a snapshot deletion is requested, the volume operation mode of the mapping server is changed to a "snapshot deletion (SNAPSHOT_DESTROY)" mode (401). The reason for changing to the snapshot deletion mode is to prevent the COW for the snapshot on the data block occurring before the snapshot deletion is completed. A location of the disk block in which the mapping block is stored is obtained (402), and an exclusive mode lock on the mapping block is obtained (403).

매핑 블록을 디스크로부터 읽어서 매핑 엔트리를 얻는다(404). 데이터 블록의 할당 해제 여부를 판단하기 위해 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(DAB: 304)와 COW 데이터블록 비트(CDB: 305)값을 검사해야 한다. 모든 스냅샷 상태 테이블의 엔트리(302)에 대해 차례로 COW의 수행 여부를 검사하는 작업을 수행한다.The mapping block is read from disk to obtain a mapping entry (404). The data block allocation bit (DAB: 304) and the COW data block bit (CDB: 305) values of the snapshot state table entry should be checked to determine whether the data block is deallocated. A check is performed on entries 302 of all snapshot status tables in order to check whether COW is performed.

스냅샷 상태 테이블 엔트리의 DAB(304)와 CDB(305)값을 통해 카피 온 라이트(COW)가 수행되었는지 판단한다(405). COW가 수행되지 않은 블록이면 다음 스냅샷 상태 테이블 엔트리에 대해 검사하는 작업을 수행한다(409). It is determined whether a copy on write (COW) has been performed through the values of the DAB 304 and the CDB 305 of the snapshot state table entry (405). If the block has not been COWed, the next snapshot state table entry is checked (409).

COW가 수행된 데이터 블록이면, 데이터 블록의 할당을 해제할 것인지 판단하는 작업을 수행한다(406). 즉, COW가 수행된 데이터 블록의 할당을 해제하는 경우는 두 가지이다. 첫째로 다음 스냅샷이 존재하지 않는 경우(다음 스냅샷=null)와, 둘째로 다음 스냅샷이 존재할 때 다음 스냅샷 생성 후 동일 데이터 블록에 COW가 발생한 경우이다. 위의 두 가지 경우에 할당된 데이터 블록을 해제하고(407), 스 냅샷 상태 테이블 엔트리의 현재 스냅샷에 대한 상태 비트 값인 CDB(305)를 '0'으로 초기화한다(408). 모든 스냅샷 상태 테이블 엔트리(302)에 대해 수행이 완료되었는지 검사한다(409). 완료되지 않은 경우에는 다음 스냅샷 상태 테이블 엔트리에 대해 단계 405에서 단계 408까지의 작업을 수행한다.If the COW has been performed, the operation of determining whether to deallocate the data block is performed (406). That is, there are two cases in which the allocation of data blocks on which COW is performed is deallocated. First, when the next snapshot does not exist (next snapshot = null), and second, when the next snapshot exists, COW occurs in the same data block after creating the next snapshot. In both cases, the allocated data block is released (407), and the CDB 305, which is the status bit value for the current snapshot of the snapshot status table entry, is initialized to '0' (408). Check 409 if all snapshot status table entries 302 have completed. If not, then the operations from step 405 to step 408 are performed for the next snapshot state table entry.

이어 매핑 블록에 대한 잠금을 해제한다(410). 잠금 해제 후에는 볼륨의 모든 매핑 블록에 대해 수행이 완료되었는지 검사한다(411). 수행할 매핑 블록이 존재하는 경우에는 단계 402에서 다음 매핑 블록을 구하고, 단계 410까지의 과정을 수행한다. Then, the lock on the mapping block is released (410). After unlocking, it is checked whether execution is completed for all mapping blocks of the volume (411). If there is a mapping block to be performed, the next mapping block is obtained in step 402, and the process up to step 410 is performed.

모든 매핑 블록에 대해 수행한 경우에는 스냅샷을 호스트(203)에서 삭제하는 작업을 수행한다(412). 스냅샷을 삭제하면 실제적인 스냅샷 삭제 수행이 완료되고, 스냅샷 삭제로 변경되는 원본 볼륨의 구성 정보를 반영한다(413). 마지막으로 매핑 서버의 연산 모드를 정상(Nomal) 모드로 변환하면(414), 스냅샷 삭제 과정이 완료된다. If all mapping blocks have been performed, the operation of deleting the snapshot from the host 203 is performed (412). When the snapshot is deleted, the actual snapshot deletion is completed, and the configuration information of the original volume changed by the snapshot deletion is reflected (413). Finally, when the operation mode of the mapping server is converted to normal mode (414), the snapshot deletion process is completed.

2. 데이터 쓰기 연산2. Data write operation

스냅샷이 존재할 때 데이터 블록의 변경을 반영하는 쓰기 연산은 스냅샷 삭제 시와 마찬가지로 COW의 수행 여부를 판단하는 과정이 요구된다. 이러한 판단을 위해 기존 매핑 테이블 기반의 스냅샵 기법에서는 매핑 블록에 대한 접근을 통해 판단을 수행하였고, 매핑 블록에 대한 접근은 쓰기 연산의 성능을 저하시킨다. When a snapshot exists, a write operation that reflects a change in a data block requires a process of determining whether to perform COW as in the case of deleting the snapshot. In order to make this determination, the existing snapshot method based on the mapping table performs the decision by accessing the mapping block, and the access to the mapping block degrades the performance of the write operation.

스냅샷 생성 이전에 쓰여진 데이터의 내용은 변경이 발생해도 그대로 유지되 어야 한다. 이렇게 스냅샷 이전에 할당된 데이터 블록 내용의 유지를 위해 수행하는 작업을 카피 온 라이트(Copy-on-Write: COW)라 한다. 이러한 COW의 과정은 매핑 테이블을 기반으로 하는 스냅샷 기법에서는 모두 동일하게 수행되어야 하는 과정이다. 문제는 COW가 수행된 후 발생되는 데이터 블록의 변경에 대한 처리이다. 기존의 스냅샷 기법에서는 변경을 반영하려는 데이터 블록이 COW가 수행되었는지를 판단하기 위해 원본 매핑 엔트리와 스냅샷 매핑 엔트리를 모두 읽어서 두 엔트리가 매핑하는 물리 블록의 주소가 동일한가를 비교하여 COW의 수행 여부를 판단하였다. The contents of data written before the snapshot was taken should be retained even if changes occur. This operation to maintain the contents of the data block allocated before the snapshot is called copy-on-write (COW). This COW process must be performed in the same way in the snapshot technique based on the mapping table. The problem is the handling of data block changes that occur after COW is performed. The existing snapshot technique reads both the original mapping entry and the snapshot mapping entry to determine whether the data block intended to reflect the change has been performed, and compares the address of the physical block that the two entries map to to determine whether COW is performed. Judged.

본 발명에서는 스냅샷 삭제 시와 동일한 방법으로 스냅샷 상태 테이블의 DAB(304)와 CDB(305)를 이용하여 쓰기 연산의 문제를 해결한다. 처음에는 DAB(304) 값을 검사하여 스냅샷 생성 이후 처음 할당된 데이터 블록에 대해 COW가 발생했는지를 검사한다. DAB(304)값이 ‘0’인 경우에는 CDB(305) 값을 검사한다. CDB(305)는 스냅샷 이전에 할당, 사용되는 데이터 블록에 대해 스냅샷 생성 이후 데이터 블록의 내용 변경이 처음 발생하면 '1'로 변경된다. 즉, COW가 수행되는 스냅샷 상태 테이블 엔트리(302)의 스냅샷에 해당하는 CDB(305)의 값이 '1'로 변경된다. COW가 수행된 이후의 동일 데이터 블록에 대한 변경이 발생하면, 스냅샷 상태 테이블 엔트리의 CDB(305) 값을 통해 COW의 수행 여부를 판단한다. 즉, 본 발명에 따른 스냅샷 기법에서는 스냅샷 매핑 엔트리를 읽어서 원본 매핑 엔트리와 비교하여 판단하는 작업도 요구되지 않고, 원본 볼륨 매핑 엔트리의 값을 읽지 않아도 된다. 즉, 매핑 블록에 대한 디스크 접근 없이 메모리의 스냅샷 상태 테이블 엔트리(302)를 이용해서 판단이 가능하다. In the present invention, the write operation is solved by using the DAB 304 and the CDB 305 of the snapshot state table in the same manner as in deleting the snapshot. Initially, the DAB 304 value is checked to see if a COW has occurred for the first allocated data block after snapshot creation. If the DAB 304 value is '0', the CDB 305 value is checked. The CDB 305 is changed to '1' when the contents change of the data block first occurs after the snapshot is generated for the data block allocated and used before the snapshot. That is, the value of the CDB 305 corresponding to the snapshot of the snapshot state table entry 302 where COW is performed is changed to '1'. When a change to the same data block occurs after the COW is performed, it is determined whether the COW is performed through the CDB 305 value of the snapshot state table entry. That is, the snapshot technique according to the present invention does not require reading the snapshot mapping entry and comparing the original mapping entry with the original mapping entry, and does not need to read the value of the original volume mapping entry. That is, determination can be made using the snapshot state table entry 302 in memory without disk access to the mapping block.

도 5는 본 발명에 따른 시스템에서 스냅샷이 존재할 때 사용자의 디스크 블록의 내용 변경 요청을 처리하는 쓰기 연산의 흐름도를 나타낸다. 5 is a flowchart of a write operation for processing a content change request of a disk block of a user when a snapshot exists in the system according to the present invention.

먼저, 데이터 블록에 대한 매핑 정보가 저장된 매핑 블록의 물리적인 주소를 구한다(501). 매핑 블록에 대한 배타 모드의 잠금을 획득하고(502), 매핑 블록을 디스크로부터 읽어서 논리 주소에 해당되는 매핑 엔트리를 얻는다(503). 볼륨의 연산 모드를 검사한다(504). 즉, 현재의 I/O가 스냅샷 생성(SNAPSHOT_CREATE)이나 삭제(SNAPSHOT_DESTROY) 중에 발생한 것인지를 검사한다. 연산 모드가 정상 모드(NORMAL)이면 스냅샷이 존재하는지 검사한다(505). 스냅샷이 존재하지 않는 경우 일반 쓰기 연산처럼 데이터 블록을 디스크에 기록하고(516), 매핑 블록의 잠금을 해제하고 종료한다(517).First, a physical address of a mapping block in which mapping information about a data block is stored is obtained (501). An exclusive mode lock is acquired on the mapping block (502), and the mapping block is read from the disk to obtain a mapping entry corresponding to the logical address (503). The operation mode of the volume is checked (504). That is, it is checked whether the current I / O occurred during snapshot creation (SNAPSHOT_CREATE) or deletion (SNAPSHOT_DESTROY). If the operation mode is NORMAL, it is checked whether a snapshot exists (505). If the snapshot does not exist, the data block is written to disk as in a normal write operation (516), and the mapping block is unlocked and terminated (517).

단계 505에서 스냅샷이 존재하는 경우에는 데이터 블록의 할당 여부를 검사한다(507). 데이터 블록이 할당되지 않은 경우에는 데이터 블록을 할당받고(520), 매핑 엔트리의 물리 블록 주소를 새로 할당된 데이터 블록으로 변경한다(521). 매핑 엔트리의 값이 변경되면 스냅샷 상태 테이블 엔트리의 DAB(304) 값을 "1"로 변경한다(522). 이어 매핑 블록을 디스크에 기록한다(523). 그리고 변경된 내용을 데이터 블록의 디스크에 기록하고(516), 매핑 블록에 대한 잠금을 해제하고(517) 종료한다. If a snapshot exists in step 505, it is checked whether data blocks are allocated (507). If the data block is not allocated, the data block is allocated (520), and the physical block address of the mapping entry is changed to the newly allocated data block (521). When the value of the mapping entry is changed, the DAB 304 value of the snapshot state table entry is changed to "1" (522). The mapping block is then written to the disk (523). The changed contents are recorded on the disk of the data block (516), the lock on the mapping block is released (517), and the process ends.

단계 507에서 할당이 된 데이터 블록이면, 할당이 스냅샷 생성 이후에 되었는가를 검사한다(508). 스냅샷 생성 이후에 할당된 데이터 블럭에 대해서는 COW가 수행되지 않는다. 스냅샷 생성 이전에 할당된 경우에는, 스냅샷 상태 테이블 엔트 리의 CDB(305) 값을 이용하여 COW가 수행되었는지 검사한다(509). 검사 결과 COW가 이미 수행된 경우에는 데이터 블록을 디스크에 기록하고(516), 매핑 블록에 대한 잠금을 해제하고 수행을 종료한다(517). If the data block has been allocated in step 507, it is checked if the allocation has been made after snapshot creation (508). COW is not performed on the data blocks allocated after the snapshot is created. If allocated prior to snapshot creation, it is checked if the COW has been performed using the CDB 305 value of the snapshot status table entry (509). If the COW has already been performed as a result of the check, the data block is written to the disk (516), the lock on the mapping block is released, and the execution ends (517).

단계 509에서 COW가 아직 수행되지 않은 경우에는 COW를 수행해야 한다. 이를 위해 스냅샷 매핑 블록을 버퍼로 읽어서 스냅샷 매핑 엔트리를 얻고(510), 카피 온 라이트(COW)를 수행하기 위해 새로운 물리 데이터 블록을 할당받은(511) 다음, 데이터 블록의 내용을 새로 할당받은 데이터 블록에 복사하고 복사된 데이터 블록을 디스크에 기록한다(512). If the COW has not yet been performed in step 509, the COW should be performed. To this end, the snapshot mapping block is read into the buffer to obtain a snapshot mapping entry (510), a new physical data block is allocated to perform a copy on write (511), and the contents of the data block are newly allocated. The data block is copied and the copied data block is written to the disk (512).

이어 스냅샷 매핑 엔트리가 가리키는 물리 주소를 새로 할당받은 데이터 블록의 주소로 변경하고(513), COW가 수행되었음을 나타내는 스냅샷 상태 테이블 엔트리의 CDB(305)값을 "1"로 변경하고(514), 스냅샷 매핑 블럭을 디스크에 기록한다(515). 단계 510에서 단계 515까지의 COW 과정을 수행하면 데이터 블록의 내용을 디스크에 기록하고(516), 매핑 블록에 대한 잠금을 종료하고 수행을 종료한다(517). Subsequently, the physical address indicated by the snapshot mapping entry is changed to the address of the newly allocated data block (513), the CDB 305 value of the snapshot state table entry indicating that the COW has been performed is changed to "1" (514). The snapshot mapping block is written to the disk (515). When the COW process from step 510 to step 515 is performed, the contents of the data block are written to the disk (516), the lock on the mapping block is terminated, and the execution is terminated (517).

단계 504에서 연산 모드가 정상(Nomal) 모드가 아니고 스냅샷 생성(SNAPSHOT_CREATE) 모드이면, 매핑 엔트리를 포함하는 매핑 데이터 블록에 대한 복사가 수행되었는지 검사한다(506). 복사가 완료된 경우에는 COW가 수행되었는지 판단하기 위해 스냅샷 상태 테이블의 CDB(305)값을 검사한다(509). CDB값이 '1'이면 이미 COW가 수행된 경우로 데이터 블록을 디스크에 기록하고(516), 매핑 블록에 대한 잠금을 해제하고(517) 수행을 종료한다. 스냅샷 상태 테이블의 CDB값 이 '0'이면 COW 작업을 수행해야 한다. 따라서 단계 510에서 단계 515까지의 COW 작업을 수행하고, 데이터 블록을 디스크에 기록하고(516), 매핑 블록의 잠금을 해제하고(517) 수행을 종료한다. 만약, 단계 506에서 복사가 완료되지 않았다면 COW가 수행되어야 한다. 단계 510에서 단계 517까지의 작업을 수행하고 종료한다.If the operation mode is not the normal mode and the snapshot creation (SNAPSHOT_CREATE) mode in step 504, it is checked whether copying to the mapping data block including the mapping entry has been performed (506). When the copy is completed, the CDB 305 value of the snapshot status table is checked to determine whether the COW has been performed (509). If the CDB value is '1', the data block is written to the disk when COW has already been performed (516), the lock on the mapping block is released (517), and the execution ends. If the CDB value of the snapshot status table is '0', COW operation should be performed. Accordingly, the COW operation from step 510 to step 515 is performed, the data block is written to the disk (516), the mapping block is unlocked (517), and the execution ends. If the copy has not been completed in step 506, COW should be performed. The operation from step 510 to step 517 is performed and ends.

상기와 같은 본 발명의 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함하는 것으로, 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk)-Rom, DVD(Digital Video Disk)-Rom, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. The snapshot performing method of the mass shared storage device using the memory-based snapshot status table of the present invention as described above may be stored in a computer-readable recording medium. Such a recording medium includes all kinds of recording media in which programs and data are stored so that they can be read by a computer system. Examples of the recording medium include read only memory, random access memory, and compact disk. -Rom, DVD (Digital Video Disk) -Rom, magnetic tape, floppy disk, optical data storage device. In addition, these recording media can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

상술한 바와 같이, 본 발명에 따른 대용량 스냅샷 수행 방법은 대용량 공유 스토리지 환경에서 쓰기연산의 성능을 향상시켜 서비스와 비즈니스의 연속성이 요구되는 전자 상거래나 웹을 통한 실시간 주식 정보와 거래 서비스인 홈 트레이딩과 같은 엔터프라이즈 시스템에서 높은 데이터의 가용성과 신뢰성을 보장한다. 또한 본 발명은 쓰기 연산의 성능 저하가 발생하지 않으면서 온라인 백업을 지원할 수 있는 장점이 있다. As described above, the large-capacity snapshot performing method according to the present invention improves the performance of write operations in a large shared storage environment, and is home trading, which is a real-time stock information and trading service through e-commerce or the web, which requires service and business continuity. To ensure high data availability and reliability in enterprise systems such as In addition, the present invention has the advantage that can support the online backup without the performance degradation of the write operation.                     

이상에서 설명한 것은 본 발명에 따른 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법을 설명한 하나의 실시 예에 불과한 것으로써, 본 발명은 상기한 실시 예에 한정되지 않고, 이하의 특허 청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 사상이 미친다고 할 것이다.What has been described above is only one embodiment for explaining an efficient snapshot performing method for a mass shared storage device according to the present invention, and the present invention is not limited to the above-described embodiment, and is claimed in the following claims. Without departing from the gist of the present invention, any person having ordinary knowledge in the field of the present invention will have the technical idea of the present invention to the extent that various modifications can be made.

Claims (10)

다수의 호스트들이 대용량의 네트워크 저장장치를 공유하도록 된 스토리지 에리어 네트워크(SAN) 기반의 시스템에서의 스냅샷 수행방법에 있어서,In the method of performing a snapshot in a storage area network (SAN) -based system in which a plurality of hosts share a large network storage device, 스냅샷의 상태를 나타내는 카피-온-라이트(COW) 데이터블록 비트(COW of Data-block Bit: CDB)와, 스냅샷 생성 이후 처음 할당되는 데이터 블록을 나타내는 데이터블록 할당 비트(Data-block Allocation-time Bit: DAB)로 이루어진 엔트리들로 구성된 스냅샷 상태 테이블을 메모리에 생성/유지하고, COW of Data-block Bit (CDB) to indicate the status of the snapshot, and Data-block Allocation- to indicate the first data block allocated after the snapshot was taken. create / maintain a snapshot state table composed of entries consisting of time Bit (DAB) in memory, 스냅샷 생성 후 상기 DAB와 CDB의 값을 확인하여 데이터 블록의 COW 수행 여부를 판단하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법.A method of performing a snapshot of a mass shared storage device using a memory-based snapshot state table, characterized in that determining whether to perform COW of a data block by checking values of the DAB and CDB after creating a snapshot. 제 1항에 있어서, 상기 스냅샷 상태 테이블은,The method of claim 1, wherein the snapshot status table, 스냅샷 생성 시 메모리에 생성하여 유지하고, 스냅샷 삭제 시 다른 스냅샷이 없으면 삭제하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법. Snapshot creation method of a large shared storage device using a memory-based snapshot status table, characterized in that the snapshot is created and maintained in memory when the snapshot is created, and when there is no other snapshot when the snapshot is deleted. 삭제delete 제 1항에 있어서, 상기 COW 데이터블록 비트(CDB)는, The method of claim 1, wherein the COW data block bits (CDB), 스냅샷 마다 1비트씩 할당되어 최대 스냅샷 개수 만큼의 비트가 할당되고, '1'이면 스냅샷 생성 후 COW가 수행되었다는 의미이고, '0'이면 초기값이나 아직 COW가 수행되지 않은 상태를 표시하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법. 1 bit is allocated for each snapshot to allocate the maximum number of snapshots. If '1', COW is executed after snapshot creation. If '0', initial value or status of COW not yet performed is displayed. Snapshot execution method of a large shared storage device using a memory-based snapshot state table, characterized in that. 제 1항 또는 제 4항에 있어서, 상기 데이터블록 할당 비트(DAB)는The data block allocation bit (DAB) of claim 1 or 4, 모든 스냅샷 상태 테이블 엔트리의 제일 첫 번째 비트를 할당하여 사용하고,스냅샷 생성 이후 데이터 블록이 할당되고 처음 사용될 때 DAB 값을 '1'로 변경하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법. Memory-based snapshot state table, which allocates and uses the first bit of every snapshot state table entry and changes the DAB value to '1' when the data block is allocated and used for the first time after the snapshot is created. How to take a snapshot of mass storage device using. 다수의 호스트들이 대용량의 네트워크 저장장치를 공유하도록 된 스토리지 에리어 네트워크(SAN) 기반의 시스템에서 스냅샷을 삭제하는 방법에 있어서,A method for deleting snapshots in a storage area network (SAN) based system in which multiple hosts are configured to share a large amount of network storage, 매핑 서버가 존재하는 모든 노드의 연산 모드를 스냅샷 삭제(SNAPSHOT_DESTROY) 모드로 변경하는 제 1단계;A first step of changing the operation mode of all nodes in which the mapping server exists to a snapshot deletion (SNAPSHOT_DESTROY) mode; 매핑 블록에 대한 잠금을 획득하는 제 2단계;Obtaining a lock on the mapping block; 매핑 엔트리가 가리키는 데이터 블록의 카피-온-라이트(COW) 수행 여부의 판단을 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(DAB)와 COW 데이터블록 비트(CDB)를 사용하여 처리하는 제 3단계;A third step of processing whether to perform copy-on-write (COW) of the data block indicated by the mapping entry by using the data block allocation bit (DAB) and the COW data block bit (CDB) of the snapshot state table entry; 카피-온-라이트(COW)가 수행된 경우, 처음 할당비트(DAB)나 COW 데이터블록 비트(CDB)를 초기화하고, 상기 매핑 블록의 잠금을 해제하는 제 4단계; 및A fourth step of initializing a first allocation bit (DAB) or a COW data block bit (CDB) when the copy-on-write (COW) is performed and unlocking the mapping block; And 모든 데이터 블록에 대한 초기화가 완료되면, 스냅샷을 삭제하는 제 5단계를 포함하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 삭제 수행방법.And a fifth step of deleting the snapshot when all data blocks have been initialized. The method of claim 1, further comprising deleting a snapshot. 제 6항에 있어서, 상기 제 3단계는,The method of claim 6, wherein the third step, 데이터블록 할당 비트(DAB)가 '1'이고 첫 번째 스냅샷인 경우, 해당 데이터 블록은 스냅샷이 생성된 후 처음으로 할당된 블록이므로 할당을 해제하지 않는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 삭제 수행방법.If the data block allocation bit (DAB) is '1' and the first snapshot, the data block is the first allocated block after the snapshot is created, so the memory-based snapshot status is not deallocated. How to delete snapshot of mass shared storage using table. 제 6항에 있어서, 상기 제 4단계는The method of claim 6, wherein the fourth step 현재의 스냅샷에 대해 COW가 수행된 경우, 다음 스냅샷이 없거나 다음 스냅샷에 대해 카피-온-라이트(COW)가 수행된 경우에 할당된 데이터 블록을 반환하고 처음 할당비트(DAB)나 COW 데이터블록 비트(CDB)를 초기화한 후 상기 매핑 블록의 잠금을 해제하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 삭제 수행방법.If a COW was performed for the current snapshot, the allocated data block is returned and the first allocated bit (DAB) or COW is returned if there is no next snapshot or if copy-on-write (COW) is performed for the next snapshot. A method of performing a snapshot deletion of a mass shared storage device using a memory-based snapshot state table, wherein the mapping block is released after initializing a data block bit (CDB). 다수의 호스트들이 대용량의 네트워크 저장장치를 공유하도록 된 스토리지 에리어 네트워크(SAN) 기반의 시스템에서 쓰기 연산을 수행하는 방법에 있어서, A method for performing a write operation in a storage area network (SAN) based system in which a plurality of hosts share a large amount of network storage, 스냅샷이 존재하는지 아닌지를 판단하여 매핑을 수행하는 제 1단계;Determining whether or not a snapshot exists and performing mapping; 상기 매핑 블록을 디스크로부터 읽어서 원하는 매핑 엔트리의 값을 구하는 제 2단계;A second step of reading the mapping block from a disk to obtain a value of a desired mapping entry; 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(DAB) 값을 확인하여 데이터 블록이 스냅샷 생성 이후 처음 할당, 사용되었는지 판단하는 제 3단계; Checking a data block allocation bit (DAB) value of a snapshot state table entry to determine whether a data block is first allocated and used after a snapshot is created; 데이터블록 할당 비트(DAB) 값이 0이고 매핑 엔트리 값이 초기값인 경우, 새로운 블록을 할당하고 데이터 내용을 복사 디스크에 기록하고, 데이터블록 할당 비트(DAB) 값을 1로 변경하는 제 4단계; A fourth step of allocating a new block, writing the data contents to a copy disk, and changing the datablock allocation bit (DAB) value to 1 when the datablock allocation bit (DAB) value is 0 and the mapping entry value is an initial value. ; 데이터 블록이 스냅샷 이전에 할당된 경우, COW 데이터블록 비트(CDB) 값을 통하여 카피 온 라이트(COW)가 수행되었는지를 판단하는 제 5단계; 및A fifth step of determining whether a copy on write (COW) has been performed through a COW data block bit (CDB) value when the data block is allocated before the snapshot; And COW 데이터블록 비트(CDB)값이 0으로서 COW가 수행되지 않은 경우, 카피 온 라이트(COW)를 수행하고, COW 데이터블록 비트(CDB) 값을 1로 변경하는 제 6단계를 포함하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 쓰기 수행방법. And a sixth step of performing a copy on write (COW) and changing the COW data block bit (CDB) value to 1 when the COW is not performed as the COW data block bit (CDB) value is 0. How to perform snapshot write of mass shared storage using memory based snapshot status table. 제 9항에 있어서, 상기 제 6단계는,The method of claim 9, wherein the sixth step is 스냅샷 매핑 블록을 버퍼로 읽어서 스냅샷 매핑 엔트리를 얻고, 카피 온 라이트(COW)를 수행하기 위해 새로운 물리 데이터 블록을 할당받는 단계;Reading the snapshot mapping block into a buffer to obtain a snapshot mapping entry and allocating a new physical data block to perform a copy on write (COW); 데이터 블록의 내용을 새로 할당받은 데이터 블록에 복사하고 복사된 데이터 블록을 디스크에 기록하는 단계; 및Copying the contents of the data block to the newly allocated data block and recording the copied data block on a disk; And 스냅샷 매핑 엔트리가 가리키는 물리 주소를 새로 할당받은 데이터 블록의 주소로 변경하고, 스냅샷 상태 테이블 엔트리의 CDB값을 "1"로 변경하고, 스냅샷 매핑 블럭을 디스크에 기록하는 단계를 포함하는 것을 특징으로 하는 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 쓰기 수행방법. Changing the physical address pointed to by the snapshot mapping entry to the address of the newly allocated data block, changing the CDB value of the snapshot status table entry to "1", and writing the snapshot mapping block to disk. A snapshot write method for a mass shared storage device using a memory based snapshot status table.
KR1020030088732A 2003-12-08 2003-12-08 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity KR100541530B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030088732A KR100541530B1 (en) 2003-12-08 2003-12-08 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030088732A KR100541530B1 (en) 2003-12-08 2003-12-08 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity

Publications (2)

Publication Number Publication Date
KR20050055510A KR20050055510A (en) 2005-06-13
KR100541530B1 true KR100541530B1 (en) 2006-01-12

Family

ID=37250478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030088732A KR100541530B1 (en) 2003-12-08 2003-12-08 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity

Country Status (1)

Country Link
KR (1) KR100541530B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150087622A (en) * 2014-01-22 2015-07-30 한국전자통신연구원 Distributed file system for providing the file-based snapshot and method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222013B (en) * 2019-06-11 2023-05-12 深信服科技股份有限公司 Method, system, equipment and storage medium for determining cluster storage capacity

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150087622A (en) * 2014-01-22 2015-07-30 한국전자통신연구원 Distributed file system for providing the file-based snapshot and method thereof
KR102169867B1 (en) * 2014-01-22 2020-10-26 한국전자통신연구원 Distributed file system for providing the file-based snapshot and method thereof

Also Published As

Publication number Publication date
KR20050055510A (en) 2005-06-13

Similar Documents

Publication Publication Date Title
KR100439675B1 (en) An efficient snapshot technique for shated large storage
US6421767B1 (en) Method and apparatus for managing a storage system using snapshot copy operations with snap groups
US8595461B2 (en) Management of recycling bin for thinly-provisioned logical volumes
US7441096B2 (en) Hierarchical storage management system
US8510508B2 (en) Storage subsystem and storage system architecture performing storage virtualization and method thereof
US7873600B2 (en) Storage control device to backup data stored in virtual volume
US7076622B2 (en) System and method for detecting and sharing common blocks in an object storage system
US8769225B2 (en) Optimization of data migration between storage mediums
US8510526B2 (en) Storage apparatus and snapshot control method of the same
US8200631B2 (en) Snapshot reset method and apparatus
US8046534B2 (en) Managing snapshots in storage systems
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US7584229B2 (en) Method and system for priority-based allocation in a storage pool
US20060206677A1 (en) System and method of an efficient snapshot for shared large storage
US20170177224A1 (en) Dynamic storage transitions employing tiered range volumes
US7305530B2 (en) Copy operations in storage networks
US20070239803A1 (en) Remote mirroring method between tiered storage systems
US7899989B2 (en) Method and system for using a block allocation policy
US7325078B2 (en) Secure data scrubbing
US20070106868A1 (en) Method and system for latency-directed block allocation
US8732422B2 (en) Storage apparatus and its control method
KR100541530B1 (en) Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity
US11880584B2 (en) Reverse range lookup on a unified logical map data structure of snapshots
JP2005215940A (en) Storage system, server apparatus, and preceding copy data preparation method
US11237738B2 (en) Managing operation of a data storage system with reservation of metadata space

Legal Events

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

Payment date: 20091113

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee