[情報処理システム]
図1は、本実施の形態の情報処理システムを説明するブロック図である。なお、以下の図の説明において、同じ要素については同一の符号を付して、一度した説明を省略する。
情報処理システムISYSは、第1のジョブ用ノードND1〜第n(nは2以上の整数)のジョブ用ノードNDnと、ファイルシステムFSYSとを有する。第1のジョブ用ノードND1〜第nのジョブ用ノードNDnと、ファイルシステムFSYSとは、ネットワークN1に接続する。ファイルシステムFSYSは、例えば、大規模分散ファイルシステムである。なお、ネットワークN1は、例えばローカルエリアネットワーク(LAN:Local Area Network)である。
第1のジョブ用ノードND1〜第nのジョブ用ノードNDnは、情報処理システムISYSのユーザ(以下、ユーザと適宜記す)が操作する端末である。以下のジョブ用ノードの説明において、第1のジョブ用ノードND1を例示してジョブ用ノードの機能を説明するが、他のジョブ用ノードも第1のジョブ用ノードND1と同じ機能を有する。なお、図1の点線は、ジョブ用ノードが省略されていることを模式的に示している。
第1のジョブ用ノードND1は、ユーザのログイン処理や、プログラム開発や、ファイルシステムFSYSのジョブマネージャー(図2参照)に対するジョブ操作を実行する。第1のジョブ用ノードND1は、このジョブ操作として、例えば、ジョブをジョブマネージャーに投入し、ジョブの実行をジョブマネージャーに指示する。このジョブは、ユーザが1つのまとまりとして実行する一連のプログラムの管理単位である。換言すれば、コンピュータに実行させる処理の単位である。
[ファイルシステム]
図2は、図1のファイルシステムFSYSを説明するブロック図である。ファイルシステムFSYSは、通信ネットワークに接続された、複数の情報処理装置と複数の記憶装置と管理装置とを有する。通信ネットワークは、例えば、ネットワークN2、N3(太線参照)である。複数の情報処理装置は、例えば、複数のフロントエンドサーバ装置FE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、複数のバックエンドサーバ装置BE1a、BE1b、BE1zである。複数の記憶装置は、ディスク装置DSa、DSb、DSzである。管理装置は、例えば、ジョブマネージャー(管理装置)MGRである。
なお、以下の説明において、ジョブマネージャー(管理装置)MGRをジョブマネージャーMGRと適宜記し、フロントエンドサーバ装置をフロントエンドと適宜記し、バックエンドサーバ装置をバックエンドと適宜記す。図2において、フロントエンド、バックエンド、ディスク装置の数は例示である。図2の点線は、フロントエンド、バックエンド、ディスク装置が省略されていることを模式的に示している。
ジョブマネージャーMGR、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a、BE1b、BE1zは、ネットワークN2に接続する。なお、ネットワークN2は、例えばローカルエリアネットワークである。
ここで、ジョブマネージャーMGRと、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a、BE1b、BE1zとはネットワークN2を介して相互に通信可能である。また、各フロントエンド間もネットワークN2を介して相互に通信可能である。
バックエンドBE1aは、ネットワークN3を介しディスク装置DSaに接続し、バックエンドBE1bは、ネットワークN3を介しディスク装置DSbに接続し、バックエンドBE1zは、ネットワークN3を介しディスク装置DSzに接続する。なお、ネットワークN3は、例えばローカルエリアネットワークである。
なお、以下の説明において、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zを単にフロントエンドと適宜記す。また、バックエンドBE1a、BE1b、BE1zを単にバックエンドと適宜記す。また、ディスク装置DSa、DSb、DSzを単にディスク装置と適宜記す。
(ジョブマネージャー)
ジョブマネージャーMGRは、ジョブの実行管理や、複数のフロントエンド、複数のバックエンド、複数のディスク装置の管理を行う。例えば、ジョブマネージャーMGRは、第1のジョブ用ノードND1から投入されたジョブの実行指示を受け付ける。ジョブマネージャーMGRは、この実行指示を受け付けると、第1のジョブ用ノードND1から投入されたジョブを、情報処理システムISYS内のどのリソースに割り当てるかを決定する。前記したリソースは、図2の例では、フロントエンド(例えば、フロントエンドFE1aなど)、バックエンド(例えば、バックエンドBE1aなど)、ディスク装置(例えば、DSaなど)である。
(フロントエンド、バックエンド、ディスク装置)
フロントエンド(例えば、フロントエンドFE1aなど)は、ジョブマネージャーMGRから割り当てられたジョブの実行を行う。そして、このフロントエンドは、例えば、ジョブの実行に伴い作成されたデータとこのデータの書き込み要求とをバックエンド(例えば、バックエンドBE1a)に転送する。
バックエンド(例えば、バックエンドBE1a)は、データとこのデータの書き込み要求とを受信すると、受信したデータの書き込み要求に応答し、受信したデータを、接続するディスク装置(例えば、ディスク装置DSa)に書き込む。
ディスク装置DSa、DSb、DSzは、いわゆるストレージサーバであり、例えば、大容量のハードディスクドライブやソリッドステートドライブを有する。
破線で示すグループGaは、フロントエンドFE1a、FE2a、FE3a、バックエンドBE1a、ディスク装置DSaのまとまりである。また、破線で示すグループGbは、フロントエンドFE1b、FE2b、FE3b、バックエンドBE1b、ディスク装置DSbのまとまりである。破線で示すグループGzは、フロントエンドFE1z、FE2z、FE3z、バックエンドBE1z、ディスク装置DSzのまとまりである。各グループGa、Gb…Gzのフロントエンド、バックエンド、ディスク装置は、それぞれ、例えば同一ラック内に収納されている。なお、符号J1〜J3については、図9、図16で詳細に説明する。
(ジョブの実行)
ジョブマネージャーMGRは、例えば第1のジョブ用ノードND1からのジョブの実行指示に応答して、複数のフロントエンドの中から、このジョブを実行するフロントエンドを決定する。さらに、ジョブマネージャーMGRは、複数のディスク装置の中から、ジョブの実行により作成されるデータや、ジョブの実行に必要なデータを記憶するディスク装置を決定する。そして、ジョブマネージャーMGRは、このジョブを、決定したフロントエンドに実行させる。決定されたフロントエンドは、ジョブの実行により作成されるデータを、決定されたディスク装置に記憶し、または、ジョブの実行に必要なデータを、決定されたディスク装置から読み込む。
図2のファイルシステムFSYSにおいては、ネットワークN2、N3における通信遅延により、ファイルシステムFSYSのスループットが低下することがある。特に、複数のジョブが同時に実行されると、ネットワーク通信が遅延しやすくなり、ファイルシステムFSYSのスループットが低下する。
また、ジョブの実行状況に応じて、ネットワーク通信の負荷が動的に変動することがある。例えば、頻繁にディスク装置にアクセス処理を行うジョブが実行されると、ネットワーク通信の負荷が動的に増加する。その結果、ネットワーク通信が遅延し、ファイルシステムFSYSのスループットが低下する。
かかるスループットの低下を抑制するため、ハードウェアの性能を考慮するだけでなく、時々刻々変動するネットワーク通信の負荷を考慮し、ファイルシステムFSYS全体でのスループットをリアルタイムで最適化することが望ましい。なお、このハードウェアは、例えば、フロントエンド、バックエンド、ディスク装置である。
また、高性能計算(high-performance computing、HPC)分野での、大規模並列分散システムにおいてディスク装置を管理する場合、複数のディスク装置全体を1個のファイルシステムとして扱う分散ファイルシステムが利用されることが一般的である。かかる分散ファイルシステムでは、多数のジョブの実行により、ネットワーク負荷が大きく変動するので、ファイルシステムのスループットをリアルタイムで最適化することがより望まれる。
そこで、本実施の形態のファイルシステムFSYSは、ファイルシステムのスループットをリアルタイムで最適化する。
[ジョブマネージャー]
図3、図4を参照して、ジョブマネージャーMGRについて説明する。図3は、図2のジョブマネージャーMGRのハードウェアブロック図である。ジョブマネージャーMGRは、バスBに接続された、CPU101と、ストレージ装置102と、RAM103と、ROM104と、通信装置105と、外部接続インターフェイス装置106とを有する。以下の説明において、ストレージ装置102をストレージ102と適宜記す。
なお、CPUは" Central Processing Unit"の略語、RAMは"Random Access Memory"の略語、ROMは、" Read Only Memory"の略語である。
CPU101は、ジョブマネージャーMGRの全体を制御する中央演算処理装置である。ストレージ102は、例えばハードディスクドライブや、ソリッドステートドライブや、不揮発性の半導体メモリなどの記憶装置である。
ストレージ102は、性能情報記憶領域IF1を有する。性能情報記憶領域IF1は、フロントエンドの性能情報およびバックエンドの性能情報を記憶する領域である。なお、性能情報については、図11、図13、図15で説明する。ストレージ102は、ジョブの実行管理などを行う管理ソフトSF1の実行ファイル(プログラム)を記憶する。
RAM103は、CPU101が実行する処理や、管理ソフトSF1が実行する各ステップにおいて作成(算出)されたデータなどを一時的に記憶する。RAM103は、例えば第1のジョブ用ノードND1から投入されたジョブを記憶する。図3では、RAM103は、投入されたジョブJBを記憶している。RAM103は、例えばDRAM(Dynamic Random Access Memory)などの半導体メモリである。
CPU101は、ジョブマネージャーMGRの起動時に、ストレージ102から管理ソフトSF1の実行ファイルを読み込み、RAM103に展開する。なお、この実行ファイルを外部記憶媒体MD1に記憶してもよい。
ROM104は、設定データなどの各種データを記憶する。通信装置105は、ネットワークN2に接続し通信を行う。通信装置105は、例えばネットワークインターフェイスカード(NIC:Network Interface Card)である。
外部接続インターフェイス装置106は、ジョブマネージャーMGRと、外部記憶媒体MD1とを接続するためのインターフェイスとして機能する装置である。外部接続インターフェイス装置106は、例えば、カードスロットや、USBのポートである。
外部接続インターフェイス装置106を介して、記憶媒体に記憶されたデータを読み取る記憶媒体読み取り装置(図示しない)と接続する構成としても良い。この記憶媒体(記録媒体とも呼ばれる)は、例えば、CD-ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの可搬型記憶媒体である。
図4は、図3のジョブマネージャーMGRのソフトウェアブロック図である。なお、図4において、ハードウェア要素である、ストレージ102については一点鎖線で示している。
管理ソフトSF1は、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zのIPアドレスや、バックエンドBE1a、BE1b、BE1zのIPアドレスや、ディスク装置DSa、DSb、DSzのIPアドレスを管理する。ストレージ102は、前記した各IPアドレスを記憶する。なお、"IP"は、"Internet Protocol"の略語である。
また、管理ソフトSF1は、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a、BE1b、BE1z、ディスク装置DSa、DSb、DSzのネットワークN2における接続関係を示す結線情報を管理する。ストレージ102は、結線情報を記憶する。
管理ソフトSF1は、ジョブ受付部11と、割当部(決定部)12と、組換部(変更部)13と、収集部14とを有する。なお、以下の説明において、割当部(決定部)12を割当部12と適宜記し、組換部(変更部)13を変更部13と適宜記す。
ジョブ受付部11は、例えば第1のジョブ用ノードND1から投入されたジョブを受け付けRAM103に記憶する。割当部12は、ジョブ受付部11が受け付けたジョブを情報処理システムISYS内のどのリソースに割り当てるかを決定し、ジョブにリソースを割り当てる。詳しくは、割当部12は、投入されたジョブを実行するフロントエンドと、ジョブの実行によりアクセスされるデータを記憶する第1のディスク装置とを決定する。さらに、割当部12は、決定されたフロントエンドが、第1のディスク装置へアクセスする際のネットワークN2における第1の経路を決定する。
組換部13は、ストレージ102の性能情報記憶領域IF1に記憶された性能情報に基づき、割当部12が割り当てたリソースを組み換える処理を行う。この性能情報は、フロントエンド、バックエンドによるネットワークの利用状態を示す状態情報の一例である。
組換部13は、リソースの組換えにおいて、収集部14により収集された性能状態に基づき、以下のディスク装置と経路とを特定する。すなわち、組換部13は、決定されたフロントエンドによるアクセスの効率が高まる第2のディスク装置と、決定されたフロントエンドによる第2のディスク装置へのアクセスの効率が高まる、ネットワークN2における第2の経路とを特定する。さらに、組換部13は、第1のディスク装置と第1の経路とを、第2のディスク装置と第2の経路とに変更する。この変更により、ファイルシステムのスループットを最適化する。なお、前記した特定および変更については、図16、図17で詳細に説明する。
収集部14は、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a、BE1b、BE1zから性能情報を収集する。そして、収集部14は、収集した性能情報をストレージ102の性能情報記憶領域IF1に記憶する。
[フロントエンド]
図5、図6を参照して、フロントエンドについて説明する。図5は、図2のフロントエンドのハードウェアブロック図である。図5のフロントエンドFEは、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zを示している。
フロントエンドFEは、バスBに接続された、CPU201と、ストレージ装置202と、RAM203と、ROM204と、通信装置205と、外部接続インターフェイス装置206とを有する。以下の説明において、ストレージ装置202をストレージ202と適宜記す。
CPU201は、フロントエンドFEの全体を制御する中央演算処理装置である。ストレージ202は、例えばハードディスクドライブや、ソリッドステートドライブや、不揮発性の半導体メモリなどの記憶装置である。
ストレージ202は、性能情報記憶領域IF2を有する。性能情報記憶領域IF2は、自装置の性能情報を記憶する領域である。なお、性能情報については、図11で説明する。ストレージ202は、ユーザソフトSF2a、ファイルアクセスソフトSF2b、収集ソフト(収集部)SF2cの実行ファイルを記憶する。以下、収集ソフト(収集部)SF2cを収集ソフトSF2cと適宜記す。なお、ユーザソフトSF2a、ファイルアクセスソフトSF2b、収集ソフトSF2cについては、図6で説明する。
RAM203は、CPU201が実行する処理や、ユーザソフトSF2a、ファイルアクセスソフトSF2b、収集ソフトSF2cが実行する各ステップにおいて作成(算出)されたデータなどを一時的に記憶する。RAM203は、例えばDRAMなどの半導体メモリである。
CPU201は、フロントエンドFEの起動時に、ファイルアクセスソフトSF2b、収集ソフトSF2cの実行ファイルを読み込み、RAM203に展開する。また、CPU201は、ジョブマネージャーMGRからジョブの実行を指示されると、このジョブの実行を行うユーザソフトSF2aの実行ファイルをストレージ202から読み込み、RAM203に展開する。なお、この実行ファイルを外部記憶媒体MD2に記憶してもよい。
ROM204は、設定データなどの各種データを記憶する。通信装置205は、ネットワークN2に接続し通信を行う。通信装置205は、例えばネットワークインターフェイスカードである。
外部接続インターフェイス装置206は、フロントエンドFEと、外部記憶媒体MD2とを接続するためのインターフェイスとして機能する装置である。外部接続インターフェイス装置206は、例えば、カードスロットや、USBのポートである。
外部接続インターフェイス装置206を介して、記憶媒体に記憶されたデータを読み取る記憶媒体読み取り装置(図示しない)と接続する構成としても良い。この記憶媒体は、例えば、CD-ROM、DVDなどの可搬型記憶媒体である。
図6は、図5のフロントエンドFEのソフトウェアブロック図である。なお、図6において、ハードウェア要素である、ストレージ202、通信装置205については一点鎖線で示している。ユーザソフトSF2aは、ジョブの実行を行うユーザソフト(ユーザプログラム)であり、例えば並列的に情報処理を実行する。ユーザソフトSF2aは、ジョブの実行により、ファイルへのアクセスが必要になると、アクセス要求をファイルアクセスソフトSF2bに行う。このファイルへのアクセスは、例えば、以下の2つの処理である。第1の処理は、データファイル(以下、ファイルと適宜記す)をディスク装置に書き込む、すなわち記憶することである。第2の処理は、ディスク装置に記憶されたファイルを読み込むことである。
ファイルアクセスソフトSF2bは、ユーザソフトSF2aのアクセス要求に応答し、必要な処理を行う。ファイルアクセスソフトSF2bは、インターフェイス部21と、送受信部(送信部)22とを有する。以下、送受信部(送信部)22を送受信部22と適宜記す。
インターフェイス部21は、ユーザソフトSF2aに対するインターフェイスを提供する。具体的には、インターフェイス部21は、ユーザソフトSF1からのアクセス要求を受け付け、アクセス要求に対する結果をユーザソフトSF1に出力する。
送受信部22は、ユーザソフトSF2aから受け付けたアクセス要求をバックエンドや、他のフロントエンドに送信する。また、送受信部22は、他の第1のフロントエンドから送信されたアクセス要求を、通信装置205を介して受信し、バックエンドや第1のフロントエンドと異なる第2のフロントエンドに転送する。また、送受信部22は、通信装置205を介して、バックエンドや他のフロントエンドから送信されたアクセス要求の結果を受信する。そして、送受信部22は、受信したアクセス要求の結果を、インターフェイス部21を介してユーザソフトSF2aに出力する。
収集ソフトSF2cは、自装置の性能情報を収集し、ストレージ202の性能情報記憶領域IF2に記憶する。この性能情報は、フロントエンドによるネットワークN2の利用状態を示す状態情報の一例である。この状態情報は、例えば、フロントエンドがネットワークN2にデータを転送する際のデータ転送効率である。
詳しくは、フロントエンドFEの収集ソフトSF2cは、フロントエンドFEがネットワークN2を介して他のフロントエンドまたはバックエンドと接続している場合に、他のフロントエンドまたはバックエンドにデータを転送する際のデータ転送効率を収集する。送受信部22は、収集ソフトSF2cが収集した性能情報を、ジョブマネージャーMGRに送信する。
[バックエンド]
図7、図8を参照して、バックエンドについて説明する。図7は、図2のバックエンドのハードウェアブロック図である。図7のバックエンドBEは、図2のバックエンドBE1a、BE1b、BE1zを示している。
バックエンドBEは、バスBに接続された、CPU301と、ストレージ装置302と、RAM303と、ROM304と、通信装置305と、外部接続インターフェイス装置306とを有する。以下の説明において、ストレージ装置302をストレージ302と適宜記す。
CPU301は、バックエンドBEの全体を制御する中央演算処理装置である。ストレージ302は、例えばハードディスクドライブや、ソリッドステートドライブや、不揮発性の半導体メモリなどの記憶装置である。
ストレージ302は、性能情報記憶領域IF3を有する。性能情報記憶領域IF3は、自装置の性能情報を記憶する領域である。なお、性能情報については、図13で説明する。ストレージ302は、ファイルアクセスソフトSF3a、収集ソフト(収集部)SF3bの実行ファイルを記憶する。以下、収集ソフト(収集部)SF3bを収集ソフトSF3bと適宜記す。なお、ファイルアクセスソフトSF3a、収集ソフトSF3bについては、図8で説明する。
RAM303は、CPU301が実行する処理や、ファイルアクセスソフトSF3a、収集ソフトSF3bが実行する各ステップにおいて作成(算出)されたデータなどを一時的に記憶する。RAM303は、例えばDRAMなどの半導体メモリである。
CPU301は、バックエンドBEの起動時に、ストレージ302からファイルアクセスソフトSF3a、収集ソフトSF3bの実行ファイルを読み込み、RAM303に展開する。なお、この実行ファイルを外部記憶媒体MD3に記憶してもよい。
ROM304は、設定データなどの各種データを記憶する。通信装置305は、ネットワークN2を介してフロントエンドに接続し通信を行い、ネットワークN3を介してディスク装置に接続し通信を行う。通信装置305は、例えばネットワークインターフェイスカードである。
外部接続インターフェイス装置306は、バックエンドBEと、外部記憶媒体MD3とを接続するためのインターフェイスとして機能する装置である。外部接続インターフェイス装置306は、例えば、カードスロットや、USBのポートである。
外部接続インターフェイス装置306を介して、記憶媒体に記憶されたデータを読み取る記憶媒体読み取り装置(図示しない)と接続する構成としても良い。この記憶媒体は、例えば、CD-ROM、DVDなどの可搬型記憶媒体である。
図8は、図7のバックエンドBEのソフトウェアブロック図である。なお、図8において、ハードウェア要素である、ストレージ302、通信装置305については一点鎖線で示している。ファイルアクセスソフトSF3aは、フロントエンドFEからのアクセス要求に応答してディスク装置が記憶するファイルに対するアクセス処理を実行する。
ファイルアクセスソフトSF3aは、ファイルアクセス部31と、送受信部(送信部)32とを有する。以下、送受信部(送信部)32を送受信部32と適宜記す。
ファイルアクセス部31は、送受信部32が受信したアクセス要求に応答して、バックエンドBEが接続しているディスク装置が記憶するファイルにアクセスする。また、ファイルアクセス部31は、ファイルのアクセス結果(例えば、アクセス成功、または、アクセス失敗)を送受信部32に出力する。
送受信部32は、通信装置305を介して、フロントエンドFEからのアクセス要求を受信する。送受信部32は、ファイルアクセス部31から入力されたアクセス結果を、通信装置305を介して、アクセス要求を行ったフロントエンドFEに送信する。
収集ソフトSF3bは、自装置の性能情報を収集し、ストレージ302の性能情報記憶領域IF3に記憶する。この性能情報は、バックエンドによるネットワークN2やネットワークN3の利用状態を示す状態情報の一例である。この状態情報は、例えば、バックエンドがネットワークN2やネットワークN3にデータを転送する際のデータ転送効率である。
詳しくは、バックエンドBEの収集ソフトSF3は、ネットワークN2を介して接続しているフロントエンドや、ネットワークN3を介して接続しているディスク装置にデータを転送する際のデータ転送効率を収集する。送受信部32は、収集ソフトSF3bが収集した性能情報を、ジョブマネージャーMGRに送信する。
[ジョブマネージャーの処理の流れ]
図9は、図3、図4のジョブマネージャーMGRの処理の流れを説明するフロー図である。以下のフロー図の説明において、"Ss"(小文字のsは、1以上の整数)は、ステップSsを示す。
ステップS1:ジョブマネージャーMGRの割当部12は、ジョブ受付部11が受け付けたジョブ(以下、ジョブJBと適宜記す)を情報処理システムISYS内のどのリソースに割り当てるかを決定する。そして、割当部12は、ジョブJBにリソースを暫定的に割り当てる。以下、ジョブにリソースを暫定的に割り当てることを仮割当と適宜記す。
ステップS2:組換部13は、ジョブJBに設定されている優先度に基づき、割当部12が仮割当したリソースを組み換える。なお、S1、S2の具体的処理については、後記する。
ステップS3:収集部14は、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a BE1b、BE1zから、性能情報を収集する。そして、収集部14は、収集した性能情報をストレージ102の性能情報記憶領域IF1に記憶する。なお、S3の具体的処理については、図14、図15で説明する。
ステップS4:組換部13は、S3で収集された性能情報に基づき、アクセス経路の最適化を実行する。アクセス経路は、フロントエンドFEがファイルアクセスを実行する場合において、このフロントエンドFEからバックエンドBEに接続するディスク装置までの経路である。また、アクセス経路の最適化とは、フロントエンドFEがファイルアクセスを実行する場合において、このアクセス効率を最大化できるように、アクセス経路を組み換える処理である。なお、S4の処理の説明については、図16、図17で詳細に説明する。
ステップS5:管理ソフトSF1は、第1の所定の時間(例えば、10分)を経過したか判定する。所定の時間が経過しない場合(S5/NO)、ステップS5の判定処理を継続する。所定の時間が経過した場合(S5/YES)、S6に移る。なお、第1の所定の時間は、適宜設定可能である。
ステップS6:管理ソフトSF1は、処理を終了するか判定する。例えば、ユーザが、第1のジョブ用ノードND1を介して処理の終了をジョブマネージャーMGRに指示する。すると、管理ソフトSF1は、この指示を受け付け、処理を終了すると判定する。管理ソフトSF1は、処理を終了すると判定すると(S6/YES)、ジョブの実行管理を終了する。管理ソフトSF1は、処理を終了しないと判定すると(S6/NO)、換言すれば、前記した指示を受信しない場合、S3に移る。
[リソースの仮割当]
次に、図2、図4を参照して、図9の仮割当(S1)について説明する。割当部12は、ジョブ受付部11が受け付けたジョブJBを実行する1または複数のフロントエンドを決定する。さらに、割当部12は、ジョブJBの実行によりアクセスされるファイルを記憶するディスク装置と、このディスク装置に接続するバックエンドを決定する。この決定が、図2で説明した、リソースの割当の決定に相当する。
割当部12は、ジョブJBに設定された優先度と、フロントエンド、バックエンド、ディスク装置のハードウェア性能とに基づき、前記した決定を行う。すなわち、割当部12は、ジョブJBに設定された優先度と、フロントエンド、バックエンド、ディスク装置のハードウェア性能とに基づき、ジョブを割り当てるリソースを決定する。ここで、フロントエンド、バックエンドのハードウェア性能は、例えば、CPUのクロック数、RAMの容量、通信帯域などである。また、ディスク装置のハードウェア性能は、記憶装置の容量、記憶装置に記憶されたデータに対する書き込みの速度や、記憶装置に記憶されたデータを読み込む速度を含む。
ジョブJBに設定された優先度は、例えば、ジョブの実行優先順位であり、優先度として"1"から"5"まで設定される。ここで、優先度"5"が最も高い優先度であり、数値が小さくなるに従い優先度が下がる。
割当部12は、高い優先度のジョブを、ハードウェア性能が高い、フロントエンドやバックエンドやディスク装置に割り当てる。一方、割当部12は、低い優先度のジョブを、ハードウェア性能が低い、フロントエンドやバックエンドやディスク装置に割り当てる。
また、割当部12は、1つのフロントエンドで複数のジョブが実行されないように、ジョブを実行するフロントエンドを決定する。この決定は、1つのフロントエンドに処理負荷が集中しないようにするためである。図2の例では、フロントエンドFE3a、FE2a、FE3b、FE2b、FE3z、FE2zのハードウェア性能は、フロントエンドFE1a、FE1b、FE1zのハードウェア性能よりも高いとする。また、バックエンドBE1a、BE1zのハードウェア性能は、バックエンドBE1bのハードウェア性能より高いとする。また、ディスク装置DSa、DSzのハードウェア性能は、ディスク装置DSbのハードウェア性能より高性能であるとする。
ここで、第1のジョブ用ノードND1が、第1〜第3のジョブをジョブマネージャーMGRに投入し、第1〜第3のジョブの実行をジョブマネージャーMGRに指示する。なお、第1のジョブ用ノードND1は、第1〜第3のジョブに予め優先度を設定している。この第1〜第3のジョブは、例えば、データ解析処理である。
ジョブの優先度については、第1のジョブの優先度が最も高く(例えば優先度5)、次に、第2のジョブの優先度が高く(例えば優先度4)、次に、第3のジョブの優先度が高く(例えば優先度3)である。ジョブマネージャーMGRのジョブ受付部11は、第1〜第3のジョブを受け付け、RAM103に記憶する。割当部12は、第1〜第3のジョブに割り当てるリソースを決定する。以下、あるジョブに対して割り当てられたリソースをジョブのリソースと適宜記す。
割当部12は、第1のジョブが最も優先度が高いので、第1のジョブを実行する、高性能なフロントエンドFE2a、FE3aを決定する。第1のジョブは、並列的に情報処理が実行可能なジョブである。そこで、割当部12は、第1のジョブに、複数のフロントエンドを割り当て、この複数のフロントエンドを利用して並列に情報処理を実行させて、情報処理の高速化を図る。さらに、割当部12は、第1のジョブの実行によりアクセスされるファイルを記憶するディスク装置DSaと、ディスク装置DSaに接続するバックエンドBE1aを決定する。第1のジョブのリソースは、フロントエンドFE2a、FE3aと、バックエンドBE1aと、ディスク装置DSaとである。この第1のジョブのリソースを図2の符号J1の一点鎖線で囲む。
そして、割当部12は、決定したフロントエンドFE2a、FE3a、バックエンドBE1aに第1の実行情報を送信する。第1の実行情報は、決定したフロントエンドFE2a、FE3a、バックエンドBE1aのIP(Internet Protocol)アドレスと、決定したフロントエンドFE2a、FE3aからバックエンドBE1aまでの経路を示す第1の経路情報とを含む。なお、経路情報については後記する。
フロントエンドFE2a、FE3aのファイルアクセスソフトSF2bは、第1の実行情報を受信し、RAM203に記憶する。また、バックエンドBE1aのファイルアクセスソフトSF3aは、第1の実行情報を受信し、RAM303に記憶する。
次いで、割当部12は、第2のジョブを実行する、高性能なフロントエンドFE3bを決定する。さらに、割当部12は、第2のジョブの実行によりアクセスされるファイルを記憶するディスク装置DSaと、ディスク装置DSaに接続するバックエンドBE1aを決定する。第2のジョブのリソースは、フロントエンドFE3bと、バックエンドBE1aと、ディスク装置DSaとである。この第2のジョブのリソースを図2の符号J2の二点鎖線で囲む。
そして、割当部12は、決定したフロントエンドFE3b、バックエンドBE1aに第2の実行情報を送信する。第2の実行情報は、決定したフロントエンドFE3b、バックエンドBE1aのIPアドレスと、決定したフロントエンドFE3bからバックエンドBE1aまでの経路を示す第2の経路情報とを含む。なお、経路情報については後記する。
フロントエンドFE3bのファイルアクセスソフトSF2bは、第2の実行情報を受信し、RAM203に記憶する。また、バックエンドBE1aのファイルアクセスソフトSF3aは、第2の実行情報を受信し、RAM303に記憶する。
次いで、割当部12は、第3のジョブを実行する、低性能なフロントエンドFE1zを決定する。さらに、割当部12は、第2のジョブの実行によりアクセスされるファイルを記憶するディスク装置DSzと、ディスク装置DSzに接続するバックエンドBE1zを決定する。
そして、割当部12は、決定したフロントエンドFE1z、バックエンドBE1zに第3の実行情報を送信する。第3の実行情報は、決定したフロントエンドFE1z、バックエンドBE1zのIPアドレスと、決定したフロントエンドFE1zからバックエンドBE1zまでの経路を示す第3の経路情報とを含む。
フロントエンドFE1zのファイルアクセスソフトSF2bは、第3の実行情報を受信し、RAM203に記憶する。また、バックエンドBE1zのファイルアクセスソフトSF3aは、第3の実行情報を受信し、RAM303に記憶する。
[リソースの組換え]
次に、図2、図4を参照して、図9の組み換え(S2)について説明する。組換部13は、第1〜第3のジョブに割り当てられたリソースを組み換える(S2)。前記の例では、割当部12は、第3のジョブの優先度が低いので、第3のジョブを実行するフロントエンドとして、低性能なフロントエンドFE1zを決定した。このとき、高性能なフロントエンドFE3zが、ジョブを実行していない場合、フロントエンドFE3zに第3のジョブを実行させた方が、ジョブの実行開始から実行完了までの時間を短縮できる可能性が高くなる。かかる時間短縮ができるのは、フロントエンドFE1zよりもフロントエンドFE3zの方が、ハードウェア性能が高いからである。
そこで、組換部13は、ジョブの実行開始から実行完了までの時間を短縮できる可能性がある場合、割当部12が割り当てたリソースを組み換える。
前記の例では、組換部13は、第3のジョブを実行する、高性能なフロントエンドFE3zを決定し、第3のジョブを実行するフロントエンドを、低性能なフロントエンドFE1zから高性能なフロントエンドFE3zに組み換える。
そして、組換部13は、決定したフロントエンドFE3z、バックエンドBE1zに第3'の実行情報を送信する。第3'の実行情報は、決定したフロントエンドFE3z、バックエンドBE1zのIPアドレスと、決定したフロントエンドFE3zからバックエンドBE1zまでの経路を示す第3'の経路情報とを含む。
ここで、第3のジョブのリソースは、フロントエンドFE3zと、バックエンドBE1zと、ディスク装置DSzとである。この第3のジョブのリソースを図2の符号J3の二点鎖線で囲む。
[フロントエンドにおけるジョブの実行]
次に、図2、図6、図8を参照して、フロントエンドにおけるジョブの実行を説明する。割当部12は、例えば、前記した組換え処理が終了したタイミングや、割り当てが終了したタイミングで、ジョブを実行するフロントエンドにジョブを送信しジョブの実行を指示する。
前記の例では、割当部12は、第1のジョブの実行をフロントエンドFE2a、FE3aに指示する。フロントエンドFE2a、FE3aのユーザソフトSF2aは、第1のジョブを実行する。また、割当部12は、第2のジョブの実行をフロントエンドFE3bに指示する。フロントエンドFE3bのユーザソフトSF2aは、第2のジョブを実行する。また、割当部12は、第3のジョブの実行をフロントエンドFE3zに指示する。フロントエンドFE3zのユーザソフトSF2aは、第3のジョブを実行する。
フロントエンドFE2a、FE3a、FE3b、FE3zの処理ソフトSF2aは、ジョブの実行によりファイルへのアクセスが必要になると、アクセス要求をファイルアクセスソフトSF2bに行う。次に、ファイルへのアクセス処理である、ファイルの書き込み、ファイルの読み込みについて説明する。
[ファイルへのアクセス]
まず、フロントエンドFE2a、FE3a、FE3bの処理ソフトSF2aが行うファイルの書き込み要求について説明する。なお、フロントエンドFE1zの処理ソフトSF2aが行うファイルの書き込み要求については、後で説明する組換部13によるリソースの組換について直接関係しないので、その説明を省略する。
(書き込み要求:フロントエンドFE2a)
第1のジョブを実行するフロントエンドFE2aの処理ソフトSF2aは、ジョブの実行により作成されたデータをディスク装置に書き込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。フロントエンドFE2aのファイルアクセスソフトSF2bは、前記した第1の実行情報を参照して、ライト用パケット(以下、ライト用パケットPW2aと適宜記す)を作成する。
第1の実行情報には、前記した第1の経路情報が含まれる。この第1の経路情報は、第1のジョブのリソースであるフロントエンドFE2aからディスク装置DSaに至る第1のアクセス経路が、フロントエンドFE2a、フロントエンドFE3a、バックエンドBE1aから構成されることを示す。つまり、フロントエンドFE2aは、フロントエンドFE3a、バックエンドBE1aを経由(中継とも呼ぶ)してディスク装置DSaにアクセスできる。また、フロントエンドFE3aは、バックエンドBE1aを経由してディスク装置DSaにアクセスできる。
フロントエンドFE2aのファイルアクセスソフトSF2bは、以下のライト用パケットPW2aを作成する。ライト用パケットPW2aは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE2aのIPアドレスを含む。ライト用パケットPW2aは、アクセス要求の属性として"書き込み"と、書き込むファイルのファイルパスと、書き込み用データと、ファイル名とを含む。
フロントエンドFE2aの送受信部22は、ライト用パケットPW2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE2aの送受信部22は、ライト用パケットPW2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドFE3aに送信する。
フロントエンドFE3aの送受信部22は、ライト用パケットPW2aを受信すると、ライト用パケットPW2aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、以下の送信を行う。すなわち、送受信部22は、ライト用パケットPW2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、ライト用パケットPW2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、ライト用パケットPW2aを受信すると、ライト用パケットPW2aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、ライト用パケットPW2aを出力する。バックエンドBE1aのファイルアクセス部31は、ライト用パケットPW2aのアクセス要求の属性が"書き込み"の場合、ライト用パケットPW2aに含まれる書き込み用データをディスク装置DSaに書き込む。この書き込みにおいて、ファイルアクセス部31は、ライト用パケットPW2aに含まれるファイルパスおよびファイル名で指定されたファイルに書き込み用データを書き込む。
ファイルアクセス部31は、ファイルの書き込みが成功または失敗したことを示す結果パケットを作成し、送受信部32に出力する。送受信部32は、フロントエンドFE2aのIPアドレスを送信先IPアドレスとして含む結果パケットをフロントエンドFE3aに送信する。フロントエンドFE3aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスでない場合、以下の送信を行う。
すなわち、送受信部22は、この結果パケットを、前記した第1のアクセス経路において、ディスク装置DSaとは逆側に位置する次のフロントエンドFE2aに送信する。次のフロントエンドFE2aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスの場合、ユーザソフトSF2aに出力する。フロントエンドFE2aのユーザソフトSF2aは、結果パケットがファイルの書き込みが成功したことを示す場合、書き込み処理の次の処理を実行する。一方、ユーザソフトSF2aは、結果パケットがファイルの書き込みが失敗したことを示す場合、例えば、再度の書き込み要求を行う。
(書き込み要求:フロントエンドFE3a)
また、第1のジョブを実行するフロントエンドFE3aの処理ソフトSF2aは、ジョブの実行により作成されたデータをディスク装置に書き込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第1の実行情報を参照して、ライト用パケット(以下、ライト用パケットPW3aと適宜記す)を作成する。
第1の実行情報には、前記した第1の経路情報が含まれる。フロントエンドFE3aのファイルアクセスソフトSF2bは、以下のライト用パケットPW3aを作成する。ライト用パケットPW3aは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3aのIPアドレスを含む。ライト用パケットPW3aは、アクセス要求の属性として"書き込み"と、書き込むファイルのファイルパスと、書き込み用データと、ファイル名とを含む。
フロントエンドFE3aの送受信部22は、ライト用パケットPW3aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、ライト用パケットPW3aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置するバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、ライト用パケットPW3aを受信すると、ライト用パケットPW3aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、ライト用パケットPW3aを出力する。バックエンドBE1aのファイルアクセス部31は、ライト用パケットPW3aのアクセス要求の属性が"書き込み"の場合、ライト用パケットPW3aに含まれる書き込み用データをディスク装置DSaに書き込む。この書き込みにおいて、ファイルアクセス部31は、ライト用パケットPW3aに含まれるファイルパスおよびファイル名で指定されたファイルに書き込み用データを書き込む。
ファイルアクセス部31は、ファイルの書き込みが成功または失敗したことを示す結果パケットを作成し、送受信部32に出力する。送受信部32は、フロントエンドFE3aのIPアドレスを送信先IPアドレスとして含む結果パケットをフロントエンドFE3aに送信する。フロントエンドFE3aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスの場合、ユーザソフトSF2aに出力する。なお、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
(書き込み要求:フロントエンドFE3b)
また、第2のジョブを実行するフロントエンドFE3bの処理ソフトSF2aは、ジョブの実行により作成されたデータをディスク装置に書き込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第2の実行情報を参照して、ライト用パケット(以下、ライト用パケットPW3bと適宜記す)を作成する。
第2の実行情報には、前記した第2の経路情報が含まれる。この第2の経路情報は、第2のジョブのリソースであるフロントエンドFE3bからディスク装置DSaに至る第2のアクセス経路が、フロントエンドFE3b、フロントエンドFE3a、バックエンドBE1aから構成されることを示す。つまり、フロントエンドFE3bは、フロントエンドFE3a、バックエンドBE1aを経由してディスク装置DSaにアクセスできる。ここで、フロントエンドは、このフロントエンドが属するグループと異なるグループに属するバックエンドと通信する場合、この異なるグループに属するフロントエンドを介して、このバックエンドと通信する。前記例の場合、グループGbに属するフロントエンドFE3bは、グループGaに属するフロントエンドFE3aを介して、グループGaに属するバックエンドBE1aと通信する。
フロントエンドFE3bのファイルアクセスソフトSF2bは、以下のライト用パケットPW3bを作成する。ライト用パケットPW3bは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3bのIPアドレスを含む。ライト用パケットPW3bは、アクセス要求の属性として"書き込み"と、書き込むファイルのファイルパスと、書き込み用データと、ファイル名とを含む。
フロントエンドFE3bの送受信部22は、ライト用パケットPW3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3bの送受信部22は、ライト用パケットPW3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドFE3aに送信する。
フロントエンドFE3aの送受信部22は、ライト用パケットPW3bを受信すると、ライト用パケットPW3bの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、以下の送信を行う。すなわち、送受信部22は、ライト用パケットPW3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、ライト用パケットPW3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、ライト用パケットPW3bを受信すると、ライト用パケットPW3bの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、ライト用パケットPW3bを出力する。ファイルアクセス部31は、ライト用パケットPW3bのアクセス要求の属性が"書き込み"の場合、ライト用パケットPW3bに含まれる書き込み用データをディスク装置DSaに書き込む。この書き込みにおいて、ファイルアクセス部31は、ライト用パケットPW3bに含まれるファイルパスおよびファイル名で指定されたファイルに書き込み用データを書き込む。
なお、ファイルアクセス部31は、ファイルの書き込みが成功または失敗したことを示す結果パケットを作成し、送受信部32に出力する。結果パケットは、前記したように、ライト用パケットPW3bとは逆の経路をたどり、フロントエンドFE3a、FE3bと転送される。なお、フロントエンドFE3bにおいて、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
(読み込み要求:フロントエンドFE2a)
次に、フロントエンドFE2a、FE3a、FE3bの処理ソフトSF2aが行うファイルの読み込み要求について説明する。なお、フロントエンドFE1zの処理ソフトSF2aが行うファイルの読み込み要求については、後で説明する組換部13によるリソースの組換について直接関係しないので、その説明を省略する。
第1のジョブを実行するフロントエンドFE2aの処理ソフトSF2aは、データをディスク装置から読み込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第1の実行情報を参照して、リード用パケット(以下、リード用パケットPR2aと適宜記す)を作成する。第1の実行情報には、前記した第1の経路情報が含まれる。
フロントエンドFE2aのファイルアクセスソフトSF2bは、以下のリード用パケットPR2aを作成する。リード用パケットPR2aは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE2aのIPアドレスを含む。リード用パケットPR2aは、アクセス要求の属性として"読み込み"と、読み込むファイルのファイルパスと読み込むファイルの名前とを含む。
フロントエンドFE2aの送受信部22は、リード用パケットPR2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE2aの送受信部22は、リード用パケットPR2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドFE3aに送信する。
フロントエンドFE3aの送受信部22は、リード用パケットPR2aを受信すると、リード用パケットPR2aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、以下の送信を行う。すなわち、送受信部22は、リード用パケットPR2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、リード用パケットPR2aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、リード用パケットPR2aを受信すると、リード用パケットPR2aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、リード用パケットPR2aを出力する。ファイルアクセス部31は、リード用パケットPR2aのアクセス要求の属性が"読み込み"の場合、リード用パケットPR2aに含まれるファイルパスおよびファイル名で指定されたファイルをディスク装置DSaから読み込む。
ファイルアクセス部31は、読み込んだファイルのデータと、ファイルの読み込みが成功または失敗したことを示す結果情報とを含む結果パケットを作成し、送受信部32に出力する。送受信部32は、フロントエンドFE2aのIPアドレスを送信先IPアドレスとして含む結果パケットをフロントエンドFE3aに送信する。フロントエンドFE3aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスでない場合、以下の送信を行う。すなわち、送受信部22は、結果パケットを、前記した第1のアクセス経路において、ディスク装置DSaとは逆側に位置する次のフロントエンドFE2aに送信する。次のフロントエンドFE2aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスの場合、ユーザソフトSF2aに出力する。ユーザソフトSF2aは、結果パケットがファイルの読み込みが成功したことを示す場合、結果パケットに含まれる読み込まれたファイルのデータに基づき、処理を実行する。一方、ユーザソフトSF2aは、結果パケットがファイルの読み込みが失敗したことを示す場合、例えば、再度の読み込み要求を行う。
(読み込み要求:フロントエンドFE3a)
また、第1のジョブを実行するフロントエンドFE3aの処理ソフトSF2aは、データをディスク装置から読み込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第1の実行情報を参照して、リード用パケット(以下、リード用パケットPR3aと適宜記す)を作成する。
第1の実行情報には、前記した第1の経路情報が含まれる。フロントエンドFE3aのファイルアクセスソフトSF2bは、以下のリード用パケットPR3aを作成する。リード用パケットPR3aは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3aのIPアドレスを含む。リード用パケットPR3aは、アクセス要求の属性として"読み込み"と、読み込むファイルのファイルパスと読み込むファイルの名前とを含む。
フロントエンドFE3aの送受信部22は、リード用パケットPR3aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、リード用パケットPR3aを、前記した第1のアクセス経路において、ディスク装置DSa側に位置するバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、リード用パケットPR3aを受信すると、リード用パケットPR3aの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、リード用パケットPR3aを出力する。ファイルアクセス部31は、リード用パケットPR3aのアクセス要求の属性が"読み込み"の場合、リード用パケットPR3aに含まれるファイルパスおよびファイル名で指定されたファイルをディスク装置DSaから読み込む。
ファイルアクセス部31は、読み込んだファイルのデータと、ファイルの読み込みが成功または失敗したことを示す結果情報とを含む結果パケットを作成し、送受信部32に出力する。送受信部32は、フロントエンドFE3aのIPアドレスを送信先IPアドレスとして含む結果パケットをフロントエンドFE3aに送信する。フロントエンドFE3aの送受信部22は、この結果パケットを受信すると、この結果パケットの送信先IPアドレスが自装置のIPアドレスの場合、ユーザソフトSF2aに出力する。なお、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
(読み込み要求:フロントエンドFE3b)
また、第2のジョブを実行するフロントエンドFE3bの処理ソフトSF2aは、データをディスク装置から読み込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第2の実行情報を参照して、リード用パケット(以下、リード用パケットPR3bと適宜記す)を作成する。
第2の実行情報には、前記した第2の経路情報が含まれる。フロントエンドFE3bのファイルアクセスソフトSF2bは、以下のリード用パケットPR3bを作成する。リード用パケットPR3bは、転送先のIPアドレスとして、バックエンドBE1aのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3bのIPアドレスを含む。リード用パケットPR3bは、アクセス要求の属性として"読み込み"と、読み込むファイルのファイルパスと読み込むファイルの名前とを含む。
フロントエンドFE3bの送受信部22は、リード用パケットPR3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3bの送受信部22は、リード用パケットPR3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドFE3aに送信する。
フロントエンドFE3aの送受信部22は、リード用パケットPR3bを受信すると、リード用パケットPR3bの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、以下の送信を行う。すなわち、送受信部22は、リード用パケットPR3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3aの送受信部22は、リード用パケットPR3bを、前記した第2のアクセス経路において、ディスク装置DSa側に位置する次のバックエンドBE1aに送信する。
バックエンドBE1aの送受信部32は、リード用パケットPR3bを受信すると、リード用パケットPR3bの転送先IPアドレスがバックエンドBE1aのIPアドレスの場合、ファイルアクセス部31に、リード用パケットPR3bを出力する。ファイルアクセス部31は、リード用パケットPR3bのアクセス要求の属性が"読み込み"の場合、リード用パケットPR3bに含まれるファイルパスおよびファイル名で指定されたファイルをディスク装置DSaから読み込む。
ファイルアクセス部31は、読み込んだファイルのデータと、ファイルの読み込みが成功または失敗したことを示す結果情報とを含む結果パケットを作成し、送受信部32に出力する。結果パケットは、前記したように、リード用パケットPR3bとは逆の経路をたどり、フロントエンドFE3a、FE3bと転送される。なお、フロントエンドFE3bにおいて、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
[性能情報の収集]
さて、ジョブの実行により、ファイルへのアクセスが実行されると、ディスク装置やバックエンドの処理負荷が上昇する。さらに、各フロントエンドにおけるライト用パケットやライト用パケットの送受信処理の処理負荷が増し、ネットワークにおける通信量が増す。そのため、通信速度が低下して、ファイルへのアクセス効率が低下する。その結果、ジョブの実行速度が低下する。すなわち、ファイルシステムFSYSのスループットが低下する。そこで、ジョブマネージャーMGRは、フロントエンドFE、バックエンドBEにおける性能情報を収集し、この性能情報に基づき、アクセス経路の最適化を実行する。
ジョブマネージャーMGRは、組み換え(図9のS2)の処理が終了し、ジョブの実行が行われている間、性能情報の収集を実行する(S3)。ジョブマネージャーMGRの性能情報の収集(S3)を説明する前に、フロントエンドFE、バックエンドBEの性能情報の収集について説明する。
(フロントエンドFEの性能情報の収集)
まず、図10、図11を参照して、フロントエンドFEの性能情報の収集について説明する。
図10は、フロントエンドFEが実行する性能情報の収集を説明するフロー図である。フロントエンドFEは、起動後、定期的に自装置の性能情報を収集する。なお、フロントエンドFEは、ジョブの実行後に、定期的に自装置の性能情報を収集してもよい。
ステップS101:フロントエンドFEの収集ソフトSF2c(図6参照)は、自装置が停止処理中か判定する。このS101の停止処理は、フロントエンドFEのシャットダウン処理である。
自装置が停止処理中の場合(S101/YES)、性能情報の収集処理を終了する。自装置が停止処理中でない場合(S101/NO)、S102に移る。
ステップS102:フロントエンドFEの収集ソフトSF2cは、自装置の性能情報を収集する。以下に、フロントエンドFEの性能情報の収集について具体的に説明する。
図6の送受信部22は、通信装置205を介して送受信した、第2の所定時間の総データ量を計測し、RAM203に記憶する。第2の所定時間は、例えば10分である。そして、収集ソフトSF2cは、第3の所定時間当たりのデータの送受信量(以下、転送効率と適宜記す)を計算し、RAM203に記憶する。第3の所定時間は、例えば、1秒である。
なお、図6の送受信部22は、通信装置205を介して送信した、第2の所定時間の総データ量を計測し、RAM203に記憶してもよい。そして、収集ソフトSF2cは、第3の所定時間当たりのデータの送信量を計算し、RAM203に記憶してもよい。
収集ソフトSF2cは、計測されたデータ量と計算された転送効率とをフロントエンドFEの性能情報として、ストレージ202の性能情報記憶領域IF2に記憶する。以下、データ量を、メビバイト(MiB:MebiByte)で示す。なお、第2、第3の所定の時間は、適宜設定可能である。
ここで、フロントエンドFEが、ジョブの実行をしていない場合、送受信部22は、テスト用のデータを例えばジョブマネージャーMGRに試験的に送信し、転送効率を計算する。このとき、送受信部22は、計測したデータ量を"0"としてRAM203に記憶する。ここで、計測したデータ量を"0"としてRAM203に記憶された場合、転送効率は最大(例えば、200(MiB/S))と見なす。
ステップS103: フロントエンドFEの収集ソフトSF2cは、第1の所定の時間(例えば、10分)を経過したか判定する。所定の時間が経過しない場合(S103/NO)、ステップS103の判定処理を継続する。所定の時間が経過した場合(S103/YES)、S102に移る。
図11は、フロントエンドFEの性能情報を記憶するテーブルを示す図である。フロントエンドFEの性能情報テーブルT1は、ストレージ202の性能情報記憶領域IF2に記憶される。
フロントエンドFEの性能情報テーブルT1は、フロントエンド識別子欄と、種別識別子欄と、性能情報欄とを有する。フロントエンド識別子欄は、フロントエンドFEの識別子を記憶する。フロントエンドFEの識別子は、ストレージ202に記憶されている。フロントエンドFEの識別子は、例えば、フロントエンドFEに割り振られたIPアドレスや、フロントエンドFEの製造番号や、フロントエンドFEの通信装置205に割り振られたMACアドレスである。MACアドレスの"MAC"は、"Media Access Control address"の略語である。なお、以下の説明では、フロントエンドFEの識別子を、フロントエンドFEの符号"FE"とする。
種別識別子欄は、性能情報を送信した装置がフロントエンドかバックエンドかを識別する種別識別子を記憶する。性能情報を送信した装置がフロントエンドの場合、"NET"が記憶される。なお、"NET"は、"Network"の略語である。
性能情報欄は、フロントエンドFEの収集ソフトSF2cが計算した転送効率を記憶する欄である。なお、性能情報欄は、送受信部22が計測した第2の所定時間の総データ量を記憶してもよい。
例えば、図2のフロントエンドFE2aの収集ソフトSF2cは、フロントエンドFE2aの識別子"FE2a"をストレージ202から読み込み、性能情報テーブルT1のフロントエンド識別子欄に記憶する。収集ソフトSF2cは、種別識別子"NET"を性能情報テーブルT1の種別識別子欄に記憶する。フロントエンドFE2aの収集ソフトSF2cは、計算した転送効率(例えば、100(MiB/S)を、性能情報テーブルT1の性能情報欄に記憶する。
収集ソフトSF2cは、性能情報の収集が終了したタイミング、または、ジョブマネージャーMGRの収集部14(図4参照)からの送信要求を受け付けると、性能情報パケットを作成する。性能情報パケットは、性能情報テーブルT1の各欄に記憶されたデータを含む。図11の例では、性能情報パケットは、フロントエンド識別子"FE2a"と、種別識別子"NET"と、性能情報"100(MiB/S)"とを含む。送受信部22は、作成した性能情報パケットをジョブマネージャーMGRに送信する。
(バックエンドBEの性能情報の収集)
次に、図12、図13を参照して、バックエンドBEの性能情報の収集について説明する。
図12は、バックエンドBEが実行する性能情報の収集を説明するフロー図である。バックエンドBEは、起動後、定期的に自装置の性能情報を収集する。なお、バックエンドBEは、ジョブの実行後に、定期的に自装置の性能情報を収集してもよい。
ステップS111:バックエンドBEの収集ソフトSF3b(図8参照)は、自装置が停止処理中か判定する。このS111の停止処理は、バックエンドBEのシャットダウン処理である。
自装置が停止処理中の場合(S111/YES)、性能情報の収集処理を終了する。自装置が停止処理中でない場合(S111/NO)、S112に移る。
ステップS112:バックエンドBEの収集ソフトSF3bは、自装置の性能情報を収集する。以下に、バックエンドBEの性能情報の収集について具体的に説明する。
図8の送受信部32は、通信装置305を介して送受信した、第2の所定時間の総データ量を計測し、RAM303に記憶する。そして、収集ソフトSF3bは、第3の所定時間当たりのデータの送受信量(転送効率)を計算し、RAM303に記憶する。第3の所定時間は、例えば、1秒である。
なお、図8の送受信部32は、通信装置305を介して送信した、第2の所定時間の総データ量を計測し、RAM303に記憶してもよい。そして、収集ソフトSF3bは、第3の所定時間当たりのデータの送信量を計算し、RAM303に記憶してもよい。
収集ソフトSF3bは、計測されたデータ量と計算された転送効率とをバックエンドBEの性能情報として、ストレージ302の性能情報記憶領域IF3に記憶する。以下、データ量を、メビバイト(MiB)で示す。
ここで、バックエンドBEが、ジョブの実行をしていない場合、送受信部32は、テスト用のデータを例えば接続しているディスク装置に試験的に送信し、転送効率を計算する。このとき、送受信部32は、計測したデータ量を"0"としてRAM303に記憶する。ここで、計測したデータ量を"0"としてRAM303に記憶された場合、転送効率は最大(例えば、200(MiB/S))と見なす。
ステップS113: バックエンドBEの収集ソフトSF3bは、第1の所定の時間(例えば、10分)を経過したか判定する。所定の時間が経過しない場合(S113/NO)、ステップS113の判定処理を継続する。所定の時間が経過した場合(S113/YES)、S112に移る。
図13は、バックエンドBEの性能情報を記憶するテーブルを示す図である。バックエンドBEの性能情報テーブルT2は、ストレージ302の性能情報記憶領域IF3に記憶される。
バックエンドBEの性能情報テーブルT2は、バックエンド識別子欄と、種別識別子欄と、性能情報欄とを有する。バックエンド識別子欄は、バックエンドBEの識別子を記憶する。バックエンドBEの識別子は、ストレージ302に記憶されている。バックエンドBEの識別子は、例えば、バックエンドBEに割り振られたIPアドレスや、バックエンドBEの製造番号や、バックエンドBEの通信装置305に割り振られたMACアドレスである。なお、以下の説明では、バックエンドBEの識別子を、バックエンドBEの符号"BE"とする。
種別識別子欄は、性能情報を送信した装置がフロントエンドかバックエンドかを識別する種別識別子を記憶する。性能情報を送信した装置がバックエンドの場合、"FS"が記憶される。なお、"FS"は、FileSystemの略語である。
性能情報欄は、バックエンドBEの収集ソフトSF3bが計算した転送効率を記憶する欄である。なお、性能情報欄は、送受信部32が計測した第2の所定時間の総データ量を記憶してもよい。
例えば、図2のバックエンドBE1aの収集ソフトSF3bは、バックエンドBE1aの識別子"BE1a"をストレージ302から読み込み、性能情報テーブルT2のバックエンド識別子欄に記憶する。バックエンドBE1aの収集ソフトSF3bは、種別識別子"FS"を性能情報テーブルT2の種別識別子欄に記憶する。バックエンドBE1aの収集ソフトSF3bは、計算した転送効率(例えば、20(MiB/S)を、性能情報テーブルT2の性能情報欄に記憶する。
収集ソフトSF3bは、性能情報の収集が終了したタイミング、または、ジョブマネージャーMGRの収集部14(図4参照)からの送信要求を受け付けると、性能情報パケットを作成する。性能情報パケットは、性能情報テーブルT2の各欄に記憶されたデータを含む。図13の例では、性能情報パケットは、バックエンド識別子"BE1a"と、種別識別子"FS"と、性能情報"20(MiB/S)"とを含む。送受信部32は、作成した性能情報パケットをジョブマネージャーMGRに送信する。
(ジョブマネージャーMGRの性能情報の収集)
ジョブマネージャーMGRの収集部14は、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3z、バックエンドBE1a、BE1b、BE1zの性能情報を第1の所定時間毎(例えば、10分)に収集する(図9のS3)。図14、図15を参照して、ジョブマネージャーMGRの性能情報の収集について説明する。
図14は、ジョブマネージャーMGRが実行する性能情報の収集を説明するフロー図である。
ステップS31:ジョブマネージャーMGRの収集部14は、バックエンドBEの性能情報を収集する。例えば、収集部14は、図2のバックエンドBE1a、BE1b、BE1zに性能情報の送信要求を行う。図2のバックエンドBE1a、BE1b、BE1zの送受信部32は、送信要求を受信すると、図12、図13で説明したように、作成した性能情報パケットをジョブマネージャーMGRに送信する。ジョブマネージャーMGRの収集部14は、性能情報パケットを受信すると、ストレージ102の性能情報記憶領域IF1に記憶する。
ステップS32: ジョブマネージャーMGRの収集部14は、フロントエンドFEの性能情報を収集する。例えば、収集部14は、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zに性能情報の送信要求を行う。図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zの送受信部22は、送信要求を受信すると、図10、図11で説明したように、作成した性能情報パケットをジョブマネージャーMGRに送信する。ジョブマネージャーMGRの収集部14は、性能情報パケットを受信すると、ストレージ102の性能情報記憶領域IF1に記憶する。
ステップS33: ジョブマネージャーMGRの収集部14は、全てのフロントエンド、バックエンドから性能情報を収集したか判定する。前記の例では、収集部14は、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zの性能情報、および、バックエンドBE1a、BE1b、BE1zの性能情報を収集したか判定する。全てのフロントエンド、バックエンドから性能情報を収集した場合(S33/YES)、図9のS4に移る。全てのフロントエンド、バックエンドから性能情報を収集していない場合(S33/NO)、収集していない性能情報を収集するため、S31に戻る。
図15は、ジョブマネージャーMGRが収集した性能情報を記憶するテーブルを示す図である。図15に示す、ジョブマネージャーMGRの性能情報テーブルT3は、ストレージ102の性能情報記憶領域IF1に記憶される。
ジョブマネージャーMGRの性能情報テーブルT3は、グループ識別子欄と、フロント/バックエンド識別子欄と、種別識別子欄と、性能情報欄とを有する。
フロント/バックエンド識別子欄は、収集部14が受信した1つの性能情報パケットに含まれるフロントエンド識別子またはバックエンド識別子を記憶する。以下、前記した1つの性能情報パケットを性能情報パケットPpと適宜記す。
種別識別子欄は、性能情報パケットPpに含まれる種別識別子を記憶する。性能情報欄は、性能情報パケットPpに含まれる性能情報を記憶する。グループ識別子欄は、グループ識別子を記憶する。グループ識別子は、フロントエンドまたはバックエンドが属するグループの識別子である。このフロントエンドは、性能情報パケットPpに含まれるフロントエンド識別子により識別されるフロントエンドである。また、このバックエンドは、性能情報パケットPpに含まれるバックエンド識別子により識別されるバックエンドが属するグループの識別子である。
ジョブマネージャーMGRの収集部14は、例えば、図11で説明した、フロントエンド識別子"FE2a"と、種別識別子"NET"と、性能情報"100(MiB/S)"とを含む性能情報パケット(以下、性能情報パケットPp1と適宜記す)を受信する。
収集部14は、行LN1とフロント/バックエンド識別子欄とが交わるセルに、性能情報パケットPp1のフロントエンド識別子"FE2a"を記憶する。収集部14は、行LN1と種別識別子欄とが交わるセルに、性能情報パケットPp1の種別識別子"NET"を記憶する。収集部14は、行LN1と性能情報欄とが交わるセルに、性能情報パケットPp1の性能情報"100(MiB/S)"を記憶する。そして、収集部14は、フロントエンド識別子"FE2a"により識別されるフロントエンドFE2aが属するグループの識別子"Ga"を記憶する。なお、フロントエンドFE2aが属するグループは、図2の例では、グループGaである。このグループGaの符号"Ga"をグループ識別子とする。
また、ジョブマネージャーMGRの収集部14は、例えば、図13で説明した、バックエンド識別子"BE1a"と、種別識別子"FS"と、性能情報"20(MiB/S)"とを含む性能情報パケット(以下、性能情報パケットPp2と適宜記す)を受信する。
収集部14は、行LN2とフロント/バックエンド識別子欄とが交わるセルに、性能情報パケットPp2のバックエンド識別子"BE1a"を記憶する。収集部14は、行LN2と種別識別子欄とが交わるセルに、性能情報パケットPp2の種別識別子"FS"を記憶する。収集部14は、行LN2と性能情報欄とが交わるセルに、性能情報パケットPp2の性能情報"20(MiB/S)"を記憶する。なお、バックエンドBE1aが属するグループは、図2の例では、グループGaである。このグループGaの符号"Ga"をグループ識別子とする。
図14、図15で説明したように、収集部14は、図2のフロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、FE1z、FE2z、FE3zの性能情報、および、バックエンドBE1a、BE1b、BE1zの性能情報を収集する(図9のS3)。そして、収集部14は、収集した性能情報を、ジョブマネージャーMGRの性能情報テーブルT3に記憶する(S3)。
[アクセス経路の最適化]
組換部13は、収集された性能情報に基づき、アクセス経路の最適化を実行する(S4)。図16、図17は、アクセス経路の最適化を説明するための第1、第2の図である。図16、図17は、図2から、フロントエンドFE1a、FE2a、FE3a、FE1b、FE2b、FE3b、バックエンドBE1a、BE1b、ディスク装置DSa、DSbを抜き出して示した図である。
前記したリソースの仮割当で説明したように、第1のジョブのリソースは、フロントエンドFE2a、FE3aと、バックエンドBE1aと、ディスク装置DSaとである。
第1のジョブを実行するフロントエンドFE2aは、フロントエンドFE3a、バックエンドBE1aを経由してディスク装置DSaにアクセスする。このフロントエンドFE2aによるディスク装置DSaへのアクセスを、フロントエンドFE2aとフロントエンドFE3aとバックエンドBE1aとディスク装置DSaとの間の一点鎖線の矢印AR1で模式的に示す。
また、第1のジョブを実行するフロントエンドFE3aは、バックエンドBE1aを経由してディスク装置DSaにアクセスする。このフロントエンドFE3aによるディスク装置DSaへのアクセスを、フロントエンドFE3aとバックエンドBE1aとディスク装置DSaとの間の一点鎖線の矢印AR1で模式的に示す。
前記したリソースの仮割当で説明したように、第2のジョブのリソースは、フロントエンドFE3bと、バックエンドBE1aと、ディスク装置DSaとである。
そして、第2のジョブを実行するフロントエンドFE3bは、フロントエンドFE3a、バックエンドBE1aを経由してディスク装置DSaにアクセスする。このフロントエンドFE3bによるディスク装置DSaへのアクセスを、フロントエンドFE3bとフロントエンドFE3aとバックエンドBE1aとディスク装置DSaとの間の点線の矢印AR2で模式的に示す。
以上説明したように、割当部12は、第2のジョブを実行するフロントエンドFE3bと第1のディスク装置DSaとを中継するフロントエンドFE3a、バックエンドBE1aを含む第1の経路(矢印AR2参照)を決定している。
ここで、フロントエンドFE2a、FE3aによるディスク装置DSaへのアクセスの経路と、フロントエンドFE3bによるディスク装置DSaへのアクセスの経路とが重複している。この重複する経路は、2つの経路である。第1の重複経路は、フロントエンドFE3aとバックエンドBE1aとの間の経路DU1である。そして、第2の重複経路は、バックエンドBE1aとディスク装置DSaとの間の経路DU2である。
重複する経路DU1において、前記したライト用パケットPW2a、PW3a、PW3bや、リード用パケットPR2a、PR3a、PR3bや、結果パケットが転送されている。この転送により、ネットワークが輻輳(混雑とも呼ぶ)する。その結果、フロントエンドFE3b、フロントエンドFE3aの転送効率が低下する。また、バックエンドBE1aによるディスク装置DSaに対するアクセス処理(ファイルの書き込む、ファイルの読み込み)が増大する結果、重複する経路DU2において、ネットワークが輻輳する。その結果、バックエンドBE1aの転送効率が低下する。以上説明したように、ネットワークが輻輳したり、また、フロントエンド、バックエンド、ディスク装置における処理負荷が増大することにより、ディスク装置DSaへのアクセスの効率が低下する。
そこで、組換部13は、図15の性能情報テーブルT3に基づき、アクセス効率の低下を抑制し、さらには、アクセス効率の向上を図るため、アクセス経路の最適化を実行する(S4)。
図15の性能情報テーブルT3によれば、バックエンドBE1bの性能情報は100(MiB/S)であり、バックエンドBE1aの性能情報は20(MiB/S)である。このように、バックエンドBE1bの転送効率は、バックエンドBE1aの転送効率に比べて高い。そこで、組換部13は、フロントエンドFE3bがアクセスするディスク装置をディスク装置DSaからディスク装置DSbに切り替える。この切り替えにより、フロントエンドFE3bによるディスク装置に対するアクセス効率が向上する。
すなわち、組換部13は、第2のジョブのリソースの一部であるバックエンドBE1aとディスク装置DSaとを、バックエンドBE1bとディスク装置DSbとに組み換える(図17の符号J2a参照)。
組換部13は、この組換えにおいて、第2のジョブを実行するフロントエンドFE3bと第2のディスク装置DSbとを中継する第2の情報処理装置(例えば、バックエンドBE1b)を含む第2の経路(図17の点線矢印AR2a参照)を特定する。具体的には、組換部13は、収集されたファイルシステムFSYS内のフロントエンド、バックエンドの各々のデータ転送効率に基づき、アクセスの効率が高まる第2の経路として、第1の経路におけるデータ転送効率よりも高いデータ転送効率を有する経路を特定する。なお、第1の経路は、図16の矢印AR1参照。第2の経路は、図17の点線矢印AR2a参照。
組換部13は、この経路の特定において、第1の経路を構成する第1の情報処理装置のデータ転送効率よりも高いデータ転送効率を有する第2の情報処理装置(例えば、バックエンドBE1b)を特定する。そして、組換部13は、特定した第2の情報処理装置に基づき、第2の経路を特定する。なお、組換部13は、第2の情報処理装置の特定おいて、第2のジョブを実行するフロントエンドFE3bと第2のディスク装置DSbとの間における情報処理装置の数が最小(すなわち、ポップ数が最小)になるように、第2の情報処理装置を特定する。
ここで、組換部13は、新たに、第2'の実行情報を作成する。第2'の実行情報には、フロントエンドFE3bと、組み換えたバックエンドBE1bのIPアドレスと、組み換えたディスク装置DSbのIPアドレスと、フロントエンドFE3bからバックエンドBE1bまでの経路を示す第2'の経路情報とを含む。この第2'の経路情報は、第2のジョブのリソースであるフロントエンドFE3bからディスク装置DSbに至る第2'のアクセス経路が、フロントエンドFE3b、バックエンドBE1bから構成されることを示す。つまり、フロントエンドFE3bは、バックエンドBE1bを経由してディスク装置DSbにアクセスする。このフロントエンドFE3bによるディスク装置DSbへのアクセスを、フロントエンドFE3bとバックエンドBE1bとディスク装置DSbとの間の点線矢印AR2a(図17)で模式的に示している。
組換部13は、フロントエンドFE3b、バックエンドBE1bに第2'の実行情報を送信する。
フロントエンドFE3bのファイルアクセスソフトSF2bは、第2'の実行情報を受信し、RAM203に記憶する。また、バックエンドBE1bのファイルアクセスソフトSF3aは、第2'の実行情報を受信し、RAM303に記憶する。以後、フロントエンドFE3bは、この実行情報に基づき、ディスク装置DSbにアクセスする。次に、このアクセスの具体例を説明する。
(書き込み要求:フロントエンドFE3b)
第2のジョブを実行するフロントエンドFE3bの処理ソフトSF2aは、ジョブの実行により作成されたデータをディスク装置に書き込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第2'の実行情報を参照して、ライト用パケット(以下、ライト用パケットPW3b’と適宜記す)を作成する。
フロントエンドFE3bのファイルアクセスソフトSF2bは、以下のライト用パケットPW3b’を作成する。ライト用パケットPW3b’は、転送先のIPアドレスとして、バックエンドBE1bのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3bのIPアドレスを含む。ライト用パケットPW3b’は、アクセス要求の属性として"書き込み"と、書き込むファイルのファイルパスと、書き込み用データと、ファイル名とを含む。
フロントエンドFE3bの送受信部22は、ライト用パケットPW3b’を、前記した第2'のアクセス経路において、ディスク装置DSb側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3bの送受信部22は、ライト用パケットPW3b’を、前記した第2'のアクセス経路において、ディスク装置DSb側に位置する次のバックエンドBE1bに送信する。
バックエンドBE1bの送受信部32は、ライト用パケットPW3b’を受信すると、ライト用パケットPW3b’の転送先IPアドレスがバックエンドBE1bのIPアドレスの場合、ファイルアクセス部31に、ライト用パケットPW3b’を出力する。ファイルアクセス部31は、ライト用パケットPW3b’のアクセス要求の属性が"書き込み"の場合、ライト用パケットPW3b’に含まれる書き込み用データをディスク装置DSbに書き込む。この書き込みにおいて、ファイルアクセス部31は、ライト用パケットPW3b’に含まれるファイルパスおよびファイル名で指定されたファイルに書き込み用データを書き込む。
なお、ファイルアクセス部31は、ファイルの書き込みが成功または失敗したことを示す結果パケットを作成し、送受信部32に出力する。結果パケットは、前記したように、ライト用パケットPW3b’とは逆の経路をたどり、フロントエンドFE3bに転送される。なお、フロントエンドFE3bにおいて、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
(読み込み要求:フロントエンドFE3b)
第2のジョブを実行するフロントエンドFE3bの処理ソフトSF2aは、データをディスク装置から読み込む要求をファイルアクセスソフトSF2bに行う。ファイルアクセスソフトSF2bのインターフェイス部21は、この要求を受け付ける。ファイルアクセスソフトSF2bは、前記した第2'の実行情報を参照して、リード用パケット(以下、リード用パケットPR3b'と適宜記す)を作成する。
第2'の実行情報には、前記した第2'の経路情報が含まれる。フロントエンドFE3bのファイルアクセスソフトSF2bは、以下のリード用パケットPR3b’を作成する。リード用パケットPR3b’は、転送先のIPアドレスとして、バックエンドBE1bのIPアドレスを含み、転送元のIPアドレスとして、フロントエンドFE3bのIPアドレスを含む。リード用パケットPR3b’は、アクセス要求の属性として"読み込み"と、読み込むファイルのファイルパスと読み込むファイルの名前とを含む。
フロントエンドFE3bの送受信部22は、リード用パケットPR3b’を、前記した第2'のアクセス経路において、ディスク装置DSb側に位置する次のフロントエンドまたはバックエンドに送信する。図2の例では、フロントエンドFE3bの送受信部22は、リード用パケットPR3b’を、前記した第2'のアクセス経路において、ディスク装置DSb側に位置する次のバックエンドBE1bに送信する。
バックエンドBE1bの送受信部32は、リード用パケットPR3b’を受信すると、リード用パケットPR3b’の転送先IPアドレスがバックエンドBE1bのIPアドレスの場合、ファイルアクセス部31に、リード用パケットPR3b’を出力する。ファイルアクセス部31は、リード用パケットPR3b’のアクセス要求の属性が"読み込み"の場合、リード用パケットPR3b’に含まれるファイルパスおよびファイル名で指定されたファイルをディスク装置DSbから読み込む。
なお、ファイルアクセス部31は、読み込んだファイルのデータと、ファイルの読み込みが成功または失敗したことを示す結果情報とを含む結果パケットを作成し、送受信部32に出力する。結果パケットは、前記したように、リード用パケットPR3b’とは逆の経路をたどり、フロントエンドFE3bに転送される。なお、フロントエンドFE3bにおいて、結果パケットが入力された後のユーザソフトSF2aの処理は、前記したので省略する。
ジョブマネージャーMGRの組換部13は、前記した切り替え前や後に、切り替え前のディスク装置DSaに記憶されていた第2のジョブに関連するファイルを、切り替え後のディスク装置DSbに記憶してもよい。そして、組換部13は、このディスク装置DSbに記憶したファイルのファイルパスを、フロントエンドFE3bに通知する。以後、フロントエンドFE3bは、この通知されたファイルパスに基づき、このファイルにアクセスする。
なお、ジョブに割り当てるリソースを組み換えても、アクセス効率が向上しない場合には、組換部13は、リソースの組換え処理を実行せず、アクセス経路の最適化処理を終了する。
[組換え後の性能情報収集]
ジョブマネージャーMGRは、アクセス経路の最適化(図9のS4)の終了後、第1の所定の時間が経過し(S5/YES)、処理を終了しない場合(S6/NO)、フロントエンドFE、バックエンドBEから性能情報を収集する。そして、ジョブマネージャーMGRは、収集した性能情報を、図3のストレージ102の性能情報記憶領域IF1に記憶する(S3)。
図18は、アクセス経路を最適化してリソースを組み換えた後に収集された性能情報を記憶するテーブルを示す図である。図16に示す、ジョブマネージャーMGRの性能情報テーブルT4は、ストレージ102の性能情報記憶領域IF1に記憶される。
図18の行LN3によれば、第1のジョブのリソースであるフロントエンドFE3aの性能情報は"80(MiB/S)"であり、図18の行LN2によれば、第1のジョブのリソースであるバックエンドBE1aの性能情報は"80(MiB/S)"である。リソースを組み換える前での、フロントエンドFE3a、バックエンドBE1aの性能情報は、図15によれば、"20(MiB/S)"である。
このように、リソースの組換えにより、フロントエンドFE3a、バックエンドBE1aの転送効率が、20(MiB/S)から80(MiB/S)に向上している。すなわち、リソースの組換えにより、フロントエンドFE3a、バックエンドBE1aの転送効率が4(80/20)倍に向上している。
このように転送効率が向上するのは、リソースの組換えにより、フロントエンドFE3bとフロントエンドFE3aとの間におけるデータ転送が止まるので、図16の経路DU1、DU2における、データ転送量が削減されためである。この削減により、図16の経路DU1、DU2におけるネットワークの輻輳が緩和される。
図18の行LN4によれば、第2のジョブのリソースであるフロントエンドFE3bの性能情報は"100(MiB/S)"であり、図18の行LN5によれば、第2のジョブのリソースであるバックエンドBE1bの性能情報は"100(MiB/S)"である。リソースを組み換えた前における、フロントエンドFE3bの性能情報は、図15によれば、"20(MiB/S)"である。
このように、リソースの組換えにより、フロントエンドFE3bの転送効率が、20(MiB/S)から100(MiB/S)に向上している。すなわち、リソースの組換えにより、フロントエンドFE3bの転送効率が5(100/20)倍に向上している。
このように転送効率が向上するのは、以下の理由である。すなわち、フロントエンドFE3bとバックエンドBE1bとの間のネットワークN2、バックエンドBE1bとディスク装置DSbとの間のネットワークN3において、リソースの組換え前では、ファイルアクセスによるデータ転送が実行されていない。そのため、前記したネットワークの帯域が圧迫されていないためである。この転送効率の向上により、ディスク装置DSbのファイルアクセス速度が、ディスク装置DSaのファイルアクセス速度よりも低くても、ディスク装置DSbのアクセス可能なデータ量は、ディスク装置DSaのアクセス可能なデータ量よりも多くなる。ここで、ディスク装置のアクセス可能なデータ量は、ディスク装置が単位時間当たりにアクセスできるデータ量である。
以上説明したように、本実施の形態のファイルシステムによれば、アクセス経路を最適化することで、以下の状態を達成することができる。すなわち、第2のジョブが実行される際のファイルアクセス効率が向上(改善とも呼ぶ)するだけでなく、第1のジョブが実行される際のファイルアクセス効率が向上する状態である(パレート改善)。その結果、本実施の形態のファイルシステムによれば、ファイルシステムFSYS全体のスループットが向上するように最適化を行うことができる。そして、本実施の形態のファイルシステムによれば、ジョブが実行される際のアクセス効率の向上が見込めなくなるまで、アクセス経路の最適化を繰り返し行う(パレート最適化)。
また、アクセス経路を効率化すれば、優先度が高いジョブに最適なリソースを割り当てることができるので、優先度が高いジョブが完了するまでの時間をより短縮できる。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
通信ネットワークに接続された、複数の情報処理装置と複数の記憶装置と管理装置とを有するファイルシステムにおいて、
前記情報処理装置は、
当該情報処理装置による前記通信ネットワークの利用状態を示す状態情報を前記管理装置に送信する送信部を有し、
前記管理装置は、
投入されたジョブを実行する情報処理装置と、前記ジョブの実行によりアクセスされるデータを記憶する第1の記憶装置とを決定し、さらに、決定された前記情報処理装置が、前記第1の記憶装置へアクセスする際の前記通信ネットワークにおける第1の経路を決定する決定部と、
前記状態情報を収集する収集部と、
前記収集部により収集された状態状態に基づき、決定された前記情報処理装置によるアクセスの効率が高まる第2の記憶装置と、決定された前記情報処理装置による前記第2の記憶装置へのアクセスの効率が高まる、前記通信ネットワークにおける第2の経路とを特定し、前記第1の記憶装置と前記第1の経路とを、前記第2の記憶装置と前記第2の経路とに変更する変更部とを有することを特徴とするファイルシステム。
(付記2)
前記決定部は、決定された前記情報処理装置と前記第1の記憶装置とを中継する第1の情報処理装置を含む前記第1の経路を決定し、
前記変更部は、前記収集部により収集された状態状態に基づき、決定された前記情報処理装置と前記第2の記憶装置とを中継する第2の情報処理装置を含む前記第2の経路を特定することを特徴とする付記1に記載のファイルシステム。
(付記3)
前記状態情報は、前記情報処理装置が前記通信ネットワークにデータを転送する際のデータ転送効率であって、
前記変更部は、前記収集部により収集された各情報処理装置のデータ転送効率に基づき、前記第1の経路におけるデータ転送効率よりも高いデータ転送効率を有する前記第2の経路を特定することを特徴とする付記2に記載のファイルシステム。
(付記4)
前記変更部は、前記収集部により収集された各情報処理装置のデータ転送効率に基づき、前記第1の情報処理装置のデータ転送効率よりも高いデータ転送効率を有する前記第2の情報処理装置を特定し、特定した前記第2の情報処理装置に基づき、前記第2の経路を特定することを特徴とする付記3に記載のファイルシステム。
(付記5)
前記情報処理装置は、さらに、前記通信ネットワークを介して他の情報処理装置と接続している場合に、当該他の情報処理装置にデータを転送する際のデータ転送効率を収集する収集部を有し、
前記送信部は、当該収集部により収集されたデータ転送効率を前記管理装置に送信することを特徴とする付記4に記載のファイルシステム。
(付記6)
前記情報処理装置は、さらに、前記通信ネットワークを介して記憶装置と接続している場合に、当該記憶装置にデータを転送する際のデータ転送効率を収集する収集部を有し、
前記送信部は、当該収集部により収集されたデータ転送効率を前記管理装置に送信することを特徴とする付記4に記載のファイルシステム。
(付記7)
通信ネットワークに接続された、複数の情報処理装置と複数の記憶装置を管理する管理装置の制御プログラムにおいて、
前記管理装置に、
ジョブを実行する情報処理装置と、前記ジョブの実行によりアクセスされるデータを記憶する第1の記憶装置とを決定し、さらに、決定された前記情報処理装置が、前記第1の記憶装置へアクセスする際の前記通信ネットワークにおける第1の経路を決定し、
前記複数の情報処理装置から、当該情報処理装置による前記通信ネットワークの利用状態を示す状態情報を収集し、
前記収集部により収集された状態状態に基づき、決定された前記情報処理装置によるアクセスの効率が高まる第2の記憶装置と、決定された前記情報処理装置による前記第2の記憶装置へのアクセスの効率が高まる、前記通信ネットワークにおける第2の経路とを特定し、前記第1の記憶装置と前記第1の経路とを、前記第2の記憶装置と前記第2の経路とに変更させることを特徴とする管理装置の制御プログラム。
(付記8)
通信ネットワークに接続された、複数の情報処理装置と複数の記憶装置と管理装置とを有するファイルシステムの制御方法において、
前記情報処理装置は、
当該情報処理装置による前記通信ネットワークの利用状態を示す状態情報を前記管理装置に送信し、
前記管理装置は、
投入されたジョブを実行する情報処理装置と、前記ジョブの実行によりアクセスされるデータを記憶する第1の記憶装置とを決定し、さらに、決定された前記情報処理装置が、前記第1の記憶装置へアクセスする際の前記通信ネットワークにおける第1の経路を決定し、
前記状態情報を収集し、
収集された前記状態状態に基づき、決定された前記情報処理装置によるアクセスの効率が高まる第2の記憶装置と、決定された前記情報処理装置による前記第2の記憶装置へのアクセスの効率が高まる、前記通信ネットワークにおける第2の経路とを特定し、前記第1の記憶装置と前記第1の経路とを、前記第2の記憶装置と前記第2の経路とに変更することを特徴とするファイルシステムの制御方法。