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 PDFInfo
- 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
Links
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/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
- 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]
-
- 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
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
도 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,
이와 같은 구조에서 응용(application) 프로그램으로부터 스냅샷이 생성되기 전에 파일 A(111)의 첫번째 블록(A1)에 대한 읽기 요청이 들어오면(151), 파일 시스템(110)에 저장되어 있는 파일 A(111)의 블록 A1을 읽어서 서비스를 수행한다. In this structure, when a read request for the first block A1 of
그러나 스냅샷이 생성된 이후에 파일 B(112)의 첫번째 블록(B1)에 대한 쓰기가 요청되면(154), 첫번째 갱신인지를 검사하는 과정(140)이 필요하다. 즉, COW가 수행되었는지 검사하는 과정이 필요하다. 만일, 파일 B(112)의 첫 번째 블록(B1)에 대한 쓰기 연산이 첫 갱신이라면 카피 온 라이트(COW)를 수행해야 한다. However, if a write to the first block B1 of the
카피 온 라이트(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
한편, 스냅샷에 대한 읽기 연산 수행 시에도 카피 온 라이트(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
이와 같이 종래에는 스냅샷에 대한 읽기 과정이나 스냅샷 삭제시에 카피 온 라이트(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
이러한 구성에서 각 호스트(203)는 스위치(switch: 201)와의 연결을 위해 HBA(Host Bus Adaptor)를 사용하고, 호스트(203)와 스위치(201)의 연결도 화이버 채널(Fibre Channel: FC)을 사용하여 구성된다. 각 호스트(Host1~Host4)(203)는 제어 및 관리 정보를 처리하기 위해 LAN(204)으로 연결된다. 이러한 물리적인 환경이 준비되면 논리 볼륨 관리자(LVM)를 사용할 수 있는 환경이 갖추어지게 된다. In this configuration, each
도 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
데이터블록 할당 비트(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
통상, 디스크 기반의 스냅샷 기법에서는 스냅샷 이후 처음 사용되는 블록에 대해 그 이후에 발생하는 데이터 변경 연산이 카피 온 라이트(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
따라서 본 발명에서는 카피 온 라이트(COW)의 수행 여부를 판단하는 과정에서 해당 엔트리의 DAB(304)가 '1'이면, 해당 데이터 블록의 내용을 변경하고 그대로 디스크에 변경을 반영하면 된다. 이미 할당된 블록으로서 해당 엔트리의 DAB(304)가 '0'인 경우에는 COW 데이터블록 비트(CDB)(305) 값을 통해 판단한다. Accordingly, in the present invention, if the
스냅샷이 존재하는 경우에 각 데이터 블록은 각각의 상태에 따라 세 가지 경우로 분류할 수 있다. 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
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
이와 같이 본 발명에 따른 스냅샷 기법에서는 디스크의 매핑 블록의 값을 이용하여 판단하는 방법을 사용하지 않고, 스냅샷 상태 테이블의 엔트리(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
먼저, 스냅샷 상태 테이블 엔트리의 데이터블록 할당 비트(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
도 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
스냅샷 상태 테이블 엔트리의 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
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
이어 매핑 블록에 대한 잠금을 해제한다(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
모든 매핑 블록에 대해 수행한 경우에는 스냅샷을 호스트(203)에서 삭제하는 작업을 수행한다(412). 스냅샷을 삭제하면 실제적인 스냅샷 삭제 수행이 완료되고, 스냅샷 삭제로 변경되는 원본 볼륨의 구성 정보를 반영한다(413). 마지막으로 매핑 서버의 연산 모드를 정상(Nomal) 모드로 변환하면(414), 스냅샷 삭제 과정이 완료된다. If all mapping blocks have been performed, the operation of deleting the snapshot from the
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
도 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
단계 507에서 할당이 된 데이터 블록이면, 할당이 스냅샷 생성 이후에 되었는가를 검사한다(508). 스냅샷 생성 이후에 할당된 데이터 블럭에 대해서는 COW가 수행되지 않는다. 스냅샷 생성 이전에 할당된 경우에는, 스냅샷 상태 테이블 엔트 리의 CDB(305) 값을 이용하여 COW가 수행되었는지 검사한다(509). 검사 결과 COW가 이미 수행된 경우에는 데이터 블록을 디스크에 기록하고(516), 매핑 블록에 대한 잠금을 해제하고 수행을 종료한다(517). If the data block has been allocated in
단계 509에서 COW가 아직 수행되지 않은 경우에는 COW를 수행해야 한다. 이를 위해 스냅샷 매핑 블록을 버퍼로 읽어서 스냅샷 매핑 엔트리를 얻고(510), 카피 온 라이트(COW)를 수행하기 위해 새로운 물리 데이터 블록을 할당받은(511) 다음, 데이터 블록의 내용을 새로 할당받은 데이터 블록에 복사하고 복사된 데이터 블록을 디스크에 기록한다(512). If the COW has not yet been performed in
이어 스냅샷 매핑 엔트리가 가리키는 물리 주소를 새로 할당받은 데이터 블록의 주소로 변경하고(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
단계 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
상기와 같은 본 발명의 메모리 기반의 스냅샷 상태 테이블을 이용한 대용량 공유 저장장치의 스냅샷 수행방법은 컴퓨터로 읽을 수 있는 기록 매체에 저장될 수 있다. 이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함하는 것으로, 그 예로는, 롬(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)
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)
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)
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 |
-
2003
- 2003-12-08 KR KR1020030088732A patent/KR100541530B1/en not_active IP Right Cessation
Cited By (2)
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 | |
US7305530B2 (en) | Copy operations in storage networks | |
US20170177224A1 (en) | Dynamic storage transitions employing tiered range volumes | |
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 |