JP4806572B2 - データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御 - Google Patents

データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御 Download PDF

Info

Publication number
JP4806572B2
JP4806572B2 JP2006037639A JP2006037639A JP4806572B2 JP 4806572 B2 JP4806572 B2 JP 4806572B2 JP 2006037639 A JP2006037639 A JP 2006037639A JP 2006037639 A JP2006037639 A JP 2006037639A JP 4806572 B2 JP4806572 B2 JP 4806572B2
Authority
JP
Japan
Prior art keywords
client computer
server
directory tree
client
received
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
Application number
JP2006037639A
Other languages
English (en)
Other versions
JP2007219693A (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 JP2006037639A priority Critical patent/JP4806572B2/ja
Priority to US11/399,506 priority patent/US20070192375A1/en
Publication of JP2007219693A publication Critical patent/JP2007219693A/ja
Application granted granted Critical
Publication of JP4806572B2 publication Critical patent/JP4806572B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2097Error 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 maintaining the standby controller/processing unit updated

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ネットワークを介してクライアントと接続され、クライアントが用いるデータを記憶する、ファイルサーバ又はネットワークアタッチドストレージ(Network Attached Storage、NAS)において、複数のサーバに負荷を分散するための技術に関する。
ネットワークに接続されたストレージシステムが、そのネットワークに接続された計算機の共有ディスクとして使用される、ネットワークアタッチドストレージ(Network Attached Storage、NAS)が提案されている。NASは、ネットワークインターフェース等を含むサーバと、データを格納するディスクドライブとによって構成される。
例えば、特許文献1には、複数のサーバを備え、各サーバがネットワークに接続されるクラスタ構成のNASが開示されている。特許文献1に記載されたシステムにおいて、ネットワークエレメント、スイッチングエレメント及びディスクエレメントが、NASのサーバに相当する。特許文献1に記載されたシステムは、ネットワークエレメントを複数備え、それらのネットワークエレメントがファイルシステムを共有することができる。また、ディスクエレメントを複数備えることによって、ディスク単位でマイグレーションすることができる。さらに、各ネットワークエレメントからディスクエレメントの持つ全てのファイルシステムに対してアクセスすることができる。ディスクエレメント間で、ファイルシステムを格納しているディスクのマイグレーションが実行された場合も、各ネットワークエレメントからは、マイグレーションによる影響を受けることなく、全てのファイルシステムに対してアクセスすることができる。
一方、ネットワーク上に分散して存在するファイルにアクセスするためのファイルシステムの一つとして、ネットワークファイルシステム(NFS)が提案されている。NFSの現時点の最新版であるNFSv4(RFC3530)(非特許文献1参照)によれば、ファイルシステムがサーバ間でマイグレーションされた場合、サーバは、クライアントからの当該ファイルシステムへのアクセスに対して、マイグレーション先の位置の情報を通知する。この通知を受けたクライアントは、通知された位置情報に従って、マイグレーション先のファイルシステムにアクセスすることができる。さらに、マイグレーションと類似の手順によって実現されるレプリケーション機能によって、クライアントは、あるファイルシステムの複製(ミラー)を持つ複数のサーバのリストを得ることができる。
米国特許第6671773号明細書 RFC3530,NFS version4,P.58−61,IETF Home Page、[online]、[平成18年1月10日検索]、インターネット<URL:http://www.ietf.org/home.html>
複数のサーバを持つクラスタ構成のNASにおいて、ファイルシステム又はその一部のミラーが作成され、それぞれのミラーが別々のサーバによって管理される。そして、あるファイルシステム又はその一部に対するクライアントからのアクセスが、レプリケーション等によって、ミラーを管理するサーバに振り分けられる。その結果、クライアントからのアクセスを複数のサーバに分散させることができる。しかし、クライアントからの要求が、上記ミラーに振り分けられるため、全ミラーのデータは、内容が一致している必要がある。このため、ミラーによる負荷分散は、参照専用で用いる必要があり、それらの内容を更新する方法については開示されていなかった。
本願で開示する代表的な発明は、一つ以上のクライアント計算機と、前記クライアント計算機とネットワークを介して接続されるストレージシステムと、を備える計算機システムにおいて、前記ストレージシステムは、第1サーバ及び複数の第2サーバを含む複数のサーバと、前記複数のサーバと接続される一つ以上のディスクサブシステムと、を備え、前記ディスクサブシステムは、前記クライアント計算機によって書き込まれたデータを格納する一つ以上の論理デバイスを備え、前記各サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、前記第1サーバは、前記論理デバイスに格納されたデータを一つ以上のファイルシステムとして管理し、前記第2サーバは、前記第1サーバが管理する一つのファイルシステムの一部又は全部に相当する第1ディレクトリツリーの複製である第2ディレクトリツリーを管理し、前記プロセッサは、前記クライアント計算機から前記インターフェースを介して前記第1ディレクトリツリー及び前記第2ディレクトリツリーに属するファイルを対象とするアクセス要求を受信すると、前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものであるか否かを判定し、前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものである場合、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定し、前記クライアント計算機が更新要求を発行すると判定された場合、前記第1ディレクトリツリーを選択し、前記クライアント計算機が更新要求を発行しないと判定された場合、前記複数の第2サーバによって管理される複数の前記第2ディレクトリツリーの一つを選択し、前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されている場合、前記選択されたディレクトリツリーを対象として前記要求されたアクセスを実行し、前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されていない場合、前記選択されたディレクトリツリーを管理するサーバを識別する情報を、前記アクセス要求を発行した前記クライアント計算機に前記インターフェースを介して送信し、前記アクセス要求を発行した前記クライアント計算機は、前記選択されたディレクトリツリーを管理するサーバを識別する情報を受信すると、前記選択されたディレクトリツリーを管理するサーバに対して前記アクセス要求を送信することを特徴とする。
本発明の一形態によれば、複数のサーバを備えるストレージシステムにおいて、ファイルシステムの全体又はその一部であるディレクトリツリーのミラーを作成することによって、複数のサーバに参照負荷を分散することができる。さらに、クライアントからのアクセス種別を判別し、更新要求を含むアクセスをマスタに対してのみ振り分けることによって、複数のサーバ間で更新の順序保証及びロック制御等を行なうことなく、複数のミラーを持つディレクトリツリーに対する更新を行なうことができる。さらに、マスタに対する更新をミラーに反映することによって、ミラーを参照するクライアントに対しても、更新されたデータの内容を参照することを可能とする。
図1は、本発明の実施の形態の計算機システムの構成を示すブロック図である。
実施の形態の計算機システムは、ストレージシステム100、管理計算機140、クライアント150A、クライアント150B及びこれらを相互に接続するLAN160を備える。
管理計算機140は、例えば、ストレージシステム100内のファイルシステムの作成、ファイルシステムのマウント及びミラー作成等をサーバ110に指示し、あるいは、ディスクサブシステム120又はスイッチ130に設定変更を指示する計算機である。
以下の説明において、ミラーとは、ファイルシステム又はその一部であるディレクトリツリーの複製である。ミラーの作成とは、ディレクトリツリーに属する全データの複製を作成し、その複製をいずれかの論理デバイス(後述)に格納することである。なお、複製元のディレクトリツリー等は、マスタと記載される。
クライアント150A及び150Bは、ストレージシステム100のファイルにアクセスする計算機である。具体的には、クライアント150A及び150Bは、ストレージシステム100にファイルを書き込み、又は、ストレージシステム100からファイルを読み出す。このとき、ストレージシステム100が管理するファイルシステムが使用される。クライアント150A及び150Bは、少なくとも、ファイルアクセスを実行するプログラムを格納するメモリ(図示省略)、及び、メモリに格納されたプログラムを実行するプロセッサ(図示省略)を備える。
図1には、二つのクライアント(150A及び150B)を示すが、任意の数のクライアントがLAN160に接続され、ストレージシステム100にアクセスすることができる。以下の説明において、二つのクライアントを特に区別する必要がない場合、これらを総称してクライアント150と記載する。
LAN160は、例えば、TCP/IP等のプロトコルで通信するネットワークである。
ストレージシステム100は、いわゆるネットワークアタッチドストレージ(Network Attached Storage、NAS)である。ストレージシステム100は、サーバ110A、サーバ110B、ディスクサブシステム120及びこれらを相互に接続するスイッチ130によって構成される。
スイッチ130は、例えば、ファイバーチャネル(FC)のスイッチである。ストレージシステム100は、複数のスイッチ130を備えてもよい。一つ以上のスイッチ130は、ストレージエリアネットワーク(SAN)を構成していてもよい。あるいは、スイッチ130は、LANのスイッチ又はストレージシステム専用のスイッチであってもよい。
サーバ110A及び110Bは、クライアント150からのアクセス要求に従ってディスクサブシステム120にアクセスする。
ストレージシステム100は、複数のサーバ110A等を備える。以下の説明において、サーバ110A及び110Bを特に区別する必要がない場合、これらを総称してサーバ110と記載する。図1には、二つのサーバ110A及び110Bを示すが、ストレージシステム100は、さらに多くのサーバ110を備えてもよい。サーバ110は、NASヘッド又はNASノードとも呼ばれる。なお、複数のサーバ110がクラスタ構成されても良い。
サーバ110Aは、相互に接続されたネットワークインターフェース111A、CPU112A、ローカルメモリ113A及びアダプタ116Aを備える。
ネットワークインターフェース111Aは、LAN160に接続され、管理計算機140及びクライアント150と通信するインターフェースである。
CPU112Aは、サーバ110Aの動作を制御するプロセッサである。具体的には、CPU112Aは、ローカルメモリ113Aに格納されたプログラムを実行する。
ローカルメモリ113Aは、例えば、半導体メモリであり、CPU112Aが実行するプログラム及びCPU112Aによって参照されるデータを格納する。具体的には、ローカルメモリ113Aには、プログラムであるサーバソフトウェア200(図2参照)の他、後述するマウントポイント管理テーブル400、ディレクトリツリー管理テーブル500、ミラー管理テーブル600、ファイルシステム管理テーブル700、マウントパラメータテーブル1500及び更新クライアントテーブル1600等が格納される。
アダプタ116Aは、スイッチ130に接続され、ディスクサブシステム120と通信するインターフェースである。
サーバ110Bは、サーバ110Aと同様、ネットワークインターフェース111B、CPU112B、ローカルメモリ113B及びアダプタ116Bを備える。これらは、それぞれ、ネットワークインターフェース111A、CPU112A、ローカルメモリ113A及びアダプタ116Aと同様であるため、説明を省略する。
さらに多くのサーバ110が設けられる場合も、各サーバ110の構成は、サーバ110Aと同様である。
ストレージシステム100が複数のサーバ110を備える場合、これらのサーバ110は、サーバ間通信路135によって相互に接続される。サーバ110は、サーバ間通信路135を経由して相互に通信することができる。具体的には、一つのサーバ110のマウントポイント管理テーブル400又はミラー管理テーブル600等の内容が更新された場合、その更新の内容がサーバ間通信路135を経由して他のサーバ110に送信される。送信先のサーバ110は、受信した更新の内容をそのサーバ110内のマウントポイント管理テーブル400又はミラー管理テーブル600等に反映する。
なお、本実施の形態では、図1に示すように、スイッチ130及びLAN160と独立したサーバ間通信路135が設けられる。しかし、サーバ110は、スイッチ130又はLAN160を経由して相互に通信してもよい。あるいは、サーバ110は、ディスクサブシステム120のディスクキャッシュ122を使用して相互に通信してもよい。すなわち、一つのサーバ110のマウントポイント管理テーブル400等が更新されると、そのサーバ110は、更新の内容をディスクキャッシュ122に書き込む。他のサーバ110は、ディスクキャッシュ122に書き込まれた更新の内容を読み出し、各々のマウントポイント管理テーブル400等を更新する。サーバ110が上記のいずれの経路で通信しても、本発明を実施することができる。
ディスクサブシステム120は、相互に接続されたディスクコントローラ121A、ディスクコントローラ121B、ディスクキャッシュ122及びディスクドライブ123を備える。ディスクコントローラ121Aは、スイッチ130に接続されるポート125A及び125Bを備える。ディスクコントローラ121Bは、スイッチ130に接続されるポート125C及び125Dを備える。以下の説明において、ディスクコントローラ121A及び121Bを特に区別する必要がない場合、これらを総称してディスクコントローラ121と記載する。また、ポート125Aから125Cを特に区別する必要がない場合、これらを総称してポート125と記載する。ディスクサブシステム120は、一つ又は三つ以上のディスクコントローラ121を備えてもよい。各ディスクコントローラ121は、一つ又は三つ以上のポート125を備えてもよい。
ディスクコントローラ121は、ポート125及びスイッチ130を介してサーバ110と通信し、ディスクサブシステム120を制御する。具体的には、ディスクコントローラ121は、サーバ110からの要求に従って、ディスクドライブ123にデータを書き込み、又は、ディスクドライブ123からデータを読み出す。
ディスクキャッシュ122は、例えば、半導体メモリであり、ディスクドライブ123に書き込まれるデータ又はディスクドライブ123から読み出されたデータを一時的に格納する。
ディスクドライブ123Aから123Dは、データを格納するハードディスクドライブである。ディスクサブシステムは、任意の数のディスクドライブ123A等を備える。以下の説明において、ディスクドライブ123Aから123Dを特に区別する必要がない場合、これらを総称してディスクドライブ123と記載する。これらのディスクドライブ123は、Redundant Arrays of Inexpensive Disks(RAID)を構成してもよい。
ディスクドライブ123の記憶領域は、任意の数の論理デバイス(LDEV)に分割される。図1には、例として、4個のLDEV124Aから124Dを示す。以下の説明において、LDEV124Aから124Dを特に区別する必要がない場合、これらを総称してLDEV124と記載する。LDEV124は、ディスクコントローラ121によって論理的なディスクドライブとして扱われる領域である。ディスクドライブ123がRAIDを構成する場合、図1に示すように、一つのLDEV124は、複数のディスクドライブ123の記憶領域によって構成されてもよい。各LDEV124の大きさは任意である。
各LDEVには、LDEV識別子(ID)が付与される。図1の例において、LDEV124AからLDEV124DのIDは、それぞれ、L0からL3である。
ストレージシステム100は、複数のディスクサブシステム120を備えてもよい。その場合、あるサーバ110は、スイッチ130を経由して、特定のディスクサブシステム120又は特定のディスクサブシステムの集合にのみアクセスできても良い。あるいは、各サーバ110が、全てのディスクサブシステム120にアクセスすることができても良い。
スイッチ130及びディスクサブシステム120は、それぞれ、LAN160に接続される管理用ポート131及び126を備える。管理計算機140は、LAN160及びこれらの管理用ポート131又は126を経由して、スイッチ130又はディスクサブシステム120の設定を参照又は更新することができる。
図13は、本発明の実施の形態の管理計算機140の構成を示すブロック図である。
管理計算機140は、少なくとも、相互に接続された入力装置1301、管理画面1302、ディスク1303、CPU1310、ローカルメモリ1311及びネットワークインターフェース1312を備える。管理計算機140は、CPU1310、ローカルメモリ1311及びネットワークインターフェース1312を備える筐体(図示省略)の外部に入力装置1301、管理画面1302及びディスク1303が接続された構造であってもよい。
入力装置1301は、例えば、システム管理者によって使用されるキーボード又はポインティングデバイスである。管理画面1302は、例えば、システム管理者に情報を表示する画像表示装置である。管理画面1302に表示される内容及びポインティングデバイスによる操作については、後で詳細に説明する(図11及び図12参照)。
ディスク1303には、サーバ110等と通信を行なうためのプログラム、及び、ディスクサブシステムを管理するためのプログラム等が格納される。これらのプログラム等は、必要に応じてローカルメモリ1311上に読み出され、CPU1310によって実行される。ネットワークインターフェース1312は、サーバ110及びディスクサブシステム120との通信に使用される。
図2は、本発明の実施の形態のサーバソフトウェア200の構成の説明図である。
サーバソフトウェア200は、CPU112によって実行されるプログラムであるネットワーク処理部201、ファイルシステム処理部202、ディスクアクセス部203、サーバ管理処理部205、サーバ間通信処理部206、マイグレーション処理部207及びミラー制御部208からなる。
ネットワーク処理部201は、LAN160を介した管理計算機140及びクライアント150との通信を制御するプログラムである。
ファイルシステム処理部202は、クライアント150からファイルシステム202内のファイルへのアクセス要求を処理するプログラムである。具体的には、例えば、管理計算機140からの指示に従って、ファイルシステムを新規作成する。また、例えば、クライアント150からディレクトリ名又はファイル名を指定したファイルハンドル取得要求を受けると、ファイルシステム処理部202は、名前解決をして、ファイルハンドルを返す。ここで、ファイルハンドルとは、ファイルの識別子である。また、例えば、クライアント150から受けたディレクトリ名又はファイル名が、他のサーバ110が管理するディレクトリツリーに属する場合、ファイルシステム処理部202は、そのディレクトリツリーを管理するサーバ110のID等の位置情報をクライアントに返す。
ディスクアクセス部203は、クライアント150からのアクセス要求に従って、ファイルシステム202内のデータへのアクセスを実行するプログラムである。
サーバ管理処理部205は、管理計算機140と通信し、NASの設定をするプログラムである。例えば、サーバ管理処理部205は、管理計算機140からファイルシステムの新規作成の指示を受けると、その指示をファイルシステム処理部202に伝え、ファイルシステムの新規作成を実行させる。管理計算機140からマイグレーションの指示を受けると、サーバ管理処理部205は、その指示をマイグレーション処理部207に伝え、マイグレーションを実行させる。また、管理計算機140からあるディレクトリツリーのミラー作成の指示を受けると、サーバ管理処理部205は、その指示をミラー制御部207に伝え、ミラーの作成を実行させる。
サーバ間通信処理部206は、サーバ間通信路135を経由したサーバ110間の通信を制御するプログラムである。例えば、サーバ間通信処理部206は、マウントポイント管理テーブル400の内容が更新されたとき、その更新された内容を他のサーバ110に送信する。
マイグレーション処理部207は、マイグレーションを実行するプログラムである。マイグレーションは、あるディレクトリツリーを、現在管理しているサーバ110から、別の指定されたサーバ110の管理下に移動する処理のことである。
後述のディレクトリツリー管理テーブル500に示すように、各ディレクトリツリーは、サーバID503で識別される一つのサーバ110によって管理される。クライアント150があるディレクトリツリー内のファイルにアクセスする場合、アクセス要求は、そのディレクトリツリーを管理するサーバ110によって処理される。マイグレーションによって、ディレクトリツリーを管理するサーバ110が変更される結果、各サーバ110にかかる負荷を均衡し、ストレージシステム100全体の性能を向上することができる。
ミラー制御部208は、あるディレクトリツリーの複製であるミラーの作成及び更新処理を実行するプログラムである。詳細については、後述する(図9参照)。
図3は、本発明の実施の形態においてクライアント150に提供される名前空間(グローバルネームスペース)の説明図である。
図3には、説明のために必要な最小限のディレクトリ及びファイルを示すが、各ファイルシステム202は、さらに多くのディレクトリ及びファイルを含んでもよい。また、図3には、301から305までの5つのディレクトリツリーを示してあるが、更に多くのディレクトリツリーを含んでもよい。
図3において、ルートディレクトリ「/」及びディレクトリ「dirc」等を含むディレクトリツリーは、他のディレクトリツリー302から305をマウントして共通の名前空間(グローバルネームスペース)をクライアントに提供するために設けられる。このディレクトリツリーを、ルートツリー301と呼ぶ。ここで、「ディレクトリツリーをマウントする」とは、そのディレクトリツリーを別のディレクトリツリーに接続することを意味する。
ディレクトリツリー302から305は、それぞれ、ファイルシステム全体又はその一部に相当するディレクトリツリーを表す。dt01及びdt10等は、各ディレクトリツリーの識別子(ID)である。以下の説明において、識別子がdt01であるディレクトリツリーを単にdt01と記載する。他のディレクトリツリーについても同様である。
図3の例では、dt01は、最上位ディレクトリの下にディレクトリ「df11」及び「df12」を含み、ディレクトリ「df11」の下にファイル「file1」を含む。また、dt01は、ディレクトリ「/dira」の下にマウントされている。したがって、dt01の最上位ディレクトリは、ディレクトリ「/」(ルートディレクトリ)の下のディレクトリ「dira」である。このとき、ファイル「file1」のパスは、「/dira/df11/file1」である。
同様にして、dt10は、最上位ディレクトリの下にディレクトリ「df21」及び「df22」を含み、ディレクトリ「df21」の下にファイル「file2」を含む。dt10は、「/dirb」の下にマウントされている(図4参照)。したがって、dt10の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirb」である。このとき、ファイル「file2」のパスは、「/dirb/df21/file2」である。
dt21は、最上位ディレクトリの下にディレクトリ「df31」及び「df32」を含む。dt21は、「/dirc/subdir1」の下にマウントされている。したがって、dt21の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirc」のさらに下のディレクトリ「subdir1」である。
dt22は、最上位ディレクトリの下にディレクトリ「df41」を含む。dt22は、「/dirc/subdir2」の下にマウントされている。したがって、dt22の最上位ディレクトリは、ルートディレクトリの下のディレクトリ「dirc」のさらに下のディレクトリ「subdir2」である。
各サーバ110のマウントポイント管理テーブル400(図4参照)の内容を一致させることによって、各サーバ110は、同一の名前空間(図3)をクライアント150に提供する。各サーバ110は、ルートファイルシステム内のマウントポイントまでの名前解決と、そのサーバ110が管理するディレクトリツリー内の名前解決をすることができる。
例えば、サーバ110Aがdt01を管理し、サーバ110Bがdt10を管理する場合において、サーバ110Bが「/dira/df11/file1」へのアクセス要求を受けたとき、サーバ110Bは、ルートディレクトリの名前解決をすることはできるが、ディレクトリ「dira」の名前解決をすることはできない。このとき、サーバ110Bは、マウントポイント管理テーブル400とディレクトリツリー管理テーブル500を参照して、ディレクトリ「dira」がサーバ110Aの管理下にあると判定する。そして、アクセス要求を発行したクライアント150に位置情報(すなわち、そのディレクトリを管理しているサーバ110Aを識別する情報と、必要に応じて、そのサーバ内のローカルパスを示す情報)を通知する。通知を受けたクライアント150は、サーバ110Aにアクセス要求を発行することによって、「/dira/df11/file1」へアクセスすることが可能となる。
上記の例において、サーバBは、サーバ110Bが管理するディレクトリツリー以外のファイルに対する名前解決要求をクライアント150から受け付けたとき、そのディレクトリツリーを管理するサーバ110Aをクライアント150に通知した。しかし、通知する代わりに、サーバ110BがサーバAにクライアント150から受け付けた名前解決要求を転送し、サーバ110Aが名前解決を実行してもよい。
また、上記の例では、あるディレクトリツリーは一つのサーバ110のみによって管理されたが、複数のサーバ110が一つのディレクトリツリーを共有して管理してもよい。この場合、そのディレクトリツリーの更新を実行する前に、更新を実行するサーバ110が、ディレクトリツリーのロックを取得する操作を実行することによって、更新が正しく実行されることを保証しなければならない。
図4は、本発明の実施の形態のマウントポイント管理テーブル400の説明図である。
マウントポイント管理テーブル400は、ディスクサブシステム120に含まれるファイルシステム、又は、ファイルシステムの一部であるディレクトリツリーのグローバルネームスペースへのマウント状況を管理するテーブルである。マウントポイント管理テーブル400の一つのエントリ(行)が、一つのマウントポイントに対応する。
マウントポイント管理テーブル400は、グローバルパス401とD−tree名402を含む。グローバルパス401は、各サーバ110が、クライアント150に提供するグローバルネームスペース内のパスであり、各ディレクトリツリーのマウントポイントを示す。ここで、マウントポイントとは、各ディレクトリツリーがルートツリー301に接続されるディレクトリを意味する。D−tree名402は、グローバルパス401にマウントされているディレクトリツリーのIDである。
図4の例では、4個のディレクトリツリー(dt10〜dt22)が、それぞれ、グローバルパス401で示されるディレクトリにマウントされている。具体的には、dt01は、「/dira」の下にマウントされている。同様にして、dt10、dt21及びdt22は、それぞれ、「/dirb」、「/dirc/subdir1」及び「/dirc/subdir2」の下にマウントされている。その結果、図3に示した名前空間がクライアント150に提供される。
図5は、本発明の実施の形態のディレクトリツリー管理テーブル500の説明図である。
ディレクトリツリー管理テーブル500は、ストレージシステム100内の全ディレクトリツリーを管理するためのテーブルであり、一つのエントリ(行)が、一つのディレクトリツリーを示す。
D−tree名501は、ディレクトリツリーの識別子(ID)であり、このIDは、マウントポイント管理テーブル400のD−tree名402、及び、後述のミラー管理テーブル600のD−tree名601として、ディレクトリツリーを特定するために使われる。
FS名502は、D−tree名501で示されるディレクトリツリーが含まれるファイルシステムを示す識別子である。FS名502を参照することによって、各ディレクトリツリーが、ファイルシステム管理テーブル700で示されるファイルシステムの内、どのファイルシステムに含まれているかを判定することができる。
サーバID503は、各ディレクトリツリーを管理するサーバ110の一意な識別子である。各サーバ110は、そのサーバ110が管理するディレクトリツリーのみにアクセスすることができる。すなわち、クライアント150は、ファイルにアクセスする場合、そのファイルを含むディレクトリツリーを管理するサーバ110にアクセス要求を発行する必要がある。
図5の例において、「sid1」は、サーバ110AのIDであり、「sid2」は、サーバ110BのIDである。この場合、dt01及びdt10がサーバ110Aに管理され、dt21及びdt22がサーバ110Bに管理されている。「sid3」は、例えば、図1に示さないサーバ110CのIDであってもよい。
前述のように、あるディレクトリツリーが複数のサーバ110によって共有されている場合、サーバID503は複数のサーバ110のIDを含むこととなる。この場合、後述のディレクトリツリー選択処理において、複数のサーバが共有するディレクトリツリーが選択された場合、クライアントに返す位置情報として、複数のサーバID503から一つを選んで使用することができる。これによって、例えばランダムアクセスが中心に行なわれる場合のように、ディスクへのアクセスより、サーバ110内での処理がボトルネックとなる場合に、サーバ110の負荷を、そのディレクトリツリーを共有しているサーバ110間で分散させることができる。
ディレクトリツリーをマイグレーションすると、サーバID503の内容が更新される。例えば、dt01をサーバ110Aからサーバ110Bにマイグレーションすると、dt01のサーバID503は、「sid1」から「sid2」に更新される。さらに、更新された内容が、サーバ間通信路135を経由して、ストレージシステム100内の全てのサーバ110に通知される。この通知を受けたサーバ110は、通知に従って、ディレクトリツリー管理テーブル500を更新する。その結果、全てのサーバ110のディレクトリツリー管理テーブル500の内容が同一になる。
属性504は、ディレクトリツリーの属性を示す値が格納される。“mirror”は、そのディレクトリツリーがミラーであることを示す。“rw”(read−write)は、そのディレクトリツリー内のファイルの参照と更新が可能であることを示す。“ro”(read only)は、そのディレクトリツリー内のファイルの参照のみが可能であることを意味する。
マスタのみで更新が実行される場合、マスタの属性504は“rw”であり、ミラーの属性504は“ro”である。
属性504を参照することによって、あるディレクトリツリーがマスタであるかミラーであるかを判定することができる。しかし、ディレクトリツリーがマスタかミラーかの判定は、そのディレクトリツリーのIDが後述のミラー管理テーブル600のミラー名602に登録されているか否かを判定することによって行うこともできる。このため、属性504に“mirror”は登録されなくともよい。
ローカルパス505は、D−tree名501に対応するディレクトリツリーの実体が存在するサーバ110内のローカルな名前空間内のパスを示す。例えば、図4のマウントポイント管理テーブル及び図5のディレクトリツリー管理テーブルによって作成されるグローバルネームスペースにおいて、「/dirb/df21/file2」で表されるファイルは、「sid1」で示されるサーバ110であるサーバ110Aが管理する、パスが「/mnt/fs1/df21/file2」であるファイルである。
前述の例では、グローバルネームスペース内のパスと、サーバ110内のローカルパスが異なる場合を示したが、両者が一致している場合には、ローカルパス505は、特に必要ない。例えば、dt01のsid1のサーバ110内のローカルパスが「/dira」である場合、このローカルパスはグローバルネームスペース内のパスと一致する。この場合、クライアント150に通知する位置情報にローカルパスが含まれる必要もない。
図6は、本発明の実施の形態のミラー管理テーブル600の説明図である。
ミラー管理テーブル600は、あるディレクトリツリーの複製であるミラーとそのミラーの元となったディレクトリツリーであるマスタの対応関係を示すテーブルであり、一つのエントリ(行)が、一つのミラーを示す。ミラーは、マスタと同一のデータを持つディレクトリツリーである。ミラーに含まれるデータの参照は許可されるが、更新は禁止される。
D−tree名601は、マスタのディレクトリツリーのIDである。ミラー名602は、ミラーのディレクトリツリーのIDである。
あるマスタに対して、複数のミラーが存在する場合、ミラー管理テーブル600内には、D−tree名601が一致するエントリが複数存在する。あるマスタに対するミラーを検索しやすいよう、ミラー管理テーブル600の各エントリは、D−tree名601をキーとしてソートされていることが望ましい。
図6の例では、D−tree名601の値「dt10」、「dt10」及び「dt21」に対応するミラー名602として、それぞれ、「dt100」、「dt110」及び「dt201」が登録されている。これは、dt100及びdt110が共にdt10のミラーであり、dt201がdt21のミラーであることを示す。
図7は、本発明の実施の形態のファイルシステム管理テーブル700の説明図である。
ファイルシステム管理テーブル700は、ストレージシステム100に含まれるファイルシステムを管理するテーブルであり、各ファイルシステムが格納されるディスクサブシステム120の論理デバイス(LDEV)124を示す。各エントリ(行)は、一つのLDEV124に対応している。
FS名701は、ファイルシステムのIDである。DS名702は、FS名701が示すIDのファイルシステムを格納しているLDEV124を含むディスクサブシステム120のIDを示す。デバイス名703は、FS名701が示すIDのファイルシステムを格納しているLDEV124をディスクサブシステム120内で識別するIDを示す。
一つのファイルシステムは、複数のLDEV124に格納することが可能である。この場合、ファイルシステム管理テーブル700内には、FS名701が一致するエントリが複数存在する。あるファイルシステムを格納するLDEV124の集合を検索しやすいよう、ファイルシステム管理テーブル700の各エントリは、FS名701をキーとしてソートされていることが望ましい。
例えば、図7において、FS名701として二つの「fs0」が登録され、それぞれに対応するDS名702として二つの「0」が登録されている。そして、一方の「fs0」に対応するデバイス名703として「L0」が、他方の「fs0」に対応するデバイス名703として「L1」が登録されている。これは、ファイルシステム「fs0」が、DS名「0」のディスクサブシステム120に格納された、デバイス名L0及びL1なる二つのLDEV124に格納されていることを示す。
図8は、本発明の実施の形態におけるミラーの状態を示す説明図である。
図8は、図5のディレクトリツリー管理テーブル500及び図6のミラー管理テーブル600の例で示されるディレクトリツリーとミラーの関係を例として示している。
この例において、dt10をマスタとする二つのミラー(dt100、dt110)が存在し、dt21をマスタとする一つのミラー(dt201)が存在する。マスタ及びそのマスタに対するそれぞれのミラーは、異なるサーバ110によって管理されている。
このように、あるディレクトリツリー(マスタ)のミラーを作成し、複数のサーバ110にマスタと同一のデータを持つミラーを配置することによって、マスタに対するアクセスを、ミラーを持つサーバ110に振り分け、複数のサーバ110間に負荷を分散することができる。
ミラーは、管理計算機140から指示を受信したサーバソフトウェア200のミラー制御部208によって作成される(図9参照)。
なお、上記では、マスタとそのマスタに対するミラーがそれぞれ異なるサーバ110で管理される場合を示したが、それらのいくつかが同じサーバ110で管理されてもよい。これは、あるディレクトリツリーに対する負荷が高いために、そのディレクトリツリーを格納しているLDEV124が性能のボトルネックとなっている場合に有効である。具体的には、あるディレクトリツリーに対する負荷を複数のLDEV124に分散させることによって性能を向上させることができる。
この場合、グローバルパスとローカルパスを異なるパスとし、同じサーバ110が管理するそれぞれのミラーのローカルパスを異なるパスとする必要がある。
次に、サーバソフトウェア200に含まれるプログラムが実行する処理について、フローチャートを参照して説明する。なお、サーバソフトウェア200はローカルメモリ113に格納され、サーバソフトウェア200に含まれる各プログラムはCPU112によって実行される。このため、以下の説明において各プログラムが実行する処理は、実際にはCPU112によって実行される。
図9は、本発明の実施の形態のミラー制御部208が実行するミラー作成処理のフローチャートである。
ミラー作成処理は、管理計算機140からの指示を受信したときに開始される。
ミラー制御部208は、まず、ミラーへのコピー動作901を実行する。具体的には、ミラー制御部208は、マスタのディレクトリツリー内の全データを複製する。
ディスクコントローラ125がデータのコピー機能を備えている場合、ミラー制御部208は、ディスクアクセス部203を通して、ディスクコントローラ125にコピー実行の指示を送信する。
ディスクコントローラ125は、指示を受信すると、順次データのコピーを実行する。コピーの実行中に、コピー対象のデータが更新された場合、ディスクコントローラ125は、コピー元とコピー先の両方のデータを更新する二重書きを実行する。その結果、コピー元のデータとコピー先のデータが一致する。二重書きの処理は、順次実行されるデータコピーの終了後も、サーバ110から切り離しの指示を受信するまで続けられる。
ディスクコントローラ125は、コピー先のディレクトリツリー(すなわち、ミラー)を格納するLDEV124が、コピー元のディレクトリツリー(すなわち、マスタ)を格納するLDEV124と異なるディスクサブシステム120に属する場合、スイッチ130を経由してコピー先のLDEV124を管理するディスクコントローラ125にデータを送信することによって、コピーを実行する。
ディスクコントローラ125は、データコピー終了後、必要に応じて、ミラーのマスタからの切り離しと、ミラーを含むファイルシステムのサーバ110へのマウント(すなわち、サーバ110のローカルパスへのファイルシステムの接続処理)を実行する。
ミラーへのコピー動作901は、ディスクコントローラ125がデータのコピー機能を備えていない場合等には、サーバ110によって実行されてもよい。この場合、ミラー制御部208は、ファイルシステム処理部202にコピーの実行を指示する。ファイルシステム処理部202は、必要な場合、まずコピー先となるディレクトリツリーを含むファイルシステムをマウントする。その後、ファイルシステム処理部202は、順次データのコピーを実行する。さらに、コピー対象のデータが更新された場合、ファイルシステム処理部202は、ディクスコントローラ125と同様の二重書きを実行する。その結果、コピー元とコピー先のデータが一致する。二重書きの処理は、順次実行されるデータコピーの終了後も、サーバ110から切り離しの指示を受信するまで続けられる。
コピー先が他のサーバ110によって管理されるディレクトリツリーであった場合、LAN160又はサーバ間通信路135を通して、コピー先のディレクトリツリーを管理するサーバ110にデータを送信することによって、コピーが実行される。
ディスクコントローラ125がミラーを作成するときに、マスタとなるディレクトリツリーの構成に制約がある場合がある。ディスクコントローラ125のコピー機能は、通常、LDEV124単位でコピーを管理する。このため、一つのLDEV124内に複数のディレクトリツリーがある場合、ディスクコントローラ125は一つのディレクトリツリーのみをコピーすることができない。このため、ディスクコントローラ125は、あるLDEV124の集合とファイルシステムとディレクトリツリーとを1対1対1に関係付け、そのLDEV124の集合のミラーを作成する。あるいは、あるLDEV124の集合に複数のディレクトリツリーが存在することが許可され、その一つのディレクトリツリーのミラーを作成する場合、LDEV124の集合に含まれる複数のディレクトリツリー全てのミラーが作成されてもよい。
一方、サーバ110がミラーを作成する場合、マスタのディレクトリツリーと、ファイルシステム又はLDEV124との関係には制約がないため、指定されたディレクトリツリーのみのミラーを作成することが可能である。例えば、サーバ110は、一つのファイルシステム内の複数のディレクトリツリーのミラーを、それぞれ異なるファイルシステム内に作成することができる。あるいは、サーバ110は、異なるファイルシステム内の複数のディレクトリツリーのミラーを、一つのファイルシステム内に作成することもできる。
ミラーへのコピー動作901の終了後、ミラー制御部208は、ミラー登録902を実行する。ミラー登録902によって、ディレクトリツリー管理テーブル500とミラー管理テーブル600にエントリが追加される。例えば、dt10のミラーとしてdt100が作成された場合、ディレクトリツリー管理テーブル500には、D−tree名501がdt100であるエントリが追加される(図5参照)。また、ミラー管理テーブル600には、D−tree名601がdt10で、ミラー名602がdt100であるエントリが追加される(図6参照)。
ミラー登録902終了後、ミラー制御部208は、必要に応じて、ミラー同期登録903を実行する。ミラー同期登録903は、マスタに対する更新の内容をミラーに反映させるため、ミラー同期処理のスケジュールを、ディスクコントローラ125又はファイルシステム処理部202に対して設定する。
ミラー制御部208は、例えば、5秒毎にミラー同期処理が実行されるように設定してもよい。ミラー同期処理は、前回のミラー同期処理実行後に行なわれたデータの更新内容を差分情報としてミラーに書き込むことによって、マスタとミラーの内容を一致させる処理である。また、ディスクコントローラ125のコピー機能によってミラー同期処理が実行され、かつ、サーバ110がそのローカルメモリ113内に一度読み出したデータの内容をキャッシュとして持っている場合、LDEV124に反映された更新内容をサーバ110が参照するように、サーバ110がキャッシュをクリアする必要がある。この場合、ミラー制御部208は、サーバ110のファイルシステム処理部202に、ミラー同期処理としてキャッシュのクリアを実行させる。
ディレクトリツリーに対する一連の更新の切れ目においてミラー同期処理を実行する必要がある場合がある。例えば、クライアント150上のアプリケーションがディレクトリツリー上のあるファイルを更新する場合、あるいは、複数の要求からなる更新が完了してから同期を実行する場合等である。
このため、例えば、スナップショット採取のタイミングでミラー同期処理を実行してもよい。ここで、スナップショット採取とは、バックアップ等の目的のために、ある時点のファイルシステムの内容を保存する処理である。また、マスタのファイルシステムをコピーする代わりに、マスタのスナップショットをコピーすることによってミラーを作成してもよい。この場合、サーバ110等がスナップショットを他のサーバ上にコピーするためのコピー機能等を備えていれば、その機能を使用してミラーへのコピー動作901を実行することができる。
ミラー同期登録903は、マスタとミラーが常に同期している場合は不要である。つまり、ミラーへのコピー動作901において、順次のデータコピー終了後にマスタとミラーを切り離さずに、更新の二重書きを常に実行している場合、ミラー同期登録903は不要である。
但し、ディスクコントローラが二重書きを実行し、かつ、サーバ110がキャッシュを備える場合、サーバ110のファイルシステム処理202にキャッシュをクリアさせる処理は必要である。したがって、キャッシュを定期的にクリアさせるために、ミラー同期登録903を実行する必要がある。
後述のディレクトリツリー選択処理(図14)によって、更新要求は、マスタのみに対して実行され、ミラーに対しては参照要求のみが実行される。すなわち、更新は常に最新の情報を持つマスタのみに対して実行されるため、常に更新順序が保証される。したがって、マスタの更新内容をすぐに各ミラーに反映させる必要がなく、マスタの更新から遅れて(例えば、定期的に)その更新をミラーに反映させることができる。
マスタへの更新データをすぐにミラーに反映せず、ミラー同期処理を用いて更新データを反映させることによって、マスタの更新時にロックを取得する必要も、ミラーへの更新完了を待つ必要もない。このため、マスタ更新の処理を高速に実行することができる。
ミラー同期登録903終了後、ミラー制御部208は、サーバ管理処理部205を通して、管理計算機140に処理の終了を通知する。
ミラー作成後は、クライアント150からのアクセス要求受信時に、ファイルシステム処理部202が、マスタ又は一つ以上のミラーのうち一つのディレクトリツリーを選択し、そのディレクトリツリーにアクセス要求を振り分ける。
図10は、本発明の実施の形態のファイルシステム処理部202がアクセス要求を振り分けるために実行する処理のフローチャートである。
アクセス要求の振り分けは、要求毎に実行してもよいが、振り分けによるオーバヘッドが大きくなるため、アクセスするクライアント150毎に実行することが望ましい。この場合、一度振り分けを実行した後、再度振り分けが実行されるまで、各クライアント150は選択されたディレクトリツリーに対してアクセス要求を発行する。
ファイルシステム処理部202は、ネットワーク処理部201を経由して、クライアント150からファイルへのアクセス要求を受信する(ステップ1001)。
次に、ファイルシステム処理部202は、受信した要求の内容がディレクトリツリーの先頭に対する名前解決であるか否かを判定する(ステップ1002)。
ステップ1002において、受信した要求の内容がディレクトリツリーの先頭に対する名前解決であると判定された場合、ファイルシステム処理部202は、ディレクトリツリー選択処理を呼び出す(ステップ1003)。その後、処理はステップ1006に進む。
ステップ1002において、受信した要求の内容がディレクトリツリーの先頭に対する名前解決でないと判定された場合、ファイルシステム処理部202は、ディレクトリツリーの再選択が必要か否かを判定する(ステップ1004)。
ステップ1004において、ディレクトリツリーの再選択が必要と判定された場合、ファイルシステム処理部202は、ディレクトリツリー選択処理を呼び出す(ステップ1005)。
ディレクトリツリーの再選択が必要な場合とは、例えば、新たにミラーが作成された後にアクセス要求を受信した場合である。この場合、新たに作成されたミラーにアクセスを分散させるため、再選択が実行される。また別の例は、クライアント150からのアクセスパターンが変化し、あるマスタ又はミラーにアクセス要求が偏る場合である。この場合、マスタや各ミラーへの負荷を均衡させるため、再選択が実行される。
上記のような場合、例えば、あるディレクトリツリーに所定の時間の間に行われるアクセスに対してディレクトリツリーの再選択が実行される。このために、上記イベント発生時にディレクトリツリー毎にフラグ(図示せず)を設定し、そのフラグが設定されている間は、ファイルシステム処理部202がステップ1004で再選択要と判断する。上記フラグは、所定の時間経過後クリアされる。
再選択要と判断される別の例は、ミラーへの更新要求があった場合である。後述するディレクトリツリー選択処理によって実行される選択方法の一つに、クライアント150から更新要求を受信するまでミラーを選択するという方法がある。この場合、選択後に受信したアクセス要求が更新要求であった場合、再選択が実行され、マスタが選択される。
ファイルシステム処理部202は、要求されたアクセス先が自サーバ110(すなわち、ステップ1006を実行しているCPU112が属するサーバ110)の管理するディレクトリツリーであるか否かを判定する(ステップ1006)。ステップ1003又はステップ1005が実行された場合、ステップ1006における「要求されたアクセス先」は、ステップ1003又はステップ1005において選択されたディレクトリツリーである。
ステップ1006において、要求されたアクセス先が自サーバ110の管理するディレクトリツリーでないと判定された場合、ファイルシステム処理部202は、クライアント150にディレクトリツリーの位置情報を通知して(ステップ1007)、処理を終了する。この位置情報は、アクセス対象のディレクトリツリーを管理するサーバ110の識別子を含む。位置情報の通知を受信したクライアント150は、受信した位置情報によって指定されたサーバ110が管理する指定されたディレクトリツリーに対して、再びアクセス要求を発行する。
ステップ1006において、要求されたアクセス先が自サーバ110の管理するディレクトリツリーであると判定された場合、ファイルシステム処理部202は、ファイルへのアクセス処理を実行(ステップ1008)し、その結果である応答情報をクライアント150に返し(ステップ1009)、処理を終了する。
図14は、本発明の実施の形態のファイルシステム処理部202が実行するディレクトリツリー選択処理のフローチャートである。
ディレクトリツリー選択処理は、図10のステップ1003及びステップ1005から呼び出される。
ファイルシステム処理部202は、ディレクトリツリー管理テーブル500及びミラー管理テーブル600を参照して、ディレクトリツリー選択処理を実行する。
最初に、ファイルシステム処理部202は、クライアントのアクセス要求先のディレクトリツリーのミラーが存在するか否かを判定する(ステップ1401)。具体的には、アクセス要求先のディレクトリツリーがそもそもミラーである場合、又は、アクセス要求先のディレクトリツリーがマスタであり、かつ、ミラー管理テーブル600のD−tree名601にそのディレクトリツリーのIDが登録されている場合には、ミラーが存在すると判定される。アクセス要求先のディレクトリツリーがミラーであるか否かは、ディレクトリツリー管理テーブル500の属性504を参照して判定することもできる。
ステップ1401においてミラーが存在しないと判定された場合、ファイルシステム処理部202は、マスタを選択し(ステップ1402)、処理を終了する。
一方、ステップ1401においてミラーが存在すると判定された場合、ファイルシステム処理部202は、アクセス種別を判定する(ステップ1403)。具体的には、ファイルシステム処理部202は、アクセス要求を発行したクライアント150が更新要求を発行するか否かを判定する。
ステップ1403の判定の結果に基づいて、処理が分岐する(ステップ1404)。具体的には、ステップ1403において、クライアント150が更新要求を発行すると判定された場合、ファイルシステム処理部202は、マスタのディレクトリツリーを選択して(ステップ1405)、処理を終了する。一方、ステップ1403において、クライアント150が更新要求を発行しないと判定された場合、ファイルシステム処理部202は、ミラーのディレクトリツリーを選択して(ステップ1406)、処理を終了する。
ミラーが複数存在する場合、ミラー管理テーブル600においてD−tree名601が等しいエントリが複数存在する。この場合、それらの複数のエントリのうちいずれか一つが選択される。この選択は、種々の方法によって実行することができる。例えば、ラウンドロビンで選択してもよいし、選択の時点の負荷を参照し、負荷の軽いミラーを選択してもよい。
上記の例では、ミラーが更新されない場合を示した。しかし、更新が頻発し、マスタのみでは処理しきれない場合等には、一部のミラーの更新を許可することもできる。この場合、ディレクトリツリー管理テーブル500において、更新を許可されるミラーの属性504は、ミラーであっても「rw」となる。そして、ステップ1403において、クライアント150が更新要求を発行すると判定された場合、ステップ1405において、マスタ、又は、属性504が「rw」であるミラーのいずれか一つが選択される。
ミラーの更新を許可する場合、そのミラーのデータは常にマスタと一致している必要がある。このため、マスタの更新に同期させてミラーを更新する必要がある。例えば、更新を許可されたミラーに対しては、前述の二重書き処理を常に実行してもよい。また、マスタとミラーにおいて異なる更新が同時に実行されないように、マスタと更新を許可されたミラーに対し、ロック等の制御を実行する必要がある。この場合でも、更新を許可されない(すなわち参照専用の)ミラーに対しては、更新の同期又はロック制御等は不要である。
アクセス種別の判定(ステップ1403)は、具体的には、クライアント150からのアクセス要求に更新要求が含まれるか否かの判定である。アクセス種別の判定方法には、いくつかの方法があり、その内の一つまたはいくつかの組み合わせによって判定されてもよい。以下、代表的な四つの判定方法について説明するが、他の方法によって判定されてもよい。
ステップ1403における第1の判定方法として、クライアント150から実際に更新が行われるまでは、クライアント150が更新要求を発行しないと判定する方法がある。言い換えると、サーバ110がクライアント150からディレクトリツリーに対するアクセス要求を最初に受信したとき、そのクライアント150が更新要求を発行しないと判定され、その後、同じクライアント150から同じディレクトリツリーに対する更新要求を受信したとき、そのクライアント150が更新要求を発行すると判定される。受信したアクセス要求ごとに、アクセス要求の種類が参照され、その種類に基づいて判定されてもよい。この場合、ステップ1403において、ファイルシステム処理部202は、受信したアクセス要求が更新であるか否かを判定する。アクセス要求が更新でない(例えば、参照である)場合、クライアント150が更新要求を発行しないと判定され、ミラーが選択される。その後、クライアント150から更新要求が発行された場合、ステップ1004で再選択要と判断され、ディレクトリ選択処理が呼び出される。この場合、ファイルシステム処理部202は、クライアント150が更新要求を発行すると判定し(ステップ1403)、マスタを選択する(ステップ1405)。
ステップ1403における第2の判定方法は、クライアント150が設定したパラメータに基づいて判定する方法である。具体的には、例えば、クライアント150がマウントを実行するとき(すなわち、クライアント150がグローバルネームスペースに最初にアクセスする時)等に、そのクライアント150が更新要求を発行するか否かを示すマウントパラメータ(後述)を設定する。設定されたマウントパラメータは、ローカルメモリ113に格納されたマウントパラメータテーブル1500に登録される(図15参照)。例えば、クライアント150のユーザがマウントパラメータを指定し、クライアント150がその指定されたマウントパラメータを設定してもよい。
この場合、ファイルシステム処理部202は、ステップ1403においてマウントパラメータを参照する。そして、マウントパラメータが更新要求を発行しないことを示す値(例えば、参照要求のみを発行することを示す値)である場合、ファイルシステム処理部202は、クライアント150が更新要求を発行しないと判定し、ミラーを選択する(ステップ1406)。一方、マウントパラメータが更新要求を発行することを示す値である場合、ファイルシステム処理部202は、クライアント150が更新要求を発行すると判定し、マスタを選択する(ステップ1405)。
図15は、本発明の実施の形態のマウントパラメータテーブル1500の説明図である。
マウントパラメータテーブル1500は、ローカルメモリ113に格納され、ファイルシステム処理部202によって参照される。マウントパラメータテーブル1500は、クライアントID1501及びマウントパラメータ1502からなる。
クライアントID1501は、マウントを実行したクライアント150の識別子(ID)である。例えば、クライアント150のホスト名又はIPアドレスがクライアントID1501として登録されてもよい。
マウントパラメータ1502は、マウントが実行されたときにクライアント150によって設定されたパラメータである。具体的には、マウントパラメータ1502には、各クライアント150が発行するアクセス要求の種類を示すパラメータが登録される。例えば、クライアント150が更新要求及び参照要求のいずれも発行する場合、そのクライアント150のクライアントID1501に対応するマウントパラメータ1502には、「rw」が登録される。一方、クライアント150が参照要求のみを発行する場合、そのクライアント150のクライアントID1501に対応するマウントパラメータ1502には、「ro」が登録される。
例として、図1のクライアント150AのクライアントID1501が「cid1」であり、クライアント150BのクライアントID1501が「cid2」である場合について説明する。クライアント150Aからアクセス要求を受けたとき、ファイルシステム処理部202は、「cid1」に対応するマウントパラメータ1502の値が「rw」であるため、クライアント150Aが更新要求を発行すると判定する(ステップ1403)。一方、クライアント150Bからアクセス要求を受けたとき、ファイルシステム処理部202は、「cid2」に対応するマウントパラメータ1502の値が「ro」であるため、クライアント150Bが更新要求を発行しないと判定する(ステップ1403)。
図14のステップ1403における第3の判定方法は、更新要求を発行する可能性のあるクライアント150を登録する方法である。具体的には、例えば、システム管理者又はクライアント150のユーザが、更新要求を発行する可能性のあるクライアント150を、ローカルメモリ113に格納された更新クライアントテーブル1600に登録する(図16参照)。
この場合、ファイルシステム処理部202は、ステップ1403において更新クライアントテーブル1600を参照する。そして、受信したアクセス要求の発行元が更新クライアントテーブル1600に登録されているクライアント150である場合、ファイルシステム処理部202は、そのクライアント150が更新要求を発行する判定し、マスタを選択する(ステップ1405)。一方、受信したアクセス要求の発行元が更新クライアントテーブル1600に登録されていないクライアント150である場合、ファイルシステム処理部202は、そのクライアント150が更新要求を発行しないと判定し、ミラーを選択する(ステップ1406)。
なお、上記の例では、更新要求を発行する可能性があるクライアント150が更新クライアントテーブル1600に登録されたが、逆に、更新要求を発行する可能性がないクライアント150が登録されてもよい。この場合、ステップ1403において、発行元のクライアント150が登録されている場合に、そのクライアント150が更新要求を発行しないと判定される。
図16は、本発明の実施の形態の更新クライアントテーブル1600の説明図である。
クライアントテーブル1600は、ローカルメモリ113に格納され、ファイルシステム処理部202によって参照される。クライアントテーブル1600は、クライアントID1601からなる。
クライアントID1601は、システム管理者等によって登録されたクライアント150の識別子(ID)である。例えば、クライアント150のホスト名又はIPアドレスがクライアントID1601として登録されてもよい。システム管理者等は、更新要求を発行する可能性のあるクライアント150をクライアントID1601に登録する。
例として、図1のクライアント150AのクライアントIDが「cid1」であり、クライアント150BのクライアントIDが「cid2」である場合について説明する。クライアント150Aからアクセス要求を受けたとき、ファイルシステム処理部202は、「cid1」がクライアントID1601として登録されているため、クライアント150Aが更新要求を発行すると判定する(ステップ1403)。一方、クライアント150Bからアクセス要求を受けたとき、ファイルシステム処理部202は、「cid2」がクライアントID1601として登録されていないため、クライアント150Bが更新要求を発行しないと判定する(ステップ1403)。
図14のステップ1403における第4の判定方法は、グローバルネームスペース上のパスを分けておく方法である。クライアント150は、同じファイルにアクセスする場合であっても、更新要求を発行する場合には参照要求を発行する場合と異なるパスを使用する。例えば、ディレクトリ「/dirb」(図3のディレクトリツリー303参照)に対し、「/dirb.w」というディレクトリを用意する。具体的には、対象のディレクトリツリー(すなわち、更新要求を発行するために用意されたディレクトリツリー)は、マウントポイント管理テーブル400に登録される場合、元のディレクトリ名に「.w」を付加したディレクトリ名(例えば、「/dir.w」等)で登録される。この場合、クライアントに提供される名前空間には、「.w」が付加されたディレクトリと付加されていないディレクトリの二つが存在する。例えば、「/dirb.w」のエントリが追加された場合、クライアントに提供される名前空間には、「/dirb」及び「/dirb.w」の二つが存在する(図17及び18参照)。
上記の二つのディレクトリ名が登録されている場合、クライアント150は、ユーザに対してこれらの二つのディレクトリの選択画面を表示する。例えば、ユーザは、「/dirb」の下のファイル「file2」を更新するときは「/dirb.w」を、参照するときは「/dirb」を選択してクライアント150に入力する。その結果、クライアント150は、ディレクトリ「/dirb」の下の「file2」に対する参照要求を発行する場合、パス「/dirb/file2」を使用する。一方、同じファイルに対する更新要求を発行する場合、クライアント150は、「/dirb.w/file2」を使用する。ファイルシステム処理部202は、クライアント150から受信したアクセス要求において使用されているパスを参照する(ステップ1403)。その結果、前者のパスが使用されている場合、ファイルシステム処理部202は、クライアント150が更新要求を発行しないと判定し、ミラーを選択する(ステップ1406)。一方、後者のパスが使用されている場合、ファイルシステム処理部202は、クライアント150が更新要求を発行すると判定し、マスタを選択する(ステップ1405)。
図17は、本発明の実施の形態において、パス名に基づいて更新要求の有無が判定される場合に、クライアント150に提供される名前空間の説明図である。
図17に示すルートツリー301、ディレクトリツリー302、304及び305は、図3に示したものと同じであるため、説明を省略する。図17の例では、さらに、ルートディレクトリ「/」の下に、ディレクトリツリー1701及び1702が存在する。
ディレクトリツリー1701の最上位ディレクトリは、ルートディレクトリの下の「dirb」である。ディレクトリ「dirb」の下に、ファイル「file2」及びディレクトリ「df22」がある。
ディレクトリツリー1702の最上位ディレクトリは、ルートディレクトリの下の「dirb.w」である。ディレクトリ「dirb.w」の下のファイル及びディレクトリは、ディレクトリツリー1701と同様である。
また、ディレクトリツリー1701及び1702の識別子は、同じ「dt10」である。
図18は、本発明の実施の形態において、パス名に基づいて更新要求の有無が判定される場合のマウントポイント管理テーブル400の説明図である。
図18は、名前空間が図17に示す通りである場合のマウントポイント管理テーブル400の例である。図18において、図4と同様の部分については、説明を省略する。
図18のグローバルパス401には、「/dirb」に加えて「/dirb.w」が登録される。これらに対応するD−tree名402は、いずれも「dt10」である。その他のエントリは、図4と同様である。
なお、上記のように、クライアント150は、ユーザに「/dirb」又は「/dirb.w」のいずれかを選択させるための画面を表示する。このため、図14のステップ1403において上記第4の方法が選択される場合、マウントポイント管理テーブル400は、クライアント150のメモリ(図示省略)にも格納される。
次に、本発明の実施の形態のストレージシステム100を管理するためのインターフェースについて説明する。このインターフェースは、管理計算機140によってストレージシステム100の管理者に提供される。
図11は、本発明の実施の形態の管理画面1302に表示されるディレクトリツリーリスト表示画面の説明図である。
ディレクトリツリーリスト表示画面には、ディレクトリツリーリスト1100、作成ボタン1107、削除ボタン1108及びミラー作成ボタン1109等が含まれる。
ディレクトリツリーリスト1100は、名称1101、FS名1102、サーバ1103、属性1104及びグローバルパス1105からなる。
名称1101は、ディレクトリツリーの名称である。図11の例では、図3と同様のディレクトリツリーが表示されている。
FS名1102は、各ディレクトリツリーを含むファイルシステムの名称である。
サーバ1103は、各ディレクトリツリーを管理するサーバ110の識別子である。図11の例において、各ディレクトリツリーと、それを管理するサーバ110との関係は、図5と同様である。したがって、サーバ1103には、図5のサーバID503と同じ値が表示される。
属性1104には、各ディレクトリツリーに対する属性情報が表示される。この値は、ディレクトリツリー管理テーブル500の属性504と同等である。
グローバルパス1105は、各ディレクトリツリーのグローバルネームスペース上のマウントポイントである。図11の例では、図4のグローバルパス401と同様のマウントポイントが設定されている。
作成ボタン1107は、ディレクトリツリーを新規作成するときに使用される。
削除ボタン1108は、ディレクトリツリーを削除するときに使用される。例えば、管理者が削除しようとするディレクトリツリーを選択し、削除ボタン1108を操作すると、選択されたディレクトリツリーが削除される。ここで、ディレクトリツリーの選択は、図11の名称1101の欄の左側にある丸印1106をポインティングデバイス(図示省略)で操作(例えば、マウスクリック)することによって実行されてもよい。削除ボタン1108の操作も同様である。
ミラー作成ボタン1109は、ディレクトリツリーのミラーを作成するときに使用される。例えば、管理者があるディレクトリツリーを選択し、ミラーボタン1109を操作すると、別の画面(図12参照)が表示され、ミラーを作成することができる。この時選択されるディレクトリツリーはマスタのディレクトリツリーである。
図12は、本発明の実施の形態の管理画面1302に表示されるミラー作成操作画面1200の説明図である。
ミラー作成操作画面1200は、管理者がディレクトリツリーリスト表示画面(図11)においてマスタとなるディレクトリツリーを選択し、ミラー作成ボタン1109を操作したときに表示される。図11は、例として、管理者がディレクトリツリーリスト表示画面においてdt10を選択した場合のミラー作成操作画面1200を示す。
ミラー作成操作画面1200は、マスタ名称表示欄1201、ミラー名称入力欄1202、FS名称入力欄1203、FS内パス入力欄1204、サーバ入力欄1205、LDEV入力欄1202、実行ボタン1207及び取り消しボタン1207を含む。
名称表示欄1201には、管理者が選択したディレクトリツリーの名称が表示される。図12の例では、dt10が表示される。ミラー名称入力欄1202には、管理者が、新規に作成するミラーの名称を入力する。図12の例では、「dt110」が入力されている。FS名称入力欄1203には、管理者が、新規に作成するミラーを格納するFSの名称を入力する。図12の例では、「fs11」が入力されている。FS内パス入力欄1204には、管理者が、新規に作成するミラーのFS内での先頭のディレクトリのパス名を入力する。図12の例では、「/」が入力されている。つまりfs11全体をdt110のディレクトリツリーとすることを意味している。サーバ入力欄1205には、管理者が、ミラーを管理するサーバ110名称を入力する。図12の例では、「sid3」が入力されている。LDEV入力欄1206には、管理者が、ミラーを格納するLDEV名称を入力する。複数のLDEVを使用する場合には、複数のLDEV名称を例えばコンマ“,”で区切って入力する。図12の例では、「L101」が入力されている。
図12の例にある入力によって、図5のディレクトリツリー管理テーブル500のdt110のエントリに対応するディレクトリツリーが作成される。
ミラー作成操作画面1200の各入力欄(1202から1206)の全てに入力が必要というわけではない。例えば、既存のファイルシステムの一部に新たにミラーのディレクトリツリーを作成する場合、FS名称によってディレクトリツリーを管理するサーバ110及び格納するLDEV124は決まるので、サーバ入力欄1205及びLDEV入力欄1206には入力する必要がない(入力しても無視される)。また、FS全体のミラーを作成する場合、FS内パスはマスタのディレクトリツリーの構造によって決まるので、FS内パス入力欄1204には入力する必要がない。
実行ボタン1207は、ミラー作成を実行するときに使用される。管理者が実行ボタン1207を操作すると、dt10のミラーをsid3のサーバ110に作成する処理が開始される。取り消しボタン1208は、ミラー作成操作を中止するときに使用される。管理者が取り消しボタン1208を操作すると、ミラー作成操作画面1200は閉じられ、ディレクトリツリーリスト表示画面が再び表示される。
以上、本実施の形態によれば、複数のサーバ110を備えるストレージシステム100において、ファイルシステムの全体またはその一部であるディレクトリツリーのミラーを作成することによって、複数のサーバ110に参照負荷を分散することができる。さらに、クライアント150からのアクセス種別を判別し、更新のあるアクセスをマスタに対してのみ振り分けることによって、複数のサーバ110間で更新の順序保証及びロック制御等を実行せずに、複数のミラーを持つディレクトリツリーに対する更新を実行することが可能となる。さらに、マスタに対する更新をミラーに反映することによって、ミラーに参照を行なうクライアント150に対しても、更新されたデータの内容を参照することを可能とする。
本発明の実施の形態の計算機システムの構成を示すブロック図である。 本発明の実施の形態のサーバソフトウェアの構成の説明図である。 本発明の実施の形態においてクライアントに提供される名前空間(グローバルネームスペース)の説明図である。 本発明の実施の形態のマウントポイント管理テーブルの説明図である。 本発明の実施の形態のディレクトリツリー管理テーブルの説明図である。 本発明の実施の形態のミラー管理テーブルの説明図である。 本発明の実施の形態のファイルシステム管理テーブルの説明図である。 本発明の実施の形態におけるミラーの状態を示す説明図である。 本発明の実施の形態のミラー制御部が実行するミラー作成処理のフローチャートである。 本発明の実施の形態のファイルシステム処理部がアクセス要求を振り分けるために実行する処理のフローチャートである。 本発明の実施の形態の管理画面に表示されるディレクトリツリーリスト表示画面の説明図である。 本発明の実施の形態の管理画面に表示されるミラー作成操作画面の説明図である。 本発明の実施の形態の管理計算機の構成を示すブロック図である。 本発明の実施の形態のファイルシステム処理部が実行するディレクトリツリー選択処理のフローチャートである。 本発明の実施の形態のマウントパラメータテーブルの説明図である。 本発明の実施の形態の更新クライアントテーブルの説明図である。 本発明の実施の形態において、パス名に基づいて更新要求の有無が判定される場合に、クライアントに提供される名前空間の説明図である。 本発明の実施の形態において、パス名に基づいて更新要求の有無が判定される場合のマウントポイント管理テーブルの説明図である。
符号の説明
100 ストレージシステム
110 サーバ
111、1312 ネットワークインターフェース
112、1310 CPU
113、1311 ローカルメモリ
116 アダプタ
120 ディスクサブシステム
121 ディスクコントローラ
122 ディスクキャッシュ
123 ディスクドライブ
124 論理デバイス(LDEV)
125 ポート
126 管理用ポート
130 スイッチ
131 管理用ポート
135 サーバ間通信路
140 管理計算機
150 クライアント
160 LAN
200 サーバソフトウェア
201 ネットワーク処理部
202 ファイルシステム処理部
203 ディスクアクセス部
205 サーバ管理処理部
206 サーバ間通信処理部
207 マイグレーション処理部
208 ミラー制御部
301 ルートツリー
400 マウントポイント管理テーブル
500 ディレクトリツリー管理テーブル
600 ミラー管理テーブル
700 ファイルシステム管理テーブル
1100 ディレクトリツリーリスト
1200 ミラー作成操作画面
1301 入力装置
1302 管理画面
1303 ディスク
1500 マウントパラメータテーブル
1600 更新クライアントテーブル

Claims (9)

  1. 一つ以上のクライアント計算機と、前記クライアント計算機とネットワークを介して接続されるストレージシステムと、を備える計算機システムにおいて、
    前記ストレージシステムは、第1サーバ及び複数の第2サーバを含む複数のサーバと、前記複数のサーバと接続される一つ以上のディスクサブシステムと、を備え、
    前記ディスクサブシステムは、前記クライアント計算機によって書き込まれたデータを格納する一つ以上の論理デバイスを備え、
    前記各サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1サーバは、前記論理デバイスに格納されたデータを一つ以上のファイルシステムとして管理し、
    前記第2サーバは、前記第1サーバが管理する一つのファイルシステムの一部又は全部に相当する第1ディレクトリツリーの複製である第2ディレクトリツリーを管理し、
    前記プロセッサは、
    前記クライアント計算機から前記インターフェースを介して前記第1ディレクトリツリー及び前記第2ディレクトリツリーに属するファイルを対象とするアクセス要求を受信すると、前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものであるか否かを判定し、
    前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものである場合、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定し、
    前記クライアント計算機が更新要求を発行すると判定された場合、前記第1ディレクトリツリーを選択し、
    前記クライアント計算機が更新要求を発行しないと判定された場合、前記複数の第2サーバによって管理される複数の前記第2ディレクトリツリーの一つを選択し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されている場合、前記選択されたディレクトリツリーを対象として前記要求されたアクセスを実行し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されていない場合、前記選択されたディレクトリツリーを管理するサーバを識別する情報を、前記アクセス要求を発行した前記クライアント計算機に前記インターフェースを介して送信し、
    前記アクセス要求を発行した前記クライアント計算機は、前記選択されたディレクトリツリーを管理するサーバを識別する情報を受信すると、前記選択されたディレクトリツリーを管理するサーバに対して前記アクセス要求を送信することを特徴とする計算機システム。
  2. 前記各サーバは、前記各クライアント計算機によって設定されたパラメータを保持し、
    前記プロセッサは、
    前記受信したアクセス要求を発行したクライアント計算機によって設定された前記パラメータを参照し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行することを示す値である場合、前記クライアント計算機が更新要求を発行すると判定し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行しないことを示す値である場合、前記クライアント計算機が更新要求を発行しないと判定することを特徴とする請求項1に記載の計算機システム。
  3. 前記各サーバは、前記クライアント計算機のうち、更新要求を発行するクライアント計算機又は更新要求を発行しないクライアント計算機のいずれか一方を識別する情報を保持し、
    前記プロセッサは、
    前記保持された情報を参照して、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定することを特徴とする請求項1に記載の計算機システム。
  4. 一つ以上のクライアント計算機とネットワークを介して接続されるストレージシステムにおいて、
    前記ストレージシステムは、第1サーバ及び複数の第2サーバを含む複数のサーバと、前記複数のサーバと接続される一つ以上のディスクサブシステムと、を備え、
    前記ディスクサブシステムは、前記クライアント計算機によって書き込まれたデータを格納する一つ以上の論理デバイスを備え、
    前記各サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1サーバは、前記論理デバイスに格納されたデータを一つ以上のファイルシステムとして管理し、
    前記各第2サーバは、前記第1サーバが管理する一つのファイルシステムの一部又は全部に相当する第1ディレクトリツリーの複製である第2ディレクトリツリーを管理し、
    前記プロセッサは、
    前記クライアント計算機から前記インターフェースを介して前記第1ディレクトリツリー及び前記第2ディレクトリツリーに属するファイルを対象とするアクセス要求を受信すると、前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものであるか否かを判定し、
    前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものである場合、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定し、
    前記クライアント計算機が更新要求を発行すると判定された場合、前記第1ディレクトリツリーを選択し、
    前記クライアント計算機が更新要求を発行しないと判定された場合、前記複数の第2サーバによって管理される複数の前記第2ディレクトリツリーの一つを選択し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されている場合、前記選択されたディレクトリツリーを対象として前記要求されたアクセスを実行し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されていない場合、前記選択されたディレクトリツリーを管理するサーバを識別する情報を、前記アクセス要求を発行したクライアント計算機に前記インターフェースを介して送信することを特徴とするストレージシステム。
  5. 前記各サーバは、前記各クライアント計算機によって設定されたパラメータを保持し、
    前記プロセッサは、
    前記受信したアクセス要求を発行したクライアント計算機によって設定された前記パラメータを参照し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行することを示す値である場合、前記クライアント計算機が更新要求を発行すると判定し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行しないことを示す値である場合、前記クライアント計算機が更新要求を発行しないと判定することを特徴とする請求項4に記載のストレージシステム。
  6. 前記各サーバは、前記クライアント計算機のうち、更新要求を発行するクライアント計算機又は更新要求を発行しないクライアント計算機のいずれか一方を識別する情報を保持し、
    前記プロセッサは、
    前記保持された情報を参照して、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定することを特徴とする請求項4に記載のストレージシステム。
  7. 一つ以上のクライアント計算機と、前記クライアント計算機とネットワークを介して接続されるストレージシステムと、を備える計算機システムの制御方法において、
    前記ストレージシステムは、第1サーバ及び複数の第2サーバを含む複数のサーバと、前記複数のサーバと接続される一つ以上のディスクサブシステムと、を備え、
    前記ディスクサブシステムは、前記クライアント計算機によって書き込まれたデータを格納する一つ以上の論理デバイスを備え、
    前記各サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続されるメモリと、を備え、
    前記第1サーバは、前記論理デバイスに格納されたデータを一つ以上のファイルシステムとして管理し、
    前記各第2サーバは、前記第1サーバが管理する一つのファイルシステムの一部又は全部に相当する第1ディレクトリツリーの複製である第2ディレクトリツリーを管理し、
    前記プロセッサは、
    前記クライアント計算機から前記インターフェースを介して前記第1ディレクトリツリー及び前記第2ディレクトリツリーに属するファイルを対象とするアクセス要求を受信すると、前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものであるか否かを判定し、
    前記受信したアクセス要求が、新たな前記第2ディレクトリツリーが作成されてから所定の時間内に受信したものである場合、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定し、
    前記クライアント計算機が更新要求を発行すると判定された場合、前記第1ディレクトリツリーを選択し、
    前記クライアント計算機が更新要求を発行しないと判定された場合、前記複数の第2サーバによって管理される複数の前記第2ディレクトリツリーの一つを選択し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されている場合、前記選択されたディレクトリツリーを対象として前記要求されたアクセスを実行し、
    前記選択されたディレクトリツリーが前記アクセス要求を受信したサーバによって管理されていない場合、前記選択されたディレクトリツリーを管理するサーバを識別する情報を、前記アクセス要求を発行した前記クライアント計算機に前記インターフェースを介して送信し、
    前記アクセス要求を発行した前記クライアント計算機は、前記選択されたディレクトリツリーを管理するサーバを識別する情報を受信すると、前記選択されたディレクトリツリーを管理するサーバに対して前記アクセス要求を送信することを特徴とする方法。
  8. 前記各サーバは、前記各クライアント計算機によって設定されたパラメータを保持し、
    前記プロセッサは、
    前記受信したアクセス要求を発行したクライアント計算機によって設定された前記パラメータを参照し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行することを示す値である場合、前記クライアント計算機が更新要求を発行すると判定し、
    前記参照されたパラメータが、そのパラメータを設定したクライアント計算機が更新要求を発行しないことを示す値である場合、前記クライアント計算機が更新要求を発行しないと判定することを特徴とする請求項7に記載の方法。
  9. 前記各サーバは、前記クライアント計算機のうち、更新要求を発行するクライアント計算機又は更新要求を発行しないクライアント計算機のいずれか一方を識別する情報を保持し、
    前記プロセッサは、
    前記保持された情報を参照して、前記アクセス要求を発行したクライアント計算機が更新要求を発行するか否かを判定することを特徴とする請求項7に記載の方法。
JP2006037639A 2006-02-15 2006-02-15 データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御 Expired - Fee Related JP4806572B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006037639A JP4806572B2 (ja) 2006-02-15 2006-02-15 データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御
US11/399,506 US20070192375A1 (en) 2006-02-15 2006-04-07 Method and computer system for updating data when reference load is balanced by mirroring

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006037639A JP4806572B2 (ja) 2006-02-15 2006-02-15 データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御

Publications (2)

Publication Number Publication Date
JP2007219693A JP2007219693A (ja) 2007-08-30
JP4806572B2 true JP4806572B2 (ja) 2011-11-02

Family

ID=38370005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006037639A Expired - Fee Related JP4806572B2 (ja) 2006-02-15 2006-02-15 データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御

Country Status (2)

Country Link
US (1) US20070192375A1 (ja)
JP (1) JP4806572B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4893040B2 (ja) * 2006-03-17 2012-03-07 ソニー株式会社 暗号化データ記録装置
JP4369471B2 (ja) * 2006-12-27 2009-11-18 富士通株式会社 ミラーリングプログラム、ミラーリング方法、情報記憶装置
CN101296176B (zh) * 2007-04-25 2010-12-22 阿里巴巴集团控股有限公司 一种基于群集的数据处理方法和装置
KR100913196B1 (ko) 2007-12-11 2009-08-24 한국전자통신연구원 파일 갱신 시스템 및 방법
JP2010044660A (ja) 2008-08-15 2010-02-25 Hitachi Ltd ストレージシステム及びそのデータ保護方法
US8423604B2 (en) * 2008-08-29 2013-04-16 R. Brent Johnson Secure virtual tape management system with balanced storage and multi-mirror options
US8370302B2 (en) * 2009-06-02 2013-02-05 Hitachi, Ltd. Method and apparatus for block based volume backup
US10289684B2 (en) * 2011-05-03 2019-05-14 Vmware, Inc. Live migration of virtual machine persistent data using mirrored input-output operations
US8862558B2 (en) * 2012-01-25 2014-10-14 Hitachi, Ltd. Single instantiation method using file clone and file storage system utilizing the same
CN103309713A (zh) * 2013-06-25 2013-09-18 北京小米科技有限责任公司 系统升级的方法、装置及设备
JP6318902B2 (ja) * 2014-06-20 2018-05-09 富士通株式会社 冗長システムおよび冗長化方法
US10423588B2 (en) * 2015-08-25 2019-09-24 International Business Machines Corporation Orchestrated disaster recovery
CN106487554A (zh) * 2015-08-28 2017-03-08 中兴通讯股份有限公司 一种网元迁移的方法及装置
US10521592B2 (en) * 2016-04-27 2019-12-31 Apple Inc. Application translocation
US20210365416A1 (en) * 2020-05-25 2021-11-25 Hewlett Packard Enterprise Development Lp Mount parameter in file systems
WO2023164458A1 (en) * 2022-02-25 2023-08-31 Proofpoint, Inc. Document open detection and remediation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335181A (ja) * 1995-06-06 1996-12-17 Canon Inc ファイルアクセス装置
US6052724A (en) * 1997-09-02 2000-04-18 Novell Inc Method and system for managing a directory service
US6983278B1 (en) * 2001-04-10 2006-01-03 Arena Solutions, Inc. System and method for access control and for supply chain management via a shared bill of material
US7281032B2 (en) * 2000-06-30 2007-10-09 Hitachi, Ltd. File sharing system with data mirroring by storage systems
JP2002116939A (ja) * 2000-10-06 2002-04-19 Telecommunication Advancement Organization Of Japan 分散型データベースシステム
US6671773B2 (en) * 2000-12-07 2003-12-30 Spinnaker Networks, Llc Method and system for responding to file system requests
US6862593B2 (en) * 2002-05-17 2005-03-01 Sun Microsystems, Inc. Separation of database transactions
EP1606822B1 (en) * 2003-03-19 2011-10-26 Nxp B.V. Universal memory device having a profile storage unit

Also Published As

Publication number Publication date
JP2007219693A (ja) 2007-08-30
US20070192375A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
JP4451293B2 (ja) 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
EP3803619B1 (en) Cloud storage distributed file system
JP4168626B2 (ja) 記憶装置間のファイル移行方法
US8316066B1 (en) Shadow directory structure in a distributed segmented file system
US7836017B1 (en) File replication in a distributed segmented file system
JP5775177B2 (ja) クローンファイル作成方法と、それを用いたファイルシステム
JP4806572B2 (ja) データミラーリングによって参照負荷を分散するストレージシステムにおけるアクセスの制御
US7827350B1 (en) Method and system for promoting a snapshot in a distributed file system
US12072770B2 (en) Share-based file server replication for disaster recovery
US8429360B1 (en) Method and system for efficient migration of a storage object between storage servers based on an ancestry of the storage object in a network storage system
JP4836533B2 (ja) ストレージシステムにおけるファイルシステムマイグレーション方法、ストレージシステム及び管理計算機
US8538924B2 (en) Computer system and data access control method for recalling the stubbed file on snapshot
US9165003B1 (en) Technique for permitting multiple virtual file systems having the same identifier to be served by a single storage system
US20130110790A1 (en) Information processing system and file restoration method using same
US7860909B2 (en) Search engine system using snapshot function of storage system
US10031682B1 (en) Methods for improved data store migrations and devices thereof
JP2008234568A (ja) ファイルレベルの仮想化を行う中間装置
JP2008033912A (ja) Nas向けのcdpの方法および装置
US8332497B1 (en) Generic resynchronization between persistent management store and dynamic configuration
JP2004295465A (ja) 計算機システム
US9286318B2 (en) Edge server and storage control method
JP2004252957A (ja) 分散ファイルシステムのファイルレプリケーション方法及び装置
US8516023B1 (en) Context based file system
US20080243962A1 (en) Method and apparatus for providing and managing a virtual storage namespace

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110627

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees