KR102486613B1 - 희소하게 판독되는 데이터용의 저가의 스토리지 - Google Patents

희소하게 판독되는 데이터용의 저가의 스토리지 Download PDF

Info

Publication number
KR102486613B1
KR102486613B1 KR1020227002426A KR20227002426A KR102486613B1 KR 102486613 B1 KR102486613 B1 KR 102486613B1 KR 1020227002426 A KR1020227002426 A KR 1020227002426A KR 20227002426 A KR20227002426 A KR 20227002426A KR 102486613 B1 KR102486613 B1 KR 102486613B1
Authority
KR
South Korea
Prior art keywords
hard disk
disk drives
cooling
group
storage device
Prior art date
Application number
KR1020227002426A
Other languages
English (en)
Other versions
KR20220015516A (ko
Inventor
쇼바나 엠. 바라크리쉬난
아담 비. 글래스
오스틴 니콜라스 도넬리
세르게이 렉첸코
데이비드 티. 3세 하퍼
안토니 이안 타일러 로스트론
에릭 씨. 피터슨
데이비드 알렉스 버틀러
스티븐 헤일
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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20220015516A publication Critical patent/KR20220015516A/ko
Application granted granted Critical
Publication of KR102486613B1 publication Critical patent/KR102486613B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D23/00Control of temperature
    • G05D23/19Control of temperature characterised by the use of electric means
    • G05D23/1917Control of temperature characterised by the use of electric means using digital means
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0625Power saving in storage systems
    • 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
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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
    • G06F3/0649Lifecycle management
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)

Abstract

1회 기록 희소 판독 데이터(write once read rarely data)용의 저가의 스토리지가 설명된다. 한 실시형태에서, 스토리지 디바이스는 인터커넥트 패브릭(interconnect fabric)을 통해 서버에 연결되는 복수의 하드 디스크 드라이브를 포함한다. 스토리지 디바이스는 하드 디스크 드라이브의 제1 서브세트만을 냉각시킬 수 있는 냉각 시스템 및 하드 디스크 드라이브의 제2 서브세트에만 전력을 인가할 수 있는 전원 시스템(power supply system)을 포함하고, 몇몇 예에서는, 인터커넥트 패브릭은 하드 디스크 드라이브의 제3 서브세트에만 전체 대역폭을 제공할 수 있을 수도 있다. 각각의 서브세트는 하드 디스크 드라이브 중 적은 부분(fraction)만을 포함할 수도 있다. 냉각 및 전원 시스템과 인터커넥트 패브릭에 의해 설정되는 제약(constraint)이 위반되지 않기 위해 임의의 시간에 어떤 하드 디스크 드라이브가 액티브인지를 제어하는 제어 메커니즘이 제공되는데, 그 제어 메커니즘은 소프트웨어로 구현될 수도 있다.

Description

희소하게 판독되는 데이터용의 저가의 스토리지{LOW COST STORAGE FOR RARELY READ DATA}
데이터 스토리지 디바이스에 1회 기록된 다음 후속하여 드물게 판독만 되는 많은 양의 데이터가 존재하며, 예로서, 이메일 및 데이터의 보조적 지리 분산형(secondary geo-distributed) 사본의 아카이브 스토리지(archival storage)를 포함한다. 이 데이터가 판독되는 드문 경우에, 적시의 액세스가 요구되며, 따라서 콜드 스토리지(cold storage)용으로 통상적으로 사용되는 자기 테이프 기반의 솔루션(이 경우, 로봇 팔이 라이브러리로부터 테이프를 가져와서 테이프를 테이프 드라이브에 삽입하는데, 테이프 드라이브에서는 테이프가 정확한 지점까지 기계적으로 감겨진다)의 사용은, 높은 액세스 레이턴시(latency)로 인해 적절하지 않다. 테이프는 또한 환경적 조건(예를 들면, 습도)에 의해 영향을 받을 수 있으며 따라서 내구성이 제한될 수도 있다. 낮은 레이턴시 액세스를 제공하는 기존의 스토리지 솔루션은 물리적 하드 디스크 및 솔리드 스테이트 드라이브에 기초하지만, 그러나 이들은 높은 소비 전력을 가지며 또한 구매하기에 고가이다.
하기에 설명되는 실시형태는, 공지의 스토리지 솔루션의 단점 중 임의의 것 또는 전체를 해결하는 구현예로 제한되지 않는다.
하기에서는, 독자에게 기본적인 이해를 제공하기 위해 본 개시의 간략화된 개요를 제공한다. 이 개요는 본 개시의 광범위한 개괄이 아니며 또한 이 개요는 주된/주요한 엘리먼트를 식별하거나 또는 본 명세서의 범위를 묘사하지는 않는다. 그 유일한 목적은 추후 제시되는 상세한 설명에 대한 전조(prelude)로서 본원에서 개시되는 개념의 선택을 단순화된 형태로 제공하는 것이다.
1회 기록 희소 판독 데이터(write once read rarely data)용의 저가의 스토리지가 설명된다. 한 실시형태에서, 스토리지 디바이스는 인터커넥트 패브릭(interconnect fabric)을 통해 서버에 연결되는 복수의 하드 디스크 드라이브를 포함한다. 스토리지 디바이스는 하드 디스크 드라이브의 제1 서브세트만을 냉각시킬 수 있는 냉각 시스템 및 하드 디스크 드라이브의 제2 서브세트에만 전력을 인가할 수 있는 전원 시스템(power supply system)을 포함하고, 몇몇 예에서는, 인터커넥트 패브릭은 하드 디스크 드라이브의 제3 서브세트에만 전체 대역폭을 제공할 수 있을 수도 있다. 각각의 서브세트는 하드 디스크 드라이브 중 적은 일부(fraction)만을 포함할 수도 있다. 냉각 및 전원 시스템과 인터커넥트 패브릭에 의해 설정되는 제약(constraint)이 위반되지 않기 위해 임의의 시간에 어떤 하드 디스크 드라이브가 액티브인지를 제어하는 제어 메커니즘이 제공되는데, 그 제어 메커니즘은 소프트웨어로 구현될 수도 있다.
부수 기능 중 많은 것은, 첨부의 도면과 연계하여 고려되는 하기의 상세한 설명을 참조로 이들이 더 잘 이해될 때, 더 쉽게 인식될 것이다.
본 설명은 첨부의 도면과 함께 하기의 상세한 설명으로부터 더욱 잘 이해될 것인데, 도면에서,
도 1은 예시적인 스토리지 디바이스의 개략도이다;
도 2는 예시적인 스토리지 디바이스의 다른 개략도를 도시한다;
도 3은 제1 예시적인 인터커넥트 패브릭의 개략도를 도시한다;
도 4는 제2 예시적인 인터커넥트 패브릭의 개략도를 도시한다;
도 5는 HDD에 대한 액세스를 제어하는 예시적인 방법의 흐름도이다;
도 6은 스토리지 디바이스 내의 도메인을 도시하는 개략도이다;
도 7은 가장 효과적인(maximal) 서로소(disjointness)를 달성하는 예시적인 그룹 구성을 도시하는 개략도이다;
도 8은 스토리지 디바이스 내의 HDD의 표현을 위에서부터 도시하는 개략도이다;
도 9는 2 개의 서버 시나리오에서의 스토리지 디바이스 내의 HDD의 표현을 위에서부터 도시하는 개략도이다;
도 10은 스토리지 디바이스에 데이터를 기록하는 예시적인 방법의 흐름도를 도시한다;
도 11은 도 10에 도시되는 방법 중 2개 방법 간의 차이를 예시하는 개략도를 도시한다;
도 12는 스토리지 디바이스 내에서의 판독 동작을 스케줄링하는 예시적인 방법의 흐름도를 도시한다;
도 13은 스토리지 디바이스에 대한 예시적인 스케줄링 타임라인을 도시한다;
도 14는 스토리지 디바이스로부터 데이터를 판독하는 다른 예시적인 방법의 흐름도이다; 그리고
도 15는 본원에서 설명되는 HDD를 제어하는 방법의 실시형태가 구현될 수도 있는 예시적인 컴퓨팅 기반 디바이스를 예시한다.
첨부의 도면에서 동일한 부분에 대해 동일한 도면 부호가 사용된다.
첨부의 도면과 연계하여 하기에 제공되는 상세한 설명은 본 예의 설명으로서 의도되며, 본 예가 구성되거나 활용될 수도 있는 유일한 형태를 나타내도록 의도되지는 않는다. 본 설명은 상기 예의 기능 및 예를 구성하고 동작시키기 위한 단계의 순서를 개시한다. 그러나, 동일한 또는 등가의 기능 및 순서는 상이한 예에 의해 달성될 수도 있다.
도 1은 예시적인 스토리지 디바이스(100)의 개략도이다. 스토리지 디바이스(100)는 (표준 랙 폼팩터(rack form factor)를 갖는) 랙 스케일 디바이스일 수도 있거나 또는 대안적인 폼팩터를 가질 수도 있다. 스토리지 디바이스는 다수의 하드 디스크 드라이브(hard disk drive; HDD)(102)(예를 들면, 1000개가 넘는 HDD) 및 서버(104)를 포함한다. 각각의 HDD(102)는, 액티브인 때(즉, 데이터가 판독 또는 기록되고 있을 때) 고속으로 회전되는 플래터(platter)(또는 디스크)를 포함한다. 소비 전력을 감소시키기 위해, 플래터는 스핀다운(즉 정지)될 수 있지만; 그러나, 플래터를 스핀업시키는 것과 관련되는 레이턴시가 존재하며 플래터가 스핀다운되는 동안에는 데이터가 판독 또는 기록될 수 없다. 이하의 설명을 위해, 이 레이턴시는 약 10초인 것으로 가정되지만, 레이턴시는 10초보다 더 짧거나 더 길 수도 있음은 물론이다.
HDD(102) 및 서버(104)를 인터커넥트하는 인터커넥트 패브릭(interconnect fabric)(106)이 스토리지 디바이스 내에 제공된다. 전력은 전원 시스템(108)에 의해 제공되는데, 전원 시스템(108)은, 도 1에서는 단일의 블록으로서 도시되지만, 스토리지 디바이스(100) 전체에 걸쳐 분산될 수도 있다. (HDD(102)에 대한) 냉각은 냉각 시스템(110)에 의해 제공되는데, 냉각 시스템(110)은 예를 들면, HDD 주위로 공기를 강제로 유통시키기 위해(송풍하거나 흡기하기 위해) 하나 이상의 팬을 사용하는 강제 공냉 시스템(forced air cooling system)일 수도 있다.
스토리지 디바이스(100)에서, 전원 시스템(108) 및 냉각 시스템(110) 둘 모두는 상당히 언더프로비저닝되고(underprovisioned), 그 결과, 스토리지 디바이스(100)는 액티브인(즉 그들의 플래터가 회전하고 있는) 모든 HDD(102)를 한꺼번에 지원할 수 없게 되고, 대신, 전원 시스템(108) 및 냉각 시스템(110)은 액티브인 HDD(102) 중 적은 일부(예를 들면, 10% 또는 그 미만 및 일 예에서는 8.3%)만을 동시에 지원할 수 있게 된다. 스토리지 디바이스(100) 내의 모든 HDD(102)가 그들의 플래터를 동시에 회전시키기 시작하면, 스토리지 디바이스(100)가 고장나게 되고 결과적으로 임의의 하나의 시간에 액티브인 HDD(102)의 수를 제어하기 위한 메커니즘이 스토리지 디바이스(100) 내에 제공된다. 이 메커니즘은 스토리지 디바이스(100) 내의 제어 로직(112) 및/또는 서버(104) 상에서 실행되는 소프트웨어에 의해(예를 들면, 스케줄러에 의해) 제공될 수도 있다.
스토리지 디바이스(100) 내에서의 전원 시스템(108) 및 냉각 시스템(110)의 언더프로비저닝(즉, 전원 시스템 및 냉각 시스템의 특성)은 임의의 시간에 액티브일 수 있는 HDD(102)의 수에 제약을 설정하며, 이들 제약은, 이들이 위반되면 스토리지 디바이스(100)가 고장날 것이기 때문에(또는 고장날 가능성이 아주 높기 때문에), "엄격한 제약(hard constraint)"으로 칭해질 수도 있다. 스토리지 디바이스(100)의 설계에 따라, 하나 이상의 다른 엄격한 제약 및/또는 하나 이상의 유연한 제약(soft constraint)이 존재할 수도 있다. 유연한 제약의 예는, 대역폭 제약(예를 들면, 외부 네트워크로부터 서버(104)로의 인터페이스의 최대 대역폭 또는 인터커넥트 패브릭(106) 내에서의 대역폭 제약) 및 진동 제약을 포함할 수도 있다. 유연한 제약의 위반은 스토리지 디바이스(100)의 고장을 야기하지는 않지만(또는 고장을 야기시킬 가능성이 아주 높지 않지만) 대신 성능을 저하시킬 것이고(예를 들면, 대역폭 제약을 초과하는 것은 디바이스에 대한 액세스를 느리게 할 것이다) 그리고/또는 더 장기간의 손상을 야기할 수도 있다(예를 들면, 진동 제약을 초과하는 것은 단기간에는 스토리지 디바이스의 고장을 야기시킬 가능성이 없지만, 더 긴 기간에 걸쳐, 궁극적으로는 스토리지 디바이스(100)의 고장으로 이어질 수도 있는 손상을 야기할 수도 있다). 이들 제약(예를 들면, 전력 및 냉각 제약 및 사용될 수도 있는 임의의 추가적인 제약, 예컨대 인터커넥트 패브릭으로부터 유래하는 대역폭 제약)은 제어 로직(112) 및/또는 서버(104) 상에서 실행되는 소프트웨어에 의해 관리된다.
도 1이 스토리지 디바이스(100) 내에 위치한 서버(104)를 도시하지만, 몇몇 예에서는, 서버(104)는 스토리지 디바이스(100) 외부에 위치할 수도 있고, 몇몇 예에서는, 서버(104)는 스토리지 디바이스(100)로부터 원격으로 위치할 수도 있다. 또한, 도 1이 단일의 서버(104)를 도시하지만, 스토리지 디바이스(100)는 (예를 들면, 리던던시 목적(redundancy purpose))을 위해 복수의 서버를 포함할 수도 있고, 다수의 서버가 존재하는 경우 모든 HDD(102)는 단일의 서버(104)에 연결될 수도 있거나(서버 고장의 경우 HDD가 제2 서버로 스위칭됨) 또는 HDD(102)는 분할되어 한 서브세트는 하나의 서버에 연결되고 다른(서로소의) 서브세트는 다른 서버에 연결될 수도 있다(이 경우, 이들 서브세트는 고정될 수도 있거나 또는 시간에 걸쳐 동적으로 변경될 수도 있다)는 것이 인식될 것이다. 몇몇 예에서, 복수의 인터커넥트 패브릭(106) 및 복수의 독립 서버(104)가 존재할 수도 있고, 상이한 인터커넥트 패브릭(106)은 HDD(102)를 다수의 서버 또는 상이한 서버로 연결한다. 이것은 서버 및/또는 인터커넥트 패브릭 고장에 대해 회복성(resilience)을 제공한다.
HDD(102)는 본원에서 액티브이거나(즉, 그들의 플래터가 회전하고 있음) 또는 액티브가 아닌(즉, 그들의 플래터가 회전하고 있지 않음) 것으로 설명되는데, 액티브가 아닌 것은 HDD 내의 전자장치가 여전히 전력을 인가받고 있기 때문에, 본원에서는, HDD가 스탠바이 상태에 있는 것으로 또한 칭해진다. HDD(102)는 2개(액티브 상태/액티브가 아닌 상태)보다 많은 상태, 예컨대 액티브가 아닌 상태에서 액티브 상태로 전이하고 있는 상태(즉, 플래터가 스핀업되고 있는 경우), 액티브 상태에서 액티브가 아닌 상태로 전이하고 있는 상태(즉, 플래터가 스핀다운되고 있는 경우), 완전히 오프된 상태(즉, 어떤 전력도 전자장치에 인가되지 않음) 및 다양한 다른 저전력 상태를 가질 수도 있다는 것이 인식될 것이다. 이하의 설명을 위해, 액티브 상태는, 플래터가 회전하고 있고 데이터가 판독/기록되고 있는 상태 및 플래터가 회전하고 있고 데이터가 판독/기록되지 않는 상태(이것은 "아이들(idle)" 상태로 칭해질 수도 있다) 둘 모두 포함하는 것으로 간주되는데, 이들 상태 둘 모두가 유사한 전력의 양(예를 들면, 8W)을 소비하기 때문이다. 스핀업 상태는 짧은 기간에 걸쳐 많은 양의 전력을 소비하며(예를 들면, 10초 동안 24W) (예를 들면, 전력 어카운팅(power accounting)을 위해) 액티브 상태의 일부로서 간주될 수도 있거나 또는 별개로서 간주될 수도 있다. 예시적인 구현예에서, 각각의 HDD의 상태는 3 상태: 스탠바이 상태(또는 액티브가 아닌 상태), 스핀업 상태 및 액티브 상태 중 하나로서 추적될 수도 있다. 다른 예에서는, 추가적인 HDD 상태가 또한 고려될 수도 있다는 것이 인식될 것이다(예를 들면, 스핀다운의 제4 상태가 또한 추적될 수도 있는데 이 경우 이것은 완료하는 데 무시할 수 없는 양의 시간이 걸리게 된다).
도 2는 예시적인 스토리지 디바이스(100)의 다른 개략도를 도시한다. 이 도면은, 각각의 HDD(102)가 자신의 (x,y,z) 좌표에 의해 식별될 수도 있는 HDD(102)의 예시적인 3D 배치를 도시한다. HDD(102)는 실제 스토리지 디바이스(100) 내에서 규칙적인 그리드에 위치하지 않을 수도 있지만; 그러나, 이 표현은, 도 2에 도시된 바와 같이, 이하의 설명을 위해 HDD(102)의 논리적 표현을 제공한다는 것이 인식될 것이다.
스토리지 디바이스(100) 내의 HDD(102)는, 디바이스 설계의 결과로서, 전력 제약에 의해 연결되는 서로소(또는 비중첩) 서브세트로 배열될 수도 있고, 한 예에서는, HDD(102)는 트레이(202)에 배열될 수도 있는데, 이 경우, 한 트레이(202)의 HDD(102)는 동일한 값의 x 및 z(및 가변하는 값의 y)를 가지며 하나의 트레이는 도 2에서 음영처리된 셀(shaded cell)로 도시된다. 전력 제약은 트레이로 전달될 수 있는 전력의 최대 양에 의해 설정된다. 한 예에서, 전력 제약은, 단일의 트레이 내에서 단지 2 개의 HDD만이 액티브일 수도 있다는 것을 명시할 수도 있고, 몇몇 예에서 이 제약은, 2 개의 액티브 HDD 중 하나만이 스핀업 상태에 있을 수도 있다는 점에서 더 한정될 수도 있다. 도 2가 35 개의 트레이를 갖는 스토리지 디바이스(100)를 도시하지만, 이것은 예에 불과하며 스토리지 디바이스(100)는 임의의 수의 트레이를 포함할 수도 있다는 것이 인식될 것이다. 한 예에서, 스토리지 디바이스는 72 개의 트레이를 포함할 수도 있고 각각의 트레이는 16 개의 HDD를 포함할 수도 있다.
스토리지 디바이스(100) 내의 HDD(102)는 또한, 냉각 제약에 의해 연결되는 서로소 서브세트(예를 들면, 이 경우 서브세트는 냉각 시스템(110) 내에서 동일한 공기 통로(air path) 안에 있음)로 배열될 수도 있다. 한 예에서, HDD(102)는 칼럼(204)으로 배열될 수도 있는데, 이 경우 한 칼럼의 HDD는 동일한 값의 x 및 y(및 가변하는 값의 z)를 가지며 하나의 칼럼은 도 2에서 음영처리된 셀로 도시된다. 한 예에서, 냉각 시스템(110)은 (화살표(206)로 표시되는 바와 같이) 전면에서 공기를 강제로 유입시켜, 칼럼을 통해 위로 그리고 스토리지 디바이스(100)의 이면에서 배출시키며 따라서 칼럼(204)의 모든 HDD는, 이들 모두가 디바이스를 통과하는 동일한 냉각 경로 상에(즉, 동일한 수직 기류에) 위치하기 때문에, 냉각 제약에 의해 연결된다는 것을 알 수 있다. 한 예에서, 냉각 제약은, 단일의 칼럼 내에서 하나의 HDD만이 액티브일 수도 있다는 것을 명시할 수도 있다. 도 2가 35 개의 칼럼을 갖는 스토리지 디바이스(100)를 도시하지만, 이것은 예에 불과하며 스토리지 디바이스(100)는 임의의 수의 칼럼을 포함할 수도 있음은 물론이다. 한 예에서, 스토리지 디바이스는 96 개의 칼럼(각각의 칼럼은 12 개의 HDD를 포함함)을 포함할 수도 있다.
도 2로부터 알 수 있는 바와 같이, 칼럼 및 트레이는 서로소가 아니며 트레이(202)와 칼럼(204) 사이에 하나의 HDD의 중첩(overlap)이 존재한다. 따라서, 2 개의 제약은 독립적이지 않다. 또한, 2 개의 제약은, 임의의 하나의 시간에 스토리지 디바이스(100)에서 액티브일 수도 있는 HDD의 총 수에 대해 상이한 상한을 설정할 수도 있고, 그 경우, 두 상한 중 더 낮은 것이 사용된다. 예를 들면, 16 개의 HDD의 트레이와 12 개의 HDD의 칼럼으로 배열되는 1152 개의 HDD를 포함하는 시스템에서, 전력 제약은 임의의 시간에서 액티브인 HDD의 최대 수를 144(72 개의 트레이에 대해, 트레이당 2개)로 설정하고 한편 냉각 제약은 임의의 시간에 액티브인 HDD의 최대 수를 96(96 개의 칼럼에 대해, 칼럼당 1개)으로 설정하며 따라서 스토리지 디바이스에서 임의의 시간에서의 액티브 HDD의 수에 대한 전체 제한은 96이다.
도 3은 제1 예시적인 인터커넥트 패브릭(300)의 개략도를 도시한다. 이 예는 2 개의 서버(302)를 포함하는 스토리지 디바이스에 대한 인터커넥트 패브릭을 도시하는데, 이 경우 제2 서버는, 예를 들면, 서버 고장의 경우의 리던던시를 위해, 모든 HDD(304)에 연결된다(또는 모든 HDD(304)에 연결가능하다). 그러나, 싱글 서버 솔루션의 경우, 점선(306)에 의해 둘러싸인 엘리먼트는 생략될 수도 있다는 것이 인식될 것이다. 이 예시적인 인터커넥트 패브릭(300)은 PCI 익스프레스(PCI express; PCIe)를 사용하며, 케이블을 PCB 트레이스로 대체하는 것에 의해 케이블의 수를 감소시키도록(사람에 의한 잘못된 연결의 가능성을 감소시키도록), (PCI 신호가 트레이스를 따라 이동함에 따라 PCI 신호는 열화되기 때문에) 이들 PCB 트레이스의 길이를 감소시키도록, 사용되는 임의의 케이블의 길이를 감소시키도록(이것은 비용을 감소시킴) 그리고 서버(302)와 HDD(304) 사이의 운용가능한 거리(workable distance)를 확장(또는 최적화)시키도록 스토리지 디바이스(100) 내에서 물리적으로 분산되는 복수의 컴포넌트(308-314)를 포함한다. 운용가능한 거리는 스토리지 디바이스 내에서의 컴포넌트의 분산을 통해 확장되는데, 각각의 PCIe 컴포넌트가 신호를 재컨디셔닝하기(recondition) 때문이다.
도 3에 도시된 바와 같이, 서버(302)는 서버 스위치(308)에 연결되며 각각의 서버에 대해 하나의 서버 스위치가 존재한다. 각각의 서버 스위치(308)는 복수의 백플레인 스위치(310)(BSn으로 표기됨)에 연결된다. 도 3에 도시되는 예에서, 서버 스위치(308)에 연결되는 6 개의 백플레인 스위치(310)가 존재하며, 예시적인 구현예에서, 이 연결(서버 스위치(308)에서 각각의 백플레인 스위치(310)로)은 PCB 트레이스 대신 케이블을 사용하는 유일한 연결일 수도 있다. 백플레인 스위치(310)는 복수의 트레이 스위치(312)(TSn으로 표기됨)에 연결되고, 도시되는 예에서는, 백플레인 스위치(310)에 연결되는 12 개의 트레이 스위치가 존재한다. 2 개의 서버(304)가 존재하는 경우, 인터커넥트 패브릭의 트레이 스위치 레벨에서 중복은 존재하지 않으며, 각각의 트레이 스위치(312)는 2 개의 백플레인 스위치(310)에 연결되며; 하나는 제1 서버에 연결되고 하나는 제2 서버에 연결된다는 것을 알 수 있다. (각각의 서버(302)에 대해) 6 개의 백플레인 스위치(310)이 존재하기 때문에, 도 3에 도시되는 예에서는 총 72 개의 트레이 스위치(312)가 존재한다. 한 트레이 내에는, 2 개의 SATA 컨트롤러(314)(SCn으로 표기됨)가 존재하고 이들은 트레이 스위치(312)를 개개의 HDD(304)에 연결한다. 도 3에 도시되는 바와 같이, 각각의 SATA 컨트롤러(314)는 트레이의 HDD(304) 중 절반에 연결된다. 도 3에 도시되는 예에서 72 개의 트레이 스위치가 존재하기 때문에, 총 1152 개의 HDD에 연결되는 144 개의 SATA 컨트롤러가 존재하고, 각각의 SATA 컨트롤러는 8 개의 HDD에 연결된다.
도 3을 참조로 설명될 수 있는 바와 같이, 인터커넥트 패브릭은 대역폭 제약을 제공할 수도 있지만; 그러나, 몇몇 경우에서는, 어떤 HDD가 액티브일 수 있는지를 결정할 때, 예를 들면, 전력 및 냉각 제약이 충족되면 대역폭 제약도 항상 충족되는 경우, 대역폭 제약은 명시적으로 고려될 필요가 없다.
도 3에 도시되는 예에서, 각각의 HDD(304)는 SATA 컨트롤러(314)에 대해 1 Gb/s 연결을 가질 수도 있고, 인터커넥트 패브릭의 이 레벨에서는 1152 Gb/s의 총 용량을 제공하게 된다. 다음 상위 레벨에서, 각각의 SATA 컨트롤러(314)는 트레이 스위치(312)에 대해 4 Gb/s 연결을 가질 수도 있고, 인터커넥트 패브릭의 이 레벨에서는 576 Gb/s(이전 레벨의 절반)의 총 용량을 제공하게 된다. 그 다음, 각각의 트레이 스위치(312)는 백플레인 스위치(310)에 대해 8 Gb/s 연결을 가질 수도 있고, 인터커넥트 패브릭의 이 레벨에서는 576 Gb/s의 총 용량을 제공하게 된다. 각각의 백플레인 스위치(310)는 서버 스위치(308)에 대해 16 Gb/s 연결을 가지며, 인터커넥트 패브릭의 이 레벨에서는 192 Gb/s(이전 레벨의 1/3)의 총 용량을 제공하고 각각의 서버 스위치(308)는 서버(302)에 대해 32 Gb/s 연결을 갖는다. 대안적으로, 각각의 트레이 스위치(312)는 백플레인 스위치(310)에 대해 4 Gb/s 연결을 가질 수도 있고(이 레벨에서는 단지 288 Gb/s 또는 이전 레벨의 절반의 총 용량을 제공함) 각각의 백플레인 스위치(310)는 서버 스위치(308)에 대해 8 Gb/s 연결을 가질 수도 있다(이 레벨에서는 단지 96 Gb/s의 총 용량을 제공하는데, 이것은 이전 레벨의 1/3이다). 냉각 및 전력 제약에 의해 액티브이도록 허용되는 모든 96 개의 HDD가 액티브이면, 이들 모두를 판독하고/하거나 이들 모두에 대해 기록하기에는 인터커넥트 패브릭(300) 내에 불충분한 대역폭이 존재한다는 것을 이들 예의 둘 모두가 명확하게 설명한다. 결과적으로 이 예에서, (언더프로비저닝된 인터커넥트 패브릭의 결과로서의) 대역폭 제약은, 임의의 하나의 시간에 어떤 HDD가 액티브로 될 것인지를 결정할 때 또한 고려될 수도 있다. 상기에서 설명되는 바와 같이, 대역폭 제약은, 이것이 혼잡과 레이턴시를 야기하며 스토리지 디바이스의 고장으로 나타나지 않기 때문에 유연한 제약으로 간주된다.
도 4는 제2 예시적인 인터커넥트 패브릭(400)의 개략도를 도시하며, 이 예에서는 단일의 서버(402)만이 도시되지만; (예를 들면, 최상위(top) 레벨의 멀티플렉서의 각각을 양 서버에 연결하는 것에 의해) 패브릭은 2 개의 서버를 갖는 사용에 대해 수정될 수도 있다. 이 예의 인터커넥트 패브릭(400)은, 서버(402) 상에 제공되는 적은 수의 SATA 포트에 연결되며 SATA 내의 핫플러그 인프라(hotplug infrastructure)를 사용하는 SATA 멀티플렉서(404)의 트리를 포함한다. 이 예에서, 트리는 6개층 깊이이며, 최상위 레벨의 2 개의 멀티플렉서(404)와 최하위(bottom) 레벨의 486 개의 멀티플렉서를 가지며, 486 개의 멀티플렉서 각각은 복수의 HDD(406)에 연결된다. 명확화의 목적을 위해, 도 4에서는, 모든 멀티플렉서(404) 또는 HDD(406)가 도시되지는 않다는 것이 인식될 것이다. 이 SATA 구현예에서는, 임의의 시간에 트리를 통과하는 하나의 액티브 루트만이 존재한다. 액티브가 아닌 이들 HDD는, 이들이 액티브인 상태에서 액티브가 아닌 상태로 전이하여 이들이 더 이상 서버에게 보이지 않을 때(더 이상 서버(402)와 통신하지 않을 때) 유효하게 핫언플러그된다(hot unplugged). 이것은, 각각의 HDD에 대한 직접 연결이 존재하는 도 3에 도시되는 PCIe 방식(인터커넥트 패브릭(300))과는 대비되며 이것은 HDD의 우선적(pre-emptive) 전력 인가(즉, 다른 세트의 HDD로부터 판독하거나 또는 다른 세트의 HDD에 기록하는 동안 한 세트의 HDD에 전력을 인가하는 것)를 가능하게 하는데, 이것은 도 3에 도시되는 인터커넥트 패브릭(300)을 사용해서는 불가능하다. 도 4가 SATA 멀티플렉서(404)의 사용을 도시하지만, 다른 예의 인터커넥트 패브릭에서는, SATA 멀티플라이어(multiplier)가 대안적으로 사용될 수도 있다(그러나 이것은 인터커넥트 패브릭의 비용을 증가시킬 것이고 SATA 멀티플라이어가 데이지 체인(daisy-chain) 방식으로 연결될 수 없을 때, 이것은 연결될 수 있는 HDD의 수를 제한할 것이다).
상기에서 설명되는 바와 같이, 본원에서 설명되는(그리고 도 1 및 도 2에서 도시되는) 스토리지 디바이스(100) 내의 전력 및 냉각 시스템은 상당히 언더프로비저닝되며, 그 결과 모든 HDD는 동시에 스핀업될 수 없다(즉, 불충분한 전력 및 불충분한 냉각 둘 모두가 존재한다). 그러나, 표준 컴퓨팅 디바이스에서, HDD는 기동시 자동적으로 스핀업되고 프로세스는 다른 목적(예를 들면, 바이러스에 대해 파일을 스캔할 때, HDD 내에서의 검색을 허용하기 위해 파일을 인덱싱할 때, 디스크가 암호화되어 있는지의 여부를 검사할 때, 디스크 고장 예측 카운터를 검사할 때, 디스크가 레거시 방식으로 포맷되었는지의 여부를 검사할 때, 등등)을 위해 간헐적으로 HDD를 스핀업할 수도 있다. 본원에서 설명되는 스토리지 디바이스에서 이것을 방지하기 위해, 각각의 HDD에 대한 액세스(또는 "액세스 금지") 플래그가 서버 내에 저장될 수도 있고 그 다음 서버 상에서 실행되는 소프트웨어(예를 들면, 오퍼레이팅 시스템)는, HDD가 "액세스 금지"로 마킹되면 그 HDD에 대한 모든 동작이 실패하도록, 수정된다. 이것은 도 5의 예시적인 흐름도(500)에서 도시된다.
도 5는 HDD에 대한 액세스를 제어하는 예시적인 방법의 흐름도를 예시한다. HDD에 대한 IO 요청이 발행되면, HDD에 대해 "액세스 금지"가 설정되어 있는지의 여부를 보기 위해 검사가 수행되고(블록 502), 플래그가 설정되어 있으면(블록 502에서 "Yes"), IO 요청은 실패한다(블록 504). 그러나, 플래그가 설정되어 있지 않으면(블록 502에서 "No"), IO 요청은 정상적으로 핸들링된다(블록 506). 기동시 모든 비부팅(non-boot) HDD는 그들의 플래그가 설정("액세스 금지"를 나타냄)될 수도 있고 후속하여 HDD는 그들이 비액티브와 액티브 상태 사이를 전환할 때 그들의 플래그를 설정해제/설정할 수도 있다. 구현예에 따라서, 플래그는 "액세스 금지"를 나타내기 위해 1 또는 0 중 어느 하나로 설정될 수도 있다. 또한, HDD 드라이버는, 부트 시퀀스 동안 HDD를 발견하는 방식을 변경하도록 수정될 수도 있다. 이러한 수정된 드라이버는 각각의 HDD를 스핀업, 검사, 식별 및 스핀다운을 차례차례 하도록 구성된다. 기존 드라이버는 HDD의 스태거 방식의 스핀업(staggered spin up)을 수행할 수도 있지만, 다음 번 HDD를 스핀업하기 이전에 하나의 HDD를 스핀다운하지 않는다.
상기에서 설명되는 바와 같이, 전력 및 냉각 (및 잠재적으로는 다른) 제약은, 임의의 시간에 스토리지 디바이스 내에서 액티브로 될 수 있는 HDD의 수를 제한하며, 제어 로직 및/또는 서버 상에서 실행되는 소프트웨어는 어떤 HDD가 액티브인지를 제어하기 위해(그리고 대응하는 액세스 플래그가 사용되는 경우, 이들을 설정하기 위해) 사용된다. 도 2에 도시되는 예시적인 스토리지 디바이스를 다시 참조하면, 스토리지 디바이스 내의 HDD는 셀의 정규 그리드로 표현될 수도 있는데, 각각의 셀은 HDD(102)에 대응하고 각각의 HDD는 (x,y,z) 좌표에 의해 참조된다. 상기에서 설명되는 바와 같이, 냉각 제약은 칼럼(204) 내에서 동작하고 이것은 "냉각 도메인"으로 칭해질 수도 있는데, 동일한 x 및 y 좌표를 갖는 2 개의 HDD는 하나의 냉각 도메인을 공유한다. 마찬가지로, 전력 제약은 트레이 내에서 수평으로 동작하고 이것은 "전력 도메인"으로 칭해질 수도 있으며, 동일한 x 및 z 좌표를 갖는 2 개의 HDD는 하나의 전력 도메인을 공유한다. 스토리지 디바이스의 최소 부분에 대해서는 용어 "슬라이스"가 사용될 수도 있는데, 그 최소 부분에 대해서는 전력 및 냉각 도메인이 자체 포함되고 동일한 x 좌표를 갖는 HDD는 동일한 슬라이스 안에 있으며 2 개의 상이한 슬라이스로부터의 HDD는 전력 또는 냉각 도메인을 공유할 수 없다. 도 6은 스토리지 디바이스(600) 내의 도메인을 도시하는 다른 개략도인데, 이 예에서는, 슬라이스(602)가 스토리지 디바이스의 나머지와 분리되어 도시된다. 도 6은 슬라이스(602)에서의 HDD(608)의 전력 도메인(604) 및 냉각 도메인(606)을 또한 도시한다.
다양한 예에서, 스토리지 디바이스 내의 HDD는 논리적으로 비중첩인 그룹으로 분할될 수도 있는데, 각각의 그룹은, 전력 및 냉각 제약을 위반하지 않으면서 동시에 모두 액티브일 수 있는 복수의 HDD를 포함한다. 이러한 예에서, 각각의 HDD는 단일 그룹의 멤버이며, 한 그룹은, 동시에 액티브일 수 있는 모든 HDD를 포함하는 것은 아니라는 것이 인식될 것이다(예를 들면, 다수의 그룹이 동시에 액티브일 수도 있다). 예시적인 구현예에서, HDD는, 각각의 그룹이 동일한 수의 HDD(예를 들면, 16 개의 HDD)를 갖도록 그리고 하나의 그룹의 HDD는 함께 냉각되고 전력을 인가받을 수 있도록(즉, 하나의 그룹의 HDD가 전력 또는 냉각 제약을 위반하지 않도록), 논리적 그룹으로 구분될 수도 있다. 몇몇 예에서는, 하나의 그룹의 HDD가 트리(도 3에 도시되는 PCIe 트리)의 루트를 포화시키지 않는 한, 하나의 그룹의 HDD가 인터커넥트 패브릭 내에서 대역폭 충돌을 갖지 않는 대역폭(유연한) 제약이 또한 존재할 수도 있다.
그룹 중 몇몇은, 그들의 HDD의 도메인(냉각 및/또는 전력)이 중첩하기 때문에, 상호 배타적일 것이며 이들 그룹은 충돌하는 것으로 설명될 수도 있다. 충돌하지 않는 그룹은 서로소인 것으로 설명될 수도 있고 HDD의 서로소를 최대화하도록(즉, 하나의 그룹 내의 임의의 HDD가, 다른 그룹의 HDD와 동일한 냉각 또는 전력 도메인에 있지 않을 확률을 최대화하도록) HDD를 그룹화함으로써, 랜덤하게 선택되는 2 개의 그룹이 동시에 액티브일 수 있는 확률이 상승하고 스토리지 디바이스의 스루풋이 증가한다. 그룹 서로소를 최대화하는 예시적인 레이아웃은, 2 개의 그룹이 서로소이도록 또는 완전히 충돌하도록(즉, 제1 그룹의 각각의 HDD가 제2 그룹의 HDD의 냉각 및 전력 도메인에 있음) 배열되는 레이아웃이다.
도 7은 가장 효과적인 서로소를 달성하는 (그룹당 16 개의 HDD에 대한) 예시적인 그룹 구성을 도시한다. 도 7은 2 개의 그룹(702, 704)을 도시하며, 각각의 그룹 내의 HDD는 그룹 내(in-group) 충돌을 방지하기 위해 대각선을 따라 배치된다. 제1 그룹(702)의 각각의 HDD는 제2 그룹(704)의 전력 도메인 및 냉각 도메인 둘 모두에 있다는 것을 명확하게 알 수 있다. 제1 그룹(702)의 HDD(706)를 예로 취하면, 그것은 제2 그룹(704)의 한 HDD(708)의 전력 도메인에 그리고 제2 그룹의 제2 HDD(710)의 냉각 도메인에 있다. 각각의 그룹이, 단일의 슬라이스에서 전력 도메인이 존재하는 것보다 더 많은 HDD(16 개의 HDD와 비교하여 12 개의 전력 도메인)를 포함하기 때문에(그리고 이 경우 이 예에서는 냉각 도메인보다 더 적은 전력 도메인이 존재하며, 따라서, 이것은 제한 요인이다), 각각의 그룹은 2 개의 슬라이스(712, 714)로부터의 HDD를 포함하며 이 예에서는 2 개의 슬라이스는 스토리지 디바이스 내에서 서로 인접한다. 도 7에 도시되는 예시적인 배치예를 사용하면, 16 개의 HDD로 이루어지는 72 개의 적격한(well-formed) 그룹을 형성하는 것이 가능하다. 각각의 그룹은 동일한 슬라이스에서 11 개의 그룹과 완전히 충돌하며 나머지 60개 그룹 중 임의의 것과 동시에 스핀업될 수 있다.
상기에서 설명되는 그룹 배치 전략이 사용되면, 조인트 그룹(즉, 충돌하는 그룹)을 식별하는 것은 간단한 동작이다: 2 개의 그룹은, 이들이 동일한 슬라이스에 위치하면(그리고 이들이 동일한 슬라이스에 위치하는 경우에만) 전력 및 냉각 도메인을 공유한다. 한 그룹의 라인은, 그 그룹과 조인트하는 모든 그룹을 포함하는 등가 클래스로서 정의될 수도 있으며 이것은 도 8에 도시된다. 도 8은 스토리지 디바이스 내의 HDD의 표현을 위에서부터 나타내는 개략도이다. 각각의 셀(802)은 냉각 도메인을 나타내고 각각의 로우(row)(804)는 슬라이스를 나타낸다. 각각의 라인은 음영으로 표시되며, 전력 및 냉각 도메인이 완전히 중첩하는 16 개의 HDD로 이루어지는 12 개의 그룹으로 구성된다. 각각의 라인은: 동일한 라인으로부터의 그룹이 순차적으로 스케줄링되어야 하고 임의의 두 라인으로부터의 그룹은 스핀업할 수 있고 동시에 액티브일 수(예를 들면, IO를 수행할 수) 있다는 것을 특성을 갖는다. 도 8에 도시되는 특정 예를 참조하면, 임의의 라인의 각각의 그룹은 다른 라인의 임의의 그룹과 동시에 스핀업할 수 있고 6 개의 라인 중 임의의 두 라인은 동시에 액티브일 수 있다.
(서버 고장시 서버 사이를 전환하는 대신) 동시에 액티브인 2 개의 서버를 포함하는 스토리지 디바이스에서, 서버간(inter-server) 스케줄링 충돌을 방지하기 위해 그룹은 서버에 할당될 수도 있고 도 9에 도시되는 바와 같이 슬라이스와 서버 사이에 매핑이 사용될 수도 있다. 냉각/전력 도메인의 관점에서 슬라이스가 독립적이기 때문에 슬라이스로부터 서버로의 매핑을 사용하는 것이 유익하며 도 9에 도시되는 바와 같이, 라인은 임의의 슬라이스가 정확히 하나의 서버에 속하도록 재정렬될 수도 있다. 도 8 및 도 9를 비교하면, 도 9의 다중 서버 시나리오에서, 처음 세 개의 슬라이스가 제1 서버에 매핑될 수 있도록 하기 위해, 라인 1은 제1 슬라이스에서 (제 6 슬라이스 대신) 제3 슬라이스까지를 포함한다는 것을 알 수 있다. 마찬가지로, 라인 4는 제4 슬라이스로부터 (제3 슬라 슬라이스 대신) 제 6 슬라이스까지를 포함한다.
상기에서 설명되는 예가 16 개의 HDD의 그룹을 도시하지만, 다른 예에서는 다른 사이즈(즉, 상이한 수의 HDD)의 그룹이 사용될 수도 있다. 몇몇 예에서, 그룹의 사이즈는, 그것이 동시에 액티브인 디스크의 최대 수로 균등하게 분할되도록(즉, 그 최대 수의 인자이도록)(예를 들면, 본원에서 설명되는 예 중 많은 예에서는 96의 인자이도록), 즉, 정수 개의 그룹이 동시에 액티브일 수 있도록 선택될 수도 있는데, 이것이 효율성을 향상시키기 때문이다. 그룹 중 일부(예를 들면, 그룹의 절반)를 스핀업하는 것은, 임의의 IO가 전체 그룹이 액티브인 것을 필요로 할 것이기 때문에, 완전한 그룹만을 스핀업하는 것보다 제어하기가 덜 효율적이며 더 복잡하다. 더 작은 그룹 사이즈(즉, 더 적은 수의 HDD를 포함하는 그룹)는 스케줄링 성능을 향상시키는데, 그 이유는 그룹의 수가 많아지고 스케줄러는 다음 번에 어떤 그룹을 스케줄링할지를 선택할 더 많은 자유도를 갖기 때문이다(도 12 및 도 13을 참조로 하는 하기의 스케줄링의 논의를 참조). 그러나, 더 작은 그룹은 그룹당(따라서 동작당) 더 적은 스루풋을 제공하며 (하기에서 설명되는 바와 같은) 소거 코딩 및 스트라이핑(striping)이 사용되는 경우 더 큰 오버헤드를 초래한다. 상기에서 설명되는 아키텍쳐(16 개의 HDD를 각각 포함하는 72 개의 트레이, 총 1152 개의 HDD를 제공함)를 갖는 1 서버(one server) 솔루션의 경우(즉, 단지 하나의 서버가 임의의 시간에 동작하는 경우), 합리적인 그룹 사이즈는 16 개의 HDD(임의의 시간에 6 개의 액티브 그룹), 24 개의 HDD(임의의 시간에 4 개의 액티브 그룹), 32 개의 HDD(3 개의 액티브 그룹) 또는 48 개의 HDD(2 개의 액티브 그룹)를 포함할 수도 있다. 2 서버 시나리오의 경우(여전히 16 개의 HDD로 이루어지는 72 개의 트레이를 포함하는 아키텍쳐를 가짐), 한 그룹에 16 개의 HDD가 존재할 수도 있거나(서버당 3 개의 회전하는 그룹) 또는 24 개의 HDD가 존재할 수도 있다(서버당 2 개의 그룹). 다른 아키텍쳐의 경우, 상이한 그룹 사이즈가 사용될 수도 있다는 것이 인식될 것이다.
도 10은 본원에서 설명되는 바와 같은 스토리지 디바이스에 데이터를 기록하는 예시적인 방법의 흐름도를 도시한다. 제1 예시적인 방법(1000)은 상기에서 설명되는 바와 같은 HDD의 그룹의 개념을 사용한다. 방법(1000)에서 도시되는 바와 같이, HDD에 기록될 버스트 데이터(a burst of data) 데이터는, "익스텐트(extent)"로 칭해질 수도 있는 부분으로 (서버에 제공되기 이전에) 분할되고, 이들 익스텐트는 서버에 의해 수신된다(블록 1002). 익스텐트는 가변 사이즈일 수도 있고(예를 들면, 최소 및 최대 사이즈에 의해 정의되는 범위 내에 있을 수도 있고) 각각의 익스텐트는, 예를 들면, 1 GB(또는 그 이상)의 사이즈일 수도 있다. 그 다음 각각의 익스텐트에 대해 에러 정정이 추가되고(블록 1004) 임의의 적절한 에러 정정 기술이 사용될 수도 있다. 이 에러 정정은 서버 또는 외부 파티(party)에 의해 추가될 수도 있다. 한 예에서, 소거 코딩이 사용될 수도 있고 다른 예에서는, 다른 방법, 예컨대 패리티 체크가 사용될 수도 있다. 그 다음, 각각의 익스텐트는 단일 그룹 내의 HDD에 기록된다(블록 1006). 이것은, 익스텐트를 판독할 때, 전체 익스텐트가 동시에 판독될 수 있고 익스텐트를 판독하는 중간에 그룹 사이를 (즉, 제1 그룹을 비액티브 상태로 전이하고 제2 그룹의 HDD의 플래터를 스핀업하는 것에 의해) 전환하는 것(이것은 상당한 레이턴시를 추가할 것이다)이 필요하지 않을 것이라는 것이 보장된다는 것을 의미한다.
도 10은 본원에서 설명되는 스토리지 디바이스에 데이터를 기록하는 더 상세한 예시적인 방법(1010)을 또한 도시한다. 이 방법(1010)에서, 단일의 익스텐트는 고정된 사이즈의 스트라이프로 분할되고(블록 1012), 그 다음, 각각의 스트라이프는 고정된 수, k 개의 블록으로 분할되는데(블록 1014), 여기서 k는 정수이다. 사용되는 에러 정정 기술에 따라, 각각의 스트라이프에 대해 리던던시 정보를 인코딩하기 위해 j 개의 블록이 추가될 수도 있고(블록 1016), 결과적으로 각각의 스트라이프는 이제 (k+j) 개의 블록을 포함하는데, 여기서 j는 정수이다. 그 다음, 각각의 스트라이프로부터의 블록은 동일한 그룹 내의 (k+j) 개의 HDD 중 상이한 HDD에 기록된다(블록 1018). 이렇게 하여, 모든 스트라이프에 걸친 모든 블록은 바로 그 (k+j) 개의 HDD에 기록되고, 제1 방법(1000)에서와 같이, 각각의 익스텐트(또는 부분)는 단일 그룹 내의 HDD에 기록된다.
제2 방법(1010)은 대안적으로 "스트라이프 스택"의 관점에서 설명될 수도 있다. j 개의 리던던시 블록이 추가되면(블록 1016), 각각의 스트라이프에서 동일한 오프셋을 갖는 블록은 스트라이프 스택으로 정리된다(assembled)(블록 1020). 예를 들면, m 개의 스트라이프가 존재하고 제1 스트라이프가 B1,1, B1,2,...,B1,(k+j)으로 표기되는 (k+j) 개의 블록을 포함하고 m 번째 스트라이프가 Bm,1, Bm,2,...,Bm,(k+j)로 표기되는 (k+j) 개의 블록을 포함하면, 하나의 스트라이프 스택은 m 개의 블록(B1,1, B2,1,...,Bm,1)을 포함하고 다른 스트라이프 스택은 블록(B1,2, B2,2,...,Bm,2)을 포함하고 등등이다. 알 수 있는 바와 같이, 각각의 스트라이프 스택은 m 개의 블록을 포함하고, x 번째 스트라이프 스택은 m 개의 스트라이프의 각각으로부터의 x 번째 블록을 포함한다. 그 다음, 각각의 스트라이프 스택은 한 그룹 내의 상이한 HDD에 기록된다(블록 1022).
도 10은 본원에서 설명되는 스토리지 디바이스에 데이터를 기록하는 제3 예시적인 방법(1030)을 또한 도시한다. 제2 예시적인 방법(1010)이 "스트라이핑"으로 칭해질 수도 있는 반면, 이 제3 예시적인 방법(1030)은 "세그멘팅(segmenting)"으로 칭해질 수도 있으며 이 방법(1030)은 (방법(1000 및 1010)과는 달리) 그룹의 개념을 사용하지 않는다. 이 예시적인 방법(1030)에서, 익스텐트는 n 개의 세그먼트로 분할되고(블록 1032), p 개의 리던던시 세그먼트가 추가된다(블록 1034). 그 다음, 익스텐트 내의 각각의 세그먼트는 상이한 HDD 상에 저장된다, 즉 (n+p) 개의 HDD의 각각의 HDD 상에 하나의 세그먼트가 저장된다(블록 1036). 이 예에서, (n+p) 개의 HDD는 반드시 동일한 그룹에 속할 필요는 없지만, 대신 세그먼트의 사이즈는, HDD로부터 세그먼트를 판독하는 것이 적어도 10초(즉, HDD를 스핀업하는데 걸리는 최소 시간)가 걸리도록 그리고 세그먼트 i+1을 저장하는 HDD가 세그먼트 i를 저장하는 HDD와 동시에 회전가능하게 되도록, 선택된다. 이것은, 방법(1030)을 사용하여 기록된 익스텐트를 판독할 때, 익스텐트로부터의 세그먼트 1을 저장하는 HDD가 최초 액티브이고 동시에 동일한 익스텐트로부터의 세그먼트 2를 저장하는 HDD가 스핀업하고 있다는 것을 의미한다. 세그먼트 2가 판독되고 있을 때, 세그먼트 1을 저장하는 HDD는 스핀다운되고(즉, 플래터는 더 이상 구동되지 않고) 세그먼트 3을 저장하는 HDD는 스핀업하고 있으며, 등등이다.
도 11은 (방법(1030)에서 도시되는 바와 같은) 세그멘팅과 비교한 (방법(1010)에서 도시되는 바와 같은) 스트라이핑의 개략도를 도시한다. 이 도면은 k=1, j=1, n=1 및 p=1인 상황을 도시한다. 세그멘팅은 스트라이핑보다 스케줄러(HDD에 대한 기록을 제어함)에 대해 더 유연한데, (모든 HDD가 하나의 그룹에 속해야 하는 대신) 두 개의 연속하는 세그먼트를 저장하는 HDD가 함께 회전가능해야 하는 것이 제약이기 때문이다. 그러나, 세그멘팅의 스루풋은 HDD의 대역폭으로 제한되고, 스토리지 디바이스 대역폭을 포화시키는 데 필요한 잠재적으로 많은 충돌하는 병렬 동작이 존재하기 때문에 스케줄링은 더 복잡해질 수도 있으며 그것은 최대 익스텐트 사이즈에 비례하는 DRAM을 요구한다. 대조적으로, 스트라이핑은 높은 스루풋을 제공하고, (전력 및 냉각 제약이 그룹 정의에 의해 고려되기 때문에) 스트라이핑이 전력 및 냉각 제약을 거의 의식하지 못하기(quasi-oblivious) 때문에 스케줄링은 덜 복잡하지만; 그러나, 익스텐트를 저장하는 모든 HDD가 하나의 그룹으로부터 유래해야(그러므로 함께 회전가능해야) 하기 때문에 스케줄러에 대해 덜 유연하다.
(예를 들면, 블록 1006 및 1018에서와 같이) 처음 두 예시적인 방법(1000, 1010)에서 HDD의 그룹에 데이터를 기록할 때, 데이터(즉, 익스텐트)는 모든 그룹에 걸쳐 공평하게 확산될 수도 있거나("균등 채움(even fill)") 또는 하나 그룹은 다음 그룹을 채우기 이전에 데이터로 채워질 수도 있다("순차적 채움(sequential fill)"). 하나의 예시적인 구현예에서, 그룹의 균등 채움이 사용된다. 균등 채움은 HDD의 동일한 부하(이것은 유지보수를 용이하게 한다)로 나타나고 HDD 고장의 경우에 재구축할 데이터가 더 적게 존재하지만(HDD가 데이터로 완전히 채워질 가능성이 낮기 때문); 그러나 액티브 HDD당 더 적은 IO가 존재하기 때문에 스토리지 디바이스에 가볍게 부하가 걸릴 때(즉, 각각의 그룹이 적은 양의 데이터를 저장하고 있을 때) (순차적 채움의 경우보다) 더 낮은 스루풋이 존재할 수도 있다. 대조적으로, 순차적 채움은 가볍게 부하가 걸린 스토리지 디바이스에서 HDD당 더 많은 IO를 제공하지만(데이터가 적은 수의 그룹에 집중될 것이기 때문에), 그러나, 몇몇 HDD는 아주 긴 기간 동안 비액티브일 수도 있고 이것은 HDD 신뢰성에 영향을 줄 수도 있다.
HDD에 대한 기록을 제어하는 것에 더하여, 서버 내의 스케줄러는 HDD에 대한 판독 동작을 제어한다. 도 12는 스토리지 디바이스 내에서의 판독 동작을 스케줄링하는 예시적인 방법(1200)의 흐름도를 도시한다. 이 방법은 그룹의 개념을 사용하며 따라서 데이터 기록을 위한 방법(1000 및 1010) 중 하나와 조합하여 사용될 수도 있다. 버스트한(a burst of) 판독 동작의 수신시(블록 1202), 스케줄러는 동작을, 동일 그룹의 HDD에 대해 동작하는 세트로 순서를 매기고(블록 1204) 그 다음, 예를 들면, 그룹 사이의 스위칭을 최소화하는 것에 의해, 스루풋을 최대화하는 순서로 동작의 세트를 스케줄링한다(블록 1206). 몇몇 예에서, 동작은 우선순위 레벨을 가지고 플래깅될 수도 있고, 이 경우 동작의 세트는 스루풋 및 우선순위 둘 모두에 기초하여 (블록 1206에서) 스케줄링될 수도 있다.
스루풋을 최대화하기 위해, 동작의 세트는, 인터커넥트 패브릭의 스루풋을 유지하려고 시도하면서, 그룹이 스핀업되는 것을 허용하도록 (블록 1206에서) 순서가 정해질 수도 있다. 예를 들면, HDD를 스핀업하는 데 10초가 걸리면, 동작의 각각의 세트는, 동작의 세트가 수행되고 있는 동안, 다른 그룹이 스핀업될 수도 있도록 하기 위해, 적어도 10 초의 IO 동작을 제공하도록 배열될 수도 있다. 예를 들면, t=t1과 t=t1+10 사이에서, 동작은 그룹 A에 대해 수행되고 그룹 B의 HDD는 스핀업하고 있으며, 그 다음, t=t1+10과 t=t1+20 사이에서, 동작은 그룹 B에 대해 수행되고 그룹 C의 HDD가 스핀업하고 있는 등등이다. 서로소 그룹에 대해 동작하는 동작의 세트는, 인터커넥트 패브릭에서 충분한 대역폭이 존재하는 한(즉, 대역폭 제약이 위반되지 않는 한), 병렬로 스케줄링될 수도 있다. 예를 들면, t=t1과 t=t1+10 사이에서, 동작은 그룹 A 및 D에 대해 수행되고 그룹 B 및 그룹 E의 HDD는 스핀업하고 있으며, 그 다음, t=t1+10과 t=t1+20 사이에서, 동작은 그룹 B 및 E에 대해 수행되고 그룹 C 및 그룹 F의 HDD는 스핀업하고 있는 등등인데, 여기서 그룹 A와 D 및 E와 C는 서로소이다. 대역폭 제약이 엄격한 제약이 아니기 때문에, 몇몇 예에서는, 언더프로비저닝된 대역폭이 그룹 사이에서 공유될 수도 있고, 그 결과 각각의 그룹은 대역폭 제약을 경험하게 된다. 예를 들면, 각각 18 GB/s의 대역폭을 사용하는 2개의 동작이 존재하며 총 이용 가능한 대역폭이 단지 32 Gb/s이면, 18 Gb/s의 전체 대역폭에서 단일의 동작만을 서빙하는 대신, 2개의 동작은 16 Gb/s에서 동시에 서빙될 수도 있다.
다시 도 8 및 도 9를 참조하면, HDD의 그룹이 라인으로 배열되면, 스케줄러는 이들 라인을 인식할 수도 있고 그 라인은 (상기에서 설명되는 바와 같이) 동시적 IO를 실행할 수 있다. 결과적으로, (블록 1206에서) 스케줄러는 이 라인 지식에 기초하여 동작의 세트를 그룹화할 수도 있고 하기의 기준이 또한 사용될 수도 있다: 동일한 라인의 2 개의 그룹 내의 IO는, 다른 라인에 속하는 그룹과는 적어도 10초 가치의 IO에 의해 분리된다. 이것은 동일 라인으로부터의 제2 그룹이 분리 기간 동안 스핀업되는 것을 가능하게 한다. 스핀업 시간이 10초로 가정되지만, 스핀업 시간이 더 길거나 또는 더 짧은 기간인 경우에도 동일한 원칙이 적용될 수도 있다는 것이 인식될 것이다. 그룹을 스케줄링함에 있어서(블록 1206), 스케줄러는, 아이들 시간을 최소화하기 위해 다음에 어떤 그룹을 스케줄링할지를 결정하는 데, 예를 들면, 저가의 그리디 알고리즘(greedy algorithm)을 사용할 수도 있다.
(블록 1206에서의) 동작의 스케줄링은 (블록 1202에서 수신되는 바와 같은) 버스트한 판독 동작 내에서 적용될 수도 있거나 또는 대안적으로 판독 동작의 큐에서 얼마나 많은 동작이 재스케줄링(rescheduling)에 대해 동시에 고려될 수도 있는지를 정의하기 위해 윈도우(이것은 시간 또는 동작의 수의 관점에서 정의됨)가 사용될 수도 있다(예를 들면, 100 또는 1000 개의 동작의 윈도우). 이러한 윈도우가 사용되는 경우, 도 12의 방법은, 판독 동작이 버스트로 수신되지 않는 경우(즉, 블록 1202가 생략됨)에도 적용될 수 있으며, 이러한 예에서는, (블록 1204 및 1206에서의) 재정렬(reordering) 및 재스케줄링이, 큐에서 유지되는 수신된 판독 동작의 윈도우에 대해 적용될 수도 있다.
판독 동작의 큐가 (블록 1206에서) 재정렬되는 경우, 임의의 딜레이(예를 들면, 임계 딜레이를 초과함)가 요청자(즉, 판독 요청을 전송하는 엔티티)에게 다시 공급될 수도 있다.
상기 도 12의 설명이 판독 동작에 관련이 있지만, 몇몇 예에서는, 동일한 방법이 삭제 동작에 대해 적용될 수도 있다.
도 13은 도 3에 도시되는 PCIe 인터커넥트 패브릭 및 16개의 HDD로 이루어지는 그룹을 포함하는 스토리지 디바이스에 대한 예시적인 스케줄링 타임라인(1300)을 도시한다. 16 개의 HDD로 이루어지는 그룹의 경우, 2 개의 그룹은 PCIe 대역폭을 완전히 사용할 수 있고, 따라서 임의의 주어진 순간에, 2개의 그룹이 IO를 행하고 있게 된다. 스케줄링 타임라인(1300)에서, 각각의 단계에서, 스케줄러는, 설명되는 바와 같이 약 10초가 걸릴 수도 있는 2개의 조인트(즉, 충돌하는) 그룹 사이의 전이를 중첩시키기에 충분한 IO를 갖는 그룹을 스핀업하기 위해 선택한다.
상기에서 설명되는 방법 중 많은 방법은, 스토리지 디바이스 내에서 고정된 그룹으로 논리적으로 배열되는 HDD에 의존하며, 이 경우 한 그룹의 HDD는 동시에 액티브일 수 있다. 그러나, 몇몇 예에서는, 고정된 그룹이 존재하지 않을 수도 있으며 대신 임의의 시간에 액티브인 HDD의 세트는, 전력 제약, 냉각 제약 및 몇몇 예에서는 몇몇 다른 제약(예를 들면, 진동 제약)에 기초하여 서버 내의 스케줄러(또는 서버 내의 다른 엘리먼트)에 의해 결정될 수도 있다. 이러한 예는 (도 2를 참조로 상기에서 설명되는 바와 같은) 도메인의 개념, 및 도메인 상에서 유효한 제약의 세트를 사용하는데, 이 경우 도메인은 HDD의 세트이다. 예를 들면, 냉각 도메인은, 전력 도메인이 그러한 것처럼, 와트(Watt)로 표현되는 제약을 갖는다. 단일의 HDD는 다수의 도메인의 멤버이다.
도메인당 제약(per-domain constraint)의 각각은 HDD 지향 제약(HDD-orientated constraint)의 세트, 즉, 도메인에 의해 관용될 수 있는 HDD 상태의 세트로 매핑된다. 상기의 예에서, 각각의 HDD는 2개의 상태, 또는 몇몇 예에서는, 3개의 상태: 액티브가 아닌 상태(즉, 플래터가 회전하고 있지 않지만, 전자장치가 전력을 인가받고 있음), 스핀업 상태(즉, 비회전에서 정확한 속도로 회전하는 것으로 전이하고 있는 과정 중의 플래터) 및 액티브 상태(즉, 플래터가 회전하고 있음) 중 하나에 있는 것으로 설명된다. 상기에서 설명되는 바와 같이, 몇몇 예에서는, 예컨대, 회전하고 있는 플래터를 갖는 HDD를, 데이터가 판독/기록되고 있을 때와 판독/기록되고 있지 않을 때의 사이에서 구별하는 것과 같이, 고려되는 더 많은 상태가 존재할 수도 있다. 전력 도메인의 경우, 시스템 내에서 고려되고 있는 각각의 상태의 전력 인출은 공지되어 있으며, 마찬가지로, 냉각 도메인의 경우, 각각의 상태의 냉각 부하는 공지되어 있다. 예를 들면, HDD는 스탠바이 상태(또는 비액티브 상태, 즉, 전자장치에 전력이 인가되고 플래터는 회전하지 않음)에 있을 때 0.7W를, 액티브(플래터가 회전하고 있음)일 때 8W를, 그리고 플래터가 스핀업하고 있을 때 10초 동안 24W를 인출한다. 따라서, 각각의 도메인에 대해 버짓(budget)은, 도메인에 의해 지원될 수 있는 가능한 상태의 세트로서 표현될 수 있다. 이전의 예시적인 아키텍쳐를 다시 참조하면, 도메인에 대한 전력 버짓은 전력 도메인당 2개의 액티브 HDD일 수도 있거나 또는 하나의 액티브 HDD와 하나의 스핀업하는 HDD일 수도 있으며, 냉각 버짓은 냉각 도메인당 하나의 액티브 또는 스핀업하는 HDD일 수도 있다. 버짓은, 예를 들면, 상태 테이블 또는 유한 상태 머신(finite state machine)으로 표현될 수도 있다.
도 14는, (상기에서 설명되는 바와 같은) 도메인이 사용되는 스토리지 디바이스로부터 데이터를 판독하는 예시적인 방법의 흐름도이다. 이 예에서, 파일에 대한 판독 요청이 수신되면(블록 1402), 서버 내의 스케줄러는, 파일을 판독하기 위해 회전할 필요가 있는 HDD의 세트를 결정한다(블록 1404). 이 세트는 현재 회전하고 있는 HDD와는 상이할 가능성이 높으며 따라서 스케줄러는 그 후 회전하는 HDD의 현재 세트로부터 회전하는 HDD의 요구되는 세트("목표 구성"으로 칭해질 수도 있음)로의 마이그레이션 시퀀스를 결정하는데, 이 경우 마이그레이션 시퀀스는, 도메인 제약 중 임의의 것을 위반하는 어떠한 HDD의 중간 세트도 거치지 않는다(블록 1406). 따라서, 이것은, 파일이 판독될 수 있는 구성에 도달하기 위해 통과되어야 할 필요가 있는 하드웨어 구성 상태의 세트를 선택하는, 해결되어야 하는 최적화 문제점이다. 마이그레이션 시퀀스가 결정되면, 그것은 구현될 수 있고(블록 1408) 파일이 판독된다(블록 1410).
도 14의 방법을 구현함에 있어서, (예를 들면, 도 12를 참조로 상기에서 설명되는 바와 같이) 버스트한 판독 동작이 고려될 수도 있고 그 경우 마이그레이션 시퀀스는 단일의 요청 대신 버스트에 대해 스루풋을 최적화하도록 결정될 수도 있다. 이러한 예에서, 플래터를 스핀업하는 데 걸리는 시간(예를 들면, 10초)은, 이전에 설명된 것과 동일한 방식으로 고려될 수도 있고 IO 요청은 적어도 10초 동안 지속되는, HDD의 공통 세트에 대한 동작으로 그룹화될 수도 있다.
도 12 및 도 13에 도시되는 그리고 상기에서 설명되는 스케줄링에서, 동작(예를 들면, 스트라이프 스택의 세트에 액세스하는 것)은 액세스될 필요가 있는 HDD의 세트와 관련된다. 2 개의 동작이 충돌하지 않는 경우(즉, HDD의 세트 사이에 중첩이 없는 경우), 동작은 병렬로 실행될 수 있다. 그러나, 모든 HDD가 충돌하고 있으면, 동작은 순차적으로 프로세싱된다. 그러나, HDD의 일부만이 충돌하면, 2 개의 상이한 스케줄링 메커니즘이 사용될 수도 있고, 상기에서 설명되는 방법에서는, "비우선적 스케줄링(non-preemptive scheduling)"으로 칭해질 수도 있는 메커니즘이 사용될 수도 있다.
"비우선적 스케줄링"에 의하면, 2 개의 충돌하는 동작 중 하나의 100%가 프로세싱되고 두 번째 동작은 (2 개의 동작이 충돌하는 HDD를 하나만 갖는 경우에도) 정지된다. 두 번째 동작은 충돌이 해결되면(예를 들면, 첫 번째 동작이 완료된 경우) (그 전체가) 프로세싱된다. 대조적으로, "우선적 스케줄링"의 경우, 2 개의 충돌하는 동작 중 하나의 100%가 프로세싱되고 다른 동작 중 충돌하지 않는 n%는 병렬로 프로세싱되고, 나머지 (100-n)%는 나중에 완료된다.
도 14에 도시되는 방법과 함께 사용될 수도 있는 우선적 스케줄링에서, 스케줄링은 HDD 단위로(at HDD granularity) 수행되고; 스케줄러는, 어떤 동작이 현재 프로세싱되고 있는지에 무관하게, 다음에 어떤 HDD를 스핀업할지를 결정한다. 스케줄러는 도메인을 의식하며 충돌하고 있지 않은 HDD를 스케줄링한다. 그러나, 비우선적 스케줄링의 경우, 스케줄러는 동작에 필요한 모든 HDD를 스핀업하거나 또는 이것이 가능하지 않으면 동작을 딜레이한다. 스케줄러는 도메인을 의식하지 않으며 동작 충돌 회피에 초점을 맞춘다.
우선적 스케줄링은 스케줄링 유연성을 잠재적으로 증가시키지만 이것은 스케줄링 복잡성의 증가로 나타나게 된다. 또한, 우선적 스케줄링은 잠재적으로 더 높은 스루풋을 가지지만 몇몇의 스핀업 시간으로서 동작당 더 높은 레이턴시가 동작당 요구될 수도 있다. 우선적 스케줄링은, 계류 중인 동작을 저장하기 위해 서버에서 큰 메모리 내 버퍼(in-memory buffers)를 또한 사용하며, 이것은 스토리지 디바이스의 비용을 증가시키고 그 신뢰성을 저하시킨다. 대조적으로, 비우선적 스케줄링은, 동작당 스루풋의 관점에서 보증을 제공하고 낮은 메모리 요건을 갖는다.
상기에서 설명되는 방법 중 임의의 것에서(예를 들면, 도 10, 도 12 및 도 14에 도시되는 방법 중 임의의 것에서) 전력 및 냉각 도메인을 고려하는 것 외에, 다른 제약(예를 들면, 유연한 제약) 및 다른 도메인이 또한 고려될 수도 있다. 유연한 제약은, 위반되는 경우 차선의 성능을 산출하지만, (전력 및 냉각 제약과 같은 엄격한 제약의 경우에서와 같이) 하드웨어 고장으로 나타나지 않을 제약이다. 유연한 제약은 도메인, 예를 들면 고장 및 물리적 집약성(physical locality)에 기초하여 표현될 수 있다. 고장 도메인은 HDD의 세트 및 그들이 동시에 고장날 가능성을 포착한다. 물리적 집약성은 인터커넥트 패브릭의 집약성 특성을 포착하고, 2 개의 HDD가 주어지면 0과 1사이의 값(V)을 리턴하는 함수의 항으로 표현될 수도 있다. 값 V는 2개의 HDD 사이의 간섭을 나타낸다(1=간섭 없음, 한편 1 미만의 값은 관계의 세기를 나타냄). HDD당 공칭 대역폭 A가 주어지면, 양 HDD가 동시에 판독/기록하는 예상된 최대 스루풋은 V×A이다.
도 15는, 임의의 형태의 컴퓨팅 및/또는 전자 디바이스로서 구현될 수도 있는, 그리고 본원에서 설명되는 스토리지 디바이스 내에서 서버로서 동작할 수도 있는 예시적인 컴퓨팅 기반 디바이스(1500)의 다양한 컴포넌트를 예시한다.
컴퓨팅 기반 디바이스(1500)는, 마이크로프로세서, 컨트롤러 또는 서버로서 동작하기 위해 그리고 스토리지 디바이스의 HDD에 대한 판독/기록 동작을 제어하기 위해, 디바이스의 동작을 제어할 컴퓨터 실행가능 명령어를 프로세싱하기 위한 임의의 다른 적절한 타입의 프로세서일 수도 있는 하나 이상의 프로세서(1502)를 포함한다. 몇몇 예에서, 예를 들면 시스템 온 칩 아키텍쳐가 사용되는 경우, 프로세서(1502)는, HDD를 제어하는 방법의 일부를 (소프트웨어 또는 펌웨어 대신) 하드웨어로 구현하는 하나 이상의 고정된 기능 블록(가속기(accelerator)로도 칭해짐)을 포함할 수도 있다. 대안적으로, 또는 추가적으로, 본원에서 설명되는 기능성(functionality)은, 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트에 의해 수행될 수 있다. 제한이 없는 예를 들면, 사용될 수 있는 하드웨어 로직 컴포넌트의 예시적인 타입은 필드 프로그래머블 게이트 어레이(Field-programmable Gate Array; FPGA), 프로그램 고유의 집적 회로(Program-specific Integrated Circuit; ASIC), 프로그램 고유의 표준 제품(Program-specific Standard Product; ASSP), 시스템 온칩 시스템(System-on-a-chip system; SOC), 복합 프로그래머블 로직 디바이스(Complex Programmable Logic Device; CPLD)를 포함한다.
오퍼레이팅 시스템(1504)을 포함하는 플랫폼 소프트웨어 또는 임의의 다른 적절한 플랫폼 소프트웨어는, 애플리케이션 소프트웨어(1506) 및 스케줄러(1508)가 디바이스 상에서 실행되는 것을 가능하게 하기 위해 컴퓨팅 기반 디바이스에서 제공될 수도 있다. 컴퓨터 실행가능 명령어는, 컴퓨팅 기반 디바이스(1500)에 의해 액세스될 수 있는 임의의 컴퓨터 판독가능 매체를 사용하여 제공될 수도 있다. 컴퓨터 판독가능 매체는, 예를 들면, 메모리(1510)와 같은 컴퓨터 저장 매체 및 통신 매체를 포함할 수도 있다. 메모리(1510)와 같은 컴퓨터 저장 매체는, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의 착탈식 및 비착탈식 매체를 포함한다. 컴퓨터 저장 매체는, RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disk; DVD) 또는 다른 광학 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 컴퓨팅 디바이스에 의한 액세스를 위해 정보를 저장하기 위해 사용될 수 있는 임의의 다른 비전송 매체를 포함하지만, 이들로 제한되지는 않는다. 대조적으로, 통신 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 변조된 데이터 신호, 예컨대 반송파, 또는 다른 전송 매커니즘에서의 다른 데이터를 구체화할 수도 있다. 본원에서 정의되는 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다. 따라서, 컴퓨터 저장 매체는 신호를 그 자체로서 전파하는 것으로 해석되어서는 안 된다. 전파된 신호는 컴퓨터 저장 매체에 존재할 수도 있지만, 전파된 신호는 그 자체로서 컴퓨터 저장 매체의 예는 아니다. 컴퓨터 저장 매체(메모리(1510))가 컴퓨팅 기반 디바이스(1500) 내에서 도시되지만, 스토리지는 분산되거나 원격으로 위치할 수도 있고 네트워크 또는 다른 통신 링크를 통해(예를 들면, 통신 인터페이스(1512)를 사용하여) 액세스될 수도 있다는 것이 인식될 것이다.
몇몇 예에서, 컴퓨팅 기반 디바이스(1500)는 원격으로 관리될 수도 있고, 그 경우, 통신 인터페이스(1512)는 원격 관리 엔티티로부터 관리 명령어를 수신하도록 그리고 상태/업데이트 정보를 원격 관리 엔티티에 제공하도록 구성될 수도 있다.
메모리(1510)는, (예를 들면, 도 5를 참조로 상기에서 설명되는 것과 같은) 스토리지 디바이스에서의 각각의 HDD에 대한 액세스 플래그를 저장하기 위해 사용될 수도 있는 데이터 저장소(1514)를 더 포함할 수도 있다.
컴퓨팅 기반 디바이스(1500)는, (예를 들면, 도 3 또는 도 4를 참조로 상기에서 설명되는 바와 같은) 인터커넥트 패브릭을 통해 백플레인 스위치의 각각에 신호를 출력하도록 구성되는 서버 스위치(1516)를 또한 포함한다. 이들 신호는 HDD의 상태를 제어하며, HDD에 기록할 때 또는 HDD로부터 판독할 때 또한 사용된다. 대안적으로, SATA 기반 인터커넥트 패브릭(400)이 사용되는 경우, 서버 스위치(1516)는, 트리의 최상위 레벨에서 SATA 멀티플렉서(404)에 각각 연결되는 복수의 SATA 포트를 제공하는 HDD 컨트롤러에 의해 대체된다.
컴퓨팅 기반 디바이스(1500)는, 컴퓨팅 기반 디바이스와는 별개인 또는 컴퓨팅 기반 디바이스와 일체형인 디스플레이 디바이스에 디스플레이 정보를 출력하도록 구성되는 입출력 컨트롤러를 또한 포함할 수도 있다. 디스플레이 정보는 그래픽 유저 인터페이스를 제공할 수도 있다. 입출력 컨트롤러는 또한, 하나 이상의 디바이스, 예컨대 유저 입력 디바이스(예를 들면, 마우스, 키보드, 카메라, 마이크 또는 다른 센서)로부터 입력을 수신하여 프로세싱하도록 구성될 수도 있다. 몇몇 예에서, 유저 입력 디바이스는 보이스 입력, 유저 제스쳐 또는 다른 유저 액션을 검출할 수도 있으며 내츄럴 유저 인터페이스(natural user interface; NUI)를 제공할 수도 있다. 한 실시형태에서, 디스플레이 디바이스는, 그것이 터치 감지 디스플레이 디바이스이면 유저 입력 디바이스로서 또한 작용할 수도 있다. 입출력 컨트롤러는, 디스플레이 디바이스 이외의 디바이스로 데이터를 또한 출력할 수도 있다.
입출력 컨트롤러, 디스플레이 디바이스 및 유저 입력 디바이스(제공되는 경우) 중 임의의 것은, 마우스, 키보드, 원격 제어 등등과 같은 입력 디바이스에 의해 부과되는 인공적 제약이 없는 자연적 방식으로 유저가 컴퓨팅 기반 디바이스와 상호작용하는 것을 가능하게 하는 NUI 기술을 포함할 수도 있다. 제공될 수도 있는 NUI 기술의 예는, 보이스 및/또는 스피치 인식, 터치 및/또는 스타일러스 인식(터치 감지 디스플레이), 스크린 상에서의 그리고 스크린에 인접한 곳에서의 제스쳐 인식, 에어 제스쳐(air gestures), 머리 및 눈 추적(head and eye tracking), 보이스 및 스피치, 비전, 터치, 제스쳐, 및 머신 지능에 의존하는 것들 포함하지만, 이들로 제한되지는 않는다. 사용될 수도 있는 NUI 기술의 다른 예는, 의도 및 목표 이해 시스템, 깊이 카메라(예컨대 입체 카메라 시스템, 적외선 카메라 시스템, RGB 카메라 시스템 및 이들의 조합)를 사용한 모션 제스쳐 검출 시스템, 가속도계/자이로스코프를 사용한 모션 제스쳐 검출, 얼굴 인식, 3D 디스플레이, 머리, 눈 및 응시 추적(head, eye and gaze tracking), 몰입형 증강 현실(immersive augmented reality) 및 가상 현실 시스템 및 전기장 감지 전극(electric field sensing electrode)을 사용한 뇌 활동을 감지하기 위한 기술(EEG 및 관련 방법)을 포함한다.
상기 예에서, 제약은 스토리지 디바이스의 설계에 의해 설정되며 따라서 고정된 것으로 간주될 수도 있다. 그룹이 사용되는 경우, 이들은 제약에 의해 결정될 수도 있고 따라서 고정된 것으로 간주될 수도 있다. 그러나, 하드웨어 고장의 경우, 서버는, 성능이 저하될 수도 있더라도, 스토리지 디바이스가 계속 기능할 수 있게 하기 위해, 제약(그러므로 그룹이 사용되는 경우 그룹)을 수정하도록 구성될 수도 있다. 예를 들면, 스토리지 디바이스는, 다수의 트레이에 전력을 각각 인가하는(예를 들면, 12 개의 트레이에 전력을 각각 인가하는) 6 개의 전원 유닛을 포함할 수도 있고 하나의 전원 유닛이 고장나는 경우, 스토리지 디바이스 내의 다른 전원 유닛은 많은 수의 트레이 사이에서(예를 들면, 24 개의 트레이 사이에서) 공유될 수도 있고 제약 및/또는 그룹은 이것에 응답하도록 동적으로 적응될 수도 있다. 제약/그룹은, 하드웨어 중 임의의 것(예를 들면, HDD)을 더 효율적인 하드웨어로 대체하는 경우에 또한 수정될 수도 있다(예를 들면, 동적으로 적응될 수도 있다)(예를 들면, 더 큰 또는 상이한 사이즈의 그룹을 가능하게 하는 더 효율적인 HDD와 관련되는 전력 및/또는 냉각 제약은 상이할 수도 있다).
하드웨어 고장의 경우, 제약 및/또는 그룹 외에, 또는 대신, 스토리지 디바이스 내에서 동작하는 하나 이상의 복원 메커니즘이 존재할 수도 있다. 예는: HDD 고장을 핸들링하기 위해 그룹 내에서 여분의 용량을 유지하는 것(예를 들면, 각각의 그룹은 각각의 동작에 대해 사용되는 것보다 하나 또는 둘 더 많은 HDD를 포함한다), 리던던시 목적을 위해 HDD에 대한 여분의 그룹을 유지하는 것(예를 들면, 여분의 그룹은 HDD 고장을 겪고 있는 그룹을 교체하기 위해 교체되어 들어 갈 수 있다), 및 다른 그룹에 걸쳐 부하를 분산시키는 것을 포함한다.
본원에서 본 예가 하나 또는 두 개의 서버를 포함하는 스토리지 디바이스에서 구현되는 것으로 설명되고 예시되지만, 설명되는 시스템은 제한으로서가 아닌 예로서 제공된다. 기술분야에서 숙련된 자가 인식할 수 있는 바와 같이, 본 예는 다양하고 상이한 타입의 스토리지 시스템의 애플리케이션에 적합한데, 예를 들면, 다수의 스토리지 디바이스가 (예를 들면, 데이터 센터에) 같이 위치할 수도 있고 고장의 경우에 리소스(예를 들면, 전원 유닛)의 약간의 공유가 존재할 수도 있다. 또한, 두 개의 예시적인 인터커넥트 패브릭(300, 400)이 상기에서 설명되지만, 인터커넥트 패브릭의 대안적인 설계가 사용될 수도 있다.
상기에서 설명되는 바와 같이, 몇몇 예에서, 서버(104)는 스토리지 디바이스(100)의 나머지로부터 원격으로 위치할 수도 있다. 이러한 예에서, 제어 로직(112)은 스토리지 디바이스(100) 내에 제공될 수도 있고 원격 서버로부터 수신되는 신호에 응답하여 인터커넥트 패브릭(106)을 통해 제어 신호를 HDD(102)로 제공하도록 구성될 수도 있다.
상기에서 설명되는 스토리지 디바이스는 HDD에 대한 최소 판독/기록 액세스를 위해 의도되며 따라서 대부분의 HDD를, HDD가 최소의 전력을 소비하는 슬립(즉, 액티브가 아닌) 상태(전자장치에 전력이 인가되지만 플래터는 회전하고 있지 않음)로 유지하도록 구성된다. HDD는 최초로 데이터를 기록하거나, 무결성을 위해 데이터를 검사하거나 또는 데이터를 취출하기(retrieve) 위해서만 이 상태를 벗어나게 되지만; 그러나, 스토리지 디바이스가 설계되는 데이터 타입이 아카이브이기 때문에, 취출 동작은 최소일 것으로 예상된다. 결과적으로, 스토리지 디바이스는 최소 전력 및 관련 냉각을 사용하도록 설계될 수도 있다. (상기에서 설명되는 바와 같은) 1152 개의 HDD를 포함하는 예시적인 구성의 경우, 스토리지 디바이스는 2.4kW 또는 (유사한 스토리지 용량을 갖는) 기존 스토리지 디바이스의 25% 미만을 사용하도록 설계될 수도 있다. 이것은 (스토리지 디바이스 내에서의) 더 적은 전력 분배, 더 적은 팬을 요구하며 스토리지 디바이스를 통과하는 냉각(예를 들면, 강제 기류)의 더 작아진 체적으로 인해 HDD의 더 큰 패킹 밀도를 가능하게 한다. 상기에서 설명되는 바와 같이, 본원에서 설명되는 스토리지 디바이스는 언더프로비저닝되며, 따라서 스토리지 디바이스는 디바이스 내의 모든 HDD에 대해 충분한 전력 및/또는 냉각을 제공할 수 없게 된다(즉, 스토리지 디바이스는 모든 HDD를 물리적으로 동시에 스핀업할 수 없다). 한 예에서, 스토리지 디바이스는, 임의의 하나의 시간에 HDD의 약 10% 또는 그 미만(예를 들면, 8.3%)만이 액티브로 되기에 충분한 전력 및 냉각을 제공할 수도 있다. 이 언더프로비저닝은 소비전력 및 그러므로 디바이스의 운영 비용을 감소시키며 디바이스의 감소된 대역폭은 동작 비용에서의 추가 감소에 또한 기여할 수도 있다. 가능하게 되는 HDD의 더 높은 패킹 밀도 및 전력 및 냉각 인프라에서의 감소는, 스토리지 디바이스의 초기 구매 비용을 더 낮추는 데(예를 들면, 자본적 지출을 낮추는 데) 기여한다.
상기에서 설명되는 스토리지 디바이스는, 불충분한 전력 및/또는 냉각에 기인하여 전체 디바이스의 고장을 야기할, HDD의 세트가 액티브인 상태로 스토리지 디바이스가 진입하는 것을 소프트웨어(또는 제어 로직)가 방지하도록, 물리적 하드웨어 및 소프트웨어가 함께 설계되는 예를 제공한다.
용어 "컴퓨터" 또는 "컴퓨팅 기반 디바이스"는, 본원에서, 명령어를 실행할 수 있도록 하는 프로세싱 능력을 갖는 임의의 디바이스를 지칭한다. 기술분야의 숙련된 자는, 이러한 프로세싱 능력이 많은 상이한 디바이스 안으로 통합된다는 것을 이해할 것이며 따라서 용어 "컴퓨터" 및 "컴퓨팅 기반 디바이스" 각각은 PC, 서버, 모바일 전화(스마트폰을 포함함), 태블릿 컴퓨터, 셋탑 박스, 미디어 플레이어, 게임 콘솔, 휴대형 개인 단말(personal digital assistant) 및 많은 다른 디바이스를 포함한다.
본원에서 설명되는 방법은, 유형의(tangible) 저장 매체 상의 머신 판독가능 형태의, 예를 들면, 본원에서 설명되는 방법 중 임의의 것의 모든 단계를 수행하도록 적응되는 컴퓨터 프로그램 코드 수단을 포함하는 컴퓨터 프로그램의 형태의 소프트웨어에 의해, 프로그램이 컴퓨터 상에서 실행될 때 그리고 컴퓨터 프로그램이 컴퓨터 판독가능 매체 상에서 구현될 수도 있는 경우, 수행될 수도 있다. 유형의 저장 매체의 예는, 디스크, 썸 드라이브(thumb drive), 메모리 등등과 같은 컴퓨터 판독가능 매체를 포함하는 컴퓨터 스토리지 디바이스를 포함하며, 전파된 신호를 포함하지는 않는다. 전파된 신호는 유형의 저장 매체에 존재할 수도 있지만, 전파된 신호는 그 자체로서 유형의 저장 매체의 예는 아니다. 소프트웨어는 병렬 프로세서 또는 직렬 프로세서 상에서의 실행에 대해 적합할 수 있고, 그 결과 방법 단계는 임의의 적절한 순서로, 또는 동시에 실행될 수도 있다.
이것은 소프트웨어가 가치 있고 별도로 거래 가능한 상품일 수 있다는 것을 나타낸다. 소망의 기능을 실행하기 위해, "덤(dumb)" 또는 표준 하드웨어 상에서 실행되는 또는 이들을 제어하는 소프트웨어를 망라하는 것이 의도된다. 소망의 기능을 실행하기 위해 하드웨어의 구성을 "설명하거나" 또는 정의하는 소프트웨어, 예컨대, 실리콘 칩을 설계하기 위해, 또는 범용 프로그래머블 칩을 구성하기 위해 사용되는 바와 같은, HDL(hardware description language; 하드웨어 기술 언어)을 망라하는 것이 또한 의도된다.
기술분야의 숙련된 자는, 프로그램 명령어를 저장하기 위해 활용되는 스토리지 디바이스는 네트워크에 걸쳐 분산될 수 있다는 것을 이해할 것이다. 예를 들면, 원격 컴퓨터는, 소프트웨어로서 설명되는 프로세스의 예를 저장할 수도 있다. 로컬 또는 터미널 컴퓨터는 원격 컴퓨터에 액세스하여, 프로그램을 실행할 소프트웨어의 일부 또는 전체를 다운로드할 수도 있다. 대안적으로, 로컬 컴퓨터는 필요에 따라 소프트웨어의 일부를 다운로드하거나, 또는 몇몇 소프트웨어 명령어를 로컬 터미널에서 그리고 몇몇을 원격 컴퓨터(또는 컴퓨터 네트워크)에서 실행할 수도 있다. 기술분야의 숙련된 자는, 기술분야의 숙련된 자에게 공지된 종래의 기술을 활용하는 것에 의해, 소프트웨어 명령어의 전체 또는 일부가 전용 회로, 예컨대 DSP, 프로그래머블 로직 어레이 등등에 의해 실행될 수도 있다는 것을 또한 이해할 것이다.
본원에서 주어지는 임의의 범위 또는 디바이스 값은, 추구되는 효과를 상실하지 않으면서 확장되거나 수정될 수도 있으며, 이것은 당업자에게는 명백할 것이다.
비록 발명의 요지가 구조적 특징 및/또는 방법론적 액트(act)에 고유한 언어로 설명되었지만, 첨부의 청구범위에서 정의되는 발명의 요지가 상기에서 설명되는 특정 특징 또는 액트로 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 상기에서 설명되는 특정 특징 및 액트는 청구범위를 구현하는 예시적인 형태로서 개시된다.
상기에서 설명되는 이점 및 이익은 하나의 실시형태에 관련이 있을 수도 있거나 또는 여러 실시형태에 관련이 있을 수도 있다는 것이 이해될 것이다. 실시형태는, 언급된 문제점 중 임의의 것 또는 전체를 해결하는 실시형태 또는 언급된 이점 및 이익 중 임의의 것 또는 전체를 갖는 실시형태에 제한되지 않는다. "한(an)" 아이템의 언급은 그 아이템의 하나 이상을 가리킨다는 것이 추가로 이해될 것이다.
본원에서 설명되는 방법의 단계는, 임의의 적절한 순서로, 또는 적절하다면 동시에 실행될 수도 있다. 추가적으로, 본원에서 설명되는 발명의 요지의 취지와 범위를 벗어나지 않으면서 개개의 블록이 방법 중 임의의 것으로부터 제거될 수도 있다. 상기에서 설명되는 예 중 임의의 것의 양태는, 설명되는 다른 예 중 임의의 것의 양태와 결합되어, 추구되는 효과를 상실하지 않는 추가 예를 형성할 수도 있다.
용어 "포함하는(comprising)"은, 본원에서, 식별되는 방법 블록 또는 엘리먼트를 포함하는 것을 의미하기 위해 사용되지만, 그러한 블록 또는 엘리먼트가 배타적 목록을 포함하지는 않으며, 방법 또는 장치는 추가적인 블록 또는 엘리먼트를 포함할 수도 있다.
용어 "서브세트"는, 본원에서, 적절한 서브세트, 즉 서브세트가 세트와 동일하지는 않으며 반드시 세트의 적어도 하나의 멤버를 제외하는 적절한 서브세트를 가리키기 위해 사용된다.
상기 설명은 예로서만 주어지는 것이며 다양한 수정이 기술분야의 숙련된 자에 의해 이루어질 수도 있다는 것이 이해될 것이다. 상기 명세, 예 및 데이터는 예시적인 실시형태의 구조 및 사용의 완전한 설명을 제공한다. 다양한 실시형태가 소정 정도의 상세성을 가지고, 또는 하나 이상의 개개의 실시형태를 참조로 상기에서 설명되었지만, 기술분야의 숙련된 자는, 본 명세의 취지와 범위를 벗어나지 않으면서 개시된 실시형태에 대한 다양한 수정예를 만들 수 있을 것이다.

Claims (17)

  1. 스토리지 디바이스(storage device)에 있어서,
    서버;
    복수의 하드 디스크 드라이브로서, 각각의 하드 디스크 드라이브는 상기 하드 디스크 드라이브 내의 플래터(platter)가 회전하고 있는 액티브 상태 및 상기 플래터가 회전하고 있지 않는 비액티브 상태를 구비하는 것인, 상기 복수의 하드 디스크 드라이브;
    상기 하드 디스크 드라이브 및 상기 서버를 연결하는 인터커넥트 패브릭(interconnect fabric);
    상기 하드 디스크 드라이브의 서브세트만이 동시에 액티브 상태로 있게 하기에 충분한 전력을 제공할 수 있는 전원 시스템;
    상기 하드 디스크 드라이브의 서브세트만이 동시에 액티브 상태로 있도록 동작시킬 때에 충분한 냉각을 제공하도록 프로비저닝되는(provisioned) 냉각 시스템; 및
    상기 서버에 의해 수신되는 임의의 IO 요청에 따라 상기 복수의 하드 디스크 드라이브 중 어떤 것이 액티브 상태로 있는지를 동적으로 제어하도록 구성되는 제어 메커니즘
    을 포함하고,
    상기 복수의 하드 디스크 드라이브는 논리적으로 그룹으로 배열되고, 각각의 그룹은 동시에 액티브 상태에 있을 수 있는 복수의 하드 디스크 드라이브를 포함하고, 각각의 하드 디스크 드라이브는 냉각 도메인 및 전력 도메인에 속하고, 상기 냉각 도메인은 냉각 제약에 의해 연결되는 하드 디스크 드라이브를 포함하며, 상기 전력 도메인은 전력 제약에 의해 연결되는 하드 디스크 드라이브를 포함하고, 상기 냉각 제약은 상기 냉각 시스템의 특성에 대응하며, 상기 전력 제약은 상기 전원 시스템의 특성에 대응하고, 각각의 그룹은 비중첩(non-overlapping) 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하고,
    상기 복수의 하드 디스크 드라이브는, 각각의 그룹이 비중첩 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하는, 그룹으로 논리적으로 배열되고, 그룹은 완전 충돌(fully colliding)로 또는 서로소(disjoint)로 배열되는데, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 하드 디스크 드라이브와 동일한 냉각 및 전력 도메인의 멤버이면, 두 그룹은 완전 충돌이고, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 임의의 하드 디스크 드라이브와 동일한 냉각 또는 전력 도메인의 멤버가 아니면, 두 그룹은 서로소인, 스토리지 디바이스.
  2. 제1항에 있어서, 각각의 하드 디스크 드라이브는 상기 액티브 상태에서 최대 대역폭을 가지며, 상기 인터커넥트 패브릭은 상기 하드 디스크 드라이브의 서브세트에 대해서만 상기 최대 대역폭과 동일한 대역폭을 제공하도록 구성되는, 스토리지 디바이스.
  3. 제1항에 있어서, 상기 제어 메커니즘은 상기 서버 및 제어 로직 상에서 실행되는 소프트웨어 중 적어도 하나를 포함하는, 스토리지 디바이스.
  4. 제1항에 있어서, 상기 인터커넥트 패브릭은,
    복수의 SATA 컨트롤러 및 PCIe 스위치를 포함하고, 각각의 하드 디스크 드라이브는 트리 구조로 배열되는 하나 이상의 PCIe 스위치 및 SATA 컨트롤러를 통해 상기 서버에 연결되며, 상기 PCIe 스위치는 상기 스토리지 디바이스 내에서 물리적으로 분산되는, 스토리지 디바이스.
  5. 제1항에 있어서, 상기 인터커넥트 패브릭은,
    트리 구조로 배열되는 복수의 SATA 멀티플렉서를 포함하는, 스토리지 디바이스.
  6. 제1항에 있어서, 상기 서버는 상기 복수의 하드 디스크 드라이브의 각각과 관련되는 '액세스 금지(no access)' 플래그를 저장하도록 구성되는 데이터 저장소(data store)를 포함하고, 설정시, '액세스 금지' 플래그는 하드 디스크 드라이브에 대한 모든 IO 요청을 실패하게 하는, 스토리지 디바이스.
  7. 제1항에 있어서, 상기 서버는 스케줄러를 포함하고, 상기 스케줄러는,
    부분으로 분할되어 상기 스토리지 디바이스에 기록될 버스트 데이터(a burst of data)를 수신하고;
    각각의 부분에 에러 정정 데이터를 추가하고;
    각각의 부분을 단일 그룹으로부터의 하드 디스크 드라이브에 기록하도록
    구성되는, 스토리지 디바이스.
  8. 제7항에 있어서, 상기 스케줄러는 또한, 각각의 부분을 복수의 스트라이프(stripe)로 그리고 각각의 스트라이프를 복수의 블록으로 분할하도록 구성되고, 상기 스케줄러는 리던던시(redundancy) 정보를 포함하는 하나 이상의 블록을 각각의 스트라이프에 추가하는 것에 의해 에러 정정을 각각의 부분에 추가하도록 구성되고,
    상기 스케줄러는, 각각의 스트라이프에 대해, 단일 그룹으로부터의 하드 디스크 드라이브 중 상이한 하드 디스크 드라이브에 상기 스트라이프로부터의 하나의 블록을 기록하는 것에 의해, 상기 단일 그룹으로부터의 하드 디스크 드라이브에 각각의 부분을 기록하도록 구성되는, 스토리지 디바이스.
  9. 제8항에 있어서, 각각의 스트라이프에 대해, 단일 그룹으로부터의 하드 디스크 드라이브 중 상이한 하드 디스크 드라이브에 상기 스트라이프로부터의 하나의 블록을 기록하는 것은,
    각각의 스트라이프로부터 하나의 블록을 포함하는 블록의 시퀀스를 어셈블링하는 것; 및
    상기 단일 그룹으로부터의 개별 하드 디스크 드라이브에 각각의 블록의 시퀀스를 기록하는 것을 포함하는, 스토리지 디바이스.
  10. 제1항에 있어서, 상기 서버는 스케줄러를 포함하고, 상기 스케줄러는,
    복수의 동작을, 동일한 그룹의 하드 디스크 드라이브에 대해 동작시키는 동작의 세트 - 상기 동작은 판독, 기록 및 삭제 동작 중 하나 이상을 포함함 - 로 재정렬(reorder)하고;
    상기 스토리지 디바이스의 스루풋(throughput)을 최대화하는 순서로 동작의 세트를 스케줄링하도록 구성되는, 스토리지 디바이스.
  11. 제10항에 있어서, 상기 스케줄러는 또한,
    버스트 동작을 수신하고 상기 버스트 동작에 대해 재정렬을 수행하도록 구성되는, 스토리지 디바이스.
  12. 제10항에 있어서, 상기 스케줄러는,
    동작의 큐 내의 동작의 서브세트에 대해 재정렬을 수행하도록 구성되고, 상기 동작의 서브세트는 윈도우에 의해 정의되며, 상기 윈도우는 동작의 수 또는 시기간(period of time)에 관해서 특정된 길이는 갖는, 스토리지 디바이스.
  13. 제10항에 있어서, 상기 스케줄러는,
    하드 디스크 드라이브의 그룹 간의 전환을 최소화하는 순서로 동작의 세트를 스케줄링하도록 구성되는, 스토리지 디바이스.
  14. 제1항에 있어서, 상기 서버는 스케줄러를 포함하고, 상기 스케줄러는,
    부분으로 분할되어 상기 스토리지 디바이스에 기록될 버스트 데이터를 수신하고;
    각각의 부분을 복수의 세그먼트로 분할하고;
    하나 이상의 에러 정정 세그먼트를 추가하고;
    각각의 세그먼트를 단일 그룹으로부터의 상이한 하드 디스크 드라이브에 기록하도록 구성되는, 스토리지 디바이스.
  15. 제1항에 있어서, 상기 서버는 스케줄러를 포함하며,
    상기 스케줄러는,
    판독 요청에 대응하는 데이터를 저장하는 하드 디스크 드라이브의 서브세트를 식별하고,
    복수의 중간 구성을 통한, 액티브 상태의 하드 디스크 드라이브를 포함하는 현재의 구성으로부터 액티브 상태의 식별된 하드 디스크 드라이브의 서브세트를 포함하는 타깃 구성으로의 마이그레이션 경로를 결정하며 - 각각의 구성은 모든 전력 및 냉각 제약을 만족하는 것임 -,
    상기 복수의 중간 구성을 통해 상기 스토리지 디바이스의 현재의 구성을 상기 타깃 구성으로 마이그레이팅하도록 구성되는, 스토리지 디바이스.
  16. 복수의 하드 디스크 드라이브와, 상기 하드 디스크 드라이브 전부가 그들의 플래터를 동시에 회전시키기에 불충분한 냉각 및 전력 인프라(infrastructure)를 포함하는 스토리지 디바이스를 동작시키는 방법에 있어서,
    상기 복수의 하드 디스크 드라이브는 논리적으로 그룹으로 배열되고, 각각의 그룹은 플래터를 동시에 회전시킬 수 있는 복수의 하드 디스크 드라이브를 포함하며, 상기 방법은,
    상기 복수의 하드 디스크 드라이브에 연결된 서버에 의해, 복수의 동작을, 동일한 그룹의 하드 디스크 드라이브에 대해 동작시키는 동작의 세트로 재정렬하는 단계; 및
    상기 서버에 의해, 상기 스토리지 디바이스의 스루풋을 최대화하는 순서로 동작의 세트를 스케줄링하는 단계
    를 포함하고,
    각각의 하드 디스크 드라이브는 냉각 도메인 및 전력 도메인에 속하고, 상기 냉각 도메인은 냉각 제약에 의해 연결되는 하드 디스크 드라이브를 포함하며, 상기 전력 도메인은 전력 제약에 의해 연결되는 하드 디스크 드라이브를 포함하고, 상기 냉각 제약은 상기 스토리지 디바이스의 냉각 시스템의 특성에 대응하며, 상기 전력 제약은 전원 시스템의 특성에 대응하고, 각각의 그룹은 비중첩(non-overlapping) 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하고,
    상기 복수의 하드 디스크 드라이브는, 각각의 그룹이 비중첩 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하는, 그룹으로 논리적으로 배열되고, 그룹은 완전 충돌(fully colliding)로 또는 서로소(disjoint)로 배열되는데, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 하드 디스크 드라이브와 동일한 냉각 및 전력 도메인의 멤버이면, 두 그룹은 완전 충돌이고, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 임의의 하드 디스크 드라이브와 동일한 냉각 또는 전력 도메인의 멤버가 아니면, 두 그룹은 서로소인, 스토리지 디바이스를 동작시키는 방법.
  17. 스토리지 디바이스에 있어서,
    서버;
    복수의 하드 디스크 드라이브로서, 각각의 하드 디스크 드라이브는 상기 하드 디스크 드라이브 내의 플래터가 회전하고 있는 액티브 상태 및 상기 플래터가 회전하지 않는 비액티브 상태를 구비하며, 상기 복수의 하드 디스크 드라이브는 논리적으로 그룹으로 배열되고, 각각의 그룹은 동시에 액티브 상태에 있을 수 있는 복수의 하드 디스크 드라이브를 포함하는 것인, 상기 복수의 하드 디스크 드라이브;
    상기 하드 디스크 드라이브 및 상기 서버를 연결하며, 상기 하드 디스크 드라이브의 서브세트만이 동시에 액티브 상태로 있게 하는 대역폭 요건을 제공하도록 구성되는 인터커넥트 패브릭;
    상기 하드 디스크 드라이브의 서브세트만이 동시에 액티브 상태로 있게 하기에 충분한 전력을 제공할 수 있는 전원 시스템;
    상기 하드 디스크 드라이브의 서브세트만이 동시에 액티브 상태로 있도록 동작시킬 때에 충분한 냉각을 제공하도록 프로비저닝되는 냉각 시스템; 및
    상기 서버에 의해 수신되는 임의의 IO 요청에 따라 어떤 그룹의 하드 디스크 드라이브가 액티브 상태로 있는지를 동적으로 제어하도록 구성되는 제어 메커니즘
    을 포함하고,
    각각의 하드 디스크 드라이브는 냉각 도메인 및 전력 도메인에 속하고, 상기 냉각 도메인은 냉각 제약에 의해 연결되는 하드 디스크 드라이브를 포함하며, 상기 전력 도메인은 전력 제약에 의해 연결되는 하드 디스크 드라이브를 포함하고, 상기 냉각 제약은 상기 냉각 시스템의 특성에 대응하며, 상기 전력 제약은 상기 전원 시스템의 특성에 대응하고, 각각의 그룹은 비중첩(non-overlapping) 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하고,
    상기 복수의 하드 디스크 드라이브는, 각각의 그룹이 비중첩 냉각 도메인 및 비중첩 전력 도메인 내의 복수의 하드 디스크 드라이브를 포함하는, 그룹으로 논리적으로 배열되고, 그룹은 완전 충돌(fully colliding)로 또는 서로소(disjoint)로 배열되는데, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 하드 디스크 드라이브와 동일한 냉각 및 전력 도메인의 멤버이면, 두 그룹은 완전 충돌이고, 제1 그룹 내의 각각의 하드 디스크 드라이브가 제2 그룹 내의 임의의 하드 디스크 드라이브와 동일한 냉각 또는 전력 도메인의 멤버가 아니면, 두 그룹은 서로소인, 스토리지 디바이스.
KR1020227002426A 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지 KR102486613B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/899,497 US8868954B1 (en) 2013-05-21 2013-05-21 Low cost storage for rarely read data
US13/899,497 2013-05-21
PCT/US2014/038866 WO2014189986A1 (en) 2013-05-21 2014-05-21 Low cost storage for rarely read data
KR1020157034771A KR20160010491A (ko) 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034771A Division KR20160010491A (ko) 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지

Publications (2)

Publication Number Publication Date
KR20220015516A KR20220015516A (ko) 2022-02-08
KR102486613B1 true KR102486613B1 (ko) 2023-01-09

Family

ID=51059553

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227002426A KR102486613B1 (ko) 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지
KR1020157034771A KR20160010491A (ko) 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157034771A KR20160010491A (ko) 2013-05-21 2014-05-21 희소하게 판독되는 데이터용의 저가의 스토리지

Country Status (5)

Country Link
US (4) US8868954B1 (ko)
EP (1) EP3000023B1 (ko)
KR (2) KR102486613B1 (ko)
CN (1) CN105264482B (ko)
WO (1) WO2014189986A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792243B2 (en) * 2013-12-26 2017-10-17 Intel Corporation Computer architecture to provide flexibility and/or scalability
US9749628B2 (en) * 2014-07-07 2017-08-29 Hfi Innovation Inc. Methods of handling escape pixel as a predictor in index map coding
CN105701028B (zh) 2014-11-28 2018-10-09 国际商业机器公司 分布式存储系统中的磁盘管理方法和设备
US9569125B2 (en) * 2015-04-08 2017-02-14 Spectra Logic, Corp. Mapping object interface into a powered storage device system
CN106547474A (zh) * 2015-09-22 2017-03-29 辛力彬 一种箱式混合存储数据中心
US10019174B2 (en) * 2015-10-27 2018-07-10 Sandisk Technologies Llc Read operation delay
EP3367244B1 (en) 2015-11-16 2023-10-25 Huawei Technologies Co., Ltd. Storage system, storage device, and hard disk drive scheduling method
US10028401B2 (en) 2015-12-18 2018-07-17 Microsoft Technology Licensing, Llc Sidewall-accessible dense storage rack
KR102227643B1 (ko) * 2016-09-28 2021-03-15 한국전자기술연구원 오케스트레이션 기반 최적 스토리지 할당을 위한 예측형 후보군 선정 방법
US10740479B2 (en) 2018-01-24 2020-08-11 International Business Machines Corporation Controlling access to removable non-volatile memory device using instruction file
US11464129B1 (en) 2019-11-26 2022-10-04 Seagate Technology Llc Modular edge storage devices with high speed interconnects
JP7520773B2 (ja) * 2021-06-16 2024-07-23 株式会社日立製作所 記憶システムおよびデータ処理方法
CN114817107B (zh) * 2022-06-28 2022-10-25 深圳云豹智能有限公司 Pcie设备切换系统、方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004912A1 (en) 1990-06-01 2002-01-10 Amphus, Inc. System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US20060259797A1 (en) 2000-09-27 2006-11-16 Fung Henry T System, method, architecture, and computer program product for dynamic power management in a computer system
JP2007018483A (ja) 2005-06-08 2007-01-25 Hitachi Ltd 記憶システム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249885B1 (en) * 1997-05-13 2001-06-19 Karl S. Johnson Method for managing environmental conditions of a distributed processor system
JP2988471B1 (ja) * 1998-07-17 1999-12-13 日本電気株式会社 冷却ファン付き光ディスク装置
US6892275B2 (en) * 2002-02-05 2005-05-10 Quantum Corporation Storage system utilizing an active subset of drives during data storage and retrieval operations
US7330931B2 (en) 2003-06-26 2008-02-12 Copan Systems, Inc. Method and system for accessing auxiliary data in power-efficient high-capacity scalable storage system
US7490197B2 (en) * 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8112564B2 (en) * 2005-06-28 2012-02-07 Intel Corporation Hard disk drive staggered spin-up mechanism
US7221531B2 (en) * 2005-09-12 2007-05-22 Intel Corporation Staggered spin-up disable mechanism
JP4824374B2 (ja) 2005-09-20 2011-11-30 株式会社日立製作所 ディスクの回転を制御するシステム
US7849261B2 (en) * 2006-06-29 2010-12-07 Seagate Technology Llc Temperature control to reduce cascade failures in a multi-device array
JP4897387B2 (ja) * 2006-08-10 2012-03-14 株式会社日立製作所 ストレージ装置およびこれを用いたデータの管理方法
US8312214B1 (en) * 2007-03-28 2012-11-13 Netapp, Inc. System and method for pausing disk drives in an aggregate
CN103176881B (zh) * 2007-08-28 2016-08-10 Commvault系统公司 如数据存储操作的自适应能耗管理的数据处理资源的能耗管理
JP5060876B2 (ja) * 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
US7870409B2 (en) * 2007-09-26 2011-01-11 Hitachi, Ltd. Power efficient data storage with data de-duplication
US7639545B2 (en) * 2007-10-01 2009-12-29 Advanced Micro Devices, Inc. Memory word line driver featuring reduced power consumption
US7849263B1 (en) * 2007-12-24 2010-12-07 Emc Corporation Techniques for controlling storage capacity of a data storage system
US8140754B2 (en) 2008-01-03 2012-03-20 Hitachi, Ltd. Methods and apparatus for managing HDD's spin-down and spin-up in tiered storage systems
JP5207367B2 (ja) 2008-06-16 2013-06-12 株式会社日立製作所 ストレージシステムの消費電力を削減する計算機システム及びその制御方法
JP2010003149A (ja) * 2008-06-20 2010-01-07 Hitachi Ltd ストレージ装置及びディスク装置制御方法
US8301852B2 (en) 2008-11-13 2012-10-30 International Business Machines Corporation Virtual storage migration technique to minimize spinning disks
US20100138677A1 (en) * 2008-12-01 2010-06-03 International Business Machines Corporation Optimization of data distribution and power consumption in a data center
CN102549524B (zh) 2009-07-20 2015-05-06 卡林戈公司 存储集群中的自适应功率保存
US8374928B2 (en) * 2010-02-25 2013-02-12 International Business Machines Corporation Data center power cost accounting system
US8433942B2 (en) * 2010-03-05 2013-04-30 Hitachi, Ltd. Storage apparatus and power consumption estimation method
US8595535B1 (en) * 2010-12-16 2013-11-26 Emc Corporation Techniques for managing data storage systems using energy information
TW201431355A (zh) * 2013-01-25 2014-08-01 Elta Technology Co Ltd 具有擴充性的影音儲存系統、影音檔案分配裝置及相關的電腦程式產品

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004912A1 (en) 1990-06-01 2002-01-10 Amphus, Inc. System, architecture, and method for logical server and other network devices in a dynamically configurable multi-server network environment
US20060259797A1 (en) 2000-09-27 2006-11-16 Fung Henry T System, method, architecture, and computer program product for dynamic power management in a computer system
JP2007018483A (ja) 2005-06-08 2007-01-25 Hitachi Ltd 記憶システム

Also Published As

Publication number Publication date
US20170031372A1 (en) 2017-02-02
EP3000023B1 (en) 2022-05-11
US9471068B2 (en) 2016-10-18
EP3000023A1 (en) 2016-03-30
US8868954B1 (en) 2014-10-21
US20150032286A1 (en) 2015-01-29
KR20220015516A (ko) 2022-02-08
CN105264482A (zh) 2016-01-20
US20180081379A1 (en) 2018-03-22
US9841774B2 (en) 2017-12-12
KR20160010491A (ko) 2016-01-27
CN105264482B (zh) 2018-06-22
WO2014189986A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
KR102486613B1 (ko) 희소하게 판독되는 데이터용의 저가의 스토리지
US9258364B2 (en) Virtualization engine and method, system, and computer program product for managing the storage of data
US8898385B2 (en) Methods and structure for load balancing of background tasks between storage controllers in a clustered storage environment
US8706962B2 (en) Multi-tier storage system configuration adviser
US9417794B2 (en) Including performance-related hints in requests to composite memory
US11112977B2 (en) Filesystem enhancements for unified file and object access in an object storage cloud
US20160179420A1 (en) Apparatus and method for managing storage
US8650358B2 (en) Storage system providing virtual volume and electrical power saving control method including moving data and changing allocations between real and virtual storage areas
US9152490B2 (en) Detection of user behavior using time series modeling
US20200089425A1 (en) Information processing apparatus and non-transitory computer-readable recording medium having stored therein information processing program
JP2009217818A (ja) 情報処理装置,スケジュール管理装置,スケジュール管理方法およびスケジュール管理プログラム
US9075606B2 (en) Storage apparatus and method of determining device to be activated
US20180341423A1 (en) Storage control device and information processing system
JP2011070464A (ja) 計算機システム及び計算機システムの性能管理方法
CN109683815B (zh) 一种双控磁盘阵列分层存储方法
US20160070478A1 (en) Storage control device and storage control method
US11079951B2 (en) Multi-tier storage and mirrored volumes
US11748000B2 (en) Storage system and file arrangement method of storage system
JP5994339B2 (ja) 仮想化システム、ストレージ装置、ストレージデータ移行方法、及びストレージデータ移行プログラム
Jiang et al. Design and implementation of I/O scheduling algorithm base on RAID controller
CN103558991B (zh) 数据分层存储处理方法、装置和存储设备
US20120159069A1 (en) Concurrently Moving Storage Devices from One Adapter Pair to Another

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant