KR100392382B1 - 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 - Google Patents
동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 Download PDFInfo
- Publication number
- KR100392382B1 KR100392382B1 KR10-2001-0045621A KR20010045621A KR100392382B1 KR 100392382 B1 KR100392382 B1 KR 100392382B1 KR 20010045621 A KR20010045621 A KR 20010045621A KR 100392382 B1 KR100392382 B1 KR 100392382B1
- Authority
- KR
- South Korea
- Prior art keywords
- logical volume
- disk
- logical
- metadata
- information
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (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
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법과 상기 방법을 실현시키기 위한 프로그램 또는 데이터 구조를 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 다수의 디스크 드라이브에 대한 논리 볼륨을 제공하는데 있어 논리 주소와 물리 주소의 관계에 매핑 테이블을 이용하고 시스템 메타 데이터에 대해 최소 공간을 사용하여 논리 볼륨을 관리하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법과 상기 방법을 실현시키기 위한 프로그램 또는 데이터 구조를 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 함.
3. 발명의 해결방법의 요지
본 발명은, 물리적 저장 공간에 대한 논리 볼륨 구성 요청에 따라 디스크 파티션들을 모아 논리 볼륨을 생성하는 제 1 단계; 상기 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함한 메타 데이터를 생성하여 상기 논리 볼륨에 참여하는 상기 디스크 파티션에 저장하는 제 2 단계; 상기 논리 볼륨을 구성하는 상기 디스크 파티션에 대한 변경 요청을 받아 상기 논리 볼륨의 크기를 동적으로 변경하고 상기 논리 볼륨에 대한 변경시에 필요한 상기 메타 데이터의 변경을 수행하는 제 3 단계; 및 상기 논리 볼륨에 대한 논리 주소를 전달받아 논리 주소에 매칭되는 물리 주소의 정보를 기록하고 있는 상기 메타 데이터의 매핑 정보를 통해 해당하는 물리 주소를 파악하여 반환하는 제 4 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 스토리지 시스템 등에 이용됨.
Description
본 발명은 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법과 상기 방법을 실현시키기 위한 프로그램 또는 데이터 구조를 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 특히 컴퓨터 시스템상에서 저장 장치의 물리적 한계를 극복하는 논리 볼륨 관리자를 통해 동적 크기 변경 및 메타 데이터 양의 최소화를 처리하는 논리 볼륨 관리 방법과 상기 방법을 실현시키기 위한 프로그램 또는 데이터 구조를 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
상기한 논리 볼륨 관리자(Logical Volume Manager)는 다수의 디스크 드라이브에 대해 하나의 가상화된 디스크 드라이브인 논리 볼륨을 제공하고 이 볼륨의 구성을 위해 레이드(RAID : Redundant Array of independent disks) 기법을 소프트웨어적으로 구현하는 것이다.
우선, 상기한 레이드(RAID) 및 관련 용어를 설명하면 다음과 같다.
레이드(RAID)는 중요한 데이터를 가지고 있는 서버에 주로 사용되며, 여러 대의 하드디스크가 있을 때 동일한 데이터를 다른 위치에 중복해서 저장하는 방식이다. 데이터를 여러 대의 디스크에 저장함에 따라 입출력 작업이 균형을 이루며 겹치게 되어 전체적인 성능이 개선된다. 여러 대의 디스크는 평균 무고장 시간(MTBF : Mean Time Between Failures)을 증가시키기 때문에 데이터를 중복해서 저장하면 고장에 대비하는 능력도 향상된다.
하나의 레이드(RAID)는 운영체제에게 논리적으로는 하나의 하드디스크로 인식된다. 레이드는 스트라이핑 기술을 채용하여 각 드라이브의 저장공간을 1섹터(512 바이트)의 크기에서부터 수 메가바이트(MB : Mega Byte)에 이르는 공간까지 다양한 범위로 파티션할 수 있다. 모든 디스크의 스트립은 인터리브되어 있으며, 차례대로 어드레싱된다.
의료 및 기타 과학분야의 사진 등 대형 레코드가 저장된 단일 사용자용 시스템에서, 스트립들은 약 512 바이트 정도의 적은 량으로 설정되는데, 이를 통하여 하나의 레코드가 모든 디스크들에 걸쳐 있게 되고, 또한 모든 디스크를 동시에 읽음으로써 빠르게 접근할 수 있게 된다.
다중 사용자 시스템에서는 최대 크기의 레코드를 넣을 수 있을 정도로 충분히 넓은 스트립을 확보함으로써 더 나은 성능을 발휘하게 되는데, 이는 드라이브간의 디스크 입출력을 중첩시켜 준다.
레이드에는 중복되지 않는 어레이인 레이드-0를 제외하더라도, 9가지 형태가 더 있다.
* 레이드-0 : 이 방식은 스트립은 가지고는 있지만 데이터를 중복해서 기록하지 않는다. 따라서, 가장 높은 성능을 기대할 수 있지만, 고장대비 능력이 전혀 없으므로 이 방식은 진정한 레이드라고 하기 어렵다.
* 레이드-1 : 이 형식은 흔히 디스크 미러링이라고도 하는데, 중복 저장된 데이터를 가진 적어도 두 개의 드라이브로 구성된다. 스트립은 없으며, 각 드라이브를 동시에 읽을 수 있으므로 읽기 성능은 향상된다. 쓰기 성능은 단일 디스크 드라이브의 경우와 정확히 같다. 레이드-1은 다중 사용자 시스템에서 최고의 성능과 최고의 고장대비 능력을 발휘한다.
* 레이드-2 : 이 형식은 디스크들간에 스트립을 사용하며, 몇몇 디스크들은 에러를 감지하고 수정하는데 사용되는 이씨씨(ECC : Error Checking and Correcting) 정보가 저장되어 있다. 이 방식은 레이드-3에 비해 장점이 없다.
* 레이드-3 : 이 형식은 스트립을 사용하며, 패리티 정보를 저장하기 위해 별도의 드라이브 한 대를 쓴다. 이는 내장된 ECC 정보가 에러를 감지하는데 사용된다. 데이터 복구는 다른 드라이브에 기록된 정보의 XOR(exclusive OR)를 계산하여 수행된다. 입출력 작업이 동시에 모든 드라이브에 대해 이루어지므로, 레이드-3은 입출력을 겹치게 할 수 없다. 이런 이유로 레이드-3은 대형 레코드가 많이 사용되는 업무에서 단일 사용자시스템에 적합하다.
* 레이드-4 : 이 형식은 대형 스트립을 사용하며, 이는 사용자가 어떤 단일 드라이브로부터라도 레코드를 읽을 수 있다는 것을 의미한다. 이것은 데이터를 읽을 때 중첩 입출력의 장점을 취할 수 있도록 한다. 모든 쓰기 작업은 패리티 드라이브를 갱신해야하므로, 입출력의 중첩은 불가능하다. 레이드-4는 레이드-5에 비해 장점이 없다.
* 레이드-5 : 이 형식은 회전식 패리티 어레이를 포함한다. 그러므로, 레이드-4에서의 쓰기 제한을 주소 지정한다. 그러므로, 모든 읽기/쓰기 동작은 중첩될 수 있다. 레이드-5는 패리티 정보를 저장하지만 데이터를 중복저장하지는 않는다(그러나, 패리티 정보는 데이터를 재구성하는데 사용될 수 있다). 레이드-5는 보통 3~5개의 디스크를 어레이로 요구한다. 레이드-5는 성능이 그리 중요하지 않고 쓰기 작업이 많지 않은 다중 사용자시스템에 적합하다.
* 레이드-6 : 이 형식은 레이드-5와 비슷하지만, 다른 드라이브들간에 분포되어 있는 2차 패리티 구성을 포함함으로써 매우 높은 고장대비 능력을 제공한다.
* 레이드-7 : 이 형식은 컨트롤러로서 내장되어 있는 실시간 운영체제를 사용하며, 속도가 빠른 버스를 통한 캐시, 독자적인 컴퓨터의 여러 가지 특성들을 포함하고 있다.
* 레이드-10 : 이 형식은 각 스트립이 레이드-1 드라이브 어레이인 스트립 어레이를 제공한다. 이 방식은 레이드-1보다 높은 성능을 제공하지만, 값이 더 비싸다.
* 레이드-53 : 이 형식은 각 스트립은 레이드-3 디스크 에레이인 스트립 어레이를 제공한다. 이 방식은 레이드-3보다 높은 성능을 제공하지만, 값이 더 비싸다.
다음으로, (디스크) 스트라이핑{(disk) striping}에 관해 설명한다.
스트라이핑은 성능 향상을 위해 단일 파일과 같은 논리적으로 연속된 데이터 세그먼트들이, 물리적으로 여러 개의 장치, 즉 디스크 드라이브 등에 라운드로빈 방식으로 나뉘어 기록될 수 있는 것이다. 이것은 만약 프로세서가, 하나의 디스크에서 공급하거나 받아들일 수 있는 것보다 더 빠르게 데이터를 읽거나 쓸 수 있는 능력이 있다면, 이러한 방식은 매우 유용한 기술이 된다.
데이터는 여러 개의 드라이브에 걸쳐 일정 크기의 바이트 또는 섹터별로 나뉘어 기록된다. 예를 들면, 서로 겹쳐서 읽거나 쓸 수 있도록 설계된 네 개의 드라이브가 있다면, 보통 하나의 섹터를 읽을 수 있는 시간에 네 개의 섹터를 동시에읽을 수 있다.
디스크 스트라이핑은 그 자체가 본래부터 고장에 대비하거나 에러를 체크하는 기능을 제공하는 것은 아니며, 다만 그러한 기능들은 여러 가지 다른 방식들과 함께 사용될 때 비로소 발휘된다.
스트라이핑은 미러링과는 다르지만, 그것과 함께 사용될 수는 있다.
미러링(mirroring)이란 장비가 고장나는 사고가 발생하였을 때 데이터가 손실되는 것을 막기 위하여, 데이터를 하나 이상의 장치에 중복 저장하는 것이다.
이러한 기법은 하드웨어 또는 소프트웨어에 의해 구현될 수 있다. 미러링은 레이드 시스템의 보편적인 특징이다. 노벨 네트웨어와 같은 일부 운영체계들은 디스크 미러링을 소프트웨어적으로 지원한다. 이러한 기술이 자기테이프 저장 시스템에 적용되었을 때에는 그것을 미러링이라고 하지 않고 "트위닝(twinning)"이라고 불렀다는 사실이 흥미롭다. 미러링에 비해 좀더 낮은 가격으로 데이터 손실을 최소화할 수 있는 대안은, 디스크를 자기 테이프에 정기적으로 백업하는 것이다.
상기한 용어 정리를 바탕으로 종래 기술부터 설명하면 다음과 같다.
종래에는 데이터 저장 장치에 대하여 좀 더 나은 성능과 디스크 에러시에 복구할 수 있는 안정성을 제공하고 하나의 디스크 드라이브의 용량 한계를 극복하고자 하드웨어적으로 레이드를 구현한 저장장치를 사용하였다. 이러한 하드웨어 레이드 장치는 여러 가지 장점을 가지는 반면 비용이 매우 큰 것이 단점으로 지적되었다.
또한, 물리적인 제약으로 매우 많은 디스크 드라이브들을 하나의 장치로서연결하는 것이 불가능하여 제공가능한 저장 공간에도 한계를 지니는 문제점이 있었다.
이러한 하드웨어 레이드 장치의 단점과 문제점을 해결하고자 소프트웨어적으로 레이드(RAID)를 구현한 논리 볼륨 관리자가 출현하였다. 논리 볼륨 관리자는 하드웨어적으로 독립적인 여러 디스크 드라이브들을 마치 하나의 디스크 드라이브처럼 보여주고 여기에 다양한 레이드 기법을 컴퓨터의 계산능력을 바탕으로 소프트웨어적으로 구현한 중간 레벨의 블록 디바이스 드라이버이다.
기존의 논리 볼륨 관리자는 파일 시스템과 같이 논리 볼륨을 사용하는 상위 모듈에서 다루는 논리 주소를 여러 개의 물리적인 디스크 드라이브의 주소인 물리 주소로 변환하는데 있어 정해진 변환 함수 등을 사용하는 고정된 매핑 방식을 사용하였다. 이는 논리 주소와 물리 주소간의 관계를 고정시켜 물리적인 저장 공간을 논리적인 저장 공간에 종속시킴으로 인해 융통성에 제한을 가하게 된다. 따라서, 저장 공간의 사용중 빈번하게 발생하는 크기 변경에 대한 요구사항을 제대로 수용하지 못하는 문제점을 갖고 있었다.
일부의 논리 볼륨 관리자는 논리 주소를 물리 주소로 매핑할 때, 매핑 함수를 사용하지 않고 논리 주소와 물리 주소 사이의 관계를 서로 연결해주는 방식을 사용하고 있었다.
그러나, 대규모 스토리지를 위한 구조에 사용되기에는 유지 관리하는 메타 데이터의 양이 많고, 이로 인해 메타 데이터의 변경 작업시 처리속도가 지연되는 문제점을 갖고 있었다. 또한, 논리 볼륨을 관리하기 위해 메모리에 구성되어 관리되는 메타 데이터의 양이 많아 시스템 부팅 시간을 지연시키고 메모리를 과다하게 사용하는 문제점을 갖고 있었다.
상기한 바와 같은 종래 기술에 대해 선행 특허를 예로 들어 설명하면 다음과 같다.
선행 특허인, 아이비엠(IBM : International Business Machines Corporation)사의 "Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information(미국 등록번호 : 5,897,661)"는 물리적인 저장 장치 경계를 넘어서 논리적인 저장 공간을 제공하는 논리 볼륨 관리자에 관한 것이다. 그러나, 선행 특허는 상기한 것처럼 메타 데이터의 양이 많고, 처리속도가 지연되며, 시스템 부팅 시간을 지연시키고, 메모리를 과다하게 사용하는 문제점을 갖고 있었다.
즉, 선행 특허는 시스템 부팅시에 저장 공간에 대한 정보를 메모리에 모두 불러 올리고 사용할 뿐만 아니라, 이렇게 메모리에 올리기 위해 일일이 물리 주소를 논리 주소로 변환시키는 작업을 거쳐야 하므로, 메타 데이터의 양이 많고, 시스템 부팅 시간을 지연시킬 뿐만 아니라 메모리를 과다하게 사용하는 문제점을 가지는 것이다.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 다수의 디스크 드라이브에 대한 논리 볼륨을 제공하는데 있어 논리 주소와 물리 주소의 관계에 매핑 테이블을 이용하고 시스템 메타 데이터에 대해 최소 공간을 사용하여 논리 볼륨을 관리하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법과 상기 방법을 실현시키기 위한 프로그램 또는 데이터 구조를 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
도 1 은 본 발명이 적용되는 컴퓨터 시스템의 구성예시도.
도 2 는 본 발명에 따른 논리 볼륨 관리 방법을 통해 구성될 수 있는 논리 볼륨의 일예시도.
도 3 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블의 일실시예 구조도.
도 4 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 물리 파티션 맵(PP Map)의 일실시예 구조도.
도 5 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 논리 볼륨 맵(LV Map)의 일실시예 구조도.
도 6 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 매핑 맵의 일실시예 구조도.
도 7 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 매핑 맵의 일실시예 논리 구조도.
도 8 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 매핑 맵을 통해 논리 주소와 물리 주소의 매핑 관계를 나타내는 일실시예 설명도.
도 9 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 매핑 맵을 분할하여 각 디스크 파티션에 저장하는 형태를 나타내는 일실시예 설명도.
도 10 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 볼륨을 새로 생성시 처리과정을 나타내는 일실시예 흐름도.
도 11 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 논리 볼륨을 인식하여 시스템에 디바이스 파일로 인식시키는 과정을 나타내는 일실시예 흐름도.
도 12 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 이미 존재하는 논리 볼륨에 새로운 디스크 파티션들을 추가하여 크기를 증가시키는 과정을 나타내는 일실시예 흐름도.
도 13 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 볼륨에 디스크 파티션 추가시 발생할 수 있는 데이터 재배치에 대한 일실시예 설명도.
* 도면의 주요 부분에 대한 부호의 설명
30 : 논리 볼륨 관리자 40 : 물리 저장 장치 드라이버
상기 목적을 달성하기 위한 본 발명은, 스토리지 시스템에 적용되는 논리 볼륨 관리 방법에 있어서, 물리적 저장 공간에 대한 논리 볼륨 구성 요청에 따라 디스크 파티션들을 모아 논리 볼륨을 생성하는 제 1 단계; 상기 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함한 메타 데이터를 생성하여 상기 논리 볼륨에 참여하는 상기 디스크 파티션에 저장하는 제 2 단계; 상기 논리 볼륨을 구성하는 상기 디스크 파티션에 대한 변경 요청을 받아 상기 논리 볼륨의 크기를 동적으로 변경하고 상기 논리 볼륨에 대한 변경시에 필요한 상기 메타 데이터의 변경을 수행하는 제 3 단계; 및 상기 논리 볼륨에 대한 논리 주소를 전달받아 논리 주소에 매칭되는 물리 주소의 정보를 기록하고 있는 상기 메타 데이터의 매핑 정보를 통해 해당하는 물리 주소를 파악하여 반환하는 제 4 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, 프로세서를 구비한 스토리지 시스템에, 물리적 저장 공간에 대한 논리 볼륨 구성 요청에 따라 디스크 파티션들을 모아 논리 볼륨을 생성하는 제 1 기능; 상기 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함한 메타 데이터를 생성하여 상기 논리 볼륨에 참여하는 상기 디스크 파티션에 저장하는 제 2 기능; 상기 논리 볼륨을 구성하는 상기 디스크 파티션에 대한 변경 요청을 받아 상기 논리 볼륨의 크기를 동적으로 변경하고 상기 논리 볼륨에 대한 변경시에 필요한 상기 메타 데이터의 변경을 수행하는 제 3 기능; 및 상기 논리 볼륨에 대한 논리 주소를 전달받아 논리 주소에 매칭되는 물리 주소의 정보를 기록하고 있는 상기 메타 데이터의 매핑 정보를 통해 해당하는 물리 주소를 파악하여 반환하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한, 본 발명은, 프로세서를 구비한 스토리지 시스템에, 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함하는 메타 데이터가 놓이는 위치의 디스크 파티션에 해당하는 논리 볼륨 정보, 상기 디스크 파티션 식별 정보, 실제 데이터 시작 정보, 상기 논리 볼륨에서 정의된 상기 디스크 파티션의 익스텐트 사이즈 정보, 미러 여부 정보를 포함하는 디스크 파티션 테이블; 해당 논리 볼륨을 구성하는 모든 디스크 파티션에 중복 저장되어 상기 논리 볼륨에 대하여 논리 볼륨 식별 정보, 논리 볼륨 이름 정보, 상기 논리 볼륨에서의 익스텐트 사이즈 정보, 상기 논리 볼륨의 구성 형식을 나타내는 레이드(RAID) 레벨 정보 및 상기 논리 볼륨을 구성하는 디스크 파티션의 개수 정보를 포함하는 논리 볼륨 테이블; 상기 메타 데이터가 놓이는 디스크 파티션의 국소 에러를 대비하여 상기 디스크 파티션내에 이중화되어 저장되며, 상기 디스크 파티션내의 각 익스텐트 당 한 비트를 사용하여 상기 익스텐트의 사용 유무를 나타내는 익스텐트 할당 테이블;및 논리 볼륨의 연속적인 논리 주소 공간에 대하여 논리 주소를 물리 주소로 매핑시킬 수 있도록 각 익스텐트 당 해당하는 상기 디스크 파티션 식별 정보와 익스텐트 번호의 쌍으로 구성되는 매핑 테이블을 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명은 기존 레이드 시스템의 문제점을 해결하기 위해 파일 시스템이나 데이터베이스 또는 일반적인 데이터 관리 시스템에서 사용하는 논리 주소를 해당 논리 주소에 대응되는 실제 물리적 디스크 드라이브에 대한 물리 주소로 매핑하는데 있어서 그 매핑을 매핑 함수 등에 의해 고정시키지 않고 매핑 테이블을 별도로 유지하는 것이다.
이는 매핑에 유연성을 제공하여 시스템 운영중에 동적으로 볼륨의 크기를 증가 또는 감소하는 것을 효과적으로 지원할 수 있게 되며, 기존 볼륨의 레이드 레벨을 새로이 추가되는 저장공간에도 적용할 수 있도록 하는 기법이다.
또한, 논리 볼륨 관리를 위해 필요한 메타 데이터의 양을 최소화하여 시스템 운영중 발생하는 메타 데이터의 변경을 효율적으로 처리하게 하고, 최소의 메타 데이터를 바탕으로 메모리를 충분히 활용할 수 있다.
본 발명은, 시스템 메타 데이터(system metadata)에 대해 최소 공간을 사용하여 논리 볼륨을 관리하는 것이다. 또한, 본 발명은, 최소 프로세싱 오버헤드로 메타 데이터를 변경하는 것이다.
또한, 본 발명은 간단하게 메타 데이터를 변경할 수 있도록 한다. 그리고, 본 발명은 시스템에 해로운 성능상의 비용을 요구하지 않고 대규모 스토리지를 관리할 수 있도록 한다. 또한, 본 발명은 시스템 운영중에 사용자의 요구에 따라 온라인 리사이징을 포함한 다양한 온라인 기능을 제공한다.
또한, 본 발명은 관리되고 있는 물리적 디스크 중 어느 하나가 에러를 유발해도 다른 디스크의 정보를 서비스할 수 있도록 하는데, 이것은 일반 정보뿐만 아니라 관리 정보도 포함한다. 또한, 장치중 일부가 에러에 의해 이용이 불가능할 때 이를 탐지하고 정보 요구자에게 에러를 알려 준다.
즉, 본 발명은, 논리 볼륨 관리자에 있어서 상위 모듈에서 사용하는 논리 주소와 이에 대응되는 물리적인 디스크 장치에 대한 물리 주소 사이의 매핑을 상황에 따라 변경할 수 있는 동적 매핑 방법을 제시한다. 또한, 이러한 매핑 테이블을 포함하여 볼륨 관리를 위해 요구되는 여러 메타 데이터의 양을 최소화하고, 이들에 대한 변경 요구를 최소화함으로써 저장 공간을 사용하면서 발생하는 크기 변경 요구를 포함한 다양한 온라인 관리 기능을 최소한의 비용으로 지원할 수 있게 한다. 또한, 시스템 운영중 메모리내에 관리해야 하는 메타 데이터의 양을 최소화하여 매우 방대한 대규모 스토리지 시스템을 위해서 동작 가능하도록 한다.
여기에 덧붙여 논리적으로 함께 관리되고 있는 물리적 디스크 장치중 하나가 정상적으로 동작하지 않는 상황에서도 다른 물리 디스크 장치에 대한 요청은 계속 서비스될 수 있도록 한다.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1 은 본 발명이 적용되는 컴퓨터 시스템의 구성예시도이다.
도 1 에서는 본 발명에 따르는 논리 볼륨 관리자와 물리적 저장 장치, 상위 레벨 서비스 사이의 인터페이스 관계를 나타내고 있다.
본 발명이 적용되는 환경은 통상적인 컴퓨터와 다수의 디스크 드라이브 장치와 이들을 연결하는 라인으로 구성된다. 컴퓨터와 디스크 드라이브 장치간의 연결은 제한이 없다. 다만, 컴퓨터는 이러한 디스크 드라이브 장치를 직접 구동시킬 수 있도록 연결되어 있거나, 디스크 드라이브 장치들로 이루어진 네트워크에 연결되어 있을 수 있다.
도 1을 보면, 컴퓨터는 운영체제내에 이러한 디스크 드라이브 장치들을 구동할 수 있는 디바이스 드라이버(물리 저장 장치 드라이버(Physical Storage Device Drivers), 40)를 구비하고 있다.
본 발명에서 다루고 있는 논리 볼륨 관리자(Logical Volume Manager, 30)는 다양한 디바이스 드라이버(40) 위에서 디바이스 드라이버의 서비스를 사용하고 컴퓨터의 운영체제내에 속한 중간 레벨의 가상 디바이스 드라이버이다.
파일 시스템이나 데이터베이스 또는 전형적인 데이터 관리자(File Systems Data Managers, 10)들은 논리 볼륨 관리자(30)가 제공하는 논리 볼륨을 대상으로 작업을 수행하게 된다. 또한, 논리 볼륨 관리자에서 제공하는 기능을 사용하여 논리 볼륨에 대한 관리 작업을 수행하는 툴(Admin GUI Command Line, 20)들이 제공된다.
도 2 는 본 발명에 따른 논리 볼륨 관리 방법을 통해 구성될 수 있는 논리볼륨의 일예시도이다.
도 2에서는 본 발명에 따른 논리 볼륨 관리자에 의해 8개의 디스크 드라이브(51 ~ 58)가 있는 상황에서 가능한 논리 볼륨들을 나타내고 있다. 디스크 1, 2, 3, 4는 각각 4개의 파티션으로 나뉘어 있고, 디스크 5, 6, 7, 8은 각각 1개의 파티션으로 되어있다. 이러한 파티션들은 일반적으로 운영체제에 의해 제공되는 툴들에 의해 생성되게 된다. 예를 들어, "FDISK"와 같은 툴이 있다.
볼륨 1(61)은 디스크 1, 2, 3, 4의 첫 번째 파티션들로 구성되고, 이들은 레이드 레벨 0인 스트라이핑 구성을 가진다.
볼륨 2(62)는 디스크 1, 2, 3, 4의 두 번째 파티션들로 구성되고, 연결형(concatenation) 구성을 가진다.
볼륨 3(63)은 디스크 1, 2, 3, 4의 세 번째 파티션들로 구성되고, 레이드 레벨 5(RAID-5) 구성을 가진다.
마지막으로 볼륨 4(64)는 디스크 1, 2, 3, 4의 네 번째 파티션들과 디스크 5, 6, 7, 8의 파티션들로 구성되며, 레이드 레벨 0+1("RAID-0"+"RAID-1")인 스트라이핑과 미러링이 결합된 구성을 가진다.
본 발명에서 제시하는 스토리지의 3가지 추상화는 다음과 같다.
첫번째 추상화는 디스크 파티션(Disk Partition) 또는 물리 파티션(Physical Partition)이다. 앞에서 언급했듯이 디스크 파티션은 운영체제에서 통상적으로 제공되는 툴에 의해 생성된다.
디스크 파티션은 논리 볼륨(Logical Volume)의 최소 구성 단위이다. 즉, 하나 이상의 디스크 파티션이 모여 하나의 논리 볼륨을 형성하는 것이다. 논리 볼륨의 크기 변경 또한 디스크 파티션 단위로 행해지게 된다.
두번째 추상화는 논리 볼륨(Logical Volume)이다. 논리 볼륨은 확장 가능한 디스크 파티션들의 집합으로서 이름이 붙여지며, 일련의 연속적인 주소 공간을 이루게 된다. 논리 볼륨의 크기는 시스템 운영중에 변경 가능하다.
세번째 추상화는 익스텐트(Extent)이다. 익스텐트는 동일 사이즈를 갖는 연속적인 공간이다. 또한, 정보의 저장을 위해 할당될 수 있는 디스크 공간의 최소 단위이다. 익스텐트의 크기는 하나의 논리 볼륨에 대해 동일하며, 논리 볼륨 생성시에 결정되게 된다. 그 크기는 2의 지수승이 되어야 한다.
디스크 파티션이 운영체제에서 제공하는 툴에 의해 생성된 후, 논리 볼륨이 몇 개의 디스크 파티션을 대상으로 정의된다. 이때, 볼륨 구성을 위해 필요한 정보가 함께 제공되게 된다.
그러한 정보들은 익스텐트의 크기, 레이드 레벨 등을 포함한다. 이러한 정의에 따라, 본 발명에 따른 논리 볼륨 관리자는 해당 디스크 파티션들 위에 볼륨 구성에 대한 메타 데이터들을 작성하여 기록하게 된다.
도 3 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블의 일실시예 구조도이다. 이는 논리 볼륨을 구성하는 각 디스크 파티션에 저장되는 메타 데이터 테이블을 나타내는 도면이다. 즉, 하나의 논리 볼륨을 구성하는 각 디스크 파티션에 저장 유지되는 메타 데이터 테이블(70)을 보여주고 있다.
메타 데이터 테이블(70)에 나타날 수 있는 메타 데이터로는 물리 파티션맵{PP(Physical Partition) Map, 71}, 논리 볼륨 맵{LV(Logical Volume) Map, 72}, 미러 라이트 일관성 맵{MWC(Mirror Write Consistency) Map, 73}, 익스텐트 할당 맵(Extent Allocation Map, 74) 및 매핑 맵(Mapping Map, 75)을 포함한다.
메타 데이터 테이블(70)의 내용 중 전체 볼륨에 대하여 유지되어야 하는 메타 데이터는 각 디스크 파티션에 중복 저장되게 된다. 이러한 메타 데이터는 논리 볼륨 맵{LV(Logical Volume) Map, 72}이다.
나머지 메타 데이터는 각 로컬 디스크 파티션에 대한 데이터로서, 해당 디스크 파티션에 하나만 유지된다.
예외로, 미러 라이트 일관성 맵{MWC(Mirror Write Consistency) Map, 73}은 논리 볼륨이 미러(Mirror) 형식으로 구성된 경우 유지되며, 대응되는 각 미러에 중복 저장된다. 예를 들어, 디스크 파티션 1과 디스크 파티션 2가 서로 미러된 상태라면 디스크 파티션 1의 MWC Map(73)은 디스크 파티션 2의 MWC Map(73)으로 중복 저장되게 되는 것이다. 이는 미러 형식으로 구성된 디스크 파티션 중 일부가 에러로 인해 이용가능하지 않은 경우에도 정확한 값을 유지하기 위해서이다.
또한, 매핑 맵(Mapping Map, 75)은 논리 볼륨을 구성하는 디스크 파티션 중 순서상 자신의 바로 뒤에 오는 디스크 파티션에 자신의 내용을 중복 저장한다. 이 또한, 임의의 디스크 파티션이 에러에 의해 이용할 수 없는 경우를 대비하기 위함이다.
다음으로, 메타 데이터 테이블을 이루는 각 메타 데이터에 대해 상세히 설명하는데, 물리 파티션 맵(PP Map, 71)과 논리 볼륨 맵(LV Map, 72)에 대해서는 도 4와 도 5를 참조하여 설명하고, 매핑 맵(Mapping Map, 75)에 대해서는 도 6 내지 도 9 를 참조하여 설명한다.
도 3의 미러 라이트 일관성 맵(MWC Map, 73)은 미러 데이터가 두 개인 경우, 하나의 익스텐트(Extent)당 3비트로 구성된다. 즉, 처음 3비트는 첫 익스텐트(Extent)에 대한 내용이다. 이중 첫 번째 비트는 원본 데이터의 유효성을, 두 번째 비트는 첫 번째 미러 데이터의 유효성을, 세 번째 비트는 두 번째 미러 데이터의 유효성을 나타낸다.
예를 들어, 디스크 파티션 1의 첫 번째 미러가 디스크 파티션 2이고, 두 번째 미러가 디스크 파티션 3인 경우를 보자. 이때, MWC Map(73)의 첫 비트는 디스크 파티션 1의 첫 익스텐트(Extent)의 유효성을, 두 번째 비트는 디스크 파티션 2의 첫 익스텐트(Extent)의 유효성을, 세 번째 비트는 디스크 파티션 3의 첫 익스텐트(Extent)의 유효성을 나타낸다. 네 번째 비트는 다시 디스크 파티션 1의 두 번째 익스텐트(Extent)에 대한 유효성을 표현하게 된다.
이 MWC Map(73)은 디스크 파티션 1, 2, 3 각각에 중복 저장된다. 이것은 디스크 파티션 1, 2, 3중 어느 것에 에러가 발생한 경우라도 정확히 그 유효성을 검증할 수 있도록 하기 위함이다.
도 3의 익스텐트 할당 맵(Extent Allocation Map, 74)은 이 디스크 파티션 내의 각 익스텐트(Extent)당 한 비트를 사용하여 해당 익스텐트(Extent)의 사용 유무를 표현하게 된다.
익스텐트 할당 맵(Extent Allocation Map, 74)은 해당 디스크 파티션의 익스텐트 할당 맵(Extent Allocation Map)에 대한 국소 에러를 대비하기 위하여 해당 디스크 파티션내에 이중화되어 저장된다.
도 4 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 물리 파티션 맵(PP Map)의 일실시예 구조도이다.
도 4에서는 상기 도 3에 도시된 PP(Physical Partition) Map(71)을 자세히 보여주고 있다. 물리 파티션 맵(PP Map, 71)은 해당 디스크 파티션에 대한 내용을 담고있다.
도 4에 도시된 바와 같이, 물리 파티션 맵(PP Map, 71)의 구조는 16바이트 헤더(81), 이 디스크 파티션이 참여하고 있는 논리 볼륨에 대한 볼륨_아이디(VOL_ID, 82), 자신이 속한 논리 볼륨에서 자신을 유일하게 식별할 수 있는 물리 파티션_아이디(PP_ID, 83), 이 디스크 파티션에서 메타 데이터 테이블을 제외하고 실제 데이터가 저장되기 시작하는 위치를 나타내는 데이터 스타트(Data Start, 84), 이 파티션이 속한 논리 볼륨에서 정한 익스텐트 사이즈(Extent Size, 85), 이 파티션이 속한 논리 볼륨이 미러 형식을 가진다면 자신이 미러 형식에서 수행하는 역할을 나타내는 미러 아이디(Mirror ID, 86)로 구성된다.
미러 아이디(Mirror ID)의 값은 자신이 원래 데이터를 가지고 있다면 0, 첫 번째 미러 데이터를 가지고 있다면 1, 두 번째 미러 데이터를 가지면 2를 갖게 된다. 즉, 물리 파티션_아이디(PP_ID)는 논리 볼륨상에서 해당 PP가 위치하는 순서를 나타내고 미러 아이디(Mirror ID)는 이 순서가 동일할 때 각각의 역할을 나타내는 것이다.
PP Map은 디스크 파티션 자신에 대한 내용을 관리하기 때문에 논리 볼륨에 속한 모든 디스크 파티션에 중복되어 저장되지 않고, 오직 해당 디스크 파티션에만 유지된다.
도 5 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 논리 볼륨 맵(LV Map)의 일실시예 구조도이다.
도 5에서는 LV(Logical Volume) Map(72)을 나타내고 있다. 이 내용은 하나의 논리 볼륨에 대한 정보를 유지하고 있으며, 해당 논리 볼륨을 구성하는 모든 디스크 파티션에 중복 저장되게 된다.
도 5에 도시된 바와 같이, 논리 볼륨 맵(LV Map, 72)의 구성은 16 바이트 헤더(91), 논리 볼륨을 유일하게 구별하기 위해 논리 볼륨 관리자에 의해 생성되는 볼륨_아이디(VOL_ID, 92), 논리 볼륨을 생성시 부여되는 볼륨_이름(VOL_NAME, 93), 해당 볼륨에서의 최소 공간 할당 단위인 익스텐트 사이즈(Extent Size, 95), 해당 볼륨내에 존재하는 모든 익스텐트(Extent) 수(Total # Extents, 96), 해당 볼륨이 스트라이핑 형식인 경우 스트라이프 사이즈(stripe size, 97), 해당 볼륨의 구성 형식을 나타내는 레이드 레벨(RAID Level, 98), 해당 논리 볼륨을 구성하고 있는 디스크 파티션의 개수(99)로 구성된다. 여기서, 익스텐트 사이즈(Extent Size, 95)는 2의 지수승이 되어야 한다.
도 4의 물리 파티션 맵(PP Map)과 도 5의 논리 볼륨 맵(LV Map)은 하나로 합쳐져서 공통적으로 저장되는 내용을 하나로 할 수 있다. 다만, 본 발명의 일실시예에서는 이해를 돕고자 논리적으로 두 개를 분할한 것으로서, 그것을 하나로 합하는방식이 구현을 위하여 선호될 수 있다.
도 6 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 매핑 맵의 일실시예 구조도이며, 도 7 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 메타 데이터 테이블에 속하는 매핑 맵의 일실시예 논리 구조도이다.
도 6에서는 매핑 맵(Mapping Map, 75)의 구조를 나타내고 있다. 그 구조는 헤더(Header, 101), 논리 볼륨의 연속적인 논리 주소 공간에 대하여 각 익스텐트(Extent)당 1개씩의 {PP ID(102), Extent Num(103)}쌍으로 구성된다.
매핑 맵(Mapping Map)의 크기는 해당 디스크 파티션의 크기와 익스텐트 사이즈(Extent Size)에 따라 결정된다.
하나의 논리 볼륨을 구성하고 있는 모든 디스크 파티션의 매핑 맵(Mapping Map)을 모아 논리적으로 보면 도 7의 논리적 구조(200)를 갖는다. 상위 모듈에서 사용하는 논리 주소는 볼륨 전체의 이용 가능한 저장 공간의 크기 만큼에 해당하는 연속적인 주소 공간이다.
예를 들어, 논리 볼륨이 스트라이핑 구조로 되어 있고 디스크 파티션 3개로 이루어져 있다면, 도 7의 논리적 매핑 테이블의 각 엔트리는 각 디스크 파티션을 하나씩 번갈아 가면서 사용하도록 구성될 것이다.
즉, 인덱스 0에는 첫 번째 디스크 파티션내에 존재하는 익스텐트에 대한 주소가 기록되고, 인덱스 1에는 두 번째 디스크 파티션내에 존재하는 익스텐트에 대한 주소가 기록되고, 인덱스 2에는 세 번째 디스크 파티션내에 존재하는 익스텐트에 대한 주소가 기록되며, 인덱스 3에는 다시 첫 번째 디스크 파티션내의 익스텐트에 대한 주소가 기록될 것이다.
이 구조를 해당 논리 볼륨을 구성하고 있는 각 디스크 파티션의 수만큼 분할하여 각 조각을 각각의 디스크 파티션에 저장하는 것이다. 각각의 디스크 파티션에 저장될 조각을 분할하는 방식으로는 여러 가지 방식이 이용될 수 있다. 여기서는 가장 쉽게 이해할 수 있도록 순서대로 분할하는 방식을 예로 설명한다.
논리 볼륨의 전체 익스텐트(Extent) 수가 300개이고, 논리 볼륨을 구성하는 디스크 파티션의 수가 3개이며, 그 크기는 서로 같다고 가정하자. 이러한 경우, 도 7의 논리 주소 인덱스(Logical Address Index, 201)는 0~299까지의 범위를 갖게 된다. 이때, 디스크 파티션 1에 저장되는 매핑 맵(Mapping Map)은 논리 주소 인덱스(Logical Address Index) 0 ~ 99까지의 범위에 해당한다. 차례로 디스크 파티션 2는 100~199의 인덱스(Index) 범위를, 디스크 파티션 3은 200~299의 인덱스(Index) 범위를 저장하게 된다.
도 8 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 매핑 맵을 통해 논리 주소와 물리 주소의 매핑 관계를 나타내는 일실시예 설명도이다.
즉, 도 8 은 논리 볼륨에 대한 상대 주소인 상대 블록 주소(RBA : Relative Block Address)를 매핑 맵(Mapping Map)을 이용하여 실제 디스크 파티션내의 주소인 물리 주소로 변환하는 과정을 나타내는 도면이다. 다시 말해, 도 8은 파일 시스템이나 데이터 관리 시스템에서 사용하는 논리 주소인 RBA를 이용하여 해당 데이터의 물리적 위치를 계산하는 법을 보여준다.
RBA(130) 값을 익스텐트 사이즈(Extent Size)로 나눈 몫은 논리 주소 인덱스(Logical Address Index, 200)의 값을 나타내고, 그 값에 의해 매핑 맵(Mapping Map)에서의 위치가 결정된다.
매핑 맵(Mapping Map)은 해당 익스텐트(Extent)의 실제 위치를 물리 파티션_아이디(PP_ID, 102)와 익스텐트 번호(Extent Num, 103)로 표현하고 있다. 물리 파티션_아이디(PP_ID)는 해당 익스텐트(Extent)가 존재하는 디스크 파티션을 식별할 수 있도록 하고, {(Extent Num x Extent Size) + (RBA mod Extent Size)}는 해당 디스크 파티션에서의 데이터 블록 위치를 나타내게 된다.
도 9 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 매핑 맵을 분할하여 각 디스크 파티션에 저장하는 형태를 나타내는 일실시예 설명도이다.
도 9에서는 논리 볼륨에 참여하고 있는 여러 디스크 파티션(140,150,160,170)에 매핑 맵(Mapping Map)을 분할하여 저장하고 있는 것을 나타내고 있다. 이러한 매핑 정보는 논리 볼륨에 대한 중요한 정보이므로, 이 정보가 저장된 물리적 영역에서의 에러에 대비하여야 한다. 이를 위해 매핑 맵(Mapping Map)의 내용은 이중화될 필요가 있다.
매핑 맵(Mapping Map)의 내용은 해당 디스크 파티션에 대해 종속적이지 않다. 즉, 하나의 디스크 파티션에 저장된 매핑 맵(Mapping Map)의 내용은 해당 디스크 파티션에 대한 정보만을 저장하고 있는 것이 아니라 여러 디스크 파티션에 대한 내용으로 구성되게 된다.
따라서, 이중화가 동일 파티션내에서 이루어지는 것은 하나의 디스크 파티션에러시 복구를 위해 이용될 수 없다. 이를 해결하기 위해, 본 발명에서는 하나의 디스크 파티션에 저장되는 매핑 맵(Mapping Map)의 내용(141, 151, 161, 171)을 바로 다음 디스크 파티션의 이중화 영역(152, 162, 172, 142)에 중복 저장한다. 이것은 하나의 디스크 파티션 에러시에도 바로 다음 디스크 파티션으로부터 정보를 액세스 할 수 있게 되어 에러가 발생한 디스크 파티션을 제외한 다른 디스크 파티션에 저장된 데이터에의 액세스 요구에 서비스를 제공할 수 있게 한다.
도 10 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 볼륨을 새로 생성시 처리과정을 나타내는 일실시예 흐름도이다. 이는 논리 볼륨 관리자에 의해 수행되는 새로운 볼륨의 생성 절차를 나타낸다.
그 흐름을 살펴보면, 우선 시스템 관리자가 파라미터 파일(Parameter file)을 가지고 볼륨 생성을 요청하게 된다(210). 그러면, 논리 볼륨 관리자는 파라미터 파일(Parameter file)을 읽고(211), 그 내용에 따라 새로운 논리 볼륨을 구성하는 각 디스크 파티션에 대해 메타 데이터 테이블을 초기화하고 그 내용을 디스크 파티션에 기록한다(212). 이렇게 하여 새로운 볼륨을 생성하게 되는 것이다.
도 11 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 논리 볼륨을 인식하여 시스템에 디바이스 파일로 인식시키는 과정을 나타내는 일실시예 흐름도이다.
즉, 도 11에서는 볼륨의 생성후나 시스템 부팅시 또는 관리자의 요구시 논리 볼륨을 인식하여 시스템에 디바이스 파일로 인식시키는 과정을 나타낸다. 다시 말하면, 위에서 설명한 논리 볼륨 생성후, 또는 이미 생성된 논리 볼륨을 시스템에 인식시키기 위해 시스템 부팅시나 시스템 관리자의 요구시 수행되는 논리 볼륨 인식을 위한 흐름도이다.
첫 번째로, 시스템에 인식된 디스크 파티션 중 하나를 선택하고 그것을 커런트(current)에 세팅한다(220). 여기서, 커런트(current)는 변수명에 해당한다.
두 번째로, 커런트(current)로 세팅된 디스크 파티션내에 저장된 물리 파티션 맵(PP Map, 71), 논리 볼륨 맵(LV Map, 72)을 읽고, 여기에 기인하여 LV(Logical Volume), PP(Physical Partition)에 대해 메모리상에 필요한 자료구조를 생성한다(221).
그렇지만, 이때의 디스크 파티션이 논리 볼륨 관리자가 관리하는 파티션이 아니면 메모리상에 필요한 자료구조를 생성하는 과정을 생략하고, 다음 과정으로 넘어간다.
세 번째는, 시스템내에 존재하는 다른 디스크 파티션으로 커런트(current)를 이동하여 세팅한다(222). 그리고, 네 번째로, 메모리상에 필요한 자료구조를 생성하는 과정이 논리 볼륨 관리자가 관리하는 모든 디스크 파티션에 대해 완료되었는지를 판단한다(223).
판단 결과, 완료되었다면 시스템에 인식된 논리 볼륨들을 위한 디바이스 파일을 생성하고(224), 완료되지 않았다면 커런트(current)로 세팅된 디스크 파티션내에 저장된 PP Map(71), LV Map(72)을 읽고, 여기에 기인하여 메모리상에 필요한 자료구조를 생성하는 두 번째 과정(221)부터 반복 수행한다.
도 12 는 본 발명에 따른 논리 볼륨 관리 방법에 있어서 이미 존재하는 논리 볼륨에 새로운 디스크 파티션들을 추가하여 크기를 증가시키는 과정을 나타내는 일실시예 흐름도이다.
도 12에서는 이미 존재하는 논리 볼륨의 크기를 증가시키기 위해 하나 이상의 새로운 디스크 파티션을 기존 볼륨에 추가하는 과정을 나타낸다.
시스템 관리자가 하나 이상의 디스크 파티션을 추가할 것을 요청하면(230), 논리 볼륨 관리자는 새로운 파티션에 저장될 메타 데이터 테이블을 만들고 그것을 해당 파티션에 기록함으로써 새로운 파티션들을 초기화한다(231).
다음으로, 기존에 이미 논리 볼륨에 참여하고 있었던 디스크 파티션들의 메타 데이터 테이블을 변경하고, 이를 디스크에 반영한다(232). 그리고, 새로운 디스크 파티션들의 추가로 인해 데이터의 이동이 필요한지를 판단한다(233). 데이터의 이동 필요성은 아래에 설명할 도 13에 표현되어 있다.
데이터의 이동 필요성을 판단하는 과정(233)에서, 데이터 이동이 필요하다고 결정이 되면 기존의 데이터를 새로운 디스크를 포함한 볼륨 전체에 레이드 레벨이 적용되도록 이동시키는 과정(234)을 수행하게 된다. 데이터 이동이 완료되거나 데이터 이동 필요성이 없으면 전체 작업을 완료한다. 이 작업에서 해당 논리 볼륨에 대한 일반적인 액세스는 전혀 방해를 받지 않고 계속해서 이 작업과 동시에 진행될 수 있다. 이는 매핑 맵(Mapping Map)을 별도로 관리함으로써 모든 데이터의 이동 상황을 추적 유지하므로 데이터의 이동중에도 일반적인 데이터 액세스에 대해 운영을 계속할 수 있게 되는 것이다.
도 13 은 본 발명에 따른 논리 볼륨 관리 방법에 있어서 볼륨에 디스크 파티션 추가시 발생할 수 있는 데이터 재배치에 대한 일실시예 설명도이다.
도 13에서는 기존에 레이드 레벨 0(RAID-0)인 스트라이핑(striping) 구조의 논리 볼륨이 있는 상황에서 볼륨의 크기를 증가시키기 위해 새로운 디스크 파티션을 추가시 발생하는 데이터의 재배치를 보여준다.
도 13은 이미 3개의 디스크 파티션(111, 112, 113)으로 구성되고 레이드 레벨 0(RAID-0)인 스트라이핑 구성을 가진 논리 볼륨(110)에 하나의 디스크 파티션(124)이 추가된 논리 볼륨(120)을 나타내고 있다.
볼륨의 구성이 스트라이핑이므로 기존에 저장되어 있던 데이터들은 스트라이핑 구성에 맞도록 새로운 디스크 파티션(124)을 포함한 4개의 디스크 파티션에 재분배되어야 한다. 즉, 스트라이핑이 포함된 모든 레이드 레벨에서는 스트라이핑의 효과가 새로이 추가된 디스크 파티션에도 반영되도록 해야 할 필요가 있게 된다. 이러한 데이터의 이동은 완료후 스트라이핑의 효과를 전체적으로 확대할 수 있어 전체 입출력(I/O : Input/Output) 성능을 확대할 수 있다.
본 발명에서는 레이드 레벨을 새로운 디스크 파티션을 포함한 전체 디스크 파티션에 걸쳐 확대하는 방식과, 이미 존재하는 데이터는 기존의 디스크 파티션들 내에서만 레이드 레벨에 맞게 배치되고 새로운 디스크 파티션이 추가된 이후의 데이터에 대해서만 전체 디스크 파티션에 대해 레이드 레벨을 적용하는 방식의 두 가지를 선택적으로 사용할 수 있다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.
상기한 바와 같은 본 발명은, 매핑 테이블을 이용함으로써 논리 볼륨 관리자 상위에서 사용하는 논리적인 주소 공간과 실제 물리적인 디스크 파티션에 대한 물리적인 주소공간을 독립적으로 운영할 수 있게 하고, 그 매핑을 계속 추적 유지함으로써 매핑 관계를 동적으로 재구성할 수 있게 하는 효과가 있다.
또한, 본 발명은, 논리 주소와 물리 주소의 매핑 관계를 동적으로 재구성할 수 있어, 논리 볼륨을 사용중이라도 언제든 요구에 따라 새로운 디스크 파티션을 논리 볼륨에 추가하고 볼륨 구성에 부합되도록 기존에 볼륨에 저장되어있던 데이터를 새로운 디스크 파티션을 포함하도록 재배치함으로써 시스템의 운영중에 동적으로 논리 볼륨의 크기를 증가시킬 수 있게 하는 효과가 있다.
또한, 본 발명은, 논리 볼륨을 관리함에 있어 특정 디스크 파티션으로의 액세스 요구가 집중되는 현상이 발생하면 해당 디스크 파티션내의 데이터를 다른 한가한 디스크 파티션으로 이동시킬 수 있게 하여 논리 볼륨의 성능 튜닝을 지원할 수 있는 효과가 있다.
또한, 본 발명은, 매핑 테이블 내용을 여러 디스크 파티션에 분할 저장함으로써 매핑 정보의 액세스시 성능을 향상시키며 이들 내용을 서로 이웃하는 디스크 파티션에 중복 저장함으로써 하나의 디스크 파티션에서 에러가 발생하더라도 중단되지 않고 지속적으로 서비스를 제공할 수 있도록 하는 효과가 있다.
또한, 본 발명은, 디스크 파티션을 단위로 하여 논리 볼륨을 구성하도록 하여 디스크상에 저장 유지되는 메타 데이터의 양을 최소화하고 이들에 대한 변경시 최소한의 양만이 변경되도록 함으로써 전체 시스템 성능을 향상시키는 효과가 있다.
또한, 본 발명은, 시스템 운영중 메모리상에서 유지되어야 하는 메타 데이터의 양을 혁신적으로 줄임으로써, 방대한 규모의 스토리지 시스템 구성에서 작동 가능하도록 하였으며, 시스템 부팅 등의 초기화 작업 시간을 최소화하는 효과가 있다.
Claims (11)
- 스토리지 시스템에 적용되는 논리 볼륨 관리 방법에 있어서,물리적 저장 공간에 대한 논리 볼륨 구성 요청에 따라 디스크 파티션들을 모아 논리 볼륨을 생성하는 제 1 단계;상기 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함한 메타 데이터를 생성하여 상기 논리 볼륨에 참여하는 상기 디스크 파티션에 저장하는 제 2 단계;상기 논리 볼륨을 구성하는 상기 디스크 파티션에 대한 변경 요청을 받아 상기 논리 볼륨의 크기를 동적으로 변경하고 상기 논리 볼륨에 대한 변경시에 필요한 상기 메타 데이터의 변경을 수행하는 제 3 단계; 및상기 논리 볼륨에 대한 논리 주소를 전달받아 논리 주소에 매칭되는 물리 주소의 정보를 기록하고 있는 상기 메타 데이터의 매핑 정보를 통해 해당하는 물리 주소를 파악하여 반환하는 제 4 단계를 포함하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 1 항에 있어서,상기 메타 데이터는,저장되는 위치에 해당하는 디스크 파티션에 대한 정보를 담고 있는 디스크 파티션 테이블과, 논리 볼륨을 구성하는 모든 디스크 파티션에 중복으로 상기 논리 볼륨에 대한 정보를 유지하는 논리 볼륨 테이블;상기 디스크 파티션내에서 각 익스텐트의 사용 유무를 나타내기 위한 익스텐트 할당 테이블; 및상기 논리 볼륨 전체의 이용 가능한 저장 공간의 크기 만큼에 해당하는 연속적인 주소 공간인 논리 주소 공간에 대하여 물리 주소 공간을 파악할 수 있도록 매핑 정보를 유지하는 매핑 테이블을 포함하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 2 항에 있어서,상기 메타 데이터는,미러 형식으로 구성되는 디스크 파티션에 유지되며, 대응되는 각 미러에 중복 저장되어 각 미러에 해당하는 다수의 디스크 파티션에 위치하는 데이터의 유효성 여부를 나타내는 미러 데이터 테이블을 더 포함하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 1 항에 있어서,상기 메타 데이터는,상기 메타 데이터가 놓이는 위치의 디스크 파티션에 해당하는 논리 볼륨 정보, 상기 디스크 파티션 식별 정보, 실제 데이터 시작 정보, 상기 논리 볼륨에서 정의된 상기 디스크 파티션의 익스텐트 사이즈 정보, 미러 여부 정보를 포함하는 디스크 파티션 테이블;해당 논리 볼륨을 구성하는 모든 디스크 파티션에 중복 저장되어 상기 논리 볼륨에 대하여 논리 볼륨 식별 정보, 논리 볼륨 이름 정보, 상기 논리 볼륨에서의 익스텐트 사이즈 정보, 상기 논리 볼륨의 구성 형식을 나타내는 레이드(RAID : Redundant Array of independent disks) 레벨 정보 및 상기 논리 볼륨을 구성하는 디스크 파티션의 개수 정보를 포함하는 논리 볼륨 테이블;상기 디스크 파티션내의 각 익스텐트 당 한 비트를 사용하여 상기 익스텐트의 사용 유무를 나타내는 익스텐트 할당 테이블; 및논리 볼륨의 연속적인 논리 주소 공간에 대하여 논리 주소를 물리 주소로 매핑시킬 수 있도록 각 익스텐트 당 해당하는 상기 디스크 파티션 식별 정보와 익스텐트 번호의 쌍으로 구성되는 매핑 테이블을 포함하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 4 항에 있어서,상기 익스텐트 할당 테이블은,상기 메타 데이터가 놓이는 디스크 파티션의 국소 에러를 대비하여 상기 디스크 파티션내에 이중화되어 저장하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 4 항에 있어서,상기 매핑 테이블은,임의의 디스크 파티션이 에러에 의해 이용할 수 없는 경우를 대비하여 논리 볼륨을 구성하는 디스크 파티션 중 순서상 자신의 바로 뒤에 오는 디스크 파티션에 자신의 내용을 중복 저장하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 4 항에 있어서,상기 메타 데이터는,원본 데이터나 미러 데이터를 저장하는 디스크 파티션에 위치하여, 하나의 익스텐트 당 상기 원본 데이터와 적어도 하나의 상기 미러 데이터가 존재하는 디스크 파티션의 개수만큼의 비트로 구성되어 해당하는 각 디스크 파티션에서의 해당 익스텐트의 유효성 여부를 나타내기 위한 미러 데이터 테이블을 더 포함하는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 제 2 항 내지 제 7 항 중 어느 한 항에 있어서,상기 매핑 테이블은,상기 논리 볼륨을 구성하는 각 디스크 파티션의 수만큼 분할되어 각 조각이 각각의 디스크 파티션에 저장되는 것을 특징으로 하는 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리 볼륨 관리 방법.
- 프로세서를 구비한 스토리지 시스템에,물리적 저장 공간에 대한 논리 볼륨 구성 요청에 따라 디스크 파티션들을 모아 논리 볼륨을 생성하는 제 1 기능;상기 논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함한 메타 데이터를 생성하여 상기 논리 볼륨에 참여하는 상기 디스크 파티션에 저장하는 제 2 기능;상기 논리 볼륨을 구성하는 상기 디스크 파티션에 대한 변경 요청을 받아 상기 논리 볼륨의 크기를 동적으로 변경하고 상기 논리 볼륨에 대한 변경시에 필요한 상기 메타 데이터의 변경을 수행하는 제 3 기능; 및상기 논리 볼륨에 대한 논리 주소를 전달받아 논리 주소에 매칭되는 물리 주소의 정보를 기록하고 있는 상기 메타 데이터의 매핑 정보를 통해 해당하는 물리 주소를 파악하여 반환하는 제 4 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 프로세서를 구비한 스토리지 시스템에,논리 볼륨 및 상기 논리 볼륨에 참여하고 있는 디스크 파티션들에 대한 정보를 포함하는 메타 데이터가 놓이는 위치의 디스크 파티션에 해당하는 논리 볼륨 정보, 상기 디스크 파티션 식별 정보, 실제 데이터 시작 정보, 상기 논리 볼륨에서 정의된 상기 디스크 파티션의 익스텐트 사이즈 정보, 미러 여부 정보를 포함하는 디스크 파티션 테이블;해당 논리 볼륨을 구성하는 모든 디스크 파티션에 중복 저장되어 상기 논리 볼륨에 대하여 논리 볼륨 식별 정보, 논리 볼륨 이름 정보, 상기 논리 볼륨에서의 익스텐트 사이즈 정보, 상기 논리 볼륨의 구성 형식을 나타내는 레이드(RAID) 레벨 정보 및 상기 논리 볼륨을 구성하는 디스크 파티션의 개수 정보를 포함하는 논리 볼륨 테이블;상기 메타 데이터가 놓이는 디스크 파티션의 국소 에러를 대비하여 상기 디스크 파티션내에 이중화되어 저장되며, 상기 디스크 파티션내의 각 익스텐트 당 한 비트를 사용하여 상기 익스텐트의 사용 유무를 나타내는 익스텐트 할당 테이블; 및논리 볼륨의 연속적인 논리 주소 공간에 대하여 논리 주소를 물리 주소로 매핑시킬 수 있도록 각 익스텐트 당 해당하는 상기 디스크 파티션 식별 정보와 익스텐트 번호의 쌍으로 구성되는 매핑 테이블을 가지는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체.
- 제 10 항에 있어서,상기 매핑 테이블은,상기 논리 볼륨을 구성하는 각 디스크 파티션의 수만큼 분할되어 각 조각이 각각의 디스크 파티션에 저장되는 구조를 가지는 것을 특징으로 하는 데이터가 기록된 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0045621A KR100392382B1 (ko) | 2001-07-27 | 2001-07-27 | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 |
US10/005,604 US6718436B2 (en) | 2001-07-27 | 2001-12-07 | Method for managing logical volume in order to support dynamic online resizing and software raid and to minimize metadata and computer readable medium storing the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0045621A KR100392382B1 (ko) | 2001-07-27 | 2001-07-27 | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030010946A KR20030010946A (ko) | 2003-02-06 |
KR100392382B1 true KR100392382B1 (ko) | 2003-07-23 |
Family
ID=19712650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0045621A KR100392382B1 (ko) | 2001-07-27 | 2001-07-27 | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6718436B2 (ko) |
KR (1) | KR100392382B1 (ko) |
Families Citing this family (149)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405284B1 (en) * | 1998-10-23 | 2002-06-11 | Oracle Corporation | Distributing data across multiple data storage devices in a data storage system |
JP4175788B2 (ja) * | 2001-07-05 | 2008-11-05 | 株式会社日立製作所 | ボリューム制御装置 |
JP2003122508A (ja) * | 2001-10-15 | 2003-04-25 | Hitachi Ltd | ボリューム管理方法及び装置 |
US6959373B2 (en) * | 2001-12-10 | 2005-10-25 | Incipient, Inc. | Dynamic and variable length extents |
RU2326454C2 (ru) * | 2001-12-20 | 2008-06-10 | Конинклейке Филипс Электроникс Н.В. | Размещение файлов в реальном времени |
US7058702B2 (en) * | 2002-01-04 | 2006-06-06 | Hewlett-Packard Development Company, L.P. | Efficient validation of network configuration change commands |
US6978439B2 (en) * | 2002-01-10 | 2005-12-20 | Microsoft Corporation | Cross-platform software development with a software development peripheral |
US6961836B2 (en) * | 2002-08-29 | 2005-11-01 | Lsi Logic Corporation | Method and apparatus for mapping storage partitions of storage elements to host systems |
US6961811B2 (en) * | 2002-08-29 | 2005-11-01 | International Business Machines Corporation | Apparatus and method to maintain information by assigning one or more storage attributes to each of a plurality of logical volumes |
US8005918B2 (en) | 2002-11-12 | 2011-08-23 | Rateze Remote Mgmt. L.L.C. | Data storage devices having IP capable partitions |
US7170890B2 (en) * | 2002-12-16 | 2007-01-30 | Zetera Corporation | Electrical devices with improved communication |
US7649880B2 (en) | 2002-11-12 | 2010-01-19 | Mark Adams | Systems and methods for deriving storage area commands |
CN101448012B (zh) * | 2002-11-12 | 2013-04-24 | 雷特泽遥距管理有限责任公司 | 具有ip能力分区的数据存储设备 |
US6944712B2 (en) * | 2002-12-10 | 2005-09-13 | Lsi Logic Corporation | Method and apparatus for mapping storage partitions of storage elements for host systems |
US8037264B2 (en) | 2003-01-21 | 2011-10-11 | Dell Products, L.P. | Distributed snapshot process |
US7937551B2 (en) * | 2003-01-21 | 2011-05-03 | Dell Products L.P. | Storage systems having differentiated storage pools |
US7447939B1 (en) * | 2003-02-28 | 2008-11-04 | Sun Microsystems, Inc. | Systems and methods for performing quiescence in a storage virtualization environment |
US7111147B1 (en) | 2003-03-21 | 2006-09-19 | Network Appliance, Inc. | Location-independent RAID group virtual block management |
US7133994B2 (en) * | 2003-04-17 | 2006-11-07 | International Business Machines Corporation | Configuration size determination in logically partitioned environment |
JP3824317B2 (ja) * | 2003-06-24 | 2006-09-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバ、コンピュータ装置、データ処理方法及びプログラム |
US20050010722A1 (en) * | 2003-07-11 | 2005-01-13 | Chih-Wei Chen | Multi-volume disk array management method and system |
US20050027938A1 (en) * | 2003-07-29 | 2005-02-03 | Xiotech Corporation | Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system |
US9489150B2 (en) | 2003-08-14 | 2016-11-08 | Dell International L.L.C. | System and method for transferring data between different raid data storage types for current data and replay data |
EP1668486A2 (en) | 2003-08-14 | 2006-06-14 | Compellent Technologies | Virtual disk drive system and method |
US7493534B2 (en) | 2003-08-29 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Memory error ranking |
US20050066076A1 (en) * | 2003-09-18 | 2005-03-24 | International Business Machines Corporation | Method for fast recovery of I/O failure on a file system |
US7191297B2 (en) | 2003-09-30 | 2007-03-13 | International Business Machines Corporation | Method for volume manager to have configurable device type and subtype for application use |
US20050160249A1 (en) * | 2004-01-21 | 2005-07-21 | Hewlett-Packard Development Company, L.P. | Volume type determination for disk volumes managed by a LDM |
US7426625B2 (en) * | 2004-03-31 | 2008-09-16 | International Business Machines Corporation | Data processing system and computer program product for support of system memory addresses with holes |
JP4681247B2 (ja) * | 2004-04-08 | 2011-05-11 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
US20050235283A1 (en) * | 2004-04-15 | 2005-10-20 | Wilson Christopher S | Automatic setup of parameters in networked devices |
US7681007B2 (en) * | 2004-04-15 | 2010-03-16 | Broadcom Corporation | Automatic expansion of hard disk drive capacity in a storage device |
EP1586996B1 (en) * | 2004-04-15 | 2007-09-19 | Broadcom Corporation | Fault tolerant data storage method |
US7500135B2 (en) | 2004-04-15 | 2009-03-03 | Broadcom Corporation | Fault tolerant data storage device |
CN100409198C (zh) * | 2004-04-15 | 2008-08-06 | 美国博通公司 | 容错数据存储设备 |
US20050235063A1 (en) * | 2004-04-15 | 2005-10-20 | Wilson Christopher S | Automatic discovery of a networked device |
US20050231849A1 (en) * | 2004-04-15 | 2005-10-20 | Viresh Rustagi | Graphical user interface for hard disk drive management in a data storage system |
US7395402B2 (en) * | 2004-04-15 | 2008-07-01 | Broadcom Corporation | Method and system of data storage capacity allocation and management using one or more data storage drives |
US7484065B2 (en) * | 2004-04-20 | 2009-01-27 | Hewlett-Packard Development Company, L.P. | Selective memory allocation |
US7698310B2 (en) * | 2004-05-14 | 2010-04-13 | Oracle International Corporation | System for allowing object metadata to be shared between cursors for concurrent read write access |
US8005792B2 (en) | 2004-05-14 | 2011-08-23 | Oracle International Corporation | System and method for managing versions of metadata |
US7809898B1 (en) | 2004-05-18 | 2010-10-05 | Symantec Operating Corporation | Detecting and repairing inconsistencies in storage mirrors |
US7433898B1 (en) | 2004-06-01 | 2008-10-07 | Sanbolic, Inc. | Methods and apparatus for shared storage journaling |
US7360030B1 (en) * | 2004-06-01 | 2008-04-15 | Sanbolic, Inc. | Methods and apparatus facilitating volume management |
US8601035B2 (en) * | 2007-06-22 | 2013-12-03 | Compellent Technologies | Data storage space recovery system and method |
DE102004046243A1 (de) * | 2004-09-22 | 2006-04-06 | Universität Paderborn | Verfahren zur Verwaltung von Metainformationen zur Verteilung von Datenblöcken oder Objekten über computerlesbare Speichermedien sowie Computerprogrammprodukt und computerlesbares Speichermedium |
WO2006036810A2 (en) * | 2004-09-22 | 2006-04-06 | Xyratex Technnology Limited | System and method for flexible physical-to-logical mapping in raid arrays |
US7873782B2 (en) * | 2004-11-05 | 2011-01-18 | Data Robotics, Inc. | Filesystem-aware block storage system, apparatus, and method |
JP5116151B2 (ja) * | 2004-11-05 | 2013-01-09 | ドロボ, インコーポレイテッド | 仮想ホットスペアを用いて動的に拡張可能かつ縮小可能な故障許容格納システム |
US7434091B1 (en) * | 2004-12-07 | 2008-10-07 | Symantec Operating Corporation | Flexibly combining mirroring, concatenation and striping in virtual storage devices |
JP4392338B2 (ja) * | 2004-12-20 | 2009-12-24 | 富士通株式会社 | データ管理方法及び装置並びに階層型記憶装置 |
US20060136525A1 (en) * | 2004-12-21 | 2006-06-22 | Jens-Peter Akelbein | Method, computer program product and mass storage device for dynamically managing a mass storage device |
US20060161752A1 (en) * | 2005-01-18 | 2006-07-20 | Burkey Todd R | Method, apparatus and program storage device for providing adaptive, attribute driven, closed-loop storage management configuration and control |
US8065350B2 (en) * | 2005-01-31 | 2011-11-22 | Broadcom Corporation | Method and system for flexibly providing shared access to data pools |
US7966353B2 (en) * | 2005-01-31 | 2011-06-21 | Broadcom Corporation | Method and system for flexibly providing shared access to non-data pool file systems |
US7941602B2 (en) * | 2005-02-10 | 2011-05-10 | Xiotech Corporation | Method, apparatus and program storage device for providing geographically isolated failover using instant RAID swapping in mirrored virtual disks |
US7702850B2 (en) | 2005-03-14 | 2010-04-20 | Thomas Earl Ludwig | Topology independent storage arrays and methods |
US20060218360A1 (en) * | 2005-03-22 | 2006-09-28 | Burkey Todd R | Method, apparatus and program storage device for providing an optimized read methodology for synchronously mirrored virtual disk pairs |
US20060248252A1 (en) * | 2005-04-27 | 2006-11-02 | Kharwa Bhupesh D | Automatic detection of data storage functionality within a docking station |
US20060259683A1 (en) * | 2005-05-16 | 2006-11-16 | Oracle International Corporation | Method and system for disk stippling |
US7620981B2 (en) * | 2005-05-26 | 2009-11-17 | Charles William Frank | Virtual devices and virtual bus tunnels, modules and methods |
US7747835B1 (en) * | 2005-06-10 | 2010-06-29 | American Megatrends, Inc. | Method, system, and apparatus for expanding storage capacity in a data storage system |
US7743214B2 (en) * | 2005-08-16 | 2010-06-22 | Mark Adams | Generating storage system commands |
US8819092B2 (en) | 2005-08-16 | 2014-08-26 | Rateze Remote Mgmt. L.L.C. | Disaggregated resources and access methods |
US7694072B2 (en) * | 2005-09-22 | 2010-04-06 | Xyratex Technology Limited | System and method for flexible physical-logical mapping raid arrays |
US9270532B2 (en) * | 2005-10-06 | 2016-02-23 | Rateze Remote Mgmt. L.L.C. | Resource command messages and methods |
US7721044B1 (en) | 2005-10-20 | 2010-05-18 | American Megatrends, Inc. | Expanding the storage capacity of a virtualized data storage system |
US8010829B1 (en) | 2005-10-20 | 2011-08-30 | American Megatrends, Inc. | Distributed hot-spare storage in a storage cluster |
US20070113006A1 (en) * | 2005-11-16 | 2007-05-17 | Elliott John C | Apparatus and method to configure one or more storage arrays |
TW200723254A (en) * | 2005-12-08 | 2007-06-16 | Via Tech Inc | RAID (redundant arrays of independent disks) systems and set up methods thereto |
US20070180214A1 (en) * | 2005-12-20 | 2007-08-02 | Dell Products L.P. | System and method for dynamic striping in a storage array |
US20070234000A1 (en) * | 2006-03-31 | 2007-10-04 | Dell Products L.P. | Method and system for dynamic management of a utility partition in a pre-operating system environment |
US7924881B2 (en) | 2006-04-10 | 2011-04-12 | Rateze Remote Mgmt. L.L.C. | Datagram identifier management |
US7886111B2 (en) * | 2006-05-24 | 2011-02-08 | Compellent Technologies | System and method for raid management, reallocation, and restriping |
WO2007140259A2 (en) * | 2006-05-24 | 2007-12-06 | Compellent Technologies | Data progression disk locality optimization system and method |
US8006061B1 (en) | 2007-04-13 | 2011-08-23 | American Megatrends, Inc. | Data migration between multiple tiers in a storage system using pivot tables |
US8370597B1 (en) | 2007-04-13 | 2013-02-05 | American Megatrends, Inc. | Data migration between multiple tiers in a storage system using age and frequency statistics |
US8271757B1 (en) | 2007-04-17 | 2012-09-18 | American Megatrends, Inc. | Container space management in a data storage system |
US8001352B1 (en) | 2007-04-17 | 2011-08-16 | American Megatrends, Inc. | Networked raid in a virtualized cluster |
US9164686B2 (en) * | 2007-06-29 | 2015-10-20 | Seagate Technology, Llc | Virtual storage space with cyclical wrapping grid function |
US8127096B1 (en) | 2007-07-19 | 2012-02-28 | American Megatrends, Inc. | High capacity thin provisioned storage server with advanced snapshot mechanism |
US9760839B1 (en) * | 2007-07-25 | 2017-09-12 | United Services Automobile Association (Usaa) | Electronic recording statement management |
US7873878B2 (en) * | 2007-09-24 | 2011-01-18 | International Business Machines Corporation | Data integrity validation in storage systems |
JP5103663B2 (ja) * | 2007-09-27 | 2012-12-19 | ルネサスエレクトロニクス株式会社 | メモリ制御装置 |
US9009440B2 (en) * | 2007-11-12 | 2015-04-14 | Lsi Corporation | Adjustment of data storage capacity provided by a storage system |
WO2009079478A1 (en) * | 2007-12-14 | 2009-06-25 | Virident Systems, Inc. | Distributing metadata across multiple different disruption regions within an asymmetric memory system |
US7890730B2 (en) * | 2007-12-23 | 2011-02-15 | Sandisk Il Ltd | Methods and devices for expandable storage |
JP2009223442A (ja) * | 2008-03-13 | 2009-10-01 | Hitachi Ltd | ストレージシステム |
KR101479617B1 (ko) * | 2008-03-24 | 2015-01-06 | 주식회사 케이티 | 유틸리티 컴퓨팅 서비스가 가능한 가상 스토리지 제공 방법및 그 시스템 |
US7971013B2 (en) * | 2008-04-30 | 2011-06-28 | Xiotech Corporation | Compensating for write speed differences between mirroring storage devices by striping |
WO2010005421A2 (en) * | 2008-07-07 | 2010-01-14 | Hewlett-Packard Development Company, L.P. | Dynamically expanding storage capacity of a storage volume |
US20100011176A1 (en) * | 2008-07-11 | 2010-01-14 | Burkey Todd R | Performance of binary bulk IO operations on virtual disks by interleaving |
US20100011371A1 (en) * | 2008-07-11 | 2010-01-14 | Burkey Todd R | Performance of unary bulk IO operations on virtual disks by interleaving |
US20100030960A1 (en) * | 2008-07-31 | 2010-02-04 | Hariharan Kamalavannan | Raid across virtual drives |
US8171201B1 (en) * | 2008-10-07 | 2012-05-01 | Vizioncore, Inc. | Systems and methods for improving virtual machine performance |
US9207984B2 (en) | 2009-03-31 | 2015-12-08 | Amazon Technologies, Inc. | Monitoring and automatic scaling of data volumes |
US8468292B2 (en) * | 2009-07-13 | 2013-06-18 | Compellent Technologies | Solid state drive data storage system and method |
US8566520B1 (en) * | 2009-10-05 | 2013-10-22 | Marvell International Ltd. | Storage space allocation for logical disk creation |
FR2951310B1 (fr) * | 2009-10-13 | 2011-11-18 | St Microelectronics Rousset | Dispositif de memoire a protocole serie et procede d'adressage correspondant |
US20110153650A1 (en) * | 2009-12-18 | 2011-06-23 | Electronics And Telecommunications Research Institute | Column-based data managing method and apparatus, and column-based data searching method |
US8639876B2 (en) * | 2010-01-27 | 2014-01-28 | International Business Machines Corporation | Extent allocation in thinly provisioned storage environment |
US9430155B2 (en) * | 2010-03-25 | 2016-08-30 | International Business Machines Corporation | File index, metadata storage, and file system management for magnetic tape |
US9275678B2 (en) * | 2010-03-25 | 2016-03-01 | International Business Machines Corporation | Primary storage media with associated secondary storage media for efficient data management |
US9063666B2 (en) * | 2010-03-25 | 2015-06-23 | International Business Machines Corporation | File index, metadata storage, and file system management for magnetic tape |
US8380961B2 (en) | 2010-08-18 | 2013-02-19 | International Business Machines Corporation | Methods and systems for formatting storage volumes |
US8392653B2 (en) | 2010-08-18 | 2013-03-05 | International Business Machines Corporation | Methods and systems for releasing and re-allocating storage segments in a storage volume |
US20120054734A1 (en) * | 2010-08-31 | 2012-03-01 | Apple Inc. | Device software upgrade using a dynamically sized partition |
US9720606B2 (en) | 2010-10-26 | 2017-08-01 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Methods and structure for online migration of data in storage systems comprising a plurality of storage devices |
CN102169727B (zh) * | 2010-12-07 | 2013-03-20 | 清华大学 | 基于随机游走的固态硬盘磨损均衡方法 |
US8725691B1 (en) * | 2010-12-16 | 2014-05-13 | Emc Corporation | Dynamic LUN resizing in a replication environment |
CN102135862B (zh) * | 2011-03-10 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘存储系统及其数据访问方法 |
US10108537B2 (en) * | 2011-11-29 | 2018-10-23 | Red Hat, Inc. | Mechanisms for reproducing storage system metadata inconsistencies in a test environment |
US8712962B1 (en) * | 2011-12-01 | 2014-04-29 | Emc Corporation | Snapshots in de-duplication |
CN103226518B (zh) | 2012-01-31 | 2016-06-22 | 国际商业机器公司 | 一种在存储管理系统中进行卷扩展的方法和装置 |
US9146851B2 (en) | 2012-03-26 | 2015-09-29 | Compellent Technologies | Single-level cell and multi-level cell hybrid solid state drive |
US9009405B2 (en) | 2012-04-30 | 2015-04-14 | Lsi Corporation | Methods and systems for instantaneous online capacity expansion |
US8914578B2 (en) | 2012-09-27 | 2014-12-16 | Hewlett-Packard Development Company, L.P. | Capacity-expansion of a logical volume |
US9348717B2 (en) * | 2013-07-24 | 2016-05-24 | Netapp, Inc. | Storage failure processing in a shared storage architecture |
KR102088403B1 (ko) | 2013-08-08 | 2020-03-13 | 삼성전자 주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
JP5962621B2 (ja) * | 2013-09-19 | 2016-08-03 | 日本電気株式会社 | ストレージ装置及びその制御方法、並びにストレージ制御プログラム |
CN103617010B (zh) * | 2013-12-13 | 2016-11-23 | 华为技术有限公司 | 数据存储方法及存储装置 |
US20150293705A1 (en) * | 2014-04-11 | 2015-10-15 | Seagate Technology Llc | Formatting and capacity expansion in a data storage device |
US9665292B2 (en) | 2015-01-08 | 2017-05-30 | Dell Products, Lp | System and method for providing consistent metadata for RAID solutions |
US20170371782A1 (en) * | 2015-01-21 | 2017-12-28 | Hewlett Packard Enterprise Development Lp | Virtual storage |
CN105988727B (zh) * | 2015-02-25 | 2021-04-16 | 中兴通讯股份有限公司 | 一种基于raid的存储方法和存储装置 |
KR102349999B1 (ko) * | 2015-03-02 | 2022-01-10 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
CN104731905A (zh) * | 2015-03-24 | 2015-06-24 | 浪潮集团有限公司 | 一种精简存储池缩容方法 |
US9916090B1 (en) * | 2015-09-22 | 2018-03-13 | EMC IP Holding Company LLC | Techniques for dynamically adjusting slice size |
KR20180047402A (ko) * | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US20180181310A1 (en) * | 2016-12-23 | 2018-06-28 | Cloudendure Ltd. | System and method for disk identification in a cloud based computing environment |
CN113220242B (zh) * | 2017-04-17 | 2023-10-24 | 伊姆西Ip控股有限责任公司 | 存储管理方法、设备和计算机可读介质 |
CN108733307B (zh) * | 2017-04-17 | 2021-06-08 | 伊姆西Ip控股有限责任公司 | 存储管理方法、设备以及计算机可读介质 |
US10229022B1 (en) * | 2017-04-27 | 2019-03-12 | EMC IP Holding Company LLC | Providing Raid-10 with a configurable Raid width using a mapped raid group |
CN109085999B (zh) * | 2018-06-15 | 2022-04-22 | 华为技术有限公司 | 数据处理方法及处理系统 |
KR102057054B1 (ko) * | 2018-06-19 | 2020-01-22 | 주식회사 티맥스데이터 | 익스텐트를 재배치하는 데이터베이스 서버 및 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램 |
US11068175B2 (en) * | 2018-12-21 | 2021-07-20 | Intel Corporation | Technology to manage capacity loss in storage drives |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
CN109933570B (zh) * | 2019-03-15 | 2020-02-07 | 中山大学 | 一种元数据管理方法、系统及介质 |
US11442826B2 (en) | 2019-06-15 | 2022-09-13 | International Business Machines Corporation | Reducing incidents of data loss in raid arrays having the same raid level |
US10929037B2 (en) | 2019-06-15 | 2021-02-23 | International Business Machines Corporation | Converting a RAID to a more robust RAID level |
US11074118B2 (en) | 2019-06-15 | 2021-07-27 | International Business Machines Corporation | Reporting incidents of data loss in RAID arrays |
US10908997B1 (en) * | 2019-07-30 | 2021-02-02 | EMC IP Holding Company LLC | Simple and efficient technique to support disk extents of different sizes for mapped RAID |
US11775174B1 (en) | 2019-10-11 | 2023-10-03 | Amzetta Technologies, Llc | Systems and methods of data migration in a tiered storage system based on volume priority category |
US11947799B1 (en) | 2019-10-11 | 2024-04-02 | Amzetta Technologies, Llc | Systems and methods for using the TRIM command with solid state devices |
CN111143110B (zh) * | 2019-12-23 | 2023-08-01 | 四川效率源信息安全技术股份有限公司 | 一种逻辑卷管理中基于元数据的raid数据恢复方法 |
CN111221709B (zh) * | 2020-04-17 | 2020-08-25 | 湖南兴天电子科技有限公司 | 服务器维护方法、装置、计算机设备和可读存储介质 |
US11748016B2 (en) * | 2021-05-06 | 2023-09-05 | EMC IP Holding Company LLC | Method for adding disks in a raid system having a protection pool of storage units |
CN113821172B (zh) * | 2021-09-03 | 2024-06-11 | 郑州浪潮数据技术有限公司 | 一种存储卷容量获取方法、装置及相关设备 |
US11829288B2 (en) * | 2021-12-27 | 2023-11-28 | Seagate Technology Llc | Mapping of object data and metadata in an object storage volume |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787242A (en) * | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
KR20000034323A (ko) * | 1998-11-28 | 2000-06-15 | 윤종용 | 레이드 시스템 구성시 유연성을 부여하는 디바이스 로밍 방법 |
US6081879A (en) * | 1997-11-04 | 2000-06-27 | Adaptec, Inc. | Data processing system and virtual partitioning method for creating logical multi-level units of online storage |
KR20010031492A (ko) * | 1998-08-28 | 2001-04-16 | 폴더 데이씨에르, 데이시어 폴 티, 모쉬 야네 | 디스크 어레이 기억장치에서의 볼륨 교환 방법 |
KR20010098429A (ko) * | 2000-04-27 | 2001-11-08 | 포만 제프리 엘 | 다층 논리 볼륨 생성 및 관리를 위한 시스템 및 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129088A (en) * | 1987-11-30 | 1992-07-07 | International Business Machines Corporation | Data processing method to create virtual disks from non-contiguous groups of logically contiguous addressable blocks of direct access storage device |
US5435004A (en) * | 1994-07-21 | 1995-07-18 | International Business Machines Corporation | Computerized system and method for data backup |
JP3201219B2 (ja) * | 1995-05-29 | 2001-08-20 | 三菱電機株式会社 | 入出力処理システム |
US5897661A (en) | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6574705B1 (en) * | 2000-11-16 | 2003-06-03 | International Business Machines Corporation | Data processing system and method including a logical volume manager for storing logical volume data |
-
2001
- 2001-07-27 KR KR10-2001-0045621A patent/KR100392382B1/ko active IP Right Grant
- 2001-12-07 US US10/005,604 patent/US6718436B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5787242A (en) * | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
US6081879A (en) * | 1997-11-04 | 2000-06-27 | Adaptec, Inc. | Data processing system and virtual partitioning method for creating logical multi-level units of online storage |
KR20010031492A (ko) * | 1998-08-28 | 2001-04-16 | 폴더 데이씨에르, 데이시어 폴 티, 모쉬 야네 | 디스크 어레이 기억장치에서의 볼륨 교환 방법 |
KR20000034323A (ko) * | 1998-11-28 | 2000-06-15 | 윤종용 | 레이드 시스템 구성시 유연성을 부여하는 디바이스 로밍 방법 |
KR20010098429A (ko) * | 2000-04-27 | 2001-11-08 | 포만 제프리 엘 | 다층 논리 볼륨 생성 및 관리를 위한 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20030010946A (ko) | 2003-02-06 |
US20030023811A1 (en) | 2003-01-30 |
US6718436B2 (en) | 2004-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100392382B1 (ko) | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 | |
US10073621B1 (en) | Managing storage device mappings in storage systems | |
US10140041B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object | |
US10365983B1 (en) | Repairing raid systems at per-stripe granularity | |
US6647460B2 (en) | Storage device with I/O counter for partial data reallocation | |
US9846544B1 (en) | Managing storage space in storage systems | |
US7506187B2 (en) | Methods, apparatus and controllers for a raid storage system | |
US6304942B1 (en) | Providing an upgrade path for an existing data storage system | |
US10146447B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives | |
US10082959B1 (en) | Managing data placement in storage systems | |
US8990496B2 (en) | Method and system for the heterogeneous data volume | |
US8839028B1 (en) | Managing data availability in storage systems | |
US7281089B2 (en) | System and method for reorganizing data in a raid storage system | |
KR100490723B1 (ko) | 파일 레벨 스트라이핑 장치 및 방법 | |
US20150149719A1 (en) | Flexible data storage system | |
US9875043B1 (en) | Managing data migration in storage systems | |
US20110202722A1 (en) | Mass Storage System and Method of Operating Thereof | |
JP2000099282A (ja) | ファイル管理システム | |
US10678643B1 (en) | Splitting a group of physical data storage drives into partnership groups to limit the risk of data loss during drive rebuilds in a mapped RAID (redundant array of independent disks) data storage system | |
US11256447B1 (en) | Multi-BCRC raid protection for CKD | |
US20110202723A1 (en) | Method of allocating raid group members in a mass storage system | |
US7380157B2 (en) | Staggered writing for data storage systems | |
US10409682B1 (en) | Distributed RAID system | |
US7487308B1 (en) | Identification for reservation of replacement storage devices for a logical volume to satisfy its intent | |
US7346733B2 (en) | Storage apparatus, system and method using a plurality of object-based storage devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130605 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20140624 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20150527 Year of fee payment: 13 |
|
FPAY | Annual fee payment |
Payment date: 20160620 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20180702 Year of fee payment: 16 |