IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-102641計算機システム及びスケールアップ管理方法
<>
  • 特開-計算機システム及びスケールアップ管理方法 図1
  • 特開-計算機システム及びスケールアップ管理方法 図2
  • 特開-計算機システム及びスケールアップ管理方法 図3
  • 特開-計算機システム及びスケールアップ管理方法 図4
  • 特開-計算機システム及びスケールアップ管理方法 図5
  • 特開-計算機システム及びスケールアップ管理方法 図6
  • 特開-計算機システム及びスケールアップ管理方法 図7
  • 特開-計算機システム及びスケールアップ管理方法 図8
  • 特開-計算機システム及びスケールアップ管理方法 図9
  • 特開-計算機システム及びスケールアップ管理方法 図10
  • 特開-計算機システム及びスケールアップ管理方法 図11
  • 特開-計算機システム及びスケールアップ管理方法 図12
  • 特開-計算機システム及びスケールアップ管理方法 図13
  • 特開-計算機システム及びスケールアップ管理方法 図14
  • 特開-計算機システム及びスケールアップ管理方法 図15
  • 特開-計算機システム及びスケールアップ管理方法 図16
  • 特開-計算機システム及びスケールアップ管理方法 図17
  • 特開-計算機システム及びスケールアップ管理方法 図18
  • 特開-計算機システム及びスケールアップ管理方法 図19
  • 特開-計算機システム及びスケールアップ管理方法 図20
  • 特開-計算機システム及びスケールアップ管理方法 図21
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023102641
(43)【公開日】2023-07-25
(54)【発明の名称】計算機システム及びスケールアップ管理方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20230718BHJP
   G06F 16/28 20190101ALI20230718BHJP
【FI】
G06F9/50 120Z
G06F16/28
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022003260
(22)【出願日】2022-01-12
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】山内 脩吾
(72)【発明者】
【氏名】早坂 光雄
(72)【発明者】
【氏名】深谷 崇元
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
5B175AA02
5B175KA04
(57)【要約】
【課題】アプリケーションを実行するサーバを容易且つ迅速にスケールアップすることができるようにする。
【解決手段】一のアプリケーションを実行するアプリコンテナ50を有する1以上のコンピュートサーバ20と、コンピュートサーバ20を管理する管理サーバ130とを有する計算機システム1において、管理サーバ130を、一のアプリケーションを実行するアプリコンテナ50を有するコンピュートサーバ20の台数を増加させる場合に、既存のコンピュートサーバ20のアプリコンテナ50がアプリケーションを実行する際に利用しているファイルが格納されているLU90を特定し、新たなコンピュートサーバ20のアプリコンテナ50がアプリケーションを実行する場合に、特定されたLU90を参照するように新たなコンピュートサーバ20に設定するように構成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
一のアプリケーションを実行する実行部を有する1以上のコンピュートサーバと、前記コンピュートサーバを管理する管理サーバとを有する計算機システムであって、
前記管理サーバは、
前記一のアプリケーションを実行する実行部を有するコンピュートサーバの台数を増加させる場合に、既存のコンピュートサーバの前記実行部がアプリケーションを実行する際に利用しているデータ単位が格納されている論理ユニットを特定し、
新たな前記コンピュートサーバの前記実行部が前記アプリケーションを実行する場合に、特定された前記論理ユニットを参照するように前記新たなコンピュートサーバに設定する
計算機システム。
【請求項2】
前記計算機システムにおいては、前記実行部が利用する前記データ単位を格納する論理ユニットが所定のアルゴリズムに従って決定されており、
前記管理サーバは、
前記所定のアルゴリズムに従って、前記実行部が利用する前記データ単位を格納している論理ユニットを特定する
請求項1に記載の計算機システム。
【請求項3】
前記所定のアルゴリズムは、格納する論理ユニットを、前記データ単位の名称を含む情報に関するハッシュ値に基づいて決定するアルゴリズムである
請求項2に記載の計算機システム。
【請求項4】
前記管理サーバは、
前記一のアプリケーションを実行する実行部を有するコンピュートサーバの台数の増加が必要であるか否かを判定し、
前記コンピュートサーバの台数の増加が必要であると判定した場合に、前記実行部を有していないサーバに、前記実行部を作成する制御を行う
請求項1に記載の計算機システム。
【請求項5】
前記実行部は、前記コンピュートサーバのOS上に構成されるコンテナである
請求項1に記載の計算機システム。
【請求項6】
前記管理サーバは、
1つのブロックデバイスに対して複数の論理ユニットを割り当てて、前記論理ユニットのデータ容量が所定量以下となるように前記論理ユニットを生成する
請求項1に記載の計算機システム。
【請求項7】
前記管理サーバは、
前記一のアプリケーションを実行する実行部を有するコンピュートサーバのリソースの負荷情報又は性能情報の少なくとも一方を出力する
請求項1に記載の計算機システム。
【請求項8】
前記管理サーバは、
前記一のアプリケーションを実行する実行部を有するコンピュートサーバの台数を増加させる前の前記実行部を有する全てのコンピュートサーバの性能と、台数を増加させた後の前記実行部を有する全てのコンピュートサーバの性能とを示す情報を出力する
請求項1に記載の計算機システム。
【請求項9】
一のアプリケーションを実行する実行部を有する1以上のコンピュートサーバと、前記コンピュートサーバを管理する管理サーバと、を有する計算機システムによるスケールアップ管理方法であって、
前記管理サーバは、
前記一のアプリケーションを実行する実行部を有するコンピュートサーバの台数を増加させる場合に、既存のコンピュートサーバの前記実行部がアプリケーションを実行する際に利用しているデータ単位が格納されている論理ユニットを特定し、
新たな前記コンピュートサーバの前記実行部が前記アプリケーションを実行する場合に、特定された前記論理ユニットを参照するように前記新たなコンピュートサーバに設定する
スケールアップ管理方法。




【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同一のアプリケーションを実行するコンピュートサーバをスケールアップする技術に関する。
【背景技術】
【0002】
脱炭素社会の実現に向け、システムの省電力化が求められている。そのため、不必要なサーバを休止し、負荷が増えたらサーバを再稼働させるなどの要望がある。また、パブリッククラウドでは必要以上にVM(Virtual Machine)を稼働させるとコストが増大してしまう。そのため、負荷に応じてコンピュートサーバ/ストレージサーバをそれぞれ必要十分、かつ少ないサーバ台数で動作させたいという要望がある。
【0003】
例えば、アプリケーション(アプリと略する場合もある)の実行環境をまとめて個別のサーバのように使うことができるようにしたコンテナを、コンテナオーケストレータにより運用管理をして、コンテナでアプリを動作させている場合における性能/リソース不足を契機に、アプリケーションコンテナ(アプリコンテナ)が使用するサーバ数の増減を実施するオートスケール技術が知られている(特許文献1参照)。この技術によると、アプリの稼働サーバを減らし、休止させることで、省電力化が可能となる。
【0004】
また、オートスケーリングの際、増減したノードのリソースを有効に利用するため、複数ノード間で分散してファイルを保存する分散ファイルシステムが、ファイルデータの配置を再計算して、ファイルデータをサーバ間で移動するリバランスを実施する技術が知られている(特許文献2参照)。オートスケーリングとリバランスとを組み合わせることで、負荷変動に応じたコンピュートサーバ/ストレージサーバのオートスケールを実現することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第10979436号明細書
【特許文献1】米国特許出願公開第20160349993号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
例えば、負荷変動に応じてオートスケールを行う際、データ移動/複製が多発することによりシステムの性能低下が発生する。また、コンテナ上で動作するアプリに必要なファイルは、オートスケールしたコンテナ毎にファイルに保持する必要があり、特に、ファイルのサイズが大きい場合には、そのファイルのデータを複製するための負荷が大きい問題が生じる。
【0007】
本発明は、上記事情に鑑みなされたものであり、その目的は、アプリケーションを実行するサーバを容易且つ迅速にスケールアップすることのできる技術を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、一観点に係る計算機システムは、一のアプリケーションを実行する実行部を有する1以上のコンピュートサーバと、前記コンピュートサーバを管理する管理サーバとを有する計算機システムであって、前記管理サーバは、前記一のアプリケーションを実行する実行部を有するコンピュートサーバの台数を増加させる場合に、既存のコンピュートサーバの前記実行部がアプリケーションを実行する際に利用しているデータ単位が格納されている論理ユニットを特定し、新たな前記コンピュートサーバの前記実行部が前記アプリケーションを実行する場合に、特定された前記論理ユニットを参照するように前記新たなコンピュートサーバに設定する。
【発明の効果】
【0009】
本発明によれば、アプリケーションを実行するサーバを容易且つ迅速にスケールアップすることができる。
【図面の簡単な説明】
【0010】
図1図1は、第1実施形態の概要を説明する図である。
図2図2は、第1実施形態に係る計算機システムの構成図である。
図3図3は、第1実施形態に係るコンピュートサーバの構成図である。
図4図4は、第1実施形態に係るストレージサーバの構成図である。
図5図5は、第1実施形態に係る管理サーバの構成図である。
図6図6は、第1実施形態に係るクライアントサーバの構成図である。
図7図7は、第1実施形態に係るアプリコンテナファイルパス対応テーブルの構成図である。
図8図8は、第1実施形態に係る分散ボリューム管理テーブルの構成図である。
図9図9は、第1実施形態に係るサーバ管理テーブルの構成図である。
図10図10は、第1実施形態に係るアプリコンテナ配置テーブルの構成図である。
図11図11は、第1実施形態に係るスケールアウト処理のフローチャートである。
図12図12は、第1実施形態に係る参照LU特定処理のフローチャートである。
図13図13は、第1実施形態に係るファイル高速複製処理のフローチャートである。
図14図14は、第1実施形態に係る分散ボリューム作成処理のフローチャートである。
図15図15は、第1実施形態に係る分散処理アプリ管理画面の構成図である。
図16図16は、第2実施形態の概要を説明する図である。
図17図17は、第2実施形態に係るコンピュートサーバの構成図である。
図18図18は、第2実施形態に係るストレージサーバの構成図である。
図19図19は、第2実施形態に係る参照LU特定処理のフローチャートである。
図20図20は、第2実施形態に係るファイル高速複製処理のフローチャートである。
図21図21は、第2実施形態に係る分散ボリューム作成処理のフローチャートである。
【発明を実施するための形態】
【0011】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0012】
以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
【0013】
また、以下の説明では、「ネットワークI/F」は、1以上の通信インターフェースデバイスを含んでよい。1以上の通信インターフェースデバイスは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0014】
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
【0015】
また、以下の説明では、記憶装置は、物理的な不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)、SCM(Storage Class Memory)であってもよい。
【0016】
また、以下の説明では、メモリは、揮発性メモリであってもよいし、不揮発性メモリであってもよい。
【0017】
また、以下の説明では、「プログラム」を動作主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えば、CPU)によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも1つを用いながら行うため、処理の動作主体が、プロセッサ(或いは、プロセッサを有する計算機)とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記録メディアであってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0018】
また、以下の説明では、要素の識別情報として、IDが使用されるが、それに代えて又は加えて他種の識別情報が使用されてもよい。
【0019】
また、以下の説明では、分散ボリュームは、1以上の物理的な計算機(ノード)で構成されてもよく、さらにストレージアレイを含んでもよい。少なくとも1つの物理的な計算機が、仮想的な計算機(例えばVM(Virtual Machine))を構成してもよいし、SDx(Software-Defined anything)を構成してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)またはSDDC(Software-defined Datacenter)であってもよい。
【0020】
まず、第1実施形態の概要について説明する。
【0021】
図1は、第1実施形態の概要を説明する図である。図1は、計算機システム1において、アプリコンテナ50のオートスケール方法の概要を説明する図である。
【0022】
計算機システム1においては、クライアントサーバ10と、複数(図では、4つ)のコンピュートサーバ20(コンピュートサーバA~D)と、共有ブロックストレージ30と、管理サーバ130とを有する。
【0023】
共有ブロックストレージ30は、例えば、複数のストレージサーバ120(図2参照)により構成される。
【0024】
管理サーバ130は、コンテナオーケストレータ管理部131を有する。コンテナオーケストレータ管理部131は、各コンピュートサーバ20のコンテナオーケストレータ60を管理する。
【0025】
クライアントサーバ10は、アプリクライアント40を有する。アプリクライアント40は、後述する複数のアプリコンテナ50に対して処理対象のデータを割り振って、各アプリコンテナ50により、分散処理を実行させる。
【0026】
コンピュートサーバ20は、コンテナオーケストレータ60と、分散ファイルシステム(分散FS)80と、データLU対応管理部100とを有する。ここで、オートスケールを実行する前においては、3台のコンピュートサーバ20(コンピュートサーバA~C)が、同一のアプリケーション(アプリともいう)を実行するアプリコンテナ(実行部の一例)50を有し、コンピュートサーバ20(コンピュートサーバD)は、同一のアプリケーションを実行するアプリコンテナ50を有していない。
【0027】
アプリコンテナ50は、アプリケーションを実行して、アプリクライアント40から割り振られたデータに対して処理を実行するコンテナである。ここで、コンテナとは、計算機(サーバ)のOS(Operating System)上においてアプリケーションの実行環境をまとめて個別のサーバのように使うことができるようにしたものである。コンテナオーケストレータ60は、アプリコンテナ50等のコンテナを管理する。分散ファイルシステム80は、ネットワーク110を介して接続されている共有ブロックストレージ30の記憶装置の記憶領域に作成された複数のLU(Logical Unit:論理ユニット)90を用いて、複数のコンピュートサーバ20上に跨る分散ボリューム70を作成する。分散ファイルシステム80は、共有ブロックストレージ30の記憶装置の記憶領域に複数のLUを作成することができる。各コンピュートサーバ20は、分散ボリューム70上のデータ格納領域にアプリコンテナ50が利用するファイル(データ単位の一例)を格納する。データLU対応管理部100は、アプリコンテナ50が使用するファイルが格納されるLU90を管理する。
【0028】
計算機システム1において、コンテナオーケストレータ60は、コンピュートサーバ20のリソースを監視し、コンテナオーケストレータ管理部131は、例えば、コンピュートサーバ20のCPUリソースが逼迫していることを検出した場合には、アプリコンテナ50のオートスケールを実施する。具体的には、コンテナオーケストレータ管理部131は、コンピュートサーバ20(図1では、コンピュートサーバD)に新たにアプリコンテナ50を追加する。これにより、各アプリコンテナ50の負荷が分散されることとなる。
【0029】
このオートスケールを行う際に、計算機システム1においては、追加したアプリコンテナ50が使用するファイルについて、コンテナオーケストレータ管理部131は、既にアプリコンテナ50が使用するために格納されているLU90を特定する。次いで、追加したアプリコンテナ50を有するコンピュートサーバ20を、共有ブロックストレージ30上の特定したLU90に、例えば、リードオンリーで接続させる。これにより、追加したアプリコンテナ50は、そのLU90のデータをデータコピーすることなく使用することができるようになり、高速にファイルレプリケーション(ファイル複製)を実現することができる。
【0030】
次に、第1実施形態に係る計算機システム1について詳細に説明する。
【0031】
図2は、第1実施形態に係る計算機システムの構成図である。
【0032】
計算機システム1は、クライアントサーバ10と、1以上のコンピュートサーバ20と、共有ブロックストレージ30と、管理サーバ130とを備える。共有ブロックストレージ30は、1以上のストレージサーバ120を備える。
【0033】
クライアントサーバ10と、コンピュートサーバ20と、ストレージサーバ120と、管理サーバ130とは、ネットワーク110を介して接続されている。ネットワーク110は、例えば、LAN(Local Area Network)やWAN(Wide Area Network)等であってよい。
【0034】
クライアントサーバ10は、所定の処理の実行を行うユーザが使用するサーバであり、複数のコンピュートサーバ20に対して処理を分散して実行させる。コンピュートサーバ20は、処理を実行するためのアプリケーションを実行するサーバである。ストレージサーバ120は、ブロックストレージとしての役割を持つサーバである。管理サーバ130は、コンピュートサーバ20及びストレージサーバ120を管理するサーバである。
【0035】
次に、コンピュートサーバ20について説明する。
【0036】
図3は、第1実施形態に係るコンピュートサーバの構成図である。
【0037】
コンピュートサーバ20は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース(Network I/F)170と、記憶装置140と、BMC(Baseboard Management Controller)190とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とは、内部バス180を介して接続されている。
【0038】
ネットワークインターフェース170は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、ネットワーク110を介して他の装置(例えば、クライアントサーバ10、他のコンピュートサーバ20、ストレージサーバ120、管理サーバ130)と通信する。
【0039】
CPU160は、メモリ150及び/又は記憶装置140に格納されているプログラムに従って各種処理を実行する。
【0040】
記憶装置140は、各種データを記憶する不揮発性記憶媒体であり、HDD、SSD、SCMであってもよい。
【0041】
BMC190は、収容する装置(ここでは、コンピュートサーバ20)に対する外部からの電源制御を可能にするデバイスである。BMC190は、CPU160及びメモリ150と独立して動作し、CPU160やメモリ150に障害が発生した場合でも、外部からの電源制御要求を受け付けて装置の電源制御(電源のオン及びオフ)を行うことができる。
【0042】
メモリ150は、例えば、RAM(Random Access Memory)であり、CPU160で実行されるプログラムや、必要な情報を記憶する。メモリ150は、分散FS制御プログラムP10と、分散FSクライアントプログラムP20と、コンテナオーケストレータプログラムP30と、連携プログラムP40と、アプリコンテナプログラムP50と、アプリコンテナ使用ファイルF10と、ファイルLU対応管理プログラムP60と、アプリコンテナファイルパス対応テーブルT40と、ストレージ接続プログラムP70と、ファイルシステム情報T50と、を記憶する。なお、図示していないが、メモリ150には、OS等のサーバとして機能するために必要なプログラムも記憶する。
【0043】
分散FS制御プログラムP10は、他のコンピュートサーバ20と協調し、分散ボリューム70を構成し、制御するプログラムである。分散FS制御プログラムP10は、コンピュートサーバ20が分散ボリューム70に格納するファイルをストレージサーバ120のLU90に格納する処理を行う。分散FS制御プログラムP10をCPU160が実行することにより、分散ファイルシステム80が構成される。
【0044】
分散FSクライアントプログラムP20は、コンピュートサーバ20内の他のプログラムによる分散ボリューム70へのアクセスの処理を行う。
【0045】
コンテナオーケストレータプログラムP30は、コンピュートサーバ20でのコンテナ(アプリコンテナ50等)の起動や運用管理を行う。本実施形態では、コンテナオーケストレータプログラムP30は、コンピュートサーバ20内で動く全てのプログラムをコンテナとして管理する。コンテナオーケストレータプログラムP30をCPU160が実行することにより、コンテナオーケストレータ60が構成される。
【0046】
連携プログラムP40は、コンテナオーケストレータプログラムP30によって管理されるコンピュートサーバ20内のプログラムが分散ボリューム70にアクセスすることを可能とするプログラムである。連携プログラムP40は、コンテナオーケストレータプログラムP30によって管理されているプログラムのコンテナから記憶領域を利用する要求を受け取ると、分散ボリューム70から記憶領域を提供する処理を実行する。
【0047】
アプリコンテナプログラムP50は、クライアントサーバ10で実行されているアプリクライアント40から与えられたデータを利用して処理を実施するプログラムである。アプリコンテナプログラムP50は、実行に必要なファイルに基づいて、与えられたデータに対して処理を実行し、アプリクライアント40に結果を返す。アプリコンテナプログラムP50をCPU160が実行することにより、アプリコンテナ50が構成される。
【0048】
アプリコンテナ使用ファイルF10は、アプリコンテナ50の実行に必要なファイルである。アプリコンテナ使用ファイルF10は、例えば、分散ボリューム70から読み出される。
【0049】
ファイルLU対応管理プログラムP60は、ファイルが配置されているLUを特定するプログラムである。ファイルLU対応管理プログラムP60は、アプリコンテナ50の増設時に、アプリコンテナファイルパス対応テーブルT40を参照してアプリコンテナ50のデータ格納領域のファイルパスを特定し、特定したファイルパスから必要なファイルを特定し、ファイルが配置されるLUを決定する分散FS制御プログラムP10のファイル配置アルゴリズムに基づいて、ファイルが配置されているLUを特定する。ファイル配置アルゴリズムは、例えば、データが格納されるファイルの識別子(ファイルの名称)と、ファイルにおけるデータのオフセットとに基づいてハッシュ値を算出し、ハッシュ値に基づいてデータ格納するLUを決定するアルゴリズムでもよい。なお、ファイルLU対応管理プログラムP60は、アルゴリズムに基づいてLUを特定するようにしているが、これに限られず、例えば、ファイルとLUとの対応関係を格納するテーブルを管理し、このテーブルに基づいてLUを特定するようにしてもよい。ファイルLU対応管理プログラムP60をCPU160が実行することにより、データLU対応管理部100が構成される。
【0050】
ストレージ接続プログラムP70は、コンピュートサーバ20を共有ブロックストレージ30のLUに接続する処理を行う。
【0051】
アプリコンテナファイルパス対応テーブルT40は、アプリコンテナで使用するファイルパスを管理する。
【0052】
ファイルシステム情報T50は、分散FSにおけるディレクトリと、ファイルとの構成情報を格納する。
【0053】
次に、ストレージサーバ120について説明する。
【0054】
図4は、第1実施形態に係るストレージサーバの構成図である。
【0055】
ストレージサーバ120は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース170と、1以上のストレージインターフェース(Storage I/F)200と、複数の記憶装置140(ブロックデバイスの一例)と、BMC190とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、ストレージインターフェース200とは、内部バス180を介して接続されている。
【0056】
ストレージインターフェース200は、CPU160と記憶装置140とを接続する。CPU160は、ストレージインターフェース200を介して記憶装置140に対するデータの読み書きを行うことができる。CPU160とストレージインターフェース200との間の通信には、FC(Fibre channel)、SATA(Serial Attached Technology Attachment)、SAS(Serial Attached SCSI)、IDE(Integrated Device Electronics)などを用いることができる。
【0057】
ストレージサーバ120のメモリ150は、IO制御プログラムP80と、ブロックストレージプログラムP90とを記憶する。なお、図示していないが、メモリ150は、OS等のサーバとして機能するために必要なプログラムも記憶する。
【0058】
IO制御プログラムP80は、ネットワーク110経由で受信したLU90に対するIO要求に従って、記憶装置140に対するデータの読み書きを行う。ブロックストレージプログラムP90は、他のストレージサーバ120と協調し、共有ブロックストレージ30を構成して制御する。
【0059】
ストレージサーバ120の記憶装置140は、ストレージサーバ120で使用する各種プログラムに加え、コンピュートサーバ20により格納されたユーザデータや制御情報を格納する。
【0060】
次に、管理サーバ130について説明する。
【0061】
図5は、第1実施形態に係る管理サーバの構成図である。
【0062】
管理サーバ130は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とは、内部バス180を介して接続されている。管理サーバ130には、ディスプレイ210と、入力装置220とが接続されている。
【0063】
管理サーバ130のメモリ150は、管理プログラムP100と、コンテナオーケストレータ管理プログラムP110と、分散ボリューム管理テーブルT10と、サーバ管理テーブルT20と、アプリコンテナ配置テーブルT30とを記憶する。なお、図示していないが、メモリ150は、OS(Operating System)等のサーバとして機能するために必要なプログラムも記憶する。
【0064】
管理プログラムP100は、管理者により入力された管理要求に従って、コンピュートサーバ20、ストレージサーバ120に対して構成変更要求を発行する。管理要求は、例えば、サーバの増設、減設などの要求を含む。ストレージサーバ120への構成変更要求は、例えば、LU作成・削除・拡張・縮小、LUパスの追加・削除・変更を含む。
【0065】
コンテナオーケストレータ管理プログラムP110は、コンピュートサーバ20のコンテナオーケストレータ60やストレージサーバ120に対し、アプリコンテナの作成、拡張、削除、起動、停止などの管理要求を発行する。コンテナオーケストレータ管理プログラムP110をCPU160が実行することにより、コンテナオーケストレータ管理部131が構成される。
【0066】
ディスプレイ210は、管理者がコンピュートサーバ20及びストレージサーバ120を管理するための管理画面や、アプリケーションを管理する分散処理アプリ管理画面I100(図15参照)等の各種情報を表示出力する。入力装置220は、例えば、キーボード、マウス、タッチパネル等であり、管理者の操作入力を受け付ける。
【0067】
次に、クライアントサーバ10について説明する。
【0068】
図6は、第1実施形態に係るクライアントサーバの構成図である。
【0069】
クライアントサーバ10は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とは、内部バス180を介して接続されている。
【0070】
クライアントサーバ10のメモリ150は、アプリデータ配布プログラムP120と、コンテナオーケストレータプログラムP130とを記憶する。なお、図示していないがメモリ150には、OS等のサーバとして機能するために必要なプログラムも記憶する。
【0071】
アプリデータ配布プログラムP120は、コンピュートサーバ20のアプリコンテナプログラムP50にネットワーク110を経由して処理に必要なデータを送信し、処理の結果を受信する。この際、アプリデータ配布プログラムP120は、コンテナオーケストレータプログラムP130により管理サーバ130のアプリコンテナ配置テーブルT30の情報を取得し、アプリコンテナ配置テーブルT30の情報を参照して、処理を実行するアプリケーションを実行可能なアプリコンテナ50を有する1以上のコンピュートサーバ20を特定し、特定したコンピュートサーバ20にデータを分散して配布する。
【0072】
コンテナオーケストレータプログラムP130は、アプリデータ配布プログラムP120の指示に従って、管理サーバ130のアプリコンテナ配置テーブルT30の情報を取得する。
【0073】
次に、アプリコンテナファイルパス対応テーブルT40について説明する。
【0074】
図7は、第1実施形態に係るアプリコンテナファイルパス対応テーブルの構成図である。
【0075】
アプリコンテナファイルパス対応テーブルT40は、アプリコンテナで使用するファイルパスを管理する。アプリコンテナファイルパス対応テーブルT40は、アプリケーションごとのエントリを格納しており、同一のアプリケーションを分散して実行する複数のアプリコンテナに対しては、同一のエントリが対応する。アプリコンテナファイルパス対応テーブルT40のエントリは、アプリ名C201と、ファイルパスC202とのフィールドを含む。アプリ名C201には、エントリに対応するアプリケーションの名称(アプリ名)が格納される。ファイルパスC202には、エントリに対応するアプリケーションにおける分散ファイルシステムにおけるファイルパスが格納される。
【0076】
本実施形態では、アプリコンテナファイルパス対応テーブルT40のアプリ名C201、ファイルパスC202には、連携プログラムP40がアプリコンテナとそれに対応する分散ボリューム上のデータ格納領域を作成した際に、連携プログラムP40により値が格納される。
【0077】
次に、分散ボリューム管理テーブルT10について説明する。
【0078】
図8は、第1実施形態に係る分散ボリューム管理テーブルの構成図である。
【0079】
分散ボリューム管理テーブルT10は、分散ボリュームの情報を管理する。分散ボリューム管理テーブルT10は、分散ボリュームに対応するエントリを格納する。分散ボリューム管理テーブルT10のエントリは、分散VolID C101と、サーバID C102と、マウントポイントC103とのフィールドを含む。
【0080】
分散VolID C101には、エントリに対応する分散ボリュームの識別情報(分散ボリュームID)が格納される。サーバID C102には、エントリに対応する分散ボリュームの記憶領域を構成するストレージサーバ120のID(サーバID)が格納される。マウントポイントC103には、エントリに対応する分散ボリュームがマウントされているポイント(マウントポイント)が格納される。
【0081】
分散ボリューム管理テーブルT10の分散VolID C101、サーバID C102、マウントポイントC103には、分散ボリューム作成時にコンテナオーケストレータプログラムP30が分散FS制御プログラムP10に指示して値が格納される。
【0082】
次に、サーバ管理テーブルT20について説明する。
【0083】
図9は、第1実施形態に係るサーバ管理テーブルの構成図である。
【0084】
サーバ管理テーブルT20は、サーバ(コンピュートサーバ20、ストレージサーバ120)の情報を管理する。サーバ管理テーブルT20は、サーバごとのエントリを格納する。サーバ管理テーブルT20のエントリは、サーバID C301と、役割C302と、IPアドレスC303と、BMCアドレスC304と、MTTF C305と、起動時間C306とのフィールドを含む。サーバID C301には、エントリに対応するサーバのIDが格納される。役割C302には、エントリに対応するサーバの役割、コンピュートサーバか、又はストレージサーバかを示す情報が格納される。IPアドレスC303には、エントリに対応するサーバのIPアドレスが格納される。BMCアドレスC304には、エントリに対応するサーバのBMC190のIPアドレス(BMCアドレス)が格納される。MTTF C305には、エントリに対応するサーバのMTTF(Mean Time To Failure:平均故障時間)が格納される。起動時間C306には、エントリに対応するサーバの起動時間が格納される。
【0085】
サーバ管理テーブルT20のエントリ及びその値は、サーバを増減した際に、管理プログラムP100によって格納される。
【0086】
次に、アプリコンテナ配置テーブルT30について説明する。
【0087】
図10は、第1実施形態に係るアプリコンテナ配置テーブルの構成図である。
【0088】
アプリコンテナ配置テーブルT30は、アプリコンテナ50のコンピュートサーバ20への配置の情報を管理する。アプリコンテナ配置テーブルT30は、アプリコンテナ50を構成するアプリケーションに対応するエントリ含む。アプリコンテナ配置テーブルT30のエントリは、アプリ名C401と、コンピュートサーバID C402とのフィールドを含む。
【0089】
アプリ名C401には、エントリに対応するアプリケーションの名称(アプリ名)が格納される。コンピュートサーバID C402には、エントリに対応するアプリケーションを実行するアプリコンテナ50を有するコンピュートサーバ20のサーバIDが格納される。
【0090】
アプリコンテナ配置テーブルT30のエントリや値は、アプリコンテナ50がコンピュートサーバ20に追加された際に、コンテナオーケストレータ管理プログラムP110によって格納される。アプリコンテナ50のオートスケール時においては、コンテナオーケストレータ管理プログラムP110は、アプリコンテナ配置テーブルT30とサーバ管理テーブルT20とを参照して、対象となるアプリケーションを実行するアプリコンテナ50を起動していないコンピュートサーバ20を特定し、このコンピュートサーバ20においてアプリコンテナ50を起動する。
【0091】
次に、計算機システム1における処理動作について説明する。
【0092】
まず、アプリコンテナ50をスケールアウトするスケールアウト処理について説明する。
【0093】
図11は、第1実施形態に係るスケールアウト処理のフローチャートである。
【0094】
管理サーバ130のコンテナオーケストレータ管理プログラムP110(厳密には、コンテナオーケストレータ管理プログラムP110を実行する管理サーバ130のCPU160)は、各コンピュートサーバ20のコンテナオーケストレータプログラムP30からCPUの使用率(負荷情報)/性能情報を受け取り、コンピュートサーバ20におけるアプリコンテナの性能及びリソース不足を検知する(ステップS110)。なお、コンピュートサーバ20のコンテナオーケストレータプログラムP30は、自身が稼働するコンピュートサーバ20のCPUの使用率/性能情報を適宜取得している。
【0095】
ここで、コンピュートサーバ20におけるアプリコンテナの性能及びリソース不足を検知した場合には、ステップS120以降の処理が実行され、検知していない場合には、スケールアウト処理は終了される。
【0096】
ステップS120では、管理サーバ130のコンテナオーケストレータ管理プログラムP110は、サーバ管理テーブルT20とアプリコンテナ配置テーブルT30を参照し、計算機システム1内のコンピュートサーバ20から、スケールアウトする対象のアプリコンテナ(対象アプリコンテナ)と同じアプリケーションを実行するアプリコンテナが起動していないコンピュートサーバ20を、スケールアウトのためにアプリコンテナを作成するコンピュートサーバに決定する。
【0097】
次いで、コンテナオーケストレータ管理プログラムP110は、参照LU特定処理(図12参照)を実行することにより、対象アプリコンテナが利用しているファイルを格納するLUを特定する(ステップS130)。
【0098】
次いで、コンテナオーケストレータ管理プログラムP110は、ファイル高速複製処理(図13参照)を実行することにより、生成する新たなアプリコンテナがファイルを利用できるように複製する(ステップS140)。
【0099】
次いで、コンテナオーケストレータ管理プログラムP110は、ステップS120で決定したコンピュートサーバ20のコンテナオーケストレータプログラムP30に対象アプリコンテナと同じアプリケーションを実行するアプリコンテナを新規に起動させる指示を送信する(ステップS150)。この結果、コンテナオーケストレータプログラムP30は、新規にアプリコンテナを起動させる。これにより、起動されたアプリコンテナは、特定したLUにリードオンリーでアクセスして処理を行うことができるようになる。この後、アプリクライアント40は、スケールアウトのために作成したアプリコンテナを含む同一のアプリケーションを実行する全てのアプリコンテナを利用して処理を実行することとなる。
【0100】
なお、図11に示すスケールアウト処理では、アプリコンテナのCPU等のリソースの性能不足を検知したことに基づいて、アプリコンテナをスケールアウトする例を示しているが、これは例示に過ぎず、例えば、管理者やユーザの指示によりアプリコンテナをスケールアウトしてもよい。
【0101】
また、上記した例では、オートスケールで作成した新規のアプリコンテナがリードオンリーでLUにアクセスすることを想定しているが、これは例示に過ぎず、例えば新規のアプリコンテナがリードオンリーのLUに対する更新データを別領域に格納するようにし、別領域の更新データとLUのデータとをマージすることで、実質的に更新可能なLUとして使用してもよい。
【0102】
また、コンテナオーケストレータ管理プログラムP110は、アプリコンテナを新規に起動した場合には、新規に起動させたアプリコンテナと、起動させた時刻(オートスケールの時刻)とを対応付けた情報をメモリ150に格納して管理するようにしてもよい。
【0103】
次に、ステップS130の参照LU特定処理について説明する。
【0104】
図12は、第1実施形態に係る参照LU特定処理のフローチャートである。
【0105】
管理サーバ130のコンテナオーケストレータ管理プログラムP110は、アプリコンテナ配置テーブルT30を参照し、オートスケールする対象アプリコンテナが動作するコンピュートサーバ20を特定する(ステップS210)。
【0106】
次いで、コンテナオーケストレータ管理プログラムP110は、特定した各コンピュートサーバ20のコンテナオーケストレータプログラムP30にアプリコンテナのオートスケールを通知する(ステップS220)。次いで、各コンピュートサーバ20のコンテナオーケストレータプログラムP30は、ファイルLU対応管理プログラムP60にアプリコンテナのオートスケールを通知する(ステップS230)。
【0107】
ファイルLU対応管理プログラムP60は、アプリコンテナファイルパス対応テーブルT40を参照し、対象アプリコンテナが使用しているファイルパスを特定する(ステップS240)。
【0108】
次いで、ファイルLU対応管理プログラムP60は、分散ファイルシステム80のデータ配置アルゴリズムに基づいて、アプリコンテナが使用するファイルのLUを全て特定する(ステップS250)。具体的には、ファイルLU対応管理プログラムP60は、ファイルシステム情報T50を参照し、ステップS240で特定したファイルパス以下にある全てのファイルを特定し、データ配置アルゴリズムに基づいて、特定した各ファイルが配置されているLUを特定する。
【0109】
次いで、各コンピュートサーバ20のファイルLU対応管理プログラムP60は、オートスケールするコンピュートサーバ20の連携プログラムP40に、ファイルが格納されているLUを新規に作成するアプリコンテナから参照するよう通知する(ステップS260)。
【0110】
なお、図12の参照LU特定処理の例では、アプリコンテナが使用する全てのファイルの全てのLUを特定するようにしていたが、本発明はこれに限られず、例えば、管理者によって指定されたアプリケーション毎に複製する必要があるファイルについてのLUを特定するようにしてもよい。
【0111】
次に、ステップS140のファイル高速複製処理について説明する。
【0112】
図13は、第1実施形態に係るファイル高速複製処理のフローチャートである。
【0113】
スケールアウトするアプリコンテナを稼働させるコンピュートサーバは20の連携プログラムP40は、ステップS260での通知を受信し、通知により参照するように指示されたLUをコンピュートサーバは20にリードオンリーでマウントする(ステップS310)。具体的には、連携プログラムP40は、ストレージ接続プログラムP70に指示し、共有ブロックストレージ30上の指示されたLUをリードオンリーで接続させる。
【0114】
次いで、連携プログラムP40は、ステップS310でLUをマウントした場所を、アプリコンテナがファイルアクセスできる新規データ領域(ボリューム)として設定する(ステップS320)。
【0115】
次いで、連携プログラムP40は、アプリコンテナ50を作成し、アプリコンテナ50にステップS320で設定した新規データ領域を割り当てる(ステップS330)。これにより、アプリコンテナ50は新規データ領域を介して使用するファイルが格納されたLUをリードオンリーで参照可能となり、アプリクライアント40から割り振られた処理を実行可能となる。
【0116】
次に、分散ボリューム作成処理について説明する。
【0117】
図14は、第1実施形態に係る分散ボリューム作成処理のフローチャートである。
【0118】
管理サーバ130のコンテナオーケストレータ管理プログラムP110が管理者からデータ格納領域(ボリューム)の作成要求を受け付ける(ステップS410)。
【0119】
次いで、コンテナオーケストレータ管理プログラムP110は、データ格納領域の作成要求をコンピュートサーバ20のコンテナオーケストレータ60に通知し、コンテナオーケストレータ60は、連携プログラムP40にデータ格納領域の作成要求を渡し、連携プログラムP40はブロックストレージプログラムP90にLU作成を通知し、ブロックストレージプログラムP90は所定の数(複数)の細分化されたLUを作成する(ステップS420)。ここで、作成するLUの数は例示に過ぎず、要求された容量からLUの数を決めるなどしてもよい。また、LUのサイズは、所定のデータ容量以下となるように決定してもよい。
【0120】
次いで、連携プログラムP40は、分散ファイルシステム80に作成されたLUを追加(マウント)する(ステップS430)。
【0121】
次いで、連携プログラムP40が分散ボリューム70を作成し、分散ボリューム管理テーブルT10に作成した分散ボリューム70のエントリを追加する(ステップS440)。
【0122】
次いで、分散ファイルシステム80(複数のコンピュートサーバ20の分散FS制御プログラムP10)が、サービスを開始し、連携プログラムP40は、アプリコンテナファイルパス対応テーブルT40において、ボリュームを割り当てるアプリに対応するエントリを更新する(ステップS450)。
【0123】
この分散ボリューム作成処理によると、LUのサイズを小さくすることができるので、例えば、サーバを減設する際に、サーバが持っていたデータを格納しているLUを、サーバの負荷が集中しないように残りのサーバに容易且つ適切に割り当てることができる。
【0124】
次に、分散処理アプリ管理画面I100について説明する。分散処理アプリ管理画面I100は、コンテナオーケストレータ管理プログラムP110により表示出力される画面である。
【0125】
図15は、第1実施形態に係る分散処理アプリ管理画面の構成図である。
【0126】
分散処理アプリ管理画面I100は、アプリコンテナ識別子表示領域I01と、稼働サーバ表示領域I10と、CPU負荷表示領域I20と、性能表示領域I30と、高速オートスケール表示領域I40と、性能グラフ表示領域I50とを含む。
【0127】
アプリコンテナ識別子表示領域I01には、分散処理アプリ管理画面I100の表示対象の分散処理を行うアプリコンテナの識別子(例えば、アプリコンテナで実行するアプリケーションの名前)が表示される。稼働サーバ表示領域I10には、表示対象のアプリコンテナが稼働しているサーバ(コンピュートサーバ20)の名称が表示される。CPU負荷表示領域I20には、同じ行のサーバにおけるCPU160の負荷の情報が表示される。性能表示領域I30には、同じ行のサーバにおける出力性能(OPS:Operations Per Second)が表示される。高速オートスケール表示領域I40には、同じ行のサーバがオートスケールのスケール元であるか、スケール先であるかが表示される。性能グラフ表示領域I50には、表示対象のアプリコンテナを稼働する全てのコンピュートサーバの性能(OPS)の合計についての時間変化のグラフが表示される。このグラフにおいては、オートスケールを行ったタイミングも表示され、オートスケール前後の表示対象のアプリコンテナを有する全てのコンピュートサーバの性能の変化を把握することができる。
【0128】
管理者は、分散処理アプリ管理画面I100により、高速オートスケールしたアプリコンテナを有するサーバの性能、CPU負荷、稼働サーバの数や、オートスケールの効果等について確認することができる。
【0129】
次に、第2実施形態に係る計算機システムについて説明する。
【0130】
まず、第2実施形態の概要について説明する。
【0131】
図16は、第2実施形態の概要を説明する図である。図16は、第2実施形態に係る計算機システム1Aにおいて、アプリコンテナ50のオートスケール方法の概要を説明する図である。なお、第2実施形態の説明において、第1実施形態に係る計算機システム1と同様な構成については、同一の符号を付すこととする。
【0132】
第2実施形態に係る計算機システム1Aにおいては、ストレージサーバ240がブロックストレージとファイルストレージとの両方として機能する。
【0133】
計算機システム1Aは、クライアントサーバ10と、複数(図では、4つ)のコンピュートサーバ230(コンピュートサーバA~D)と、複数(図では、4つ)のストレージサーバ240(ストレージサーバE~H)と、管理サーバ130とを有する。
【0134】
コンピュートサーバ230は、コンテナオーケストレータ60を有する。ここで、オートスケールを実行する前においては、3台のコンピュートサーバ230(コンピュートサーバA~C)が、同一のアプリケーションを実行するアプリコンテナ50を有し、コンピュートサーバ230(コンピュートサーバD)は、同一のアプリケーションを実行するアプリコンテナ50を有していない。
【0135】
アプリコンテナ50は、アプリケーションを実行して、アプリクライアント40から割り振られたデータに対して処理を実行する。コンテナオーケストレータ60は、アプリコンテナ50を管理する。
【0136】
ストレージサーバ240は、分散ファイルシステム80と、データLU対応管理部100とを有する。複数のストレージサーバ240は、それぞれのストレージサーバ240が有する記憶装置140により共有ブロックストレージ30を構成している。分散ファイルシステム80は、共有ブロックストレージ30の記憶領域に作成された複数のLU90を用いて、複数のストレージサーバ240上に跨る分散ボリューム70を作成する。分散ファイルシステム80は、共有ブロックストレージ30の記憶領域に複数のLUを作成することができる。分散ボリューム70上には、各コンピュートサーバ230のコンテナオーケストレータ60のデータ格納領域が設けられ、アプリコンテナ50が利用するファイルが格納される。データLU対応管理部100は、アプリコンテナ50が使用するファイルが格納されるLU90を管理する。
【0137】
計算機システム1Aにおいて、コンテナオーケストレータ60は、コンピュートサーバ230のリソースを監視し、コンテナオーケストレータ管理部131は、例えば、CPUのリソースが逼迫していることを検出した場合には、アプリコンテナ50のオートスケールを実施する。具体的には、コンテナオーケストレータ管理部131は、コンピュートサーバ230(図1では、コンピュートサーバD)に新たにアプリコンテナ50を追加する。これにより、アプリコンテナ50の負荷が分散されることとなる。
【0138】
このオートスケールを行う際に、計算機システム1Aにおいては、追加したアプリコンテナ50が使用するファイルについて、コンテナオーケストレータ管理部131は、既にアプリコンテナ50が使用するために格納されているLU90を特定する。次いで、追加したアプリコンテナ50を有するコンピュートサーバ230を、共有ブロックストレージ30上の特定したLU90に、例えば、リードオンリーで接続させる。これにより、追加したアプリコンテナ50は、そのLU90のデータをデータコピーすることなく使用することができるようになり、高速にファイルレプリケーションを実現することができる。
【0139】
次に、コンピュートサーバ230について説明する。
【0140】
図17は、第2実施形態に係るコンピュートサーバの構成図である。
【0141】
コンピュートサーバ230は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140と、BMC190とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、記憶装置140とは、内部バス180を介して接続されている。
【0142】
コンピュートサーバ230のメモリ150は、分散FSクライアントプログラムP20と、コンテナオーケストレータプログラムP30と、連携プログラムP40と、アプリコンテナプログラムP50とを記憶する。
【0143】
分散FSクライアントプログラムP20は、コンピュートサーバ230のアプリコンテナ50にストレージサーバ240上の分散ボリューム70をマウントする。
【0144】
次に、ストレージサーバ240について説明する。
【0145】
図18は、第2実施形態に係るストレージサーバの構成図である。
【0146】
ストレージサーバ240は、プロセッサの一例としてのCPU160と、メモリ150と、ネットワークインターフェース170と、1以上のストレージインターフェース200と、複数の記憶装置140と、BMC190とを有する。CPU160と、メモリ150と、ネットワークインターフェース170と、ストレージインターフェース200とは、内部バス180を介して接続されている。
【0147】
ストレージサーバ240のメモリ150は、分散FS制御プログラムP10と、アプリコンテナ使用ファイルF10と、ファイルLU対応管理プログラムP60と、アプリコンテナファイルパス対応テーブルT40と、IO制御プログラムP80と、ブロックストレージプログラムP90と、ファイルシステム情報T50とを記憶する。
【0148】
次に、第2実施形態に係る計算機システム1Aにおける処理動作について説明する。なお、第2実施形態に係る計算機システム1Aにおける処理動作のうち、第1実施形態に係る計算機システム1と同様な処理については、説明を省略することがある。
【0149】
計算機システム1Aのスケールアウト処理は、図11に示す第1実施形態に係るスケールアウト処理と同様である。
【0150】
次に、ステップS130の参照LU特定処理について説明する。
【0151】
図19は、第2実施形態に係る参照LU特定処理のフローチャートである。
【0152】
ステップS220の実行後、各コンピュートサーバ230のコンテナオーケストレータプログラムP30は、ストレージサーバ240のファイルLU対応管理プログラムP60にアプリコンテナのオートスケールを通知する(ステップS530)。
【0153】
次に、ステップS140のファイル高速複製処理について説明する。
【0154】
図20は、第2実施形態に係るファイル高速複製処理のフローチャートである。
【0155】
スケールアウトするアプリコンテナを稼働させるコンピュートサーバ230の連携プログラムP40は、ステップS260での通知を受信し、通知により参照するように指示されたLUをストレージサーバ240に通知し、ストレージサーバ240に指示されたLUをリードオンリーでマウントさせる(ステップS610)。ストレージサーバ240の分散FS制御プログラムP10は指示を受けて、共有ブロックストレージ30上の指示されたLUをリードオンリーで接続させる。
【0156】
次いで、連携プログラムP40は、ステップS610でLUをマウントした場所を、アプリコンテナがファイルアクセスできる新規データ領域(ボリューム)として設定させる指示をストレージサーバ240に送信し、ストレージサーバ240の分散FS制御プログラムP10は指示を受けて、LUをマウントした場所を、アプリコンテナがファイルアクセスできる新規データ領域(ボリューム)として設定する(ステップS620)。
【0157】
次いで、連携プログラムP40は、アプリコンテナ50を作成し、ストレージサーバ240の分散FS制御プログラムP10に指示をして、アプリコンテナ50にステップS320で設定した新規データ領域を割り当てる(ステップS630)。これにより、アプリコンテナ50は新規データ領域を介して使用するファイルが格納されたLUをリードオンリーで参照可能となり、アプリクライアント40から割り振られた処理を実行可能となる。
【0158】
次に、分散ボリューム作成処理について説明する。
【0159】
図21は、第2実施形態に係る分散ボリューム作成処理のフローチャートである。
【0160】
コンピュートサーバ230の連携プログラムP40は、ストレージサーバ120の分散FS制御プログラムP10に、分散ファイルシステム80に作成されたLUを追加(マウント)するように通知し、通知を受けた分散FS制御プログラムP10は分散ファイルシステム80に作成されたLUを追加する(ステップS730)。次いで、連携プログラムP40が分散ボリューム70を作成し、分散ボリューム管理テーブルT10に作成した分散ボリューム70のエントリを追加する(ステップS740)。
【0161】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0162】
例えば、上記実施形態において、アプリケーションをコンテナで実行する例を示していたが、本発明はこれに限られず、例えば、アプリケーションをVM(実行部の一例)で実行するようにしてもよい。
【0163】
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
【符号の説明】
【0164】
1,1A…計算機システム、10…クライアントサーバ、20,230…コンピュートサーバ、30…共有ブロックストレージ、50…アプリコンテナ、90…LU、110…ネットワーク、120,240…ストレージサーバ、130…管理サーバ、140…記憶装置、150…メモリ、160…CPU、170…ネットワークインターフェース、180…内部バス


図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21