KR20210001221A - 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치 - Google Patents

파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치 Download PDF

Info

Publication number
KR20210001221A
KR20210001221A KR1020190076969A KR20190076969A KR20210001221A KR 20210001221 A KR20210001221 A KR 20210001221A KR 1020190076969 A KR1020190076969 A KR 1020190076969A KR 20190076969 A KR20190076969 A KR 20190076969A KR 20210001221 A KR20210001221 A KR 20210001221A
Authority
KR
South Korea
Prior art keywords
file
thread
fragmentation
file system
files
Prior art date
Application number
KR1020190076969A
Other languages
English (en)
Other versions
KR102226538B1 (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 KR1020190076969A priority Critical patent/KR102226538B1/ko
Publication of KR20210001221A publication Critical patent/KR20210001221A/ko
Application granted granted Critical
Publication of KR102226538B1 publication Critical patent/KR102226538B1/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/17Details of further file system functions
    • G06F16/1724Details of de-fragmentation performed by the file system
    • 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/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치가 개시된다.
파일 시스템 단편화 제거 방법은 멀티코어 기반 하드웨어에서의 파일 시스템 단편화 제거 방법에 있어서, 상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 단계, 수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 단계 및 각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계를 포함한다.

Description

파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치{METHOD OF DEFRAGMENTATION IN FILE SYSTEM, RECORDING MEDIUM AND APPARATUS FOR PERFORMING THE METHOD}
본 발명은 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것으로, 더욱 상세하게는 멀티코어 기반 하드웨어 환경에서의 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치에 관한 것이다.
사용자가 파일 시스템을 장시간 사용함에 따라 여러 프로세스들이 파일을 동시에 쓰게 되면, 결국 파일이 비 연속화되어 단편화 현상이 발생된다. 이러한 단편화 현상은 하나의 파일임에도 불구하고 해당 파일의 블록들이 비 연속적으로 배치되게 한다.
단편화가 발생한 파일을 읽기 위해서는 파일 시스템이 저장장치에 흩어진 블록들을 읽어야 하기 때문의 임의의 읽기 연산이 발생하여 프로그램 실행 속도가 느려진다. 따라서 파일 단편화 제거 기술을 필요로 한다.
기존의 파일 단편화 제거 기술은 단일 스레드 기법으로 수행된다. 단일 스레드 기반의 파일 단편화 제거 기술은 하나의 파일에 대한 단편화 제거가 수행된 다음에 다음 파일에 대한 단편화 제거가 수행되는 방식이다. 이러한 방식은 순차적으로 파일 하나씩 단편화 제거가 진행되기 때문에 멀티코어 기반의 하드웨어 장치에 적용되기에는 비효율적이다. 멀티코어 기반의 하드웨어 장치에서는 멀티 스레딩 기법이 적용되기 때문이다.
본 발명의 일측면은 멀티코어 기반의 하드웨어 환경에서 멀티 스레딩 기법을 이용하여 파일 단편화 제거를 병렬화 한 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치를 제공한다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 파일 시스템 단편화 제거 방법은 멀티코어 기반 하드웨어에서의 파일 시스템 단편화 제거 방법에 있어서, 상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 단계, 수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 단계 및 각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계를 포함한다.
한편, 상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 단계는, 상기 파일 정보를 저장할 구조체를 생성하는 단계, 상기 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분하는 단계 및 접근한 디렉토리에서 저장된 파일이 구분되는 경우, 접근한 디렉토리 또는 저장된 파일의 상태를 해당 파일의 정보로 상기 구조체에 저장하는 단계를 포함할 수 있다.
또한, 수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 단계는, 부모 스레드에 병렬화 함수 및 상기 멀티 스레드를 구성하는 각 스레드에 할당할 파일 정보를 넣어 상기 멀티 스레드를 생성하는 단계를 포함할 수 있다.
또한, 각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계는, 각 스레드에서 임시 파일을 생성하도록 제어하는 단계, 각 스레드에서 생성한 임시 파일에 순차적인 블록을 할당하도록 제어하는 단계 및 각 스레드에서 임시 파일의 블록에 할당 받은 파일의 단편화 데이터를 순차적으로 옮기도록 제어하는 단계를 포함할 수 있다.
또한, 각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계는, 각 스레드에서 전달 받은 파일 정보를 이용하여 상기 파일 시스템에 단편화 된 파일을 동시에 선점하도록 제어하는 단계를 포함할 수 있다.
또한, 상기 파일 시스템 단편화 제거 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체일 수 있다.
한편, 본 발명의 파일 시스템 단편화 제거 장치는 멀티코어 기반 하드웨어에서의 파일 시스템 단편화 제거 장치에 있어서, 상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 파일 정보 수집부, 수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 파일 할당부 및 각 스레드에서 전달 받은 파일 정보를 이용하여 상기 파일 시스템에 단편화 된 파일을 동시에 선점하도록 하여, 각 스레드에서 할당 받은 파일의 단편화 제거가 동시에 진행되도록 제어하는 단편화 제거부를 포함한다.
한편, 상기 파일 정보 수집부는, 상기 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분하는 파일 분석부 및 상기 파일 정보를 저장할 구조체를 생성하고, 접근한 디렉토리에서 저장된 파일이 구분되는 경우, 접근한 디렉토리 또는 저장된 파일의 상태를 해당 파일의 정보로 상기 구조체에 저장하는 파일 정보 저장부를 포함할 수 있다.
또한, 상기 파일 할당부는, 부모 스레드에 병렬화 함수 및 상기 멀티 스레드를 구성하는 각 스레드에 할당할 파일 정보를 넣어 상기 멀티 스레드를 생성할 수 있다.
또한, 상기 단편화 제거부는, 각 스레드에서 임시 파일을 생성하고, 생성한 임시 파일에 순차적인 블록을 할당하며, 임시 파일의 블록에 할당 받은 파일의 단편화 데이터를 순차적으로 옮기도록 제어할 수 있다.
본 발명에 따르면 멀티 스레딩을 이용하여 복수의 파일 단편화 제거가 동시에 이루어지도록 함으로써, 멀티코어 기반 하드웨어 환경에서의 단편화 제거 지연시간을 줄일 수 있다.
아울러 멀티코어 기반 하드웨어 환경에서의 효율적인 파일 단편화 제거를 진행하여 전체 프로세스의 진행 속도를 개선할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치가 적용된 멀티코어 기반 하드웨어의 파일 시스템을 개략적으로 보여주는 도면이다.
도 2는 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템을 개략적으로 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치의 제어 블록도이다.
도 4는 도 3에 도시된 파일 정보 수집부의 세부 블록도이다.
도 5는 도 3에 도시된 파일 할당부에서의 멀티 스레드로의 단편화 제거할 파일 할당 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법과 종래의 파일 시스템 단편화 제거 방법에 따른 파일 단편화 제거 소요시간을 보여주는 그래프이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치가 적용된 멀티코어 기반 하드웨어의 파일 시스템을 개략적으로 보여주는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치는 멀티코어 기반 하드웨어 환경(1000)에 적용되어 파일 단편화 제거를 진행할 수 있다.
멀티코어 기반 하드웨어 환경(1000)에서 저장장치의 파일 시스템이 장시간 사용되는 경우, 파일이 연속적인 공간에 저장되지 않고 나누어져 저장이 된 상태를 파일 단편화라 하며, 나누어져 저장 된 파일을 재배열을 통해 연속적인 위치에 저장시키는 기법을 파일 단편화 제거라 한다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치는 멀티코어 기반 하드웨어 환경(1000)의 멀티 스레딩을 이용하여 파일 단편화 제거를 병렬화할 수 있다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치는 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일(file 1, file 2)을 각각 할당하고, 각 스레드에서 동시에 하나의 파일(fragmented file)에 접근하여, 단편화 제거할 파일(file 1, file 2)의 extent를 옮겨 재배치할 수 있다. 즉, 멀티 스레드에 의해 단편화 제거할 파일(file 1, file 2)의 단편화 제거가 동시에 발생하게 된다.
이에 따라 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치는 종래의 단일 스레드 기반 단편화 제거 장치에 비해 단편화 소요시간을 단축하고 효율을 높일 수 있다. 이와 관련하여 도 2를 참조하여 설명한다.
도 2는 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템을 개략적으로 보여주는 도면이다.
도 2를 참조하면, 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템(2000)의 경우, 단일 스레드에 의한 순차적인 파일 단편화 제거 방법을 채택할 수 있다.
예를 들면, 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템(2000)의 경우 단편화 제거할 하나의 파일(file 1)의 재배치가 완료되는 경우, 단편화 제거할 다른 파일(file 2)의 재배치가 진행될 수 있다.
따라서 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템(2000)의 경우 파일 단편화 제거가 단일 스레드의 순차적으로 진행되므로 멀티코어 기반 하드웨어 환경(1000)에 적용되기에는 비효율적이다.
반면 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치는 멀티코어 기반 하드웨어 환경(1000)의 멀티 스레딩을 이용하여 복수의 파일 단편화 제거가 동시에 이루어지도록 함으로써, 멀티코어 기반 하드웨어 환경(1000)에서의 단편화 제거 지연시간을 줄일 수 있다.
도 1 및 도 2를 비교하면, 두 개의 파일(file 1, file 2) 단편화 제거에 있어서, 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치에서 두 개의 파일(file 1, file 2) 단편화 제거의 소요 시간이 종래의 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템(2000)에서 하나의 파일(file 1) 단편화 제거의 소요 시간과 유사함을 확인할 수 있다.
이하 도 3 이하를 참조하여 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치에 대하여 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치의 제어 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 파일 정보 수집부(10), 파일 할당부(30) 및 단편화 제거부(50)를 포함할 수 있다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 도 3에 도시된 구성요소보다 많은 구성요소에 의해 구현될 수 있고, 그보다 적은 구성요소에 의해 구현될 수도 있다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 멀티코어 기반 하드웨어 장치의 파일 시스템에 적용되어 파일 단편화 제거를 진행할 수 있다. 본 실시예에서 멀티코어 기반 하드웨어 장치는 멀티 스레딩 프로세스를 탑재한 장치로, 하나의 프로세스에서 다수의 스레드가 동시에 수행될 수 있다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 멀티코어 기반 하드웨어 환경에서 멀티 스레딩을 이용하여 파일 시스템 단편화를 병렬적으로 처리할 수 있다.
이하 도 3에 도시된 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)의 각 구성요소에 대해 구체적으로 설명한다.
파일 정보 수집부(10)는 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집할 수 있다. 파일 정보에는 파일의 상태 또는 파일 저장 디렉토리 등의 정보가 포함될 수 있다. 파일 정보 수집부(10)는 멀티코어 기반 하드웨어 장치의 메모리 영역에 저장되어 있는 모든 파일에 대한 정보를 수집할 수 있다. 이와 관련하여 구체적인 설명은 도 4를 참조하여 후술한다.
파일 할당부(30)는 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일을 할당할 수 있다. 파일 할당부(30)는 멀티 스레드를 구성하는 각 스레드에 할당된 파일에 대한 정보를 각 스레드로 전달할 수 있다. 이와 관련하여 구체적인 설명은 도 5를 참조하여 후술한다.
단편화 제거부(50)는 각 스레드에서 할당 받은 파일의 단편화 제거가 동시에 진행되도록 제어할 수 있다.
단편화 제거부(50)는 각 스레드에서 전달 받은 파일 정보를 이용하여 파일 시스템에 단편화 된 파일을 동시에 선점하도록 할 수 있다. 즉 단편화 제거부(50)는 멀티 스레드에서 동시에 하나의 파일(fragmented file)에 접근하도록 하고, 각 스레드에서 할당 받은 파일의 extent를 순차적으로 옮겨 재배치하도록 제어할 수 있다. 이때 각각 스레드에 할당된 파일들은 서로 다른 아이노드를 소유하고 있으므로, 스레드가 동시에 작동하더라도 충돌이 일어나지 않을 것이다.
단편화 제거부(50)는 각 스레드에서의 파일 단편화 제거 방법에 있어서 종래의 EXT4 파일 시스템의 단편화 제거 방법을 채택할 수 있다.
예를 들면, 단편화 제거부(50)는 각 스레드에서 임시 파일을 생성하고, 생성된 임시 파일에 순차적인 블록을 할당하며, 임시 파일의 블록에 할당 받은 파일의 단편화 데이터를 순차적으로 옮기도록 제어할 수 있다.
구체적으로는, 단편화 제거부(50)는 각 스레드에서 기존 파일로부터 할당 받은 파일의 단편화 데이터를 읽고, 메모리에 로드하도록 제어할 수 있다. 그리고 단편화 제거부(50)는 각 스레드에서 기존 파일의 정보를 임시 파일 정보 공간에 저장하고, 메모리에 있는 단편화 데이터를 임시 파일의 블록에 쓰도록(write) 제어할 수 있다.
도 4는 도 3에 도시된 파일 정보 수집부의 세부 블록도이다.
도 4를 참조하면, 파일 정보 수집부(10)는 파일 분석부(11) 및 파일 정보 저장부(13)를 포함할 수 있다.
파일 분석부(11)는 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분할 수 있다.
예를 들면, 파일 분석부(11)는 EXT4 파일 시스템의 nftw() 메소드를 이용하여 파일 시스템의 각 디렉토리에 접근할 수 있다. 파일 분석부(11)는 접근한 디렉토리를 열어 해당 디렉토리에 저장된 파일과 디렉토리를 구분할 수 있다. 즉, 파일 분석부(11)는 접근한 디렉토리에 저장된 파일이 구분되는 경우, 해당 파일의 경로 및 그 상태를 해당 파일의 정보로 추출할 수 있다.
파일 분석부(11)는 멀티코어 기반 하드웨어 파일 시스템의 모든 디렉토리에 접근하여 메모리 영역에 저장된 모든 파일에 대한 정보를 추출할 수 있다.
파일 정보 저장부(13)는 파일 분석부(11)에서 추출한 파일 정보를 저장할 수 있다.
파일 정보 저장부(13)는 파일 정보를 저장할 구조체를 생성하고, 파일 분석부(11)에서 추출한 파일의 정보를 구조체에 저장할 수 있다.
도 5는 도 3에 도시된 파일 할당부에서의 멀티 스레드로의 단편화 제거 할 파일 할당 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 파일 할당부(30)는 부모 스레드(Main Thread)에 병렬화 함수를 넣어 멀티 스레드를 생성하되, 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일 정보를 넣어 멀티 스레드를 생성할 수 있다.
예를 들면, 파일 할당부(30)는 멀티코어 기반 하드웨어의 프로세서를 제어하여 멀티 스레드를 생성할 수 있다. 이때 파일 할당부(30)는 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일(file 1, file 2, ??, file k)을 할당할 수 있다. 이를 위해 파일 할당부(30)는 파일 정보 수집부(10)에서 수집하는 각 파일의 정보를 멀티 스레드를 구성하는 스레드에 각각 전달할 수 있다.
멀티 스레드를 구성하는 각 스레드는 단편화 제거부(50)의 제어에 의해 할당 받은 파일의 단편화 제거를 진행할 수 있다.
파일 할당부(30)는 부모 스레드(Main Thread)가 각 스레드에서의 파일 단편화 제거가 완료될 때까지 기다렸다가 모든 스레드에서의 파일 단편화 제거가 완료되는 경우, 각 스레드를 조인할 수 있다.
이와 같이 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 멀티코어 기반 하드웨어 환경에서 멀티 스레드 생성 전 파일 시스템의 각 디렉토리 안의 파일 정보를 미리 수집하고, 멀티 스레드 생성 시 각 스레드에 파일 정보를 전달하여 단편화 제거를 진행 할 파일을 각 스레드에 할당할 수 있다. 그리고 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 멀티 스레드를 구성하는 각 스레드에서 할당 된 파일의 단편화 제거가 동시에 이루어지도록 제어함으로써, 파일 단편화 제거를 병렬화할 수 있다.
이에 따라 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)는 멀티코어 기반 하드웨어 환경에 맞추어 효율적인 단편화 제거를 가능하게 하며 단일 스레드 기반의 파일 단편화 제거 기술에 비해 단편화 제거 지연시간을 낮출 수 있다.
이하에서는 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법에 대해 설명한다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법은 도 3에 도시된 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 장치(1)와 실질적으로 동일한 구성 하에서 진행될 수 있다. 따라서 도 3의 장치(1)와 동일한 구성요소는 동일한 도면부호를 부여하고 반복되는 설명은 생략한다.
도 6은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법의 흐름도이다.
도 6을 참조하면, 파일 정보 수집부(10)는 파일 시스템에 저장된 파일 정보를 수집할 수 있다(S100).
파일 정보 수집부(10)는 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집할 수 있다.
파일 정보 수집부(10)는 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분할 수 있다. 파일 분석부(11)는 접근한 디렉토리에 저장된 파일이 구분되는 경우, 해당 파일의 경로 및 그 상태를 해당 파일의 정보로 추출할 수 있다.
파일 정보 수집부(10)는 파일 정보를 저장할 구조체를 생성하고, 추출한 파일의 정보를 구조체에 저장할 수 있다.
파일 할당부(30)는 멀티 스레드를 구성하는 각 스레드에 할당할 파일 정보를 전달할 수 있다(S200).
파일 할당부(30)는 부모 스레드(Main Thread)에 병렬화 함수를 넣어 멀티 스레드를 생성하되, 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일 정보를 넣어 멀티 스레드를 생성할 수 있다.
예를 들면, 파일 할당부(30)는 멀티코어 기반 하드웨어의 프로세서를 제어하여 멀티 스레드를 생성할 수 있다. 이때 파일 할당부(30)는 멀티 스레드를 구성하는 각 스레드에 단편화 제거할 파일을 할당할 수 있다. 이를 위해 파일 할당부(30)는 파일 정보 수집부(10)에서 수집하는 각 파일의 정보를 멀티 스레드를 구성하는 스레드에 각각 전달할 수 있다.
단편화 제거부(50)는 멀티 스레드를 구성하는 각 스레드에서 동시에 할당 받은 파일의 단편화 제거가 진행되도록 제어할 수 있다(S300).
단편화 제거부(50)는 각 스레드에서 전달 받은 파일 정보를 이용하여 파일 시스템에 단편화 된 파일을 동시에 선점하도록 할 수 있다. 즉 단편화 제거부(50)는 멀티 스레드에서 동시에 하나의 파일(fragmented file)에 접근하도록 하고, 각 스레드에서 할당 받은 파일의 extent를 순차적으로 옮겨 재배치하도록 제어할 수 있다. 이때 각각 스레드에 할당된 파일들은 서로 다른 아이노드를 소유하고 있으므로, 스레드가 동시에 작동하더라도 충돌이 일어나지 않을 것이다.
단편화 제거부(50)는 각 스레드에서의 파일 단편화 제거 방법에 있어서 종래의 EXT4 파일 시스템의 단편화 제거 방법을 채택할 수 있다.
파일 할당부(30)는 부모 스레드(Main Thread)가 각 스레드에서의 파일 단편화 제거가 완료될 때까지 기다렸다가 모든 스레드에서의 파일 단편화 제거가 완료되는 경우, 각 스레드를 조인할 수 있다.
이하에서는 도 7을 참조하여 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법의 유리한 효과에 대해 설명한다.
도 7은 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법과 종래의 파일 시스템 단편화 제거 방법에 따른 파일 단편화 제거 소요시간을 보여주는 그래프이다.
본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법의 유리한 효과를 검증하기 위해 도 2와 같은 종래의 단일 스레드 기반의 순차적 단편화 제거 방법과 비교하여 설명한다.
도 7과 같은 그래프를 도출하기 위해 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법과 도 2와 같은 종래의 단일 스레드 기반의 순차적 단편화 제거 방법에 따라 72개의 코어 서버 환경에서의 단편화 제거를 실행하였다. 여기에서 파일 시스템 EXT3 및 EXT4의 개발자인 Theodore Ts'o의 e2fsprogs 코드를 이용하여 각 스레드의 단편화 제거를 구현하였으며, filebench의 fileserver를 이용하여 400000개 및 800000개의 파일을 생성하여 단편화 제거를 실행하였다. 이러한 실행 환경에서 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법에 따르면 한 번의 단편화 실행 시 36개의 스레드가 동시에 파일 단편화를 진행할 수 있다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법의 경우 종래의 단일 스레드 기반의 순차적 단편화 제거 방법에 비해 단편화 제거 소요시간을 약 1.9배 내지 2.5배 단축할 수 있음이 입증된다. 즉 본 발명의 일 실시예에 따른 파일 시스템 단편화 제거 방법에 따르면 멀티코어 기반 하드웨어 환경에 있어서 종래의 단일 스레드 기반의 순차적 단편화 제거 방법에 비해 빠른 시간 내에 파일 시스템의 단편화 제거를 달성할 수 있다.
이와 같은, 본 발명의 파일 시스템 단편화 제거 방법은 어플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000: 멀티코어 기반 하드웨어 환경
2000: 단일 스레드 기반 단편화 제거 장치가 적용된 파일 시스템
1: 파일 시스템 단편화 제거 장치

Claims (10)

  1. 멀티코어 기반 하드웨어에서의 파일 시스템 단편화 제거 방법에 있어서,
    상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 단계;
    수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 단계; 및
    각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계를 포함하는 파일 시스템 단편화 제거 방법.
  2. 제1항에 있어서,
    상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 단계는,
    상기 파일 정보를 저장할 구조체를 생성하는 단계;
    상기 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분하는 단계; 및
    접근한 디렉토리에서 저장된 파일이 구분되는 경우, 접근한 디렉토리 또는 저장된 파일의 상태를 해당 파일의 정보로 상기 구조체에 저장하는 단계를 포함하는 파일 시스템 단편화 제거 방법.
  3. 제1항에 있어서,
    수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 단계는,
    부모 스레드에 병렬화 함수 및 상기 멀티 스레드를 구성하는 각 스레드에 할당할 파일 정보를 넣어 상기 멀티 스레드를 생성하는 단계를 포함하는 파일 시스템 단편화 제거 방법.
  4. 제1항에 있어서,
    각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계는,
    각 스레드에서 임시 파일을 생성하도록 제어하는 단계;
    각 스레드에서 생성한 임시 파일에 순차적인 블록을 할당하도록 제어하는 단계; 및
    각 스레드에서 임시 파일의 블록에 할당 받은 파일의 단편화 데이터를 순차적으로 옮기도록 제어하는 단계를 포함하는 파일 시스템 단편화 제거 방법.
  5. 제1항에 있어서,
    각 스레드에서 할당 받은 파일의 단편화 제거를 동시에 수행하도록 제어하는 단계는,
    각 스레드에서 전달 받은 파일 정보를 이용하여 상기 파일 시스템에 단편화 된 파일을 동시에 선점하도록 제어하는 단계를 포함하는 파일 시스템 단편화 제거 방법.
  6. 제1항 내지 제5항 중 어느 하나의 항에 따른 파일 시스템 단편화 제거 방법을 수행하기 위한, 컴퓨터 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  7. 멀티코어 기반 하드웨어에서의 파일 시스템 단편화 제거 장치에 있어서,
    상기 파일 시스템의 각 디렉토리에 저장된 파일 정보를 수집하는 파일 정보 수집부;
    수집된 각 파일 정보를 멀티 스레드를 구성하는 각 스레드로 전달하여 각 스레드에 단편화 제거할 파일을 할당하는 파일 할당부; 및
    각 스레드에서 전달 받은 파일 정보를 이용하여 상기 파일 시스템에 단편화 된 파일을 동시에 선점하도록 하여, 각 스레드에서 할당 받은 파일의 단편화 제거가 동시에 진행되도록 제어하는 단편화 제거부;를 포함하는 파일 시스템 단편화 제거 장치.
  8. 제7항에 있어서,
    상기 파일 정보 수집부는,
    상기 파일 시스템의 각 디렉토리에 접근하여 해당 디렉토리에 저장된 파일 또는 다른 디렉토리를 구분하는 파일 분석부; 및
    상기 파일 정보를 저장할 구조체를 생성하고, 접근한 디렉토리에서 저장된 파일이 구분되는 경우, 접근한 디렉토리 또는 저장된 파일의 상태를 해당 파일의 정보로 상기 구조체에 저장하는 파일 정보 저장부;를 포함하는 파일 시스템 단편화 제거 장치.
  9. 제7항에 있어서,
    상기 파일 할당부는,
    부모 스레드에 병렬화 함수 및 상기 멀티 스레드를 구성하는 각 스레드에 할당할 파일 정보를 넣어 상기 멀티 스레드를 생성하는 파일 시스템 단편화 제거 장치.
  10. 제7항에 있어서,
    상기 단편화 제거부는,
    각 스레드에서 임시 파일을 생성하고, 생성한 임시 파일에 순차적인 블록을 할당하며, 임시 파일의 블록에 할당 받은 파일의 단편화 데이터를 순차적으로 옮기도록 제어하는 파일 시스템 단편화 제거 장치.
KR1020190076969A 2019-06-27 2019-06-27 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치 KR102226538B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190076969A KR102226538B1 (ko) 2019-06-27 2019-06-27 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190076969A KR102226538B1 (ko) 2019-06-27 2019-06-27 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치

Publications (2)

Publication Number Publication Date
KR20210001221A true KR20210001221A (ko) 2021-01-06
KR102226538B1 KR102226538B1 (ko) 2021-03-10

Family

ID=74128319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190076969A KR102226538B1 (ko) 2019-06-27 2019-06-27 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치

Country Status (1)

Country Link
KR (1) KR102226538B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327370A1 (en) * 2006-07-22 2009-12-31 Warp Disk Software V/Carsten Schmidt Defragmentation of digital storage media
KR20100069302A (ko) * 2008-12-16 2010-06-24 한국전자통신연구원 메모리 관리 장치 및 방법
KR20120086999A (ko) * 2011-01-27 2012-08-06 삼성전자주식회사 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법
KR20140039074A (ko) 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20140099737A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 존-기반 조각모음 방법 및 그것을 이용한 유저 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327370A1 (en) * 2006-07-22 2009-12-31 Warp Disk Software V/Carsten Schmidt Defragmentation of digital storage media
KR20100069302A (ko) * 2008-12-16 2010-06-24 한국전자통신연구원 메모리 관리 장치 및 방법
KR20120086999A (ko) * 2011-01-27 2012-08-06 삼성전자주식회사 멀티 코어 시스템 및 멀티 코어 시스템에서의 데이터 병렬 처리 방법
KR20140039074A (ko) 2011-08-19 2014-03-31 가부시끼가이샤 도시바 정보 프로세싱 장치, 정보 프로세싱 장치를 제어하는 방법, 제어 도구를 저장하는 비일시적 기록 매체, 호스트 디바이스, 성능 평가 도구를 저장하는 비일시적 기록 매체, 및 외부 메모리 디바이스를 위한 성능 평가 방법
KR20140099737A (ko) * 2013-02-04 2014-08-13 삼성전자주식회사 존-기반 조각모음 방법 및 그것을 이용한 유저 장치

