KR20050052016A - 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 - Google Patents

파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 Download PDF

Info

Publication number
KR20050052016A
KR20050052016A KR1020030085715A KR20030085715A KR20050052016A KR 20050052016 A KR20050052016 A KR 20050052016A KR 1020030085715 A KR1020030085715 A KR 1020030085715A KR 20030085715 A KR20030085715 A KR 20030085715A KR 20050052016 A KR20050052016 A KR 20050052016A
Authority
KR
South Korea
Prior art keywords
log
metadata
buffer
lsn
transaction
Prior art date
Application number
KR1020030085715A
Other languages
English (en)
Other versions
KR100501414B1 (ko
Inventor
김영철
김홍연
김병섭
원종호
이미영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2003-0085715A priority Critical patent/KR100501414B1/ko
Publication of KR20050052016A publication Critical patent/KR20050052016A/ko
Application granted granted Critical
Publication of KR100501414B1 publication Critical patent/KR100501414B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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

Abstract

본 발명은 컴퓨터에서 시스템 고장이 발생하였을 때 파일 시스템의 메타 데이타를 일관된 상태로 회복하는 방법에 관한 것이다. 파일 시스템의 메타 데이터는 파일 시스템을 구성하고 관리하는 정보들로 시스템 고장으로 인한 메타 데이터의 손실은 파일 시스템 운영에 중요한 영향을 미친다. 따라서 파일 시스템의 메타 데이터를 일관된 상태로 회복하는 것은 매우 중요하다. 본 발명은 변경된 메타 데이터의 로그(log)를 기록하였다가 시스템 고장이 발생하였을 때, 기록된 로그를 이용하여 파일 시스템의 메타 데이타를 일관된 상태로 회복할 수 있도록 한다. 이러한 로그는 파일 시스템과 동일한 저장 장치에 저장되거나 또는 다른 저장 장치에 저장될 수 있다. 그리고 로그가 저장되는 로그 공간은 고정된 크기의 연속적인 공간을 반복적으로 재사용할 수 있도록 한다. 이때 로그 공간에는 회복을 위해 필요한 최소한의 로그만을 유지하도록 함으로써 시스템 고장이 발생하였을 때, 로그 공간을 보다 빨리 스캔하면서 파일 시스템의 메타 데이터를 일관된 상태로 회복할 수 있도록 한다.

Description

파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법 및 장치{ Method of and apparatus for logging and restoring the meta data in file system }
본 발명은 컴퓨터의 파일 시스템에 관한 것으로, 더욱 상세하게는 파일 시스템의 메타 데이터를 로깅하는 방법 및 시스템 고장이 발생하였을 때 로깅된 데이터에 의해 파일 시스템의 메타 데이타를 일관된 상태로 회복하는 방법 및 장치에 관한 것이다.
일반적으로, 파일 시스템의 메타 데이터는 파일 시스템을 구성하고 관리하는 정보들로서, 시스템 고장으로 인한 메타 데이터의 손실은 파일 시스템 운영에 중요한 영향을 미친다. 따라서 파일 시스템의 메타 데이터를 일관된 상태로 회복하는 것은 매우 중요하다.
즉, 파일 시스템의 메타 데이터는 슈퍼 블록, 비트맵, 아이노드(inode), 디렉토리 등과 같이 파일 시스템을 구성하고 관리하기 위한 정보들로서, 만약 시스템 고장이 발생하였을 때 이러한 메타 데이터를 일관성 있는 상태로 회복하지 못한다면 추후 파일 동작에 중대한 문제를 발생시킬 수 있으며, 파일 시스템 전체를 불능의 상태로도 만들 수 있다. 따라서 최근의 파일 시스템들에서는 메타 데이터에 대한 일관성을 보장하기 위하여 갱신된 메타 데이터의 내용을 로그(log)에 저장하고, 시스템 고장이 발생하면 그 로그를 재수행함으로써 메타 데이터를 일관된 상태로 회복하는 방법들이 개발되고 있다.
본 발명은 상기와 같은 실정을 감안하여 창안된 것으로서, 고정된 크기의 로그 공간을 효율적으로 재사용할 수 있도록 하고 로그 공간에는 메타 데이터 회복을 위해 필요한 최소한의 로그만을 유지하면서 시스템 고장이 발생하였을 때 최소한의 로그 공간을 한번 스캔함으로써 메타 데이터를 일관된 상태로 빠르게 회복할 수 있는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법 및 그 장치를 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 방법은, 로깅된 데이터로부터 파일 시스템의 메타 데이터를 회복하는 방법에 있어서, 시스템 고장이 발생했을 당시의 최소 유효 로그의 LSN으로부터 로그를 읽는 단계; 읽은 로그가 유효한 로그인지를 검사하는 단계; 만약, 읽은 로그가 유효한 로그이면 그 로그의 타입에 따라 로그 재수행 절차를 결정하는 단계; 상기 로그타입이 '메타 데이터 로그'이면, 그 로그에 대한 실제 메타 데이터를 디스크로부터 버퍼로 읽어 들이고, 로그의 메타 데이터 버전과 디스크에 저장된 메타 데이터 버전을 비교하여, 로그에 저장된 메타 데이터의 버전이 크다면, 버퍼에 적재된 메타 데이터를 로그의 메타 데이터로 덮어씀으로써 재수행하는 단계; 상기 로그타입이 '트랜잭션 완료 로그'이면 정상적으로 완료된 트랜잭션에 의해 저장된 로그이므로 트랜잭션에 대한 모든 메타 데이터 로그를 재수행한 버퍼를 언픽스(unfix)하는 단계; 상기 로그타입이 '트랜잭션 철회 로그'의 경우에는 비정상적으로 완료된 트랜잭션에 의해 쓰여진 로그이므로, 기존에 이 트랜잭션의 메타 데이터 로그에 대해 재수행한 버퍼의 내용을 무시하고 버퍼들을 언픽스(unfix)하는 단계; 상기 로그의 타입에 따라 모두 처리가 끝나면, 최소 유효 로그의 LSN 값을 다음에 읽을 로그의 LSN 값으로 변경하는 단계; 및 로그 공간의 모든 유효한 로그에 대하여 상기 과정을 반복하고, 로그에 대한 재수행이 끝나면, 재수행이 진행된 모든 메타 데이터 버퍼들을 디스크로 저장하는 단계를 포함하는 것을 특징으로 한다.
또한 상기와 같은 목적을 달성하기 위하여 본 발명의 시스템은, 파일 저장공간에 파일을 저장하고 관리하기 위한 파일 시스템에 있어서, 파일 시스템의 메타 데이터를 변경하는 파일 동작들을 트랜잭션 단위로 수행함으로써 메타 데이터 변경 연산의 회복을 지원하기 위한 트랜잭션 관리기 모듈; 상기 트랜잭션의 요구에 따라 메타 데이터에 대한 연산이 이루어지는 버퍼 공간에 대한 관리를 하는 메타 데이터 버퍼 관리기 모듈; 상기 트랜잭션에서 변경한 메타 데이터에 대한 로그를 메타 데이터 버퍼에서 로그 공간에 전역 로그 버퍼 단위로 저장하는 로그 관리기 모듈; 및 시스템 고장이 발생하였을 때, 상기 로그 관리기 모듈을 통해 로그 공간에 저장된 로그를 이용하여 파일 시스템의 메타 데이터를 일관된 상태로 회복하기 위한 회복 관리기 모듈을 포함하여 구성되는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 자세히 설명하기로 한다.
도 1은 본 발명이 적용되는 파일 시스템에서 회복과 관련된 모듈들의 구성도로서, 본 발명의 파일 시스템에는 파일 동작과 관련하여 트랜잭션 관리기 모듈(112)와 메타 데이터 버퍼 관리기 모듈(114), 파일 저장공간(116)이 있고, 회복동작과 관련하여 회복 관리기 모듈(122)와 로그 관리기 모듈(124), 로그공간(126)이 있다.
도 1을 참조하면, 트랜잭션 관리기 모듈(112)은 파일 시스템의 메타 데이터를 변경하는 파일 동작들을 트랜잭션 단위로 수행함으로써 메타 데이터 변경 연산의 회복을 지원한다. 메타 데이터 버퍼 관리기 모듈(114)은 메타 데이터에 대한 연산이 이루어지는 버퍼 공간에 대한 관리를 하며, 로그 관리기 모듈(124)은 트랜잭션에서 변경한 메타 데이터에 대한 로그를 메타 데이터 버퍼에서 바로 로그 공간(105)에 저장한다. 회복 관리기 모듈(122)은 시스템 고장이 발생하였을 때, 로그 관리기 모듈(124)을 통해 로그 공간(126)에 저장된 로그를 이용하여 파일 시스템의 메타 데이터를 일관된 상태로 회복한다. 그리고 파일 저장 공간(116)과 로그 공간(126)은 동일한 장치에 있거나 또는 다른 장치에 있을 수 있다.
도 2는 본 발명이 적용되는 파일 시스템에서 회복 관리기 모듈(122)의 전역 로그 버퍼(220-1,220-2)와 트랜잭션들 마다 할당되는 트랜잭션 로그 버퍼(210) 간의 관계를 도시한 개략도이다.
도 2를 참조하면, 로그는 전역 로그 버퍼(220-1,220-2)를 통하여 로그 공간(126)에 전역 로그 버퍼 단위(220)로 저장된다. 전역 로그 버퍼(220-1,220-2)는 로그를 기록하는 트랜잭션들의 동시성을 향상시키기 위해 두개를 둔다. 따라서 하나의 전역 로그 버퍼가 저장될 때, 트랜잭션들은 다른 전역 로그 버퍼에 로그를 계속 기록할 수 있다. 그리고 각 트랜잭션마다 트랜잭션 로그 버퍼(210)를 사용한다. 이 트랜잭션 로그 버퍼(210)에는 트랜잭션이 메타 데이터 로그를 기록할 때마다 그 메타 데이터 로그에 대한 정보를 기록한다. 이러한 메타 데이터 로그 정보는 추후에 시스템 고장으로 인한 회복시에 사용되게 된다. 트랜잭션 로그 버퍼(210)의 내용은 트랜잭션을 완료하거나 철회할 때, 전역 로그 버퍼(220-1,220-2)에 기록되어 로그 공간(126)에 저장된다.
도 3은 본 발명이 적용되는 파일 시스템에서 로그 공간(126)에 저장되는 로그 데이터의 포맷이다.
도 3을 참조하면, 로그는 메타 데이터 로그(310)와 트랜잭션 종료 또는 철회 로그(320)가 있는데, 메타 데이터 로그(310)는 로그에 대한 헤더 정보(312)와 변경된 메타 데이터 블록(314)으로 구성된다. 그리고 트랜잭션 완료 또는 철회 로그(320)는 로그 헤더(322)와 트랜잭션이 기록한 메타 데이터 로그에 대한 정보(324)로 구성된다.
도 4는 본 발명이 적용되는 파일 시스템에서 전역 로그 버퍼와 로그 공간 간의 관계를 도시한 개략도이다.
도 4를 참조하면, 로그는 전역 로그 버퍼 단위(220)로 로그 공간(126)에 저장된다. 그리고 각 로그는 다른 로그와 구별할 수 있는 유일한 값인 로그 시퀀스번호(Log Sequence Number: LSN)를 갖는다. 이 로그 시퀀스번호(LSN)는 로그 공간(126)이 재사용된 회수를 나타내는 순차번호(sequence number)와 로그 공간(126)의 시작 위치로부터의 상대적인 변위(offset)로 구성되며, 이 값은 로그 공간(126)에서 로그의 위치를 나타낼 수도 있다.
로그 관리기 모듈(124)에서는 이러한 로그의 저장과 관리를 위해 세가지 정보를 유지한다. 첫번째로 현재 추가된 로그의 로그 시퀀스번호(LSN)값(400)을 유지한다. 이 값은 현재 전역 로그 버퍼(220)에 추가된 로그의 시작 위치를 가리키며, 트랜잭션이 로그를 추가할 때마다 증가하면서 다음에 추가되는 로그의 LSN 값을 할당한다. 두번째로 최소 유효 로그의 LSN값(401)을 유지한다. 최소유효 로그의 LSN값(401)은 시스템 고장으로부터 메타 데이터를 일관된 상태로 회복하기 위하여 필요한 유효 로그들 중에서 가장 작은 LSN 값으로서, 시스템 회복을 위하여 로그공간(126)에 접근할 시작위치가 된다. 세번째로 최근에 로그 공간(126)에 저장된 로그의 LSN 값(402)이 유지된다. 최근 로그의 LSN값(402)은 마지막으로 로그 공간(126)에 저장된 로그의 시작 위치를 가리키며, 또한 마지막으로 유효한 로그의 시작 위치를 가리킨다. 따라서 시스템 고장으로부터 회복을 위해서 최소 유효 로그의 LSN(401)과 최근 저장 로그의 LSN(402) 사이에 있는 로그만 재수행하면 된다.
도 5는 본 발명이 적용되는 파일 시스템에서 로그 공간을 반복적으로 재사용할 수 있도록 하는 개념을 도시한 개략도이다.
도 5를 참조하면, 고정된 크기의 로그 공간(126)을 효율적으로 재사용하기 위해서는 로그 공간(126)에 저장된 메타 데이터 로그(310)와 실제 메타 데이터에 대한 변경이 이루어지는 메타 데이터와의 연관 관계를 유지할 필요가 있다. 즉, 변경된 메타 데이터가 버퍼에서 디스크로 저장되면, 그 메타 데이터에 대한 로그는 더 이상 유효하지 않다. 따라서 이러한 로그는 계속해서 로그 공간(126)에 유지할 필요가 없다.
본 발명에서는 로그 공간(126)에 저장되는 전역 로그 버퍼 단위(220)로 '유효 로그 테이블'(500)을 유지한다. 그리고 유효 로그 테이블(500)에는 해당 로그에 저장된 메타 데이터 로그(310)에 대한 메타 데이터가 아직 버퍼에서 디스크로 저장되지 않은 개수인 메타 데이터 버퍼의 참조값을 기록한다. 또한 메타 데이터 버퍼의 헤더(503)에는 버퍼에 적재된 메타 데이터에 대한 로그가 저장된 로그 공간의 유효 로그 테이블 정보와 메타 데이터 로그(310)가 저장된 LSN 값을 유지한다. 그리고 유효 로그 테이블(500)의 메타 데이터 버퍼 참조값은 트랜잭션이 완료할 때, 해당 메타 데이터 로그를 저장한 후에 증가된다(501). 그리고 나중에 메타 데이터 버퍼가 디스크로 저장될 때 감소된다(502).
도 6은 본 발명이 적용되는 파일 시스템에서 트랜잭션을 완료할 때 로깅에 대한 흐름도이다.
도 6을 참조하면, 트랜잭션은 완료할 때 자신이 변경한 모든 메타 데이터 버퍼에 대하여 단계 600~603을 수행한다. 먼저, 메타 데이터 로그(310)를 전역 로그 버퍼(220-1,220-2)에 기록하고, 전역 로그 버퍼(220-1,220-2)에 해당하는 유효 로그 테이블(500)에서 메타 데이터 버퍼의 참조값을 증가한다(600). 그리고 메타 데이터 로그(310)에 대한 정보를 트랜잭션 로그 버퍼(210)에 기록한다(601). 그 다음 메타 데이터 버퍼의 헤더(503)에 유효 로그 테이블(500)에 대한 정보와 메타 데이터 로그(310)가 기록된 LSN 값을 설정한다(602). 이때 만약 이전에 메타 데이터 로그가 기록된 적이 있으면, 이전에 기록된 메타 데이터 로그의 LSN 값과 현재 기록된 메타 데이터 로그의 LSN 값을 비교하여, 그 값이 임계치 이상이면 모든 로그를 로그 공간(126)에 저장한 이후에 메타 데이터 버퍼를 저장하도록 표시한다(603). 이러한 처리가 모든 변경된 메타 데이터에 대해 수행된 다음에는 트랜잭션 로그 버퍼(210)의 트랜잭션 완료 로그(320)를 전역 로그 버퍼(220-1,220-2)에 기록하고(604), 전역 로그 버퍼(220-1,220-2)를 로그 공간(126)에 저장한다(605). 그리고 단계 603에서 디스크에 저장하도록 표시된 메타 데이터 버퍼를 디스크에 저장한(606) 후에, 모든 변경된 메타 데이터 버퍼들에 대한 래치를 해제함으로써 다른 트랜잭션이 변경된 메타 데이터 버퍼를 접근할 수 있도록 한다(607).
도 7은 본 발명이 적용되는 파일 시스템에서 메타 데이터 버퍼가 디스크에 저장될 때 로그 공간의 관리에 대한 흐름도이다.
메타 데이터에 대한 변경 작업은 메타 데이터 버퍼상에서 이루어진다. 따라서 트랜잭션은 메타 데이터를 변경하기 위하여 해당 메타 데이터를 메타 데이타 버퍼에 적재하고, 메타 데이터에 대한 변경 작업을 수행한다. 이때 트랜잭션은 변경된 메타 데이터를 다른 트랜잭션이 접근하지 못하도록 래치를 걸어두었다가 트랜잭션을 완료하거나 철회할 때 래치를 푼다. 따라서 디스크에 저장된 메타 데이터는 정상적으로 완료된 트랜잭션에 의해서만 쓰여진 것이다. 메타 데이터 버퍼가 디스크로 저장되는 경우는 버퍼 관리 정책에 의해 해당 버퍼가 디스크로 쓰여지도록 선정된 경우이거나 오랫동안 디스크에 반영되지 않고 버퍼에서만 변경된 경우에 디스크에 저장된다. 또한 파일 시스템을 언마운트할 때는 모든 변경된 메타 데이터 버퍼를 디스크로 내려쓴다. 여기서, 메타 데이터 버퍼를 디스크로 저장한다는 것은 해당 메타 데이터 로그가 더 이상 유효하지 않다는 것을 의미한다. 그러므로 메타 데이터 버퍼를 디스크에 반영할 때 로그 공간에 대한 적절한 처리를 함으로써 로그 공간을 순환하면서 재사용할 수 있다.
도 7을 참조하면, 메타 데이터 버퍼를 디스크에 저장하는 연산은 먼저 메타 데이터 버퍼에 적재된 메타 데이터가 변경되었는 지를 확인하고(700), 변경되었으면 바로 디스크로 저장한다(701). 그리고 현재 로그 공간의 최소 유효 로그의 LSN(401)과 최근에 저장된 로그의 LSN(402)의 차이가 전역 로그 버퍼의 크기 보다 크면(702), 메타 데이터 버퍼 헤더(503)에서 가리키고 있는 유효 로그 테이블(500)에서 메타 데이터 버퍼의 참조값에서 1을 뺀다(703).
도 8은 본 발명이 적용되는 파일 시스템에서 로그 버퍼를 저장할 때 로그 공간의 관리에 대한 흐름도이다.
로그 버퍼를 저장하는 경우는 로그 버퍼가 가득찬 경우이거나 또는 트랜잭션을 완료하면서 기록한 로그가 아직 로그 공간(126)에 반영되지 않은 경우에 전역 로그 버퍼의 내용을 로그 공간(126)에 저장하게 된다. 이때 로그 공간(126)에 최소한의 유효한 로그만을 유지하기 위한 처리를 해준다.
먼저, 로그 버퍼를 저장한 후에 현재 최소 유효 로그의 LSN값(401)과 최근에 저장된 로그의 LSN값(402)의 차이와, 전역 로그 버퍼의 크기를 비교한다(800). 만약, 그 차이가 전역 로그 버퍼의 크기 보다 작으면 아직 전역 로그 버퍼에 계속해서 다른 트랜잭션에 의해 로그가 기록될 수 있으므로 최소 유효 로그 LSN 값(401)은 변경하지 않는다. 그렇지 않고 만약 그 차이가 전역 로그 버퍼의 크기 보다 크면 현재 최소 유효 로그 LSN(401)에 해당하는 유효 로그 테이블(500)이 메타 데이터 버퍼에 의해 참조되는 값을 비교한다(801). 그 값이 "0"이라면 최소 유효 로그 LSN(401)에 해당하는 로그에 쓰여진 메타 데이터 로그는 더 이상 유효하지 않다. 왜냐하면 해당 메타 데이터가 이미 디스크에 반영되었기 때문이다. 따라서 최소 유효 로그 LSN 값(401)을 다음 유효 로그 테이블에 해당하는 LSN 값으로 변경한다. 그리고 최소 유효 로그 LSN(401)과 최근 저장 로그 LSN(402)의 차이가 전역 로그 버퍼 크기 보다 작거나 또는 최소 유효 로그 LSN(401)에 해당하는 유효 로그 테이블의 메타 데이터 버퍼 참조값이 "0"보다 클 때까지 단계 800~802를 반복한다.
도 9는 본 발명이 적용되는 파일 시스템에서 파일 시스템을 정상적으로 언마운트할 때 로그 공간의 관리에 대한 흐름도이다.
도 9를 참조하면, 파일 시스템이 정상적으로 언마운트되면 파일 시스템이 마운트되어 있는 동안 수행된 파일 동작에 의해 변경된 메타 데이터는 모두 디스크로 반영된다. 따라서 이전의 파일 동작들에 의해 기록된 로그는 더 이상 유지할 필요가 없다. 본 발명에서는 고정된 크기의 로그 공간을 반복적으로 재이용하면서 파일 시스템을 다시 마운트하더라도 기존에 쓰여진 로그를 초기화하지 않고 로그를 기록할 수 있도록 한다.
이를 위해 본 발명에서는 파일 시스템이 언마운트될 때, 변경된 메타 데이터를 모두 디스크에 저장한 이후에 최근에 저장된 로그가 있는지를 확인한다(900). 그리고 만약 최근에 저장된 로그가 있으면 최근에 저장된 로그의 LSN값으로 최소 유효 로그의 LSN값(401)을 변경한다(901). 이때 변경된 최소 유효 로그 LSN(401)의 변위가 로그 공간(126)의 끝에 도달하면 LSN의 순차 번호를 1 증가시킨다(902). 따라서 다시 로그 공간(126)의 처음부터 저장되는 로그가 유일한 LSN 값을 가질 수 있도록 한다.
도 10은 본 발명이 적용되는 파일 시스템에서 시스템 고장이 발생하였을 때 파일 시스템의 메타 데이터를 일관된 상태로 회복하는 과정에 대한 흐름도이다.
먼저 시스템 고장이 발생했을 당시의 최소 유효 로그의 LSN(401)으로부터 로그를 읽는다(1000). 그리고 읽은 로그가 유효한 로그인지를 검사한다. 즉, 읽은 로그가 마지막이거나(1001) 또는 기존에 저장된 로그인지(1002)를 검사한다. 만약, 읽은 로그가 유효한 로그이면 그 로그의 타입에 따라 로그 재수행 절차를 결정한다(1003). 로그의 타입에 따라 세가지의 재수행 처리 과정이 있을 수 있다.
첫번째로 실제 변경된 메타 데이터에 대한 정보를 가지고 있는 '메타 데이터 로그'(310)의 경우에는 그 로그에 대한 실제 메타 데이터를 디스크로부터 버퍼로 읽어 들인다(1004). 그리고 로그의 메타 데이터 버전과 디스크에 저장된 메타 데이터 버전을 비교하여, 만약 로그에 저장된 메타 데이터의 버전이 크다면(1007), 변경된 메타 데이터가 디스크에 저장되기 전에 시스템 고장이 발생하였으므로 버퍼에 적재된 메타 데이터를 로그의 메타 데이터로 덮어씀으로써 재수행을 한다(1008).
두번째로 '트랜잭션 완료 로그'(320)이면 정상적으로 완료된 트랜잭션에 의해 저장된 로그로, 이 로그에는 해당 트랜잭션이 기록한 메타 데이터 로그에 대한 정보를 갖는다. 따라서 이 경우에는 트랜잭션에 대한 모든 메타 데이터 로그를 재수행한 버퍼를 언픽스(unfix)한다(1005).
세번째로 '트랜잭션 철회 로그'(320)의 경우에는 비정상적으로 완료된 트랜잭션에 의해 쓰여진 로그로, 이 로그에는 트랜잭션이 철회되기 전까지 기록된 메타 데이터 로그의 정보를 갖는다. 따라서 이 로그에 대한 처리는 기존에 이 트랜잭션의 메타 데이터 로그에 대해 재수행한 버퍼의 내용을 무시하고 버퍼들을 언픽스(unfix)함으로써(1006) 철회된 트랜잭션에 의해 재수행된 결과가 남지 않도록 한다.
이와 같이 읽은 로그의 타입에 따라 세가지 경우에 대한 처리가 끝나면, 최소 유효 로그의 LSN 값(401)을 다음에 읽을 로그의 LSN 값으로 변경한다(1009). 그리고 로그 공간의 모든 유효한 로그에 대하여 단계 1000~1009의 과정을 반복한다. 로그에 대한 재수행이 끝나면, 재수행이 진행된 모든 메타 데이터 버퍼들을 디스크로 저장함으로써(1010) 메타 데이터를 일관성 있는 상태로 만든다.
이상에서 설명한 바와 같이, 본 발명은 시스템 고장이 발생하였을 때 보다 빨리 파일 시스템의 메타 데이터를 일관성 있는 상태로 회복하기 위하여 로그 공간에 최소의 로그만을 유지하면서 한번의 로그 스캔으로 파일 시스템의 메타 데이터를 일관된 상태로 회복할 수 있다. 또한, 고정된 크기의 로그 공간을 반복적으로 재사용함으로써 로그 공간을 효율적으로 관리할 수 있다.
도 1은 본 발명이 적용될 수 있는 파일 시스템에서 회복과 관련된 모듈들의 구성도,
도 2는 본 발명이 적용되는 파일 시스템에서 회복 관리기 모듈의 로그 버퍼와 트랜잭션들의 로그 버퍼 간의 관계를 도시한 개략도,
도 3은 본 발명이 적용되는 파일 시스템에서 로그 공간에 저장되는 로그 데이터의 포맷,
도 4는 본 발명이 적용되는 파일 시스템에서 로그 버퍼와 로그 공간 간의 관계를 도시한 개념도,
도 5는 본 발명이 적용되는 파일 시스템에서 로그 공간을 반복적으로 재사용하기 위한 개념을 도시한 개략도,
도 6은 본 발명이 적용되는 파일 시스템에서 트랜잭션을 완료할 때 로깅에 대한 흐름도,
도 7은 본 발명이 적용되는 파일 시스템에서 메타 데이터 버퍼가 디스크에 저장될 때 로그 공간의 관리에 대한 흐름도,
도 8은 본 발명이 적용되는 파일 시스템에서 로그 버퍼를 로그 공간에에 저장할 때 로그 공간의 관리에 대한 흐름도,
도 9는 본 발명이 적용되는 파일 시스템에서 파일 시스템을 언마운트할 때 로그 공간의 관리에 대한 흐름도,
도 10은 본 발명이 적용되는 파일 시스템에서 시스템 고장이 발생하였을 때의 회복 과정에 대한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
112: 트랜잭션 관리기 모듈 114: 메타 데이터 버퍼 관리기 모듈
116: 파일 저장공간 122: 회복 관리기 모듈
124: 로그 관리기 모듈 126: 로그공간
210: 트랜잭션 로그 버퍼 220, 220-1,220-2: 전역 로그 버퍼
310: 메타 데이터 로그 322: 트랜잭션 종료/철회 로그

Claims (12)

  1. 파일 저장공간에 파일을 저장하고 관리하기 위한 파일 시스템에 있어서,
    파일 시스템의 메타 데이터를 변경하는 파일 동작들을 트랜잭션 단위로 수행함으로써 메타 데이터 변경 연산의 회복을 지원하기 위한 트랜잭션 관리기 모듈;
    상기 트랜잭션의 요구에 따라 메타 데이터에 대한 연산이 이루어지는 버퍼 공간에 대한 관리를 하는 메타 데이터 버퍼 관리기 모듈;
    상기 트랜잭션에서 변경한 메타 데이터에 대한 로그를 메타 데이터 버퍼에서 로그 공간에 전역 로그 버퍼 단위로 저장하는 로그 관리기 모듈; 및
    시스템 고장이 발생하였을 때, 상기 로그 관리기 모듈을 통해 로그 공간에 저장된 로그를 이용하여 파일 시스템의 메타 데이터를 일관된 상태로 회복하기 위한 회복 관리기 모듈을 포함하여 구성되는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  2. 제1항에 있어서, 상기 로그 관리기 모듈은,
    로그를 기록하는 트랜잭션들의 동시성을 향상시키기 위해 두개의 전역 로그 버퍼를 구비하여 하나의 전역 로그 버퍼가 저장될 때, 트랜잭션들은 다른 전역 로그 버퍼에 로그를 계속 기록하도록 된 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  3. 제1항에 있어서, 상기 트랜잭션 관리기 모듈은,
    각 트랜잭션마다 트랜잭션 로그 버퍼를 사용하고, 상기 트랜잭션 로그 버퍼에는 트랜잭션이 메타 데이터 로그를 기록할 때마다 그 메타 데이터 로그에 대한 정보를 기록한 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  4. 제3항에 있어서, 상기 트랜잭션 로그 버퍼는,
    트랜잭션을 완료하거나 철회할 때, 상기 전역 로그 버퍼에 기록되어 로그 공간에 저장되는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  5. 제1항에 있어서,
    상기 로그는 메타 데이터 로그와 트랜잭션 종료/철회 로그로 구분되고, 상기 메타 데이터 로그는 로그 헤더와 변경된 메타 데이터 블록으로 구성되고, 상기 트랜잭션 완료/철회 로그는 로그 헤더와 트랜잭션이 기록한 메타 데이터 로그에 대한 정보로 구성된 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  6. 제5항에 있어서,
    상기 로그는 다른 로그와 구별할 수 있는 유일한 값인 로그 시퀀스번호(Log Sequence Number: LSN)를 갖고, 상기 로그 시퀀스번호(LSN)는 로그 공간이 재사용된 회수를 나타내는 순차번호(sequence number)와, 로그 공간의 시작 위치로부터의 상대적인 변위(offset)로 구성되는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  7. 제1항에 있어서, 상기 로그 관리기 모듈은
    로그의 저장과 관리를 위해 로그공간에 저장되는 전역 로그 버퍼 단위로 유효 로그 테이블을 유지하고, 현재 추가된 로그의 로그 시퀀스번호(LSN)값과, 최소 유효 로그의 LSN값과, 최근에 로그 공간에 저장된 로그의 LSN 값을 관리하여
    시스템 고장으로부터 회복을 위해서 최소 유효 로그의 LSN과 최근 저장 로그의 LSN 사이에 있는 로그만 재수행하는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 시스템.
  8. 메타 데이터 로그를 전역 로그 버퍼에 기록하고, 전역 로그 버퍼에 해당하는 유효 로그 테이블에서 메타 데이터 버퍼의 참조값을 증가하는 단계;
    메타 데이터 로그에 대한 정보를 트랜잭션 로그 버퍼에 기록하는 단계;
    메타 데이터 버퍼의 헤더에 유효 로그 테이블에 대한 정보와 메타 데이터 로그가 기록된 로그 시퀀스번호(LSN) 값을 설정하는 단계;
    만약 이전에 메타 데이터 로그가 기록된 적이 있으면, 이전에 기록된 메타 데이터 로그의 로그 시퀀스번호(LSN) 값과 현재 기록된 메타 데이터 로그의 로그 시퀀스번호(LSN) 값을 비교하여 그 값이 임계치 이상이면 모든 로그를 로그 공간에 저장한 이후에 메타 데이터 버퍼를 저장하도록 표시하는 단계;
    상기 과정이 모든 변경된 메타 데이터에 대해 수행된 다음에는 트랜잭션 로그 버퍼의 트랜잭션 완료 로그를 전역 로그 버퍼에 기록하고, 전역 로그 버퍼를 로그 공간에 저장하는 단계; 및
    상기 디스크에 저장하도록 표시된 메타 데이터 버퍼를 디스크에 저장한 후에, 모든 변경된 메타 데이터 버퍼들에 대한 래치를 해제함으로써 다른 트랜잭션이 변경된 메타 데이터 버퍼를 접근할 수 있도록 하는 단계를 포함하는 파일 시스템의 메타 데이터 회복을 위한 로깅 방법.
  9. 제8항에 있어서, 메타 데이터 버퍼를 디스크에 저장하는 경우는
    버퍼에 적재된 메타 데이터가 변경되었는지를 확인하고, 변경되었으면 바로 디스크로 저장하는 단계;
    현재 로그 공간의 최소 유효 로그의 로그 시퀀스번호(LSN)와, 최근에 저장된 로그의 시퀀스번호(LSN)의 차이가 전역 로그 버퍼의 크기 보다 크면, 메타 데이터 버퍼 헤더에서 가리키고 있는 유효 로그 테이블에서 메타 데이터 버퍼의 참조값에서 1을 빼는 단계를 더 구비하는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅 방법.
  10. 제8항에 있어서, 로그 버퍼를 저장하는 경우는
    로그 버퍼를 저장한 후에 현재 최소 유효 로그의 LSN값과 최근에 저장된 로그의 LSN값의 차이와 로그 버퍼의 크기를 비교하는 단계;
    비교결과 그 차이가 전역 로그 버퍼의 크기 보다 작으면 최소 유효 로그 LSN 값을 그대로 유지하는 단계;
    비교결과 그 차이가 전역 로그 버퍼의 크기 보다 크면 현재 최소 유효 로그 LSN에 해당하는 유효 로그 테이블이 메타 데이터 버퍼에 의해 참조되는 값을 비교하는 단계;
    참조되는 값이 "0"이라면, 최소 유효 로그 LSN에 해당하는 로그에 쓰여진 메타 데이터 로그는 더 이상 유효하지 않으므로 최소 유효 로그 LSN 값을 다음 유효 로그 테이블에 해당하는 LSN 값으로 변경하는 단계; 및
    최소 유효 로그 LSN과 최근 저장 로그 LSN의 차이가 로그 버퍼 크기 보다 작거나 또는 최소 유효 로그 LSN에 해당하는 유효 로그 테이블의 메타 데이터 버퍼 참조값이 "0"보다 클 때까지 상기 과정을 반복하는 단계를 더 구비하는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅 방법.
  11. 제8항에 있어서, 파일 시스템이 정상적으로 언마운트되는 경우,
    변경된 메타 데이터를 모두 디스크에 저장한 이후에 최근에 저장된 로그가 있는지를 확인하는 단계;
    만약 최근에 저장된 로그가 있으면 최근에 저장된 로그의 LSN값으로 최소 유효 로그의 LSN값을 변경하는 단계; 및
    변경된 최소 유효 로그 LSN의 변위가 로그 공간의 끝에 도달하면 LSN의 순차 번호를 1 증가시키는 단계를 더 구비하는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복을 위한 로깅 방법.
  12. 제8항의 방법으로 로깅된 데이터로부터 파일 시스템의 메타 데이터를 회복하는 방법에 있어서,
    시스템 고장이 발생했을 당시의 최소 유효 로그의 LSN으로부터 로그를 읽는 단계;
    읽은 로그가 유효한 로그인지를 검사하는 단계;
    만약, 읽은 로그가 유효한 로그이면 그 로그의 타입에 따라 로그 재수행 절차를 결정하는 단계;
    상기 로그타입이 '메타 데이터 로그'이면, 그 로그에 대한 실제 메타 데이터를 디스크로부터 버퍼로 읽어 들이고, 로그의 메타 데이터 버전과 디스크에 저장된 메타 데이터 버전을 비교하여, 로그에 저장된 메타 데이터의 버전이 크다면, 버퍼에 적재된 메타 데이터를 로그의 메타 데이터로 덮어씀으로써 재수행하는 단계;
    상기 로그타입이 '트랜잭션 완료 로그'이면 정상적으로 완료된 트랜잭션에 의해 저장된 로그이므로 트랜잭션에 대한 모든 메타 데이터 로그를 재수행한 버퍼를 언픽스(unfix)하는 단계;
    상기 로그타입이 '트랜잭션 철회 로그'의 경우에는 비정상적으로 완료된 트랜잭션에 의해 쓰여진 로그이므로, 기존에 이 트랜잭션의 메타 데이터 로그에 대해 재수행한 버퍼의 내용을 무시하고 버퍼들을 언픽스(unfix)하는 단계;
    상기 로그의 타입에 따라 모두 처리가 끝나면, 최소 유효 로그의 LSN 값을 다음에 읽을 로그의 LSN 값으로 변경하는 단계; 및
    로그 공간의 모든 유효한 로그에 대하여 상기 과정을 반복하고, 로그에 대한 재수행이 끝나면, 재수행이 진행된 모든 메타 데이터 버퍼들을 디스크로 저장하는 단계를 포함하는 것을 특징으로 하는 파일 시스템의 메타 데이터 회복 방법.
KR10-2003-0085715A 2003-11-28 2003-11-28 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치 KR100501414B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0085715A KR100501414B1 (ko) 2003-11-28 2003-11-28 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0085715A KR100501414B1 (ko) 2003-11-28 2003-11-28 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치

Publications (2)

Publication Number Publication Date
KR20050052016A true KR20050052016A (ko) 2005-06-02
KR100501414B1 KR100501414B1 (ko) 2005-07-18

Family

ID=37248152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0085715A KR100501414B1 (ko) 2003-11-28 2003-11-28 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치

Country Status (1)

Country Link
KR (1) KR100501414B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720816B2 (en) 2006-01-05 2010-05-18 Samsung Electronics Co., Ltd. System and method for managing log information
KR101017067B1 (ko) * 2008-04-08 2011-02-25 재단법인서울대학교산학협력재단 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20130106258A (ko) * 2012-03-19 2013-09-27 삼성전자주식회사 이동식 저장 장치 및 이를 포함하는 시스템
WO2017082520A1 (ko) * 2015-11-10 2017-05-18 엘지전자 주식회사 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법
US9798761B2 (en) 2014-07-24 2017-10-24 Research & Business Foundation Sungkyunkwan University Apparatus and method for fsync system call processing using ordered mode journaling with file unit
US10346368B2 (en) 2014-06-30 2019-07-09 Research & Business Foundation Sungkyunkwan University Method and apparatus of per-block-group journaling for ordered mode journaling file system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101765517B1 (ko) 2016-04-06 2017-08-08 한양대학교 산학협력단 데이터베이스를 저널링하는 장치 및 방법
US11301331B2 (en) 2018-09-20 2022-04-12 Samsung Electronics Co., Ltd. Storage device and operating method of storage device

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7720816B2 (en) 2006-01-05 2010-05-18 Samsung Electronics Co., Ltd. System and method for managing log information
KR101017067B1 (ko) * 2008-04-08 2011-02-25 재단법인서울대학교산학협력재단 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20130106258A (ko) * 2012-03-19 2013-09-27 삼성전자주식회사 이동식 저장 장치 및 이를 포함하는 시스템
US10346368B2 (en) 2014-06-30 2019-07-09 Research & Business Foundation Sungkyunkwan University Method and apparatus of per-block-group journaling for ordered mode journaling file system
US9798761B2 (en) 2014-07-24 2017-10-24 Research & Business Foundation Sungkyunkwan University Apparatus and method for fsync system call processing using ordered mode journaling with file unit
WO2017082520A1 (ko) * 2015-11-10 2017-05-18 엘지전자 주식회사 데이터베이스 관리 시스템 및 그의 데이터 변경 및 복구 방법

Also Published As

Publication number Publication date
KR100501414B1 (ko) 2005-07-18

Similar Documents

Publication Publication Date Title
US10949415B2 (en) Logging system using persistent memory
US9836362B2 (en) Cyclic commit transaction protocol
US5561795A (en) Method and apparatus for audit trail logging and data base recovery
US7640412B2 (en) Techniques for improving the reliability of file systems
US8738588B2 (en) Sequential media reclamation and replication
US7613743B1 (en) Methods and apparatuses for data protection
US6560615B1 (en) Method and apparatus for implementing a highly efficient, robust modified files list (MFL) for a storage system volume
US7107486B2 (en) Restore method for backup
CA2933790C (en) Apparatus and method for creating a real time database replica
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
KR100689762B1 (ko) 데이터베이스 시스템 및 그 데이터베이스 시스템의데이터베이스 컴포넌트를 메인 메모리에 저장하는 시스템및 방법
US9471622B2 (en) SCM-conscious transactional key-value store
CN1454349A (zh) 主存储器事务处理系统中的高度并行日志和恢复操作的方法和系统
US5740434A (en) System for maintenance of database integrity
US20110145201A1 (en) Database mirroring
US11200122B2 (en) Barrierless snapshots
CN115145697B (zh) 数据库事务的处理方法、装置及电子设备
Graefe et al. Definition, detection, and recovery of single-page failures, a fourth class of database failures
KR100501414B1 (ko) 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치
Lomet et al. Logical logging to extend recovery to new domains
Lomet High speed on-line backup when using logical log operations
KR101966399B1 (ko) 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법
US9075819B1 (en) Method and apparatus for providing parallel backup set processing for creating a synthetic backup
CN114880277B (zh) 块设备快照方法、系统和存储介质
JP2708610B2 (ja) データベースのログ管理処理方式

Legal Events

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

Payment date: 20100701

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee