KR20140042458A - 스토리지 시스템의 파일 관리 장치, 파일 관리 방법 - Google Patents

스토리지 시스템의 파일 관리 장치, 파일 관리 방법 Download PDF

Info

Publication number
KR20140042458A
KR20140042458A KR1020120109254A KR20120109254A KR20140042458A KR 20140042458 A KR20140042458 A KR 20140042458A KR 1020120109254 A KR1020120109254 A KR 1020120109254A KR 20120109254 A KR20120109254 A KR 20120109254A KR 20140042458 A KR20140042458 A KR 20140042458A
Authority
KR
South Korea
Prior art keywords
read
data
information
file system
slide
Prior art date
Application number
KR1020120109254A
Other languages
English (en)
Inventor
김재극
이창만
이철
황주영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120109254A priority Critical patent/KR20140042458A/ko
Priority to US14/038,891 priority patent/US20140095555A1/en
Publication of KR20140042458A publication Critical patent/KR20140042458A/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/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/188Virtual file systems

Abstract

본 발명의 일 실시예에 따른 스토리지 시스템의 파일 관리 장치는 선독출 관리 정보를 저장하는 선독출 관리부를 포함하고, 제1 독출요청를 발생시키는 가상 파일 시스템; 및 상기 선독출 관리 정보 및 제1 독출요청에 대응하여 독출된 하나 이상의 제1 데이터를 수신하고, 상기 제1 독출요청의 이전에이전에 파일 시스템에 입력된 제2 독출요청에 대응하여 기 독출된 하나 이상의 제2 데이터를 수신하며, 상기 제1 데이터 및 상기 제2 데이터를 비교하며, 비교 결과에 따라서 상기 선독출 관리 정보에 대한 변경정보를 발생시키는 것을 특징으로 하는 파일 시스템을 포함하는 것을 특징으로 한다.

Description

스토리지 시스템의 파일 관리 장치, 파일 관리 방법 {File Management Device of Storage System and File Management Method thereof}
본 발명의 기술적 사상은 파일 관리 장치 및 그 방법에 관한 것으로서, 특히, 파일 시스템 및 가상 파일 시스템을 포함하는 파일 관리 장치에 관한 것이다.
호스트 컴퓨터에서 스토리지 시스템에 저장된 파일을 읽을 때, 시퀀셜 억세스(Sequential Access) 또는 랜덤 억세스(Random Access)를 한다. 컴퓨터 운영체제는 독출 성능을 개선하기 위해서, 이러한 억세스의 종류에 따라서, 다음에 요청될 데이터를 예상하여 미리 독출하는 리드 어헤드(Read Ahead) 기법을 사용한다.
다만, 가상 파일 시스템에서 리드 어헤드(Read Ahead) 슬라이드의 길이를 조절한다면, 멀티 리드 스트림(Multiple Read Stream)이 요청되는 경우, 요청된 위치 정보를 이용하여 리드 억세스 패턴(Read Access Pattern)을 결정하는 것은 매우 복잡해진다. 또한, 어플리케이션에서 가상 파일 시스템에 어플리케이션이 억세스 하려는 파일에 대해서 시퀀셜 혹은 랜덤 억세스 할 것인지 알려주어 리드 어헤드(Read Ahead) 성능을 향상시키는 것도 프로그래머가 일일이 처리해주어야 하는 문제가 있다.
본 발명의 기술적 사상이 해결하려는 과제는 가상 파일 시스템에 포함되는 리드 어헤드부(Read Ahead Unit)가 파일 시스템에서 힌트를 얻어서 구동할 수 있도록 하는데 있다.
본 발명의 일 실시예에 따른 스토리지 시스템의 파일 관리 장치는 선독출 관리 정보를 저장하는 선독출 관리부를 포함하고, 제1 독출요청를 발생시키는 가상 파일 시스템; 및 상기 선독출 관리 정보 및 제1 독출요청에 대응하여 독출된 하나 이상의 제1 데이터를 수신하고, 상기 제1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하여 기 독출된 하나 이상의 제2 데이터를 수신하며, 상기 제1 데이터 및 상기 제2 데이터를 비교하며, 비교 결과에 따라서 상기 선독출 관리 정보에 대한 변경정보를 발생시키는 것을 특징으로 하는 파일 시스템을 포함하는 것을 특징으로 한다.
바람직하게, 상기 선독출 관리 정보는 선독출 슬라이드의 길이 정보이고, 상기 변경정보는 선독출 슬라이드의 길이 조절정보인 것을 특징으로 한다.
바람직하게, 상기 파일 시스템은, 상기 제1 독출요청이 순차적으로 발생하고 있는지 판단하는 독출유형 판단부; 상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 저장유형 판단부; 및 상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 상기 선독출 슬라이드의 길이 변경 정보를 발생시키는 슬라이드 길이 판단부를 포함하는 것을 특징으로 한다.
바람직하게, 상기 독출유형 판단부는, 제1 독출요청이 상기 제2 독출요청과 비교하여, 동일한 파일에 대해서 순차적인(subsequent) 논리 주소에 대한 요청인 경우 순차적인 독출요청으로 판단하는 것을 특징으로 한다.
바람직하게, 상기 저장유형 판단부는, 상기 하나 이상의 제2 데이터 중에서 상기 하나 이상의 제1 데이터와 동일한 데이터가 없다면, 상기 제1 데이터와 제2 데이터가 순차적으로 저장되어 있지 않은 것으로 판단하는 것을 특징으로 한다.
바람직하게, 상기 선독출 관리 정보 및 제1 독출요청에 대응하여 독출된 하나 이상의 제1 데이터 및 상기 제1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하여 기 독출된 하나 이상의 제2 데이터를 버퍼로부터 수신하여, 슬라이드 길이 변경 정보를 발생시키는 것을 특징으로 한다.
바람직하게, 상기 가상 파일 시스템은, 상기 선독출 슬라이드의 길이 조절정보에 대응하여, 상기 선독출 슬라이드의 길이 정보를 조절하는 것을 특징으로 한다.
바람직하게, 상기 선독출 관리 정보는 스토리지 시스템에 포함된 데이터들의 조각모음 실시 정보이고, 상기 변경정보는 조각모음 실시 판단정보인 것을 특징으로 한다.
바람직하게, 상기 파일 시스템은, 상기 제1 독출요청이 순차적으로 발생하고 있는지 판단하는 독출유형 판단부; 상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 저장유형 판단부; 및 상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 카운팅 정보를 결정하고, 카운팅 정보에 대응하여 상기 조각모음 실시 판단정보를 결정하는 카운터부를 포함하는 것을 특징으로 한다.
바람직하게, 상기 가상 파일 시스템은, 상기 조각모음 실시 판단정보에 대응하여, 상기 스토리지 시스템에 포함된 데이터들의 조각모음 실시 정보를 조절하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른, 스토리지 시스템에 저장된 파일 관리 방법은 가상 파일 시스템이 제1 독출요청을 발생시키는 단계; 파일 시스템이 상기 제1 독출요청 및 선독출 관리 정보에 대응하여, 적어도 하나의 제1 데이터를 독출하는 단계; 상기 파일 시스템이 기 저장된 적어도 하나의 제2 데이터를 수신하는 단계; 상기 파일 시스템이 상기 적어도 하나의 제1 데이터 및 상기 적어도 하나의 제2 데이터를 비교하는 단계; 상기 파일 시스템이 상기 비교하는 단계의 결과에 따라서, 상기 선독출 관리 정보에 대한 변경정보를 발생시키는 단계를 포함하고, 상기 기 저장된 하나 이상의 제2 데이터는 상기 제1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하는 데이터인 것을 특징으로 한다.
바람직하게 상기 선독출 관리 정보는 선독출 슬라이드의 길이 정보이고, 상기 변경정보는 선독출 슬라이드의 길이 조절정보인 것을 특징으로 한다.
바람직하게 상기 변경정보를 발생시키는 단계는, 상기 제1 독출요청이 순차적으로 발생한 것인지 판단하는 단계; 상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 단계; 상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 상기 선독출 슬라이드의 길이 변경 정보를 발생시키는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 선독출 관리 정보는 스토리지 시스템에 포함된 데이터들의 조각모음 실시 정보이고, 상기 변경정보는 조각모음 실시 판단정보인 것을 특징으로 한다.
바람직하게 상기 변경정보를 발생시키는 단계는, 상기 제1 독출요청이 순차적으로 발생한 것인지 판단하는 단계; 상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 단계; 상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 카운팅 정보를 결정하는 단계; 및 상기 카운팅 정보에 대응하여 상기 조각모음 실시 판단정보를 결정하는 단계를 포함하는 것을 특징으로 한다.
상술한 바와 같은 본 발명에 따른 파일 관리 장치에 의하여, 가상 파일 시스템에 포함되는 리드 어헤드부(Read Ahead Unit)가 파일 시스템에서 힌트를 얻어서 구동하여서, 리드 어헤드 메커니즘을 단순화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 파일 관리 장치(File Management Device)를 포함하는 컴퓨터 시스템(Computer System, 10)를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른, 파일 관리 장치(100)를 구체적으로 도시하는 도면이다.
도 3는 본 발명의 일 실시예에 따른 스토리지 시스템의 파일 관리 장치(100)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S100)이다.
도 4는 본 발명의 일 실시예에 따라서, 선독출 관리 정보(RA Management Info.)가 슬라이드의 길이 정보(RA_Slide)인 경우에, 파일 관리 장치(File Management Device, 200)를 설명하기 위한 도면이다.
도 5은 본 발명의 일 실시예에 따른, 파일 시스템(230)을 구체적으로 설명하기 위한 도면이다.
도 6a 내지 도 6c는 단편화 과정의 파일 시스템을 설명하는 도면이다.
도 7는 저장유형 판단부를 설명하기 위하여 데이터가 저장된 상황을 도시하는 도면인다.
도 8은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(200)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S200)이다.
도 9는 본 발명의 일 실시예에 따라서, 선독출 관리 정보(RA Management Info.)가 데이터들의 조각모음 실시 정보(RE_ARA)인 경우에, 파일 관리 장치(File Management Device, 300)를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른, 파일 시스템(330)을 구체적으로 설명하기 위한 도면이다.
도 11는 저장유형 판단부를 설명하기 위하여 데이터가 저장된 상황을 도시하는 도면인다.
도 12은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(300)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S300)이다.
도 13은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(300)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S400)이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 파일 관리 장치(File Management Device)를 포함하는 컴퓨터 시스템(Computer System, 10)를 도시하는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 컴퓨터 시스템은 호스트 인터페이스(Host Interface, 102), 스토리지 시스템(Storage System, 103), 프로세서(Processor,101), 램(Random Access Memory, 104) 및 파일 관리 장치(File Management Device, 100)를 포함할 수 있다.
호스트 인터페이스(102)는 호스트의 요청을 수신하여 프로세서(101)로 전송하거나, 스토리지 시스템(103)으로부터 전송된 데이터를 호스트로 전송한다.
프로세서(101)는 호스트의 요청에 응답하여 파일 관리 장치(100)가 스토리지 시스템(103)에 저장되어 있는 정보가 램(104)에 저장될 수 있도록 제어할 수 있다. 여기서 램(104)은 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory) 등일 수 있다. 본 명세서의 다른 부분에서 램(RAM)은 버퍼(Buffer)라고 지칭될 수 있다.
파일 관리 장치(100)는 가상 파일 시스템(VFS) 및 적어도 하나의 파일 시스템을 포함할 수 있다. 예를 들어, 파일 관리 장치(100)는 제1 파일 시스템(FS1) 및 제2 파일 시스템(FS2)를 포함할 수 있다. 가상 파일 시스템(VFS)은 클라이언트 응용 프로그램이 여러 파일 시스템(FS1, FS2)에 같은 방법으로 접근할 수 있게 한다. 가상 파일 시스템(VFS)은 컴퓨터 운영 체제의 커널(kernel)과 파일 시스템(FS1, FS2)과의 인터페이스를 정의할 수 있다.
본 발명의 일 실시예에 따른, 가상 파일 시스템(VFS)는 선독출 관리 정보를 저장하는 선독출 관리부(미도시)를 포함하고, 독출요청을 발생시켜서 이를 파일 시스템(FS1 또는 FS2)에 전송한다. 파일 시스템(FS1 또는 FS2)은 선독출 관리 정보 및 독출요청에 대응하여, 램(104)에 저장되어 있는 데이터를 독출하고, 변경정보를 발생시킬 수 있다. 가상 파일 시스템(VFS)는 변경정보를 수신하여, 선독출 관리(Read Ahead Management)에 사용할 수 있다.
도 2는 본 발명의 일 실시예에 따른, 파일 관리 장치(100)를 구체적으로 도시하는 도면이다.
도 2를 참조하면, 파일 관리 장치(100)는 가상 파일 시스템(Virtual File System, 110) 및 파일 시스템(File System, 130)을 포함할 수 있다.
가상 파일 시스템(110)은 선독출 관리부(RA unit, 111)을 포함할 수 있다. 선독출 관리부(111)는 선독출 관리 정보(RA Management Info.)를 저장할 수 있다. 선독출 관리 정보는 예를 들어, 선독출 슬라이드의 길이 정보, 조각모음 실시 정보를 포함할 수 있다. 본 명세서에서, 선독출 슬라이드의 길이 정보는 선독출하는 데이터의 개수를 나타내는 정보를 의미한다. 본 명세서에서, 조각모음 실시 정보는 스토리지 시스템의 조각모음을 실시할지 여부를 나타내는 정보를 의미한다.
가상 파일 시스템(110)은 파일 시스템(130)에 호스트로부터 수신된 독출요청(Read)을 제공할 수 있다. 본 발명의 일 실시예에 따른, 가상 파일 시스템(110)은 선독출 관리 정보(RA Management Info.)를 어떻게 변경하는지 여부에 대한 힌트인 변경정보(Varying Info.)를 수신하여, 선독출 관리 정보(RA Management Info.)를 변경할 수 있다.
파일 시스템(130)은 가상 파일 시스템(110)으로부터 전달 받은 독출요청(Read)에 대응하는 독출명령(Read_Command)을 외부의 스토리지 시스템에 전달한다. 외부의 스토리지 시스템은, 예를 들어, SSD(Solid State Drive), HDD(Hard Disk Drive)를 포함할 수 있다. 또는, 외부의 스토리지 시스템은 반도체 메모리 셀 어레이 및 반도체 메모리 셀 어레이를 제어하는 컨트롤러를 포함할 수 있다. 예를 들어, 반도체 메모리 셀 어레이는, PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리, NAND 플래쉬 메모리, 그리고 이러한 종류의 반도체 메모리를 2개 이상 포함하는 퓨전 플래시 메모리(예를 들면, SRAM 버퍼와 NAND 플래시 메모리 및 NOR 인터페이스 로직이 결합된 메모리) 등으로 구성될 수 있다. 외부의 스토리지 시스템이 2개 이상의 반도체 메모리를 포함하는 경우, 파일 시스템(130)은 이들 각각을 구동하기 위하여 2개 이상이 사용될 수 있다.
본 발명의 일 실시예에 따른 파일 시스템(130)은 외부의 스토리지 시스템에 전달한 독출명령(Read_Command)에 대응하는 독출 데이터(Read_Data)를 수신하여, 독출 데이터(Read_Data)에 대응하는 변경정보(Varying Info.)를 생성할 수 있다. 또한, 변경정보(Varying Info.)를 전달받은 가상파일시스템(110)은 변경정보(Varying Info.)에 대응하여, 선독출 관리 정보(RA Management Info.)를 변경하고, 그 이후의 독출에 대해서 변경된 선독출 관리 정보(RA Management Info.)를 이용하여 선독출(Read Ahead)를 실시할 수 있다. 이하, 스토리지 시스템의 파일 관리 장치(100)의 동작에 대해서 구체적으로 알아본다.
도 3는 본 발명의 일 실시예에 따른 스토리지 시스템의 파일 관리 장치(100)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S100)이다.
도 2 및 도 3를 참조하면, 가상 파일 시스템(110)은 제1 독출요청(Read)을 생성한다(S110). 가상 파일 시스템(110)에서 생성된 제1 독출요청(Read)는 파일 시스템(130)에 전달된다. 파일 시스템은 제1 독출요청(Read)에 대응하여, 독출명령(Read_Command)을 스토리지 시스템에 전달한다(S120). 독출명령(Read_Command)에 대응하여 스토리지 시스템은, 예를 들어, 버퍼(미도시)에 독출 데이터를 저장할 수 있다.
파일 시스템(130)은 제1 독출 요청에 대응하여 독출된 제1 데이터 및 1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하는 데이터인 제2 데이터를 수신할 수 있다. 파일 시스템(130)은 수신된 제1 데이터 및 제2 데이터에 대응하여, 선독출 관리 정보에 대한 변경정보(Varying Info.)를 생성할 수 있다(S130). 가상 파일 시스템(110)은 변경정보(Varying Info.)를 기초로 선독출 관리 정보(RA Management Info.)를 변경할 수 있다(S140). 가상 파일 시스템(110)은 추후에 독출 요청을 생성하는 경우, 변경된 선독출 관리 정보(RA Management Info.)를 이용하여 변경할 수 있다(S150).
본 발명의 일 실시예에 따른 파일 관리 방법은 파일 시스템에서 변경정보(Varying Info.)를 생성하므로, 멀티 리드 스트림(Multiple Read Stream)이 요청되는 경우에도, 가상 파일 시스템에서 복잡한 알고리즘의 구현이 없이, 리드 억세스 패턴(Read Access Pattern)에 맞도록 선독출 관리 정보(RA Management Info.)를 변경시킬 수 있다. 또한, 어플리케이션을 프로그램하는 프로그래머가 선독출 관리를 일일이 처리해줄 필요 없이, 오퍼레이팅 시스템(OS)에서 자체적으로 선독출 메커니즘을 해결할 수 있다.
도 4는 본 발명의 일 실시예에 따라서, 선독출 관리 정보(RA Management Info.)가 슬라이드의 길이 정보(RA_Slide)인 경우에, 파일 관리 장치(File Management Device, 200)를 설명하기 위한 도면이다.
도 4를 참조하면, 파일 관리 장치(200)는 가상 파일 시스템(Virtual File System, 210) 및 파일 시스템(File System, 230)을 포함할 수 있다. 가상 파일 시스템(210)은 선독출 관리부(RA unit, 211)을 포함할 수 있다. 선독출 관리부(211)는 선독출 슬라이드의 길이 정보(RA_Slide)를 포함할 수 있다. 선독출 슬라이드의 길이 정보(RA_Slide)는 n(여기서, n은 1이상의 정수) 일 수 있다.
선독출 슬라이드의 길이 정보(RA_Slide)는, 독출요청(Read[K+1])의 대상 데이터가 저장된 스토리지의 어드레스 이후에, 얼마나 많은 데이터를 읽을 것인지를 지시하는 정보일 수 있다. 예를 들어, 선독출 슬라이드의 길이 정보(RA_Slide)가 4이고, 독출요청(Read[K+1])의 대상 데이터가 저장된 스토리지의 어드레스가 [q] 인 경우, 파일 시스템(230)은 스토리지 시스템(STO_SYS)에 저장된 어드레스가 [q+1] 내지 [q+4]인 경우까지 독출요청을 하게 된다.
본 발명의 다른 실시예에서, 가상 파일 시스템(210)이 호스트 인터페이스(도 1의 HOST I/F)에서 하나의 독출요청을 수신하여, 선독출 슬라이드의 길이 정보(RA_Slide)에 대응하는 개수의 복수의 독출요청을 파일 시스템(230)에 전송할 수 있다.
파일 시스템(230)은 가상 파일 시스템(210)으로부터 전달 받은 독출요청(Read[k+1])에 대응하는 독출명령(Read_Command [k+1,0:k+1,n])을 스토리지 시스템(Storage System, STO_SYS, 250)에 전달한다. 스토리지 시스템(Storage System, STO_SYS, 250)은, 예를 들어, SSD(Solid State Drive), HDD(Hard Disk Drive)를 포함할 수 있다. 스토리지 시스템(250)이 2개 이상의 드라이브를 포함하는 경우, 파일 시스템(230)은 이들 각각을 구동하기 위하여 2개 이상이 사용될 수 있다. 스토리지 시스템(250)은 반도체 메모리 셀 어레이(미도시) 및 반도체 메모리 셀 어레이를 제어하는 컨트롤러(미도시)를 포함할 수 있다.
스토리지 시스템(250)에 포함된 컨트롤러(미도시)는 파일 시스템(230)으로부터 전달된 독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 제1 데이터(READ_DATA[q] 내지 READ_DATA[q+n])를 독출하고, 이를 버퍼(BUF,270)에 저장한다. 이런 과정을 통해서, 버퍼(270)에는 독출요청(Read[k+1])에 대응하여 독출된 제1 데이터(READ_DATA[q] 내지 READ_DATA[q+n])가 저장된다. 또한, 독출요청(Read[k+1])의 이전에 파일 시스템에 입력된 제2 독출요청(Read[k])에 대응하여 독출된 제2 데이터(READ_DATA[p] 내지 READ_DATA[p+n])도 저장 되어 있다.
본 발명의 일 실시예에 따른 파일 시스템(230)은 스토리지 시스템(250)에 전달한 독출명령(Read_Command[k+1,0:k+1,n])에 대응하는 제1 데이터(READ_DATA[q] 내지 READ_DATA[q+n]) 및 독출요청(Read[k+1])의 이전에 파일 시스템에 입력된 제2 독출요청(Read[k])에 대응하여 독출된 제2 데이터(READ_DATA[p] 내지 READ_DATA[p+n])를 수신하여, 제1 데이터 및 제2 데이터(Read_Data)에 대응하는 선독출 슬라이드의 길이 조절정보(Slide_Var)를 생성할 수 있다. 또한, 선독출 슬라이드의 길이 조절정보(Slide_Var)를 전달받은 가상파일시스템(210)은 선독출 슬라이드의 길이 조절정보(Slide_Var)에 대응하여, 선독출 슬라이드의 길이 정보(RA_Slide)를 변경하고, 그 이후의 독출에 대해서 변경된 선독출 슬라이드의 길이 정보(RA_Slide)를 이용하여 선독출(Read Ahead)를 실시할 수 있다.
본 발명의 일 실시예에 따른 파일 관리 장치는 파일 시스템(230)에서 선독출 슬라이드의 길이 조절정보(Slide_Var)를 생성하므로, 멀티 리드 스트림(Multiple Read Stream)이 요청되는 경우에도, 가상 파일 시스템에서 복잡한 알고리즘의 구현이 없이, 리드 억세스 패턴(Read Access Pattern)에 맞도록 선독출 슬라이드의 길이 정보(RA_Slide)를 변경시킬 수 있다. 또한, 어플리케이션을 프로그램하는 프로그래머가 선독출 관리를 일일이 처리해줄 필요 없이, 오퍼레이팅 시스템(OS)에서 자체적으로 선독출 메커니즘을 해결할 수 있다.
도 5은 본 발명의 일 실시예에 따른, 파일 시스템(230)을 구체적으로 설명하기 위한 도면이다.
도 5을 참조하면, 파일 시스템(230)은 독출유형 판단부(Read Type DET, 231), 저장유형 판단부(STO Type DET, 233) 및 슬라이드 길이 판단부(Slide_Size DET, 235)를 포함할 수 있다.
독출유형 판단부(231)는 독출요청[k+1]을 수신한다. 독출유형 판단부(231)는 현재의 수신된 제1 독출요청이 이전의 제2 독출요청과 비교하여 순차적(즉, 시퀀스)인 것인지 여부를 판단한다. 예를 들어, 동영상 파일에 대한 독출요청에서, 현재의 수신된 제1 독출요청이 k+1 프레임에 해당하는 독출요청인 경우, 이전에 수신된 제2 독출요청이 k 프레임에 해당하는 독출요청이라면 현재의 독출요청은 시퀀스(Sequence)로 진행되고 있는 것이다. 보다 구체적인 설명을 위해, 도 6a 내지 도 6c 를 참조하여 설명한다.
도 6a 내지 도 6c는 단편화 과정의 파일 시스템을 설명하는 도면이다.
도 6a는 파일 시스템을 초기화한 직후, 즉 일반적으로 포맷팅(formatting)이라는 동작이 수행된 직후에 제1 내지 제5 파일들(File1 ~ File5)을 기록하는 경우를 보여준다. 제1 내지 제5 파일들(File1 ~ File5) 각각은 파일 크기에 대응되는 복수개의 클러스터들(1~21)에 연속적으로 할당되어져 있고, 미사용된 다수개의 프리 클러스터들(free clusters)이 존재한다.
이 후, 제2 파일(File2)과 제4 파일(File4)를 삭제하고 제6 파일(File6)을 기록하는 경우, 도 6b에 도시된 바와 같이, 제2 및 제4 파일들(File2, File4)이 할당되있던 클러스터들(8~9, 13~16)이 프리 클러스터들이 된다.
그리고 제6 파일(File6)은, 도 6c에 도시된 바와 같이, 프리 클러스터들(8~9, 13~16, 22~25)에 불연속적으로 할당되는 것을 볼 수 있다. 도 6c의 파일 시스템에 기록된 제6 파일(File6)은, 제6 파일(File6)이 할당된 클러스터들(8~9, 13~16, 22~25)의 논리 블락 어드레스(Logical Block Address:LBA, 이하 "논리 주소"라 칭한다)들에 맵핑되는 비휘발성 데이터 저장 장치의 물리 블락 어드레스(Physical Block Address: PBA, 이하 " 물리 주소"라 칭한다)에 해당하는 비휘발성 메모리에 저장된다.
파일 시스템은, 임의의 파일을 생성할 때 전체 파일 크기에 대응되는 복수개의 클러스터들(clusters)을 할당한다. 파일 시스템이 포맷된 초기에 파일이 생성될 때에는 클러스터들이 연속적으로 할당되지만, 파일 시스템을 계속적으로 사용하다 보면 잦은 파일의 생성 및 삭제에 의해 파일 시스템이 단편화(fragmentation)된다.
대용량의 파일을 기록할 때, 파일 시스템의 단편화에 의해 불연속적인 클러스터들이 할당되면, 데이터는 메모리 장치에 랜덤하게 기록되고, 차후 이 파일을 읽을 때에도 불연속적인 클러스터 정보에 맵핑(mapping)되는 논리 주소에 의해 랜덤하게 독출을 수행하게 된다.
도 6c과 함께 다시 도 5을 참조하면, 독출유형 판단부(231)는 현재의 수신된 제1 독출요청이 이전에 수신된 제2 독출요청과 동일한 파일의 순차적인 논리 주소에 대한 것인지 여부를 판단할 수 있다. 동일한 파일의 순차적인 논리 주소라는 것은, 제1 독출요청의 대상 데이터의 논리 주소값이 제2 독출요청의 대상 데이터의 논리 주소값 보다 크고, 제1 독출요청의 대상 데이터의 논리 주소값 및 제2 독출요청의 대상 데이터의 논리 주소값 사이에 동일한 파일에 대한 다른 데이터가 없는 것을 의미한다.
예를 들어, 제6 파일(File6)에 관한 것이라면, 제6 파일(File6)에 대한 독출요청이 순서대로 클러스터(8, 9, 13, 14, 15, 16, 22, 23, 24, 25)에 해당하는 독출요청이 들어오는 경우, 독출요청은 시퀀스(Sequence)로 진행되고 있는 것으로 판단할 수 있다.
보다 구체적으로 예를 들어, 제1 독출요청의 대상 데이터가 클러스터(13)에 저장된 데이터라면, 제2 독출요청의 대상 데이터가 클러스터(9)에 저장된 데이터인 경우 제1 독출요청은 시퀀스 또는 순차적으로 진행되고 있다고 판단할 수 있다.
또한, 다른 예를 들어, 제6 파일(File6)에 대한 독출요청이 들어온 이후에, 제3 파일(File3)에 대한 독출요청이 들어온다면, 현재의 독출요청은 시퀀스 또는 순차적인 것이 아니고, 랜덤한 것으로 판단할 수 있다.
도 7는 저장유형 판단부를 설명하기 위하여 데이터가 저장된 상황을 도시하는 도면인다.
도 7와 함께 도 5을 참조하면, 저장유형 판단부(233)는 제1 데이터 및 제2 데이터를 수신하여 스토리지 시스템에 저장된 데이터들이 랜덤하게 저장되어 있는지 여부를 판단한다. 예를 들어, 저장유형 판단부(233)는 제2 데이터 중에서 제1 데이터와 동일한 데이터가 없다면, 제1 데이터와 제2 데이터가 순차적으로 저장되어 있지 않은 것으로 판단할 수 있다. 즉, 저장유형 판단부(233)는 제2 데이터 중에서 제1 데이터와 동일한 데이터가 없다면, 제1 데이터와 제2 데이터가 랜덤하게 저장되어 있는 것으로 판단할 수 있다.
예를 들어, 제2 독출요청(Read[k])에 대응하여 독출된 제2 데이터가 READ_DATA[p] 내지 READ_DATA[p+4]에 해당하고, 제1 독출요청(Read[k+1])에 대응하여 독출된 제2 데이터가 READ_DATA[p+2] 내지 READ_DATA[p+6]에 해당한다면, 저장유형 판단부(233)는 저장유형을 시퀀스로 판단한다(CASE1).
예를 들어, 독출요청(Read[k])에 대응하여 독출된 데이터가 READ_DATA[p] 내지 READ_DATA[p+4]에 해당하고, 독출요청(Read[k+1])에 대응하여 독출된 데이터가 READ_DATA[p+8] 내지 READ_DATA[p+12]에 해당한다면, 저장유형 판단부(233)는 저장유형을 랜덤으로 판단한다(CASE2).
도 5을 참조하면, 슬라이드 길이 판단부(235)는 독출유형 판단부(231) 및 저장유형 판단부(233)에서 발생된 판단결과를 기초로 슬라이드 길이를 증가시킬지 여부를 판단한다. 예를 들어, 독출유형 판단부(231)에서 판단한 독출유형이 시퀀스고, 저장유형 판단부(233)에서 판단한 저장유형이 랜덤이라면, 선독출 슬라이드의 길이 정보(RA_Slide)를 증가시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다. 선독출 슬라이드의 길이가 변경되는 정도는 각각의 실시예에 따라서 달라질 수 있다.
본 발명의 다른 실시예에서, 독출유형 판단부(231)에서 판단한 독출유형이 랜덤이고, 저장유형 판단부(233)에서 판단한 저장유형이 랜덤이라면, 선독출 슬라이드의 길이 정보(RA_Slide)를 감소시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다.
본 발명의 다른 실시예에서, 독출유형 판단부(231)에서 판단한 독출유형이 랜덤이고, 저장유형 판단부(233)에서 판단한 저장유형이 시퀀스이라면, 선독출 슬라이드의 길이 정보(RA_Slide)를 감소시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다.
도 8은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(200)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S200)이다.
도 4, 도 5 및 도 8를 참조하면, 가상 파일 시스템(210)은 제1 독출요청(Read[k+1])을 생성한다(S210). 가상 파일 시스템(210)에서 생성된 제1 독출요청(Read[k+1])은 파일 시스템(230)에 전달된다. 파일 시스템은 제1 독출요청(Read[k+1])에 대응하여, 독출명령(Read_Command[k+1,0:k+1,n])을 스토리지 시스템(250)에 전달한다(S220).
독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 스토리지 시스템(250)은 버퍼(270)에 독출 데이터를 저장할 수 있다. 파일 시스템(230)은 버퍼(270)에서 독출된 데이터(READ_DATA[q] 내지 READ_DATA[q+n], READ_DATA[p] 내지 READ_DATA[p+n])를 수신한다(S230).
파일 시스템(230)은 독출된 데이터(READ_DATA[q] 내지 READ_DATA[q+n], READ_DATA[p] 내지 READ_DATA[p+n])에 대응하여, 선독출 슬라이드의 길이 조절정보(Slide_Var)를 생성할 수 있다. 구체적으로, 독출유형 판단부(231)는 수신된 독출요청(Read[k+1])이 순차적인지 여부를 판단한다(S240).
저장유형 판단부(233)는 저장 유형이 랜덤인지 판단한다(S250, S270). 독출요청(Read[k+1])이 순차적이고, 저장 유형이 랜덤이라면, 선독출 슬라이드의 길이 정보(RA_Slide)를 증가시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다(S260).
독출요청(Read[k+1])이 랜덤이고, 저장 유형이 랜덤이라면, 선독출 슬라이드의 길이 정보(RA_Slide)를 감소시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다(S280).
본 발명의 일 실시예에 따른 파일 관리 방법은 파일 시스템에서 변경정보(Varying Info.)를 생성하므로, 멀티 리드 스트림(Multiple Read Stream)이 요청되는 경우에도, 가상 파일 시스템에서 복잡한 알고리즘의 구현이 없이, 리드 억세스 패턴(Read Access Pattern)에 맞도록 선독출 관리 정보(RA Management Info.)를 변경시킬 수 있다. 또한, 어플리케이션을 프로그램하는 프로그래머가 선독출 관리를 일일이 처리해줄 필요 없이, 오퍼레이팅 시스템(OS)에서 자체적으로 선독출 메커니즘을 해결할 수 있다.
도 9는 본 발명의 일 실시예에 따라서, 선독출 관리 정보(RA Management Info.)가 데이터들의 조각모음 실시 정보(RE_ARA)인 경우에, 파일 관리 장치(File Management Device, 300)를 설명하기 위한 도면이다.
도 9를 참조하면, 파일 관리 장치(300)는 가상 파일 시스템(Virtual File System, 310) 및 파일 시스템(File System, 330)을 포함할 수 있다. 가상 파일 시스템(310)은 선독출 관리부(RA unit, 311)을 포함할 수 있다. 선독출 관리부(311)는 선독출 슬라이드의 길이 정보(RA_Slide)를 포함할 수 있다. 선독출 슬라이드의 길이 정보(RA_Slide)는 n(여기서, n은 1이상의 정수) 일 수 있다. 구체적인 선독출 슬라이드의 길이 정보(RA_Slide)에 대한 설명은, 도 4에 대한 설명을 참조한다.
본 발명의 다른 실시예에서, 가상 파일 시스템(310)이 호스트 인터페이스(도 1의 HOST I/F)에서 하나의 독출요청을 수신하여, 선독출 슬라이드의 길이 정보(RA_Slide)에 대응하는 개수의 복수의 독출요청을 파일 시스템(330)에 전송할 수 있다.
파일 시스템(330)은 가상 파일 시스템(310)으로부터 전달 받은 독출요청(Read[k+1])에 대응하는 독출명령(Read_Command[k+1,0:k+1,n])을 스토리지 시스템(Storage System, STO_SYS, 350)에 전달한다. 구체적인 스토리지 시스템(350)에 관한 설명은, 도 4에 대한 설명을 참조한다.
스토리지 시스템(350)에 포함된 컨트롤러(미도시)는 파일 시스템(330)으로부터 전달된 독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 데이터(READ_DATA[q] 내지 READ_DATA[q+n])를 독출하고, 이를 버퍼(BUF,370)에 저장한다. 이런 과정을 통해서, 버퍼(370)에는 독출요청(Read[k+1])에 대응하는 독출 데이터(READ_DATA[q] 내지 READ_DATA[q+n])가 저장된다. 또한, 독출요청(Read[k+1])의 이전에 파일 시스템에 입력된, 예를 들어, 독출요청(Read[k])에 대응하여 독출된 데이터(READ_DATA[p] 내지 READ_DATA[p+n])도 저장 되어 있다.
본 발명의 일 실시예에 따른 파일 시스템(330)은 스토리지 시스템(350)에 전달한 독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 독출된 제1 데이터(READ_DATA[q] 내지 READ_DATA[q+n]) 및 독출요청(Read[k+1])의 이전에 파일 시스템에 입력된 제2 독출요청(Read[k])에 대응하여 독출된 제2 데이터(READ_DATA[p] 내지 READ_DATA[p+n])를 수신하여, 제1 데이터 및 제2 데이터에 대응하는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다. 또한, 조각모음 실시 판단정보 (RE_ARA)를 전달받은 가상파일시스템(310)은 조각모음 실시 판단정보 (RE_ARA)에 대응하여, 조각모음 실시 정보(Deflag)를 변경할 수 있고, 스토리지 시스템(350)에 조각모음 실시 정보(Deflag)를 전달하여, 스토리지 시스템(350)에 포함된 저장장치의 조각모음을 실시 할 수 있다.
본 발명의 일 실시예에 따른 파일 관리 장치(300)는 파일 시스템(330)에서 조각모음 실시 판단정보 (RE_ARA)를 생성하여, 가상 파일 시스템(310)이 조각모음을 실시하도록 하므로, 추후의 동일한 독출시 독출시간을 줄일 수 있다.
도 10은 본 발명의 일 실시예에 따른, 파일 시스템(330)을 구체적으로 설명하기 위한 도면이다.
도 10을 참조하면, 파일 시스템(330)은 독출유형 판단부(Read Type DET, 331), 저장유형 판단부(STO Type DET, 333) 및 카운터부(Count Unit, 335)를 포함할 수 있다.
독출유형 판단부(331)는 독출요청[k+1]을 수신한다. 현재의 수신된 제1 독출요청이 이전의 제2 독출요청과 비교하여 순차적(즉, 시퀀스)인 것인지 여부를 판단한다.
즉, 독출유형 판단부(331)는 현재의 수신된 제1 독출요청이 이전에 수신된 제2 독출요청과 동일한 파일의 순차적인 논리 주소에 대한 것인지 여부를 판단할 수 있다. 동일한 파일의 순차적인 논리 주소라는 것은, 제1 독출요청의 대상 데이터의 논리 주소값이 제2 독출요청의 대상 데이터의 논리 주소값 보다 크고, 제1 독출요청의 대상 데이터의 논리 주소값 및 제2 독출요청의 대상 데이터의 논리 주소값 사이에 동일한 파일에 대한 다른 데이터가 없는 것을 의미한다.
도 11는 저장유형 판단부를 설명하기 위하여 데이터가 저장된 상황을 도시하는 도면인다.
도 10와 함께 도 11를 참조하면, 저장유형 판단부(333)는 제1 데이터(READ_DATA[p] 내지 READ_DATA[p+n]) 및 제2 데이터(READ_DATA[q] 내지 READ_DATA[q+n])를 수신하여 스토리지 시스템에 저장된 데이터들이 랜덤하게 저장되어 있는지 여부를 판단한다.
예를 들어, 독출요청(Read[k])에 대응하여 독출된 데이터가 READ_DATA[p] 내지 READ_DATA[p+4]에 해당하고, 독출요청(Read[k+1])에 대응하여 독출된 데이터가 READ_DATA[p+2] 내지 READ_DATA[p+6]에 해당한다면, 저장유형 판단부(333)는 저장유형을 시퀀스로 판단한다. 이러한 경우 카운트부(335)는 카운팅 정보(count)를 증가시키지 않는다.
계속되는 독출요청(Read[k+2])에 대응하여 독출된 데이터가 READ_DATA[p+9] 내지 READ_DATA[p+13]에 해당한다면, 저장 유형 판단부(333)는 저장유형을 랜덤으로 판단한다. 이러한 경우, 만약, 독출유형 판단부(331)가 독출유형을 시퀀스로 판단하였다면, 카운트부(335)는 카운팅 정보(count)를 하나 증가시킨다.
계속되는 독출요청(Read[k+3])에 대응하여 독출된 데이터가 READ_DATA[p+14] 내지 READ_DATA[p+18]에 해당한다면, 저장 유형 판단부(333)는 저장유형을 랜덤으로 판단한다. 이러한 경우, 만약, 독출유형 판단부(331)가 독출유형을 시퀀스로 판단하였다면, 카운트부(335)는 카운팅 정보(count)를 하나 증가시킨다. 카운팅 정보(count)가 증가하여, 카운팅 정보(count)가 기준치(Threshold)를 초과하는 경우, 카운트부(335)는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다.
도 10을 참조하면, 카운트부(335)는 독출유형 판단부(331) 및 저장유형 판단부(333)에서 발생된 판단결과를 기초로 카운팅 정보(count)를 증가시킬지 여부를 판단한다. 예를 들어, 독출유형 판단부(331)에서 판단한 독출유형이 시퀀스고, 저장유형 판단부(333)에서 판단한 저장유형이 랜덤이라면, 카운트부(335)는 카운팅 정보(count)를 하나 증가시킨다. 카운팅 정보(count)가 증가하여, 카운팅 정보(count)가 기준치(Threshold)를 초과하는 경우, 카운트부(335)는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다.
본 발명의 다른 실시예에서, 독출유형 판단부(231)에서 판단한 독출유형이 시퀀스고, 저장유형 판단부(233)에서 판단한 저장유형이 랜덤이라면, 파일 시스템(330)은 선독출 슬라이드의 길이 정보(RA_Slide)를 감소시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시키면서, 동시에 카운트부(335)는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다.
본 발명의 다른 실시예에서, 파일 시스템(330)이 로그 기반 파일 시스템인 경우, 조각모음은 백그라운드 쓰레드(Background Thread)로 동작하는 가비지 콜렉션(Garbage Collection)으로 구현될 수 있다. 또한, 본 발명의 다른 실시예에서, 조각모음의 성능 저하를 막기 위해서 SSD(Solide State Drive)의 리맴핑(remapping) 기법을 사용할 수 있다.
도 12은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(300)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S300)이다.
도 9, 도 10과 함께 도 12를 참조하면, 가상 파일 시스템(310)은 제1 독출요청(Read[k+1])을 생성한다(S310). 가상 파일 시스템(310)에서 생성된 제1 독출요청(Read[k+1])은 파일 시스템(330)에 전달된다. 파일 시스템은 제1 독출요청(Read[k+1])에 대응하여, 독출명령(Read_Command[k+1,0:k+1,n])을 스토리지 시스템(350)에 전달한다(S320). 독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 스토리지 시스템(350)은 버퍼(370)에 독출 데이터를 저장할 수 있다. 파일 시스템(330)은 버퍼(370)에서 독출된 제1 데이터(READ_DATA[p] 내지 READ_DATA[p+n]) 및 제2 데이터(READ_DATA[q] 내지 READ_DATA[q+n])를 수신한다(S330). 파일 시스템(330)은 제1 데이터 및 제2 데이터에 대응하여, 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다.
구체적으로, 독출유형 판단부(331)는 수신된 독출요청(Read[k+1])이 순차적인지 여부를 판단한다(S340). 저장유형 판단부(333)는 저장 유형이 랜덤인지 판단한다(S350). 독출요청(Read[k+1])이 순차적이고, 저장 유형이 랜덤이라면, 카운트부(335)는 카운팅 정보(count)를 하나 증가시킨다(S360). 카운트부(335)는 카운팅 정보(count)가 증가하여, 카운팅 정보(count)가 기준치(Threshold)를 초과하는지 판단하다(S370). 카운팅 정보(count)가 기준치(Threshold)를 초과하는 경우, 카운트부(335)는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다(S380).
본 발명의 일 실시예에 따른 파일 관리 방법(S300)은 파일 시스템(330)에서 조각모음 실시 판단정보 (RE_ARA)를 생성하여, 가상 파일 시스템(310)이 조각모음을 실시하도록 하므로, 추후의 동일한 독출시 독출시간을 줄일 수 있다.
도 13은 본 발명의 일 실시예에 따른, 스토리지 시스템의 파일 관리 장치(300)를 이용한 파일 관리 방법에 대한 흐름도(Flow Chart, S400)이다.
도 9, 도 10과 함께 도 13를 참조하면, 가상 파일 시스템(310)은 제1 독출요청(Read[k+1])을 생성한다(S410). 가상 파일 시스템(310)에서 생성된 제1 독출요청(Read[k+1])은 파일 시스템(330)에 전달된다. 파일 시스템은 제1 독출요청(Read[k+1])에 대응하여, 독출명령(Read_Command[k+1,0:k+1,n])을 스토리지 시스템(350)에 전달한다(S420). 독출명령(Read_Command[k+1,0:k+1,n])에 대응하여 스토리지 시스템(350)은 버퍼(370)에 독출 데이터를 저장할 수 있다.
파일 시스템(330)은 버퍼(370)에서 독출된 제1 데이터(READ_DATA[p] 내지 READ_DATA[p+n]) 및 제2 데이터(READ_DATA[q] 내지 READ_DATA[q+n])를 수신한다(S430). 파일 시스템(330)은 제1 데이터 및 제2 데이터에 대응하여, 조각모음 실시 판단정보(RE_ARA)와 함께, 선독출 슬라이드의 길이 조절정보를 생성할 수 있다.
구체적으로, 독출유형 판단부(331)는 수신된 독출요청(Read[k+1])이 순차적인지 여부를 판단한다(S440). 저장유형 판단부(333)는 저장 유형이 랜덤인지 판단한다(S450).
독출요청(Read[k+1])이 순차적이고, 저장 유형이 랜덤이라면, 선독출 슬라이드의 길이 정보를 증가시키도록 선독출 슬라이드의 길이 조절정보(Slide_Var)를 발생시킬 수 있다(S460).
또한, 독출요청(Read[k+1])이 순차적이고, 저장 유형이 랜덤이라면, 카운트부(335)는 카운팅 정보(count)를 하나 증가시킨다(S470). 카운트부(335)는 카운팅 정보(count)가 증가하여, 카운팅 정보(count)가 기준치(Threshold)를 초과하는지 판단하다(S480). 카운팅 정보(count)가 기준치(Threshold)를 초과하는 경우, 카운트부(335)는 조각모음 실시 판단정보 (RE_ARA)를 생성할 수 있다(S490).
본 발명의 일 실시예에 따른 파일 관리 방법(S400)은 파일 시스템(330)에서 조각모음 실시 판단정보 (RE_ARA)와 함께, 선독출 슬라이드의 길이 조절정보를 생성하여, 리드 억세스 패턴(Read Access Pattern)에 맞도록 선독출 메커니즘을 관리 할 수 있고, 가상 파일 시스템(310)이 조각모음을 실시하도록 하므로, 추후의 동일한 독출시 독출시간을 줄일 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
파일 관리 장치(100)
가상 파일 시스템(110)
파일 시스템(130)
선독출 관리부(111)
스토리지 시스템(250)
버퍼(270)

