JP6136460B2 - 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法 - Google Patents

情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法 Download PDF

Info

Publication number
JP6136460B2
JP6136460B2 JP2013070675A JP2013070675A JP6136460B2 JP 6136460 B2 JP6136460 B2 JP 6136460B2 JP 2013070675 A JP2013070675 A JP 2013070675A JP 2013070675 A JP2013070675 A JP 2013070675A JP 6136460 B2 JP6136460 B2 JP 6136460B2
Authority
JP
Japan
Prior art keywords
semiconductor memory
memory device
data
ssd
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013070675A
Other languages
English (en)
Other versions
JP2014194667A (ja
Inventor
貴継 小野
貴継 小野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013070675A priority Critical patent/JP6136460B2/ja
Priority to US14/183,987 priority patent/US9619181B2/en
Publication of JP2014194667A publication Critical patent/JP2014194667A/ja
Application granted granted Critical
Publication of JP6136460B2 publication Critical patent/JP6136460B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Computer Security & Cryptography (AREA)

Description

本発明は、情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法に関する。
従来、不揮発性の半導体を含む記憶装置をストレージとして用いる情報処理装置が知られている。このような情報処理装置の一例として、NAND型のフラッシュメモリを有するSSD(Solid State Drive)をストレージとして用いる情報処理装置が知られている。
ここで、NAND型のフラッシュメモリでは、データを保持する複数のメモリセルを含むページ単位で書き込み及び読出しが行われ、複数のページを含むブロック単位でデータの消去が行われる。しかし、メモリセルは、データの書き換えを行う度に劣化するので、データの書き換えを何度も実行すると、正常に情報を記録できなくなる。このため、同じメモリセルに対するデータの書き換えが頻繁に発生すると、メモリセルが正常に情報を記録できなくなり、正常に情報を記録できなくなったメモリセルを含むブロックが不良ブロックとなる。
そこで、メモリセルへの書き込み回数や消去回数を平坦化することで、不良ブロックの発生を防ぎ、SSDの寿命を改善するウェアレベリングの技術が知られている。例えば、ウェアレベリングの技術が適用されたSSDは、頻繁に更新されるブロックに格納されたデータを更新回数が少ないブロックに移動することで、SSDが有するメモリセル全体の更新回数を平坦化する。
特開2007−323224号公報
しかしながら、上述したウェアレベリングの技術は、1つのSSD内における書き込み回数や消去回数の制限を根本的に解決するものではなく、SSDの寿命を延命するに過ぎない。このため、情報処理装置は、フラッシュメモリの書き込み回数や消去回数の制限を考慮せずに1つのSSDを使用し続けることができない。
本願は、上述した問題に鑑みてなされたものであり、1つの側面では、寿命を考慮せずにSSDをストレージとして利用することを目的とする。
1つの側面では、データが読み書きされる半導体記憶装置と、半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置である。また、情報処理装置は、半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集する。また、情報処理装置は、収集した比率においてデータの読出しの比率が多い場合、第1の閾値を前記半導体記憶装置の交換基準となる閾値として決定し、データの書き込みの比率が多い場合、前記第1の閾値よりも値が大きい第2の閾値を前記半導体記憶装置の交換基準となる閾値として決定する。そして、情報処理装置は、収集した余命指標値が、決定した閾値よりも短い場合は、半導体記憶装置を予備半導体記憶装置と交換する。
1つの側面では、寿命を考慮せずにSSDをストレージとして利用することができる。
図1は、実施例1に係る情報処理装置を説明する図である。 図2は、実施例1に係る情報処理装置が実行する処理を説明する図である。 図3は、実施例1に係る管理サーバの機能構成を説明する図である。 図4は、余命管理テーブルの一例を説明する図である。 図5は、ワークロード管理テーブルの一例を説明する図である。 図6は、実施例1に係る情報処理装置が実行する処理の流れを説明するフローチャートである。 図7は、選択部が実行する処理の流れを説明するための第1のフローチャートである。 図8は、選択部が実行する処理の流れを説明するための第2のフローチャートである。 図9は、実施例2に係る情報処理装置が実行する処理の流れを説明するフローチャートである。 図10は、制御プログラムを実行するコンピュータを説明する図である。
以下に添付図面を参照して本願に係る情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。また、各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
以下の実施例1では、図1を用いて、本願に係る情報処理装置を説明する。図1は、実施例1に係る情報処理装置を説明する図である。図1に示すように、情報処理装置1は、CPU(Central Processing Unit)プール2、ディスクエリアネットワーク3、ディスクプール4、管理ネットワーク7、管理サーバ10を有する。
また、CPUプール2は、複数のノード5a〜5eを有する。ここで、ノード5aは、それぞれCPUとメモリとを有し、各種アプリケーションプログラムを独立、または、連携して実行可能な装置であり、例えば、CPUとメモリとを搭載したサーバボードである。なお、ノード5b〜5eも、ノード5aと同様の機能を発揮するものとして、以下の説明を省略する。
一方、ディスクプール4は、複数のSSD6a〜6fを有する。なお、図1に示すように、ディスクプール4は、SSD6a〜6f以外にも複数のSSDを有するものとする。各SSD6a〜6fは、ノード5a〜5eが実行するアプリケーションプログラムが使用する半導体記憶装置であり、データの消去回数に基づく余命を有する。例えば、各SSD6a〜6fのうち、データの消去が行われていない半導体記憶装置については、余命の指標値である余命指標値が「100」となり、データの消去が何度も行われ、寿命となったSSDについては、余命指標値が「0」となる。
ディスクエリアネットワーク3は、各ノード5a〜5eと、各ノード5a〜5eがアプリケーションプログラムを実行する際に使用するSSDとを接続するネットワークである。例えば、ディスクエリアネットワーク3は、管理サーバ10からの指定に従って、ノード5aと、ディスクプール4が有する1つ以上の任意のSSDとを接続、もしくは接続の解除を行う。
このような構成の元、ノード5aは、ディスクプール4が有する各SSDのうち、任意のSSDを用いてアプリケーションプログラムを実行する。例えば、ノード5aは、SSD6aとSSD6bとを用いて、アプリケーションプログラムを実行する。
管理サーバ10は、管理ネットワーク7を介して、各ノード5a〜5eと接続されている。そして、管理サーバ10は、例えば、ノード5bが、新たなサービスを提供するため、アプリケーションプログラムを実行する場合は、SSD6dとノード5bとを接続するようディスクエリアネットワーク3に指示する。この結果、ノード5bは、SSD6dを用いて、アプリケーションプログラムを実行し、各種サービスを提供することができる。
このように、情報処理装置1は、複数のノード5a〜5eとディスクプール4が有する各SSD6a〜6fとを用いて、任意の数のアプリケーションプログラムを実行し、各種サービスを提供することができる。例えば、情報処理装置1は、ノード5a、5bをSSD6a、6bと組み合わせてWebサービスを提供させ、ノード5c〜5eとSSD6c、6dとを組み合わせて大規模データ処理のサービスを提供させることができる。
ここで、SSD6aは、NAND型のフラッシュメモリや相変化メモリ(PCM:Phase Change Memory)等、不揮発性の半導体メモリを有する。ここで、不揮発性の半導体メモリは、データの消去回数やデータの書き込み回数に制限があるデータセルを有する。例えば、1つのデータセルが1ビットのデータを記憶するSLC(Single Level Cell)方式では、データの消去回数が約1万回に制限される。また、1つのデータセルが複数ビットのデータを記憶するMLC(Multi Level Cell)方式では、データの消去回数が約10万回に制限される。
このように、SSD6aが有するメモリセルには、データの消去回数に制限が存在するため、SSDには寿命が存在する。このため、情報処理装置1は、各SSD6a〜6fがデータを消去することができる残余回数に基づく余命指標値を収集する。例えば、情報処理装置1は、smartmontoolsを利用してMedia_Wearout_Indicatorの値を余命として収集する。そして、情報処理装置1は、各ノード5a〜5eが利用するSSDの余命が所定の閾値を下回った場合は、利用中のSSDを他のSSDに変更する。すなわち、情報処理装置1は、ディスクプール4が有する各SSD6a〜6fについてのウェアレベリングを実行する。このため、情報処理装置1は、寿命を考慮せずにSSDをストレージとして利用することができる。
例えば、図2は、実施例1に係る情報処理装置が実行する処理を説明する図である。例えば、図2中(A)に示すSSDは、ノード5a、5bがアプリケーションプログラムの実行に利用するSSDである。すなわち、情報処理装置1は、ノード5a、5bと図2中(A)に示すSSDとを組み合わせて、1つのシステムとして動作させている。また、図2中(B)に示すSSDは、利用されていないSSDである。
ここで、図2中(C)に示すSSDの余命が所定の閾値を下回った場合は、情報処理装置1は、図2中(C)に示すSSDを図2中(D)に示すSSDと論理的な交換を行う。すなわち、情報処理装置1は、ディスクエリアネットワーク3の接続を変更し、ノード5a、5bと図2中(C)に示すSSDとの接続を切断し、ノード5a、5bと図2中(D)に示すSSDとを接続する。この結果、ノード5a、5bは、図2中(E)に示すSSDを用いて、アプリケーションプログラムを継続して実行する。
また、例えば、SSD6aの余命が短い際に、データの書き込み等、メモリセルにおけるデータの消去を伴うアクセスを行うのは、不具合が生じる可能性があるものの、データの読出し等、データの消去を伴わないアクセスについては、許容してもよい。そこで、情報処理装置1は、各ノード5a〜5eが実行するアプリケーションプログラムが、単位時間当たりに読出したデータ量と書き込んだデータ量との比率を収集する。
そして、情報処理装置1は、収集した比率に基づいて、アプリケーションプログラムの性質を判定する。その後、情報処理装置1は、判定したアプリケーションプログラムの性質に応じて、SSDを交換するかを判定するための閾値を決定し、SSD6a〜6fの余命が決定した閾値よりも短い場合は、SSDの交換を行う。
例えば、情報処理装置1は、ノード5aが実行するアプリケーションプログラムがデータの書き込みよりもデータの読出しを頻繁に実行するリードインテンシブな性質である場合は、閾値の値「10」を決定する。そして、情報処理装置1は、ノード5aが使用するSSD6aの余命が「10」よりも短い場合は、ノード5aが利用するSSD6aを他のSSDと交換する。
若しくは、情報処理装置1は、収集した比率においてデータの読み出しの比率が多い場合、直接、SSDを交換するかを判定するための閾値「10」を決定し、SSD6a〜6fの余命が決定した閾値よりも短い場合は、SSDの交換を行うようにしても良い。
一方、情報処理装置1は、ノード5aが実行するアプリケーションプログラムがデータの読出しよりもデータの書き込みを頻繁に実行するライトインテンシブな性質である場合は、閾値の値「30」を決定する。すなわち、情報処理装置1は、アプリケーションプログラムの性質がライトインテンシブである場合は、アプリケーションプログラムの性質がリードインテンシブである場合の閾値よりも、大きな値を閾値とする。そして、情報処理装置1は、ノード5aが使用するSSD6aの余命が「30」よりも短い場合は、ノード5aが利用するSSD6aを他のSSDと交換する。
若しくは、情報処理装置1は、収集した比率においてデータの書き込みの比率が多い場合、直接、SSDを交換するかを判定するための閾値「30」を決定し、SSD6a〜6fの余命が決定した閾値よりも短い場合は、SSDの交換を行うようにしても良い。
また、例えば、ノード5aがSSD6aのみを使用する際に、SSD6aの寿命が尽きてしまうと、SSD6aを他のSSDと交換する間、ノード5aが処理を実行できなくなる。また、ノード5aが使用するSSD6aを単にSSD6dと交換しただけでは、ノード5aが使用していたデータがなくなるので、ノード5aが継続して処理を実行できない。
そこで、情報処理装置1においては、各ノード5a〜5eは、2つのSSDを用いて、RAID(Redundant Arrays of Inexpensive Disks)1を構成し、データをミラーリングする。例えば、ノード5aは、RAID1によりデータがミラーリングされたSSD6aとSSD6bとを使用する。そして、情報処理装置1は、ノード5aが使用するSSD6aをSSD6dと交換する場合は、SSD6aとノード5aとの接続を解除し、SSD6aのデータをSSD6dに複製する。そして、情報処理装置1は、データを複製したSSD6dとノード5aとを接続する。
また、ノード5aは、SSD6aとの接続が解除されてからSSD6dが接続されるまでの間、以下の処理を実行する。すなわち、ノード5aは、データの書き込みを行う場合は、書き込み対象のデータをメモリ上にバッファリングし、データの読出しを行う場合は、接続されているSSD6bからデータの読出しを行う。そして、ノード5aは、SSD6dが接続されると、メモリ上にバッファリングしたデータをSSD6b、およびSSD6dに反映させる。このため、情報処理装置1は、各ノード5a〜5eにアプリケーションプログラムの実行を一時停止させずとも、SSDの交換を行うことができる。
次に、図3を用いて、管理サーバ10が有する機能構成について説明する。図3は、実施例1に係る管理サーバの機能構成を説明する図である。なお、図3に示す例では、情報処理装置1が有するノード5a〜5eのうち、ノード5a、5bを記載し、情報処理装置1が有するSSDのうち、SSD6a〜6dを記載した。
図3に示すように、管理サーバ10は、記憶部11、通信部14、更新部15、判定部16、決定部17、選択部18、設定部19を有する。また、記憶部11は、余命管理テーブル12、ワークロード管理テーブル13を記憶する。
以下、図4、5を用いて、記憶部11が記憶する余命管理テーブル12、ワークロード管理テーブル13に格納された情報について説明する。まず、図4を用いて、余命管理テーブル12に格納された情報の一例を説明する。図4は、余命管理テーブルの一例を説明する図である。図4に示すように、余命管理テーブル12には、各SSD6a〜6fの余命が格納されている。詳細には、余命管理テーブル12には、SSD ID(Ientifier)、接続先、余命が対応付けて格納されている。ここで、SSD IDとは、各SSD6a〜6fを識別するための識別子である。また、接続先とは、対応付けられたSSD IDが示すSSDが接続されているノードを示す情報である。また、余命とは、対応付けられたSSD IDの余命である。
例えば、図4に示す例では、余命管理テーブル12は、SSD IDが「SSD#0」のSSDについて、ノード5aが接続されており、余命が「100」であることを記憶する。また、余命管理テーブル12は、SSD IDが「SSD#1」のSSDについて、ノード5bが接続されており、余命が「80」であることを記憶する。また、余命管理テーブル12は、SSD IDが「SSD#2」のSSDについては、どのノード5a〜5eも接続されておらず、余命が「50」であることを記憶する。
次に、図5を用いて、ワークロード管理テーブル13に格納された情報について説明する。図5は、ワークロード管理テーブルの一例を説明する図である。図5に示すように、ワークロード管理テーブル13には、各ノード5a〜5eが実行するアプリケーションプログラムが、使用中のSSDから読みだしたデータと書き込んだデータとの比率が格納されている。
詳細には、ワークロード管理テーブル13には、ノードIDとプログラム実行フラグと比率とが対応付けて格納されている。ここで、ノードIDとは、各ノード5a〜5eを識別する識別子である。またプログラム実行フラグとは、対応付けられたノードIDが示すノードがプログラムを実行中か否かを示すフラグである。また、比率とは、対応付けられたノードIDが示すノードが、1秒間に読出したデータ量(Byte)と書き込んだデータ量(Byte)との比率を示す情報である。
例えば、ワークロード管理テーブル13は、ノード5aがアプリケーションプログラムを実行しており、アプリケーションプログラムが読出したデータ量と書き込んだデータ量との比率が「50:50」である旨を記憶する。また、ワークロード管理テーブル13は、ノード5bがアプリケーションプログラムが読出したデータ量と書き込んだデータ量との比率が「90:10」である旨を記憶する。また、ワークロード管理テーブル13は、ノード5cがアプリケーションプログラムを実行していないので、比率が「null」である旨を記憶する。
図3に戻り、通信部14は、管理ネットワーク7を介して、管理サーバ10と各ノード5a〜5eとの通信、およびディスクエリアネットワーク3に対する指示を制御する。詳細には、通信部14は、更新部15および設定部19と各ノード5a〜5eとの間の通信を制御する。また、通信部14は、設定部19からディスクエリアネットワーク3に対する指示を制御する。
更新部15は、所定の時間間隔で、記憶部11が記憶する余命管理テーブル12とワークロード管理テーブル13とを更新する。例えば、各ノード5a〜5eは、所定の時間間隔で、smartmontoolsを利用してMedia_Wearout_Indicatorの値を取得し、取得したMedia_Wearout_Indicatorの値を余命指標値とし、SSD IDと対応付けて管理サーバ10へ送信する。また、各ノード5a〜5eは、読出したデータの量と書き込んだデータの量との比率をLinux(登録商標)のsarコマンド等、任意の手法で取得し、取得した比率を管理サーバ10へ送信する。また、各ノード5a〜5eは、アプリケーションプログラムを起動した場合は、アプリケーションプログラムの起動を管理サーバ10に通知し、アプリケーションプログラムの実行を終了した場合は、アプリケーションプログラムの終了を管理サーバ10へ送信する。
更新部15は、各ノード5a〜5eからSSD ID、余命指標値、比率を受信する。そして、更新部15は、受信したSSD IDと余命指標値とに基づいて、余命管理テーブル12を更新し、受信した比率を用いて、ワークロード管理テーブル13を更新する。
例えば、更新部15は、SSD ID「SSD#0」と余命「50」とをノード5aから受信すると、余命管理テーブル12からSSD ID「SSD#0」が格納されたエントリを抽出する。そして、更新部15は、抽出したエントリの接続先を「ノード5a」に更新し、余命を「50」に更新する。また、更新部15は、ノード5aから比率「40:60」を受信した場合には、ワークロード管理テーブル13からノードID「ノード5a」が格納されたエントリを抽出する。そして、更新部15は、抽出したエントリの比率を「40:60」に更新する。
また、更新部15は、ノード5aからアプリケーションの起動を通知された場合は、ワークロード管理テーブル13からノードID「ノード5a」が格納されたエントリを抽出し、抽出したエントリのプログラム実行フラグを「1」に更新する。また、更新部15は、ノード5aからアプリケーションの終了を通知された場合は、ワークロード管理テーブル13からノードID「ノード5a」が格納されたエントリを抽出し、抽出したエントリのプログラム実行フラグを「0」に更新する。
判定部16は、ワークロード管理テーブル13に格納された読出しと書き込みの比率に応じて、各ノード5a〜5eが実行するアプリケーションプログラムの性質を判定する。例えば、判定部16は、ワークロード管理テーブル13を参照し、各SSD6a〜6fに対する読出しと書き込みの比率を取得する。
そして、判定部16は、読出したデータ量を算出し、算出したデータ量が所定の閾値よりも大きい場合は、アプリケーションプログラムがリードインテンシブであると判定する。また、判定部16は、算出したデータ量が所定の閾値よりも小さい場合は、アプリケーションプログラムがライトインテンシブであると判定する。なお、判定部16は、アプリケーションプログラムによる読出しの比率が書き込みの比率よりも多い場合は、アプリケーションプログラムがリードインテンシブであると判定してもよい。
例えば、ワークロード管理テーブル13に図5に示す情報が格納されている場合には、判定部16は、以下の処理を実行する。例えば、判定部16は、ノード5bが実行するアプリケーションプログラムの読出し比率が書き込み比率よりも大きいので、ノード5bが実行するアプリケーションプログラムがリードインテンシブであると判定する。また、判定部16は、ノード5cが実行するアプリケーションプログラムの書き込み比率が読出し比率よりも大きいので、ノード5cが実行するアプリケーションプログラムがライトインテンシブであると判定する。
ここで、ノード5aが実行するアプリケーションプログラムについては、読出しと書き込みの比率が同じである。このような場合には、判定部16は、システムの安定性を考慮し、ノード5aが実行するアプリケーションプログラムがライトインテンシブであると判定してもよい。なお、判定部16は、アプリケーションプログラムの性質を判定した場合は、判定結果を決定部17に通知する。
なお、判定部16は、アプリケーションプログラムの性質を判定せず、各SSD6a〜6fに対する読出しと書込みのどちらかが多いかを判定し、判定結果を決定部17に通知してもよい。
決定部17は、各ノード5a〜5eが実行するアプリケーションプログラムの性質に基づいて、SSDの交換基準となる閾値を決定する。例えば、決定部17は、ノード5aが実行するアプリケーションプログラムがライトインテンシブである旨の通知を判定部16から受信する。このような場合は、決定部17は、ノード5aが使用するSSDの交換基準となる閾値を「30」とし、ノード5aが使用するSSDの交換基準となる閾値が「30」である旨を選択部18に通知する。
一方、決定部17は、ノード5cが実行するアプリケーションプログラムがリードインテンシブである旨の通知を判定部16から受信する。このような場合は、決定部17は、ノード5cが使用するSSDの交換基準となる閾値を「10」とし、ノード5cが使用するSSDの交換基準となる閾値が「10」である旨を選択部18に通知する。すなわち、決定部17は、各ノード5a〜5eが実行するアプリケーションプログラムがリードインテンシブである場合は、アプリケーションプログラムがライトインテンシブである際よりも小さい値の閾値を決定する。
なお、上述した例では、決定部17は、各ノード5a〜5eが実行するアプリケーションプログラムがリードインテンシブである場合は、閾値を「10」とし、ライトインテンシブである場合は、閾値を「30」とした。しかし、実施例はこれに限定されるものではない。例えば、決定部17は、ワークロード管理テーブル13に格納された比率に応じて、閾値を決定してもよい。例えば、決定部17は、ライトインテンシブなアプリケーションプログラムについて、ワークロード管理テーブル13に格納された書き込みの比率が所定の値よりも大きい場合は、閾値を「30」よりも大きい値にしてもよい。
なお、決定部17は、各SSD6a〜6fに対する読出しと書込みのどちらか多いかを示す判定結果を受信した場合は、受信した判定結果に基づいて、SSD6a〜6fの交換基準となる閾値を決定しても良い。例えば、決定部17は、SSD6aに対して読出しが多い旨の判定結果を受信した場合は、SSD6aの交換基準となる閾値を「10」に決定する。また、決定部17は、SSD6aに対して書込みが多い旨の判定結果を受信した場合は、SSD6aの交換基準となる閾値を「30」に決定する。
選択部18は、アプリケーションプログラムの性質に応じて決定した閾値に応じて、各ノード5a〜5eが使用するSSDを交換するか否かを判定する。例えば、選択部18は、決定部17からノード5aが使用するSSDの交換基準となる閾値が「30」である旨を受信する。すると、選択部18は、余命管理テーブル12を参照し、ノード5aが使用する1つ以上のSSDを識別する。そして、選択部18は、識別したSSDの余命指標値が閾値「30」よりも小さいか否かを判定し、余命指標値が閾値「30」よりも小さい場合は、SSDを交換すると判定する。
また、選択部18は、SSDを交換すると判定した場合は、以下の処理を実行する。例えば、選択部18は、余命管理テーブル12を参照し、接続先が未接続のSSDを抽出する。そして、選択部18は、ノード5aが実行するアプリケーションがリードインテンシブである場合は、抽出したSSDのうち、余命指標値が「10」より大きく「30」以下であるSSDを検索する。その後、選択部18は、余命指標値が「10」より大きく「30」以下であるSSDを検出した場合は、ノード5aが使用するSSDのうち交換対象となるSSDのSSD IDと余命管理テーブル12から検出したSSDのSSD IDとを設定部19に通知する。
また、選択部18は、余命指標値が「10」より大きく「30」以下であるSSDを検出できなかった場合は、抽出したSSDのうち、余命指標値が「30」より大きなSSDを検索する。そして、選択部18は、余命指標値が「30」より大きなSSDを検出した場合は、ノード5aが使用するSSDのうち交換対象となるSSDのSSD IDと余命管理テーブル12から検出したSSDのSSD IDとを設定部19に通知する。なお、選択部18は、余命指標値が「30」より大きなSSDを検出できなかった場合は、交換可能なSSDがない旨を管理者等に通知する。
一方、選択部18は、ノード5aが実行するアプリケーションがライトインテンシブである場合は、余命指標値が「30」より大きなSSDを検索する。そして、選択部18は、余命指標値が「30」より大きなSSDを検出した場合は、ノード5aが使用するSSDのうち交換対象となるSSDのSSD IDと余命管理テーブル12から検出したSSDのSSD IDとを設定部19に通知する。
なお、選択部18は、判定部16がアプリケーションの性質を判定しない場合であっても、同様の処理を行うことで、交換するSSDを選択できる。例えば、選択部18は、SSD6aについて閾値が「10」であり、SSD6aの余命指標値が「10」よりも小さい場合は、SSD6aと交換するSSDとして、余命指標値が「10」より大きく「30」以下となるSSDを選択する。また、選択部18は、SSD6aについて閾値が「30」であり、SSD6aの余命指標値が「30」より小さい場合は、SSD6aと交換するSSDとして、余命指標値が「30」より大きいSSDを選択する。
設定部19は、各ノード5a〜5eが使用するSSDの設定変更を行う。例えば、設定部19は、選択部18から、SSD6aのSSD IDとSSD6dのSSD IDとを受信する。すると、設定部19は、ワークロード管理テーブル13を参照し、SSD6aを使用中のノード5aを識別する。そして、設定部19は、識別したノード5aに対してSSD6aの接続解除手続きを依頼する。このような場合は、ノード5aは、SSD6aの接続解除手続きを実行し、SSD6aの接続を解除する。
また、設定部19は、ノード5aとSSD6aとの接続を解除するようディスクエリアネットワーク3に指示する。この結果、ノード5aとSSD6aとの接続は解除される。また、設定部19は、ワークロード管理テーブル13を参照し、アプリケーションプログラムを実行していないノードを識別する。例えば、設定部19は、ワークロード管理テーブル13に図5に示す情報が格納されている場合は、ノード5cを識別する。そして、設定部19は、ディスクエリアネットワーク3にノード5cとSSD6a、6dとを接続するよう指示する。そして、設定部19は、ノード5cにSSD6aのデータをSSD6dに複製するよう依頼する。
すると、ノード5cは、SSD6aのデータをSSD6dに複製し、複製完了を設定部19に通知する。すると、設定部19は、ノード5cとSSD6dとの接続を解除し、ノード5aとSSD6dとを接続するようにディスクエリアネットワーク3に指示する。そして、設定部19は、ノード5aにSSD6dの接続手続きを依頼する。この結果、ノード5aは、SSD6aと同じデータを記憶するSSD6dを用いて、アプリケーションプログラムの実行を継続する。
なお、ノード5aは、SSD6aとの接続が解除されてからSSD6dが接続されるまでの間、SSD6bからデータの読出しを行う。また、ノード5aは、データの書き込みを行う場合は、メモリ上に書き込み対象のデータをバッファし、SSD6dが接続された後に、バッファしたデータをSSD6b、6dに反映させる。なお、ノード5aは、バッファオーバーフローが発生した場合は、SSD6bに対してデータの書き込みを行い、SSD6dが接続された後に、SSD6bからSSD6dへデータを複製してもよい。
次に、図6を用いて、実施例1に係る情報処理装置1が実行する処理の流れについて説明する。図6は、実施例1に係る情報処理装置が実行する処理の流れを説明するフローチャートである。なお、以下の説明では、ノード5aがSSD6a、6bを使用しており、SSD6aをSSD6dに交換する処理の流れについて説明する。また、以下の説明では、ノード5cがアプリケーションプログラムを実行していないものとする。
例えば、ノード5aは、SSDへのアクセスを監視し、読出しと書き込みの比率であるRead/Write比率を管理サーバ10に通知する(ステップS101)。また、ノード5aは、使用中のSSD6a、6bの余命を確認し、余命指標値を管理サーバ10へ送信する(ステップS102)。すると、管理サーバ10は、受信したRead/Write比率、および余命指標値に従って、ワークロード管理テーブル13と余命管理テーブル12とを更新する(ステップS103)。
また、管理サーバ10は、ワークロード管理テーブル13に格納されたRead/Write比率に基づいて、ノード5aが実行するアプリケーションプログラムがリードインテンシブであるかライトインテンシブであるかを判定する(ステップS104)。そして、管理サーバ10は、ノード5aに接続されているSSD6a、6bの余命が、ノード5aが実行するアプリケーションプログラムの性質に応じた閾値を超えていないか確認する(ステップS105)。
また、管理サーバ10は、アプリケーションプログラムを実行中の全てのノードについて、アプリケーションプログラムの性質に応じた閾値とSSDの余命とのチェックを行ったか判定する(ステップS106)。そして、管理サーバ10は、アプリケーションプログラムを実行中の全てのノードについて、アプリケーションプログラムの性質に応じた閾値とSSDの余命とのチェックを行っていない場合は(ステップS106No)、以下の処理を実行する。すなわち、管理サーバ10は、アプリケーションプログラムを実行中の各ノードについて、ステップS105を実行する。
また、管理サーバ10は、アプリケーションプログラムを実行中の全てのノードについて、アプリケーションプログラムの性質に応じた閾値とSSDの余命とのチェックを行った場合は(ステップS106Yes)、以下の処理を実行する。すなわち、管理サーバ10は、余命指標値が閾値を超えたSSD、すなわち余命指標値が閾値よりも小さいSSDがあるか否かを判定する(ステップS107)。また、管理サーバ10は、余命指標値が閾値よりも小さいSSDがある場合は(ステップS107Yes)、使用されていないSSDにアプリケーションプログラムの性質に応じた閾値を満たすSSDが存在するか否かを判定する(ステップS108)。
また、管理サーバ10は、使用されていないSSDにアプリケーションプログラムの性質に応じた閾値を満たすSSD、例えばSSD6dが存在する場合は(ステップS108Yes)、以下の処理を実行する。すなわち、管理サーバ10は、余命が閾値を超えたSSDを使用するノード、例えばノード5aに対して、余命が閾値を超えたSSD、例えばSSD6aの接続解除手続きを依頼する(ステップS109)。すると、ノード5aは、SSD6aの接続解除手続きを実行し、手続き完了を管理サーバ10に通知する(ステップS110)。
また、管理サーバ10は、ノード5aからSSD6aの接続解除手続きの完了通知を受信すると、以下のSSD交換処理を実行する(ステップS111)。すなわち、管理サーバ10は、ディスクエリアネットワーク3に指示し、ノード5aからSSD6aの接続を解除し、ノード5cとSSD6a、6dとを接続し、接続完了をノード5bに通知する。すると、ノード5cは、SSD6aからSSD6dへデータのコピーを実行し、実行完了を管理サーバ10に通知する(ステップS112)。
すると、管理サーバ10は、ノード5cからSSD6dの接続を解除し、SSD6dをノード5aに接続してノード5aにSSD6dを接続した旨を通知する(ステップS113)。すると、ノード5aは、SSD6dの接続手続きを実行する(ステップS114)。また、管理サーバ10は、ノード5cからSSD6aの接続を解除する(ステップS115)。
また、管理サーバ10は、閾値を超えたSSDで未交換のSSDが存在するか判定し(ステップS116)、閾値を超えたSSDで未交換のSSDが存在しない場合は(ステップS116No)、処理を終了する。一方、管理サーバ10は、閾値を超えたSSDで未交換のSSDが存在する場合は(ステップS116Yes)、ステップS108を実行する。なお、管理サーバ10は、使用していないSSDでアプリケーションプログラムの性質に応じた閾値を満たすSSDが存在しない場合は(ステップS108No)、そのまま処理を終了する。
次に、図7、図8を用いて、図6中ステップS108にて使用されていないSSDからアプリケーションプログラムの性質に応じた閾値を満たすSSDがあるか否かを判定する処理の流れについて説明する。まず、図7を用いて、アプリケーションプログラムの性質がリードインテンシブである際に、選択部18が実行する処理の流れについて説明する。
図7は、選択部が実行する処理の流れを説明するための第1のフローチャートである。例えば、選択部18は、使用されていないSSDに、余命指標値が「10」よりも大きく、「30」以下のSSDが存在するか否かを判定する(ステップS201)。ここで、選択部18は、余命指標値が「10」よりも大きく、「30」以下のSSDが存在しない場合は(ステップS201No)、余命指標値が「30」より大きく「100」以下のSSDが存在するか否かを判定する(ステップS202)。
そして、選択部18は、余命指標値が「30」より大きく「100」以下のSSDが存在する場合は(ステップS202Yes)、閾値を満たすSSDを選択し(ステップS203)、処理を終了する。また、選択部18は、使用されていないSSDに、余命指標値が「10」よりも大きく、「30」以下のSSDが存在する場合は(ステップS201Yes)、閾値を満たすSSDを選択し(ステップS203)、処理を終了する。また、選択部18は、余命指標値が「30」より大きく「100」以下のSSDが存在しない場合は(ステップS202No)、SSDの選択を行わずに、処理を終了する。
次に、図8を用いて、アプリケーションプログラムの性質がライトインテンシブである際に、選択部18が実行する処理の流れについて説明する。図8は、選択部が実行する処理の流れを説明するための第2のフローチャートである。例えば、選択部18は、アプリケーションプログラムの性質がライトインテンシブである場合は、使用されていないSSDに余命指標値が「30」より大きく「100」以下のSSDが存在するか判定する(ステップS301)。
そして、選択部18は、使用されていないSSDに余命指標値が「30」より大きく「100」以下のSSDが存在する場合は(ステップS301Yes)、閾値を満たすSSDを選択し(ステップS302)、処理を終了する。一方、選択部18は、使用されていないSSDに余命指標値が「30」より大きく「100」以下のSSDが存在しない場合は(ステップS301No)、SSDを選択せずに処理を終了する。
[情報処理装置1の効果]
上述したように、情報処理装置1は、SSD6aと、例えばSSD6aの予備であるSSD6fとを有する。また、情報処理装置1は、SSD6aについて、余命指標値と、SSD6aに対する書込みと読み出しとの読み書きの比率を収集する。そして、情報処理装置1は、収集した比率に基づいて、SSD6aの交換基準となる閾値を決定する。その後、情報処理装置1は、収集した余命指標値が決定した閾値よりも短い場合は、SSD6aをSSD6fと交換する。このため、情報処理装置1は、ノード5aにSSD6a〜6fをストレージ装置として継続して利用させることができる。
また、情報処理装置1は、SSD6aに対する読み書きの比率に応じた閾値を用いて、SSD6aの交換を判定するので、各SSD6a〜6fの余命を使いきることができる。この結果、情報処理装置1は、各SSD6a〜6fをストレージとして利用した際の寿命を最大限利用することができる。
なお、情報処理装置1は、収集した比率に応じて、ノード5aが実行するアプリケーションプログラムの性質を判定し、判定したアプリケーションプログラムの性質に応じて、ノード5aが使用するSSD6aの交換基準となる閾値を決定してもよい。その後、情報処理装置1は、収集した余命指標値が、決定した閾値よりも短い場合は、SSD6aを他のSSDと交換する。このような場合にも、情報処理装置1は、ノード5aにSSD6a〜6fをストレージ装置として継続して利用させることができる。
また、情報処理装置1は、ノード5aが実行するアプリケーションプログラムの性質に応じた閾値を用いて、SSDの交換を行ってもよい。このような場合にも、情報処理装置1は、各SSD6a〜6fの余命を使いきり、各SSD6a〜6fをストレージとして利用した際の寿命を最大限利用することができる。
また、情報処理装置1は、収集した比率においてデータの書き込みの比率が多い場合は、データの読み出しの比率が多い場合に設定する第1の閾値よりも値が大きい第2の閾値をSSD6aの交換基準となる閾値とする。このため、情報処理装置1は、書き込みの頻度が多いアプリケーションプログラムを実行するノードに対して余命が長いSSDを割り当て、読出しの頻度が多いアプリケーションプログラムを実行するノードに対して余命が短いSSDを割り当てる。この結果、情報処理装置1は、各SSD6a〜6fの寿命を最大限利用することができる。
なお、情報処理装置1は、ノード5aが実行するアプリケーションプログラムの性質がリードインテンシブであるかライトインテンシブであるかを判定してもよい。そして、情報処理装置1は、アプリケーションプログラムがライトインテンシブである場合は、リードインテンシブである際に用いる閾値よりも値が大きい閾値を用いることとしてもよい。
また、情報処理装置1は、使用されていないSSD、すなわち予備のSSDを複数有し、SSD6aを交換する場合は、使用されていないSSDのうち、以下の条件を満たすSSDを選択する。すなわち、情報処理装置1は、SSD6aから収集した比率についてデータ読み出しの比率が多い場合、予備のSSDのうち、余命指標値が第1の閾値よりも大きく、かつ、余命指標値が第2の閾値よりも小さいSSDを選択する。そして、情報処理装置1は、SSD6aを選択したSSDと交換する。このため、情報処理装置1は、使用されていないSSDのうち、余命が短いSSDを優先して使用することができる。
なお、情報処理装置1は、ノード5aが実行するアプリケーションプログラムの性質がリードインテンシブである場合は、使用されていないSSDのうち、以下の条件を満たすSSDを選択してもよい。すなわち、情報処理装置1は、余命指標値が、アプリケーションプログラムの性質がリードインテンシブである際の閾値よりも大きく、かつ、アプリケーションプログラムの性質がライトインテンシブである際の閾値よりも短いSSDを選択してもよい。
また、情報処理装置1は、SSD6aから収集した比率についてデータ書込みの比率が多い場合、予備のSSDのうち、余命指標値が第2の閾値よりも大きいSSDを選択する。そして、情報処理装置1は、SSD6aを選択したSSDと交換する。このため、情報処理装置1は、書き込みの頻度が多いアプリケーションプログラムを実行するノードに対し、余命に余裕があるSSDを割り当てることができる。この結果、情報処理装置1は、SSD6a〜6fの余命が尽き、各ノード5a〜5eが使用するSSDが急に使用できなくなるといった事態を防ぐことができるので、アプリケーションプログラムを安定して実行することができる。
なお、情報処理装置1は、ノード5aが実行するアプリケーションプログラムの性質がライトインテンシブである場合は、使用されていないSSDのうち、以下の条件を満たすSSDを選択してもよい。すなわち、情報処理装置1は、余命指標値が、アプリケーションプログラムの性質がライトインテンシブである際の閾値よりも大きいSSDを選択する。そして、情報処理装置1は、ノード5aが使用するSSDを選択したSSDと交換してもよい。
また、情報処理装置1は、単位時間あたりにSSD6aから読み出されたデータ量が所定の閾値よりも多い場合は、データの読み出しの比率が多いと判定する。このため、情報処理装置1は、多くのデータを読出すアプリケーションプログラムに対し、余命指標値が小さいSSDを割り当てることができる。
なお、情報処理装置1は、ノード5aが実行するアプリケーションプログラムが読出したデータ量が所定の閾値よりも多い場合は、ノード5aが実行するアプリケーションプログラムがリードインテンシブであると判定する。そして、情報処理装置1は、リードインテンシブなアプリケーションプログラムに余命指標値が小さいSSDを割当ててもよい。
また、情報処理装置1は、例えば、ノード5aがSSD6aとSSD6bとをRAID1によりミラーリングした際に、SSD6aをSSD6dと交換する場合は、以下の処理を実行する。すなわち、情報処理装置1は、SSD6aをSSD6dとを交換するまでの間、ノード5aからSSD6a、6bに書き込もうとしたデータをメモリ上に保持する。そして、情報処理装置1は、SSD6aのデータをSSD6dに複製し、メモリ上に保持したデータをSSD6bおよび6dに複製する。このため、情報処理装置1は、ノード5aが実行するアプリケーションプログラムを動作させたままでSSDの交換を行うことができる。
このように、情報処理装置1は、各SSD6a〜6fの余命が尽きるまで、各SSD6a〜6fを交換するか否かを判定する。ここで、情報処理装置1には、複数のノード5a〜5eが設置され、各ノード5a〜5eが実行するアプリケーションには、それぞれ異なる性質を有する。このため、各ノード5a〜5eがRAID1によるミラーリングを構築した場合にも、各SSD6a〜6fの余命に偏りが発生することとなる。この結果、情報処理装置1は、ノード5aがRAID1によりミラーリングされたSSDを用いる場合であっても、各SSD6a〜6fを長期に渡り効率よく利用することができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)他のRAIDについて
上述した情報処理装置1では、ノード5aがRAID1により、SSD6a、6bのデータをミラーリングしていた。しかし、実施例はこれに限定されるものではない。例えば、ノード5aは、5台のSSDに対し、データとデータを復元するためのパリティとを分散して格納するRAID5を構築してもよい。また、ノード5aは、6台のSSDに対し、データとデータを復元するためのパリティとを分散して格納するRAID6を構築してもよい。
このように、ノード5aがRAID5、またはRAID6を構築中には、情報処理装置1は、交換対象となるSSDが記憶するデータの複製を行わなくともよい。例えば、情報処理装置1は、ノード5aがSSD6a〜6eを用いてRAID5を構築中に、SSD6aをSSD6fと交換する場合は、SSD6b〜6eからSSD6fが記憶すべきデータを復元することができる。
このため、情報処理装置1は、ノード5aが使用中のSSD6aをSSD6fと交換する場合は、SSD6aとノード5aとの接続を解除する。そして、情報処理装置1は、SSD6aからSSD6fにデータを複製せずにSSD6fとノード5bとの接続を行う。この結果、ノード5aは、RAID5の機能により、SSD6b〜6eからSSD6fが記憶すべきデータを復元する。また、RAID5の機能により、ノード5aは、SSD6aとSSD6fとを交換する間、データの読出しを継続することができ、データの書き込みもバッファする必要はない。このため、ノード5aは、SSD6aとSSD6fとを交換する間、アプリケーションプログラムを継続して実行することができる。
次に、図9を用いて、RAID5を構築中のノード5aに対して情報処理装置1が実行する処理の流れについて説明する。図9は、実施例2に係る情報処理装置が実行する処理の流れを説明するフローチャートである。なお、図9に示す処理のうちステップS401〜S408については、図6に示すステップS101〜S108と同様の処理であるものとして、説明を省略する。また、以下の説明では、ノード5aがSSD6a〜6eを用いてRAID5を構築しており、ノード5aが実行するアプリケーションプログラムの性質に応じた閾値を満たすSSD6fとSSD6aとを交換する処理の流れについて説明する。
例えば、管理サーバ10は、ノード5aからSSD6aの接続を解除し、SSD6fをノード5aに接続し、余命管理テーブル12を更新してノード5aにSSD6fを接続した旨を通知する(ステップS409)。すると、ノード5aは、SSD6b〜6eを用いてSSD6fが記憶すべきデータを復元し、SSD6b〜6fを用いてRAID5を再構築する。そして、ノード5aは、RAID5の再構築が終了した旨を管理サーバ10に通知する(ステップS410)。また、管理サーバ10は、閾値を超えたSSDで未交換のSSDが存在するか判定し(ステップS411)、閾値を超えたSSDで未交換のSSDが存在しない場合は(ステップS411No)、処理を終了する。一方、管理サーバ10は、閾値を超えたSSDで未交換のSSDが存在する場合は(ステップS411Yes)、ステップS408を実行する。
このように、情報処理装置1は、ノード5aが使用するSSD6a〜6eにデータとデータを復元するためのパリティとが格納されている場合に、SSD6a〜6eのいずれかを交換する時は、以下の処理を実行する。例えば、情報処理装置1は、SSD6aとSSD6fとを交換し、SSD6b〜6eが記憶するデータとパリティとを用いて、SSD6fが記憶するデータを復元する。このため、情報処理装置1は、交換対象となるSSDのデータを複製せずとも、ノード5aがアプリケーションプログラムを実行したままで、SSDの交換を行うことができる。
(2)情報処理装置1の構成について
上述した実施例1では、ディスクエリアネットワーク3を介して、CPUプール2が有する各ノード5a〜5eに対し、ディスクプール4が有する各SSD6a〜6eのうち、任意のSSDを接続する例について説明した。しかし、実施例はこれに限定されるものではない。例えば、情報処理装置1は、ディスクエリアネットワーク3の代わりに、SAN(Storage Area Netowrk)を用いて、各ノード5a〜5eと各SSD6a〜6eとを接続してもよい。また、情報処理装置1は、SSDだけではなく、HDD(Hard Disk Drive)等任意の装置をストレージとしてディスクプール4に含めてもよい。
(3)アプリケーションプログラムの性質について
上述した実施例1では、管理サーバ10は、アプリケーションプログラムによる読出しと書き込みの比率に基づいて、アプリケーションプログラムの性質を判定した。しかし、実施例はこれに限定されるものではない。例えば、管理サーバ10は、アプリケーションプログラムによる読出しと書き込みの比率だけではなく、例えば、平均的な書き込みデータ量を考慮に加えてアプリケーションプログラムの性質を判定してもよい。
また、管理サーバ10は、アプリケーションプログラムを実行するノードの数を考慮に加えてもよい。また、管理サーバ10は、必ずしも、アプリケーションプログラムの性質を判定する必要はない。すなわち、管理サーバ10は、各SSD6a〜6eに対する読み出しと書込みの比率に応じて、交換の指標となる閾値を直接設定し、設定した閾値と余命指標値とに応じて、各SSD6a〜6eの交換を行っても良い。
(4)RAIDについて
上述した実施例1では、ノード5aがRAID1を構築する例について説明し、実施例2では、ノード5aがRAID6を構築する例について説明した。しかしながら、実施例はこれに限定されるものではない。例えば、情報処理装置1は、ノード5aがRAID1を構築し、ノード5bがRAID5、またはRAID6を構築中には、ノード5aに対して図6に示した処理を実行し、ノード5bに対して図9に示した処理を実行してもよい。
(5)収集する情報について
上述した実施例1では、管理サーバ10は、単位時間当たりに読出したデータ量と書き込んだデータ量との比率を収集した。しかし、実施例はこれに限定されるものではなく、例えば、管理サーバ10は、単位時間当たりにデータを読出した回数とデータを書き込んだ回数とを各ノード5a〜5eから収集してもよい。また、管理サーバ10は、データを読出した回数が所定の閾値よりも多い場合は、リードインテンシブであると判断しても良い。すなわち、管理サーバ10は、データを読出した回数とデータを書き込んだ回数との比率に応じて、アプリケーションプログラムがリードインテンシブであるかライトインテンシブであるかを判断して良い。
このように、情報処理装置1は、ノード5aが実行するアプリケーションプログラムがSSD6aからデータを読出した回数が所定の閾値よりも多い場合は、データの書き込みの比率が多いと判定する。例えば、情報処理装置1は、ノード5aが実行するアプリケーションプログラムがリードインテンシブであると判定する。このため、情報処理装置1は、データを何度も読出すアプリケーションプログラムに対し、余命指標値が小さいSSDを割り当てることができる。
(6)プログラム
ところで、実施例1に係る管理サーバ10は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図10を用いて、実施例1に示した管理サーバ10と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図10は、制御プログラムを実行するコンピュータを説明する図である。
図10に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU140がバス160で接続される。また、図10に例示されたコンピュータ100は、パケットを送受信するためのI/O(Input Output)150を有する。
HDD120は、図3に示した記憶部11が記憶する余命管理テーブル12と同様の情報である余命管理テーブル121、および、ワークロード管理テーブル13と同様の情報であるワークロード管理テーブル122を記憶する。また、RAM130には、制御プログラム131があらかじめ保持される。CPU140が制御プログラム131をRAM130から読出して実行することによって、図10に示す例では、制御プログラム131は、制御プロセス141として機能するようになる。なお、制御プロセス141は、図3に示した更新部15、判定部16、決定部17、選択部18、設定部19と同様の機能を発揮する。
なお、本実施例で説明した制御プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読出されることによって実行することもできる。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置において、
前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集する収集部と、
前記収集部が収集した前記比率に基づいて、前記半導体記憶装置の交換基準となる閾値を決定する決定部と、
前記収集部が収集した前記余命指標値が、前記決定部が決定した閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換する交換部と
を有することを特徴とする情報処理装置。
(付記2)前記決定部は、
収集した前記比率においてデータの読出しの比率が多い場合、第1の閾値を前記半導体記憶装置の交換基準となる閾値とし、データの書き込みの比率が多い場合、前記第1の閾値よりも値が大きい第2の閾値を前記半導体記憶装置の交換基準となる閾値とすることを特徴とする付記1に記載の情報処理装置。
(付記3)前記情報処理装置はさらに、
前記予備半導体記憶装置を複数有し、
前記決定部は、
収集した前記比率においてデータの読出しの比率が多い場合、前記複数の予備半導体記憶装置のうち、余命指標値が前記第1の閾値よりも大きく、かつ、前記第2の閾値よりも小さい予備半導体記憶装置を選択し、
前記交換部は、
前記半導体記憶装置を前記選択部が選択した予備半導体記憶装置と交換することを特徴とする付記2に記載の情報処理装置。
(付記4)前記選択部は、
収集した前記比率においてデータの書き込みの比率が多い場合、前記複数の予備半導体記憶装置のうち、余命が前記第2の閾値よりも大きい予備半導体記憶装置を選択することを特徴とする付記3に記載の情報処理装置。
(付記5)前記収集部は、
前記比率として、単位時間当たりに前記半導体記憶装置から読出されたデータ量と前記半導体記憶装置に書き込まれたデータ量との比率を収集し、
前記判定部は、
単位時間当たりの前記半導体記憶装置から読み出したデータ量が所定の閾値よりも多い場合、データの読出しの比率が多いと判定することを特徴とする付記1〜4のいずれか1つに記載の情報処理装置。
(付記6)前記収集部は、
前記比率として、単位時間当たりに前記半導体記憶装置からデータを読出した回数とデータを書き込んだ回数との比率を収集し、
前記判定部は、
単位時間当たりの前記データの読出し回数が所定の閾値よりも多い場合、データの読出しの比率が多いと判定することを特徴とする付記1〜4のいずれか1つに記載の情報処理装置。
(付記7)前記情報処理装置はさらに、
データが読み書きされる複数の半導体記憶装置と、
前記半導体記憶装置が、二重化されている場合、前記交換部が、前記半導体記憶装置を前記予備の半導体記憶装置と交換する間、前記半導体記憶装置に対する書込みデータを保持する保持部と、
前記交換部が、交換対象の半導体記憶装置が記憶するデータと、前記保持部が保持したデータとを、前記予備半導体記憶装置と、前記複数の半導体記憶装置のうち前記予備半導体記憶装置と二重化される半導体記憶装置とに複製する複製部と
を有することを特徴とする付記1〜6のいずれか1つに記載の情報処理装置。
(付記8)前記情報処理装置はさらに、
データが読み書きされる複数の半導体記憶装置を有し、
前記交換部は、
前記複数の半導体記憶装置に、データとデータを復元するためのパリティとが分散して格納されている場合、前記複数の半導体記憶装置のうち、いずれかの半導体記憶装置を前記予備半導体記憶装置と交換したとき、前記複数の半導体記憶装置のうち、前記予備半導体記憶装置以外の半導体記憶装置が記憶するデータとパリティとを用いて、前記予備半導体記憶装置が記憶するデータを生成することを特徴とする付記1〜6のいずれか1つに記載の情報処理装置。
(付記9)データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置の制御プログラムにおいて、
前記情報処理装置に、
前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集させ、
収集された前記比率に基づいて、前記半導体記憶装置の交換基準となる閾値を決定させ、
収集された前記余命指標値が、決定された前記閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換させる
ことを特徴とする情報処理装置の制御プログラム。
(付記10)データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置の制御方法において、
前記情報処理装置が、
前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集し、
収集された前記比率に基づいて、前記半導体記憶装置の交換基準となる閾値を決定し、
収集された前記余命指標値が、決定された前記閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換する
ことを特徴とする情報処理装置の制御方法。
1 情報処理装置
2 CPUプール
3 ディスクエリアネットワーク
4 ディスクプール
5a〜5e ノード
6a〜6f SSD
7 管理ネットワーク
10 管理サーバ
11 記憶部
12 余命管理テーブル
13 ワークロード管理テーブル
14 通信部
15 更新部
16 判定部
17 決定部
18 選択部
19 設定部

Claims (9)

  1. データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置において、
    前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集する収集部と、
    前記収集部が収集した前記比率においてデータの読出しの比率が多い場合、第1の閾値を前記半導体記憶装置の交換基準となる閾値として決定し、データの書き込みの比率が多い場合、前記第1の閾値よりも値が大きい第2の閾値を前記半導体記憶装置の交換基準となる閾値として決定する決定部と、
    前記収集部が収集した前記余命指標値が、前記決定部が決定した閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換する交換部と
    を有することを特徴とする情報処理装置。
  2. 前記情報処理装置はさらに、
    前記予備半導体記憶装置を複数有し、
    前記決定部は、
    収集した前記比率においてデータの読出しの比率が多い場合、前記複数の予備半導体記憶装置のうち、余命指標値が前記第1の閾値よりも大きく、かつ、前記第2の閾値よりも小さい予備半導体記憶装置を選択し、
    前記交換部は、
    前記半導体記憶装置を前記決定部が選択した予備半導体記憶装置と交換することを特徴とする請求項に記載の情報処理装置。
  3. 前記決定部は、
    収集した前記比率においてデータの書き込みの比率が多い場合、前記複数の予備半導体記憶装置のうち、余命が前記第2の閾値よりも大きい予備半導体記憶装置を選択することを特徴とする請求項に記載の情報処理装置。
  4. 前記収集部は、
    前記比率として、単位時間当たりに前記半導体記憶装置から読出されたデータ量と前記半導体記憶装置に書き込まれたデータ量との比率を収集し、
    前記決定部は、
    単位時間当たりの前記半導体記憶装置から読み出したデータ量が所定の閾値よりも多い場合、データの読出しの比率が多いと判定することを特徴とする請求項1〜3のいずれか1つに記載の情報処理装置。
  5. 前記収集部は、
    前記比率として、単位時間当たりに前記半導体記憶装置からデータを読出した回数とデータを書き込んだ回数との比率を収集し、
    前記決定部は、
    単位時間当たりの前記データの読出し回数が所定の閾値よりも多い場合、データの読出しの比率が多いと判定することを特徴とする請求項1〜3のいずれか1つに記載の情報処理装置。
  6. 前記情報処理装置はさらに、
    データが読み書きされる複数の半導体記憶装置と、
    前記半導体記憶装置が、二重化されている場合、前記交換部が、前記半導体記憶装置を前記予備の半導体記憶装置と交換する間、前記半導体記憶装置に対する書込みデータを保持する保持部と、
    前記交換部が、交換対象の半導体記憶装置が記憶するデータと、前記保持部が保持したデータとを、前記予備半導体記憶装置と、前記複数の半導体記憶装置のうち前記予備半導体記憶装置と二重化される半導体記憶装置とに複製する複製部と
    を有することを特徴とする請求項1〜のいずれか1つに記載の情報処理装置。
  7. 前記情報処理装置はさらに、
    データが読み書きされる複数の半導体記憶装置を有し、
    前記交換部は、
    前記複数の半導体記憶装置に、データとデータを復元するためのパリティとが分散して格納されている場合、前記複数の半導体記憶装置のうち、いずれかの半導体記憶装置を前記予備半導体記憶装置と交換したとき、前記複数の半導体記憶装置のうち、前記予備半導体記憶装置以外の半導体記憶装置が記憶するデータとパリティとを用いて、前記予備半導体記憶装置が記憶するデータを生成することを特徴とする請求項1〜のいずれか1つに記載の情報処理装置。
  8. データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置の制御プログラムにおいて、
    前記情報処理装置に、
    前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集させ、
    収集された前記比率においてデータの読出しの比率が多い場合、第1の閾値を前記半導体記憶装置の交換基準となる閾値として決定し、データの書き込みの比率が多い場合、前記第1の閾値よりも値が大きい第2の閾値を前記半導体記憶装置の交換基準となる閾値として決定させ、
    収集された前記余命指標値が、決定された前記閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換させる
    ことを特徴とする情報処理装置の制御プログラム。
  9. データが読み書きされる半導体記憶装置と、前記半導体記憶装置の予備である予備半導体記憶装置とを有する情報処理装置の制御方法において、
    前記情報処理装置が、
    前記半導体記憶装置について、書き込まれたデータを消去できる残余回数に基づいた余命指標値、および、前記半導体記憶装置に対する読出しと書き込みとの読み書きの比率を収集し、
    収集された前記比率においてデータの読出しの比率が多い場合、第1の閾値を前記半導体記憶装置の交換基準となる閾値として決定し、データの書き込みの比率が多い場合、前記第1の閾値よりも値が大きい第2の閾値を前記半導体記憶装置の交換基準となる閾値として決定し、
    収集された前記余命指標値が、決定された前記閾値よりも短い場合は、前記半導体記憶装置を前記予備半導体記憶装置と交換する
    ことを特徴とする情報処理装置の制御方法。
JP2013070675A 2013-03-28 2013-03-28 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法 Expired - Fee Related JP6136460B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013070675A JP6136460B2 (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US14/183,987 US9619181B2 (en) 2013-03-28 2014-02-19 Information processing device and method for controlling replacement of semiconductor storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013070675A JP6136460B2 (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014194667A JP2014194667A (ja) 2014-10-09
JP6136460B2 true JP6136460B2 (ja) 2017-05-31

Family

ID=51621993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013070675A Expired - Fee Related JP6136460B2 (ja) 2013-03-28 2013-03-28 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US9619181B2 (ja)
JP (1) JP6136460B2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9781207B2 (en) * 2013-08-29 2017-10-03 International Business Machines Corporation Dispersed storage based on estimated life and methods for use therewith
CN105701019A (zh) * 2014-11-25 2016-06-22 阿里巴巴集团控股有限公司 一种内存管理方法以及装置
US9575853B2 (en) * 2014-12-12 2017-02-21 Intel Corporation Accelerated data recovery in a storage system
US9372628B1 (en) * 2015-01-23 2016-06-21 International Business Machines Corporation Deduplication tracking for accurate lifespan prediction
US9921760B2 (en) 2015-10-22 2018-03-20 International Business Machines Corporation Shifting wearout of storage disks
US9886203B2 (en) * 2015-10-22 2018-02-06 International Business Machines Corporation Shifting wearout of storage disks
US10528276B2 (en) 2015-10-22 2020-01-07 International Business Machines Corporation Shifting wearout of storage disks
US10754573B2 (en) * 2016-03-11 2020-08-25 EMC IP Holding Company LLC Optimized auto-tiering, wherein subset of data movements are selected, utilizing workload skew point, from a list that ranks data movements based on criteria other than I/O workload
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和装置
US11106369B1 (en) * 2016-06-28 2021-08-31 Amazon Technologies, Inc. Host-accessible storage device service level indicators
WO2018004368A1 (en) * 2016-06-30 2018-01-04 Emc Corporation Arranging ssd resources based on estimated endurance
JP2018116575A (ja) * 2017-01-19 2018-07-26 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
JP6928247B2 (ja) * 2017-09-11 2021-09-01 富士通株式会社 ストレージ制御装置およびストレージ制御プログラム
US11093165B2 (en) * 2018-09-03 2021-08-17 Dynamic Lifecycle Innovations, Inc. Systems and methods for data sanitization of electronic storage media
US20230063498A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Monitoring memory device health according to data storage metrics

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4818812B2 (ja) 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
JP4933861B2 (ja) * 2005-09-22 2012-05-16 株式会社日立製作所 ストレージ制御装置、データ管理システムおよびデータ管理方法
JP4942446B2 (ja) * 2006-10-11 2012-05-30 株式会社日立製作所 ストレージ装置及びその制御方法
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
KR20120136197A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 비휘발성 메모리에 대한 웨어 레벨링 방법
JP2013020544A (ja) 2011-07-13 2013-01-31 Fujitsu Ltd ストレージ装置および代替記憶媒体選択方法
US9026863B2 (en) * 2013-01-17 2015-05-05 Dell Products, L.P. Replacement of storage responsive to remaining life parameter

Also Published As

Publication number Publication date
JP2014194667A (ja) 2014-10-09
US9619181B2 (en) 2017-04-11
US20140297926A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP6136460B2 (ja) 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
JP7374939B2 (ja) 分散型ストレージシステム
US9569130B2 (en) Storage system having a plurality of flash packages
US7650480B2 (en) Storage system and write distribution method
JP5192352B2 (ja) 記憶装置及びデータ格納領域管理方法
US10459638B2 (en) Computer system that generates group information and redundant code based on user data and changes the group information and redundant code based on transmission data, control method for computer system, and recording medium
KR101821001B1 (ko) Raid 어레이에서 장치내 데이터 보호
KR101824286B1 (ko) 적응적 지오메트리를 구비한 raid 어레이에서의 복원 판독
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US9727481B2 (en) Cache eviction of inactive blocks using heat signature
US20080120459A1 (en) Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US9891989B2 (en) Storage apparatus, storage system, and storage apparatus control method for updating stored data stored in nonvolatile memory
US8812779B2 (en) Storage system comprising RAID group
WO2015097751A1 (ja) 不揮発性キャッシュメモリにデータをバックアップするストレージシステム
JP2013077074A (ja) ストレージ装置、ストレージ制御装置およびコピー先データアクセス方法
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
WO2018002999A1 (ja) 記憶デバイス及びストレージ装置
JP6138318B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP5945040B2 (ja) 複数のフラッシュパッケージを有するストレージシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6136460

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees