KR101584760B1 - 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치 - Google Patents

순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치 Download PDF

Info

Publication number
KR101584760B1
KR101584760B1 KR1020140080942A KR20140080942A KR101584760B1 KR 101584760 B1 KR101584760 B1 KR 101584760B1 KR 1020140080942 A KR1020140080942 A KR 1020140080942A KR 20140080942 A KR20140080942 A KR 20140080942A KR 101584760 B1 KR101584760 B1 KR 101584760B1
Authority
KR
South Korea
Prior art keywords
file
transaction
block group
journaling
memory
Prior art date
Application number
KR1020140080942A
Other languages
English (en)
Other versions
KR20160002109A (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 KR1020140080942A priority Critical patent/KR101584760B1/ko
Priority to US14/751,583 priority patent/US10346368B2/en
Publication of KR20160002109A publication Critical patent/KR20160002109A/ko
Application granted granted Critical
Publication of KR101584760B1 publication Critical patent/KR101584760B1/ko

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/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Abstract

본 발명의 일 실시예에 따른 컴퓨팅 장치는 순서 모드 저널링을 지원하는 파일 시스템을 운영하는 프로그램이 탑재된 메모리 및 메모리에 저장된 프로그램을 운영하는 프로세서를 포함하되, 프로세서는 프로그램의 실행에 따라, 메모리에 저장되는 파일에 대한 fsync 시스템 호출이 발생하면, 상기 파일이 포함된 트랜잭션 복합체에서 파일과 연관된 블록 그룹 단위의 트랜잭션을 추출한 이후, 트랜잭션을 메모리의 데이터 영역에 기록하고, 메모리의 저널 영역에 트랜잭션의 저널링을 수행 할 수 있다.

Description

순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치{METHOD AND APPARATUS OF JOURNALING BY BLOCK GROUP UNIT FOR ORDERED MODE JOURNALING FILE SYSTEM}
본 발명은 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치에 관한 것이다.
데스크 톱, 노트북, 스마트 폰 및 태블릿 PC 등 컴퓨팅 장치의 운영체제는 저장장치에 접근하여 파일을 읽고 쓰기 위하여 파일 시스템(file system)을 사용한다. 최근 많은 컴퓨팅 장치에서 이용하는 파일 시스템은 EXT4(extended file system 4)이다. EXT4는 일관성과 지속성을 보장하는 저널링(journaling) 파일 시스템이다. 저널링은 시스템 장애 또는 전원 오류 등이 발생하여 갑작스럽게 시스템이 종료되었을 때, 파일 시스템을 빠르게 복구할 수 있는 기법이다. EXT4는 저널링을 수행하기 위하여 주기적으로 저장장치의 저널 로그(journal log)를 저장장치의 미리 예약된 영역인 저널 영역(journal area)에 기록한다.
EXT4의 저널링 방법은 쓰기저장 모드(write-back mode), 순서 모드(ordered mode), 데이터 모드(data mode)가 있다. 순서 모드는 EXT4의 저널링 방법의 기본 옵션으로, 파일 시스템의 일관성을 유지하기 위하여 업데이트가 필요한 모든 데이터가 기록된 이후 메타데이터(meta-data)만 저널 영역에 기록한다.
저널링 방법을 수행할 때, 가장 소요시간이 긴 데이터 저장은 백그라운드에서 실행되는 저널 스레드(journal thread)를 이용하기 때문에 이에 따른 긴 응답시간(response time)이 큰 문제 되지 않는다. 그러나 fsync 시스템 호출은 백그라운드로 실행되지 않으므로 fsync 시스템 호출 시 저널링의 응답시간이 중요한 문제가 된다.
Fsync 시스템 호출은 리눅스의 시스템 호출 함수(system call function)로 사용자가 지정한 파일의 변경 내용이 저장장치에 확실히 기록되었는지를 보장받기 위한 것이다. EXT4에서 fsync 시스템 호출은 저널링 스레드를 이용하여 트랜잭션 복합체 안의 수정된 모든 메타데이터를 저널 영역에 기록한다. 이때, 트랜잭션 복합체는 파일 시스템의 업데이트를 모은 것이다. EXT4는 파일 연산이 발생할 때, 하나의 트랜잭션(transaction) 단위로 저널링을 수행하는 대신, 트랜잭션 복합체 단위로 저널링을 수행한다. 트랜잭션 복합체는 fsync 시스템 호출에 포함되지 않은 파일이 포함될 수도 있다. 만약, 요청하지 않은 파일의 변경한 부분이 많은 경우, fsync 시스템 호출의 수행시간이 증가할 수 있다.
이러한 문제를 해결하기 위한 기존 발명은 다음과 같다.
한국 등록특허공보 제0981064호(발명의 명칭: "저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법")은 메모리 버퍼에 저널 트랜잭션 디스크립터 블록과 데이터 블록, 메타 데이터 블록을 등록하여 정보를 업데이트하는 저널링 방법에 대한 발명을 개시하고 있다. 이 발명은 저장 영역을 복수의 블록 그룹으로 나누고, 각각의 블록을 이용하여 저널링을 수행한다. 이 발명에서 생성하는 블록은 순차적인 저널링 과정에서 캐시에 저장됨과 동시에 디스크에 저장하기 위해서 이용한다. 그러나 이 발명에서 생성되는 블록은 순차적인 저널링 과정에서 캐시에 저장됨과 동시에 저장장치에 저장하기 위하여 이용하는 것이므로, 한 번에 처리하는 메타데이터와 파일의 양은 유지된다. 그러므로 fsync 시스템 호출 수행 시 시간이 감소하지 않는다.
한국 공개특허공보 제2005-0052016호(발명의 명칭: "파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치")은 트랜잭션 단위로 메타 데이터를 변경하고, 변경한 메타 데이터의 로그를 전역 로그 버퍼 단위로 저장하는 발명을 개시하고 있다. 이 발명은 메타 데이터 로그를 이용하여 버퍼에 적재된 메타 데이터의 변경 여부를 확인하고, 변경된 경우 디스크로 저장한다. 그러나, 이 발명은 트랜잭션 단위로 저널링을 수행하므로, fsync 시스템 호출 수행 시 불필요한 파일의 저장에 따라 수행시간이 증가하는 문제를 해결할 수 없다.
한국 등록특허공보 제0453228호(발명의 명칭: "공유 디스크 파일 시스템의 저널링 및 회복 방법")은 메타 데이터 로그를 이용하여 버퍼에 적재된 메타 데이터의 변경 여부를 확인하고 변경된 경우 저장장치로 저장하는 발명을 개시하고 있다. 이 발명 역시 트랜잭션 단위로 저널링을 수행하므로, fsync 시스템 호출 수행 시 불필요한 파일의 저장에 따라 수행시간이 증가할 수 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 실시예는 순서 모드 저널링을 지원하는 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치를 제공하는데 그 목적이 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 일 실시예에 따른 컴퓨팅 장치는 순서 모드 저널링을 지원하는 파일 시스템을 운영하는 프로그램이 탑재된 메모리 및 메모리에 저장된 프로그램을 운영하는 프로세서를 포함하되, 프로세서는 프로그램의 실행에 따라, 메모리에 저장되는 파일에 대한 fsync 시스템 호출이 발생하면, 파일이 포함된 트랜잭션 복합체에서 파일과 연관된 블록 그룹 단위의 트랜잭션을 추출한 이후, 트랜잭션을 메모리의 데이터 영역에 기록하고, 메모리의 저널 영역에 트랜잭션의 저널링을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따른 파일 시스템의 순서 모드 저널링 방법은 메모리에 저장되는 파일에 대한 fsync 시스템 호출이 발생하는 단계; fsync 시스템 호출에 따라, 파일이 포함된 트랜잭션 복합체에서 파일과 연관된 블록 그룹 단위의 트랜잭션을 추출하는 단계; 트랜잭션을 메모리의 데이터 영역에 기록하는 단계; 및 메모리의 저널 영역에 트랜잭션의 저널링을 수행하는 단계;를 포함할 수 있다.
전술한 과제 해결 수단 중 어느 하나에 의하면, 순서 모드 저널링을 지원하는 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치를 제공할 수 있으며, 이로 말미암아 관련 사업 전반에서 다양한 파급 효과를 기대할 수 있다.
본 발명은 순서 모드 저널링을 지원하는 파일 시스템에서 fsync 시스템 호출 실행 시 fsync 시스템 호출과 연관된 블록 그룹 단위의 트랜잭션만 사용하므로 파일 시스템의 일관성을 유지하면서, 최소한의 메타데이터 및 데이터를 기록할 수 있다. 그러므로 이를 통하여 fsync 시스템 호출을 자주 사용하는 애플리케이션의 성능 저하를 방지할 수 있다.
도 1은 기존 EXT4에서의 순서 모드 저널링을 이용한 fsync 시스템 호출 처리 과정을 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치를 개략적으로 도시한 구성도이다.
도 3은 본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링의 fsync 시스템 호출 처리 과정을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 블록 그룹 단위 저널링의 그룹 디스크립터 테이블 처리 과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법을 개략적으로 도시한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 도면을 참고하여 설명하면서, 같은 명칭으로 나타낸 구성일지라도 도면에 따라 도면 번호가 달라질 수 있고, 도면 번호는 설명의 편의를 위해 기재된 것에 불과하다. 그러므로 해당 도면 번호에 의해 각 구성의 개념, 특징, 기능 또는 효과가 제한 해석되는 것은 아니다.
먼저, 도 1을 이용하여 기존 파일 시스템인 EXT4에서 순서 모드 저널링을 이용한 fsync 시스템 호출 처리 과정을 설명한다.
도1은 기존 EXT4에서의 순서 모드 저널링을 이용한 fsync 시스템 호출 처리 과정을 설명하기 위한 예시도이다.
EXT4는 리눅스의 저널링 파일 시스템으로 신뢰성과 지속성을 보장한다. 이를 위하여 EXT4는 주기적으로 비활성화 메모리에 미리 예약된 저널 영역에 파일의 메타데이터를 저장한다. 저널 영역은 비휘발성 메모리에 미리 예약된 영역이다.
도 1의 저장장치는 하나의 저널 영역 및 하나의 데이터 영역을 포함하고 있다. 예를 들어, 데이터 영역은 BG1, BG2, BG3 및 BG4라고 표기된 4개의 블록 그룹으로 구성될 수 있다. 도 1의 트랜잭션 복합체에는 저널링을 수행할 8개의 메타데이터가 존재하고 페이지 캐시는 아직 저장장치에 기록하지 못한 4개의 파일에 대한 데이터 D1, D2, D3 및 D4가 존재한다. 트랜잭션 복합체에는 수정된 파일에 대한 아이노드 테이블(inode table), 블록 비트맵(block bitmap), 아이노드 비트맵(inode bitmap) 및 그룹 디스크립터 테이블(group descriptor table) 등 메타데이터를 포함할 수 있다. 아이노드 테이블은 파일의 정보를 기록하고, 블록 비트맵은 파일의 할당 여부를 기록하며, 블록 비트맵은 블록 그룹 내의 데이터 블록 할당 여부를 기록하는 메타데이터이다.
도 1에서 파일 3에 대하여 fsync 시스템 호출이 발생하면 저널링 스레드를 호출하여 트랜잭션 복합체에 대하여 저널링을 수행한다. Fsync 시스템 호출은 하나의 파일에 대해서 수정된 데이터를 저장장치에 전부 기록했다는 것을 보장받기 위해서 사용자가 시스템에 요청하는 연산이다. fsync 시스템 호출은 DBMS에 저장되는 데이터나 애플리케이션의 XML 설정 파일 등 자주 업데이트되며, 특정 시점에 저장 장치에 저장되는 것이 보장되어야 할 때 사용한다.
Fsync 시스템 호출 실행 시에는 일반적인 저널링과 달리 백그라운드로 실행되지 않는다. 즉, fsync 시스템 호출은 저널링 스레드가 호출하고 페이지 캐시에 존재하는 모든 데이터가 데이터 영역에 저장될 때까지 기다리게 된다. 그러므로 도 1에서는 파일 3의 데이터인 D3뿐만 아니라 파일 1, 파일 2 및 파일 4의 데이터인 D1, D2 및 D4 가 모두 데이터 영역에 저장될 때를 기다리게 된다. 모든 데이터가 데이터 영역에 쓰인 이후, 트랜잭션 복합체에 존재하는 모든 메타데이터를 저널 영역에 기록하게 된다. 이렇게 기존 순서 모드 저널링은 파일 3과 관계없는 파일의 저장할 데이터까지 데이터 영역에 저장해야 하므로 fsync의 응답시간이 증가하게 된다.
이러한 문제를 해결하기 위하여 트랜잭션 복합체에서 fsync를 수행하는 파일에 대한 트랜잭션을 분리하여 저널링을 수행하여 fsync 소요 시간을 줄일 수 있다. 그러나 트랜잭션 복합체에 존재하는 메타데이터는 수정된 내용이 모두 반영된 최종 버전이기 때문에 fsync를 수행하는 파일에 대한 트랜잭션만 분리하면 일관성을 위배하게 된다. 예를 들어, 도 1에서는 파일 3과 파일 4가 같은 블록 비트맵인 BB3을 수정한다. 그러므로 파일 4의 업데이트 없이 파일 3에 대하여 fsync 시스템 호출을 수행하면 파일 4의 BB3이 저널 영역에 기록되므로 파일 시스템이 불일치(inconsistency) 상태가 된다. 즉, 일관성 유지를 위하여 트랜잭션 복합체에서 블록 그룹 단위로 트랜잭션을 분리하여 저널링을 수행하는 방법이 필요하다.
다음은 본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법의 fsync 시스템 호출 처리 과정을 도 2, 도 3 및 도 4를 이용하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치를 개략적으로 도시한 구성도이다. 도 3은 본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법의 fsync 시스템 호출의 처리 과정을 설명하기 위한 예시도이다. 도 4는 본 발명의 일 실시예에 따른 블록 그룹 단위 저널링 방법의 그룹 디스크립터 테이블 처리 과정을 설명하기 위한 예시도이다.
본 발명의 일 실시예에 따른 컴퓨팅 장치(100)는 순서 모드 저널링을 지원하는 파일 시스템을 운영하는 프로그램이 탑재된 메모리(120) 및 메모리에 저장된 프로그램을 운영하는 프로세서(110)를 포함할 수 있다.
컴퓨팅 장치(100)는 서버, 워크스테이션, 데스크톱 컴퓨터 및 노트북 컴퓨터 등 일반적인 컴퓨터와 스마트 폰, 태블릿 PC 및 스마트 TV 등 최신 스마트 디바이스(smart device) 등을 포함할 수 있다.
컴퓨팅 장치(100)의 메모리(130)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 기억 장치를 통칭하는 것이다. 예를 들어, 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory)나 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 등을 포함할 수 있다.
메모리(120)에 저장된 프로그램은 본 발명이 적용된 파일 시스템을 운영하는 운영 체제로서 동작하거나, 본 발명이 적용된 파일 시스템이 탑재된 애플리케이션 형태로 구성될 수 있다.
본 발명의 일 실시예에 따른 컴퓨터 장치(100)의 프로세서(110)는 프로그램의 실행에 따라, 메모리(120)에 저장되는 파일에 대한 fsync 시스템 호출이 발생하면, 파일이 포함된 트랜잭션 복합체에서 파일과 연관된 블록 그룹 단위의 트랜잭션을 추출할 수 있다. 블록 그룹 단위의 트랜잭션을 추출한 후, 트랜잭션을 메모리(120)의 데이터 영역에 기록하고, 메모리(120)의 저널 영역에 트랜잭션의 저널링을 수행할 수 있다.
또한, 블록 그룹 단위의 트랜잭션은 블록 그룹 파일이 저장된 블록에 포함된 하나 이상의 파일 및 블록에 저장된 파일의 메타데이터를 포함할 수 있다. 이때 프로세서(110)는 프로그램의 실행에 따라, 트랜잭션에 포함된 파일을 메모리(120)의 데이터 영역에 기록하고, 트랜잭션에 포함된 메타데이터를 메모리(120)의 저널 영역에 기록할 수 있다.
본 발명의 일 실시예에 따르는 컴퓨터 장치(100)는 기존 저널링 방법과 유사하게 임의의 파일에 대한 fsync 시스템 호출이 발생하면 저널링 스레드를 호출하여 저널링을 수행하고, 저널링 수행이 끝날 때까지 기다릴 수 있다. 이때, 컴퓨터 장치(100)는 트랜잭션 복합체에서 fsync를 수행하는 파일과 연관된 트랜잭션을 추출하여 저널링을 수행할 수 있다. 본 발명은 이렇게 연관된 트랜잭션만을 이용하여 저널링을 수행하므로, 수정된 모든 파일에 대한 저널링을 수행하는 기존 저널링 방법보다 fsync 시스템 호출을 이용하는 애플리케이션의 응답시간을 단축할 수 있다.
도 3에서처럼 트랜잭션 복합체는 수정된 모든 파일에 대하여 수정된 내용이 모두 반영된 메타데이터를 포함한다. 본 발명은 파일 시스템의 일관성 유지를 위하여 트랜잭션 복합체에서 fsync 시스템 호출을 수행하는 파일 뿐 아니라 같은 블록에 저장하는 파일에 대한 메타데이터를 추출하여 블록 그룹 단위 트랜잭션을 생성할 수 있다.
본 발명은 파일 3에 대하여 fsync 시스템 호출을 수행하면, 트랜잭션 복합체에서 파일 3과 연관된 블록 그룹 단위의 트랜잭션을 추출할 수 있다. 파일 3을 포함한 블록 그룹 BG3에는 파일 3과 함께 파일 4가 포함되어 있다. 그러므로 블록 그룹 단위의 트랜잭션은 파일 3 및 파일 4의 메타데이터인 IT3, IB3, BB3 및 IT4를 포함한다.
파일 3과 연관된 블록 그룹 단위의 트랜잭션을 추출한 이후, 파일 3 및 파일 4를 데이터 영역의 BG3에 저장한다. 메모리의 저널 영역에는 파일 3 및 파일 4의 메타데이터인 IT3, IB3, BB3 및 IT4를 저장하여 트랜잭션 저널링을 수행할 수 있다.
이때, 블록 그룹 단위 저널링에서 여러 블록 그룹이 공유하고 있는 그룹 디스크립터 테이블을 처리하는 것이 문제가 된다. 도 3의 트랜잭션 복합체의 블록 그룹 디스크립터 테이블은 블록 그룹 2 및 블록 그룹 3이 함께 수정되어 있다. 만약, 블록 그룹 디스크립터 테이블을 그대로 저널 영역에 기록하면, 파일 시스템의 일관성이 위배되게 된다.
이러한 문제를 해결하기 위하여, 본 발명의 일 실시예에 따른 컴퓨터 장치(100)의 메모리(120)는 메모리(120)의 저널 영역의 그룹 디스크립터 테이블을 저장하는 버퍼를 포함할 수 있다. 버퍼에 저장된 그룹 디스크립터 테이블은 블록 그룹 단위 저널링을 수행할 때, 파일 시스템 일관성 유지를 위하여 사용된다.
프로세서(110)는 프로그램의 실행에 따라, fsync 시스템 호출이 발생하면, 저널 영역의 그룹 디스크립터 테이블을 메모리(120)의 버퍼에 복사할 수 있다. 트랜잭션에 대한 블록 그룹 단위 저널링을 수행하면, 버퍼에 복사된 그룹 디스크립터 테이블을 이용하여 저널 영역의 그룹 디스크립터 테이블의 업데이트를 수행할 수 있다.
본 발명의 일 실시예에 따른 그룹 디스크립터 테이블 처리 과정을 도 4를 예로 들어 설명한다. 도 4에서 GDT는 그룹 디스크립터 테이블을 의미한다. 도 4의 예에는 메모리(120)의 저널 영역에 저장된 그룹 디스크립터 테이블 블록과 Group 1 및 Group 2가 수정된 그룹 디스크립터 테이블 블록이 있다. 이때, 수정된 그룹 디스크립터 테이블 블록을 바로 저널 영역에 기록하면, 일관성을 위반하게 된다. 그러므로 본 발명에서는 블록 그룹 단위의 트랜잭션에서 업데이트된 정보만 반영하여 저널 영역에 기록할 수 있다. 만약, 블록 그룹 단위의 트랜잭션에서 Group 1이 업데이트되었다면, 저널 영역에 저장할 그룹 디스크립터 테이블 블록은 기존 저장된 그룹 디스크립터 테이블 블록에서 Group 1의 정보만 업그레이드된 것이 된다. 본 발명은 이 그룹 디스크립터 테이블 블록을 반영하여 블록 그룹 단위 트랜잭션을 생성하고, 저널 영역에 저장할 수 있다.
메모리(120)의 트랜잭션 복합체는 서로 상이한 데이터 영역의 블록에 위치한 제1파일 및 제2파일을 포함할 수 있다. 이때, 프로세서(110)는 프로그램의 실행에 따라, 제1파일에 대한 fsync 시스템 호출이 발생하면, 트랜잭션 복합체에서 제1파일 및 제1파일과 연관된 제1블록 그룹 단위의 트랜잭션을 추출할 수 있다. 제1 블록 그룹 단위의 트랜잭션을 추출한 후, 제1파일을 메모리(120)의 데이터 영역의 제1블록 그룹에 기록하고, 메모리(120)의 저널 영역에 제1블록 그룹 단위의 트랜잭션의 저널링을 수행할 수 있다. 저널링을 수행한 후, 트랜잭션 복합체에서 제1블록 그룹 단위의 트랜잭션을 삭제할 수 있다.
또한, 제 1블록 그룹 단위의 트랜잭션에 대한 저널링을 수행한 이후, 프로세서(110)은 파일 시스템을 이용하여 트랜잭션 복합체에 대한 저널링이 수행되면, 제2파일을 데이터 영역의 제2블록 그룹에 저장하고, 저널링 영역에 트랜잭션 복합체의 저널링을 수행할 수 있다.
다음은 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법에 대하여 설명한다.
도 5는 본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법을 개략적으로 도시한 순서도이다.
파일 시스템의 순서 모드 저널링 방법은 메모리에 저장되는 파일에 대한 Fsync 시스템 호출이 발생하면(S200), fsync 시스템 호출에 따라, 메모리에 저장되는 파일이 포함된 트랜잭션 복합체에서 파일과 연관된 블록 그룹 단위의 트랜잭션을 추출할 수 있다(S210). 트랜잭션을 추출한 후, 트랜잭션을 메모리의 데이터 영역에 기록하고(S220), 메모리의 저널 영역에 트랜잭션의 저널링을 수행할 수 있다(S230). 이렇게 fsync 시스템 호출 실행 시 연관된 블록 그룹 단위의 트랜잭션만을 이용하여 저널링을 수행하므로, 기존 순서 모드 저널링 보다 저널링 수행시간을 단축할 수 있다.
또한, 파일과 연관된 블록 그룹 단위 트랜잭션은 앞서 본 발명에 일 실시예에 따른 컴퓨팅 장치에서 설명한 것과 같이 파일이 저장된 블록에 포함된 하나 이상의 파일 및 블록에 저장된 파일의 메타데이터를 포함할 수 있다. 이때, 트랜잭션을 메모리의 데이터 영역에 기록하는 단계(S220)는 트랜잭션에 포함된 파일을 이용하고, 메모리의 저널 영역에 트랜잭션의 저널링을 수행하는 단계(S230)는 트랜잭션에 포함된 메타데이터를 이용할 수 있다.
본 발명은 블록 그룹 단위 트랜잭션에 대한 저널링을 수행한 후, 트랜잭션을 트랜잭션 복합체에서 삭제할 수 있다(S240).
본 발명은 메모리에 저장되는 파일에 대한 fsync 시스템 호출이 발생할 때(S200), 메모리의 버퍼에 저널 영역의 그룹 디스크립터 테이블을 복사하는 단계를 포함할 수 있다. 또한, 메모리의 저널 영역에 트랜잭션 수행하는 단계(S230)는 버퍼에 복사된 그룹 디스크립터 테이블을 이용하여 블록 그룹에 대한 업데이트를 수행하고, 버퍼의 그룹 디스크립터 테이블을 이용하여 저널 영역의 그룹 디스크립터 테이블을 업데이트 하는 것을 포함한다.
이렇게 버퍼에 저장된 그룹 디스크립터 테이블은 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 설명한 것과 같이 블록 그룹 단위 저널링을 수행할 때, 일관성을 유지하기 위하여 사용될 수 있다.
파일 시스템의 순서 모드 저널링 방법은 서로 상이한 데이터 영역의 블록에 위치한 제1파일 및 제2 파일을 포함하는 트랜잭션 복합체에 대하여, 제1파일에 대한 fsync 시스템 호출이 발생하면, fsync 시스템 호출에 따라, 트랜잭션 복합체에서 제1파일 및 제1 파일과 연관된 제1블록 그룹 단위의 트랜잭션을 추출할 수 있다. 이렇게 추출된 제1블록 그룹 단위의 트랜잭션을 메모리의 데이터 영역에 기록하고 메모리의 저널 영역에 트랜잭션의 저널링을 수행할 수 있다. 저널링이 완료되면, 트랜잭션 복합체에서 제1블록 그룹 단위 트랜잭션을 삭제할 수 있다.
도 3을 예로 들어 설명하면, 도 3에서 파일 3이 제 1파일이 되며, 파일 1이 제 2파일이 될 수 있다. 제 1파일인 파일 3에 대하여 fsync 시스템 호출이 발생하면, 파일 시스템의 순서 모드 저널링 방법은 fsync 시스템 호출에 따라 트랜잭션 복합체에서 파일 3 및 파일 3이 포함된 블록 그룹인 BG3에 대하여 제 1 블록 그룹 단위 트랜잭션을 추출할 수 있다. 이때, 추출된 제 1 블록 그룹 단위 트랜잭션은 파일 3, 파일 4 및 각 파일에 대한 메타데이터가 될 수 있다. 파일 시스템의 순서 모드 저널링 방법은 이렇게 추출된 제 1 블록 그룹 단위 트랜잭션을 이용하여 저널링을 수행할 수 있다. 또한, 저널링이 완료되면 트랜잭션 복합체에서 제 1 그룹 단위 트랜잭션이 삭제할 수 있다. 즉, 저널링이 완료되는 시점에 트랜잭션 복합체에는 파일 1, 파일 2 및 각각에 대한 메타데이터만 남아있게 된다.
또한, 파일 시스템의 순서 모드 저널링 방법은 트랜잭션 복합체에 대한 저널링을 수행하는 단계를 더 포함할 수 있다. 이때, 트랜잭션 복합체에 대하여 저널링을 수행하는 단계는, 제2 파일을 데이터 영역의 제2 블록 그룹에 저장하고, 메모리의 저널 영역에 트랜잭션의 복합체의 저널링을 수행할 수 있다.
도 3을 예를 들어 설명하면, 파일 시스템의 순서 모드 저널링 방법은 제 1 그룹 단위 트랜잭션이 삭제된 트랜잭션 복합체에 대하여 저널링을 수행할 수 있다. 이때, 제 2 파일인 파일 1은 제 2 블록 그룹인 BG1에 저장될 수 있다. 또한, 제 2 파일의 메타데이터는 저장 장치의 저널 영역에 저장될 수 있다.
본 발명의 일 실시예에 따른 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치는 fsync 시스템 호출 시 해당 파일과 연관된 블록 그룹 단위의 트랜잭션에 대하여 저널링을 수행하므로, fsync 시스템 호출의 처리 속도를 개선하고, 파일 시스템의 일관성 유지할 수 있다. 또한, 이렇게 처리된 트랜잭션을 트랜잭션 복합체에서 삭제하여 일반적인 저널링 수행 시에는 아직 처리되지 않아 트랜잭션 복합체 내에 존재하던 파일 및 메타데이터에 대한 처리할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 컴퓨팅 장치 110: 프로세서
120: 메모리

Claims (12)

  1. 컴퓨팅 장치에 있어서,
    순서 모드 저널링을 지원하는 파일 시스템을 운영하는 프로그램이 탑재된 메모리 및
    상기 메모리에 저장된 프로그램을 운영하는 프로세서를 포함하되,
    상기 프로세서는 상기 프로그램의 실행에 따라, 상기 메모리의 데이터 영역의 블록에 저장되는 제 1 파일에 대한 fsync 시스템 호출이 발생하면, 상기 제 1 파일이 포함된 트랜잭션 복합체에서 상기 제 1 파일 및 상기 제 1 파일과 연관된 제 1 블록 그룹 단위의 트랜잭션을 추출하고, 상기 제 1 파일을 상기 메모리의 데이터 영역의 제 1 블록 그룹에 기록하고, 상기 메모리의 저널 영역에 상기 추출된 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행하되,
    상기 트랜잭션 복합체는 상기 파일 시스템에서 수정된 파일에 대한 수정 내용이 반영된 메타데이터를 포함하고, 상기 제 1 파일, 상기 제 1 블록 그룹 단위의 트랜잭션, 상기 제 1 파일과 서로 상이한 데이터 영역에 위치한 제 2 파일 및 상기 제 2 파일과 연관된 제 2 블록 그룹 단위의 트랜잭션을 포함하는, 컴퓨팅 장치.
  2. 제 1 항에 있어서,
    상기 제 1 블록 그룹 단위의 트랜잭션은, 상기 제 1 파일이 저장된 블록에 포함된 하나 이상의 파일 및 상기 블록에 저장된 하나 이상의 파일에 대한 메타데이터를 포함하되,
    상기 프로세서는 상기 제 1 블록 그룹 단위의 트랜잭션에 포함된 하나 이상의 파일을 상기 데이터 영역에 기록하고, 상기 제 1 블록 그룹 단위의 트랜잭션에 포함된 하나 이상의 파일에 대한 메타데이터를 상기 저널 영역에 기록하는, 컴퓨팅 장치.
  3. 제 1 항에 있어서,
    상기 프로세서는 상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행한 이후, 상기 트랜잭션 복합체에서 상기 제 1 블록 그룹 단위의 트랜잭션을 삭제하는, 컴퓨팅 장치.
  4. 제 1 항에 있어서,
    상기 메모리는 상기 저널 영역의 그룹 디스크립터 테이블을 저장하는 버퍼를 포함하고,
    상기 프로세서는 상기 메모리의 데이터 영역의 블록에 저장되는 상기 제 1 파일에 대한 fsync 시스템 호출에 따라, 상기 저널 영역의 그룹 디스크립터 테이블을 상기 버퍼에 복사하고, 상기 버퍼에 복사된 그룹 디스크립터 테이블을 이용하여 상기 제 1 파일에 대응하는 블록 그룹에 대한 업데이트를 수행하며, 상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행할 때, 상기 버퍼의 그룹 디스크립터 테이블을 이용하여 상기 저널 영역의 그룹 디스크립터 테이블을 업데이트하는, 컴퓨팅 장치.
  5. 삭제
  6. 제 1 항에 있어서,
    상기 프로세서는 상기 제 2 파일을 상기 데이터 영역의 제 2 블록 그룹에 저장하고, 상기 저널 영역에 상기 트랜잭션 복합체에 대한 저널링을 수행하는, 컴퓨팅 장치.
  7. 파일 시스템의 순서 모드 저널링 방법에 있어서,
    메모리에 저장되는 파일에 대한 fsync 시스템 호출이 발생하는 단계;
    상기 fsync 시스템 호출에 따라, 제 1 파일이 포함된 트랜잭션 복합체에서 상기 제 1 파일 및 상기 제 1 파일과 연관된 제 1 블록 그룹 단위의 트랜잭션을 추출하는 단계;
    상기 제 1 파일을 상기 메모리의 데이터 영역의 제 1 블록 그룹에 기록하는 단계; 및
    상기 메모리의 저널 영역에 상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행하는 단계를 포함하되,
    상기 트랜잭션 복합체는 상기 파일 시스템에서 수정된 파일에 대한 수정 내용이 반영된 메타데이터를 포함하고, 상기 제 1 파일, 상기 제 1 블록 그룹 단위의 트랜잭션, 상기 제 1 파일과 서로 상이한 데이터 영역에 위치한 제 2 파일 및 상기 제 2 파일과 연관된 제 2 블록 그룹 단위의 트랜잭션을 포함하는, 순서 모드 저널링 방법.
  8. 제 7 항에 있어서,
    상기 제 1 파일과 연관된 제 1 블록 그룹 단위 트랜잭션은, 상기 제 1 파일이 저장된 블록에 포함된 하나 이상의 파일 및 상기 블록에 저장된 하나 이상의 파일에 대한 메타데이터를 포함하되,
    상기 데이터 영역에 기록하는 단계는, 상기 제 1 블록 그룹 단위의 트랜잭션에 포함된 하나 이상의 파일을 상기 데이터 영역에 기록하는 것이고,
    상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행하는 단계는, 상기 블록 그룹 단위의 트랜잭션에 포함된 하나 이상의 파일에 대한 메타데이터를 상기 저널 영역에 기록하는 것인, 순서 모드 저널링 방법.
  9. 제 7 항에 있어서,
    상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행하는 단계 이후, 상기 제 1 블록 그룹 단위의 트랜잭션을 상기 트랜잭션 복합체에서 삭제하는 단계를 더 포함하는, 순서 모드 저널링 방법.
  10. 제 7 항에 있어서,
    상기 메모리에 저장되는 상기 제 1 파일에 대한 fsync 시스템 호출이 발생하는 단계 이후, 상기 메모리에 포함된 버퍼에 상기 저널 영역의 그룹 디스크립터 테이블을 복사하는 단계; 및
    상기 버퍼에 복사된 그룹 디스크립터 테이블을 이용하여 상기 제 1 파일에 대응하는 블록 그룹에 대한 업데이트를 수행하는 단계를 더 포함하고,
    상기 제 1 블록 그룹 단위의 트랜잭션에 대한 저널링을 수행하는 단계는,
    상기 버퍼의 그룹 디스크립터 테이블을 이용하여 상기 저널 영역의 그룹 디스크립터 테이블을 업데이트하는 것인, 순서 모드 저널링 방법.
  11. 삭제
  12. 제 7 항에 있어서,
    상기 제 2 파일을 상기 데이터 영역의 제 2 블록 그룹에 저장하는 단계; 및
    상기 메모리의 저널 영역에 상기 트랜잭션 복합체에 대한 저널링을 수행하는 단계를 더 포함하는, 순서 모드 저널링 방법.
KR1020140080942A 2014-06-30 2014-06-30 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치 KR101584760B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140080942A KR101584760B1 (ko) 2014-06-30 2014-06-30 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치
US14/751,583 US10346368B2 (en) 2014-06-30 2015-06-26 Method and apparatus of per-block-group journaling for ordered mode journaling file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140080942A KR101584760B1 (ko) 2014-06-30 2014-06-30 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160002109A KR20160002109A (ko) 2016-01-07
KR101584760B1 true KR101584760B1 (ko) 2016-01-22

Family

ID=54930731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140080942A KR101584760B1 (ko) 2014-06-30 2014-06-30 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치

Country Status (2)

Country Link
US (1) US10346368B2 (ko)
KR (1) KR101584760B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102312672B1 (ko) * 2014-06-09 2021-10-15 삼성전자주식회사 데이터 처리 방법 및 전자 장치
KR101674176B1 (ko) * 2014-07-24 2016-11-08 성균관대학교산학협력단 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법
KR102637757B1 (ko) * 2016-06-01 2024-02-19 삼성전자 주식회사 전자 장치 및 전자 장치의 파일 데이터 저널링 방법
KR102441997B1 (ko) * 2017-11-01 2022-09-08 한국전자통신연구원 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법
US11301331B2 (en) 2018-09-20 2022-04-12 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
KR20200086143A (ko) 2019-01-08 2020-07-16 삼성전자주식회사 저장 장치 및 그것의 데이터 처리 방법
KR20220005111A (ko) 2020-07-06 2022-01-13 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137299A1 (en) * 2010-11-30 2012-05-31 Moyer Jeffrey E Mechanism for yielding input/output scheduler to increase overall system throughput

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100453228B1 (ko) 2002-03-21 2004-10-15 한국전자통신연구원 공유 디스크 파일 시스템의 저널링 및 회복 방법
KR100501414B1 (ko) 2003-11-28 2005-07-18 한국전자통신연구원 파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법및 장치
KR100981064B1 (ko) * 2009-02-18 2010-09-09 한국과학기술원 저널링 파일 시스템을 이용한 소프트웨어 레이드에서의 일관성 유지방법
US9449021B2 (en) * 2009-07-10 2016-09-20 Tomtom International B.V. Use of long file names in data storage systems
US9020987B1 (en) * 2011-06-29 2015-04-28 Emc Corporation Managing updating of metadata of file systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120137299A1 (en) * 2010-11-30 2012-05-31 Moyer Jeffrey E Mechanism for yielding input/output scheduler to increase overall system throughput

Also Published As

Publication number Publication date
US20150379036A1 (en) 2015-12-31
KR20160002109A (ko) 2016-01-07
US10346368B2 (en) 2019-07-09

Similar Documents

Publication Publication Date Title
KR101584760B1 (ko) 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치
US9141630B2 (en) Fat directory structure for use in transaction safe file system
DK3008600T3 (en) Backup of a virtual machine from a storage snapshot
US8805788B2 (en) Transactional virtual disk with differential snapshots
US9703640B2 (en) Method and system of performing incremental SQL server database backups
US8417907B2 (en) Synchronizing snapshot volumes across hosts
US10606803B2 (en) Data cloning in memory-based file systems
US10423532B2 (en) Guest ordering of host file system writes
US9274907B1 (en) Decommissioning of virtual backup appliances
US10474539B1 (en) Browsing federated backups
US9798761B2 (en) Apparatus and method for fsync system call processing using ordered mode journaling with file unit
CN103198088A (zh) 基于阴影分页的日志段目录
US11204912B2 (en) Commit coalescing for micro-journal based transaction logging
US10185630B2 (en) Failure recovery in shared storage operations
US11068181B2 (en) Generating and storing monotonically-increasing generation identifiers
US20160283148A1 (en) Backup control device, backup control method, and recording medium
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
US9465810B2 (en) Method and system for a fast full style system check using multithreaded read ahead
US20170039110A1 (en) Computer
US9032169B2 (en) Method for high performance dump data set creation
KR101966399B1 (ko) 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법
US10534751B1 (en) Metadata space efficient snapshot operation in page storage
WO2020098518A1 (en) Method of synchronizing mirrored file systems and storage device thereof

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: 20200203

Year of fee payment: 5