(57)【要約】【課題】統合後に必要となる物理領域の大きさをユーザが予め見積もるために、複数のプールを統合した場合の重複除去率を算出すること。【解決手段】ＣＭ４の重複除去率特定部４ａは重複数算出部４１と重複除去率算出部４２とを有する。重複数算出部４１は、２つのプールの単位データの重複数と２つのプールのリファレンスカウントの総数を算出する。また、重複除去率算出部４２は、重複数、リファレンスカウントの総数を用いて重複除去率を算出する。【選択図】図２
2019016293.tif 000002
【特許請求の範囲】
【請求項１】
所定の大きさの単位データについて２つの仮想ストレージプール間の重複数と該２つの仮想ストレージプールに含まれる前記単位データの総数を算出する第１算出部と、
前記第１算出部により算出された重複数と総数を用いて重複除去率を算出する第２算出部と
を有することを特徴とする情報処理装置。
【請求項２】
前記第２算出部は、前記重複数に前記所定の大きさを乗じて重複領域の重複サイズを算出し、前記２つの仮想ストレージプールが使用する物理領域のサイズの和から前記重複サイズを引いた重複除去後サイズを算出し、前記総数に前記所定の大きさを乗じて前記２つの仮想ストレージプールを合わせた領域の総サイズを算出し、前記重複除去後サイズを前記総サイズで割った縮小率を１から引いた値を重複除去率として算出することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１算出部は、ハッシュ計算によりハッシュ値が計算される単位データの仮想ストレージプールにおける数と該ハッシュ値とを対応付けたハッシュ対応情報を用いて前記重複数と前記総数とを算出することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記２つの仮想ストレージプールのうち一方は他の情報処理装置で制御され、
前記ハッシュ対応情報には自身が制御する仮想ストレージプールについての情報が登録され、
前記他の情報処理装置のハッシュ対応情報に登録された情報を該他の制御装置から受信する受信部を有し、
前記第１算出部は、自身のハッシュ対応情報に登録された情報と前記受信部が他のストレージ制御装置から取得した情報とを用いて前記重複数と前記総数とを算出することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
コンピュータが、
所定の大きさの単位データについて２つの仮想ストレージプール間の重複数と該２つの仮想ストレージプールに含まれる前記単位データの総数を算出し、
算出した重複数と総数を用いて重複除去率を算出する
処理を実行することを特徴とする重複除去率特定方法。
【請求項６】
コンピュータに、
所定の大きさの単位データについて２つの仮想ストレージプール間の重複数と該２つの仮想ストレージプールに含まれる前記単位データの総数を算出し、
算出した重複数と総数を用いて重複除去率を算出する
処理を実行させることを特徴とする重複除去率特定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、重複除去率特定方法及び重複除去率特定プログラムに関する。
【背景技術】
【０００２】
ストレージ装置では、同一データを格納しないようにする重複除去機能によりディスク容量の削減を行っている。重複除去は、シン・プロビジョニング・プール（Thin  Provisioning  Pool）毎に行われる。ここで、シン・プロビジョニング・プールは、シン・プロビジョニングによりデータが格納された物理領域である。なお、以下の説明では、シン・プロビジョニング・プールを単にプールと呼ぶ。
【０００３】
ストレージ装置は、所定の大きさの単位データをＳＨＡ−１機能を用いてハッシュ化し、２０バイトのハッシュ値にしてメインメモリ上に記憶する。ここで、ＳＨＡ−１は、ハッシュ関数である。また、ストレージ装置は、単位データをディスクに記憶する。
【０００４】
単位データの更新が行われると、ストレージ装置は、ＳＨＡ−１機能を用いてハッシュ化し、２０バイトのハッシュ値にして、既存のハッシュ値と同じものがあるかを検索することで、同一データがあるか否かを判定する。
【０００５】
同一のハッシュ値が見つからなければ、ストレージ装置は、ハッシュ値をメインメモリ上に記憶し、更新後の単位データをディスクに記憶する。一方、同一のハッシュ値が見つかれば、ストレージ装置は、ハッシュ値に対応付けられたリファレンスカウントを１増加する。リファレンスカウントは、ハッシュ値に対応する単位データのプール内の数である。
【０００６】
なお、データの重複除去のためにデータの同一性を調べる技術に関連して、テキストを分類する技術がある。この技術は、与えられたテキストに対してテキスト間の含意認識を行い、個々のテキストを選択し、選択したテキストを含意するテキストをメンバとするグループを生成し、グループ間のメンバ重複度合いに基づく所定の条件を満たす場合にグループを統合する。この技術によれば、複数のテキストを、概観を把握可能なグループに分類することができ、また、含意関係があると判定されなくても意味的に含意関係があるテキスト同士を同じグループに分類することができる。
【０００７】
また、ユーザへのストレージ装置の割り当てに関連して、複数のストレージ装置を含んだ階層構造を持つストレージシステムにおいて、ユーザ毎のストレージ資源使用容量を効率的にかつ公平に管理する技術がある。この技術は、ストレージコスト係数とユーザコスト分配情報から、各ユーザについて各ストレージ装置の理想的な使用容量分配を表す情報である理想使用量を算出し、各ユーザについて、各ストレージ装置に、性能の高いものから順に理想使用量を割り当てる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第６００８０６７号公報
【特許文献２】特表２０１２−５１６４７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
複数のプールを用いて業務運用を行っている場合に、複数のプールを統合したい場合がある。しかしながら、複数のプール間にはデータの重複がある可能性があるため、統合後に必要となる物理領域の大きさを予め見積もることができないという問題がある。なお、実際に複数のプールのデータを読み込んでハッシュ値を計算し、重複を判定することで、統合後に必要となる物理領域の大きさを算出することはできるが、処理に時間がかかる。
【００１０】
本発明は、１つの側面では、統合後に必要となる物理領域の大きさを予め見積もるために、複数のプールを統合した場合の重複除去率を効率良く算出することを目的とする。
【課題を解決するための手段】
【００１１】
１つの態様では、情報処理装置は、第１算出部と第２算出部とを有する。第１算出部は、所定の大きさの単位データについて２つの仮想ストレージプール間の重複数と該２つの仮想ストレージプールに含まれる単位データの総数を算出する。第２算出部は、第１算出部により算出された重複数と総数を用いて重複除去率を算出する。
【発明の効果】
【００１２】
１つの側面では、本発明は、複数のプールを統合した場合の重複除去率を効率良く算出することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例に係る情報処理システムのハードウェア構成を示す図である。
【図２】図２は、ＣＭの機能構成を示す図である。
【図３】図３は、ハッシュテーブルの一例を示す図である。
【図４】図４は、他のＣＭからのハッシュ値とリファレンスカウントの取得を説明するための図である。
【図５】図５は、重複除去率算出処理のフローを示すフローチャートである。
【図６】図６は、重複数算出処理のフローを示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する情報処理装置、重複除去率特定方法及び重複除去率特定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例】
【００１５】
まず、実施例に係る情報処理システムのハードウェア構成について説明する。図１は、実施例に係る情報処理システムのハードウェア構成を示す図である。図１に示すように、実施例に係る情報処理システム１は、ホスト２と、ストレージ装置３とを有する。ホスト２は、ストレージ装置３を使用して情報処理を行う。ストレージ装置３は、ホスト２が使用するデータを記憶する。
【００１６】
ストレージ装置３は、ＣＭ（Controller  Module）４と、ボリューム記憶装置９とを有する。ＣＭ４は、ストレージ装置３を制御する制御装置であるとともに、情報処理を行う情報処理装置でもある。ボリューム記憶装置９は、複数のボリューム９ａを記憶する。ボリューム記憶装置９は、例えば、複数台のＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）である。
【００１７】
ＣＭ４は、ＣＡ（Channel  Adapter）５と、ＣＰＵ６（Central  Processing  Unit）と、メインメモリ７と、２つのＦＣ（Fiber  Channel）８とを有する。
【００１８】
ＣＡ５は、ホスト２とのインタフェースである。ＣＰＵ６は、メインメモリ７からプログラムを読み出して実行する中央処理装置である。メインメモリ７は、プログラムやプログラムの実行途中結果などを記憶するＲＡＭ（Random  Access  Memory）である。ＦＣ８は、ボリューム記憶装置９とのインタフェースである。ＦＣ８は、冗長化される。
【００１９】
なお、ここでは説明の便宜上、１台のストレージ装置３のみを示したが、情報処理システム１は、複数のストレージ装置３を有してよい。また、ストレージ装置３は、複数のＣＭ４を有してよい。
【００２０】
次に、ＣＭ４の機能構成について説明する。図２は、ＣＭ４の機能構成を示す図である。図２に示すように、ＣＭ４は、重複除去率特定部４ａを有する。重複除去率特定部４ａは、以下の式（１）を用いて２つのプールの間の重複除去率を特定する。
【数１】
2019016293.tif 000003
【００２１】
ここで、総物理使用量は、２つのプールの物理使用量を足したサイズである。リファレンスカウントの総数は、２つのプールのリファレンスカウントを足した数である。チャンクサイズは、重複除去の単位である単位データのサイズであり、例えば４キロバイト（ＫＢ）である。
【００２２】
重複除去率は、統合後の物理使用量（（総物理使用量）−（重複するハッシュ値の数）×（チャンクサイズ））と論理使用量（（リファレンスカウントの総数）×（チャンクサイズ））の比率に基づく値である。統合後の物理使用量は、２つのプール間で重複する部分のサイズ（（重複するハッシュ値の数）×（チャンクサイズ））が（総物理使用量）から引かれている。
【００２３】
重複除去率特定部４ａは、ユーザが例えばキーボードやマウスを用いて入力した２つのプールの識別子を受け付けて、２つのプールを統合した場合の重複除去率を特定し、特定した重複除去率を２つのプールを統合した場合に必要な物理使用量とともに出力する。重複除去率特定部４ａは、記憶部４０と、重複数算出部４１と、重複除去率算出部４２と、通信部４３とを有する。
【００２４】
記憶部４０は、ハッシュテーブルの情報を記憶する。また、記憶部４０には、重複除去率を算出する際に一時的に用いられるデータを記憶する領域、他のＣＭ４との通信に用いられるバッファ等が含まれる。
【００２５】
図３は、ハッシュテーブルの一例を示す図である。図３に示すように、ハッシュテーブルは、ハッシュ値にＬＵＮ（Logical  Unit  No）、ＬＢＡ（Logical  Block  Address）、リファレンスカウントを対応付けるテーブルである。ハッシュ値に対応する単位データのストレージ装置３での格納場所はＬＵＮとＬＢＡの組合せで特定される。
【００２６】
例えば、ハッシュ値が「ｈ」である単位データは、ストレージ装置３のＬＵＮが「ｌ」、ＬＢＡが「ａ」である位置に格納され、プール内に同じ単位データが「ｎ」個ある。
【００２７】
重複数算出部４１は、重複数すなわち２つのプール間で重複するハッシュ値の数とリファレンスカウントの総数とを２つのプールのハッシュテーブルを用いて計算する。具体的には、重複数算出部４１は、第１のハッシュテーブルのハッシュ値が第２のハッシュテーブルに存在するか否かを判定し、存在する場合には、重複数を１増加する（１）。また、重複数算出部４１は、第１のハッシュテーブルのハッシュ値をリファレンスカウントの総数に加える（２）。重複数算出部４１は、上記（１）、（２）の処理を第１のハッシュテーブルの全ハッシュ値に対して行う。また、重複数算出部４１は、リファレンスカウントの総数に第２のハッシュテーブルの全リファレンスカウントを加える処理を別途行う。
【００２８】
重複除去率算出部４２は、重複数算出部４１により計算された重複数とリファレンスカウントの総数とを用いて重複除去率を計算する。そして、重複除去率算出部４２は、計算した重複除去率を２つのプールを統合した場合に必要な物理使用量とともに出力する。重複除去率算出部４２は、例えば、２つのプールを統合した場合に必要な物理使用量と重複除去率をストレージ装置３の表示装置に表示する。
【００２９】
通信部４３は、統合される２つのプールが異なるＣＭ４により制御される場合に、他のＣＭ４からハッシュテーブルに登録されたハッシュ値とリファレンスカウントを取得する。また、通信部４３は、他のＣＭ４からハッシュテーブルに登録されたハッシュ値とリファレンスカウントの取得要求を受信すると、ハッシュ値とリファレンスカウントを送信する。
【００３０】
図４は、他のＣＭ４からのハッシュ値とリファレンスカウントの取得を説明するための図である。図４は、ＣＭ＃１がプール＃１を制御し、ＣＭ＃２がプール＃２を制御し、プール＃１とプール＃２が統合される場合を示す。また、ＣＭ＃２の通信部４３がプール＃１のハッシュテーブルの情報を取得する。
【００３１】
図４に示すように、ＣＭ＃２の通信部４３は、プール＃１のハッシュ値とリファレンスカウントを記憶するためのバッファを用意する。そして、ＣＭ＃２の通信部４３は、プール＃１のハッシュ値とリファレンスカウントを取得するために、取得位置情報を付与して取得要求を発行する（１）。ここで、取得位置情報は、例えば、リファレンステーブルのｐ番目からｑ個といった情報である。
【００３２】
ＣＭ＃１の通信部４３は、取得要求を受信すると、プール＃１のハッシュテーブルから取得位置情報に基づきハッシュ値とリファレンスカウントを読み出してＣＭ＃２へ送信する（２）。そして、ＣＭ＃２の通信部４３は、送信されたハッシュ値とリファレンスカウントを受信してバッファに格納する。
【００３３】
ＣＭ＃２の重複数算出部４１は、ＣＭ＃２にあるプール＃２のハッシュテーブルとバッファに格納されたハッシュ値とリファレンスカウントを用いて重複数とリファレンスカウントの総数を計算する。バッファに格納されたハッシュ値とリファレンスカウントが全て処理されると、ＣＭ＃２の通信部４３は、取得位置情報を付与して取得要求を発行する。
【００３４】
なお、重複除去率特定部４ａは、同様の機能を有する重複除去率特定プログラムが図１に示したメインメモリ７から読み出されてＣＰＵ６によって実行されることによって実現される。重複除去率特定プログラムは、ＣＭ４により読み出し可能な記録媒体の一例であるＣＤ−Ｒ（Compact  Disc）に記憶され、ＣＤ−Ｒから読み出されてボリューム記憶装置９に格納される。あるいは、重複除去率特定プログラムは、ネットワークを介して接続されたコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてボリューム記憶装置９に格納される。ボリューム記憶装置９に格納された重複除去率特定プログラムは、メインメモリ７に読み出されてＣＰＵ６によって実行される。
【００３５】
次に、重複除去率算出処理のフローについて説明する。図５は、重複除去率算出処理のフローを示すフローチャートである。図５に示すように、重複除去率算出部４２は、記憶部４０に、情報を一時的に記憶するための各種領域を確保する（ステップＳ１）。
【００３６】
そして、重複除去率算出部４２は、重複数算出部４１に依頼して、重複数とリファレンスカウントの総数を算出する重複数算出処理を実行させる（ステップＳ２）。そして、重複除去率算出部４２は、プール＃１とプール＃２の物理使用量を取得し（ステップＳ３）、重複除去率を計算する（ステップＳ４）。
【００３７】
そして、重複除去率算出部４２は、必要な物理使用量と重複除去率を出力し（ステップＳ５）、情報を一時的に記憶するために確保した各種領域を解放する（ステップＳ６）。
【００３８】
このように、重複除去率算出部４２が重複数、リファレンスカウントの総数、プール＃１とプール＃２の物理使用量を用いて重複除去率を算出して出力するので、ユーザは、２つのプールの統合後に必要となる物理使用量を知ることができる。
【００３９】
次に、重複数算出処理のフローについて説明する。図６は、重複数算出処理のフローを示すフローチャートである。図６に示すように、重複数算出部４１は、重複数とリファレンスカウントの総数を０で初期化する（ステップＳ２１）。
【００４０】
そして、重複数算出部４１は、プール＃１の先頭のハッシュ値とリファレンスカウントを取得する（ステップＳ２２）。そして、重複数算出部４１は、取得したハッシュ値がプール＃２のハッシュテーブルに存在するか否かを判定し（ステップＳ２３）、存在する場合には、重複数をインクリメントする（ステップＳ２４）。
【００４１】
そして、重複数算出部４１は、プール＃１のリファレンスカウントをリファレンスカウントの総数に加算する（ステップＳ２５）。そして、重複数算出部４１は、プール＃１の先頭のハッシュ値の検索だった場合、プール＃２の全リファレンスカウントをリファレンスカウントの総数に加算する（ステップＳ２６）。
【００４２】
そして、重複数算出部４１は、プール＃１の全てのハッシュ値を処理したか否かを判定し（ステップＳ２７）、プール＃１の全てのハッシュ値を処理した場合には、処理を終了する。一方、プール＃１に処理していないハッシュ値がある場合には、重複数算出部４１は、プール＃１の次のハッシュ値とリファレンスカウントを取得し（ステップＳ２８）、ステップＳ２３に戻る。
【００４３】
このように、重複数算出部４１が重複数とリファレンスカウントの総数を算出することで、重複除去率算出部４２は、重複除去率を算出することができる。
【００４４】
上述してきたように、実施例では、重複数算出部４１が２つのプールの単位データの重複数と２つのプールのリファレンスカウントの総数を算出する。そして、重複除去率算出部４２が重複数、リファレンスカウントの総数を用いて重複除去率を算出する。したがって、重複除去率特定部４ａは、２つのプールを統合した場合の重複除去率を算出することができる。このため、ユーザは、２つのプールを統合した場合に必要となる物理使用量を統合前に知ることができる。
【００４５】
重複除去率が高いほど、統合後の物理使用量が減るため、統合するメリットがある。統合前のそれぞれのプールの物理使用量を足し合わせた結果と、統合後の物理使用量の結果を比べ、統合後の物理使用量が小さければ、統合するメリットがあることとなる。
【００４６】
また、重複除去率特定部４ａは、実データを読んで処理する必要がないため、実データを読み込んで重複除去率を調べるのに比べて、処理時間を少なくすることができる。またメインメモリ７には、重複数を記憶する８バイト、プール＃１及び＃２の物理使用量を記憶する８バイト×２、プール＃１及び＃２のリファレンスカウントの総数を記憶する８バイト、重複除去率を記憶する１バイトがあればよく、メモリサイズを小さくできる。プール＃１とプール＃２が異なるＣＭ４で制御される場合にも、他のプールのハッシュテーブルから取得するハッシュ値とリファレンスカウントの情報を格納するだけのバッファがあればよい。
【００４７】
また、実施例では、重複除去率算出部４２は、重複数にチャンクサイズを乗じて重複サイズを算出し、総物理使用量から重複サイズを引いて重複除去後サイズを算出する。また、重複除去率算出部４２は、リファレンスカウントの総数にチャンクサイズを乗じて２つのプールを合わせた領域の総サイズを算出する。そして、重複除去率算出部４２は、重複除去後サイズを総サイズで割って縮小率を算出し、１から縮小率を引いて重複除去率を算出する。したがって、重複除去率算出部４２は、正確に重複除去率を算出することができる。
【００４８】
また、実施例では、プール＃１とプール＃２が異なるＣＭ４で制御される場合に、プール＃２を制御するＣＭ４の通信部４３が、プール＃１のハッシュテーブルに登録されたハッシュ値とリファレンスカウントを取得する。そして、プール＃２を制御するＣＭ４の重複数算出部４１が、通信部４３が取得したハッシュ値とリファレンスカウントとプール＃２のハッシュテーブルを用いて重複数とリファレンスカウントの総数とを算出する。したがって、重複数算出部４１は、２つのプールが異なるＣＭ４で制御される場合にも、重複数とリファレンスカウントの総数とを算出することができる。
【００４９】
また、実施例では、シン・プロビジョニング・プールの場合について説明したが、本発明はこれに限定されるものではなく、重複除去が行われる仮想ストレージプールに適用することができる。
【００５０】
また、実施例では、２つのプールを統合する場合について説明したが、本発明はこれに限定されるものではなく、３つ以上のプールを統合する場合にも同様に適用することができる。
【００５１】
また、実施例では、ＣＭ４が重複除去率を算出する場合について説明したが、本発明はこれに限定されるものではなく、ホスト２が重複除去率を算出する場合にも同様に適用することができる。
【符号の説明】
【００５２】
１    情報処理システム
２    ホスト
３    ストレージ装置
４    ＣＭ
４ａ    重複除去率特定部
５    ＣＡ
６    ＣＰＵ
７    メインメモリ
８    ＦＣ
９    ボリューム記憶装置
９ａ    ボリューム
４０    記憶部
４１    重複数算出部
４２    重複除去率算出部
４３    通信部
【図１】
2019016293.tif 000004
【図２】
2019016293.tif 000005
【図３】
2019016293.tif 000006
【図４】
2019016293.tif 000007
【図５】
2019016293.tif 000008
【図６】
2019016293.tif 000009