KR20130086449A - 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법 - Google Patents

계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법 Download PDF

Info

Publication number
KR20130086449A
KR20130086449A KR1020120007238A KR20120007238A KR20130086449A KR 20130086449 A KR20130086449 A KR 20130086449A KR 1020120007238 A KR1020120007238 A KR 1020120007238A KR 20120007238 A KR20120007238 A KR 20120007238A KR 20130086449 A KR20130086449 A KR 20130086449A
Authority
KR
South Korea
Prior art keywords
volume
level
data block
access
data
Prior art date
Application number
KR1020120007238A
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 KR1020120007238A priority Critical patent/KR20130086449A/ko
Priority to US13/536,260 priority patent/US8856442B2/en
Publication of KR20130086449A publication Critical patent/KR20130086449A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체가 제공된다. 본 볼륨 관리 프로그램은 복수개의 저장 장치를 복수의 계층의 볼륨으로 구성하고 액세스 정도에 따라 데이터 블록이 저장되는 계층의 위치를 재배치할 수 있게 되어, 저장 장치들의 전력 소비율이 더욱 낮은 볼륨 관리 기법을 제공할 수 있게 된다.

Description

계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법{Method for recording volume management program to relocate data block according to usage of each level volume}
본 발명은 볼륨 관리 방법에 관한 것으로, 더욱 상세하게는, 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법에 관한 것이다.
각종 환경 규제에 대한 대응이 세계 IT 시장에서 큰 이슈로 부각되면서, 데이터 센터 유지를 위해 소모되는 막대한 양의 에너지와 저장 장치를 효율적으로 관리하기 위한 통합(Consolidation), 가상화(Virtualization), 최적화(Optimization), 관리(Leverage) 등의 다양한 시도가 이루어지고 있다.
NomadFS는 PDC를 구현한 것으로 다중 큐를 이용하여 파일들의 액세스 빈도를 관리하며 각 큐는 하나씩 디스크와 맵핑되어 큐에 있는 파일들을 해당하는 디스크로 이동시킨다. 가장 상위 큐는 가장 액세스 빈도가 높은 파일들만 위치하여 맵핑된 디스크를 계속하여 사용될 수 있고, 반면 하위 큐에 맵핑된 디스크는 사용 빈도가 줄어 스핀-다운되어 사용된다.
이 방식은 액세스 빈도가 낮은 파일을 가진 디스크의 소비 전력이 줄어들어 에너지 효율을 높일 수 있지만 몇몇의 디스크에만 과부하가 생길 수 있어서 그에 따른 성능 하락 가능성이 있다.
PARAID와 Energy-Efficient Framework는 접근 빈도수와 같은 데이터만의 특성을 전혀 고려하지 않기 때문에 문제가 있다. 반면 MAID는 저장 장치를 계층화하여 전력 소비를 차별화하고 각 저장 장치에 위치할 데이터를 선별하는 방식이다. PDC는 데이터 접근 빈도수를 고려하여 저장 장치의 전력 소비를 계층화하는 방식을 사용한다.
하지만, 이와 같은 방식들외에 더욱 전력 소비율이 낮은 레이드(RAID) 기법을 제공하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 복수개의 저장 장치를 복수의 계층의 볼륨으로 구성하고 액세스 정도에 따라 데이터 블록이 저장되는 계층의 위치를 재배치하는 볼륨 관리 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체는 복수개의 저장 장치를 복수의 계층의 볼륨으로 구성하여 관리하는 볼륨 관리부; 데이터 블록의 기록 여부 상태 및 각 데이터 블록의 액세스 여부를 관리하는 액세스 관리부; 각 데이터 블록의 액세스 여부를 기준으로 각 데이터 블록의 계층을 결정하고, 결정된 데이터 블록의 계층에 따라 데이터 블록의 저장 위치를 변경하는 재배치 관리부; 및 물리적 블록 번호를 파일 시스템의 논리적 블록 번호와 연결하여 관리하는 맵핑 관리부;를 포함한다.
그리고, 상기 복수의 계층은, 액세스 빈도가 높은 데이터가 저장되는 레벨 0 계층, 액세스 빈도가 중간인 데이터가 저장되는 레벨 1 계층, 및 액세스 빈도가 낮은 데이터가 저장되는 레벨 2 계층을 포함할 수도 있다.
또한, 상기 재배치 관리부는, 각 계층의 저장공간이 일정량 이상 사용될 경우 재배치 작업을 수행할 수도 있다.
그리고, 상기 재배치 관리부는, 상기 레벨 0 계층의 볼륨의 저장공간 이용률이 기준 값 이상이 되는 경우, 상기 레벨 0 계층의 볼륨에 저장된 일정량의 데이터 블록을 상기 레벨 1 계층 볼륨으로 이동시킬 수도 있다.
또한, 상기 재배치 관리부는, 상기 레벨 1 계층의 볼륨의 저장공간 이용률이 기준 값 이상이 되는 경우, 상기 레벨 1 계층의 볼륨에 저장된 일정량의 데이터 블록을 액세스 비트맵의 값을 기준으로 상기 레벨 0 계층 볼륨 또는 상기 레벨 2 계층 볼륨으로 이동시킬 수도 있다.
그리고, 상기 재배치 관리부는, 상기 레벨 2 계층 볼륨에 기록된 데이터 블록 중 액세스가 발생된 데이터 블록을 상기 레벨 1 계층의 볼륨으로 이동시키는 것을 특징으로 하는 볼륨 관리 프로그램이 수록될 수도 있다.
본 발명의 다양한 실시예에 따르면, 복수개의 저장 장치를 복수의 계층의 볼륨으로 구성하고 액세스 정도에 따라 데이터 블록이 저장되는 계층의 위치를 재배치할 수 있게 되어, 저장 장치들의 전력 소비율이 더욱 낮은 볼륨 관리가 가능해진다.
도 1은 본 발명의 일 실시예에 따른, 복수의 저장장치를 계층화하여 관리하는 볼륨 관리 프로그램에 의해 관리되는 저장장치들의 구조를 도시한 도면,
도 2는 본 발명의 일 실시예에 따른, 도 1과 같이 구성된 복수의 저장장치들을 관리하기 위한 볼륨 관리 프로그램의 구성을 도시한 도면, 그리고,
도 3은 본 발명의 일 실시예에 따른, 복수개의 저장장치를 볼륨 관리 프로그램(100) 방식에 의해 관리하는 과정을 도시한 도면이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, 복수의 저장장치를 계층화하여 관리하는 볼륨 관리 프로그램(100)에 의해 관리되는 저장장치들의 구조를 도시한 도면이다. 도 1은 DISK 0 내지 DISK 9의 10개의 저장장치로 구성되는 볼륨의 구조를 도시하고 있다. 하지만, 이는 설명의 편의를 위해 저장장치가 10개인 경우를 가정하였으며, 저장장치의 개수에 한정되지는 않는다.
도 1에 도시된 바와 같이, 본 실시예에 따른 볼륨 관리 프로그램(100)에 따르면, 10개의 저장장치를 3개의 계층의 볼륨으로 나누어 관리하게 된다. 볼륨 관리 프로그램(100)은 복수의 저장장치를 관리하기 위해 컴퓨터에 의해 실행되는 로지컬 볼륨 매니지먼트(Logical Volume Management) 프로그램을 나타낸다.
레벨 0 계층 볼륨(110)은 상위 계층으로 액세스 빈도수가 가장 높은 데이터만을 저장하며, 저장 장치들을 스핀-업 상태로 유지하기 때문에 가장 많은 전력을 소비하는 계층이다. 레벨 0 계층에는 액세스 빈도수가 높은 중요 데이터가 저장되므로, 내부의 저장장치들은 RAID-1의 미러(mirror)로 구성된다. 따라서, 도 1에 도시된 바와 같이, DISK 0은 오리지널 디스크가 되고 DISK 1은 미러 디스크가 되는 것을 확인할 수 있다. 레벨 0 계층에 저장되는 액세스 빈도수가 높은 데이터는 핫 데이터(Hot Data)라고도 칭한다.
레벨 1 계층 볼륨(120)은 중간 계층으로 액세스 빈도수가 중간인 데이터를 저장하며, 중간 정도의 전력을 소비하는 계층이다. 레벨 1 계층에는 액세스 빈도수가 중간인 데이터가 저장되므로, 내부의 저장장치들은 하나의 볼륨(volume)으로 구성된다. 따라서, 도 1에 도시된 바와 같이, DISK 2 내지 DISK 4는 RAID-3 내지 RAID-5 중 어느 하나를 이용하여 하나의 볼륨을 구성하게 된다. 레벨 1 계층에 저장되는 액세스 빈도수가 중간인 데이터는 웜 데이터(Warm Data)라고도 칭한다.
레벨 2 계층 볼륨(130)은 하위 계층으로 액세스 빈도수가 낮은 데이터를 저장하며, 가장 낮은 전력을 소비하는 계층이다. 레벨 2 계층에는 액세스 빈도수가 낮은 데이터가 저장되며, 내부의 저장장치들은 하나의 볼륨(volume)으로 구성된다. 따라서, 도 1에 도시된 바와 같이, DISK 5 내지 DISK 9는 RAID-3 내지 RAID-5 중 어느 하나를 이용하여 하나의 볼륨을 구성하게 된다. 레벨 2 계층에 저장되는 액세스 빈도수가 낮은 데이터는 콜드 데이터(Cole Data)라고도 칭한다.
도 1과 같이, 복수의 저장장치들이 볼륨 관리 프로그램(100)로 구성되면, 컴퓨터는 액세스 빈도수에 따라 각 데이터 블록을 분류하여 적합한 계층의 저장 장치에 데이터를 기록하게 된다. 이에 따라, 볼륨 관리 프로그램(100)에 따라 구성된 저장장치들은 전력을 효율적으로 사용할 수 있게 된다.
도 2는 본 발명의 일 실시예에 따른, 도 1과 같이 구성된 복수의 저장장치들을 관리하기 위한 볼륨 관리 프로그램(100)의 구성을 도시한 도면이다. 도 2에 도시된 바와 같이, 볼륨 관리 프로그램(100)은 액세스 관리부(210), 재배치 관리부(220), 맵핑 관리부(230) 및 볼륨 관리부(240)를 포함한다.
액세스 관리부(210)는 데이터 블록의 기록 여부 상태 및 각 데이터 블록의 액세스 여부를 관리한다.
재배치 관리부(220)는 각 데이터 블록의 액세스 여부를 기준으로 각 데이터 블록의 계층을 결정하고, 결정된 데이터 블록의 계층에 따라 데이터 블록의 저장 위치를 변경하는 작업을 수행한다.
맵핑 관리부(230)는 볼륨 관리 프로그램(100)에 의해 선정된 물리적 블록 번호를 파일 시스템의 논리적 블록 번호와 연결하여 블록의 계층화 관리가 파일 시스템과 독립적으로 동작할 수 있도록 한다.
볼륨 관리부(240)는 도 1에 도시된 복수개의 저장 장치를 3개의 계층의 볼륨으로 구성하여 관리한다. 즉, 볼륨 관리부(240)는 복수개의 저장 장치를 레벨 0 계층 볼륨(110), 레벨 1 계층 볼륨(120), 및 레벨 2 계층 볼륨(130)으로 구성하여 관리하게 된다.
이와 같은 구성에 의해, 볼륨 관리 프로그램(100)은 각 데이터 블록을 액세스 빈도수에 따라 3가지 상태(HOT, WARM, COLD) 중 어느 하나로 분류하며, 분류에 따라 데이터 블록을 총 3개의 계층 중 대응되는 계층의 저장 장치에 저장하게 된다. 이와 같이, 볼륨 관리 프로그램(100)은 각 저장 장치에 대해 계층마다 서로 다른 RAID 정책을 사용함으로써, 데이터 신뢰성을 유지하면서 공간 활용도를 높여 전력 소비량을 최소화하게 된다.
볼륨 관리 프로그램(100)은 모든 쓰기 작업을 레벨 1 계층(WARM)의 저장 장치에서 수행하며, 레벨 1 계층의 각 데이터 블록은 일정 기간 후에 액세스 빈도수에 의해 저장 위치를 재결정한다. 전체 데이터의 50%는 생성 후 액세스되지 않는다는 특성을 이용하여, 볼륨 관리 프로그램(100)은 생성된 후 일정 기간 액세스가 되지 않은 데이터를 레벨 2 계층(COLD)의 저장장치로 이동시키게 된다. 이를 통해, 볼륨 관리 프로그램(100)은 스핀-다운된 레벨 2 계층에 거의 액세스되지 않는 콜드 데이터 블럭을 저장함으로써, 전력 소비를 감소시킬 수 있게 된다.
볼륨 관리 프로그램(100)의 맵핑 관리부(230)는 데이터 블록의 계층이 변경되면 변경된 물리적 블록 번호를 파일 시스템의 논리적 블록 번호와 재연결하는 재연결 작업을 수행하게 된다. 재연결 작업은 액세스 빈도수에 의해 변경된 각 데이터 블록의 저장위치를 파일시스템과 공유하기 위한 것으로, 파일시스템이 인지하는 논리 블록번호와 실제 저장장치의 물리적 블록번호를 연결하기 위한 작업으로, 볼륨 관리 프로그램(100)의 데이터 블록의 사용 빈도에 따른 블록 계층화 관리를 위해 블록 재배치 작업이 발생하는 경우에도 파일시스템과의 연동을 위해 이와 같은 작업이 필요하게 된다.
도 3은 본 발명의 일 실시예에 따른, 복수개의 저장장치를 볼륨 관리 프로그램(100) 방식에 의해 관리하는 과정을 도시한 도면이다.
도 3에 도시된 바와 같이, 맵핑 관리부(230)는 맵핑 테이블(310)을 이용하여 물리적 블록 번호를 파일 시스템의 논리적 블록 번호와 연결하게 된다. 구체적으로, 맵핑 테이블(310)은 3가지 요소인 논리 블록 번호(B)와 물리적 블록 번호(R_B) 및 연속된 블록의 개수(N)로 구성된다. 예를 들어 (B, R_B, N)이 (515, 2, 3)인 경우, 연속된 3개의 블록들(2,3,4)이 논리 블록 번호 515에 할당 된다.
액세스 관리부(210)는 블록 비트맵(320)(Block Bitmap)을 이용하여 물리적 블록의 사용 여부를 관리하게 된다. 예를 들어, 블록 비트맵(320)의 각 비트는 하나의 물리적 블록을 의미하며,‘0’은 블록이 비어있음을 의미하고 ‘1’은 블록이 사용 중임을 의미한다. 블록 상태 관리부는 이와 같은 블록 비트맵(320)을 이용하여 현재 사용되지 않는 블록을 확인할 수 있게 된다.
액세스 관리부(210)는 레벨 1 계층의 각 데이터 블록의 액세스 여부 측정 작업을 수행하게 된다. 액세스 여부 측정 작업은 레벨 1 계층(WARM)의 저장 장치에서만 수행된다. 이와 같은 작업은 "전체 파일의 50%에 해당하는 파일이 생성 후 전혀 액세스되지 않는다."는 데이터들의 특성 하에 레벨 2 계층(COLD)의 저장 장치의 상태를 가능한 오래 유지하여 전력 소비를 최소화하고, 레벨 0 계층(HOT) 저장 장치의 여유 공간을 확보하기 위한 재배치 작업 횟수를 최소화하여 디스크 I/O 성능 저하를 예방하기 위한 것이다.
액세스 관리부(210)는 액세스 비트맵(330)(Access Bitmap)을 이용하여 각 데이터 블록의 액세스 여부를 관리하게 된다. 액세스 비트맵(330)의 각 비트는 레벨 1 계층 볼륨(120)에 위치하는 물리적 블록의 액세스 여부을 의미하며, 데이터 액세스가 없는 경우 비트값이 '0'이 되고, 데이터 액세스가 발생한 경우 비트값이 '1'이 된다. 이와 같이, 계층 관리부는 액세스 비트맵(330)을 이용하여 데이터 블록의 액세스 여부를 관리하게 된다.
재배치 관리부(220)의 재배치 작업은 각 데이터 블록의 상태(HOT/WARM/COLD)에 따라 저장 위치를 변경하는 작업으로, 적합한 데이터 복구 정책을 선택함으로써 데이터 저장 공간을 효율적으로 사용하고 이로써 데이터 신뢰성을 유지하면서 전력 소비를 줄이는 볼륨 관리 프로그램(100)의 핵심 작업이다.
하지만 빈번한 재배치 작업은 전체 시스템의 I/O 성능 저하 및 전력 소비를 증가시킬 수 있기에 일정한 규칙에 따라 재배치 작업이 이루어 지게 된다.
첫째로 방법으로, 재배치 관리부(220)는 각 계층의 저장공간이 일정량 이상 사용될 경우 재배치 작업을 수행할 수도 있다.
먼저, 액세스 관리부(210)는 레벨 0 계층 볼륨(110)에 대해 LRU(Least Recently Used) 알고리즘에 따른 액세스 리스트(340)를 이용하여 데이터 블록의 대략적인 액세스 빈도를 측정한다. 여기에서, 액세스 리스트(340)는 레벨 0 계층 볼륨(110)의 모든 데이터 블록에 대응되는 항목들이 순차적으로 배열되어 있다. 또한, 액세스 리스트(340)는 앞부분을 헤드(Head)라고 칭하고 뒷부분을 테일(Tail)이라 칭하며, 헤드에 가까울수록 최근에 접근된 이력이 있는 데이터 블록을 나타내고, 테일에 가까울수록 마지막 접근 시점이 오래된 데이터 블록을 나타낸다.
그리고, 재배치 관리부(220)는 레벨 0 계층 볼륨(110)의 저장공간 이용률이 기준 값 이상이 되는 경우, 액세스 리스트(340)를 기준으로 테일에 가까운 순서로 일정량의 데이터 블록을 레벨 1 계층 볼륨(120)으로 이동시킨다.
그리고, 액세스 관리부(210)는 레벨 1 계층 볼륨(120)에 대해 '액세스 비트맵(330)'에 의해서 액세스 여부를 관리한다. 그리고, 재배치 관리부(220)는 레벨 1 계층 볼륨(120)의 저장공간 이용률이 기준 값 이상이 되는 경우, 현재 레벨 1 계층 저장 장치에 위치하면서 액세스 비트맵(330)의 비트 값으로 "0" 값을 가지는 모든 블록을 레벨 2 계층 볼륨(130)으로 이동시킨다. 그리고, 재배치 관리부(220)는 액세스 비트 값이 현재 "1"로 설정되어 있는 데이터 블록에 대해서는, 해당 데이터 블록을 레벨 0 계층 볼륨(110)으로 바로 이동시킨다. 이와 같이, 재배치 관리부(220)는 레벨 1 계층 볼륨(120)의 저장공간 이용률이 기준 값 이상이 되는 경우, 레벨 1 계층의 볼륨(120)에 저장된 일정량의 데이터 블록을 액세스 비트맵(330)의 값을 기준으로 레벨 0 계층 볼륨(110) 또는 레벨 2 계층 볼륨(130)으로 이동시키게 된다.
또한, 재배치 관리부(220)는 레벨 2 계층 볼륨(130)에 기록된 데이터 블록 중 액세스가 발생된 데이터 블록을 바로 레벨 1 계층 볼륨(120)으로 이동시키게 된다.
이와 같이, 재배치 관리부(220)는 상술한 바와 같이, 각 계층의 저장공간이 일정량 이상 사용될 경우 재배치 작업을 수행할 수 있다.
두번째 방법으로, 재배치 관리부(220)는 데이터 블럭에 액세스가 발생될 때마다 재배치 여부를 판단하여, 데이터 블럭의 재배치 작업을 수행할 수도 있다.
레벨 0 계층 볼륨(110)의 데이터 블록에 리드(read) 액세스가 발생된 경우, 액세스 관리부(210)는 액세스 리스트(340)의 헤드(head) 부분으로 액세스된 데이터 블록에 대응되는 항목을 이동시킨다. 여기에서, 액세스 리스트(340)는 레벨 0 계층 볼륨(110)의 데이터 블록들을 LRU(Least Recently Used) 알고리즘을 이용하여 관리하기 위한 리스트이다. 액세스 리스트(340)는 레벨 0 계층 볼륨(110)의 모든 데이터 블록에 대응되는 항목들이 순차적으로 배열되어 있다. 또한, 액세스 리스트(340)는 앞부분을 헤드(Head)라고 칭하고 뒷부분을 테일(Tail)이라 칭하며, 헤드에 가까울수록 최근에 접근된 이력이 있는 데이터 블록을 나타내고, 테일에 가까울수록 마지막 접근 시점이 오래된 데이터 블록을 나타낸다.
레벨 1 계층 볼륨(120)의 데이터 블록에 리드(read) 액세스가 발생된 경우, 재배치 관리부(220)는 액세스된 데이터 블록의 액세스 비트맵(330) 값이 "0"인지 여부를 판단한다. 그리고, 액세스된 데이터 블록의 액세스 비트맵(330) 값이 "0"인 경우, 재배치 관리부(220)는 액세스된 데이터 블록의 액세스 비트맵(330) 값을 "1"로 설정하게 된다.
반면, 액세스된 데이터 블록의 액세스 비트맵(330) 값이 "1"인 경우, 재배치 관리부(220)는 레벨 0 계층 볼륨(110)에 빈 데이터 블록이 있는지 여부를 판단한다. 레벨 0 계층 볼륨(110)에 빈 데이터 블록이 있는 경우, 재배치 관리부(220)는 액세스된 데이터 블록을 레벨 0 계층 볼륨(110)으로 이동시킨다.
반면, 레벨 0 계층 볼륨(110)에 빈 데이터 블록이 없는 경우, 레벨 0 계층 볼륨(110)의 액세스 리스트(340)를 확인하여 테일에 해당되는 데이터 블록을 레벨 1 계층 볼륨(120)으로 이동시켜 빈 공간을 확보한다. 그리고, 재배치 관리부(220)는 레벨 0 계층의 확보된 빈 공간으로 액세스된 데이터 블록을 이동시킨다. 이때, 레벨 1 계층 볼륨(120)에도 빈 데이터 블록이 없는 경우, 재배치 관리부(220)는 레벨 1 계층의 데이터 블록 중 액세스 비트맵(330) 값이 "0"인 데이터 블록을 선택하여, 선택된 레벨 1 계층의 데이터 블록을 레벨 2 계층으로 이동시킨다. 그리고, 재배치 관리부(220)는 레벨 1 계층 볼륨(120)에 확보된 빈공간에 테일에 해당되는 데이터 블록을 이동시키게 된다.
이와 같이, 액세스된 데이터 블록의 액세스 비트맵(330) 값이 "1"인 경우, 액세스된 데이터 블록은 최근에 한번 액세스되었던 데이터 블록이므로, 재배치 관리부(220)는 액세스된 데이터 블록을 레벨 0 계층 볼륨(110)으로 이동시키게 된다.
한편, 레벨 2 계층 볼륨(130)의 데이터 블록에 리드(read) 액세스가 발생된 경우, 재배치 관리부(220)는 액세스된 데이터 블록을 레벨 1 계층 볼륨(120)으로 이동시키게 된다. 이 때, 레벨 1 계층 볼륨(120)에 빈 데이터 블록이 없는 경우, 재배치 관리부(220)는 레벨 1 계층의 데이터 블록 중 액세스 비트맵(330) 값이 "0"인 데이터 블록을 선택하여, 선택된 레벨 1 계층의 데이터 블록을 레벨 2 계층으로 이동시킨다. 그리고, 재배치 관리부(220)는 레벨 1 계층 볼륨(120)에 확보된 빈공간에 액세스된 데이터 블록을 이동시키게 된다.
이와 같이, 재배치 관리부(220)는 데이터 블럭에 액세스가 발생될 때마다 재배치 여부를 판단하여, 데이터 블럭의 재배치 작업을 수행할 수도 있다.
한편, 본 실시예에 따른 볼륨 관리 프로그램(100)의 기능을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 볼륨 관리 프로그램 110 : 레벨 0 계층 볼륨
120 : 레벨 1 계층 볼륨 130 : 레벨 2 계층 볼륨
210 : 액세스 관리부 220 : 재배치 관리부
230 : 맵핑 관리부 240 : 볼륨 관리부
310 : 맵핑 테이블 320 : 블록 비트맵
330 : 액세스 비트맵 340 : 액세스 리스트

Claims (6)

  1. 복수의 저장 장치를 복수의 계층 볼륨으로 구성하여 관리하는 볼륨 관리부;
    데이터 블록의 기록 여부 상태 및 각 데이터 블록의 액세스 여부를 관리하는 액세스 관리부;
    각 데이터 블록의 액세스 여부를 기준으로 각 데이터 블록의 계층을 결정하고, 결정된 데이터 블록의 계층에 따라 데이터 블록의 저장 위치를 변경하는 재배치 관리부; 및
    물리적 블록 번호를 파일 시스템의 논리적 블록 번호와 연결하여 관리하는 맵핑 관리부;를 포함하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  2. 제1항에 있어서,
    상기 복수의 계층은,
    액세스 빈도가 제1 빈도인 데이터가 저장되는 제1 레벨 계층, 액세스 빈도가 제2 빈도인 데이터가 저장되는 제2 레벨 계층, 및 액세스 빈도가 제3 빈도인 데이터가 저장되는 제3 레벨 계층을 포함하고,
    상기 제1 빈도는 상기 제2 빈도 보다 높고, 상기 제2 빈도는 상기 제3 빈도 보다 높은 것을 특징으로 하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  3. 제2항에 있어서,
    상기 재배치 관리부는,
    각 계층의 저장공간이 일정량 이상 사용될 경우 재배치 작업을 수행하는 것을 특징으로 하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  4. 제3항에 있어서,
    상기 재배치 관리부는,
    상기 제1 레벨 계층의 볼륨의 저장공간 이용률이 기준 값 이상이 되는 경우, 상기 제1 레벨 계층의 볼륨에 저장된 일정량의 데이터 블록을 상기 제2 레벨 계층 볼륨으로 이동시키는 것을 특징으로 하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  5. 제3항에 있어서,
    상기 재배치 관리부는,
    상기 제2 레벨 계층의 볼륨의 저장공간 이용률이 기준 값 이상이 되는 경우, 상기 제2 레벨 계층의 볼륨에 저장된 일정량의 데이터 블록을 액세스 비트맵의 값을 기준으로 상기 제1 레벨 계층 볼륨 또는 상기 제3 레벨 계층 볼륨으로 이동시키는 것을 특징으로 하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
  6. 제3항에 있어서,
    상기 재배치 관리부는,
    상기 제3 레벨 계층 볼륨에 기록된 데이터 블록 중 액세스가 발생된 데이터 블록을 상기 제2 레벨 계층의 볼륨으로 이동시키는 것을 특징으로 하는 볼륨 관리 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020120007238A 2012-01-25 2012-01-25 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법 KR20130086449A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120007238A KR20130086449A (ko) 2012-01-25 2012-01-25 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법
US13/536,260 US8856442B2 (en) 2012-01-25 2012-06-28 Method for volume management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120007238A KR20130086449A (ko) 2012-01-25 2012-01-25 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법

Publications (1)

Publication Number Publication Date
KR20130086449A true KR20130086449A (ko) 2013-08-02

Family

ID=49213692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120007238A KR20130086449A (ko) 2012-01-25 2012-01-25 계층별 볼륨의 이용량에 따라 데이터 블럭을 재배치하는 볼륨 관리 방법

Country Status (1)

Country Link
KR (1) KR20130086449A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168907B2 (en) 2016-11-30 2019-01-01 SK Hynix Inc. Memory system and operating method thereof
KR102393767B1 (ko) * 2021-08-24 2022-05-04 주식회사 에너자이(ENERZAi) 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
WO2023027368A1 (ko) * 2021-08-24 2023-03-02 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10168907B2 (en) 2016-11-30 2019-01-01 SK Hynix Inc. Memory system and operating method thereof
KR102393767B1 (ko) * 2021-08-24 2022-05-04 주식회사 에너자이(ENERZAi) 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템
WO2023027368A1 (ko) * 2021-08-24 2023-03-02 주식회사 에너자이 실행 엔진 최적화 방법, 실행 엔진 최적화 장치, 및 실행 엔진 최적화 시스템

Similar Documents

Publication Publication Date Title
US8856442B2 (en) Method for volume management
US9355112B1 (en) Optimizing compression based on data activity
US9811288B1 (en) Managing data placement based on flash drive wear level
US8762667B2 (en) Optimization of data migration between storage mediums
EP3832451B1 (en) Data migration method and apparatus
JP4733461B2 (ja) 計算機システム、管理計算機及び論理記憶領域の管理方法
JP5502232B2 (ja) ストレージシステム、及びその制御方法
JP5944587B2 (ja) 計算機システム及び制御方法
US10338825B2 (en) Managing SSD wear rate in hybrid storage arrays
US9477405B2 (en) Storage system
US8966143B2 (en) Method for controlling storages and storage control apparatus
US8171059B2 (en) Data migration management apparatus and management method
US20100235597A1 (en) Method and apparatus for conversion between conventional volumes and thin provisioning with automated tier management
US20120266177A1 (en) Management system, computer system including the management system, and management method
JP2006099763A5 (ko)
US9330009B1 (en) Managing data storage
US20120203999A1 (en) Implementing optimal storage tier configurations for a workload in a dynamic storage tiering system
KR20110087192A (ko) 데이터 요소 배치 제공 방법 및 컴퓨터 프로그램 제품
US9619169B1 (en) Managing data activity information for data migration in data storage systems
Niu et al. Hybrid storage systems: A survey of architectures and algorithms
WO2010099992A1 (en) Method, system and computer program product for managing the placement of storage data in a multi tier virtualized storage infrastructure
JP5325304B2 (ja) 仮想ボリューム内のパフォーマンスホットスポットの特定及び抑制
CN103761059A (zh) 一种用于海量数据管理的多盘位存储方法及系统
US8650358B2 (en) Storage system providing virtual volume and electrical power saving control method including moving data and changing allocations between real and virtual storage areas
US9075606B2 (en) Storage apparatus and method of determining device to be activated

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination