(57)【要約】      （修正有）【課題】ブロックストレージに書き込まれるデータの圧縮において、一括圧縮の対象となるブロックを決定する処理の演算量を削減する情報処理装置、情報処理方法およびプログラムを提供する。【解決手段】本情報処理装置は、複数のブロックを含むデータを分割する分割部と、データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行する第１実行部（第１クラスタリング部１０３５）と、各部分に対する第１のクラスタリングの結果に基づき、複数のブロックのうち一括して圧縮されるブロックを決定する決定部（書込部１０３９）とを有する。【選択図】図６
2019046023.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを含むデータを分割する分割部と、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行する第１実行部と、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する決定部と、
を有する情報処理装置。
【請求項２】
各部分に対する前記第１のクラスタリングにより生成された複数のクラスタのうち所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、前記所定の条件を満たすクラスタに対する第２のクラスタリングを実行する第２実行部
をさらに有し、
前記決定部は、
前記第２のクラスタリングの結果にさらに基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
請求項１記載の情報処理装置。
【請求項３】
前記決定部は、
前記第２のクラスタリングにより生成されたクラスタの各々に含まれるブロックを一括して圧縮し、前記第１のクラスタリングにより生成され且つ前記第２のクラスタリングにより生成されたクラスタには含まれていないクラスタの各々に含まれるブロックを一括して圧縮し、前記所定の条件を満たさないクラスタの各々に含まれるブロックを一括して圧縮する、
請求項２記載の情報処理装置。
【請求項４】
前記分割部は、
前記データの分割により生成される部分の数と、前記データのサイズと、前記ブロックのサイズと、前記類似度の算出にかかる時間とに基づき算出されるスループットが目標のスループット以上になるように、前記データの分割により生成される部分の数を決定する、
請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項５】
前記分割部は、
同じ論理ボリュームに書き込まれるブロックが同じ部分に含まれるように前記データを分割する、
請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項６】
前記分割部は、
書き込み元が同じであるブロックが同じ部分に含まれるように前記データを分割する、
請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項７】
前記第１実行部は、
前記部分に含まれるブロックのペアのうち類似度が閾値以上であるペアからクラスタを生成する方法又は類似度を用いたＫ平均法に基づき前記第１のクラスタリングを実行する、
請求項１乃至６のいずれか１つ記載の情報処理装置。
【請求項８】
前記第１実行部は、
前記部分に含まれるブロックのうち他のブロックに対する類似度が所定値以下であるという条件を満たすブロックを、前記第１のクラスタリングの対象から除外する、
請求項１乃至７のいずれか１つ記載の情報処理装置。
【請求項９】
前記決定部は、
前記第１のクラスタリングの対象から除外されたブロックを個別に圧縮する、
請求項８記載の情報処理装置。
【請求項１０】
サンプルデータに対するクラスタリングによって生成されるクラスタのブロック数の平均値が、ストレージデバイスからの読み込みに係るレイテンシについての要件を表す数値に前記ストレージデバイスからの読み込み速度を掛けた値をブロックサイズで割った値になるように、前記所定値を算出する算出部
をさらに有する請求項９記載の情報処理装置。
【請求項１１】
前記所定の条件は、クラスタに含まれるブロックについての書き込み先の論理アドレスの最大値と最小値との差が当該クラスタに含まれるブロックの数の所定倍以下であるという条件、又は、当該クラスタに含まれるブロックについての書き込みアクセスの間隔の分散が所定間隔以下であるという条件である、
請求項２記載の情報処理装置。
【請求項１２】
前記第２実行部は、
前記第２のクラスタリングにより生成された複数のクラスタのうち前記所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、前記所定の条件を満たすクラスタに対する前記第２のクラスタリングを実行する、
請求項２記載の情報処理装置。
【請求項１３】
前記第１実行部は、
前記部分に含まれるブロックの各々からハッシュ値を算出し、算出された当該ハッシュ値間の類似度に基づき前記部分に対する前記第１のクラスタリングを実行する、
請求項１記載の情報処理装置。
【請求項１４】
コンピュータに、
複数のブロックを含むデータを分割し、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行し、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
処理を実行させるプログラム。
【請求項１５】
コンピュータが、
複数のブロックを含むデータを分割し、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行し、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
処理を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ圧縮技術に関する。
【背景技術】
【０００２】
ブロックストレージとは、ブロックと呼ばれる単位でデータへのアクセスが行われるストレージであり、ブロックストレージへ書き込みが行われるデータは、ブロックストレージの容量の節約のために圧縮されることがある。
【０００３】
図１は、ブロックの圧縮を示す図である。図１においては、４つのブロックが個別に圧縮されている。通常、辞書式圧縮のアルゴリズムは複数回出現するデータ列が存在することを前提としている。従って、図１に示したように４つのブロックを個別に圧縮するよりも、４つのブロックを一括して圧縮した方が圧縮率が向上する。例えば図１において、たとえブロック１とブロック２に共通のデータ列が含まれていたとしても、そのデータ列についてブロック１とブロック２との間での圧縮は行われない。
【０００４】
一括圧縮の対象となるブロックを探す場合には、ブロック間の関係性を調べる処理を実行することになるが、データのサイズによってはこの処理に長い時間がかかるという問題がある。特許文献に開示された従来技術は、このような問題の解決に適した技術ではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−３７５１９号公報
【特許文献２】特開２０１２−１１３６５７号公報
【特許文献３】特開２０１１−２２７７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、１つの側面では、ブロックストレージに書き込まれるデータの圧縮において、一括圧縮の対象となるブロックを決定する処理の演算量を削減するための技術を提供することである。
【課題を解決するための手段】
【０００７】
一態様に係る情報処理装置は、複数のブロックを含むデータを分割する分割部と、データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行する第１実行部と、各部分に対する第１のクラスタリングの結果に基づき、複数のブロックのうち一括して圧縮されるブロックを決定する決定部とを有する。
【発明の効果】
【０００８】
１つの側面では、ブロックストレージに書き込まれるデータの圧縮において、一括圧縮の対象となるブロックを決定する処理の演算量を削減できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、ブロックの圧縮を示す図である。
【図２】図２は、類似度に基づくクラスタリングを示す図である。
【図３】図３は、多段階のクラスタリングを示す図である。
【図４】図４は、本実施の形態のシステムの概要を示す図である。
【図５】図５は、ストレージシステムのハードウエア構成図である。
【図６】図６は、ストレージシステムの機能ブロック図である。
【図７】図７は、ホスト装置のハードウエア構成図である。
【図８】図８は、ストレージシステムにおいて実行される処理の処理フローを示す図である。
【図９】図９は、パラメータ設定処理の処理フローを示す図である。
【図１０】図１０は、クラスタリング方法について説明するための図である。
【図１１】図１１は、第１の実施の形態の分割処理の処理フローを示す図である。
【図１２】図１２は、ストレージシステムにおいて実行される処理の処理フローを示す図である。
【図１３】図１３は、第１の実施の形態のクラスタリング判定処理の処理フローを示す図である。
【図１４】図１４は、圧縮後のデータを示す図である。
【図１５】図１５は、本実施の形態の圧縮を示す図である。
【図１６】図１６は、第２の実施の形態の分割処理の処理フローを示す図である。
【図１７】図１７は、第３の実施の形態の分割処理の処理フローを示す図である。
【図１８】図１８は、第４の実施の形態のクラスタリング判定処理の処理フローを示す図である。
【発明を実施するための形態】
【００１０】
本実施の形態においては、類似するブロックを一括して圧縮することで圧縮率を向上させる。図２は、類似度に基づくクラスタリングを示す図である。図２においては、類似するブロック間の距離が短くなるようにブロックが配置される空間において、４つのクラスタが生成されている。同じクラスタに含まれるブロックには共通のデータ列が多く含まれることが期待されるため、各ブロックを個別に圧縮するよりも圧縮率が向上すると考えられる。但し、データに含まれるブロック間の類似度を単純に算出しようとすると、上で述べたように、長い時間がかかることがある。
【００１１】
例えば、ブロックサイズが８ＫＢ（KiloByte）である１ＧＢ（GigaByte）のデータを圧縮するケースが有るとする。この場合、データは１０２４＊１０２４／８＝１３１０７２個のブロックを含む。ブロック間の類似度を２つずつ算出する場合には、１３１０７２2／２≒０．８５＊１０10回の演算が必要である。１回の演算にかかる時間が０．１μ秒だと仮定すると、演算の完了までに８５０秒かかる。１ＧＢのデータの圧縮時に類似度の計算だけでこのような時間がかかることは、現実的には許容されない。
【００１２】
そこで本実施の形態においては、類似度に基づくクラスタリングを多段階で実行することで演算量を削減する。図３は、多段階のクラスタリングを示す図である。書き込まれるデータは、部分データに分割され、部分データにおいて類似度が算出され且つ類似度に基づく第１段階のクラスタリングが実行される。このようなクラスタリングを実行すると、データ全体について類似度を算出してクラスタリングを実行するよりも演算量が削減される。
【００１３】
そして、第１段階のクラスタリングによって生成されたクラスタに対して、さらに類似度に基づく第２段階のクラスタリングが実行される。同様に、第２段階のクラスタリングによって生成されたクラスタに対して、さらに類似度に基づく第３段階のクラスタリングが実行される。このようにして所定段階のクラスタリングが実行されるまで或いはクラスタリングができなくなるまでクラスタリングが繰り返し実行される。
【００１４】
このような方法であれば、異なる部分データに含まれるブロック間の類似度が考慮されるので、圧縮率の低下を抑制しつつ演算量を削減することができる。
【００１５】
［実施の形態１］
図４は、本実施の形態のシステムの概要を示す図である。ストレージシステム１は、例えばＳＡＮ（Storage Area Network）であるネットワーク５を介して利用されるブロックストレージである。ホスト装置３ａ乃至３ｃは例えばサーバ装置であり、ホスト装置３ａにおいては１又は複数のＶＭ（Virtual Machine）３０ａが実行され、ホスト装置３ｂにおいては１又は複数のＶＭ３０ｂが実行され、ホスト装置３ｃにおいては１又は複数のＶＭ３０ｃが実行される。ＶＭ３０ａ乃至３０ｃは、ｉＳＣＳＩ（internet Small Computer System Interface）又はＦＣ（Fibre Channel）等のプロトコルに基づきストレージシステム１におけるデータに対するアクセスを行う。図４においてはホスト装置の数は３であるが、数に限定は無い。
【００１６】
図５は、ストレージシステム１のハードウエア構成図である。ストレージシステム１は、ＣＰＵ（Central Processing Unit）１０と、例えばＤＲＡＭ（Dynamic Random Access Memory）であるメモリ１１と、フラッシュメモリ等の不揮発性記憶媒体を含むＳＳＤ（Solid State Drive）１２と、例えばＦＣカードであるＮＩＣ（Network Interface Card）１３とを有する。ＣＰＵ１０、メモリ１１、ＳＳＤ１２及びＮＩＣ１３は、バス１４を介して接続される。ＳＳＤ１２には、ＶＭ３０ａ乃至３０ｃからアクセスされるデータが圧縮されて保存される。メモリ１１は、ＣＰＵ１０により実行されるプログラムおよびプログラムの実行に使用されるデータ等が格納される領域と、ＳＳＤ１２に書き込まれるデータが一時的に格納されるキャッシュ領域１０２とを含む。なお、キャッシュ領域１０２用に専用のキャッシュメモリが用意されてもよい。また、ストレージシステム１がその他のハードウエアを有してもよい。
【００１７】
図６は、ストレージシステム１の機能ブロック図である。ストレージシステム１は、重複排除部１０１と、キャッシュ領域１０２と、圧縮部１０３と、データ保存領域１０４とを有する。圧縮部１０３は、分割部１０３１と、パラメータ算出部１０３３と、第１クラスタリング部１０３５と、第２クラスタリング部１０３７と、書き込み部１０３９とを含む。
【００１８】
重複排除部１０１および圧縮部１０３は、例えば、図５におけるメモリ１１にロードされたプログラムがＣＰＵ１０により実行されることで実現される。キャッシュ領域１０２は、メモリ１１を用いて実現される。データ保存領域１０４は、１又は複数のＳＳＤ１２を用いて実現される。
【００１９】
重複排除部１０１は、ＶＭ３０ａ乃至３０ｃにより書き込まれるデータから重複を排除する処理を実行し、重複を排除した後のデータをキャッシュ領域１０２に格納する。分割部１０３１は、キャッシュ領域１０２に格納されているデータを分割する処理を実行する。パラメータ算出部１０３３は、第１クラスタリング部１０３５の処理に使用されるパラメータを算出する処理を実行する。第１クラスタリング部１０３５は、分割部１０３１によって生成された部分データと、パラメータ算出部１０３３によって算出されたパラメータとを用いて処理を実行し、処理結果を第２クラスタリング部１０３７に出力する。第２クラスタリング部１０３７は、第１クラスタリング部１０３５から受け取った処理結果に基づき処理を実行し、処理結果を書き込み部１０３９に出力する。書き込み部１０３９は、第２クラスタリング部１０３７から受け取った処理結果に従ってデータを圧縮し、圧縮されたデータをデータ保存領域１０４に格納する。
【００２０】
なお、ＶＭ３０ａ乃至３０ｃからのアクセス要求には論理アドレス（ＬＢＡ：Logical Block Address）が含まれる。ＳＳＤ１２上には論理ボリュームが生成されており、各論理ボリュームは独立した論理アドレス空間を有する。ＳＳＤ１２自体は物理アドレスを有するが、ストレージシステム１には論理アドレスと物理アドレスとの対応関係を示す変換テーブルが有り、変換テーブルによって論理アドレスは物理アドレスに変換される。
【００２１】
図７は、ホスト装置３ａのハードウエア構成図である。ホスト装置３ａは、ＣＰＵ３５と、例えばＤＲＡＭであるメモリ３１と、ＨＤＤ（Hard Disk Drive）３２と、例えばＦＣカードであるＮＩＣ３３とを有する。ＣＰＵ３５、メモリ３１、ＨＤＤ３２及びＮＩＣ３３は、バス３４を介して接続される。ＨＤＤ３２にはハイパバイザのプログラムが格納され、当該プログラムがメモリ３１にロードされてＣＰＵ３５により実行されることでハイパバイザが実現される。ハイパバイザ上では、ＶＭ３０ａが実行される。なお、ホスト装置３ｂ及び３ｃのハードウエア構成図はホスト装置３ａのハードウエア構成図と同じである。
【００２２】
次に、ストレージシステム１において実行される処理をより詳細に説明する。
【００２３】
図８は、ストレージシステム１において実行される処理の処理フローを示す図である。
【００２４】
まず、ストレージシステム１における重複排除部１０１は、データの書き込み要求を受け付ける。そして、重複排除部１０１は、ＳＳＤ１２に書き込まれるデータ（以下、書き込みデータと呼ぶ）から重複を排除する処理を実行し、処理された書き込みデータをキャッシュ領域１０２に書き込む（図８：ステップＳ１）。
【００２５】
分割部１０３１は、キャッシュ領域１０２上の書き込みデータをデータ保存領域１０４に書き込むか判定する（ステップＳ３）。ステップＳ３においては、例えば、キャッシュ領域１０２上の書き込みデータのサイズが所定サイズ以上であるか否かに基づき判定が行われる。
【００２６】
キャッシュ領域１０２上の書き込みデータをデータ保存領域１０４に書き込まない場合（ステップＳ３：Ｎｏルート）、処理はステップＳ１に戻る。キャッシュ領域１０２上の書き込みデータをデータ保存領域１０４に書き込む場合（ステップＳ３：Ｙｅｓルート）、分割部１０３１は、クラスタリングのパラメータが既に設定されたか判定する（ステップＳ５）。パラメータは、第１段階のクラスタリングにおいて使用されるパラメータである。以下、このパラメータのことをパラメータＳと呼ぶ。
【００２７】
クラスタリングのパラメータが既に設定された場合（ステップＳ５：Ｙｅｓルート）、処理はステップＳ９に移行する。一方、クラスタリングのパラメータが未だ設定されていない場合（ステップＳ５：Ｎｏルート）、分割部１０３１は、パラメータ算出部１０３３を呼び出す。そして、パラメータ算出部１０３３はパラメータ設定処理を実行する（ステップＳ７）。
【００２８】
図９は、パラメータ設定処理の処理フローを示す図である。
【００２９】
パラメータ算出部１０３３は、サンプルデータを読み出す（図９：ステップＳ４１）。サンプルデータは、例えば、ＳＳＤ１２に格納されているデータであってもよいし、予めサンプルデータとして別の記憶装置に用意されたデータであってもよい。例えばセットアップ時にパラメータ設定処理を実行する場合にはサンプルデータが無い場合もあるが、その場合にはステップＳ４３においてパラメータＳに初期値を設定してパラメータ設定処理を終了してもよい。なお、サンプルデータのサイズは、部分データのサイズと同程度であることが好ましい。
【００３０】
パラメータ算出部１０３３は、パラメータＳを初期値に設定する（ステップＳ４３）。
【００３１】
パラメータ算出部１０３３は、パラメータＳを基準として、ステップＳ４１において読み出されたサンプルデータに対してクラスタリングを実行する（ステップＳ４５）。ステップＳ４５においては、後述の第１段階のクラスタリングと同様のクラスタリングが実行される。
【００３２】
具体的には、まず、サンプルデータに含まれる各ブロックのハッシュ値が、例えば局所性鋭敏型ハッシュ（Locality Sensitive Hashing）により算出される。局所性鋭敏型ハッシュが利用される理由は、ＳＨＡ（Secure Hash Algorithm）−１等のハッシュアルゴリズムと異なり、類似するブロックの場合ハッシュ値が類似するからである。そして、ハッシュ値間の類似度が算出される。例えば、ハッシュ値間の類似度はハッシュ値間の距離の逆数として算出される。但し、距離をそのまま非類似度として使用してもよい。そして、類似度がパラメータＳより高いペアを対象としてクラスタリングを実行する。
【００３３】
図１０は、クラスタリング方法について説明するための図である。図１０には、ブロックＢ１乃至Ｂ８の各々とブロックＢ１乃至Ｂ８の各々との間の類似度が行列形式で表されている。１つのセルが１つの類似度を表す。但し、同一のブロック間の類似度の算出は省略してもよい。また、Ｂｍ（ｍは１≦ｍ≦８を満たす自然数）とＢｎ（ｎは１≦ｎ≦８を満たす自然数であってｎ≠ｍ）との間の類似度と、ＢｎとＢｍとの間の類似度とは同じであるから、いずれかの算出が省略されてもよい。そして、類似度が高いペアほど左側に位置するように行毎にソートが実行され、次に、左端の列の類似度が高いほど上側に位置するように行を入れ替えるソートが実行される。すると、行列の左上のセルほど類似度が高くなるので、行列の左上からセルを取り出し、類似度がパラメータＳ以上であるハッシュ値のブロックが同じクラスタに属するように１又は複数のクラスタが生成される。但し、１つのクラスタが複数のクラスタに属さないようにクラスタリングされる。
【００３４】
ここで述べたようなクラスタ生成方法は一例であって、その他の方法を使用してもよい。例えば、類似度に基づくＫ−ｍｅａｎｓ法を実行してもよい。
【００３５】
なお、類似度がパラメータＳより高いペアを対象としてクラスタリングを実行する理由は、あまり類似していない複数のブロックを一括で圧縮しても圧縮率が向上されない可能性があるからである。
【００３６】
パラメータ算出部１０３３は、ステップＳ４５におけるクラスタリングによって生成されたクラスタに含まれるブロック数の平均値を算出する（ステップＳ４７）。
【００３７】
パラメータ算出部１０３３は、ステップＳ４７において算出された平均値が所定値Ｍより大きいか判定する（ステップＳ４９）。所定値Ｍはクラスタ内に含まれるブロックの最大数を表し、例えば、（ブロックサイズ）＊Ｍ≦（読み込みレイテンシの性能要件）＊（ＳＳＤ１２の読込速度）を満たす最大のＭとして算出される。読み込みレイテンシの性能要件とは、ユーザが許容する最大の読み込みレイテンシであり、例えば２００ミリ秒である。
【００３８】
ステップＳ４７において算出された平均値が所定値Ｍより大きくない場合（ステップＳ４９：Ｎｏルート）、パラメータ算出部１０３３は、パラメータＳから所定値を引く（ステップＳ５１）。そして処理はステップＳ４５に戻る。一方、ステップＳ４７において算出された平均値が所定値Ｍより大きい場合（ステップＳ４９：Ｙｅｓルート）、処理は呼び出し元に戻る。
【００３９】
以上のような処理を実行すれば、クラスタに含まれる複数のブロックに対する一括圧縮の圧縮率が低下することを抑制できるようになる。
【００４０】
図８の説明に戻り、分割部１０３１は、分割処理を実行する（ステップＳ９）。
【００４１】
図１１は、第１の実施の形態の分割処理の処理フローを示す図である。
【００４２】
分割部１０３１は、書き込みデータの分割数を決定する（図１１：ステップＳ６１）。分割数とは、書き込みデータの分割によって生成される部分の数である。本実施の形態においては、書き込みデータの分割によって生成されるデータは部分データと呼ばれる。
【００４３】
例えば、ストレージシステム１として目標のスループットＴが定められているとする。２つのブロックのハッシュ値の算出にかかる時間をｃとし、書き込みデータのサイズをＤとし、ブロックサイズをＢとし、分割数をＮとすると、第１段階のクラスタリングについての類似度算出にかかる時間はｃＤ2／２ＮＢ2である。従って、Ｎが満たすべき条件は２ＮＢ2／ｃＤ2≧Ｔであるから、Ｎ≧ｃＴＤ2／２Ｂ2を満たすＮを算出すればよい。
【００４４】
分割部１０３１は、分割数から部分データのサイズを算出する（ステップＳ６３）。例えば、書き込みデータのサイズを分割数で割ることで算出される。
【００４５】
分割部１０３１は、ステップＳ６３において算出されたサイズに基づき、書き込みデータを部分データに分割する（ステップＳ６５）。そして処理は呼び出し元に戻る。
【００４６】
以上のような処理を実行すれば、実際のスループットが目標のスループットＴを下回ることを抑制できるようになる。但し、上記処理においては第２段階以降のクラスタリングが考慮されていないため、必ずしも実際のスループットが目標のスループットＴより高くなることが担保されているわけではない。
【００４７】
図８の説明に戻り、第１クラスタリング部１０３５は、キャッシュ領域１０２上の書き込みデータに含まれる各ブロックのハッシュ値を算出する（ステップＳ１１）。ステップＳ９においては、例えば局所性鋭敏型ハッシュによりハッシュ値が算出される。
【００４８】
第１クラスタリング部１０３５は、ステップＳ６５において生成された部分データに含まれるブロックに対する第１段階のクラスタリングを実行する（ステップＳ１３）。処理は端子Ａを介して図１２のステップＳ１５に移行する。
【００４９】
例えばステップＳ６５において部分データＰＤ１乃至ＰＤ３が生成された場合、部分データＰＤ１内のブロックについて算出されたハッシュ値間の類似度に基づきクラスタリングが実行され、部分データＰＤ２内のブロックについて算出されたハッシュ値間の類似度に基づきクラスタリングが実行され、部分データＰＤ３内のブロックについて算出されたハッシュ値間の類似度に基づきクラスタリングが実行される。これにより、書き込みデータ全体に対して複数のクラスタが生成される。
【００５０】
図１２の説明に移行し、第２クラスタリング部１０３７は、段階を識別するための変数ｎをｎ＝１と設定する（図１２：ステップＳ１５）。
【００５１】
第２クラスタリング部１０３７は、第ｎ段階は最終段階であるか判定する（ステップＳ１７）。
【００５２】
第ｎ段階は最終段階である場合（ステップＳ１７：Ｙｅｓルート）、処理はステップＳ２９に移行する。
【００５３】
第ｎ段階は最終段階ではない場合（ステップＳ１７：Ｎｏルート）、第２クラスタリング部１０３７は、クラスタリング判定処理を実行する（ステップＳ１９）。
【００５４】
図１３は、第１の実施の形態のクラスタリング判定処理の処理フローを示す図である。
【００５５】
第２クラスタリング部１０３７は、前回のクラスタリング（つまり、ステップＳ１３におけるクラスタリング又はステップＳ２５におけるクラスタリング）により生成されたクラスタのうち未処理のクラスタを１つ特定する（図１３：ステップＳ７１）。
【００５６】
第２クラスタリング部１０３７は、ステップＳ７１において特定されたクラスタ内の各ブロックの書き込みアクセスについてのタイムスタンプをキャッシュ領域１０２から抽出し、抽出されたタイムスタンプをソートする（ステップＳ７３）。
【００５７】
第２クラスタリング部１０３７は、書き込みアクセスの間隔についての分散を算出する（ステップＳ７５）。書き込みアクセスの間隔についての分散が小さいことは、アクセスの時間的局所性が高いことを意味する。
【００５８】
第２クラスタリング部１０３７は、ステップＳ７５において算出された分散が、許容最小間隔以下であるか否かに基づき、ステップＳ７１において特定されたクラスタが第（ｎ＋１）段階のクラスタリングの対象であるか否かを決定する（ステップＳ７７）。許容最小間隔とは、例えば、ストレージシステム１が書き込みアクセスを受け付けられる間隔の最小値である。
【００５９】
図１４は、圧縮後のデータを示す図である。図１４においては、アクセスされるデータ（以下、アクセスデータ１４００と呼ぶ）が圧縮後のデータ１４０に含まれる。通常、たとえデータ１４０の一部分しかアクセスされない場合であっても、圧縮後のデータ１４０全体が解凍されることになる。従って、アクセスデータ１４００のサイズが圧縮後のデータ１４０のサイズに対して小さい場合には、無駄な読み込みが発生しオーバーヘッドが大きい。そこで、第（ｎ＋１）段階のクラスタリングの対象となるクラスタを時間的局所性の観点から限定することで、読み込みの性能が低下することを抑制することができる。つまり、解凍によってキャッシュ領域１０２に展開されたデータが有効活用される可能性が高くなる。なお、分散ではなく他の統計量を使用してもよい。
【００６０】
第２クラスタリング部１０３７は、未処理のクラスタが有るか判定する（ステップＳ７９）。未処理のクラスタが有る場合（ステップＳ７９：Ｙｅｓルート）、処理はステップＳ７１に戻る。一方、未処理のクラスタが無い場合（ステップＳ７９：Ｎｏルート）、処理は呼び出し元に戻る。
【００６１】
図１２の説明に戻り、第２クラスタリング部１０３７は、第（ｎ＋１）段階のクラスタリングが可能であるか判定する（ステップＳ２１）。ステップＳ２１においては、例えば、第（ｎ＋１）段階のクラスタリングの対象であると判定されたクラスタの数が２以上であるか否かによって判定が行われる。
【００６２】
第（ｎ＋１）段階のクラスタリングが可能ではない場合（ステップＳ２１：Ｎｏルート）、処理はステップＳ２９に移行する。
【００６３】
第（ｎ＋１）段階のクラスタリングが可能である場合（ステップＳ２１：Ｙｅｓルート）、第２クラスタリング部１０３７は、以下の処理を実行する。具体的には、第２クラスタリング部１０３７は、ステップＳ１９において第（ｎ＋１）段階のクラスタリングの対象であると判定された各クラスタの代表ブロックを特定する（ステップＳ２３）。代表ブロックとは、例えば、ランダムに選択されたブロック、又は、図１０における各行の左端の類似度に対応するブロックである。
【００６４】
第２クラスタリング部１０３７は、ステップＳ２３において特定された代表ブロックを用いて、第（ｎ＋１）段階のクラスタリングを実行する（ステップＳ２５）。例えばステップＳ２３において１０個のブロックが特定された場合、その１０個のブロック間のハッシュ値が算出され、さらに、ハッシュ値間の類似度が算出される。そして、ステップＳ１３と同様、算出された類似度に基づきクラスタリングが実行される。第（ｎ＋１）段階のクラスタリングによって、第ｎ段階のクラスタを複数含むクラスタが生成される。
【００６５】
第２クラスタリング部１０３７は、変数ｎを１インクリメントする（ステップＳ２７）。そして処理はステップＳ１７に戻る。
【００６６】
一方、第ｎ段階は最終段階であると判定された場合（ステップＳ１７：Ｙｅｓルート）又は第（ｎ＋１）段階のクラスタリングが可能ではないと判定された場合（ステップＳ２１：Ｎｏルート）、書き込み部１０３９は、以下の処理を実行する。具体的には、書き込み部１０３９は、書き込みデータの圧縮を実行する（ステップＳ２９）。ステップＳ２９において、書き込み部１０３９は、書き込みデータに含まれるブロックのうち一括して圧縮するブロックを決定し、そのブロックを一括して圧縮するとともに、そのブロック以外のブロックを個別に圧縮する。
【００６７】
図１５は、本実施の形態の圧縮を示す図である。図１５の例においては、第１段階のクラスタリングと第２段階のクラスタリングとが実行されている。書き込みデータの分割数は２であり、第１段階のクラスタリングによって、一方の部分データからクラスタＢ１５１及びＢ１５２が生成され、他方の部分データからクラスタＢ１５３及びＢ１５４が生成されている。そして、第２段階のクラスタリングによって、クラスタＢ１５１及びＢ１５３からクラスタＢ１５５が生成されている。この場合、クラスタＢ１５５に含まれるブロックが一括で圧縮され、クラスタＢ１５２に含まれるブロックが一括で圧縮され、クラスタＢ１５４に含まれるブロックが一括で圧縮される。第１段階のクラスタリングの対象ではない（すなわち、他のブロックとの類似度がパラメータＳ以下である）ブロックは個別で圧縮される。
【００６８】
書き込み部１０３９は、ステップＳ２９において圧縮された書き込みデータをＳＳＤ１２に書き込む（ステップＳ３１）。そして処理は終了する。
【００６９】
以上のように、共通するデータ列を探す範囲を書き込みデータ全体に拡張することで、圧縮率を向上させることができるようになる。なお、複数の仮想マシンイメージが統合された書き込みデータに対して本実施の形態を適用したところ、本実施の形態を適用しない場合と比べて約１２％圧縮率が向上したことが確認された。
【００７０】
また、書き込みデータ全体に対して類似度を算出する処理を実行するのではなく、書き込みデータを複数の部分に分割して各部分に対して類似度を算出する処理を実行することで、演算量を少なくすることができる。結果として、圧縮が完了するまでに要する時間を短縮できるようになる。
【００７１】
さらに、第ｎ段階のクラスタリングによって生成されたクラスタのうちアクセスの局所性が低いクラスタを第（ｎ＋１）段階のクラスタリングの対象から除外することで、読み込みの性能が低下することを抑制できるようになる。
【００７２】
［実施の形態２］
第２の実施の形態においては、書き込み先の論理ボリュームが同じであるブロックが同じ部分データに含まれるように書き込みデータが分割される。
【００７３】
図１６は、第２の実施の形態の分割処理の処理フローを示す図である。
【００７４】
分割部１０３１は、書き込みデータに含まれる各ブロックの書き込み先の論理ボリュームを特定する（図１６：ステップＳ８１）。論理ボリュームは、例えば、ＬＵＮ（Logical Unit Number）により特定される。
【００７５】
分割部１０３１は、書き込み先の論理ボリュームが同じであるブロックが同じ部分データに含まれるように、書き込みデータを分割する（ステップＳ８３）。そして処理は呼び出し元に戻る。
【００７６】
以上のような処理を実行すれば、類似する可能性が高いブロックが同じ部分データに含まれるようになるので、圧縮率を向上させることができるようになる。
【００７７】
但し、第２の実施の形態においても、第１の実施の形態の方法で決定された分割数になるように書き込みデータを分割してもよい。
【００７８】
［実施の形態３］
第３の実施の形態においては、書き込み元のＶＭが同じであるブロックが同じ部分データに含まれるように書き込みデータが分割される。
【００７９】
図１７は、第３の実施の形態の分割処理の処理フローを示す図である。
【００８０】
分割部１０３１は、書き込みデータに含まれる各ブロックの書き込み元のＶＭを特定する（図１７：ステップＳ９１）。書き込み元は、例えば、アドレスによって特定される。
【００８１】
分割部１０３１は、書き込み元のＶＭが同じであるブロックが同じ部分データに含まれるように、書き込みデータを分割する（ステップＳ９３）。そして処理は呼び出し元に戻る。
【００８２】
以上のような処理を実行すれば、類似する可能性が高いブロックが同じ部分データに含まれるようになるので、圧縮率を向上させることができるようになる。例えば、同じＶＭによって書き込まれる複数のブロックは同じデータ列を含む可能性が高い。
【００８３】
但し、第３の実施の形態においても、第１の実施の形態の方法で決定された分割数になるように書き込みデータを分割してもよい。
【００８４】
なお、上で述べた例では書き込み元のＶＭが同じであるブロックが同じ部分データに含まれるように書き込みデータが分割されたが、書き込み元のホスト装置が同じであるブロックが同じ部分データに含まれるように書き込みデータが分割されてもよい。
【００８５】
［実施の形態４］
第１の実施の形態においては、書き込みアクセスの間隔の観点から第（ｎ＋１）段階のクラスタリングの対象となるクラスタであるか否かが判定される。これに対して、第４の実施の形態においては、論理アドレスの範囲の観点から第（ｎ＋１）段階のクラスタリングの対象となるクラスタであるか否かが判定される。
【００８６】
図１８は、第４の実施の形態のクラスタリング判定処理の処理フローを示す図である。なお、本処理は、第２の実施の形態の分割処理が実行された場合に実行することが好ましい。
【００８７】
第２クラスタリング部１０３７は、前回のクラスタリング（つまり、ステップＳ１３におけるクラスタリング又はステップＳ２５におけるクラスタリング）により生成されたクラスタのうち未処理のクラスタを１つ特定する（図１８：ステップＳ１０１）。
【００８８】
第２クラスタリング部１０３７は、ステップＳ１０１において特定されたクラスタに含まれるブロックの書き込み先の論理アドレスの最大値と最小値との差を算出する（ステップＳ１０３）。
【００８９】
第２クラスタリング部１０３７は、ステップＳ１０３において算出された差が、ステップＳ１０１において特定されたクラスタ内のブロックの数の所定倍（例えば２倍）以下であるか否かに基づき、ステップＳ１０１において特定されたクラスタが第（ｎ＋１）段階のクラスタリングの対象であるか否かを決定する（ステップＳ１０５）。
【００９０】
第２クラスタリング部１０３７は、未処理のクラスタが有るか判定する（ステップＳ１０７）。未処理のクラスタが有る場合（ステップＳ１０７：Ｙｅｓルート）、処理はステップＳ１０１に戻る。一方、未処理のクラスタが無い場合（ステップＳ１０７：Ｎｏルート）、処理は呼び出し元に戻る。
【００９１】
以上のように、第（ｎ＋１）段階のクラスタリングの対象となるクラスタを空間的局所性の観点から限定することで、読み込みの性能が低下することを抑制することができる。つまり、解凍によってキャッシュ領域１０２に展開されたデータが有効活用される可能性が高くなる。
【００９２】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したストレージシステム１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００９３】
また、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００９４】
また、重複排除部１０１による処理を省略してもよい。
【００９５】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００９６】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）複数のブロックを含むデータを分割する分割部（実施の形態における分割部１０３１は上記分割部の一例である）と、（Ｂ）データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行する第１実行部（実施の形態における第１クラスタリング部１０３５は上記第１実行部の一例である）と、（Ｃ）各部分に対する第１のクラスタリングの結果に基づき、複数のブロックのうち一括して圧縮されるブロックを決定する決定部と（実施の形態における書き込み部１０３９は上記決定部の一例である）を有する。
【００９７】
データ全体に対するクラスタリングを実行する場合と比べて、一括圧縮の対象となるブロックを決定する処理の演算量を削減することができるようになる。
【００９８】
また、（Ｄ）各部分に対する第１のクラスタリングにより生成された複数のクラスタのうち所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、所定の条件を満たすクラスタに対する第２のクラスタリングを実行する第２実行部（実施の形態における第２クラスタリング部１０３７は上記第２実行部の一例である）をさらに有してもよい。そして、決定部は、（ｃ１）第２のクラスタリングの結果にさらに基づき、複数のブロックのうち一括して圧縮されるブロックを決定してもよい。
【００９９】
多段階のクラスタリングにより、例えば、類似するブロックをひとつのブロックにより多く含めることができるようになる。なお、多段階でクラスタリングを実行する場合であっても、データ全体に対するクラスタリングを実行するよりも演算量を削減することができる。
【０１００】
また、決定部は、（ｃ２）第２のクラスタリングにより生成されたクラスタの各々に含まれるブロックを一括して圧縮し、第１のクラスタリングにより生成され且つ第２のクラスタリングにより生成されたクラスタには含まれていないクラスタの各々に含まれるブロックを一括して圧縮し、所定の条件を満たさないクラスタの各々に含まれるブロックを一括して圧縮してもよい。
【０１０１】
例えば、類似するブロックが一括して圧縮されるので、圧縮率を向上させることができるようになる。
【０１０２】
また、分割部は、（ａ１）データの分割により生成される部分の数と、データのサイズと、ブロックのサイズと、類似度の算出にかかる時間とに基づき算出されるスループットが目標のスループット以上になるように、データの分割により生成される部分の数を決定してもよい。
【０１０３】
圧縮についてのスループットの低下を抑制できるようになる。
【０１０４】
また、分割部は、（ａ２）同じ論理ボリュームに書き込まれるブロックが同じ部分に含まれるようにデータを分割してもよい。
【０１０５】
共通するデータ列を有するブロックが同じクラスタに含まれる可能性が高くなる。
【０１０６】
また、分割部は、（ａ３）書き込み元が同じであるブロックが同じ部分に含まれるようにデータを分割してもよい。
【０１０７】
共通するデータ列を有するブロックが同じクラスタに含まれる可能性が高くなる。
【０１０８】
また、第１実行部は、（ｂ１）部分に含まれるブロックのペアのうち類似度が閾値以上であるペアからクラスタを生成する方法又は類似度を用いたＫ平均法に基づき第１のクラスタリングを実行してもよい。
【０１０９】
類似度に基づく第１のクラスタリングを適切に実行できるようになる。
【０１１０】
また、第１実行部は、（ｂ２）部分に含まれるブロックのうち他のブロックに対する類似度が所定値以下であるという条件を満たすブロックを、第１のクラスタリングの対象から除外してもよい。
【０１１１】
圧縮率の向上に寄与する可能性が低いブロックを除外できるようになる。
【０１１２】
また、決定部は、（ｃ３）第１のクラスタリングの対象から除外されたブロックを個別に圧縮してもよい。
【０１１３】
ブロック単体の圧縮であったとしても場合によっては高い圧縮率になる場合がある。
【０１１４】
また、本情報処理装置は、（Ｅ）サンプルデータに対するクラスタリングによって生成されるクラスタのブロック数の平均値が、ストレージデバイスからの読み込みに係るレイテンシについての要件を表す数値にストレージデバイスからの読み込み速度を掛けた値をブロックサイズで割った値になるように、所定値を算出する算出部（実施の形態におけるパラメータ算出部１０３３は上記算出部の一例である）をさらに有してもよい。
【０１１５】
ストレージデバイス上の圧縮データの読み込み時に時間がかかることを抑制できるようになる。
【０１１６】
また、所定の条件は、クラスタに含まれるブロックについての書き込み先の論理アドレスの最大値と最小値との差が当該クラスタに含まれるブロックの数の所定倍以下であるという条件、又は、当該クラスタに含まれるブロックについての書き込みアクセスの間隔の分散が所定間隔以下であるという条件であってもよい。
【０１１７】
アクセスの局所性が高いとみなされるクラスタが第２のクラスタリングの対象となるので、読み込み速度が低下することを抑制できるようになる。
【０１１８】
また、第２実行部は、（ｄ１）第２のクラスタリングにより生成された複数のクラスタのうち所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、所定の条件を満たすクラスタに対する第２のクラスタリングを実行してもよい。
【０１１９】
クラスタに対するクラスタリングを簡便に実行できるようになる。
【０１２０】
また、第１実行部は、（ｂ３）部分に含まれるブロックの各々からハッシュ値を算出し、算出された当該ハッシュ値間の類似度に基づき部分に対する第１のクラスタリングを実行してもよい。
【０１２１】
類似度を容易に算出することができるようになる。
【０１２２】
本実施の形態の第２の態様に係る情報処理方法は、（Ｆ）複数のブロックを含むデータを分割し、（Ｇ）データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行し、（Ｈ）各部分に対する第１のクラスタリングの結果に基づき、複数のブロックのうち一括して圧縮されるブロックを決定する処理を含む。
【０１２３】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１２４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２５】
（付記１）
複数のブロックを含むデータを分割する分割部と、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行する第１実行部と、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する決定部と、
を有する情報処理装置。
【０１２６】
（付記２）
各部分に対する前記第１のクラスタリングにより生成された複数のクラスタのうち所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、前記所定の条件を満たすクラスタに対する第２のクラスタリングを実行する第２実行部
をさらに有し、
前記決定部は、
前記第２のクラスタリングの結果にさらに基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
付記１記載の情報処理装置。
【０１２７】
（付記３）
前記決定部は、
前記第２のクラスタリングにより生成されたクラスタの各々に含まれるブロックを一括して圧縮し、前記第１のクラスタリングにより生成され且つ前記第２のクラスタリングにより生成されたクラスタには含まれていないクラスタの各々に含まれるブロックを一括して圧縮し、前記所定の条件を満たさないクラスタの各々に含まれるブロックを一括して圧縮する、
付記２記載の情報処理装置。
【０１２８】
（付記４）
前記分割部は、
前記データの分割により生成される部分の数と、前記データのサイズと、前記ブロックのサイズと、前記類似度の算出にかかる時間とに基づき算出されるスループットが目標のスループット以上になるように、前記データの分割により生成される部分の数を決定する、
付記１乃至３のいずれか１つ記載の情報処理装置。
【０１２９】
（付記５）
前記分割部は、
同じ論理ボリュームに書き込まれるブロックが同じ部分に含まれるように前記データを分割する、
付記１乃至３のいずれか１つ記載の情報処理装置。
【０１３０】
（付記６）
前記分割部は、
書き込み元が同じであるブロックが同じ部分に含まれるように前記データを分割する、
付記１乃至３のいずれか１つ記載の情報処理装置。
【０１３１】
（付記７）
前記第１実行部は、
前記部分に含まれるブロックのペアのうち類似度が閾値以上であるペアからクラスタを生成する方法又は類似度を用いたＫ平均法に基づき前記第１のクラスタリングを実行する、
付記１乃至６のいずれか１つ記載の情報処理装置。
【０１３２】
（付記８）
前記第１実行部は、
前記部分に含まれるブロックのうち他のブロックに対する類似度が所定値以下であるという条件を満たすブロックを、前記第１のクラスタリングの対象から除外する、
付記１乃至７のいずれか１つ記載の情報処理装置。
【０１３３】
（付記９）
前記決定部は、
前記第１のクラスタリングの対象から除外されたブロックを個別に圧縮する、
付記８記載の情報処理装置。
【０１３４】
（付記１０）
サンプルデータに対するクラスタリングによって生成されるクラスタのブロック数の平均値が、ストレージデバイスからの読み込みに係るレイテンシについての要件を表す数値に前記ストレージデバイスからの読み込み速度を掛けた値をブロックサイズで割った値になるように、前記所定値を算出する算出部
をさらに有する付記９記載の情報処理装置。
【０１３５】
（付記１１）
前記所定の条件は、クラスタに含まれるブロックについての書き込み先の論理アドレスの最大値と最小値との差が当該クラスタに含まれるブロックの数の所定倍以下であるという条件、又は、当該クラスタに含まれるブロックについての書き込みアクセスの間隔の分散が所定間隔以下であるという条件である、
付記２記載の情報処理装置。
【０１３６】
（付記１２）
前記第２実行部は、
前記第２のクラスタリングにより生成された複数のクラスタのうち前記所定の条件を満たすクラスタの各々から１つのブロックを抽出し、抽出された複数のブロック間の類似度に基づき、前記所定の条件を満たすクラスタに対する前記第２のクラスタリングを実行する、
付記２記載の情報処理装置。
【０１３７】
（付記１３）
前記第１実行部は、
前記部分に含まれるブロックの各々からハッシュ値を算出し、算出された当該ハッシュ値間の類似度に基づき前記部分に対する前記第１のクラスタリングを実行する、
付記１記載の情報処理装置。
【０１３８】
（付記１４）
コンピュータに、
複数のブロックを含むデータを分割し、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行し、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
処理を実行させるプログラム。
【０１３９】
（付記１５）
コンピュータが、
複数のブロックを含むデータを分割し、
前記データの分割により生成された各部分について、当該部分に含まれるブロックに対する第１のクラスタリングを、当該部分に含まれるブロック間の類似度に基づき実行し、
各部分に対する前記第１のクラスタリングの結果に基づき、前記複数のブロックのうち一括して圧縮されるブロックを決定する、
処理を実行する情報処理方法。
【符号の説明】
【０１４０】
１  ストレージシステム    ３ａ，３ｂ，３ｃ  ホスト装置
３０ａ，３０ｂ，３０ｃ  ＶＭ  ５  ネットワーク
１０  ＣＰＵ    １１  メモリ
１２  ＳＳＤ    １３  ＮＩＣ
１４  バス
１０１  重複排除部    １０２  キャッシュ領域
１０３  圧縮部    １０４  データ保存領域
１０３１  分割部    １０３３  パラメータ算出部
１０３５  第１クラスタリング部    １０３７  第２クラスタリング部
１０３９  書き込み部
３５  ＣＰＵ    ３１  メモリ
３２  ＨＤＤ    ３３  ＮＩＣ
３４  バス
【図１】
2019046023.tif 000003
【図２】
2019046023.tif 000004
【図３】
2019046023.tif 000005
【図４】
2019046023.tif 000006
【図５】
2019046023.tif 000007
【図６】
2019046023.tif 000008
【図７】
2019046023.tif 000009
【図８】
2019046023.tif 000010
【図９】
2019046023.tif 000011
【図１０】
2019046023.tif 000012
【図１１】
2019046023.tif 000013
【図１２】
2019046023.tif 000014
【図１３】
2019046023.tif 000015
【図１４】
2019046023.tif 000016
【図１５】
2019046023.tif 000017
【図１６】
2019046023.tif 000018
【図１７】
2019046023.tif 000019
【図１８】
2019046023.tif 000020