Claims (10)

  1. 선독출 관리 정보를 저장하는 선독출 관리부를 포함하고, 제1 독출요청를 발생시키는 가상 파일 시스템; 및
    상기 선독출 관리 정보 및 제1 독출요청에 대응하여 독출된 하나 이상의 제1 데이터를 수신하고, 상기 제1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하여 기 독출된 하나 이상의 제2 데이터를 수신하며, 상기 제1 데이터 및 상기 제2 데이터를 비교하며, 비교 결과에 따라서 상기 선독출 관리 정보에 대한 변경정보를 발생시키는 것을 특징으로 하는 파일 시스템을 포함하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  2. 제1항에 있어서, 상기 선독출 관리 정보는 선독출 슬라이드의 길이 정보이고, 상기 변경정보는 선독출 슬라이드의 길이 조절정보인 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  3. 제2항에 있어서, 상기 파일 시스템은,
    상기 제1 독출요청이 순차적으로 발생하고 있는지 판단하는 독출유형 판단부;
    상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 저장유형 판단부; 및
    상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 상기 선독출 슬라이드의 길이 변경 정보를 발생시키는 슬라이드 길이 판단부를 포함하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  4. 제3항에 있어서, 상기 독출유형 판단부는, 제1 독출요청이 상기 제2 독출요청과 비교하여, 동일한 파일에 대해서 순차적인(subsequent) 논리 주소에 대한 요청인 경우 순차적인 독출요청으로 판단하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  5. 제3항에 있어서, 상기 저장유형 판단부는, 상기 하나 이상의 제2 데이터 중에서 상기 하나 이상의 제1 데이터와 동일한 데이터가 없다면, 상기 제1 데이터와 제2 데이터가 순차적으로 저장되어 있지 않은 것으로 판단하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  6. 제2항에 있어서, 상기 선독출 관리 정보 및 제1 독출요청에 대응하여 독출된 하나 이상의 제1 데이터 및 상기 제1 독출요청의 이전에 파일 시스템에 입력된 제2 독출요청에 대응하여 기 독출된 하나 이상의 제2 데이터를 버퍼로부터 수신하여, 슬라이드 길이 변경 정보를 발생시키는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  7. 제2항에 있어서, 상기 가상 파일 시스템은,
    상기 선독출 슬라이드의 길이 조절정보에 대응하여, 상기 선독출 슬라이드의 길이 정보를 조절하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  8. 제1항에 있어서, 상기 선독출 관리 정보는 스토리지 시스템에 포함된 데이터들의 조각모음 실시 정보이고, 상기 변경정보는 조각모음 실시 판단정보인 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
  9. 제8항에 있어서, 상기 파일 시스템은,
    상기 제1 독출요청이 순차적으로 발생하고 있는지 판단하는 독출유형 판단부;
    상기 제1 데이터가 제2 데이터에 대해서, 스토리지 시스템에 포함된 메모리 셀 어레이에 순차적으로 저장되어 있는지 판단하는 저장유형 판단부; 및
    상기 독출유형 판단부 및 상기 저장유형 판단부에서 판단한 결과에 대응하여 카운팅 정보를 결정하고, 카운팅 정보에 대응하여 상기 조각모음 실시 판단정보를 결정하는 카운터부를 포함하는 것을 특징으로 하는 스토리지 관리 장치.
  10. 제8항에 있어서, 상기 가상 파일 시스템은,
    상기 조각모음 실시 판단정보에 대응하여, 상기 스토리지 시스템에 포함된 데이터들의 조각모음 실시 정보를 조절하는 것을 특징으로 하는 스토리지 시스템의 파일 관리 장치.
