Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5577404B2 - ストレージ・クラスタにおける適応的な電力節約の方法 - Google Patents
[go: Go Back, main page]

JP5577404B2 - ストレージ・クラスタにおける適応的な電力節約の方法 - Google Patents

ストレージ・クラスタにおける適応的な電力節約の方法 Download PDF

Info

Publication number
JP5577404B2
JP5577404B2 JP2012521709A JP2012521709A JP5577404B2 JP 5577404 B2 JP5577404 B2 JP 5577404B2 JP 2012521709 A JP2012521709 A JP 2012521709A JP 2012521709 A JP2012521709 A JP 2012521709A JP 5577404 B2 JP5577404 B2 JP 5577404B2
Authority
JP
Japan
Prior art keywords
node
computer
computer node
idle
storage cluster
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2012521709A
Other languages
English (en)
Other versions
JP2012533832A (ja
Inventor
ダットン・ジェームス・イー.
アービラ・ローラ
ヨークリー・デビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Caringo Inc
Original Assignee
Caringo Inc
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 Caringo Inc filed Critical Caringo Inc
Publication of JP2012533832A publication Critical patent/JP2012533832A/ja
Application granted granted Critical
Publication of JP5577404B2 publication Critical patent/JP5577404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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]
    • 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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Power Sources (AREA)

Description

本発明は、一般的には電力節約に関する。より具体的には、本発明は、ストレージ・クラスタにおける電力節約に関する。
現在、いわゆる「環境保全」技術を推進し、地球の気象変化に対応する目的で、コンピュータによる電力消費を抑制する取り組みが進められている。このような長期目標に加えて、消費電力を抑制することは、事業主にとって即座の節約につながる。コンピュータシステムで使用される電力の削減は、コンピュータシステムの電気料金が減少することを意味するだけではなく、コンピュータシステムの冷却コストの削減にもつながる。巨大データセンターを管理する企業にとって、コンピュータ群を冷却するのに必要な電力の削減は非常に重要である。このような企業にとって、冷却容量の削減は、必要な冷却用インフラの削減とデータセンターに必要な不動産の削減につながる。
したがって、コストを削減し、冷却の必要性を削減するために、一般的には、コンピュータのストレージ・クラスタで電力を節約することが望ましい。ただし、ストレージ・クラスタ内では、クライアント・アプリケーションが常時クラスタへの書き込みやクラスタからの読み出しを行なっており、また、ストレージ・クラスタ自身も自己のデジタルオブジェクトの整合性を評価し、必要に応じてデジタルオブジェクトのコピーを作成しているため、電力節約スキームの策定は容易ではない。
このため、クライアント・アプリケーションが必要とするアクセスが可能なままで、コンピュータのストレージ・クラスタにおいて電力消費を抑制し、クラスタ内でのオブジェクト整合性を維持する方法及びシステムが求められている。
前記を達成するために、本発明の目的に従い、電力節約方法を開示する。ボリュームが使用されていない場合にディスクドライブをスピンダウンし、また、ノードが使用されていない場合にCPU使用率を低下させることにより、ストレージ・クラスタの電力を節約することが望まれている。
(1)本発明の第1の形態は、CPUと少なくとも1個のディスクドライブとを備え、自己のオペレーティングシステムを実行するよう各コンピュータノードが相互に接続された複数のコンピュータノードからなるストレージ・クラスタにおいて、前記コンピュータノードと前記ディスクドライブとをアイドル状態にする方法であって、
前記ストレージ・クラスタ内の各コンピュータノードに関して、第1の所定期間に、前記各コンピュータノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の各コンピュータノードに関して、第2の所定期間に、前記各コンピュータノードで、前記ストレージ・クラスタ内の他のコンピュータノードから書き込み要求又は読み出し要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の各コンピュータノードに関して、前記第1の所定期間及び前記第2の所定期間に、前記クライアント要求も前記書き込み要求も生じなかったことを判定した場合に、前記各コンピュータノードを独立にアイドル状態に移行させる工程と、
アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、を備える方法である。
(2)本発明の第2の形態は、複数の相互に接続されるコンピュータノードを有するストレージ・クラスタ内でコンピュータノードをアイドル状態にする方法であって、
前記コンピュータノードがアクティブ状態のときに、前記コンピュータノードにより、前記ストレージ・クラスタ外部のクライアント・アプリケーションからのクライアント要求を処理する工程と、
第1の所定期間に、前記コンピュータノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
第2の所定期間に、前記コンピュータノードで、前記ストレージ・クラスタ内の他のコンピュータノードからの読み出し要求又は書き込み要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の前記他のコンピュータノードとは独立に、前記コンピュータノードをアイドル状態に移行させる工程と、
前記アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、
を備える方法である。
本発明は、十分に利用されていないクラスタが、ディスクのスピンダウンを開始し、ノードのCPU使用率を低下させることが可能な機構を提供する。電力を節約するために利用可能なスループットを意図的に低下させるが目的なのではなく、スループット要求が低いことを認識して、電力を節約する措置を講じることが目的である。夜間や週末にドーマント(休眠)状態になるクラスタや、書き込み/読み出し/削除動作にまれにしか利用されていないクラスタでは、ドーマント(休眠)期間に使用電力をかなり、たとえば、80〜90%も、抑制することができる。クラスタへの以降のアクセスにより、自動的に1つ又は複数のノードが休止状態から復帰して要求を実行し、最終的には、クラスタ全体が復帰する。スリープ状態のノードに対する最初のアクセス時に、追加の待ち時間が生じるが、最大利用可能なスループットは影響を受けない。
このアプローチの利点としては、本発明がクライアント・アプリケーションにより大きく変わる使用パターンに適応できること、各ノード及びボリュームが、いつスリープ状態に入りいつ復帰するかに関する決定を分散的に自分で下すことができること、及び、クラスタ全体を完全にドーマント(休眠)状態にすることが可能であること、が挙げられる。本発明では、電力節約を実施するために管理者が複雑なサブクラスタ構成を設計する必要がなく、管理費は基本的にゼロである。
本発明の第1の実施形態は、ストレージ・クラスタの各コンピュータノード及びそのハードディスクを独立にアイドル状態にすることができ、これによって電力を節約する。第2の実施形態は、ストレージ・クラスタ全体をアイドル状態で保持し、休止状態から復帰させることなく、ストレージ・クラスタ内の関係ノードに対する読み出し又は書き込みアクセスを可能にする。第3の実施形態は、アーカイブ・アプリケーションに対して、アーカイブ・モードを用いて、特定のノードが必要になるまでアイドル状態で空のまま保持する。第4の実施形態は、クラスタがアイドル状態になってから所定時間後にクラスタ全体のヘルス処理を実行可能にする。第5の実施形態は、ソリッドステート・ドライブ(SSD)を用いて、スピンアップ遅延によるアイドル・クラスタの初期待ち時間をなくす。
本発明は、以下の適用例としても実現可能である。
[適用例1]
CPUと少なくとも0個のディスクドライブとを備え、自己のオペレーティングシステムを実行するよ各コンピュータノードが相互に接続された複数のコンピュータノードからなるストレージ・クラスタにおいて、前記コンピュータノードと前記ディスクドライブとをアイドル状態にする方法であって、
前記ストレージ・クラスタ内の各コンピュータノードに関して、第1の所定期間に、前記各ノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の各コンピュータノードに関して、第2の所定期間に、前記各ノードで、前記ストレージ・クラスタ内の他のノードから書き込み要求又は読み出し要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の各コンピュータノードに関して、前記第1の所定期間及び前記第2の所定期間に、前記クライアント要求も前記書き込み要求も生じなかったことを判定した場合に、前記各コンピュータノードを独立にアイドル状態に移行させる工程と、
アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、を備える方法。
[適用例2]
適用例1に記載の方法であって、
前記第1の所定期間、前記第2の所定期間、及び前記第3の所定期間が同じ値である、方法。
[適用例3]
適用例1に記載の方法であって、さらに、
アイドル状態に移行させた各ディスクボリュームの回転を停止させる工程を備える、方法。
[適用例4]
適用例1に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例5]
適用例1に記載の方法であって、さらに、
各コンピュータノードのディスクボリューム上で実行されるすべてのファイル整合性チェックを停止することにより、前記各コンピュータノードをアイドル状態にする工程と、
前記各コンピュータノードの前記オペレーティング・システムにより、前記各コンピュータノードの前記CPUのクロックレートを低下させる工程と、
を備える方法。
[適用例6]
適用例1に記載の方法であって、さらに、
アイドル状態のコンピュータノードの各ディスクボリュームのスピンダウンを指示することにより、前記ディスクボリュームをアイドル状態にする工程を備える、方法。
[適用例7]
適用例1に記載の方法であって、さらに、
各コンピュータノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させるようにビッド値を計算することにより、前記コンピュータノードをアイドル状態にする工程を備える、方法。
[適用例8]
複数の相互に接続されるコンピュータノードを有するストレージ・クラスタ内でコンピュータノードをアイドル状態にする方法であって、
前記コンピュータノードがアクティブ状態のときに、前記コンピュータノードにより、前記ストレージ・クラスタ外部のクライアント・アプリケーションからのクライアント要求を処理する工程と、
第1の所定期間に、前記コンピュータノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
第2の所定期間に、前記コンピュータノードで、前記ストレージ・クラスタ内の他のコンピュータノードからの読み出し要求又は書き込み要求が生じなかったことを判定する工程と、
前記ストレージ・クラスタ内の前記他のコンピュータノードとは独立に、前記コンピュータノードをアイドル状態に移行させる工程と、
前記アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、
を備える方法。
[適用例9]
適用例8に記載の方法であって、さらに、
前記第1の所定期間に、前記他のコンピュータノードの各々で、外部クライアント・アプリケーションからのクライアント要求が生じなかったことが判定され、かつ、前記第2の所定期間に、前記他のコンピュータノードの各々で、前記ストレージ・クラスタ内の他のコンピュータノードから読み出し要求又は書き込み要求が生じなかったことを判定した場合に、前記ストレージ・クラスタ内の前記他のコンピュータノードの各々に対して、前記移行工程を実施する工程を備える、方法。
[適用例10]
複数のコンピュータノードを有するストレージ・クラスタからコンピュータファイルを読み出す方法であって、
前記ストレージ・クラスタの前記コンピュータノードの各々がアイドル状態のときに、前記ストレージ・クラスタの第1のコンピュータノードで、前記ストレージ・クラスタから前記コンピュータファイルを検索する要求を外部クライアント・アプリケーションから受信する工程と、
前記第1のコンピュータノードから前記ストレージ・クラスタ内の前記コンピュータノードに、前記コンピュータファイルを読み出すためのビッドを要求するマルチキャスト・メッセージを送信する工程と、
前記マルチキャスト・メッセージに対する応答に基づいて、前記複数のコンピュータノードのうちの1つを選択する工程と、
前記選択されたコンピュータノードと前記コンピュータファイルを含む前記選択されたコンピュータノードのディスクボリュームとをアクティブ状態に移行させる工程と、
前記ストレージ・クラスタ内の選択されていないコンピュータノードをアイドル状態に維持する工程と、
前記選択されたコンピュータノードの前記ディスクボリュームから前記外部クライアント・アプリケーションに前記コンピュータファイルを返送する工程と、を備える方法。
[適用例11]
適用例10に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例12]
適用例10に記載の方法であって、
前記アイドル状態の各コンピュータノードでは、CPUのクロックレートが低下している、方法。
[適用例13]
適用例10に記載の方法であって、
前記アイドル状態のコンピュータノードの各ディスクボリュームは、スピンダウン中である、方法。
[適用例14]
複数のコンピュータノードを有するストレージ・クラスタにコンピュータファイルを書き込む方法であって、
前記ストレージ・クラスタの前記コンピュータノードの各々がアイドル状態のときに、前記ストレージ・クラスタの第1のコンピュータノードで、前記コンピュータファイルを前記ストレージ・クラスタに書き込む要求を外部クライアント・アプリケーションから受信する工程と、
前記第1のコンピュータノードから前記ストレージ・クラスタ内の前記コンピュータノードに、前記コンピュータファイルを書き込むためのビッドを要求するマルチキャスト・メッセージを送信する工程と、
前記マルチキャスト・メッセージに対する応答に基づいて、前記複数のコンピュータノードのうちの1つを選択する工程と、
前記選択されたコンピュータノードと前記選択されたコンピュータノードのディスクボリュームとをアクティブ状態に移行させる工程と、
前記ストレージ・クラスタ内の選択されていないコンピュータノードをアイドル状態に維持する工程と、
前記外部クライアント・アプリケーションから前記選択されたコンピュータノードの前記ディスクボリュームに前記コンピュータファイルを書き込む工程と、を備える方法。
[適用例15]
適用例14に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例16]
適用例14に記載の方法であって、
前記アイドル状態の各コンピュータノードでは、CPUのクロックレートが低下している、方法。
[適用例17]
適用例14に記載の方法であって、
前記アイドル状態のコンピュータノードの各ディスクボリュームは、スピンダウン中である、方法。
[適用例18]
複数のコンピュータノードを有するストレージ・クラスタにコンピュータファイルを書き込む方法であって、
前記ストレージ・クラスタの第1のコンピュータノードで、前記コンピュータファイルを前記ストレージ・クラスタに書き込む要求を外部アーカイブ・アプリケーションから受信する工程と、
前記第1のコンピュータノードから前記ストレージ・クラスタ内の前記コンピュータノードに、前記コンピュータファイルを書き込むためのビッドを要求するマルチキャスト・メッセージを送信する工程と、
前記コンピュータノードの各々が、前記コンピュータファイルを書き込む機会に関するビッド値を計算する工程であって、より大きな容量を有するコンピュータノードからのビッド値が、より小さな容量を有するコンピュータノードからのビッド値よりも大きい、工程と、
前記複数のコンピュータノードから最小ビッド値を有するコンピュータノードを選択する工程と、
前記外部クライアント・アプリケーションから前記選択されたコンピュータノードのディスクボリュームに前記コンピュータファイルを書き込む工程と、を備える方法。
[適用例19]
適用例18に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例20]
適用例18に記載の方法であって、さらに、
前記選択されたコンピュータノードのうちで最小容量を有するディスクボリュームに、前記コンピュータファイルを書き込む工程を備える、方法。
[適用例21]
適用例18に記載の方法であって、
前記ストレージ・クラスタの前記コンピュータノードの各々がアーカイブモードであり、前記コンピュータノードの各々がアーカイブモードでない場合には、より大きな容量を有するコンピュータノードからの計算ビッド値が、より小さな容量を有するコンピュータノードからの計算ビッド値よりも小さい、方法。
[適用例22]
複数のコンピュータノードを有するストレージ・クラスタにコンピュータファイルを格納する方法であって、
前記ストレージ・クラスタ内の第1のコンピュータノードから、外部アーカイブ・アプリケーション由来の前記コンピュータファイルを書き込むためのビッドを要求するマルチキャスト・メッセージを受信する工程と、
前記ストレージ・クラスタ内の第2のコンピュータノードがアーカイブモードにあるか否かを判定する工程と、
前記第2のコンピュータノードがアーカイブモードにあると判定された場合に、前記コンピュータファイルを書き込む機会に関するビッド値を計算する工程であって、前記コンピュータノードの容量が大きいほど前記ビッド値が大きくなる、工程と、
前記計算したビッド値に基づいて、前記コンピュータノード間でのビッド競争に勝つ工程と、
前記外部クライアント・アプリケーションから前記第2のコンピュータノードのディスクボリュームに前記コンピュータファイルを書き込む工程と、を備える方法。
[適用例23]
適用例22に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例24]
適用例22に記載の方法であって、さらに、
最小容量を有する選択されたコンピュータノードのディスクボリュームに前記コンピュータファイルを書き込む工程を備える、方法。
[適用例25]
適用例22に記載の方法であって、さらに、
前記第2のコンピュータノードのディスクボリュームをほぼ容量いっぱいまで満杯にする工程と、
所定の期間が経過する間、前記外部アーカイブ・アプリケーションからの要求が処理されていないと判定された場合に、前記第2のコンピュータノードをアイドル状態にする工程と、を備える方法。
[適用例26]
複数のコンピュータノードを有するストレージ・クラスタにおいて外部要求を処理する方法であって、
前記ストレージ・クラスタのアイドル・コンピュータノードで、外部クライアント・アプリケーション由来の前記外部要求を処理するビッドを要求するマルチキャスト・メッセージを受信する工程と、
前記外部要求を処理する機会に関するビッド値を計算する工程と、
前記ストレージ・クラスタ内の前記アイドル・コンピュータノードがアイドル状態であるか否かを判定する工程であって、前記アイドル・コンピュータノードがアイドル状態であると判定された場合に、前記ビッド値にプレミアム値を加算して、最終ビッド値を求める工程と、
前記最終ビッド値を提示する工程と、
前記最終ビッド値は他のビッド値よりも大きいため、前記最終ビッド値が前記外部要求を処理することを認めない、という通知を受け取る工程と、
前記アイドル・コンピュータノードにより前記外部要求を処理しない工程と、を備える方法。
[適用例27]
適用例26に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
[適用例28]
適用例26に記載の方法であって、さらに、
前記提示された最終ビッド値に対する応答を受信しないことに基づいて、通知を受け取る工程を備える、方法。
[適用例29]
適用例26に記載の方法であって、さらに、
前記アイドル・コンピュータノードをアイドル状態に維持する工程であって、前記アイドル状態は、前記アイドル・コンピュータノードのCPUのクロックレートの低下を特徴とする、工程を備える方法。
[適用例30]
適用例1に記載の方法であって、さらに、
前記ノードのうちハードディスクドライブを備える第1のノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させるように、前記ノードのうちの前記第1のノードに関するビッド値を計算する工程と、
前記ノードのうちソリッドステート・ドライブを備える第2のノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を増大させるように、前記ノードのうちの前記第2のノードに関するビッド値を計算する工程と、を備える方法。
[適用例31]
適用例8に記載の方法であって、さらに、
ディスクドライブを備える各ディスク・ボリュームに対して、書き込み又は読み出しビッド値を調整して、前記ディスクドライブを備えるボリュームが、外部書き込み又は読み出しのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させる工程と、
ソリッドステート・ドライブを備える各ディスク・ボリュームに対して、書き込み又は読み出しビッド値を調整して、前記ソリッドステート・ドライブを備えるボリュームが、外部書き込み又は読み出しのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を増大させる工程と、を備える方法。
[適用例32]
複数のコンピュータノードを備えるアイドル状態のストレージ・クラスタにコンピュータファイルを書き込む方法であって、
前記ストレージ・クラスタは、少なくとも1つのソリッドステート・ドライブと少なくとも1つのハードディスクドライブとを含む複数のドライブを備え、
前記方法が、
前記アイドル状態のストレージ・クラスタの前記複数のドライブのすべてがアイドル状態にあるときに、前記ストレージ・クラスタの第1のコンピュータノードにおいて、外部アプリケーションから前記ストレージ・クラスタに前記コンピュータファイルを書き込む要求を受信する工程と、
前記第1のコンピュータノードから前記ストレージ・クラスタ内の前記コンピュータノードに、前記コンピュータファイルを書き込むためのビッドを要求するマルチキャスト・メッセージを送信する工程と、
前記コンピュータノードの各々が、前記コンピュータファイルを書き込む機会に関するビッド値を計算する工程であって、前記少なくとも1つのソリッドステート・ドライブを備える第1のコンピュータノードからの第1のビッド値が前記少なくとも1つのハードディスクドライブを備える任意の他のコンピュータノードからの第2のビッド値よりも小さい、工程と、
最小ビッド値を持つ前記第1のコンピュータノードを選択する工程と、
前記外部クライアント・アプリケーションから前記選択された第1のコンピュータノードの前記少なくとも1つのソリッドステート・ドライブに前記コンピュータファイルを書き込む工程と、を備える方法。
[適用例33]
適用例32に記載の方法であって、
前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
添付の図面と共に、以下の説明を参照することにより、本発明及びその効果を最もよく理解することができるであろう。
本発明の動作環境を示す図。 通常動作時に、クライアント・アプリケーションがストレージ・クラスタにファイルを書き込む工程を説明するフロー図。 アクティブ状態からアイドル状態へのノードの移行工程を説明するフロー図。 アイドル・クラスタが読み出し要求を処理する工程を説明するフロー図。 アイドル・クラスタが書き込み要求を処理する工程を説明するフロー図。 本発明の実施例を実施するのに適したコンピュータシステムを示す図。 本発明の実施例を実施するのに適したコンピュータシステムを示す図。
任意の適当なコンピュータハードウェア及びソフトウェアを用いて、本発明を実施可能である。ストレージ・クラスタは、任意の数のコンピュータノードを含むものでよい。各ノードが、CPU(又は複数のCPU)と、オペレーティング・システムと、他のノードに接続される(又は少なくとも中央ルータに接続される)通信リンクと、任意の数(すなわち、ゼロからN個)の内部ハードディスクドライブ又はソリッドステート・ドライブと、を備えることが望ましい。通常、各ノードは、少なくとも1つのドライブを備え、ソリッドステート・ドライブとハードディスクドライブとを任意に組み合わせたものでもよい。クラスタは、一般的に、バックアップや長期間の保存、アーカイブ保管等に用いられ、コンピュータファイルへの日常的なアクセスには通常用いられない固定コンテンツストレージ・クラスタである。これは、WORM(ライトワンス・リードメニー)記憶装置とも称され、いったんクラスタに書き込まれたコンピュータファイルやデジタルオブジェクトは変更できない。(当然のことながら、コンピュータファイルの修正版もクラスタ内に格納可能である。)クラスタは、独立ノードの冗長アレイ(redundant array of independent node:RAIN)として実現されるものでもよく、この場合、各ノードは、自己のオペレーティング・システムを実行し、クラスタ内の記憶に関して独立に決定を下す。ストレージ・クラスタは、ブレード、タワー、パーソナルコンピュータ及びサーバ上に構築可能である。あるいは、単一のコンピュータボックス内部のマルチコア・プロセッサが、各コア上で実行される仮想記憶ノードをサポートするものでもよい。すなわち、単一のコンピュータボックス内に、複数のノードを有するストレージ・クラスタが配置されるものでもよい。さらに、単一の物理ボックス(フィジカルボックス)内部のコンピュータシステムが、複数のCPUを備え、各CPUがノードとなって、単一の物理ボックス内部にストレージ・クラスタを実現するものでもよい。
図1に、本発明の動作環境10を示す。ストレージ・クラスタ20と、クライアント・アプリケーション30と、管理コンソール40と、任意の数のコンピュータノード51〜54と、中央ルータ70と、を備える。前述したように、コンピュータノードは物理ファイルサーバであり、少なくとも1つのCPUと、任意の数のディスクドライブ、ソリッドステート・ドライブ又は両方の種類が混在するハイブリッドドライブと、を備えることが望ましい。各ノードは、Debian Linux(デビアン・リナックス)等のオペレーティング・システムを実行し、また、処理を実行することによって、ノード間のピアツーピア通信を管理し、ヘルス処理を実施し、ノードとそのボリュームに対して独立に決定を下す。各ノードは、さらに、管理ソフトウェアを備え、インターネットを通じてウェブブラウザによりその状態を監視することができる。
ある特定のRAIN実施形態において、各ノードは、1テラバイト以上のシリアルATAディスク記憶容量を有し、標準的なイーサネット(登録商標)ネットワーク構築を行なう1Uサーバ(たとえば、x86コンピュータ)である。各ノードは、IPアドレスを有し、IPベースのLAN、MAN又はWANを用いて物理的に相互に接続される。したがって、各ノードは、1つのノードと通信を行なうことも可能であるし、ルータ70又はその他の同様なネットワークスイッチを用いて、ストレージ・クラスタ内のすべてのノードに対してメッセージをブロードキャストすることも可能である(マルチキャスト)。
各ノードは、クライアント・アプリケーションからの外部要求(たとえば、SCSP要求)、ノード間の複製要求(たとえば、interSCSP要求)及びその他のインターノードプロトコル通信(ビッディング、情報要求等)を処理する管理モジュールを備える。(後述する)ヘルス処理モジュールは、各ノードのデジタルコンテントを管理する。管理コンソール40は、望ましくは、ストレージ・クラスタに接続されるウェブ・サーバであり、任意の適当なインターネット接続を介して各ノードにアクセス可能である。各ノードは、クラスタ全体の監視及び管理に利用可能な冗長管理コンソールを実装する。
一実施形態において、ストレージ・クラスタは、テキサス州オースチンのCaringo社から市販されているCAStorコンテンツストレージ・ソフトウェアと、任意の適当なコンピュータ・ハードウェアと、を用いて実現される。この実施形態において、ストレージ・クラスタは、固定コンテンツを記憶させるものであり、各デジタルオブジェクトは、真性乱数発生器を用いてそのデジタルオブジェクトのために発生させた乱数により、一意的にクラスタ内でアドレスが指定されている(汎用一意識別子(universally unique identifier)又はUUID)。各デジタルオブジェクトのコンテンツは、ハッシュ関数を用いて検証される。クライアント・ソフトウェア・アプリケーションは、クラスタ内にデジタルオブジェクトを格納する際にUUIDを受け取り、UUIDをクラスタに出力することによりそのデジタルオブジェクトの検索を行なう。ソフトウェア・アプリケーションは、HTTP1.1規格を用いて、より具体的には、その規格のSCSP(Simple Content Storage Protocol)と称される簡易サブセットを用いて、CAStorクラスタと通信を行なう。この標準インターフェースを用いて、電子メール、企業コンテンツ管理、ヘルスケアアプリケーション、ウェブブラウザ、Web2.0サイト、写真共有、ソーシャル・メディアサイト、セキュリティビデオ、ビデオ編集等のクライアント・アプリケーションがCAStorストレージ・クラスタにアクセス可能である。さらに、ブラウザ、JAVA(登録商標)、Python、C++及びその他のソフトウェア環境で直接HTPPアクセスが可能である。
概要
本発明は、設定可能期間にわたって実際に処理を行なった外部クライアント・アプリケーションからの要求の頻度及びノード間の複製要求の頻度に基づいて、クラスタ内の各ノード及びボリュームが、電力消費を抑制するか否かを独立に決定することを可能にする。sleepAfterとwakeAfterと称する2つのノード設定パラメータを用いるが、たとえば、これらのパラメータは、整数の秒数で表わされる(クラスタ内のすべてのノードが同じ値でなくてもよい)。
直近のsleepAfter秒の期間、あるノードがクライアント・アプリケーションからの要求(読み出し又は書き込み)を処理しておらず、また、他のノードからの同様の要求も処理しなかった場合、そのノードは休止を開始する。(たとえば、夜間や週末に予想されるように)読み出しや書き込みに対する外部要求が存在しない状態が継続すると、そのノード及びそのノードのすべてのボリュームは、完全にドーマント(休眠)状態になる。クライアント・アプリケーションが再び要求を送信し始めると、クラスタ内のノードの1つ又は複数のノードが休止状態から復帰して、その要求を処理する。長期間にわたって外部動作が検出されなくても、各ノードは、wakeAfter秒の期間アイドル状態にあった後、アイドル状態から復帰する。これにより、定期的にヘルス処理及びハウスキーピング処理(クラスタ内にデジタルオブジェクトの少なくとも最小数の特定コピーが存在することを保証する処理)を実施することができる。
ビッディング(入札)処理により、各ノードは、そのノードがデジタルオブジェクトを書き込む、デジタルオブジェクトを読み出す、又は、デジタルオブジェクトを複製する(そのノード上にコピーを保持する)際にかかるコストを示すビッド値を計算する。一般に、ノードは、すべての利用可能なノードからのビッド(入札)を要求するプライマリ・アクセスノードにビッド値を提示することにより、書き込み、読み出し及び複製要求に対するビッドを行なう。ビッドは数値で表わされ、ビッド値が小さいほど、そのノードが要求を処理するビッドに勝つ可能性が高くなる。書き込みは、クライアント・アプリケーションからデジタルオブジェクトを取得し、クラスタのノード内のディスク上に取得したデジタルオブジェクトを格納する工程である。読み出しは、クライアント・アプリケーションからデジタルオブジェクトに関する一意識別子を受け取り、そのデジタルオブジェクトをクラスタ内のディスク上で検索し、検索したオブジェクトをクライアント・アプリケーションに返送する工程である。複製要求は、クラスタ内のノード上にデジタルオブジェクトのコピーを格納するのにかかるコストを決定する(replication factorが2であると仮定した場合、クラスタ内で2つのコピーが必要となる)。複製要求後のビッドの結果に、オブジェクトのコピーをさらに複製して格納する処理が含まれるものでもよい。クラスタにおける電力を節約するために、ノードがアイドル状態であるか否か、ノードの容量、ノードが直近数分間にどの程度ビジーであったか、いずれの種類のディスクドライブが利用可能か、及びそれらの現在の状態を考慮して、ビッディングを行なう。
最小ビッド値を持つノードが書き込み、読み出し又は複製のビッドに勝つ。複製ビッド値は、デジタルオブジェクトのコピーを現在の位置に保持するのにかかるコストを示す。ヘルス処理では、この複製ビッド値を用いて、コピーを別のノードに移動するべきか否かを判定する。基本的に、ヘルス処理では、各ノードに、「このデジタルオブジェクトのコピーを保有しているか」及び「その位置でコピーを保持するのにかかるコストはどのくらいか」を問い合わせる。各ノードは、問い合わせに応じて、複製ビッド値を計算して、ヘルス処理モジュールに計算した複製ビッド値を提示する。
アイドル・ノードは、自己のヘルス処理を中断し、また、(後述するように)自己のビッディング(入札)を変更して、ストリームの読み出し、書き込み、又は複製を実行する可能性が他のノードに勝ることがないようにすることにより、電力消費を抑制する。アイドル・ノードのオペレーティング・システムは、使用率の低下を認識し、CPUのクロックレート、さらには、電力消費を徐々に低下させる。プロセッサを高速のクロックレートで動かせば、高い性能が得られる。一方、同じプロセッサをより低い周波数(速度)で動かすと、発生される熱は小さく、電力消費も小さくなる。多くの場合、コア電圧も抑制することができ、これが、さらに、消費電力と熱発生の抑制につながる。これにより、ストレージ・サーバのバッテリー残量を節約し、プロセッサの寿命を延ばし、変速ファンにより発生するノイズを減少させることができる。多くのIntelチップ群では、SpeedStep(登録商標)手法を採用し、プロセッサの稼働率の低下にあわせて、CPUのクロックレートを自動的に低下させている。PowerNow!(登録商標)と称されるAMD社による同様の手法でも、同社のチップ群に対して同様の目的を達成している。
アイドル・ボリュームは、主に、ディスクI/Oを削除し、ディスクをスピンダウンすることにより、消費電力を抑制する。ノードがアイドル状態になっても、そのボリュームの一部又は全部はアクティブなままで、そのノードの未処理分のタスクに従事している場合がある。あるボリュームが直近のsleepAfter秒内に何のI/O動作も実施しなかった場合に限り、そのボリュームはアイドル状態に移行して、自己のディスクをスピンダウンさせる。
詳細な設計
以下の4つのクラスタ全体にわたる設定パラメータを用いる。sleepAfterは、アクティブ・ノード又はボリュームがアイドル状態になるまでの非活動時間の秒数である(デフォルトは2時間)。wakeAfterは、アイドル・ノードが再びアクティブ状態になるまでの非活動時間の秒数である(デフォルトは8時間)。idleCostは、アイドル・ノードの場合に読み出しビッド値及び書き込みビッド値に加算されるビッドプレミアムである(デフォルトは10)。replication factor(複製係数)は、ストレージ・クラスタ内で維持されるべき各デジタルオブジェクトのコピーの数である(デフォルトは2。ただし、各オブジェクトがこのパラメータに勝るメタデータを含有するものでもよい)。これらのパラメータは、ブートタイムに各ノードに送信されるクラスタ設定ファイルに格納される。
アーカイブを実行するアプリケーションでは、各ノードをarchive mode(アーカイブモード)設定にする。この設定(通常はバイナリ値)では、ノード上のすべてのボリュームに関して、100から読み出しビッド値を引くことにより、通常の書き込みビッド値を逆転させて、新しい書き込みビッド値を取得する。この設定を採用する場合には、1つのノードを可能な限り長くスリープ状態のままにしておくことができるように、そのノードの書き込み要求に対するビッドを変更する。実際のアーカイブ・アプリケーションは、非常に大きなクラスタの総計スループット容量と比較したら、書き込み及び読み出しのスループットに対して特に高い要求を持つわけではない。書き込みビッド及び複製ビッドを計算する通常のビッディング・アルゴリズムでは、スループットを最大にするように、クラスタ内のすべてのノードの負荷バランスを均一にするように試みるが、このようにバランスを取ることにより、ノードがスリープ状態になるのを妨げるという副次的な悪影響が生じる。クラスタ管理者が、一部又はすべてのノードをアーカイブモードに指定することを選択する可能性もある。一般に、スループット要求のピークに対処するのに十分な大きさのノードコア群はアーカイブモードには設定されない。単に容量を増大させるために追加された新しいノードをアーカイブノードに指定して、必要となるまでスリープ状態にしておくことができる。
このようなアプリケーションにおいて、archive mode(アーカイブモード)設定では、書き込み要求に対するノード上のすべてのボリュームの通常のビッディング(入札)パターンが基本的に逆転する。空又はほぼ空のボリュームでは、ストリームの書き込みを実行する可能性が減る一方で、容量いっぱいにより近いボリュームでは、容量いっぱいになるまで、どんどんデータを格納するように努める。1つのノードにおいては、他のもっと空に近いボリュームをアクティブにするように求める前に、容量いっぱいに近いボリュームを満杯にしようと試みる。この結果、新しい、比較的空に近いノードは、どの書き込みビッドにも負けて、クライアント・アプリケーションの書き込み要求を実施することなく、スリープ状態を続けることが、アーカイブ・アプリケーションでは望ましい。本明細書に記載する電力節約機構を前提に、このようなアーカイブの逆転ビッディングを考えると、クラスタに追加された新しいノード又はボリュームを、その容量が実際に必要になるまで、低電力モードでアイドル状態のままにしておくことができる。古いノード及びボリュームを、ほぼ満杯になるまで使い続け、ほぼ満杯になった時点で、これらのノード及びボリュームを休止させる。
電力を節約するために、各ノードはアイドル状態に移行可能である。クライアント・アプリケーションからの読み出し又は書き込み要求や他のノードからの同様の要求が直近のsleepAfter秒の期間にわたって無かったことをノードが検出すると、ノードはアイドル状態に入り、ノードのCPU使用率を低下させ、また、ノードのビッディング手法を変更して、電力を節約する。前者は、単に、アイドル状態の間、ノードのヘルス処理モジュールを休止させることにより実施される。CPU使用率を低下させることにより、CPU及びRAMのクロックレートを自動的に徐々に減少させて、使用電力を減らし、熱の発生を減らし、さらに、冷却ファンの運転速度を落として電力使用を減らすことが可能になるため、オペレーティング・システムとCPU自体の電力節約が可能になる。
前述したように、各ノードは、他のノードとビッドで競争する。後述するようにビッディングを変化させることは、アイドル・ノードが、アイドル・ノードからのファイルの移動を必要とする読み出し、書き込み、消去及び複製(すなわち、ディスクへのアクセスを必要とする動作)に関する将来のビッドに勝つ可能性を低下させることを目的としている。クラスタ内の他のノードが休止状態から復帰していれば、これらのノードが要求を処理する可能性が高いため、アイドル・ノードをスリープ状態のままにしておける。ただし、アイドル・ノードは、ノード間プロトコルメッセージに応答し、また、既にキューに入っている複製要求や自分自身のヘルス・プロセッサからのオブジェクトを読み出して整合性を検査する要求等の未処理分の作業を継続可能であることに留意されたい。
アイドル・ノードは、ヘルス処理が中断されており、ビッディングが「レイジー(lazy)」であるという意味でアイドル状態である。アイドル・ノードは、要求に応じて、プライマリ・アクセスノード(PAN)としての動作を継続し、他のノードからのノード間プロトコル・クエリーへの応答を継続する。アイドル・ノードは、これらのクエリーすべてに対して、(ディスクにアクセスするのではなく)メモリ内構造のみを用いて、応答する。PANとして外部要求を処理しても、ビッドに実際に勝たない限り、スリープ状態のノードが休止状態から復帰するわけではない(アクティブ状態に移行するわけではない)。ノードがアイドル状態の間は、書き込み、読み出し(消去を含む)及び複製要求に通常のノード間ビッディングは、以下のように変更される。writeBidで通常通りに計算を行ない、idleCostを加算する。readBidで通常通りに計算を行ない、idleCostを加算する。RepBidで通常通りに計算を行ない、idleCostを減算する。すなわち、既存の複製をアイドル・ノードから移すよりもアイドル・ノード上に保持する方がコストが少なくてすむ。
要するに、アイドル・ノードに対する読み書きはコストがかかるが、既存の複製をアイドル・ノードに保持するのにはコストがかからない。ここで留意するべきは、ヘルス処理は、writeBidを用いて、複製をアイドル・ノードに移すべきか否かを判定し、また、repBidを用いてアイドル・ノードから複製を移すべきか否かを判定するということである。(読み出し及び書き込みに対するビッドを単純に行なわないのではなく)ビッドを変更する理由は、一部のノードがスリープ状態の一方で、他のノードが休止状態から復帰していて、要求を処理することにより生じる渋滞(ネック)を避けるためである。このような状態がしばらく続くと、アイドル状態に対するプレミアム係数を加えても、活動中のノードから返信されてきたビッドがスリープ状態のノードから返信されてきたビッドよりも大きくなってしまう場合がある。
アイドル・ノードでも、ノード間プロトコル通信は継続され、そのボリュームはビジー状態の場合もある。外部クライアント・アプリケーションからの要求や内部の複製動作及びヘルス処理の反復がない場合には、アイドル・ノードは、他のノードからの所定の要求の処理を継続する。他のノードの一部がアクティブなままであれば、応答のためにディスク・ボリュームへのアクセスを要求するいくつかのノード間メッセージが出力される。このようなメッセージには以下のものが含まれる:
・余分な複製が存在する場合に他のノードにより送信されるtrimRequest
・動的消去に応じて他のノードがストリームを消去した後に送信されるdeleteQuery
・アンカーストリームのバージョン番号に関する問い合わせを行なうために他のノードにより送信されるversionQuery
・ステイル(stale)可変オブジェクトが存在することを判定した場合に他のノードにより送信されるversionNotice。
これらのノード間要求に対する処理が必要となるため、一般的には、アイドル・ノードは、自己のすべてのボリュームを直ちにスピンダウンさせることはできない。そのうち、クラスタ内の大部分又はすべての他のノードもアイドル状態になり、ノード間の動作も減少して最終的には終了する。このようになれば、アイドル・ノードのボリューム自体もアイドル状態にすることができる。
ノードの各ボリュームもアイドル状態になり得る。個々のボリュームは、独立に、ディスクをいつスピンダウンさせるべきかを判定する。この場合、ノードが全体として用いたものと同じ基準やパラメータを用いて判定を行なうことができる。sleepAfter秒の期間にわたって順序キュー上で何のディスク動作も実行されなかったことをあるボリュームが認識すると、そのボリュームはアイドル状態に移行して、ディスクをスピンダウンさせる。ノードの場合とは異なり、ボリュームの場合には、wakeAfter秒毎に休止状態から復帰させる必要はない。これは、ノード自体が休止状態から復帰し、そのボリュームに対して反復処理を開始し、自動的にディスクを再スピンアップさせるからである。ソリッドステート・ドライブは、物理的にはスピンダウンもスピンアップもしないが、アイドル状態への移行又はアイドル状態からの移行の一部として、「スピンダウン」コマンド及び「スピンアップ」コマンドを受け取り処理することが可能である(たとえば、ドライブが、単にコマンドを認識するものでもよい)。
ノードのうちの1つと接続される管理コンソールは、クラスターの状態を表示する。管理コンソールは、また、アイドル・ノードとアイドル・ボリュームの状態を表示する。他のノードの状態が基本的に、そのボリュームの状態の組み合わせから得られるのに対して、アイドル状態では、ノードとボリュームとは独立である。すなわち、あるノードがアイドルである一方で、そのすべてのボリュームがアクティブであるということもあり得る。また、短期間の間であれば、アクティブ・ノードのボリュームがアイドル状態ということもあり得る。アイドル状態を示すのに加えて、管理コンソールは、ランタイムにおけるクラスタ・ステータスページ上の設定ウィンドウからのsleepAfter及びwakeAfterパラメータに関するクラスター全体に及ぶ設定変更をサポートする。ストレージ・クラスタが完全にアイドル状態になると、最初の読み出し又は書き込み要求を処理するまでに異常に長い待ち時間が生じるが、その間に、1つ又は複数のボリュームが休止状態から復帰し、ハードディスクをスピンアップさせる。以降の処理では、上述したように、現在回転中のボリュームに復帰するため、追加の待ち時間は最初の要求でのみ生じる。
ソリッドステート・ドライブ(SSD)の場合には、回転媒体と比べて電力効率が高く、待ち時間は基本的にはアイドル状態でもアクティブ状態でも同じ、すなわち、物理的にはスピンダウンしないため、SSDを用いて、この追加の待ち時間を減少させる又はなくすことができる。ただし、SSDは、従来のディスクドライブと比較して、高価で、かつ、容量が小さい。このように特性が異なることに合わせて、SSDは、通常のドライブとは異なる方法でビッド値を計算するようにしてもよい。SSDは、一般に、writeBid及びreadBid値が小さく、これは、スループット率が高いことを示している。また、repBid値が大きく、これは、容量が小さくコストが高いことを示している。すなわち、SSDは、新しいデータを最初に格納するのには適しているが、できるだけ早く、データを他の低コストの媒体に複製することが望ましい。(ノードの他のドライブからのビッドと共に)SSDからのビッドも考慮して、ノード全体のビッド値が算出される。
さらに、SSDは、従来のボリュームのように、アイドルモードの場合にビッドを調整するということがない。この挙動のために、アイドル・クラスタ内のSSDボリュームは、SSDボリュームが格納しているデータの書き込み又は読み出しに関するビッドに勝つ可能性が最も高い。全体的な効果として、SSDを含有するアイドル・クラスタは、電力節約特性に悪影響を与えることなく、SSDを持たないアイドル・クラスタと比べて、非常に短い待ち時間で要求に応答することができる。
ヘルス処理
上述したように、各ノードのヘルス処理モジュールは、ノードのデジタルオブジェクトに対して反復処理を行なって、すべてのデジタルコンテンツの整合性を確認し、ストレージ・クラスタ内に各デジタルオブジェクトの適正な数のコピーが存在することを保証し、スループットを維持するためにオブジェクトを低コストのノードに移動させる。デジタルオブジェクトをクライアント・アプリケーションにより最初にストレージ・クラスタに書き込む際に、このオブジェクトに対するハッシュ値が算出され、ストレージ・クラスタを管理するソフトウェアにアクセス可能な、たとえば、ヘルス処理モジュールにアクセス可能な、記憶場所に格納される。任意の適当なハッシュ関数を用いることができるが、たとえば、MD5アルゴリズムはこの目的に適している。このような一意のハッシュ値を用いて、各デジタルオブジェクトの整合性を確認することができるが、このハッシュ値は、デジタルオブジェクトの検索に用いられる汎用一意識別子と必ずしも同じものでなくてもよいことに留意されたい。好適な実施形態において、整合性確認の目的で用いられるMD5は、汎用一意識別子とは異なる。クラスタ内の各ノードは、デフォルト状態で、書き込みも読み出しも進行中(「Posts」又は「Gets」)ではないと仮定して、整合性チェックを実施する。各ノードのヘルス処理モジュールは、ノードのすべてのデジタルコンテンツに対してウォークスルー(検証)を行ない、各デジタルオブジェクトの最初に格納されたMD5がそのデジタルオブジェクトに関して新たに算出されたMD5に等しいことを検証する。
各デジタルオブジェクトの適正な数のコピーがストレージ・クラスタ内に存在することを保証するために、ヘルス処理モジュールはマルチキャストを用いる。一実施形態において、整合性チェックの際にファイルにアクセスする毎に、ヘルス処理モジュールは、すべての他のノードに「デジタルオブジェクトを保有しているか?」及び「そのデジタルオブジェクトを格納し続けるコストはどのくらいか」を問い合わせるメッセージを送信する。このマルチキャスト・メッセージに対して、ストレージ・クラスタ内で特定ファイルのコピーがさらに必要か否かを知らせ、また、各ノード上にこのようなコピーを格納し続けるコストを知らせる応答を行なう(複製ビッド)。
ストレージ・クラスタ内にデジタルオブジェクトの十分な数のコピーが存在する場合には(デジタルオブジェクト自身の任意のメタデータにより変更されるクラスタパラメータのreplication factor(複製係数)により判断される)、ヘルス処理モジュールは、オブジェクトをより低コストのノードに移動させることを決定するようにしてもよい。このような移動は、高スループットを可能にする(データが分散され、より多くのノードがアクティブになる)一方で、アーカイブ・アプリケーションにとっては必ずしも最適とは限らない。アーカイブ・アプリケーションでは、ほんの数個のノードがアクティブでデータを格納するほうが電力をより節約できる。これら数個のノードが満杯になると、ドーマント(休眠)状態になり、電力を節約できる。上述したアーカイブモードのパラメータは、状況により用いることができる。
詳細なフロー図
図2は、通常動作時に、クライアント・アプリケーションがストレージ・クラスタにファイルを書き込む工程を説明するフロー図である。ステップ204で、任意の適当なクライアント・アプリケーション30が、ストレージ・クラスタ29内へのデジタルオブジェクト(たとえば、コンピュータファイル、デジタル画像、デジタル動画、ヘルスレコード等)の格納を要求する。クライアント・アプリケーションは、クラスタ内のノード51のうち1つのIPアドレスを発見又は取得して、格納処理を開始するプライマリ・アクセスノード(PAN)として、そのノードを選択する。一般的に、クライアント・アプリケーションは、次の書き込み要求に対して、直近に用いたノードにアクセスする。ステップ208で、クライアント・アプリケーションは、デジタルオブジェクトを格納する要求をPANに送信する(201)。一実施形態において、この要求は、ヘッダとデジタルオブジェクトのバイト数で示す長さを有するHTTP POST要求である。この要求に対するPANからクライアントへの応答は、
・Yes,PANはオブジェクトを格納可能
・No,オブジェクトを格納するのにより適したノードが存在
・No,クラスタ内のいずれのノードもオブジェクトを格納不可能、
のいずれか1つである。
ステップ212で、PANは、この要求を受信し、それに対する応答として、クラスタ内のすべてのノードに対して、格納対象のデジタルオブジェクトとそのバイトの大きさとを示し、オブジェクトの格納に用いられるノードを決定するために、マルチキャスト・メッセージを送信する。ステップ216で、(PANを含む)各ノードは、このデジタルオブジェクトに関する書き込みビッド(入札)値を算出して、PANに対して算出したビッド値を返信する。書き込みビッド値は、各ノード上にデジタルオブジェクトを格納するのにかかるコストを示すものであり、ここでは0〜100の値で示される。ビッド値が小さければ小さいほど、そのノード上へのオブジェクトの格納コストが安いことを示し、そのノードがビッドに勝つ可能性がより高いことを示す。各ノードにおける書き込みビッド値を算出するのに用いられる要因としては、そのノードがどの程度までいっぱいになっているか、デジタルオブジェクトの大きさ、ノードがアクティブかアイドルか、そのノードが直近にどの程度ビジーであったか、いずれの種類のボリュームが使用可能か(ソリッドステート・ドライブ、ディスクドライブ等)及びそれら個々のビッド値、並びにボリュームの状態(リタイア、アイドル等)が挙げられる。すなわち、ノードのビッド値は、ノードの各ボリュームの個々のビッド値から得られる。ノードは、各ボリュームに関して格納コストを計算し、最小値(最良値)を選択して、これを用いて、上述したような自身のノードレベルのビッド値を計算する。1つのノードが多くのドライブを備える場合には、各ドライブの容量が異なる、各ドライブが異なる状態にある等の理由により、各ドライブが異なるビッド値を持つものでもよい。
PANが最小ビッド値を持つノードを選択すると、制御フローはステップ220又はステップ232に進む。ステップ220で、PANが最小ビッド値を持つ場合には、PANは、クライアント・アプリケーションに対して「continue」メッセージを返信して応答する。これに応じて、ステップ224で、クライアントがPANにデジタルオブジェクトを送信し、ステップ228で、PANは、デジタルオブジェクトを格納し、UUID(汎用一意識別子)を計算し、クライアント・アプリケーションに計算したUUID識別子を返信する。
一方、PANがビッド(入札)に負けた場合には、ステップ232で、PANは、最小ビッド値を持つノード53に、クライアント・アプリケーションをリダイレクト(出力先変更)する(202)。これ以降は、リダイレクトされたノード53が要求を処理する。このノードをセカンダリ・アクセスノード(SAN)と称する。ステップ236でクライアント・アプリケーションが(ステップ208で送信したものと)同じ要求をSANに送信すると、ステップ240でノードSANがクライアント・アプリケーションに「continue」メッセージを返信して応答する。これに応じて、ステップ244で、クライアントがSANにデジタルオブジェクトを送信し、ステップ248で、SANは、デジタルオブジェクトを格納し、UUID(汎用一意識別子)を計算し、クライアント・アプリケーションに計算したUUID識別子を返信する。
同様に、クライアント・アプリケーションは、UUID識別子により識別された特定のデジタルオブジェクトを返送するようにストレージ・クラスタに要求することも可能である。これは、SCSP GET要求を用いて、実施可能である。クライアント・アプリケーションが、識別子をストレージ・クラスタのPANに提供する。PANは、クラスタ内のすべてのノードに対して、識別子と共にマルチキャスト・メッセージを送信する。各ノードは、読み出しビッド(デジタルオブジェクトを読み出してクライアント・アプリケーションに返送するコスト)を計算する。PANは最小値の読み出しビッドを有するノードを選択する。選択されたノードは、クライアント・アプリケーションにデジタルオブジェクトを返送する。当然のことながら、デジタルオブジェクトを格納していないノード(ノードのメモリ内のオブジェクトの一意識別子の存在により判定される)は、ビッドに参加しない。いずれのノードもPOST要求を実行してデジタルオブジェクトを自身のドライブの1つに書き込むことができるが、実際にそのデジタルオブジェクトを格納しているノードだけが、クライアント・アプリケーションからのGET要求に応答可能である。上述したのと同様な方法で、ノードが、(ヘルス処理の際に複製を目的として)ノード間書き込み及び読み出し要求を実施するようにしてもよい。
したがって、特定の動作によりノードが「ビジー」になり、アクティブ状態に移行する。ファイルの書き込みやファイルの検索等の外部クライアント要求に応答する、又は、(たとえば、ヘルス処理の一部として)ファイルを書き込む若しくは読み出すという他のノードからの要求に応答することにより、ノードはビジーになる(したがって、アイドル状態ではなくなる)。電力を節約するために、以下に記載する工程で、ノードが、アクティブ状態からアイドル状態に移行する。
図3は、アクティブ状態からアイドル状態へのノードの移行工程を説明するフロー図である。このフローは、ストレージ・クラスタ内の各ノードにより独立に実行される。最初に、ノードがビジー、すなわち、アクティブであると仮定する。すなわち、書き込み、読み出し及びヘルス処理動作(ノードに格納されている各ファイルの整合性をチェックする、クラスタ内にファイルの適正な数のコピーが存在するか否かを判定する、および、より低コストのノードにファイルを移す)を実行中であると仮定する。当然のことながら、壊れているファイルがあれば、それを削除して、追加のコピーをクラスタ内に格納する。同様に、ヘルス処理において、クラスタ内に適正な数のコピーが存在しないと判定されれば、この場合にも、追加のコピーを格納する必要がある。また、ヘルス処理で、より低コストのノードが見つかれば、(たとえ、十分な数のコピーが存在する場合でも)ファイルを他のノードに書き込むことも可能である。このような動作はすべてCPUを利用するものであり、ディスクへのアクセスを伴う。アクティブ・ノードは、クライアント・アプリケーションからの、又は、他のノードからの読み出し及び書き込み要求に対処する。
したがって、ステップ304で、このような動作のうちのいずれかにより、ノードは現在アクティブな状態である。ステップ308及びステップ312を並列に実施して、所定期間内に、読み出し若しくは書き込み動作又はディスクへの書き込みを伴うヘルス処理が行なわれたかを検証することが望ましい。ヘルス処理動作に関しては、ディスクへのファイルの書き込みを伴わない動作もあることに留意する必要がある。たとえば、整合性チェックの結果、壊れたオブジェクトが見つからなければ、追加のコピーを書き込む必要がない。同様に、クラスタ内に適正な数のコピーが存在する場合にも、追加のコピーを書き込む必要がない。また、ヘルス処理でより低コストのノードが見つからない場合には、ファイルのコピーを移す必要がない。ディスクへの書き込みを伴うヘルス処理動作の場合にはノードはアイドル状態に移行しないが、書き込みを伴わない動作の場合には移行が行なわれる。
上述したように、パラメータsleepAfterは、所望の時間に設定可能である。何らかの動作がなされれば、ノードはアクティブなまま維持される。しかし、所定期間にわたって、読み出し又は書き込み動作も書き込みを伴わないヘルス処理動作も実施されなければ、ステップ316で、ノードはアイドル状態に移行する。
ノードのアイドル状態への移行はさまざまな方法で実施可能である。移行によりすべてのヘルス処理動作を停止し、ごくわずかな実行中の処理だけが残ることが望ましい。オペレーティング・システムは、CPUが活動していない(又はほとんど活動していない)ことを認識すると、CPU及びRAM状のクロックレートを低下させる。ストレージ・クラスタ内における電力節約の利点の1つは、外部クライアント・アプリケーション要求、ヘルス処理動作及びクラスタ内でのマルチキャスト・メッセージの処理を除けば、他の実行中の処理が、たとえあったとしてもごく少数しかないということである。ノードがアイドル状態に移行して、すべてのヘルス処理が中断されると、ごくわずかな処理しか残らないため、オペレーティング・システムはクロックレートを低下させる可能性が高い。通常のコンピュータでは、常に多数の処理が実行されるため、オペレーティング・システムがクロックレートを低下させる可能性は低い。アイドル状態になれば、ノードは、「レイジー」にビッドを行なうため、読み出し、書き込み又は複製の実施をそのノードが要求される可能性は低い。この時点で、ノードはアイドルであるが、ノードの個々のボリュームは、自己のワークキューに応じて、未処理の仕事の処理を続ける。ボリュームは、個々に自己のワークキューを保持している。
ステップ320で、sleepAfter秒の間、所定ボリュームに関するワークキューが空であった(すなわち、ディスクの仕事がない)と判定されると、ステップ328で、このボリュームを同様にアイドル状態に移行させる。そのボリュームに関するワークキューが空でなければ、ノードはアイドルのまま、ステップ324でボリュームをビジー状態に維持する。任意の適当なコマンドを用いてディスクをスピンダウンさせることにより、ボリュームがアイドル状態に移行する。たとえば、ディスクのスピンダウンを制御する1つの方法は、内蔵Linuxオペレーティング・システムにインストールされるhdparmユーティリティを用いる方法である。対象となるコマンドラインオプションは、S、y、C、Y及びZである。オプション「S」は、ドライブの待機(スピンダウン)タイムアウトを設定する。ドライブはこの値を用いて、スピンドルモータをオフにして電力を節約するまでの(ディスク活動なしの)待機時間を決定する。ステップ320における判定を、オペレーティングシステムを用いて実行するようにしてもよいし、ハードウェア内で実行するようにしてもよい。ディスクがスピンダウンされて、ステップ332でディスクが停止し、さらに電力消費が抑制される。
図4は、アイドル・クラスタが読み出し要求を処理する工程を説明するフロー図である。ステップ404で、ストレージ・クラスタ全体がアイドルである、すなわち、クラスタの各コンピュータノードがアイドル状態である、と仮定する。さらに、すべてのヘルス処理動作が中断されている。
ステップ408で、一意識別子で識別された特定のデジタルオブジェクトを要求する外部読み出し要求を、プライマリ・アクセスノード(PAN)がクライアント・アプリケーションから受信する。ステップ412で、PANは、マルチキャスト・ビッディング処理を開始する。資格のある各ノードが、自分の読み出しビッドを計算して、この値をPANに返信する。ビッド値の計算には、各ノードのCPU及びRAMが用いられ、ディスクへのアクセスは必要としないため、電力が節約できる。ノードは、そのノードのボリュームの1つが実際に該当するデジタルオブジェクトを格納している場合に限り、ビッドを行なう。ノードは、この判定をノードのメモリ内に一意識別子が格納されているか否かにより行なう。ノードの読み出しビッド値の計算に用いられる要因としては、ノードがアクティブかアイドルか、そのノードが直近にどの程度ビジーであったか、いずれの種類のボリュームがオブジェクトを格納しているか及びそれら個々のビッド値、並びに、ボリュームの状態(リタイア、アイドル等)が挙げられる。前述したように、ノードがアイドルである場合には、IdleCost値がビッドに加算される。この加算値により、アイドル状態のノードがアイドル状態で保持される。すべてのノードがアイドルである場合には、1つのノードが休止状態から復帰して要求を実行する必要がある。
ステップ416で、PANは、最小ビッド値に基づいて、応答してきたノードのうち1つを選択する。この時点で、選択されたノード(及びすべての他のノード)は、まだアイドル状態である。ステップ420で、選択されたノードがアイドル状態からアクティブ状態に移行し、該当するデジタルオブジェクトを格納しているそのノードのボリュームもアクティブ状態に移行する。ノード及びボリュームがアクティブ状態に移行する際には、まず、デジタルオブジェクトを含むボリュームをスピンアップさせる。読み出しが完了するまで、新たにアクティブになったノードのヘルスプロセッサは起動しない。
ステップ424で、アクティブ・ノードが、GET要求を実行し、クライアント・アプリケーションに識別されたデジタルオブジェクトを返送する。この際、ステップ428で、選択されたノード及びボリュームはアクティブ状態を維持し、再びヘルス処理を実行するようにしてもよい。次に、ノードは、図3のフロー図の処理を開始して、ノードは最終的にはアイドル状態に戻る。
図5は、アイドル・クラスタが書き込み要求を処理する工程を説明するフロー図である。ステップ504で、ストレージ・クラスタ全体がアイドルである、すなわち、クラスタの各コンピュータノードがアイドル状態である、と仮定する。さらに、すべてのヘルス処理動作が中断されている。
ステップ508で、特定のデジタルオブジェクトをストレージ・クラスタに書き込むことを要求する外部書き込み要求を、プライマリ・アクセスノード(PAN)がクライアント・アプリケーションから受信する。ステップ512で、PANはマルチキャスト・ビッディング処理を開始する。クラスタの各ノードは、(たとえば、上述したように)自身の書き込みビッドを計算して、計算した値をPANに返信する。ビッド値の計算には、各ノードのCPU及びRAMが用いられ、ディスクへのアクセスは必要としないため、電力が節約できる。前述したように、ノードがアイドルである場合には、IdleCost値がビッドに加算される。この加算値により、アイドル状態のノードがアイドル状態で保持される。上述したように、主に、ノードとそのボリュームの使用率により、勝利するビッドが決まる。利用可能な記憶容量が大きいボリュームほど、未使用のメモリを多く残しているため、ビッドに勝つ可能性が高い。
ステップ516で、PANは、最小値の書き込みビッドに基づいて、ノードの1つを選択する。この時点で、選択されたノード(及びすべての他のノード)は、まだアイドル状態である。ステップ520で、選択されたノードがアイドル状態からアクティブ状態に移行し、選択されたノードの中で最も空に近いボリュームもアクティブ状態に移行する。選択されたボリュームは、そのボリュームのディスクをスピンアップさせる。
ステップ524で、アクティブ・ノードがPOST要求を実行して、デジタルオブジェクトを最も空に近いボリュームに書き込み、そのデジタルオブジェクトに対する一意識別子を算出し、算出した識別子をクライアント・アプリケーションに返信する。この際、ステップ528で、選択されたノード及びボリュームはアクティブ状態を維持し、再びヘルス処理を実行するようにしてもよい。ストレージ・クラスタ内でデジタルオブジェクトのコピーが通常は少なくとも2つ必要とされるため、ステップ532で、セカンダリ・アクセスノード(SAN)が、再びマルチキャスト・メッセージを送信して、デジタルオブジェクトのコピーを書き込む機会に関して、ビッディング処理を開始する。ステップ536で、あるノード(複製ピア)がこのビッドに勝つと、そのノード及びそのノードの中で最も空に近いボリュームがアクティブ状態に移行する。ステップ540で、他のノードへのオブジェクトの第2のコピーの書き込みを実行する。当然のことながら、ストレージ・クラスタのreplication factor(複製係数)が2よりも大きな値である場合には、この時点で、デジタルオブジェクトのコピーがさらに書き込まれる。次に、両方のノードが、図3のフロー図の処理を開始して、各ノードが最終的にはアイドル状態に戻る。
このように、図4及び図5は、クラスタ内のすべてのノードを休止状態から復帰させることなく、スリープ状態のクラスタが、クライアント・アプリケーションからの書き込み及び読み出し要求を実行する工程を示すものである。
実施例
sleepAfterが30分でwakeAfterが8時間であると仮定する。金曜日の午後5時半にすべての人が週末を過ごすために帰宅し、常にビジー状態であったストレージ・クラスタは、新しく実施するべき仕事がないことを認識する。すべてのノードが、自身のコンテンツに対して反復処理を続け、ヘルス処理チェックを実行して、クラスタ内のすべてのストリームが正常で、かつ、完全に複製されるまで、必要な複製を継続する。このような状態に到達すると、すべての複製動作が中止されるが、ノードは、反復処理とチェック、CPUサイクルの使用、及びハードディスクへのアクセスで未だビジー状態である。ある時点で、ノードの中の1つが、直近の30分間何の新しい仕事もしなかったことを認識すると、アイドル状態に移行して、自己のヘルス処理を中断し、「レイジー」にビッドを行なう(すなわち、デジタルオブジェクトの読み出し、書き込み又は複製を行なう可能性が下がるようにビッドを調整する)。このアイドル・ノードは、他のノードからの(コピーの数に関する要求を含む)ノード間プロトコル要求には応答し続けるが、このような要求は完全にメモリ内構造で実施され、ディスクへのアクセスを必要としない。新たにアイドル状態になったノードは、自己のヘルス処理を反復しないため、コピーの数に関するクエリーを他のノードに送信しない。ノードがアイドルになっても、通常、そのノードのボリュームは、自分のワークキューが空になるまで、しばらくの間アクティブなままである。最終的に、各ボリュームは、30分間にわたって自己のワークキューが空であったことを認識すると、アイドル状態になり、自己のディスクをスピンダウンさせる。
他のノードも、30分間にわたって何の新しい仕事もしなかったことを認識すると、アイドル状態になる。最終的に、クラスタ内のすべてのノードがアイドル状態になり、ノード間プロトコルメッセージの送信を中止する。スリープ状態のクラスタ内における唯一の動作は、まれに生じる「town crier」メッセージの送受信である。これにより、クラスタは、スリープ状態のノードの異常を検出することができる。
ここで、低頻度メンテナンス・アプリケーションが、クラスタに1つの新しいストリーム(デジタルオブジェクト)を毎時書き込む必要がある、と仮定する。クラスタ内のすべてのノードはアイドル状態でレイジーにビッドを行なっているため、これらのノードの中の1つが書き込みビッドに勝って、要求を処理するために、強制的に休止状態から復帰させられる。ここで、プライマリ・アクセスノード(PAN、クラスタからの読み書きを要求するクライアント・アプリケーションが最初にアクセスしたノード)が適当なSAN(セカンダリ・アクセスノード、プライマリ・ノードがクライアント要求に対処できない場合にクライアント要求を実際に処理するノード)を見つけるために、自己のディスクにアクセスして要求をリダイレクトする必要がないため、PANを休止状態から復帰させる必要はない、ことに留意するべきである。これは、ノードがアイドル状態でもPANの動作を実行可能なためである。replication factor(複製係数)=2(クラスタ内における各デジタルオブジェクトの要求コピー数)である場合、SANは、第2のノードを休止状態から復帰させて、複製ピアとして機能させる必要がある。両方のノードは、次の30分間、復帰した状態を維持し、30分後に、再びアイドル状態になる。
2つの活動中のノードがスリープ状態に戻る前に他の書き込み要求が(クライアント・アプリケーションから)届くと、他のノードはすべてスリープ状態のままなので、この2つのノードのうちの1つが、ほぼ確実にビッドに勝つ。したがって、(たとえば)10分毎に1回書き込みを行なうクライアント・アプリケーションは、毎回、同じ2つのノードと通信を行ない、クラスタの残りのノードは電力の節約を続ける。アプリケーションがこれら2つのノードのいずれにも格納されていないデジタルオブジェクトを読み出そうとした場合、クラスタは、そのデジタルオブジェクトの複製を見つけ、複製を保有しているノードを休止状態から復帰させて、そのデータを読み出す。アプリケーションがもっと頻繁な動作を開始する、又は、より高いスループットを必要とする場合には、より多くのノードが休止状態から復帰して、増大する要求の処理を行なう。
週末の間、別のアプリケーション動作がなければ、各ノードは、8時間毎に休止状態から復帰して、ヘルス処理を開始し、自己のストリームを検査して、必要があれば是正措置を実行する。これにより、各ノードは、スリープ状態の間に操作不能になったボリュームがあれば、これを検出することができる。何の是正措置も次の30分間必要なければ、ノードはアイドル状態に戻る。
コンピュータシステムの実施例
図6及び図6Bに、本発明の実施形態を実現するのに適したコンピュータシステム900を示す。図6Aに、コンピュータシステムの物理的形態の例を示す。当然のことながら、コンピュータシステムは、さまざまな物理的形態をとることができ、例としては、集積回路、プリント基板、(携帯電話やPDA等の)小型携帯用デバイス、パーソナルコンピュータやスーパーコンピュータが挙げられる。コンピュータシステム900は、モニタ902と、ディスプレイ904と、筺体906と、ディスクドライブ908と、キーボード910と、マウス912と、を備える。ディスク914は、コンピュータシステム900との間のデータ転送に用いられるコンピュータ読み取り可能な媒体である。
図6Bに、コンピュータシステム900のブロック図の例を示す。さまざまな種類のサブシステムがシステムバス920に連結される。プロセッサ922(中央処理装置すなわちCPUとも称する)は、メモリ924を含む記憶装置に接続される。メモリ924は、ランダムアクセスメモリ(RAM)とリードオンリメモリ(ROM)とを備える。当技術分野で周知のように、ROMは、CPUに対して一方向にデータと命令とを転送するように働き、一方、RAMは、通常、双方向にデータと命令を転送するのに用いられる。これら2種類のメモルは、いずれも、後述する任意の適当なコンピュータ読み取り可能な媒体を備えるものでもよい。固定ディスク926も、CPU922に双方向で結合され、付加的なデータ記憶容量を提供し、後述するコンピュータ読み取り可能な媒体のいずれかを備えるものでもよい。固定ディスク926は、プログラムやデータ等の格納に利用可能であり、通常、主記憶装置よりも低速の二次記憶媒体(たとえば、ハードディスク)である。固定ディスク926内に保持されている情報は、適切と思われる場合には、標準的な方法で仮想メモリとしてメモリ924内に組み込むことができる。リムーバブル・ディスク914は、後述するコンピュータ読み取り可能な媒体いずれの形態でもよい。
CPU922は、ディスプレイ904、キーボード910、マウス912及びスピーカー930等のさまざまな入出力装置にも接続されている。一般に、入出力装置として、ビデオディスプレイ、トラックボール、マウス、キーボード、マイク、タッチセンサ式ディスプレイ、トランスデューサ・カードリーダ、磁気又は紙テープ読み取り装置、タブレット、スタイラス、音声又は手書き認識装置、生体認証読み取り装置や他のコンピュータのいずれかを用いることができる。CPU922が、さらに、ネットワーク・インターフェース940を用いて、他のコンピュータネットワークや電気通信網に接続されるものでもよい。上述した処理工程を実行する際に、このようなネットワーク・インターフェースを用いて、CPUがネットワークから情報を受信したり、ネットワークに情報を出力したりすることができる。さらに、本発明の方法の実施形態は、CPU922が単独で実行することもできるし、あるいは、インターネット等のネットワークを介して、リモートCPUに処理の一部を分担させるようにしてもよい。
さらに、本発明の実施形態は、さまざまなコンピュータが実現する動作を実行するためのコンピュータコードを有するコンピュータ読み取り可能な媒体を備えるコンピュータ・ストレージ製品に関する。媒体及びコンピュータコードは、本発明の目的のために特別に設計及び構成されたものでもよいし、コンピュータソフトウェア分野の当業者に周知で利用可能な種類のものでもよい。コンピュータ読み取り可能な媒体の例としては、以下に限定されるものではないが、ハードディスク、フレキシブルディスク及び磁気テープ等の磁気媒体、CD−ROM及びホログラフィック装置等の光学媒体、フロプティカルディスク等の光磁気媒体、並びに、特定用途向け修正回路(ASIC)、プログラム可能な論理装置(PLD)並びにROM及びRAM装置等のプログラムコードを格納して実行するように特別に構成されたハードウェア装置が挙げられる。コンピュータコードの例としては、コンパイラにより生成されるもの等のマシンコードや、インタープリタを用いるコンピュータにより実行される上位コードを含むファイルが挙げられる。
以上、理解を助ける目的で、本発明を詳細に説明してきたが、添付の特許請求の範囲内で変形や変更が可能である。したがって、上述の実施形態は例示に過ぎず本発明を限定するものではない。本発明は、上述の詳細に何ら限定されるものではなく、以下の特許請求の範囲及びそれと等価の要旨の全範囲内で規定されるものである。

Claims (11)

  1. CPUと少なくとも個のディスクドライブとを備え、自己のオペレーティングシステムを実行するよう各コンピュータノードが相互に接続された複数のコンピュータノードからなるストレージ・クラスタにおいて、前記コンピュータノードと前記ディスクドライブとをアイドル状態にする方法であって、
    前記ストレージ・クラスタ内の各コンピュータノードに関して、第1の所定期間に、前記各コンピュータノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
    前記ストレージ・クラスタ内の各コンピュータノードに関して、第2の所定期間に、前記各コンピュータノードで、前記ストレージ・クラスタ内の他のコンピュータノードから書き込み要求又は読み出し要求が生じなかったことを判定する工程と、
    前記ストレージ・クラスタ内の各コンピュータノードに関して、前記第1の所定期間及び前記第2の所定期間に、前記クライアント要求も前記書き込み要求も生じなかったことを判定した場合に、前記各コンピュータノードを独立にアイドル状態に移行させる工程と、
    アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、を備える方法。
  2. 請求項1に記載の方法であって、
    前記第1の所定期間、前記第2の所定期間、及び前記第3の所定期間が同じ値である、方法。
  3. 請求項1に記載の方法であって、さらに、
    アイドル状態に移行させた各ディスクボリュームの回転を停止させる工程を備える、方法。
  4. 請求項1に記載の方法であって、
    前記ストレージ・クラスタは、ライトワンス・リードメニー(WORM)型の固定コンテンツ保存クラスタである、方法。
  5. 請求項1に記載の方法であって、さらに、
    各コンピュータノードのディスクボリューム上で実行されるすべてのファイル整合性チェックを停止することにより、前記各コンピュータノードをアイドル状態にする工程と、
    前記各コンピュータノードの前記オペレーティング・システムにより、前記各コンピュータノードの前記CPUのクロックレートを低下させる工程と、
    を備える方法。
  6. 請求項1に記載の方法であって、さらに、
    アイドル状態のコンピュータノードの各ディスクボリュームのスピンダウンを指示することにより、前記ディスクボリュームをアイドル状態にする工程を備える、方法。
  7. 請求項1に記載の方法であって、さらに、
    各コンピュータノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させるようにビッド値を計算することにより、前記コンピュータノードをアイドル状態にする工程を備える、方法。
  8. 複数の相互に接続されるコンピュータノードを有するストレージ・クラスタ内でコンピュータノードをアイドル状態にする方法であって、
    前記コンピュータノードがアクティブ状態のときに、前記コンピュータノードにより、前記ストレージ・クラスタ外部のクライアント・アプリケーションからのクライアント要求を処理する工程と、
    第1の所定期間に、前記コンピュータノードで、外部クライアント・アプリケーションからのクライアント要求が生じなかったことを判定する工程と、
    第2の所定期間に、前記コンピュータノードで、前記ストレージ・クラスタ内の他のコンピュータノードからの読み出し要求又は書き込み要求が生じなかったことを判定する工程と、
    前記ストレージ・クラスタ内の前記他のコンピュータノードとは独立に、前記コンピュータノードをアイドル状態に移行させる工程と、
    前記アイドル状態のコンピュータノードの各ディスクボリュームに対するワークキューが、第3の所定期間にわたって空であったことを判定した場合に、前記各ディスクボリュームをアイドル状態に移行させる工程と、
    を備える方法。
  9. 請求項8に記載の方法であって、さらに、
    前記第1の所定期間に、前記他のコンピュータノードの各々で、外部クライアント・アプリケーションからのクライアント要求が生じなかったことが判定され、かつ、前記第2の所定期間に、前記他のコンピュータノードの各々で、前記ストレージ・クラスタ内の他のコンピュータノードから読み出し要求又は書き込み要求が生じなかったことを判定した場合に、前記ストレージ・クラスタ内の前記他のコンピュータノードの各々に対して、前記移行工程を実施する工程を備える、方法。
  10. 請求項1に記載の方法であって、さらに、
    前記コンピュータノードのうちハードディスクドライブを備える第1のコンピュータノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させるように、前記コンピュータノードのうちの前記第1のコンピュータノードに関するビッド値を計算する工程と、
    前記コンピュータノードのうちソリッドステート・ドライブを備える第2のコンピュータノードが外部読み出し又は書き込みのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を増大させるように、前記コンピュータノードのうちの前記第2のコンピュータノードに関するビッド値を計算する工程と、を備える方法。
  11. 請求項8に記載の方法であって、さらに、
    ディスクドライブを備える各ディスク・ボリュームに対して、書き込み又は読み出しビッド値を調整して、前記ディスクドライブを備えるボリュームが、外部書き込み又は読み出しのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を減少させる工程と、
    ソリッドステート・ドライブを備える各ディスク・ボリュームに対して、書き込み又は読み出しビッド値を調整して、前記ソリッドステート・ドライブを備えるボリュームが、外部書き込み又は読み出しのビッドに関して、アクティブ・コンピュータノードとの競争に勝つ可能性を増大させる工程と、を備える方法。
JP2012521709A 2009-07-20 2010-07-19 ストレージ・クラスタにおける適応的な電力節約の方法 Active JP5577404B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US22677409P 2009-07-20 2009-07-20
US61/226,774 2009-07-20
PCT/US2010/042478 WO2011011336A2 (en) 2009-07-20 2010-07-19 Adaptive power conservation in storage clusters

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014106247A Division JP5961218B2 (ja) 2009-07-20 2014-05-22 ストレージ・クラスタにおける適応的な電力節約の方法

Publications (2)

Publication Number Publication Date
JP2012533832A JP2012533832A (ja) 2012-12-27
JP5577404B2 true JP5577404B2 (ja) 2014-08-20

Family

ID=43499613

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2012521709A Active JP5577404B2 (ja) 2009-07-20 2010-07-19 ストレージ・クラスタにおける適応的な電力節約の方法
JP2014106247A Active JP5961218B2 (ja) 2009-07-20 2014-05-22 ストレージ・クラスタにおける適応的な電力節約の方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014106247A Active JP5961218B2 (ja) 2009-07-20 2014-05-22 ストレージ・クラスタにおける適応的な電力節約の方法

Country Status (7)

Country Link
US (4) US8726053B2 (ja)
EP (1) EP2457140A4 (ja)
JP (2) JP5577404B2 (ja)
CN (2) CN104750434B (ja)
AU (1) AU2010276389B2 (ja)
CA (1) CA2768709A1 (ja)
WO (1) WO2011011336A2 (ja)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8187100B1 (en) * 2007-03-02 2012-05-29 Dp Technologies, Inc. Shared execution of hybrid states
US8678925B1 (en) 2008-06-11 2014-03-25 Dp Technologies, Inc. Method and apparatus to provide a dice application
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
JP5577404B2 (ja) * 2009-07-20 2014-08-20 カリンゴ・インコーポレーテッド ストレージ・クラスタにおける適応的な電力節約の方法
WO2013112141A1 (en) * 2012-01-25 2013-08-01 Hewlett-Packard Development Company, L.P. Storage system device management
US8950009B2 (en) 2012-03-30 2015-02-03 Commvault Systems, Inc. Information management of data associated with multiple cloud services
US9262496B2 (en) 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
US8799746B2 (en) 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters
US8762353B2 (en) 2012-06-13 2014-06-24 Caringo, Inc. Elimination of duplicate objects in storage clusters
US9104560B2 (en) * 2012-06-13 2015-08-11 Caringo, Inc. Two level addressing in storage clusters
US10346259B2 (en) 2012-12-28 2019-07-09 Commvault Systems, Inc. Data recovery using a cloud-based remote data recovery center
WO2014121194A1 (en) 2013-02-01 2014-08-07 Introspective Power, Inc. Generic distributed processing for multi-agent systems
US8868954B1 (en) 2013-05-21 2014-10-21 Microsoft Corporation Low cost storage for rarely read data
US9164805B2 (en) * 2013-11-14 2015-10-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing workload distribution to reduce acoustic levels
US10061628B2 (en) * 2014-03-13 2018-08-28 Open Text Sa Ulc System and method for data access and replication in a distributed environment utilizing data derived from data access within the distributed environment
US9286056B2 (en) 2014-05-19 2016-03-15 International Business Machines Corporation Reducing storage facility code load suspend rate by redundancy check
US9541988B2 (en) 2014-09-22 2017-01-10 Western Digital Technologies, Inc. Data storage devices with performance-aware power capping
US10146293B2 (en) 2014-09-22 2018-12-04 Western Digital Technologies, Inc. Performance-aware power capping control of data storage devices
US9965206B2 (en) 2015-10-23 2018-05-08 Western Digital Technologies, Inc. Enhanced queue management for power control of data storage device
US10346044B2 (en) * 2016-04-14 2019-07-09 Western Digital Technologies, Inc. Preloading of directory data in data storage devices
EP3244590B1 (en) * 2016-05-13 2018-09-26 Koninklijke KPN N.V. Network node, endpoint node and method of receiving an interest message
US20170371783A1 (en) * 2016-06-24 2017-12-28 Qualcomm Incorporated Self-aware, peer-to-peer cache transfers between local, shared cache memories in a multi-processor system
KR101919666B1 (ko) * 2016-11-16 2018-11-16 한양대학교 에리카산학협력단 액티브 그룹을 이용한 분산 파일 시스템 및 그 방법
CN108228080B (zh) 2016-12-21 2021-07-09 伊姆西Ip控股有限责任公司 用于控制硬盘的方法和电子设备
US11108858B2 (en) 2017-03-28 2021-08-31 Commvault Systems, Inc. Archiving mail servers via a simple mail transfer protocol (SMTP) server
US11074138B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Multi-streaming backup operations for mailboxes
US11294786B2 (en) 2017-03-31 2022-04-05 Commvault Systems, Inc. Management of internet of things devices
US10552294B2 (en) 2017-03-31 2020-02-04 Commvault Systems, Inc. Management of internet of things devices
US11221939B2 (en) 2017-03-31 2022-01-11 Commvault Systems, Inc. Managing data from internet of things devices in a vehicle
US20180329476A1 (en) * 2017-05-09 2018-11-15 Synology Incorporated Method for performing destination power management with aid of source data statistics in storage system, and associated apparatus
US10700711B1 (en) 2017-11-03 2020-06-30 Caringo Inc. Multi-part upload and editing of erasure-coded objects
US12388909B2 (en) * 2017-11-21 2025-08-12 Koninklijke Kpn N.V. Auctioning the serving and/or caching of a data object
US10891198B2 (en) 2018-07-30 2021-01-12 Commvault Systems, Inc. Storing data to cloud libraries in cloud native formats
US10768971B2 (en) 2019-01-30 2020-09-08 Commvault Systems, Inc. Cross-hypervisor live mount of backed up virtual machine data
US10860387B2 (en) 2019-03-15 2020-12-08 Red Hat, Inc. Dynamic distributed work allocation
US12481538B2 (en) 2019-04-30 2025-11-25 Commvault Systems, Inc. Holistically protecting serverless applications based on detecting in-cloud deployments
US11494273B2 (en) 2019-04-30 2022-11-08 Commvault Systems, Inc. Holistically protecting serverless applications across one or more cloud computing environments
US11269734B2 (en) 2019-06-17 2022-03-08 Commvault Systems, Inc. Data storage management system for multi-cloud protection, recovery, and migration of databases-as-a-service and/or serverless database management systems
US20210011816A1 (en) 2019-07-10 2021-01-14 Commvault Systems, Inc. Preparing containerized applications for backup using a backup services container in a container-orchestration pod
US11467753B2 (en) 2020-02-14 2022-10-11 Commvault Systems, Inc. On-demand restore of virtual machine data
US11422900B2 (en) 2020-03-02 2022-08-23 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11321188B2 (en) 2020-03-02 2022-05-03 Commvault Systems, Inc. Platform-agnostic containerized application data protection
US11442768B2 (en) 2020-03-12 2022-09-13 Commvault Systems, Inc. Cross-hypervisor live recovery of virtual machines
US11748143B2 (en) 2020-05-15 2023-09-05 Commvault Systems, Inc. Live mount of virtual machines in a public cloud computing environment
CN111786854B (zh) * 2020-06-30 2022-08-16 曙光信息产业(北京)有限公司 网卡测试方法、装置、电子设备及可读存储介质
CN111857323A (zh) * 2020-06-30 2020-10-30 苏州浪潮智能科技有限公司 一种降低计算集群的功耗的方法、系统、设备及存储介质
US12130708B2 (en) 2020-07-10 2024-10-29 Commvault Systems, Inc. Cloud-based air-gapped data storage management system
US11789830B2 (en) 2020-09-22 2023-10-17 Commvault Systems, Inc. Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
US11314687B2 (en) 2020-09-24 2022-04-26 Commvault Systems, Inc. Container data mover for migrating data between distributed data storage systems integrated with application orchestrators
US11604706B2 (en) 2021-02-02 2023-03-14 Commvault Systems, Inc. Back up and restore related data on different cloud storage tiers
US12032855B2 (en) 2021-08-06 2024-07-09 Commvault Systems, Inc. Using an application orchestrator computing environment for automatically scaled deployment of data protection resources needed for data in a production cluster distinct from the application orchestrator or in another application orchestrator computing environment
CN114816774B (zh) * 2022-06-30 2022-09-27 南昌大学 一种弹性的分布式强一致性方法及系统
US12135618B2 (en) 2022-07-11 2024-11-05 Commvault Systems, Inc. Protecting configuration data in a clustered container system
US20250165355A1 (en) 2023-11-20 2025-05-22 Commvault Systems, Inc. Backup from a kubernetes cluster using lightweight on-demand in-cluster resources

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247653A (en) 1990-08-17 1993-09-21 Seagate Technology, Inc. Adaptive segment control and method for simulating a multi-segment cache
US5517649A (en) * 1994-04-19 1996-05-14 Maxtor Corporation Adaptive power management for hard disk drives
JPH0991254A (ja) * 1995-09-20 1997-04-04 Nec Corp 消費電力低減制御システム及びその方法
US6230196B1 (en) 1997-11-12 2001-05-08 International Business Machines Corporation Generation of smart HTML anchors in dynamic web page creation
JP2000112760A (ja) * 1998-10-02 2000-04-21 Fujitsu Ltd オブジェクト連携装置
US7266706B2 (en) 1999-03-03 2007-09-04 Yottayotta, Inc. Methods and systems for implementing shared disk array management functions
US6952737B1 (en) 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7228441B2 (en) * 2000-09-27 2007-06-05 Huron Ip Llc Multi-server and multi-CPU power management system and method
US7552350B2 (en) * 2000-09-27 2009-06-23 Huron Ip Llc System and method for activity or event base dynamic energy conserving server reconfiguration
US20030079151A1 (en) * 2001-10-18 2003-04-24 International Business Machines Corporation Energy-aware workload distribution
WO2003077111A1 (en) * 2002-03-13 2003-09-18 Fujitsu Limited Controller for raid device
US9229646B2 (en) 2004-02-26 2016-01-05 Emc Corporation Methods and apparatus for increasing data storage capacity
JP4824374B2 (ja) 2005-09-20 2011-11-30 株式会社日立製作所 ディスクの回転を制御するシステム
JP4634268B2 (ja) 2005-10-03 2011-02-16 株式会社日立製作所 ストレージシステムの省電力化方法及びストレージシステム
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
JP2007122108A (ja) 2005-10-25 2007-05-17 Hitachi Ltd セルフチェック機能を有するディスクドライブ装置を用いたストレージシステムの制御
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
US7529972B2 (en) 2006-01-03 2009-05-05 Emc Corporation Methods and apparatus for reconfiguring a storage system
US7443627B1 (en) * 2006-03-07 2008-10-28 Marvell International Ltd. Lowest power mode for a mobile drive
JP4964671B2 (ja) * 2007-05-21 2012-07-04 株式会社日立製作所 計算機システムの電力制御方法、プログラム、及び計算機システム
US20090073481A1 (en) 2007-09-17 2009-03-19 Ferlitsch Andrew R Method and system for external preprocessing of service requests directed to a sleeping node
JP2009080674A (ja) * 2007-09-26 2009-04-16 Hitachi Ltd 制御装置、アクセス制御方法、及びストレージノード
US7818509B2 (en) 2007-10-31 2010-10-19 International Business Machines Corporation Combined response cancellation for load command
JP2009129164A (ja) 2007-11-22 2009-06-11 Nec Corp 分散ストレージでのファイル配置およびアクセス方法、その装置及びそのプログラム
JP4620722B2 (ja) * 2007-12-26 2011-01-26 富士通株式会社 データ配置制御プログラム、データ配置制御装置、データ配置制御方法、およびマルチノードストレージシステム
US8099550B1 (en) 2007-12-31 2012-01-17 Emc Corporation System and method for single instance storage
JP5180613B2 (ja) * 2008-02-19 2013-04-10 キヤノン株式会社 情報処理装置及びその制御方法
US8448004B2 (en) * 2008-10-27 2013-05-21 Netapp, Inc. Power savings using dynamic storage cluster membership
WO2010089802A1 (en) 2009-02-06 2010-08-12 Hitachi, Ltd. Information processing system and program for controlling the information processing system
US20100313044A1 (en) 2009-06-03 2010-12-09 Microsoft Corporation Storage array power management through i/o redirection
US8954768B2 (en) 2009-06-12 2015-02-10 International Business Machines Corporation Storage system power management
JP5577404B2 (ja) 2009-07-20 2014-08-20 カリンゴ・インコーポレーテッド ストレージ・クラスタにおける適応的な電力節約の方法

Also Published As

Publication number Publication date
CN102549524A (zh) 2012-07-04
US20140013134A1 (en) 2014-01-09
JP5961218B2 (ja) 2016-08-02
AU2010276389A2 (en) 2012-03-08
JP2012533832A (ja) 2012-12-27
JP2014194803A (ja) 2014-10-09
US20120278549A1 (en) 2012-11-01
US8566626B2 (en) 2013-10-22
US20150127967A1 (en) 2015-05-07
US9348408B2 (en) 2016-05-24
US8938633B2 (en) 2015-01-20
US20110040568A1 (en) 2011-02-17
EP2457140A2 (en) 2012-05-30
US8726053B2 (en) 2014-05-13
EP2457140A4 (en) 2017-08-23
WO2011011336A2 (en) 2011-01-27
AU2010276389B2 (en) 2016-03-03
CA2768709A1 (en) 2011-01-27
CN104750434B (zh) 2018-01-26
CN102549524B (zh) 2015-05-06
AU2010276389A1 (en) 2012-02-16
WO2011011336A3 (en) 2011-05-05
CN104750434A (zh) 2015-07-01

Similar Documents

Publication Publication Date Title
JP5577404B2 (ja) ストレージ・クラスタにおける適応的な電力節約の方法
CN101470518B (zh) 用于不依赖于操作系统的服务的方法和装置
EP1605455B1 (en) RAID with high power and low power disk drives
US7174471B2 (en) System and method for adjusting I/O processor frequency in response to determining that a power set point for a storage device has not been reached
US7516346B2 (en) System and method for dynamically changing the power mode of storage disks based on redundancy and system load
CN101067759B (zh) 信息处理系统中的功率分配管理
TWI390411B (zh) 具有高功率模式和低功率模式的處理裝置
US7093149B2 (en) Tiered secondary memory architecture to reduce power consumption in a portable computer system
CN111104048B (zh) 一种数据处理方法及分布式存储系统
US12248354B2 (en) Autonomous power management for sustainable storage
CN116126127B (zh) 一种供电方法、硬盘及计算设备
JP4818751B2 (ja) ストレージシステム
US7636861B2 (en) Bus technique for controlling power states of blades in a blade enclosure
TWI501588B (zh) 使用輔助處理器存取本地儲存裝置之技術
CN112612414B (zh) 基于微处理器系统调度实现冷数据分布式存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140522

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140624

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140707

R150 Certificate of patent or registration of utility model

Ref document number: 5577404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250