Also Published As

Publication number Publication date
KR102226538B1 (ko) 2021-03-10

Similar Documents

Publication Publication Date Title
Wang et al. Characterization and optimization of memory-resident MapReduce on HPC systems
US9456049B2 (en) Optimizing distributed data analytics for shared storage
KR101460062B1 (ko) 동영상 파일을 하둡 분산 파일 시스템에 분산 저장하는 시스템, 동영상 맵리듀스 시스템 및 그 제공방법
US9135262B2 (en) Systems and methods for parallel batch processing of write transactions
US10609174B2 (en) Parallel prefetching log/meta stream sub-portions to recreate partition states in a distributed computing system
EP3040865A1 (en) Database management system and computer system
CN109753231A (zh) 键值存储设备及操作其的方法
JP2008146408A (ja) データ記憶装置、そのデータ再配置方法、プログラム
US11151141B2 (en) Data processing device and data processing method
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
CN113688099B (zh) 基于spdk的数据库存储引擎加速方法及系统
JP2010266996A (ja) データベース処理方法、データベース処理システム及びデータベースサーバ
US9430168B2 (en) Recording medium storing a program for data relocation, data storage system and data relocating method
JP6680069B2 (ja) ストレージ制御装置、ストレージシステム及びストレージ装置制御プログラム
KR20090007926A (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
KR101885030B1 (ko) 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 처리 방법 및 트랜잭션 처리 장치
KR102226538B1 (ko) 파일 시스템 단편화 제거 방법, 이를 수행하기 위한 기록매체 및 장치
US9372643B2 (en) Data set management
US20100153678A1 (en) Memory management apparatus and method
US9009204B2 (en) Storage system
WO2015056332A1 (ja) ストレージ装置及び制御方法
JP5776813B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法および制御プログラム
JP5187944B2 (ja) コンピュータ使用可能コードを実行する装置及び方法
US20220092049A1 (en) Workload-driven database reorganization
Lee et al. Iterator Interface Extended LSM-tree-based KVSSD for Range Queries

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant