JP4257785B2 - キャッシュストレージ装置 - Google Patents

キャッシュストレージ装置 Download PDF

Info

Publication number
JP4257785B2
JP4257785B2 JP2003369811A JP2003369811A JP4257785B2 JP 4257785 B2 JP4257785 B2 JP 4257785B2 JP 2003369811 A JP2003369811 A JP 2003369811A JP 2003369811 A JP2003369811 A JP 2003369811A JP 4257785 B2 JP4257785 B2 JP 4257785B2
Authority
JP
Japan
Prior art keywords
client
storage device
cache
storage
area
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 - Lifetime
Application number
JP2003369811A
Other languages
English (en)
Other versions
JP2004342071A (ja
Inventor
真喜夫 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003369811A priority Critical patent/JP4257785B2/ja
Priority to US10/764,600 priority patent/US7228384B2/en
Priority to EP04019855A priority patent/EP1528473A3/en
Publication of JP2004342071A publication Critical patent/JP2004342071A/ja
Application granted granted Critical
Publication of JP4257785B2 publication Critical patent/JP4257785B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/264Remote server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (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)

Description

本発明は、サーバとストレージとの間のネットワークを介したデータ転送においてレスポンス性能の改善、さらに障害発生時のオーバヘッドを削減する技術に関する。
記憶装置(以下「ストレージ」とも言う)の接続形態は、計算機(以下「サーバ」とも称する)直結型のDirect Attached Storage(DAS)からネットワーク接続型のStorage Area Network(SAN)が主流となっている。SANを実現する伝送方式としてファイバチャネルを用いたFC-SANが一般的である。
一方、ファイバチャネルに対して転送性能で遅れを取っていたイーサネット(登録商標)が、ネットワーク技術の進歩に伴い高速化されてSANへ適用されつつある。これをFC-SANと区別するためにIP-SANと呼ぶ。IP-SANを実現する手段としていくつか候補があるが、iSCSI(internet SCSI)が最有力と言われている。
信頼性が低いイーサネット(登録商標)に基づいたiSCSIでは、データ転送の信頼性を確保するためにTCP/IPプロトコルが用いられる。しかし、TCP/IPを採用すると信頼性が確保される反面、データ転送に係るオーバヘッドが大きくなるという問題がある。
例えば、TCPはコネクション型であり、TCP層を介して送られて来るデータの順序補償、誤り訂正、障害発生時の再送処理が行われる。特に障害発生時の再送処理のオーバヘッドはサーバとストレージ間の接続距離に比例して大きくなり性能に影響を及ぼす。
このTCPにおける再送処理の問題を解決する手段として、サーバとストレージの間にデータを一時保存(以下「キャッシュ」)する装置(以下「キャッシュデバイス」)を配置し、サーバからの要求をそのキャッシュデバイスでキャッシングする方法がある。再送処理が発生した場合は、サーバからではなくキャッシュデバイスからデータ等を再送することにより上記オーバヘッドが削減される。
上述のキャッシュデバイスの考え方は、Webアクセスの技術においては、「Webキャッシュ」として採用されている。具体的には、Webにおいて、サーバから取得したページを一旦ローカルのキャッシュデバイスにキャッシュするのが一般的である。
このようなWebキャッシュでは、サーバ側でページを絶えず更新していることを考慮すると、ローカルにキャッシングしたページとサーバで管理するページとで鮮度を保証(データの一致を保証)する必要がある。
Webアクセスを実現するプロトコルHTTP(HyperText Transport Protocol)では鮮度を保証する手段として、Webサーバへの要求に対するレスポンスヘッダに定義されているAge等の情報に基づいて、ローカルにキャッシュされたデータを使用可能かどうかをローカルで判定する方法がある。ただし、ローカルでキャッシュ可能なデータはリード(サーバからの読み込み)系のコマンドに対応するものに限られている。
更に、ファイルシステムにおけるデータのキャッシュ方法に関しては、特許文献1及び特許文献2に開示されている。
特許文献1では、ファイルサーバが接続されたネットワークに、クライアントがキャッシュサーバ(キャッシュデバイスの一種)を介して接続されたシステムにおいて、アクセス頻度の高いファイルをキャッシュサーバ上に先読みしておくことで高速なファイルアクセスを実現する技術が開示されている。
特許文献2では、サーバとキャッシュサーバとクライアントがネットワークを介して接続されたシステムにおいて、データを要求したクライアントへのデータ配信の負荷が小さく、通信時間の遅延が小さいキャッシュサーバのみを介してデータを配信することで、無駄なデータが他のキャッシュサーバに蓄積されることを防ぐ技術が開示されている。
特開平11−24981公報
特開2001−290787公報
上述した公知技術はファイルデータを対象としており、かつリードデータのみがキャッシュデバイスにキャッシングされる。尚、ファイルデータとはファイルシステムがアクセス可能な単位で構成されたデータを指す。
しかし、トランザクション性能が要求されるアプリケーションではブロック単位でのデータのアクセスが望ましい。これは、ファイルデータへのアクセスは最終的にブロック単位でのアクセスに変換されるため、その分のオーバヘッドがトランザクション性能に影響を与えるためである。
又、例えばデータベースアプリケーションではリードアクセスだけはなくライトアクセスも行われる。
ライトアクセスで問題になるのは、そのキャッシングされたデータに対して複数のクライアントがアクセスする場合である。複数のクライアントから同一のデータ格納領域にライトアクセスのリクエストが発行された場合、キャッシュデバイスでその双方のリクエストが競合し、双方がデータの書き込み又は書き換えをしようとするためデータの保証が出来ない。このような点に関しては、上述の公知技術では言及がされていない。
さらに公知技術の場合、通信プロトコルによって決められているアルゴリズムにしたがって送信元、受信元の装置間のデータ通信経路が決定される。したがって、ネットワーク上にキャッシュデバイスを用意しても、必ずしもキャッシュデバイスを通過するデータ通信経路にならない場合があり、キャッシュデバイスを採用した利益を享受することが出来ないという問題がある。
一般的に、データ通信経路を決定するアルゴリズムでは、キャッシュデバイスの存在は考慮されず、データ転送に使用されるネットワークの数(Hop数)やコストに基づいて決定される。したがって、公知技術ではデータ転送において必ずキャッシュデバイスを使用するという保証をすることができない。
本発明の目的は、サーバとストレージ間のデータ転送の転送効率を上げることにある。
本発明の別の目的は、キャッシュデバイスにおいてクライアントが複数存在する場合にリクエストの競合を防止することにある。
本発明のさらに別の目的は、ネットワーク上のキャッシュデバイスにクライアントが通信できるようにすることにある。
本発明のさらに別の目的は、サーバ、ストレージ及びキャッシュデバイス間のデータ転送のセキュリティを確保することにある。
上記問題を解決するために、ネットワークを介して複数のクライアント及び1つ以上の記憶装置が接続されるキャッシュストレージ装置において、前記クライアント及び前記記憶装置間で送受信されるブロックデータを一時的に記憶する記憶媒体と、前記記憶媒体に対する該ブロックデータの読み書きを制御する制御部とを設け、前記制御部が、前記クライアントからロック要求が発行された場合に、前記ロック要求において指定された前記記憶媒体内の領域を該クライアントの占有領域としてロックする一方、当該ロック要求の後に前記クライアントから送信されるライト要求に応じて、前記クライアントの占有領域としてロックした前記記憶媒体内の領域に前記クライアントから送信されるライト対象のブロックデータを書き込ませ、前記クラインアントからのロック解除要求に応じて、該クライアントの占有領域としてロックした前記記憶媒体内の領域のロックを解除するとともに、該記憶媒体内の領域に対応する前記記憶装置内の領域に対するロック要求を前記記憶装置に発行し、該ロック要求に応じてロックされた前記記憶装置内の前記領域に対して、前記クライアントの占有領域としてロックされた前記記憶媒体内の領域に書き込まれた前記ブロックデータを書き込ませるライト処理を実行するようにした。
本発明によれば、サーバとストレージの間で、ブロック単位のデータのキャッシングによるレスポンス性能、トランザクション性能の向上、およびクライアント間のデータの一貫性、新鮮さ、セキュリティを保証したデータ通信を行うことが可能となる。
以下本発明の実施形態について説明する。
以下、本発明に係わるキャッシュデバイス(以下、キャッシュデバイスがストレージの場合について説明し、そのストレージを「キャッシュストレージ装置」又は「キャッシュストレージ」とも称する)の実施例1を図面に示しさらに詳細に説明する。
図1は、本実施例のキャッシュストレージ装置を含むネットワークシステムの全体構成を示している。
本実施形態のネットワークシステムは、複数のネットワーク120、135、ネットワークに接続されるクライアント105、キャッシュストレージ125、ネームサービス110、記憶装置130及び各ネットワーク相互を接続するネットワーク結合装置140を有する。
クライアント105は、ストレージターゲットに対してリクエストを発行する計算機である。ここで、ストレージターゲットとはクライアント105と通信するストレージ130を指す。
ネームサービス110は、ネームサービスを提供する計算機であり、TCP/IPネットワークにおいてはDNS(Domain Name System)、iSCSIにおいてはiSNS(Internet Storage Name Service)サーバ、SLP DA(Service Location Protocol-Directory Agent)などに該当する。本図では、ネームサービス110aがDNSサーバに対応し、ネームサービス110bがiSNSサーバに対応するとする。
ネームサービス110等は、独立したネットワーク毎に存在する。図1では、2つのネットワークが存在し各ネットワークに1つのネームサービスが存在する。
通常、耐障害性を高める目的でネームサービスは冗長構成にするが図1では省略する。
キャッシュストレージ125は、クライアント105が記憶装置130と行う通信においてクライアント105から送られるデータを一時蓄積する。
記憶装置130は、ディスクドライブ等のストレージデバイスを有する装置、例えばディスクアレイ装置である。
ネットワーク135には、クライアント105c、キャッシュストレージ125b、記憶装置130、ネームサービス110bが接続されている。
ネットワーク120には、クライアント105a、105b、ネームサービス110aが接続される。ネットワーク120には、例えばLAN(Local Area Network)などが採用される。
ここで、ネットワーク120をネットワーク1、ネットワーク135をネットワーク2と区別しそれぞれ独立した異なるネットワークと仮定する
ネットワーク結合装置140は、異なるネットワークを接続するための装置である。
以下、簡単にネームサービスについて説明する。
DNSとは、ネットワークに接続された各クライアントに与えられる識別子(以下「ホスト名」)から対応するIPアドレスを取得する仕組みであり、DNSサーバがその対応をデータベースで管理する。
図1で、例えばクライアント105aのホスト名がabc、IPアドレスが192.168.0.1、クライアント105bのホスト名がdef、IPアドレスが192.168.0.10とする。
クライアント105aがクライアント105bと通信する場合、クライアント105aは、クライアント105bのホスト名を用いてネームサービス110aにクライアント105bのIPアドレスを問い合わせる。
問い合わせを受けたネームサービス110aは、ネームサービス110aが管理しているデータベースからクライアント105bのホスト名に対応するIPアドレスをクライアント105aへ返す。
クライアント105aは、ネームサービス110aから受け取ったIPアドレスで初めて他のクライアント105bとの通信が可能となる。
一方、iSNSは、IPネットワーク上のiSCSI対応の記憶装置130(以下「iSCSIストレージ」)とファイバチャネルに対応する記憶装置130(以下「ファイバチャネルストレージ」)の管理フレームワークであり、iSNSサーバがネットワーク上のクライアントとストレージを管理する。
クライアントやストレージの識別には、iSCSIストレージの場合iSCSIネーム、ファイバチャネルストレージの場合WWPN(World Wide Pote Name)が使用される。
以下、簡単にiSNSのネームサービスの手順について図1を用いて説明する。図1において、ネームサービス110bを介してクライアント105cと記憶装置130aが通信する場合を考える。
ここで、記憶装置130aがネットワーク2に接続され、ネームサービス110bに記憶装置130aの情報が既に登録されているものとする。
クライアント105cがネットワーク2に接続されると、クライアント105cは、まず自分自身の情報をネームサービス110bへ登録する。
これにより、ネットワーク2に存在するストレージ130aにクライアント105cが同一ネットワーク上に存在するという通知がネームサービス110bから送られる。
そして、クライアント105cは、記憶装置130aを検出するための要求(以下「クエリー」)をネームサービス110bへ送信し、その応答として、記憶装置130aの情報(iSCSIネーム、IPアドレス、ポート番号)を取得する。
以上を経て、クライアント105cはiSCSIストレージデバイス130へ通信可能となる。
図2は、キャッシュストレージ125及び記憶装置130の構成例を示す図である。
キャッシュストレージ125は、ディスク制御装置205及びディスク駆動装置235とを有する。
ディスク制御装置205は、入出力パス206、チャネル制御部210、キャッシュメモリ制御部215、共有メモリ制御部220及びディスク制御部230を有する。
入出力パス206は、ネットワーク2とチャネル制御部210とを接続する通信線である。
チャネル制御部210は、ネットワークインタフェースを持ち、クライアントとのユーザデータの送受信、ディスク制御装置205内部の制御情報などの共有データへのアクセスを制御する。チャネル制御部210は、ディスク制御装置205内に複数存在する。
キャッシュメモリ制御部215は、クライアント、及びディスク駆動装置235にあるユーザデータを一時的に格納するキャッシュメモリを有し、チャネル制御部210、またはディスク制御部230からのキャッシュメモリへのアクセスを制御する。
共有メモリ制御部220は、ディスク制御装置205内部での通信に関する制御情報を格納する共有メモリを備え、チャネル制御部210、及びディスク制御部230からの共有メモリアクセスを制御する。
共有メモリ制御部220は、キャッシュストレージ125内のデバイスのロック状況を示すロック管理テーブル225及びアドレス対応テーブル226を有する。
ここで「デバイス」とは、記憶装置130やキャッシュストレージ125が有する論理的又は物理的な記憶媒体を指し、例えばディスクドライブであったり、これらのディスクドライブから構成される論理ユニットであったりする。以下では、ディスクドライブをデバイスとして取り扱うものとする。
又、「ロック」とは、あるデバイスがある装置によって専有されており、他の装置が使用できない状態を指し、「ロックする」とは、あるデバイスを他の装置が使用できない状態にすることを指す。
ロック管理テーブル225には、どのデバイスがロックされているかを示す情報が登録される。
アドレス対応テーブル226には、キャッシュストレージ125内のデバイスとそれに対応する記憶装置130内のデバイスとの対応付けを示す情報が格納される。
具体的には、クライアント105からのユーザデータの一時蓄積場所であるキャッシュメモリ、もしくはディスク駆動装置235に存在するデータを記憶装置130へ格納するときに指定する記憶装置130内のデバイスのアドレスとキャッシュストレージ125内デバイスのアドレスとを対応付けてアドレス対応テーブル226で管理する。
ディスク制御部230は、ディスク駆動装置235との通信制御、及びキャッシュメモリ・共有メモリへのアクセスなどを行う。チャネル制御部210やディスク制御部230の数に制限はない。
チャネル制御部210、キャッシュメモリ制御部215及び共有メモリ制御部220との間の接続や、ディスク制御部230、キャッシュメモリ制御部215及び共有メモリ制御部220との間の接続はバス接続、またはスター接続などの形態をとる。
ディスク駆動装置235は、複数のディスクドライブ240を有し、ユーザが使用するデータ(以下「ユーザデータ」とも称する)などを格納する。
ここで、キャッシュストレージ125は、ディスク駆動装置235のディスクドライブ240に対して1つ以上のiSCSIネームを割り当てる。尚、キャッシュストレージ125は、他のデバイスに対してiSCSIネームを割り当てても良い。iSCSIネームとはiSCSIプロトコルを認識する個々の機器を識別するための情報である。
図3は、チャネル制御部210の構成例を示す図である。チャネル制御部210は、プロトコル制御部305、チャネル制御プロセッサ310、データ転送制御部320及び共有データ制御部325を有する。
プロトコル制御部305は、入出力パス206を介してネットワークパケットを受信する。受信したネットワークパケットにiSCSIパケットが含まれる場合、プロトコル制御部305はさらにその中からiSCSIヘッダ、SCSIコマンド、データなどを取り出しチャネル制御プロセッサ310へ渡す。iSCSIパケット以外のパケットには適切な処理(例えばICMP(Internet Control Message Protocol)リクエストであればICMPリプライを発行)が施される。
また、プロトコル制御部305は、SCSIコマンドの処理結果をチャネル制御プロセッサ310から受け取りiSCSIパケットを生成する。そしてプロトコル制御部305は、iSCSIパケットをネットワークパケットにカプセル化し入出力パス206を通じてネットワーク2へ送出する。
チャネル制御プロセッサ310は、プロトコル制御部305からのSCSIコマンド、データなどの受信、解析を行い、解析したリクエストの内容に従い、ディスク制御装置内部に指示を与えるプロセッサである。
データ転送制御部320は、チャネル制御プロセッサ305からの指示により、クライアントのユーザデータ転送、及びディスク駆動装置にあるユーザデータを読み出す。
共有データ制御部325は、制御情報等の共有データが格納されている共有メモリへのアクセスを制御する。
図13は、ネットワークパケットとiSCSIパケットの関係の一例を示す図である。ネットワークパケット1701は、Etherヘッダ1705、IPヘッダ1710、TCPデータグラム1715から構成される。Etherヘッダ1705はデータリンク層に関連する制御情報(MACアドレス等)とデータを含む。IPヘッダ1710はIP層に関連する制御情報(IPアドレス等)とデータを含む。TCPデータグラム1715はTCPヘッダ1725とTCPデータ1730で構成する。TCPヘッダ1725はTCP層に関連する制御情報(ポート番号、シーケンス番号等)を含む。TCPデータ1730にはiSCSIパケットを含む。iSCSIパケットはiSCSIに必要な制御情報とSCSIコマンド、データを含む。
図4は、ロック管理テーブル225の構成例を示す図である。
ロック管理テーブル225は、複数のフィールド(405、410)を持つエントリを、iSCSIネーム対応に複数有する。
フィールド405はiSCSIネームを登録するフィールドである。ここに登録されるiSCSIネームは、キャッシュストレージ内のデバイスを識別するiSCSIネームである。
フィールド410はロックステータスを登録するフィールドである。ロックステータスとは、フィールド405に登録されたiSCSIネームに対応するキャッシュストレージ125内のデバイス及び記憶装置130内のデバイスのロック状況を示す情報である。
フィールド410は更にサブフィールド420及び425を有する。フィールド420はキャッシュロックフラグを登録するフィールドである。キャッシュロックフラグは、"OFF"の場合iSCSIネーム405に対応するキャッシュストレージ内のデバイスがロックされていない状態、"ON"の場合はロックされている状態を示す情報である。
フィールド425は記憶装置ロックフラグを登録するフィールドである。記憶装置ロックフラグは、"OFF"の場合はiSCSIネームで表されるキャッシュストレージ125内デバイスに対応する記憶装置130内のデバイスがロックされていない状態、"ON"の場合はロックされている状態を示す情報である。
このテーブルを上記のように利用することでキャッシュストレージ、及び記憶装置のロック状況を把握することが可能となりアクセスが競合してもデータを保証できる。
図11は、アドレス対応テーブル226の構成例を示す図である。アドレス対応テーブル226は、複数のフィールド(1305、1310)を有するエントリを、キャッシュストレージが有するデバイス毎に有する。
フィールド1305はデバイス名が格納されるフィールドである。デバイス名とは、キャッシュストレージ125内のデバイスに割り当てられたiSCSIネームに対応する。
フィールド1310は記憶装置アドレスが登録されるフィールドである。記憶装置アドレスとは、フィールド1305に登録されたデバイス名に対応する記憶装置130内のデバイスに与えられたiSCSIネームである。
キャッシュストレージ125が自装置内のデータを記憶装置130へ格納するときにまず記憶装置130内のデバイスに対しログインする。
そのログインするデバイスのiSCSIネームを指定するときにアドレス対応テーブルを参照しログインパラメータとして記憶装置アドレスを使う。このテーブルを上記のように利用することで記憶装置130に対するログインに必要な情報を容易に参照することが出来る。
図5は、実施例1におけるクライアント105毎に記憶装置130が有するデバイスが割り当てられれている時のクライアント105とキャッシュストレージ125との通信手順とキャッシュストレージ125と記憶装置130との通信手順を示すフローチャートである。尚、ここでの通信はライト処理とする。
図5では、クライアント105毎にあらかじめデバイスが割り当てられているためキャッシュストレージ125でリクエストが競合しない。従って、デバイスをロックする処理が不要となる。
まず、クライアント105は、割り当てられたキャッシュストレージ125内のデバイスに対してログインの要求を発行する。この時、本来ならば記憶装置130に到達するログインをキャッシュストレージ125へと導く必要がある。
そのため、本実施形態では、最初にクライアント105がログインするデバイスの情報を取得するときに、ネームサービス110が記憶装置130ではなくキャッシュストレージ125の情報を送信する。ここでキャッシュストレージ125の情報とは、例えばIPアドレス、ポート番号、iSCSIネーム又はこれらの組み合わせである。
キャッシュストレージ125の情報は、キャッシュストレージ125とネームサービス110との間であらかじめ通信して決める。通信の方法としては、例えばTCPのデータで通信する方法や、iSNSのVender Specific Messageでお互いに取り決めたメッセージを通信する方法がある。このようにして、ネームサービス110は、クライアント105からの情報取得要求のときに記憶装置130の情報ではなくキャッシュストレージ125の情報をクライアント105に提供する(ステップ505)。
ログイン要求を受け取ったキャッシュストレージ125は、ログインを許可するステータスと共にログイン応答メッセージをクライアント105に送信する。この時点で、クライアント105とキャッシュストレージ125内のデバイスとのセッションが確立された状態となる(ステップ510)。
その後、クライアント105はキャッシュストレージ125に対してリクエスト、ここではライト要求を発行する(ステップ515)。
キャッシュストレージ125は、そのリクエストを処理(データの書き込み)し、ステータスを含むメッセージをクライアント105に送信する。ステータスとは、そのリクエスト処理が正常終了したかどうか、異常終了した場合その要因を示す情報である(ステップ520)。
クライアント105とキャッシュストレージ125は必要に応じてステップ515、520の処理を繰り返す。そして、クライアント105は最後のリクエストを発行し(ステップ525)、キャッシュストレージ125からそのリクエストに対するメッセージを受ける(ステップ530)とクライアント105側の処理を終了する(ステップ535)。
クライアント105との通信を終えた後、キャッシュストレージ125は、記憶装置130へのデータ格納処理に入る。尚、記憶装置130へのデータ格納処理の実行は、クライアント105との通信終了直後でも、適当なタイミングに行っても構わない。
データ格納処理に入ると、まずキャッシュストレージ125は、データ格納先の記憶装置130へログインし、データ格納を指示するライトリクエストを発行する(ステップ540)。
記憶装置130はそのリクエストに従い、所定の領域にキャッシュストレージ125から転送されたユーザデータを格納する(ステップ545)。
その後、記憶装置130はリクエストに対する応答をキャッシュストレージ125へ送信し処理を終了する(ステップ550)。
尚、キャッシュストレージ125がクライアント105からリード要求を受けた際に、その要求されたユーザデータがキャッシュストレージ125に存在する場合、キャッシュストレージ125はそのユーザデータをクライアント105へ送信する。存在しなければ、キャッシュストレージ125は記憶装置130からユーザデータを読み出しクライアント105へ送信する。
記憶装置130からユーザデータを読み出した場合、キャッシュストレージ125がクライアントにそのユーザデータを送信すると共にキャッシュストレージ125上にそのユーザデータを保存し、次回同一要求を受けた場合にそのキャッシュしたユーザデータを使用してもよい。
以上の処理により、従来記憶装置130まで通信するところをクライアント105により近い場所での通信ですむため、クライアント105から見ると応答時間が短縮されレスポンス性能、トランザクション性能の改善につながる。
図12は、実施例1における伝送路障害が発生した場合の転送手順を示す図である。
なお、図12では図5のステップ540以降の処理手順を示すが、図5の他のステップで伝送路の障害が発生しても同様の手順で処理される。
ステップ540では、キャッシュストレージ125は、キャッシュストレージ125に格納されたユーザデータを記憶装置130へ格納する処理を指示するリクエストを記憶装置130へ発行する。この際、伝送路で障害が発生したとする(ステップ1405)。
ここで、キャッシュストレージ125は、要求したリクエストに対する応答を受信できる状態になっている。ところが、送ったリクエストが記憶装置130へ到達する前に障害が発生したため、記憶装置130はこのリクエストを処理できない。よって記憶装置130はリクエストに対する応答が出来ない。
キャッシュストレージ125は、応答が無いためタイムアウトを検出し再送処理を開始する。
このような動作により、従来であればクライアント105まで影響が及ぶ再送処理(1415)が、記憶装置130に近い位置にあるキャッシュストレージ125までの処理(1410)とすることが出来るため、再送処理の負荷軽減につながる。
上述の処理により、クライアント105では、トランザクション性能が改善される。特に、信頼性の低いネットワークであればより効果が大きくなる。
実施例1によれば、ブロック単位のデータ通信において、クライアントと記憶装置間の距離が離れている場合にその間にキャッシュストレージを設置し、クライアントからのブロック単位のデータをキャッシングすることによりレスポンス性能を改善させると共に再送処理の軽減によるトランザクション性能も改善させることが出来る。
以下、本実施形態においてロック制御を行う場合について、図6から図9に示しさらに詳細に説明する。尚、以下特に説明のない部分はロック制御を行わない場合と同じとする。
図6は、ロック制御におけるクライアント105、キャッシュストレージ125及び記憶装置130間の通信手順を示した図である。以下、通信はライト処理として説明する。
ここでは、クライアント105がキャッシュストレージ125のデバイスをロック制御する。つまり、クライアント105からのリクエストがキャッシュストレージ125で競合する場合である。
ここでは、ロック制御をReserve、ReleaseというSCSIコマンドで実現する。
Reserveコマンドとは、領域全体を特定のデバイスのために予約して排他的に占有できるように指定するコマンドである。
ReleaseコマンドはReserveコマンドで排他的に占有している領域全体を解放するコマンドである。
なお、以下の説明では、ログイン処理は既に完了済みとし説明を省略する。
また、キャッシュストレージ125及び記憶装置130のロック管理テーブルの内容の変遷を図7及び図8に示す。尚、ログイン処理が終了した時点でのロック管理テーブルの内容は、それぞれ図7(1)、図8(1)の状態とする。
クライアント105は、キャッシュストレージ125に対してリクエストを発行する前に該デバイスのロック要求を発行する。これにはReserveコマンドが用いられる(ステップ605)。
キャッシュストレージ125は、Reserveコマンドを受けるとキャッシュストレージ125上のReserveコマンドで指定された領域(デバイス全体又はデバイスの一部)のロック状態を確認する。
キャッシュストレージ125は、指定された領域がロックされていなければその領域をロックし、ステータス"Good"をクライアント105へ送信する。
指定された領域が既にロックされていれば、キャッシュストレージ125はステータス"Reservation conflict"をクライアント105へ送信する。
このとき、キャッシュストレージ125がロック要求を発行したクライアント105の状況を確認するためにロックOKを示すコマンドを発行する(ステップ610)。
ロックOKのコマンドを受けたクライアント105は、その確認応答のためにロックAcknowledgeをキャッシュストレージ125に送信する。これは、他のクライアント105からロック要求を受けたときにデットロックを生じさせないために行われる(ステップ625)。
その後、キャッシュストレージ125は、指定された領域に対応するロック管理テーブルの内容を更新(ここでは、図7の(1)から(2)の内容へ更新)する(ステップ620)。
ロックAcknowledgeを送信したクライアント105は、キャッシュストレージ125に対してI/Oリクエストを発行する(ステップ630)。
キャッシュストレージ125はそのリクエストを処理しステータスを含む応答をクライアント105へ送信する(ステップ640)。
この間、他のクライアント105から同一領域に対するロック要求(ステップ645)もしくはリクエストを受けて(ステップ650)も、キャッシュストレージは"Reservation confilct"ステータスをロック要求等を送信したクライアント105に送信しそれら要求を拒絶する。
必要に応じてステップ630、640を繰り返し一連の処理が終了すると、クライアント105はキャッシュストレージ125に対してロック解除要求を発行する。このとき、ロック解除要求としてReleaseコマンドが使用される(ステップ655)。
キャッシュストレージ125は、Releaseコマンドで指定される領域を開放し、ステータス"Good"をクライアント105へ送信する。このとき、Reserve時と同様にロック解除要求を発行したクライアント105の状況を確認するためにロック解除OKを示すコマンドを発行する(ステップ660)。
ロック解除OKを示すコマンドを受けたクライアント105は、その確認応答のために解除Acknowledgeをキャッシュストレージ125に送信する(ステップ665)。
解除Acknowledgeを受信したキャッシュストレージ125は、Releaseコマンドで指定される領域に対応するロック管理テーブルを更新(ここでは図7の(2)から(3)の内容へ更新)する(ステップ657)。
この後、キャッシュストレージ125は、記憶装置130へ更新されたデータを送信するために、記憶装置130と接続している入出力パスを制御するチャネル制御プロセッサ310へ処理を引き継ぐ。ただし、クライアント105との通信をするチャネル制御プロセッサ310がそのまま処理を続行してもよい。この場合、本処理は省略出来る(ステップ670)。
記憶装置130と通信を開始するため、キャッシュストレージ125はまず記憶装置130に対して、キャッシュストレージ125が使用する領域のロック要求を発行する。このときキャッシュストレージ125はReserveコマンドを使用し、自身が有するアドレス対応テーブル226を参照して指定する領域を決定する(ステップ672)。
Reserveコマンドを受けた記憶装置130は、Reserveコマンドで指定された記憶装置130上の領域のロック状態を確認する。
指定された領域がロックされていなければ、記憶装置130はその領域をロックし、ステータス"Good"をキャッシュストレージ125へ送信する。
指定された領域が既にロックされていれば、記憶装置130はステータス"Reservation conflict"をキャッシュストレージ125へ送信する。
このとき、ロック要求を発行したキャッシュストレージ125の状況を確認するために、記憶装置130は、ロックOKを示すコマンドをキャッシュストレージ125へ発行する(ステップ676)。
ロックOKを示すコマンドを受けたキャッシュストレージ125は、その確認応答のためにロックAcknowledgeを記憶装置130に送信する。これは、他のキャッシュストレージ、クライアントからロック要求を受けたときにデットロックを生じさせないための手段として用いられる(ステップ678)。
ロックAcknowledgeを送信したキャッシュストレージ125は、指定した領域に対応するロック管理テーブルを更新(ここでは図7の(3)から(4)の内容へ更新)する。又、ロックAcknowledgeを受信した記憶装置130は、指定された領域に対応するロック管理テーブルを更新(ここでは、図8の(1)から(2)の内容へ更新)する(ステップ674)。
ロック管理テーブル225を更新したキャッシュストレージ125は、記憶装置130に対してデータ更新のI/Oリクエストを発行する(ステップ680)。
I/Oリクエストを受信した記憶装置130は、そのリクエストを処理し、ステータスを含む応答をキャッシュストレージ125へ送信する(ステップ682)。
その後、必要に応じてステップ680、682の処理を繰り返し、一連の処理が終了するとキャッシュストレージ125は該領域のロック解除要求を発行する。このときロック解除要求としてReleaseコマンドが使用される(ステップ684)。
Releaseコマンドを受信した記憶装置130は、Releaseコマンドで指定される領域を開放し、ステータス"Good"をキャッシュストレージ125へ送信する。
このとき、Reserve時と同様にロック解除要求を発行したキャッシュストレージ125の状況を確認するために、記憶装置130は、ロック解除OKを示すコマンドをキャッシュストレージ125に発行する(ステップ686)。
ロック解除OKを示すコマンドを受けたキャッシュストレージ125は、その確認応答のために解除Acknowledgeを記憶装置130に送信する(ステップ688)。
ロック解除OKを示すコマンドを送信したキャッシュストレージ125は、該領域に対応するロック管理テーブル225を更新(この場合、図7の(4)から(5)の内容へ更新)する。又、ロック解除OKを示すコマンドを受信した記憶装置130は、該領域に対応するロック管理テーブル225を更新(この場合、図8の(2)から(3)の内容へ更新)する(ステップ690)。
上述の処理手順により、複数のクライアント105によるアクセス競合が発生した場合でも、矛盾無くユーザデータの更新を行うことができる。
尚、上述したロック制御において、キャッシュストレージ125と記憶装置130との間の通信を暗号化することも出来る。ここで、双方の装置にキーを与える。このキーは、キャッシュストレージ125と記憶装置130間の通信を暗号化するための使用されるキーである。
キーは、共有秘密鍵方式、公開鍵方式などあるがここでは特に定めない。暗号化通信は図6のステップ672からステップ688までで行われる。尚、ロック制御に関わらず、クライアント105とキャッシュストレージ125、キャッシュストレージ125と記憶装置130との間の通信についても暗号化通信を採用することもできる。
上述の処理手順では、クライアント105とキャッシュストレージ125との間でのロック処理の後、キャッシュストレージ125と記憶装置130との間でのロック処理を独立して行っていた。しかし、別のロック制御の方法として、クライアント105が直接記憶装置130をロックする方法がある。
図9は、クライアント105が記憶装置130を直接ロックする場合の手順例を示す図である。
クライアント105が記憶装置130の領域をロックするために、まずクライアント105がキャッシュストレージ125に対してロック要求を発行する(ステップ905)。
ロック要求を受信したキャッシュストレージ125は、記憶装置130に対してロック要求を発行する。このとき、キャッシュストレージ125はReserveコマンドを使用し、該領域の情報をアドレス対応テーブルを参照し決定する(ステップ910)。
Reserveコマンドを受信した記憶装置130は、Reserveコマンドで指定された記憶装置上の該領域のロック状態を確認する。
記憶装置130は、該領域がロックされていなければロックしステータス"Good"をキャッシュストレージ125経由でクライアント105へ送信する。
Reserveコマンドで指定された領域が既にロックされている場合、記憶装置130はステータス"Reservation conflict"をキャッシュストレージ125経由でクライアント130へ送信する。このとき、ロック要求を発行したクライアント105の状況を確認するためにロックOKを示すコマンドをキャッシュストレージ125経由で発行する(ステップ920、930)。
ロックOKを示すコマンドを受けたクライアント105は、その確認応答のためにロックAcknowledgeをキャッシュストレージ125経由で記憶装置130へ送信する(ステップ935、940)。
ロックAcknowledgeを受信した記憶装置130は、該領域に対応するロック管理テーブルを更新(ここでは、図8の(1)から(2)の内容へ更新)する(ステップ925)。
ロックAcknowledgeを送信したクライアント105は、キャッシュストレージ125に対してI/Oリクエストを発行する(ステップ945)。
I/Oリクエストを受信したキャッシュストレージ125は、そのリクエストを処理しステータスを含む応答をクライアント105へ送信する(ステップ950)。
必要に応じてステップ945、950の処理を繰り返し、一連の処理が終了すると、キャッシュストレージ125は記憶装置130へそのI/Oリクエストに対応するデータを送信する処理を開始するが、そのタイミングはクライアント105からの一連の処理終了直後など任意のタイミングで行ってよい。
キャッシュストレージ125は、クライアント105から受信したデータを記憶装置130へ送信するためのI/Oリクエストを発行する(ステップ955)。
I/Oリクエストを受信した記憶装置130は、そのI/Oリクエストに対応する処理を行い、ステータスをキャッシュストレージ125へ送信する(ステップ960)。
必要に応じてステップ955、960を繰り返し、一連の処理が終了すると、キャッシュストレージ125はクライアント105に対して終了を報告する。この報告には、iSCSIのAshynchronous Messageなどが用いられる(ステップ962)。
終了の報告を受けたクライアント105は、ロック解除要求をキャッシュストレージ125経由で記憶装置130へ送信する(ステップ965、970)。
ロック解除要求を受信した記憶装置130は、ロック解除要求で指定された領域を解放し、ステータスをキャッシュストレージ125経由でクライアント105へ送信する(ステップ972、974)。
このとき、Reserve時と同様にロック解除要求を発行したクライアント105の状況を確認するために、記憶装置130はロック解除OKを示すコマンドをキャッシュストレージ経由でクライアント105へ発行する(ステップ972、974)。
ロック解除OKを受信したクライアント105は、その確認応答のために解除Acknowledgeをキャッシュストレージ125経由で記憶装置130に送信する(ステップ976、978)。
解除Acknowledgeを受信したキャッシュストレージ125は、該領域に対応するロック管理テーブル225を更新(この場合、図7の(4)から(5)の内容へ更新)する。又、解除Acknowledgeを受信した記憶装置130は、該領域に対応するロック管理テーブル225を更新(この場合、図8の(2)から(3)の内容へ更新)する(ステップ980)。
上述のロック制御によって、キャッシュストレージ125、またはキャッシュストレージ125と記憶装置130とが他からのアクセスを拒否(ロック)することによって複数のクライアント105からリクエストを受けてもデータの更新順序を補償する事が出来る。
なお、上述の処理においてキャッシュストレージ125がネットワーク1上に存在しても同じである。更に上述した暗号化通信を、図9のステップ950以降からステップ962までで行っても良い。
以下、更に別のロック制御について説明する。
図10は、クライアント105、キャッシュストレージ125及び記憶装置間の通信フローを示している。ここでは、クライアント105がキャッシュストレージ125のデバイスにログインするときに領域のロックが行われる。
ログイン要求1105をクライアント105から受信したキャッシュストレージ125は、キャッシュストレージ125内のロック管理テーブル225のキャッシュロックフラグを確認する。
キャッシュストレージ125は、キャッシュロックフラグがOFFの場合はロック要求の受諾、ONの場合は拒否応答をクライアント105へ送信する(ステップ1110)。
ロック要求受諾を受けたクライアント105は、キャッシュストレージ125へI/Oリクエストを発行する(ステップ1130)。
I/Oリクエストを受信したキャッシュストレージ125は、そのI/Oリクエストを処理し、そのステータスをクライアント105へ送信する(ステップ1135)。
その間他のクライアント105からのログイン要求(ステップ1120)、リクエスト(ステップ1125)を受けても、キャッシュストレージ125は拒絶する。
必要に応じてステップ1130、1135の処理を繰り返し処理が終了すると、キャッシュストレージ125も該領域のロックを解除する(ステップ1140)。
この後、キャッシュストレージ125は記憶装置130へ該データを送信するために記憶装置130と接続している入出力パスを制御するチャネル制御プロセッサ310へ処理を引き継ぐ。ただし、クライアントとの通信をするチャネル制御プロセッサがそのまま処理を続行してもよい。その場合、本処理は省略出来る(ステップ1145)。
その後のキャッシュストレージ125と記憶装置130との通信手順は、上述したクライアント105とキャッシュストレージ125との通信手順と同様となる。
このようなロック制御をすることで、ログイン認証時に一括して処理を行うことが出来るためネットワーク上へ送出するパケット量を抑止することが出来る。
以下、本発明に係わるキャッシュストレージ装置の実施例2について説明する。
以下特に説明のない部分は実施例1と同じとする。
本実施形態は、図1においてネットワーク1と2との間を接続するネットワーク結合装置140がアクセス代理装置1060に置き換わる点で実施例1と異なる。
アクセス代理装置1060は、クライアント105からのリクエストを代理で記憶装置130やキャッシュストレージ125に対して行う。
具体的には、クライアント105からのリクエストをアクセス代理装置1060が受け取り、そのリクエストに従いアクセス代理装置1060がキャッシュストレージ125と通信を開始する。
通信終了後、ステータス等をアクセス代理装置1060がキャッシュストレージ125等から受け取り、クライアント105へ送信する。
本実施例によれば、クライアント105が属するネットワーク(ネットワーク1)と記憶装置130が属するネットワーク(ネットワーク2)をアクセス代理装置1060が中継することで、ネットワーク1へ不正なデータ流入を防止しつつ、キャッシュストレージ125によるレスポンス性能向上、トランザクション性能が向上する。
以下、上述の実施例のネットワークシステムにおける記憶装置130、キャッシュストレージ125及びクライアント105との間のデータの対応関係の例を幾つか説明する。
ここで、これらのクライアント、キャッシュストレージ及び記憶装置の対応関係についての情報はネームサービス110に登録する。これらの情報の設定、変更などは管理端末などからネットワーク135等を介してネームサービス110に行う。
図14は、データの対応関係の第一の例を示す図である。
クライアント105a及び105bは記憶装置130と通信し、クライアント105aは記憶装置130の第1の記憶領域(一つのデバイスでもデバイスの部分でも、複数のデバイスでも構わない)1845を、クライアント105bは、記憶装置130の第2の記憶領域1850をそれぞれ使用する。尚、記憶装置130の各記憶領域は対応するクライアント専用の領域とする。すなわち、クライアント105aは第2の記憶領域にはアクセスせず、クライアント105bは第1の記憶領域にはアクセスしない。
本例ではクライアント105が2つ、クライアント105と対応する記憶装置130内の記憶領域が2つであるが、クライアントの数、及び記憶装置内の記憶領域の数は特に問わない。
キャッシュストレージ125は、記憶装置130と同様、各クライアント105専用の領域を有し、クライアント105aには第1キャッシュ領域(1つのデバイスでも、デバイスの部分でも、複数のデバイスでも構わない)1835、クライアント105bには第2キャッシュ領域を割り当てているものとする。又、各キャッシュ領域はそのクライアント105専用の領域、すなわちクライアント105aから送受信されたデータは第2キャッシュ領域には蓄積されず、クライアント105bから送受信されたデータは第1キャッシュ領域に蓄積されないものとする。
本例においては、クライアント105がネームサービス110を用いて記憶装置130(実際にはキャッシュデバイス125)をディスカバリする際、クライアント105に割り当てられた記憶領域のみの情報がクライアント105に返送される。
より具体的には、ネームサービス110は、要求元がクライアント1の場合第1キャッシュ領域、クライアント2の場合第2キャッシュ領域に関連する情報をクライアント105に返す。このようにすれば、確実に複数のクライアント105を、各々が使用するキャッシュストレージ125の記憶領域にアクセスさせることが可能となる。
図15は、データの対応関係の別の例を示す図である。
本例では、複数のキャッシュストレージ125に単一の記憶装置130に格納されたデータが分散されてキャッシングされている。
つまり、クライアント105aのキャッシュ領域1940はキャッシュストレージ125aに存在し、クライアント105bのキャッシュ領域1945はキャッシュストレージ125bに存在する。
そして、キャッシュストレージ125aから記憶装置130の記憶領域1950、キャッシュストレージ125bから記憶装置130の記憶領域1955に関する情報をキャッシュストレージ125a、125b夫々が持つ。
本例の場合、クライアント105aから記憶装置130の情報を要求されたネームサービス110は、キャッシュストレージ125aのキャッシュ領域1940の情報を返す。
また、クライアント105bから記憶装置130の情報を要求されたネームサービス110は、キャッシュストレージ125bのキャッシュ領域1945の情報を返す。
本例によれば、1つ以上のクライアント105のデータが分散されて管理されている環境下で記憶装置へそのキャッシュデータを安全に格納することが出来る。
図16は、データの対応関係の別の例を示す図である。
本例では、複数のクライアント105が記憶装置130内の同一の記憶領域にアクセスするとし、そのデータが分散されて複数のキャッシュストレージ125に格納される。
ネームサービス110は、クライアント105a又は105bから記憶装置130の情報を要求されると、クライアント105aに対してはキャッシュストレージ125aのキャッシュ領域2040の情報を、クライアント105bに対してはキャッシュストレージ125bのキャッシュ領域2045の情報を返す。
尚、本例では、記憶装置130の同一の記憶領域を2つのクライアント105で共有することになり互いのアクセスが衝突する可能性がある。
このアクセスの衝突を回避するために、本例では、実施例1で説明したように、各クライアント105からキャッシュストレージ125を介して記憶装置130をロックする。
以下、本発明に係わるキャッシュストレージ装置の実施例3を図面に示しさらに詳細に説明する。
以下特に説明のない部分は実施例1及び2と同じとする。
本実施例では、実施例1及び2では独立して存在していたネームサービスをキャッシュストレージ125内に組み込んだ点がこれまでの実施例とは異なる。
図17は、本実施例のキャッシュストレージ125を含んだネットワークシステムの例を示す図である。本ネットワークシステムは、クライアント105、キャッシュストレージ125及び記憶装置130がネットワーク2105を介して相互に接続されている。
本実施例のキャッシュストレージ125は、実施例1、2で示した複数のチャネル制御部210をプロトコル処理部2120、キャッシュメモリ制御部215、共有メモリ制御部220を総称してメモリ制御部2125、複数のディスク制御部230をI/O処理部2130で示している。さらに、キャッシュストレージ125のプロトコル処理部2120にはネームサービス提供部2145を備える。
本実施例の記憶装置130は、本実施例のキャッシュストレージ125のネームサービス提供部2145を除いた構成に等しい。
プロトコル処理部2120とメモリ制御部2125、メモリ制御部2125とI/O処理部2130.ディスク駆動装置235はそれぞれ相互に接続される。
プロトコル処理部2120は1つ以上の通信ポートを有し、各通信ポートにはネットワーク識別子が割り振られている。
ネットワーク識別子とは各通信ポートを識別するための情報で例えばIPアドレス、MACアドレス、ポート番号である。
ネームサービス提供部2145は、ネットワーク識別子、キャッシュストレージ125のディスク駆動装置235のディスクドライブに割り当てたiSCSI Name、記憶装置130のネットワーク識別子、iSCSI Name、ネットワーク2105上のその他のデバイス情報を管理し、クライアントなどデバイスからの問い合わせに対し該当する情報を通知するための情報を保持している。
なお、実施例3ではプロトコル処理部2120、結合部2125、I/O処理部2130、ネームサービス提供部2145、ディスク駆動装置235は同一筐体内に実装しているが、別筐体で実装しても同等の機能を実現することが出来る。
本実施例では、実施例1や2で説明したクライアント105のディスカバリリクエストが、キャッシュストレージ125に送信される。このリクエストを受信したキャッシュストレージ125は、クライアント105がアクセスしようとしている記憶装置130の代わりに、自分自身の情報をクライアント105に送信する。後の処理は、実施例1又は2と同様である。
尚、同一のネットワーク内にキャッシュストレージ125が複数ある場合、どちらか一方がネームサービスの処理を行っても、双方で分担して処理を行っても良い。双方で分担して処理を行う場合、複数のクライアント105の各々はどちらかのネームサービスを有するキャッシュストレージ125へディスカバリリクエストを送信するように予め決めておけばよい。
実施例3によれば、ネームサービスを記憶装置内に実装することで外部にネームサービスへの問い合わせが不要になる、かつネームサービスが管理している情報の機密性が向上する。
ネットワークシステムの全体構成例を示す図である。 記憶装置及びキャッシュストレージの構成例を示す図である。 チャネル制御部の構成例を示す図である。 ロック管理テーブルの例を示す図である。 クライアントから記憶装置間の通信フローの例を示す図である。 クライアントから記憶装置間の通信フローの例を示す図である。 キャッシュストレージにおけるロック管理テーブルの内容の変化の例を示す図である。 記憶装置におけるロック管理テーブルの内容の変化の例を示す図である。 クライアントから記憶装置間の通信フローの例を示す図である。 クライアントから記憶装置間の通信フローの例を示す図である。 アドレス対応テーブルの例を示す図である。 伝送路で障害が発生した場合の処理例を示す図である。 ネットワークパケットの例を示す図である。 クライアント、キャッシュストレージ及び記憶装置の間のデータの関係例を示す模式図である。 クライアント、キャッシュストレージ及び記憶装置の間のデータの関係例を示す模式図である。 クライアント、キャッシュストレージ及び記憶装置の間のデータの関係例を示す模式図である。 記憶装置の構成例を示す図である。
符号の説明
206…入出力パス、210…チャネル制御部、215…チャネル制御部、220…共有メモリ制御部、225…ロック管理テーブル、226…アドレス対応テーブル、230…ディスク制御部、235…ディスク制御装置、240…ディスクドライブ。

Claims (14)

  1. ネットワークを介して複数のクライアント及び1つ以上の記憶装置が接続されるキャッシュストレージ装置であって、
    前記クライアント及び前記記憶装置間で送受信されるブロックデータを一時的に記憶する記憶媒体と、
    前記記憶媒体に対する該ブロックデータの読み書きを制御する制御部と
    を備え、
    前記制御部は、
    前記クライアントからロック要求が発行された場合に、前記ロック要求において指定された前記記憶媒体内の領域を該クライアントの占有領域としてロックする一方、当該ロック要求の後に前記クライアントから送信されるライト要求に応じて、前記クライアントの占有領域としてロックした前記記憶媒体内の領域に前記クライアントから送信されるライト対象のブロックデータを書き込ませ、
    前記クラインアントからのロック解除要求に応じて、該クライアントの占有領域としてロックした前記記憶媒体内の領域のロックを解除するとともに、該記憶媒体内の領域に対応する前記記憶装置内の領域に対するロック要求を前記記憶装置に発行し、該ロック要求に応じてロックされた前記記憶装置内の前記領域に対して、前記クライアントの占有領域としてロックされた前記記憶媒体内の領域に書き込まれた前記ブロックデータを書き込ませるライト処理を実行する
    ことを特徴とするキャッシュストレージ装置。
  2. 前記制御部は、
    前記ロックをするかしないかを、前記キャッシュストレージ装置内のロック状況を示すロック管理テーブルをもとに判断する
    ことを特徴とする請求項に記載のキャッシュストレージ装置。
  3. 前記ロック管理テーブルは、
    少なくとも前記キャッシュストレージ装置内の領域を判別するインデックス、前記キャッシュストレージ装置内の領域の前記ロックの状況を示すフラグ、前記キャッシュストレージ装置内の領域に対応する前記記憶装置内の領域の前記ロックの状況を示すフラグで構成する
    ことを特徴とする請求項2記載のキャッシュストレージ装置。
  4. 前記制御部は、
    前記クライアントから受信した前記ロック要求に対する許可を前記クライアントへ発行したあと、前記許可に対する応答確認が無かった場合、前記ロック要求を無効とする
    ことを特徴とする請求項に記載のキャッシュストレージ装置。
  5. 前記制御部は、
    前記記憶媒体内の領域に対する前記ライト要求が前記クライアントからないときに、前記ロック要求を前記記憶装置に発行する
    ことを特徴とする請求項1に記載のキャッシュストレージ装置。
  6. 前記制御部は、
    前記記憶媒体内の領域と前記記憶装置内の領域との対応を示すアドレス対応テーブルを備える
    ことを特徴とする請求項5に記載のキャッシュストレージ装置。
  7. 前記制御部は、
    前記記憶装置へ前記ブロックデータを送信するときに、該ブロックデータに対して暗号化を施す
    ことを特徴とする請求項記載のキャッシュストレージ装置。
  8. 前記制御部は、
    前記クライアントから一定時間要求がかった場合、前記ロックしている前記記憶装置内の領域のロック解除要求を前記記憶装置に対して発行する
    ことを特徴とする請求項1に記載のキャッシュストレージ装置。
  9. 前記制御部は、
    前記クライアントの認証を行って、通信を許可した時点で、前記クライアントに対してアクセスを許可する前記記憶媒体内の領域をロックする
    ことを特徴とする請求項1記載のキャッシュストレージ装置。
  10. 前記クライアントの認証を行って、通信を許可した時点で、前記クライアントに対してアクセスを許可する前記記憶媒体内の領域をロックするとともに前記記憶媒体内の領域に対応する前記記憶装置内の領域もロックする
    ことを特徴とする請求項1記載のキャッシュストレージ装置。
  11. 前記制御部は、
    前記記憶媒体内の領域に対する処理が前記クライアントからい場合に、前記記憶媒体内の領域に対応する前記記憶装置内の領域に対して前記記憶媒体内の領域の内容のライト要求を発行する
    ことを特徴とする請求項または10に記載のキャッシュストレージ装置。
  12. 前記制御部は、
    前記記憶装置へデータを送信するときに、該データに対して暗号化を施す
    ことを特徴とする請求項11記載のキャッシュストレージ装置。
  13. 記クライアントからのリード要求を受けた場合前記キャッシュストレージ装置上に該当するデータが存在する場合そのデータを前記クライアントに送信し、存在しない場合は前記記憶装置に該当する前記データを要求し、前記記憶装置から送られてきた前記データを前記クライアントに送信する
    ことを特徴とする請求項1記載のキャッシュストレージ装置。
  14. 前記ネットワークに接続され、前記クライアント、前記記憶装置の識別情報を管理する識別情報管理手段に登録されている前記記憶装置の識別情報を変更する手段を備える
    ことを特徴とする請求項1記載のキャッシュストレージ装置。
JP2003369811A 2003-04-22 2003-10-30 キャッシュストレージ装置 Expired - Lifetime JP4257785B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003369811A JP4257785B2 (ja) 2003-04-22 2003-10-30 キャッシュストレージ装置
US10/764,600 US7228384B2 (en) 2003-04-22 2004-01-27 Cache storage system that enables exclusion of locking of an area to be accessed
EP04019855A EP1528473A3 (en) 2003-10-30 2004-08-20 Storage system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003116451 2003-04-22
JP2003369811A JP4257785B2 (ja) 2003-04-22 2003-10-30 キャッシュストレージ装置

Publications (2)

Publication Number Publication Date
JP2004342071A JP2004342071A (ja) 2004-12-02
JP4257785B2 true JP4257785B2 (ja) 2009-04-22

Family

ID=33518560

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003369811A Expired - Lifetime JP4257785B2 (ja) 2003-04-22 2003-10-30 キャッシュストレージ装置

Country Status (2)

Country Link
US (1) US7228384B2 (ja)
JP (1) JP4257785B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006516341A (ja) * 2003-01-17 2006-06-29 タシット ネットワークス,インク. 分散ファイルシステムを伴うストレージキャッシングの使用方法およびシステム
JP2005284497A (ja) * 2004-03-29 2005-10-13 Hitachi Ltd 中継装置、管理サーバ、中継方法および認証方法
EP1782244A4 (en) * 2004-07-07 2010-01-20 Emc Corp SYSTEMS AND METHODS FOR IMPLEMENTING DISTRIBUTED CACHED MEMORY COHERENCE
US20060015584A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Autonomous service appliance
US20060015764A1 (en) * 2004-07-13 2006-01-19 Teneros, Inc. Transparent service provider
US7363366B2 (en) 2004-07-13 2008-04-22 Teneros Inc. Network traffic routing
US8200774B1 (en) * 2004-09-30 2012-06-12 Google Inc. System and method for resource locking
JP2006268215A (ja) * 2005-03-23 2006-10-05 Hitachi Ltd ストレージシステム
JP4332126B2 (ja) 2005-03-24 2009-09-16 富士通株式会社 キャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法
WO2007140475A2 (en) * 2006-05-31 2007-12-06 Teneros, Inc. Extracting shared state information from message traffic
US7571594B2 (en) * 2006-07-28 2009-08-11 Milliken & Company Composite yarn and process for producing the same
US8181011B1 (en) * 2006-08-23 2012-05-15 Netapp, Inc. iSCSI name forwarding technique
JP4763587B2 (ja) * 2006-12-11 2011-08-31 株式会社ソニー・コンピュータエンタテインメント キャッシュサーバ、キャッシュサーバの制御方法、プログラム及び情報記憶媒体
US7734733B1 (en) * 2007-06-15 2010-06-08 Packeteer, Inc. WAFS disconnected-mode read-write access
US8346966B1 (en) 2007-07-19 2013-01-01 Blue Coat Systems, Inc. Transparent file system access for wide area network file system acceleration
JP2009116809A (ja) * 2007-11-09 2009-05-28 Hitachi Ltd 記憶制御装置、ストレージシステム及び仮想ボリュームの制御方法
US9135284B1 (en) 2008-03-13 2015-09-15 Blue Coat Systems, Inc. Composite execution of rename operations in wide area file systems
US9442850B1 (en) 2008-03-25 2016-09-13 Blue Coat Systems, Inc. Efficient directory refresh operations in wide area file systems
US8706878B1 (en) 2008-08-21 2014-04-22 United Services Automobile Association Preferential loading in data centers
JP5966243B2 (ja) * 2010-12-20 2016-08-10 富士通株式会社 ストレージ装置及びストレージ装置の制御方法
WO2012101855A1 (ja) * 2011-01-28 2012-08-02 株式会社日立製作所 通信システム、通信装置、通信制御方法
US20130205108A1 (en) * 2012-02-06 2013-08-08 Kaminario Technologies Ltd. Managing reservation-control in a storage system
US9560134B1 (en) * 2012-06-27 2017-01-31 Netapp, Inc. Storage array side write locking
JP6065642B2 (ja) * 2013-02-25 2017-01-25 富士通株式会社 ストレージ制御プログラム、ストレージ制御装置、ストレージシステム、及びストレージ制御方法
JP6115396B2 (ja) 2013-08-15 2017-04-19 富士通株式会社 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
WO2016045096A1 (zh) * 2014-09-26 2016-03-31 华为技术有限公司 一种文件迁移方法、装置和存储设备
KR102438552B1 (ko) * 2015-02-04 2022-09-01 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
US10628196B2 (en) * 2016-11-12 2020-04-21 Vmware, Inc. Distributed iSCSI target for distributed hyper-converged storage
EP3857859B1 (en) 2018-11-16 2023-07-19 VMWare, Inc. Active-active architecture for distributed iscsi target in hyper-converged storage
US11507409B2 (en) 2020-01-22 2022-11-22 Vmware, Inc. Object-based load balancing approaches in distributed storage system
US11500667B2 (en) 2020-01-22 2022-11-15 Vmware, Inc. Object-based approaches to support internet small computer system interface (ISCSI) services in distributed storage system

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5353416A (en) * 1989-10-25 1994-10-04 Zenith Data Systems Corporation CPU lock logic for corrected operation with a posted write array
US5590300A (en) * 1991-03-05 1996-12-31 Zitel Corporation Cache memory utilizing address translation table
US5809527A (en) * 1993-12-23 1998-09-15 Unisys Corporation Outboard file cache system
US5454108A (en) * 1994-01-26 1995-09-26 International Business Machines Corporation Distributed lock manager using a passive, state-full control-server
DE69621263T2 (de) * 1995-01-23 2002-12-19 Compaq Computer Corp., Houston Verteilter Datencachespeicher für Multiprozessorsystem mit Cachespeicher
US5948062A (en) 1995-10-27 1999-09-07 Emc Corporation Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access
JP3117003B2 (ja) 1997-07-03 2000-12-11 日本電気株式会社 広域分散ファイルシステム
US5987477A (en) * 1997-07-11 1999-11-16 International Business Machines Corporation Parallel file system and method for parallel write sharing
US6385701B1 (en) * 1999-11-19 2002-05-07 International Business Machines Corporation Method, system and program products for sharing data between varied clients using token management
JP2001290787A (ja) 2000-04-10 2001-10-19 Ntt Communications Kk データ配信方法及びデータ配信プログラムを格納した記憶媒体
US6487638B2 (en) * 2001-01-26 2002-11-26 Dell Products, L.P. System and method for time weighted access frequency based caching for memory controllers
JP3690295B2 (ja) * 2001-03-15 2005-08-31 日本電気株式会社 ディスクアレイ制御装置
JP2003216460A (ja) 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
US7194467B2 (en) * 2002-03-29 2007-03-20 Panasas, Inc Using whole-file and dual-mode locks to reduce locking traffic in data storage systems
US7080207B2 (en) 2002-04-30 2006-07-18 Lsi Logic Corporation Data storage apparatus, system and method including a cache descriptor having a field defining data in a cache block
US6981117B2 (en) 2003-01-29 2005-12-27 International Business Machines Corporation Method, system, and program for transferring data

Also Published As

Publication number Publication date
US7228384B2 (en) 2007-06-05
JP2004342071A (ja) 2004-12-02
US20040260768A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
JP4257785B2 (ja) キャッシュストレージ装置
WO2021115449A1 (zh) 跨域访问系统、方法及装置、存储介质及电子装置
JP3745961B2 (ja) ネットワークと接続している記憶システムへの接続を認証するための方法および装置
JP4311637B2 (ja) 記憶制御装置
US5764890A (en) Method and system for adding a secure network server to an existing computer network
US6718392B1 (en) Queue pair partitioning in distributed computer system
US9407456B2 (en) Secure access to remote resources over a network
US9438574B2 (en) Client/server authentication over Fibre channel
US8195806B2 (en) Managing remote host visibility in a proxy server environment
US20110185039A1 (en) Computer-readable medium storing access control program, access control method, and access control device
US8346966B1 (en) Transparent file system access for wide area network file system acceleration
CN103404103A (zh) 将访问控制系统与业务管理系统相结合的系统和方法
JP2004192305A (ja) iSCSIストレージ管理方法及び管理システム
KR20020001190A (ko) 네트워크망에서 내부자원의 보호기능이 강화된 보안장치및 그 운용방법
JP2004532443A (ja) 状態転送動作のための分散型キャッシュ
KR20010041365A (ko) 보안 조건의 방법당 지정
JP2000122974A (ja) ネットワークシステム及びコマンド使用権限制御方法ならびに制御プログラムを格納した記憶媒体
US10749851B2 (en) Network monitoring method and device
US6651174B1 (en) Firewall port switching
JPWO2004112312A1 (ja) ユーザ認証システム
JP2000132473A (ja) ファイアウォール動的制御方式を用いたネットワークシステム
JP5204054B2 (ja) ネットワーク管理システムおよび通信管理サーバ
Zegzhda et al. Actual vulnerabilities of industrial automation protocols of an open platform communications series
US6567853B2 (en) Scalable I/O system for the efficient transfer of storage device data by a non-server reconnection
US7631179B2 (en) System, method and apparatus for securing network data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050921

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060424

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20081225

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: 20090128

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: 20090129

R150 Certificate of patent or registration of utility model

Ref document number: 4257785

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120213

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120213

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130213

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term