以下に図面を参照して、開示のディスク枯渇予測プログラム、情報処理装置、およびディスク枯渇予測方法の実施の形態を詳細に説明する。
図1は、本実施の形態にかかる情報処理装置101の動作例を示す説明図である。図1に示すシステム100は、情報処理装置101と、1以上のディスクとして、ディスクA、B、…とを有する。システム100は、なんらかのサービスをシステム100の利用者に提供する。例えば、システム100は、利用者にWebサービスを提供するシステムでもよいし、利用者にストレージサービスを提供するシステムでもよいし、利用者に仮想マシンを提供するシステムでもよい。また、システム100は、利用者に複数のサービスを提供してもよい。ディスクA、B、…は、それぞれ、各サービスで用いるデータを記憶する。また、ディスクA、B、…は、情報処理装置101内にあってもよいし、情報処理装置101とは異なる装置内にあってもよい。また、ディスクA、B、…は、磁気ディスクでもよいし、光学式ディスクでもよい。また、ディスクA、B、…は、円盤状の記憶媒体以外として、磁気テープや半導体メモリでもよい。
情報処理装置101は、各ディスクの空き容量を収集して、各ディスクの空き容量が所定の閾値以下となる未来の時点を予測するコンピュータである。以下、所定の閾値を、「空き容量閾値」と称する。また、ディスクの空き容量を収集する時点や、空き容量閾値以下と予測する時点は、どのような時間単位でもよく、例えば、月単位、1週間単位、日単位、1時間単位のどれでもよい。本実施の形態では、1日単位で、ディスクの空き容量を収集するとともに、空き容量閾値以下となる時点を予測するものとする。空き容量閾値以下と予測した日を、以下、「枯渇予測日」と称する。
空き容量閾値は、各ディスクの管理者が指定してもよいし、各ディスクの利用者が指定してもよい。また、情報処理装置101は、サーバでもよいし、パーソナル・コンピュータでもよい。
枯渇予測日を予測する方法としては、例えば、ある基点日におけるディスクの空き容量と、基点日より過去の日における空き容量とから一次式を生成し、生成した一次式を用いて予測するものが考えられる。一次式の生成としては、具体的には、傾きの値と切片の値とを求めればよい。
しかしながら、毎日のディスクの使用量が同じになることは少ないため、予測を行うプログラムを実行する日によって予測結果が大きくばらつくことになる。予測結果のばらつきを回避する方法として、例えば、当日から2日前のディスクの空き容量、または、当日から3日前のディスクの空き容量のいずれかを一次式に当てはめて予測することが考えられる。しかし、今日から何日前のディスクの空き容量を使用するのが適切かを決定することは困難であり、採用した日と当日とのディスクの空き容量の差に応じて予測結果が大きく異なることになる。例えば、空き容量が徐々に減少しているディスクについて、予測する際の基点となる時点の直近においてディスクの空き容量が一時的に増加に転じた場合、未来の時点におけるディスクの空き容量が現時点よりも増加するという予測をしてしまうおそれがある。
そこで、情報処理装置101は、当日を含む複数の基点日の各々の基点日と、各々の基点日より過去の複数の過去日の各々の過去日との組における空き容量が空き容量閾値以下となる日の出現回数に基づいて、枯渇予測日を決定する。これにより、情報処理装置101は、ディスクの空き容量の変化を多角的に捉えて予測精度を上げることができる。
以下、基点日と基点日より過去の過去日との組に対応して算出したディスクの空き容量が空き容量閾値以下となる日を、単に「予測日」と称する。また、複数の基点日の各々の基点日は、予測日を算出する際に基点となる日である。また、複数の基点日の最も未来の基点日は、ディスクの空き容量の最新データとなる日、すなわち、本実施の形態にかかる枯渇予測プログラムを実行する当日となることが好ましい。
図1に示す情報処理装置101は、ディスクAの枯渇予測日を決定するものとする。図1に示すグラフ111−1、2は、ディスクAの空き容量の時系列変化を示したものである。グラフ111−1、2の横軸は時刻であり、縦軸は空き容量である。グラフ111−1、2内に示すD1〜D5は、ディスクAの空き容量を収集した日であり、D1が当日であるものとする。まず、グラフ111−1が示すように、情報処理装置101は、D1を複数の基点日のうちの1つめの基点日として、D1とD2〜D4とのそれぞれの組に対応して、ディスクAの空き容量が空き容量閾値以下となる予測日を算出する。より具体的には、情報処理装置101は、D1とD2との組、D1とD3との組、D1とD4との組に対するそれぞれの一次式を生成し、空き容量閾値を示す直線との交点における時刻軸の日を予測日として求める。
グラフ111−1では、空き容量閾値を示す直線を点線で示し、D1とD2との組に対する一次式を長鎖線で示し、D1とD3との組に対する一次式を一点鎖線で示し、D1とD4との組に対する一次式を二点鎖線で示す。グラフ111−1が示すように、情報処理装置101は、D1とD4との組に対する一次式と、空き容量閾値を示す直線との交点の日を、予測日Pとして算出する。
また、グラフ111−2が示すように、情報処理装置101は、D2を基点日として、D2とD3〜D5とのそれぞれの組に対応して、ディスクAの空き容量が空き容量閾値以下となる予測日を算出する。より具体的には、情報処理装置101は、D2とD3との組、D2とD4との組、D2とD5との組に対するそれぞれの一次式を生成し、空き容量閾値を示す直線との交点における時刻軸の日を予測日として求める。
グラフ111−2では、空き容量閾値を示す直線を点線で示し、D2とD3との組に対する一次式を長鎖線で示し、D2とD4との組に対する一次式を一点鎖線で示し、D2とD5との組に対する一次式を二点鎖線で示す。グラフ111−2が示すように、情報処理装置101は、D2とD3との組に対する一次式と、空き容量閾値を示す直線との交点の日を、予測日Pとして算出する。そして、情報処理装置101は、算出した組に対応する予測日の出現回数に基づいて、ディスクAの空き容量が空き容量閾値以下となる枯渇予測日を決定する。グラフ111−1、2の例では、情報処理装置101は、複数の基点日の各々の基点日と各々の基点日より過去の過去日との組に対する一次式と、空き容量閾値を示す直線との交点として、予測日Pが最も多くなったとして、Pを枯渇予測日に決定する。
ここで、グラフ111−1、2を用いて、ディスクの空き容量の変化を多角的に捉えている根拠を説明する。例えば、D2−D3間におけるディスクAの空き容量の変化は、グラフ111−2が示すD2−D3を結ぶ直線として現れているとともに、グラフ111−1が示すD1−D3、グラフ111−2が示すD2−D4、D2−D5を結ぶ直線にも影響を与えている。このように、ディスクAの空き容量の変化を様々な角度から捉えているため、情報処理装置101は、ディスクAの空き容量の予測精度の劣化を抑えることができる。次に、情報処理装置101のハードウェア構成について図2を用いて説明する。
(情報処理装置101のハードウェア構成例)
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。情報処理装置101は、CPU201と、ROM202と、RAM203と、を含む。また、情報処理装置101は、ディスクドライブ204と、ディスク205と、通信インターフェース206と、を含む。また、情報処理装置101は、ディスプレイ207と、キーボード208と、マウス209とを含む。また、CPU201〜ディスクドライブ204と、通信インターフェース206〜マウス209とは、バス210によってそれぞれ接続される。
CPU201は、情報処理装置101の全体の制御を司る演算処理装置である。ROM202は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM203は、CPU201のワークエリアとして使用される揮発性メモリである。
ディスクドライブ204は、CPU201の制御に従ってディスク205に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ204には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ204が磁気ディスクドライブである場合、ディスク205には、磁気ディスクを採用することができる。また、ディスクドライブ204が光ディスクドライブである場合、ディスク205には、光ディスクを採用することができる。また、ディスクドライブ204がソリッドステートドライブである場合、ディスク205には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース206は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース206は、通信回線を通じてネットワークを介して、ディスクA、B、…等の他の装置に接続される。通信インターフェース206には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ207は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ207には、例えば、CRT(Cathode Ray Tube)、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード208は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード208は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス209は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス209は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
(情報処理装置101の機能構成例)
図3は、情報処理装置101の機能構成例を示すブロック図である。情報処理装置101は、制御部300を有する。制御部300は、判断部301と、算出部302と、計数部303と、決定部304と、を含む。制御部300は、記憶装置に記憶されたプログラムをCPU201が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図2に示したROM202、RAM203、ディスク205などである。また、各部の処理結果は、CPU201のレジスタや、CPU201のキャッシュメモリ等に格納される。
また、情報処理装置101は、空き容量蓄積テーブル311、予測結果テーブル312にアクセス可能である。空き容量蓄積テーブル311、予測結果テーブル312は、RAM203、ディスク205といった記憶装置に格納される。空き容量蓄積テーブル311は、ディスクごとに、各日の空き容量を記憶するテーブルである。空き容量蓄積テーブル311の記憶内容の一例は、図4で説明する。予測結果テーブル312は、ディスクごとに、枯渇予測の対象とするか否かを示す枯渇予測フラグと、予測日の一覧とを記憶するテーブルである。予測結果テーブル312の記憶内容の一例は、図10で説明する。
判断部301は、第1の差分と、第2の差分とに基づいて、算出部302の処理を実行するか否かを判断する。ここで、第1の差分とは、複数の基点日のうちの最も過去の基点日より過去の複数の過去日のうちの最も過去の過去日におけるディスクの空き容量と複数の基点日のうちのいずれかの基点日におけるディスクの空き容量との差分である。また、第2の差分とは、複数の基点日のうちディスクの空き容量の最新データとなる最新日におけるディスクの空き容量と空き容量閾値との差分である。いずれかの基点日は、複数の基点日のいずれでもよい。
ここで、複数の基点日の各々の基点日は、予測日を算出する際に基点となる日である。また、ディスクの空き容量の最新データとなる日は、本実施の形態にかかる枯渇予測プログラムを実行する当日となることが好ましい。例えば、ディスクの空き容量の最新データとなる最新日が当日であり、最新複数の基点日のうちの最も過去の基点日が、当日から1年前の日であり、最も過去の基点日より過去の複数の過去日のうちの最も過去の過去日が、当日から2年前の日であるとする。このとき、第1の差分は、当日から2年前の日におけるディスク容量と、当日から1年前までの間のいずれかの日におけるディスク容量との差分である。また、第2の差分は、当日におけるディスクの空き容量と空き容量閾値との差分である。
例えば、判断部301は、第1の差分/第2の差分がある閾値以下であれば、算出部302の処理を実行しないと判断する。また、判断部301は、第2の差分/第1の差分がある閾値以上であれば、算出部302の処理を実行しないと判断してもよい。また、判断部301は、第1の差分と、第2の差分とに基づいて、決定部304の処理を実行するか否かを判断してもよい。
また、判断部301は、算出部302が算出した予測日のばらつき度合いを示す値に基づいて、決定部304が決定する処理を実行するか否かを判断してもよい。ばらつき度合いを示す値としては、例えば、分散値、標準偏差等である。例えば、判断部301は、算出部302が算出した予測日の分散値がある閾値以上であれば、決定部304が決定する処理を実行しないと判断する。
算出部302は、空き容量蓄積テーブル311に基づいて、複数の基点日の各々の基点日と各々の基点日より過去の複数の過去日の各々の過去日との組に対応してディスクの空き容量が空き容量閾値以下となる予測日を算出する。空き容量蓄積テーブル311には、複数の基点日の各々の基点日におけるディスクの空き容量と、各々の基点日より過去の複数の過去日の各々の過去日におけるディスクの空き容量とが記憶されている。
例えば、算出部302は、各々の基点日と各々の過去日との組に対応して一次式を生成し、生成した一次式と、空き容量閾値の直線との交点における予測日を算出する。また、生成する例は、一次式でなくともよい。例えば、あるディスクが、あるサービスに用いられており、あるサービスの特徴から、ディスクの空き容量の減少量が、サービス開始から時間が経過するにつれ減少することがわかっているものとする。このとき、算出部302は、生成する式として、空き容量=a×時刻^c+bとして、aとbの値を求めてもよい。ここで、cは、予め指定した0より大きく1未満の実数である。
また、算出部302は、複数の基点日のうち最新の基点日と最新の基点日より過去の複数の過去日の各々の過去日との組に対応してディスクの空き容量が空き容量閾値以下となる予測日を算出してもよい。このとき、算出部302は、最新の基点日におけるディスクの空き容量と、最新の基点日より過去の複数の過去日の各々の過去日におけるディスクの空き容量とに基づいて算出する。また、算出部302は、算出した予測日の一覧を、予測結果テーブル312に格納する。
計数部303は、所定期間を分割した期間に対応して、期間に含まれる算出部302が算出した予測日の数を計数する。所定期間は、枯渇予測日があるであろう期間として、情報処理装置101の管理者によって予め設定される期間である。例えば、情報処理装置101は、単に、当日以降の全ての期間を所定期間として設定しておいてもよいし、当日以降から3か月先までの期間を所定期間として設定しておいてもよい。また、分割する期間もどのような期間でもよく、例えば、計数部303は、1か月、1週間、1日、1時間単位のいずれかで分割した期間に対応して、期間に含まれる算出部302が算出した日の数を計数する。
決定部304は、算出部302が算出した組に対応する予測日の出現回数に基づいて、ディスクの空き容量が空き容量閾値以下となる枯渇予測日を決定する。ここで、予測日の出現回数は、算出した予測日が出現した回数を計数した値である。例えば、算出部302が、予測日を、「2013/12/22」、「2013/12/23」、「2013/12/23」、「2013/12/24」と算出したとする。このとき、決定部304は、出現回数が2回で最多となる「2013/12/23」を、枯渇予測日として決定する。また、例えば、決定部304は、出現回数が最多となる予測日が複数ある場合には、最多となる予測日の平均となる日を、枯渇予測日として決定してもよい。
また、算出部302が、最新の基点日における予測日を算出したとする。このとき、決定部304は、予測結果テーブル312と、算出部302が算出した最新の時点における組に対応する予測日の出現回数とに基づいて、ディスクの空き容量が空き容量閾値以下となる予測日を決定してもよい。予測結果テーブル312は、最新の基点日以外の他の基点日の各々の基点日と当該各々の基点日より過去の複数の過去日の各々の過去日との組に対応したディスクの空き容量が空き容量閾値以下となる予測日を記憶する。
また、決定部304は、計数部303が計数した期間に含まれる算出した予測日の個数に基づいて、ディスクの空き容量が空き容量閾値以下となる枯渇予測日を決定してもよい。例えば、決定部304は、個数が最大となる期間そのものを枯渇予測日として決定してもよいし、個数が最大となる期間に含まれる予測日の平均値を枯渇予測日として決定してもよい。
図4は、空き容量蓄積テーブル311の記憶内容の一例を示す説明図である。空き容量蓄積テーブル311は、ディスクごとに、各時点の空き容量を記憶するテーブルである。図4に示す空き容量蓄積テーブル311は、ディスクA、B、…の空き容量を記憶する。空き容量蓄積テーブル311は、ディスクごとに、取得日と、空き容量と、というフィールドを含む。取得日フィールドには、空き容量を取得した日が格納される。空き容量フィールドには、空き容量の値が格納される。
次に、図5、6を用いて枯渇予測処理の動作例を示し、図7に枯渇予測の除外とする判断例を示す。以下の説明において、Dxは、基点となる日を示す。xは、1以上の整数である。例えば、D1は処理日当日を示す。また、例えば、D2は、処理日の前日を示す。Tyは、過去日までの期間を示す。yは、2以上の整数である。例えば、T2は、D1からD2までの2日間を示す。また、図5、図6では、空き容量を収集する収集期間を2年間=365×2=730日間とする。また、空き容量閾値を、8[Gバイト]とする。
図5は、枯渇予測処理の動作例を示す説明図(その1)である。情報処理装置101は、1つ目の基点日をD1とし、過去日までの期間をT2〜T365として、D1とT2との組、D1とT3との組、…、D1とT70との組、…、D1とT365との組、という各組のディスクの空き容量が閾値以下となる予測日を算出する。図5では、グラフ501を用いて、予測日を算出する例を示す。グラフ501の横軸は、時刻を示し、グラフ501の縦軸は、空き容量を示す。また、グラフ501内の実線は、空き容量の実績を示し、グラフ501内の点線は、空き容量閾値を示す。
具体的には、D1とT2との組の例では、情報処理装置101は、グラフ501上で、点(D1,D1における空き容量)と、T2の開始日となる点(D2,D2における空き容量)とを通る直線の傾きと切片とを求める。そして、情報処理装置101は、下記(1)式に基づいて、予測日を算出する。
予測日=(空き容量閾値−切片)/傾き…(1)
図5の例では、D2の例以外に、D1を基点日とした際のT3の開始日となるD3の点、D1を基点日とした際のT70の開始日となるD70の点、D1を基点日とした際のT365の開始日となるD365の点を示す。さらに、図5の例では、D1とT70との組における直線を、一点鎖線で示す。また、図5の例では、D1とT70との組における直線と、空き容量閾値を示す点線との交点の時刻P_D1−T70が、D1とT70との組における予測日となることを示す。
情報処理装置101は、収集期間の半分の日時まで、基点日を過去に1日ずつさかのぼる。図5の例では、D366までさかのぼる。図6の例では、複数の基点日のうちの最も過去の基点日として、基点日がD366となった例を示す。
図6は、枯渇予測処理の動作例を示す説明図(その2)である。情報処理装置101は、基点日をD366とし、過去日までの期間をT2〜T365として、D366とT2との組、D366とT3との組、…、D366とT70との組、…、D366とT365との組、という各組について予測日を算出する。
情報処理装置101は、基点日がD1であるときと同じように、(1)式を用いて予測日を算出する。図6の例では、D366とT70との組における直線と、空き容量閾値を示す点線との交点の時刻P_D366−T70が、D366とT70との組における予測日となることを示す。
図7は、枯渇予測の除外とする判断例を示す説明図である。図7では、対象のディスクに対して、本実施の形態における枯渇予測処理から除外する判断例を、グラフ501を用いて説明する。具体的には、本実施の形態における枯渇予測処理は、収集期間内の空き容量の変動差が少ない場合に、正しく予測できない場合がある。そこで、情報処理装置101は、収集期間の最も過去の日における空き容量と、収集期間の最新の日である処理日当日における空き容量とを用いて、収集期間内の空き容量の変動差が少ない場合を特定する。図7の例では、収集期間の最も過去の日はD730であり、処理日当日はD1である。情報処理装置101は、下記(2)式を満たす場合に、対象のディスクに対して、枯渇予測の対象から除外すると決定する。
A1/B≦0.1 …(2)
ここで、A1は、D730における空き容量からD1における空き容量を減じた値である。また、Bは、D1における空き容量から空き容量閾値を減じた値である。また、情報処理装置101は、下記(3)式を満たす場合に、対象のディスクに対して、枯渇予測を行わないと決定してもよい。
A2/B≦0.1 …(3)
ここで、A2は、D730における空き容量からD2における空き容量を減じた値である。また、情報処理装置101は、収集期間内で、空き容量が増加し続ける場合や、空き容量の変化がない状態が続いている場合、対象のディスクに対して、枯渇予測を行わないと決定してもよい。ここで、(2)式、(3)式を用いて枯渇予測を行うか否かを判断する場合、(1)式を用いて算出した予測日を用いないため、情報処理装置101は、(1)式を用いて予測日を算出する前に、(2)式、(3)式を用いて枯渇予測を行うか否かを判断してもよい。そして、枯渇予測を行わず、枯渇予測対象から除外する場合には、情報処理装置101は、対象のディスクに対して、(1)式を用いて予測日を算出する処理を行わなくてもよい。
また、情報処理装置101は、(1)式を用いて算出した予測日のばらつき度合いを示す値を用いて、対象のディスクに対して、枯渇予測を行うか否かを決定してもよい。例えば、情報処理装置101は、予測日の分散値が予め決めた閾値以上である場合、枯渇予測を行わないと決定する。
上述したいずれかの判断方法により、情報処理装置101は、予測対象のディスクに対して枯渇予測の対象のままとするか、枯渇予測対象から除外するのかを判断する。枯渇予測の対象のままとする場合、情報処理装置101は、予測結果テーブル312の対象ディスクに対して、枯渇予測フラグとして「可」を設定する。一方、枯渇予測対象から除外する場合、情報処理装置101は、予測結果テーブル312の対象ディスクに対して、「除外」を設定する。
図8は、枯渇予測を行うグラフの一例を示す説明図である。図8では、枯渇予測を行うグラフの例を示す。グラフ801は、ディスクAの空き容量の実績を示す。また、グラフ802は、ディスクBの空き容量の実績を示す。また、グラフ803は、ディスクCの空き容量の実績を示す。グラフ801〜803の横軸は時刻を示し、縦軸は、空き容量を示す。
図9は、枯渇予測の除外とするグラフの一例を示す説明図である。図9では、枯渇予測の除外とするグラフの例を示す。グラフ901は、ディスクDの空き容量の実績を示す。また、グラフ902は、ディスクEの空き容量の実績を示す。また、グラフ903は、ディスクFの空き容量の実績を示す。グラフ901〜903の横軸は時刻を示し、縦軸は、空き容量を示す。
図10は、予測結果テーブル312に格納された記憶内容を示す説明図である。図10(a)で示す予測結果テーブル312は、ディスクごとに、枯渇予測の対象とするか否かを示す枯渇予測フラグと、予測日の一覧とを記憶する。
図10の(a)に示す予測結果テーブル312は、ディスクAに対する枯渇予測フラグと、予測日の一覧を示す。具体的には、図10に示す予測結果テーブル312は、ディスクAに対する枯渇予測フラグが「可」であり、予測日の一覧が、レコード1000−1〜366に格納される。例えば、レコード1000−1は、基点日が「2013/4/1」とT2〜T365とのそれぞれの組に対する予測日を示す。
図10の(b)では、図10(a)で示す予測結果テーブル312に格納された予測日の一覧を柱状グラフ1002として示したものである。柱状グラフ1002の横軸は時刻を示し、縦軸は個数を示す。柱状グラフ1002は、予測日が「2013/12/23」となる組が最も多いことを示す。
情報処理装置101は、個数が最も多い「2013/12/23」を枯渇予測日として決定する。また、情報処理装置101は、個数の上位10の予測日を決定して出力してもよい。また、情報処理装置101は、当日の予測日のうちの、前日の上位10の予測日と当日の上位10の予測日との間で異なる予測日を出力してもよい。
図11は、枯渇予測の適用例を示す説明図である。図11では、ディスクBに対する枯渇予測日と、実際に空き容量閾値に到達する日とを比較した例を示す。図11の(a)は、ディスクBに対する予測日の一覧を柱状グラフ1101として示したものである。柱状グラフ1101の横軸は、時刻を示し、縦軸は、個数を示す。また、情報処理装置101は、(2)式および(3)式をそれぞれ適用して、A1/B=0.7546、A2/B=0.7534と算出し、(2)式および(3)式をともに満たさないため、ディスクBを枯渇予測の対象としたものとする。そして、情報処理装置101は、個数が最も多い「2013/12/23」を、枯渇予測日として決定する。
図11の(b)は、実際の空き容量閾値の遷移を、グラフ1102として示す。グラフ1102の横軸は時刻を示し、縦軸は空き容量を示す。グラフ1102が示すように、ディスクBにおいて、空き容量閾値に初めて到達したのは、「2014/01/06」であり、枯渇予測日として決定した「2013/12/23」から近い日となっている。
図12は、枯渇予測除外の適用例を示す説明図である。図12では、ディスクHに対する予測日と、空き容量閾値に到達する日とを比較した例を示す。図12の(a)は、ディスクHに対する予測日の一覧を柱状グラフ1201として示したものである。柱状グラフ1201の横軸は、時刻を示し、縦軸は、個数を示す。情報処理装置101は、(2)式および(3)式をそれぞれ適用して、A1/B=−0.418、A2/B=−0.4464と算出し、(2)式および(3)式をともに満たすため、ディスクHを枯渇予測の除外としたものとする。従って、柱状グラフ1201上では、「2013/8/7」が個数の最多の予測日となっているが、情報処理装置101は、枯渇予測日を決定しない。
図12の(b)では、実際の空き容量閾値の遷移を、グラフ1202として示す。グラフ1202の横軸は時刻を示し、縦軸は空き容量を示す。グラフ1202が示すように、ディスクHにおいて、「2013/8/7」近辺で、空き容量閾値に到達しておらず、枯渇予測の除外とした判断は正しいことがわかる。
次に、図13〜図17を用いて、情報処理装置101が実行する処理をフローチャートとして示す。
図13は、空き容量収集処理手順の一例を示すフローチャートである。空き容量収集処理は、各ディスクの空き容量を収集する処理である。また、空き容量収集処理は、1日1回、例えば、夜間のバッチ処理の一環として実行される。
情報処理装置101は、各サーバの各ディスクの空き容量を取得する(ステップS1301)。ステップS1301の処理について、情報処理装置101は、各サーバの各ディスクの識別情報を記憶するサーバ基本情報を参照することにより、各サーバの各ディスクを認識することができるものとする。そして、情報処理装置101は、取得した空き容量を空き容量蓄積テーブル311に格納する(ステップS1302)。ステップS1302の処理終了後、情報処理装置101は、空き容量収集処理を終了する。空き容量収集処理を実行することにより、情報処理装置101は、各サーバの各ディスクの空き容量を収集することができる。
図14は、枯渇予測差分可否処理手順の一例を示すフローチャートである。枯渇予測差分可否処理は、対象のディスクに対して枯渇予測を行う際に、前回算出した予測日を用いるか否かを判断する処理である。また、枯渇予測差分可否処理は、枯渇予測を行う際に実行される処理である。例えば、枯渇予測を1日1回行う場合、枯渇予測差分可否処理は、夜間のバッチ処理の一環として、空き容量収集処理が終わった後に実行される。
情報処理装置101は、前回の処理結果があるか否かを判断する(ステップS1401)。ここで、前回の処理結果は、例えば、枯渇予測を1日1回行う場合、1日前の枯渇予測処理において算出した予測日のことを示す。前回の処理結果がある場合(ステップS1401:Yes)、情報処理装置101は、前回の空き容量閾値と今回の空き容量閾値とが同一の値か否かを判断する(ステップS1402)。前回の空き容量閾値と今回の空き容量閾値とが同一の値である場合(ステップS1402:Yes)、情報処理装置101は、前回の収集期間と今回の収集期間とが同一か否かを判断する(ステップS1403)。前回の収集期間と今回の収集期間とが同一である場合(ステップS1403:Yes)、情報処理装置101は、前回の枯渇予測フラグが「可」か否かを判断する(ステップS1404)。
前回の処理結果がない、前回の空き容量閾値と今回の空き容量閾値とが異なる値である、前回の収集期間と今回の収集期間とが異なる場合、前回の枯渇予測フラグが「除外」である、のうちのいずれかの場合(ステップS1401:No、ステップS1402:No、ステップS1403:No、ステップS1404:No)、情報処理装置101は、枯渇予測全件処理を実行する(ステップS1405)。枯渇予測全件処理は、図15、図16で説明する。
一方、前回の枯渇予測フラグが「可」である場合(ステップS1404:Yes)、情報処理装置101は、枯渇予測差分処理を実行する(ステップS1406)。枯渇予測差分処理は、図17で説明する。ステップS1405、またはステップS1406の処理終了後、情報処理装置101は、枯渇予測差分可否処理を終了する。枯渇予測差分可否処理を実行することにより、情報処理装置101は、前回算出した予測日を用いることができる条件を満たす場合に、枯渇予測差分処理を実行することができる。
図15は、枯渇予測全件処理手順の一例を示すフローチャート(その1)である。また、図16は、枯渇予測全件処理手順の一例を示すフローチャート(その2)である。枯渇予測全件処理は、全ての基点日と過去日との組に対応する予測日を算出して、枯渇予測日を決定する処理である。
情報処理装置101は、空き容量蓄積テーブル311から、選択したディスクのD1〜収集期間の空き容量を取得する(ステップS1501)。次に、情報処理装置101は、iを1に設定する(ステップS1502)。また、情報処理装置101は、jを2に設定する(ステップS1503)。そして、情報処理装置101は、基点日をDi、基点日から過去日までの期間をTjに設定する(ステップS1504)。
次に、情報処理装置101は、(Tj,Tjにおける空き容量)、(Di,Diにおける空き容量)を通る直線の傾きと切片とを算出する(ステップS1505)。そして、情報処理装置101は、Di,Tjに対応する予測日を(空き容量閾値−切片)/傾きとして算出する(ステップS1506)。次に、情報処理装置101は、予測結果テーブル312に、算出したDi,Tjに対応する予測日を格納する(ステップS1507)。そして、情報処理装置101は、jをインクリメントする(ステップS1508)。
次に、情報処理装置101は、jが収集期間/2以下か否かを判断する(ステップS1509)。jが収集期間/2以下である場合(ステップS1509:Yes)、情報処理装置101は、ステップS1504の処理に移行する。
一方、jが収集期間/2より大きい場合(ステップS1509:No)、情報処理装置101は、iをインクリメントする(ステップS1510)。続けて、情報処理装置101は、iが収集期間/2以下か否かを判断する(ステップS1511)。iが収集期間/2以下である場合(ステップS1511:Yes)、情報処理装置101は、ステップS1503の処理に移行する。
iが収集期間/2より大きい場合(ステップS1511:No)、情報処理装置101は、A1を収集期間の開始日時点における空き容量−D1における空き容量に設定する(ステップS1601)。また、情報処理装置101は、A2を収集期間の開始日時点における空き容量−D2における空き容量に設定する(ステップS1602)。また、情報処理装置101は、BをD1における空き容量−空き容量閾値に設定する(ステップS1603)。
そして、情報処理装置101は、A1/Bが0.1以下、またはA2/Bが0.1以下か否かを判断する(ステップS1604)。ここで、ステップS1601〜S1604の処理は、ステップS1502〜S1511の処理結果を用いない。従って、情報処理装置101は、ステップS1502の処理より前に、ステップS1601〜S1604の処理を実行してもよい。そして、情報処理装置101は、S1604の処理でYesとなった場合、ステップS1502〜S1511の処理を行わなくてもよい。これにより、情報処理装置101は、不正確な予測結果となりそうな場合に、予測日を算出する処理を実行しないことにより、情報処理装置101にかかる負荷を抑制することができる。
A1/Bが0.1より大きい、かつA2/Bが0.1より大きい場合(ステップS1604:No)、情報処理装置101は、予測結果テーブル312に、対象のディスクの枯渇予測フラグを「可」に設定する(ステップS1605)。次に、情報処理装置101は、予測結果テーブル312から、予測日を日ごとに計数する(ステップS1606)。そして、情報処理装置101は、計数した日のうち、予測日の出現回数の上位10を決定する(ステップS1607)。また、情報処理装置101は、計数した日のうち、予測日の出現回数の一番多い日を、枯渇予測日に決定する(ステップS1608)。次に、情報処理装置101は、枯渇予測日と上位10の予測日とを出力する(ステップS1609)。
一方、A1/Bが0.1以下、またはA2/Bが0.1以下である場合(ステップS1604:Yes)、情報処理装置101は、予測結果テーブル312に、対象のディスクの枯渇予測フラグを「除外」に設定する(ステップS1610)。ステップS1609、またはステップS1610の処理終了後、情報処理装置101は、枯渇予測全件処理を終了する。枯渇予測全件処理を実行することにより、情報処理装置101は、枯渇予測日を得ることができる。
図17は、枯渇予測差分処理手順の一例を示すフローチャートである。枯渇予測差分処理は、基点日として処理日当日と過去時点との組に対応する予測日を算出して、枯渇予測日を決定する処理である。また、図17に示すステップS1709〜ステップS1712は、ステップS1606〜ステップS1609と同一の処理であるため、説明を省略する。
情報処理装置101は、空き容量蓄積テーブル311から、選択したディスクのD1〜収集期間の空き容量を取得する(ステップS1701)。次に、情報処理装置101は、jを2に設定する(ステップS1702)。そして、情報処理装置101は、基点日をD1、基点日から過去日までの期間をTjに設定する(ステップS1703)。次に、情報処理装置101は、(Tj,Tjにおける空き容量)、(D1,D1における空き容量)を通る直線の傾きと切片とを算出する(ステップS1704)。そして、情報処理装置101は、D1,Tjに対応する予測日を(空き容量閾値−切片)/傾きとして算出する(ステップS1705)。次に、情報処理装置101は、予測結果テーブル312に、算出したD1,Tjに対応する予測日を格納する(ステップS1706)。そして、情報処理装置101は、jをインクリメントする(ステップS1707)。
次に、情報処理装置101は、jが収集期間/2以下か否かを判断する(ステップS1708)。jが収集期間/2以下である場合(ステップS1708:Yes)、情報処理装置101は、ステップS1703の処理に移行する。一方、jが収集期間/2より大きい場合(ステップS1708:No)、情報処理装置101は、ステップS1709の処理に移行する。枯渇予測差分処理を実行することにより、情報処理装置101は、枯渇予測全件処理内より処理量を減らしつつ、枯渇予測全件処理と同精度の枯渇予測日を得ることができる。
以上説明したように、情報処理装置101によれば、当日を含む複数の基点日の各々の基点日と、各々の基点日より過去の複数の過去日の各々の過去日との組における空き容量が空き容量閾値以下となる日に基づいて、枯渇予測日を決定する。これにより、情報処理装置101は、ディスクの空き容量の変化を多角的に捉えて予測精度を上げることができる。また、ディスクの空き容量の直近の変化が大きく増加、または減少したとしても、予測結果に与える影響が小さいため、情報処理装置101は、ディスクの空き容量の予測精度の劣化を抑えることができる。また、ディスクの管理者は、枯渇予測日を閲覧して、例えば、枯渇予測日の2か月前から、少しずつディスクの記憶内容を、他のディスクに退避したり、圧縮したり、または削除したりして、ディスクの記憶領域の枯渇によるサービス停止を避けることができる。
また、情報処理装置101によれば、第1の差分と第2の差分とに基づいて、予測日を算出する処理を実行するか否かを判断してもよい。ここで、第1の差分と第2の差分とは、図3で説明したものである。これにより、情報処理装置101は、不正確となるであろうディスクの予測結果を除いて出力することができる。そして、情報処理装置101は、ディスクの管理者に不正確な予測結果による本来行わなくてもよい、ディスクの記憶内容の退避、圧縮、削除等の作業をさせないようにすることができる。また、情報処理装置101は、予測日を算出する処理を実行しないことにより、情報処理装置101にかかる負荷を抑制することができる。
また、情報処理装置101によれば、算出した予測日のばらつき度合いを示す値に基づいて、枯渇予測日を決定する処理を実行するか否かを判断してもよい。これにより、情報処理装置101は、不正確となるであろうディスクの予測結果を除いて出力することができる。
また、情報処理装置101によれば、最新の基点日と最新の基点日よりも過去の複数の過去日の各々との組に対応してディスクの空き容量が空き容量閾値以下となる時点を算出し、予測結果テーブル312の内容と合わせて、枯渇予測日を決定してもよい。これにより、情報処理装置101は、処理量を減らしつつ、枯渇予測全件処理と同精度の枯渇予測日を得ることができる。
なお、本実施の形態で説明したディスク枯渇予測方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ディスク枯渇予測プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ディスク枯渇予測プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
算出の基点となる複数の基点時点の各々の基点時点におけるディスクの空き容量と、前記各々の基点時点より過去の複数の過去時点の各々の過去時点における前記ディスクの空き容量とに基づいて、前記各々の基点時点と前記各々の過去時点との組に対応して前記ディスクの空き容量が所定の閾値以下となる予測時点を算出し、
算出した組に対応する前記予測時点の出現回数に基づいて、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点を決定する、
処理を実行させることを特徴とするディスク枯渇予測プログラム。
(付記2)前記決定する処理は、
算出した組に対応する前記予測時点のうち出現回数が最も多い予測時点を、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点として決定することを特徴とする付記1に記載のディスク枯渇予測プログラム。
(付記3)前記コンピュータに、
(a)前記複数の基点時点のうち最も過去の基点時点より過去の複数の過去時点のうち最も過去の過去時点における前記ディスクの空き容量と、前記複数の基点時点のうちいずれかの基点時点における前記ディスクの空き容量との差分と、(b)前記複数の基点時点のうち最新の最新時点における前記ディスクの空き容量と前記所定の閾値との差分とに基づいて、前記算出する処理を実行するか否かを判断することを特徴とする付記1または2に記載のディスク枯渇予測プログラム。
(付記4)前記コンピュータに、
算出した前記予測時点のばらつき度合いを示す値に基づいて、前記決定する処理を実行するか否かを判断することを特徴とする付記1〜3のいずれか一つに記載のディスク枯渇予測プログラム。
(付記5)前記算出する処理は、
前記複数の基点時点のうち最新の最新時点におけるディスクの空き容量と、前記最新時点より過去の複数の過去時点の各々の過去時点における前記ディスクの空き容量とに基づいて、前記最新時点と当該各々の過去時点との組に対応して前記ディスクの空き容量が所定の閾値以下となる予測時点を算出し、
前記決定する処理は、
前記最新時点以外の他の基点時点の各々の基点時点と当該各々の基点時点より過去の複数の過去時点の各々の過去時点との組に対応した前記ディスクの空き容量が所定の閾値以下となる時点を記憶する記憶部の記憶内容と、算出した前記最新時点における組に対応する前記予測時点の出現回数とに基づいて、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点を決定することを特徴とする付記1〜4のいずれか一つに記載のディスク枯渇予測プログラム。
(付記6)前記コンピュータに、
所定期間を分割した期間に対応して、前記期間に含まれる算出した前記予測時点の数を計数する、処理を実行させ、
前記決定する処理は、
前記期間に含まれる算出した前記予測時点の数に基づいて、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点を決定することを特徴とする付記1〜5のいずれか一つに記載のディスク枯渇予測プログラム。
(付記7)算出の基点となる複数の基点時点の各々の基点時点におけるディスクの空き容量と、前記各々の基点時点より過去の複数の過去時点の各々の過去時点における前記ディスクの空き容量とに基づいて、前記各々の基点時点と前記各々の過去時点との組に対応して前記ディスクの空き容量が所定の閾値以下となる予測時点を算出し、
算出した組に対応する前記予測時点の出現回数に基づいて、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点を決定する、
制御部を有することを特徴とする情報処理装置。
(付記8)コンピュータが、
算出の基点となる複数の基点時点の各々の基点時点におけるディスクの空き容量と、前記各々の基点時点より過去の複数の過去時点の各々の過去時点における前記ディスクの空き容量とに基づいて、前記各々の基点時点と前記各々の過去時点との組に対応して前記ディスクの空き容量が所定の閾値以下となる予測時点を算出し、
算出した組に対応する前記予測時点の出現回数に基づいて、前記ディスクの空き容量が前記所定の閾値以下となる枯渇予測時点を決定する、
処理を実行することを特徴とするディスク枯渇予測方法。