KR1020120109254A 2012-09-28 2012-09-28 스토리지 시스템의 파일 관리 장치, 파일 관리 방법 KR20140042458A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120109254A KR20140042458A (ko) 2012-09-28 2012-09-28 스토리지 시스템의 파일 관리 장치, 파일 관리 방법
US14/038,891 US20140095555A1 (en) 2012-09-28 2013-09-27 File management device and method for storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120109254A KR20140042458A (ko) 2012-09-28 2012-09-28 스토리지 시스템의 파일 관리 장치, 파일 관리 방법

Publications (1)

Publication Number Publication Date
KR20140042458A true KR20140042458A (ko) 2014-04-07

Family

ID=50386226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120109254A KR20140042458A (ko) 2012-09-28 2012-09-28 스토리지 시스템의 파일 관리 장치, 파일 관리 방법

Country Status (2)

Country Link
US (1) US20140095555A1 (ko)
KR (1) KR20140042458A (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460008B1 (en) * 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
JP6450598B2 (ja) 2015-01-19 2019-01-09 東芝メモリ株式会社 情報処理装置、情報処理方法およびプログラム
US11579861B2 (en) * 2016-02-12 2023-02-14 Nutanix, Inc. Virtualized file server smart data ingestion
WO2017199542A1 (ja) * 2016-05-17 2017-11-23 株式会社東芝 構造物評価システム、構造物評価装置及び構造物評価方法
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
CN108052279B (zh) * 2017-11-23 2020-06-19 深圳市江波龙电子股份有限公司 一种提升闪存性能的方法、装置、设备及存储介质
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533137B1 (en) * 2002-08-30 2009-05-12 Symantec Operating Corporation System and method for grouping files
US7333993B2 (en) * 2003-11-25 2008-02-19 Network Appliance, Inc. Adaptive file readahead technique for multiple read streams
JP5217713B2 (ja) * 2008-07-11 2013-06-19 ソニー株式会社 情報処理装置、情報処理システム、情報記録媒体、および情報処理方法、並びにプログラム
US8271760B2 (en) * 2009-06-04 2012-09-18 Petit Brent J Spatial locality of file system block allocations for related items
US8606755B2 (en) * 2012-01-12 2013-12-10 International Business Machines Corporation Maintaining a mirrored file system for performing defragmentation

Also Published As

Publication number Publication date
US20140095555A1 (en) 2014-04-03

Similar Documents

Publication Publication Date Title
KR20140042458A (ko) 스토리지 시스템의 파일 관리 장치, 파일 관리 방법
US9690700B2 (en) Host-driven garbage collection
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
JP6517684B2 (ja) メモリシステムおよび制御方法
US11036646B2 (en) Data storage device and method of writing logical-to-physical mapping table thereof
US8918580B2 (en) Storage device with buffer memory including non-volatile RAM and volatile RAM
JP6517685B2 (ja) メモリシステムおよび制御方法
US8332579B2 (en) Data storage apparatus and method of writing data
KR102580820B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US11520660B2 (en) Storage devices hiding parity swapping behavior
US8417875B2 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
KR102307130B1 (ko) 복수 배열 독립 디스크 구성에서 가비지 콜렉션의 영향을 완화하는 레이드 컨트롤러 및 그것의 동작 방법
US20160162187A1 (en) Storage System And Method For Processing Writing Data Of Storage System
WO2018132396A1 (en) Directed sanitization of memory
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
US20110271037A1 (en) Storage device performing data invalidation operation and data invalidation method thereof
US20160004644A1 (en) Storage Controller and Method for Managing Modified Data Flush Operations From a Cache
KR20100037874A (ko) 반도체 디스크 장치 및 그것의 데이터 처리 방법
JP2019169101A (ja) 電子機器、コンピュータシステム、および制御方法
JP6975202B2 (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
KR102425470B1 (ko) 데이터 저장 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid