(57)【要約】【課題】ＳＳＤに書き込まれたデータを移動させることなく、複数のＳＳＤに対する負荷を制御することができるジョブスケジューリング装置を提供すること。【解決手段】本開示にかかるジョブスケジューリング装置１０は、各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、ＳＳＤへ書き込まれたデータの実績データ量、から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得するデータ管理部１１と、ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの不足データ量に基づいてジョブを実行する計算ノードを決定する決定部１２と、を備える。【選択図】図１
2020087060.tif 000002
【特許請求の範囲】
【請求項１】
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量、から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得するデータ管理部と、
ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する決定部と、を備えるジョブスケジューリング装置。
【請求項２】
前記決定部は、
それぞれのＳＳＤの不足データ量の差が小さくなるように、前記ジョブを実行する計算ノードを決定する、請求項１に記載のジョブスケジューリング装置。
【請求項３】
前記決定部は、
前記不足データ量が大きい順に選択された所定の数のＳＳＤのうち、データの書き込みが実行されているＳＳＤ以外のＳＳＤを搭載している計算ノードの中から前記ジョブを実行する計算ノードを決定する、請求項１又は２に記載のジョブスケジューリング装置。
【請求項４】
前記決定部は、
前記ジョブが実行された場合に書き込まれるデータ量を予測し、予測された前記データ量が所定の値を上回る場合に、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、請求項１乃至３のいずれか１項に記載のジョブスケジューリング装置。
【請求項５】
前記データ管理部は、
所定期間内に実行された全てのジョブに関連付けられた、ユーザ識別情報、ジョブ識別情報、及びそれぞれのジョブにおいて過去に書き込まれたデータ量をさらに取得し、
前記決定部は、
ジョブの実行を要求したユーザのユーザ識別情報及び当該ジョブのジョブ識別情報が一致するジョブにおいて過去に書き込まれたデータ量を、前記ジョブが実行された場合に書き込まれるデータ量と予測する、請求項４に記載のジョブスケジューリング装置。
【請求項６】
前記決定部は、
予測された前記データ量が、所定期間内に実行された全てのジョブが書き込んだデータ量の平均値を上回る場合に、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、請求項４又は５に記載のジョブスケジューリング装置。
【請求項７】
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量と、前記ＳＳＤへ書き込まれたデータの実績データ量と、前記目標書き込みデータ量及び前記実績データ量から算出される目標書き込みデータ量に対する不足データ量と、を管理するデータ管理装置と、
ジョブの実行が要求された場合、複数のＳＳＤの中から、前記データ管理装置から取得したそれぞれのＳＳＤの前記不足データ量、に基づいて前記ジョブを実行する計算ノードを決定するジョブスケジューリング装置と、を備える管理システム。
【請求項８】
前記ジョブスケジューリング装置は、
それぞれのＳＳＤの不足データ量の差が小さくなるように、前記ジョブを実行する計算ノードを決定する、請求項７に記載の管理システム。
【請求項９】
前記データ管理装置は、
所定期間内に実行された全てのジョブに関連付けられた、ユーザ識別情報、ジョブ識別情報、及びそれぞれのジョブにおいて過去に書き込まれたデータ量をさらに管理する、請求項７又は８に記載の管理システム。
【請求項１０】
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得し、
ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、スケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はジョブスケジューリング装置、管理システム、及びスケジューリング方法に関する。
【背景技術】
【０００２】
計算機システムの計算ノードがローカルストレージとしてＳＳＤを有することで、高速に読み書きが可能となりジョブ実行速度の向上につながる。そのため、ローカルストレージとしてＳＳＤを有する計算ノードが近年急速に普及している。このような計算機システムにおいては、特定のＳＳＤに負荷が集中することを避ける、もしくは、複数のＳＳＤが一斉に故障することを避けることが求められている。
【０００３】
特許文献１には、複数のＳＳＤを用いてＲＡＩＤ（Redundant Arrays of Independent Disk）を構成するストレージシステムの構成が開示されている。特許文献１に開示されているストレージシステムにおいては、ＳＳＤ間においてデータを移動させることによって、それぞれのＳＳＤへの書き込み頻度を調整する。例えば、ストレージシステムは、ＳＳＤに保存されたデータに対する書き込み回数の情報を用いて、ＳＳＤ間において移動させるデータを決定する。ストレージシステムは、ＳＳＤ間においてデータを移動させることによって、それぞれのＳＳＤに対する書き込み回数を平準化、もしくは、それぞれのＳＳＤに対する書き込み回数に差をつけるように制御する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１５５１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されているストレージシステムは、複数のＳＳＤを論理的に１つの記憶装置として用いるために、ＳＳＤ間においてデータを移動させることができる。しかし、計算機システムにおいては、計算ノードに搭載されるＳＳＤに書き込まれるデータはその計算ノードで実行されるジョブに関する入出力データであることが多い。そのため、あるジョブによってＳＳＤに書き込まれたデータをそのジョブを実行していない他の計算ノードに搭載されたＳＳＤ移動すると、入出力の度に計算ノード間の通信が発生してしまい、ジョブの実行速度が低下してしまうという問題がある。
【０００６】
本開示の目的は、ＳＳＤに書き込まれたデータを移動させることなく、ＳＳＤに対する負荷を考慮しながらジョブ割当てを行うことで複数のＳＳＤに対する負荷を制御することができるジョブスケジューリング装置、管理システム、及びスケジューリング方法を提供することにある。
【課題を解決するための手段】
【０００７】
本開示の第１の態様にかかるジョブスケジューリング装置は、各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量、から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得するデータ管理部と、ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する決定部と、を備える。
【０００８】
本開示の第２の態様にかかる管理システムは、各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量と、前記ＳＳＤへ書き込まれたデータの実績データ量と、前記目標書き込みデータ量及び前記実績データ量から算出される目標書き込みデータ量に対する不足データ量と、を管理するデータ管理装置と、ジョブの実行が要求された場合、複数のＳＳＤの中から、前記データ管理装置から取得したそれぞれのＳＳＤの前記不足データ量、に基づいて前記ジョブを実行する計算ノードを決定するジョブスケジューリング装置と、を備える。
【０００９】
本開示の第３の態様にかかるスケジューリング方法は、各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得し、ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する。
【発明の効果】
【００１０】
本開示により、ＳＳＤに書き込まれたデータを移動させることなく、複数のＳＳＤに対する負荷を制御することができるジョブスケジューリング装置、管理システム、及びスケジューリング方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるジョブスケジューリング装置の構成図である。
【図２】実施の形態２にかかる計算機システムの構成図である。
【図３】実施の形態２にかかるＳＳＤ寿命管理装置の構成図である。
【図４】実施の形態２にかかる管理テーブル記憶装置の構成図である。
【図５】実施の形態２にかかるＳＳＤ寿命管理テーブルが管理するデータを示す図である。
【図６】実施の形態２にかかるジョブ履歴テーブルが管理するデータを示す図である。
【図７】実施の形態２にかかるＳＳＤ寿命管理テーブルの更新処理の流れを示す図である。
【図８】実施の形態２にかかる目標書き込み回数設定部の構成図である。
【図９】実施の形態２にかかるジョブの割当先を決定する処理の流れを示す図である。
【図１０】実施の形態２にかかるデータ管理部が管理するデータを示す図である。
【図１１】実施の形態２にかかるジョブ履歴テーブルの更新処理の流れを示す図である。
【図１２】実施の形態２にかかるジョブ実行書き込み数管理部の構成図である。
【図１３】それぞれの実施の形態にかかるジョブスケジューリング装置、ＳＳＤ寿命管理装置、管理テーブル記憶装置の構成図である。
【発明を実施するための形態】
【００１２】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。図１を用いて実施の形態１にかかるジョブスケジューリング装置１０の構成例について説明する。ジョブスケジューリング装置１０は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置であってもよい。ジョブスケジューリング装置１０は、サーバ装置等であってもよい。
【００１３】
データ管理部１１及び決定部１２等のジョブスケジューリング装置１０を構成する構成要素は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、ジョブスケジューリング装置１０を構成する構成要素は、回路もしくはチップ等のハードウェアであってもよい。
【００１４】
データ管理部１１は、ＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、ＳＳＤへ書き込まれたデータの実績データ量、から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得する。ＳＳＤは、例えば、耐用年数が定められており、耐用年数に基づいてＳＳＤの交換予定時期が定められるとする。
【００１５】
交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量とは、交換予定時期が現時点から２年後と定められている場合に、現時点から１年後までにＳＳＤに対して書き込むデータ量の目標値であってもよい。所定期間とは、交換予定時期より前の任意の期間であってもよい。データ量の値は、例えば、バイト、メガバイト、ギガバイト、テラバイト等の単位を用いて示されてもよい。
【００１６】
ＳＳＤへ書き込まれたデータの実績データ量は、現時点までにＳＳＤへ書き込まれたデータ量の値であってもよい。目標書き込みデータ量に対する不足データ量は、例えば、目標書き込みデータ量から実績データ量を減算した値であってもよい。もしくは、目標書き込みデータ量に対する不足データ量は、目標書き込みデータ量に対する、目標書き込みデータ量から実績データ量を減算した値の割合を用いて示されてもよい。
【００１７】
データ管理部１１は、例えば、それぞれのＳＳＤから目標書き込みデータ量に対する不足データ量に関する情報を取得してもよい。もしくは、データ管理部１１は、目標書き込みデータ量及び実績データ量等を管理している管理装置から、目標書き込みデータ量に対する不足データ量に関する情報を取得してもよい。もしくは、データ管理部１１は、ジョブスケジューリング装置１０が目標書き込みデータ量及び実績データ量を管理する場合、ジョブスケジューリング装置１０内の制御部（不図示）等から目標書き込みデータ量に対する不足データ量に関する情報を取得してもよい。
【００１８】
決定部１２は、ジョブの実行が要求された場合、複数の計算ノードの中から、それぞれの計算ノードが搭載するＳＳＤの不足データ量に基づいて、ジョブを実行する計算ノードを決定する。ジョブは、例えば、ＳＳＤを搭載する計算ノードが実行する処理である。ジョブは、例えば、計算ノードが有する機能もしくは処理等を実行することであってもよい。例えば、計算ノードを操作もしくは管理するユーザが、ジョブの実行を要求する場合、計算ノードに対して特定の情報を入力する。つまり、計算ノードを操作もしくは管理するユーザが、ジョブの実行を要求する場合、キーボード等の入力装置の操作、もしくは、画面上のタッチ操作を行い、ジョブの実行を要求してもよい。決定部１２は、それぞれの計算ノードからジョブの実行が要求されたことを示すメッセージを取得してもよい。もしくは、決定部１２は、ユーザが、ネットワークを介して計算ノードへジョブの実行を指示する場合、ユーザが操作した通信装置から、計算ノードに対してジョブが実行されたことを示すメッセージを取得してもよい。
【００１９】
計算ノードは、ジョブを実行することによってＳＳＤに対してデータの書き込みを行う。ここで、決定部１２は、複数の計算ノードの中から、ジョブを実行する計算ノードを決定する。例えば、決定部１２は、不足データ量が最も多いＳＳＤを搭載する計算ノードをジョブ実行先として決定してもよい。もしくは、決定部１２は、不足データ量が予め定められた閾値よりも多いＳＳＤの中から任意のＳＳＤを搭載している計算ノードを、ジョブ実行先として決定してもよい。もしくは、決定部１２は、不足データ量が最も少ないＳＳＤを搭載している計算ノードをジョブ実行先として決定してもよい。もしくは、決定部１２は、不足データ量が予め定められた閾値よりも少ないＳＳＤの中から任意のＳＳＤを搭載している計算ノードを、ジョブ実行先として決定してもよい。
【００２０】
以上説明したように、ジョブスケジューリング装置１０は、ＳＳＤの交換時期を考慮した目標書き込みデータ量に対する不足データ量に関する情報を取得することができる。さらに、ジョブスケジューリング装置１０は、ＳＳＤに関する不足データ量に基づいて、ＳＳＤを搭載している計算ノードのジョブ実行先を決定することができる。その結果、ジョブスケジューリング装置１０は、複数のＳＳＤの書き込みデータ量を実質的に均一にすることも可能であり、ＳＳＤの交換時期をずらすように、ジョブ実行先を決定することも可能となる。つまり、ジョブスケジューリング装置１０は、ＳＳＤ間のデータの移動を行うことなく、ＳＳＤに対する負荷を制御することができる。
【００２１】
（実施の形態２）
続いて、図２を用いて実施の形態２にかかる計算機システムの構成例について説明する。図２の計算機システムは、ＳＳＤ寿命管理装置１００、管理テーブル記憶装置２００、ジョブスケジューリング装置１０、及び複数の計算ノード４１０を有している。ＳＳＤ寿命管理装置１００、管理テーブル記憶装置２００、ジョブスケジューリング装置１０、及び複数の計算ノード４１０は、ＬＡＮ（Local Area Network）を構成している。言い換えると、ＳＳＤ寿命管理装置１００、管理テーブル記憶装置２００、ジョブスケジューリング装置３００、及び複数の計算ノード４１０は、ＬＡＮもしくはＩＰネットワークを介して通信を行う。
【００２２】
ＳＳＤ寿命管理装置１００、管理テーブル記憶装置２００、ジョブスケジューリング装置３００、及び複数の計算ノード４１０（以下、ＳＳＤ寿命管理装置１００等、と称する）は、プロセッサがメモリに格納されたプログラムを実行することによって動作するコンピュータ装置であってもよい。また、ＳＳＤ寿命管理装置１００等の構成要素は、プロセッサがメモリに格納されたプログラムを実行することによって処理が実行されるソフトウェアもしくはモジュールであってもよい。または、ＳＳＤ寿命管理装置１００等の構成要素は、回路もしくはチップ等のハードウェアであってもよい。
【００２３】
それぞれの計算ノード４１０は、ＳＳＤ４１１を有している。言い換えると、それぞれの計算ノード４１０は、ＳＳＤ４１１を搭載している。図２においては、一つの計算ノード４１０が一つのＳＳＤ４１１を有している構成を示しているが、一つの計算ノード４１０が複数のＳＳＤ４１１を有してもよい。また、図２においては、ラック４００内に、複数の計算ノード４１０が収容されている構成を示している。
【００２４】
計算ノード４１０は、ユーザから指示されたジョブを実行することによって、ＳＳＤ４１１へデータを書き込む。ユーザは、例えば、ＬＡＮに接続されている通信装置等を操作することによって計算ノード４１０へジョブの実行を要求する。
【００２５】
続いて、図３を用いてＳＳＤ寿命管理装置１００の構成例について説明する。ＳＳＤ寿命管理装置１００は、目標書き込み回数設定部１１０及びジョブ実行書き込み数管理部１２０を有している。それぞれの計算ノード４１０が有するＳＳＤ４１１の交換予定時期は予め定められているとする。例えば、ＳＳＤ寿命管理装置１００を操作するユーザもしくは管理者が、それぞれのＳＳＤ４１１の交換予定時期を予め定めているとする。
【００２６】
目標書き込み回数設定部１１０は、それぞれの計算ノード４１０もしくは計算ノード４１０が有するＳＳＤ４１１の識別情報、それぞれのＳＳＤ４１１の交換予定時期、及び、それぞれのＳＳＤ４１１の書き込み上限数を、ＳＳＤ寿命管理テーブルに記録する。ＳＳＤ寿命管理テーブルは、管理テーブル記憶装置２００に保存されている。管理テーブル記憶装置２００の構成については後に詳述する。さらに、目標書き込み回数設定部１１０は、それぞれのＳＳＤに書き込まれたデータの実績数をＳＳＤ寿命管理テーブルに記録する。さらに、目標書き込み回数設定部１１０は、それぞれのＳＳＤ４１１における所定期間内の目標書き込み数を、ＳＳＤ寿命管理テーブルに記録する。例えば、目標書き込み回数設定部１１０は、交換予定時期、書き込み上限数、及び書き込まれたデータの実績数を用いて、所定期間内の目標書き込み数を決定する。さらに、目標書き込み回数設定部１１０は、所定期間内の目標書き込み数及び書き込まれたデータの実績数を用いて、目標書き込み数に対するデータの不足分を算出する。目標書き込み回数設定部１１０は、データの不足分を、ＳＳＤ寿命管理テーブルに記録する。
【００２７】
書き込み上限数、実績数、目標書き込み数等は、それぞれ、書き込み上限データ量、実績データ量、目標書き込みデータ量等と言い換えられてもよい。
【００２８】
ＳＳＤ寿命管理装置１００を操作もしくは管理するユーザが、ＳＳＤ４１１の識別情報、ＳＳＤ４１１の交換予定時期、及び、ＳＳＤ４１１の書き込み上限数をＳＳＤ寿命管理装置１００へ入力してもよい。目標書き込み回数設定部１１０は、入力された情報をＳＳＤ寿命管理テーブルへ記録してもよい。
【００２９】
ジョブ実行書き込み数管理部１２０は、ＳＳＤを管理する自己診断ツールを用いて、ジョブ実行前及びジョブ実行後におけるＳＳＤへのデータの書き込み数を取得してもよい。さらに、目標書き込み回数設定部１１０は、取得した情報から、ジョブを実行したことに伴うＳＳＤへの書き込まれたデータの実績数を算出してもよい。
【００３０】
続いて、図４を用いて管理テーブル記憶装置２００の構成例について説明する。管理テーブル記憶装置２００は、ジョブ履歴テーブル２１０及びＳＳＤ寿命管理テーブル２１１を有している。言い換えると、管理テーブル記憶装置２００は、ジョブ履歴テーブル２１０及びＳＳＤ寿命管理テーブル２１１を、管理テーブル記憶装置２００内のメモリ等に格納している。
【００３１】
ここで、図５を用いて、ＳＳＤ寿命管理テーブル２１１が管理するデータについて説明する。ＳＳＤ寿命管理テーブル２１１は、計算ノード４１０の識別情報、ＳＳＤ４１１の交換予定時期、ＳＳＤ４１１の書き込み上限数、目標書き込み数、書き込まれたデータの実績数、及び、目標書き込み数に対するデータの不足分を関連付けて管理している。または、ＳＳＤ寿命管理テーブル２１１は、計算ノード４１０の識別情報の代わりに、ＳＳＤ４１１の識別情報を管理してもよい。識別情報は、ＩＤと称されてもよい。また、識別情報もしくはＩＤは、ホスト名もしくはＩＰアドレス等であってもよい。
【００３２】
例えば、ＳＳＤ寿命管理テーブル２１１は、ＩＤがｎｏｄｅ１である計算ノード４１０が有するＳＳＤ４１１の交換予定時期が、２０１８年４月であり、さらに、ＳＳＤ４１１の書き込み上限数が、４５０テラバイト（ＴＢ）であることを示している。書き込み上限数は、４５０ＴＢＷと示されてもよい。また、ＳＳＤ寿命管理テーブル２１１は、ｎｏｄｅ１である計算ノード４１０における今期の目標書き込み数が２５０ＴＢであることを示している。今期とは、例えば、現在から１年間、つまり、２０１７年４月から２０１８年３月までであってもよい。さらに、ＳＳＤ寿命管理テーブル２１１は、ｎｏｄｅ１である計算ノード４１０が、ＳＳＤ４１１に書き込んだデータの実績数が２２０ＴＢであることを示している。これより、ＳＳＤ寿命管理テーブル２１１は、ｎｏｄｅ１である計算ノード４１０が、ＳＳＤ４１１に書き込むことができるデータ量を示す、目標に対する不足分が、３０ＴＢであることを示している。ＳＳＤ寿命管理テーブル２１１における、ｎｏｄｅ１以外の計算ノード４１０に関する説明を省略する。
【００３３】
また、ＳＳＤ４１１の書き込み上限数は、ＳＳＤを構成するセルのうち、不良セルの数を除いた残存セルにおいて書き込むことができるデータ量としてもよい。つまり、ＳＳＤ４１１の書き込み上限数は、現在の上限数から、不良セルの記録量を減算した値であってもよい。例えば、ＳＳＤ寿命管理装置１００は、ＳＳＤを保守するために用いられる管理装置（不図示）等から、不良セルの数等の不良セルに関する情報を取得してもよい。
【００３４】
また、ＳＳＤ寿命管理テーブル２１１においては、全てのＳＳＤの書き込み上限数が同じである場合に、ＳＳＤ交換時期が遅いＳＳＤほど、今期の目標書き込み数が少ないことを示している。
【００３５】
続いて、図６を用いて、ジョブ履歴テーブル２１０が管理するデータについて説明する。ジョブ履歴テーブル２１０は、ジョブ履歴ＩＤ、ユーザＩＤ、実行ジョブ名、書き込み数、及び実行時間を関連付けて管理している。ジョブ履歴ＩＤは、例えば、ジョブ履歴テーブル２１０において管理している情報の項目番号を示している。ユーザＩＤは、例えば、実行ジョブ名に示されるジョブの実行を要求したユーザのＩＤを示している。
【００３６】
例えば、ジョブ履歴テーブル２１０におけるジョブ履歴ＩＤ１に関連付けられている情報は、過去にｕｓｅｒ１が実行したＴＥＳＴ１とするジョブの書き込み数が２５０ギガバイト（ＧＢ）であり、実行時間が５時間であったことを示している。他のジョブ履歴ＩＤに関連付けられている情報については、詳細な説明を省略する。
【００３７】
続いて、図７を用いてＳＳＤ寿命管理テーブル２１１の更新処理の流れについて説明する。図７に示されるＳＳＤ寿命管理テーブル２１１の更新処理は、図８の構成を有する目標書き込み回数設定部１１０において実行される。目標書き込み回数設定部１１０は、ＳＳＤ情報取得部１１１及び目標書き込み回数計算部１１２を有している。
【００３８】
はじめに、ＳＳＤ情報取得部１１１は、図２に示される複数の計算ノード４１０について、それぞれの計算ノード４１０のＩＤと、それぞれの計算ノード４１０に搭載されるＳＳＤ４１１の交換予定時期及び書き込み上限数と、を取得する（Ｓ１１）。ＳＳＤ情報取得部１１１は、例えば、ＳＳＤ寿命管理装置１００を操作するユーザによって入力されたそれぞれの計算ノード４１０のＩＤと、それぞれの計算ノード４１０に搭載されるＳＳＤ４１１の交換予定時期及び書き込み上限数と、を取得してもよい。もしくは、ＳＳＤ情報取得部１１１は、ＳＳＤ寿命管理装置１００とは異なるサーバ装置から、それぞれの計算ノード４１０のＩＤと、それぞれの計算ノード４１０に搭載されるＳＳＤ４１１の交換予定時期及び書き込み上限数と、を取得してもよい。
【００３９】
次に、ＳＳＤ情報取得部１１１は、ステップＳ１１において取得した情報をＳＳＤ寿命管理テーブル２１１へ書き込む（Ｓ１２）。情報をＳＳＤ寿命管理テーブル２１１へ書き込む、とは、情報をＳＳＤ寿命管理テーブル２１１へ記録する、と言い換えられてもよい。ＳＳＤ情報取得部１１１は、ＬＡＮを介して管理テーブル記憶装置２００へ情報を書き込む。
【００４０】
次に、目標書き込み回数計算部１１２は、ＳＳＤ寿命管理テーブル２１１において管理されている、それぞれのＳＳＤ４１１の交換予定時期、書き込み上限数、及び書き込み実績数を参照し、今期の目標書き込み数を決定する（Ｓ１３）。例えば、目標書き込み回数計算部１１２は、ＳＳＤ情報取得部１１１を介して、それぞれのＳＳＤ４１１の交換予定時期、書き込み上限数、及び書き込み実績数を受け取る。目標書き込み回数計算部１１２は、ＳＳＤ寿命管理テーブル２１１に書き込み実績数が管理されていない場合、書き込み実績数を０として、目標書き込み数を計算する。例えば、目標書き込み回数計算部１１２は、書き込み上限数と書き込み実績数との差を、現在から交換予定時期までの年数を用いて割った値を、現在から１年間の目標書き込み数として算出してもよい。もしくは、目標書き込み回数計算部１１２は、目標書き込み数をカウントする期間に応じて、書き込み上限数と書き込み実績数との差を割る値を変更してもよい。例えば、目標書き込み回数計算部１１２は、目標書き込み数をカウントする期間が１か月である場合、現在から交換予定時期までの月数を用いて書き込み上限数と書き込み実績数との差を割ってもよい。
【００４１】
次に、目標書き込み回数計算部１１２は、算出した目標書き込み数を、ＳＳＤ寿命管理テーブル２１１へ書き込む（Ｓ１４）。目標書き込み数をカウントする期間が満了した後は、ステップＳ１３以降の処理が繰り返される。つまり、目標書き込み数は、目標書き込み数をカウントする期間が満了した後、もしくは、ＳＳＤが交換された後に更新されてもよい。
【００４２】
続いて、図９を用いてジョブの割当先を決定する処理の流れについて説明する。はじめに、データ管理部１１は、ユーザから入力されたジョブ実行要求を指示するメッセージを取得する（Ｓ２１）。データ管理部１１は、ユーザから複数の計算ノード４１０のうちのいずれかの計算ノード４１０へ入力されたジョブ実行要求に基づいて当該計算ノード４１０から送信された指示メッセージを受信してもよい。もしくは、データ管理部１１は、ジョブスケジューリング装置１０にユーザから直接入力されたジョブ実行要求を指示する指示メッセージを取得してもよい。もしくは、データ管理部１１は、ＬＡＮに接続している他の通信装置に入力された指示メッセージを、ＬＡＮを介して取得してもよい。指示メッセージには、ユーザＩＤ及び実行ジョブ名が含まれている。
【００４３】
次に、データ管理部１１は、ジョブ履歴テーブル２１０において、指示メッセージに含まれるユーザＩＤ及び実行ジョブ名が一致するジョブ履歴ＩＤを検索する（Ｓ２２）。次に、データ管理部１１は、指示メッセージに含まれるユーザＩＤ及び実行ジョブ名が一致するジョブ履歴ＩＤがあるか否かを判定する（Ｓ２３）。データ管理部１１は、指示メッセージに含まれるユーザＩＤ及び実行ジョブ名が一致するジョブ履歴ＩＤがあると判定した場合、一致するジョブ履歴ＩＤに関連付けられている書き込み数と実行時間とを読み出し、決定部１２へ出力する（Ｓ２４）。
【００４４】
また、データ管理部１１は、読み出した情報を、図１０に示す形式にて管理する。図１０には、要求があった順番に割り当てられるジョブＩＤと、ジョブを要求したユーザのユーザＩＤと、実行ジョブ名とが関連付けられている。また、図９においては、ジョブ履歴テーブル２１０から読み出した書き込み数が予想書き込み数としてジョブＩＤ等と関連付けて管理され、さらに、読み出した実行時間も関連付けて管理される。さらに、それぞれのジョブＩＤに関するジョブが割り当てられた計算ノードのＩＤと、そのジョブが実行中であるか否かを示す実行状況とも管理される。実行状況は、例えば、計算ノードのＩＤが割り当てられている場合、実行中として管理され、計算ノードのＩＤが割り当てられていない場合、実行待ちとして管理される。
【００４５】
次に、決定部１２は、ＳＳＤ寿命管理テーブル２１１から、それぞれのＳＳＤ４１１の目標書き込み数に対する不足分を取得し、ジョブの割当先を決定する（Ｓ２５）。ジョブの割当先は、ジョブの実行先と言い換えられてもよい。
【００４６】
ここで、ジョブの割当先の決定処理について、詳細に説明する。例えば、決定部１２は、以下の条件に従ってジョブの割当先を決定する。
（条件１）ＳＳＤ寿命管理テーブル２１１に記録された全てのジョブの書き込み数の平均値より、要求されたジョブの予想書き込み数が大きい場合、要求されたジョブを高負荷ジョブとする。
（条件２）高負荷ジョブは、目標書き込み数に対する不足分が大きい順に選択された複数の計算ノードのうちのいずれかの計算ノードに割り当てられる。選択される複数の計算ノードは、全待機ジョブ（全実行待ちジョブ）の総実行予定時間に占める高負荷ジョブの割合に応じて定まる。
（条件３）目標書き込み数に対する不足分が全ＳＳＤにおける不足分の平均値より小さいＳＳＤは、高負荷ジョブの割当先の対象外とする。
（条件４）他のジョブを実行中の計算ノードを割当先の対象外とする。
【００４７】
ここでは、図１０のジョブＩＤ３のジョブの割当先の決定処理について説明する。ジョブＩＤ３のジョブは、ジョブ履歴テーブル２１０に管理されている情報から、書き込み数は２５０ＧＢであり、実行時間は２６．０時間と予想される。条件１に従うと、ジョブ履歴テーブル２１０における全てのジョブの書き込み数の平均値は、１２４．８ＧＢであり、ジョブＩＤ３の予想書き込み数２５０ＧＢは、平均値よりも大きい。そのため、ジョブＩＤ３は、高負荷ジョブに相当する。
【００４８】
次に、条件２に従うと、全待機ジョブの総実行予定時間は、２７．５時間であり、高負荷ジョブの割合は、２６／２７．５＝０．９５となる。これより、目標書き込み数に対する不足分の上位９５％、つまり、全ての計算ノードが高負荷ジョブの割当先の対象となる。
【００４９】
次に、条件３に従うと、全てのＳＳＤにおける目標書き込み数に対する不足分の平均値は２３．５ＴＢであり、不足分が２３．５ＴＢよりも小さいｎｏｄｅ３及びｎｏｄｅ６は、割当先の対象外となる。また、条件４に従うと、現在割り当てのないｎｏｄｅ４及びｎｏｄｅ５が割当先の対象となる。
【００５０】
ｎｏｄｅ４又はｎｏｄｅ５がジョブを実行したと仮定した場合、目標書き込み数に対する不足分の分散が最小となる計算ノードを選択する場合、不足分の大きいｎｏｄｅ４が割当先として決定される。
【００５１】
または、一つのジョブが、複数の計算ノードに割り当てられてもよい。たとえば、ジョブＩＤ３が、３つの計算ノードに割り当てられることを必要とするジョブである場合について説明する。例えば、ジョブＩＤ３が割り当てられる３つの計算ノードを決定する場合、条件３に従うと、ｎｏｄｅ１、ｎｏｄｅ２、ｎｏｄｅ４、及びｎｏｄｅ５が割当先の対象となる。この中で、条件４を満たすｎｏｄｅ４及びｎｏｄｅ５が、割当先として決定される。ここで、ｎｏｄｅ１及びｎｏｄｅ２のうち、目標書き込み数に対する不足分の分散が最小となる計算ノードを選択する場合、不足分の大きいｎｏｄｅ１がさらに割当先として決定される。目標書き込み数に対する不足分の分散が最小となる計算ノードを選択することは、目標書き込み数に対する不足分が最大となる計算ノードを選択すると言い換えられてもよい。
【００５２】
割当先として要求される計算ノードの数に対して、条件４を満たす計算ノードが少ない場合、条件３を満たす計算ノードの中から、目標書き込み数に対する不足分の分散が最小となる計算ノードを選択してもよい。さらに、割当先として要求される計算ノードの数に対して、条件３を満たす計算ノードが少ない場合、条件２を満たす計算ノードの中から、目標書き込み数に対する不足分の分散が最小となる計算ノードを選択してもよい。
【００５３】
このようにして、一つのジョブに対して割り当てられる複数の計算ノードが決定されてもよい。
【００５４】
図９に戻り、ステップＳ２５においてジョブの割当先の計算ノードとしてｎｏｄｅ４が決定されると、データ管理部１１は、割当先の計算ノードのＩＤ、ジョブＩＤ３に関連付けられた情報を、ＳＳＤ寿命管理装置１００へ送信する（Ｓ２７）。次に、データ管理部１１は、ＳＳＤ寿命管理装置１００からジョブの実行を許可することを示す許可メッセージを受信すると、ｎｏｄｅ４に対して、ジョブの実行を指示するメッセージを送信する（Ｓ２８）。
【００５５】
ステップＳ２３において、データ管理部１１は、指示メッセージに含まれるユーザＩＤ及び実行ジョブ名が一致するジョブ履歴ＩＤがないと判定した場合、目標書き込み数に対する不足分が最大の計算ノードを、ジョブの割当先の計算ノードとして決定する（Ｓ２６）。もしくは、ステップＳ２６においては、データ管理部１１は、条件１を満たす計算ノードの中から、目標書き込み数に対する不足分が最大の計算ノードを、ジョブの割当先の計算ノードとして決定してもよい。
【００５６】
続いて、図１１を用いて、ジョブ履歴テーブル２１０の更新処理の流れについて説明する。図１１に示されるジョブ履歴テーブル２１０の更新処理は、図１２の構成を有するジョブ実行書き込み数管理部１２０において実行される。ジョブ実行書き込み数管理部１２０は、ジョブスケジューリング装置制御部１２１、書き込み数取得部１２２、ジョブ実行書き込み数計算部１２３、及びジョブ情報統合部１２４を有している。
【００５７】
はじめに、ジョブスケジューリング装置制御部１２１は、ジョブスケジューリング装置１０から、ジョブの割当先として決定された計算ノードのＩＤ、ジョブＩＤ３に関連付けられた情報を受信する（Ｓ３１）。以下においては、ジョブの割当先として決定された計算ノードのＩＤをｎｏｄｅ４として説明する。ジョブスケジューリング装置制御部１２１は、書き込み数取得部１２２へ、ジョブの割当先として決定された計算ノードのＩＤ、ジョブＩＤ３に関連付けられた情報を出力する。さらに、ジョブスケジューリング装置制御部１２１は、ジョブ情報統合部１２４へ、ジョブＩＤ３に関連付けられた情報を出力する。
【００５８】
次に、書き込み数取得部１２２は、ｎｏｄｅ４に搭載されるＳＳＤ４１１の自己診断ツール等からＳＳＤ４１１における現在の書き込み数を取得する（Ｓ３２）。自己診断ツールは、例えば、ｎｏｄｅ４に搭載されていてもよい。書き込み数取得部１２２は、ジョブ実行書き込み数計算部１２３へジョブＩＤ３に関連付けられた情報と、ＳＳＤ４１１における書き込み数に関する情報とを出力する。さらに、書き込み数取得部１２２は、ジョブスケジューリング装置制御部１２１へ、書き込み数の取得を完了したことを示すメッセージを出力する。
【００５９】
次に、ジョブスケジューリング装置制御部１２１は、ｎｏｄｅ４が書き込みを行うＳＳＤ４１１の書き込み数の取得を完了したことを示すメッセージを受け取ると、ジョブスケジューリング装置１０へジョブの実行を許可するメッセージを送信する（Ｓ３３）。
【００６０】
次に、ジョブスケジューリング装置制御部１２１は、ジョブスケジューリング装置１０からジョブの実行が終了したことを示すメッセージを受信する（Ｓ３４）。ジョブスケジューリング装置制御部１２１は、ジョブの実行が終了したことを示すメッセージを書き込み数取得部１２２へ出力する。次に、書き込み数取得部１２２は、ステップＳ３２と同様に、ｎｏｄｅ４が書き込みを行うＳＳＤ４１１の書き込み数を取得する（Ｓ３５）。書き込み数取得部１２２は、ジョブ実行書き込み数計算部１２３へジョブＩＤ３に関連付けられた情報と、ＳＳＤ４１１における書き込み数に関する情報とを出力する。
【００６１】
次に、ジョブ実行書き込み数計算部１２３は、ステップＳ３５において取得した書き込み数とステップＳ３２において取得した書き込み数との差を算出し、ｎｏｄｅ４がジョブを実行したことによるＳＳＤ４１１へのデータの書き込み数を決定する（Ｓ３６）。ジョブ実行書き込み数計算部１２３は、ｎｏｄｅ４がジョブを実行したことによるＳＳＤ４１１へのデータの書き込み数に関する情報をジョブ情報統合部１２４へ出力する。
【００６２】
次に、ジョブ情報統合部１２４は、ジョブ履歴テーブル２１０において、ジョブＩＤ３に関連付けられたユーザＩＤ及び実行ジョブ名と一致するジョブ履歴ＩＤにおける書き込み数を更新する（Ｓ３７）。ジョブ情報統合部１２４は、ジョブ履歴テーブル２１０における書き込み数を、ジョブ実行書き込み数計算部１２３から受け取った書き込み数に更新する。
【００６３】
以上説明したように、それぞれのＳＳＤ４１１に関する目標書き込み数には、異なる時期を示すＳＳＤ交換予定時期に基づいて決定されることによって、それぞれ異なる値が設定される。これによって、ジョブスケジューリング装置１０は、複数のＳＳＤが一斉に壊れないように、ジョブスケジューリングを行うことができる。その結果、ＳＳＤの保守交換時期を分散させることができる。つまり、特定の時期に、複数の計算ノードを停止させ、ＳＳＤの交換を行うことを避けることができるため、計算機システムを安定的に稼働させることが可能となる。
【００６４】
図１３は、ジョブスケジューリング装置１０、管理テーブル記憶装置２００、及びジョブスケジューリング装置３００（以下、ジョブスケジューリング装置１０等と称する）の構成例を示すブロック図である。図１３を参照すると、ジョブスケジューリング装置１０等は、ネットワーク・インターフェース１２０１、プロセッサ１２０２、及びメモリ１２０３を含む。ネットワーク・インターフェース１２０１は、通信システムを構成する他のネットワークノード装置と通信するために使用される。ネットワーク・インターフェース１２０１は、例えば、IEEE 802.3 seriesに準拠したネットワークインターフェースカード（NIC）を含んでもよい。もしくは、ネットワーク・インターフェース１２０１は、無線通信を行うために使用されてもよい。例えば、ネットワーク・インターフェース１２０１は、無線ＬＡＮ通信、もしくは３ＧＰＰ（3rd Generation Partnership Project）において規定されたモバイル通信を行うために使用されてもよい。
【００６５】
プロセッサ１２０２は、メモリ１２０３からソフトウェア（コンピュータプログラム）を読み出して実行することで、上述の実施形態においてフローチャートを用いて説明されたジョブスケジューリング装置１０等の処理を行う。プロセッサ１２０２は、例えば、マイクロプロセッサ、MPU（Micro Processing Unit）、又はCPU（Central Processing Unit）であってもよい。プロセッサ１２０２は、複数のプロセッサを含んでもよい。
【００６６】
メモリ１２０３は、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ１２０３は、プロセッサ１２０２から離れて配置されたストレージを含んでもよい。この場合、プロセッサ１２０２は、図示されていないI/Oインタフェースを介してメモリ１２０３にアクセスしてもよい。
【００６７】
図１３の例では、メモリ１２０３は、ソフトウェアモジュール群を格納するために使用される。プロセッサ１２０２は、これらのソフトウェアモジュール群をメモリ１２０３から読み出して実行することで、上述の実施形態において説明されたジョブスケジューリング装置１０等の処理を行うことができる。
【００６８】
図１３を用いて説明したように、ジョブスケジューリング装置１０等が有するプロセッサの各々は、図面を用いて説明されたアルゴリズムをコンピュータに行わせるための命令群を含む１又は複数のプログラムを実行する。
【００６９】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリを含む。磁気記録媒体は、例えばフレキシブルディスク、磁気テープ、ハードディスクドライブであってもよい。半導体メモリは、例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory）であってもよい。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００７０】
なお、本開示は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００７１】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量、から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得するデータ管理部と、
ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する決定部と、を備えるジョブスケジューリング装置。
（付記２）
前記決定部は、
それぞれのＳＳＤの不足データ量の差が小さくなるように、前記ジョブを実行する計算ノードを決定する、請求項１に記載のジョブスケジューリング装置。
（付記３）
前記決定部は、
前記不足データ量が大きい順に選択された所定の数のＳＳＤのうち、データの書き込みが実行されているＳＳＤ以外のＳＳＤを搭載している計算ノードの中から前記ジョブを実行する計算ノードを決定する、請求項１又は２に記載のジョブスケジューリング装置。
（付記４）
前記決定部は、
前記ジョブが実行された場合に書き込まれるデータ量を予測し、予測された前記データ量が所定の値を上回る場合に、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、請求項１乃至３のいずれか１項に記載のジョブスケジューリング装置。
（付記５）
前記データ管理部は、
所定期間内に実行された全てのジョブに関連付けられた、ユーザ識別情報、ジョブ識別情報、及びそれぞれのジョブにおいて過去に書き込まれたデータ量をさらに取得し、
前記決定部は、
ジョブの実行を要求したユーザのユーザ識別情報及び当該ジョブのジョブ識別情報が一致するジョブにおいて過去に書き込まれたデータ量を、前記ジョブが実行された場合に書き込まれるデータ量と予測する、請求項４に記載のジョブスケジューリング装置。
（付記６）
前記決定部は、
予測された前記データ量が、所定期間内に実行された全てのジョブが書き込んだデータ量の平均値を上回る場合に、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、請求項４又は５に記載のジョブスケジューリング装置。
（付記７）
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量と、前記ＳＳＤへ書き込まれたデータの実績データ量と、前記目標書き込みデータ量及び前記実績データ量から算出される目標書き込みデータ量に対する不足データ量と、を管理するデータ管理装置と、
ジョブの実行が要求された場合、複数のＳＳＤの中から、前記データ管理装置から取得したそれぞれのＳＳＤの前記不足データ量、に基づいて前記ジョブを実行する計算ノードを決定するジョブスケジューリング装置と、を備える管理システム。
（付記８）
前記ジョブスケジューリング装置は、
それぞれのＳＳＤの不足データ量の差が小さくなるように、前記ジョブを実行する計算ノードを決定する、請求項７に記載の管理システム。
（付記９）
前記データ管理装置は、
所定期間内に実行された全てのジョブに関連付けられた、ユーザ識別情報、ジョブ識別情報、及びそれぞれのジョブにおいて過去に書き込まれたデータ量をさらに管理する、請求項７又は８に記載の管理システム。
（付記１０）
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得し、
ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定する、スケジューリング方法。
（付記１１）
各計算ノードに搭載されているＳＳＤの交換予定時期に基づいて定められる所定期間内の目標書き込みデータ量、及び、前記ＳＳＤへ書き込まれたデータの実績データ量から算出される目標書き込みデータ量に対する不足データ量に関する情報を取得し、
ジョブの実行が要求された場合、複数のＳＳＤの中から、それぞれのＳＳＤの前記不足データ量に基づいて前記ジョブを実行する計算ノードを決定することをコンピュータに実行させるプログラム。
【００７２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００７３】
１０  ジョブスケジューリング装置
１１  データ管理部
１２  決定部
１００  ＳＳＤ寿命管理装置
１１０  目標書き込み回数設定部
１１１  ＳＳＤ情報取得部
１１２  目標書き込み回数計算部
１２０  ジョブ実行書き込み数管理部
１２１  ジョブスケジューリング装置制御部
１２２  書き込み数取得部
１２３  ジョブ実行書き込み数計算部
１２４  ジョブ情報統合部
２００  管理テーブル記憶装置
２１０  ジョブ履歴テーブル
２１１  ＳＳＤ寿命管理テーブル
３００  ジョブスケジューリング装置
４００  ラック
４１０  計算ノード
４１１  ＳＳＤ
【図１】
2020087060.tif 000003
【図２】
2020087060.tif 000004
【図３】
2020087060.tif 000005
【図４】
2020087060.tif 000006
【図５】
2020087060.tif 000007
【図６】
2020087060.tif 000008
【図７】
2020087060.tif 000009
【図８】
2020087060.tif 000010
【図９】
2020087060.tif 000011
【図１０】
2020087060.tif 000012
【図１１】
2020087060.tif 000013
【図１２】
2020087060.tif 000014
【図１３】
2020087060.tif 000015