特許第6234593号(P6234593)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

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

<>
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000002
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000003
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000004
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000005
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000006
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000007
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000008
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000009
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000010
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000011
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000012
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000013
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000014
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000015
  • 特許6234593-管理サーバ、計算機システム、及び方法 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6234593
(24)【登録日】2017年11月2日
(45)【発行日】2017年11月22日
(54)【発明の名称】管理サーバ、計算機システム、及び方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20171113BHJP
【FI】
   G06F12/00 542K
   G06F12/00 501B
【請求項の数】11
【全頁数】25
(21)【出願番号】特願2016-543786(P2016-543786)
(86)(22)【出願日】2014年8月22日
(86)【国際出願番号】JP2014072057
(87)【国際公開番号】WO2016027381
(87)【国際公開日】20160225
【審査請求日】2016年6月23日
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】特許業務法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】菱田 童之
(72)【発明者】
【氏名】内田 智斉
【審査官】 加内 慎也
(56)【参考文献】
【文献】 国際公開第2013/175540(WO,A1)
【文献】 特開2012−133824(JP,A)
【文献】 特開2009−252204(JP,A)
【文献】 特開2013−016194(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
メモリと、
それぞれがサーバプロセッサ及び不揮発性メモリを有する複数のサーバに、接続される通信インタフェースと、
前記メモリと前記通信インタフェースに接続される管理プロセッサと、
を有し、
プログラムの起動に応じて、前記サーバプロセッサにより、前記不揮発性メモリへデータが書き込まれ、
前記メモリは、
前記不揮発性メモリの累積書込量の限界値と、
前記複数のサーバのそれぞれが最後に起動していたプログラムを示す情報であるサーバ管理情報と
を記憶し、
管理プロセッサは、
前記複数のサーバの各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムの起動を要求するための起動要求を受信した場合に、
前記限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記サーバ管理情報に基づき、最後に起動したプログラムが前記第1プログラムであるサーバを、前回起動サーバとして選択し、
前記前回起動サーバの前記評価値を減少させて補正し、
前記評価値に基づき、前記複数のサーバの中から、前記評価値の最も低いサーバを一つの起動サーバとして選択し、
前記起動サーバに対し、前記第1プログラムを起動することを指示する実行指示を送信する、
管理サーバ。
【請求項2】
請求項1に記載の管理サーバであって、
前記管理プロセッサは、
前記実行指示の送信前に前記起動サーバにより最後に起動されたプログラムが、前記第1プログラムでない場合、前記複数のサーバのうち、前記前回起動サーバの不揮発性メモリに格納されたデータを、前記起動サーバの不揮発性メモリへコピーする指示を、前記第1プログラムを実行している第1サーバに送信し、
前記起動サーバに対し、前記第1プログラムを起動することを要求する実行指示を送信する、
管理サーバ。
【請求項3】
請求項2に記載の管理サーバであって、
前記管理プロセッサは、
前記実行指示の送信前に、前記起動サーバにより最後に起動されたプログラムが前記第1プログラムでない場合、前記コピーの後に、前記起動サーバの不揮発性メモリに格納されているデータを消去する指示を、前記起動サーバに送信する、
管理サーバ。
【請求項4】
請求項1に記載の管理サーバであって、
前記メモリは、
前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す用途情報
を更に記憶し、
前記管理プロセッサは、
前記実行指示の送信前に前記起動サーバにより最後に起動されたプログラムが、前記第1プログラムでない場合、
前記用途情報に基づき、前記前回起動サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされるか否かを判定し、
前記前回起動サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記複数のサーバのうち、前記前回起動サーバの不揮発性メモリに格納されたデータを、前記起動サーバの不揮発性メモリへコピーする指示を、前記第1プログラムを実行している第1サーバに送信する、
管理サーバ。
【請求項5】
メモリと、
それぞれがサーバプロセッサ及び不揮発性メモリを有する複数のサーバに、接続される通信インタフェースと、
前記メモリと前記通信インタフェースに接続される管理プロセッサと、
を有し、
プログラムの起動に応じて、前記サーバプロセッサにより、前記不揮発性メモリへデータが書き込まれ、
前記メモリは、
前記不揮発性メモリの累積書込量の限界値と、
前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す用途情報と
を記憶し、
管理プロセッサは、
前記複数のサーバの各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムの起動を要求するための起動要求を受信した場合に、
前記限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記評価値に基づき、前記複数のサーバの中から一つの起動サーバを選択し、
前記複数のサーバのうち、前記第1プログラムを実行している第1サーバが、前記起動要求により指定された場合、前記用途情報に基づき、前記第1サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされるか否かを判定し、前記第1サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記起動サーバの不揮発性メモリへ前記データをコピーする指示を前記第1サーバに送信し、
前記起動サーバに対し、前記第1プログラムを起動することを指示する実行指示を送信する、
管理サーバ。
【請求項6】
それぞれが、サーバプロセッサ及び不揮発性半導体メモリを有する複数のサーバと、
前記複数のサーバに接続される管理サーバと、
を有し、
前記サーバプロセッサは、プログラムの起動に応じて前記不揮発性メモリへデータを書き込み、
前記管理サーバは、
前記不揮発性メモリの累積書込量の限界値と、
前記複数のサーバのそれぞれが最後に起動していたプログラムを示す情報であるサーバ管理情報と
を記憶し、
前記管理サーバは、
前記複数のサーバの各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムを起動させることを要求するための起動要求を受信した場合に、
前記限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記サーバ管理情報に基づき、最後に起動したプログラムが前記第1プログラムであるサーバを、前回起動サーバとして選択し、
前記前回起動サーバの前記評価値を減少させて補正し、
前記評価値に基づき、前記複数のサーバの中から、前記評価値の最も低いサーバを一つの起動サーバとして選択し、
前記起動サーバに対し、前記第1プログラムを起動することを指示する実行指示を送信し、
前記起動サーバのサーバプロセッサは、前記実行指示を受信し、前記第1プログラムを起動する、
計算機システム。
【請求項7】
請求項6に記載の計算機システムであって、
前記管理サーバは、
前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す用途情報
を更に記憶し、
前記実行指示の送信前に前記起動サーバにより最後に起動されたプログラムが、前記第1プログラムでない場合、前記用途情報に基づき、前記前回起動サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされるか否かを判定し、
前記前回起動サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記複数のサーバのうち、前記前回起動サーバの不揮発性メモリに格納されたデータを、前記起動サーバの不揮発性メモリへコピーする指示を、前記第1プログラムを実行している第1サーバに送信する、
計算機システム。
【請求項8】
それぞれが、サーバプロセッサ及び不揮発性半導体メモリを有する複数のサーバと、
前記複数のサーバに接続される管理サーバと、
を有し、
前記サーバプロセッサは、プログラムの起動に応じて前記不揮発性メモリへデータを書き込み、
前記管理サーバは、
前記不揮発性メモリの累積書込量の限界値と、
前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す用途情報と
を記憶し、
前記管理サーバは、
前記複数のサーバの各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムを起動させることを要求するための起動要求を受信した場合に、
前記限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記評価値に基づき、前記複数のサーバの中から一つの起動サーバを選択し、
前記複数のサーバのうち、前記第1プログラムを実行している第1サーバが、前記起動要求により指定された場合、前記用途情報に基づき、前記第1サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされるか否かを判定し、
前記第1サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記起動サーバの不揮発性メモリへ前記データをコピーする指示を前記第1サーバに送信し、
前記起動サーバに対し、前記第1プログラムを起動することを指示する実行指示を送信する、
計算機システム。
【請求項9】
それぞれが、サーバプロセッサ及び不揮発性メモリを有する複数のサーバの管理方法であって、
前記複数のサーバの前記各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムを起動させることを要求するための起動要求を受信した場合に、
前記不揮発性メモリの累積書込量の限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記複数のサーバのそれぞれが最後に起動していたプログラムを示す情報であるサーバ管理情報に基づき、最後に起動したプログラムが前記第1プログラムであるサーバを、前回起動サーバとして選択し、
前記前回起動サーバの前記評価値を減少させて補正し、
前記評価値に基づき、前記複数のサーバの中から、前記評価値の最も低いサーバを一つの起動サーバとして選択し、
前記起動サーバに対し、前記第1プログラムを起動することを要求する実行要求を送信する、
ことを有し、
プログラムの起動に応じて、前記サーバプロセッサにより、前記不揮発性メモリへデータが書き込まれる、
管理方法。
【請求項10】
請求項9に記載の管理方法であって、
前記実行要求の送信前に前記起動サーバにより最後に起動されたプログラムが、前記第1プログラムでない場合、
用途情報に基づき、前記前回起動サーバの不揮発性メモリに格納されたデータが前記複数のサーバに接続されるストレージ装置へコピーされるか否かを判定し、
前記用途情報は、前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す情報であり、
前記前回起動サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記複数のサーバのうち、前記前回起動サーバの不揮発性メモリに格納されたデータを、前記起動サーバの不揮発性メモリへコピーする指示を、前記第1プログラムを実行している第1サーバに送信する、
管理方法。
【請求項11】
それぞれが、サーバプロセッサ及び不揮発性メモリを有する複数のサーバの管理方法であって、
前記複数のサーバの前記各サーバから不揮発性メモリの累積書込量を受信し、
第1プログラムを起動させることを要求するための起動要求を受信した場合に、
前記不揮発性メモリの累積書込量の限界値に対する前記累積書込量の割合に基づいて、各サーバにおける前記不揮発性メモリの評価値を算出し、
前記評価値に基づき、前記複数のサーバの中から一つの起動サーバを選択し、
前記複数のサーバのうち、前記第1プログラムを実行している第1サーバが、前記起動要求により指定された場合、用途情報に基づき、前記第1サーバの不揮発性メモリに格納されたデータが前記複数のサーバに接続されるストレージ装置へコピーされるか否かを判定し、
前記用途情報は、前記複数のサーバのそれぞれが有する不揮発性メモリに格納されるデータが、前記複数のサーバに接続されるストレージ装置へコピーされるか否かを示す情報であり、
前記第1サーバの不揮発性メモリに格納されたデータが前記ストレージ装置へコピーされないと判定された場合、前記起動サーバの不揮発性メモリへ前記データをコピーする指示を前記第1サーバに送信し、
前記起動サーバに対し、前記第1プログラムを起動することを要求する実行要求を送信する、
ことを有し、
プログラムの起動に応じて、前記サーバプロセッサにより、前記不揮発性メモリへデータが書き込まれる、
管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のサーバを管理する技術に関する。
【背景技術】
【0002】
現用サーバと予備サーバと管理サーバとを有するサーバシステムにおいて、管理サーバが、現用サーバのディスクイメージを予め予備サーバに配信しておき、現用サーバに障害が発生した場合に、業務の引継が可能な予備サーバを選択して、現行サーバの業務を実行するように制御するサーバ切替え方法が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012−90745号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、近年、記憶デバイスとしてHDD(ハードディスクドライブ)に代えてフラッシュメモリなどの不揮発性メモリを搭載した計算機が主流になってきている。不揮発性メモリが搭載される複数のサーバがネットワーク接続されたシステムにおいては、上記のサーバ切替え方法を適用することができる。しかし、上記方法を適用しただけでは、不揮発性メモリの特性が考慮されていない。不揮発性メモリは、データの読み書きの速度が速いなどの利点がある一方、書き込み及び消去を繰り返すことで劣化するため、書き込み回数に限界があるという特性を有するデバイスである。このため、不揮発性メモリを搭載した複数のサーバを有するシステムにおいて、特定のサーバの負荷が集中した場合、その特定のサーバについてはサーバの寿命やメーカが推奨するサーバのリプレイス期間よりも不揮発性メモリの寿命が短くなり交換が必要になってしまうおそれがある。
【0005】
特に、複数のサーバを有するシステムにおいて、各サーバは、複数のクライアントからアクセスを受ける場合も多い。このため、特定のサーバにクライアントからのアクセスが集中してしまえば、サーバの寿命やリプレイス期間よりも早く不揮発性メモリの交換が必要となってしまうおそれがある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る管理サーバは、メモリと、それぞれがサーバプロセッサ及び不揮発性メモリを有する複数のサーバに、接続される通信インタフェースと、メモリと通信インタフェースに接続される管理プロセッサと、を有する。プログラムの起動に応じて、サーバプロセッサにより、不揮発性メモリへデータが書き込まれる。メモリは、不揮発性メモリの累積書込量の限界値を記憶する。管理プロセッサは、複数のサーバの各サーバから不揮発性メモリの累積書込量を受信し、第1プログラムの起動を要求するための起動要求を受信した場合に、限界値及び累積書込量に基づき、各サーバにおける不揮発性メモリの評価値を算出し、評価値に基づき、複数のサーバの中から一つの起動サーバを選択し、起動サーバに対し、第1プログラムを起動することを要求する実行要求を送信する。
【発明の効果】
【0007】
複数のサーバに搭載される不揮発性メモリの劣化を平準化することができる。
【図面の簡単な説明】
【0008】
図1】実施例1に係る計算機システムの構成図である。
図2】管理サーバの論理構成図である。
図3】リソース管理テーブルである。
図4】サーバ管理テーブルである。
図5】OS管理テーブルである。
図6】リソース評価観点管理テーブルである。
図7】OSサーバ評価管理テーブルである。
図8】管理プログラムのフローチャートである。
図9】起動サーバ決定処理のフローチャートである。
図10】リソース評価値計算プログラムのフローチャートである。
図11】サーバ起動前処理のフローチャートである。
図12】サーバ起動処理プログラムのフローチャートである。
図13】サーバ起動後処理プログラムのフローチャートである。
図14】起動サーバ変更処理のフローチャートである。
図15】OSのサーバ評価値計算処理のフローチャートである。
【発明を実施するための形態】
【0009】
以下の説明では、「kkkテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「kkkテーブル」を「kkk情報」と呼ぶことができる。
【0010】
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶資源(例えば、メモリ)及び/又は通信インターフェイスデバイス(例えば、通信ポート)を用いながら行うため、処理の主語がプロセッサとされてもよい。逆に、プロセッサが主語となっている処理は、1以上のプログラムを実行することにより行われると解釈することができる。プロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、処理の一部(例えば、暗号化/復号化、圧縮/伸張)を実行するハードウェア回路を含んでもよい。
【0011】
また、以下の説明では、「LU」は、論理ユニットの略であり、論理的な記憶デバイスである。LUは、論理ボリュームと呼ばれてもよい。LUは、実LUであっても良いし、仮想LUであっても良い。実LUは、1以上のPDEVに基づくLUである。「PDEV」は、不揮発性の物理的な記憶デバイスの略であり、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。複数のPDEVで1以上のRAIDグループ(Redundant Array of Independent (or Inexpensive) Disks)が構成されてよい(RAIDグループはパリティグループと呼ばれてもよい)。仮想LUとしては、例えば、外部接続LUと、TP(Thin Provisioning)−LUと、スナップショットLUとがあってよい。外部接続LUは、ストレージシステムに接続されている外部のストレージシステムの記憶資源(例えばLU)に基づいておりストレージ仮想化技術に従うLUである。TP−LUは、容量仮想化技術(典型的にはThin Provisioning)に従うLUである。スナップショットLUは、オリジナルのLUのスナップショットとして提供されるLUである。ストレージシステムは、1以上のストレージ装置で構成されてよい。
【0012】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号を使用し、同種の要素を区別して説明する場合には、その要素の参照符号に代えて、その要素に割り振られた識別子(例えば番号及び符号のうちの少なくとも1つ)を使用することがある。
【実施例1】
【0013】
図1は、実施例1に係る計算機システムの構成図である。
【0014】
計算機システムは、管理サーバ1、ネットワークスイッチ2、複数のサーバ5、ファイバチャネルスイッチ3及びストレージ装置4を有する。管理サーバ1は、例えば、ネットワークインタフェースカード(NIC)等のネットワークインタフェース17を有する。管理サーバ1のネットワークインタフェース17が、ネットワークスイッチ2を介して複数のサーバ5に接続されている。複数のサーバ5は、ファイバチャネルスイッチ3を介してストレージ装置4に接続されている。よって、複数のサーバ5は、ネットワークスイッチ2及びファイバチャネルスイッチ3を介して互いに通信可能である。なお、ストレージ装置4は、ネットワークスイッチ2にも接続されていてよい。管理サーバ1とサーバ5の間の接続は、例えば、LAN(Local Area Network)等のインターネットプロトコルの通信ネットワークであり、ネットワークスイッチ2等を含む。サーバ5とストレージ装置4の間の接続は、例えば、SAN(Storage Area Network)等の通信ネットワークであり、ファイバチャネルスイッチ3等を含む。なお、各スイッチは、同種のスイッチであってもよい。
【0015】
各サーバ5は、物理的な計算機であり、メモリ52、ネットワークインターフェースカード(NIC)51、フラッシュメモリ53、プロセッサ(CPU)54及びホストバスアダプタ(HBA)55を備える。これらのサーバ5の構成要素は、それぞれ、1つであっても複数であってもよい。NIC51は、ネットワークスイッチ2に接続し、管理サーバ1と通信するためのインタフェースであり、HBA55は、ファイバチャネルスイッチ3に接続し、ストレージ装置4と通信するためのインタフェースである。NIC51及びHBA55は、多種のインタフェースが用いられてもよい。メモリ52には、例えば、CPU54が実行する各種プログラム521aが記憶されている。フラッシュメモリ53は、具体的には、例えば、SSDである。
【0016】
ストレージ装置4は、物理記憶デバイスとしてのハードディスクドライブ42及びフラッシュメモリ41と、物理記憶デバイスに接続されるコントローラ(図示なし)とを有する。フラッシュメモリ41は、例えばSSDなどである。複数の同種の物理記憶デバイスに基づき、RAIDグループが構成されてよい。コントローラは、その内部にプロセッサ及びメモリを備え、1つ又は複数の物理ディスクに基づきサーバ5にLU(Logical Unit)411、412を提供する。なお、物理記憶デバイスは、ハードディスクドライブ42及びフラッシュメモリ41のいずれか一方を備えてもよい。
【0017】
図2は、管理サーバ1の論理構成図である。
【0018】
管理サーバ1は、計算機であり、メモリ11、プロセッサ(CPU)13、ディスクインタフェース15及びネットワークインタフェース17を備える。これらの要素は、バスなどの内部ネットワークにより互いに接続されている(図示なし)。
【0019】
ネットワークインタフェース17は、ネットワークスイッチ2に接続し、複数のサーバ5との通信を行う。
【0020】
メモリ11は、管理プログラム110を格納する。管理プログラム110は、CPU13に実行されるコンピュータプログラム、及び、そのコンピュータプログラムを実行する際に参照されるテーブルである。具体的には、例えば、管理プログラム110には、切替え先・起動先決定プログラム111と、リソース評価値計算プログラム112と、OSの対サーバ評価値計算プログラム113と、サーバ起動前処理プログラム114と、サーバ起動処理プログラム115と、サーバ起動後処理プログラム116と、リソース管理テーブル300と、サーバ管理テーブル400と、OS管理テーブル500と、リソース評価観点管理テーブル600と、OSの対サーバ評価値管理テーブル700とが含まれる。各プログラム及びテーブルの詳細は後述する。
【0021】
図3は、リソース管理テーブル300である。
【0022】
リソース管理テーブル300は、各サーバが有するリソースのスペック値及び累積書込量を管理するテーブルである。例えば、リソース管理テーブル300は、リソース毎のエントリを有する。各エントリは、当該リソースを識別するリソースID301と、当該リソースを有するサーバ5を識別するサーバID303と、当該リソースの種別であるリソース種別305と、当該リソースの書込回数における寿命を示す書込回数上限値307と、当該リソースの累積書込回数309と、当該リソースの書込サイズ上限値311と、当該リソースの書込サイズにおける寿命を示す累積書込サイズ313と、当該リソースの評価値315とを有する。
【0023】
書込回数上限値307は、累積書込回数309の上限値が示されている。累積書込回数309は、例えば、フラッシュメモリ53における各セルへの延べ書き込み回数の平均値を示す。書込サイズ上限値311は、累積書込サイズ313の上限値が示されている。累積書込サイズ313は、具体的には、例えば、フラッシュメモリ53に書き込まれた延べデータサイズを示す。なお、累積書込回数309及び累積書込サイズ313は、フラッシュメモリ53毎にカウントされる値であり、CPU54を介して各フラッシュメモリ53から取得される。なお、累積書込回数309は、フラッシュメモリ53内の平均値を示しているが、平均値に限られず最小値、中央値等、他の値であってもよい。
また、書込回数上限値307及び書込サイズ上限値311は、各フラッシュメモリ53のスペック値であり、予め設定される。
【0024】
なお、本実施例は、簡単のため、このテーブル300において管理されるリソースをフラッシュメモリ53のみとしているが、他のリソースが管理されてもよい。また、本実施例では、簡単のため、このテーブル300において1つのサーバに1つのリソース(つまりフラッシュメモリ53)が対応づけられているが、当然に1つのサーバに複数のリソースが対応づけられていてもよい。
【0025】
図4は、サーバ管理テーブル400である。
【0026】
サーバ管理テーブル400は、各サーバ5の状態を管理するテーブルである。例えば、サーバ管理テーブル400は、サーバ5毎のエントリを有する。各エントリは、当該サーバ5を識別するサーバID401と、当該サーバで前回起動されたOSを識別する前回起動OS403と、当該サーバの電源のON/OFFを示す電源状態405と、当該サーバが正常に稼働しているか否かを示すサーバ状態407とを有する。なお、前回起動OS403は、換言すると、複数のサーバ5のそれぞれが最後に起動したOSである。なお、サーバ5に起動されるプログラムとしてOS以外のプログラムが用いられてもよい。
なお、本実施例では、OSを実行する事により、サーバで業務が実行されることを想定するが、これに限定されない。また、本実施例では、1つのサーバで1つ業務を実行する計算機システムを想定している。つまり、1つのサーバでは、1つのOSが実行されるものとするが、これに限定されない。
図においては、例えば、サーバ2は、前回起動OSが「OS2」であり、電源状態405が「ON」であり、かつ、サーバ状態407が「正常」である。これは、サーバ2上で、現在、OS2が実行されている状態であることを意味する。また、例えば、サーバ1は、前回起動OSが「OS1」であり、電源状態405が「OFF」であり、かつ、サーバ状態407が「正常」である。これは、サーバ1は現在停止状態であり、停止するまでOS1が実行されていたことを意味する。さらに、例えば、サーバ5は、前回起動OSがなく、電源状態405が「OFF」であり、サーバ状態407が正常である。これは、サーバ5は、未だOSが実行されていない待機系のサーバであることを意味する。また、サーバ1、3、4についても、電源状態405が「OFF」であり、かつ、サーバ状態407が「正常」であるため、前回起動OSとは別のOSを起動する可能性がある。
【0027】
なお、本実施例では、サーバは物理サーバを示しており、各サーバは、電源「ON」時に1つのOSを起動し、電源が「OFF」となった後の次の起動のタイミングで他のOSを起動してもよいし、前回の電源「ON」時に起動していたOSを連続して起動してもよいとする。また、本実施例では、任意の時点において、1つのOSが1つのサーバ5で実行される例を示しているが、複数のサーバ5が同じOSを実行してもよい。
【0028】
図5は、OS管理テーブルである。
【0029】
OS管理テーブル500は、各OSの情報を管理するテーブルである。例えば、OS管理テーブル500は、OS毎のエントリを有する。各エントリは、当該OSを識別するOSID501と、当該OSを起動する際に必要なプログラム及びデータを格納するLUを識別するLUID503と、当該OSが利用するリソースの種別である使用リソース種別505(本実施例ではフラッシュメモリ53のみ)と、当該OSによる当該リソースの用途507と、当該OSの1回の起動当たりのリソースへの平均書込回数509と、当該OSの1回の起動当たりのリソースへの平均書込サイズ511と、当該OSが1つのサーバで連続して起動する回数の目標値である連続起動目標回数513と、を有する。
CPU54がOSの起動に応じてフラッシュメモリ53へ書き込むデータとして、起動データ(起動ディスク)や更新データがある。起動データは、OSを起動する際に必要なプログラム及びデータであり、OSの起動前にフラッシュメモリ53へ書きこまれる。更新データは、OSにより書込要求されるデータであり、OSの起動後にフラッシュメモリ53へ書き込まれる。
【0030】
なお、リソースとしてのフラッシュメモリ53の用途507は、例えば、キャッシュメモリ(キャッシュ)であるかデータディスクであるかである。フラッシュメモリ53がキャッシュメモリの用途で利用される場合、CPU54aは、フラッシュメモリ53内のデータを対応するLUにコピーする。これにより、LUに書き込まれたデータの内アクセス頻度の高いデータがフラッシュメモリ53に格納されることとなる。一方、フラッシュメモリ53がデータディスクの用途で利用される場合、フラッシュメモリ53内の更新データはLUにコピーされない。
【0031】
また、前述したように、フラッシュメモリ53は、累積書込回数、累積書込サイズなどの上限値が定められている。あるサーバ5があるOSを実行した後に別のOSを起動する場合、OSに関するデータのコピー及び消去が多く発生してしまうため、フラッシュメモリ53の劣化に繋がってしまうおそれがある。サーバで起動するOSが頻繁に変わることを防止するため、連続起動目標回数513を定めている。以下に、OSに関するデータのコピー及び消去が発生する例を具体的に示す。
【0032】
あるサーバ(例えばサーバ5a)がOSaを実行した後、別のサーバ(例えばサーバ5b)が実行していたOSbを引き継ぐ場合、サーバ5bにおいてOSbがフラッシュメモリ53bに書き込んだ更新データが必要となる。OSbの更新データが、OSbにより書き込まれた最新のデータだからである。また、OSbの更新データがサーバ5aのフラッシュメモリ53aに正常にコピーされた場合、フラッシュメモリ53b内のOSbの更新データの消去が必要となる。これは、データの整合性又はセキュリティなどの観点から、OSbをサーバ5aが実行するときに、サーバ5bのOSbにもアクセスが発生するのを避けるためである。
なお、上記の場合において、サーバ5aのフラッシュメモリ53aにOSbの更新データを格納する場合、フラッシュメモリ53aの用途により、以下の2つが考えられる。1つにフラッシュメモリ53aの用途がキャッシュの場合は、フラッシュメモリ53a内のOSaが書き込んだデータ(OSaの更新データ)の消去が必要となる。これは、OSaの更新データが、フラッシュメモリ53aだけでなく対応するLUに格納されているためである。また1つに、フラッシュメモリ53bの用途がデータディスクの場合は、フラッシュメモリ53b内のOSbの更新データをフラッシュメモリ53aにコピーする必要がある。これは、OSbの最新の更新データが、フラッシュメモリ53bのみに格納されている可能性が高いためである。
なお、本実施例では、LUに起動データが格納されていることを前提とし、LUに格納された起動データに基づき、サーバ5がOSを起動する場合を説明するが、これに限定されない。例えば、サーバ5は、LUに格納された起動データを一旦自身のフラッシュメモリ53に読み出し、その起動データに基づきOSを起動させてもよい。また、例えば、予めフラッシュメモリ53にOSが書き込まれる場合、起動データがLUに格納されていなくてもよい。
【0033】
なお、本実施例では、各OSが利用するLU及びリソース(フラッシュメモリ)は、それぞれ1つとするが、複数であってもよい。また、本実施例では、リソース(フラッシュメモリ)の用途507をそれぞれ1つに定めているが、複数の用途に利用されてもよい。
【0034】
図6は、リソース評価観点管理テーブル600である。
【0035】
リソース評価観点管理テーブル600は、リソースの評価観点毎の重み付けを示すテーブルである。例えば、リソース評価観点管理テーブル600は、リソースの評価観点毎のエントリを有する。各エントリは、リソース種別を示すリソース種別601と、評価の対象の値の種類を示す評価観点603と、当該評価観点の重要度を示す重み605とを有する。
【0036】
次に、管理サーバ1が行うOS起動処理を説明する。この処理は、管理サーバ1が、サーバにOSを起動させる処理であり、このための要求であるOS起動要求を受信したことを契機に開始される。
本実施例では、管理サーバ1が、サーバを指定したOS起動要求を受信した場合に、そのサーバで実行されているOSを別のサーバで起動する処理を説明する。具体的には、例えば、OS起動要求は、障害が発生したサーバを指定する情報であってもよく、障害が発生したサーバや、その障害を検知した他のサーバから送信されてもよい。また、例えば、OS起動要求は、管理者などの管理サーバ1のクライアントから、切替え元のサーバを指定したサーバを切替える旨の要求であってもよい。以下の説明では、起動対象となるOSを対象OSという。本実施例において対象OSは、OS起動要求により指定されたサーバにより実行されているOSである。また、以下の説明では、切替え先のサーバ、つまり、対象OSの起動先のサーバを起動サーバという。
【0037】
また、本実施例では、起動サーバは、電源OFFのサーバとしている。さらに、各サーバ5には、そのサーバ5で起動するOSにより書き込まれるデータ(更新データ)の一部又は全部を格納するリソースとして、1つのフラッシュメモリ53が対応づけられるとしている。しかし、これらの構成には限られない。なお、前述の通り、各サーバ5は、OSに対応するLUに格納された起動データにより、OSを起動するとするが、これに限られない。各サーバ5のリソース(フラッシュメモリ53)には、OSの更新データのみならず、OSの起動データが格納されていてもよい。
【0038】
図8は、管理プログラムによるOS起動処理のフローチャートである。
【0039】
管理サーバ1は、障害の発生したサーバ5を検知した際の、障害の発生したサーバ5を指定したOS起動要求を受信したことを契機に管理プログラム110を実行する。なお、以下の説明では、ステップを単に「S」と略記する。
【0040】
S801で、管理プログラム110は、起動サーバ決定処理を実行する。具体的には、例えば、管理プログラム110は、後述の切替え先・起動先決定プログラム111に処理を引き渡す。
【0041】
S803で、管理プログラム110は、サーバ起動前処理を実行する。具体的には、例えば、管理プログラム110は、後述のサーバ起動前処理プログラム114に処理を引き渡す。
【0042】
S805で、管理プログラム110は、サーバ起動処理を実行する。具体的には,例えば、管理プログラム110は、後述のサーバ起動処理プログラム115に処理を引き渡す。
【0043】
S806で、管理プログラム110は、サーバ起動後処理を実行する。具体的には、例えば、管理プログラム110は、後述のサーバ起動後処理プログラム116に処理を引き渡す。
【0044】
上記処理により、管理サーバ1は、障害の発生したサーバで実行されていたOSを、障害の発生した以外の最適なサーバ(起動サーバ)で起動させることができる。
【0045】
図9は、起動サーバ決定処理のフローチャートである。
【0046】
この処理は、図8のS801において、切替え先・起動先決定プログラム111が実行する処理である。
【0047】
この処理では、障害の発生したサーバの代替となって対象OSを起動する起動サーバとして、各サーバのフラッシュメモリの使用状況を考慮して適切なサーバを決定することができる。
【0048】
プログラム111は、サーバ管理テーブル400に登録されている全てのサーバ5について、それぞれ、S901(S903〜S907)の処理を実行する。
【0049】
S901で、プログラム111は、サーバ管理テーブル400を参照し、サーバの電源状態405が「OFF」であり、かつ、サーバ状態が「正常」であるかを判定する。サーバの電源状態が「ON」又はサーバ状態が「異常」の場合(S901;No)、プログラム111は、サーバ管理テーブル400の別のサーバを選択し、S901を繰り返す。
【0050】
一方、サーバの電源状態が「OFF」又はサーバ状態が「正常」の場合(S901;Yes)、プログラム111は、そのサーバを、対象OSを起動可能なサーバ(起動可能サーバ)であるとして取得する(S903)。そして、プログラム111は、リソース管理テーブル300を参照し、取得した起動可能サーバのサーバID303に対応するリソースID301を有するリソース、つまりその起動可能サーバが有するリソースを取得する。その起動可能サーバが有するリソースが複数ある場合は、全てのリソースを取得する。
【0051】
プログラム111は、その起動可能サーバが有する全てのリソースについて、S906、S907を実行する。プログラム111は、リソース評価値計算プログラム112に処理を引き渡す(S906)。そして、リソース評価値計算プログラム112により算出された各リソースの評価値を取得し、取得した評価値315によりリソース管理テーブル300を更新する(S907)。
【0052】
S909で、リソース管理テーブル300を参照し、評価値315の最も低いリソースを有する起動可能サーバを起動サーバとして決定する。
【0053】
上記処理により、プログラム111は、障害の発生したサーバで実行されていたOSを起動するサーバ(起動サーバ)として、最適なサーバを決定することができる。具体的には、プログラム111は、電源がOFFであり、かつ正常な状態のサーバが有するリソースの評価値に基づき、累積書込量の割合に基づく評価値の最も低いサーバを、起動サーバとして決定することができる。これにより、複数のサーバのリソース(フラッシュメモリ53)を均等に使用でき、複数のサーバが有するリソース(フラッシュメモリ53)の寿命を平準化できる。このため、サーバの寿命及びリプレイス期間よりもリソース(フラッシュメモリ53)の寿命が短くなってしまうことを防止することができる。
【0054】
図10は、リソース評価値計算プログラムのフローチャートである。
【0055】
リソース評価値計算プログラム112は、図9のS906の処理である。この処理において、プログラム112は、起動可能サーバが有するリソースの情報に基づき、起動可能サーバの評価値を算出する。
【0056】
S1001で、プログラム112は、リソース評価観点管理テーブル600を参照し、対象OSの情報に基づいて対象OSに対応するリソースの評価観点603及び重み605を取得する。以下の説明では、対象OSに対応するリソースを対象リソースという。
【0057】
S1003で、プログラム112は、リソースの評価観点毎に、対象リソースの累積書込量の割合を算出する。本実施例では、リソースの評価観点として、フラッシュメモリの累積書込回数と、フラッシュメモリの累積書込サイズとがある。このため、以下では、このステップにおける評価観点毎のそれぞれのステップを具体的に説明する(点線の枠内のステップ)。
【0058】
S1003−1で、プログラム112は、リソース管理テーブル300を参照し、対象リソースの書込回数上限値に対する累積書込回数の割合である書込回数割合を算出する。
【0059】
S1003−2で、プログラム112は、リソース管理テーブル300を参照し、対象リソースの書込サイズ上限値に対する累積書込サイズの割合である書込サイズ割合を算出する。
【0060】
S1009で、プログラム112は、対象リソースの評価観点毎の対象リソースの評価値を算出する。以下では、このステップにおける評価観点毎のそれぞれのステップを具体的に説明する(点線の枠内のステップ)。
【0061】
S1009−1で、プログラム112は、対象リソースについて、書込回数割合に重みを掛けた値を累積書込回数評価値として算出する。
【0062】
S1009−2で、プログラム112は、対象リソースについて、累積書込サイズ割合に重みを掛けた値を累積書込サイズ評価値として算出する。
【0063】
S1011で、プログラム112は、S1009で算出した評価観点毎の評価値、つまり累積書込回数評価値及び累積書込サイズ評価値、を合計した値を、対象リソースの評価値として算出する。そして、プログラム112は、算出した評価値によりリソース管理テーブル300を更新するとともに、算出した評価値をプログラム111に渡して処理を終了する。
【0064】
上記処理により、対象リソースの寿命の指標となる値を、評価値として算出できる。
【0065】
なお、この処理はS906のタイミングに関わらず、定期的に又は不定期に実行されていてよい。また、対象リソースの評価値は、上記の算出方法には限られない。例えば、対象リソースの残りの寿命の予測値を評価値として算出してもよい。
【0066】
なお、上記処理においては、累積書込回数と、累積書込サイズとの2つの評価観点毎の累積書込量の割合に基づく、リソースの評価値を算出したがこれに限られない。例えば、評価値は、累積書込回数又は累積書込サイズのどちらか一方の評価観点の累積書込量の割合に基づき算出されてもよいし、別の評価観点を加えてもよい。
【0067】
また、上記処理においては、対象リソースの評価値は、評価観点毎の評価値を加算することで算出していたが、どのような方法であってもよい。また、上記処理においては、評価観点毎の評価値は、その評価観点の重要度により重みを付けているが、これに限られない。
【0068】
図11は、サーバ起動前処理のフローチャートである。
【0069】
この処理は、管理サーバ1が起動サーバで対象OSが起動するために必要な設定を行う処理である。この処理は、図8のS803において、サーバ起動前処理プログラム114が実行する処理である。
【0070】
S1101で、プログラム114は、サーバ管理テーブル400を参照し、起動サーバの前回起動OSが対象OSであるか否かを判定する。判定の結果、起動サーバの前回起動OSが対象OSである場合(S1101;Yes)、プログラム114は、処理を終了する。
【0071】
一方、判定の結果、起動サーバの前回起動OSが対象OSでない場合(S1101;No)、プログラム114は、OS管理テーブル500を参照し、対象OSに対応するフラッシュメモリ(リソース)の用途を判定する。
【0072】
判定の結果、フラッシュメモリの用途がデータディスクの場合(S1103;データディスク)は、当該フラッシュメモリ内の更新データがLUに記憶されていない。このため、プログラム114は、サーバ管理テーブル400を参照し、対象OSを前回起動したサーバを特定し、特定したサーバが有するフラッシュメモリ内の更新データを、起動サーバのフラッシュメモリ53にコピーする指示を、特定したサーバ及び起動サーバに送信し(S1105)、S1109に処理を進める。なお、本実施例では、前回起動したサーバは、障害の発生したサーバである。
【0073】
一方、判定の結果、フラッシュメモリ53の用途がキャッシュの場合(S1103;キャッシュ)、プログラム114は、フラッシュメモリ53のデータの一部又は全部を消去する指示を起動サーバに送信し、S1109に処理を進める。なお、例えば、この指示を受信した起動サーバは、自身が前回起動したOSに関するフラッシュメモリ53内の全てのデータを消去してもよい。また、例えば、前回起動したOSの起動用のデータとそのOSが使用するキャッシュ領域内のデータがフラッシュメモリ53に格納されている場合、起動サーバは、そのキャッシュ領域内のデータのみを消去してもよい。
【0074】
S1109で、プログラム114は、対象OSを前回起動したサーバと、起動サーバの設定値を入れ替え、処理を終了する。なお、ここで設定値とは、BIOS設定の値、WWN(World Wide Name)などである。
【0075】
上記処理により、起動サーバで前回起動したOSが対象OSでない場合であっても、対象OSを起動する際に必要なデータを、対象OSを前回起動したサーバから取得することができる。
【0076】
具体的には、対象OSの更新データが、対象OSを前回起動したサーバのフラッシュメモリ53に格納されている場合であって、そのフラッシュメモリ53がデータディスクとして使用されている場合、フラッシュメモリ53内のデータを予め起動サーバへコピーすることで、起動サーバの電源をON時には、起動サーバをスムーズに起動させることができる。なお、データのコピーは、内蔵HDDを搭載しているサーバのコールドスタンバイ切替え方法と同様の方法で実現されてよい。
【0077】
また、起動サーバで起動されていたOSが、対象OS以外のOSである場合、このOSの更新データを、起動サーバから消去することができる。
【0078】
具体的には、対象OSの更新データが、対象OSを前回起動したサーバのフラッシュメモリ53に格納されている場合であって、対象OSを前回起動したサーバ5のフラッシュメモリ53がキャッシュとして使用されている場合、フラッシュメモリ53上の更新データの基となるデータはLUに格納されている。このため、このデータを消去することで、不要なデータをサーバに残すことを防止できる。なお、データの消去は、データ消去用のOSをPXE(preboot execution environment)ブートで起動するなどの方法で実現されてよい。
【0079】
また、対象OSが起動サーバで起動するために必要な設定変更ができる。具体的には、起動サーバの設定変更は、従来周知のサーバ障害発生時のコールドスタンバイ切替え方法と同様の方法で実現されてよい。
【0080】
上記処理では、S1105で、対象OSを前回起動したサーバのフラッシュメモリ53内のデータを、起動サーバのフラッシュメモリ53にコピーしていたが、これに限られない。例えば、対象OSを前回起動していたサーバの電源がOFFになった後、管理サーバ1が対象OSを前回起動したサーバのフラッシュメモリ53のバックアップをストレージ装置4へ書き込んでもよい。
【0081】
また、上記処理では、S1105において、起動サーバが対象OSを前回起動していたサーバ5にアクセスできない場合、例えば、そのサーバ5のフラッシュメモリ53の基となるLU内のデータを取得してもよい。これは例えば、対象OSを前回起動していたサーバ5のフラッシュメモリ53が、ライトスルーキャッシュとして機能している場合に効果的である。
【0082】
図12は、サーバ起動処理プログラムのフローチャートである。
【0083】
この処理は、管理サーバ1が起動サーバを起動させるための処理である。この処理は、図8のS805において、サーバ起動処理プログラム115が実行する処理である。
【0084】
S1201で、プログラム115は、起動サーバに対し、電源を「ON」する指示を送信し、処理を終了する。
【0085】
上記処理により、起動サーバが対象OSを起動することができる。なお、プログラム115は、起動サーバの電源を「ON」する指示に、電源を「ON」にする日時の情報を加えてもよい。これにより、この指示を受信した起動サーバは、その日時に電源を「ON」することができる。例えば、プログラム115は、自身の負荷が少ない時間帯にこの処理を行っておき、起動サーバの起動日時を設定することができる。
【0086】
図13は、サーバ起動後処理プログラムのフローチャートである。
【0087】
この処理は、起動サーバで対象OSを起動させた後に、管理サーバ1が行う処理である。この処理は、図8のS807において、サーバ起動後処理プログラム116が実行する処理である。
【0088】
S1301で、プログラム116は、サーバ管理テーブル400を参照し、起動サーバの前回起動OSが対象OSであるか否かを判定する。
【0089】
判定の結果、起動サーバの前回起動OSが対象OSでない場合(S1301;No)、プログラム116は、対象OSが前回起動したサーバのフラッシュメモリのデータを消去する指示を、その前回起動したサーバに送信する(S1303)。そして、プログラム116は、サーバ管理テーブル400について、対象OSが前回起動したサーバのサーバID401に対応する前回起動OS403の欄を削除し(S1305)、S1307に処理を進める。
【0090】
一方、判定の結果、起動サーバの前回起動OSが対象OSである場合(S1301;Yes)、プログラム114は、サーバ管理テーブル400の起動サーバの電源状態405を「ON」に変更し(S1307)処理をする。
【0091】
上記処理により、管理サーバ1は、OS起動処理が終了したそれぞれのサーバの情報を更新する事ができる。これにより、各サーバの実環境と、管理サーバが管理しているサーバの情報との整合性を保つことができる。
【0092】
また、上記処理により、起動サーバが、対象OSを前回起動したサーバと異なる場合、不要なデータをそのサーバに残すことを防止できる。また、対象OSを前回起動したサーバのフラッシュメモリのデータは最新の情報ではない不要なデータであるため、データを消去することで、データ漏洩などのセキュリティリスクを防止できる。特に、サーバは、多数のユーザが使用するため、不要なデータを消去しておく必要がある。
【実施例2】
【0093】
実施例2について、図7、14及び15を用いて説明する。実施例1と同様の構成については、同じ参照番号を付して説明する。また、実施例1と同様の構成については、説明を省略する場合がある。
【0094】
本実施例においては、例えば管理者により管理サーバ1のクライアントや入力装置へ入力された、OSを指定したOS起動要求を受信したことにより、OS起動処理(図8参照)が開始される場合を説明する。この処理においては、OS起動要求で指定されたOSを起動するサーバを、起動サーバとして決定する。なお、OS起動処理の開始の契機は、OS起動要求を管理者等から受信した場合に限られない。例えば、管理サーバ1において、予めOSの開始(及び終了)がスケジューリングされていてもよい。この場合、スケジューリングされたOSの開始時刻が、OS起動要求を受信したときに相当するものとする。
図7は、OSの対サーバ評価値管理テーブル700である。
【0095】
OSの対サーバ評価値管理テーブル700は、本実施例のOS引継処理において一時的に利用されるテーブルである。具体的には、このテーブル700は、後述する起動サーバ変更処理において、対象OSを前回起動したサーバの評価値を算出する際に作成される。なお、以下の説明において、最後に起動したOSが対象OSであり、且つ電源OFFになっているサーバを、前回起動サーバという。OSの対サーバ評価値管理テーブル700は、対象OS毎のエントリを有する。対象OSは、当該OSを識別するOSID701と、当該OSが利用するリソースを識別するリソースID703と、当該前回起動OSのサーバID705と、当該リソースの種別であるリソース種別707と、当該リソースの書込回数上限値709と、当該リソースの累積書込回数711と、当該リソースの書込サイズ上限値713と、当該リソースの累積書込サイズ715と、当該リソースの評価値717とを有する。なお、本実施例では、このテーブル300で管理されるリソースはフラッシュメモリ53のみであるが、他のリソースが管理されてもよい。また、リソース種別707、書込回数上限値709、累積書込回数711、書込サイズ上限値713及び累積書込サイズ715は、リソース管理テーブル300の同項目と同じであるため、説明を省略する。
【0096】
以下、本実施例のOS起動処理を説明する。
【0097】
図14は、起動サーバ変更処理のフローチャートである。
【0098】
本実施例において、この処理は、OS起動処理において、起動サーバ決定処理(図9)の後に行われる処理である。起動サーバ決定処理については、説明を省略する。
【0099】
S911で、プログラム111は、受信したOS起動要求がサーバを指定した要求であるか否かを判定する。サーバが指定されている場合(S911;Yes)、プログラム111は、処理を終了する。この場合は、図9のS909で決定された起動サーバが、起動サーバである。
【0100】
一方、サーバが指定されていない場合(S911;No)、つまり、対象OSの使用開始要求の場合、プログラム111は、S913に処理を進める。
【0101】
S913で、プログラム111は、サーバ管理テーブル400を参照し、S903で取得された起動可能サーバのうち、前回起動OS403が対象OSに一致するサーバを取得する。ここで取得したサーバは、正常状態であり電源がOFFのときで、かつ、対象OSの前回起動サーバが実行しているOSと同じOSを実行していたサーバ(前回起動サーバ)である。
【0102】
S915で、プログラム111は、OS管理テーブル500を参照し、対象OSの情報を取得する。
【0103】
S917で、プログラム111は、OSの対サーバ評価値計算プログラム113に処理を引き渡し、OSの対サーバ評価値計算プログラム113から対象OS起動サーバの評価値を取得する。
【0104】
S919で、プログラム111は、起動サーバの評価値がS917で取得した前回起動サーバの評価値を超えているか否かを判定する。判定の結果、起動サーバの評価値が前回起動サーバの評価値を超えている場合(S919;Yes)、前回起動サーバを起動サーバに変更し、処理を終了する。
【0105】
上記処理により、対象OSを起動するサーバとなる起動サーバに、フラッシュメモリの特性を考慮した最適なサーバを決定できる。
【0106】
また、OSを指定したOS起動要求を契機にOS起動処理が行われる場合には、前回起動サーバを含めた起動可能サーバの中から、最適な起動サーバを決定できる。
【0107】
なお、OSを指定したOS起動要求を契機にOS起動処理が行われる場合には、前回起動サーバも起動可能サーバに含めている。これは、前回起動サーバで対象OSを起動することで、対象OSの起動に関するデータを他のサーバのフラッシュメモリへコピーする必要がなくなることで、無駄な書込み及び消去を削減することができるからである。これにより、フラッシュメモリの劣化を防止することができる。つまり、起動サーバが前回起動サーバではない場合には、前回起動サーバのフラッシュメモリ53内のデータを起動サーバのフラッシュメモリにコピーし、さらに、コピー後には、そのデータを前回起動サーバのフラッシュメモリから消去しなければならない。書込み及び消去が劣化の原因となるフラッシュメモリにおいては、無駄な書込み及び消去を極力減らす必要がある。このため、前回起動サーバで対象OSを起動することで、無駄な書込及び消去を減らす事が可能となる。
【0108】
図15は、OSのサーバ評価値計算処理のフローチャートである。
【0109】
この処理は、図14のS917において、OSの対サーバ評価値計算プログラム113が実行する処理である。
【0110】
S1501で、プログラム113は、OS管理テーブル500を参照し、対象OSの情報を取得する。
【0111】
S1503で、プログラム113は、サーバ管理テーブル400を参照し、対象OSを前回起動OS403とするサーバ、つまり前回起動サーバのサーバID401を取得する。そして、プログラム113は、リソース管理テーブル300を参照し、取得した前回起動サーバが有する全てのリソースを対象リソースとし、対象リソースの情報(エントリ)を取得する。
【0112】
S1505で、プログラム113は、リソース評価観点管理テーブル600を参照し、対象リソースの評価観点603及び重み605を取得する。
【0113】
S1507で、プログラム113は、S1503で取得した対象リソースの情報によりOSの対サーバ評価テーブル700のエントリを追加し、追加した対象リソースについて、サーバID705に前回起動サーバのIDを設定する。
【0114】
S1509で、プログラム113は、対象リソースの補正後の累積書込回数及び補正後の累積書込サイズを設定することにより、OSの対サーバ評価値管理テーブル700を更新する。前回起動サーバが対象OSを起動する場合、他のサーバが対象OSを起動する場合に比べて、累積書込回数及び累積書込サイズの増加は少ないと予測できる。そこで、プログラム113は、前回起動サーバを優先させるために、累積書込回数及び累積書込サイズを減少させる補正を行う。以下では、このステップにおける評価観点毎のそれぞれのステップを具体的に説明する(点線の枠内のステップ)。
【0115】
S1509−1で、プログラム113は、対象リソースの累積書込回数を補正する。具体的には、例えば、プログラム113は、OSの対サーバ評価値管理テーブル700及びOS管理テーブル500を参照し、対象OSの1起動当たりの平均書込回数509に連続起動目標回数513を掛けた値を、累積書込回数309から引いた値を補正後の累積書込回数として算出する。そして、プログラム113は、補正後の累積書込回数711を、OSの対サーバ評価値管理テーブル700に設定する。
【0116】
S1509−2で、プログラム113は、対象リソースの累積書込サイズを補正する。具体的には、例えば、プログラム113は、OSの対サーバ評価値管理テーブル700及びOS管理テーブル500を参照し、対象リソースの1起動当たりの平均書込サイズ511に連続起動目標回数513を掛けた値を、累積書込サイズ313から引いた値を補正後の累積書込サイズとして算出する。そして、プログラム113は、補正後の累積書込サイズ715を、OSの対サーバ評価値管理テーブル700に設定する。
【0117】
S1511で、プログラム113は、対象リソースの補正後の累積書込回数及び補正後の累積書込サイズに基づき、S1011と同様にして、対象リソースの補正後の評価値を算出する。そして、プログラム113は、対象リソースの補正後の評価値により、OSの対サーバ評価値管理テーブル700の評価値717を更新し、処理を終了する。
【0118】
上記処理により、対象OSが前回起動サーバで起動された場合に、リソース(フラッシュメモリ)の使用を抑えられることを考慮し、リソースの評価値を算出できる。これにより、対象OSが前回起動サーバで動作する場合を優遇することで、無駄なリソースの使用を防止できる。
【0119】
具体的には、前回起動サーバについては、リソース評価値計算プログラムにおいて、補正後の累積書込回数及び補正後の累積書込サイズによって対象リソースの評価値が算出されることとなる。補正後の累積書込回数は、対象OSの1起動当たりの平均書込回数に連続起動目標回数513(図5)を掛けた値を、実際の累積書込回数から引いた値である。補正後の累積書込サイズについても同様である。上述の通り、前回起動サーバについては、リソース評価値計算プログラムにおいて、補正後の累積書込回数及び累積書込サイズに基づいて補正後の評価値が算出されるため、対象リソースの評価値が実際よりも低い値に算出され、前回起動サーバを起動サーバに優先的に選択できる。
なお、補正後の累積書込回数及び累積書込サイズの算出方法は、フラッシュメモリ53への書込回数及び書込サイズが多いとされる、OSを最初に起動したときの1起動当たりの書込回数及び書込サイズが考慮される方法であれば、上述の方法に限られない。例えば、あるOSを実行した後、対象OSを起動した場合の、前回起動サーバの1起動当たり書込回数及び書込サイズを前回起動サーバから取得し、累積書込回数及び累積書込サイズからこれらの値を引いた値を、補正後の累積書込回数及び累積書込サイズとしてもよい。
さらに、上記処理に代えて、前回起動サーバを優先させつつ、優先させすぎない処理を行ってもよい。これは、例えば、管理サーバ1が、前回起動サーバにおいて、対象OSが連続して起動した回数をカウントしており、連続起動目標回数以上になると優先しないような処理である。具体的には、例えば、対象OSの1起動当たりの平均書込回数×(連続起動目標回数−実際に連続して起動した回数)を補正後の累積書込回数としてもよい。なお、補正後の累積書込サイズについても同様である。
【0120】
起動サーバの判定の際に、補正後の累積書込回数評価値及び累積書込サイズ評価値を使用することで、対象OSが同じサーバ(前回起動サーバ)で連続して起動することを許容しつつ、計算機システム内の複数のサーバにおけるリソースの累積書込量を平準化できる。
【0121】
起動サーバ変更処理の後、実施例1と同様に、サーバ起動前処理、サーバ起動処理及びサーバ起動後処理が行われる(図8参照)。
【0122】
なお、本実施例では、サーバ起動後処理において(図13参照)、S1507の後、サーバ起動後処理プログラム116は、OSの対サーバ評価値管理テーブル700を更新し、処理を終了する。具体的には、プログラム116は、OSの対サーバ評価値管理テーブル700の起動サーバのエントリを削除する。
【実施例3】
【0123】
実施例3を説明する。実施例1及び2と同様の構成については、同じ参照番号を付して説明する。また、実施例1及び2と同様の構成については、説明を省略する場合がある。
【0124】
実施例1及び2では、物理サーバであるサーバ5の間でのOS起動処理を説明したが、仮想サーバ間でOS起動処理が行われてもよい。本実施例では、仮想サーバ間でOS起動処理が行われる場合を説明する。
【0125】
本実施例に係る計算機システムにおいては、サーバ5のメモリに格納されるプログラムに、ハイパーバイザが含まれる。この場合、CPU54がハイパーバイザを実行することにより、1つ以上の仮想サーバが提供される。従って、この1つ以上の仮想サーバが、サーバ5(物理サーバ)とフラッシュメモリ53を共有する。
【0126】
また、本実施例では、各サーバ5で稼働する1つ以上の仮想サーバが、それぞれ異なるOSを実行する場合がある。このため、各サーバ5のフラッシュメモリには、そのサーバ5で稼働する1つ以上の仮想サーバ上で起動するOSの更新データが格納される場合がある。また、フラッシュメモリには、ハイパーバイザの起動データ(及び更新データ)も格納される場合がある。なお、サーバ管理テーブル400において、前回起動OS403には、サーバ5で起動する1つ以上の仮想サーバのIDが含まれ、さらに、それら仮想サーバのIDに複数のOSのIDが対応づけられることとなる。また、OS管理テーブル500には、仮想サーバ上で起動するOSもエントリされることとなる。
【0127】
以下、本実施例のOS起動処理を説明する。本実施例のOS起動処理(図8参照)においては、OSに仮想サーバ上で起動するOSが含まれる以外は実施例1及び2と同様である。以下、実施例1及び2と異なる部分のみ補足的に説明する。
【0128】
本実施例の起動サーバ決定処理において(図9参照)、S901で、切替え先・起動先決定プログラム111は、サーバ管理テーブル400を参照し、サーバの電源状態405が「OFF」かつサーバ状態が「正常」の場合に加えて、サーバの電源状態405が「ON」であり、かつサーバ状態が「正常」であり、かつ対象OSが仮想サーバ上で起動するOSである場合に(S901;Yes)、S903〜S907を行う。
【0129】
一方、サーバ5の状態が「異常」であるか、又は対象OSが仮想サーバ上で起動するOSでない場合(S901;No)に、プログラム111は、サーバ管理テーブル400の別のサーバを選択し、S901を繰り返す。
【0130】
本実施例のサーバ起動前処理では(図13参照)、サーバ起動前処理プログラム114は、S1305における前回起動サーバのフラッシュメモリのデータのコピーについては、当該仮想サーバの更新データのみとする。
【0131】
また、サーバ起動前処理プログラム114は、S1307における前回起動サーバのフラッシュメモリのデータの消去についても、当該仮想サーバの更新データのみを消去するものとする。
【0132】
さらに、サーバ起動前処理プログラム114は、S1309において、例えば、仮想サーバのマイグレーション時に必要な設定など、ハイパーバイザの設定値を変更する場合もあってよい。
【0133】
本実施例のサーバ起動処理では(図14参照)、サーバ起動処理プログラム115は、S1401において、起動サーバに対する電源を「ON」の要求だけでなく、起動サーバとしての仮想サーバに対し、OS起動要求を送信してもよい。
【0134】
なお、上記処理は、仮想サーバ上で対象OSを起動する場合だけでなく、対象OSを実行している仮想サーバを実行しているハイパーバイザを、別の物理サーバで実行されているハイパーバイザに切替える場合にも適用できる。この場合、管理サーバ1は、ハイパーバイザ間(つまり、物理サーバ間)で仮想サーバの起動データや更新データをマイグレーションさせる指示をこれらの物理サーバに送信することとなる。このため、対象OSを実行するハイパーバイザを決定するために、物理サーバのフラッシュメモリの累積書込回数及び累積書込サイズ等を考慮することとなる。
【0135】
以上、幾つかの実施例を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0136】
また、上記実施例では、フラッシュメモリを用いる不揮発性メモリを対象として説明しているが、フラッシュメモリに代えて、他の不揮発性メモリ、例えばFeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(登録商標、Resistance RAM)を用いる不揮発性メモリデバイスに適用してもよい。
なお、上記実施例においては、OS起動処理として、OSの起動サーバを決定し起動サーバでOSを起動させていたが、起動対象はコンピュータプログラムであれば、OSに限られない。
【符号の説明】
【0137】
1…管理サーバ 2…ネットワークスイッチ 3…ファイバチャネルスイッチ 4…ストレージ装置 5…サーバ 53…フラッシュメモリ

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15