KR102581479B1 - 스토리지 시스템 및 그의 볼륨 관리 방법 - Google Patents

스토리지 시스템 및 그의 볼륨 관리 방법 Download PDF

Info

Publication number
KR102581479B1
KR102581479B1 KR1020160067750A KR20160067750A KR102581479B1 KR 102581479 B1 KR102581479 B1 KR 102581479B1 KR 1020160067750 A KR1020160067750 A KR 1020160067750A KR 20160067750 A KR20160067750 A KR 20160067750A KR 102581479 B1 KR102581479 B1 KR 102581479B1
Authority
KR
South Korea
Prior art keywords
volume
information
raid
volumes
storage
Prior art date
Application number
KR1020160067750A
Other languages
English (en)
Other versions
KR20170135594A (ko
Inventor
서정민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160067750A priority Critical patent/KR102581479B1/ko
Priority to US15/448,667 priority patent/US10353641B2/en
Priority to CN201710275208.8A priority patent/CN107450848B/zh
Publication of KR20170135594A publication Critical patent/KR20170135594A/ko
Application granted granted Critical
Publication of KR102581479B1 publication Critical patent/KR102581479B1/ko

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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/061Improving I/O performance
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1009Cache, i.e. caches used in RAID system with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data

Abstract

스토리지 시스템 및 그의 볼륨 관리 방법이 개시된다. 본 발명의 기술적 사상에 따른 다수 개의 저장 매체들을 포함하는 스토리지 시스템의 볼륨 관리 방법은 볼륨 관리 요청 및 볼륨들 사이의 연관 정보를 수신하는 단계 및 상기 볼륨들 사이의 연관 정보에 기반하여 상기 저장 매체들의 저장 공간을 상기 볼륨들에 할당하는 단계를 구비하고, 상기 연관 정보는, 할당되는 저장 매체가 서로 물리적으로 격리되는 볼륨들의 정보를 나타내는 것을 특징으로 한다.

Description

스토리지 시스템 및 그의 볼륨 관리 방법{Storage System and Volume Management Method thereof}
본 발명의 기술적 사상은 스토리지 시스템에 관한 것으로서, 상세하게는 데이터 안정성을 향상한 스토리지 시스템 및 그의 볼륨 관리 방법에 관한 것이다.
일반적으로 하나 이상의 호스트들에 공유되는 스토리지 시스템은 저용량의 디스크 여러 개를 하나의 가상의 고용량의 디스크로 사용하기 위하여 RAID(Redundant Array of Inexpensive Disk)를 제공한다. RAID는 다양한 방식에 따라 구현될 수 있으며, 예컨대 하드웨어 RAID와 소프트웨어 RAID로 구현될 수 있다. 소프트웨어 RAID는 컴퓨터에 장착된 여러 개의 디스크들을 RAID로 구성하는 기능을 제공하며, 디스크들을 관리하는 시스템의 운영 체제(Operating System)가 RAID에 관련된 기능을 수행하기 위한 알고리즘(예컨대, RAID 알고리즘)을 지원할 수 있다.
그러나, 스토리지 시스템이 RAID 알고리즘을 수행함에 따른 오버헤드가 증가하게 되며, 이는 데이터 입출력의 병목 현상을 증가시키게 됨으로써 스토리지 시스템의 성능 저하를 야기할 수 있다.
본 발명의 기술적 사상이 해결하려는 과제는, 데이터 억세스의 오버헤드를 감소함과 함께, 데이터의 안정성을 향상할 수 있는 스토리지 시스템 및 그의 볼륨 관리 방법을 제공하는 데 있다.
본 발명의 기술적 사상에 따른 다수 개의 저장 매체들을 포함하는 스토리지 시스템의 볼륨 관리 방법은, 볼륨 관리 요청 및 볼륨들 사이의 연관 정보를 수신하는 단계 및 상기 볼륨들 사이의 연관 정보에 기반하여 상기 저장 매체들의 저장 공간을 상기 볼륨들에 할당하는 단계를 구비하고, 상기 연관 정보는, 할당되는 저장 매체가 서로 물리적으로 격리되는 볼륨들의 정보를 나타내는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 볼륨 관리 방법은, 제1 볼륨에 대한 관리 요청 및 상기 제1 볼륨에 연관된 하나 이상의 볼륨에 대한 정보를 갖는 제1 레이드(RAID) 정보를 수신하는 단계와, 상기 제1 RAID 정보를 제1 테이블에 업데이트하는 단계와, 제2 볼륨에 대한 관리 요청 및 상기 제2 볼륨에 연관된 하나 이상의 볼륨에 대한 정보를 갖는 제2 RAID 정보를 수신하는 단계 및 상기 제2 RAID 정보를 상기 제1 테이블에 업데이트하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 스토리지 시스템을 포함하는 컴퓨팅 시스템에 있어서, 상기 스토리지 시스템은, 볼륨 관리 및 저장 공간의 할당에 관련된 프로그램들을 저장하는 메모리 및 상기 메모리에 저장된 프로그램들을 실행하고, 상기 프로그램들의 실행에 따라, 외부로부터 제공된 볼륨들 사이의 연관 정보를 저장하는 동작을 제어하며, 상기 볼륨들 사이의 연관 정보를 참조함에 의해 서로 연관된 볼륨들에 할당되는 저장 매체가 서로 물리적으로 격리되도록 저장 공간의 할당 동작을 제어하는 프로세싱 유닛을 구비하는 것을 특징으로 한다.
한편, 본 발명의 기술적 사상에 따른 스토리지 시스템의 볼륨 관리 방법은, 제1 볼륨의 생성 요청 및 상기 제1 볼륨에 대응하는 제1 레이드(RAID) 정보를 수신하는 단계와, 제2 볼륨의 생성 요청 및 상기 제2 볼륨에 대응하는 제2 RAID 정보를 수신하는 단계 및 상기 제1 및 제2 RAID 정보에 따라, 상기 제1 볼륨에 저장 공간이 할당되는 제1 디스크 및 제2 볼륨에 저장 공간이 할당되는 제2 디스크를 선택하는 단계를 구비하는 것을 특징으로 한다.
본 발명의 기술적 사상의 스토리지 시스템 및 그의 볼륨 관리 방법에 따르면, 스토리지 시스템 내부에서 RAID 기능이 실행될 필요가 없으므로 데이터 억세스 속도를 향상할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상의 스토리지 시스템 및 그의 볼륨 관리 방법에 따르면, 외부로부터의 정보에 기반하여 볼륨들 사이의 연관 정보를 판단하고, 이에 기반하여 볼륨에 대한 저장 공간의 할당이 수행되므로, 호스트의 데이터를 안정적으로 저장할 수 있는 효과가 있다.
도 1은 본 발명의 예시적인 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 도 1에 도시된 스토리지 시스템에서의 할당 동작의 예를 나타내는 블록도이다.
도 3은 본 발명의 일 실시예에 따른 스토리지 시스템이 적용된 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 스토리지 시스템이 적용된 컴퓨팅 시스템의 다른 예를 나타내는 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 스토리지 시스템에 구비되는 하드웨어 구성을 나타내는 블록도이다.
도 6은 종래의 방식에 따라 볼륨들에 대해 임의적인 저장 공간을 할당하는 예를 나타내는 블록도이다.
도 7은 본 발명의 일 실시예에 따른 스토리지 시스템의 볼륨 관리 방법을 나타내는 플로우차트이다.
도 8a,b는 스토리지 시스템이 RAID 정보를 수신하는 예들을 나타내는 블록도이다.
도 9는 스토리지 시스템에 구비되는 볼륨 매니저의 일 구현 예를 나타내는 블록도이다.
도 10a,b는 도 9의 볼륨 관계 테이블의 일 구현 예를 나타내는 블록도이다.
도 11a,b는 볼륨 메타데이터 및 디스크 상태 정보를 포함하는 테이블 정보의 예를 나타내는 도면이다.
도 12a,b는 본 발명의 실시예에 따른 스토리지 시스템에 씬 프로비저닝이 적용된 예를 나타내는 도면이다.
도 13a,b는 저장 공간을 볼륨에 할당하는 일 예를 나타내는 블록도 및 표이다.
도 14는 본 발명의 실시예들에 따라 하나의 RAID를 구성하는 다수의 볼륨들에 저장 공간이 할당된 예를 나타내는 도면이다.
도 15 내지 도 17은 본 발명의 다양한 볼륨 관리 동작의 예를 나타내는 플로우차트이다.
도 18a,b,c는 본 발명의 변형 가능한 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 19a,b,c는 본 발명의 변형 가능한 실시예에 따른 볼륨 관리 동작을 나타내는 블록도이다.
도 20 내지 도 22는 본 발명의 실시예들이 적용될 수 있는 다양한 형태의 컴퓨팅 시스템의 예를 나타내는 블록도이다.
도 23은 전술한 실시예들에서 설명된 저장 매체의 일 구현 예를 나타내는 사시도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 예시적인 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(100)은 인터페이스(110), 볼륨 매니저(120) 및 스토리지 디바이스(130)를 포함할 수 있다. 스토리지 디바이스(130)는 다수 개의 저장 매체들을 포함할 수 있다. 저장 매체는 다양한 종류의 저장 수단으로 정의될 수 있으며, 일 예로서, 스토리지 디바이스(130)는 다양한 종류의 디스크들을 포함할 수 있다. 또한, 스토리지 디바이스(130)는 동일한 종류의 디스크만을 포함하거나 또는 다수 개의 종류의 디스크들을 함께 포함할 수 있다. 일 실시예에 따라, 스토리지 디바이스(130)는 하나 이상의 하드 디스크 드라이브(HDD)나 솔리드 스테이트 드라이브(SSD) 등을 전술한 저장 매체들로서 포함할 수 있다.
한편, 각각의 솔리드 스테이트 드라이브(SSD)는 다수 개의 메모리 칩들(예컨대, 플래시 메모리 칩들)을 포함할 수 있다. 이 때, 전술한 저장 매체는 상기 SSD를 지칭하는 구성일 수 있으며, 또는 전술한 저장 매체는 메모리 칩을 지칭하는 구성일 수 있다. 또는, 본 발명의 실시예에 따른 스토리지 디바이스(130)는, 전술한 디스크의 개념을 적용할 필요 없이 다수 개의 메모리 칩들을 전술한 저장 매체들로서 포함하는 것으로 정의되어도 무방하다.
이하에서는, 스토리지 디바이스(130)가 M 개의 디스크들(131_1 ~ 131_M)을 포함하는 것으로 가정된다.
스토리지 시스템(100)은 인터페이스(110)를 통하여 하나 이상의 호스트들과 통신하고, 호스트들로부터의 요청에 따른 데이터 억세스 동작을 수행할 수 있다. 일 실시예에 따라, 스토리지 시스템(100)은 USB(Universal Serial Bus), MMC(MultiMediaCard), PCI-E(PCIExpress), ATA(AT Attachment), SATA(Serial AT Attachment), PATA(Parallel AT Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스를 통해 호스트와 통신할 수 있다.
스토리지 시스템(100)은 호스트로부터 볼륨 관리 요청(Req_VM)을 수신하고, 이에 응답하여 호스트에 의해 요청되는 볼륨을 생성하거나, 볼륨에 대한 확장 및 축소 등의 변경 동작을 수행하거나, 볼륨에 디스크의 물리적인 저장 공간을 할당하는 등의 볼륨 관리 동작을 수행할 수 있다. 또한, 볼륨 관리 요청(Req_VM)이 데이터 억세스 요청에 해당할 때, 스토리지 시스템(100)은 볼륨에 데이터를 기록하거나 볼륨으로부터 데이터를 독출하는 등의 볼륨 관리 동작을 수행할 수 있다. 호스트에 제공되는 볼륨은 하나 또는 그 이상의 물리적 디스크들을 포함하는 하나의 논리적인 장치에 상응할 수 있다. 즉, 여러 개의 물리적 디스크들이 하나의 논리적 볼륨으로서 호스트에 제공될 수 있다.
한편, 스토리지 시스템(100)은 외부로부터 볼륨 관리 요청(Req_VM)과 함께, 볼륨들 사이의 연관 정보를 수신할 수 있다. 일 예로서, 스토리지 시스템(100)은 적어도 두 개의 볼륨들에 대한 생성 요청을 수신함과 함께, 상기 적어도 두 개의 볼륨들 사이의 연관 정보를 수신할 수 있다. 상기 연관 정보는 적어도 두 개의 볼륨들이 데이터 억세스를 수행함에 있어서 서로 연관되어 있음을 나타낼 수 있다. 또한, 상기 연관 정보는 할당되는 저장 매체가 서로 물리적으로 격리되는 적어도 두 개의 볼륨들의 정보를 나타낼 수 있다. 이 때, 저장 매체가 물리적으로 격리된다 함은, 적어도 두 개의 볼륨들에 서로 다른 메모리 칩의 저장 공간이 할당되는 것으로 정의될 수 있다. 또는, 적어도 두 개의 볼륨들에 서로 다른 디스크의 저장 공간이 할당되는 것으로 정의될 수 있다.
일 실시예에 따라, 호스트는 스토리지 시스템(100)으로부터 볼륨을 할당받고, 할당된 볼륨들을 RAID(Redundant Array of Inexpensive Disks)로 구성하여 이용할 수 있다. 예컨대, 호스트는 할당받은 볼륨들을 RAID로 구성하기 위한 RAID 알고리즘을 수행할 수 있으며, 호스트에 설치된 소정의 프로그램(예컨대, 어플리케이션 프로그래밍 인터페이스(Application Programming Interface))을 통해 할당을 요청하는 볼륨에 관련된 정보와, 볼륨들이 구성하는 RAID에 관련된 정보(예컨대, RAID 레벨 정보) 등이 스토리지 시스템(100)으로 제공될 수 있다.
RAID와 관련하여 연관 정보는 다양하게 정의될 수 있다. 일 예로서, 연관 정보는 하나의 RAID를 구성하는 볼륨들의 정보를 포함할 수 있다. 또는, 연관 정보는 하나의 RAID를 구성하는 볼륨들의 정보와 함께, 상기 볼륨들이 구성하는 RAID의 레벨을 나타내는 정보를 포함할 수 있다. 또는, 연관 정보는 하나의 RAID를 구성하는 볼륨들을 포함하는 그룹의 정보를 포함할 수 있으며, 또한 상기 그룹에 적용된 RAID의 레벨을 나타내는 정보를 더 포함할 수도 있다.
상기와 같이, 연관 정보는 관리가 요청되는 볼륨들에 적용된 RAID에 관련된 정보를 포함할 수 있으므로, 연관 정보를 제공한다는 개념은 각각의 볼륨에 대응하여 RAID 정보(Info_RAID)를 스토리지 시스템(100)으로 제공하는 개념을 포함하는 것으로 정의될 수 있다. 이하에서는, 실시예들에 따라 연관 정보의 용어와 RAID 정보의 용어가 혼용될 수 있으며, 일 예로서 호스트가 볼륨들 사이의 연관에 따라 볼륨 관리 요청과 함께 RAID 정보(Info_RAID)를 스토리지 시스템(100)으로 제공할 수 있다. 또한, 스토리지 시스템(100)은 RAID 정보(Info_RAID)에 기반하여 볼륨 관리 동작을 수행할 수 있으며, 일 예로서 RAID 정보(Info_RAID)에 기반하여 볼륨들 사이의 연관 정보를 판단하고, 상기 연관 정보에 따라 볼륨 관리 동작을 수행할 수 있다.
또한, 스토리지 시스템(100)이 그 내부에 볼륨들 사이의 연관 정보를 저장하는 동작은, RAID 정보(Info_RAID)가 연관 정보로서 직접 저장되거나, 또는 RAID 정보(Info_RAID)에 대한 소정의 판단 동작을 통해 연관 정보가 생성되어 스토리지 시스템(100)에 저장될 수도 있을 것이다. 실시예들에 따라, RAID 정보(Info_RAID)와 연관 정보는 다양한 방식에 따라 정의될 수 있으며, RAID 정보(Info_RAID)와 연관 정보는 실질적으로 동일한 의미로서 혼용되어도 무방할 것이다.
일 실시예에 따라, 제1 볼륨에 대응하여 제공된 RAID 정보(Info_RAID)가, 상기 제1 볼륨에 연계된 제2 볼륨의 정보를 포함하고, 또한 제1 및 제2 볼륨들에 RAID 1 레벨이 적용됨을 나타내는 정보를 포함할 때, 스토리지 시스템(100)은 호스트가 제1 볼륨 및 제2 볼륨을 RAID 1으로 구성하여 이용할 것임을 판단할 수 있다.
또한, 스토리지 시스템(100)은 수신된 RAID 정보(Info_RAID)(또는, 연관 정보)에 기반하여 볼륨 관리 동작을 수행할 수 있다. 일 실시예에 따라, 볼륨들 각각에 대해 디스크의 저장 공간을 할당함에 있어서, RAID 정보(Info_RAID)를 참조하여 볼륨들 각각에 대한 저장 공간의 할당 동작이 제어될 수 있다. 예컨대, RAID 정보(Info_RAID)를 참조함에 의해, 적어도 두 개의 볼륨들 사이에서 결함(또는, 물리적으로 할당되는 저장 공간)이 격리(isolation)될 필요성이 있는 지가 판단될 수 있으며, 결함의 격리 필요성 여부에 따라 저장 공간의 할당 방식이 달리 수행될 수 있다.
일 실시예에 따라, 두 개의 볼륨들(예컨대, 제1 볼륨 및 제2 볼륨)의 생성이 요청되고, 상기 볼륨들에 대응하여 RAID 1 레벨을 나타내는 RAID 정보(Info_RAID)가 수신될 때, 스토리지 시스템(100)은 RAID 1을 구성하는 제1 볼륨 및 제2 볼륨을 생성할 수 있다. 호스트가 제1 및 제2 볼륨들을 RAID 1으로서 이용함에 따라, 제1 및 제2 볼륨들 중 어느 하나의 볼륨에는 원본 데이터가 저장될 수 있으며, 제1 및 제2 볼륨들 중 다른 하나의 볼륨에는 원본 데이터와 동일한 데이터(예컨대, 미러 데이터)가 저장될 수 있다.
또는, 세 개 이상의 볼륨들(예컨대, 제1 내지 제n 볼륨들)의 생성이 요청되고, 상기 볼륨들에 대응하여 RAID 5 또는 RAID 6 레벨을 나타내는 RAID 정보(Info_RAID)가 수신될 때, 스토리지 시스템(100)은 RAID 5 또는 RAID 6을 구성하는 제1 내지 제n 볼륨들을 생성할 수 있다. 예컨대, 3 개의 볼륨들이 RAID 5를 구성하는 경우, 3 개의 볼륨들 중 2 개의 볼륨들에는 데이터가 저장될 수 있으며, 다른 하나의 볼륨에는 상기 데이터에 대응하는 패리티 정보가 저장될 수 있다.
본 발명의 일 실시예에 따라, 스토리지 시스템(100)은 볼륨들 사이의 연관 정보를 그 내부의 소정의 메모리(휘발성 메모리 또는 불휘발성 메모리)에 저장하여 관리할 수 있다. 예컨대, 호스트로부터 볼륨 관리 요청 및 이에 대응하는 RAID 정보(Info_RAID)가 제공되면, 스토리지 시스템(100)은 수신된 RAID 정보(Info_RAID)를 상기 저장 수단에 저장할 수 있으며, 이에 따라 볼륨들 사이의 연관 정보가 업데이트될 수 있다. 또한, 볼륨들 각각에 대해 물리적 저장 공간을 할당함에 있어서, 호스트로부터 제공된 RAID 정보(Info_RAID)를 참조함에 의해 할당 동작이 제어될 수 있다.
일 실시예에 따라, 상기 저장 공간의 할당 동작은 디스크 정보를 더 참조하여 수행될 수 있다. 도 1에서는, 볼륨 매니저(120)가 디스크 정보를 저장하는 메모리(121)를 포함하는 예가 도시된다. 그러나, 본 발명의 실시예는 이에 국한될 필요가 없으며, 디스크 정보는 스토리지 시스템(100) 내부의 다양한 위치에 저장되어도 무방하다.
디스크 정보는 다양한 종류의 정보들을 포함할 수 있다. 예컨대, 스토리지 디바이스(130)는 다수 개의 디스크들(131_1 ~ 131_M)을 포함할 수 있으며, 상기 디스크 정보는 일반적인 시스템 정보로서, 디스크들의 개수, 디스크들의 ID, 디스크들의 종류, 성능 및 저장 용량 등의 다양한 정보들을 포함할 수 있다.
또한, 상기 디스크 정보는 다수 개의 디스크들(131_1 ~ 131_M)의 상태 정보를 포함할 수 있다. 상태 정보의 일 예로서, 디스크들(131_1 ~ 131_M) 각각의 에러 상태나 수명 상태 등의 정보가 포함될 수 있다. 예컨대, 디스크들(131_1 ~ 131_M) 각각이 플래시 메모리를 포함하는 SSD에 해당하는 경우, 디스크들(131_1 ~ 131_M)의 기록/소거 회수나 비트 에러율(BER) 등의 정보를 통해 디스크들(131_1 ~ 131_M)의 결함 발생 가능성이 예측될 수 있다.
볼륨 매니저(120)는 RAID 정보(Info_RAID) 및 디스크 정보의 조합에 기반하여 볼륨의 관리 동작을 수행할 수 있다. 즉, 볼륨 매니저(120)는 각각의 볼륨에 임의의 디스크(또는, 저장 공간)를 할당하는 것이 아니라, RAID 정보(Info_RAID) 및 디스크 정보를 판단하고, 판단 결과에 기반하여 디스크를 할당할 수 있다.
일 예로서, RAID 1을 구성하는 제1 및 제2 볼륨을 예로 들면, 만약 제1 볼륨의 데이터가 손실되는 경우 제2 볼륨에 저장된 데이터가 호스트로 제공될 필요가 있다. 이와 같은 데이터 안정성을 위하여, 볼륨 매니저(120)는 RAID 1을 구성하는 제1 볼륨과 제2 볼륨 사이에서 결함이 격리될 수 있도록, 제1 볼륨과 제2 볼륨에 서로 다른 물리적 디스크의 저장 공간을 할당할 수 있다. 즉, 볼륨 매니저(120)는 제1 볼륨에 할당되는 디스크나 저장 매체 등의 저장 공간과 제2 볼륨에 할당되는 디스크나 저장 매체 등의 저장 공간이 서로 물리적으로 격리되도록 할당 동작을 수행할 수 있다.
또한, RAID 1을 구성하는 제1 및 제2 볼륨의 데이터 안정성을 확보하기 위해서는, 제1 및 제2 볼륨에 동시에 결함이 발생될 가능성을 감소시킬 필요가 있다. 상기한 디스크 정보를 판단함에 의해, 스토리지 디바이스(130) 내에 구비되는 디스크들(131_1 ~ 131_M) 각각의 상태 정보가 판단될 수 있으며, 이를 통해 결함 발생 가능성이 높은 디스크들과 결함 발생 가능성이 낮은 디스크들이 판단될 수 있다. 또한, 각각의 디스크들은 다수 개의 저장 매체들을 포함할 수 있으며, 결함 발생 가능성은 상기 저장 매체를 단위로 하여 판단될 수 있다. 또는, 각각의 저장 매체는 다수의 영역들을 포함할 수 있으며, 결함 발생 가능성은 상기 영역을 단위로 하여 판단될 수 있다. 제1 및 제2 볼륨에 저장 공간을 할당함에 있어서, 적어도 하나의 볼륨에는 상대적으로 결함 발생 가능성이 낮은(또는, 상대적으로 긴 수명을 갖는) 저장 공간이 할당되도록 함으로써, 데이터 안정성이 확보될 수 있다.
한편, 스토리지 시스템(100)은 외부로부터 RAID 정보(Info_RAID)를 수신하는 경로를 가지며, 상기 RAID 정보(Info_RAID)의 전달 경로는 다양하게 설정될 수 있다. 예컨대, 스토리지 시스템(100)과 호스트(또는, 스토리지 시스템을 관리하는 관리자 시스템) 사이에는 기 협의된 신호들을 송수신하기 위한 인 밴드(In-band) 채널이 구비되거나, 또는 추가의 신호들을 송수신하기 위한 아웃 오브 밴드(Out of-band) 채널이 구비될 수 있으며, 전술한 연관 정보(Info_Rel)는 인 밴드(In-band) 채널 또는 아웃 오브 밴드(Out of-band) 채널을 통해 전송될 수 있다.
한편, RAID 정보(Info_RAID)는 다양한 경우에서 전달될 수 있으며, 일 예로서 볼륨의 생성시 또는 볼륨의 확장/축소 등의 변경 시에 RAID 정보(Info_RAID)가 함께 스토리지 시스템(100)으로 제공될 수 있다. 또한, RAID 정보(Info_RAID)에 기반하는 저장 공간의 할당 동작은 다양한 경우에서 수행될 수 있으며, 일 예로서 볼륨의 생성, 확장/축소 등이 수행될 때 할당 동작이 수행되거나, 또는 데이터 기록 시마다 할당 동작이 동적으로 수행될 수도 있다.
한편, 전술한 실시예에서는 각각의 볼륨에 대응하여 RAID 정보(Info_RAID)가 제공되는 것으로 설명되었으나, 본 발명의 실시예들은 이에 국한될 필요가 없다. 예컨대, 볼륨의 생성 요청과는 별개로, 기 생성된 두 개 이상의 볼륨들이 서로 연관되어 있음을 나타내는 RAID 정보(Info_RAID)가 스토리지 시스템(100)으로 제공되도록 시스템이 설계되어도 무방할 것이다.
상기와 같은 본 발명의 일 실시예에 따르면, 스토리지 시스템(100) 내부에 RAID 알고리즘을 수행하기 위한 별도의 소프트웨어(또는, 프로그램)가 구비될 필요 없이, 호스트의 데이터를 안정적으로 저장할 수 있다. 종래의 경우, 호스트에 RAID 알고리즘이 채용됨에 따라, 호스트는 스토리지 시스템(100)으로부터 할당받은 볼륨들을 RAID로 구성하여 이용한 반면에, 스토리지 시스템(100)은 RAID와는 무관하게 임의의 저장 공간을 볼륨들에 할당하여 호스트로 제공하는 동작만을 수행하므로, 볼륨들 사이에 결함이 적절하게 격리되지 않아 데이터 안정성이 저하될 수 있다. 그러나, 본 발명의 실시예에 따르면, 스토리지 시스템(100)에서 RAID 알고리즘 수행에 따른 오버헤드를 제거할 수 있으므로 데이터 저장 속도를 향상할 수 있을 뿐 아니라, 외부로부터의 RAID 정보 및/또는 디스크 정보를 참조하여 볼륨들 사이의 결함을 격리할 수 있으므로, 데이터 안정성을 향상할 수 있다.
도 2는 도 1에 도시된 스토리지 시스템에서의 할당 동작의 예를 나타내는 블록도이다. 이하의 실시예들에서는, 스토리지 시스템(100)이 볼륨들 사이의 연관 정보로서 RAID 정보(Info_RAID)를 수신하는 것으로 정의될 것이다. 그러나, 전술한 바와 같이, RAID 정보(Info_RAID)는 다양하게 정의가 가능하며, 실시예들에 따라 볼륨들 사이의 연관 정보와 동일한 개념으로 정의될 수도 있을 것이다.
도 1 및 도 2를 참조하면, 볼륨 매니저(120)는 호스트로부터의 요청에 따라 볼륨 생성, 확장 및 축소 등의 관리 동작을 수행할 수 있다. 또한, 전술한 실시예에서와 같이, 볼륨 매니저(120)는 외부로부터 제공되는 RAID 정보(Info_RAID)를 저장 및 관리할 수 있으며, RAID 정보(Info_RAID)에 기반하여 볼륨 관리 동작을 수행할 수 있다. 또한, 일 실시예에 따라, 볼륨 매니저(120)는 외부로부터 제공되는 RAID 정보(Info_RAID)와 스토리지 시스템(100) 내부에 구비될 수 있는 디스크 정보(Info_disk)의 조합에 근거하여 하나 이상의 디스크(또는, 디스크의 저장 공간)를 볼륨에 할당하는 동작을 수행할 수 있다. 디스크 정보(Info_disk)는 스토리지 디바이스(130) 내에 구비되는 디스크들(131_1 ~ 131_M)의 일반적인 정보와 함께, 디스크들(131_1 ~ 131_M)의 상태를 나타내는 정보를 포함할 수 있다.
볼륨 생성 및 할당 동작을 예로 들면, 볼륨 매니저(120)는 외부로부터의 볼륨 관리 요청(Req_VM)에 응답하여 볼륨을 생성하고 저장 공간을 할당하기 위한 관리 동작을 수행할 수 있다. 또한, RAID 정보(Info_RAID)나 할당 결과를 나타내는 메타 데이터 등을 스토리지 디바이스(130)에 백업하기 위해, 볼륨 매니저(120)는 볼륨 관리에 관련된 정보(Info_VM)를 출력할 수 있다.
볼륨 매니저(120)의 제어 하에서, 디스크들(131_1 ~ 131_M)을 이용한 저장 공간의 할당이 수행될 수 있다. 예컨대, 제1 볼륨(Vol. A)에는 하나의 물리적 디스크의 저장 공간이 할당될 수 있으며, 예컨대 제1 디스크(Disk 1)의 저장 공간이 제1 볼륨(Vol. A)에 할당될 수 있다. 반면에, 제2 볼륨(Vol. B)에는 두 개 이상의 물리적 디스크들의 저장 공간이 할당될 수 있으며, 예컨대 제2 디스크(Disk 2) 및 제3 디스크(Disk 3)의 물리적 공간이 제2 볼륨(Vol. B)에 할당될 수 있다.
상기와 같은 할당 동작은 RAID 정보(Info_RAID)에 기반하여 수행될 수 있다. 일 예로서, 호스트로부터의 제1 및 제3 볼륨들(Vol. A, Vol. C)에 대응하는 RAID 정보(Info_RAID)가 RAID 1을 나타내는 경우, 볼륨 매니저(120)는 RAID 정보(Info_RAID)에 기반하여 제1 및 제3 볼륨들(Vol. A, Vol. C)에 대한 저장 공간을 할당할 수 있다. 예컨대, RAID 정보(Info_RAID)를 참조하여 제1 볼륨(Vol. A)과 제3 볼륨(Vol. C)이 RAID 1을 구성하는 볼륨들인 것으로 판단될 수 있으며, 제1 볼륨(Vol. A)과 제3 볼륨(Vol. C) 사이에서 결함이 서로 격리되도록 할당이 수행될 수 있다. 예컨대, 제1 볼륨(Vol. A)에 할당되는 물리적 디스크와 제3 볼륨(Vol. C)에 할당되는 물리적 디스크가 중복되지 않도록 저장 공간이 할당될 수 있다.
일 실시예에 따라, RAID 정보(Info_RAID)가 수신되지 않거나, RAID 정보(Info_RAID)가 볼륨들 사이의 결함 격리를 필요로 하지 않는 경우(예컨대, 각각의 볼륨에 RAID 0이 적용되는 경우), 볼륨 매니저(120)는 스토리지 디바이스(130)에 구비되는 디스크들(131_1 ~ 131_M) 중 남는 저장 공간을 적절히 활용하여 볼륨에 할당할 수 있다.
도 3은 본 발명의 일 실시예에 따른 스토리지 시스템이 적용된 컴퓨팅 시스템의 일 예를 나타내는 블록도이다.
도 3을 참조하면, 스토리지 시스템(100)은 인터페이스(110), 볼륨 매니저(120) 및 스토리지 디바이스(130)를 포함할 수 있다. 또한, 스토리지 시스템(100)을 관리하는 관리자(Administrator) 시스템(140)이 유무선 등의 통신망을 통해 스토리지 시스템(100)에 접속할 수 있다. 일 예로서, 스토리지 시스템(100)과 관리자 시스템(140)은, 하나 이상의 호스트들에 스토리지 서비스를 제공하는 시스템(예컨대, 클라우드 시스템)을 구성할 수 있다. 또는, 스토리지 시스템(100)과 관리자 시스템(140)은 어느 하나의 로컬 시스템에 해당할 수 있으며, 스토리지 시스템(100)은 로컬 시스템에서의 스토리지 자원을 제공하고, 관리자 시스템(140)은 운영 체제 및 파일 시스템을 통해 스토리지 시스템(100)의 자원을 활용하는 로컬 호스트에 해당할 수 있다. 또는, 관리자 시스템(140)이 스토리지 시스템(100)에 구비되는 구성에 해당하는 것으로 정의되어도 무방하다.
관리자 시스템(140)은 네트워크를 통해 외부의 호스트(HOST)와 통신할 수 있으며, 호스트(HOST)로부터 전술한 실시예에서의 볼륨 관리 요청(Req_VM)과 이에 대응하는 연관 정보로서 RAID 정보(Info_RAID)를 수신할 수 있다. 관리자 시스템(140)은 호스트(HOST)로부터의 볼륨 관리 요청(Req_VM) 및 RAID 정보(Info_RAID)를 스토리지 디바이스(130)로 전달할 수 있다.
일 실시예로서, 관리자 시스템(140)을 운영하는 관리자가 호스트로부터의 요청에 따른 볼륨 관리를 수동적으로 수행할 수 있도록, 어플리케이션 프로그래밍 인터페이스(Application Programming Interface, 141)가 관리자 시스템(140)에 설치될 수 있다. 또한, API(141)에 추가의 코드가 부가됨에 따라, GUI(Graphical User Interface)나 DOS 창과 같은 인터페이스가 관리자에게 제공될 수 있다. 관리자는 호스트로부터의 요청에 따른 볼륨 관리를 위한 정보를 API(141)를 통해 입력하고, 관리자 시스템(140)은 입력된 정보에 따른 볼륨 관리 요청(Req_VM) 및/또는 RAID 정보(Info_RAID)를 생성하여 스토리지 디바이스(130)로 제공할 수 있다.
도 4는 본 발명의 일 실시예에 따른 스토리지 시스템이 적용된 컴퓨팅 시스템의 다른 예를 나타내는 블록도이다.
도 4를 참조하면, 스토리지 시스템(100)은 네트워크를 통해 다수 개의 호스트들과 통신할 수 있으며, 각각의 호스트로부터의 요청에 따른 볼륨 관리 동작을 수행할 수 있다. 스토리지 시스템(100)은 인터페이스(110), 볼륨 매니저(120) 및 스토리지 디바이스(130)를 포함할 수 있다.
어느 하나의 호스트(200)를 참조하면, 호스트(200)는 다수 개의 가상 머신들(210)을 지원할 수 있으며, 하이퍼바이저(220)는 다수 개의 가상 머신들(210)이 스토리지 시스템(100)의 자원을 억세스하도록 지원할 수 있다. 호스트(200)와는 별개로 가상 머신들(210) 각각은 운영 체제를 실행함으로써 스토리지 시스템(100)에 볼륨 관리 요청(Req_VM)을 제공할 수 있다. 스토리지 시스템(100) 측면에서는, 가상 머신들(210) 각각이 저장 공간을 활용하는 독립적인 컴퓨팅 시스템에 해당할 수 있다. 도 4에서의 컴퓨팅 시스템에 SCSI(Small Computer System Interface)가 적용된 경우, 호스트(200)는 데이터 억세스 실행을 위한 요청을 제공하는 이니시에이터(initiator) 기능을 수행할 수 있으며, 스토리지 시스템(100)은 데이터 억세스를 실행하는 타깃(target)의 기능을 수행할 수 있다.
또한, 데이터의 안정적인 억세스를 위하여 RAID 알고리즘이 호스트(200)에 채용될 수 있으며, 가상 머신들(210) 각각은 RAID 알고리즘을 실행함에 따라 RAID 기능에 기반하는 데이터 억세스 요청을 스토리지 시스템(100)에 제공할 수 있다. 전술한 실시예에 따라, 가상 머신들(210) 각각은 볼륨 관리 요청(Req_VM) 및 RAID 정보(Info_RAID)를 생성하고, 이를 네트워크를 통해 스토리지 시스템(100)으로 제공할 수 있다. 또한, 전술한 실시예에서와 같이 사용자(또는, 관리자) 인터페이스를 위하여, API(230)가 호스트(200)에 설치될 수 있다.
또한, 도 4에 도시되지는 않았으나, 호스트(200)는 다양한 운영 체제 및 파일 시스템에 따라 스토리지 시스템(100)에 데이터를 억세스할 수 있다. 일 예로서, Windows 계열의 운영 체제에서의 FAT(File Allocation Table) 또는 NTFS(New Technology File System) 등의 파일 시스템이나, Unix/Linux 계열의 운영 체제에서의 UFS(Unix File System), EXT2(Extended 2), EXT3(Extended 3), JFS(journaled file system) 등의 다양한 파일 시스템이 이용될 수 있다.
도 5는 본 발명의 예시적인 실시예에 따른 스토리지 시스템에 구비되는 하드웨어 구성을 나타내는 블록도이다.
도 5를 참조하면, 스토리지 시스템(300)은 프로세싱 유닛(310), 입출력부(320), 워킹 메모리(330), 정보 테이블(340) 및 스토리지 디바이스(350)를 포함할 수 있다. 전술한 바와 유사하게, 스토리지 시스템(300)은 RAID 정보에 기반하여 볼륨 관리 동작을 수행할 수 있으며, 스토리지 디바이스(350)는 다수 개의 디스크들을 포함할 수 있다.
본 발명의 실시예들에 따른 볼륨 관리 동작은 워킹 메모리(330)에 로딩된 소프트웨어를 실행함에 의해 수행될 수 있다. 상기 소프트웨어는 스토리지 시스템(300) 내의 저장 수단(예컨대, 불휘발성 저장 수단)에 저장되어 워킹 메모리(330)에 로딩될 수 있으며, 일 실시예에 따라, 워킹 메모리(330)는 컴퓨터 판독 가능 매체로서 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다. 예컨대, 워킹 메모리(330)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), EEPROM(Electronically Erasable Programmable Read Only Memory), 플래시 메모리 또는 다른 메모리 기술 등으로 구현될 수 있다.
워킹 메모리(330)에 저장된 소프트웨어는 그 기능에 따라 다수 개의 모듈들로 구분될 수 있다. 예컨대, 워킹 메모리(330)에 저장된 소프트웨어는 볼륨 관리 모듈(331), 할당 관리 모듈(332), 테이블 관리 모듈(333) 및 어드레스 변환 모듈(334)을 포함할 수 있다.
프로세싱 유닛(310)은 볼륨 관리 모듈(331)을 실행함에 의해 볼륨 생성, 확장 및 축소 등의 볼륨 관리 동작을 수행할 수 있다. 또한, 프로세싱 유닛(310)은 할당 관리 모듈(332)을 실행함에 의해, 볼륨들에 저장 공간을 할당하는 동작을 관리할 수 있다. 또한, 프로세싱 유닛(310)은 테이블 관리 모듈(333)을 실행함에 의해, 볼륨 관리 동작에 관련된 각종 정보의 저장 및 업데이트 동작을 수행할 수 있다. 일 실시예에 따라, 스토리지 시스템(300) 내에는 볼륨들 사이의 연관 정보 및/또는 RAID 레벨에 관련된 정보를 포함하는 테이블이 구비될 수 있으며, 또한 스토리지 시스템(300) 내에 구비되는 물리적 디스크에 관련된 정보를 포함하는 테이블이 구비될 수 있다. 테이블 관리 모듈(333)의 실행 결과에 따라, 전술한 각종 테이블의 정보가 관리될 수 있다.
한편, 프로세싱 유닛(310)은 어드레스 변환 모듈(334)을 실행함에 의해, 호스트로부터 억세스 요청된 데이터의 논리적 어드레스를 스토리지 디바이스(350)의 물리적 저장 위치를 나타내는 물리적 어드레스로 변환할 수 있다.
도 6은 종래의 방식에 따라 볼륨들에 대해 임의적인 저장 공간을 할당하는 예를 나타내는 블록도이다. 도 6에서는, 호스트가 볼륨 A 및 볼륨 B를 RAID 1로 구성하고, 스토리지 시스템은 RAID 정보의 이용 없이 임의적으로 저장 공간을 볼륨 A 및 볼륨 B에 할당하는 예가 도시된다.
호스트에는 RAID 구성을 지원하기 위한 RAID 알고리즘이 구비될 수 있으며, RAID 1 구성을 위해 스토리지 시스템으로 두 개의 볼륨들(Vol A, Vol B)의 생성을 요청할 수 있다. 스토리지 시스템에는 M 개의 물리적 디스크들이 구비될 수 있으며, 그 일 예로서 도 6에는 M 개의 SSD들(SSD 1 ~ SSD M)이 구비되는 예가 도시된다.
호스트는 RAID 1의 구성을 위한 두 개의 볼륨들(Vol A, Vol B)의 생성을 요청하면, 스토리지 시스템은 호스트로부터의 요청에 응답하여 두 개의 볼륨들(Vol A, Vol B)을 생성하고, M 개의 SSD들(SSD 1 ~ SSD M)의 저장 공간을 두 개의 볼륨들(Vol A, Vol B) 각각에 임의로 할당할 수 있다. 도 6에서는 그 일 예로서, 제1 SSD(SSD 1)의 일부의 저장 공간이 볼륨 A(Vol A)에 할당되고, 제1 SSD(SSD 1)의 다른 일부의 저장 공간과 제2 SSD(SSD 2)의 일부의 공간이 볼륨 B(Vol B)에 할당되는 예가 도시된다.
기록 동작을 예로 들면, 호스트가 RAID 1 레벨에 따라 데이터 기록 요청을 제공함에 따라, 원본 데이터가 볼륨 A(Vol A)에 할당된 제1 SSD(SSD 1)에 저장되고, 그 미러(mirror) 데이터가 볼륨 B(Vol B)에 할당된 제1 SSD(SSD 1) 및 제2 SSD(SSD 2)에 저장될 수 있다. 이 때, 제1 SSD(SSD 1)에 결함이 발생되어 데이터가 손실되는 경우, 볼륨 B(Vol B)에 저장된 데이터 중 적어도 일부가 함께 손실될 수 있다. 이에 따라 스토리지 시스템에 저장된 데이터의 이용이 불가능해지는 문제가 발생될 수 있다.
본 발명의 실시예들에 따라, 볼륨 매니저가 물리적 디스크를 볼륨에 할당할 때, 스토리지 시스템 내부에서 RAID 알고리즘을 수행할 필요 없이 외부로부터의 RAID 정보 및/또는 스토리지 시스템 내부의 디스크 정보에 기반하여 할당 동작을 수행하므로, 전술한 바와 같은 데이터 안정성이 저하되는 문제가 감소될 수 있다.
도 7은 본 발명의 일 실시예에 따른 스토리지 시스템의 볼륨 관리 방법을 나타내는 플로우차트이다.
도 7을 참조하면, 스토리지 시스템은 호스트로부터 볼륨 생성 및 변경 등의 관리 요청을 수신하고(S11), 또한, 관리 요청의 대상이 되는 하나 이상의 볼륨들에 대한 RAID 정보를 수신한다(S12). 일 예로서, 호스트가 적어도 두 개의 볼륨들을 하나의 RAID로 구성하는 경우, 상기 RAID 구성에 관련된 정보가 RAID 정보로서 수신될 수 있다. 예컨대, 호스트가 RAID 1을 구성하는 두 개의 볼륨들(예컨대, 제1 및 제2 볼륨들)의 생성 요청을 제공하는 경우, 제1 볼륨과 제2 볼륨이 데이터 억세스와 관련하여 서로 연관되어 있음을 나타내는 정보가 RAID 정보에 포함될 수 있다. 또한, 제1 볼륨과 제2 볼륨이 구성하는 RAID 레벨에 관련된 정보(예컨대, RAID 정보)가 RAID 정보에 더 포함될 수 있다. 스토리지 시스템은 수신된 RAID 정보를 판단함과 함께, 상기 RAID 정보를 내부에 저장하여 볼륨들 사이의 연관 정보로서 관리할 수 있다(S13).
한편, 상기 볼륨 관리 동작은 저장 공간을 볼륨들에 할당하는 동작을 포함할 수 있으며, 저장 공간의 할당 동작은 외부로부터 제공된 RAID 정보를 참조하여 수행될 수 있다. 일 실시예에 따라, 저장 공간의 할당 동작은 스토리지 디바이스에 구비되는 디스크들의 정보를 더 참조하여 수행될 수 있으며, 이에 따라 스토리지 시스템은 그 내부의 디스크 정보를 판단하고(S14), 디스크 정보의 판단 결과를 더 참조하여 볼륨 관리 동작을 수행할 수 있다. 즉, 전술한 RAID 정보 및 디스크 정보 중 적어도 하나를 판단한 결과에 기반하여, 볼륨들에 저장 공간을 할당하는 동작을 관리할 수 있다.
상기와 같은 볼륨 관리 동작에 따라, 하나의 RAID를 구성하는 다수의 볼륨들이 서로 동일한 물리적 디스크를 공유하지 않도록 저장 공간이 할당될 수 있다. 예컨대, RAID 1을 구성하는 제1 볼륨 및 제2 볼륨에 있어서, 상기 제1 볼륨에 어느 하나의 디스크의 저장 공간이 할당되면, 상기 제2 볼륨에는 다른 디스크들 중 적어도 하나의 디스크의 저장 공간이 할당될 수 있다.
한편, 변형 가능한 실시예로서, 호스트가 볼륨 관리 요청을 제공하면, 스토리지 시스템을 운영하는 관리자 시스템이 상기 볼륨 관리 요청을 수신하고, 요청을 분석한 결과에 따라 연관 정보(또는, RAID 정보)를 생성하여 스토리지 시스템의 볼륨 매니저로 제공되도록 시스템이 구현될 수도 있다.
도 8a,b는 스토리지 시스템이 RAID 정보를 수신하는 예들을 나타내는 블록도이다.
도 8a를 참조하면, 스토리지 시스템은 볼륨 매니저(420)를 구비하고, 볼륨 생성시 RAID 정보(Info_RAID)가 볼륨 매니저(420)로 제공될 수 있다. RAID 정보(Info_RAID)는 관리 툴(Administration Tool) 또는 API(410)에서 생성될 수 있으며, 상기 관리 툴(Tool)/API(410)는 호스트에 설치될 수 있거나, 또는 스토리지 시스템을 운영하는 관리자 시스템에 설치될 수도 있다.
호스트 또는 관리자 시스템에 설치된 관리 툴/API(410)로부터 볼륨 생성에 관련된 정보가 볼륨 매니저(420)로 제공될 수 있다. 일 예로서, 생성될 볼륨의 명칭(Name) 및 용량(Size) 등의 각종 파라미터가 볼륨 매니저(420)로 제공될 수 있다. 또한, 추가의 정보로서 이용 가능한 존(Availability zone) 지정 정보, 암호화 여부나 저장될 디스크의 종류(SSD나 HHD 등), 프로비저닝 성능 정보 등을 나타내는 파라미터도 함께 볼륨 매니저(420)로 제공될 수 있다. 또한, 본 발명의 실시예에 따라, 서로 결함이 격리될 볼륨들(또는, 볼륨 그룹)의 정보가 볼륨 매니저(420)로 제공될 수 있으며, 전술한 실시예에서와 같이 볼륨들에 대응하는 RAID 정보(Info_RAID)가 함께 볼륨 매니저(420)로 제공될 수 있다. 서로 결함이 격리될 볼륨들(또는, 볼륨 그룹)의 정보는 볼륨의 리스트로 표현이 가능하며, 또는 이미 그룹화된 볼륨 그룹명이 존재하는 경우에는 그룹명에 대한 지정이 가능하다.
전술한 정보들은 관리 툴/API(410)에 의해 다양한 형태로 볼륨 매니저(420)로 전달될 수 있다. 일 예로서, 명령어 인터페이스(Command-Line Interface, CLI), GUI 및 프로그래밍 API 등을 통해서 정보들이 전달될 수 있으며, 이외에도 스토리지 프로토콜 커맨드(Storage Protocol Command)를 통해서도 정보들이 전달될 수 있다.
한편, 전술한 볼륨의 용어는, 시스템 구성에 따라 다양하게 변경될 수 있다. 일 예로서, 스토리지 시스템에서의 디스크들이 NVMe SSD를 포함하는 경우, 전술한 볼륨 매니저는 네임 스페이스 매니저로 지칭될 수 있다. 또는, 스토리지 시스템을 운영 또는 이용하는 운영 체제가 Windows에 해당하는 경우, 전술한 볼륨 매니저는 파티션 매니저로 지칭될 수 있다. 또는, 시스템에 SCSI가 적용된 경우, 전술한 볼륨 매니저는 로지컬 유닛(LU) 매니저로 지칭될 수 있다. 즉, 전술한 실시예에서 언급된 용어로서 볼륨은 이들을 총칭하는 범용적 용어로 이용될 수 있다.
한편, 볼륨이 변경(예컨대, 확장이나 축소 등)되는 경우 RAID 정보가 볼륨 매니저로 제공될 수 있으며, 도 8b에서는 볼륨 확장 시 RAID 정보가 볼륨 매니저로 제공되는 예가 도시된다.
도 8b를 참조하면, 볼륨 확장 시 볼륨 관리를 위한 각종 정보들이 관리 툴/API(410)을 통해 볼륨 매니저(420)로 제공될 수 있으며, 예컨대 확장 대상의 볼륨의 명칭(Name)이나 변경된 용량(Size) 등의 정보가 볼륨 매니저(420)로 제공될 수 있다. 또한, 볼륨의 특성을 변경하는 과정에서 상기 볼륨에 대응하는 RAID 레벨도 변경이 가능하며, RAID 정보(Info_RAID)가 볼륨 매니저(420)로 제공됨에 따라 볼륨들 사이의 연관 정보(또는, RAID 정보)를 저장하는 테이블이 업데이트될 수 있다.
예컨대, 제1 볼륨이 RAID를 적용함이 없이 이용되다가, 제1 볼륨에 대한 특성 변경이 요청됨과 함께 제1 볼륨에 대응하는 RAID 정보(Info_RAID)가 볼륨 매니저(420)로 제공될 수 있다. 이 경우, 제1 볼륨에 연관되는 다른 볼륨(예컨대, 제2 볼륨)의 정보가 볼륨 매니저(420)로 제공될 수 있으며, 볼륨 매니저(420)는 제1 볼륨과 제2 볼륨이 서로 결함이 격리되도록 저장 공간 할당 등의 관리 동작을 수행할 수 있다. 이 경우, 상기 제1 볼륨에 해당하는 저장 공간에 이전에 기록된 데이터는, 결함의 격리 상태를 유지하기 위하여 새로이 생성된 제2 볼륨의 저장 공간에 이동(또는, 복사)될 수 있다.
또는, 볼륨 확장 및 축소 등의 변경 요청에서, RAID에 관련된 각종 정보가 함께 볼륨 매니저(420)로 제공될 수 있다. 예컨대, 기존에 서로 연관 없이 생성된 제1 볼륨과 제2 볼륨에 대해, 상기 제1 및 제2 볼륨들이 RAID 1을 구성하도록 RAID 정보(Info_RAID)가 제공될 수 있다. 또는, 기존에 RAID 1을 구성하는 제1 및 제2 볼륨들에 대해, 상기 제1 및 제2 볼륨들의 연관성을 해제하기 위한 정보가 제공될 수도 있다. 볼륨 매니저(420)는 볼륨 관리 과정에서, 수신된 RAID 정보(Info_RAID)에 기반하여 볼륨 관리 동작을 수행할 것이다.
한편, 볼륨의 확장 및 축소 등의 관리 동작에서 RAID 정보(Info_RAID)가 볼륨 매니저(420)로 제공되지 않는 경우에는, 이전(또는, 볼륨 생성시)에 이용된 연관 정보가 유지될 수 있다. 예컨대, RAID 1을 구성하는 제1 및 제2 볼륨들 중에서 제1 볼륨에 대한 용량 확장이 요청되면, 스토리지 시스템은 호스트로부터의 요청에 따라 제1 볼륨의 용량을 확장시킬 것이다. 이 때, 스토리지 시스템 내부에 저장된 연관 정보를 참조함에 의해, 상기 제1 볼륨과 제2 볼륨이 RAID 1을 구성함이 판단될 수 있으며, 이 때 제2 볼륨 또한 함께 용량이 확장되도록 볼륨이 관리될 수 있을 것이다.
도 9는 스토리지 시스템에 구비되는 볼륨 매니저의 일 구현 예를 나타내는 블록도이며, 도 10a,b는 도 9의 볼륨 관계 테이블의 일 구현 예를 나타내는 블록도이다. 도 9에서는, 볼륨 생성 요청에 따른 볼륨 관리 동작의 예가 도시된다.
도 9 및 도 10a,b를 참조하면, 볼륨 매니저(500)는 볼륨 관리 프로세서(510), 볼륨 공간 할당부(520), 볼륨 관계 테이블(530) 및 볼륨 메타데이터 테이블(540)을 포함할 수 있다. 도 9에 도시된 구성 요소들은 볼륨 매니저(500)의 동작을 기능 별로 블록화하여 도시된 것으로서, 실제적으로 볼륨 매니저(500)는 도 9에 도시된 기능 블록들을 소프트웨어적으로 실행할 수 있다. 또한, 이를 위해, 볼륨 관리 프로세서(510)는 볼륨 매니저(500) 내부 또는 외부에 구비되는 메모리에 저장된 소프트웨어(또는, 프로그램)를 실행할 수 있다.
먼저, 볼륨 매니저(500)는 볼륨 관계 테이블(530)을 포함하고, 외부로부터 RAID 정보(Info_RAID)가 제공되면, RAID 정보(Info_RAID)를 볼륨 관계 테이블(530)에 저장하거나 업데이트한다. 볼륨 관리 프로세서(510)는 볼륨 생성 요청에 따라 볼륨 생성 동작을 수행함과 함께, 생성된 볼륨들 및 이에 대응하는 RAID 정보(Info_RAID)를 볼륨 관계 테이블(530)에 저장한다.
일 예로서, 도 10a에 도시된 바와 같이, 볼륨 A와 볼륨 B가 RAID 1을 구성함에 따라 볼륨 A와 볼륨 B 사이에서 결함이 격리될 필요가 있을 때, 볼륨 관리 프로세서(510)의 제어 하에서 상기 볼륨 A와 볼륨 B가 서로 연관되어 있음을 나타내는 정보가 볼륨 관계 테이블(530)에 저장될 수 있다. 또는, RAID 정보(Info_RAID)에 따라 볼륨 C 내지 볼륨 F가 RAID 5를 구성하는 것으로 판단될 때, 볼륨 관리 프로세서(510)의 제어 하에서 상기 볼륨 C 내지 볼륨 F가 서로 연관되어 있음을 나타내는 정보가 볼륨 관계 테이블(530)에 저장될 수 있다. 한편, 도 10b에 도시된 바와 같이, 볼륨 관계 테이블(530)에는 볼륨들 사이의 연관 정보와 함께, 서로 연관되는 볼륨들에 적용된 RAID 레벨을 나타내는 정보가 함께 저장될 수 있다.
볼륨 공간 할당부(520)는 볼륨 관계 테이블(530)을 참조하여 물리적 디스크의 저장 공간을 볼륨들에 할당할 수 있다. 또한, 볼륨 공간 할당부(520)는 상기 할당 결과를 볼륨 메타데이터 테이블(540)에 저장하거나 업데이트할 수 있다. 일 실시예에 따라, 볼륨 공간 할당부(520)는 스토리지 시스템에 구비되는 다수의 디스크들의 정보(Info_Disk)를 참조하여 할당 동작을 수행할 수 있다. 전술한 실시예에서와 동일 또는 유사하게, 디스크 정보(Info_Disk)는 볼륨 매니저(500) 내에 저장되거나, 또는 볼륨 매니저(500) 외부에 저장되어 볼륨 공간 할당부(520)로 제공될 수 있다.
볼륨 공간 할당부(520)는 볼륨 관계 테이블(530)을 참조하여 볼륨들 사이의 관계를 판단할 수 있다. 일 예로서, 볼륨 A와 볼륨 B가 RAID 1을 구성하는 경우, 볼륨 공간 할당부(520)는 볼륨 A와 볼륨 B에 각각 서로 다른 물리적 디스크의 저장 공간을 할당시킨다. 예컨대, 스토리지 시스템에 구비되는 다수의 디스크들 중 제1 디스크의 저장 공간이 볼륨 A에 할당되는 경우, 나머지 디스크들 중 적어도 하나의 디스크의 저장 공간이 볼륨 B에 할당되도록 할당 동작이 수행될 수 있다. 상기와 같은 디스크 할당 결과는 볼륨 메타데이터 테이블(540)에 저장될 수 있다.
한편, 도 10a,b는 스토리지 시스템에 저장되는 볼륨들 사이의 연관 정보의 일 예를 나타내는 것으로서, 본 발명의 실시예들에 따른 스토리지 시스템은 이외의 다른 정보를 더 저장하여도 무방하다. 예컨대, 볼륨 생성 및 변경 요청에 포함되는 각종 정보(명칭, 용량, 암호화 여부 등)나, 각각의 볼륨의 동작 특성(예컨대, 입출력 속도)이 볼륨 관계 테이블(530)에 더 저장되어도 무방하다.
전술한 실시예에서 언급된 볼륨 메타데이터 및 디스크 상태 정보의 일 예를 설명하면 다음과 같다. 도 11a,b는 볼륨 메타데이터 및 디스크 상태 정보를 포함하는 테이블 정보의 예를 나타내는 도면이다.
도 11a를 참조하면, 볼륨 메타데이터 테이블은 볼륨들에 할당된 저장 공간에 관련된 정보를 포함한다. 일 예로서, 볼륨 A에 저장 공간이 할당된 디스크는 제1 SSD에 해당하고, 상기 저장 공간에 해당하는 제1 SSD(SSD 1)의 어드레스 정보가 볼륨 메타데이터 테이블에 포함될 수 있다. 어드레스 정보는, 저장 공간이 시작되는 영역의 어드레스와 저장 공간이 종료되는 영역의 어드레스를 포함할 수 있다. 또한, 볼륨 A에 할당된 저장 공간의 용량(Capacity)에 관련된 정보와, 사용 가능한 공간(Free Space)의 용량 정보가 테이블에 더 포함될 수 있다.
한편, 볼륨 A와 볼륨 B가 RAID 1을 구성함에 따라, 볼륨 A와 볼륨 B에는 서로 다른 디스크들의 저장 공간이 할당될 수 있다. 예컨대, 볼륨 B에 저장 공간이 할당된 디스크는 제2 SSD(SSD 2) 및 제3 SSD(SSD 3)에 해당하고, 볼륨 B에 할당된 저장 공간의 용량(Capacity)은 볼륨 A와 동일할 수 있다. 또한, 볼륨 A에 저장된 데이터가 볼륨 B에 미러링되므로, 볼륨 B에서의 사용 가능한 공간(Free Space)의 용량 정보는 볼륨 A의 사용 가능한 공간과 서로 동일할 수 있다.
반면에, 볼륨 C는 상기 볼륨 A와 하나의 RAID를 구성하지 않으므로(또는, 볼륨 A와의 연관 정보를 갖지 않으므로), 볼륨 A와 볼륨 C 사이에서 결함이 격리될 격리될 필요가 없다. 이에 따라, 볼륨 C에 저장 공간이 할당된 디스크는 제1 SSD에 해당하고, 볼륨 C에 할당된 저장 공간의 용량(Capacity)은 호스트의 요청에 따라 다양하게 설정될 수 있다.
한편, 도 11b를 참조하면, 볼륨 공간 할당부(520)는 도 11b에 도시된 바와 같은 디스크 상태 정보를 포함하는 테이블을 참조하여 할당 동작을 수행할 수 있다.
예컨대, RAID 1을 구성하는 볼륨 A 및 볼륨 B에 각각 저장 공간을 할당하는 경우, 어느 하나의 볼륨의 데이터가 손실되더라도 나머지 볼륨의 데이터는 안정적으로 유지될 필요가 있다. 이에 따라, 볼륨 공간 할당부(520)는 디스크 상태 정보를 포함하는 테이블을 참조하여 볼륨 A 및 볼륨 B에 각각 저장 공간을 할당할 수 있다.
디스크 상태 정보는 다양한 종류들의 정보를 포함할 수 있다. 예컨대, 디스크가 플래시 메모리를 포함하는 SSD로 구현되는 경우, 플래시 메모리의 기록 및 소거 회수에 따라 디스크의 열화 정도가 변동될 수 있으며, 일 예로서 기록 및 소거 회수가 증가할수록 디스크의 열화 정도가 커지고, 이에 따라 디스크에 결함이 발생될 확률이 커질 수 있다. 이와 같은 디스크 별로 열화 정도를 나타내기 위하여, 디스크 상태 정보는 기록 회수(W Num), 소거 회수(E Num) 및 비트 에러율(BER) 등의 정보를 포함할 수 있다. 또한, 특정 디스크에 결함이 발생된 경우, 디스크 상태 정보는 각각의 디스크 별로 결함 여부를 나타내는 정보(Defect)를 더 포함할 수 있다.
일 실시예에 따라, 디스크 상태 정보를 더 참조하여 저장 공간을 할당하는 동작은 다양한 방식에 따라 수행될 수 있다. 예컨대, RAID 1을 구성하는 볼륨 A 및 볼륨 B에 대해 동시에 결함 발생 가능성이 높은 디스크를 할당하는 것이 방지될 수 있다. 이에 따라, RAID 1을 구성하는 볼륨들 중 적어도 하나는 결함 발생 가능성이 낮도록 함으로써, 데이터 안정성이 향상되도록 할 수 있다.
도 12a,b는 본 발명의 실시예에 따른 스토리지 시스템에 씬 프로비저닝이 적용된 예를 나타내는 도면이다.
도 12a를 참조하면, 스토리지 시스템에 씬 프로비저닝(Thin Provisioning)이 적용됨에 따라 볼륨에 대한 실제적인 저장 공간의 할당은 데이터 기록 요청시 수행될 수 있다. 호스트로부터 기록 요청이 수신되면, 하나 이상의 디스크들(예컨대, SSD 1 ~ SSD 4)에서 소정 사이즈의 저장 단위(예컨대, Extent)가 제공되고, 디스크들(예컨대, SSD 1 ~ SSD 4)로부터 제공된 Extent 들이 하나의 청크(chunk)를 구성할 수 있다. 즉, 호스트로부터 데이터 기록 요청이 수신될 때마다 상기 청크(chunk) 단위로서 저장 공간이 동적으로 할당될 수 있다.
한편, 도 12b를 참조하면, 씬 프로비저닝이 적용된 스토리지 시스템에서 본 발명의 실시예들에 따른 할당 동작이 수행될 수 있다. 도 12b를 참조하면, 볼륨 매니저(500)는 볼륨 관리 프로세서(510), 볼륨 공간 할당부(520), 볼륨 관계 테이블(530) 및 볼륨 메타데이터 테이블(540)을 포함할 수 있다. 또한, 볼륨 매니저(500)는 요청 프로세서(550) 및 기록 프로세서(560)를 더 포함할 수 있다.
전술한 실시예에서와 같이, 도 12b에 도시된 구성 요소들의 기능은 소프트웨어적으로 구현될 수 있으며, 이를 위해 볼륨 관리 프로세서(510), 요청 프로세서(550) 및 기록 프로세서(560)는 스토리지 시스템 내부에 저장되는 소프트웨어를 각각 실행함에 의해 전술한 기능들을 수행할 수 있다. 또한, 볼륨 관리 프로세서(510), 요청 프로세서(550) 및 기록 프로세서(560)는 서로 별개의 프로세싱 유닛(또는, 별개의 코어)으로 구현되어도 무방하며, 또는 동일한 프로세싱 유닛에 의해 구현되어도 무방하다. 볼륨 관리 프로세서(510), 요청 프로세서(550) 및 기록 프로세서(560)가 서로 동일한 프로세싱 유닛에 의해 구현되는 경우, 상기 프로세서들(510, 550, 560)은 그 기능적으로 서로 분리되어 도시된 구성 요소들에 불과한 것으로서, 상기 프로세서들(510, 550, 560)은 하나의 프로세싱 유닛으로 도시되어도 무방하다.
도 12b에 도시된 구성 요소들의 동작 예를 설명함에 있어서, 전술한 실시예에서와 동일한 구성 요소들은 그 동작이 동일 또는 유사하므로, 이에 대한 구체적인 설명은 생략된다.
씬 프로비저닝 방식에 따라 볼륨 생성 요청이 수신되면, 실제적으로 물리적 저장 공간을 할당함이 없이 볼륨이 생성되고, 외부로부터 수신된 RAID 정보(Info_RAID)가 볼륨 관계 테이블(530)에 저장될 수 있다.
한편, 요청 프로세서(550)는 호스트로부터의 요청을 분석하고, 상기 요청이 기록 요청에 해당하는 경우 기록 요청을 기록 프로세서(560)로 제공한다. 기록 프로세서(560)는 데이터 기록 동작을 제어하기에 앞서 볼륨 공간 할당부(520)를 제어하며, 볼륨 공간 할당부(520)는 볼륨 관계 테이블(530)에 저장된 정보를 참조하여 볼륨에 저장 공간을 할당하는 동작을 수행한다.
또한, 전술한 실시예에서와 같이, 볼륨 공간 할당부(520)는 디스크 정보(Info_Disk)를 더 참조하여 저장 공간의 할당 동작을 수행할 수 있으며, 할당 결과를 볼륨 메타데이터 테이블(540)에 업데이트할 수 있다. 또한, 상기 저장 공간의 할당 결과에 따른 어드레스(예컨대, 디스크 및 논리적 어드레스의 조합)가 기록 프로세서(560)로 제공되면, 기록 프로세서(560)는 해당 어드레스가 지시하는 위치에 데이터를 기록할 수 있다.
상기와 같이 씬 프로비저닝 방식에 따라 데이터가 기록되는 경우, 기록 요청이 수신될 때마다 볼륨 관계 테이블(530)에 저장된 정보에 기반하여 저장 공간의 할당 동작이 수행될 수 있으며, 이에 따라 하나의 RAID를 구성하는 볼륨들에 물리적으로 동일한 디스크의 저장 공간이 할당되는 것이 방지될 수 있다.
도 13a,b는 저장 공간을 볼륨에 할당하는 일 예를 나타내는 블록도 및 표이다. 도 13a,b에서는 씬 프로비저닝 방식에 따라, 볼륨에 대한 저장 공간의 할당이 데이터 기록 요청시에 수행되는 것으로 가정된다.
도 13a를 참조하면, 다수 개의 디스크들(SSD 1 ~ SSD 4)이 볼륨을 구성하기 위한 풀(pool)로서 제공되고, 볼륨 A와 볼륨 B가 RAID 1을 구성하는 예가 도시된다. 전술한 실시예에 따라, 저장 공간을 볼륨에 할당함에 있어서 RAID 1을 구성하는 볼륨들은 서로 그 결함이 격리되도록 하기 위하여, 서로 다른 물리적 디스크의 저장 공간이 볼륨 A와 볼륨 B에 각각 할당될 수 있다. 예컨대, 볼륨 A에는 제1 SSD(SSD 1)의 저장 공간이 할당되고, 볼륨 B에는 제2 및 제3 SSD(SSD 2, SSD 3)들의 저장 공간이 할당될 수 있다. 추가로, 상기 RAID 1과는 무관한 다른 볼륨 C에는 제3 SSD(SSD 3)의 저장 공간이 할당되고, 상기 RAID 1과는 무관한 다른 볼륨 D에는 제1 SSD(SSD 1)의 저장 공간이 할당되는 예가 도시된다.
RAID 1을 구성하는 볼륨들에 데이터가 기록될 때, 볼륨 A에 기록되는 데이터는 볼륨 B에 함께 기록될 수 있다. 디스크들의 활용 상태에 따라 디스크들(SSD 1 ~ SSD 4) 각각의 저장 공간은 다른 볼륨들에도 할당될 수 있으며, 이 때, 기록 요청에 대응하여 저장 공간을 볼륨들에 할당함에 있어서 제2 및 제3 SSD(SSD 2, SSD 3)에는 추가의 저장 공간이 남아있는 반면에 제1 SSD(SSD 1)에는 추가로 할당될 저장 공간이 남아있지 않은 경우가 발생될 수 있다.
전술한 실시예에서의 볼륨 공간 할당부는, 볼륨 메타데이터 테이블을 참조하여 상기와 같은 디스크들의 이용 상태를 판단할 수 있으며, 추가의 저장 공간이 없는 제1 SSD(SSD 1)에 기록될 데이터가 다른 디스크에 기록되도록 저장 공간의 할당을 수행할 수 있다. 일 예로서, 기록 요청에 대응하여 제4 SSD(SSD 4)의 저장 공간이 볼륨 A에 할당되고, 데이터는 할당된 제4 SSD(SSD 4)의 저장 공간에 기록될 수 있다. 기록 요청에 대응하는 데이터(Data_O)는 볼륨 A에 할당되는 제4 SSD(SSD 4)의 저장 공간에 기록될 수 있으며, 상기 데이터의 복사 데이터(또는, 미러 데이터(Data_C))는 볼륨 B에 할당되는 제2 SSD(SSD 2) 및/또는 제3 SSD(SSD 3)의 저장 공간에 기록될 수 있다.
한편, 상기와 같은 저장 공간의 할당 및 기록에 따라, 도 13b에 도시된 바와 같은 볼륨 메타데이터 테이블의 업데이트가 수행될 수 있다. 예컨대, 볼륨 메타데이터 테이블에는 기존에 볼륨들에 할당된 저장 공간들의 정보가 포함될 수 있으며, 상기 언급된 예에 따라 볼륨 A에 할당된 제1 SSD(SSD 1)의 저장 공간에 관련된 정보가 저장될 수 있으며, 또한 볼륨 B에 할당된 제2 SSD(SSD 2) 및 제3 SSD(SSD 3)의 저장 공간에 관련된 정보가 저장될 수 있다. 또한, 볼륨 A에 새로이 할당된 제4 SSD(SSD 4)의 저장 공간에 정보가 볼륨 메타데이터 테이블에 업데이트될 수 있다.
상기와 같이, 씬 프로비저닝 방식에 따라 데이터를 기록함에 있어서 볼륨들 사이의 연관 정보가 판단되고, 어느 하나의 볼륨(예컨대, 볼륨 A)에 기존과는 다른 물리적 디스크의 저장 공간이 할당되어야 할 경우에도, 다른 볼륨(예컨대, 볼륨 B)과 결함이 격리되도록 저장 공간이 할당될 수 있다.
도 14는 본 발명의 실시예들에 따라 하나의 RAID를 구성하는 다수의 볼륨들에 저장 공간이 할당된 예를 나타내는 도면이다.
도 14를 참조하면, 호스트로부터의 볼륨 생성 요청이 볼륨 매니저로 제공됨과 함께, 생성되는 볼륨에 대응하는 RAID 정보(Info_RAID)가 볼륨 매니저로 제공될 수 있다. RAID 1을 구성하는 두 개의 볼륨들(Vol A, Vol B)의 생성 요청이 제공됨에 따라, 볼륨 매니저는 두 개의 볼륨들(Vol A, Vol B) 사이의 연관 정보를 갖는 RAID 정보(Info_RAID)를 볼륨 연관 테이블에 저장(또는, 업데이트)할 수 있다. 일 예로서, 두 개의 볼륨들(Vol A, Vol B)이 RAID 1을 구성함을 나타내는 정보가 볼륨 연관 테이블에 저장될 수 있다.
또한, 생성된 볼륨들(Vol A, Vol B)에 대해 저장 공간을 할당하는 동작이 수행될 수 있다. 스토리지 시스템에 구비되는 다수의 디스크들(SSD 1 ~ SSD M)의 저장 공간이 볼륨들(Vol A, Vol B)에 할당될 수 있으며, 본 발명의 실시예들에 따라 RAID 1을 구성하는 두 개의 볼륨들(Vol A, Vol B)에 대해 결함이 격리되도록 저장 공간의 할당 동작이 수행될 수 있다. 예컨대, 제1 SSD(SSD 1)의 저장 공간 중 일부가 제1 볼륨(Vol A)에 할당되고, 제2 SSD(SSD 2) 및 제3 SSD(SSD 3)의 저장 공간 중 일부가 제2 볼륨(Vol B)에 할당될 수 있다. 서로 다른 물리적 디스크의 저장 공간이 제1 볼륨(Vol A) 및 제2 볼륨(Vol B)에 각각 할당되므로, RAID 1을 구성하는 볼륨들(Vol A, Vol B)의 데이터가 동시에 손실될 가능성이 감소될 수 있다.
한편, 본 발명의 실시예에 따라 저장 매체를 물리적으로 격리하는 동작은 다양하게 수행될 수 있다. 예컨대, 도 14에 도시된 바와 같이, 어느 하나의 디스크(SSD)가 다수 개의 메모리 칩들을 포함하는 경우, 도 14에 도시된 구성(R)은 하나의 메모리 칩에 해당할 수 있다.
또는, 도 14에서 M 개의 저장 매체들이 SSD가 아니라 메모리 칩에 해당하는 것으로 정의될 수도 있다. 예컨대, 도 14에 도시된 스토리지 시스템은 M 개의 메모리 칩들(MEM_C)을 포함하는 것으로 정의될 수 있다. 이 때, 도 14에 도시된 구성(R)은 어느 하나의 메모리 칩(MEM_C)에 구비되는 소정의 영역의 저장 공간에 해당할 수 있다. 또한, 이 경우, 저장 매체를 물리적으로 격리하는 동작은 서로 다른 물리적인 메모리 칩들의 저장 공간을 할당하는 것으로 정의될 수도 있다.
또한, 본 발명의 실시예에 따라, 스토리지 시스템은 다양한 형태로 정의될 수 있다. 예컨대, 도 14에 도시된 어느 하나의 SSD가 스토리지 시스템으로 정의되어도 무방하다. 이 때, 어느 하나의 SSD는 저장 매체로서 하나 이상의 메모리 칩들을 포함할 수 있으며, 또한 전술한 실시예에 따른 볼륨 관리 및 저장 공간의 할당을 위한 볼륨 매니저가 각각의 SSD 내에 구비될 수도 있다. 즉, 볼륨 매니저의 기능이 각각의 SSD 내부에 구비되고, 각각의 SSD가 스토리지 시스템으로 정의되어도 무방하다. 이 때, 각각의 SSD 내에서 볼륨 관리 동작을 수행함에 있어서, 하나의 RAID를 구성하는 두 개 이상의 볼륨들에 대해, 서로 물리적으로 다른 메모리 칩의 저장 공간이 할당될 수 있을 것이다.
도 15 내지 도 17은 본 발명의 다양한 볼륨 관리 동작의 예를 나타내는 플로우차트이다. 도 15에서는 스토리지 시스템에서의 정보의 관리 동작이 예시되며, 도 16에서는 볼륨 생성시 저장 공간이 볼륨에 할당되는 예가 도시된다. 또한, 도 17에서는 디스크들의 정보를 이용하여 저장 공간이 볼륨에 할당되는 예가 도시된다.
도 15를 참조하면, 호스트(또는, 스토리지 시스템의 관리자 시스템)로부터 다수의 볼륨들의 생성 요청이 수신될 수 있다(S21). 또한, 호스트는 생성을 요청한 다수의 볼륨들을 RAID로 구성할 수 있으며, 호스트로부터 다수의 볼륨들에 대응하는 RAID 정보가 수신될 수 있다(S22). 전술한 실시예에서와 유사하게, 상기 RAID 정보는 호스트나 관리자 시스템의 툴(Tool) 또는 API(Application Programming Interface)에 의해 생성될 수 있다.
스토리지 시스템은 호스트의 요청에 따른 볼륨들을 생성하고(S23), 호스트로부터 제공된 RAID 정보를 저장 및 관리할 수 있다(S24). 예컨대, 볼륨 A와 볼륨 B의 생성이 요청되고, 볼륨 A와 볼륨 B가 RAID 1을 구성함을 나타내는 정보가 수신됨에 따라, 볼륨 A와 볼륨 B가 서로 연관되어 있음을 나타내는 연관 정보와 함께, 상기 볼륨 A와 볼륨 B가 구성하는 RAID 레벨에 관련된 정보가 저장되어 관리될 수 있다.
또한, 볼륨 생성 요청에 따라 생성된 볼륨에 저장 공간이 할당될 수 있으며, 또는 기록 요청시마다 볼륨에 저장 공간이 할당될 수 있다. 상기 저장 공간의 할당은 RAID 정보를 참조함에 의해 수행될 수 있으며, RAID 정보를 참조한 결과에 따른 할당 동작이 수행됨에 따라, 그 결과가 볼륨 메타데이터로서 저장 및 관리될 수 있다(S25). 전술한 실시예에 따라, RAID 정보를 참조함에 할당 동작이 수행되므로, 동일한 RAID를 구성하는 볼륨들 사이의 결함이 서로 격리될 수 있도록 저장 공간이 할당될 수 있다.
한편, 도 16을 참조하면, 스토리지 시스템은 호스트로부터 제1 및 제2 볼륨들의 생성 요청을 수신할 수 있다(S31). 호스트는 내부적으로 RAID 알고리즘을 수행하여, 하나의 RAID를 구성하는 볼륨들을 지정하고 이에 대한 생성을 스토리지 시스템으로 제공할 수 있다. 호스트와 스토리지 시스템 사이에서 RAID 정보의 전달 경로가 형성됨에 따라, 스토리지 시스템은 제1 및 제2 볼륨들에 대응하는 RAID 정보를 수신할 수 있다(S32).
스토리지 시스템은 RAID 정보를 판단하고(S33), 판단 결과에 따라 제1 및 제2 볼륨들이 RAID 기능에서 서로 연관되어 있는 지가 판단될 수 있다. 또한, 제1 및 제2 볼륨들이 구성하는 RAID의 레벨이 판단될 수 있다. 상기 판단 결과에 따라, 제1 및 제2 볼륨들 사이에 결함을 격리시킬 지의 여부가 판단될 수 있으며, 결함 격리가 필요로 되는 경우에는 서로 다른 물리적 디스크들의 저장 공간이 제1 및 제2 볼륨에 각각 할당될 수 있다.
한편, 도 17을 참조하면, 스토리지 시스템은 볼륨 생성 요청이나 또는 기록 요청을 수신할 수 있으며(S41), 상기 생성이나 기록이 요청되는 볼륨에 대응하는 RAID 정보를 판단할 수 있다(S42). 일 예로서, 볼륨 생성 요청시에는 호스트로부터 제공된 RAID 정보를 판단할 수 있으며, 기록 요청시에는 스토리지 시스템 내부에 저장되어 관리되는 연관 정보 테이블을 참조하여 RAID 정보를 판단할 수 있다.
볼륨들 각각에 저장 공간을 할당함에 있어서, 다수의 디스크들의 정보가 더 판단될 수 있다(S43). 상기 디스크들의 정보로서, 스토리지 시스템에 구비되는 디스크들의 개수, 디스크들의 ID, 디스크들의 종류 등 기본적인 정보 이외에도, 각각의 디스크의 수명이나 결함 가능성을 나타내는 상태 정보가 판단될 수 있다. 전술한 바와 같이, SSD나 HDD 등으로 구현되는 디스크는 그 소거 회수, 기록 회수 등에 의해 수명이 단축될 수 있으며, 또한 저장된 데이터에 대해 열화가 진행됨에 따라 비트 에러율(BER)이 증가될 수 있다.
상기와 같은 상태 정보의 판단 결과에 따라, 볼륨들 각각에 할당될 디스크들이 선택될 수 있다(S44). 일 예로서, RAID 1을 구성하는 볼륨 A 및 볼륨 B에 저장 공간을 할당함에 있어서, RAID 1에서 데이터의 안정적인 저장을 위해 볼륨 A 및 볼륨 B 중 적어도 하나에는 결함이 발생될 가능성이 낮은 디스크가 할당될 필요가 있다. 이에 따라, 디스크들의 상태 정보를 판단한 결과에 기반하여, 볼륨 A 및 볼륨 B 중 적어도 하나에 대응하여 상대적으로 좋은 성능을 가지는(수명이 길게 남았거나 결함 발생 가능성이 낮은) 디스크가 선택될 수 있다.
상기와 같이 볼륨 A 및 볼륨 B에 할당될 디스크들이 선택되면, 상기 선택된 디스크들의 저장 공간이 볼륨 A 및 볼륨 B에 각각 할당될 수 있다(S35). 변형 가능한 실시예로서, 디스크들 각각은 다수의 저장 매체들(예컨대, 메모리 칩 등)을 포함할 수 있으며, 상기 상태 정보에 따라 볼륨들에 할당될 디스크의 선택 동작은 상기 저장 매체를 기준으로 수행될 수 있다. 즉, 동일한 디스크에 다수의 저장 매체들이 포함되는 경우, 볼륨 A 및 볼륨 B에 대해 동일한 디스크가 선택되더라도, 볼륨 A 및 볼륨 B에 대해 서로 다른 저장 매체의 저장 공간이 할당되도록 구성될 수도 있을 것이다. 또는 다른 실시예로서, 어느 하나의 메모리 칩에서, 소정 사이즈를 갖는 저장 영역 단위로 할당 동작이 수행될 수도 있을 것이다.
도 18a,b,c는 본 발명의 변형 가능한 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 18a을 참조하면, 스토리지 시스템에 구비되는 볼륨 매니저(620A)는 볼륨 관리 프로세서(621A), 볼륨 공간 할당부(622A), 볼륨 관계 테이블(623A) 및 볼륨 메타데이터 테이블(624A)을 포함할 수 있다. 또한, 본 실시예에 따라, 볼륨 매니저(620A)는 외부로부터의 직접적인 RAID 정보의 제공이 없이, 스토리지 시스템 내부에서 볼륨들에 적용될 RAID의 레벨(또는 RAID 정보)을 예측하기 위한 RAID 예측부(625A)를 더 포함할 수 있다. 도 18a에 도시된 구성 요소들은 볼륨 매니저(620A)의 동작을 기능 별로 블록화하여 도시된 것으로서, 실제적으로 볼륨 매니저(620A)는 도 18a에 도시된 기능 블록들을 소프트웨어적으로 실행할 수 있다.
볼륨 관리 프로세서(621A)는 내부에서 예측된 RAID 정보에 따라 볼륨 관계 테이블(623A)에 볼륨들의 RAID 정보를 저장하거나 업데이트할 수 있다. 또한, 볼륨 공간 할당부(622A)는 볼륨 생성시 또는 데이터 기록 요청시 볼륨 관계 테이블(623A)에 저장된 정보를 참조하여 볼륨들 각각에 저장 공간을 할당할 수 있다. 또한, 저장 공간의 할당에 따른 결과가 볼륨 메타데이터 테이블(624A)에 업데이트될 수 있다.
본 실시예에 따라, 볼륨 매니저(620A)는 볼륨 관리 요청에 관련된 정보나 볼륨 관리를 요청하는 호스트에 관련된 정보 등의 다양한 정보들을 이용하여 볼륨들에 대응하는 RAID 정보를 예측할 수 있다. 일 실시예에 따라, RAID 예측부(625A)는 볼륨들의 데이터 억세스에 관련된 정보(Info_acc)를 참조하여 볼륨들의 억세스 패턴을 판단할 수 있다. 또한, RAID 예측부(625A)는 볼륨들의 관리 요청을 제공하는 호스트의 정보(예컨대, 호스트의 IP 정보 등(Info_H))를 참조함으로써, 해당 호스트가 요구하는 데이터의 안정성 정도를 판단할 수 있다.
일 예로서, 특정 호스트로부터 하나 이상의 볼륨들의 생성 요청이나 데이터의 기록 요청이 수신될 때, 상기 특정 호스트의 정보(Info_H)가 함께 볼륨 매니저(620A)로 제공될 수 있다. RAID 예측부(625A)는 호스트 정보(Info_H)를 판단하고, 상기 특정 호스트가 볼륨들을 이용하는 방식으로서의 RAID 레벨을 예측할 수 있다. 일 예로서, 상기 특정 호스트가 데이터를 안정적으로 유지할 필요가 있는 호스트인지가 호스트의 IP를 통해 판단될 수 있으며, 상기 특정 호스트가 생성을 요청하거나 데이터의 기록을 요청하는 볼륨들은 호스트에 의해 RAID 1로 이용되는 볼륨들일 가능성이 매우 높다. 이 때, RAID 예측부(625A)는 예측 결과를 출력할 수 있다. 일 실시예에 따라, RAID 예측부(6252A)가 제공하는 예측 결과는, 전술한 실시예에서 언급된 외부로부터 제공되는 RAID 정보에 상응할 수 있다.
볼륨 관리 프로세서(621A)는 상기와 같은 예측 결과에 기반하여 볼륨 관리 동작을 수행할 수 있다. 일 실시예에 따라, 상기 예측 결과에 기반하여 생성된 RAID 정보가 볼륨 관계 테이블(623A)에 저장될 수 있다. 또한, 서로 연관을 갖는 볼륨들에 저장 공간을 할당함에 있어서, 상기 RAID 정보를 참조하여 볼륨들 사이에 결함이 격리될 수 있도록 저장 공간이 할당될 수 있다.
또한 변형 가능한 실시예로서, RAID 예측부(625A)는 억세스에 관련된 정보(Info_acc)를 참조하여 예측 결과를 출력할 수 있다. 예컨대, 데이터 기록 동작시 다수 개의 특정한 볼륨들에 대해 함께(또는, 연속하여) 데이터 기록 또는 독출이 요청되거나, 또는 일정 기간에 지속적으로 함께 기록되거나 독출되는 경우, 상기 다수 개의 특정한 볼륨들은 어느 하나의 RAID를 구성하는 볼륨들일 가능성이 매우 높다. 상기와 같은 억세스 정보(Info_acc)를 참조하여, RAID 예측부(625A)는 전술한 실시예에 따른 RAID 정보에 상응하는 예측 결과를 출력할 수 있다.
볼륨 관리 프로세서(621A)는 억세스 정보(Info_acc)를 참조하여 생성된 예측 결과에 기반하여 볼륨 관리 동작을 수행할 수 있다. 예컨대, 예측 결과에 따라 생성된 RAID 정보가 볼륨 관계 테이블(623A)에 저장될 수 있다. 또한, 상기 RAID 정보를 참조하여 볼륨들 사이에 결함이 격리될 수 있도록 저장 공간이 할당될 수 있다.
상기 실시예에 따른 예측 동작은, 볼륨 생성시 또는 데이터 기록 요청시에 수행될 수 있으므로, 전술한 씬 프로비저닝 방식에 따른 스토리지 시스템이나 볼륨 생성시 볼륨에 저장 공간이 할당되는 방식에 따른 스토리지 시스템에 모두 적용이 가능하다. 또한, 상기와 같은 예측 동작은 호스트 정보(Info_H)와 억세스 정보(Info_acc)의 조합에 기반하여 수행될 수도 있으며, 이를 통해 예측 정확도를 더욱 향상할 수 있다.
한편, 도 18b,c에 도시된 바와 같이, RAID 정보 생성을 위한 예측 동작은 다양한 형태로 구현될 수 있다.
도 18b를 참조하면, 스토리지 시스템(600B)은 인터페이스(610B), 볼륨 매니저(620B) 및 스토리지 디바이스(630B)를 포함할 수 있다. 또한, 본 실시예에 따라, 스토리지 시스템(600B)은 RAID 예측부(640B)를 더 포함할 수 있다. 도 18b에는 도시되지 않았으나, 볼륨 매니저(620B)는 전술한 실시예들 중 어느 하나에 따라 구현될 수 있다.
호스트 정보(Info_H) 및/또는 억세스 정보(Info_acc)를 이용한 예측 동작은 볼륨 매니저(620B) 외부에서 수행될 수 있다. 예컨대, 볼륨 관리 요청(Req_VM)과 함께, 호스트 정보(Info_H) 및 억세스 정보(Info_acc)가 스토리지 시스템(600B)으로 제공될 수 있으며, RAID 예측부(640B)는 호스트 정보(Info_H) 및 억세스 정보(Info_acc) 중 적어도 하나를 이용하여, 전술한 실시예에서의 RAID 정보에 상응하는 정보를 생성할 수 있다. 예측 결과에 따른 정보는 볼륨 매니저(620B)로 제공되며, 볼륨 매니저(620B)는 예측 결과에 따른 정보를 저장 및 관리할 수 있다. 또한, 볼륨 매니저(620B)는 예측 결과에 따른 정보를 참조하여 저장 공간을 볼륨에 할당할 수 있다.
한편, 도 18c를 참조하면, 스토리지 시스템(600C)은 볼륨 매니저(620C)를 포함할 수 있으며, 전술한 호스트 정보(Info_H) 및/또는 억세스 정보(Info_acc)를 이용한 예측 동작은 스토리지 시스템(600C)의 외부에서 수행될 수 있다. 예컨대, 스토리지 시스템(600C)을 관리하는 관리자 시스템(650C)이 구비되고, 관리자 시스템(650C)은 네트워크를 통해 호스트로부터 각종 볼륨 관리 요청을 수신할 수 있다. 또한, 관리자 시스템(650C)은 호스트로부터의 제공되는 호스트 정보 및/또는 억세스 정보를 참조하여 RAID 정보(Info_RAID)를 예측할 수 있으며, 볼륨 관리 요청(Req_VM) 및 RAID 정보(Info_RAID)를 스토리지 시스템(600C)으로 제공할 수 있다. 이에 따라, 관리자 시스템(650C)은 상기 예측 동작을 수행하는 RAID 예측부(650C)를 포함할 수 있다.
도 19a,b,c는 본 발명의 변형 가능한 실시예에 따른 볼륨 관리 동작을 나타내는 블록도이다. 도 19a,b,c에서는 제1 볼륨(Vol A)과 제2 볼륨(Vol B)이 하나의 RAID(예컨대, RAID 1)를 구성하고, 제2 볼륨(Vol B)에 저장 공간이 할당된 디스크에 결함 발생 가능성이 증가된 경우가 예시된다.
도 19a를 참조하면, 제1 디스크(Disk 1)의 저장 공간이 제1 볼륨(Vol A)에 할당되고, 제2 디스크(Disk 2)의 저장 공간이 제2 볼륨(Vol B)에 할당됨에 따라 데이터 억세스 동작이 수행될 수 있다. 일 실시예에 따라, 주기적 또는 비주기적으로 디스크의 상태 정보가 판단될 수 있으며, 제2 디스크(Disk 2)에 결함 발생 가능성이 높아진 것으로 판단될 수 있다.
일 실시예에 따라, 스토리지 시스템은 그 내부에 저장되는 RAID 정보(또는, 연관 정보)와 디크스의 상태 정보를 참조함에 의해, 하나의 RAID를 구성하는 볼륨들 중 적어도 하나의 볼륨에 저장된 데이터의 손실 가능성이 판단될 수 있다. 만약 제2 디스크(Disk 2)에 결함 발생 가능성이 높아지면, 데이터 안정성 확보를 위하여 제2 디스크(Disk 2)에 저장된 데이터가 다른 디스크(예컨대, 제3 디스크(Disk 3))에 이동될 수 있다. 또한, 볼륨 메타데이터 테이블을 업데이트함에 의해, 제3 디스크(Disk 3)의 저장 공간이 제2 볼륨(Vol B)에 할당되었음을 나타내는 정보가 업데이트될 수 있다.
도 19b의 예에서는, 제2 디스크(Disk 2) 및 제3 디스크(Disk 3)의 저장 공간이 제2 볼륨(Vol B)에 할당되고, 제2 디스크(Disk 2)에 결함 발생 가능성이 높아진 경우가 예시된다. 이 때, 제2 볼륨(Vol B)에 저장된 데이터의 일부로서 제2 디스크(Disk 2)에 저장된 데이터가 다른 디스크(예컨대, 제4 디스크(Disk 4))에 이동될 수 있다. 또한, 볼륨 메타데이터 테이블을 업데이트함에 의해, 제4 디스크(Disk 4)의 저장 공간이 제2 볼륨(Vol B)에 할당되었음을 나타내는 정보가 업데이트될 수 있다.
도 19c는 전술한 바와 같은 동작을 수행하는 예로서, 볼륨 공간 할당부가 주기적 또는 비주기적으로 RAID 정보(Info_RAID) 및 디스크 정보(Info_Disk)를 참조하고, 데이터 이동 결과에 따라 볼륨 메타데이터 테이블을 업데이트하는 예를 나타낸다.
도 20 내지 도 22는 본 발명의 실시예들이 적용될 수 있는 다양한 형태의 컴퓨팅 시스템의 예를 나타내는 블록도이다.
도 20을 참조하면, 본 발명의 실시예들에 따른 스토리지 시스템(700)은 컴퓨팅 시스템에 이용되는 저장 공간을 제공하며, 네트워크 스위치와 통신하는 하나 이상의 네트워크 인터페이스 카드들(710)을 포함하고, 또한 중앙 처리 장치(CPU, 720), 메모리(730) 및 스토리지 디바이스(740)를 포함할 수 있다. 호스트로부터의 RAID 정보(Info_RAID)는 네트워크 스위치 및 네트워크 인터페이스 카드들(710)을 통해 스토리지 시스템(700) 내부로 제공된다.
메모리(730)에는 전술한 실시예들에 따른 볼륨 관리 동작을 수행하기 위한 소프트웨어(또는, 프로그램)이 저장될 수 있으며, CPU(720)는 메모리(730)에 저장된 소프트웨어를 실행함에 따라 전술한 실시예에 따른 볼륨 관리 동작을 수행할 수 있다.
한편, 도 21을 참조하면, 스토리지 시스템(800)은 다수 개의 디스크들로서 SSD들(820_1 ~ 820_M)을 포함할 수 있으며, 상기 SSD들(820_1 ~ 820_M)은 연결부(810)를 통해 각종 정보를 송수신하거나, 호스트로부터의 요청을 다른 SSD로 포워딩할 수 있다. 즉, 스토리지 시스템(800)은 분산 컴퓨팅 기능을 제공할 수 있다.
일 실시예에 따라, SSD들(820_1 ~ 820_M) 각각은 CPU 및 메모리를 포함하고, 메모리에 저장된 소프트웨어를 실행함에 따라 전술한 실시예들에 따른 볼륨 관리 동작을 수행할 수 있다. 일 예로서, SSD들(820_1 ~ 820_M) 각각은 네트워크 스위치를 통해 볼륨 관리 요청을 수신함과 함께, 전술한 실시예들에 따른 RAID 정보(Info_RAID)를 수신할 수 있다.
어느 하나의 SSD는 볼륨 관리 동작을 다른 SSD로 포워딩할 수 있으며, 이 때 외부로부터의 RAID 정보(Info_RAID)를 함께 포워딩할 수 있다. 또한, 어느 하나의 SSD가 RAID 정보(Info_RAID)에 기반하여 볼륨 관리 동작을 수행함에 따라, 볼륨들 사이의 연관 정보나 볼륨에 할당된 저장 공간에 관련된 메타데이터가 업데이트될 수 있다. 상기와 같은 정보의 업데이트 결과(Info_update)는 다른 SSD들로 제공되고, 상기 다른 SSD들 각각은 업데이트 결과(Info_update)에 따라 그 내부의 테이블을 업데이트할 수 있다.
한편, 도 22를 참조하면, 본 발명의 변형 가능한 실시예로서, 볼륨들 사이의 결함 격리를 위한 관리 기능의 적어도 일부가 호스트에서 수행되는 예가 도시된다. 호스트들(920)은 네트워크 스위치를 통해 스토리지 시스템(910)에 연결되고, 스토리지 시스템(910)에 구비되는 다수 개의 디스크들(예컨대, SSD들(911_1 ~ 911_M))의 각종 정보(Info_Disk)는 네트워크 스위치를 통해 다수의 호스트들(920)로 제공될 수 있다. 상기 디스크들(911_1 ~ 911_M)에 관련된 정보(Info_Disk)는 다양한 종류들의 정보를 포함할 수 있으며, 전술한 실시예에서의 디스크들의 일반적인 정보, 디스크들의 상태 정보 등이 상기 정보(Info_Disk)에 포함될 수 있다. 또한, 스토리지 시스템(910)의 자원들 중 이용 가능한 자원들(저장 공간들)에 관련된 정보가 상기 정보(Info_Disk)에 더 포함될 수 있다.
어느 하나의 호스트(920)를 예로 들면, 호스트(920)는 CPU(921) 및 메모리(922)를 포함하고, 메모리에 저장된 소프트웨어를 실행함에 따라 전술한 실시예들에 따른 볼륨 관리 동작 중 적어도 일부의 기능을 수행할 수 있다. 일 예로서, 호스트(920)는 RAID 기능을 채용할 수 있으며, RAID 볼륨에 대해 할당될 디스크의 위치를 지정한 정보(예컨대, 할당 정보(Info_allo))를 스토리지 시스템(910)으로 제공할 수 있다.
일 예로서, 호스트(920)는 하나의 RAID를 구성하는 다수 개의 볼륨들 사이에서 결함이 격리되도록 할당 정보(Info_allo)를 생성할 수 있다. 예컨대, 제1 볼륨과 제2 볼륨이 하나의 RAID를 구성하는 경우, 호스트(920)는 제1 볼륨에 할당되는 저장 공간과 제2 볼륨에 할당되는 저장 공간의 위치를 나타내는 할당 정보(Info_allo)를 볼륨 관리 요청(Req_VM)과 함께 제공할 수 있다. 스토리지 시스템(910)은, 상기 할당 정보(Info_allo)를 기반으로 하여, 제1 볼륨과 제2 볼륨에 서로 물리적으로 다른 디스크의 저장 공간을 할당할 것이다.
도 23은 전술한 실시예들에서 설명된 저장 매체의 일 구현 예를 나타내는 사시도이다. 일 예로서, 저장 매체가 다수 개의 셀 블록들을 포함하는 3D 플래시 메모리에 해당하고, 도 23에서는 하나의 셀 블록의 구현 예가 도시된다.
도 23을 참조하면, 셀 블록(BLK)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 도 23에서는, 셀 블록(BLK)이 2 개의 선택 라인들(GSL, SSL), 8 개의 워드 라인들(WL1 ~ WL8), 그리고 3 개의 비트 라인들(BL1 ~ BL3)을 포함하는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, Y 방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공된다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, Z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제3 방향을 따라 복수의 절연막들(IL)을 관통하는 복수의 필라들(pillars)(P)이 제공된다. 예를 들어, 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 것이다. 구체적으로, 각 필라(P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.
인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 전하 저장층(CS)은 게이트 절연층(또는 터널링 절연층이라고 지칭함), 전하 트랩층 및 블로킹 절연층을 포함할 수 있다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에, 선택 라인들(GSL, SSL) 및 워드 라인들(WL1 ~ WL8)과 같은 게이트 전극(GE)이 제공된다.
복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들(DR) 상에, 제2 방향(예를 들어, X 방향)으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL1 ~ BL3)이 제공된다.
상기한 실시예의 설명은 본 발명의 더욱 철저한 이해를 위하여 도면을 참조로 예를 든 것에 불과하므로, 본 발명을 한정하는 의미로 해석되어서는 안될 것이다. 또한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기본적 원리를 벗어나지 않는 범위 내에서 다양한 변화와 변경이 가능함은 명백하다 할 것이다.

Claims (20)

  1. 다수 개의 저장 매체들을 포함하는 스토리지 시스템의 볼륨 관리 방법에 있어서,
    외부의 호스트로부터 제1 볼륨에 대한 데이터 억세스 요청, 및 상기 제1 볼륨과 RAID(redundant array of inexpensive devices)를 구성하는 하나 이상의 제2 볼륨을 나타내는 연관 정보를 포함하는 볼륨 관리 요청을 수신하는 단계; 및
    상기 스토리지 시스템이 RAID 알고리즘을 수행함이 없이, 상기 연관 정보에 기반하여 상기 저장 매체들의 저장 공간을 상기 제1 볼륨 및 상기 하나 이상의 제2 볼륨에 할당하는 단계를 구비하고,
    상기 연관 정보는, 할당되는 저장 매체가 서로 물리적으로 격리되는 볼륨들의 정보를 나타내고,
    상기 스토리지 시스템은, 상기 외부의 호스트로부터 수신된 상기 연관 정보를 테이블에 저장하는 것을 특징으로 하는 볼륨 관리 방법.
  2. 제1항에 있어서,
    상기 볼륨 관리 요청은 상기 제1 볼륨 및 상기 제2 볼륨의 생성 요청들을 포함하는 것을 특징으로 하는 볼륨 관리 방법.
  3. 제2항에 있어서,
    상기 수신하는 단계는, 상기 제1 볼륨의 생성 요청에 대응하는 제1 RAID 정보와 상기 제2 볼륨의 생성 요청에 대응하는 제2 RAID 정보를 수신하는 것을 특징으로 하는 볼륨 관리 방법.
  4. 제2항에 있어서,
    상기 제1 볼륨과 상기 제2 볼륨이 하나의 RAID를 구성하는 것으로 판단될 때,
    상기 할당하는 단계는, 서로 다른 물리적 저장 매체의 저장 공간을 상기 제1 볼륨과 상기 제2 볼륨에 각각 할당하는 것을 특징으로 하는 볼륨 관리 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 스토리지 시스템 내부에는, 볼륨들에 할당된 저장 공간에 관련된 메타데이터를 저장하는 테이블이 더 구비되고,
    상기 연관 정보에 기반하는 할당 결과를 상기 테이블에 업데이트하는 단계를 더 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  7. 제1항에 있어서,
    상기 할당하는 단계는, 상기 스토리지 시스템 내부에 구비되는 저장 매체들의 정보를 더 참조하여 수행되는 것을 특징으로 하는 볼륨 관리 방법.
  8. 제7항에 있어서,
    상기 저장 매체들의 정보는, 상기 저장 매체들 각각의 결함 발생 여부 또는 결함 발생 가능성에 관련된 정보를 포함하고,
    상기 제1 볼륨과 상기 제2 볼륨이 하나의 RAID를 구성하는 것으로 판단될 때, 상기 제1 볼륨 및 제2 볼륨 중 적어도 하나에는 상대적으로 결함 발생 가능성이 낮은 저장 매체의 저장 공간이 할당되는 것을 특징으로 하는 볼륨 관리 방법.
  9. 제1항에 있어서,
    상기 연관 정보는, 호스트 또는 상기 스토리지 시스템의 관리자 시스템에 설치된 어플리케이션 프로그래밍 인터페이스로부터 생성된 정보인 것을 특징으로 하는 볼륨 관리 방법.
  10. 제1항에 있어서,
    상기 수신된 볼륨 관리 요청은 상기 제1 볼륨 및 상기 제2 볼륨에 대한 생성 요청에 해당하고,
    상기 볼륨 관리 요청에 응답하여, 상기 연관 정보를 저장하고 상기 제1 볼륨 및 상기 제2 볼륨을 생성하는 단계; 및
    상기 제1 볼륨 및 상기 제2 볼륨에 대한 데이터 기록 요청을 수신하는 단계를 더 구비하며,
    상기 할당하는 단계는, 상기 데이터 기록 요청의 수신에 응답하여 수행되는 것을 특징으로 하는 볼륨 관리 방법.
  11. 스토리지 시스템의 볼륨 관리 방법에 있어서,
    외부의 호스트로부터 제1 볼륨에 대한 관리 요청 및 상기 제1 볼륨에 연관된 하나 이상의 볼륨에 대한 정보를 갖는 제1 레이드(RAID) 정보를 수신하는 단계;
    상기 스토리지 시스템 내의 테이블 관리 모듈의 제어에 기초하여 상기 제1 RAID 정보를 제1 테이블에 업데이트하는 단계; 및
    상기 외부의 호스트로부터 제2 볼륨에 대한 관리 요청 및 상기 제2 볼륨에 연관된 하나 이상의 볼륨에 대한 정보를 갖는 제2 RAID 정보를 수신하는 단계; 및
    상기 테이블 관리 모듈의 제어에 기초하여 상기 제2 RAID 정보를 상기 제1 테이블에 업데이트하는 단계를 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  12. 제11항에 있어서,
    상기 제1 RAID 정보는, 상기 제1 볼륨과 하나의 RAID를 구성하는 하나 이상의 다른 볼륨들의 정보를 포함하고,
    상기 제2 RAID 정보는, 상기 제2 볼륨과 하나의 RAID를 구성하는 하나 이상의 다른 볼륨들의 정보를 포함하는 것을 특징으로 하는 볼륨 관리 방법.
  13. 제12항에 있어서,
    상기 제1 RAID 정보는, 상기 제1 볼륨에 대응하는 RAID레벨을 나타내는 정보를 더 포함하고,
    상기 제2 RAID 정보는, 상기 제2 볼륨에 대응하는 RAID레벨을 나타내는 정보를 더 포함하는 것을 특징으로 하는 볼륨 관리 방법.
  14. 제11항에 있어서,
    상기 제1 테이블에 저장된 정보를 참조한 결과에 따라, 상기 제1 볼륨 및 제2 볼륨에 저장 공간을 할당하는 단계를 더 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  15. 제14항에 있어서,
    상기 제1 볼륨과 제2 볼륨에 대한 할당 결과를 나타내는 메타데이터를 제2 테이블에 업데이트하는 단계를 더 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  16. 제11항에 있어서,
    상기 테이블 관리 모듈의 제어에 기초하여 상기 제1 볼륨 및 제2 볼륨에 대한 관리 요청은 각각 볼륨 생성 요청에 해당하고,
    상기 스토리지 시스템 내의 볼륨 관리 모듈의 제어에 기초하여 상기 제1 볼륨 및 제2 볼륨을 각각 생성하는 단계; 및
    상기 수신된 제1 및 제2 RAID 정보들을 참조하여, 상기 할당 관리 모듈의 제어에 기초하여 상기 제1 볼륨 및 제2 볼륨에 각각 저장 공간을 할당하는 단계를 더 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  17. 제11항에 있어서,
    상기 제1 볼륨 및 제2 볼륨에 대한 데이터 기록 요청을 수신하는 단계;
    상기 제1 테이블에 저장된 정보들을 참조하여, 상기 할당 관리 모듈의 제어에 기초하여 상기 제1 볼륨 및 제2 볼륨에 각각 저장 공간을 할당하는 단계; 및
    상기 제1 볼륨 및 제2 볼륨에 할당된 저장 공간에 각각 데이터를 기록하는 단계를 더 구비하는 것을 특징으로 하는 볼륨 관리 방법.
  18. 스토리지 시스템에 있어서,
    각각 다수의 저장 공간들을 포함하는 다수의 저장 매체들을 포함하는 스토리지 장치;
    프로세싱 유닛; 및
    상기 프로세싱 유닛에 의해 실행 가능한 명령어들을 저장하는 메모리를 구비하고,
    상기 프로세싱 유닛은 볼륨들 사이의 연관 정보에 기반하여 상기 볼륨들에 상기 저장 매체들의 저장 공간들을 할당함에 의해 상기 스토리지 장치 내에서의 볼륨들을 관리하고,
    상기 연관 정보는, 상기 스토리지 장치에 대한 데이터 억세스 요청을 생성하는 외부의 호스트로부터 수신되고, 제1 볼륨과 RAID(redundant array of inexpensive devices)를 구성하는 하나 이상의 제2 볼륨을 나타내고, 또한 할당되는 저장 매체가 서로 물리적으로 격리되는 볼륨들의 정보를 나타내며,
    상기 스토리지 시스템은, 상기 외부의 호스트로부터 수신된 상기 연관 정보를 테이블에 저장하며,
    상기 스토리지 시스템은, RAID 알고리즘을 수행함이 없이, 상기 외부의 호스트로부터의 연관 정보에 기반하여 상기 저장 매체들의 저장 공간을 상기 제1 볼륨 및 상기 하나 이상의 제2 볼륨에 할당하는 것을 특징으로 하는 스토리지 시스템.
  19. 제18항에 있어서,
    상기 스토리지 시스템은 상기 저장 공간을 할당한 결과를 나타내는 메타데이터를 저장하는 테이블 정보 저장부를 더 구비하고,
    상기 프로세싱 유닛은, 상기 수신된 연관 정보 및 상기 저장 공간의 할당 결과에 따라 상기 테이블 정보 저장부를 업데이트하는 것을 특징으로 하는 스토리지 시스템.
  20. 제18항에 있어서,
    상기 스토리지 시스템은 다수 개의 디스크들을 구비하고, 상기 디스크들에 관련된 정보를 저장하는 디스크 정보 저장부를 구비하며,
    상기 프로세싱 유닛은, 상기 연관 정보 및 상기 디스크들에 관련된 정보를 참조하여 상기 저장 공간을 볼륨들에 할당하는 것을 특징으로 하는 스토리지 시스템.
KR1020160067750A 2016-05-31 2016-05-31 스토리지 시스템 및 그의 볼륨 관리 방법 KR102581479B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160067750A KR102581479B1 (ko) 2016-05-31 2016-05-31 스토리지 시스템 및 그의 볼륨 관리 방법
US15/448,667 US10353641B2 (en) 2016-05-31 2017-03-03 Storage system and method of managing volumes thereof based on received correlation information of the volumes
CN201710275208.8A CN107450848B (zh) 2016-05-31 2017-04-25 存储系统及其管理卷的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160067750A KR102581479B1 (ko) 2016-05-31 2016-05-31 스토리지 시스템 및 그의 볼륨 관리 방법

Publications (2)

Publication Number Publication Date
KR20170135594A KR20170135594A (ko) 2017-12-08
KR102581479B1 true KR102581479B1 (ko) 2023-09-21

Family

ID=60417867

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160067750A KR102581479B1 (ko) 2016-05-31 2016-05-31 스토리지 시스템 및 그의 볼륨 관리 방법

Country Status (3)

Country Link
US (1) US10353641B2 (ko)
KR (1) KR102581479B1 (ko)
CN (1) CN107450848B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482049B2 (en) * 2017-02-03 2019-11-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Configuring NVMe devices for redundancy and scaling
CN110427340B (zh) * 2018-04-28 2023-08-04 伊姆西Ip控股有限责任公司 用于文件存储的方法、装置和计算机存储介质
CN111124257B (zh) * 2018-10-31 2023-09-26 伊姆西Ip控股有限责任公司 用于管理独立盘冗余阵列的方法、设备和计算机程序产品
US11340837B1 (en) * 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199541A (ja) * 2008-02-25 2009-09-03 Fujitsu Ltd 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム
JP2009230367A (ja) * 2008-03-21 2009-10-08 Hitachi Ltd 情報処理装置及び情報処理方法
JP2013073288A (ja) * 2011-09-27 2013-04-22 Fujitsu Ltd ストレージ装置及びその制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3344907B2 (ja) * 1996-11-01 2002-11-18 富士通株式会社 Raid装置及び論理ボリュームのアクセス制御方法
US6681310B1 (en) 1999-11-29 2004-01-20 Microsoft Corporation Storage management system having common volume manager
US6715054B2 (en) 2001-05-16 2004-03-30 Hitachi, Ltd. Dynamic reallocation of physical storage
US7424637B1 (en) 2003-03-21 2008-09-09 Networks Appliance, Inc. Technique for managing addition of disks to a volume of a storage system
US7769975B2 (en) * 2004-11-15 2010-08-03 International Business Machines Corporation Method for configuring volumes in a storage system
US7949847B2 (en) 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
JP2008146574A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 記憶制御装置及び記憶制御方法
JP2008181416A (ja) 2007-01-25 2008-08-07 Hitachi Ltd 記憶システム及びデータ管理方法
US8554996B2 (en) 2008-07-07 2013-10-08 Hewlett-Packard Development Company, L.P. Dynamically expanding storage capacity of a storage volume
JP5228988B2 (ja) 2009-02-23 2013-07-03 富士通株式会社 割当制御プログラム及び割当制御装置
JP5245934B2 (ja) 2009-03-11 2013-07-24 富士通株式会社 管理装置の管理プログラム、管理装置、管理装置の管理方法およびストレージシステム
CN101510143B (zh) * 2009-03-13 2011-01-05 杭州华三通信技术有限公司 动态分配存储空间的方法、系统和存储装置
US8285952B2 (en) 2009-09-17 2012-10-09 Hitachi, Ltd. Method and apparatus to utilize large capacity disk drives
WO2011045838A1 (en) * 2009-10-15 2011-04-21 Hitachi,Ltd. Storage system, storage apparatus, and optimization method of storage areas of storage system
WO2011086598A1 (en) * 2010-01-14 2011-07-21 Hitachi, Ltd. Storage system
JP5532982B2 (ja) 2010-02-03 2014-06-25 富士通株式会社 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法
US8533420B2 (en) 2010-11-24 2013-09-10 Microsoft Corporation Thin provisioned space allocation
WO2015087392A1 (ja) * 2013-12-10 2015-06-18 株式会社日立製作所 ストレージ管理システム
US10705740B2 (en) * 2015-05-08 2020-07-07 Telefonaktiebolaget Lm Ericsson (Publ) Managing of storage resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009199541A (ja) * 2008-02-25 2009-09-03 Fujitsu Ltd 論理ボリューム管理プログラム、論理ボリューム管理装置、論理ボリューム管理方法、および分散ストレージシステム
JP2009230367A (ja) * 2008-03-21 2009-10-08 Hitachi Ltd 情報処理装置及び情報処理方法
JP2013073288A (ja) * 2011-09-27 2013-04-22 Fujitsu Ltd ストレージ装置及びその制御方法

Also Published As

Publication number Publication date
US20170344312A1 (en) 2017-11-30
US10353641B2 (en) 2019-07-16
CN107450848A (zh) 2017-12-08
KR20170135594A (ko) 2017-12-08
CN107450848B (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US11157365B2 (en) Method for processing stripe in storage device and storage device
US9696931B2 (en) Region-based storage for volume data and metadata
JP5075761B2 (ja) フラッシュメモリを用いたストレージ装置
JP6279620B2 (ja) ストレージ装置
US7895394B2 (en) Storage system
US9250809B2 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US8271718B2 (en) Storage system and control method for the same, and program
US7415573B2 (en) Storage system and storage control method
KR102581479B1 (ko) 스토리지 시스템 및 그의 볼륨 관리 방법
JP6569477B2 (ja) ストレージ制御装置、および制御プログラム
CN111194438B (zh) 扩展ssd长久性
US20130138908A1 (en) Storage system and pool capacity scale-down control method
KR102545189B1 (ko) 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
KR102202107B1 (ko) 사용자 개별 서비스 환경을 위한 스토리지 장치 제어 방법 및 스토리지 컨트롤러
US20170262220A1 (en) Storage control device, method of controlling data migration and non-transitory computer-readable storage medium
US9851907B2 (en) Control device, storage system, and method of controlling a plurality of storage devices
US8055835B2 (en) Apparatus, system, and method for migrating wear spots
US9223510B2 (en) Optimizing storage utilization by modifying a logical volume offset
US8935488B2 (en) Storage system and storage control method
US20190339898A1 (en) Method, system and computer program product for managing data storage in data storage systems
US11144445B1 (en) Use of compression domains that are more granular than storage allocation units
US20180210647A1 (en) Physical allocation unit optimization
JPWO2006054334A1 (ja) 記憶領域割当装置、記憶領域割当方法および記憶領域割当プログラム
KR20230097866A (ko) 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant