KR20210077329A - 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 - Google Patents
스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 Download PDFInfo
- Publication number
- KR20210077329A KR20210077329A KR1020190168842A KR20190168842A KR20210077329A KR 20210077329 A KR20210077329 A KR 20210077329A KR 1020190168842 A KR1020190168842 A KR 1020190168842A KR 20190168842 A KR20190168842 A KR 20190168842A KR 20210077329 A KR20210077329 A KR 20210077329A
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- shared information
- data
- storage
- storage devices
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title description 2
- 238000012544 monitoring process Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims description 69
- 238000007726 management method Methods 0.000 claims description 41
- 238000013500 data storage Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 16
- 238000013523 data management Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- 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
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- 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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
일 실시예에 의한 스토리지 시스템은 네트워크를 통해 적어도 하나의 호스트와 접속되는 복수의 스토리지 장치를 포함하는 스토리지 시스템으로서, 스토리지 장치 각각은, 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하며, 복수의 스토리지 장치 중 데이터 분산이 필요한 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고, 적어도 하나의 타겟 스토리지 장치에 소스 스토리지 장치의 제 1 데이터를 저장하도록 구성될 수 있다.
Description
본 기술은 데이터 처리 장치에 관한 것으로, 보다 구체적으로는 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법에 관한 것이다.
NVMe(Non-Volatile Memory express)는 PCIe(Peripheral Component Interconnect express)의 물리 인터페이스를 사용하는 비휘발성 스토리 장치 전용의 프로토콜이다.
NVMe-oF(over Fabric)은 이더넷(Ethernet), 파이버 채널(Fiber channel) 및 인피니밴드(InfiniBand)와 같은 패브릭 네트워크를 통해 수백, 수천 개의 NVMe 규격의 저장장치들을 연결할 수 있는 기술이다.
빅데이터 처리를 위한 메모리 중심의 컴퓨팅 장치에 대한 요구가 증가함에 따라, 더욱 많은 컴퓨팅 자원, 고대역폭의 네트워크, 고용량 및 고성능의 스토리지 장치가 요구되고 있다.
메모리 중심의 컴퓨팅 장치에서는 호스트가 스토리지 장치로 연산 처리를 오프로드 함으로써 스토리지 장치와 호스트 간의 데이터 이동을 최소화하는 등 호스트의 부담을 최소화하기 위한 다양한 연구가 계속되고 있다.
본 기술의 실시예는 호스트의 부담 없이 스토리지 장치 간에 정보를 분산할 수 있는 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법을 제공할 수 있다.
본 기술의 일 실시예에 의한 스토리지 시스템은 네트워크를 통해 적어도 하나의 호스트와 접속되는 복수의 스토리지 장치를 포함하는 스토리지 시스템으로서, 상기 스토리지 장치 각각은, 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하며, 상기 복수의 스토리지 장치 중 데이터 분산이 필요한 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고, 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하도록 구성될 수 있다.
본 기술의 일 실시예에 의한 스토리지 장치는 네트워크를 통해 적어도 하나의 호스트와 접속되고, 컨트롤러 및 상기 컨트롤러의 제어에 따라 데이터를 기록 및 판독하는 데이터 저장 장치를 포함하는 스토리지 장치로서, 상기 컨트롤러는, 상기 스토리지 장치가 상기 네트워크에 접속하여 상기 호스트와 통신하도록 하는 네트워크 인터페이스; 상기 네트워크 인터페이스의 통신 프로토콜과 상기 스토리지 장치 내부의 통신 프로토콜을 변환하는 컨버터; 상기 컨트롤러와 상기 데이터 저장 장치 간의 통신 채널을 제공하는 스토리지 인터페이스; 및 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하며, 상기 모니터링에 따라 데이터 분산이 필요한 경우, 상기 네트워크에 접속된 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고, 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하도록 구성되는 데이터 분산 매니저;를 포함할 수 있다.
본 기술의 일 실시예에 의한 스토리지 장치의 동작 방법은 네트워크를 통해 적어도 하나의 호스트와 접속되고, 복수의 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법으로서, 상기 스토리지 장치 각각이, 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하는 단계; 상기 모니터링에 따라 데이터 분산이 필요한 소스 스토리지 장치가 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하는 단계; 및 상기 소스 스토리지 장치가 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하는 단계;를 포함하도록 구성될 수 있다.
본 기술에 의하면, 호스트의 리소스를 사용하지 않고 스토리지 장치에서 독립적으로 데이터를 분산 처리할 수 있다. 호스트가 데이터 스토리지 장치 내에서의 데이터 분산을 위해 자원을 할당하거나 시간을 할애할 필요가 없으므로 호스트 고유의 작업을 보다 고속으로 처리할 수 있다.
나아가, 호스트에 스토리지 장치를 위한 관리 프로그램을 추가할 필요가 없으므로 스토리지 장치의 추가 및 삭제 등 재구성이 용이하고 스토리지 시스템의 단가를 낮출 수 있다.
도 1은 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 2a 및 도 2b는 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 3은 일 실시예에 의한 스토리지 장치의 구성도이다.
도 4는 일 실시예에 의한 데이터 분산 매니저의 구성도이다.
도 5는 일 실시예에 의한 데이터 분산 매니저 및 BMC의 구성도이다.
도 6은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 8 및 도 9는 실시예들에 의한 공유정보 공유 및 타겟 선택 방법을 설명하기 위한 흐름도이다.
도 10 및 도 11은 실시예들에 의한 공유정보 공유방법을 설명하기 위한 흐름도이다.
도 12는 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 14는 일 실시예에 의한 스토리지 장치를 포함하는 네트워크 시스템의 구성도이다.
도 2a 및 도 2b는 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 3은 일 실시예에 의한 스토리지 장치의 구성도이다.
도 4는 일 실시예에 의한 데이터 분산 매니저의 구성도이다.
도 5는 일 실시예에 의한 데이터 분산 매니저 및 BMC의 구성도이다.
도 6은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 8 및 도 9는 실시예들에 의한 공유정보 공유 및 타겟 선택 방법을 설명하기 위한 흐름도이다.
도 10 및 도 11은 실시예들에 의한 공유정보 공유방법을 설명하기 위한 흐름도이다.
도 12는 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 14는 일 실시예에 의한 스토리지 장치를 포함하는 네트워크 시스템의 구성도이다.
이하, 첨부된 도면을 참조하여 본 기술의 실시예를 보다 구체적으로 설명한다.
도 1은 일 실시예에 의한 스토리지 시스템의 구성도이다.
스토리지 시스템(11)은 적어도 하나의 호스트(110)와 네트워크(130)를 통해 접속되는 복수의 스토리지 장치(200-1~200-n)를 포함할 수 있다.
네트워크(130)는 이더넷(Ethernet), 파이버 채널(Fiber channel) 및 인피니밴드(InfiniBand)와 같은 패브릭 네트워크일 수 있다.
스토리지 장치(200-1~200-n)는 SSD(Solid State Drive)일 수 있으며, 바람직하게는 이더넷-SSD(eSSD)일 수 있다.
적어도 하나의 호스트(110) 각각은 스토리지 장치(200-1~200-n)와 NVMEe-oF 연결을 설정할 수 있다.
네트워크 스위치(121)는 복수의 스토리지 장치(200-1~200-n, SD1~SDn)가 네트워크(130)를 통해 호스트(110)와 연결될 수 있는 환경을 제공한다. 네트워크 스위치(121)는 내부 메모리(미도시)에 각 스토리지 장치(200-1~200-n, SD1~SDn)를 식별하기 위한 주소를 저장하며, 이를 통해 각각의 호스트(110)가 특정 스토리지 장치(200-1~200-n, SD1~SDn)와 데이터 교환을 수행할 수 있도록 한다.
네트워크 스위치(121)는 업링크 포트를 통해 호스트(110)와 제 1 속도로 통신하고, 다운링크 포트를 통해 복수의 스토리지 장치(200-1~200-n, SD1~SDn)와 제 2 속도로 통신할 수 있다.
복수의 스토리지 장치(200-1~200-n, SD1~SDn)는 고성능 및 대용량 데이터 저장 솔루션을 제공한다. NVMe-oF 프로토콜은 원격 직접 연결(remote Direct-Attached Storage, rDAS) 방식으로 호스트(110)에서 구동되는 어플리케이션이 복수의 스토리지 장치(200-1~200-n, SD1~SDn)에 오프로드되어 처리될 수 있도록 한다.
도 2a 및 도 2b는 일 실시예에 의한 스토리지 시스템의 구성도이다.
도 2a를 참조하면, 스토리지 시스템(10)은 적어도 하나의 호스트(110)와 네트워크(130)를 통해 접속되는 스토리지 샤시(120)를 포함할 수 있다.
네트워크(130)는 이더넷(Ethernet), 파이버 채널(Fiber channel) 및 인피니밴드(InfiniBand)와 같은 패브릭 네트워크일 수 있다.
스토리지 샤시(120)는 복수의 스토리지 장치(200-1~200-n)를 포함할 수 있다. 일 실시예에서, 스토리지 장치(200-1~200-n)는 SSD(Solid State Drive)일 수 있으며, 바람직하게는 이더넷-SSD(eSSD)일 수 있다.
적어도 하나의 호스트(110) 각각은 스토리지 샤시(120) 내의 스토리지 장치(200-1~200-n)와 NVMEe-oF 연결을 설정할 수 있다.
스토리지 샤시(120)는 마더보드 또는 베이스보드 상에 결합되는 네트워크 스위치(121), 베이스보드 관리 컨트롤러(Baseboard Management Controller; BMC, 123), BMC 스위치(125) 및 복수의 스토리지 장치(200-1~200-n, SD1~SDn)를 포함할 수 있다.
네트워크 스위치(121)는 복수의 스토리지 장치(200-1~200-n, SD1~SDn)가 네트워크(130)를 통해 호스트(110)와 연결될 수 있는 환경을 제공한다. 네트워크 스위치(121)는 내부 메모리(미도시)에 각 스토리지 장치(200-1~200-n, SD1~SDn)를 식별하기 위한 주소를 저장하며, 이를 통해 각각의 호스트(110)가 특정 스토리지 장치(200-1~200-n, SD1~SDn)와 데이터 교환을 수행할 수 있도록 한다.
네트워크 스위치(121)는 업링크 포트를 통해 호스트(110)와 제 1 속도로 통신하고, 다운링크 포트를 통해 복수의 스토리지 장치(200-1~200-n, SD1~SDn)와 제 2 속도로 통신할 수 있다.
BMC(123)는 스토리지 샤시(120) 내의 내부 구성요소들을 관리하도록 구성될 수 있다. 일 실시예에서, BMC(123)는 시스템 관리자에 의해 제공되는 명령에 따라 복수의 스토리지 장치(200-1~200-n, SD1~SDn) 및 네트워크 스위치(121)를 세팅하여, 부트 및 제어 경로를 설정할 수 있다. BMC(123)는 복수의 스토리지 장치(200-1~200-n, SD1~SDn)의 연결 상태, 수명, 온도, 로그 정보와 같은 하드웨어 헬스 정보 및 전력 소비 정보를 체크할 수 있다.
BMC 스위치(125)는 복수의 스토리지 장치(200-1~200-n, SD1~SDn)와 BMC(123)가 접속할 수 있는 환경을 제공한다. 일 실시예에서, BMC 스위치(125)는 PCIe(Peripheral Component Interconnect express) 스위치를 포함할 수 있다.
복수의 스토리지 장치(200-1~200-n, SD1~SDn), 이들을 호스트와 연결시키는 네트워크 스위치(121), 이들을 관리하기 위한 BMC(123)는 샤시 또는 인클로저에 함께 수납되어 스토리지 샤시(120)를 구성할 수 있다.
복수의 스토리지 장치(200-1~200-n, SD1~SDn)는 고성능 및 대용량 데이터 저장 솔루션을 제공한다. NVMe-oF 프로토콜은 원격 직접 연결(remote Direct-Attached Storage, rDAS) 방식으로 호스트(110)에서 구동되는 어플리케이션이 복수의 스토리지 장치(200-1~200-n, SD1~SDn)에 오프로드되어 처리될 수 있도록 한다.
도 2b를 참조하면, 일 실시예에 의한 스토리지 시스템(100)은 적어도 하나의 호스트(110)와 네트워크(130)를 통해 접속되는 스토리지 랙(1200)을 포함할 수 있다.
스토리지 랙(1200)은 랙 스위치(1210) 및 복수의 스토리지 샤시(120-1~120-m)를 포함할 수 있다.
랙 스위치(1210)는 복수의 스토리지 샤시(120-1~120-m) 간의 연결성을 제공하도록 구성될 수 있다.
각각의 스토리지 샤시(120-1~120-m)는 eSSD와 같은 복수의 스토리지 장치가 네트워크 스위치 및 베이스보드 관리 컨트롤러(BMC)와 함께 마더보드 상에 결합 또는 실장된 구성을 가질 수 있다.
일 실시예에서, 스토리지 샤시(120-1~120-m)각각은 도 2a에 도시한 스토리시 샤시(120)로 구성될 수 있다.
도 1, 도 2a 및 도 2b의 스토리지 시스템(1, 10, 100)을 구성하는 스토리지 장치(200-1~200-n)는 호스트(110)의 개입 없이, 다른 관점에서는 호스트 독립적으로 복수의 스토리지 장치(200-1~200-n, SD1~SDn) 상호 간에 데이터를 분산하도록 구성될 수 있다.
복수의 스토리지 장치(200-1~200-n) 중, 데이터 분산을 필요로 하는 스토리지 장치는 소스 스토리지 장치로, 소스 스토리지 장치로부터 분산 대상 데이터를 전송받아 저장하는 스토리지 장치는 타겟 스토리지 장치로 명명할 수 있다.
복수의 스토리지 장치(200-1~200-n)에 포함된 모든 스토리지 장치(200-1~200-n)가 소스 스토리지 장치가 될 수 있고, 소스 스토리지 장치는 자신을 제외한 다른 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고 데이터를 분산할 수 있다.
일 실시예에서, 소스 스토리지 장치는, 설정된 기준에 따라 선택된 데이터를 타겟 스토리지 장치로 전송하고, 타겟 스토리지 장치는 소스 스토리지 장치로부터 전송된 데이터를 저장함으로써 소스 스토리지 장치의 데이터를 분산 저장할 수 있다. 소스 스토리지 장치는 분산 대상 데이터를 복수로 분할하고 복수의 타겟 스토리지 장치에 분산 저장하는 것도 가능하다.
일 실시예에서, 공유정보는 각각의 스토리지 장치(200-1~200-n)가 자신의 상태, 예를 들어 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 수집한 정보일 수 있다. 하드웨어 상태는 잔여 용량, 배드블럭 수, 온도, 수명 등을 포함할 수 있다. 소프트웨어 상태는 비지(Busy) 정도, 호스트(110)로부터의 리퀘스트 양, 호스트(110)로부터 자주 요청되는 리퀘스트 패턴, 호스트로부터 요구되는 데이터 패턴 등을 포함할 수 있다.
공유정보는 스토리지 장치(200-1~200-n) 간에 다양한 방법에 의해 공유되고, 데이터 분산이 필요한 소스 스토리지 장치는 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하여 데이터를 분산할 수 있다.
일 실시예에서, 공유정보는 요청 및 응답 방식에 의해 공유될 수 있다.
요청 및 응답 방식의 일 실시예에서, 소스 스토리지 장치는 다른 스토리지 장치들로 공유정보를 전송할 것을 요청할 수 있다. 요청 및 응답 방식의 다른 실시예에서, 소스 스토리지 장치는 다른 스토리지 장치들로 데이터 분산에 필요한 조건, 즉 공유정보의 세부 조건을 전송할 수 있고, 다른 스토리지 장치 중 조건을 만족하는 스토리지 장치가 소스 스토리지 장치로 응답함에 따라, 소스 스토리지 장치가 조건에 맞는 스토리지 장치 중 적어도 하나의 타겟 스토리지 장치를 선택하여 데이터를 분산할 수 있다.
일 실시예에서, 공유정보는 방송 및 조회 방식에 의해 공유될 수 있다.
방송 및 조회 방식의 일 실시예에서, 스토리지 장치(200-1~200-n)들은 스토리지 시스템(10, 100)에 연결시, 스토리지 시스템(10, 100)에 연결되어 있는 다른 스토리지 장치들로 자신의 공유정보를 전송(방송)하고, 타 스토리지 장치의 공유정보를 수신한 스토리지 장치들은 수신된 공유정보를 저장할 수 있다. 데이터 분산이 필요한 소스 스토리지 장치는 기 저장한 다른 스토리지 장치들의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택할 수 있다.
방송 및 조회 방식의 다른 실시예에서, 스토리지 장치(200-1~200-n)들은 스토리지 시스템(10, 100)에 연결시, BMC(123)로 공유정보를 전송(방송)할 수 있고, BMC(123)는 각 스토리지 장치(200-1~200-n) 별로 공유정보를 저장할 수 있다. 데이터 분산이 필요한 소스 스토리지 장치는 BMC(123)에 저장된 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택할 수 있다.
방송 및 조회 방식으로 공유정보를 공유하는 경우, 스토리지 장치(200-1~200-n)는 모니터링 중인 자신의 공유정보가 기 설정된 임계치 이상 변동되면 타 스토리지 장치들 또는 BMC(124)로 변경된 공유정보를 전송하여 공유정보가 갱신되도록 할 수 있고, 이에 따라 공유정보는 스토리지 장치(200-1~200-n)의 최신 상태를 반영할 수 있다.
도 3은 일 실시예에 의한 스토리지 장치의 구성도이다.
도 3을 참조하면, 일 실시예에 의한 스토리지 장치(200)는 컨트롤러(2100), 비휘발성 메모리 장치들(2200-0 ~ 2200-L; 2200)을 포함하는 데이터 저장 장치(2200), 버퍼 메모리(2230) 및 전원 공급기(2240)을 포함할 수 있다.
컨트롤러(2100)는 호스트 장치(1100)로부터 입력된 신호를 분석하고 처리할 수 있다. 컨트롤러(2100)는 데이터 저장장치(2200)를 구동하기 위한 펌웨어 또는 소프트웨어에 따라서 동작할 수 있다
일 실시예에서, 컨트롤러(2100)는 데이터 저장 장치(2200)를 관리하기 위한 가비지 콜렉션, 주소맵핑, 웨어레벨링 등을 수행하기 위한 플래시 변환계층(FTL)의 기능, 데이터 저장 장치(2200)로부터 독출된 데이터의 에러를 검출하고 정정하는 기능 등을 수행할 수 있다.
버퍼 메모리(2300)는 데이터 저장 장치(2200)에 저장될 데이터를 임시 저장할 수 있다. 또한, 버퍼 메모리(2300)는 데이터 저장 장치(2200)로부터 리드한 데이터를 임시 저장할 수 있다. 버퍼 메모리(2300)에 임시 저장된 데이터는 컨트롤러(2100)의 제어에 따라 호스트(110), 데이터 저장 장치(2200) 또는 다른 스토리지 장치로 전송될 수 있다.
비휘발성 메모리 장치들(2200-0 ~ 2220-L)은 스토리지 장치(200)의 저장 매체로 사용될 수 있다. 비휘발성 메모리 장치들(2200-0 ~ 2220-L) 각각은 복수의 채널들(CH0~CHk)을 통해 컨트롤러(2100)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 비휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 비휘발성 메모리 장치들은 동일한 신호 버스 및 데이터 버스에 연결될 수 있다.
전원 공급기(2400)는 전원 커넥터를 통해 입력된 전원을 컨트롤러(2100), 비휘발성 메모리 장치들(2200-0 ~ 2220-L) 및 버퍼 메모리(2300)에 제공할 수 있다. 전원 공급기(2400)는 서든 파워 오프(sudden power off)가 발생되는 경우, 스토리지 장치(200)가 정상적으로 종료될 수 있도록 전원을 공급할 수 있는 보조 전원 공급기를 더 포함할 수 있다.
일 실시예에서, 컨트롤러(2100)는 프로세서(2101), 네트워크 인터페이스(2103), 컨버터(2105), 스토리지 인터페이스(2107), BMC 인터페이스(2109) 및 버퍼 메모리(BM) 관리부(2111)를 포함할 수 있다. BMC 인터페이스(2109)는 스토리지 시스템(1, 10, 100)의 구현 형태에 따라 생략하는 것도 가능하다.
프로세서(2101)는 하드웨어 및 소프트웨어가 결합된 형태로 구성되어 스토리지 장치(200)를 동작시키기 위해 로딩된 소프트웨어 또는 펌웨어를 구동시킬 수 있다.
네트워크 인터페이스(2103)는 스토리지 장치(200)가 네트워크 스위치(121)를 통해 네트워크(130)에 접속하여 호스트(110)와 통신할 수 있는 통신 채널을 제공할 수 있다.
컨버터(2105)는 스토리지 장치(200)를 네트워크(130)에 연결시켜주는 네트워크 인터페이스(2103)의 통신 프로토콜과 스토리지 장치(200) 내부의 통신 프로토콜 간을 변환하도록 구성될 수 있다.
스토리지 인터페이스(2107)는 컨트롤러(2100)와 데이터 저장 장치(2200) 간의 신호 송수신을 위한 통신 채널을 제공할 수 있다. 스토리지 인터페이스(2107)는 프로세서(2101)의 제어에 따라 버퍼 메모리(2300)에 일시 저장된 데이터를 데이터 저장 장치(2200)에 기입할 수 있다. 그리고 데이터 저장 장치(2200)로부터 독출되는 데이터를 버퍼 메모리(2300)로 전달하여 일시 저장할 수 있다.
BMC 인터페이스(2109)는 스토리지 장치(200)가 BMC 스위치(125)를 통해 BMC(123)에 접속할 수 있는 통신 채널을 제공할 수 있다. 일 실시예에서, BMC 인터페이스(2109)는 PCIe(Peripheral Component Interconnect express) 인터페이스일 수 있다.
BM 관리부(2111)는 버퍼 메모리(2300)의 사용 상태를 관리하도록 구성될 수 있다. 일 실시예에서, BM 관리부(2111)는 버퍼 메모리(2300)를 복수의 영역(슬롯)으로 분할하고, 데이터를 임시 저장하기 위하여 각 영역들을 할당하거나 해제할 수 있다.
프로세서(2101)는 데이터 분산 매니저(2500)를 포함할 수 있다.
일 실시예에서, 데이터 분산 매니저(2500)는 스토리지 시스템(10, 100)에서 스토리지 장치(200, 200-1~200-n) 간에 공유하도록 설정된 자신의 공유정보를 수집하고, 수집한 공유정보를 타 스토리지 장치 또는 BMC(123)로 전송하도록 구성될 수 있다. 데이터 분산 매니저(2500)는 타 스토리지 장치로부터 공유정보를 수신하여 저장하거나, BMC(123)에 접근하여 공유정보를 조회할 수 있다.
스토리지 장치(200)의 데이터를 분산할 필요가 있는 경우 데이터 분산 매니저(2500)는 다른 스토리지 장치의 공유정보에 기초하여 타겟 스토리지 장치를 선택하고 데이터를 분산하도록 구성될 수 있다.
일 실시예에서, 타겟 스토리지 장치를 선택하기 위하여, 데이터 분산 매니저(2500)는 타 스토리지 장치로 공유정보를 요청하고 수신된 공유정보를 조회하거나, 타 스토리지 장치가 방송함에 따라 저장한 공유정보를 조회하거나 BMC(123) 내에 취합된 공유정보를 조회하여 적합한 타겟 스토리지 장치를 선택할 수 있다. 다른 실시예에서, 데이터 분산 매니저(2500)는 타 스토리지 장치로 공유정보 세부 조건을 전송하고, 이에 응답하는 스토리지 장치 중에서 타겟 스토리지 장치를 선택할 수 있다.
일 실시예에서, 데이터 분산 매니저(2500)는 요청 및 응답 방식, 또는 방송 및 조회 방식에 의해 공유정보를 공유하도록 제어할 수 있다.
요청 및 응답 방식은 소스 스토리지 장치의 공유정보 전송 요청에 응답하여 다른 스토리지 장치들이 소스 스토리지 장치로 공유정보를 전송하는 방식, 또는 소스 스토리지 장치가 공유정보의 세부 조건을 전송함에 따라 조건을 만족하는 다른 스토리지 장치가 소스 스토리지 장치로 응답하는 방식일 수 있다.
방송 및 조회 방식은 스토리지 시스템(10, 100)에 연결된 스토리지 장치들(200, 200-1~200-n) 각각이 다른 스토리지 장치들 또는 BMC(123)로 자신의 공유정보를 전송하고, 소스 스토리지 장치가 공유정보를 조회하는 방식일 수 있다.
도 4는 일 실시예에 의한 데이터 분산 매니저의 구성도이다.
도 4를 참조하면, 데이터 분산 매니저(2500-1)는 공유정보 생성부(2501), 공유정보 관리부(2503), 선택부(2505), 데이터 분산 제어부(2507), 공유정보 관리 테이블(2520) 및 분산 데이터 관리 테이블(2530)을 포함할 수 있다.
공유정보 생성부(2501)는 스토리지 시스템(10, 100)에서 공유하도록 설정된 자신의 공유정보를 데이터 저장 장치(2200) 및 프로세서(2101)를 통해 수집하여 공유정보 관리 테이블(2520)에 저장하도록 구성될 수 있다.
공유정보는 각각의 스토리지 장치(200)가 자신의 상태, 예를 들어 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 수집한 정보일 수 있다. 하드웨어 상태는 잔여 용량, 배드블럭 수, 온도, 수명 등을 포함할 수 있다. 소프트웨어 상태는 비지(Busy) 정도, 호스트(110)로부터의 리퀘스트 양, 호스트(110)로부터 자주 요청되는 리퀘스트 패턴, 호스트로부터 요구되는 데이터 패턴 등을 포함할 수 있다. 공유정보 생성부(2501)는 모니터링 중인 스토리지 장치(200) 자신의 상태가 임계치 이상 변동되는 경우 공유정보를 재수집하여 공유정보 관리 테이블(2520)을 갱신하도록 구성될 수 있다.
공유정보 관리부(2503)는 공유정보 생성부(2501)에서 수집한 자신의 공유정보를 타 스토리지 장치로 제공하거나, 타 스토리지 장치가 전송한 공유정보를 수신하여 공유정보 관리 테이블(2520)에 저장할 수 있다.
일 실시예에서, 공유정보 관리부(2503)는 소스 스토리지 장치의 공유정보 요청에 응답하여 공유정보 관리 테이블(2520)에 저장된 자신의 공유정보를 추출하고 소스 스토리지 장치로 전송하도록 구성될 수 있다. 일 실시예에서, 공유정보 관리부(2503)는 소스 스토리지 장치로부터 공유정보 세부 조건이 전송됨에 따라, 공유정보 관리 테이블(2520)에 저장된 자신의 공유정보를 참조하여, 자신의 공유정보가 세부 조건을 충족하는지 확인하고 충족하는 경우 소스 스토리지 장치로 응답하도록 구성될 수 있다.
일 실시예에서, 스토리지 장치(200)가 스토리지 시스템(10, 100)에 연결됨에 따라 공유정보 생성부(2501)가 자신의 공유정보를 수집하고, 공유정보 관리부(2503)는 수집된 공유정보를 타 스토리지 장치로 방송할 수 있다.
선택부(2505)는 스토리지 장치(200)에 저장된 데이터의 분산이 필요한지 모니터링할 수 있다. 선택부(2505)는 데이터 분산이 필요한 경우 타 스토리지 장치들로 공유정보를 요청하거나 공유정보의 세부 조건을 전송하거나, 타 스토리지 장치가 방송한 공유정보를 조회하고 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성될 수 있다.
일 실시예에서, 선택부(2505)는 타 스토리지 장치로부터 수신된 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하거나, 공유정보 세부조건에 부합하는 스토리지 장치 중에서 적어도 하나의 타겟 스토리지 장치를 선택하거나, 방송된 타 스토리지 장치의 공유정보를 조회하여 적어도 하나의 타겟 스토리지 장치를 선택할 수 있다.
일 실시예에서, 선택부(2505)는 데이터 저장 장치(2200)의 잔여 용량, 배드블럭 수, 온도, 수명 등과 같은 하드웨어 상태 및 소프트웨어 상태에 기초하여 데이터 분산 필요 여부를 판단할 수 있으나 이에 한정되는 것은 아니다. 일실시예에서, 선택부(2505)는 공유정보 수집을 위해 모니터링하는 하드웨어 상태 및 소트프웨어 상태에 기초하여 데이터 분산 필요 여부를 판단할 수 있다.
선택부(2505)에 의해 적어도 하나의 타겟 스토리지 장치가 선택됨에 따라, 데이터 분산 제어부(2507)는 분산할 데이터를 선택하고, 선택된 타겟 스토리지 장치로 선택된 분산 대상 데이터를 전송할 수 있다. 데이터 분산 제어부(2507)는 분산한 데이터의 위치를 분산 데이터 관리 테이블(2530)에 저장할 수 있다.
분산 대상 데이터는 호스트의 리퀘스트 패턴, 데이터가 저장된 물리 영역의 수명 등 다양한 조건에 기초하여 선택될 수 있다.
도 5는 일 실시예에 의한 데이터 분산 매니저 및 BMC의 구성도이다.
도 5에 도시한 데이터 분산 매니저(2500-2)는 공유정보 생성부(2501), 선택부(2505), 데이터 분산 제어부(2507) 및 분산 데이터 관리 테이블(2530)을 포함할 수 있다.
BMC(123)는 공유정보 관리부(1231) 및 공유정보 관리 테이블(1233)을 포함할 수 있다.
공유정보 생성부(2501)는 스토리지 시스템(10, 100)에서 공유하도록 설정된 공유정보를 데이터 저장 장치(2200) 및 프로세서(2101)를 통해 수집하여 BMC(123)의 공유정보 관리부(1231)로 전송하고, 공유정보 관리부(131)는 각 스토리지 장치(200-1~200-n)로부터 수신된 공유정보를 공유정보 관리 테이블(2520)에 저장하도록 구성될 수 있다. 일 실시예에서, 공유정보 생성부(2501)는 스토리지 장치(200)가 스토리지 시스템(10, 100)에 연결될 때 공유정보를 수집하여 공유정보 관리부(131)로 전송할 수 있고, 수집 대상 공유정보가 기 설정된 임계치 이상 변동되면 변경된 공유정보를 공유정보 관리부(131)로 전송하여 공유정보가 갱신되도록 할 수 있다.
선택부(2505)는 스토리지 장치(200)의 데이터 분산이 필요한 경우 공유정보 관리부(1231)로 타 스토리지 장치들의 공유정보를 요청하거나 공유정보의 세부 조건을 충족하는 스토리지 장치 목록을 요청할 수 있다.
선택부(2505)는 공유정보 관리부(1231)가 타 스토리지 장치들의 공유정보를 제공하거나, 공유정보 세부조건을 충족하는 스토리지 장치 목록을 제공함에 따라, 데이터를 분산할 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성될 수 있다.
일 실시예에서, 선택부(2505)는 데이터 저장 장치(2200)의 잔여 용량, 배드블럭 수, 온도, 수명 등에 기초하여 데이터 분산 필요 여부를 판단할 수 있으나 이에 한정되는 것은 아니다.
선택부(2505)에 의해 적어도 하나의 타겟 스토리지 장치가 선택됨에 따라, 데이터 분산 제어부(2507)는 분산할 데이터를 선택하고, 선택된 타겟 스토리지 장치로 선택된 분산 대상 데이터를 전송할 수 있다. 데이터 분산 제어부(2507)는 분산한 데이터의 위치를 분산 데이터 관리 테이블(2530)에 저장할 수 있다.
분산 대상 데이터는 호스트의 리퀘스트 패턴, 데이터가 저장된 물리 영역의 수명 등 다양한 조건에 기초하여 선택될 수 있다.
도 6은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이고, 도 7은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 6 및 도 7을 참조하면, 각각의 스토리지 장치(200-1 ~200-n)는 스토리지 시스템(10, 100)에 연결됨에 따라(S100) 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 공유정보를 생성할 수 있다(S101).
공유정보는 각 스토리지 장치(200-1~200-n) 내의 공유정보 관리 테이블(2520)에 저장되거나 BMC(123)의 공유정보 관리 테이블(2520)에 저장될 수 있다.
아울러, 각 스토리지 장치(200-1~200-n)들은 자신의 상태 모니터링을 통해 데이터의 분산이 필요한지 판단할 수 있다(S103).
데이터 분산이 불필요한 경우(S103:N), 스토리지 장치(200-1~200-n)는 계속해서 자신의 상태를 모니터링한다(S101). 데이터 분산이 필요한 경우(S103:Y) 해당 스토리지 장치는 소스 스토리지 장치(200-a)의 자격을 갖게 되고 타 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치(200-b, 200-c)를 선택할 수 있다(S105).
일 실시예에서, 소스 스토리지 장치(200-a)는 타 스토리지 장치들로 공유정보를 요청하거나(도 8) 공유정보의 세부 조건을 전송하는(도 9) 요청 및 응답 방식에 기초하여 공유정보를 공유하고 타겟 스토리지 장치를 선택할 수 있다. 일 실시예에서, 소스 스토리지 장치(00-a)는 타 스토리지 장치가 방송함에 따라 저장한 공유정보를 조회하거나(도 10), BMC(123)에 수집된 공유정보를 조회하는(도 11) 방송 및 조회 방식을 통해 공유정보를 공유하고 적어도 하나의 타겟 스토리지 장치(200-b, 200-c)를 선택하도록 구성될 수 있다.
적어도 하나의 타겟 스토리지 장치(200-b, 200-c)가 선택됨에 따라, 소스 스토리지 장치(200-a)는 분산할 데이터(데이터 블럭 5, 6, 7, 8)를 선택하고(S107), 선택된 타겟 스토리지 장치(200-b, 200-c)로 분산 대상 데이터(데이터 블럭 5, 6, 7, 8)를 전송할 수 있다(S109). 데이터 분산 제어부(2507)는 분산한 데이터의 위치를 분산 데이터 관리 테이블(2530)에 저장할 수 있다(S111). 일 실시예에서, 분산 대상 데이터(데이터 블럭 5, 6, 7, 8)의 일부(데이터 블럭 5, 6)는 제 1 타겟 스토리지 장치(200-b)로 분산 저장하고, 분산 대상 데이터(데이터 블럭 5, 6, 7, 8)의 나머지(데이터 블럭 7, 8)는 제 2 타겟 스토리지 장치(200-c)로 분산 저장할 수 있으며, 그에 따른 데이터 분산 위치를 분산 데이터 관리 테이블(2530)에 저장할 수 있다.
아울러, 소스 스토리지 장치(200-a)는 분산 저장한 데이터와 관련된 맵 테이블을 갱신하고(S113), 원본 데이터를 삭제한 후 (S115). 단계 S101로 복귀하여 자신의 상태를 계속해서 모니터링할 수 있다.
도 8 및 도 9는 실시예들에 의한 공유정보 공유 및 타겟 선택 방법을 설명하기 위한 흐름도이다.
도 8은 요청 및 응답 방식으로 공유정보를 공유하고 타겟 스토리지 장치를 선택하는 방법의 일 예를 나타낸다.
각각의 스토리지 장치(200-1~200-n)가 자신의 상태를 모니터링하여 공유정보를 수집해 둔 상태에서, 데이터 분산이 필요한 소스 스토리지 장치(200-a)는 다른 스토리지 장치들로 공유정보를 전송할 것을 요청할 수 있다(S201).
이에 응답하여 다른 스토리지 장치들이 소스 스토리지 장치(200-a)로 공유정보를 전송할 수 있고(S203), 소스 스토리지 장치(200-a)는 수신된 공유정보에 기초하여 데이터 분산에 적합한 적어도 하나의 타겟 스토리지 장치(200-b, 200-c)를 선택할 수 있다(S205).
도 9는 요청 및 응답 방식으로 타겟 스토리지 장치를 선택하는 방법의 다른 예를 나타낸다.
각각의 스토리지 장치(200-1~200-n)가 자신의 상태를 모니터링하여 공유정보를 수집해 둔 상태에서, 데이터 분산이 필요한 소스 스토리지 장치(200-a)는 다른 스토리지 장치들로 공유정보의 세부 조건을 전송할 수 있다(S301).
이에 응답하여 다른 스토리지 장치들 중 세부 조건을 충족하는 스토리지 장치들이 소스 스토리지 장치(200-a)로 응답할 수 있고(S303), 소스 스토리지 장치(200-a)는 응답한 스토리지 장치들 중 적어도 하나의 타겟 스토리지 장치(200-b, 200-c)를 선택할 수 있다(S305).
도 10 및 도 11은 실시예들에 의한 공유정보 공유 방법을 설명하기 위한 흐름도이다.
도 10은 방송 및 조회 방식을 통한 공유정보 공유 방법의 일 예를 나타낸다.
각각의 스토리지 장치(200-1~200-n)는 자신의 상태를 모니터링하여 수집한 공유정보를 다른 스토리지 장치들로 방송할 수 있다(S401). 아울러, 각각의 스토리지 장치(200-1~200-n)는 다른 스토리지 장치들로부터 방송된 공유정보에 따라 공유정보 관리 테이블을 갱신할 수 있다(S403).
각 스토리지 장치(200-1~200-n)는 공유정보가 기 설정된 임계치 이상 변동되는지 확인할 수 있고(S405), 공유정보가 임계치 이상 변동되면(S405:Y) 타 스토리지 장치들로 변경된 공유정보를 전송하여 공유정보가 갱신되도록 할 수 있다(S401)
공유정보가 변경되지 않거나 변동 정보가 임계치 미만인 경우(S405:N)에는 자신의 상태를 계속해서 모니터링할 수 있다(S101).
도 11은 방송 및 조회 방식을 통한 공유정보 공유 방법의 다른 예를 나타낸다.
각각의 스토리지 장치(200-1~200-n)는 자신의 상태를 모니터링하여 공유정보를 수집하고, BMC(123)의 공유정보 관리부(1231)로 전송할 수 있다(S501). 공유정보 관리부(1231)는 각각의 스토리지 장치(200-1~200-n)들로부터 방송된 공유정보에 따라 공유정보 관리 테이블을 갱신할 수 있다(S503).
각 스토리지 장치(200-1~200-n)는 공유정보가 기 설정된 임계치 이상 변동되는지 확인할 수 있고(S505), 공유정보가 임계치 이상 변동되면(S505:Y) 공유정보 관리부(1231)로 변경된 공유정보를 전송하여 공유정보가 갱신되도록 할 수 있다(S501).
공유정보가 변경되지 않거나 변동 정보가 임계치 미만인 경우(S505:N)에는 자신의 상태를 계속해서 모니터링할 수 있다(S101).
도 10 또는 도 11에 도시한 바에 따라 공유정보가 공유되는 경우, 소스 스토리지 장치(200-a)는 공유정보 관리 테이블(2520)을 조회하여 타겟 스토리지 장치(200-b, 200-c)를 선택할 수 있다.
도 12는 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 흐름도이고, 도 13은 일 실시예에 의한 스토리지 장치의 데이터 분산 제어 방법을 설명하기 위한 개념도이다.
도 12 및 도 13을 참조하면, 호스트(110)가 스토리지 시스템(10, 100) 내의 특정 스토리지 장치(200-a)로 데이터(데이터 블럭 5)를 리드할 것을 요청함에 따라(S601), 리드 요청을 수신한 스토리지 장치(200-a)는 리드 요청된 데이터(데이터 블럭 5)가 자신의 버퍼 메모리(2300)에 존재하는지 확인할 수 있다(S603).
리드 요청된 데이터가 버퍼 메모리(2300)에 존재하는 경우(S603:Y), 버퍼 메모리(2300) 내의 데이터를 호스트(110)로 제공할 수 있다.
리드 요청된 데이터가 버퍼 메모리(2300)에 존재하지 않는 경우(S603:N)에는 분산 데이터 관리 테이블(2530)을 참조하여, 리드 요청된 데이터(데이터 블럭 5)가 타겟 스토리지 장치(200-b, 200-c)로 분산된 데이터인지 확인할 수 있다(S607).
리드 요청된 데이터(데이터 블럭 5)가 분산된 데이터인 경우(S607:Y), 스토리지 장치(200-a)는 분산 데이터 관리 테이블(2530)을 참조하여 타겟 스토리지 장치(200-b)를 확인하고, 타겟 스토리지(200-b)에 접근하여 리드 요청된 데이터(데이터 블럭 5)를 리드하여 버퍼 메모리(2300)에 저장할 수 있다(S609). 아울러, 버퍼 메모리(2300)에 저장한 데이터(데이터 블럭 5)를 호스트(110)로 제공할 수 있다(S611).
한편, 리드 요청된 데이터(데이터 블럭 5)가 분산 데이터가 아닌 경우(S607:N), 스토리지 장치(200-a)는 맵 테이블을 통해 자신의 메모리 장치 내 데이터(데이터 블럭 5) 저장 위치를 확인하고(S613), 자신의 메모리 장치로부터 데이터(데이터 블럭 5)를 리드하여 버퍼 메모리(2300)에 저장할 수 있다(S615). 아울러, 버퍼 메모리(2300)에 저장한 데이터(데이터 블럭 5)를 호스트(110)로 제공할 수 있다(S617).
도 14는 일 실시예에 의한 데이터 저장 장치를 포함하는 네트워크 시스템의 구성도이다.
도 14를 참조하면, 네트워크 시스템(5000)은 네트워크(5500)를 통해서 연결된 서버 시스템(5300) 및 복수의 클라이언트 시스템들(5410~5430)을 포함할 수 있다.
서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)의 요청에 응답하여 데이터를 서비스할 수 있다. 예를 들면, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로부터 제공된 데이터를 저장할 수 있다. 다른 예로서, 서버 시스템(5300)은 복수의 클라이언트 시스템들(5410~5430)로 데이터를 제공할 수 있다.
서버 시스템(5300)은 호스트 장치(5100) 및 메모리 시스템(5200)을 포함할 수 있다. 메모리 시스템(5200)은 도 1 내지 도 5에 도시한 스토리지 시스템(1, 10, 100)으로 구성될 수 있다.
이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1, 10, 100 : 스토리지 시스템
120 : 스토리지 샤시
1200 : 스토리지 랙
120 : 스토리지 샤시
1200 : 스토리지 랙
Claims (20)
- 네트워크를 통해 적어도 하나의 호스트와 접속되는 복수의 스토리지 장치를 포함하는 스토리지 시스템으로서,
상기 스토리지 장치 각각은, 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하며,
상기 복수의 스토리지 장치 중 데이터 분산이 필요한 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고, 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치로 공유정보를 요청하고, 자신을 제외한 복수의 스토리지 장치가 공유정보를 전송함에 따라 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치로 공유정보의 세부 조건을 전송하고, 상기 세부 조건을 충족하는 스토리지 장치가 응답함에 따라 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 복수의 스토리지 장치 각각은 상기 스토리지 시스템에 연결됨에 따라, 자신을 제외한 복수의 스토리지 장치로 자신의 공유정보를 전송하고, 자신을 제외한 복수의 스토리지 장치로부터 전송된 공유정보를 수신하여 저장하며,
상기 소스 스토리지 장치는 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 스토리지 시스템은, 상기 복수의 스토리지 장치를 관리하는 베이스보드 관리 컨트롤러를 포함하고,
상기 복수의 스토리지 장치 각각은 상기 스토리지 시스템에 연결됨에 따라 상기 베이스보드 관리 컨트롤러로 자신의 공유정보를 전송하며,
상기 소스 스토리지 장치는 상기 베이스보드 관리 컨트롤러에 저장된 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 소스 스토리지 장치는 상기 제 1 데이터를 복수의 부분 데이터로 분할하고, 복수의 타겟 스토리지 장치 각각에 상기 부분 데이터를 전송하도록 구성되는 스토리지 시스템. - 제 1 항에 있어서,
상기 하드웨어 상태는 상기 스토리지 장치의 잔여 용량, 배드블럭 수, 온도, 수명을 포함하고, 상기 소프트웨어 상태는 비지(Busy) 정도, 상기 호스트로부터의 리퀘스트 양, 상기 호스트로부터 자주 요청되는 리퀘스트 패턴, 상기 호스트로부터 요구되는 데이터 패턴을 포함하는 스토리지 시스템. - 네트워크를 통해 적어도 하나의 호스트와 접속되고, 컨트롤러 및 상기 컨트롤러의 제어에 따라 데이터를 기록 및 판독하는 데이터 저장 장치를 포함하는 스토리지 장치로서,
상기 컨트롤러는,
상기 스토리지 장치가 상기 네트워크에 접속하여 상기 호스트와 통신하도록 하는 네트워크 인터페이스;
상기 네트워크 인터페이스의 통신 프로토콜과 상기 스토리지 장치 내부의 통신 프로토콜을 변환하는 컨버터;
상기 컨트롤러와 상기 데이터 저장 장치 간의 통신 채널을 제공하는 스토리지 인터페이스; 및
자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하며, 상기 모니터링에 따라 데이터 분산이 필요한 경우, 상기 네트워크에 접속된 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하고, 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하도록 구성되는 데이터 분산 매니저;
를 포함하는 스토리지 장치. - 제 8 항에 있어서,
상기 데이터 분산 매니저는, 데이터 분산이 필요한 경우 자신을 제외한 복수의 스토리지 장치로 공유정보를 요청하고, 자신을 제외한 복수의 스토리지 장치가 공유정보를 전송함에 따라 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 장치. - 제 8 항에 있어서,
상기 데이터 분산 매니저는, 데이터 분산이 필요한 경우 자신을 제외한 복수의 스토리지 장치로 공유정보의 세부 조건을 전송하고, 상기 세부 조건을 충족하는 스토리지 장치가 응답함에 따라 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 장치. - 제 8 항에 있어서,
상기 스토리지 장치는 상기 네트워크에 연결됨에 따라, 자신을 제외한 복수의 스토리지 장치로 자신의 공유정보를 전송하고, 자신을 제외한 복수의 스토리지 장치로부터 전송된 공유정보를 수신하여 저장하며,
상기 데이터 분산 매니저는, 데이터 분산이 필요한 경우 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 장치. - 제 8 항에 있어서,
상기 스토리지 장치는 베이스보드 관리 컨트롤러와 접속되어, 상기 베이스보드 관리 컨트롤러로 자신의 공유정보를 전송하며,
상기 데이터 분산 매니저는, 데이터 분산이 필요한 경우 상기 베이스보드 관리 컨트롤러에 저장된 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하도록 구성되는 스토리지 장치. - 제 8 항에 있어서,
상기 하드웨어 상태는 상기 스토리지 장치의 잔여 용량, 배드블럭 수, 온도, 수명을 포함하고, 상기 소프트웨어 상태는 비지(Busy) 정도, 상기 호스트로부터의 리퀘스트 양, 상기 호스트로부터 자주 요청되는 리퀘스트 패턴, 상기 호스트로부터 요구되는 데이터 패턴을 포함하는 스토리지 장치. - 네트워크를 통해 적어도 하나의 호스트와 접속되고, 복수의 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법으로서,
상기 스토리지 장치 각각이, 자신의 하드웨어 상태 및 소프트웨어 상태를 모니터링하여 자신의 공유정보를 생성 및 저장하는 단계;
상기 모니터링에 따라 데이터 분산이 필요한 소스 스토리지 장치가 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 적어도 하나의 타겟 스토리지 장치를 선택하는 단계; 및
상기 소스 스토리지 장치가 상기 적어도 하나의 타겟 스토리지 장치에 상기 소스 스토리지 장치의 제 1 데이터를 저장하는 단계;
를 포함하도록 구성되는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계는,
상기 소스 스토리지 장치가 자신을 제외한 복수의 스토리지 장치로 공유정보를 요청하는 단계; 및
자신을 제외한 복수의 스토리지 장치가 공유정보를 전송함에 따라, 상기 소스 스토리지 장치가 상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계;
를 포함하도록 구성되는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계는,
상기 소스 스토리지 장치가 자신을 제외한 복수의 스토리지 장치로 공유정보의 세부 조건을 전송하는 단계; 및
상기 세부 조건을 충족하는 스토리지 장치가 응답함에 따라, 상기 소스 스토리지 장치가 상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계;
를 포함하도록 구성되는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 타겟 스토리지 장치를 선택하는 단계는,
상기 스토리지 장치 각각이 상기 스토리지 시스템에 연결됨에 따라, 자신을 제외한 복수의 스토리지 장치로 자신의 공유정보를 전송하는 단계;
상기 스토리지 장치 각각이 자신을 제외한 복수의 스토리지 장치로부터 전송된 공유정보를 수신하여 저장하는 단계; 및
상기 소스 스토리지 장치가 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계;
를 포함하도록 구성되는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 스토리지 시스템은 상기 복수의 스토리지 장치를 관리하는 베이스보드 관리 컨트롤러를 포함하고,
상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계는,
상기 스토리지 장치 각각이 상기 스토리지 시스템에 연결됨에 따라, 상기 베이스보드 관리 컨트롤러로 자신의 공유정보를 전송하는 단계; 및
상기 소스 스토리지 장치가 상기 베이스보드 관리 컨트롤러에 저장된 자신을 제외한 복수의 스토리지 장치의 공유정보에 기초하여 상기 적어도 하나의 타겟 스토리지 장치를 선택하는 단계;
를 포함하도록 구성되는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 하드웨어 상태는 상기 스토리지 장치의 잔여 용량, 배드블럭 수, 온도, 수명을 포함하고, 상기 소프트웨어 상태는 비지(Busy) 정도, 상기 호스트로부터의 리퀘스트 양, 상기 호스트로부터 자주 요청되는 리퀘스트 패턴, 상기 호스트로부터 요구되는 데이터 패턴을 포함하는 스토리지 시스템의 동작 방법. - 제 14 항에 있어서,
상기 호스트의 리드 요청을 수신한 스토리지 장치가, 리드 요청된 데이터가 분산된 데이터인지 확인하는 단계; 및
분산된 데이터인 경우 상기 적어도 하나의 타겟 스토리지 장치로부터 데이터를 리드하여 상기 호스트로 제공하는 단계;
를 포함하는 스토리지 시스템의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190168842A KR20210077329A (ko) | 2019-12-17 | 2019-12-17 | 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 |
US16/911,101 US11269538B2 (en) | 2019-12-17 | 2020-06-24 | Storage system, storage device therefor, and operating method thereof |
CN202010672574.9A CN112988046A (zh) | 2019-12-17 | 2020-07-14 | 存储系统、其存储装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190168842A KR20210077329A (ko) | 2019-12-17 | 2019-12-17 | 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210077329A true KR20210077329A (ko) | 2021-06-25 |
Family
ID=76318003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190168842A KR20210077329A (ko) | 2019-12-17 | 2019-12-17 | 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11269538B2 (ko) |
KR (1) | KR20210077329A (ko) |
CN (1) | CN112988046A (ko) |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4039195B2 (ja) * | 2001-12-27 | 2008-01-30 | 富士ゼロックス株式会社 | ネットワークシステム |
US8886705B1 (en) * | 2003-06-30 | 2014-11-11 | Symantec Operating Corporation | Goal-oriented storage management for a distributed data storage network |
EP2350770A4 (en) * | 2008-10-21 | 2012-09-05 | Raritan Americas Inc | PROCESS FOR CONSCIOUS PERFORMANCE MANAGEMENT |
JP2011215794A (ja) * | 2010-03-31 | 2011-10-27 | Fujitsu Ltd | 分散ストレージシステム及びプログラム |
JP6020803B2 (ja) * | 2012-08-06 | 2016-11-02 | 日本電気株式会社 | 分散ストレージシステム、分散ストレージデータ移動制御方法及び分散ストレージデータ移動制御用プログラム |
US20190018591A1 (en) * | 2013-04-01 | 2019-01-17 | International Business Machines Corporation | Migrating data that is frequently accessed together in a distributed storage system |
US9450700B1 (en) * | 2013-08-05 | 2016-09-20 | Amazon Technologies, Inc. | Efficient network fleet monitoring |
US20170102952A1 (en) * | 2015-10-07 | 2017-04-13 | Dell Products, L.P. | Accessing data stored in a remote target using a baseboard management controler (bmc) independently of the status of the remote target's operating system (os) |
CN107133228A (zh) * | 2016-02-26 | 2017-09-05 | 华为技术有限公司 | 一种数据重分布的方法及装置 |
US10367752B2 (en) * | 2016-11-18 | 2019-07-30 | International Business Machines Corporation | Data packet management in a memory constrained environment |
US10282094B2 (en) | 2017-03-31 | 2019-05-07 | Samsung Electronics Co., Ltd. | Method for aggregated NVME-over-fabrics ESSD |
US20180288152A1 (en) * | 2017-04-01 | 2018-10-04 | Anjaneya R. Chagam Reddy | Storage dynamic accessibility mechanism method and apparatus |
US10310745B2 (en) * | 2017-05-19 | 2019-06-04 | Samsung Electronics Co., Ltd. | Method and apparatus for fine tuning and optimizing NVMe-oF SSDs |
KR101887632B1 (ko) * | 2017-11-13 | 2018-08-10 | 엑세스(주) | Bmc 기반의 서버 랙 시스템 |
US11683393B2 (en) * | 2019-09-11 | 2023-06-20 | Intel Corporation | Framework for computing in radio access network (RAN) |
-
2019
- 2019-12-17 KR KR1020190168842A patent/KR20210077329A/ko not_active Application Discontinuation
-
2020
- 2020-06-24 US US16/911,101 patent/US11269538B2/en active Active
- 2020-07-14 CN CN202010672574.9A patent/CN112988046A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210181967A1 (en) | 2021-06-17 |
US11269538B2 (en) | 2022-03-08 |
CN112988046A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734137B2 (en) | System, and control method and program for input/output requests for storage systems | |
US7849278B2 (en) | Logical partition conversion for migration between storage units | |
CN109857445A (zh) | 存储系统和控制软件配置方法 | |
JP4014923B2 (ja) | 共有メモリ制御方法および制御システム | |
US9794342B2 (en) | Storage system and control method for storage system | |
JP5052376B2 (ja) | ストレージシステム及びストレージシステムにおける論理ユニットの引継方法 | |
US20090240880A1 (en) | High availability and low capacity thin provisioning | |
US9542126B2 (en) | Redundant array of independent disks systems that utilize spans with different storage device counts for a logical volume | |
WO2016101287A1 (zh) | 一种存储系统数据分发的方法、分发装置与存储系统 | |
US10877913B2 (en) | Queue depth management for host systems accessing a peripheral component interconnect express (PCIe) device via a PCIe switch | |
JP2005276017A (ja) | ストレージシステム | |
CN107924289A (zh) | 计算机系统和访问控制方法 | |
US20240094933A1 (en) | Resource allocation method, storage device, and storage system | |
JP2007102762A (ja) | 論理パーティション分割ストレージシステムに於けるリソース管理方法 | |
TW201804336A (zh) | 分散式儲存及運算系統 | |
CN105009100A (zh) | 计算机系统及计算机系统的控制方法 | |
US11989455B2 (en) | Storage system, path management method, and recording medium | |
CN113497747B (zh) | 存储系统、其存储装置及其操作方法 | |
JP2005056200A (ja) | データ管理方法、ディスク記憶装置およびディスク記憶システム | |
KR102567971B1 (ko) | 스토리지 어레이를 공유하는 다수의 서버 노드들을 포함하는 메모리 시스템 및 그 동작 방법 | |
KR20210077329A (ko) | 스토리지 시스템, 이를 위한 스토리지 장치 및 동작 방법 | |
JP2022003589A (ja) | システム及びその制御方法並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |