JP2001519563A - ディスクドライブアレイおよびデータ格納方法 - Google Patents

ディスクドライブアレイおよびデータ格納方法

Info

Publication number
JP2001519563A
JP2001519563A JP2000515228A JP2000515228A JP2001519563A JP 2001519563 A JP2001519563 A JP 2001519563A JP 2000515228 A JP2000515228 A JP 2000515228A JP 2000515228 A JP2000515228 A JP 2000515228A JP 2001519563 A JP2001519563 A JP 2001519563A
Authority
JP
Japan
Prior art keywords
data
disk drive
block
disk
parity
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.)
Pending
Application number
JP2000515228A
Other languages
English (en)
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2001519563A publication Critical patent/JP2001519563A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2061Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring combined with de-clustering of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/103Hybrid, i.e. RAID systems with parity comprising a mix of RAID types

Abstract

(57)【要約】 データ記憶装置用ハイブリッドデータ再構成システム(600)および方法(630/660)。重要データ(614)がより冗長性の高い方式(618)に従って格納されるように、2つ以上の冗長方式(618/620)の中の1つの冗長方式に従ってデータ(614/616)が選択的に格納される。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明はデータ記憶装置に関する。特に、本発明はディスクドライブ、テープ
ドライブ、もしくは光ドライブ等のデータ記憶装置のデータ再構成に関する。
【0002】 (発明の背景) 電子計算機の産業において、2つの従来のコンピュータモデルがよく知られて
いる。第1はメインフレーム計算モデルであり第2はクラスター計算モデルであ
る。
【0003】 メインフレーム計算モデルのエンドユーザに対する従来の進展方法は初期シス
テムを購入し、付加処理能力が必要となる時に初期システムをより大きいシステ
ムと置換することである。このサイクルのさまざまな点において、癒しがたい不
連続性が生じる。例えば、初期システムのアーキテクチュアよりも大きくなると
、第2のグレードアップメインフレームシステムを購入する時に、ユーザは1つ
のオペレーティングシステムからもう1つのオペレーティングシステムへ、さら
には1つのベンダーの所有権アーキテクチュアからもう1つのベンダーのそれへ
と変換を要することがある。これらの変更はグレードアップシステムを購入する
機関にとって金銭的にも従業員の時間にとっても莫大なコストを伴う。したがっ
て、多くの場合、このような変換は回避される。
【0004】 さらに、メインフレームモデルはコンピュータ装置の残存価値が低い。したが
って、システムを置換した結果初期システムをグレードアップシステムと置換す
る時に投資資本は実質的に完全に消失してしまう。さらに、大型グレードアップ
システムは小型システムよりも少量で販売される傾向がある。したがって、典型
的に新たなシステムグレードアップのたびに前のシステムよりも計算コストが高
くなる。
【0005】 クラスター計算モデルでは、メインフレームコンピュータはより小型の標準ベ
ースサーバのクラスタにより置換される。それによりメインフレームモデルに優
る多くの利点が提供される。クラスタは単なる単一システムとして開始できるた
め、クラスタモデルへ入る閾値は低い。さらに、このような小型システムは典型
的に大量販売されるため、計算コストは低くなる。また、このようなシステムは
所有権アーキテクチュアに依存しない点において標準ベースである。それにより
多数のソースから装置を利用することができユーザは後の購入のたびに最善の代
替策を選択することができる。
【0006】 さらに、他の利点がクラスター計算モデルにより提供される。現在およびすぐ
近い将来のニーズを満たすのに必要な量の付加資源を加えるだけでグレードアッ
プコストをより精密に管理することができる。さらに、ユーザは新しいアーキテ
クチュアへの移行や変換に無関係に広範なベンダーから選択することができる。
同様に、正しいアーキテクチュアによりもう1つのオペレーティングシステムへ
変換する必要は全くない。
【0007】 それでも、クラスター計算モデルには欠点および問題点がある。例えば、単一
メインフレームが実施できるワークロードをクラスタが引き受けられるようにデ
ータを共有する能力をクラスタシステムに与えようとするとクラスター計算モデ
ルは困難に遭遇する。例えば、クラスタ内の各サーバが同じデータに対するトラ
ンザクションを処理する必要があるクラスタモデルを実現するのは現在非常に困
難である。このような応用のいくつかの例として航空機予約システムや金融機関
の完全な取引明細が含まれる。
【0008】 クラスター計算モデルの第2の欠点はメインフレーム環境内に存在する記憶装
置およびデータの管理において広範囲にわたる経験不足に関係している。このよ
うな経験から管理ソフトウェアが展開されているが標準ベースクラスタ環境では
まだ利用できない。
【0009】 従来のディスクドライブはオペレーティングシステム情報の損失に関連する欠
点も含んでいる。例えば、従来のディスクドライブはデータの数百万のセクター
を含んでいる。任意数の異なる理由から、1つ以上のセクターが読出し不能すな
わち改変してしまうことがある。読出し不能となるセクターがオペレーティング
システムにより特殊目的に対して使用されるものであれば、ディスクドライブの
残り全体を読み出しできる場合であっても、ディスクドライブ内の全体ディスク
スペースが読出し不能となってしまうことがある。例えば、パーソナルコンピュ
ータ環境では、マスターブートレコード、パーティションブートレコード、ファ
イル属性テーブル(FAT)もしくはルートディレクトリが読出し不能すなわち
改変してしまうことがある。それによりディスクドライブの全体内容を本質的に
消失してしまうことがある。従来のオペレーティングシステムにはこのような重
要なファイルシステム管理データの消失に直面して読出し可能な全データを回復
する能力はない。それはユーザに対する途方もない損失を表わし、消失するデー
タはオペレーティングシステム関連であるため特に不利であり、読出しできない
ディスクドライブ上に格納された実際のデータを処置することはほとんどもしく
は全くできない。
【0010】 今日、このような状況にあるデータを回復するためのいかなるサービスも典型
的に非常に厄介である。このようなサービスは一般的にディスクドライブをその
動作環境から物理的に動かしてこのようなデータの回復サービスに従事する会社
やサービスプロバイダへ送らなければならない。このサービスには成功の保証は
なく、この目的のためにディスクドライブを手放すことに伴うプライバシーの侵
害に対する保護もない。
【0011】 本発明はこれらのおよびその他の問題に取り組むものであり、従来技術に優る
利点を提供する。
【0012】 本発明はこれらのおよびその他の問題に取り組むものであり、従来技術に優る
利点を提供する。
【0013】 (発明の概要) 本発明はデータ記憶装置用ハイブリッドデータ再構成システムおよび方法に向
けられている。重要データがより高い冗長性を有する方式に従って格納されるよ
うに2つ以上の冗長方式の中の1つに従ってデータが選択的に格納される。
【0014】 図1は本発明の1つの特徴に従ったデータ記憶システム100のブロック図で
ある。システム100はオブジェクト指向データ記憶装置110,112、ファ
イルサーバ114、リクエスタ116,118,120、およびインターコネク
ト122を含む。システム100は多くの異なるベンダーからの装置およびソフ
トウェアにより構成することができ、ユーザにとっては単一の大型コンピュータ
システムに見えるネットワーク付属記憶装置構成を例示している。
【0015】 オブジェクト指向記憶装置110−112はシステム100のデータ記憶機能
を実施する記憶要素である。記憶装置110−112は好ましくはディスクドラ
イブ、低廉なディスクの冗長アレイ(RAID)サブシステム、テープドライブ
、テープライブラリ、光ドライブ、ジュークボックスもしくは任意他の共有でき
る記憶装置を含んでいる。記憶装置110,112にはそこへアクセスするリク
エスタ116,118および120への入出力(I/O)チャネルアタッチメン
トも設けられている。
【0016】 リクエスタ116,118および120は装置110および112に格納され
た情報を共有するサーバやクライアント等の要素である。リクエスタ116−1
20は好ましくは記憶装置110,112上の情報に直接アクセスするようにも
構成される。
【0017】 ファイルサーバ114は要求確認や資源配置等の管理およびセキュリティ機能
を実施する。より小さいシステムでは、好ましくは専用ファイルサーバは使用さ
れない。替わりに、1つのリクエスタ116−120がファイルサーバ114に
より実施されるシステム100の操作を監督する機能および責任を引き受ける。
さらに、ファイルサーバ114から提供されるセキュリティおよび機能を必要と
しないかもしくは所望しない場合、あるいは性能をオーバライドする必要性によ
りリクエスタ116−120のクラスタが記憶装置110,112と直接話す必
要がある場合には、ファイルサーバ114はシステム100から省かれる。
【0018】 一実施例では、インターコネクト122はネットワーク付属記憶システム10
0内の全要素がそれを介して互いに通信する物理的インフラストラクチュアであ
る。
【0019】 動作に関して、システム100がパワーアップすると、全装置が好ましくは互
いにもしくは、ファイルサーバ114やインターコネクト122等の、基準共通
点に対してそれら自体を識別する。例えば、ファイバーチャネルベースシステム
100では、オブジェクト指向記憶装置110,112およびリクエスタ116
−120はシステムのファブリックにログオンする。このようなインプリメンテ
ーションでは、操作構成を決定したいシステム100の任意の要素がファブリッ
クサービスを使用して他の全ての要素を識別することができる。ファイルサーバ
114からリクエスタ116−120はそれによりアクセスを有することができ
る記憶装置110,112の存在を知る。同様に、記憶装置110,112はシ
ステム100内の他の装置を突きとめるのに必要な情報の場所および、バックア
ップ等の、管理サービスを呼び出すのに使用しなければならないアドレスを知る
。同様に、一実施例では、ファイルサーバ114はファブリックサービスから記
憶装置110,112の存在を知る。
【0020】 特定のシステム100のセキュリティ活動に応じて、リクエスタ116−12
0もしくはそのいずれかがシステム100のある要素へのアクセスを拒絶するこ
とができる。各リクエスタに利用できる記憶装置110,112のセットから、
そのリクエスタは次にファイル、データベース、およびそこに利用できるフリー
スペースを識別することができる。
【0021】 同時に、システム100内の各要素は好ましくはそれに関連する任意の特別な
考慮すべき事柄をファイルサーバ114に対して識別する。例えば、任意の記憶
装置レベルサービス属性を一度ファイルサーバ114に知らせ、次にシステム1
00内の他の全ての要素がこれらの属性をファイルサーバ114から知ることが
できる。例えば、特定のリクエスタ116−120は始動に続いて付加記憶装置
の導入を知らせて欲しいことがある。このような属性は、例えば、リクエスタが
ファイルサーバ114にログオンする場合に与えることができる。次にファイル
サーバ114はシステム100に新しい記憶装置が付加される時は常にその特定
のリクエスタ116−120に自動的にアドバイスする。典型的には、次にファ
イルサーバ114は記憶装置がRAID5であるか、鏡映されているかといった
他の重要な特性もリクエスタに通す。
【0022】 本発明の1つの特徴に従って、記憶装置110,112上に格納される情報は
図2に示すシステムにより格納される。各記憶装置110,112は好ましくは
データがセクターの順序付けられたシーケンスとしてではなくオブジェクト12
4−126として構成されアクセスされるモードで動作するオブジェクト指向装
置である。オブジェクト指向装置110,112は、実施例では、特定装置の各
パーティションに対するオブジェクトの単一レベルリストを含んでいるオブジェ
クトファイルシステムによりオブジェクト124−126を管理する。それはフ
ラットファイルシステムとも呼ばれる。各装置110,112内の記憶媒体上に
格納されるオブジェクト124−126は好ましくはオブジェクト指向装置モー
ドで動作する装置110,112上の容量割付けの最小可視単位である。このよ
うな記憶装置上のオブジェクトは一意的識別子に関連するセクターの順序付けら
れたセットを含んでいる。データは識別子およびオブジェクト内へのオフセット
により参照される。オブジェクトは記憶装置110もしくは112自体により記
憶媒体上に割り付けられ配置されるが、オペレーティングシステムは従来技術の
アーキテクチュアと同様に、データのセクターを管理するのではなく、そのファ
イルおよびこれらのオブジェクト構成子(construct)内のメタデータ
を管理する。
【0023】 オブジェクト124−126はインターフェイス128によりアクセスされ、
オブジェクト124−126内の属性およびデータにアクセスして操作するため
にリクエスタ116−120により呼び出すことができる複数のメソッドを呈示
する。したがって、図2に示すように、リクエスタ116−120から要求13
0が出される。好ましい実施例では、リクエスタ116−120はコンピュータ
システムもしくはオブジェクト124−126を含む記憶装置上でアクション要
求130を提出するシステムのクラスタもしくはネットワーク内のエレメントで
ある。したがって、リクエスタ116−120はクライアントおよびサーバの両
方とすることができる。後述するするように、いずれの場合にも、リクエスタ1
16−120の1つから発せられる要求130はインターフェイス128内で1
つのメソッドを呼び出し、それにより1つ以上のオブジェクト124−126が
操作される。
【0024】 図3−1および図3−2は記憶装置110,112上に格納されたオブジェク
トにアクセスするのに使用できる2つの異なる構成のブロック図である。簡単に
するために、図3−1および図3−2には単一のリクエスタ116および単一の
オブジェクト指向記憶装置110しか図示されていない。オブジェクト(オブジ
ェクト124−126等)を開きたい場合にリクエスタ116は記憶装置110
に直接アクセスすることができ、あるいは記憶装置110上のオブジェクトにア
クセスするためにファイルサーバ114および位置情報からの許可要求を必要と
することがある。ファイルサーバ114が記憶装置110へのアクセスを制御す
る程度は主としてシステム100の特定のインプリメンテーションのセキュリテ
ィ要求の関数である。
【0025】 図3−1に示すブロック図では、システム100は安全であると仮定される。
すなわち、リクエスタ116と記憶装置110間のコマンド情報およびデータの
伝送を保護する要求がない。このようなインプリメンテーションでは、管理機能
のためのファイルサーバ114がやはり存在することもあるが、ファイルサーバ
114はリクエスタの記憶装置110とのインタラクションを監督する必要がな
い。
【0026】 このようなインプリメンテーションでは、リクエスタ116は記憶装置110
にアクセスしてその上に直接オブジェクトを生成する位置にある。したがって、
リクエスタ116は本来リクエスタ116に付属しているかのようにオブジェク
トを開き、読み出し、書き込み、閉じることができる。このような操作について
は後述する。しかしながら、判りやすくするために、この点について簡単な概要
を述べる。記憶装置110上のオブジェクトを読み出すために、好ましくはリク
エスタ116は記憶装置110上に論理的ボリュームすなわちパーティションを
示す1つ以上のオブジェクトから最初に読み出し、その上に格納されたオブジェ
クトの探索をどのように開始するかを読み出すことができる。次にリクエスタ1
16はルートディレクトリとすることができるオブジェクトを開いて読み出すこ
とができる。このオブジェクトから他のオブジェクトを突き止めることは回りく
どくはなく、ルートディレクトリの内容に基づいている。リクエスタ116は所
望のデータが突き止められるまでプロセスを繰り返す。データはオブジェクト識
別(オブジェクトID)およびオブジェクト内の偏位により参照される。
【0027】 図3−2に示す第2のインプリメンテーションでは、セキュリティが必要とさ
れる。したがって、ファイルサーバ114は所望の保護レベルに必要なだけリク
エスタ116および記憶装置110間のI/Oチェーン内に入れられる。一実施
例では、リクエスタ116は最初に1セットのI/O操作を実施するためのファ
イルサーバ114からの許可を要求しなければならない。ファイルサーバ114
、(付加セキュリティのためのリクエスタ116からの記憶場所情報を与えてい
ないことがある)、は次にリクエスタ116が直接記憶装置110と通信するの
に十分な情報を戻すことによりリクエスタ116からの要求を許可する。記憶装
置110は好ましくはファイルサーバ114にログオンする時はセキュリティパ
ラメータを知らされるため、記憶装置110は適正に構成されかつファイルサー
バ114からの有効な許可を含む符号化されたデータを含んでいない限りI/O
要求を許可しない。
【0028】 次に、プロセスは図3−1について説明したのと同様に進行する。しかしなが
ら、各コマンドに関連するペイロードは極めて異なることがある。例えば、セキ
ュリティが必要な場合には(図3−2に示す)リクエスタ116および記憶装置
110間を通過するコマンドとデータの両方を暗号化することができる。さらに
、好ましくはリクエスタ116から記憶装置110へ与えられるコマンドパラメ
ータに許可情報を付加しなければならない。
【0029】 一実施例では、記憶装置110,112はハードディスクドライブを含むため
、ディスクドライブについて簡単に検討する。図4は記憶装置110として実現
することができるハードディスクドライブの斜視図である。ディスクドライブ1
10では、複数のディスク132がハウジング136内でスピンドルモータアセ
ンブリ134周りに軸着されている。各ディスク132は138に略示する多数
の同心円形記録トラックを有する。各トラック138は複数のパーティションに
再分割されている(図6について後述する)。トラック138内の特定のパーテ
ィションを参照することによりディスク132に対してデータを格納したり検索
することができる。好ましくはハウジング136の1コーナーにアクチュエータ
アームアセンブリ140が回転可能に搭載される。アクチュエータアームアセン
ブリ140は、各々がリード/ライトヘッドを運ぶ複数のヘッドジンバルアセン
ブリ142、もしくはディスク132上に情報を読み書きするトランスジューサ
(図示せず)を備えている。
【0030】 ボイスコイルモータ144がアクチュエータアームアセンブリ140を前後に
精密に回転させてスライダ142上のトランスジューサが一般的に矢符146で
示す円弧に沿ってディスク132表面を横切するようにされている。図4には既
知の方法でディスクドライブ110のある操作を制御するのに使用されるディス
クドライブコントローラ148もブロック図形式で示されている。しかしながら
、本発明に従って、ディスクドライブコントローラ148はディスク132上に
格納されたオブジェクト124−126へのインターフェイス128を実現する
のにも使用される。
【0031】 図5は図1に示すシステム100内にはめ込まれる時のディスクドライブ11
0の一部のブロック図である。図5において、ディスクドライブコントローラ1
48はインターフェイス128を実現する制御要素150を含んでいる。オブジ
ェクト124−126はディスク132を構成する記憶媒体上に格納される。要
求要素152がリクエスタ116−120上に実現され、インターフェイス12
8内でメソッドを読み出す要求を論理的に公式化するように形成される。メソッ
ドが呼び出されると、制御要素150は識別したオブジェクトを所望の方法で操
作するためにあるタスクを実施する。制御要素150はイベントを戻し、それは
任意の識別したオブジェクトに関連するデータもしくは属性を含むことができる
。また、イベントはリクエスタ116−120により呼び出される特定のメソッ
ドに基づいて戻される。
【0032】 オブジェクト指向装置110−112がブロック指向装置を有するオペレーテ
ィングシステムから渡されるのと同じ機能性を与えるようにするために、装置1
10−112上の記憶スペースは同程度まで管理できなければならない。したが
って、一実施例では、記憶装置110,112上の構成層はその上に格納された
オブジェクト124−126の上に設けられる。好ましい実施例では、オブジェ
クト指向記憶装置110,112がパーティションと呼ばれる1つ以上の互いに
排他的領域へディスクスペースを割り付ける。パーティションについては図6に
関して後述する。パーティション内で、リクエスタ116−120はオブジェク
トを生成することができる。一実施例では、パーティション内の構造は単純で平
坦な構成である。この構成の上に、任意のオペレーティングシステムがそれ自体
の構造をマップすることができる。
【0033】 図6はディスク132等の記憶媒体上の記憶スペースの一部を示す。記憶スペ
ースはデバイス制御オブジェクト154等のいくつかのオブジェクト、装置連関
(association)オブジェクト156、およびパーティション0(番
号158で示す)、パーティション1(番号160で示す)およびパーティショ
ンN(番号162で示す)で示す複数のパーティションを含んでいる。また、各
パーティションがパーティション制御オブジェクト164、パーティション制御
オブジェクト166、等のいくつかのオブジェクト、および複数のデータオブジ
ェクト168(データオブジェクト0−データオブジェクトNとして示す)を含
んでいる。
【0034】 各オブジェクトには属性のセットが関連している。本発明の1つの特徴に従っ
て、属性セットメソッド(後述する)によりセットされて特定のオブジェクトへ
のアクセスが制御される手段を提供するアクセス制御属性が与えられる。アクセ
ス制御属性のバージョン数を変えることにより、あるリクエスタ116−120
に特定のオブジェクトへのアクセスを与えたり与えなかったりすることができる
【0035】 クラスタオブジェクトは特定のオブジェクトを記憶システム内の他のオブジェ
クトの近くに配置することが望ましいかどうかを示す属性である。クローニング
属性は特定のオブジェクトが記憶システム内の他のオブジェクトをコピーして生
成されたかどうかを示す。サイズ属性のグループが特定のオブジェクトのサイズ
特性を定義する。例えば、サイズ属性のグループはオブジェクト内に書き込まれ
た最大オフセット、オフセットに割り付けられたブロック数、オブジェクト内に
データを格納するのに使用したブロック数およびオブジェクト内のブロック当り
バイト数を示す情報を含んでいる。
【0036】 時間属性のグループはオブジェクトが生成された時、オブジェクト内のデータ
が最後に修正された時、およびオブジェクト内で属性が最後に修正された時を示
す。好ましくは、オブジェクトはファイルシステム内の任意のデータが最後に修
正される時およびファイルシステム内の任意の属性が最後に修正される時を定義
する属性セットも含んでいる。任意所与のオブジェクトの他のパラメータ、特性
もしくは特徴を示すために他の属性を与えることもできる。
【0037】 また、各オブジェクトには特定の記憶装置110,112により選択されコマ
ンドに応答してリクエスタ116−120へ戻されてオブジェクトを生成するオ
ブジェクト識別子が関連している。識別子は好ましくは指定した長さの符号なし
整数である。好ましい実施例では、識別子の長さは特定の記憶装置110,11
2により指定されるサイズにデフォールトされるか、あるいは装置属性としてセ
ットすることができる。さらに、一実施例では、識別子(ID)の予め定義され
たサブセットが既知のオブジェクト、特殊用途、および望ましくは実施すること
ができる他の特殊機能のために保存される。
【0038】 図6は記憶媒体が典型的には常に指定オブジェクトIDを有するいくつかの既
知のオブジェクトを含むことを示している。場合によっては、このような既知の
オブジェクトは各装置上もしくは各パーティション内に存在する。
【0039】 例えば、このような1つの既知のオブジェクトは装置制御オブジェクト154
であり、好ましくはそれは各装置110−112により保守される属性を含み、
装置自体もしくは装置上の全オブジェクトに関連している。属性は後述するSe
t_Attributeメソッドにより保守される。好ましい実施例では、装置
110−112当り1つの装置制御オブジェクト154がある。
【0040】 表1は好ましい装置制御オブジェクト(DCO)属性の1セットを示す。
【表1】
【0041】 好ましい実施例では、DCO属性は単なる単調カウンタであるクロック、暗合
鍵を含むマスターキー、もしくは装置上の他の全ての鍵を制御する他のマスター
キー、およびパーティションキーを制御しパーティションをロックするのに使用
することができる装置鍵を含んでいる。また、属性は所定の保護レベルを識別し
関連するセキュリティポリシーを有する保護レベル鍵、装置上のパーティション
数を定義するパーティションカウント、およびアクセスされる特定の装置上の全
オブジェクトに関連する性質を定義するオブジェクト属性も含んでいる。
【0042】 多数の記憶装置110−112にわたってオブジェクトを適切に管理するため
に、各記憶装置110−112は好ましくはさまざまな装置110−112間の
連関を定義する装置連関オブジェクト156も含んでいる。例えば、記憶装置1
10,112が装置のミラー対、もしくはアレイセットのメンバーである場合に
は、装置連関オブジェクト156はこの関係を識別する。表2に装置連関オブジ
ェクト156の好ましい属性を示す。
【表2】
【0043】 このような属性は好ましくは連関識別子を含み、それは関連する装置の所与の
各セットに対する一意的識別子である。好ましくは、属性は装置間の連関(as
sociation)(例えば、ミラー対、RAID5、等)の種類を定義する
連関タイプも含んでいる。好ましくは、属性はさらに前記した連関のメンバーシ
ップである装置110−112を識別するだけのメンバーシップリストも含んで
いる。
【0044】 好ましくは、記憶装置110−112上の各パーティション158,160,
162は単一パーティションの性質を含むパーティション制御オブジェクト16
4も含んでいる。好ましくは、オブジェクト164はパーティションだけでなく
その中の全オブジェクトに関与する任意のオブジェクト属性も記述する。好まし
くは、各装置110−112はその上に定義された各パーティションについて1
つのパーティション制御オブジェクト164を含んでいる。図6には各パーティ
ション内に格納されたパーティション制御オブジェクトが図示されているが、そ
うする必要はない。パーティション制御オブジェクトはパーティションの上のフ
ラットファイルシステム内に格納することもできる。
【0045】 表3は好ましくはパーティション制御オブジェクト168内に含まれるいくつ
かの属性を示す。
【表3】
【0046】 好ましくは、このような属性は全体パーティションに対する暗合鍵を定義する
マスターキーを含み、現在有効な鍵をセットするのに使用することができる。好
ましくは、属性はコマンドおよびデータメッセージの暗号化および復号に使用さ
れる現在有効鍵および前の有効鍵も含んでいる。好ましくは、パーティション制
御オブジェクト164は指示したパーティション内の全オブジェクトに関連づけ
られるオブジェクト属性も含んでいる。
【0047】 図6は記憶媒体上にパーティションが生成される時に制御要素150により形
成されるオブジェクトであるパーティションオブジェクトリスト166を好まし
くは各パーティションが含んでいることも示している。好ましくは、パーティシ
ョンオブジェクトリスト166は各パーティション内に同じ識別子を有し、記憶
媒体上に実現されたオブジェクトファイルシステムをナビゲートするための出発
点を構成する。表4は好ましくは各パーティションオブジェクトリストに関連づ
けられる属性のリストを示す。
【表4】
【0048】 表4に示すように、好ましくはオブジェクトはパーティション内に常駐する全
オブジェクトに対するオブジェクト識別子(すなわち、オブジェクトID)、お
よび各オブジェクトに割り付けられるユーザスペースのボリュームを含んでいる
。オブジェクト識別子はオブジェクトを開き、読み出し、書き込みかつ閉じるた
めにリクエスタにより使用される。さらに、好ましくはユーザはパーティション
オブジェクトリスト内にユーザデータ属性をセットすることにより各オブジェク
トIDに対するユーザスペースを割り付けることができる。パーティションオブ
ジェクトリスト166の後に、各パーティションは好ましくは複数のデータオブ
ジェクト168を含んでいる。好ましくは、各データオブジェクト168は表1
に示す1つ以上の属性セットを含み、データ記憶システムの特定のインプリメン
テーションに応じて付加属性を含むことができる。
【0049】 好ましくは、オブジェクト指向記憶装置110−112はリクエスタ116−
120に対してデータを与え、もしくは格納する要求をサポートする。さらに、
記憶装置110−112は従来技術のアーキテクチュアでは他の要素、恐らくは
オペレーティングシステム、においてなされる他の機能に対する責任をとる。装
置110−112上のオブジェクトに関連する属性の保守だけでなく、スペース
管理が好ましくは、装置110−112自体により実施される。好ましくは、こ
のような機能は各記憶装置110−112内の制御要素150により実現される
インターフェイス128によりサポートされるメソッドを呼び出して実施される
。呼び出すことができるいくつかのメソッドについては後述する。しかしながら
、このようなメソッドをよく理解するために、本発明の1つの特徴に従ったオブ
ジェクト指向ファイルシステムのナビゲーションを示すフロー図を図7−1およ
び図7−2に示す。後述する各メソッドの詳細な検討の前に図7−1および図7
−2の検討を行えば本発明の理解が容易になるものと信じる。
【0050】 ブロック170からブロック204までの図7−1および図7−2は、1つの
記憶装置110−112上の特定のパーティション内でオブジェクトを見つけ出
すことを例示している。最初に、リクエスタ116は装置制御オブジェクト15
4内の装置属性を得る。それはブロック172に示されている。Get_DCO
_Attributesメソッドの呼出しにより制御要素150は装置制御オブ
ジェクト154内に格納された属性を戻す。それはブロック174に示されてい
る。次に、リクエスタ116は装置制御オブジェクト154から戻された属性に
基づいて所与のパーティションを選択する。それはブロック176に示されてい
る。
【0051】 リクエスタ116によりパーティションが選択されると、ブロック173に示
すようにリクエスタ116は次にGet_DAO_Attributesメソッ
ドを呼び出す。それにより制御要素150は記憶媒体110上に格納された装置
連関オブジェクト156から属性を得る。次に、ブロック175に示すように制
御要素150は装置連関属性をリクエスタ116へ戻す。装置連関属性および装
置制御属性に基づいて、リクエスタ116は問い合わせるパーティションを選択
する。それはブロック176に示されている。
【0052】 次に、リクエスタ116はGet_PCO_Attributesメソッドを
呼び出しそれにより制御要素150はリクエスタ116により問い合わされる特
定のパーティションに関連づけられるパーティション制御オブジェクト164内
で見つかった属性を得る。それにより制御要素150はパーティション制御オブ
ジェクト属性を得てそれを戻す。それはブロック178および180に示されて
いる。選択したパーティション内のオブジェクトがリクエスタにとって関心のな
いオブジェクトであれば、ブロック182および176に示すようにリクエスタ
はもう1つのパーティションを選択する。
【0053】 しかしながら、リクエスタ116が関心のあるパーティションを見つけている
ものとすると、ブロック184に示すようにリクエスタは次に選択したパーティ
ションに対するGet_POL_Attributesを呼び出す。このメソッ
ドにより、制御要素150は選択したパーティションに関連するパーティション
オブジェクトリスト166から属性を得る。ブロック186に示すように、次に
これらの属性はリクエスタ116に与えられる。
【0054】 次に、リクエスタ116はOpen_Read_Only_POLメソッドを
呼び出す。それはブロック188に示されている。後述するように、制御要素1
50は選択したパーティションに関連づけられているパーティションオブジェク
トリスト166内に格納されたデータを得るが、そのオブジェクト内の属性を修
正してデータは修正もしくは拡張できないようにリードオンリーベースで与えら
れることを表示する。それはブロック190に示されている。
【0055】 次に、リクエスタはRead_POLメソッドを呼び出しそれにより制御要素
150は選択したパーティション内のオブジェクトのリストをリクエスタ116
が再検討するように提示する。それはブロック194に示されている。選択した
パーティション内の所望のオブジェクトを選択した後で、リクエスタ116はc
lose_POLメソッドを呼び出しそれにより制御要素150はパーティショ
ンオブジェクトリストを閉じる。それはブロック196に示されている。
【0056】 所望のオブジェクトに対するオブジェクトIDが見つかると、リクエスタ11
6は次にOpen_xxx_Objectxメソッドを呼び出す。xxxはリク
エスタが所望する特定のデータ操作に基づいてリクエスタにより呼び出される特
定の開くメソッドを示す。Objectxはリクエスタにより操作すなわちアク
セスされるオブジェクトを識別するパーティションオブジェクトリストからのオ
ブジェクトIDを示す。xxx指示は、例えば、Open_Update操作や
Open_Read_Only操作を表わすことができる。それらについては後
述し、このステップはブロック198に示されている。
【0057】 次に、リクエスタは制御要素150から戻されるオブジェクトの所望の操作を
実施する。オブジェクトを操作するのに使用することができるさまざまなメソッ
ドについては後述する。それはブロック200に示されている。
【0058】 最後に、所望のオブジェクト操作すなわちアクセスがリクエスタにより完了す
ると、リクエスタ116はClose_Objectxメソッドを呼び出しそれ
も後述されており、リクエスタ116によりアクセスされたオブジェクトを閉じ
るように動作する。
【0059】 図8−図24は装置110等のオブジェクト指向装置上に格納されたオブジェ
クトの所望の機能および所望の操作を遂行するためにリクエスタにより呼び出す
ことができるさまざまな典型的メソッドを示す。
【0060】 図8は特にOpen_Create_Objectメソッドを示すフロー図で
ある。ブロック208に示すように、リクエスタ116がこの方法を呼び出すと
、制御要素150は新しいオブジェクトIDを生成してオブジェクトが生成され
る特定のパーティションに関連するパーティションオブジェクトリスト内にオブ
ジェクトIDを入れる。それはブロック210に示されている。次に、制御要素
150はオブジェクトに関連するブロック数等を割り付け、かつオブジェクト生
成時を示しオブジェクトに関連する表1内の他の属性をセットするようにオブジ
ェクト属性を修正することにより新しいオブジェクトを生成する。それはブロッ
ク212に示されている。次に、制御要素150は生成されたばかりのオブジェ
クトの新しいIDと共に要求の状態を戻す。それはブロック214に示されてい
る。
【0061】 単にオブジェクトを生成する他に、リクエスタ116はいくつかのオプション
を指定することができる。例えば、好ましい実施例では、リクエスタ116はオ
ブジェクトがパスワード保護されているか、オブジェクトは暗号化されるか、あ
る品質閾値(例えば、オブジェクトがバックアップされるか)、ロック特性(例
えば、パーティションおよび装置ロック等の任意他のロックだけでなくオブジェ
クトロックによりオブジェクトがロックされるか)、アクセス制御バージョン、
ミラーもしくは他のバックアップサポート(それにより全ての更新がもう1つの
オブジェクトへ鏡映されるか、あるいは指定される別の方法でバックアップされ
る)を指定して、スペースが指定した最小サイズ単位で割り付けられることを表
示し、かつ衝突特性(UNIX−型システムにおけるライト等)をセットするこ
とができる。
【0062】 このメソッドを呼び出すためにリクエスタ116が制御要素150へ与える特
定の情報にはセキュリティのために必要なシステム内の許可情報、オブジェクト
が生成される装置のパーティション、および前記した任意のオプションが含まれ
る。一実施例では、それに応答して制御要素150は装置上で利用できる容量、
要求の状態を新しいオプションのIDと共に戻す。
【0063】 このメソッドの特殊なインスタンスも呼び出すことができ、それはオブジェク
トに関連する全データを含むこともお判り願いたい。その場合、オブジェクトを
生成し、オブジェクトを書き込み、かつオブジェクトを閉じることができる1つ
のメソッドを呼び出すことができる。
【0064】 図9はOpen_Update_Objectxメソッドを示すフロー図であ
る。ブロック220に示すように、リクエスタ116はこのメソッドを呼び出す
と、指定したオブジェクトを読み書きすることができる。オブジェクトの長さの
拡張も行われる。このメソッドが呼び出されると、制御要素150は指定したオ
ブジェクト内に属性をセットしてオブジェクトを使用していることを表示する。
リクエスタ116は許可情報、オブジェクトを含むパーティションID、アクセ
スされるオブジェクトの識別子、とられるアクションのタイプ(更新もしくはラ
イト)および前記した任意のオプションを与える。それに応答して、制御要素1
50は要求の状態および指定したオプションの長さを、リクエスタ116が利用
できる残りの容量と共に、戻す。
【0065】 図10はWrite_Objectメソッドを示すフロー図である。ブロック
242に示すように、リクエスタ116がこのメソッドを呼び出すと制御要素1
50は指定した場所で指示したオブジェクト内の指定した数のブロックに書込み
を行う。
【0066】 また、ライトメソッドにより他のメソッドが呼び出すことができる。例えば、
アクセスされる装置110−112上でパリティサポートが呼び出されると、ラ
イトは書き込まれるデータに排他的OR演算を実施する排他的ORメソッドを自
動的に呼び出すことができ、1つ以上の予め指定したパリティ装置にパリティデ
ータが書き込まれる。
【0067】 このメソッドを呼び出すために、リクエスタ116は許可情報、オブジェクト
識別子、パーティションID、オブジェクト内に書き込まれるブロックの開始位
置、オブジェクトに書き込まれるブロック数、オプション情報、および書き込ま
れるデータを与える。このメソッドが呼び出されると、制御要素150は指定し
たオブジェクトを与えられた指定データで修正する。それはブロック244に示
されている。次に、制御要素150はオブジェクトの長さ、オブジェクトに関連
するタイムスタンプ、等の指定したオブジェクト内の必要な属性を修正する。そ
れはブロック246に示されている。次に、制御要素150は必要であればパー
ティションオブジェクトリスト等の他のオブジェクトの必要な属性を修正する。
それはブロック248に示されている。次に、制御要素150は要求の状態を特
定のリクエスタへ戻す。それはブロック250に示されている。
【0068】 図11はOpen_Read_Only_Objectxメソッドを示すフロ
ー図である。このメソッドが呼び出されると、制御要素150はリクエスタ11
6がリードオンリーの目的で指定したオブジェクトへのアクセスを有することが
できるようにする。したがって、ブロック230に示すように、このオブジェク
トが呼び出されるとリクエスタは許可情報、パーティションID、オブジェクト
ID、およびオプション情報を与える。次に、制御要素150は指定したオブジ
ェクト内の属性をセットしてオブジェクトが使用されていることを表示する。そ
れはブロック232に示されている。次に、制御要素150はオブジェクト内に
リードオンリー属性をセットしてリクエスタによりオブジェクトが書き込まれる
ことはないことを表示する。それはブロック234に示されている。次に、制御
要素150は要求の状態および指定したオブジェクトの長さを戻す。それはブロ
ック236に示されている。
【0069】 図12はRead_Objectxメソッドを示すフロー図である。この方法
は装置110が指定したオブジェクトからデータを戻すことを望む場合にリクエ
スタ116により呼び出される。リクエスタは許可情報、オブジェクトID、パ
ーティションID、読み出されるブロックの開始場所、読み出されるいくつかの
ブロック、および任意の他の所望するオプション情報を与える。それに応答して
、制御要素150は要求の状態、戻されるデータの長さ、この方法に応答して戻
される実際のデータを戻す。それはブロック256および258に示されている
【0070】 図13はClose_Objectxメソッドを示すフロー図である。リクエ
スタ116によりこのメソッドが呼び出されると、ブロック264に示すように
、リクエスタは許可情報、オブジェクトID、および任意のオプション情報を提
供する。それに応答して、ブロック266に示すように制御要素150は指定し
たオブジェクト内のデータを修正する。さらに、オブジェクトへの書込みの結果
生じるオブジェクトの任意の変化は、まだ記憶媒体に書き込まれていなければ、
この時書き込まれる。また、ブロック268に示すように、制御要素150はオ
ブジェクトxの属性を更新する。例えば、新たに生成したオブジェクトであれば
、その属性は生成時間、および他の所要属性情報により更新される。さらに、属
性はオブジェクト内のデータが最後に修正された時、変化されている場合のデー
タの長さを表示するように修正され、属性が制御要素150によりセットされて
オブジェクトはもはや所与のリクエスタにより使用されていないことを表示する
【0071】 また、制御要素150は随意オブジェクトに関連しオブジェクト属性に反映す
る残留キュッシュ情報を更新することができる。それはブロック270に示され
ている。例えば、データが閉じたオブジェクトに対してまだキャッシュされてい
る、あるいはもはやキャッシュされていないことを記憶装置110に知らせるよ
うに要求を行う特定のリクエスタ116が構成されている場合には、記憶装置1
10のオペレーティングシステムはオブジェクトが迅速に続いて再度閉じられか
つ開かれるような応用に対してキャッシュ情報を保持することができる。しかし
ながら、同時に、もう1つのリクエスタがその間にこのオブジェクトへのアクセ
スを要求する場合、記憶装置110はシステム100内のどの要素にコヒーレン
シ衝突を知らせる必要があるかを追跡し続けることができる。ブロック272に
示すように、次に制御要素150は要求の状態を戻す。
【0072】 図14はRemove_Objectxメソッドを示すフロー図である。この
メソッドが呼び出されると、ブロック278に示すように、制御要素150は記
憶媒体からオブジェクトを削除するのに必要なステップをとる。それはブロック
280に示されている。指定したオブジェクトIDが利用できることを反映する
ために、次に制御要素150はオブジェクトが削除されたパーティションに関連
するパーティションオブジェクトリストを修正する。それはブロック282に示
されている。ブロック284に示すように、制御要素150は次に要求の状態を
戻す。このメソッドを呼び出すために、リクエスタ116は許可情報、パーティ
ションID、オブジェクトID、および任意所望のオプション情報を与える。ブ
ロック284に示すように、制御要素150は次に要求の状態を戻す。
【0073】 図15は、ブロック290に示すように、記憶装置110上にパーティション
を生成するためにリクエスタにより呼び出すことができるCreate_Par
titionxメソッドを示すフロー図である。Create_Partiti
onxメソッドはドライブを1つ以上の領域へ仕切るが、記憶媒体上の全スペー
スを考慮する必要はない。さらに、パーティション領域はディスク上のさまざま
なゾーンに跨ることができる。
【0074】 一実施例では、この方法はタイリング構成内にパーティションを生成するのに
使用され、パーティションは装置上の記憶スペースの真の分割を表わす。この構
成はスペースをデータアレイ等のサービスレベルで分割するのに使用される。こ
のようなパーティションはリサイズ(resize)することはできないが、除
去して再生成することができる。
【0075】 本発明の1つのもう1つの特徴に従って、パーティションはサービスレベルに
従ってスペースを管理するのではなくオブジェクトを論理的に構成するために論
理パーティショニングとして使用される。この第2の実施例では、パーティショ
ンはダイナミックにリサイズすることができる。
【0076】 このメソッドを呼び出すために、リクエスタは許可情報、任意所望のオプショ
ン、パーティションID、および識別した特定部分へ割り付けられるスペースを
識別する初期スペース割付けを与える。ブロック292に示すように、それに応
答して制御要素150は記憶媒体上のスペースを指定したパーティションに対し
て割り付ける。ブロック294および296に示すように、次に制御要素150
はパーティション制御オブジェクトおよびパーティションオブジェクトリストを
確立する。前記したように、パーティションオブジェクトリストは除去すること
はできずパーティション内のオブジェクトをナビゲートする開始点の役を果たす
。次に、制御要素150は要求の状態および行われているパーティショニングを
示すパーティションマップを戻す。それはブロック298に示されている。
【0077】 図16はRemove_partotionxメソッドを示すフロー図である
。このメソッドを呼び出すために、リクエスタ116は許可情報、オプション情
報、および除去されるパーティションを識別するパーティションIDを与える。
それはブロック304に示されている。ブロック306に示すように、それに応
答して制御要素150は予めパーティションに関連づけられているスペースを解
放する。次に、制御要素150は削除されるパーティションに関連するパーティ
ションオブジェクト内の全てのオブジェクトを除去し、パーティションオブジェ
クトリストを削除してパーティション制御オブジェクトを削除する。それはブロ
ック308,310,312に示されている。次に、制御要素150は要求の状
態およびパーティショニングに対してなされた変更を示すパーティションマップ
を戻す。それはブロック314に示されている。
【0078】 本発明の1つの特徴に従って、データ管理ポリシーが各記憶装置110−11
2に伝達され、記憶装置は互いに独立して作用して管理ポリシーを実行するよう
にされる。その結果人間の介入が少なくなるだけでなく、より予測可能でタイム
リーな管理制御となって著しい利点が得られる。
【0079】 例えば、記憶装置110−112上のデータは毎週バックアップしたいことが
ある。従来のシステムは典型的に週末のアイドル期間中にバックアップされ、ビ
ジネスウィーク中にシステムの可用性が中断されないようにされる。しかしなが
ら、可用性のウィンドウはシステム容量の増大と同時に徐々に縮小してきている
。したがって、データの恐らくはテラバイトをバックアップするのに十分な長さ
のシステム割込み時間を見つけようとする問題は非常に困難になってきている。
【0080】 したがって、本発明の1つの特徴に従って、割り付けられた属性に基づいてオ
ブジェクトに作用することにより、オブジェクトがそのとられるバックアップに
対して正しい状態に達している時は常にオブジェクト指向記憶装置110−11
2はバックアップ機能を通知することができる。またデータ完全性に影響を及ぼ
すことなく全ファイルのバックアップをより長期間にわたって引き延ばすことが
できる−その間に他はまだ更新されている。
【0081】 オブジェクト指向記憶装置110−112によりアクションを呼び出すことが
できる属性の他の例として暗号化、圧縮、バージョニングおよびパリティ冗長性
が含まれる。これらの各例において、好ましくは記憶装置110−112には特
定のオブジェクトに関するポリシーを通知するだけでよい。次に、装置自体が機
能を実施するかあるいはサービスを提供するように指示されたエージェントに通
知することができる。
【0082】 例えば、圧縮および暗号化を記憶装置110−112自体で実施することがで
きる。したがって、唯一装置に伝達すべきことはオブジェクトに対して圧縮もし
くは暗号化が必要であるという事実である。エージェントにより実施される管理
機能に対して、管理機能ポリシーを記憶装置に伝達するだけでなく、機能を実施
するエージェントの識別も伝達して、機能を実施する時間になったら記憶装置が
エージェントにアクセスできるようにしなければならない。
【0083】 本発明の1つの特徴に従って、オブジェクト間に連関が確立され同じ属性を有
するかあるいは従属性を有するものを識別できるようにされる。例えば、データ
ベースは6つのファイルすなわちオブジェクトを有し、全てが閉じられるかある
いは他の全てが従属するものと指示された1つのオブジェクトが閉じられるまで
はそのどれもがバックアップできないものとする。ファイルサーバ114はオブ
ジェクト間のこの種の関係の管理を必要とすることがある。さらに、本発明はア
レイパリティセットの場合のように装置間従属性を確立する。グループの残りが
同じ本質的性質を有することを1つの装置すなわちオブジェクトが確認するよう
なグループを確立できるようにすることにより、グループの管理はより効率的か
つ有効となる。
【0084】 図17−図24はオブジェクトにより記憶装置上に呈示されたメソッドを呼び
出すことにより実施することができる管理機能を示すフロー図である。メソッド
を呼び出すことにより制御要素150および/もしくは関連する制御要素は呼び
出されたメソッドに関連する管理機能を実施するためのステップをとる。
【0085】 図17はExport_Objectxメソッドを示すフロー図である。ブロ
ック320に示すように、リクエスタ116は許可情報、オプション情報、オブ
ジェクトID、目的装置IDおよび目的パーティションIDを与えることにより
このメソッドを呼び出す。輸出メソッドは記憶装置110−112が所与のオブ
ジェクトに関連する属性で表現されるルールに基づいてアクションをとれるよう
にする。例えば、他の装置に対するオブジェクトのバックアップやサポートバー
ジョニングを開始するのに使用することができる。
【0086】 Export_Objectxメソッドが呼び出されると、ブロック322に
示すように制御要素150は記憶媒体から指定したオブジェクトを得る。次に、
制御要素150はリクエスタ116により指定される目的装置においてOpen
_Createメソッドを呼び出す。それはブロック324に示されている。次
に、制御要素150は指定したオブジェクトのデータおよび属性を供給する目的
装置においてライトメソッドを呼び出す。それはブロック326に示されている
。次に、制御要素150は書き込まれた後でその上のオブジェクトを閉じる目的
装置においてCloseメソッドを呼び出す。それはブロック328に示されて
いる。最後に、制御要素150は目的装置に書き込まれているオブジェクトの新
しいオブジェクトIDと共に要求の状態をリクエスタに戻す。それはブロック3
30に示されている。
【0087】 制御要素150により実現されるインターフェイス128はリクエスタが再検
討されるオブジェクト属性を得てそれをセットできるようにするメソッドもサポ
ートする。図18および図19はそれぞれ対応するGet_Objectx_A
ttributesおよびGet_Objectx_Attributesメソ
ッドを示すフロー図である。
【0088】 図18に示すメソッドが呼び出されるとブロック336に示すように、制御要
素150は指定したオブジェクトに対する属性を得る。一実施例では、リクエス
タは許可情報、オブジェクトID、オブジェクトIDのリスト、およびオプショ
ン情報を与える。次に、制御要素150はオブジェクトIDに関連する属性、も
しくはオブジェクトIDのリストを得てそれらの属性を要求の状態と共にリクエ
スタへ戻す。それはブロック338に示されている。
【0089】 ブロック344に示すように、図19に示すGet_Objectx_Att
ributesメソッドは許可情報、オブジェクトID、およびオプション情報
を制御要素150へ与えるリクエスタにより呼び出すことができる。次に、制御
要素150はリクエスタにより与えられる情報で指定したオブジェクトの属性を
修正し、要求の状態を指定したオブジェクトの修正した属性と共に戻す。それは
ブロック346および348に示されている。
【0090】 本発明のもう1つの特徴に従って、オブジェクトをロックしてその上に配置さ
れている錠を所有するサーバがアンロックしない限りアクセスできないようにす
ることができる。実施例では、オブジェクトはオブジェクトレベル、パーティシ
ョンレベル、もしくは装置レベルでロックすることができる。ロック機構はサー
バ間アクセスリゾルーションを与える。一実施例では、このようなロックは保守
機能中のアクセスを禁止するだけでなく同時更新をスケジュールするのに使用さ
れる。図20、図21および図22はGet_AttributeおよびSet
_Attributeメソッドのインスタンスと考えることができるロックメソ
ッドを示すフロー図である。しかしながら、リクエスタのクラスタ間でのデータ
共有に使用できるように、これらのメソッドのこれら特定の例のさらに詳細を提
供する。
【0091】 図20はRead_Lock_Attributesメソッドを示すフロー図
である。ブロック354に示すように、このメソッドは許可情報、オブジェクト
、パーティションもしくは装置ID、ロックパラメータ、および任意所望のオプ
ション情報をリクエスタ116から制御要素150へ与えて呼び出すことができ
る。それに応答して、制御要素150は指定したオブジェクトがセットされるロ
ックを有するかどうかを確認する。次に、制御要素150はロックを所有するリ
クエスタの要求の状態を戻す。それはブロック356に示されている。
【0092】 図21はSet_Lock_Attributesメソッドを示すフロー図で
ある。ブロック362に示すように、このメソッドはリクエスタが許可情報、オ
ブジェクト、パーティションもしくは装置識別子情報、ロックパラメータおよび
オプション情報を与えることにより呼び出すことができる。このメソッドが呼び
出されると、制御要素150は識別したオブジェクトに関連するロックを調べる
ことができる。それはブロック364に示されている。次に、制御要素はリクエ
スタの識別によりロックもしくはアンロック操作を実施しようとする。それはブ
ロック366に示されている。操作を要求するリクエスタがロックの所有者であ
れば、操作は実施される。そうでなければ、操作は実施されない。いずれの場合
も、制御要素150はロックを所有するサーバのIDと共に要求の状態を戻す。
それはブロック368に示されている。
【0093】 図22はReset_Lock_Attributeメソッドを示すフロー図
である。この機能はロックを所有するサーバがもはや機能していない場合にロッ
クのリセットを試みるのに使用される。ブロック374に示すように、このメソ
ッドは許可情報、オブジェクト、パーティションもしくは装置識別子情報、ロッ
クパラメータ、および任意所望のオプション情報を与えることにより呼び出すこ
とができる。ブロック376に示すように、それに応答して制御要素150は指
定したオブジェクト、パーティションもしくは装置をロックし、ロックを所有す
るサーバの識別と共に要求の状態を戻す。それはブロック378に示されている
【0094】 図23および図24はGetおよびSet_Device_Associat
ionメソッドを示すフロー図である。これらのメソッドは装置110−112
間の関係を定義もしくは問い合わせる。このような関係のインプリメンテーショ
ン(実行)の例は記憶装置110−112の1つが装置のマスターすなわち第1
のセットとして識別され、他はそのセットの従属メンバーであることを含んでい
る。第1すなわちマスターセットはセット属性の変化を他のメンバーに広める責
任がある。他のメンバーは第1すなわちマスターセットから与えられるのでなけ
れば属性セッティングを棄却する。記憶装置110−112はこれらの機能を実
施するために、自己検査を行う能力を与えられる。それにより装置はそれ自体を
検査してより大きい装置グループのメンバーシップに含まれるかどうかを確認す
ることができる。
【0095】 図23に、Get_Device_Associationメソッドが示され
ている。ブロック384に示すように、このメソッドは許可情報およびオプショ
ン情報を与えて呼び出すことができる。それに応答して、制御要素150は要求
の状態および装置がそのメンバーである要求した連関を戻す。それはブロック3
86に示されている。
【0096】 図24はSet_Device_Associationメソッドを示すフロ
ー図である。ブロック392に示すように、この方法は、許可情報、オプション
情報、および連関を定義するメンバーおよび属性のリストを与えることにより呼
び出すことができる。ブロック394に示すように、それに応答して制御要素1
50は記憶媒体上に含まれる装置連関オブジェクト156を修正する。装置連関
オブジェクトはリクエスタから与えられる属性を含み、かつオブジェクト属性が
最後に修正された時等を示すタイムスタンプを含むように修正される。ブロック
396に示すように、制御要素150は要求の状態を戻す。
【0097】 前記した許可情報によりファイルサーバ114は記憶装置110−112から
の応答を得るのに必要な証明書をどのリクエスタ116−120に与えるかを制
御することにより記憶装置へゲートアクセスできるように示されている。またフ
ァイルサーバ114はインストレーションセキュリティポリシーに追従するI/
O要求にしか従わないように記憶装置110−112を指令する。許可セキュリ
ティケイパビリティの基礎をなす鍵は実施例ではSet_Object_Att
ributesメソッドにより記憶装置110−112へ伝達する。記憶装置1
10−112に対して適切なセキュリティレベルがセットされると、その記憶装
置は各I/Oコマンドをセキュリティコンプライアンスに対してチェックするよ
うに構成することができる。しかしながら、前記したように、セキュリティを利
用する必要のない応用もある。さらに、特定のサーバクラスタが別の物理的施設
内に配置されたいくつかの装置を有する場合には、遠隔装置との通信にはより高
いセキュリティレベルを定義するが自局内トラフィックからの通信に対してはそ
うしないことが望ましいことがある。それにより遠隔リクエスタもしくはサーバ
に対するセキュリティを利用できるが、遠隔リクエスタもしくはサーバに対して
このようなセキュリティを利用することに伴う性能損失は回避される。
【0098】 さらに、各記憶装置110−112が好ましくはメッセージおよびオブジェク
トをタイムスタンピング保全するのに使用される読出し可能単調増分クロックを
含んでいる。一実施例では、さまざまな装置に対するクロックがシステムワイド
ベースで同期化される。別の実施例では、ファイルサーバ114は記憶装置間の
不一致および値を調整する。
【0099】 したがって、本発明は従来の記憶装置に比べて著しい利点を有するディスク装
置等のオブジェクト指向記憶装置を提供することがお判りであろう。このオブジ
ェクト指向記憶装置はクラスタアーキテクチュアを著しく改善する。例えば、デ
ータをオブジェクト指向方式で格納すると、データは記憶装置自体により管理す
ることができる。オブジェクトはそれ自体のスペースを管理する責任をとれるよ
うにその常駐データの十分な知識を記憶装置に与える。さらに、装置が論理的エ
ンティティを構成するものに関する情報を有する場合データの共有はよりインテ
リジェントに制御することができる。例えば、ブロック指向装置に格納されてい
るデータを2つのシステムが共有する場合、現在のアクセスに対して全てのメタ
データアクティビティを制御しなければならないことがある。対照的に、オブジ
ェクト指向装置ではメタデータアクティビティの多くがそれにアクセスするシス
テムにとって不透明である。したがって、システムはユーザデータとのアクセス
競合にしか関わる必要がない。さらに、装置自体により実施されるスペース管理
によって同じ記憶装置上のスペースを同時に管理しようとする2つのシステムか
ら生じることがあるいかなる衝突もしくは混乱も解消される。
【0100】 さらに、オブジェクト抽象により異質性(heterogeneous)計算
が遥かに容易になる。オブジェクト指向記憶装置はオペレーティングシステムが
解釈できる構成を少なくとも有する能力を提供する。
【0101】 さらに、いくつかの理由に対してオブジェクト指向記憶装置を使用することに
よりクラスタシステムの性能が向上される。例えば、メタデータは決して装置自
体を去る必要がないため、ある数のI/O操作が解消される。
【0102】 さらに、装置は任意の時間にどのオブジェクトが開かれるかあるいは閉じられ
るかを知っており、この情報を使用してデータをより有効にキャッシュすること
ができる。装置は読み出されるオブジェクトのレイアウトを知っているため、プ
リフェッチも遥かに有効にすることができる。記憶装置は逐次アクセスパターン
をより有効に決定することができる。また、装置内のキャッシュはアクセスして
いる多数のシステムに対して一度メタデータを保持することができる。さらに、
装置はどこにデータをより適切に配置するかといったサービス判断の品質に関与
することができる。典型的に装置は記憶装置を割り付ける責任がある場合しかそ
うすることができない。対照的に、殆どのオペレーティングシステムはディスク
ドライブ上にゾーンによりデータを割り付けることができない。したがって、ド
ライブ自体上にこの特性を与えることにより性能が向上する。
【0103】 本発明はドライブのアレイとして構成されたディスクドライブ内に実現するこ
ともできる。ディスクドライブ上に格納される情報はディスクドライブ自体より
も遥かに貴重であることが多いため、ドライブアレイは低廉ディスクの冗長アレ
イ(RAID)と呼ばれることが多い。数種のRAIDシステムやRAIDレベ
ルが知られている。例えば、第1レベルRAIDは前記したようにミラーディス
クを提供することを特徴としている。第5レベルRAIDでは、パリティもしく
は冗長データだけでなくアレイに格納されるデータもグループ内の全てのディス
クドライブにわたって広められる。第5レベルRAIDはデータおよびチェック
情報をチェックディスクを含む全ディスクにわたって分布する。他のレベルのR
AID(例えば、レベル2−4)については米国特許第5,617,425号D
ISC ARRAY HAVING ARRAY SUPPORTING CO
NTROLLERS AND INTERFACEに詳細に記載されている。
【0104】 図25−図29はデータがアレイ内のディスクドライブ上にオブジェクトとし
て格納される、本発明の1つの特徴に従って実施されるライト操作を示す。図2
5に示す実施例では、ファイルサーバ114、リクエスタ(すなわちホスト)1
16およびインターコネクト122は記憶装置110−112のような記憶装置
として構成された目的ドライブ402およびパリティドライブ404を含むディ
スクドライブアレイとして接続されている。目的ドライブ402は書き込まれる
オブジェクトもしくはその一部を保持し、パリティドライブ404は目的ドライ
ブ402上に格納された目的オブジェクトに関連するパリティ情報を保持する。
【0105】 図25において、ドライブアレイはグループ内の全ドライブにわたってデータ
およびパリティが分布されるRAID5として実現されている。したがって、現
在のライト操作に対してのみドライブ402は目的ドライブでありドライブ40
4はパリティドライブである。すなわち、目的ドライブ402はパリティ情報も
保持しパリティドライブ404はデータも保持する。しかしながら、後述する単
一ライト操作に対してドライブ402は目的ドライブでありドライブ404は対
応するパリティドライブである。本発明はRAID5レベル以外の他のRAID
レベルを使用して実現できることもお判り願いたい。このようなRAIDシステ
ムにおける本発明は当業者ならば自明であろう。
【0106】 図25において、目的ドライブ402およびパリティドライブ404はファイ
バチャネルインターフェイスもしくは、他のシリアルインターフェイス等の、他
の適切なインターフェイスを介して互いに接続されている。
【0107】 図26および図27は、それぞれ、目的ドライブ402およびパリティドライ
ブ404を示す。各ドライブは制御要素150および1つ以上のディスク132
を含んでいる。各ドライブはリード/ライト回路(前記したデータヘッドのよう
な)および排他的OR(XOR)回路408も含んでいる。目的ドライブ402
は書き込まれる目的オブジェクトを格納するディスクスペース410を含んでい
る。パリティドライブ404は対応するパリティオブジェクトを格納するディス
クスペース412を含んでいる。ディスク装置402,404の動作については
図28および図29に関して詳細に説明する。
【0108】 小型コンピュータシステムインターフェイス(SCSI)XORコマンドを実
現する従来のディスクアレイはディスクドライブがドライブ故障に対するパリテ
ィ保護を実現するのに必要なビット操作を実施できるようにする。このようなコ
マンドはホスト(すなわちリクエスタ)がディスクへのセクターアクセスを有し
、1つのディスクドライブに書き込まれる任意のセクターに対してパリティ情報
を含むもう1つのディスクドライブ上の対応するセクターを適切に更新できるこ
とを要求する。しかしながら、前記したオブジェクト指向ディスクドライブはホ
ストとディスクドライブ上の実際の記憶セクターとの間に抽象レイヤを導入する
。特に、ディスクドライブはホスト(すなわちリクエスタ)が基礎をなすセクタ
ーアドレス指定方式へのアクセスを持たないようにディスクスペースをオブジェ
クトとして管理する。ディスク装置自体がスペース管理の責任がありリクエスタ
やホストが1つのディスクドライブ上に書き込まれたデータの一部を別のディス
クドライブ上の場所と相関できないようにする。したがって、リクエスタはそれ
が書き込んでいるブロックのディスクドライブ上のアドレスを知らず、対応する
パリティアドレスを計算することができない。そのため、前記したように、従来
のXOR機能をオブジェクト指向ディスクドライブで使用することは、不可能と
はいわないまでも、非常に困難である。
【0109】 したがって、本発明はパリティグループを構成するディスクドライブセット内
の各ディスクドライブにおいて呼び出されるDefine_Parity_Gr
oupと呼ばれるメソッドを提供する。このメソッドは2つのことをなし遂げる
。第1に、従来のドライブアレイにおけるセクターベースXORコマンドと同じ
機能を実施する標準Write_Objectメソッドの呼出しを可能とするの
に十分な情報を提供する。また、パリティデータのその特定のドライブのシェア
を保持するセット内の各ドライブ上にオブジェクトが生成されるようにする。パ
リティオブジェクトIDは各ドライブには既知のよく知られたIDであり、その
ためパリティ情報を更新したい任意のドライブがその要求をアドレスすることが
できる正しいオブジェクト識別子を知っている。
【0110】 Define_Parity_Groupメソッドが図28に関して詳細に説
明される。最初に、リクエスタすなわちホストがパリティグループ内の各ドライ
ブにおいてメソッドを呼び出す。それはブロック420に示されている。このメ
ソッドを呼び出すために、リクエスタは次のようないくつかのものを与える。 1.パリティグループを含むドライブの順序付けられたリスト。それは、例え
ば、各ドライブに対する連番およびアドレスを含むことができる。 2.パリティ計算に使用するアルゴリズム。単純なインプリメンテーションの
例では、書き込まれるデータのブロックアドレスに対してモジュラス算術が実施
される。この算術によりパリティドライブアドレス(前記アイテム番号1からの
順序付けられたリストに基づく)およびパリティドライブ上のパリティオブジェ
クト内の相対ブロックアドレス(所望のパリティ情報を含むパリティオブジェク
トの相対的部分)の両方が得られる。 3.ブロック単位で示すパリティストライプ内のデータ量。各ドライブ上のス
ペースにわたってパリティデータがばら撒かれる場合は、この情報は割付けのア
トミック単位である。 4.パリティオブジェクト識別子。Write_Objectメソッドを呼び
出してパリティオブジェクトを更新するドライブは前記アイテム2に記述したよ
うに決定されるパリティドライブ上のこのオブジェクトIDにそれを配布する。
また、多レベルパリティ(2レベルパリティ等)も実現できることをお判り願い
たい。したがって、各ドライブは2つまでのパリティオブジェクトを有すること
ができる。インプリメンテーションの1例では、2レベルパリティを有するディ
スクアレイ内でドライブが使用される場合、2つの既知のオブジェクトIDが割
り付けられ各ドライブにより保存される。第2のパリティオブジェクトの存在は
2レベルパリティが利用されていることを示す。 5.パリティオブジェクト割付ポリシー。これは各ドライブがパリティオブジ
ェクトをディスクスペースの単一隣接度として割り付けるかパリティオブジェク
トにユーザデータオブジェクトをばら撒くかを示す。したがって、パリティオブ
ジェクトおよびデータオブジェクトは図26および図27に隣接ディスクスペー
スとして図示されているが、それは説明用にすぎない。パリティオブジェクトに
データがばら撒かれる場合には、やはり予め割り付けできることをお判り願いた
い。
【0111】 Define_Parity_groupメソッドの呼出しに応答して、パリ
ティグループ内の各ディスクドライブ内の制御要素150がパリティデータに必
要なそのスペースのパーセンテージを計算する。それはブロック422に示され
ている。パリティオブジェクトに必要なスペースの量はパリティグループリスト
内のディスクドライブ数に基づいて決定される。例えば、リスト内に9つのディ
スクドライブがあれば、各ドライブはそのスペースの9分の1をパリティ情報用
に割り付けなければならない。このスペース量はメソッドの呼出し時にリクエス
タもしくはホストにより与えられる既知のパリティオブジェクトIDにより識別
される。それはブロック424に示されている。
【0112】 パリティセットすなわちグループリスト内の各ドライブがパリティグループを
定義する情報を保持しておりディスクドライブがパワーアップすなわちリセット
されるたびに、パリティグループは妥協されていないことを検証することができ
る。したがって、ブロック426に示すように、非揮発性メモリ内に情報が格納
される。
【0113】 このようにしてディスクドライブのパリティセットを生成し各ディスクドライ
ブ上のスペースを1つ以上のパリティオブジェクトを保持するように割り付ける
と、1つ以上のドライブ上のデータオブジェクト内に格納されたデータを更新す
ることができる。図29は、本発明の1つの特徴に従って、データオブジェクト
の更新およびパリティオブジェクトの対応する更新を示すブロック図である。
【0114】 データを更新するために、更新されるデータを要求しているリクエスタ116
はパリティグループ内の1つのディスクドライブ上で前記したWrite_Ob
jectメソッドを呼び出す。図25−図27に示す実施例では、リクエスタ1
16は目的ドライブ402上でWrite_Objectメソッドを呼び出す。
それは図26に矢符428でまた図29にブロック430で示されている。この
メソッドを呼び出すために、リクエスタ116は例えば更新されるオブジェクト
を識別するオブジェクト識別子、パーティションID、オブジェクト内に書き込
まれるブロックの開始場所、オブジェクト内に書き込まれるいくつかのブロック
、オプション情報、および書き込まれるデータを与える。目的ドライブ402は
Write_Objectメソッドのサービスには更新されるオブジェクトに関
連するパリティ情報の更新を含めなければならないことを知っている。目的ドラ
イブ402がそれを知っているのは非揮発性メモリ内にDefine_Pari
ty_Groupメソッドの実行中に与えられかつ発生される情報を格納してい
るためである。
【0115】 パリティ情報を更新するために、目的ドライブ402はいくつかのステップを
実施する。第1に、それは目的オブジェクト内の指定した場所から古いデータを
読み出し、その場所に書き込まれる新しいデータと共に、それをXOR回路40
8へ与える。それは図29にブロック432で示され図26に矢符434,43
6,438で示されている。
【0116】 次に、目的ドライブ402は古いデータを新しいデータでXORして中間パリ
ティ情報を得る。それは図29にブロック440で示されている。目的ドライブ
402は図26の出力442において中間パリティ情報を与える。次に、目的ド
ライブ402は目的オブジェクト410内の目的場所に新しいデータを書き込ん
で目的オブジェクトを更新する。それは図29にブロック444で示されている
【0117】 次に、目的ドライブ402自体が更新されたばかりの目的オブジェクト410
に対応するパリティオブジェクトを識別するパリティドライブ404上でもう1
つのWrite_Objectメソッドを呼び出す。それは図29にブロック4
46で示され図27に矢符448で示されている。目的ドライブ402はいくつ
かの方法でパリティオブジェクトに対する目的場所を計算することができる。例
えば、目的ドライブ402は書き込まれるブロック目的オブジェクトの相対セク
ターアドレスから場所を計算することができる。相対アドレスはパリティグルー
プ内のドライブ数で除算されてパリティドライブ404上のパリティオブジェク
ト内の相対アドレスを与える。パリティドライブアドレスはDefine_Pa
rity_Groupメソッド内で指定されたアルゴリズムにより決定される。
次に、目的ドライブ402はWrite_Objectメソッドを構成してそれ
をパリティドライブ404上で呼び出しパリティオブジェクト412およびその
オブジェクト内の適切な場所をこの相対アドレスを使用して識別する。
【0118】 例として、更新されるドライブ404上でパリティオブジェクト内の相対ブロ
ックを計算するために、目的ドライブ402は次式を使用することができる。
【数1】 B=INT(S/D−1) 式1 ここに、Bはパリティオブジェクト内の相対ブロック、 Sは目的ドライブ402において書き込まれる相対セクターアドレス、 Dはパリティグループ内のドライブ数である。
【0119】 パリティドライブアドレスを計算するために、目的ドライブ402は次式を使
用することができる。
【数2】 P=Mod(S/D−1) 式2 ここに、Pはパリティドライブのパリティグループ内のドライブのリスト内へ
の変位(Pの計算に使用するリストは目的ドライブ402のアドレスを除外しな
ければならない)。
【0120】 このWrite_Objectメソッドに応答して、パリティドライブ404
はコマンドをそのパリティオブジェクトへのライトとして認識してパリティ操作
を実施する。図29にブロック450で示され図27に矢符452で示されてい
るように、このような操作は古いパリティデータの読出しを含んでいる。次に、
パリティドライブ404は古いパリティ情報を目的ドライブ402からの中間パ
リティデータによりXORする。それは図29にブロック454で示され図27
に矢符456,458で示されている。排他的OR操作の結果はディスク132
のパリティオブジェクトに書き込まれる更新されたパリティ情報である。それは
図29にブロック460で示され図27に矢符462,464で示されている。
それでパリティオブジェクトの更新が完了する。
【0121】 図30は1つのデータオブジェクト500(図6に示されているような)の詳
細図である。本発明の1つの特徴に従って、データオブジェクト500はいくつ
かの部分を含み、それには属性を含む部分502と、各々がそれぞれ関連するエ
ラー修正コード部510,512,514を有するいくつかのデータ部504,
506,508が含まれる。エラー修正コード部510,512,514は対応
するデータ部に隣接して図示されているが、ディスク上にこのように記録される
必要はなく、便宜上そのように示されている。したがって、一実施例では、オブ
ジェクト500の各データ部(実際上恐らくは属性部も)が既知の方法でエラー
修正コード情報(ECC)を発生するのに使用される。この情報は、対応するユ
ーザデータを読み戻す時に、ユーザデータがなんらかのエラーを含んでいるかど
うかを確認し、かつ(使用するコードに応じて)これらのエラーを捜し出して修
正するのに使用することができる。一実施例では、ECC情報はリードソロモン
コードを使用して発生される。しかしながら、任意適切なコードを使用してEC
C情報を発生することができる。
【0122】 従来のディスクドライブでは、セクターが読出し不能とされ、オペレーティン
グシステムにより特殊用途に使用されると、実質的に全体ディスクが読出し不能
とされることがある。例えば、マスターブートレコード、パーティションブート
レコード、FATテーブル、もしくはルートディレクトリが読出し不能となると
、それにより本質的に全体ディスク内容が消失することがある。従来のオペレー
ティングシステムにはこのような重要なファイルシステム管理データの消失に直
面した時に読出し可能データを回復する能力がない。したがって、本発明の1つ
の特徴に従って、ディスクドライブ上のオブジェクト指向データ構成はディスク
ドライブに従来オペレーティングシステムの領域であった基本的ファイルシステ
ム構造を維持する責任をとらせる。本発明の1つの特徴に従って、重要なファイ
ルシステムデータの冗長コピーに各データブロック、すなわちデータ部、がその
関連するECC部内に格納される。ECC部はディスク上に既に格納されている
ことがあるため、ファイルシステム情報をデータオブジェクトのECC部に埋め
込んでも性能やユーザ能力にインパクトを与えることはない。
【0123】 図31はディスク上に情報を記録する前にファイルシステム情報がECC情報
とどのように結合される、すなわち埋め込まれるかを示すブロック図である。図
31および図32も本発明の1つの特徴に従ってどのようにファイルシステム情
報を使用してファイルシステムデータを再構成するかを示している。図31には
エンコーダ516、ECC発生器518、排他的OR回路520、ディスク13
2およびリード/ライト回路406、ECC発生器522、デコーダ524、お
よび排他的OR回路526が示されている。エンコーダ516、ECC発生器5
18、排他的OR回路520、デコーダ524、ECC発生器522および排他
的OR回路526は全てディスクドライブ上の制御要素150内に実現すること
ができ、あるいは別々に実現できることをお判り願いたい。
【0124】 ユーザデータが最初にホスト、リクエスタもしくはファイルサーバからエンコ
ーダ516へ与えられる。エンコーダ516は、典型的にはエラーレートを低減
するように実現される、所定のコーディングアルゴリズムに従ってデータを符号
化する。次に、符号化されたユーザデータはECC発生器518へ与えられる。
ECC発生器518は、既知の方法で、符号化されたユーザデータに基づいてE
CC情報を発生する。発生されるECC情報は使用するエラー修正符号化方式の
特定のタイプによって決まる。次に、ECC情報は排他的OR回路520へ与え
られる。入力521においてファイルシステムデータも排他的OR回路520へ
与えられる。図31の実施例では、ファイルシステムデータはディスク132上
でユーザデータが書き込まれる場所を識別する場所情報である。例えば、前記し
たオブジェクト指向システムでは、場所情報はユーザデータが属するオブジェク
トを識別するオブジェクト識別子を含む。場所情報は識別されたオブジェクト内
の関連するデータ部の相対位置を識別する相対位置情報も含んでいる。したがっ
て、排他的OR回路520の出力は捜し出した情報が埋め込まれている(すなわ
ちシードされている)ECC情報を与える。この情報はエンコーダ516から与
えられる符号化したユーザデータを含むデータ部に対する関連するECC部とし
てリード/ライト回路406へ与えられディスク132に書き込まれる。
【0125】 ディスク132から情報を読み戻す時は(正規のリード操作を遂行するため)
制御要素150は予期した場所情報を排他的OR回路に与えてその情報をECC
情報(埋め込んだ場所情報を含む)と排他的ORすることによりRead_Ob
ject機能を実行する。排他的OR回路の出力からは読み出されるユーザデー
タに関連するECC情報が得られる。この情報はECC発生器へ与えられ、それ
は符号化したユーザデータ内になんらかのエラーが発生しているかどうかを確認
する。発生していなければ、符号化したユーザデータはデコーダへ与えられそこ
でエラーフリー情報がリクエスタすなわちユーザへ与えられる。エラーが発生し
ておれば、制御要素150は使用する特定のエラー符号化方式に応じてエラーの
識別および修正を試みることができる。あるいは、制御要素150は単にデータ
が1つ以上の修正不能エラーを含むことを示すエラーフラグを与えることができ
る。
【0126】 しかしながら、システム情報(図示する例では、場所情報)が消失されている
場合には、制御要素150は異なる方法で動作する。制御要素150によりディ
スク132上のデータが読み出される。それは図32にブロック528で示され
ている。符号化したユーザがデコーダ524およびECC発生器522へ与えら
れる。ECC発生器522,518は適切な多重化回路を有する同じ発生器とす
ることができることをお判り願いたい。しかしながら、判り易くするために、図
1には別々の要素として示されている。
【0127】 図32のブロック530に示すように、ECC発生器522は符号化したユー
ザデータに基づいてECC情報を発生する。この情報は排他的OR回路526へ
与えられる。ECC情報(埋め込んだ場所情報を含む)はディスク132からも
読み出されて排他的OR回路526へ与えられる。それはブロック532に示さ
れている。ECC発生器522と同様に、排他的OR回路526は適切な多重化
回路を有し排他的OR回路520と同じとすることができる。しかしながら、判
り易くするために、2つの回路は別々に示されている。
【0128】 ECC発生器522から与えられるECC情報を埋め込んだ場所情報を含むE
CC情報と排他的ORすることにより、排他的OR回路526の両方の入力のE
CC情報が互いにキャンセルされて、単に場所情報の出力となる。それはブロッ
ク534に示されている。この情報をデコーダ524から出力されるユーザデー
タと共に使用して消失されているファイルシステム情報を再構成することができ
る。それはブロック536,538に示されている。例えば、ディスクから検索
した場所情報を使用してオブジェクトディレクトリを再構成して、やはりディス
クから読み出されたユーザデータと関連づけることができる。
【0129】 本発明のもう1つの特徴に従って、ECC発生器518により発生されたEC
C情報を擬似ランダム(もしくは擬似ノイズ)発生器を利用してランダム化する
ことができる。図33はこのような実施例を示すブロック図である。図33に示
すいくつかのアイテムは図31に示すものと同様であり、同じ番号とされている
。図33に示すブロック図は図31に示すものと実質的に同様に動作する。しか
しながら、排他的OR回路520の入力521に単に場所情報を与えるのではな
く、場所情報は擬似ノイズ(PN)発生器540により発生される乱数をシード
するのに使用される。したがって、場所情報はPN発生器540の入力542に
おいて与えられる。シード値に基づいて、PN発生器540はXOR回路521
へ与えられる出力を発生し、それはECC発生器518から与えられるECC情
報と排他的ORされ、確認する符号化したユーザデータと共にディスク132上
に記録される。
【0130】 ファイルシステム情報(例えば、場所情報)を再構成するために符号化したユ
ーザデータがディスク132から読み出されてECC発生器522に与えられそ
れはECC情報を発生して排他的OR回路526へ与える。埋め込んだ擬似ラン
ダム値を含むECC情報もディスク132から読み出されて排他的OR回路52
6へ与えられる。排他的OR回路526の出力は場所情報によりシードされてい
るランダム値を生じる。それは逆PN発生器544へ与えられそれはPN発生器
540から与えられるランダム化情報を逆にして、その出力546に、場所情報
シード値を与える。図31に示す実施例と同様に、この情報はデコーダ524か
ら与えられる復号したユーザデータと共に使用して前に消失しているファイルシ
ステム構造情報を再構成することができる。
【0131】 ここに記載したXORゲート520,526はXORしたデータバイト内の個
別バイトに対するバイト幅XOR回路として示されている。したがって、XOR
回路は実際上8ビットバイトXOR機能を提供する8つの個別XORゲートであ
る。さらに、ここに記載する本発明はXORゲート、任意適切なガロア体操作(
すなわち加算)、もしくは他の適切な操作に向けられているが、エラー修正およ
び検出コードの基礎となるフィールドも本発明の範囲内と考えられ、当業者なら
ば実現することができる。
【0132】 また、一実施例では、PN発生器540は1998年2月10日に発行された
米国特許第5,717,535号に詳細に説明されている。この特許では発生器
は33のレジスタセルを有し、入力および出力が論理ブロックに接続されている
。レジスタセルは1ビット幅でありデータバイトと同じクロックでクロックされ
ている。発生器はオブジェクト識別子および4バイト(32ビット)長までの相
対場所情報を保持するのに十分ではあるが、4バイトよりも大きい場所情報や他
のファイルシステムを収容するために容易に拡張することができる。また、発生
器はゼロの値を有する場所情報がPN発生器540の出力にオールゼロを発生し
ないように使用される余分なレジスタセルを含んで示されている。ECC情報で
ファイルシステム情報をシードするためだけに使用される場合には、この余分な
セルをPN発生器540内に含めなければならない理由はない。しかしながら、
ある理由のために(すなわち、エラートレランス)データをランダム化するのに
発生器540が使用される場合には、オールゼロ入力により非ゼロ出力が得られ
るように余分なセルを含めなければならない。データは8データビットごとに1
度(すなわち、各バイトごとに1度)のレートのクロックによりクロックされる
ように示されている。
【0133】 図示する例では、発生器540は式3および式4に従って動作する複数のフリ
ップフロップを含み、Bはフリップフロップの入力を表わしAはフリップフロッ
プからの出力を表わす。
【数3】 BI=AI+8; 式3 I=0から24に対して24;
【数4】 BI=AmXORAM+13; 式4 I=25−32に対して、M=(I+8)モジュロ33
【0134】 発生器540は原始多項式X33+X13+1に基づく2進帰還シフトレジスタと
等価として示されクロック当り8回シフトされる。レジスタセルの入力を駆動す
る論理ブロックはこれらの8シフトの結果を表わす。この類比から、発生器54
0の出力において与えられるバイト系列は233−1バイトごとに繰り返すことは
明らかである。
【0135】 したがって、本発明は従来のシステムに優る著しい利点を提供する。本発明に
よりファイルシステム構造データのような重要なファイルシステム情報の消失に
直面した場合でもユーザデータを読み出すことができる。本発明はオブジェクト
のデータ部に対応するECC情報内にファイルシステム情報(ファイルシステム
情報のような)を埋め込んでいる。次に、ディスク上のデータを読み出し埋め込
みプロセスを逆にするだけでファイルシステム情報を読み出すことができ、した
がってファイルシステム情報を再構成することができる。
【0136】 図34−図36は本発明のもう1つの特徴に従った代わりのライト操作を示し
、ドライブアレイはハイブリッドRAIDアーキテクチュアとして実現されてい
る。前記したように、ディスクドライブアレイ内に格納されたデータはディスク
ドライブ自体よりも遥かに貴重であることが多い。したがって、改変もしくはア
クセス不能となった時に1次データを再構成するために1次データの他に冗長す
なわちパリティデータを格納するための低廉なディスクの冗長アレイ(RAID
)が設けられる。いくつかのタイプのRAIDシステムすなわちRAIDレベル
が知られている。
【0137】 第1レベルRAID(RAIDレベル1)はミラーディスクドライブを提供す
ることを特徴としている。第1レベルのRAIDでは、アレイ内の全てのドライ
ブが複製される。したがって、1つのディスクドライブが故障した場合、その正
確な情報がもう1つのディスクドライブ上に鏡映されているため情報は消失され
ない。ハードウェアを二重化するためそれはディスクドライブアレイを実現する
ための非常に費用のかかるオプションである。
【0138】 第2レベルRAIDはエラー修正用ハミングコードを含んでいる。第2レベル
RAIDでは、アレイのドライブにわたってデータがインターリーブされ単一エ
ラーを検出して修正するためのチェックドライブが付加される。それには少量の
データにしかリードが指示されない場合には、グループ内の各ビットインターリ
ーブドライブからの全セクターをさらに読み出さなければならないという欠点が
ある。また、単一ユニットの書込みにはやはりグループ内の全ドライブ上でのリ
ード−モディファイ−ライトサイクルが含まれる。
【0139】 第3レベルRAIDはドライブグループ当り単一チェックドライブを有するこ
とを特徴とする。第3レベルRAIDでは、エラー修正コード情報を格納するた
めに第2レベルRAID内で使用される余分なチェックドライブは省かれる。む
しろ、データがディスクアレイに格納されるため、データにECC情報が付加さ
れる。また、アレイ内に格納されたデータに対応する冗長データを格納するため
に単一ディスクドライブが使用される。アレイから情報を読み出す時は、エラー
が生じているか、またどのドライブがエラーを含んでいるかを確認するためにE
CC情報が使用される。次に、残りの良好なドライブのパリティを計算して比較
しさらに完全なオリジナルデータグループについて計算され冗長すなわちパリテ
ィディスクドライブ上に格納されているパリティ情報とビットごとに比較するこ
とにより故障したドライブ上の情報が再構成される。
【0140】 第4レベルRAIDは独立したリードおよびライトを行うように構成されるこ
とを特徴とする。第2および第3レベルRAIDインプリメンテーションでは、
アレイ内に格納された情報はグループ内の全ドライブにわたって広められる。し
たがって、グループ内の1つのドライブに対する任意のリードもしくはライト操
作がグループ内の全ドライブをリードもしくはライトする必要がある。第4レベ
ルRAIDは任意所与の時点においてドライブグループ当り2つ以上のI/O操
作を行う能力を与えることにより小さい転送の性能を改善する。各データセクタ
ーはもはやいくつかのドライブにわたって広められることはない。アレイ内に格
納された各データセクターは単一ドライブ上に個別のユニットとして維持される
。アレイ内に格納された情報はデータディスク間でビットレベルではなくセクタ
ーレベルでインターリーブされる。
【0141】 第5レベルRAIDでは、パリティもしくは冗長データだけでなくアレイに格
納されるデータもグループ内の全ドライブにわたって広められる。したがって、
単一チェックドライブはない。第4レベルRAIDでは任意所与の時間にグルー
プ当り2つ以上のリードを実施することが許されたが、各ライトがチェックドラ
イブにアクセスする必要があるためやはりグループ当り1つのライトに制限され
る。第5レベルRAIDはチェックドライブを含む全ドライブにわたってセクタ
ー当りデータおよびチェック情報を分布する。したがって、第5レベルRAID
はグループ当り多数の個別ライト操作をサポートすることができる。各逐次場所
に対するチェック情報はグループ内の異なるドライブ上にあるため、所与の時間
に任意1つのドライブを逐次アクセスする必要がなくそのためライト操作を並列
に実施することができる。
【0142】 さまざまなレベルのRAIDシステム間のいくつかの主要な違いについて概要
を述べてきたが、パターソン、ギブソン、およびカッツの論文“A CASE
FOR REDUNDANT ARRAYS OF INEXPENSIVE
DISCS(RAID)”にこれらの違いの詳細が例と一緒に記載されている。
【0143】 RAID3およびRAID4および5タイプシステム間の特有の違いにより、
さまざまなシステムがさまざまなニーズに特に良く適している。RAID3シス
テムは典型的に高いデータ転送レートを示す必要があるアレイシステムに特に適
しており、そこで優れた性能を示す。一方、RAID4および5システムは典型
的に高集合入出力(I/O)応用で使用されるディスクアレイ内で優れた性能を
示す。このようなインプリメンテーションはビジネス応用や多くのUNIXユー
ザでよくみかける。
【0144】 RAIDレベル5はトランザクション応用に対して最も広く使用されるが、R
AID1システムほどの信頼性はない。特に、RAID5システムはディスクス
ペースを最も効率的に使用ししたがってハードウェアの投資が少なくて済むため
評判がよい。しかしながら、消失した1次データの量がRAID5システム内の
冗長データに基づいてデータを回復する能力を超える場合には、1次データを再
構成することができない。そのため、RAID5システムは完全なデータ消失を
被り易い。
【0145】 対照的に、RAID1システムはもう1つのドライブ上に1次データが完全に
複写されるため(すなわち、データが鏡映される)、完全なデータ消失を被りに
くい。したがって、1次データのいずれかもしくは全部が消失される場合には、
ミラーデータを使用して1次データを完全に再構成することができる。しかしな
がら、RAID1システムはディスクドライブを完全に複写する必要があるため
手がでないコストとなることがある。
【0146】 本発明のハイブリッドデータ再構成システムはRAID5システムのコスト上
の利点とRAID1システムの性能上の利点の両方を提供する。ハイブリッドイ
ンプリメンテーションはユーザにとって重要であることが確認されたデータには
RAID1システムを適用し、他の重要ではないデータには他のRAID技術、
例えばRAID5、を適用することにより遂行される。以下の説明はハイブリッ
ドRAID1/RAID5アーキテクチュアとしての本発明の実施例を示すもの
であるが、当業者ならばRAID1アーキテクチュアとRAID2,RAID3
もしくはRAID4アーキテクチュア等の任意の2つの冗長方式を組み合わせて
同様な利点が得られることがお判りであろう。判り易さと説明の目的だけで、以
下の説明はハイブリッドRAID1/RAID5技術に絞る。
【0147】 ユーザにとって最も重要なデータは最も頻繁にアクセスされるデータであるこ
とが多いため、重要データを識別する効率的技術は高頻度データを識別すること
である。高頻度データとはディスクドライブ上で他のデータよりも著しく余計に
アクセスされるデータのことである。当業者ならば本発明のハイブリッドRAI
D技術はブロックデータシステムとオブジェクト指向データシステムの両方に応
用できることがお判りであろう。
【0148】 最重要データはどれだけ頻繁にデータがアクセスされるかに無関係にユーザが
指示することもできる。例えば、ユーザはあるファイル名、あるファイルタイプ
、あるディレクトリ、もしくはそれらの組合せを重要データとして指示すること
ができる。このデータには重要データをブロック指向データで使用されるブロッ
クアドレス、あるいはオブジェクト指向データで使用されるオブジェクトタイプ
もしくはオブジェクト属性と相関させることによりフラグを付すことができる。
【0149】 重要データがどれだけ頻繁にデータがアクセスされるかの関数として識別され
る場合には、ドライブコントローラ148、もしくはディスクドライブアレイコ
ントローラ602、もしくはコンピュータシステムの他の適切な部分を使用して
データブロックもしくはデータオブジェクトがアクセスされる回数を自動的にロ
グすることができる。このようにして、各データブロックもしくはデータオブジ
ェクトがアクセスされる回数を集めて好ましくは非揮発性メモリにログインする
ことができる。このヒスとグラフィックデータを使用して、前記アクセスされる
データブロックもしくはデータオブジェクト、例えば、閾値頻度(すなわち、閾
値アクセス回数よりも上)がRAID1技術を使用して格納される(すなわち、
鏡映される)。閾値頻度以下でアクセスされる他の全データがRAID2,3,
4もしくは5技術を使用して格納される。したがって、重要データはもう1つの
ディスクドライブ上に完全に鏡映されるため完全消失を被りにくい。逆に、非重
要データはよりスペース効率的RAID技術、実施例ではRAID5技術、を使
用してバックアップされる。これは重要データがユーザにより割り付けられるフ
ラグにより識別されるかあるいはドライブコントローラ148やアレイコントロ
ーラ602で検出される高頻度用途により識別されるかに当てはまる。
【0150】 図34は本発明の1つの特徴に従ってハイブリッドデータ格納および再構成を
実現するディスクドライブアレイ600のブロック図を示す。ディスクドライブ
アレイ600はディスクドライブ604,606,608,610,612のア
レイに接続されたアレイコントローラ602を含んでいる。各ドライブはドライ
ブコントローラ148(図34には図示せず)を含むように示されている。図1
および図25に示すように、アレイコントローラ602はインターコネクト12
2にも接続されている。図示する特定の実施例では、各ディスクドライブ604
,606,608,610,612は重要データ部614、非重要データ部61
6、ミラー場所618およびパリティ場所620を含んでいる。
【0151】 ミラー場所618に割り付けられるスペースは好ましくは重要データ614に
比例する。同様に、各ディスク上のパリティ場所620に与えられるスペースは
好ましくは非重要データ616により占有されるスペースに対応するパリティデ
ータに比例する。しかしながら、当業者ならばミラー場所618およびパリティ
場所620に割り付けられるスペースは特定の応用に対してユーザが所望する性
能と経済とのバランスに応じて修正できることがお判りであろう。しかしながら
、実施例では、重要データ614は比較的少量のディスクスペースしか占有せず
(例えば、9GBドライブの20MB)対応するミラー場所618は比例的に少
量のディスクスペースしか占有しない。したがって、各ディスク上のミラー場所
618に対して使用されるディスクスペースの全体量は比較的小さく、ディスク
スペースと性能との間の妥協は実質がない。
【0152】 図34は1次データ、ミラーデータおよびパリティデータがグループ内の全ド
ライブ604,606,608,610,612にわたって分布されるハイブリ
ッドRAID1/RAID5ドライブアレイ600を示す。したがって、ドライ
ブ604はドライブ606内の重要データに対するミラーデータを保持する。ド
ライブ604はドライブ606内の非重要データに対するパリティデータも含ん
でいる。図示するように同様な関係がドライブ606/608,608/610
,610/612,612/604間にも存在する。各ドライブ604,606
,608,610,612はファイバチャネルインターフェイス等の適切なイン
ターフェイス、もしくは他のシリアルインターフェイスを介して互いに接続され
ている。
【0153】 個別のディスクドライブ604−612の構造および動作は図26および図2
7に示すドライブと実質的に同じである。特に、ディスクドライブはRAIDレ
ベル5アーキテクチュアに関しては同じであるがRAIDレベル1アーキテクチ
ュアに関しては異なる。特に各ドライブ604−612内の各ディスクがパリテ
ィ場所620の他にミラー場所618を含み図26および図27に示すドライブ
はミラー場所を持たない。しかしながら、構造および動作はここに記載したこと
を除けば実質的に同じである。
【0154】 アレイコントローラ602は各ドライブ604−612にミラーデータもしく
はパリティデータとして新しいデータを書き込むよう命令するコマンド要素62
4を含んでいる。コマンド要素624は重要データ検出器要素622から受信し
た出力に従ってドライブ604−612を命令する。重要データ検出器要素62
2はユーザにより予め定められかあるいは高頻度データログ626により割り付
けられるフラグを着信する新しいデータについて走査する。フラグ(例えば、ブ
ロックアドレスあるいはオブジェクト属性)が重要データ検出器622により検
出されると、アレイコマンド要素624により新しいデータはその行き先に書き
込まれ場所618において鏡映される。フラグが検出されなければ、アレイコマ
ンド要素624により新しいデータはその行き先に書き込まれ関連するパリティ
情報がパリティ場所620に書き込まれる。
【0155】 高頻度データログ626は特定のデータブロックもしくはデータオブジェクト
がアクセスされる回数をログするために利用することができる。特定のデータブ
ロックもしくはデータオブジェクトがユーザが定めることができる閾値回数を超
えてアクセスされておれば、高頻度データログ626はそのデータブロックもし
くはデータオブジェクトを重要データ検出器622により検出される重要データ
として指示する。オブジェクト指向データが利用されかつ1つのオブジェクト属
性が既にアクセス頻度を含む場合には、高頻度データログ626を省くことがで
きる。さらに、重要データがアクセス頻度以外の何かの関数として指示される場
合には、データログ626を省くことができる。
【0156】 図35および図36は図34に示すディスクアレイ600のライト動作630
および660を示す。特に、図35はブロック指向データに対するライト動作6
30を示し図36はオブジェクト指向データに対するライト動作660を示す。
【0157】 特に図35に関して、ライト動作630はブロック634で開始するが、デー
タに付加もしくは予め付加されブロック632においてデータを重要データとし
て識別するフラグをユーザが予め指示することができる。限定はしないが、この
ようなフラグはデータに関連するブロックアドレスとすることができる。ユーザ
が重要データに対してフラグを予め指示する場合には、ブロック633に示すロ
グステップはスキップされる。フラグが予め指示されない場合には、ブロック6
33に示すログステップによりライト動作630を開始することができる。
【0158】 フラグは予め指示されないと仮定すると、ブロック633に示すようにコント
ローラ602のコマンド要素624がログ626内の新しいデータのブロックア
ドレスを読み出してログする。ブロックアドレスがアクセスされる回数(すなわ
ち、頻度)が追跡されログ626内に記録される。アクセス回数(頻度)が閾値
を超える場合には、そのブロックは重要データとしてフラグを付される。
【0159】 新しいデータを受信すると、ブロック636に示すように、コントローラ60
0はログ626を調べて新しいデータが仕向けられるブロックアドレスに重要で
あるとしてフラグが付されているかどうかを確認する。判断ブロック638に示
すようにフラグが検出されると、ブロック640に示すように新しいデータは重
要データとして処理されてその行き先およびミラー場所618に書き込まれる。
判断ブロック638に示すようにフラグが検出されなければ、ブロック639に
示すように要素624は頻度値を更新しブロック642−650に示すように、
RAID5ルーチンが実行される。当業者ならば、限定はしないが、RAID2
,3,4ルーチンを含む他の適切なRAIDもしくは他の冗長ルーチンを利用で
きることがお判りであろう。
【0160】 RAID5ルーチンでは、目的場所の古いデータはブロック642に示すよう
に読み出される。パリティ場所の古いパリティデータもブロック644に示すよ
うに読み出される。ブロック646に示すように、目的場所の古いデータは新し
いデータにより排他的ORされて中間パリティデータが得られる。ブロック64
8に示すように、次に中間パリティデータは古いパリティデータにより排他的O
Rされて新しいパリティデータが得られる。ブロック650に示すように、新し
いパリティデータは次に関連するパリティ場所620に書き込まれる。判断ブロ
ック638に従ってRAID1ルーチンもしくはRAID5ルーチンが開始され
、ブロック652に示すように新しいデータが目的場所にも書き込まれる。目的
場所に新しいデータが書き込まれると、ブロック654に示すようにライト操作
630が完了する。
【0161】 次に、オブジェクト指向データに使用するライト操作660を示す図36を参
照する。ライト操作660がブロック662で開始される。ブロックの重要性を
オブジェクトタイプに基づいて予め指示することができる。例えば、ディレクト
リ情報(POL166等)、もしくは記憶装置の構造やその上に格納されるデー
タ(DCO154,DAO158,PCO164等)を定義する任意他のオブジ
ェクト、もしくはそれらの任意の組合せを常に鏡映することが望ましい。さらに
、OID、ファイル名、もしくは他の属性を使用して、ユーザもしくは他のエン
ティティがあるオブジェクトをオブジェクト−バイ−オブジェクトベースで重要
であると予め指示することができる。したがって、コマンド要素624はオブジ
ェクトを受信し調べて予め重要性が指示されているかを確認する。それはブロッ
ク664および666に示されている。実施例では、このような事前指示はコン
トローラ602内のメモリに格納される。判断ブロック668に示すように重要
性が検出されると、新しいデータがブロック670に示すようにミラー場所61
8またブロック682に示すようにその行き先に書き込まれる。
【0162】 判断ブロック668に示すように予め指示した重要性が検出されなければ、要
素624は次にアクセスされるオブジェクトが重要であるかどうかをアクセスさ
れる頻度に基づいて確認する。要素624は実施例ではOIDおよびアクセス頻
度を示す関連する頻度値を含む高頻度データログ626を調べることによりそれ
を行う。それはブロック669に示されている。頻度に基づいてオブジェクトが
重要であれば(その関連する頻度値が所定のあるいは適応的に調節された閾値を
超える)、ブロック670に示すように要素624はデータを鏡映する。
【0163】 頻度に基づいてオブジェクトが重要でなければ、要素624はOIDをログ6
26にログインし(それが新しいオブジェクトであれば)関連する頻度値を更新
する。それはブロック671に示されている。次に、RAID2,3,4もしく
は5インプリメンテーションあるいは他の冗長方式に従ってデータが格納される
【0164】 RAID5インプリメンテーションでは、ブロック672に示すように目的場
所において古いデータが読み出される。次に、ブロック674に示すようにパリ
ティ場所において古いパリティデータが読み出される。ブロック676に示すよ
うに、古いデータは目的場所において新しいデータと排他的ORされて中間パリ
ティデータが得られる。ブロック678に示すように、中間パリティデータは古
いパリティデータと排他的ORされて新しいパリティデータが得られる。ブロッ
ク680および図34に示すように、新しいパリティデータはパリティ場所に書
き込まれる。いずれにせよ判断ブロック668において重要性が検出され、ブロ
ック682に示すように新しいデータが目的場所に書き込まれる。新しいデータ
が目的場所に書き込まれると、ブロック684に示すようにライト操作660が
完了する。
【0165】 また、図35および図36で述べたステップは1つ以上のいずれかのドライブ
604−612、実施例では目的ドライブ、に関連するドライブコントローラ1
48上で実施することができ、次にデータが適切なドライブコントローラに伝達
されて適切なドライブ上に書き込まれることもお判り願いたい。その場合、ドラ
イブコントローラには要素622−626が設けられる。処理は図35および図
36に示すものと同じである。
【0166】 また、頻度値は生の数もしくはドライブ用途に基づいた変数として予め指示で
きることをお判り願いたい。例えば、閾値は合計ドライブアクセスのパーセンテ
ージとしてセットすることができアクセスごとに(すなわち、リードもしくはラ
イト操作ごとに)適応的に更新することができる。さらに、例えば、各オブジェ
クトタイプあるいはオブジェクトタイプグループに1つの、多数の閾値を使用す
ることができる。他の適応技術も使用することができる。閾値が適応的にセット
される場合には、各ブロックもしくはオブジェクトに対する頻度値をアクセスご
とに更新しなければならない。
【0167】 さらに、単純に直接符号化方式を使用して残りのデータを格納しながら冗長方
式を使用して重要データを格納することにより本発明の利点を得ることができる
。直接符号化方式とは、符号化されたデータが単純にディスクドライブ上に格納
され冗長データが付加されないことを意味する。したがって、重要データは任意
他の冗長方式に従って鏡映もしくは格納することができ、非重要データは符号化
形式で単一インスタンスとして単純に格納される。このような場合、再度図34
に関して、非重要データ616はパリティ場所620に対応するパリティデータ
が格納されていない。したがって、図34においてパリティ場所620として消
費されるスペースは付加重要データ、非重要データ、あるいは重要データに対応
する冗長データを格納するのに利用できる。同様に、直接符号化方式だけでなく
2つ以上の冗長方式を使用して本発明を実施することができる。その場合、非常
に重要な情報は高度冗長方式に従って格納することができ、適度に重要な情報は
より冗長性の低い冗長方式に従って格納することができ、非重要情報は直接符号
化方式に従って格納することができる。
【0168】 また、“アレイ”という用語は、異なる部屋、異なる建物、あるいは長距離れ
た場所等の地理的に互いに離れた場所に収容されたディスクドライブの集まりを
意味するつもりであることをお判り願いたい。
【0169】 前記したことからお判りのように、図34に示すハイブリッドアレイアーキテ
クチュア600に加えて、図35および図36に示すハイブリッドアクセス操作
630,660がRAID5システムのコスト上の利点およびRAID1システ
ムの信頼度面の利点を提供する。
【0170】 本発明の1つの実施例はディスクドライブアレイ600であり、それは複数の
ディスクドライブ604−612およびそれに作動可能に接続された少なくとも
1つのコントローラ602を含み、第1の冗長方式に従ってディスクドライブ6
04−612上にデータの第1の部分を受信して格納し第2の冗長方式に従って
ディスクドライブ上にデータの第2の部分を格納するように構成されている。第
1の冗長方式は好ましくは第2の冗長方式よりも高い冗長性を提供する。
【0171】 データの第1の部分はそれとは異なる冗長データを含みコントローラ602は
第1の冗長方式に従ってデータの第1の部分および冗長データをディスクドライ
ブ604−612上に格納するように構成されている。
【0172】 コントローラ602はデータの第2の部分を複数のディスクドライブの中の第
1のドライブもしくはドライブセット上に格納しデータの第1の部分を複数のデ
ィスクドライブ604−612の中の第2のドライブもしくはドライブセット上
に鏡映するように構成されている。
【0173】 データの第1の部分はそれよりもより頻繁にアクセスされるデータ、メタデー
タ等、を含んでいる。
【0174】 コントローラ602はデータの第1および第2の部分をオブジェクトとして構
造的配置内に格納するように構成することができデータの第1の部分は構造的配
置を示す情報を含む構造的オブジェクトを含むことができる。
【0175】 このような状況において、コントローラ602はオブジェクトをパーティショ
ン内に格納するように構成することができ構造的オブジェクトは装置制御オブジ
ェクト、装置連関オブジェクト、パーティション制御オブジェクト、もしくはパ
ーティションオブジェクトリストを含むことができる。
【0176】 データの第1および第2の部分は各々が属性を含むオブジェクトとして格納す
ることができ、データの第2の部分は属性を含んでいる。
【0177】 第1の冗長方式はRAIDレベル2,3,4もしくは5とすることができ第2
の冗長方式はRAIDレベル1とすることができる。
【0178】 コントローラ602はデータがどれだけ頻繁にアクセスされるかを確認するよ
うに構成することができどれだけ頻繁にアクセスされるかに基づいてデータを第
1および第2の部分へ分割する。
【0179】 このような状況において、コントローラ602は第1および第2のデータ部分
を関連するファイル名を有するオブジェクトとして格納するように構成すること
ができファイル名に基づいてデータがアクセスされる頻度を追跡することができ
る。
【0180】 あるいは、コントローラ602は第1および第2のデータ部分を、各々が関連
するオブジェクトタイプを有しオブジェクトタイプに基づいてデータを第1およ
び第2のデータ部分に分割するように構成された、オブジェクトとして格納する
ように構成することができる。
【0181】 データはユーザ入力に基づいて第1および第2のデータ部分に分割することが
できる。
【0182】 各ディスクドライブ604−612はドライブコントローラ148を含むこと
ができコントローラ602は1つ以上のドライブコントローラ148を含んでい
る。
【0183】 ホストコントローラをドライブコントローラ148に接続することができコン
トローラ602はホストコントローラとすることができる。
【0184】 本発明のもう1つの実施例では、ディスクドライブアレイ600はディスクド
ライブ604−612のアレイ、およびディスクドライブ604−612間で選
択的にデータを鏡映するアレイコントローラ手段602を含んでいる。
【0185】 本発明のさらにもう1つの実施例では、ディスクドライブ内のディスク上にデ
ータを格納する方法は第1の冗長方式に従ってデータの第1の部分を格納し、第
1の冗長方式とは異なる第2の冗長方式に従ってデータの第2の部分を格納する
ことを含んでいる。
【0186】 この方法はユーザ入力に基づいて、例えばデータがアクセスされる頻度に基づ
いて、あるいはデータの内容に基づいてデータが第1の部分であるか第2の部分
であるかを確認することを含んでいる。
【0187】 本発明のさまざまな実施例の非常にたくさんの特徴および利点についてその構
造および機能の詳細と共に説明してきたが、この開示は単なる説明用であり詳細
、特に部品の構造および配列に関して、本発明の原理の範囲内で添付特許請求の
範囲が表現される用語の広範な一般的意味合いにより示される全範囲まで変更を
行うことができる。例えば、本発明の範囲および精神を逸脱することなく実質的
に同じ機能性を維持しながら使用する特定のインターフェイス方法、冗長方式も
しくはエラー検出やエラー修正方式に応じて特定の要素を変更することができる
【図面の簡単な説明】
【図1】 本発明の1つの特徴に従ったネットワーク付属記憶システムのブロック図であ
る。
【図2】 本発明の1つの特徴に従ったオブジェクトモデルである。
【図3−1】 記憶装置上のオブジェクトがリクエスタによりアクセスされる第1の構成のブ
ロック図である。
【図3−2】 記憶装置上のオブジェクトがリクエスタによりアクセスされる第2の構成のブ
ロック図である。
【図4】 本発明の1つの特徴に従ったディスクドライブの斜視図である。
【図5】 リクエスタによるオブジェクトのアクセスを示す機能的ブロック図である。
【図6】 本発明の1つの特徴に従って仕切られた記憶媒体の一部を示す図である。
【図7−1】 本発明の1つの特徴に従ったリクエスタによるオブジェクトのアクセスを示す
フロー図である。
【図7−2】 本発明の1つの特徴に従ったリクエスタによるオブジェクトのアクセスを示す
フロー図である。
【図8】 本発明の1つの特徴に従ったオブジェクトの生成を示すフロー図である。
【図9】 本発明の1つの特徴に従ってオブジェクトを開くおよび更新することを示すフ
ロー図である。
【図10】 本発明の1つの特徴に従ったオブジェクトへの書込みを示すフロー図である。
【図11】 本発明の1つの特徴に従ってリードオンリーの目的でオブジェクトを開くこと
を示すフロー図である。
【図12】 本発明の1つの特徴に従ったオブジェクトの読出しを示すフロー図である。
【図13】 本発明の1つの特徴に従ってオブジェクトを閉じることを示すフロー図である
【図14】 本発明の1つの特徴に従ったオブジェクトの除去を示すフロー図である。
【図15】 本発明の1つの特徴に従ったパーティションの生成を示すフロー図である。
【図16】 本発明の1つの特徴に従ったパーティションの除去を示すフロー図である。
【図17】 本発明の1つの特徴に従ったオブジェクトの輸出を示すフロー図である。
【図18】 本発明の1つの特徴に従ってオブジェクト属性を得ることを示すフロー図であ
る。
【図19】 本発明の1つの特徴に従ってオブジェクト属性をセットもしくは修正すること
を示すフロー図である。
【図20】 本発明の1つの特徴に従ってロック属性を読み出すことを示すフロー図である
【図21】 本発明の1つの特徴に従ってロック属性をセットすることを示すフロー図であ
る。
【図22】 本発明の1つの特徴に従ってオブジェクトのロック属性をリセットすることを
示すフロー図である。
【図23】 本発明の1つの特徴に従って装置連関を得ることを示すフロー図である。
【図24】 本発明の1つの特徴に従って装置連関をセットすることを示すフロー図である
【図25】 本発明の1つの特徴に従って実現されるディスクドライブアレイを示すブロッ
ク図である。
【図26】 本発明の1つの特徴に従った目的ディスクドライブを示すブロック図である。
【図27】 本発明の1つの特徴に従ったパリティディスクドライブを示すブロック図であ
る。
【図28】 本発明の1つの特徴に従ったパリティグループの生成を示すブロック図である
【図29】 本発明の1つの特徴に従ってパリティ情報が更新されるライト操作を示すフロ
ー図である。
【図30】 本発明の1つの特徴に従ったデータ構造を示す図である。
【図31】 本発明の1つの特徴に従って埋め込んだ場所情報を利用するディスクドライブ
のブロック図である。
【図32】 図31に示すシステムの操作を示すフロー図である。
【図33】 本発明のもう1つの特徴に従って埋め込んだ場所情報を利用するデータ記憶装
置のもう1つの実施例を示すブロック図である。
【図34】 本発明の1つの特徴に従ったハイブリッドデータ再構成システムを実現するデ
ィスクドライブアレイを示すブロック図である。
【図35】 それぞれブロック指向データおよびオブジェクト指向データに対するハイブリ
ッドデータ再構成方法のライト操作を示すフロー図である。
【図36】 それぞれブロック指向データおよびオブジェクト指向データに対するハイブリ
ッドデータ再構成方法のライト操作を示すフロー図である。

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 ディスクドライブアレイであって、 複数のディスクドライブと、 複数のディスクドライブに作動可能に接続され、データを受信してその第1の
    部分を第1の冗長方式に従ってディスクドライブ上に格納しその第2の部分を第
    2の冗長方式に従ってディスクドライブ上に格納するように構成された少なくと
    も1つのコントローラと、 を含むディスクドライブアレイ。
  2. 【請求項2】 請求項1記載のディスクドライブアレイであって、第1の冗
    長方式は第2の冗長方式よりも高い冗長性を与えるディスクドライブアレイ。
  3. 【請求項3】 請求項2記載のディスクドライブアレイであって、データの
    第1の部分はそれとは異なる冗長データを含みコントローラはデータの第1の部
    分および冗長データを第1の冗長方式に従ってディスクドライブ上に格納するよ
    うに構成されているディスクドライブアレイ。
  4. 【請求項4】 請求項3記載のディスクドライブアレイであって、コントロ
    ーラはデータの第2の部分を複数のディスクドライブの第1のセット上に格納し
    てデータの第1の部分を複数のディスクドライブの第2のセット上に鏡映するよ
    うに構成されているディスクドライブアレイ。
  5. 【請求項5】 請求項4記載のディスクドライブアレイであって、コントロ
    ーラはデータの第2の部分を複数のディスクドライブの中の第1のディスクドラ
    イブ上に格納してデータの第1の部分を複数のディスクドライブの中の第2のデ
    ィスクドライブ上に鏡映するように構成されているディスクドライブアレイ。
  6. 【請求項6】 請求項2記載のディスクドライブアレイであって、データの
    第1の部分はデータの第2の部分よりも頻繁にアクセスされるデータを含むディ
    スクドライブアレイ。
  7. 【請求項7】 請求項2記載のディスクドライブアレイであって、コントロ
    ーラはデータの第1および第2の部分をオブジェクトとして構造的配置内に格納
    しデータの第1の部分は構造的配置を示す情報を含む構造的オブジェクトを含む
    ディスクドライブアレイ。
  8. 【請求項8】 請求項7記載のディスクドライブアレイであって、コントロ
    ーラはオブジェクトをパーティション内に格納するように構成されており構造的
    オブジェクトは装置制御オブジェクト、装置連関オブジェクト、パーティション
    制御オブジェクトおよびパーティションオブジェクトリストの中の1つを含むデ
    ィスクドライブアレイ。
  9. 【請求項9】 請求項2記載のディスクドライブアレイであって、データの
    第1および第2の部分は各々が属性を含むオブジェクトとして格納され、データ
    の第2の部分は属性を含むディスクドライブアレイ。
  10. 【請求項10】 ディスクドライブ内でディスク上にデータを格納する方法
    であって、該方法は、 (a) 第1の冗長方式に従ってデータの第1の部分を格納するステップと、 (b) 第1の冗長方式とは異なる第2の冗長方式に従ってデータの第2の部
    分を格納するステップと、 を含む方法。
  11. 【請求項11】 ディスクドライブアレイであって、 複数のディスクドライブと、 複数のディスクドライブに作動可能に接続され、データを受信してその第1の
    部分を第1の冗長方式に従ってディスクドライブ上に格納しその第2の部分を直
    接符号化方式に従ってディスクドライブ上に格納するように構成された少なくと
    も1つのコントローラと、 を含むディスクドライブアレイ。
JP2000515228A 1997-10-08 1998-10-07 ディスクドライブアレイおよびデータ格納方法 Pending JP2001519563A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US6266397P 1997-10-08 1997-10-08
US60/062,663 1997-10-08
PCT/US1998/021080 WO1999018507A1 (en) 1997-10-08 1998-10-07 Hybrid data storage and reconstruction system and method for a data storage device

Publications (1)

Publication Number Publication Date
JP2001519563A true JP2001519563A (ja) 2001-10-23

Family

ID=22044016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000515228A Pending JP2001519563A (ja) 1997-10-08 1998-10-07 ディスクドライブアレイおよびデータ格納方法

Country Status (7)

Country Link
US (1) US6704838B2 (ja)
JP (1) JP2001519563A (ja)
KR (1) KR100564664B1 (ja)
CN (1) CN1281560A (ja)
DE (1) DE19882723T1 (ja)
GB (1) GB2345366B (ja)
WO (1) WO1999018507A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011077490A1 (ja) * 2009-12-24 2011-06-30 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
WO2011077489A1 (ja) * 2009-12-24 2011-06-30 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
JP2015503156A (ja) * 2011-11-22 2015-01-29 シンプリヴィティ・コーポレーション ディスク記憶に消去符号化データを割り当てるための方法および装置

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138126A (en) * 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US8332478B2 (en) * 1998-10-01 2012-12-11 Digimarc Corporation Context sensitive connected content
US6742137B1 (en) * 1999-08-17 2004-05-25 Adaptec, Inc. Object oriented fault tolerance
US6516425B1 (en) * 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US6826711B2 (en) * 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US7266555B1 (en) 2000-03-03 2007-09-04 Intel Corporation Methods and apparatus for accessing remote storage through use of a local device
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US6952737B1 (en) * 2000-03-03 2005-10-04 Intel Corporation Method and apparatus for accessing remote storage in a distributed storage cluster architecture
US7506034B2 (en) * 2000-03-03 2009-03-17 Intel Corporation Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user
US7203731B1 (en) 2000-03-03 2007-04-10 Intel Corporation Dynamic replication of files in a network storage system
US7281168B1 (en) 2000-03-03 2007-10-09 Intel Corporation Failover architecture for local devices that access remote storage
US7117293B1 (en) * 2000-05-12 2006-10-03 Apple Computer, Inc. Method and apparatus for archiving and unarchiving objects
JP2003536195A (ja) * 2000-06-09 2003-12-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記憶メディアで利用可能なメモリ領域を暗黙に分割する方法
WO2002015018A1 (en) * 2000-08-11 2002-02-21 3Ware, Inc. Architecture for providing block-level storage access over a computer network
US6725393B1 (en) * 2000-11-06 2004-04-20 Hewlett-Packard Development Company, L.P. System, machine, and method for maintenance of mirrored datasets through surrogate writes during storage-area network transients
JP4114318B2 (ja) * 2000-12-26 2008-07-09 ソニー株式会社 データ記録方法、データ記録装置及び記録媒体
US7266556B1 (en) 2000-12-29 2007-09-04 Intel Corporation Failover architecture for a distributed storage system
US6748502B2 (en) * 2001-01-12 2004-06-08 Hitachi, Ltd. Virtual volume storage
US7418620B1 (en) 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
US7461139B2 (en) * 2001-08-17 2008-12-02 Micron Technology, Inc. Network computer providing mass storage, broadband access, and other enhanced functionality
US7350206B2 (en) * 2001-11-05 2008-03-25 Hewlett-Packard Development Company, L.P. Method to reduce provisioning time in shared storage systems by preemptive copying of images
US7134139B2 (en) * 2002-02-12 2006-11-07 International Business Machines Corporation System and method for authenticating block level cache access on network
US7007047B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
US7734867B1 (en) * 2002-05-17 2010-06-08 Hewlett-Packard Development Company, L.P. Data storage using disk drives in accordance with a schedule of operations
JP3966459B2 (ja) 2002-05-23 2007-08-29 株式会社日立製作所 ストレージ機器管理方法、システム、およびプログラム
US7024586B2 (en) * 2002-06-24 2006-04-04 Network Appliance, Inc. Using file system information in raid data reconstruction and migration
US7346906B2 (en) * 2002-07-09 2008-03-18 International Business Machines Corporation Workload management in a computing environment
US20040024954A1 (en) * 2002-07-30 2004-02-05 Rust Robert A. Time stamp management system for disk arrays
US7707151B1 (en) 2002-08-02 2010-04-27 Emc Corporation Method and apparatus for migrating data
AU2003273312A1 (en) 2002-09-10 2004-04-30 Exagrid Systems, Inc. Method and apparatus for integrating primary data storage with local remote data protection
US7114116B2 (en) * 2002-09-13 2006-09-26 Sun Microsystems, Inc. Accelerated Galois data integrity crosscheck system and method
US7076606B2 (en) * 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
US7774466B2 (en) * 2002-10-17 2010-08-10 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed storage area network system
KR101197513B1 (ko) * 2002-10-22 2012-11-09 제이슨 에이. 설리반 동적 모듈식 처리 유닛을 제공하기 위한 시스템 및 방법
BR0315624A (pt) 2002-10-22 2005-08-23 Jason A Sullivan Sistema de processamento em computador personalizável robusto
WO2004038526A2 (en) 2002-10-22 2004-05-06 Isys Technologies Non-peripherals processing control module having improved heat dissipating properties
US7546482B2 (en) * 2002-10-28 2009-06-09 Emc Corporation Method and apparatus for monitoring the storage of data in a computer system
US7376764B1 (en) 2002-12-10 2008-05-20 Emc Corporation Method and apparatus for migrating data in a computer system
US7043609B2 (en) * 2003-02-03 2006-05-09 Sun Microsystems, Inc. Method and apparatus for protecting a state associated with a memory structure
JP4322031B2 (ja) 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
US7805583B1 (en) 2003-04-23 2010-09-28 Emc Corporation Method and apparatus for migrating data in a clustered computer system environment
US7080221B1 (en) 2003-04-23 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a clustered computer system environment
US7093088B1 (en) 2003-04-23 2006-08-15 Emc Corporation Method and apparatus for undoing a data migration in a computer system
US7263590B1 (en) 2003-04-23 2007-08-28 Emc Corporation Method and apparatus for migrating data in a computer system
US7415591B1 (en) 2003-04-23 2008-08-19 Emc Corporation Method and apparatus for migrating data and automatically provisioning a target for the migration
WO2004099988A1 (en) * 2003-05-05 2004-11-18 Trustees Of Boston University Data storage distribution and retrieval
US20050038954A1 (en) * 2003-06-04 2005-02-17 Quantum Corporation Storage drive having universal format across media types
JP4266725B2 (ja) 2003-06-27 2009-05-20 株式会社日立製作所 記憶システム
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US7325157B2 (en) * 2003-11-03 2008-01-29 Samsung Electronics Co., Ltd Magnetic memory devices having selective error encoding capability based on fault probabilities
US7234074B2 (en) * 2003-12-17 2007-06-19 International Business Machines Corporation Multiple disk data storage system for reducing power consumption
US20050166022A1 (en) * 2004-01-28 2005-07-28 Hitachi, Ltd. Method and apparatus for copying and backup in storage systems
JP2005215850A (ja) 2004-01-28 2005-08-11 Hitachi Ltd ストレージ装置、ストレージ装置の制御方法、及びストレージシステム
US7334156B2 (en) * 2004-02-13 2008-02-19 Tandberg Data Corp. Method and apparatus for RAID conversion
US20050235063A1 (en) * 2004-04-15 2005-10-20 Wilson Christopher S Automatic discovery of a networked device
US7681007B2 (en) * 2004-04-15 2010-03-16 Broadcom Corporation Automatic expansion of hard disk drive capacity in a storage device
US7395402B2 (en) * 2004-04-15 2008-07-01 Broadcom Corporation Method and system of data storage capacity allocation and management using one or more data storage drives
US20050235283A1 (en) * 2004-04-15 2005-10-20 Wilson Christopher S Automatic setup of parameters in networked devices
US20050231849A1 (en) * 2004-04-15 2005-10-20 Viresh Rustagi Graphical user interface for hard disk drive management in a data storage system
US7304905B2 (en) * 2004-05-24 2007-12-04 Intel Corporation Throttling memory in response to an internal temperature of a memory device
US7203871B2 (en) 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
US7523285B2 (en) * 2004-08-20 2009-04-21 Intel Corporation Thermal memory control
KR100678893B1 (ko) * 2004-09-16 2007-02-07 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
US7330955B2 (en) * 2004-10-18 2008-02-12 Seagate Technology Llc Recovery record for updating a system configuration
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
US7386758B2 (en) * 2005-01-13 2008-06-10 Hitachi, Ltd. Method and apparatus for reconstructing data in object-based storage arrays
US8065350B2 (en) * 2005-01-31 2011-11-22 Broadcom Corporation Method and system for flexibly providing shared access to data pools
US7966353B2 (en) * 2005-01-31 2011-06-21 Broadcom Corporation Method and system for flexibly providing shared access to non-data pool file systems
JP2006244123A (ja) * 2005-03-03 2006-09-14 Fujitsu Ltd データストレージシステム及びデータストレージ制御装置
US7940929B1 (en) * 2005-11-23 2011-05-10 Beyondcore, Inc. Method for processing documents containing restricted information
US10176338B2 (en) 2005-11-23 2019-01-08 Salesforce.Com Secure distributed storage of documents containing restricted information, via the use of keysets
US10127130B2 (en) 2005-03-18 2018-11-13 Salesforce.Com Identifying contributors that explain differences between a data set and a subset of the data set
US7343468B2 (en) * 2005-04-14 2008-03-11 International Business Machines Corporation Method and apparatus for storage provisioning automation in a data center
US20060248252A1 (en) * 2005-04-27 2006-11-02 Kharwa Bhupesh D Automatic detection of data storage functionality within a docking station
TWI285313B (en) * 2005-06-22 2007-08-11 Accusys Inc XOR circuit, RAID device capable of recover a plurality of failures and method thereof
US8135763B1 (en) * 2005-09-30 2012-03-13 Emc Corporation Apparatus and method for maintaining a file system index
US20070089023A1 (en) * 2005-09-30 2007-04-19 Sigmatel, Inc. System and method for system resource access
US7577809B2 (en) * 2005-11-02 2009-08-18 Promethean Storage Llc Content control systems and methods
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US20070106713A1 (en) * 2005-11-08 2007-05-10 Network Blackbox, Inc. Hazard protected file backup system
US7571368B1 (en) 2006-01-26 2009-08-04 Promethean Storage Llc Digital content protection systems and methods
US7831793B2 (en) * 2006-03-01 2010-11-09 Quantum Corporation Data storage system including unique block pool manager and applications in tiered storage
US7426606B2 (en) * 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
US7584335B2 (en) * 2006-11-02 2009-09-01 International Business Machines Corporation Methods and arrangements for hybrid data storage
US8667379B2 (en) * 2006-12-20 2014-03-04 International Business Machines Corporation Apparatus and method to generate, store, and read, a plurality of error correction coded data sets
US8239706B1 (en) * 2007-01-03 2012-08-07 Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Data retrieval system and method that provides retrieval of data to any point in time
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US7657572B2 (en) * 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
US7958303B2 (en) * 2007-04-27 2011-06-07 Gary Stephen Shuster Flexible data storage system
US8103844B2 (en) * 2008-02-01 2012-01-24 Donald Rozinak Beaver Secure direct platter access
US20090196417A1 (en) * 2008-02-01 2009-08-06 Seagate Technology Llc Secure disposal of storage data
US20100031057A1 (en) * 2008-02-01 2010-02-04 Seagate Technology Llc Traffic analysis resistant storage encryption using implicit and explicit data
US8019728B2 (en) * 2008-04-17 2011-09-13 Nec Laboratories America, Inc. Dynamically quantifying and improving the reliability of distributed data storage systems
US8255774B2 (en) 2009-02-17 2012-08-28 Seagate Technology Data storage system with non-volatile memory for error correction
US8250299B2 (en) 2009-05-20 2012-08-21 International Business Machines Corporation Multi-host concurrent writing to magnetic tape
CN101923553A (zh) * 2009-06-11 2010-12-22 鸿富锦精密工业(深圳)有限公司 Fat文件系统的安装方法
US8122284B2 (en) * 2009-06-18 2012-02-21 Taylor Tracy M N+1 failover and resynchronization of data storage appliances
US9235585B1 (en) 2010-06-30 2016-01-12 Emc Corporation Dynamic prioritized recovery
US9367561B1 (en) 2010-06-30 2016-06-14 Emc Corporation Prioritized backup segmenting
US9697086B2 (en) 2010-06-30 2017-07-04 EMC IP Holding Company LLC Data access during data recovery
US8433685B2 (en) * 2010-08-18 2013-04-30 Hewlett-Packard Development Company, L.P. Method and system for parity-page distribution among nodes of a multi-node data-storage system
US8793250B1 (en) 2010-12-17 2014-07-29 Amazon Technologies, Inc. Flexible partitioning of data
US9235588B1 (en) * 2010-12-29 2016-01-12 Symantec Corporation Systems and methods for protecting deduplicated data
CN102207831B (zh) * 2011-07-04 2013-08-07 华为数字技术(成都)有限公司 磁盘阵列的数据读写方法及装置
US8909891B2 (en) * 2011-07-21 2014-12-09 International Business Machines Corporation Virtual logical volume for overflow storage of special data sets
JP5744244B2 (ja) * 2011-10-19 2015-07-08 株式会社日立製作所 ストレージシステム
US10802687B2 (en) 2011-12-04 2020-10-13 Salesforce.Com, Inc. Displaying differences between different data sets of a process
US10796232B2 (en) 2011-12-04 2020-10-06 Salesforce.Com, Inc. Explaining differences between predicted outcomes and actual outcomes of a process
KR20130064521A (ko) * 2011-12-08 2013-06-18 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
EP2672387B1 (en) 2012-06-04 2018-08-01 Amplidata NV A distributed object storage system
WO2014045329A1 (en) * 2012-09-24 2014-03-27 Hitachi, Ltd. Storage system and storage control method
CN102999399B (zh) * 2012-11-13 2016-08-03 浙江宇视科技有限公司 一种jbod阵列自动恢复存储的方法和装置
CN102968358A (zh) * 2012-11-13 2013-03-13 浪潮电子信息产业股份有限公司 一种软raid1部署系统的快速恢复方法
WO2014138448A1 (en) * 2013-03-06 2014-09-12 Sullivan Jason A Systems and methods for providing dynamic hybrid storage
US9213611B2 (en) 2013-07-24 2015-12-15 Western Digital Technologies, Inc. Automatic raid mirroring when adding a second boot drive
EP3201778A4 (en) * 2014-10-03 2018-04-25 Agency for Science, Technology and Research Method for optimizing reconstruction of data for a hybrid object storage device
CN104317730B (zh) * 2014-10-27 2018-02-06 浪潮(北京)电子信息产业有限公司 一种基于二次分配管理磁盘扩展空间方法及系统
US9645897B2 (en) * 2015-03-11 2017-05-09 International Business Machines Corporation Using duplicated data to enhance data security in RAID environments
US10097636B1 (en) 2015-06-15 2018-10-09 Western Digital Technologies, Inc. Data storage device docking station
US9760730B2 (en) * 2015-08-28 2017-09-12 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
CN109683810B (zh) * 2017-08-15 2022-02-18 金钱猫科技股份有限公司 一种读写方法及终端
CN109725823B (zh) * 2017-10-27 2021-11-16 伊姆西Ip控股有限责任公司 用于管理混合存储盘阵列的方法和设备

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3769453A (en) 1972-08-17 1973-10-30 Ibm Finite memory adaptive predictor
US3987419A (en) * 1974-12-05 1976-10-19 Goodyear Aerospace Corporation High speed information processing system
US4159412A (en) * 1977-02-11 1979-06-26 Texas Instruments Incorporated Magnetic bubble memory chip synchronization and redundancy
US4090251A (en) 1977-06-09 1978-05-16 Texas Instruments Incorporated Bubble memory redundancy storage
US4458334A (en) * 1977-05-16 1984-07-03 Texas Instruments Incorporated Redundancy map storage for bubble memories
US4161778A (en) 1977-07-19 1979-07-17 Honeywell Information Systems, Inc. Synchronization control system for firmware access of high data rate transfer bus
US4221933A (en) 1978-12-21 1980-09-09 Cornell Ronald G Data storage and retrieval structure for a message storage system
US4389715A (en) 1980-10-06 1983-06-21 Inmos Corporation Redundancy scheme for a dynamic RAM
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US4523275A (en) 1980-11-14 1985-06-11 Sperry Corporation Cache/disk subsystem with floating entry
US4454595A (en) 1981-12-23 1984-06-12 Pitney Bowes Inc. Buffer for use with a fixed disk controller
JPS59100964A (ja) 1982-12-01 1984-06-11 Hitachi Ltd ディスク制御システム及びその並列データ転送方法
JPS59153251A (ja) 1983-02-18 1984-09-01 Toshiba Corp デイスクキヤツシユシステム
US4591973A (en) 1983-06-06 1986-05-27 Sperry Corporation Input/output system and method for digital computers
FR2561428B1 (fr) 1984-03-16 1986-09-12 Bull Sa Procede d'enregistrement dans une memoire a disques et systeme de memoire a disques
JPH0711789B2 (ja) 1985-12-28 1995-02-08 株式会社日立製作所 同時デ−タ転送制御装置
US4722085A (en) 1986-02-03 1988-01-26 Unisys Corp. High capacity disk storage system having unusually high fault tolerance level and bandpass
US4761785B1 (en) 1986-06-12 1996-03-12 Ibm Parity spreading to enhance storage access
USRE34100E (en) 1987-01-12 1992-10-13 Seagate Technology, Inc. Data error correction system
CA1296103C (en) 1987-06-02 1992-02-18 Theodore Jay Goodlander High-speed, high capacity, fault-tolerant, error-correcting storage system
US4942579A (en) 1987-06-02 1990-07-17 Cab-Tek, Inc. High-speed, high-capacity, fault-tolerant error-correcting storage system
US4870643A (en) 1987-11-06 1989-09-26 Micropolis Corporation Parallel drive array storage system
US5218689A (en) 1988-08-16 1993-06-08 Cray Research, Inc. Single disk emulation interface for an array of asynchronously operating disk drives
US5148432A (en) 1988-11-14 1992-09-15 Array Technology Corporation Arrayed disk drive system and method
JP2780821B2 (ja) 1989-09-22 1998-07-30 株式会社日立製作所 オンライン中のダンプ方式およびディスクサブシステム
JPH0833864B2 (ja) 1990-01-30 1996-03-29 富士通株式会社 データ保全方式
US5220569A (en) 1990-07-09 1993-06-15 Seagate Technology, Inc. Disk array with error type indication and selection of error correction method
US5210860A (en) 1990-07-20 1993-05-11 Compaq Computer Corporation Intelligent disk array controller
US5191584A (en) 1991-02-20 1993-03-02 Micropolis Corporation Mass storage array with efficient parity calculation
US5212799A (en) 1991-07-31 1993-05-18 Ncr Corporation Method and apparatus for storing a data block in multiple memory banks within a computer
US5289418A (en) 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5331646A (en) 1992-05-08 1994-07-19 Compaq Computer Corporation Error correcting code technique for improving reliablility of a disk array
CA2097762A1 (en) 1992-06-05 1993-12-06 Dennis J. Alexander Disk drive controller with a posted write cache memory
US5410653A (en) 1992-06-16 1995-04-25 International Business Machines Corporation Asynchronous read-ahead disk caching using multiple disk I/O processes and dynamically variable prefetch length
JPH0659952A (ja) 1992-08-07 1994-03-04 Toshiba Corp 磁気ディスク装置
US5448709A (en) 1992-10-13 1995-09-05 Compaq Computer Corporation Disk array controller having command descriptor blocks utilized by bus master and bus slave for respectively performing data transfer operations
JPH06149482A (ja) 1992-11-11 1994-05-27 Hitachi Ltd 外部記憶装置
JP3183993B2 (ja) 1993-03-31 2001-07-09 株式会社東芝 ディスク制御システム
US5617425A (en) 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
US5392244A (en) * 1993-08-19 1995-02-21 Hewlett-Packard Company Memory systems with data storage redundancy management
US5615352A (en) * 1994-10-05 1997-03-25 Hewlett-Packard Company Methods for adding storage disks to a hierarchic disk array while maintaining data availability
US5664187A (en) * 1994-10-26 1997-09-02 Hewlett-Packard Company Method and system for selecting data for migration in a hierarchic data storage system using frequency distribution tables
US5586291A (en) 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
US5682499A (en) * 1995-06-06 1997-10-28 International Business Machines Corporation Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD)
WO1997011426A1 (en) * 1995-09-18 1997-03-27 Cyberstorage Systems, Inc. Universal storage management system
JP3136258B2 (ja) * 1995-09-27 2001-02-19 三菱電機株式会社 ディスク更新ログ記録方式
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US5890204A (en) * 1996-06-03 1999-03-30 Emc Corporation User controlled storage configuration using graphical user interface

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011077490A1 (ja) * 2009-12-24 2011-06-30 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
WO2011077489A1 (ja) * 2009-12-24 2011-06-30 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
US8407417B2 (en) 2009-12-24 2013-03-26 Hitachi, Ltd. Storage system providing virtual volumes
JPWO2011077489A1 (ja) * 2009-12-24 2013-05-02 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
US8489844B2 (en) 2009-12-24 2013-07-16 Hitachi, Ltd. Storage system providing heterogeneous virtual volumes and storage area re-allocation
US8527702B2 (en) 2009-12-24 2013-09-03 Hitachi, Ltd. Storage system providing virtual volumes
JP5555260B2 (ja) * 2009-12-24 2014-07-23 株式会社日立製作所 仮想ボリュームを提供するストレージシステム
US8862849B2 (en) 2009-12-24 2014-10-14 Hitachi, Ltd. Storage system providing virtual volumes
US9037829B2 (en) 2009-12-24 2015-05-19 Hitachi, Ltd. Storage system providing virtual volumes
JP2015503156A (ja) * 2011-11-22 2015-01-29 シンプリヴィティ・コーポレーション ディスク記憶に消去符号化データを割り当てるための方法および装置

Also Published As

Publication number Publication date
DE19882723T1 (de) 2000-09-21
WO1999018507A1 (en) 1999-04-15
GB2345366B (en) 2003-02-19
GB0008661D0 (en) 2000-05-31
KR100564664B1 (ko) 2006-03-29
GB2345366A (en) 2000-07-05
CN1281560A (zh) 2001-01-24
KR20010015722A (ko) 2001-02-26
US20020059539A1 (en) 2002-05-16
US6704838B2 (en) 2004-03-09

Similar Documents

Publication Publication Date Title
KR100564664B1 (ko) 데이터 저장 장치용 하이브리드 데이터 저장과 재구성시스템 및 방법
KR100593568B1 (ko) 객체 지향 데이터 저장 장치상의 객체 재구성
US8285878B2 (en) Block based access to a dispersed data storage network
US9830278B1 (en) Tracking replica data using key management
US8498417B1 (en) Automation of coordination of encryption keys in a SAN based environment where an encryption engine, device management, and key management are not co-located
US7818518B2 (en) System for rebuilding dispersed data
US6985995B2 (en) Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data
US7681240B2 (en) Trusted storage systems and methods
US8209544B2 (en) Trusted storage systems and methods
US7194467B2 (en) Using whole-file and dual-mode locks to reduce locking traffic in data storage systems
US8019960B2 (en) Metadata management system for an information dispersed storage system
US8205049B1 (en) Transmitting file system access requests to multiple file systems
US20050065961A1 (en) Method and system for implementing storage strategies of a file autonomously of a user
US7155464B2 (en) Recovering and checking large file systems in an object-based data storage system
US7882420B2 (en) Method and system for data replication
US20070174363A1 (en) Computer system, a computer and a method of storing a data file
KR100602393B1 (ko) 객체 지향 데이터 저장 장치
US8095503B2 (en) Allowing client systems to interpret higher-revision data structures in storage systems
Nagle et al. The ANSI T10 object-based storage standard and current implementations
KR20010022942A (ko) 객체 지향 데이터 저장 장치상의 여유도 구현
US20070106869A1 (en) Method and system for dirty time logging
US20220407685A1 (en) Encryption in a distributed storage system utilizing cluster-wide encryption keys
US8938594B2 (en) Method and system for metadata-based resilvering