(57)【要約】【課題】ホスト計算機のライト性能にあわせて、該当するデータ領域に対応するライト領域を割当てられるストレージ装置を実現する。【解決手段】複数のフラッシュメモリを備えた一つ以上のフラッシュメモリパッケージを有し、一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置において、一つ以上のフラッシュメモリパッケージにより提供される記憶領域は一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、論理デバイスに対するホスト計算機のライト命令を保管する領域である第２の領域とを一つ以上のフラッシュメモリパッケージ毎に有し、ホスト計算機からのライト命令の頻度を監視する監視部と、ライト命令の頻度に応じて第２の領域のサイズを変更する変更部を備える。【選択図】図２
2010033393.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置において、
複数のフラッシュメモリチップを備えた一つ以上のフラッシュメモリパッケージを有し、
前記一つ以上のフラッシュメモリパッケージにより提供される記憶領域は、一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、前記論理デバイスに対する前記ホスト計算機のライト命令を保管する領域である第２の領域とを前記一つ以上のフラッシュメモリパッケージ毎に有し、
前記ホスト計算機からのライト命令の頻度を監視する監視部と、
前記ライト命令の頻度に応じて、前記第２の領域のサイズを変更する変更部とを備える、
ことを特徴とするストレージ装置。
【請求項２】
前記変更部の前記第２の領域のサイズの変更は、前記論理デバイス毎に変更する、
ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記第２の領域に空き領域がないときは、前記ライト命令を前記第２の領域に上書きする処理部を備える、
ことを特徴とする請求項１記載のストレージ装置。
【請求項４】
前記上書きする頻度を監視し、所定の頻度の範囲のうちの上限値を超えた場合に前記第２の領域の追加の要求を、管理装置へ出力する追加要求出力部を備える、
ことを特徴とする請求項３記載のストレージ装置。
【請求項５】
前記管理装置から前記上限値の設定を変更する指示を取得する取得部を備える、
ことを特徴とする請求項４記載のストレージ装置。
【請求項６】
前記ホスト計算機のいずれかから前記上限値の設定を変更する指示を取得する取得部を備える、
ことを特徴とする請求項４記載のストレージ装置。
【請求項７】
前記上書きする頻度を監視し、所定の頻度の範囲のうちの下限値を下回った場合に前記第２の領域の削減の要求を、管理装置へ出力する削減要求出力部を備える、
ことを特徴とする請求項３記載のストレージ装置。
【請求項８】
前記管理装置から前記下限値の設定を変更する指示を取得する取得部を備える、
ことを特徴とする請求項７記載のストレージ装置。
【請求項９】
前記ホスト計算機のいずれかから前記下限値の設定を変更する指示を取得する取得部を備える、
ことを特徴とする請求項７記載のストレージ装置。
【請求項１０】
前記処理部は、前記第２の領域の削減時に、削減前の第２の領域の範囲と削減後の第２の領域の範囲とを比較し、前記削減前の領域範囲が前記削減後の領域範囲内でない場合は前記削減前の領域範囲に上書きし、前記削減前の領域範囲が前記削減後の領域範囲内である場合は上書きを行なわない、
ことを特徴とする請求項７記載のストレージ装置。
【請求項１１】
前記第２の領域の削減時に、前記フラッシュメモリパッケージ全体を前記記憶領域から削減した場合その削減したフラッシュメモリパッケージの位置を表示する表示部を備える、
ことを特徴とする請求項１０記載のストレージ装置。
【請求項１２】
前記一つ以上のフラッシュメモリパッケージは、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループを構成する、
ことを特徴とする請求項１記載のストレージ装置。
【請求項１３】
一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置の記憶領域管理方法において、
複数のフラッシュメモリチップを備えた一つ以上のフラッシュメモリパッケージにより提供される記憶領域は、一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、前記論理デバイスに対する前記ホスト計算機のライト命令を保管する領域である第２の領域とを前記一つ以上のフラッシュメモリパッケージ毎に有し、
前記ホスト計算機からのライト命令の頻度を監視するステップと、
前記ライト命令の頻度に応じて、前記第２の領域のサイズを変更するステップと、
を含むことを特徴とするストレージ装置の記憶領域管理方法。
【請求項１４】
前記第２の領域のサイズの変更するステップは、前記論理デバイス毎に変更できる、
ことを特徴とする請求項１３記載のストレージ装置の記憶領域管理方法。
【請求項１５】
前記第２の領域に空き領域がないときは、前記ライト命令を前記第２の領域に上書きするステップを含む、
ことを特徴とする請求項１３記載のストレージ装置の記憶領域管理方法。
【請求項１６】
前記上書きするデータの頻度を監視し、所定の頻度の範囲のうちの上限値を超えた場合に前記第２の領域の追加の要求を、管理装置へ出力するステップを含む、
ことを特徴とする請求項１５記載のストレージ装置の記憶領域管理方法。
【請求項１７】
前記上書きするデータの頻度を監視し、所定の頻度の範囲のうちの下限値を下回った場合に前記第２の領域の削減の要求を、管理装置へ出力する、
ことを特徴とする請求項１５記載のストレージ装置の記憶領域管理方法。
【請求項１８】
前記一つ以上のフラッシュメモリパッケージは、ＲＡＩＤグループを構成する、
ことを特徴とする請求項１３記載のストレージ装置の記憶領域管理方法。
【請求項１９】
一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置に用いられる、複数のフラッシュメモリチップを備えたフラッシュメモリパッケージは、
一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、前記論理デバイスに対する前記ホスト計算機のライト命令を保管する領域である第２の領域とを有し、
前記ストレージ装置により監視された前記ライト命令の頻度に応じて、前記第２の領域のサイズを変更する、
ことを特徴とするフラッシュメモリパッケージ。
【請求項２０】
一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置において、
複数のフラッシュメモリチップを備えた一つ以上のフラッシュメモリパッケージを有し、
前記一つ以上のフラッシュメモリパッケージにより提供される記憶領域は、一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、前記論理デバイスに対する前記ホスト計算機のライト命令を保管する領域である第２の領域とを前記一つ以上のフラッシュメモリパッケージ毎に有し、
前記第２の領域に保管されたデータを所定のメモリ上で上書き後、前記第１の領域にデータを書き出すリクラメーション処理を実行するリクラメーション処理部と、
前記リクラメーション処理を実行したときに、前記第１の領域と前記第２の領域との割合に変更があるか否かを判定する判定部と、
前記判定部で変更ありと判定したときに、前記第１の領域と前記第２の領域との割合を再設定する設定部とを備える、
ことを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに用いられるストレージ装置に関し、特に、記憶媒体としてフラッシュメモリなどの不揮発性半導体メモリを用いたストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージに関する。
【背景技術】
【０００２】
ストレージ装置は、一般的に、ランダムアクセス可能な不揮発性記憶媒体を備える。ランダムアクセス可能な不揮発性記憶媒体は、例えば、磁気ディスク（以下ハードディスクとも呼ぶ）、光ディスク等であり、例えば特許文献１のように、ハードディスクを多数備えた構成をとる。
【０００３】
また、近年、従来のハードディスクの代替としてフラッシュメモリなどの不揮発性半導体メモリを記憶媒体としたストレージ装置が注目を集めている。フラッシュメモリはハードディスクに比べて高速動作可能で、かつ消費電力が低いという利点を持つ。特許文献２には、ストレージ装置において、複数のフラッシュメモリを備え、ＳＣＳＩ（Small Computer System Interface）等の従来ハードディスクのアクセス手段でアクセス可能としたフラッシュメモリディスクを、ストレージ装置のハードディスクの代替として利用する技術が開示されている。
【０００４】
フラッシュメモリの効率的な書き込み方式を実現する方式として、特許文献３がある。この方式では、フラッシュメモリのブロック内を、ライト領域とデータ領域とにわけ、ライトデータはライト領域にログ形式で追記し、ライト領域にデータがまとまった段階で、ブロックのデータをメモリに読み出し、ライト領域のデータをメモリ上で上書き後、データ領域にデータを書き出す方式がある。なお、この書き込み方式をリクラメーション方式と呼ぶ。
【特許文献１】特開２００４−５３７０号公報
【特許文献２】米国特許第６５２９４１６号公報
【特許文献３】米国特許第７０３９７８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
先に述べたように、フラッシュメモリの領域をデータ領域とライト領域に分けてライトの性能を向上させる方式の場合、ホスト計算機のアプリケーションによっては、ライト命令が少ないがゆえにライト領域のリクラメーションがほとんど発生しない場合があり、割り当てられたライト領域が効率的に利用されないという課題がある。
【０００６】
上記の課題を解決するには、ホスト計算機のライト性能にあわせて、該当するデータ領域に対応するライト領域を割当てられるストレージ装置を実現する必要がある。
【０００７】
また、ライト領域は、ライト性能に合わせて削減する場合にライト性能にあわせてフラッシュメモリパッケージの減設することも必要である。
【０００８】
本発明は、以上の点を考慮してなされたもので、ホスト計算機からのライト命令に応じてライト領域を効率的に割り当てることが可能とするストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージを提案しようとするものである。
【課題を解決するための手段】
【０００９】
本発明は、複数のフラッシュメモリを備えた一つ以上のフラッシュメモリパッケージを有し、一つ以上のホスト計算機から送信されたデータを記憶するストレージ装置において、前記一つ以上のフラッシュメモリパッケージにより提供される記憶領域は、一つの以上の論理デバイスから構成される実データを記憶する領域である第１の領域と、前記ホスト計算機のライト命令を保管する領域である第２の領域とを前記一つ以上のフラッシュメモリパッケージ毎に有し、前記ホスト計算機からのライト命令の頻度を監視し、前記ライト命令の頻度に応じて前記第２の領域のサイズを変更するものである。
【００１０】
この構成により、ホスト計算機からのライト命令に応じてライト領域を効率的に割り当てることが可能となる。なお、記憶領域単位をアプリケーション単位又はホスト計算機単位で設定することにより、アプリケーション単位又はホスト計算機単位で第２の領域を変更することが可能となる。
【００１１】
また、ストレージ装置において、フラッシュメモリパッケージ全体を記憶領域から削減することにより第２の領域を削減する場合、その削減したフラッシュメモリパッケージの位置を表示することにより、不要となったフラッシュメモリパッケージを減設することができる。
【発明の効果】
【００１２】
本発明によれば、ホスト計算機からのライト命令に応じてライト領域を効率的に割り当てることが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下に、図面を参照しながら本発明の実施形態を説明する。尚これにより本発明が限定されるものではない。
【００１４】
（第１の実施形態）
先ず第１の実施形態について説明する。本第１の実施形態はフラッシュメモリパッケージ（以下、ＦＭ−ＰＫとも称する。）上にフラッシュメモリチップを搭載したストレージ装置により、ホストライトＩ／Ｏ（Input/Output）に基づいて、必要なライト領域を、実データを格納するユーザ領域（データ領域とも呼ぶ。）に対して割当てる場合について説明する。
【００１５】
本第１の実施形態には、ＦＭ−ＰＫ毎に、第１の領域であるユーザ領域、第２の領域であるライト領域を用意している。この２つの領域を用意するメリットは、フラッシュメモリパッケージの追加と共に、ユーザ領域が増やせることにある。
【００１６】
先ず、第１の実施形態における計算機システム１の構成について説明する。図１及び図２は、計算機システム１の構成を示す図である。図３から図９は計算機システム１で使用する管理情報を示す図である。
【００１７】
図１は計算機システム１の構成の一例を示す図である。計算機システム１は複数のホスト計算機（以下、ホストとも称する。）１００、ストレージ装置２００、管理コンソール２５０を含んでいる。
【００１８】
ホスト１００とストレージ装置２００とは、ストレージ装置２００に保管するデータが転送できる入出力ネットワークであるＳＡＮ（Storage Area Network）を介して接続されている。
【００１９】
ＳＡＮ３００は、一般に、ＳＣＳＩ（Small Computer System Interface）プロトコルを通信可能なスイッチ、例えば、ファイバーチャネルプロトコルの場合ファイバーチャネルスイッチ、また、ｉＳＣＳＩ（Internet Small Computer System Interface）の場合にはｉＳＣＳＩが動作可能なイーサネットスイッチ、さらに、ファイバーチャネルオーバーイーサネットの場合はイーサネットスイッチであり、いずれかのスイッチを介して、ホスト１００とストレージ装置２００とは接続される。本第１の実施形態では、説明の都合上、ファイバーチャネルプロトコルを用いるファイバーチャネルスイッチを用いた場合で説明する。
【００２０】
ホスト１００は、一般的なサーバを想定しＭＰＵ（Micro Processing Unit）１０１、メモリ（ＭＥＭ）１０３、ハードディスク（ＨＤＤ）１０２、ネットワークインタフェースサーキット（ＮＩＣ）１０３、ホストバスアダプタ（ＨＢＡ）１０４を含んで構成されている。
【００２１】
ＮＩＣ１０３は、ＴＣＰ／ＩＰ（Transmission Control Protocol/ Internet Protocol）によって通信できる、イーサネット（米国Xerox社の登録商標）、ＩＥＥＥ８０２．１１／ｂ／ａ／ｇ／ｊ／ｎ等の無線ＬＡＮ（Local Area Network）、ＦＤＤＩ（Fiber-Distributed Data Interface）等の通信制御方式を用いる。本第１の実施形態では説明の都合上、イーサネットの通信制御方式を用いた場合で説明する。
【００２２】
ＨＢＡ１０４は先に記載したＳＡＮ３００に接続する為に、ＳＡＮ３００のプロトコルに合致した入出力インタフェースを有している。本第１の実施形態の場合は、ファイバーチャネルの入出力インタフェースを有する。
【００２３】
ストレージ装置２００は、複数のコントローラ２１０、複数のフラッシュアダプタ２２０（詳細は後述する。）を含み構成されている。コントローラ２１０、フラッシュアダプタ２２０とは、内部ネットワーク２３０で接続されている。
【００２４】
内部ネットワーク２３０は、フラッシュメモリパッケージ内のフラッシュメモリチップにアクセスすることが可能なネットワーク、例えば、ＰＣＩ−Ｘ、ＰＣＩエクスプレス等を用いる。この際、インタフェースとしては、ライト時にブロック単位内のページ単位に追記するアクセスを行うインタフェースを内部ネットワーク２３０上で操作することになる。本第１の実施形態では、フラッシュメモリに対して直接アクセスすることを想定しているが、フラッシュメモリを搭載し、ＳＣＳＩコマンドを処理できるＳＳＤ（Solid State Drive）において、先に示したページ単位に追記、並びに、ブロック単位のアクセスを行なうＳＳＤであれば、ネットワークは上記のネットワークに限定されることは無く、ファインバーチャネルＩ／Ｆ、イーサネット等のＳＣＳＩプロトコルが利用できるネットワークを使用しても良い。
【００２５】
コントローラ２１０は、ホスト１００から命令されるＳＣＳＩコマンドの処理を行う。ＭＰＵ２１１、キャッシュメモリ２１３、ＮＩＣ２１４、内部ネットワーク２３０に接続可能なインタフェースＩ／Ｆ２２５から構成する。
【００２６】
フラッシュメモリアダプタ（ＦＭＡ）２２０は、複数のフラッシュメモリパッケージ（ＦＭ−ＰＫ）２２１Ａ，２２１Ｂ，２２１Ｃ，２２１Ｄ，…，ＦＭ−ＰＫを収納するスロットである。
【００２７】
ＦＭ−ＰＫ２２１Ａ，…，は、先に説明した内部ネットワーク２３０を介して接続される。ＦＭ−ＰＫは先に示したように複数搭載可能で、本第１の実施形態では、“♯”の後に１から始まる自然数で、個々のパッケージを指定できるようにしている。
【００２８】
ＦＭ−ＰＫ２２１上にはフラッシュメモリチップ（図示を省略する。）が搭載され、ホスト１００から格納されるデータを保管する。フラッシュメモリチップのブロック領域内は、読み出しは５１２バイト単位に行え、書き込みは、ブロックを消去した後、ページ単位で追記して行える。なお、本第１の実施形態では、ブロックの単位は２５６ＫＢ、ページの単位は２ＫＢを一例として考える。なお、本実施例では、５１２バイトの読み出しを行うことを前提に記載したが、５１２バイトのデータに対する保障コードとして８バイトを別ブロックに保管し管理する形態も考えられる。
【００２９】
管理コンソール２５０は、管理ＬＡＮ（Local Area Network）２４０経由で、ストレージ装置２００に接続される。管理コンソール２５０は、ストレージ装置２００の設定や監視を行う。
【００３０】
図２は、計算機システム１の論理構成例を示す図である。ホスト１００は、アプリケーション毎に提供されるリクラメーション割合設定部１２１を有している。このリクラメーション割合設定部１２１は、ストレージ装置２００にリクラメーションの1日のうちの頻度の範囲（上限値、下限値）を提供する。これらの値は、アプリケーションベンダがソフトウエアパッケージのソフトウエア中にデフォルト値として提供してもよいし、管理者がファイル、もしくは、ＧＵＩ（Graphical User Interface）等の管理インタフェースを用いて設定しアプリケーションがＳＡＮ２３０，ＬＡＮ２４０経由の情報伝達手段を用いて通知してもよい。
【００３１】
リクラメーションの頻度を示す頻度情報（前記頻度の範囲（上限値、下限値））の伝達は、ＳＡＮ２３０経由でもよいし、ＬＡＮ２４０経由でもよい。ＳＡＮ２３０経由の場合、例えば、日立製作所が提供しているＳＡＮ経由でストレージの制御を行うレイドマネージャー（Raid Manager）に1日のうちのリクラメーション頻度の範囲（上限値、下限値）を、０〜１００％で指定される割合で設定する。このレイドマネージャーでは、ストレージ装置２００のコマンドデバイスを設定し、そのコマンドデバイスの特定の領域をリード処理・ライト処理することで、ホスト１００とストレージ装置２００の通信が可能となっている。ＬＡＮ２４０経由の場合、ＴＣＰ／ＩＰ経由で接続し、ストレージ装置２００のＮＩＣ２１４を通じてホスト１００とストレージ装置２００間の通信をする。
【００３２】
ストレージ装置２００は、ホスト１００から送信されるＳＣＳＩコマンドを受領し、ＦＭ−ＰＫ上のフラッシュメモリチップに対してアクセス（リード、ライト）を行う。主な操作は、コントローラ２１０上のＩ／Ｏ処理部２６２にて行われ、Ｉ／Ｏ処理部２６２はポート−ＬＵ（Logical Unit）マッピング部２５８、ＬＵ−ＬＤＥＶマッピング部２５７、ＬＤＥＶ−ＲＧ（RAID GROUP）マッピング部２５６、ＲＧ−ＦＭマッピング部２５５、フラッシュメモリパッケージ（ＦＭ−ＰＫ）管理部２５１と連係して動作する。
【００３３】
ポート−ＬＵ（Logical Unit）マッピング部２５８は、ホスト１００からのポートに対してのＩ／ＯのＳＣＳＩのリードやライトコマンドに関して、IO処理部が、ＳＣＳＩコマンドで指定された適切なＬＵを選択する為のＬＵリストを保管している。ＬＵ−ＬＤＥＶマッピング部２５７は、Ｉ／Ｏ処理部が、ポート−ＬＵマッピング部で選択されたＬＵに対対するＬＤＥＶ（詳細は後述する。）の管理を行う。ＬＤＥＶ−ＲＧマッピング部２５６は、ＬＤＥＶに対応するＲＡＩＤ（Redundant Arrays of Inexpensive (もしくはIndependent) Disks）構成から構成されるフラッシュメモリパッケージのユーザ領域に対するマッピング関係を保管とその処理を行う。ＲＧ−ＦＭマッピング部２５５は、ＲＡＩＤ構成とフラッシュメモリ（ＦＭ）パッケージとのマッピング関係を保管とその処理を行う。
【００３４】
ＦＭ−ＰＫ管理部２５１は、ユーザデータを保管するユーザ領域２５２、ライトデータを一時的に保管するライト領域２５３、フラッシュメモリチップ上の障害ブロックを管理する代替領域２５４を含み構成する。
【００３５】
ライト領域２５３の領域は、ホスト１００のライト性能の変化、もしくは、先に説明を行ったリクラメーション割合設定部１２１で指定された割合によって、同一ＲＡＩＤグループ内のＬＤＥＶ毎に変化する。
【００３６】
ＬＤＥＶ−ライト領域管理部２６１は、個々のＬＤＥＶのライト性能、もしくは、リクラメーション割合設定部１２１で指定された値を元にライト領域の大きさを管理する。
【００３７】
次に個々の管理テーブルの詳細を説明する。図３は、ＦＭ−アドレステーブル３００の例を示している。ＦＭ−アドレステーブル３００は、ＦＭ−ＰＫ番号フィールド３０１、開始アドレス位置フィールド３０２、終了アドレス位置フィールド３０３、ブロック（ＢＬＫ）サイズフィールド３０４、ページサイズフィールド３０５を有している。
【００３８】
ＦＭ−ＰＫ番号フィールド３０１は、ＦＭ−ＰＫ番号を保存する。開始アドレス位置フィールド３０２は、ＦＭ−ＰＫ番号フィールド３０１に指定されるＦＭ−ＰＫ番号毎に搭載されている複数個のフラッシュメモリチップから構成される記憶領域の開始アドレス位置を保存する。終了アドレス位置フィールド３０３は、その記憶領域の終了アドレス位置を保存する。ブロック（ＢＬＫ）サイズフィールド３０４は、フラッシュメモリチップのブロックサイズを保存する。ページサイズフィールド３０５は、ページサイズを保存する。
【００３９】
本第１の実施形態では、開始アドレス位置、終了アドレス位置は、６４ビットの１６進のアドレス空間で定義する。また、本第１の実施形態で用いるフラッシュメモリチップは、例えば、ＭＬＣ（Multi-level cell）であり、データの書き込み時には、ブロック内のアクセスはアドレスの開始位置から終了位置の一方向に、ページ単位で２ＫＢ単位の書き込みをする。データの読み込みは５１２ＫＢ単位で行う。
【００４０】
図４は、ＲＧ―ＦＭマッピング部２５５で用いるＦＭ−ＰＫを用いたＲＡＩＤ構成テーブル４００の例を示している。ＲＡＩＤ構成テーブル４００は、ＲＧ番号フィールド４０１、ＦＭ−ＰＫフィールド４０２、ＲＡＩＤ構成フィールド４０３を有している。
【００４１】
ＲＧ番号フィールド４０１は、ＲＡＩＤグループの番号を保存する。ＦＭ−ＰＫフィールド４０２は、ＲＡＩＤグループを構成する複数のＦＭ−ＰＫ番号を保存する。ＲＡＩＤ構成フィールド４０３は、ＲＡＩＤグループのＲＡＩＤ構成を保存する。
【００４２】
例えば、ＲＧ（ＲＡＩＤグループ）１は、ＦＭ−ＰＫが♯１〜♯４で構成され、ＲＡＩＤ５の分散パリティを用いて保護されている。この分散パリティの生成の仕方は、ストレージ装置２００が管理しているキャッシュメモリ２１３の単位でもよいし、フラッシュメモリチップのブロックサイズ等の値でもよい。本第１の実施形態では、フラッシュメモリチップのブロックサイズを用いることにする。また、ＦＭ−ＰＫの管理として、複数のＦＭ−ＰＫを連結し、連結されたＦＭ−ＰＫ間でＲＡＩＤ構成する形態をとってもよい。この一例として示すＲＧ２では、ＦＭ−ＰＫ♯５とＦＭ−ＰＫ♯９の間が連結(Concatination)しており、また同様にＦＭ−ＰＫ♯６，♯７，♯８がＦＭ−ＰＫ♯１０，♯１１，♯１２と連結しており、これらによりＲＡＩＤ５（３Data +１Parity）が構成されている。
【００４３】
図５は、ＦＭ−ＰＫ管理部２５１で行われる領域管理で利用する、ＦＭ−ＰＫに対するユーザ・ライト・代替ブロック領域テーブル５００の例を示している。ユーザ・ライト・代替ブロック領域テーブル５００は、ＦＭ−ＰＫ番号フィールド５０１、ユーザ領域フィールド５０２、ライト領域フィールド５０３、代替領域フィールド５０４を有している。
【００４４】
ＦＭ−ＰＫ番号フィールド５０１は、ＦＭ−ＰＫ番号を保存する。ユーザ領域フィールド５０２は、ユーザの記憶領域として利用するユーザ領域の開始位置のアドレスから終了位置のアドレスを保存する。ライト領域フィールド５０３は、ライトを一次受けしページ単位で記録するライト領域の開始位置のアドレスから終了位置のアドレスを保存する。代替領域フィールド５０４は、ユーザ領域、もしくは、ライト領域で故障したブロックを代替する代替領域の開始位置のアドレスから終了位置のアドレスを保存する。
【００４５】
本第１の実施の形態では、ＦＭ−ＰＫのユーザ領域、ライト領域、代替領域を６４ビットの１６進のアドレス空間として管理するが、実際のアクセスは、フラッシュメモリチップのブロックが指定され、読み込みは５１２バイト単位、ライトは２Ｋバイト単位で行われる。
【００４６】
また、後述するフラッシュメモリチップへのライト性能の向上のために、ＦＭ−ＰＫを導入する際、ライト領域のみの構成も可能である。この場合は、ユーザ領域を設けない構成となるので、一例として、ＦＭ−ＰＫ♯９のユーザ領域に示すように、“−”を用いてユーザ領域を設定しないようにする。
【００４７】
図６Ａは、ＦＭ−ＰＫ管理部２５１によって管理された、ＦＭ−ＰＫ群の領域のイメージを示す図である。例として、図５のＲＧ♯１の構成を示している。
【００４８】
ＦＭ−ＰＫ管理部２５１は、ＲＧ♯１をＦＭ−ＰＫ♯１、ＦＭ−ＰＫ♯２、ＦＭ−ＰＫ♯３、ＦＭ−ＰＫ♯４によりＲＡＩＤ５（３データと1パリティ構成）によるデータ保護を行い、一つの記憶空間を作成している。ＦＭ−ＰＫ管理部２５１は、ＲＡＩＤにより一つの記憶空間を作成した後、その中に、ユーザ領域６１０、ライト領域６２０、代替領域６３０を構成する。
【００４９】
その後、ユーザ領域６１０は、ＬＤＥＶ−ＲＧマッピング部２５６により、個々のＬＤＥＶに対して記憶領域が分割される。作成されたＬＤＥＶに対しては、ライト領域が割り当てられる。ライト領域の割り当ては、ＬＤＥＶ−ライト領域管理部２６１が行い、図６Ｂに示すように、ＬＤＥＶ１用ライト領域６１０Ａ、ＬＤＥＶ２用ライト領域６１０Ｂ，…，ＬＤＥＶＮ用ライト領域６１０Ｎなど、個々のＬＤＥＶに対して割り当てを行う。この割当動作の詳細については後述する。
【００５０】
図７はＬＤＥＶ−ＲＧマッピング部２５６が使用する論理デバイス（ＬＤＥＶ）の構成と性能情報を示すテーブル７００の例を示している。テーブル７００は、ＬＤＥＶ番号フィールド７０１、ＲＧ番号フィールド７０２、開始アドレスフィールド７０３、容量フィールド７０４、ライト性能フィールド７０５を有している。
【００５１】
ＬＤＥＶ番号フィールド７０１は、０から始まる論理デバイスの番号を保存する。ＲＧ番号フィールド７０２は、ＲＡＩＤグループの番号を保存する。開始アドレスフィールド７０３は、記憶空間の開始アドレスを保存する。容量フィールド７０４は、記憶空間の容量を保存する。ライト性能フィールド７０５は、１秒あたりのライト数であるライト性能（Input/Output Per Second）を保存する。
【００５２】
つまり、ＬＤＥＶ−ＲＧマッピング部２５６は、論理デバイスを０から始まる論理デバイス番号で指定し、その記憶空間をＲＡＩＤグループ番号と対応する開始アドレスとＬＤＥＶの容量で構成する。なお、開始アドレスは、ＲＡＩＤグループのアドレス空間に一致しており、このアドレスはブロック単位で開始される。また、容量に関しても同様に、ブロック単位で増加する。Ｉ／Ｏ処理部２６２は、個々のＬＤＥＶのライト性能をモニタリングしており、その値をライト性能フィールド７０５に保存する。
【００５３】
図８は、ＬＤＥＶ−ライト領域管理部２６１が使用する論理デバイスに対するライト領域の割当て済みページ数と使用済みページ数を示すテーブル８００の例を示している。テーブル８００は、ＬＤＥＶ番号フィールド８０１、ＲＧ番号フィールド８０２、開始アドレスフィールド８０３、割当てページ数フィールド８０４、使用済みページ数フィールド８０５、リクラメーション頻度フィールド８０６を有している。
【００５４】
ＬＤＥＶ番号フィールド８０１は、ＬＤＥＶ番号を保存する。ＲＧ番号フィールド８０２は、ＲＡＩＤグループ番号を保存する。開始アドレスフィールド８０３は、ＬＤＥＶの開始アドレスを保存する。割当てページ数フィールド８０４は、ＬＤＥＶに割り当てられたページ数を保存する。使用済みページ数フィールド８０５は、割当てられたページのうち使用されたページのページ数を保存する。リクラメーション頻度フィールド８０６は、リラクメーションの頻度、例えば、図８に示すように、１日に何回行なわれたかを保存する。
【００５５】
ＬＤＥＶ−ライト領域管理部２６１は、ＬＤＥＶ番号に対するライト領域を開始アドレス、割当てページ数によって構成する。また、ＬＤＥＶ−ライト領域管理部２６１は、割当てられたライト領域の管理を行っており、使用済みページ数、並びに、日々のリクラメーション回数をモニタリングしており、それぞれ、使用済みページ数フィールド８０４、リクラメーション頻度フィールド８０５に保管している。本第１の実施形態では、ライト領域の終了アドレスを開始アドレスと割り当て済みページ数のページ単位から計算される値で利用することになるが、便宜先の計算した終了アドレスを本テーブル８００に保存してもよい。また、ライト領域の割り当ての初期値は、ライトＩ／Ｏが無いことから、ＬＤＥＶを割当てる際に、ＬＤＥＶ容量の決められた割合、例えばＬＤＥＶ容量の１０％を追加されるＬＤＥＶにライト領域として割当てることを決めてもよい。
【００５６】
図９は、ポート−ＬＵマッピング部２５８、ＬＵ−ＬＤＥＶマッピング部２５７が使用するＬＵポート、ＬＵ、ＬＤＥＶ間のマッピングテーブル９００の例を示している。マッピングテーブル９００は、ＷＷＮフィールド９０１、ポート番号フィールド９０２、ＬＵＮフィールド９０３、ＬＤＥＶ番号フィールド９０４を有している。
【００５７】
ＷＷＮフィールド９０１は、ストレージ装置２００が有するワールド・ワイド・ネームを保存する。ポート番号フィールド９０２は、ポート番号を保存する。ＬＵＮフィールド９０３は、ロジカルユニットナンバ（ＬＵＮ）を保存する。ＬＤＥＶ番号フィールド９０４は、ＬＤＥＶ番号を保存する。
【００５８】
なお、ポート−ＬＵマッピングテーブル９００は、ワールド・ワイド・ネームとポート番号をストレージ装置２００の出荷時に対応付けてある。管理者は、管理コンソール２５０経由で、ポート−ＬＵマッピング部２５８へ、指定するポートに対してＬＵを作成し、ＬＵＮ（Logical Unit Number）を割り当てる同時にＬＤＥＶ番号をＬＵ−ＬＤＥＶマッピング部２５７へ、ＬＤＥＶ番号を割当てる。
【００５９】
図１０は、ＬＤＥＶ−ライト領域管理部２６１が使用するライト領域上の書き込みデータの保管先を示すテーブル１０００の例を示している。テーブル１０００は、ブロック番号フィールド１０１０、ページ番号フィールド１０１１、対応ブロック番号フィールド１０１２、サイズフィールド１０１３を有している。
【００６０】
ブロック番号フィールド１０１０は、ブロック番号を保存する。ページ番号フィールド１０１１は、ページ番号を保存する。対応ブロック番号フィールド１０１２は、ブロック番号と対応する対応ブロック番号を保存する。サイズ（バイト）フィールド１０１３は、格納するデータのサイズを保存する。
【００６１】
なお、本テーブル１０００は、ＦＭ−ＰＫ番号１００４で指定されるＦＭ−ＰＫ毎に管理情報を保持し、ＬＤＥＶ毎にページの書き込み先を保存している。
【００６２】
Ｉ／Ｏ処理部２６２は、ホスト１００のライトＩ／Ｏ受領時に、書き込み対象となるＦＭ−ＰＫの番号１００４中のＬＤＥＶ番号の記憶領域に対して、次の書き込み領域を示すポインタブロック番号（ポインタＢＬＫ）１００２、ポインタページ番号（Page）１００３の２つから示される領域にデータの書き込みを行い、その管理情報として、テーブル１０００のブロック番号（ＢＬＫ♯）１０１０、ページ番号（Page♯）１０１１、ユーザ領域中の対応フラッシュメモリブロック（ＢＬＫ番号）、そして、格納したデータのサイズ１０１３を保管する。なお、“Page”は、ページ単位で増加する。
【００６３】
以上で、本第１の実施形態における計算機システム１の構成と計算機システム１で利用する管理情報の説明を終える。
【００６４】
次に、計算機システム１における動作について説明する。具体的には、ＦＭ−ＰＫを導入後、各種領域の割り当てを行い、割当てられた領域に対するホスト１００からのライトアクセスの動作について説明する。また、その際に必要となる管理の動作についても説明する。
【００６５】
図１１は、コントローラ２１０がＦＭ−ＰＫに対して、ＲＡＩＤ構成、並びに、各種領域を割当てる手順を示すフローチャートである。以下にその手順を説明する。
【００６６】
ストレージ装置２００に対して、ＦＭ−ＰＫが追加された後、管理コンソール２５０で後述の図１７に示される管理ＧＵＩを用いて管理者により、ＲＡＩＤタイプ１７１０と各種領域割合（ユーザ領域１７３３、ライト領域１７３４、代替領域１７３５）１７３０が選択され、必要なＦＭ−ＰＫ１７２０から選択、追加ボタン１７５３が押下され、領域管理部にＲＡＩＤグループが追加される。ステップＳ１１０１において、コントローラ２１０は、管理者によってなされた設定を取得する。
【００６７】
ステップＳ１１０２において、コントローラ２１０は、追加されたＦＭ−ＰＫは、各種領域割合に従い、ＦＭ−ＰＫの終了位置のアドレスから決められる終了位置を１００％として、ユーザ領域、ライト領域、交代領域で指定された割合を元に、領域を分割する。ＦＭ−ＰＫの終了位置が異なる場合、ＦＭ−ＰＫ間で最も小さい記憶領域に合わせて、終了位置をＦＭ−ＰＫ間で共通にしてもよい。この場合、残領域が生じるが、それを代替領域用に用いてもよい。領域分割の手順に戻るが、領域の分割の際には、フラッシュメモリチップで規定されるブロックサイズフィールド３０４のブロックサイズが、割合で指定された領域内に収まるように終了位置が決められる。ユーザ領域フィールド５０２に続く、ライト領域５０３は、ユーザ領域で指定された割合の領域から０番目のフラッシュメモリチップのブロック、すなわち、ユーザ領域の終了位置が割合計算で、１２８ＫＢとして、フラッシュメモリチップのブロックサイズ（２５６ＫＢ）内に重なった場合には、重なりがあるブロックの開始アドレスからスタートする。代替領域１７３５はライト領域１７３４と同様にして考える。なお、この配置は一例であり、管理情報を含め、領域間の区切りを明確にするために、空き領域を意図的に用意してもよい。
【００６８】
ステップＳ１１０３において、コントローラ２１０は、選択されたＦＭ−ＰＫに対して指定されたＲＡＩＤ構成を作成する。つまり、図４で示すように、ＲＡＩＤグループ番号フィールド４０１のＲＡＩＤ番号、ＦＭ−ＰＫパッケージ番号フィールド４０２のＦＭ−ＰＫ番号、ＲＡＩＤ構成フィールド４０３のＲＡＩＤ構成が共にテーブル４００に格納される。この設定以降、指定されたＲＡＩＤ構成により、ストレージ装置２００は動作する。
【００６９】
ステップＳ１１０４において、コントローラ２１０は、図７を用いて説明したＬＤＥＶ−ＲＧマッピングテーブル７００を参照し、作成したＲＡＩＤグループ番号に対応する領域にＬＤＥＶが生成されているか否かを調べる。もし、生成されている場合は（Ｓ１１０４：ＹＥＳ）、処理はステップ１００５に進み、生成されていない場合には（Ｓ１１０４：ＮＯ）、処理は終了する。
【００７０】
ステップＳ１１０５において、コントローラ２１０は、リクラメーション処理を実施する。なお、リクラメーション処理の詳細については、後述する。以上でこの処理を終了する。
【００７１】
次に、Ｉ／Ｏ処理について説明する。図１２は、コントローラ２１０内のＩ／Ｏ処理部２６２が行うライト処理である。以下にその手順を説明する。
【００７２】
ステップＳ１２０１において、Ｉ／Ｏ処理部２６２は、ホスト１００から受けたＳＣＳＩのライトＩ／Ｏのトランスファーレングスのデータサイズを確認し、フラッシュメモリのブロックサイズで割り切れないことを確認する。割り切れないときにはステップ１２０２に進み、割り切れる場合はステップＳ１２１１に進む。
【００７３】
ステップＳ１２０２において、Ｉ／Ｏ処理部２６２は、ホスト１００から受けたライトＩ／Ｏのデータサイズがページサイズ未満であることを確認する。ページサイズ未満であるのであれば（Ｓ１２０２：ＹＥＳ）、処理はステップＳ１２０３に進み、ページサイズと同じサイズであれば（Ｓ１２０２：ＮＯ）、処理はステップＳ１２０６に進む。
【００７４】
ステップＳ１２０３において、Ｉ／Ｏ処理部２６２は、対象ＬＤＥＶに対する残ページ数を確認する。ページが残っているのであれば（Ｓ１２０３：ＹＥＳ）、処理はステップＳ１２０５に進み、残っていなければ（Ｓ１２０３：ＮＯ）、処理はステップＳ１２０４に進む。
【００７５】
ステップＳ１２０４において、Ｉ／Ｏ処理部２６２は、図１４のリクラメーション処理を行う。
【００７６】
ステップＳ１２０５において、Ｉ／Ｏ処理部２６２は、ホスト１００から指定された開始アドレスと容量をデータが格納されているＦＭ−ＰＫのライト領域から２ＫＢ分のデータをキャッシュメモリ２１３にリードする。もしデータが無ければ、ユーザ領域からデータを読み出す。同様に、パリティデータについても、２ＫＢ分のデータをキャッシュメモリ２１３にリードする。
【００７７】
ステップＳ１２０６において、Ｉ／Ｏ処理部２６２は、ステップＳ１２０５でリードしたキャッシュメモリ２１３上のデータとパリティデータをＸＯＲすることにより、キャッシュメモリ２１３上のデータを除いたパリティデータを生成する。
【００７８】
ステップＳ１２０７において、Ｉ／Ｏ処理部２６２は、キャッシュされた２ＫＢデータに対してホストデータを上書きする。
【００７９】
ステップＳ１２０８において、Ｉ／Ｏ処理部２６２は、キャッシュメモリ２１３上のデータとステップＳ１２０６で生成したパリティデータをＸＯＲすることにより、新パリティデータを生成する。
【００８０】
ステップＳ１２０９において、Ｉ／Ｏ処理部２６２は、ステップＳ１２０６で更新したデータを元のＦＭ−ＰＫのテーブル１０００上のポインタブロック番号１００２とポインタページ番号１００３で示されるページに書き出す。そしてＩ／Ｏ処理部２６２は、図１０のテーブル１０００のテーブルのポインタブロック番号１００２、ポインタページ番号１００３に該当するブロック番号１０１０、ページ番号１０１１列に対応する対応ブロック番号フィールド１０１２、サイズフィールド１０１３を更新する。ステップＳ１２０８で生成されたパリティデータも同様に、読み出したＦＭ−ＰＫのテーブル１０００上のポインタブロック番号１００２とポンタページ番号１００３で示されるページにデータを書き出し、フラッシュメモリチップ上の書き出すユーザ領域のブロック番を対応ブロック番号フィールド１０１２に、ページに書き出した量をサイズフィールド１０１３に更新する。
【００８１】
ステップＳ１２１０において、Ｉ／Ｏ処理部２６２は、ポインタページ番号１００３をインクリメントし、次のブロックに行くのであれば、ブロックもインクリメントする。
【００８２】
一方、ステップＳ１２１１において、Ｉ／Ｏ処理部２６２は、ホスト１００から指定された開始アドレスと容量をデータが格納されているＦＭ−ＰＫのユーザ領域から１ブロック分のデータをキャッシュメモリ２１３にリードする。
【００８３】
ステップＳ１２１２において、Ｉ／Ｏ処理部２６２は、ステップＳ１２１１で読み込まれたキャッシュメモリ２１３上のデータとパリティデータをＸＯＲすることにより、キャッシュメモリ２１３上のデータを除いたパリティデータを生成する。
【００８４】
ステップＳ１２１３において、Ｉ／Ｏ処理部２６２は、キャッシュメモリ２１３上データとステップ１２０６で生成したパリティデータをＸＯＲすることにより、新パリティデータを生成する。
【００８５】
ステップＳ１２１４において、Ｉ／Ｏ処理部２６２は書き込むブロックのフラッシュメモリチップのブロックを消去する。
【００８６】
ステップＳ１２１５において、Ｉ／Ｏ処理部２６２はＦＭ−ＢＬＫにデータ、パリティブロックに書き込む。以上で、ライト処理を終了する。
【００８７】
図１３は、コントローラ２１０内のＩ／Ｏ処理部２６２が行うリード処理である。以下にその手順を説明する。
【００８８】
ステップＳ１３０１において、Ｉ／Ｏ処理部２６２がホスト１００のＳＣＳＩのリードコマンドで指定された開始アドレスと指定されたサイズのデータに対応するＬＤＥＶにおけるフラッシュメモリチップのブロックをキャッシュメモリ２１３上に読み込む。
【００８９】
ステップＳ１３０２において、Ｉ／Ｏ処理部２６２が、テーブル１０００の各ＬＤＥＶのライト領域を参照し、ホスト１００のＳＣＳＩのリードコマンドで指定された領域（開始位置、サイズ）で指定されたブロック内に更新データがないか、対応ＢＬＫ番号フィールド１０１２、サイズフィールド１０１３を参照して、判定する。データが有る場合（Ｓ１３０２：ＹＥＳ）、処理はステップＳ１３０３に進む。データがない場合（Ｓ１３０２：ＮＯ）、処理はステップＳ１３０４に進む。
【００９０】
ステップＳ１３０３において、Ｉ／Ｏ処理部２６２は、ライト領域からキャッシュメモリ２１３にデータをリードし、既にリードされたブロックのデータに対して上書きする。
【００９１】
ステップＳ１３０４において、Ｉ／Ｏ処理部２６２は、キャッシュメモリ２１３上の上書き済みのデータを戻り値としてホスト１００に戻す。以上でリード処理を終了する。
【００９２】
次に、ライト時や管理者がＬＤＥＶの容量を変更したときに行うリクラメーション処理について説明を行う。図１４は、Ｉ／Ｏ処理部２６２が行うリクラメーション処理のフローチャートを示している。以下にその手順を説明する。
【００９３】
ステップＳ１４０１において、Ｉ／Ｏ処理部２６２は、該当ＬＤＥＶのフラッシュメモリチップのライト領域の追記を抑止する。
【００９４】
ステップＳ１４０２において、Ｉ／Ｏ処理部２６２は、テーブル１０００を参照し、全ライト領域内のページデータを対応ＢＬＫ番フィールド１０１２とサイズフィールド１０１３を元に、各ＬＤＥＶのユーザ領域に上書きする。また、全ページが書き出された段階で、開始アドレスフィールド８０２の開始アドレスに該当するブロックをポインタＢＬＫとして設定し、ページを“０”としてリセットする。
【００９５】
ステップＳ１４０３において、Ｉ／Ｏ処理部２６２は、ＬＤＥＶ間のライト割合が変更されたか否かを判定する。その割合が変更されている場合は（Ｓ１４０３：ＹＥＳ）、処理はステップＳ１４０２に進み、割合が変更されていない場合は（Ｓ１４０３：ＮＯ）、処理はステップ１４０６に進む。
【００９６】
ステップＳ１４０４において、Ｉ／Ｏ処理部２６２は、ＬＤＥＶ間のライト割合から、ライト領域の割り当て領域の開始位置と割り当てページ数を再計算する。
【００９７】
ステップＳ１４０５において、Ｉ／Ｏ処理部２６２は、再計算した値を、図８の開始アドレスフィールド８０２の開始アドレスと割り当てページ数フィールド８０３の割り当てページ数に代入する。
【００９８】
ステップＳ１４０６において、Ｉ／Ｏ処理部２６２は、該当ＬＤＥＶのフラッシュメモリチップのライト領域の追記を再開する。以上でリクラメーション処理を終了する。
【００９９】
ステップＳ１４０２でＩ／Ｏ処理部２６２がＬＤＥＶのライト割合の変更を確認したが、その変更を行う為のＧＵＩを図１５に示す。図１５は、論理デバイス（ＬＤＥＶ）に対するライト領域の管理ＧＵＩ１５００の例を示す図である。
【０１００】
管理ＧＵＩ１５００は、ＲＡＩＤグループ番号（ＲＧ♯)を表示するフィールド１５０１、割り当て対象となるＬＤＥＶを表示する１５０２、現在の割り当て率（割合）を表示するフィールド１５０３、推奨される割り当て率（推奨割合）を表示するフィールド１５０４、割り当て率１５０３に対するアラートを表示するフィールド１５１１、日々のリクラメーション回数を表示するフィールド１５０５、1日における最大リクラメーション回数に対するリクラメーション割合を示すフィールド１５０６、アプリケーション（ＡＰ）個別設定割合を表示するフィールド１５０７、アラートを表示するフィールド１５０８から構成される。
【０１０１】
現在の割り当て率と推奨割当て率の間で差が大きい場合、例えば±１０％を超える場合、管理コンソール２５０は、ＳＮＭＰ（Simple Network Management Protocol）、メール、ＳＭＳ（Short Message Service）等の通信手段で管理者に通知し、割り当て率１５０３を変更することを求める。
【０１０２】
ＬＤＥＶ番号に対して、推奨割合に従って、管理者が、現在の割当率を定義する。推奨割合は、図４の各ＬＤＥＶの平均iopsの合計のうち各ＬＤＥＶのiopsの割合をパーセンテージ表記する。現在の割り当て率は、ＲＡＩＤグループ内のＬＤＥＶ全体で１００％になるように設定する。本第１の実施形態では、割合を管理者が入力しているが、推奨値をそのまま当てはめ、リアルタイムに割り当てを変えてもよい。
【０１０３】
リクラメーション回数１５０５は、図８のリクラメーション頻度フィールド８０６から参照される。リクラメーション割合１５０６は、ＬＤＥＶ毎で1日のうち最大リクラメーション可能な回数のうち、日々のリクラメーション回数の割合がどの程度になるかをパーセント表記している。この計算の仕方は、次の（１）式から計算される。
（リクラメーション割合）＝（リクラメーション回数）／(２４時間／（個々のＬＤＥＶに対する全ライト領域を書き込む時間＋対象ライト領域のページ数分のブロックが消去されたとき時間)  …（１）
【０１０４】
ＡＰ設定割合フィールド１５０７は、図２のホスト１００上に用意されるリクラメーション割合設定部２１１が、下限値、上限値を設定した場合に表示される。何も設定しない場合、“−”として表記され、その場合には、システムデフォルト値である、リクラメーション閾値（下限値）１５０９、リクラメーション閾値（上限値）１５１０を使用することになる。もし、この閾値を超える場合、アラート１５０８に表示され、アラートボックスをクリックすると、図１７の領域管理ＧＵＩ（後述）が表示される。
【０１０５】
次に、リクラメーション割合の閾値を超えたときの動作を説明する。リクラメーション割合の上限値を超えた場合、リクラメーション回数が 頻度が高く、性能影響があると判断し、ＦＭ−ＰＫの増設し、ライト領域を増やす必要がある。一方で、下限を下回った場合、余分なライト領域があるということなので、ライト領域を削減し、開放する。開放した場合、その領域を他の用途、ユーザ領域や代替ブロック用として使ってもよい。
【０１０６】
図１６は、管理コンソール２５０が、リクラメーション回数からライト領域の増減設をアラートする処理を示すフローチャートである。以下にその手順を説明する。
【０１０７】
ステップＳ１６０１において、管理コンソール２５０は、リクラメーション割合が、上限値を超えてないか確認する。上限値は、ＡＰ設定割合フィールド１５０７に上限値が定義されている場合その値を用い、定義されていない場合はリクラメーション閾値（上限値）部１５１０のリクラメーション閾値を使用する。上限値を超えている場合（Ｓ１６０１：ＹＥＳ）、処理はステップ１６０２に進み、設定値を超えていない場合は（Ｓ１６０１：ＮＯ）、処理はステップ１６０３に進む。
【０１０８】
ステップＳ１６０２において、管理コンソール２５０は、管理者に増設要求をＳＮＭＰ、メール、ＳＭＳ等の通信手段で管理者に通知する。この際、ＧＵＩには、増設を示すボタンがアラート１５０８に表示される。
【０１０９】
ステップ１６０３において、管理コンソール２５０は、リクラメーション割合が、下限値を超えてないか確認する。下限値は、ＡＰ設定割合部１５０７の下限値が定義されている場合その値を用いて、定義されていない場合はリクラメーション閾値（下限値）１５０９を使用する。下限値を下回っている場合、処理はステップＳ１６０３に進み、設定値を下回っていない場合は、処理を終了する。
【０１１０】
なお、アラート処理は、日々、数時間毎など定期的に起動され、計算機システム１の正常な稼動を確認する。また、リラクメーション動作時に確認してもよい。
【０１１１】
図１７は、管理コンソール２５０で表示されるＧＵＩを示す図である。
【０１１２】
領域管理の画面１７００は、ＲＡＩＤグループ番号（ＲＧ♯）を表示するフィールド１７０１、ＦＭ−ＰＫ番号を表示するフィールド１７０２、ユーザ領域を表示するフィールド１７０３、ライト領域を表示するフィールド１７０４、代替領域を表示するフィールド１７０５を示している。先に示したように、もし、ＦＭ−ＰＫ間で容量の差異が有る場合、本第１の実施形態では、容量が最小な物にあわせてアドレス領域を管理する。
【０１１３】
また、ＲＡＩＤグループ作成時には、ＲＧ作成ボタン１７５１を押すと、新規のＲＧ番が作成される。ＲＡＩＤグループを削除する場合には、各ＲＧ番号のＲＧ削除ボタン１７５２を押すことによって削除する。ＲＡＩＤグループに対して、ＦＭ−ＰＫを割当てる場合、希望するＲＡＩＤ Ｔｙｐｅ１７１０を選択することで必要なＦＭ−ＰＫ（例えば、ＲＡＩＤ５で３Ｄ＋１Ｐの場合、４つのＦＭ−ＰＫが選択される）が空きＦＭ−ＰＫ１７２０リストから選択チェックボックス１７２１で選択される。
【０１１４】
空きＦＭ−ＰＫのリストは、選択されるＦＭ−ＰＫを表示するフィールド１７２１、ＦＭ−ＰＫ番号（ＦＭ−ＰＫ＃）を表示するフィールド１７２２、ＦＭ−ＰＫの開始アドレス位置を表示するフィールド１７２３、終了アドレス位置を表示するフィールド１７２４から構成される。
【０１１５】
領域割合１７３０のスライドバー１７３１（ユーザ領域とライト領域を区切る）、１７３２（ライト領域と代替領域を区切る）で選択後、管理者が追加ボタン１７５３を押すことで、チェックボックス１７０１で選択したＲＡＩＤグループに追加される。
【０１１６】
なお、スライドバー１７３１と１７３２を重ね、ライト領域を０％にした場合、管理コンソール２５０は、エラーとして処理を戻す。理由は、ライト領域を０％とした場合、ライト領域を保管する領域がなくなるためである。もし、０％を実現する場合、ライト時の動作がブロック単位のリード・モディファイ・ライトにすることでデータにアクセスは可能だが、ライト時の動作はブロック単位でキャッシュメモリ２１３上にリード後、ホスト１００からのライトデータでキャッシュメモリ２１３上のデータを上書き後、フラッシュメモリチップの元ブロックを消去、データをライトすることになる。
【０１１７】
次に、図１６のステップ１６０３で管理者に通知したライト領域開放要求時に手順と動作を示す。管理者が、図１７の各ＦＭ−ＰＫの列を選択することで、割合１７３０がその列の割合を表示する。管理者が、スライドバー１７３１、１７３２をライト領域１７３４に関して縮小する方向で動かしたときのライト領域の割合に従って、開放の動作を行う。図１８は、管理コンソール２５０が開放処理を行うときのフローチャートを示している。
【０１１８】
ステップＳ１８０１において管理コンソール２５０は、削減調整した後のライト領域のアドレス空間内に、未処理分のリクラメーションデータが残っている場合、すなわち、更新後のライト領域が、ブロックブロック番号１００２とポインタブロック番号１００３間に収まっている場合（Ｓ１８０１：ＹＥＳ）、処理はステップＳ１８０４３進む。収まっていない場合（Ｓ１８０１：ＮＯ）、処理はステップＳ１８０２に進む。
【０１１９】
ステップＳ１８０２において、管理コンソール２５０は、リクラメーション処理を実施する。具体的には、図１４の処理のうちステップＳ１４０２、Ｓ１４０４、Ｓ１４０５を処理する。ステップＳ１８０２のリクラメーション処理内でライト停止運用をしているため、ライト領域の追記停止の処理を別に設ける必要はない。
【０１２０】
ステップ１８０３において、管理コンソール２５０は新領域のライト領域を該当するＦＭ−ＰＫ番号のライト領域を更新する。各ＬＤＥＶ番号フィールド８０１も、開始アドレスフィールド８０３、割当てページ数フィールド８０４を更新する。以上で、処理を終了する。開放された領域は、空き領域として管理され、ユーザ領域、すなわちＬＤＥＶ用に用いてもよいし、代替領域として利用してもよい。
【０１２１】
この第１の実施形態による計算機システム１によると、アプリケーションやホスト計算機単位でライト領域を効率的に割り当てることが可能となる。
【０１２２】
また、リクラメーション時の頻度を上限値の閾値でモニタリングすることで、消去回数が頻度に発生していることから、ライト領域不足を判断し、フラッシュメモリの増設を指示、フラッシュメモリを増設後、ライト領域を拡大することで消去回数の適正化し性能劣化を抑えることができる。さらには、フラッシュメモリ特有の消去回数から起因するメディアの劣化を、リクラメーション回数を抑えたことで、延命することができる。
【０１２３】
また、リクラメーション時の頻度を下限値の閾値でモニタリングすることで、消去回数が余り発生していない場合、ライト領域過剰として判断し、ライト領域を縮小することで、消去回数の適正化、無駄なライト領域を削減することが可能となる。
【０１２４】
（第２の実施形態）
次に第２の実施形態について説明する。第１の実施形態は、ＦＭ−ＰＫ内に、必ずユーザ領域を割当てる構成を考えたが、本第２の実施形態は、ＦＭ−ＰＫ毎にユーザ領域、ライト領域とを分けて利用する形態を考える。この構成のメリットは、ユーザ領域とライト領域が分離することによって、ライト性能に応じて、ＦＭ−ＰＫ単位で追加・削除できる点である。なお、本第２の実施形態では、代替領域は、ユーザ領域のＦＭ−ＰＫ、ライト領域のＦＭ−ＰＫそれぞれに準備してあるが、独立したＦＭ−ＰＫに準備してもよい。
【０１２５】
次に計算機システムの構成について説明する。第２の実施形態における計算機システムの構成は、第１の実施形態の計算機システム１と同一の構成については同一の符号を付して説明は省略することとし、以下では第１の実施形態と第２の実施形態との構成及び作用の差異を中心に説明する。この第２の実施形態は、既述の図６で説明したメモリ（ＦＭ−ＰＫ）の使い方が異なっている。
【０１２６】
図１９は、メモリ（ＦＭ−ＰＫ）の各領域のイメージを示す図である。第１の実施形態の場合と同様にＦＭ−ＰＫ♯１〜♯８で一つのＲＡＩＤグループを形成し、ＦＭ−ＰＫ♯１，♯５間の連結を行うことで、一つのデバイスとして扱っている。異なる点は、ユーザ領域１９０１が、ＦＭ−ＰＫ♯１〜ＦＭ−ＰＫ♯４の列でまとめられ、ライト領域１９０３はＦＭ−ＰＫ♯５〜ＦＭ−ＰＫ♯９でまとめられている点である。
【０１２７】
次に本第２の実施形態における計算機システム１の動作について説明する。第１の実施形態と異なる点は、図２０に示す領域管理の画面１７００において、各ＲＡＩＤから構成される列において、ライト列に関して削除ボタン１８０１が追加されるとともに、割合１７３０においてユーザ領域及びライト領域がユーザ、もしくは、ライト領域となり、このユーザ、もしくは、ライト領域と代替領域とをスライドバー１８０４で分けるように構成されている。
【０１２８】
管理者が、削除ボタン１８０１を押した後、図１８で示したライト領域の縮小処理が実施される。この際、新たなライト領域は、残りのＦＭ−ＰＫのうちライト領域を持つＦＭ−ＰＫに限られる。ＦＭ−ＰＫ内のライト領域が全削除された後、そのＦＭ−ＰＫはフラッシュメモリアダプタ２２０から抜くことができる。この際、図２１のような、フラッシュメモリアダプタ２２０上のＦＭ−ＰＫスロット２１１１から外すことができる。各ＦＭ−ＰＫに対応するＬＥＤ２１１３，２１１４は、で挿抜可能なＦＭ−ＰＫであるか否かを示している。ＬＥＤ２１１３はＦＭ−ＰＫが脱着可能であることを示し、ＬＥＤ２１１４は脱着不可であることを示している。この表示により管理者は容易に減設できるＦＭ−ＰＫを見つけることができる。
【０１２９】
本第２の実施形態の計算機システム１によると、ユーザ領域とライト領域が分離することによって、ライト性能に応じて、ＦＭ−ＰＫ単位で追加・削除できる。
【産業上の利用可能性】
【０１３０】
本発明は、ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージに広く適用することができる。
【図面の簡単な説明】
【０１３１】
【図１】本発明に係わる第１の実施形態における計算機システムの構成の一例を示す図である。
【図２】同第１の実施形態における計算機システムの論理構成例を示す図である。
【図３】同第１の実施形態におけるＦＭ−アドレステーブルの例を示す図である。
【図４】同第１の実施形態におけるＦＭ−ＰＫを用いたＲＡＩＤ構成テーブルの例を示す図である。
【図５】同第１の実施形態におけるＦＭ−ＰＫに対するユーザ・ライト・代替BLK領域テーブルの例を示す図である。
【図６Ａ】同第１の実施形態におけるＦＭ−ＰＫを用いたＲＡＩＤ構成の中に構成された各領域のイメージ図である。
【図６Ｂ】同第１の実施形態における各ＬＤＥＶに割り当てられたライト領域の例を示す図である。
【図７】同第１の実施形態における論理デバイスの構成と性能情報を示すテーブルの例である。
【図８】同第１の実施形態における論理デバイスに対するライト領域の割当て済みページ数と使用済みページ数、そして、リクラメーション頻度を示すテーブル例である。
【図９】同第１の実施形態におけるポート、ＬＵ、ＬＤＥＶ間のマッピングテーブル例である。
【図１０】同第１の実施形態におけるＬＤＥＶに対するライト領域におけるページ管理表の一例である。
【図１１】同第１の実施形態におけるＦＭ−ＰＫに対して、ＲＡＩＤ構成、並びに、各種領域を割当てる手順である。
【図１２】同第１の実施形態におけるライトＩ／Ｏのフローチャート例である。
【図１３】同第１の実施形態におけるリードＩ／Ｏのフローチャート例である。
【図１４】同第１の実施形態におけるリクラメーション処理のフローチャート例である。
【図１５】同第１の実施形態における論理デバイスに対するライト領域の管理ＧＵＩの例である。
【図１６】同第１の実施形態における管理コンソールが、リクラメーション回数からライト領域の増減設をアラートするフローチャート例である。
【図１７】同第１の実施形態における各種領域を割当てる際に使用するＧＵＩの例である。
【図１８】本発明に係わる第２の実施形態におけるライト領域を削減する処理のフローチャートの例である。
【図１９】同第２の実施形態におけるＦＭ−ＰＫを用いたＲＡＩＤ構成の中に構成された各領域のイメージ図である。
【図２０】同第２の実施形態におけるライト領域の管理ＧＵＩの例である。
【図２１】同第２の実施形態におけるＦＭ−ＰＫのスロットと脱着可否を示すＬＥＤ例を示した図である。
【符号の説明】
【０１３２】
１…計算機システム、１００…ホスト計算機（ホスト）、２００…ストレージ装置、コントローラ２１０、２１１…ＭＰＵ、２２１…フラッシュメモリパッケージ（ＦＭ−ＰＫ）、２５０…管理コンソール、２５１…ＦＭ−ＰＫ管理部、２５２…ユーザ領域、２５３…ライト領域、２５４…代替領域、２６２…Ｉ／Ｏ処理部
【図１】
2010033393.tif 000003
【図２】
2010033393.tif 000004
【図３】
2010033393.tif 000005
【図４】
2010033393.tif 000006
【図５】
2010033393.tif 000007
【図６Ａ】
2010033393.tif 000008
【図６Ｂ】
2010033393.tif 000009
【図７】
2010033393.tif 000010
【図８】
2010033393.tif 000011
【図９】
2010033393.tif 000012
【図１０】
2010033393.tif 000013
【図１１】
2010033393.tif 000014
【図１２】
2010033393.tif 000015
【図１３】
2010033393.tif 000016
【図１４】
2010033393.tif 000017
【図１５】
2010033393.tif 000018
【図１６】
2010033393.tif 000019
【図１７】
2010033393.tif 000020
【図１８】
2010033393.tif 000021
【図１９】
2010033393.tif 000022
【図２０】
2010033393.tif 000023
【図２１】
2010033393.tif 000024