JP4252828B2 - キャッシュ制御方法、ノード装置、プログラム - Google Patents
キャッシュ制御方法、ノード装置、プログラム Download PDFInfo
- Publication number
- JP4252828B2 JP4252828B2 JP2003075181A JP2003075181A JP4252828B2 JP 4252828 B2 JP4252828 B2 JP 4252828B2 JP 2003075181 A JP2003075181 A JP 2003075181A JP 2003075181 A JP2003075181 A JP 2003075181A JP 4252828 B2 JP4252828 B2 JP 4252828B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- node device
- cache
- storage
- client computer
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
- G06F21/805—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明は、ストレージ装置、クライアント間でデータを中継するノード装置におけるキャッシュの制御に関する。
【0002】
【従来の技術】
企業などでは、複数のクライアントコンピュータ(以下、単にクライアントと称する)をネットワークで接続した大規模な計算機システムが構築されている。このような計算機システムでは、各クライアントで業務を遂行する際に参照する種々のデータやプログラムを供給するため、ストレージ装置と呼ばれる大容量の記憶装置が設けられている。ストレージ装置は、大容量のハードディスクを備えており、各クライアントのユーザは、自己に割り当てられた領域、または共有の領域に対して、データやプログラムなどの格納・読み出しを行う。通常、ストレージ装置へのアクセスには、SCSI(Small Computer System Interface)と呼ばれるプロトコルが使用される。近年では、SCSI用のコマンドを、いわゆるIPパケットに分割してネットワーク上を転送するためのiSCSIと呼ばれるプロトコルが提案されている。iSCSIを用いることにより、従来よりも更に多数のクライアント、および遠隔地のクライアントがストレージ装置にアクセス可能な環境が提供されつつある。
【0003】
ストレージ装置の活用方法の一つとして、リモートブートと呼ばれるクライアントの起動方法が提案されている。リモートブートでは、起動に必要なオペレーティングシステム、環境設定ファイルなどの各種ファイルが、予めストレージ装置の各ユーザ用の領域に格納されている。各クライアントは、ネットワークを介してこれらのファイルをストレージ装置から読み込むことにより、起動することができる。
【0004】
リモートブートする場合、クライアントは、ストレージ装置へのアクセスを実現するための比較的小さなブートプログラムをROMに記憶していれば十分であり、ハードディスクを備えている必要がない。ハードディスクに格納されるべきデータはストレージ装置で一元管理されるから、仮にクライアントコンピュータが破損、盗難などに遭っても、重要なデータの遺失、漏洩を逃れることができるというセキュリティ上の利点がある。また、各ユーザは、ネットワーク上に接続されたいずれのクライアントも、一定の環境設定で起動させることができるという実用上の利点もある。リモートブートについては、例えば、特許文献1〜3に開示されている。
【0005】
ストレージ装置を用いる場合、多数のクライアントによるストレージ装置へのアクセスの集中を緩和するため、クライアントとストレージ装置との間に、キャッシュ用のメモリを備えたノード装置を設けることがある。かかるシステムでは、ノード装置にキャッシュ済みのデータは、ストレージ装置にアクセスするまでなくクライアントに供給可能であるため、ストレージ装置へのアクセスが緩和される。
【0006】
【特許文献1】
特開平6−332716号公報
【特許文献2】
特開2001−75853号公報
【特許文献3】
特開2000−259583号公報
【0007】
【発明が解決しようとする課題】
しかし、ノード装置を用いたシステムでは、このノード装置がセキュリティ上、脆弱になり易いという課題があった。一般に、ストレージ装置は、企業の機密データを一元的に保持しているため、非常に厳しくセキュリティ管理されている。例えば、ストレージ装置が設置された部屋への立ち入りは厳しく制限されており、ソフトウェア的にもファイアウォールなどでストレージ装置へのアクセスは厳しく制限されている。一方、クライアントは、ハードディスクを備えないディスクレスコンピュータとすることにより、データの漏洩を防止することができる。仮に、クライアントがハードディスクを備えている場合でも、各ユーザは、自己が使用する装置については盗難や不正使用に遭わないよう気を配るため、一定レベルでセキュリティは確保される。
【0008】
これに対し、ノード装置に対しては、ストレージ装置ほどセキュリティが確保された環境が確保されておらず、各ユーザもセキュリティに気を配らないことが多い。かかる環境下で、ノード装置には、ストレージ装置とクライアントの間で授受される機密データがキャッシュされている。従って、ノード装置の盗難や不正アクセスによって、機密データが漏洩する可能性があった。かかる機密データの一つとして、例えば、動作に支障が生じた時にクライアントが出力するコアダンプが挙げられる。コアダンプは、通常のコンピュータでは、内蔵のハードディスクに書き出されるが、ディスクレスコンピュータではノード装置にキャッシュされた後、ストレージ装置に書き出される。コアダンプには、ストレージ装置にアクセスするためのパスワードなど、コンピュータに保存されていた種々の機密情報が含まれており、これらの情報の漏洩は、ストレージ装置への不正アクセスを許容する原因となり得る。本発明は、これらの課題に鑑み、ノード装置におけるセキュリティの向上を図ることを目的とする。
【0009】
【課題を解決するための手段】
本発明では、ストレージ装置、ノード装置、およびクライアントが接続された計算機システムにおいて、ノード装置に備えられたキャッシュ用のディスク装置へのキャッシュを次の方法で制御する。この制御は、ノード装置の揮発性メモリへのキャッシュにも同様に適用してもよいし、ディスク装置へのキャッシュ時にのみ適用してもよい。
【0010】
<第1の制御方法> 第1の制御方法では、ディスク装置へのキャッシュの可否を表す属性情報を用いる。ストレージ装置またはクライアントは、ノード装置によって中継されるデータについて、上述の属性情報をノード装置に対して出力する。ノード装置は、この属性情報に基づいて、キャッシュ否と判断されたデータについては、ディスク装置へのキャッシュを行わずに中継する。こうすることにより、機密データについてはノード装置でのキャッシュを禁止することができ、セキュリティを確保することができる。
【0011】
ノード装置がディスク装置の他に、キャッシュ用の揮発性メモリを有している場合、キャッシュ否のデータについては揮発性メモリへのキャッシュを禁止してもよい。また、揮発性メモリに対しては、キャッシュ可否に関わらずキャッシュを行い、揮発性メモリからディスク装置への書き込みは、キャッシュ否と判断されたデータを除いて行うようにしてもよい。
【0012】
キャッシュ可否を制御するための属性情報は、種々のタイミングで取得することができる。例えば、データの中継時に、このデータと関連付けて属性情報を入力するようにしてもよい。ヘッダ等に属性情報を含めることでデータと属性情報を一体として入力してもよいし、中継されるデータと分けて属性情報のみを入力してもよい。 かかる態様は、例えば、ストレージ装置において、データごとに属性情報を予め管理しておき、ノード装置に、この属性情報を通知する機能をもたせることにより、実現することができる。
【0013】
ストレージ装置において、データの格納ブロックと対応づけて属性情報が管理されている場合、ノード装置は、この対応を予め取得し、管理しておいてもよい。こうすれば、データの中継時にストレージ装置から属性情報を受け取るまでなく、キャッシュの可否を判断することができる。
【0014】
属性情報は、必ずしもデータ単位でキャッシュの可否を通知する情報である必要はない。例えば、クライアントにおけるソフトウェアの動作異常発生を通知する情報を属性情報として用いても良い。ノード装置は、この通知を受信した後は、そのクライアントからのデータのキャッシュを行わないというように、キャッシュ可否の動作を切り替えることができる。同様に、クライアントの動作が正常に復帰したことを通知する情報を属性情報として用いても良い。このように、属性情報は、ノード装置におけるキャッシュ可否を切り替えるタイミングを通知する情報とすることもできる。
【0015】
かかる通知は、キャッシュの禁止をノード装置に要求するための所定の条件が満たされた時に、ノード装置に対して属性情報を出力する機能をクライアントに持たせることにより実現できる。クライアントは、この属性情報の出力と併せて、または該属性情報の出力後に、データをノード装置に送信するようにすればよい。キャッシュの禁止を要求するための条件は、例えば、上述の動作異常の他、予め設定された特定のアプリケーションの起動時など種々の設定が可能である。
【0016】
<第2の制御方法> 本発明の第2の制御方法では、ノード装置において、中継すべきデータを暗号化してディスク装置に書き込むことでキャッシュする。キャッシュされたデータの読出コマンドを受けた時には、ディスク装置から読み出したデータを復号してストレージ装置またはクライアントに出力する。暗号化は、ディスク装置への書き出し時に完了していればよく、例えば、書き出し直前に行ってもよいし、データの受信時に行ってもよい。こうすることで、ディスク装置が盗難に遭っても、データのセキュリティを確保することができる。
【0017】
第2の制御方法においては、必ずしも全てのデータを暗号化する必要はない。例えば、中継するデータについて、暗号化の要否を表す属性情報を入力し、この属性情報に基づいて、暗号化の要否を切り替えても良い。属性情報は、第1の制御方法でキャッシュの可否を制御するために例示した種々の情報を適用することができる。こうすれば、不要な暗号化を抑制することができ、ノード装置での処理負担を軽減することができる。第1の制御方法と同様、属性情報は、暗号化の要否を切り替えるタイミングを通知する情報としてもよい。
【0018】
第2の制御方法においては、暗号化および復号に用いる鍵データを揮発性メモリに管理することが好ましい。こうすれば、ノード装置が盗難等にあった場合には、鍵データが消失するため、ディスク装置に記憶されたデータの復号が不能となる。この鍵データは、例えば、ストレージ装置がノード装置に与えるようにしてもよいし、ノード装置自身が生成するようにしてもよい。ストレージ装置から鍵データを供給する場合、ストレージ装置は、各ノード装置に与えられる鍵データに重複が生じないよう管理することが好ましい。こうすることにより、与えられた鍵データは他のノード装置には適用できなくなるため、ノード装置へのなりすましによって鍵データが取得された場合でも、セキュリティを確保することが可能となる。ストレージ装置からノード装置への鍵データの供給は、例えば、ノード装置が新たに稼働し始めた場合や、ノード装置の管理者がストレージ装置に対して鍵データの発行を要求した場合など、種々の条件下で行うことができる。
【0019】
<第3の制御方法> 第3の制御方法は、ストレージ装置およびクライアントの一方から他方へのデータ送信時において、データの発信側となるデータ提供装置が、データの送信先を切り換えることにより実現される。データ提供装置は、提供するデータについて、ディスク装置へのキャッシュの可否を判断する。キャッシュ可否の判断条件は、例えば、予めデータごとに設定しておいてもよいし、「ソフトウェアの動作異常時」など特定の事象やタイミングとの関係で設定してもよい。データ提供装置はキャッシュ可と判断されたデータについては、ノード装置に送信し、ノード装置は、このデータをディスク装置にキャッシュする。キャッシュ否と判断されたデータについては、ノード装置を介さずに、受信側の装置に、直接データを送信する。こうすることにより、ノード装置では特別な制御を要することなく、キャッシュを回避することができる。
【0020】
第3の制御方法を実現するため、データ提供装置は、ノード装置とは別に、受信側となる計算機のアドレス情報を予め管理しておいてもよい。データ提供装置は、キャッシュ否と判断された場合には、データの送信先をノード装置のアドレスから、予め管理されているアドレス情報に切り換えることにより、ノード装置を迂回した通信を実現することができる。この態様は、受信側となる計算機のアドレス情報が予め固定されている場合、例えば、クライアントからストレージ装置へのデータ送信時に有用である。
【0021】
別の態様として、ノード装置は、ストレージ装置内のデータの読出コマンドを受け付けた時、この読出コマンドを発信したクライアントを特定可能な情報、例えば、アドレス情報、クライアント名、クライアントの識別情報などを、ストレージ装置に送信するようにしてもよい。こうすることでストレージ装置は、ノード装置を迂回する場合のデータの送信先を特定することができる。ストレージ装置が、ノード装置を迂回してクライアントにデータを送信する場合、ノード装置に対して、データの送信が完了した通知を行うようにしてもよい。この通知がノード装置からストレージ装置に出力した読出コマンドに対する応答となり、ノード装置を応答待ちの状態から解放することができる。
【0022】
本発明は、上述したノード装置、ストレージ装置、クライアントに限らず種々の態様で構成することが可能である。例えば、これらを接続した計算機システムとして構成してもよい。また、ノード装置におけるキャッシュを制御する制御方法として構成してもよい。コンピュータによりこの制御を実現するためのコンピュータプログラムおよびこれを記録した記憶媒体として構成してもよい。ここで、記憶媒体としては、フレキシブルディスクやCD−ROM、DVD、光磁気ディスク、ICカード、ROMカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置(RAMやROMなどのメモリ)および外部記憶装置などコンピュータが読取り可能な種々の媒体を利用できる。
【0023】
【発明の実施の形態】
本発明の実施の形態について以下の順序で説明する。
A.第1実施例;
A1.システム構成;
A2.機能ブロック;
A3.テーブルのデータ構造;
A4.データ読出処理;
A5.データ書込処理;
A6.変形例;
B.第2実施例;
B1.機能ブロック;
B2.データ読出処理;
B3.データ書込処理;
C.第3実施例;
C1.機能ブロック;
C2.データ読出処理;
C3.データ書込処理;
【0024】
A.第1実施例;
A1.システム構成;
図1は第1実施例としての計算機システムの構成を示す説明図である。この計算機システムでは、ストレージ装置300に、複数のノード装置200および計算機100がIPパケットを授受可能なネットワークで接続されている。ネットワークとしては、LAN(Local Area Network)、イントラネット、インターネットなどを適用することができる。
【0025】
ストレージ装置300は、図示するハードウェア構成を有するコンピュータとして構成されており、大容量のディスク装置310に蓄積されたデータをノード装置200経由で各計算機100に提供することができる。また、各計算機100はハードディスク310にデータを格納することもできる。NIC(Network Interface Card)304は、ネットワークを介してデータを授受するためのインタフェースである。I/O305は、入出力装置用のインタフェースである。
【0026】
ストレージ装置300では、CPU301が、ディスク装置310およびROM303に記憶された制御用のプログラムに従って、データの授受を制御する。メモリ302は、このプログラムの動作時に使用される主記憶である。
【0027】
ノード装置200は、図示するハードウェア構成を有するコンピュータとして構成されており、ストレージ装置300と計算機100の間で授受されるデータを中継する機能を奏する。ディスク装置210およびメモリ202は、中継されるデータを一時的に蓄積するキャッシュのために利用される。NIC(Network Interface Card)204は、ネットワークを介してデータを授受するためのインタフェースである。I/O205は、入出力装置用のインタフェースである。
【0028】
ノード装置200では、CPU201が、ディスク装置210およびROM203に記憶された制御用のプログラムに従って、データの中継およびキャッシュを制御する。メモリ202は、キャッシュの他、このプログラムの動作時にも使用される。本実施例では、中継するデータによってキャッシュの可否が切り替えられる。キャッシュが禁止されているデータについては、ノード装置200は、キャッシュを行わずに中継する。キャッシュの禁止については、二通りの制御が適用可能である。第1の態様は、キャッシュが禁止されているデータに関しては、ノード装置200は一切、キャッシュを行わないという制御方法である。第2の態様は、ノード装置200は揮発性のメモリ202には、キャッシュ可否の属性に関わらずキャッシュを行い、メモリ202からディスク装置210にデータを移転する際に、キャッシュの可否を判断する制御方法である。本実施例では、第1の態様でキャッシュの可否を制御するものとして説明し、後で変形例として第2の態様について説明する。
【0029】
計算機100は、ハードディスクを備えないディスクレスコンピュータである。内部には、CPU101、RAM102、ROM103、NIC104およびI/O105が備えられている。計算機100は、起動時には、必要なオペレーティングシステムなどのファイルをストレージ装置300から読み込むことで、リモートブートする。ROM103には、リモートブート用のプログラムが予め記憶されている。
【0030】
ストレージ装置300、ノード装置200、計算機100の動作を制御するためのプログラムは、CD−ROMなどの記録媒体によってストレージ装置に供給してもよい。
【0031】
A2.機能ブロック;
図2は計算機システムを構成する各装置内の機能ブロックを示す説明図である。本実施例では、図示する各機能ブロックは、それぞれコンピュータプログラムをインストールすることによりソフトウェア的に構成される。各機能ブロックは、ハードウェア的に構成することも可能である。
【0032】
計算機100の機能ブロックは、次の通りである。TCP/IPモジュール120は、ネットワークを介してIPパケットを通信する。SCSIモジュール122は、ストレージ装置300に対してデータの読み出し、書き込み用のコマンド送受信などを行う。iSCSIモジュール121は、SCSIコマンドとIPパケットの変換を行うことによって、SCSIコマンドをTCP/IPで送受信可能とする。ブートプログラム130は、計算機100でリモートブートを実現する。ブートプログラム130は、計算機100の初期化を行う機能、起動に必要なオペレーティングシステムなどのファイルをストレージ装置から読み込む機能、これらのファイルを起動してブートする機能などを実現することができる。ID入力モジュール131は、リモートブートを行う際に、ストレージ装置300に送信すべきユーザID、パスワードを入力する。本実施例では、これらのモジュールは、ROM103に記憶されているプログラムによって実現される。
【0033】
上述の各機能ブロックによってリモートブートが完了すると、計算機100には、ストレージ装置300から供給されたファイルによってオペレーティングシステム140が起動する。オペレーティングシステム140には、計算機100の動作に異常が生じた時に、種々の情報をコアダンプとしてストレージ装置300に書き出す機能を奏する異常制御モジュール141が備えられている。計算機100上の各処理に利用されるアプリケーション150は、ストレージ装置300から供給され、オペレーティングシステム140の上で稼働する。
【0034】
本実施例では、クライアントごとに仮想ボリュームが与えられる。仮想ボリュームとは、ストレージ装置300のディスク装置310内に設けられた物理的な領域ではなく、各クライアントのデータを管理するための論理的なディスクを意味する。仮想ボリュームは、ユーザIDに対応づけて設定されており、ユーザが、計算機100でユーザIDを入力することによって、計算機100と対応づけられる。以下、本実施例では、「クライアント」という用語は、単にハードウェアとしての計算機ではなく、ユーザがログインし、仮想ボリュームと対応づけられた状態にある計算機を意味するものとする。
【0035】
ノード装置200には、ネットワークを介してSCSIコマンドを授受するため、TCP/IPモジュール220、iSCSIモジュール221、SCSIモジュール222が備えられている。ノード装置200には、所定のオペレーティングシステムがインストールされており、このオペレーティングシステム上で稼働するアプリケーションによってキャッシュ制御モジュール230が実現されている。
【0036】
キャッシュ制御モジュール230は、キャッシュ属性管理部234およびキャッシュ管理テーブル232を参照して、ノード装置200におけるキャッシュを制御する。キャッシュ管理テーブル232とは、クライアントから指定された仮想ブロックと、ノード装置200におけるデータの格納場所、即ちキャッシュブロックとを対応づけるテーブルである。キャッシュ属性管理部234とは、仮想ブロックの各データについて、キャッシュの可否を示す属性情報を管理するテーブルである。これらのテーブルのデータ構造については後述する。
【0037】
ストレージ装置300には、ネットワークを介してSCSIコマンドを授受するため、TCP/IPモジュール320、iSCSIモジュール321、SCSIモジュール322が備えられている。ストレージ装置300には、所定のオペレーティングシステムがインストールされており、このオペレーティングシステム上で稼働するアプリケーションによってアクセス制御モジュール330が実現されている。
【0038】
アクセス制御モジュール330は、ユーザ管理テーブル334、物理ブロック管理テーブル332を参照して、ディスク装置310のデータの読み書きを制御する。ユーザ管理テーブル334は、ユーザIDと仮想ボリュームとを対応づけるテーブルである。物理ブロック管理テーブル332とは、仮想ブロックと物理ブロックとを対応づけるテーブルである。アクセス制御モジュール330は、計算機100の起動時に、計算機100からユーザIDを取得する。このユーザIDに基づいてユーザ管理テーブル334を参照することで、ユーザに対応する仮想ボリュームを計算機100に割り当てる。アクセス制御モジュール330は、以後、クライアントから指定された仮想ブロックに対して、物理ブロック管理テーブル332を参照して、ディスク装置310のデータの読み書きを制御することができる。
【0039】
キャッシュ管理テーブル333は、仮想ブロックごとにキャッシュの可否を記録したテーブルである。アクセス制御モジュール330は、キャッシュ属性管理テーブル333の内容をノード装置200に通知することで、ノード装置200におけるキャッシュの可否を制御する。
【0040】
A3.テーブルのデータ構造;
図3はユーザ管理テーブル334の構造を示す説明図である。ユーザ管理テーブル334は、ユーザID、パスワード、仮想ボリューム、属性、IPアドレスを対応づけて管理する。属性とは、仮想ボリュームに対する他のユーザのアクセスの可否を表している。「専有」は他のユーザのアクセスが禁止されていることを意味し、「共有」は許可されていることを意味する。IPアドレスは、ユーザがログインした計算機によって変動する。属性、IPアドレスは、ユーザ管理テーブル334から省略してもよい。
【0041】
図4は物理ブロック管理テーブル332の構造を示す説明図である。図の上方にデータ構造を示し、下方に仮想ブロックと物理ブロックとの対応関係を模式的に示した。物理ブロック管理テーブル332は、仮想ブロックと物理ブロックの対応関係を示すテーブルであり、仮想ボリューム単位で設けられている。図中には、仮想ボリュームVDaに対応するテーブルを例示した。このテーブルでは、仮想ボリュームVDaの仮想ブロックBL0〜BLnに対して、実際にデータが格納されている物理ブロックが記憶されている。物理ブロックは、物理ボリュームとブロック番号との組み合わせで定義される。
【0042】
図に例示したテーブルは、下方に模式的に示した対応関係を表している。つまり、仮想ブロックBL0のデータは、物理ボリュームPD11のブロックBL0に格納されている。同様にして、仮想ブロックBL1〜BLnの各データは、それぞれ物理ボリュームPD11、PD12のいずれかのブロックに格納されている。図では、ディスク装置310が、パーティションによって複数の物理ボリュームに分割されている場合を例示したが、単一の物理ボリュームとして構成されていてもよい。この場合、物理ブロック管理テーブル332からは、物理ボリュームに関するデータを省略しても構わない。
【0043】
図5はキャッシュ管理テーブル232の構造を示す説明図である。このテーブルは、仮想ブロックと、ノード装置200におけるキャッシュブロックとを対応づけている。ディスク書込の欄については、後述する。ノード装置200におけるキャッシュの格納場所には、揮発性のメモリ202と、ディスク装置210の2種類が存在する。従って、本実施例では、格納場所とブロック番号で、キャッシュブロックを特定するものとした。
【0044】
図6はキャッシュ属性管理テーブル333の構造を示す説明図である。キャッシュ属性管理テーブル333は、データの読み出しと書き込みに分けて用意されており、仮想ボリュームごとにキャッシュの可否を表す情報を格納している。本実施例では、ディスク装置が複数の物理ボリュームに分割されているため、物理ボリューム単位でキャッシュの可否を設定可能とした。例えば、図の例では、仮想ボリュームVDaの読み出しについて、物理ボリュームPD11に格納されたデータについてはキャッシュ可、物理ボリュームPD12に格納されたデータについてはキャッシュ不可と設定されている。
【0045】
図の例において、物理ボリュームPD12は、仮想ボリュームVDa、VDbに共有されている。本実施例では、このように複数の仮想ボリュームによる物理ボリュームの共有を許容してもよい。この場合、共有される物理ボリュームに格納されたデータは、各仮想ボリュームに対応した複数のクライアントで共有されることになる。図中の例では、共有されている物理ボリュームPD12について、キャッシュ属性は不可と設定されている場合を例示した。これに対し、仮想ボリュームVDa、VDbで、共有されている物理ボリュームPD12に対するキャッシュ属性を異ならせても良い。こうすることにより、例えば、仮想ボリュームVDaからの読み出し時にはキャッシュを許可し、仮想ボリュームVDbからの読み出し時にはキャッシュを禁止するというように、読み出すクライアントに応じてキャッシュの可否を切り換えることが可能となる。
【0046】
書き込みについても、同様の形式でキャッシュの可否が管理されている。キャッシュ可否については、計算機システムの動作時に動的に設定を変更してもよい。例えば、仮想ボリュームVDaを使用するクライアントの動作異常を検知した時、ノード装置200は仮想ボリュームVDaに対応する全物理ボリュームについて、一時的に「キャッシュ不可」の属性を設定するようにしてもよい(図中のデータ領域Da参照)。
【0047】
A4.データ読出処理;
図7はデータ読み出し処理のフローチャートである。リモートブート時を例にとり、左側にクライアント100の処理、中央にノード装置200の処理、右側にストレージ装置300の処理を示した。
【0048】
ユーザが計算機の電源をオンにすると、ID入力モジュール131によって、ユーザID、パスワード等の入力画面が提示される。ユーザが、ユーザID、パスワードを入力し、ログインすると、クライアント100は、IPアドレスとともにこれらの情報を、ノード装置200およびストレージ装置300に送信する(ステップS10)。ストレージ装置300は、この情報に基づいてユーザ管理テーブル334を参照し、ユーザの認証を行う(ステップS30)。正規なユーザであることが確認されると、ストレージ装置300は、ユーザ管理テーブル334に、クライアント100のIPアドレスを記録するとともに、ユーザに対応した仮想ボリューム名を通知する。この通知は、ノード装置200を介してクライアント100に送信される。以後、クライアント100からのデータの読み出し要求等は、この仮想ボリューム名に基づいて行われる。
【0049】
クライアント100は、ROMに記録されているブートプログラム130を起動する(ステップS11)。ブートプログラム130は、ブートに必要な初期化処理を行った上で、オペレーティングシステムのデータ読み出し要求をノード装置に対して送信する(ステップS12)。
【0050】
ノード装置200は、読み出し要求を受信し、キャッシュ管理テーブル232を参照して、要求されたデータが、既にキャッシュ済みであるか否かを確認する(ステップS20)。キャッシュ済みの場合は(ステップS20)、キャッシュブロックから該当するデータを読み出し(ステップS26)、クライアント100に返信する(ステップS25)。クライアント100は、このデータを受信して起動処理を継続する(ステップS13)。
【0051】
要求されたデータがキャッシュされていない(以下、「未キャッシュ」と呼ぶ)場合(ステップS20)、ノード装置200はストレージ装置300にデータの読み出しを要求する(ステップS21)。ストレージ装置300は、この要求に応じて、物理ブロック管理テーブル332を参照して、物理ボリュームからデータを読み出し、ノード装置200に返信する(ステップS32)。これと併せて、ストレージ装置300は、キャッシュ属性管理テーブル333を参照し、要求されたデータのキャッシュ可否の属性情報をノード装置200に通知する(ステップS32)。この属性情報は、要求されたデータのヘッダ等に埋め込んだ形で通知してもよいし、要求されたデータと分けて通知してもよい。
【0052】
ノード装置200は、ストレージ装置300からデータおよび属性情報を受信すると、属性情報に基づいてキャッシュの可否を判断する(ステップS22)。キャッシュ可と判断される場合には、受信したデータをキャッシュし(ステップS23)、その格納先に応じてキャッシュ管理テーブル232を更新して(ステップS24)、データをクライアントに返信する(ステップS25)。キャッシュ不可と判断される場合には、上述のキャッシュ処理をスキップし、データをクライアントに返信する(ステップS25)。クライアントはこうしてノード装置200から送信されたデータを受信する(ステップS13)。
【0053】
以上の処理を繰り返し行うことにより、クライアント100は、ブートに必要なファイルを取得し、リモートブートを完了することができる。図7ではリモートブート時の読み出し処理を示したが、リモートブートと無関係に通常のデータ読み出し時にも、データ読み出し要求(ステップS12)からデータ受信(ステップS13)の処理が同様にして行われる。
【0054】
上述の実施例では、データの要求時にノード装置200からストレージ装置300にキャッシュの可否を問い合わせる場合を例示した。これに対し、ノード装置200は、ストレージ装置300から、予めキャッシュ属性管理テーブル333の内容をまとめて取得し、キャッシュ属性管理部234で管理するようにしてもよい。こうすることにより、データ要求のたびに、属性情報の問い合わせを行う必要性をなくすことができる。
【0055】
A5.データ書込処理;
図8はデータ書込処理のフローチャートである。左側にクライアント100の処理、中央にノード装置200の処理、右側にストレージ装置300の処理を示した。クライアント100は既に起動し、ノード装置200、ストレージ装置300とデータ授受が可能な状態で、クライアント100の動作にソフトウェア上の異常が生じた場合のコアダンプの書き込みを例示した。
【0056】
クライアント100の異常制御モジュール141は、ソフトウェア上の動作異常を検出すると(ステップS40)、異常の発生をIPアドレスとともにノード装置200に通知する(ステップS40)。ノード装置200は、この情報に基づいてキャッシュ属性管理部234における属性情報を更新する(ステップS50)。先に図6で示したように、このクライアントからの書き込みについては、全てキャッシュ不可という属性に変更するのである。
【0057】
クライアント100の異常制御モジュール141は、仮想ブロックを指定して、コアダンプを書き込むための要求をノード装置に送信する(ステップS42)。ノード装置200は、書き込み要求を受信し、キャッシュ属性管理部234を参照して、キャッシュの可否を判断する(ステップS52)。クライアント100の動作に異常が生じた場合には、ノード装置200は、ステップS50で更新された属性情報に基づき、キャッシュ不可と判断することになる。一方、クライアント100に異常が生じる前、異常から回復した後、および別のクライアントからの書き込み要求時などには、指定された仮想ブロックの属性情報に基づき、ノード装置200はキャッシュ可と判断する場合もある。
【0058】
キャッシュ可と判断した場合(ステップS52)、ノード装置は、クライアントから受信したデータをキャッシュし(ステップS53)、その格納先に応じてキャッシュ管理テーブル232を更新するとともに(ステップS54)、データをストレージ装置300に送信する(ステップS55)。キャッシュ不可と判断した場合(ステップS52)、ノード装置200は、クライアントから受信したデータをキャッシュすることなく、ストレージ装置300に送信する(ステップS55)。ストレージ装置は、ノード装置200からデータを受信して(ステップS60)、指定された仮想ブロックに書き込みを行う。
【0059】
以上の処理を繰り返し行うことにより、クライアント100は、ストレージ装置300の仮想ブロックにデータの書き込みを行うことができる。この際、異常が生じた場合のコアダンプについては、ノード装置へのキャッシュを回避することができる。
【0060】
上述の実施例では、クライアント100の異常通知により、ノード装置200がキャッシュ可否の属性情報を更新する場合を例示した。これに対し、クライアント100からノード装置200に送信されるデータごとにキャッシュ可否の属性情報を添付するようにしてもよい。例えば、異常制御モジュール141は、コアダンプとして書き込むデータについては、全てキャッシュ不可という属性情報を添付し、ノード装置200は、この属性情報に基づいてキャッシュの可否を判断するようにしてもよい。
【0061】
A6.変形例;
実施例では、ストレージ装置300からのデータ読み込み時、およびストレージ装置300への書き込み処理時にノード装置200が一切、キャッシュを行わない例を示した。ノード装置200は、キャッシュ可否に関わらず、揮発性メモリ202へのキャッシュを行い、メモリ202からディスク装置210へのデータ移転時にキャッシュの可否を判定するようにしてもよい。かかる制御は、ディスク装置210への書き込み時に、キャッシュ属性管理部234とキャッシュ管理テーブル232を参照することで実現することができる。つまり、キャッシュ管理テーブル232を参照することにより、メモリ202にキャッシュされているデータについて、仮想ボリュームおよびブロック番号を特定することができる。この情報に基づいて、キャッシュ属性管理部234を参照すれば、ディスク装置210へのキャッシュ可否を判定することができる。
【0062】
変形例の制御を実現するための別の方法として、キャッシュ管理テーブル232に、図5の破線で示した「ディスク書込」という情報を設けても良い。「ディスク書込」は、ディスク装置210へのキャッシュ可否を表す属性情報であり、メモリ202へのキャッシュ時に、キャッシュ属性管理部234を参照することで設定することができる。このようにキャッシュ管理テーブル232において、格納されているデータごとに、ディスク書込を保存しておくことにより、ディスク装置210への移転時にキャッシュ属性管理部234を参照する必要がなくなり、キャッシュ可否を簡易に判定することが可能となる。
【0063】
以上で説明した第1実施例によれば、データの読みだし、および書き込み時に、ノード装置200におけるディスク装置210へのキャッシュの可否を切り替えることができる。コアダンプなど、機密情報を含むデータについては、ディスク装置210へのキャッシュを回避することができるため、ノード装置200の盗難による情報漏洩を抑止することができる。ノード装置200においてメモリ202へのキャッシュ自体も禁止する場合には、ノード装置200への不正アクセスによる情報漏洩を抑止することも可能である。
【0064】
B.第2実施例;
第1実施例では、属性情報に基づいて、ノード装置200におけるキャッシュ可否を切り替える例を示した。第2実施例では、ノード装置が、ディスク装置へのキャッシュ時に、データを暗号化することでセキュリティを確保する例を示す。ノード装置への不正アクセスに対するセキュリティ確保という観点からは、メモリ202へのキャッシュ時にもデータを暗号化してもよい。ただし、本実施例においては、暗号化に要する処理負荷を軽減するため、メモリ202へのキャッシュ時には暗号化を行わず、ディスク装置210へのデータ移転時に暗号化する例を示す。
【0065】
B1.機能ブロック;
図9は第2実施例としての計算機システムの機能ブロックを示す説明図である。第1実施例と同じ機能ブロックについては、同一の符号で示した。第2実施例では、キャッシュ属性管理部234、キャッシュ属性管理テーブル333に確保されている属性情報は、キャッシュの可否ではなく、暗号化の要否を示す情報となる。第2実施例では、ノード装置200Aに暗号化部235が新たに追加され、ストレージ装置300Aに鍵管理モジュール335が新たに追加される。暗号化部235は、ノード装置200Aにおいて、ディスク装置210へのキャッシュ時に、データの暗号化を行う機能、およびディスク装置210から読み出されたデータを復号する機能を奏する。鍵管理モジュール335は、ノード装置200Aに対して、暗号化に使用する鍵情報を管理・提供する機能を奏する。
【0066】
B2.データ読出処理;
図10は第2実施例におけるデータ読出処理のフローチャートである。左側にクライアント100の処理、中央にノード装置200Aの処理、右側にストレージ装置300Aの処理を示した。第2実施例では、ノード装置200Aがネットワークに接続され、起動すると、ストレージ装置300Aは、ノード装置200に対して鍵情報の送信を行う(ステップS31)。ノード装置200Aは、この鍵情報を暗号化部235に記憶する(ステップS70)。
【0067】
本実施例においては、鍵情報は、ノード装置ごとに固有の情報として設定される。ストレージ装置300は、ネットワークに接続されている複数のノード装置について、提供した鍵情報を一元的に管理し、新たに接続されたノード装置に対しては、これらのいずれとも異なる鍵情報を生成する。鍵情報は、例えば、シリアル番号などの規則的なものであってもよいし、乱数を用いた不規則な情報であってもよい。各ノード装置に一意な鍵情報を提供することにより、いわゆる悪意の第三者がノード装置になりすまして鍵情報を取得した場合でも、各ノード装置にキャッシュされたデータのセキュリティを確保することができる利点がある。
【0068】
クライアント100がノード装置200Aに対して、データの読みだし要求を送信すると(ステップS12)、ノード装置200Aは、要求されたデータが、キャッシュ済みであるか否かを判断する(ステップS71)。キャッシュ済みである場合には、メモリ202またはディスク装置210からデータを読みだし(ステップS72)、暗号化されている場合には、復号して(ステップS73、S74)、クライアント100に返信する(ステップS81、ステップS13)。
【0069】
要求されたデータがキャッシュされていない場合(ステップS71)、ノード装置200Aは、ストレージ装置300Aにデータを要求する(ステップS75)。ストレージ装置300Aは、この要求に応じて、データをノード装置200Aに返信する(ステップS32)。これと併せて、ストレージ装置300は、要求されたデータについて暗号化の要否を表す属性情報をノード装置200Aに通知する(ステップS32)。この属性情報は、要求されたデータのヘッダ等に埋め込んだ形で通知してもよいし、要求されたデータと分けて通知してもよい。
【0070】
ノード装置200Aは、ストレージ装置300Aからデータおよび属性情報を受信すると、データのキャッシュ先を判断する(ステップS76)。メモリ202にキャッシュ可能な領域があいている場合には、メモリ202へのキャッシュを行う。キャッシュ可能な領域が空いていない場合には、ディスク装置210へのキャッシュが必要と判断する。この判断は、ストレージ装置300Aからのデータ受信時に行っても良いし、いわゆるLRU(Least Recently Used)に基づいて処理してもよい。LRUとは、メモリ202にキャッシュされているデータのうち、アクセス頻度の低いデータを優先的にディスク装置210に移転する方法である。LRUで処理する場合には、ストレージ装置300Aから受信したデータは、無条件にメモリ202にキャッシュされ、代わりに、従前にメモリ202に蓄積されていたデータのいずれかがディスク装置210に移転されることになる。
【0071】
ノード装置200Aは、ディスク装置210にキャッシュすべきと判断されたデータについては(ステップS76)、属性情報に基づいて暗号化の要否を判断する(ステップS77)。暗号化が要求されている場合には、暗号化を行い(ステップS78)、キャッシュする(ステップS79)。暗号化が要求されていないデータ、またはメモリ202にキャッシュすべきデータについては(ステップS76)、暗号化を行わずにキャッシュする。ノード装置200Aは、これらのキャッシュの格納先に応じて、キャッシュ管理テーブル232を更新し(ステップS80)、データをクライアント100に返信する(ステップS25)。クライアントはこうしてノード装置200から送信されたデータを受信する(ステップS13)。
【0072】
以上の処理を繰り返し行うことにより、クライアント100は、必要なファイルをストレージ装置300Aから読み出すことができる。この際、機密情報を含むデータについては、属性情報の設定により、ディスク装置210へのキャッシュ時に暗号化することができるため、セキュリティを確保することができる。第2実施例においても第1実施例と同様、ノード装置200Aが、暗号要否の属性情報をストレージ装置300Aから、予めまとめて取得し、管理するようにしてもよい。
【0073】
B3.データ書込処理;
図11は第2実施例におけるデータ書込処理のフローチャートである。左側にクライアント100の処理、中央にノード装置200Aの処理、右側にストレージ装置300Aの処理を、コアダンプの書き込みを例にとって示した。
【0074】
読みだし処理と同じく、ノード装置200Aは起動時に、ストレージ装置から鍵情報を受信し、記憶している(ステップS60、S31)。また、第1実施例と同様、クライアント100の異常制御モジュール141は、ソフトウェア上の動作異常を検出すると(ステップS40)、異常の発生をIPアドレスとともにノード装置200に通知する(ステップS40)。ノード装置200は、この情報に基づいてキャッシュ属性管理部234における属性情報を暗号化要という内容に更新する(ステップS50)。
【0075】
この状態で、クライアント100がコアダンプを書き込むための要求をノード装置200Aに送信すると(ステップS42)、ノード装置200Aは、読みだし処理と同様、受信したデータのキャッシュ先を判断する。ノード装置200Aは、ディスク装置210にキャッシュすべきと判断されたデータについて、属性情報で指定された暗号化の要否に基づいて暗号化を行った上で、キャッシュする(ステップS90〜S93)。暗号化が要求されていないデータ、またはメモリ202にキャッシュすべきデータについては(ステップS90)、暗号化を行わずにキャッシュする(ステップS94)。ノード装置200Aは、これらのキャッシュの格納先に応じて、キャッシュ管理テーブル232を更新し(ステップS94)、データをストレージ装置300Aに送信する(ステップS95)。ストレージ装置300Aは、ノード装置200Aからデータを受信して(ステップS60)、指定された仮想ブロックに書き込みを行う。以上の処理を繰り返し行うことにより、クライアント100は、ストレージ装置300Aの仮想ブロックにデータの書き込みを行うことができる。
【0076】
第2実施例によれば、ノード装置200Aにおいて、ディスク装置への書き込み時に暗号化することにより、盗難によるデータの漏洩を抑止することができる。メモリ202への書き込み時には暗号化を行わないため、頻繁に使用されるデータについては、メモリ202にキャッシュしておくことにより、読みだし、書き込みの速度を確保することもできる。
【0077】
第2実施例では、鍵情報をストレージ装置300Aから提供したが、鍵情報は厳密に一意である必要はなく、ノード装置200Aで生成しても構わない。第2実施例では、属性情報によって暗号化の要否を制御する場合を例示したが、ディスク装置210へのキャッシュ時には必ず暗号化するようにしてもよい。
【0078】
C.第3実施例;
第3実施例では、キャッシュ可とされているデータについては、クライアントとストレージ装置間でノード装置を介してデータの授受を行い、キャッシュ不可とされているデータについては、両者間で直接データの授受を行う場合を例示する。
【0079】
C1.機能ブロック;
図12は第3実施例としての計算機システムの機能ブロックを示す説明図である。第1実施例と同じ機能ブロックについては、同一の符号で示した。第3実施例では、クライアント100に提供されるオペレーティングシステム140Bの内容が、第1実施例と相違する。オペレーティングシステム140Bは、SCSIコマンドの送出先としてノード装置200Bのアドレス(以下、「ノードアドレス」と称する)142を保持している。オペレーティングシステム140Bには、動作異常時にコアダンプの書き込みなどを行う異常制御モジュール141Bが供えられており、この異常制御モジュール141Bは、コアダンプの書き込み先としてストレージ装置300Bのアドレス(以下、「ストレージアドレス」と称する)143を保持している。これらの機能ブロックにより、クライアントは、異常時と正常時でデータの書き込み先を切り替えることができる。
【0080】
ストレージ装置300Bにおいては、アクセス制御モジュール330Bが、キャッシュ属性に基づいてデータの送信先を切り替える。キャッシュ可とされているデータについてはノード装置に送信し、キャッシュ不可とされているデータはクライアント100に直接送信する。第3実施例では、キャッシュ不可とされているデータについては、クライアント100とストレージ装置300Bの間で直接送受信されるから、ノード装置200Bにおいて、キャッシュ制御モジュール230Bは、クライアント100およびストレージ装置300Bから受信したデータについては、キャッシュ可否を考慮することなく、データをキャッシュする。
【0081】
C2.データ読出処理;
図13は第3実施例におけるデータ読み出し処理のフローチャートである。リモートブート時を例にとり、左側にクライアント100の処理、中央にノード装置200Bの処理、右側にストレージ装置300Bの処理を示した。
【0082】
ユーザが計算機の電源をオンにすると、第1実施例と同様の手順でログインおよびブートプログラムの起動が行われる(ステップS10、S30、S11)。クライアント100は、仮想ボリュームを指定して、データの読み出し要求をノード装置200Bに対して送信する(ステップS12)。
【0083】
ノード装置200Bは、要求されたデータがキャッシュ済みの場合は(ステップS100)、キャッシュブロックから該当するデータを読み出し(ステップS101)、クライアント100に返信する(ステップS105)。クライアント100は、このデータを受信して起動処理を継続する(ステップS13)。
【0084】
要求されたデータが未キャッシュの場合(ステップS100)、ノード装置200Bはストレージ装置300Bにデータの読み出しを要求する(ステップS102)。ストレージ装置300Bは、キャッシュ属性管理テーブル333において、要求されたデータがキャッシュ可と設定されている場合には(ステップS110)、データをノード装置に返信する(ステップS111)。ノード装置200Bは、このデータをキャッシュし(ステップS103)、キャッシュ管理テーブル232を更新して(ステップS24)、データをクライアントに返信する(ステップS105)。
【0085】
要求されたデータがキャッシュ不可の場合には(ステップS110)、ストレージ装置300Bは、データをクライアントに直接、返信する(ステップS112)。クライアントはこうしてノード装置200から送信されたデータを受信する(ステップS13)。ストレージ装置300Bは、ノード装置200Bに対して、クライアントへの返信を行った旨の通知を行っても良い。ノード装置200Bが、データの要求(ステップS102)へのレスポンスを待っている場合には、この通知により、レスポンス待ちの状態から解放することができる。
【0086】
上記実施例において、ストレージ装置300Bからクライアントに直接、データを送信する場合、クライアントのアドレスは種々の方法で特定することができる。例えば、ストレージ装置300Bは、最初のログイン時にユーザ管理テーブル334に記録されているIPアドレスを利用してもよい。別の例として、データの要求時に、ノード装置200Bからストレージ装置300Bに対して、クライアント100のアドレス情報を通知するようにしてもよい。
【0087】
C3.データ書込処理;
図14はデータ書込処理のフローチャートである。左側にクライアント100の処理、中央にノード装置200Bの処理、右側にストレージ装置300Bの処理を、コアダンプの書き込みを例にとって示した。クライアント100は、異常が生じていない場合には(ステップS120)、ノード装置200に対してデータの書き込み要求を送信する(ステップS121)。ノード装置200Bは、この要求を受信すると、データをキャッシュし(ステップS13)、キャッシュ管理テーブル232を更新する(ステップS131)。その後、キャッシュされている書き込みデータが所定量に達したなど、予め設定されたタイミングで、データをストレージ装置300Bに送信する(ステップS132)。ストレージ装置300Bは、このデータを受信して、指定された仮想ブロックにデータの書き込みを行う(ステップS140)。
【0088】
一方、異常制御モジュール141が、ソフトウェア上の動作異常を検出すると(ステップS120)、データの送信先をノード装置200のアドレスからストレージ装置に切り替えることにより、ストレージ装置300Bに対して直接、データの書き込み要求を送信する(ステップS122)。ストレージ装置300Bは、このデータを受信して、指定された仮想ブロックにデータの書き込みを行う(ステップS140)。
【0089】
第3実施例によれば、キャッシュの可否によって、ノード装置200Bを迂回してデータを送受信することができる。従って、ノード装置の盗難や不正アクセスに対し、データのセキュリティを確保することができる。
【0090】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【0091】
【発明の効果】
本発明によれば、ノード装置へのキャッシュ自体の回避、キャッシュ時の暗号化、ノード装置を迂回したデータ授受などの方法により、機密情報を含んだデータ等がノード装置のディスク装置に、原状でキャッシュされることを回避することができる。従って、ノード装置の盗難、不正アクセスに対して、これらのデータのセキュリティを確保することができる。
【図面の簡単な説明】
【図1】 第1実施例としての計算機システムの構成を示す説明図である。
【図2】 計算機システムを構成する各装置内の機能ブロックを示す説明図である。
【図3】 ユーザ管理テーブル334の構造を示す説明図である。
【図4】 物理ブロック管理テーブル332の構造を示す説明図である。
【図5】 キャッシュ管理テーブル232の構造を示す説明図である。
【図6】 キャッシュ属性管理テーブル333の構造を示す説明図である。
【図7】 データ読み出し処理のフローチャートである。
【図8】 データ書込処理のフローチャートである。
【図9】 第2実施例としての計算機システムの機能ブロックを示す説明図である。
【図10】 第2実施例におけるデータ読出処理のフローチャートである。
【図11】 第2実施例におけるデータ書込処理のフローチャートである。
【図12】 第3実施例としての計算機システムの機能ブロックを示す説明図である。
【図13】 第3実施例におけるデータ読み出し処理のフローチャートである。
【図14】 データ書込処理のフローチャートである。
【符号の説明】
100…クライアント
101、201、301…CPU
102、202、302…メモリ(RAM)
103、203、303…ROM
104、204、304…NIC
105、205、305…I/O
120、220、320…TCP/IPモジュール
121、221、321…iSCSIモジュール
122、222、322…SCSIモジュール
130…ブートプログラム
131…ID入力モジュール
140、140B…オペレーティングシステム
141、141B…異常制御モジュール
142…ノードアドレス
143…ストレージアドレス
150…アプリケーション
200、200A、200B…ノード装置
210、310…ディスク装置
230、230B…キャッシュ制御モジュール
232…キャッシュ管理テーブル
234…キャッシュ属性管理部
235…暗号化部
300、300A、300B…ストレージ装置
330、330B…アクセス制御モジュール
332…物理ブロック管理テーブル
333…キャッシュ属性管理テーブル
334…ユーザ管理テーブル
Claims (8)
- クライアントコンピュータとストレージ装置との間でやり取りされるデータを中継するノード装置におけるデータのキャッシュを制御するキャッシュ制御方法であって、
(a) 前記ノード装置が、前記ノード装置に備えられた揮発性メモリおよびハードディスクを用いて、前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータをキャッシュする工程と、
(b) 前記ストレージ装置が、前記ストレージ装置に構成された複数の記憶領域ごとに前記ハードディスクへのキャッシュの可否を示す属性情報を記憶する工程と、
(c)前記ストレージ装置が、前記属性情報を前記ノード装置に通知する工程と、
(d) 前記ノード装置が、前記ストレージ装置から通知された属性情報に基づいて、前記複数の記憶領域のうち前記クライアントコンピュータによってアクセスされるアクセス先の記憶領域がキャッシュ不可に設定されているか否かを判断する工程と、
(e) 前記アクセス先の記憶領域がキャッシュ不可に設定されていると判断された場合、前記ノード装置が、前記アクセス先の記憶領域へのアクセスに伴って前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータについて、前記ハードディスクへのキャッシュを禁止する工程と、
(f) 前記クライアントコンピュータのオペレーティングシステムが備える異常制御モジュールが、該オペレーティングシステム上で動作するアプリケーションの動作異常を前記ノード装置に通知する工程と、
(g) 前記ノード装置が、前記クライアントコンピュータから通知された動作異常に基づいて、該動作異常が通知された後に前記クライアントコンピュータから前記ストレージ装置における記憶領域に書き込みされるデータについて、前記ハードディスクへのキャッシュを禁止する工程と
を備えるキャッシュ制御方法。 - 請求項1に記載のキャッシュ制御方法であって、前記(g)工程において前記ハードディスクへのキャッシュが禁止されるデータは、前記動作異常のアプリケーションのコアダンプファイルであるキャッシュ制御方法。
- 請求項1または請求項2に記載のキャッシュ制御方法であって、前記(b)工程によって前記テーブルに設定されるキャッシュの可否は、物理ボリューム,仮想ボリューム,データブロックの少なくとも一つを単位とする記憶領域ごとに設定されるキャッシュ制御方法。
- 請求項1ないし請求項3のいずれかに記載のキャッシュ制御方法であって、前記(b)工程によって前記テーブルに設定されるキャッシュの可否は、前記複数の記憶領域ごとに加え、それぞれの記憶領域へのデータの書き込み動作および読み出し動作ごとに設定されるキャッシュ制御方法。
- 請求項1ないし請求項4のいずれかに記載のキャッシュ制御方法であって、前記(e)工程および前記(g)工程の少なくとも一方は、前記ノード装置が、前記ハードディスクへのキャッシュが禁止されたデータを、前記揮発性メモリにキャッシュする工程を含む、キャッシュ制御方法。
- 請求項1ないし請求項5のいずれかに記載のキャッシュ制御方法であって、
前記(e)工程および前記(g)工程の少なくとも一方は、
前記ノード装置が、前記ハードディスクへのキャッシュが禁止されたデータを暗号化する暗号化工程と、
前記暗号化工程によって暗号化されたデータを前記ハードディスクにキャッシュする工程と
を含む、キャッシュ制御方法。 - クライアントコンピュータとストレージ装置との間でやり取りされるデータを中継するノード装置であって、
前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータをキャッシュする揮発性メモリと、
前記揮発性メモリと協働して、前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータをキャッシュするハードディスクと、
前記ストレージ装置に構成された複数の記憶領域ごとに前記ハードディスクへのキャッシュの可否を示す属性情報を、前記ストレージ装置から受信する属性受信部と、
前記属性受信部によって受信された属性情報に基づいて、前記複数の記憶領域のうち前記クライアントコンピュータによってアクセスされるアクセス先の記憶領域がキャッシュ不可に設定されているか否かを判断するキャッシュ判断部と、
前記アクセス先の記憶領域がキャッシュ不可に設定されていると判断された場合、前記アクセス先の記憶領域へのアクセスに伴って前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータについて、前記ハードディスクへのキャッシュを禁止する第1の禁止部と、
前記クライアントコンピュータのオペレーティングシステムが備える異常制御モジュールから、該オペレーティングシステム上で動作するアプリケーションの動作異常の通知を受信する異常受信部と、
前記異常受信部によって受信された動作異常の通知に基づいて、該動作異常が通知された後に前記クライアントコンピュータから前記ストレージ装置における記憶領域に書き込みされるデータについて、前記ハードディスクへのキャッシュを禁止する第2の禁止部と
を備えるノード装置。 - クライアントコンピュータとストレージ装置との間でやり取りされるデータを中継する機能をコンピュータに実現させるためのプログラムであって、
前記ノード装置に備えられた揮発性メモリおよびハードディスクを用いて、前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータをキャッシュする機能と、
前記ストレージ装置に構成された複数の記憶領域ごとに前記ハードディスクへのキャッシュの可否を示す属性情報を、前記ストレージ装置から受信する機能と、
前記ストレージ装置から受信した属性情報に基づいて、前記複数の記憶領域のうち前記クライアントコンピュータによってアクセスされるアクセス先の記憶領域がキャッシュ不可に設定されているか否かを判断する機能と、
前記アクセス先の記憶領域がキャッシュ不可に設定されていると判断された場合、前記アクセス先の記憶領域へのアクセスに伴って前記クライアントコンピュータと前記ストレージ装置との間でやり取りされるデータについて、前記ハードディスクへのキャッシュを禁止する機能と、
前記クライアントコンピュータのオペレーティングシステムが備える異常制御モジュールから、該オペレーティングシステム上で動作するアプリケーションの動作異常の通知を受信する機能と、
前記クライアントコンピュータから受信した動作異常の通知に基づいて、該動作異常が通知された後に前記クライアントコンピュータから前記ストレージ装置における記憶領域に書き込みされるデータについて、前記ハードディスクへのキャッシュを禁止する機能と
を実現するためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003075181A JP4252828B2 (ja) | 2003-03-19 | 2003-03-19 | キャッシュ制御方法、ノード装置、プログラム |
US10/663,700 US7529885B2 (en) | 2003-03-19 | 2003-09-17 | Cache control method for node apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003075181A JP4252828B2 (ja) | 2003-03-19 | 2003-03-19 | キャッシュ制御方法、ノード装置、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004287476A JP2004287476A (ja) | 2004-10-14 |
JP4252828B2 true JP4252828B2 (ja) | 2009-04-08 |
Family
ID=32984771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003075181A Expired - Fee Related JP4252828B2 (ja) | 2003-03-19 | 2003-03-19 | キャッシュ制御方法、ノード装置、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7529885B2 (ja) |
JP (1) | JP4252828B2 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7809693B2 (en) * | 2003-02-10 | 2010-10-05 | Netapp, Inc. | System and method for restoring data on demand for instant volume restoration |
JP4252828B2 (ja) | 2003-03-19 | 2009-04-08 | 株式会社日立製作所 | キャッシュ制御方法、ノード装置、プログラム |
JP4233900B2 (ja) * | 2003-03-19 | 2009-03-04 | 株式会社日立製作所 | 大容量記憶装置におけるデータの格納・読み出し制御 |
JP3918827B2 (ja) * | 2004-01-21 | 2007-05-23 | 株式会社日立製作所 | セキュアリモートアクセスシステム |
US7321982B2 (en) | 2004-01-26 | 2008-01-22 | Network Appliance, Inc. | System and method for takeover of partner resources in conjunction with coredump |
US7266717B2 (en) * | 2004-01-26 | 2007-09-04 | Network Appliance, Inc. | System and method of selection and communication of a disk for storage of a coredump |
JP2005301708A (ja) * | 2004-04-13 | 2005-10-27 | Hitachi Ltd | 記憶装置システムにおけるソフトウェア管理方法及び記憶装置システム |
JP2006011541A (ja) * | 2004-06-22 | 2006-01-12 | Hitachi Ltd | 計算機および共用記憶装置を含む計算機システムにおける情報記録方法 |
JP4814539B2 (ja) * | 2005-03-10 | 2011-11-16 | 株式会社日立製作所 | ネットブート方法 |
ATE512412T1 (de) | 2005-04-25 | 2011-06-15 | Network Appliance Inc | System und verfahren zum zwischenspeichern von netzwerkdateisystemen |
US7689609B2 (en) * | 2005-04-25 | 2010-03-30 | Netapp, Inc. | Architecture for supporting sparse volumes |
US20070050549A1 (en) * | 2005-08-31 | 2007-03-01 | Verdun Gary J | Method and system for managing cacheability of data blocks to improve processor power management |
JP2007094610A (ja) | 2005-09-28 | 2007-04-12 | Hitachi Ltd | コンピュータシステム |
JP4597038B2 (ja) * | 2005-11-07 | 2010-12-15 | 株式会社日立製作所 | 計算機システム、帯域制御方法及びプログラム |
US7484060B2 (en) * | 2006-04-27 | 2009-01-27 | Blue Coat Systems, Inc. | Systems and methods for protecting customer secrets during vendor troubleshooting |
US8639896B2 (en) * | 2006-08-02 | 2014-01-28 | International Business Machines Corporation | Locating and altering sensitive information in core dumps |
JP5026102B2 (ja) * | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
US8898536B2 (en) * | 2007-04-27 | 2014-11-25 | Netapp, Inc. | Multi-core engine for detecting bit errors |
US7987383B1 (en) | 2007-04-27 | 2011-07-26 | Netapp, Inc. | System and method for rapid indentification of coredump disks during simultaneous take over |
US20090070526A1 (en) * | 2007-09-12 | 2009-03-12 | Tetrick R Scott | Using explicit disk block cacheability attributes to enhance i/o caching efficiency |
US8433888B2 (en) * | 2007-11-26 | 2013-04-30 | Co-Conv, Corp. | Network boot system |
US9251339B2 (en) * | 2007-12-29 | 2016-02-02 | International Business Machines Corporation | Core dump privacy during application failure |
JP4957577B2 (ja) * | 2008-02-14 | 2012-06-20 | 日本電気株式会社 | ディスク制御装置 |
US9158579B1 (en) | 2008-11-10 | 2015-10-13 | Netapp, Inc. | System having operation queues corresponding to operation execution time |
JP4818383B2 (ja) * | 2009-03-11 | 2011-11-16 | 株式会社東芝 | 中継装置及び同装置にキャッシュデータを登録するための方法 |
JP2011109261A (ja) * | 2009-11-13 | 2011-06-02 | Ricoh Co Ltd | ルータ装置、通信方法、及び通信プログラム |
US8825685B2 (en) | 2009-11-16 | 2014-09-02 | Symantec Corporation | Selective file system caching based upon a configurable cache map |
US8402049B2 (en) | 2010-05-27 | 2013-03-19 | International Business Machines Corporation | Metadata cache management |
US20120221767A1 (en) | 2011-02-28 | 2012-08-30 | Apple Inc. | Efficient buffering for a system having non-volatile memory |
US10365980B1 (en) * | 2017-10-31 | 2019-07-30 | EMC IP Holding Company LLC | Storage system with selectable cached and cacheless modes of operation for distributed storage virtualization |
US10474545B1 (en) | 2017-10-31 | 2019-11-12 | EMC IP Holding Company LLC | Storage system with distributed input-output sequencing |
JP7313458B2 (ja) * | 2019-09-18 | 2023-07-24 | 華為技術有限公司 | ストレージシステム、ストレージノード及びデータ記憶方法 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732241A (en) * | 1990-06-27 | 1998-03-24 | Mos Electronics, Corp. | Random access cache memory controller and system |
US5625793A (en) | 1991-04-15 | 1997-04-29 | International Business Machines Corporation | Automatic cache bypass for instructions exhibiting poor cache hit ratio |
US5414827A (en) | 1991-12-19 | 1995-05-09 | Opti, Inc. | Automatic cache flush |
US5452447A (en) | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
JPH06332716A (ja) | 1993-05-26 | 1994-12-02 | Hitachi Ltd | リモートブートシステム |
JPH08305558A (ja) * | 1995-04-27 | 1996-11-22 | Casio Comput Co Ltd | 暗号化プログラム演算装置 |
EP0782079A1 (en) * | 1995-12-18 | 1997-07-02 | Texas Instruments Incorporated | Burst access in data processing systems |
JPH103436A (ja) * | 1996-06-17 | 1998-01-06 | Mitsubishi Electric Corp | 自動転送機能付シリアル入出力回路 |
US5860107A (en) | 1996-10-07 | 1999-01-12 | International Business Machines Corporation | Processor and method for store gathering through merged store operations |
JP3964049B2 (ja) | 1997-06-06 | 2007-08-22 | テキサス インスツルメンツ インコーポレイテツド | マイクロプロセッサ |
JP2000112860A (ja) | 1998-10-01 | 2000-04-21 | Mitsubishi Electric Corp | 安全な情報発信・共有サービス方法 |
JP3837953B2 (ja) | 1999-03-12 | 2006-10-25 | 株式会社日立製作所 | 計算機システム |
JP2001075853A (ja) | 1999-09-03 | 2001-03-23 | Hitachi Ltd | 計算機システム、及び該計算機システムに用いられる計算機並びに記憶装置 |
US7350028B2 (en) * | 1999-05-21 | 2008-03-25 | Intel Corporation | Use of a translation cacheable flag for physical address translation and memory protection in a host |
JP2001166993A (ja) | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
US8185938B2 (en) * | 2001-03-29 | 2012-05-22 | International Business Machines Corporation | Method and system for network single-sign-on using a public key certificate and an associated attribute certificate |
US6658538B2 (en) | 2001-06-21 | 2003-12-02 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control |
JP4067293B2 (ja) | 2001-10-17 | 2008-03-26 | 富士通株式会社 | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ |
JP2003296039A (ja) | 2002-04-02 | 2003-10-17 | Hitachi Ltd | クラスタ構成記憶システム及び制御方法 |
US7139890B2 (en) * | 2002-04-30 | 2006-11-21 | Intel Corporation | Methods and arrangements to interface memory |
US7120756B2 (en) | 2002-06-28 | 2006-10-10 | Sun Microsystems, Inc. | Computer system including a promise array |
US7353334B2 (en) | 2002-08-19 | 2008-04-01 | Aristos Logic Corporation | Method of increasing performance and manageability of network storage systems using optimized cache setting and handling policies |
JP3944449B2 (ja) | 2002-12-19 | 2007-07-11 | 株式会社日立製作所 | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 |
JP4233900B2 (ja) | 2003-03-19 | 2009-03-04 | 株式会社日立製作所 | 大容量記憶装置におけるデータの格納・読み出し制御 |
JP4252828B2 (ja) | 2003-03-19 | 2009-04-08 | 株式会社日立製作所 | キャッシュ制御方法、ノード装置、プログラム |
-
2003
- 2003-03-19 JP JP2003075181A patent/JP4252828B2/ja not_active Expired - Fee Related
- 2003-09-17 US US10/663,700 patent/US7529885B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040186961A1 (en) | 2004-09-23 |
US7529885B2 (en) | 2009-05-05 |
JP2004287476A (ja) | 2004-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4252828B2 (ja) | キャッシュ制御方法、ノード装置、プログラム | |
JP4032670B2 (ja) | ホストコンピュータの認証を行う記憶装置システム | |
JP4392241B2 (ja) | 付属記憶装置を採用したコンピュータ・システム内の安全保護を促進するための方法ならびにシステム | |
JP4990089B2 (ja) | 格納データ暗号化機能内蔵ストレージ装置の暗号鍵をバックアップ及びリストアする計算機システム | |
JP4233900B2 (ja) | 大容量記憶装置におけるデータの格納・読み出し制御 | |
JP4512179B2 (ja) | ストレージ装置及びそのアクセス管理方法 | |
US8750519B2 (en) | Data protection system, data protection method, and memory card | |
JP2009540408A (ja) | 記憶装置に対するセキュア・アクセス制御のためのシステム、方法、およびコンピュータ・プログラム | |
JP2005322201A (ja) | 暗号処理を行うストレージシステム | |
JP2002312223A (ja) | リモートデータ記憶システムにおける暗号化と復号化のための方法及び装置。 | |
JP4127497B2 (ja) | ディジタル・サービス・システム | |
WO2007056054A1 (en) | Content control systems and methods | |
JP4329412B2 (ja) | ファイルサーバシステム | |
JP4084971B2 (ja) | 電子データ交換システムにおけるデータ保護装置及びデータ保護方法並びにそれに用いるプログラム | |
JP4764455B2 (ja) | 外部記憶装置 | |
JP4345309B2 (ja) | ネットワークストレージ装置 | |
JP2008084081A (ja) | 機密情報の漏洩防止システム、機密情報の漏洩防止方法、記録媒体、及びプログラム | |
JP2005157826A (ja) | アクセス制御装置及び方法 | |
JP2007329731A (ja) | 証明書更新方法、システム及びプログラム | |
JP4191153B2 (ja) | データ交換システム、データ交換方法、サーバ、管理サーバ及びデータ交換プログラム | |
US6292876B1 (en) | Method for providing access protection for SCSI storage devices | |
JP4613487B2 (ja) | 電子機器、情報処理システム、情報処理装置および方法、プログラム、並びに記録媒体 | |
CN116226870B (zh) | 安全增强系统及方法 | |
JP2007141180A (ja) | 情報処理システム | |
JP2008209975A (ja) | ネットワークシステム、ネットワークシステムの通信制御方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051004 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081021 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081216 |
|
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: 20090120 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090122 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120130 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130130 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140130 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |