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

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

▶ 株式会社PFUの特許一覧

<>
  • 特開-コンピュータ 図1
  • 特開-コンピュータ 図2
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024086311
(43)【公開日】2024-06-27
(54)【発明の名称】コンピュータ
(51)【国際特許分類】
   G06F 3/06 20060101AFI20240620BHJP
   G06F 11/30 20060101ALI20240620BHJP
【FI】
G06F3/06 301Y
G06F3/06 304E
G06F3/06 304Z
G06F3/06 305C
G06F3/06 540
G06F11/30 158
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022201378
(22)【出願日】2022-12-16
(71)【出願人】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】堀 貴志
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA34
5B042JJ17
5B042JJ29
(57)【要約】
【課題】RAIDにおいてサーマルスロットリングの発動を抑制すること。
【解決手段】第一ストレージST1及び第二ストレージST2に接続されたコンピュータ1において、第一ストレージST1と第二ストレージST2との間でのRAIDの制御を行うプログラムであるRAID制御プログラムがメモリ30に展開され、RAID制御プログラムは、第一ストレージST1及び第二ストレージST2の双方に同一のデータをライトする一方で、第一ストレージST1または第二ストレージST2の何れかからデータをリードし、第一ストレージST1の温度である第一温度と、第二ストレージST2の温度である第二温度とを監視し、第一温度と第二温度とに基づいて、単位時間あたりの第一ストレージST1でのリードのデータサイズと、単位時間あたりの第二ストレージST2でのリードのデータサイズとの間の割合を制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
第一ストレージ及び第二ストレージに接続されたコンピュータであって、
前記第一ストレージと前記第二ストレージとの間でのRAIDの制御を行うプログラムであるRAID制御プログラムが展開されるメモリを具備し、
前記RAID制御プログラムは、
前記第一ストレージ及び前記第二ストレージの双方に同一のデータをライトする一方で、前記第一ストレージまたは前記第二ストレージの何れかからデータをリードし、
前記第一ストレージの温度である第一温度と、前記第二ストレージの温度である第二温度とを監視し、
前記第一温度と前記第二温度とに基づいて、単位時間あたりの前記第一ストレージでのリードのデータサイズである第一サイズと、前記単位時間あたりの前記第二ストレージでのリードのデータサイズである第二サイズとの間の割合であるサイズ割合を制御する、
コンピュータ。
【請求項2】
前記RAID制御プログラムは、前記第一温度及び前記第二温度と、第一閾値との比較結果に基づいて、前記サイズ割合を制御する、
請求項1に記載のコンピュータ。
【請求項3】
前記RAID制御プログラムは、前記第一温度及び前記第二温度の双方が前記第一閾値未満であるときに、前記第一温度と前記第一閾値との差分である第一差分と、前記第二温度と前記第一閾値との差分である第二差分とに基づいて、前記サイズ割合を制御する、
請求項2に記載のコンピュータ。
【請求項4】
前記RAID制御プログラムは、前記第一差分と前記第二差分との間の割合である差分割合を前記サイズ割合として決定する、
請求項3に記載のコンピュータ。
【請求項5】
前記RAID制御プログラムは、さらに前記第一温度及び前記第二温度と、前記第一閾値より小さい第二閾値との比較結果に基づいて前記サイズ割合を制御し、前記第一温度及び前記第二温度の双方が前記第二閾値未満であるときに、前記第一サイズと前記第二サイズとを同一にする、
請求項2に記載のコンピュータ。
【請求項6】
前記RAID制御プログラムは、前記第一温度及び前記第二温度を一定時間毎に監視し、前記一定時間毎に監視された前記第一温度及び前記第二温度が複数回連続して前記第二閾値未満であるときに、前記第一サイズと前記第二サイズとを同一にする、
請求項5に記載のコンピュータ。
【請求項7】
前記RAID制御プログラムは、前記第一温度または前記第二温度の何れか一方が前記第一閾値以上であるときに、前記第一ストレージ及び前記第二ストレージのうち前記第一閾値未満の温度である他方のストレージにおけるリードを所定時間だけ遅延させる、
請求項2に記載のコンピュータ。
【請求項8】
前記RAID制御プログラムは、前記第一温度及び前記第二温度の双方が前記第一閾値以上であるときに、前記第一ストレージ及び前記第二ストレージの双方におけるリードを所定時間だけ遅延させる、
請求項2に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータに関する。
【背景技術】
【0002】
コンピュータに複数のストレージを接続し、コンピュータに接続された複数のストレージを仮想的な一つのドライブとしてコンピュータに認識させる技術であるRAID(Redundant Arrays of Inexpensive Disks、または、Redundant Arrays of Independent Disks)が知られている。以下では、コンピュータに接続された複数のストレージを仮想的に一つに束ねた仮想ボリュームを「RAIDボリューム」と呼ぶことがある。
【0003】
RAIDには複数のレベルが存在し、複数のレベルのうちのRAID1では、複数のストレージの内容が同一に保たれる「ミラーリング」が行われる。ミラーリングは、RAIDの制御を行うプログラム(以下では「RAID制御プログラム」と呼ぶことがある)によって行われる。この場合、RAID制御プログラムは、OS(Operating System)の一部としてOSに組み込まれている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2004-126968号公報
【特許文献2】特開2014-038500号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、ストレージの温度が上昇するとストレージが熱暴走を起こす可能性があるため、ストレージの温度上昇時にストレージに対してサーマルスロットリングを発動させることがある。しかし、サーマルスロットリングを発動させると、ストレージの温度上昇が抑制される一方で、ストレージの性能が大幅に低下してしまう。
【0006】
そこで、本開示では、RAIDにおいてサーマルスロットリングの発動を抑制できる技術を提案する。
【課題を解決するための手段】
【0007】
本開示のコンピュータは、第一ストレージ及び第二ストレージに接続されたコンピュータであって、メモリを有する。前記メモリには、前記第一ストレージと前記第二ストレージとの間でのRAIDの制御を行うプログラムであるRAID制御プログラムが展開される。前記RAID制御プログラムは、前記第一ストレージ及び前記第二ストレージの双方に同一のデータをライトする一方で、前記第一ストレージまたは前記第二ストレージの何れかからデータをリードする。また、前記RAID制御プログラムは、前記第一ストレージの温度である第一温度と、前記第二ストレージの温度である第二温度とを監視する。そして、前記RAID制御プログラムは、前記第一温度と前記第二温度とに基づいて、単位時間あたりの前記第一ストレージでのリードのデータサイズである第一サイズと、前記単位時間あたりの前記第二ストレージでのリードのデータサイズである第二サイズとの間の割合であるサイズ割合を制御する。
【発明の効果】
【0008】
本開示によれば、RAIDにおいてサーマルスロットリングの発動を抑制できる。
【図面の簡単な説明】
【0009】
図1図1は、本開示の実施例のコンピュータの構成例を示す図である。
図2図2は、本開示の実施例のコンピュータにおける処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本開示の実施例を図面に基づいて説明する。
【0011】
[実施例]
<コンピュータの構成>
図1は、本開示の実施例のコンピュータの構成例を示す図である。図1において、コンピュータ1は、CPU(Central Processing Unit)10と、チップセット20と、メモリ30とを有する。
【0012】
コンピュータ1には、チップセット20を介して、第一ストレージST1及び第二ストレージST2の二つのストレージが接続されており、第一ストレージST1及び第二ストレージST2によりRAIDボリュームが構成される。コンピュータ1は、第一ストレージST1及び第二ストレージST2を用いてRAID1のRAIDを実行する。第一ストレージST1は、第一温度センサ11を有し、第二ストレージST2は、第二温度センサ21を有する。第一温度センサ11は、第一ストレージST1の温度(以下では「第一ストレージ温度TE1」と呼ぶことがある)を検出し、検出した第一ストレージ温度TE1を示す信号(以下では「第一温度信号」と呼ぶことがある)をチップセット20へ出力する。第二温度センサ21は、第二ストレージST2の温度(以下では「第二ストレージ温度TE2」と呼ぶことがある)を検出し、検出した第二ストレージ温度TE2を示す信号(以下では「第二温度信号」と呼ぶことがある)をチップセット20へ出力する。また、第一ストレージST1及び第二ストレージST2の各々には、OS及びRAID制御プログラム31が記憶される。第一ストレージST1に記憶されているOSと第二ストレージST2に記憶されているOSとは互いに同一であり、第一ストレージST1に記憶されているRAID制御プログラム31と第二ストレージST2に記憶されているRAID制御プログラム31とは互いに同一である。コンピュータ1の電源投入時に、OS及びRAID制御プログラム31は、第一ストレージST1または第二ストレージST2の何れか一方からメモリ30に展開される。
【0013】
CPU10は、メモリ30、第一ストレージST1及び第二ストレージST2との間でのデータのやりとりを、チップセット20を介して行う。また、CPU10は、第一温度センサ11及び第二温度センサ21からチップセット20を介して取得する第一温度信号及び第二温度信号を用いて、定期的に第一ストレージ温度TE1及び第二ストレージ温度TE2を監視する。また、CPU10は、第一ストレージ温度TE1及び第一ストレージ温度TE2の各々と、サーマルスロットリングが発動される閾値(以下では「サーマルスロットリング閾値STH」と呼ぶことがある)とを比較する。そして、CPU10は、第一ストレージ温度TE1がサーマルスロットリング閾値STH以上であるときに、第一ストレージST1に対してサーマルスロットリングを発動し、第二ストレージ温度TE2がサーマルスロットリング閾値STH以上であるときに、第二ストレージST2に対してサーマルスロットリングを発動する。サーマルスロットリング閾値STHは、例えば80℃に予め設定される。
【0014】
RAID制御プログラム31はOSの一部としてOSに組み込まれているため、OSがメモリ30に展開されて起動されることによりRAID制御プログラム31が起動される。そして、RAID制御プログラム31は、第一ストレージST1と第二ストレージST2とからRAIDボリュームを生成し、第一ストレージST1と第二ストレージST2との間でのRAID1の制御を行う。つまり、同一時点においては、RAID制御プログラム31は、第一ストレージST1及び第二ストレージST2の双方に同一のデータをライトする一方で、互いに同一のデータを記憶する第一ストレージST1及び第二ストレージST2の何れか一方からのみデータをリードする。
【0015】
<コンピュータにおける処理手順>
図2は、本開示の実施例のコンピュータにおける処理手順の一例を示すフローチャートである。図2に示すフローチャートは、コンピュータ1の電源が投入されたときに開始される。
【0016】
ステップS50では、RAID制御プログラム31は、リピートタイマTMを起動させる。リピートタイマTMは、一定時間FTを繰り返し計時し、起動から一定時間FTが経過した時点で再起動する。リピートタイマTMが繰り返し計時する一定時間FTは、例えば30秒に予め設定される。
【0017】
次いで、ステップS100では、RAID制御プログラム31は、単位時間あたりの第一ストレージST1でのリードのデータサイズ(以下では「第一リードサイズSZ1」と呼ぶことがある)と、単位時間あたりの第二ストレージでのリードのデータサイズ(以下では「第二リードサイズSZ2」と呼ぶことがある)との間の割合(以下では「サイズ割合SZR」と呼ぶことがある)を“50:50”に設定する。つまり、ステップS100では、RAID制御プログラム31は、第一リードサイズSZ1と第二リードサイズSZ2とを同一にする。第一リードサイズSZ1及び第二リードサイズSZ2における単位時間は、例えば1秒である。
【0018】
次いで、ステップS105では、RAID制御プログラム31は、カウンタ値nを“0”にリセットする。
【0019】
次いで、ステップS110では、RAID制御プログラム31は、第一温度センサ11及び第二温度センサ21からチップセット20を介して取得する第一温度信号及び第二温度信号を用いて、第一ストレージ温度TE1及び第二ストレージ温度TE2を監視する。
【0020】
次いで、ステップS115では、RAID制御プログラム31は、第一ストレージ温度TE1が、サーマルスロットリング閾値STHより小さい第一閾値TH1以上であるか否かを判定する。第一閾値TH1は、例えば70℃に予め設定される。第一ストレージ温度TE1が第一閾値TH1以上であるときは(ステップS115:Yes)、処理はステップS120へ進み、第一ストレージ温度TE1が第一閾値TH1未満であるときは(ステップS115:No)、処理はステップS125へ進む。
【0021】
ステップS120では、RAID制御プログラム31は、第二ストレージ温度TE2が第一閾値TH1未満であるか否かを判定する。第二ストレージ温度TE2が第一閾値TH1未満であるときは(ステップS120:Yes)、処理はステップS130へ進み、第二ストレージ温度TE2が第一閾値TH1以上であるときは(ステップS120:No)、処理はステップS140へ進む。
【0022】
一方で、ステップS125では、RAID制御プログラム31は、第二ストレージ温度TE2が第一閾値TH1以上であるか否かを判定する。第二ストレージ温度TE2が第一閾値TH1以上であるときは(ステップS125:Yes)、処理はステップS135へ進み、第二ストレージ温度TE2が第一閾値TH1未満であるときは(ステップS125:No)、処理はステップS145へ進む。
【0023】
つまり、第一ストレージ温度TE1及び第二ストレージ温度TE2において、第一ストレージ温度TE1のみが第一閾値TH1以上であるときは(ステップS115:Yes,ステップS120:Yes)、処理はステップS130へ進み、第二ストレージ温度TE2のみが第一閾値TH1以上であるときは(ステップS115:No,ステップS125:Yes)、処理はステップS135へ進み、第一ストレージ温度TE1及び第二ストレージ温度TE2の双方が第一閾値TH1以上であるときは(ステップS115:Yes,ステップS120:No)、処理はステップS140へ進み、第一ストレージ温度TE1及び第二ストレージ温度TE2の双方が第一閾値TH1未満であるときは(ステップS115:No,ステップS125:No)、処理はステップS145へ進む。
【0024】
ステップS130では、RAID制御プログラム31は、第二ストレージST2におけるリードを所定時間だけ遅延させる。また、ステップS135では、RAID制御プログラム31は、第一ストレージST1におけるリードを所定時間だけ遅延させる。また、ステップS140では、RAID制御プログラム31は、第一ストレージST1及び第二ストレージST2の双方におけるリードを所定時間だけ遅延させる。リードに対する所定の遅延時間は、例えば5秒に予め設定される。ステップS130、ステップS135、または、ステップS140の処理後、処理はステップS185へ進む。
【0025】
一方で、ステップS145では、RAID制御プログラム31は、第一ストレージ温度TE1及び第二ストレージ温度TE2の双方が、第一閾値TH1より小さい第二閾値TH2未満であるか否かを判定する。第二閾値TH2は、例えば30℃に予め設定される。第一ストレージ温度TE1及び第二ストレージ温度TE2のうちの少なくとも一方が第二閾値TH2以上であるときは(ステップS145:No)、処理はステップS150へ進み、第一ストレージ温度TE1及び第二ストレージ温度TE2の双方が第二閾値TH2未満であるときは(ステップS145:Yes)、処理はステップS165へ進む。
【0026】
ステップS150では、RAID制御プログラム31は、カウンタ値nを“0”にリセットする。
【0027】
次いで、ステップS155では、RAID制御プログラム31は、第一ストレージ温度TE1と第一閾値TH1との差分(以下では「第一差分D1」と呼ぶことがある)と、第二ストレージ温度TE2と第一閾値TH1との差分(以下では「第二差分D2」と呼ぶことがある)とを算出する。つまり、第一ストレージ温度TE1及び第二ストレージ温度TE2の双方が第一閾値TH1未満であり(ステップS115:No,ステップS125:No)、かつ、第一ストレージ温度TE1及び第二ストレージ温度TE2のうちの少なくとも一方が第二閾値TH2以上であるときに(ステップS145:No)、RAID制御プログラム31は、第一差分D1及び第二差分D2を算出する(ステップS155)。第一差分D1は式(1)によって表され、第二差分D2は式(2)によって表される。
D1=TH1-TE1 …(1)
D2=TH1-TE2 …(2)
【0028】
次いで、ステップS160では、RAID制御プログラム31は、第一差分D1及び第二差分D2に基づいて、式(3)に従って、サイズ割合SZRを制御する。つまり、RAID制御プログラム31は、第一差分D1と第二差分D2との間の割合(以下では「差分割合」と呼ぶことがある)をサイズ割合SZRとして決定する。ステップS160の処理後、処理はステップS185へ進む。
SZR=SZ1:SZ2
=(D1/(D1+D2)):(D2/(D1+D2)) …(3)
【0029】
一方で、ステップS165では、RAID制御プログラム31は、カウンタ値nを“1”だけインクリメントする。
【0030】
次いで、ステップS170では、RAID制御プログラム31は、カウンタ値nが所定回数Nに達したか否かを判定する。所定回数Nは、例えば5回に予め設定される。カウンタ値nが所定回数Nに達しているときは(ステップS170:Yes)、処理はステップS175へ進み、カウンタ値nが所定回数Nに達していないときは(ステップS170:No)、ステップS175,S180の処理が行われることなく、処理はステップS185へ進む。
【0031】
ステップS175では、RAID制御プログラム31は、サイズ割合SZRを“50:50”に設定する。つまり、ステップS175では、RAID制御プログラム31は、第一リードサイズSZ1と第二リードサイズSZ2とを同一にする。
【0032】
次いで、ステップS180では、RAID制御プログラム31は、カウンタ値nを“0”にリセットする。ステップS180の処理後、処理はステップS185へ進む。
【0033】
ステップS185では、RAID制御プログラム31は、リピートタイマTMが満了するまで、つまり、リピートタイマTMが起動または再起動してから一定時間FTが経過するまで待機する(ステップS185:No)。リピートタイマTMが満了すると(ステップS185:Yes)、処理はステップS110に戻る。
【0034】
以上、実施例について説明した。
【0035】
以上のように、本開示のコンピュータ(実施例のコンピュータ1)は、第一ストレージ(実施例の第一ストレージST1)及び第二ストレージ(実施例の第二ストレージST2)に接続されたコンピュータであって、メモリ(実施例のメモリ30)を有する。メモリには、第一ストレージと第二ストレージとの間でのRAIDの制御を行うプログラムであるRAID制御プログラムが展開される。RAID制御プログラムは、第一ストレージ及び第二ストレージの双方に同一のデータをライトする一方で、第一ストレージまたは第二ストレージの何れかからデータをリードする。また、RAID制御プログラムは、第一ストレージの温度である第一温度(実施例の第一ストレージ温度TE1)と、第二ストレージの温度である第二温度(実施例の第二ストレージ温度TE2)とを監視する。そして、RAID制御プログラムは、第一温度と第二温度とに基づいて、単位時間あたりの第一ストレージでのリードのデータサイズである第一サイズ(実施例の第一リードサイズSZ1)と、単位時間あたりの第二ストレージでのリードのデータサイズである第二サイズ(実施例の第二リードサイズSZ2)との間の割合であるサイズ割合(実施例のサイズ割合SZR)を制御する。
【0036】
例えば、RAID制御プログラムは、第一温度及び第二温度と、第一閾値(実施例の第一閾値TH1)との比較結果に基づいて、サイズ割合を制御する。
【0037】
また例えば、RAID制御プログラムは、第一温度及び第二温度の双方が第一閾値未満であるときに、第一温度と第一閾値との差分である第一差分(実施例の第一差分D1)と、第二温度と第一閾値との差分である第二差分(実施例の第二差分D2)とに基づいて、サイズ割合を制御する。
【0038】
また例えば、RAID制御プログラムは、第一差分と第二差分との間の割合である差分割合をサイズ割合として決定する。
【0039】
こうすることで、RAIDボリュームを形成する第一ストレージと第二ストレージとの間においてストレージの温度に応じてリードのデータサイズを分散させることができる。よって、第一ストレージと第二ストレージとから形成されるRAIDボリュームにおけるリードの効率を維持しつつ第一ストレージ及び第二ストレージの温度上昇を抑制することができる。よって、RAIDボリュームにおけるリードの効率を維持しつつ、RAIDにおいてサーマルスロットリングの発動を抑制することができる。
【0040】
また、RAID制御プログラムは、さらに第一温度及び第二温度と、第一閾値より小さい第二閾値(実施例の第二閾値TH2)との比較結果に基づいてサイズ割合を制御し、第一温度及び第二温度の双方が第二閾値未満であるときに、第一サイズと第二サイズとを同一にする。
【0041】
例えば、RAID制御プログラムは、第一温度及び第二温度を一定時間毎(実施例の一定時間FT毎)に監視し、一定時間毎に監視された第一温度及び第二温度が複数回(実施例のN回)連続して第二閾値未満であるときに、第一サイズと第二サイズとを同一にする。
【0042】
こうすることで、第一温度及び第二温度の双方の低下時に、第一ストレージと第二ストレージとの間において最も効率の良い負荷分散を図ることができる。
【0043】
また、RAID制御プログラムは、第一温度または第二温度の何れか一方が第一閾値以上であるときに、第一ストレージ及び第二ストレージのうち第一閾値未満の温度である他方のストレージにおけるリードを所定時間だけ遅延させる。
【0044】
こうすることで、第一閾値未満の温度である他方のストレージに対してサーマルスロットリングが発動されてしまうことを防止できる。
【0045】
また、RAID制御プログラムは、第一温度及び第二温度の双方が第一閾値以上であるときに、第一ストレージ及び第二ストレージの双方におけるリードを所定時間だけ遅延させる。
【0046】
こうすることで、第一閾値以上となった第一温度及び第二温度の双方を第一閾値未満に低下させることができる。
【符号の説明】
【0047】
1 コンピュータ
10 CPU
20 チップセット
30 メモリ
31 RAID制御プログラム
ST1 第一ストレージ
11 第一温度センサ
ST2 第二ストレージ
21 第二温度センサ
図1
図2