(57)【要約】【課題】複数のストレージノード間の負荷の偏りを抑制することを目的とする。【解決手段】処理分散プログラムは、情報処理装置に、複数の装置に対する処理の要求を受信した場合、処理の過去の実行履歴における処理時間に基づいて、処理にかかる時間の予測値である処理予測時間を算出し、複数の装置毎のレプリケーションを含む予定が記録されたタイムスケジュールを参照し、算出した処理予測時間と記録されている予定とが重複する時間の総和に基づいて、要求された処理を実行する対象装置を複数の装置から選択する処理を実行させる。【選択図】図１０
2019040292.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
複数の装置に対する処理の要求を受信した場合、前記処理の過去の実行履歴における処理時間に基づいて、前記処理にかかる時間の予測値である処理予測時間を算出し、
前記複数の装置毎のレプリケーションを含む予定が記録されたタイムスケジュールを参照し、算出した前記処理予測時間と記録されている予定とが重複する時間の総和に基づいて、要求された前記処理を実行する対象装置を前記複数の装置から選択する、
処理を実行させることを特徴とする処理分散プログラム。
【請求項２】
前記情報処理装置に、
前記処理がデータの登録である場合、過去の実行履歴に基づいて、前記対象装置が前記データの登録を開始してからレプリケーション先の前記装置に前記データを転送するまでの時間の予測値である開始予測時間を算出し、
前記処理がデータの登録である場合、過去の実行履歴におけるレプリケーション時間に基づいて、レプリケーション時間の予測値であるレプリケーション予測時間を算出し、
前記処理予測時間、前記開始予測時間、および前記レプリケーション予測時間に基づいて、前記タイムスケジュールを更新する
処理を実行させることを特徴とする請求項１記載の処理分散プログラム。
【請求項３】
前記情報処理装置に、
前記処理予測時間に基づいて算出された処理終了予測時刻に、前記処理が終了していない場合、処理対象の前記データのうち前記処理が終了していない部分の処理予測時間を算出し、算出した該処理予測時間に基づいて、前記タイムスケジュールを更新する
処理を実行させることを特徴とする請求項１または２記載の処理分散プログラム。
【請求項４】
前記情報処理装置に、
前記レプリケーション予測時間に基づいて算出されたレプリケーション終了予測時刻に、前記レプリケーションが終了していない場合、登録対象の前記データのうち前記レプリケーションが終了していない部分のレプリケーション予測時間を算出し、算出した該レプリケーション予測時間に基づいて、前記タイムスケジュールを更新する
処理を実行させることを特徴とする請求項２に記載の処理分散プログラム。
【請求項５】
前記情報処理装置に、
前記処理が終了した際に、前記処理予測時間と、前記処理の実際の所要時間とに基づいて、前記処理予測時間の算出に用いる重みを更新する、
処理を実行させることを特徴とする請求項１乃至４のうち何れか１項に記載の処理分散プログラム。
【請求項６】
前記情報処理装置に、
前記レプリケーションが終了した際に、前記レプリケーション予測時間と、前記レプリケーションの実際の所要時間とに基づいて、前記レプリケーション予測時間の算出に用いる重みを更新する、
処理を実行させることを特徴とする請求項２に記載の処理分散プログラム。
【請求項７】
前記情報処理装置に、
前記処理がデータの登録である場合、
過去の時間あたりのデータ書き込み量の平均値に基づいて、前記処理予測時間を算出する、
処理を実行させることを特徴とする請求項１乃至６のうち何れか１項に記載の処理分散プログラム。
【請求項８】
過去の時間あたりのデータ書き込み量の平均値に基づいて、前記レプリケーション予測時間を算出する、
処理を実行させることを特徴とする請求項２に記載の処理分散プログラム。
【請求項９】
前記情報処理装置に、
前記処理がデータの参照である場合、
過去の時間あたりのデータ読み取り量の平均値に基づいて、前記処理予測時間を算出する、
処理を実行させることを特徴とする請求項１乃至８のうち何れか１項に記載の処理分散プログラム。
【請求項１０】
情報処理装置が、
複数の装置に対する処理の要求を受信した場合、前記処理の過去の実行履歴における処理時間に基づいて、前記処理にかかる時間の予測値である処理予測時間を算出し、
前記複数の装置毎のレプリケーションを含む予定が記録されたタイムスケジュールを参照し、算出した前記処理予測時間と記録されている予定とが重複する時間の総和に基づいて、要求された前記処理を実行する対象装置を前記複数の装置から選択する、
処理を実行することを特徴とする処理分散方法。
【請求項１１】
複数の装置に対する処理の要求を受信した場合、前記処理の過去の実行履歴における処理時間に基づいて、前記処理にかかる時間の予測値である処理予測時間を算出する算出部と、
前記複数の装置毎のレプリケーションを含む予定が記録されたタイムスケジュールを参照し、算出した前記処理予測時間と記録されている予定とが重複する時間の総和に基づいて、要求された前記処理を実行する対象装置を前記複数の装置から選択する選択部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理分散プログラム、処理分散方法、および情報処理装置に関する。
【背景技術】
【０００２】
複数のストレージノードにデータのレプリケーションを行うシステムの冗長化技術が用いられている。ストレージノードに対するデータの登録処理または参照処理を行う際に、例えば、プロキシサーバが、いずれかのストレージノードに処理を割り当てる。
【０００３】
関連する技術として、処理対象のファイルや処理中のタスクスケジュール状況から各ノードにタスク処理を割り当てて実行状態を管理する分散処理システムが提案されている（例えば、特許文献１を参照）。
【０００４】
また、関連する技術として、レプリケーション情報およびステータス情報をストレージ装置間で同期させるとともに、管理サーバ装置に送信する技術が提案されている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１８６３６４号公報
【特許文献２】特開２０１６−１６２１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プロキシサーバは、ストレージノードに対する処理要求を受信した場合、ストレージノードの処理負荷を算出して、処理負荷の低いストレージノードに処理を割り当てることが考えられる。例えば、プロキシサーバがデータを受信して、選択したストレージノードに送信する。そして、データを受信したストレージノードが、他のストレージノードにデータを転送することにより、レプリケーションが行われる。
【０００７】
しかし、ストレージノードの処理負荷の算出精度が低くなるに応じて、負荷の高いストレージノードに処理が割り当てられることにより、複数のストレージノード間での負荷の偏りが大きくなる可能性がある。
【０００８】
１つの側面として、本発明は、複数のストレージノード間の負荷の偏りを抑制することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、処理分散プログラムは、情報処理装置に、複数の装置に対する処理の要求を受信した場合、前記処理の過去の実行履歴における処理時間に基づいて、前記処理にかかる時間の予測値である処理予測時間を算出し、前記複数の装置毎のレプリケーションを含む予定が記録されたタイムスケジュールを参照し、算出した前記処理予測時間と記録されている予定とが重複する時間の総和に基づいて、要求された前記処理を実行する対象装置を前記複数の装置から選択する処理を実行させる。
【発明の効果】
【００１０】
１つの側面によれば、複数のストレージノード間の負荷の偏りを抑制することできる。
【図面の簡単な説明】
【００１１】
【図１】実施形態のシステムの全体構成の一例を示す図である。
【図２】プロキシサーバの一例を示す図である。
【図３】ストレージノードの一例を示す図である。
【図４】処理要求管理情報の一例を示す図である。
【図５】レプリケーション管理情報の一例を示す図である。
【図６】タイムスケジュールの一例を示す図である。
【図７】ストレージノード３（ＳＮ１）が記憶するレプリケーション管理情報の一例を示す図である。
【図８】ストレージノード３（ＳＮ２）が記憶するレプリケーション管理情報の一例を示す図である。
【図９】ストレージノード３（ＳＮ３）が記憶するレプリケーション管理情報の一例を示す図である。
【図１０】実施形態の処理の流れの一例を示すフローチャートである。
【図１１】再計算処理の流れの一例を示すフローチャート（その１）である。
【図１２】再計算処理の流れの一例を示すフローチャート（その２）である。
【図１３】適用例におけるタイムスケジュールを示す図である。
【図１４】プロキシサーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
＜実施形態のシステムの全体構成の一例＞
以下、図面を参照して、実施形態について説明する。図１は、実施形態のシステムの全体構成の一例を示す。
【００１３】
図１に示すように、実施形態のシステムは、複数のクライアントサーバ１とプロキシサーバ２と複数のストレージノード３とを含む。
【００１４】
クライアントサーバ１は、ユーザの操作に基づいて、ストレージノード３へのデータの登録処理要求、またはストレージノード３が記憶するデータの参照処理要求をプロキシサーバ２に送信する。クライアントサーバ１は、１台であってもよい。
【００１５】
プロキシサーバ２は、登録対象データとともにクライアントサーバ１からの登録処理要求を受信した場合、いずれかのストレージノード３へデータを送信する。プロキシサーバ２は、クライアントサーバ１からの参照処理要求を受信した場合、いずれかのストレージノード３からデータを取得する。プロキシサーバ２は、クライアントサーバ１からの要求に基づいて行う処理のスケジュール管理を行う。プロキシサーバ２は、情報処理装置の一例である。
【００１６】
ストレージノード３は、プロキシサーバ２から登録対象データを受信した場合、登録対象データを記憶し、さらに、他のストレージノード３に転送することによりレプリケーションを行う。ストレージノード３は、プロキシサーバ２から、参照処理要求を受信した場合、プロキシサーバ２に参照対象データを送信する。ストレージノード３は、例えば、データベースサーバであってもよく、Network Attached Storage（ＮＡＳ）等のストレージ装置であってもよい。
【００１７】
＜プロキシサーバの一例＞
図２は、プロキシサーバ２の一例を示す図である。プロキシサーバ２は、第１通信部２１と第１算出部２２と選択部２３と第２算出部２４と第３算出部２５と第１管理部２６と再算出部２７と更新部２８と第１制御部２９と第１記憶部３０とを含む。
【００１８】
第１通信部２１は、クライアントサーバ１およびストレージノード３と各種データの送受信を行う。クライアントサーバ１から、ストレージノード３へのデータの登録処理要求、またはストレージノード３が記憶するデータに対する参照処理要求を受信する。
【００１９】
第１通信部２１は、登録対象データとともに登録処理要求を受信した場合、いずれかのストレージノード３に登録対象データを送信する。第１通信部２１は、データの参照処理要求を受信した場合、いずれかのストレージノード３から参照対象データを取得し、クライアントサーバ１に送信する。
【００２０】
第１算出部２２は、ストレージノード３に対する登録処理要求または参照処理要求を受信した場合、登録処理または参照処理の過去の所要時間に基づいて、登録処理または参照処理の所要時間の予測値である処理予測時間をストレージノード３毎に算出する。登録処理または参照処理の過去の所要時間は、第１記憶部３０に記憶される過去の実行履歴における処理時間である。なお、第１算出部２２が算出する処理予測時間は、レプリケーションにかかる時間を含まない。
【００２１】
第１算出部２２は、要求された処理が登録処理である場合、プロキシサーバ２がストレージノード３にデータを書き込む予測時間をストレージノード３毎に算出する。該予測時間は、以下の式により算出される、データの書き込み時間を示すＴｐが用いられる。なお、Ｔｐは、後述するレプリケーションの予測時間にも用いられる。
【００２２】
【数１】
2019040292.tif 000003
【００２３】
Ｍｐｎ（ｐｕｔ多重度）は、各ストレージノード３における書き込み処理の現在の多重度を示す。書き込み処理は、ストレージノード３にデータを登録する（記憶する）処理である。Ｍｇｎ（ｇｅｔ多重度）は、各ストレージノード３における読み取り処理の現在の多重度を示す。読み取り処理は、ストレージノード３がデータを参照する処理である。
【００２４】
ｐ性能は、各ストレージノード３における書き込み処理性能である。ｐ性能は、例えば、過去の時間あたりのデータ書き込み量の平均値である。ｐ性能は、例えば、ある時間帯の処理結果に基づいて以下の式により予め算出され、登録処理の終了時に更新される。
ｐ性能＝総データ書き込み量／総書き込み時間
Ｗｐｓは、Ｔｐの算出における重みである。Ｗｐｓは、初期値として１が設定され、登録処理の終了時に以下の式（１−１）により補正される。Ｔｐｒは、実際の書き込み時間であり、登録処理の終了時に記録される。
Ｗｐｓ＝前回のＷｐｓ＋(Ｔｐｒ−Ｔｐ)×(Ｔｐ／Ｔｐｒ)・・・（１−１）
第１算出部２２は、要求された処理が参照処理である場合、プロキシサーバ２がストレージノード３のデータを読み取る予測時間をストレージノード３毎に算出する。該予測時間には、以下の式により算出されるＴｇが用いられる。
【００２５】
【数２】
2019040292.tif 000004
【００２６】
ｇ性能は、各ストレージノード３における読み取り処理性能である。ｇ性能は、例えば、過去の時間あたりのデータ読み取り量の平均値である。ｇ性能は、ある時間帯の処理結果に基づいて以下の式により予め算出され、参照処理の終了時に更新される。
【００２７】
ｇ性能＝総データ読み取り量／総読み取り時間
【００２８】
Ｗｇｓは、Ｔｇの算出における重みである。Ｗｇｓは、初期値として１が設定され、参照処理の終了時に以下の式（２−１）により補正される。Ｔｇｒは、実際の読み取り時間であり、参照処理の終了時に記録される。
【００２９】
Ｗｇｓ＝前回のＷｇｓ＋（Ｔｇｒ−Ｔｇ）×（Ｔｇ／Ｔｇｒ）・・・（２−１）
【００３０】
選択部２３は、複数のストレージノード３毎の処理の予定が記録されたタイムスケジュールを参照する。そして、選択部２３は、第１算出部２２が算出した処理予測時間と記録されている予定とが重複する時間の総和ＳＴ（ｎ）に基づいて、要求された処理を実行する対象のストレージノード３を複数のストレージノード３から選択する。ｎはストレージノード３を示す。選択部２３は、以下の式に基づいてストレージノード３毎にＳＴ（ｎ）を算出する。
【００３１】
【数３】
2019040292.tif 000005
【００３２】
ＭＳＧｒｅｑ(ｎ，ｔ)は、第１算出部２２が算出した処理予測時間である。ＭＳＧｉｎｇ(ｎ,ｉ,ｔ)は、ストレージノード３（ｎ）で既に開始されている処理を進めている処理iについて、ＭＳＧｒｅｑ(ｎ，ｔ)と重複する時間である。ｐは、ストレージノード３（ｎ）で既に開始されている処理を進めている処理の数である。選択部２３は、各ストレージノード３について、重複する時間の総和ＳＴ（ｎ）を算出し、最小の値（ｍｉｎ（ＳＴ（ｎ）））に該当するストレージノード３を選択する。
【００３３】
第２算出部２４は、要求された処理がデータの登録である場合、過去の実行履歴に基づいて、レプリケーションの開始予測時間ＲＴｓを算出する。第２算出部２４は、開始予測時間ＲＴｓは、選択部２３に選択されたストレージノード３がデータの登録を開始してからレプリケーション先のストレージノード３にデータを転送するまでの時間である。また、第２算出部２４は、登録処理開始時刻に開始予測時間ＲＴｓを加算して、レプリケーション開始予測時刻を算出する。以下、ＲＴｓの算出に用いるベクトルについて、説明する。
【００３４】
ベクトルＥは、以下の式のように表される。ｂｅｆ（Ｍｇｎ）は、選択されたストレージノード３の以前（例えば、直前）のレプリケーション処理におけるＭｇｎである。ｂｅｆ（Ｍｐｎ）は、選択されたストレージノード３の以前（例えば、直前）の処理におけるＭｐｎである。ｂｅｆ（Ｒｔｓ）は、選択されたストレージノード３の以前（例えば、直前）の処理の開始時点におけるＲｔｓである。
【００３５】
Ｅ＝（ｘ１，ｙ１，ｚ１）＝（ｂｅｆ（Ｍｇｎ），ｂｅｆ（Ｍｐｎ），ｂｅｆ（Ｒｔｓ））
【００３６】
ベクトルＡは、以下の式のように表される。ａｖｅ（Ｍｇｎ）は、選択されたストレージノード３における過去のＭｇｎの平均値である。ａｖｅ（Ｍｐｎ）は、選択されたストレージノード３における過去のＭｐｎの平均値である。ａｖｅ（Ｒｔｓ）は、選択されたストレージノード３における過去のＲｔｓの平均時間である。
【００３７】
Ａ＝（ｘ２，ｙ２，ｚ２）＝（ａｖｅ（Ｍｇｎ），ａｖｅ（Ｍｐｎ），ａｖｅ（Ｒｔｓ））
【００３８】
なお、ベクトルＥおよびベクトルＡの各要素の初期値は０であるとする。すなわち、ストレージノード３において、過去に登録処理および参照処理のいずれも行われていない場合、ベクトルＥおよびベクトルＡの各要素は０となる。
【００３９】
ベクトルＰは、以下の式のように表される。ベクトルＰに含まれるＭｇｎ，Ｍｐｎ，およびＲｔｓは、算出時点における選択されたストレージノード３のＭｇｎ，Ｍｐｎ，およびＲｔｓである。
【００４０】
Ｐ＝（ｘ３，ｙ３，ｚ３）＝（Ｍｇｎ，Ｍｐｎ，Ｒｔｓ）
【００４１】
方向ベクトルＵは、以下のように表される。
【００４２】
Ｕ＝（ａ，ｂ，ｃ）＝（ｘ２−ｘ１，ｙ２−ｙ１，ｚ２−ｚ１）
【００４３】
空間における直線方程式は、以下のように表される。
【００４４】
（ｘ３−ｘ１）／ａ＝（ｙ３−ｙ１）／ｂ＝（ｚ３−ｚ１）／ｃ
【００４５】
上記直線方程式において、ｚ３（ＲＴｓ）以外の値は既知であるため、第２算出部２４は、上記直線方程式に既知の値を当てはめることにより、ＲＴｓを算出することができる。
【００４６】
第３算出部２５は、要求された処理がデータの登録である場合、過去の実行履歴におけるレプリケーション時間に基づいて、レプリケーションにかかる時間の予測値であるレプリケーション予測時間を算出する。複製先のストレージノード３におけるレプリケーション予測時間は、該ストレージノード３に書き込む時間であり、式（１）により算出したＴｐが用いられる。複製元のストレージノード３のレプリケーション予測時間は、レプリケーションが開始されてから、全ての複製先のストレージノード３に対するレプリケーションが終了するまでの予測時間となる。
【００４７】
第１管理部２６は、後述する処理要求管理情報、レプリケーション管理情報、およびタイムスケジュールを管理する。第１管理部２６は、例えば、第１算出部２２が算出した処理予測時間、第２算出部２４が算出した開始予測時間、および第３算出部２５が算出したレプリケーション予測時間に基づいて、ストレージノード３毎のスケジュールを含むタイムスケジュールを更新する。第１管理部２６は、例えば、処理の終了時に、処理要求管理情報およびストレージ管理情報の終了時刻を記録する。タイムスケジュール、処理要求管理情報およびストレージ管理情報について、詳細は後述する。
【００４８】
再算出部２７は、処理終了予測時刻を既に経過しており、かつ、処理が終了していない場合、処理対象のデータのうち処理が終了していない部分の処理予測時間を算出し、算出した予測時間に基づいて、タイムスケジュールを更新する。再算出部２７は、例えば、処理が登録処理である場合、式（１）の「データ量」に登録処理が終了していない部分のデータ量を設定し、Ｔｐを算出する。再算出部２７は、例えば、処理が参照処理である場合、式（２）の「データ量」に参照処理が終了していない部分のデータ量を設定し、Ｔｇを算出する。
【００４９】
再算出部２７は、レプリケーション終了予測時刻を既に経過しており、かつ、レプリケーションが終了していない場合、レプリケーション対象のデータのうちレプリケーションが終了していない部分のレプリケーション予測時間を算出する。再算出部２７は、算出したレプリケーション予測時間に基づいて、タイムスケジュールを更新する。再算出部２７は、例えば、式（１）の「データ量」にレプリケーションが終了していない部分のデータ量を設定し、Ｔｐを算出する。
【００５０】
更新部２８は、処理終了時に、処理予測時間と処理の実際の所要時間に基づいて、重み（ＷｇｓまたはＷｐｓ）を更新する。更新部２８は、処理が登録処理である場合、Ｔｐｒに実際の登録処理時間を設定し、Ｔｐに処理予測時間を設定し、上記式（１−１）によりＷｐｓを更新する。更新部２８は、処理が参照処理である場合、Ｔｇｒに実際の参照処理時間を設定し、Ｔｇに処理予測時間を設定し、上記式（２−１）によりＷｇｓを更新する。
【００５１】
更新部２８は、レプリケーション終了時に、レプリケーション予測時間と実際のレプリケーション所要時間に基づいて、重み（Ｗｐｓ）を更新する。更新部２８は、Ｔｐｒに実際のレプリケーション所要時間を設定し、Ｔｐにレプリケーション予測時間を設定し、上記式（１−１）によりＷｐｓを更新する。
【００５２】
第１制御部２９は、プロキシサーバ２の各種制御を行う。
第１記憶部３０は、ストレージ管理情報、処理要求管理情報、およびタイムスケジュールを記憶する。
【００５３】
図３は、ストレージノード３の一例を示す図である。ストレージノード３は、第２通信部３１と第２制御部３２と第２管理部３３と第２記憶部３４とを含む。
【００５４】
第２通信部３１は、プロキシサーバ２から登録対象データを受信する。また、第２通信部３１は、プロキシサーバ２に参照対象のデータを送信する。
【００５５】
第２通信部３１は、ストレージノード３がレプリケーションにおける送信元である場合、複製先のストレージノードに登録対象データを送信する。第２通信部３１は、ストレージノード３がレプリケーションにおける送信先である場合、複製元のストレージノード３に登録対象データを送信する。
【００５６】
第２制御部３２は、レプリケーション処理を制御する。第２制御部３２は、プロキシサーバ２から登録対象データを受信した場合、第２通信部３１を介して、登録対象データを他のストレージノード３に転送する。第２制御部３２は、例えば、レプリケーションの際に、第２記憶部３４に記憶された他のストレージノード３のInternet Protocol（ＩＰ）アドレスを用いる。
【００５７】
第２管理部３３は、第２記憶部３４に記憶されるレプリケーション管理情報に情報の記録を行う。
【００５８】
第２記憶部３４は、登録対象データ、およびレプリケーション管理情報を記憶する。また、第２記憶部３４は、他のストレージノード３のInternet Protocol（ＩＰ）アドレスを記憶している。
【００５９】
図４は、処理要求管理情報の一例を示す図である。第１管理部２６は、クライアントサーバ１から送信された処理要求に関する情報を処理要求管理情報に記録する。
【００６０】
「処理要求ＩＤ」は、処理要求毎に付与される識別情報である。「処理種別」は、処理要求の処理内容に応じて設定される情報である。例えば、「ＰＵＴ」はデータの登録要求を示す。また、「ＧＥＴ」は、データの参照要求を示す。「ストレージノードＩＤ」は、処理対象のストレージノード３を識別する情報である。
【００６１】
「データサイズ」は、処理対象データのデータサイズ［ＭＢ］を示す。「オブジェクトＩＤ」は、処理要求に応じて行われる処理を識別する情報である。「要求受信時刻」は、プロキシサーバ２が処理要求をクライアントサーバ１から受信した時刻である。「終了時刻」は、処理要求に応じて行われた処理が終了した時刻である。
【００６２】
図５は、レプリケーション管理情報の一例を示す図である。レプリケーション管理情報は、第１管理部２６により更新される。
【００６３】
「オブジェクトＩＤ」および「データサイズ」は、図４に示す処理要求管理情報の「オブジェクトＩＤ」および「データサイズ」と同じ情報が記録される。「複製元ストレージノードＩＤ」は、プロキシサーバ２から登録対象データを受信し、複製先のストレージノード３に登録対象データを送信するストレージノード３の識別情報である。「複製先ストレージノードＩＤ」は、複製元のストレージノード３から登録対象データを受信し、該登録対象データを記憶するストレージノード３を識別する情報である。
【００６４】
「開始時刻」は、レプリケーションが開始された時刻である。「終了時刻」は、レプリケーションが終了した時刻である。
【００６５】
図６は、タイムスケジュールの一例を示す図である。タイムスケジュールには、第１管理部２６により、ストレージノード３毎の処理スケジュールが記録される。図６に示す例において、「ストレージノードＩＤ」、および「処理要求ＩＤ」には、図４に示す処理要求管理情報と同じ情報が記録される。
【００６６】
「処理種別」には、処理要求管理情報に示した「ＰＵＴ」および「ＧＥＴ」に加え、「ＲＰＧ」および「ＲＰＰ」が含まれる。「ＲＰＧ」は、レプリケーションの複製元における読み取り処理を示す。「ＲＰＰ」は、レプリケーションの複製先における書き込み処理を示す。「処理種別」が「ＰＵＴ」である場合、レプリケーションが行われるため、「ＲＰＧ」および「ＲＰＰ」を含むレコードが追加される。
【００６７】
レプリケーション以外の処理に関する「処理開始予測時刻」には、プロキシサーバ２がクライアントサーバ１から処理要求を受信した時刻がそのまま記録される。なお、本実施形態では、プロキシサーバ２がクライアントサーバ１から処理要求を受信してから処理を開始するまでの時間を無視する。レプリケーションに関する「処理開始予測時刻」には、複製元のストレージノード３が登録対象データを受信した時刻に、第２算出部２４が算出した開始予測時間ＲＴｓを加算した時刻が記録される。
【００６８】
登録処理に関する「処理終了予測時刻」には、第１算出部２２が算出した予測時間Ｔｐを「処理開始予測時刻」に加算した時刻が記録される。参照処理に関する「処理終了予測時刻」には、第１算出部２２が算出した予測時間Ｔｇを「処理開始予測時刻」に加算した時刻が記録される。
【００６９】
複製先ストレージノード３のレプリケーション処理に関する「処理終了予測時刻」には、第３算出部２５が算出した予測時間Ｔｐを「処理開始予測時刻」に加算した時刻が記録される。複製元ストレージノード３のレプリケーション処理に関する「処理終了予測時刻」には、対応する複製先ストレージノード３の「処理終了予測時刻」のうちの最も遅い時刻が記録される。
【００７０】
図７は、ストレージノード３（ＳＮ１）が記憶するレプリケーション管理情報の一例を示す図である。図７に示すレプリケーション管理情報は、ストレージノード３（ＳＮ１）の第２記憶部３４に記憶される。図７に示すレプリケーション管理情報は、図５に示すプロキシサーバ２が記憶するレプリケーション管理情報のうち、複製元ストレージノードＩＤまたは複製先ストレージノードＩＤにＳＮ１が含まれるレコードを複製した内容となる。
【００７１】
図８は、ストレージノード３（ＳＮ２）が記憶するレプリケーション管理情報の一例を示す図である。図８に示すレプリケーション管理情報は、ストレージノード３（ＳＮ２）の第２記憶部３４に記憶される。図８に示すレプリケーション管理情報は、図５に示すプロキシサーバ２が記憶するレプリケーション管理情報のうち、複製元ストレージノードＩＤまたは複製先ストレージノードＩＤにＳＮ２が含まれるレコードを複製した内容となる。
【００７２】
図９は、ストレージノード３（ＳＮ３）が記憶するレプリケーション管理情報の一例を示す図である。図９に示すレプリケーション管理情報は、ストレージノード３（ＳＮ３）の記憶部に記憶される。図９に示すレプリケーション管理情報は、図５に示すプロキシサーバ２が記憶するレプリケーション管理情報のうち、複製元ストレージノードＩＤまたは複製先ストレージノードＩＤにＳＮ３が含まれるレコードを複製した内容となる。
【００７３】
＜実施形態の処理の流れの一例＞
図１０は、実施形態の処理の流れの一例を示すフローチャートである。第１算出部２２は、クライアントサーバ１から処理要求を受信したかを判定する（ステップＳ１０１）。ステップＳ１０１でＮＯの場合、処理は、次に進まない。処理要求は、例えば、登録処理要求または参照処理要求である。
【００７４】
ステップＳ１０１でＹＥＳの場合、第１算出部２２は、要求された処理の過去の所要時間に基づいて、処理の所要時間の予測値である処理予測時間をストレージノード３毎に算出する（ステップＳ１０２）。処理予測時間は、例えば、式（１）に示したＴｐまたは式（２）に示したＴｇである。
【００７５】
選択部２３は、複数のストレージノード３毎の処理の予定が記録されたタイムスケジュール（例えば、図６）を参照する（ステップＳ１０３）。そして、選択部２３は、選択部２３は、第１算出部２２が算出した処理予測時間と記録されている予定とが重複する時間の総和ＳＴ（ｎ）を算出する（ステップＳ１０４）。選択部２３は、算出した総和ＳＴ（ｎ）に基づいて、要求された処理を実行する対象のストレージノード３を選択する（ステップＳ１０５）。選択部２３は、例えば、算出した総和ＳＴ（ｎ）が最も小さいストレージノード３を選択する。
【００７６】
要求された処理が登録処理である場合（ステップＳ１０６でＹＥＳ）、第２算出部２４は、過去の実行履歴に基づいて、レプリケーションの開始予測時間ＲＴｓを算出する（ステップＳ１０７）。また、第２算出部２４は、登録処理開始時刻に開始予測時間ＲＴｓを加算して、レプリケーション開始予測時刻を算出する。
【００７７】
第３算出部２５は、レプリケーションの所要時間の予測値であるレプリケーション予測時間を算出する（ステップＳ１０８）。また、第３算出部２５は、レプリケーション開始予測時刻にレプリケーション予測時間を加算して、レプリケーション終了予測時刻を算出する。
【００７８】
第１通信部２１は、各ストレージノードにレプリケーション処理の依頼を通知する（ステップＳ１０９）。
【００７９】
ステップＳ１０６でＮＯの場合、またはステップＳ１０９の処理後、第１管理部２６は、ストレージノード３毎のスケジュールを含むタイムスケジュールを更新する（ステップＳ１１０）。第１管理部２６は、例えば、第１算出部２２が算出した処理予測時間、第２算出部２４が算出した開始予測時間、および第３算出部２５が算出したレプリケーション予測時間に基づいて、タイムスケジュールを更新する。
【００８０】
第１制御部２９は、要求された処理を実行する（ステップＳ１１１）。第１制御部２９は、例えば、ステップＳ１０１で登録対象データとともに登録処理要求を受信した場合、第１通信部２１を介して、ステップＳ１０５で選択されたストレージノード３に登録対象データを送信する。第１制御部２９は、例えば、ステップＳ１０１でデータの参照処理要求を受信した場合、第１通信部２１を介して、ステップＳ１０５で選択されたストレージノード３から参照対象データを取得し、クライアントサーバ１に送信する。
【００８１】
以上のように、プロキシサーバ２は、プロキシサーバ２がストレージノード３に対して直接行う処理のスケジュールだけではなく、ストレージノード３同士で行われるレプリケーションのスケジュールを管理する。そして、プロキシサーバ２は、レプリケーションを含むスケジュールを用いて処理対象の装置を選択することによりストレージノードの処理負荷の算出精度を向上させ、ストレージノード３間の負荷の偏りを抑制することができる。そして、プロキシサーバ２は、ストレージノード３間の負荷の偏りを抑制することでストレージシステム全体のパフォーマンスが向上させることができる。
【００８２】
また、プロキシサーバ２は、各ストレージノード３のレプリケーションを含めたタイムスケジュールを管理し各ストレージノード３から状態を受信しなくてもよいため、プロキシサーバ２と各ストレージノード３との間の通信負荷を軽減することができる。
【００８３】
図１１および図１２は、再計算処理の流れの一例を示すフローチャートである。例えば、図１０のステップＳ１１１の実行後に、図１１に示す処理が開始される。図１１および図１２に示す処理は、クライアントサーバ１から要求された処理の実行中、繰り返し実行される。
【００８４】
再算出部２７は、タイムスケジュールのうち、レプリケーションの処理終了予測時刻を参照する（ステップＳ２０１）。再算出部２７は、例えば、タイムスケジュールのうち、処理種別が「ＲＰＧ」または「ＲＰＰ」である処理の処理終了予測時刻を参照する。
【００８５】
再算出部２７は、レプリケーション予測時刻を経過しているかを判定する（ステップＳ２０２）。ステップＳ２０２でＮＯの場合、再算出部２７は、タイムスケジュールのうち、レプリケーション以外の処理終了予測時刻を参照する（ステップＳ２０３）。再算出部２７は、例えば、タイムスケジュールのうち、処理種別が「ＰＵＴ」または「ＧＥＴ」である処理の処理終了予測時刻を参照する。
【００８６】
再算出部２７は、処理終了予測時刻を既に経過しており、かつ、処理が終了していないかを判定する（ステップＳ２０４）。なお、処理が終了している場合、対象のストレージノード３から完了通知が送信されるため、再算出部２７は、処理が終了していることを知ることができる。
【００８７】
ステップＳ２０４でＹＥＳの場合、再算出部２７は、処理対象のデータのうち処理が終了していない部分の処理予測時間を算出する（ステップＳ２０５）。また、再算出部２７は、ステップＳ２０５で算出した予測時間を現在時刻に加算して終了予測時刻を算出する。
【００８８】
再算出部２７は、再算出した予測時間に基づいて、タイムスケジュールの終了予測時刻を更新する（ステップＳ２０６）。
【００８９】
ステップＳ２０４でＮＯの場合またはステップＳ２０６の処理後、第１管理部２６は、ストレージノード３から処理の完了通知を受信したか判定する（ステップＳ２０７）。なお、この完了通知にはレプリケーションに関する完了通知は含まれない。
【００９０】
ステップＳ２０７でＹＥＳの場合、第１管理部２６は、処理要求管理情報に終了時刻を記録する（ステップＳ２０８）。更新部２８は、処理要求管理情報の要求受信時刻と処理終了時刻とに基づいて、実際の処理時間を算出する（ステップＳ２０９）。なお、上述したように、本実施形態では、プロキシサーバ２が処理要求を受信してから処理を開始するまでの時間を無視するため、要求受信時間と処理開始時間は同じであるとする。
【００９１】
更新部２８は、処理予測時間と処理の実際の所要時間に基づいて、重み（ＷｇｓまたはＷｐｓ）を更新する（ステップＳ２１０）。
【００９２】
レプリケーション予測時刻を既に経過している場合（ステップＳ２０２でＹＥＳ）、処理は、「Ａ」から図１２のステップＳ２１１に移行する。再算出部２７は、処理対象のストレージノード３からレプリケーション管理情報を取得する（ステップＳ２１１）。そして、再算出部２７は、レプリケーションが終了しているか判定する（ステップＳ２１２）。再算出部２７は、例えば、取得したレプリケーション管理情報のうちの判定対象のレコードに終了時刻が記録されていれば、レプリケーションが終了していると判定する。
【００９３】
なお、本実施形態では、レプリケーション終了時にストレージノード３からプロキシサーバ２に通知が送信されない。従って、再算出部２７は、レプリケーション管理情報を取得して、レプリケーションが終了しているか判定する。レプリケーション終了時にストレージノード３からプロキシサーバ２に通知が送信される場合、再算出部２７は、通知を受信した際にレプリケーションが終了したと判定してもよい。
【００９４】
ステップＳ２１２でＹＥＳの場合、更新部２８は、レプリケーション管理情報の開始時刻と終了時刻とに基づいて、レプリケーションの実際の所要時間を算出する（ステップＳ２１３）。そして、更新部２８は、レプリケーション予測時間と実際のレプリケーション所要時間に基づいて、重み（Ｗｐｓ）を更新する（ステップＳ２１４）。
【００９５】
ステップＳ２１２でＮＯの場合またはステップＳ２１４の処理後、再算出部２７は、レプリケーション対象のデータのうちレプリケーションが終了していない部分のレプリケーション予測時間を算出する（ステップＳ２１５）。また、再算出部２７は、ステップＳ２１５で算出した予測時間を現在時刻に加算して終了予測時刻を算出する。
【００９６】
再算出部２７は、再算出した予測時間に基づいて、タイムスケジュールの終了予測時刻を更新する（ステップＳ２１６）。ステップＳ２１６の処理後、処理は「Ｂ」に移行し、終了する。
【００９７】
以上のように、再算出部２７は、処理終了予測時刻に処理が終了していない場合、またはレプリケーション終了予測時刻にレプリケーションが終了していない場合、予測時間を再算出する。そして、再算出部２７は、再算出した予測時間に基づいて、タイムスケジュールの終了予測時刻を更新するため、タイムスケジュールの精度が向上し、ストレージノード３の処理負荷の算出精度を向上させることができる。
【００９８】
また、更新部２８は、レプリケーションまたは他の処理が終了した際に、処理予測時間やレプリケーション予測時間の算出に用いる重みを更新するため、次に処理予測時間やレプリケーション予測時間を算出する際の算出精度を向上することができる。
【００９９】
＜実施形態の処理の適用例＞
以下、実施形態の処理の適用例を説明する。図１３は、適用例におけるタイムスケジュールを示す図である。図１３に示すタイムスケジュールは、図６に示すタイムスケジュールと同じ情報に基づいているが、処理開始予測時刻から処理終了予測時刻までの間が矢印で示されている点で図６に示すタイムスケジュールと異なる。
【０１００】
また、適用例における処理要求管理情報は図４と同一であり、レプリケーション管理情報は、図５と同一であるとする。以下、ストレージノードＩＤがＳＮ１であるストレージノード３をＳＮ１と称する。また、ストレージノードＩＤがＳＮ２であるストレージノード３をＳＮ２と称する。また、ストレージノードＩＤがＳＮ３であるストレージノード３をＳＮ３と称する。
【０１０１】
（１）登録処理要求（処理要求ＩＤ：ＭＳＧ１０）に関する処理
プロキシサーバ２は、８：１０にクライアントサーバ１からデータの登録処理要求を受信したとする。第１管理部２６は、該登録処理要求に処理要求ＩＤとして、”ＭＳＧ１０”を付与し、オブジェクトＩＤとして”ＯＢＪ１０”を付与し、処理要求管理情報に記録する。また、第１管理部２６は、受信した登録対象データのデータサイズ（１００ＭＢ）を記録する。
【０１０２】
第１算出部２２は、式（１）を用いて、登録処理において、プロキシサーバ２がストレージノード３にデータを書き込む予測時間Ｔｐを各ストレージノードサーバ３に関して算出する。登録処理要求を受信した８：１０の時点で、どのストレージノード３にも処理が割り当てられていないため、ＭｇｎおよびＭｐｎは０である。また、全てのストレージノード３のｐ性能が５０ＭＢ／分であり、Ｗｐｓが１であるとすると、全てのストレージノード３のＴｐは２分となる。
【０１０３】
登録処理要求を受信した８：１０の時点で、どのストレージノード３にも処理が割り当てられていないため、タイムスケジュールに、受信した処理要求と重複する処理が存在しない。従って、選択部２３は、ストレージノードＩＤに最も小さい値を含むＳＮ１にＭＳＧ１０を割り当てる。なお、タイムスケジュールに、受信した処理要求と重複する処理が存在しない場合、選択部２３は、どのストレージノード３を選択してもよい。
【０１０４】
第１管理部２６は、処理要求管理情報に、ＭＳＧ１０に対応するストレージノードＩＤに”ＳＮ１”を記録する。
【０１０５】
要求された処理がデータの登録処理であるため、レプリケーションが行われる。本適用例では、ＳＮ１からＳＮ２およびＳＮ３に対してレプリケーションが行われる。すなわち、ＳＮ１は、受信した登録対象データをＳＮ２およびＳＮ３に転送する。
【０１０６】
第２算出部２４は、ＳＮ１がデータの登録を開始してからＳＮ２にデータを転送するまでの開始予測時間ＲＴｓと、ＳＮ１がデータの登録を開始してからＳＮ２にデータを転送するまでの開始予測時間ＲＴｓとを算出する。
【０１０７】
ＳＮ２の開始予測時間ＲＴｓの算出について説明する。なお、開始予測時間ＲＴｓの単位を分とする。第２算出部２４は、例えば、ＳＮ２の直前の処理の開始時点における、Ｍｇｎ、Ｍｐｎ、ＲＴｓを取得する。そして、ＳＮ２に関するベクトルＥは、（１，１，２）であったとする。
【０１０８】
第２算出部２４は、過去のレプリケーション処理における、Ｍｇｎ、Ｍｐｎ、ＲＴｓの平均を算出する。そして、ＳＮ２に関するベクトルＡは、（２，２，３）であったとする。また、図１３のタイムスケジュールに示すように、算出時点（８：１０）において、ＳＮ２には予定が入っていないため、ＭｇｎおよびＭｐｎは共に０である。よって、Ｐ＝（０，０，ＲＴｓ）となる。
【０１０９】
上記ベクトルＥおよびベクトルＡから、ベクトルＵは、（１，１，１）となる。そして、上記ベクトルＥ、ベクトルＰ、ベクトルＵの各値を直線方程式に当てはめると、−１／１＝−１／１＝Ｚ３−２となり、Ｚ３＝ＲＴｓ＝１［分］となる。従って、算出した８：１０の１分後の８：１１がＳＮ２のレプリケーション開始予測時刻となる。
【０１１０】
第２算出部２４は、ＳＮ３に関しても同様にレプリケーションの開始予測時間ＲＴｓを算出し、２分であったとする。従って、算出した８：１０の２分後の８：１２がＳＮ３のレプリケーション開始予測時刻となる。
【０１１１】
第３算出部２５は、式（１）を用いて、ＳＮ２およびＳＮ３のそれぞれのレプリケーションの所要時間を算出する。ＳＮ２のレプリケーションの所要時間は、２分であったとする。また、ＳＮ３のレプリケーションの所要時間は、２分であったとする。第３算出部２５は、算出した所要時間をレプリケーション開始予測時刻に加算して、処理終了予測時刻を算出する。ＳＮ２のレプリケーション（ＲＰＰ）の処理終了予測時刻は、８：１３となり、ＳＮ３のレプリケーション（ＲＰＰ）の処理終了予測時刻は、８：１４となる。
【０１１２】
（２）参照処理要求（処理要求ＩＤ：ＭＳＧ２０）に関する処理
プロキシサーバ２は、８：１１にクライアントサーバ１からデータの参照処理要求を受信する。第１管理部２６は、該参照処理要求に処理要求ＩＤとして、”ＭＳＧ２０”を付与し、オブジェクトＩＤとして”ＯＢＪ２０”を付与し、処理要求管理情報に記録する。また、第１管理部２６は、受信した参照対象データのデータサイズ（４０ＭＢ）を記録する。
【０１１３】
第１算出部２２は、式（１）を用いて、登録処理において、プロキシサーバ２がストレージノード３からデータを読み取る予測時間Ｔｇを算出する。ｇ性能が４０ＭＢ／分であり、Ｗｇｓが１であるとすると、ＳＮ２およびＳＮ３においてＴｇは１分となる。
【０１１４】
図１３のスケジュールに示すように、８：１１から８：１３まで、ＳＮ２においてレプリケーションの書き込み（ＲＰＰ）が行われている。一方、８：１１から８：１２まで、ＳＮ３において処理が行われていない。そして、ＳＮ２のＳＴ（ｎ）は、１となり、ＳＮ３のＳＴ（ｎ）は０となる。従って、選択部２３は、参照処理要求（ＭＳＧ２０）の処理対象に、ＳＴ（ｎ）が最小であるＳＮ３を選択する。
【０１１５】
（３）参照処理要求（処理要求ＩＤ：ＭＳＧ３０）に関する処理
プロキシサーバ２は、８：１２にクライアントサーバ１からデータの参照処理要求を受信する。第１管理部２６は、該参照処理要求に処理要求ＩＤとして、”ＭＳＧ３０”を付与し、オブジェクトＩＤとして”ＯＢＪ３０”を付与し、処理要求管理情報に記録する。また、第１管理部２６は、受信した参照対象データのデータサイズ（８０ＭＢ）を記録する。
【０１１６】
第１算出部２２は、式（１）を用いて、登録処理において、プロキシサーバ２がストレージノード３からデータを読み取る予測時間Ｔｇを算出する。ｇ性能が４０ＭＢ／分であり、Ｗｇｓが１であるとすると、ＳＮ２およびＳＮ３においてＴｇは２分となる。
【０１１７】
図１３のスケジュールに示すように、８：１１から８：１３まで、ＳＮ２においてレプリケーションの書き込み（ＲＰＰ）が行われている。一方、８：１２から８：１４まで、ＳＮ３においてレプリケーションの書き込み（ＲＰＰ）が行われている。そして、ＳＮ２のＳＴ（ｎ）は、１となり、ＳＮ３のＳＴ（ｎ）は２となる。従って、選択部２３は、参照処理要求（ＭＳＧ３０）の処理対象に、ＳＴ（ｎ）が最小であるＳＮ２を選択する。
【０１１８】
（４）要求された処理終了後の処理
更新部２８は、処理終了時に、処理予測時間と実際の処理時間に基づいて、重み（ＷｇｓまたはＷｐｓ）を更新する。
【０１１９】
例えば、（２）の処理において、処理予測時間は１分であるが、実際の所要時間は、０．７５であったとする。更新部２８は、上記式（２−１）を用いてＷｇｓを算出し、算出結果は０．６６となる。
【０１２０】
また、（３）の処理において、処理予測時間は２分であるが、実際の所要時間は、１．７であったとする。更新部２８は、上記式（２−１）を用いてＷｇｓを算出し、算出結果は０.６５となる。
【０１２１】
第１管理部２６は、処理要求管理情報に終了時刻を記録する。第１管理部２６は、レプリケーション終了予測時刻にレプリケーションが終了していた場合、各ストレージノード３からレプリケーション管理情報を取得し、レプリケーション管理情報に開始時刻および終了時刻を記録する。
【０１２２】
再算出部２７は、処理終了予測時刻を既に経過しており、かつ、処理が終了していない場合、処理対象のデータのうち処理が終了していない部分の処理予測時間を算出し、算出した予測時間に基づいて、タイムスケジュールを更新する。本適用例では、処理終了予測時刻において各処理が終了しているため、再算出部２７は、再算出を実施しない。
【０１２３】
＜プロキシサーバ２のハードウェア構成の一例＞
次に、図１４の例を参照して、プロキシサーバ２のハードウェア構成の一例を説明する。図１４の例に示すように、バス１００に対して、プロセッサ１１１とRandom Access Memory(RAM)１１２とRead Only Memory(ROM)１１３とが接続される。また、該バス１００に対して、補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とが接続される。
【０１２４】
プロセッサ１１１は、ＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態における処理を行う処理分散プログラムが適用されてもよい。
【０１２５】
ＲＯＭ１１３は、ＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等が適用されてもよい。補助記憶装置１１４に実施形態の処理を行う処理分散プログラムが記録されていてもよい。
【０１２６】
媒体接続部１１５は、可搬型記録媒体１１７と接続可能に設けられている。可搬型記録媒体１１７としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD))、半導体メモリ等が適用されてもよい。可搬型記録媒体１１７に実施形態の処理を行う処理分散プログラムが記録されていてもよい。
【０１２７】
図２に示す第１記憶部３０は、ＲＡＭ１１２や補助記憶装置１１４等により実現されてもよい。図２に示す第１通信部２１は、通信インタフェース１１６により実現されてもよい。図２に示す第１算出部２２、選択部２３、第２算出部２４、第３算出部２５、第１管理部２６、再算出部２７、更新部２８、および第１制御部２９は、与えられた処理分散プログラムをプロセッサ１１１が実行することにより実現されてもよい。
【０１２８】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１７は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
【０１２９】
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１３０】
１    クライアントサーバ
２    プロキシサーバ
３    ストレージノード
２１    第１通信部
２２    第１算出部
２３    選択部
２４    第２算出部
２５    第３算出部
２６    第１管理部
２７    再算出部
２８    更新部
２９    第１制御部
３０    第１記憶部
３１    第２通信部
３２    第２制御部
３３    第２管理部
３４    第２記憶部
１００    バス
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
１１４    補助記憶装置
１１５    媒体接続部
１１６    通信インタフェース
１１７    可搬型記録媒体
【図１】
2019040292.tif 000006
【図２】
2019040292.tif 000007
【図３】
2019040292.tif 000008
【図４】
2019040292.tif 000009
【図５】
2019040292.tif 000010
【図６】
2019040292.tif 000011
【図７】
2019040292.tif 000012
【図８】
2019040292.tif 000013
【図９】
2019040292.tif 000014
【図１０】
2019040292.tif 000015
【図１１】
2019040292.tif 000016
【図１２】
2019040292.tif 000017
【図１３】
2019040292.tif 000018
【図１４】
2019040292.tif 000019