図面 (/)

技術 ストレージ制御装置、及びプログラム

出願人 富士通株式会社
発明者 長嶋克彦
出願日 2015年6月15日 (5年11ヶ月経過) 出願番号 2015-119870
公開日 2017年1月5日 (4年5ヶ月経過) 公開番号 2017-004399
状態 特許登録済
技術分野 エラーの検出訂正 エラー時の再試行 ハードウェアの冗長性 外部記憶装置との入出力 検索装置 計算機におけるファイル管理
主要キーワード 容量効率 重複除去 書込み条件 読み出し頻度 符号付きデータ 書込み済み 接続アダプタ 読み書き速度
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年1月5日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

信頼性を低下させずに記憶装置容量効率を高めること。

解決手段

書込みの対象となる対象データD0、…、D2に、該対象データD0、…、D2に基づく誤り検出符号及び第1の書込み先に関する情報を含む第1の符号情報C0、…、C3を付した第1の符号付きデータCD00、…、CD23を取得し、各第1の符号付きデータCD00、…、CD23から第1の符号情報C0、…、C3を除外して対象データD0、…、D2を取得し、該対象データD0、…、D2の重複を排除して、残った対象データD0、D1、D2について誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報C4、C5、C6を生成し、第2の符号情報C4、C5、C6を含む第2の符号付きデータCD04、CD15、CD26を記憶装置20に書き込ませるストレージ制御装置10が提供される。

概要

背景

近年、RAID(Redundant Arrays of Inexpensive Disks)技術などを用いて複数のHDD(Hard Disk Drive)やSSD(Solid State Drive)を冗長化構成とし、データの信頼性向上及び大容量化を実現したストレージシステムが広く利用されている。また、データの信頼性を向上させるために、HDDやSSDなどの記憶装置に書き込まれるデータに誤り検出符号(例えば、CRC(Cyclic Redundancy Check)符号)を付加することも行われている。こうした技術によりストレージシステムの信頼性が維持されている。

ところで、技術発展に伴って記憶装置の容量も増大してはいるが、ユーザが利用するデータの量も急速に増大している。そのため、記憶装置に書き込むデータの量を削減する技術が研究されている。その1つとして、重複排除と呼ばれる技術が開発された。この技術は、記憶装置に書き込まれるデータや既に記憶装置に書込み済みのデータの中で内容が重複する複数のデータ部分(チャンク)を特定し、特定した1つのチャンクを残し、これと内容が重複する他のチャンクを除去する技術である。

他のチャンクを除去する際、ストレージシステムは、残したチャンクと他のチャンクとの関係を示す情報(リパースポイント)を生成する。そして、他のチャンクに対する読み出し要求を受けた場合、ストレージシステムは、リパースポイントに基づいて、残したチャンクを特定し、特定したチャンクを用いて応答処理を実行する。この重複排除を適用することで、記憶装置の容量を効率的に利用することができる。また、SSDのように書き換え回数に制限がある記憶装置については、書き換え回数の低減に寄与する。

上記のように、データの信頼性を向上させるため、記憶装置に書き込まれるデータにはCRC符号とデータの書込み先を示す情報とを含むチェックコードが付加されることがある。このようなチェックコード付きのデータについて重複排除を行う技術として、データからチェックコードを分離して重複排除を実施し、重複排除後のデータに、重複排除前に分離したチェックコードを連結して記憶装置に書き込む技術が提案されている。

なお、CRC符号に関し、圧縮前のデータからCRC符号を生成し、このCRC符号と、圧縮後のデータにダミー符号を付加したデータから生成されるCRC符号とが一致するようにダミー符号を生成する技術が提案されている。この技術では、圧縮後のデータと共に、ダミー符号及び圧縮前のデータから生成したCRC符号が記憶装置に書き込まれる。

概要

信頼性を低下させずに記憶装置の容量効率を高めること。書込みの対象となる対象データD0、…、D2に、該対象データD0、…、D2に基づく誤り検出符号及び第1の書込み先に関する情報を含む第1の符号情報C0、…、C3を付した第1の符号付きデータCD00、…、CD23を取得し、各第1の符号付きデータCD00、…、CD23から第1の符号情報C0、…、C3を除外して対象データD0、…、D2を取得し、該対象データD0、…、D2の重複を排除して、残った対象データD0、D1、D2について誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報C4、C5、C6を生成し、第2の符号情報C4、C5、C6を含む第2の符号付きデータCD04、CD15、CD26を記憶装置20に書き込ませるストレージ制御装置10が提供される。

目的

第1実施形態は、誤り検出に用いる符号情報が付加されたデータの重複排除に関し、重複排除後のデータに対する信頼性を高めたストレージシステムを提供する

効果

実績

技術文献被引用数
0件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

書込みの対象となる対象データに、該対象データに基づく誤り検出符号及び第1の書込み先に関する情報を含む第1の符号情報を付した第1の符号付きデータを複数取得し、前記各第1の符号付きデータから前記第1の符号情報を除外して前記対象データを取得し、該対象データの重複を排除して、残った前記対象データについて誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報を生成し、前記第2の符号情報を含む第2の符号付きデータを記憶装置に書き込ませる制御部を有する、ストレージ制御装置

請求項2

前記第1の符号情報が格納される記憶部をさらに有し、前記制御部は、前記第1の符号付きデータから除外した前記第1の符号情報を前記記憶部に格納しておき、読み出し処理に際し、前記記憶装置から読み出された前記第2の符号付きデータに基づいて前記第1の符号付きデータを復元するとき、前記記憶部に格納されている前記第1の符号情報を利用する請求項1に記載のストレージ制御装置。

請求項3

前記制御部は、重複を排除して残った前記対象データのそれぞれについて、該対象データを圧縮した圧縮データを所定サイズ毎に分割して分割データを生成し、所定サイズより小さい前記分割データには所定のデータを付加して前記所定サイズとなるようにサイズを調整し、該分割データに基づいて前記第2の符号情報を生成する請求項1又は2に記載のストレージ制御装置。

請求項4

コンピュータに、書込みの対象となる対象データに、該対象データに基づく誤り検出符号及び第1の書込み先に関する情報を含む第1の符号情報を付した第1の符号付きデータを複数取得し、前記各第1の符号付きデータから前記第1の符号情報を除外して前記対象データを取得し、該対象データの重複を排除して、残った前記対象データについて誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報を生成し、前記第2の符号情報を含む第2の符号付きデータを記憶装置に書き込ませる処理を実行させる、プログラム

技術分野

0001

本発明は、ストレージ制御装置、及びプログラムに関する。

背景技術

0002

近年、RAID(Redundant Arrays of Inexpensive Disks)技術などを用いて複数のHDD(Hard Disk Drive)やSSD(Solid State Drive)を冗長化構成とし、データの信頼性向上及び大容量化を実現したストレージシステムが広く利用されている。また、データの信頼性を向上させるために、HDDやSSDなどの記憶装置に書き込まれるデータに誤り検出符号(例えば、CRC(Cyclic Redundancy Check)符号)を付加することも行われている。こうした技術によりストレージシステムの信頼性が維持されている。

0003

ところで、技術発展に伴って記憶装置の容量も増大してはいるが、ユーザが利用するデータの量も急速に増大している。そのため、記憶装置に書き込むデータの量を削減する技術が研究されている。その1つとして、重複排除と呼ばれる技術が開発された。この技術は、記憶装置に書き込まれるデータや既に記憶装置に書込み済みのデータの中で内容が重複する複数のデータ部分(チャンク)を特定し、特定した1つのチャンクを残し、これと内容が重複する他のチャンクを除去する技術である。

0004

他のチャンクを除去する際、ストレージシステムは、残したチャンクと他のチャンクとの関係を示す情報(リパースポイント)を生成する。そして、他のチャンクに対する読み出し要求を受けた場合、ストレージシステムは、リパースポイントに基づいて、残したチャンクを特定し、特定したチャンクを用いて応答処理を実行する。この重複排除を適用することで、記憶装置の容量を効率的に利用することができる。また、SSDのように書き換え回数に制限がある記憶装置については、書き換え回数の低減に寄与する。

0005

上記のように、データの信頼性を向上させるため、記憶装置に書き込まれるデータにはCRC符号とデータの書込み先を示す情報とを含むチェックコードが付加されることがある。このようなチェックコード付きのデータについて重複排除を行う技術として、データからチェックコードを分離して重複排除を実施し、重複排除後のデータに、重複排除前に分離したチェックコードを連結して記憶装置に書き込む技術が提案されている。

0006

なお、CRC符号に関し、圧縮前のデータからCRC符号を生成し、このCRC符号と、圧縮後のデータにダミー符号を付加したデータから生成されるCRC符号とが一致するようにダミー符号を生成する技術が提案されている。この技術では、圧縮後のデータと共に、ダミー符号及び圧縮前のデータから生成したCRC符号が記憶装置に書き込まれる。

先行技術

0007

特表2013−532853号公報
特開平8−116274号公報

発明が解決しようとする課題

0008

同じデータから生成したCRC符号は同じ値をとるが、チェックコードには、そのデータの書込み先に関する情報が含まれる。データの内容が同じでも書込み先は異なることが多いため、チェックコードを含めて重複排除をすると、除去できるデータが少なくなる。そのため、記憶領域の利用効率を高める上で、チェックコードを分離してから重複排除を実施する方法は有効である。

0009

但し、重複排除後に残ったデータは圧縮してから記憶装置に書き込まれうる。この場合、重複排除の際に分離したチェックコードを圧縮後のデータに連結して記憶装置に書き込んでも、そのチェックコードを圧縮後のデータに生じた誤りの判定に利用できないため、信頼性が低下してしまう。一方、上述したダミー符号の生成方法に係る技術は重複排除を全く考慮していない。

0010

そのため、圧縮に限らず、重複排除後のデータにストレージシステムで何らかの変更が加えられうる場合には、変更後のデータについて信頼性を保証する仕組みを設けることがストレージシステムの信頼性を維持する上で有効である。

0011

本開示の一態様によれば、信頼性を低下させずに記憶装置の容量効率を高めることが可能なストレージ制御装置、及びプログラムが提供される。

課題を解決するための手段

0012

一態様によれば、書込みの対象となる対象データに、該対象データに基づく誤り検出符号及び第1の書込み先に関する情報を含む第1の符号情報を付した第1の符号付きデータを複数取得し、各第1の符号付きデータから第1の符号情報を除外して対象データを取得し、該対象データの重複を排除して、残った対象データについて誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報を生成し、第2の符号情報を含む第2の符号付きデータを記憶装置に書き込ませる制御部を有する、ストレージ制御装置が提供される。

発明の効果

0013

本発明によれば、信頼性を低下させずに記憶装置の容量効率を高めることができる。

図面の簡単な説明

0014

第1実施形態に係るストレージ制御装置の一例を示した図である。
重複排除について説明するための図である。
チェックコードについて説明するための図である。
重複排除の効率について説明するための図である。
第2実施形態に係るストレージシステムの一例を示した図である。
第2実施形態に係るコントローラの機能の一例を示した図である。
第2実施形態に係るストレージ制御装置による書込み処理の一例を示した図である。
第2実施形態に係るストレージ制御装置による書込み処理の一変形例を示した第1の図である。
第2実施形態に係るストレージ制御装置による書込み処理の一変形例を示した第2の図である。
第2実施形態に係るストレージシステムにおけるデータの書込みについて、処理の流れを示したシーケンス図である。
第2実施形態に係るコントローラによる重複排除・圧縮処理の流れを示したフロー図である。
第2実施形態に係るコントローラによるチェックコード(Code(P))の付加処理の流れを示したフロー図である。
第2実施形態に係るストレージシステムにおける読み出しについて、処理の流れを示したシーケンス図である。

実施例

0015

以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。

0016

<1.第1実施形態>
図1を参照しながら、第1実施形態について説明する。図1は、第1実施形態に係るストレージ制御装置の一例を示した図である。第1実施形態は、誤り検出に用いる符号情報が付加されたデータの重複排除に関し、重複排除後のデータに対する信頼性を高めたストレージシステムを提供する。

0017

図1に示したストレージ制御装置10は、第1実施形態に係るストレージ制御装置の一例である。ストレージ制御装置10及び記憶装置20は、サーバなどのホストコンピュータ(非図示)から受けた読み書き命令に応じて記憶装置20に対するデータの読み書きを実施するストレージ装置として動作する。このストレージ装置とホストコンピュータとを含めてストレージシステムと称する場合がある。

0018

図1に示すように、ストレージ制御装置10は、制御部11及び記憶部12を有する。ストレージ制御装置10は、記憶装置20に接続されている。記憶装置20は、例えば、HDDやSSDである。記憶装置20は、複数のHDDやSSDを組み合わせ、RAID技術によって冗長化したディスクアレイであってもよい。

0019

制御部11は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、制御部11は、ASIC(Application Specific IntegratedCircuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。制御部11は、例えば、記憶部12又は他のメモリに記憶されたプログラムを実行する。記憶部12は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDDやフラッシュメモリなどの不揮発性記憶装置である。

0020

制御部11は、第1の符号付きデータCD00、CD11、CD02、CD23を取得する。第1の符号付きデータCD00、CD11、CD02、CD23は、(ii)に示すように、書込みの対象となる対象データD0、D1、D0、D2に、それぞれ第1の符号情報C0、C1、C2、C3を付したデータである。

0021

第1の符号情報C0、C1、C2、C3は、(i)に示すように、それぞれ対象データD0、D1、D0、D2に基づく誤り検出符号及び第1の書込み先に関する情報を含む。第1の符号情報C0は、誤り検出符号Ch0と第1の書込み先に関する情報ID0とを含む。

0022

誤り検出符号Ch0は、対象データD0から計算されたCRC符号である。第1の書込み先に関する情報ID0は、対象データD0が書き込まれる論理ユニット(LU:Logical Unit)の位置を特定するための情報を含む。例えば、第1の書込み先に関する情報ID0は、対象データD0が書き込まれる論理領域先頭アドレスオフセット値を含む。なお、第1の符号情報C0と同様に、第1の符号情報C1、C2、C3も、それぞれ対象データD1、D2、D3に関する誤り検出符号と第1の書込み先に関する情報とを含む。

0023

制御部11は、(iii)に示すように、各第1の符号付きデータCD00、CD11、CD02、CD23から第1の符号情報C0、C1、C2、C3を除外して対象データD0、D1、D0、D2を取得する。なお、制御部11は、(iv)に示すように、第1の符号付きデータCD00、CD11、CD02、CD23から除外した第1の符号情報C0、C1、C2、C3を記憶部12に格納しておいてもよい。

0024

制御部11は、対象データD0、D1、D0、D2の重複を排除する。図1の例では、第1の符号付きデータCD00、CD02から取得された2つの対象データD0が重複しているため、制御部11は、一方を残して他方を排除(削除)する。したがって、図1の例では、(v)に示すように、対象データD0、D1、D2だけが残る。

0025

制御部11は、残った対象データD0、D1、D2について誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報C4、C5、C6を生成する。例えば、制御部11は、対象データD0、D1、D2をそれぞれ圧縮して圧縮後のデータD0c、D1c、D2cを生成し、圧縮後のデータD0c、D1c、D2cのそれぞれから誤り検出符号を計算する。そして、制御部11は、計算した誤り検出符号及び第2の書込み先に関する情報を含む第2の符号情報C4、C5、C6を生成する。第2の書込み先に関する情報は、圧縮後のデータD0c、D1c、D2cが書き込まれる記憶装置20の書込み位置を特定するための情報(例えば、物理アドレスなど)を含む。例えば、第2の書込み先に関する情報は、圧縮後のデータD0c、D1c、D2cが書き込まれる物理領域の先頭アドレスやオフセット値を含む。なお、記憶装置20が複数のHDDを組み合わせたRAID装置である場合、第2の書込み先に関する情報としては、HDDのスロット番号とHDDのLBA(Logical Block Addressing)とを組み合わせた情報を適用することができる。

0026

制御部11は、第1の符号情報C0、C1、C2、C3とは独立して生成した第2の符号情報C4、C5、C6を圧縮後のデータD0c、D1c、D2cに付加して第2の符号付きデータCD04、CD15、CD26を生成する。そして、制御部11は、(vi)に示すように、第2の符号付きデータCD04、CD15、CD26を記憶装置20に書き込む。

0027

上記のように、重複排除の前に第1の符号付きデータから第1の符号情報を排除し、対象データを対象に重複排除することで効率的にデータの重複を排除することができる。また、重複排除後の対象データについて新たに第2の符号情報を生成し、この第2の符号情報を付加した第2の符号付きデータを記憶装置20に書き込むことで、記憶装置20から読み出したデータの正誤チェックすることが可能になる。その結果、ストレージシステムの信頼性を低下させることなく、効率的な重複排除によって記憶装置20の容量効率を高めることができる。

0028

なお、図1の例では、重複排除後の対象データを圧縮しているが、一部の対象データだけが圧縮される場合や、圧縮以外の処理により対象データの内容に変更が加えられる場合に対しても同様に第1実施形態の技術を応用することができる。つまり、第1の符号情報と無相関に第2の符号情報が生成されるため、第1の符号情報で対象データの正しさが保証されなくなるような変更が対象データに加えられる場合でも、記憶装置20に書き込まれたデータの誤りを検出することができる。

0029

以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。第2実施形態は、CRCを含むチェックコードが付加されたデータの重複排除に関し、重複排除後のデータに対する信頼性を高めたストレージシステムを提供する。

0030

(重複排除の効率について)
図2に示すように、重複排除とは、内容が同じデータが複数存在する場合に、1つのデータを残して同じ内容のデータを消去する技術である。なお、図2は、重複排除について説明するための図である。一例として、図2(A)には、Data0、Data1、Data0、Data2、Data3を含む元データを示した。この例では、左側から1番目と3番目が同じData0であるから、図2(B)に示すように、一方のData0を残して他方のData0が重複排除により消去される。

0031

重複排除により消去されたData0については、残されたData0の格納場所を示す情報などを含む復元情報が生成される。この復元情報は、リパースポイントと呼ばれることがある。重複排除後のデータから元データを復元する場合、復元情報に基づいて残されたData0が取得され、消去されたData0の代わりに復元に利用される。重複排除を利用することで、データ量を削減することができ、データが格納される記憶領域の容量を効率的に利用できるようになる。

0032

ところで、ストレージシステムでは、データの信頼性を高めるためにデータにチェックコードが付加される。チェックコードは、例えば、図3のような構造を有する。図3は、チェックコードについて説明するための図である。図3に示すように、チェックコードには、データの誤り検出に用いるCRC符号と、データの格納場所に関する位置情報とが含まれる。CRC符号はデータに基づいて計算される。位置情報は、例えば、データの格納場所となるLUの先頭アドレス及びオフセットなどで表現される。

0033

データの内容が同じであればCRC符号も同じ値をとる。一方、重複排除の対象となるデータについて、内容が同じデータ同士であっても、多くの場合には格納場所が異なることが多い。そのため、図4に示すように、チェックコードを付加したデータを対象に重複排除を実施しようとすると、チェックコードの位置情報が異なるために消去できないデータの割合が増えてしまう。図4は、重複排除の効率について説明するための図である。

0034

図4の例では、元データに対してチェックコードC0、C1、C2、C3、C4、C5が付加されている。チェックコードC0、C3が互いに異なる位置情報を含む場合、Data0が共通していても重複排除による一方の消去は行われない。しかし、チェックコードを外すとデータの信頼性が低下するため、チェックコードによる信頼性の維持と、重複除去による記憶領域の効率向上とを両立させる工夫が求められる。第2実施形態は、これら2つの要求を両立することができるストレージシステムを提供する。

0035

[2−1.ストレージシステム]
図5を参照しながら、第2実施形態に係るストレージシステムについて説明する。図5は、第2実施形態に係るストレージシステムの一例を示した図である。

0036

図5に示すように、第2実施形態に係るストレージシステムは、サーバ50、ストレージ制御装置100、及びディスク200を含む。ストレージ制御装置100及びディスク200は、サーバ50が利用するデータを格納するストレージ装置として機能する。

0037

なお、ここでは説明の都合上、「ディスク」と表現するが、SSDなどの半導体記憶装置を含む回転機構を有しない記憶装置をディスク200として、又はディスク200の一部として利用してもよい。ディスク200は、複数のHDDやSSDなどを組み合わせたディスクアレイであってもよい。サーバ50、ストレージ制御装置100、ディスク200は、例えば、LAN(Local Area Network)やFC(Fibre Channel)などの通信回線により接続される。

0038

サーバ50は、CPUなどのプロセッサ、RAMなどの揮発性メモリ、及びHDDやSSDなどの不揮発性メモリを有するコンピュータである。サーバ50は、例えば、プロセッサ及び揮発性メモリなどにより、不揮発性メモリに格納されたアプリケーションプログラムに規定された処理を実行する。サーバ50は、ストレージ制御装置100に対し、データの書込み処理及びデータの読み出し処理を指示する。ストレージ制御装置100は、サーバ50から受けた読み書き要求に応じてディスク200に対するデータの読み書きを制御する。

0039

ハードウェア
ここで、ストレージ制御装置100のハードウェアについて説明する。
図5に示すように、ストレージ制御装置100は、メモリ101、チャネルアダプタ102、コントローラ103、及びディスクアダプタ104を有する。以下、チャネルアダプタ102をCA、コントローラ103をCM、ディスクアダプタ104をDAと表記する場合がある。

0040

メモリ101は、ディスク200に比べて読み書き速度が速いデバイスである。メモリ101は、バッファ101aとして機能する記憶領域と、キャッシュ101bとして機能する記憶領域とを有する。バッファ101aには、サーバ50からチャネルアダプタ102が受信したデータ、及びチャネルアダプタ102からサーバ50へ送信されるデータが一時的に格納される。キャッシュ101bには、ディスク200に書き込まれるデータが一時的に格納される。なお、バッファ101aとして用いるメモリと、キャッシュ101bとして用いるメモリとを別体としてもよい。

0041

チャネルアダプタ102は、サーバ50との間でデータや制御信号やりとりする通信アダプタである。また、チャネルアダプタ102は、CRC符号の計算などの演算を実行可能なCPUを有する。コントローラ103は、ストレージ制御装置100の動作を制御するプログラムなどの処理を実行可能なCPU及びRAMを有する。ディスクアダプタ104は、ディスク200と接続する接続アダプタである。また、ディスクアダプタ104は、CRC符号のチェック計算などの演算を実行可能なCPUを有する。

0042

[2−2.機能]
次に、チャネルアダプタ102、コントローラ103、及びディスクアダプタ104の機能について説明する。

0043

(2−2−1.チャネルアダプタ102の機能)
まず、チャネルアダプタ102の機能について説明する。
書込み時
チャネルアダプタ102は、サーバ50から受信したデータに基づいてCRC符号を生成する。また、チャネルアダプタ102は、生成したCRC符号と、データの書込み先に関する位置情報とを含むチェックコードをデータに付加する。そして、チャネルアダプタ102は、チェックコードを付加したデータをバッファ101aに格納する。以下、バッファ101aに格納されたデータに付加されるチェックコードをCode(L)、Code(L)に含まれるCRC符号をCRC(L)と表記する場合がある。なお、Code(L)は、サーバ50がデータに付加してもよい。

0044

(読み出し時)
チャネルアダプタ102は、Code(L)が付加されたデータをバッファ101aから読み出し、Code(L)に含まれるCRC(L)を用いてデータの誤り検出を実施する。誤りが検出されなかった場合、チャネルアダプタ102は、データからCode(L)を除去し、データをサーバ50へ送信する。誤りが検出された場合、チャネルアダプタ102は、データの読み出しエラーをサーバ50へ通知する。

0045

以上、チャネルアダプタ102の機能について説明した。
(2−2−2.コントローラ103の機能)
次に、図6を参照しながら、コントローラ103の機能について説明する。図6は、第2実施形態に係るコントローラの機能の一例を示した図である。

0046

図6に示すように、コントローラ103は、記憶部131、R/W制御部132、チェックコード管理部133、及び重複排除・圧縮処理部134を有する。なお、記憶部131の機能は、RAMやHDDなどを用いて実現できる。R/W制御部132、チェックコード管理部133、及び重複排除・圧縮処理部134の機能は、CPUなどを用いて実現できる。

0047

記憶部131には、コード情報131a、及び復元情報131bが格納される。コード情報131aは、バッファ101aから読み出したデータに付加されているCode(L)、及びCode(L)とデータとの関係を特定する情報を含む。復元情報131bは、重複排除により除外したデータと同じ内容の残したデータを特定する情報である。R/W制御部132は、ディスクアダプタ104を介してディスク200に対するデータの読み書き処理を制御する。

0048

(書込み時)
チェックコード管理部133は、バッファ101aからCode(L)が付加されたデータを読み出し、Code(L)に含まれるCRC(L)を用いてデータの誤り検出を実施する。

0049

誤りが検出された場合、チェックコード管理部133は、チャネルアダプタ102を介してサーバ50に書込みエラーを通知する。誤りが検出されなかった場合、チェックコード管理部133は、データからCode(L)を除去し、除去したCode(L)をコード情報131aとして記憶部131に格納する。チェックコード管理部133は、Code(L)を除去したデータを重複排除・圧縮処理部134に入力する。

0050

重複排除・圧縮処理部134は、チェックコード管理部133から入力されたデータの重複排除を実施する(図2を参照)。重複排除の方法としては、例えば、バッファ101aから読み出されたデータの集合を対象にする方法や、バッファ101aのデータ、キャッシュ101bのデータ及びディスク200のデータを含むデータの集合を対象にする方法を適用しうる。

0051

重複排除・圧縮処理部134は、重複排除後に残ったデータを圧縮して圧縮データを生成する。そして、重複排除・圧縮処理部134は、圧縮データを単位サイズ分割データに分割し、分割データに基づくCRC符号を計算する。また、重複排除・圧縮処理部134は、計算したCRC符号と分割データの書込み先に関する位置情報とを含むチェックコードを生成する。以下、重複排除・圧縮処理部134が計算したCRC符号をCRC(P)、CRC(P)を含むチェックコードをCode(P)と表記する場合がある。

0052

なお、Code(P)に含まれる書込み先に関する位置情報は、分割データが書き込まれるディスク200上の位置を特定するための情報を含む。例えば、この位置情報は、ディスク200の物理領域における書込み先の先頭アドレスとオフセットとを含む。つまり、Code(L)に含まれる位置情報と、Code(P)に含まれる位置情報とは異なる。

0053

重複排除・圧縮処理部134は、生成したCode(P)を分割データに付加する。そして、重複排除・圧縮処理部134は、Code(P)を付加した分割データをキャッシュ101bに書き込む。そして、重複排除・圧縮処理部134は、チャネルアダプタ102を介してデータの書込み完了をサーバ50へと通知する。なお、データの書込み完了を通知するタイミングは、ディスク200への書込みが完了した時点であってもよい。

0054

(読み出し時)
サーバ50からコントローラ103がデータの読み出し要求(READ要求)を受けると、重複排除・圧縮処理部134は、キャッシュ101b及び/又はディスク200から読み出す分割データを特定する。READ要求で指定されたデータが書込み時に重複排除されている場合、重複排除・圧縮処理部134は、復元情報131bを参照し、復元に用いるデータの分割データを全て特定する。

0055

特定した分割データがキャッシュ101bにある場合、重複排除・圧縮処理部134は、特定した分割データをキャッシュ101bから読み出す。
特定した分割データがディスク200にある場合、重複排除・圧縮処理部134は、R/W制御部132を介して、特定した分割データをディスク200から読み出す。このとき、ディスク200から読み出した分割データのエラーがディスクアダプタ104から通知される場合がある。この場合、重複排除・圧縮処理部134は、チャネルアダプタ102を介してサーバ50に読み出しエラーを通知する。

0056

特定した分割データが全て正常に読み出せた場合、重複排除・圧縮処理部134は、読み出した分割データに付加されているCode(P)からCRC(P)を取得し、分割データの誤り検出を実施する。

0057

誤りが検出された場合、重複排除・圧縮処理部134は、チャネルアダプタ102を介してサーバ50に読み出しエラーを通知する。誤りが検出されなかった場合、重複排除・圧縮処理部134は、分割データからCode(P)を除去する。そして、重複排除・圧縮処理部134は、分割データを結合して圧縮データを復元すると共に圧縮データを伸張し、復元情報131bに基づいて重複排除前のデータを復元する。

0058

チェックコード管理部133は、コード情報131aとして記憶部131に格納しておいたCode(L)を取得し、重複排除・圧縮処理部134が復元したデータに付加する。そして、チェックコード管理部133は、Code(L)を付加したデータをバッファ101aに書き込む。

0059

以上、コントローラ103の機能について説明した。
(2−2−3.ディスクアダプタ104の機能)
次に、ディスクアダプタ104の機能について説明する。

0060

(書込み時)
ディスクアダプタ104は、所定の書込み条件充足した場合に、キャッシュ101bからCode(P)が付加されたデータを読み出す。書込み条件は、例えば、キャッシュ101bにデータが書き込まれてから経過した時間が所定の閾値を超えたことや、キャッシュ101bの空き容量が所定容量以下となったことなどである。

0061

ディスクアダプタ104は、キャッシュ101bから読み出したデータに付加されているCode(P)からCRC(P)を取得する。そして、ディスクアダプタ104は、取得したCRC(P)に基づいてデータの誤り検出を実施する。誤りが検出されなかった場合、ディスクアダプタ104は、Code(P)が付加されたデータをディスク200に書き込む。誤りが検出された場合、ディスクアダプタ104は、キャッシュ101bから読み出したデータのエラーをコントローラ103へ通知する。

0062

(読み出し時)
ディスクアダプタ104は、ディスク200からCode(P)が付加されたデータを読み出す。ディスクアダプタ104は、読み出したデータに付加されたCode(P)に含まれるCRC(P)を取得する。そして、ディスクアダプタ104は、取得したCRC(P)に基づいてデータの誤り検出を実施する。誤りが検出されなかった場合、ディスクアダプタ104は、Code(P)が付加されたデータをキャッシュ101bに書き込む。誤りが検出された場合、ディスクアダプタ104は、読み出したデータのエラーをコントローラ103へ通知する。

0063

以上、ディスクアダプタ104の機能について説明した。
(2−2−4.書込み処理#1)
ここで、図7を参照しながら、データの書込み時におけるチェックコードの管理に係る処理の内容について、さらに説明する。図7は、第2実施形態に係るストレージ制御装置による書込み処理の一例を示した図である。

0064

図7(A)の例において、サーバ50から書込み要求(WRITE要求)と共にチャネルアダプタ102に入力されたデータ(元データ)は、Data0、Data1、Data0、Data2、Data3を含む。この元データは、Data0の部分が重複している。チャネルアダプタ102は、図7(B)に示すように、Data0、Data1、Data0、Data2、Data3にそれぞれチェックコードC0、C1、C2、C3、C4を付加する。C0、C1、C2、C3、C4は、Code(L)の一例である。

0065

上記のように、チェックコードC0、C1、C2、C3、C4が付加されることで、チャネルアダプタ102からコントローラ103までの区間配線回路及びバッファ101aを含む区間)で生じうるデータの誤りを検出可能になる。

0066

次に、コントローラ103のチェックコード管理部133は、図7(C)に示すように、チェック済みのデータからチェックコードC0、C1、C2、C3、C4を分離する。そして、チェックコード管理部133は、分離したチェックコードC0、C1、C2、C3、C4をコード情報131aとして記憶部131に保存する。

0067

次に、コントローラ103の重複排除・圧縮処理部134は、図7(D)に示すように、重複排除を実施する。この例では、Data0の部分が重複しているため、1つの部分を残し、これと内容が重複する他の部分が全て消去される。このとき、重複排除で消去された部分を特定する復元情報131bが生成される(図7(C)を参照)。

0068

次に、重複排除・圧縮処理部134は、図7(E)に示すように、重複排除後に残ったData0、Data1、Data2、Data3をそれぞれ圧縮した圧縮データCmp0、Cmp1、Cmp2、Cmp3を生成する。そして、重複排除・圧縮処理部134は、圧縮データの集合を単位サイズ(この例ではHDD等の物理記憶装置への入出力コマンド規約サイズに対応させた512Byte)毎に分割し、それぞれが単位サイズを有する分割データDiv0、Div1、Div2を生成する。

0069

次に、チェックコード管理部133は、図7(G)に示すように、Div0、Div1、Div2のそれぞれからCRC符号を計算し、計算したCRC符号を含むチェックコードC5、C6、C7を生成する。そして、チェックコード管理部133は、チェックコードC5、C6、C7をそれぞれDiv0、Div1、Div2に付加する。なお、チェックコードC5、C6、C7はCode(P)の一例である。

0070

上記のように、チェックコードC5、C6、C7が付加されることで、コントローラ103からディスク200までの区間(配線や回路及びキャッシュ101bやディスク200を含む区間)で生じうるデータの誤りを検出可能になる。

0071

(2−2−5.書込み処理#2:変形例)
図7の例では、ディスク200に書き込まれるデータの単位サイズを基準に重複排除していたが、図8に示すように、単位サイズより大きなサイズのデータを基準に重複排除してもよい。また、複数の圧縮データが1つの分割データ内で混在(図7(F)を参照)しないように、図9に示すように、該圧縮データ毎に分割データを生成してもよい。ここでは、これらの変形例について説明する。

0072

図8は、第2実施形態に係るストレージ制御装置による書込み処理の一変形例を示した第1の図である。図9は、第2実施形態に係るストレージ制御装置による書込み処理の一変形例を示した第2の図である。

0073

図8の例は、(A)に示すように、Data00、Data01、Data02、Data03を含む2つの元データと、Data10、Data11、Data12、Data13を含む1つの元データとがコントローラ103に入力された場合を示している。つまり、Data00、Data01、Data02、Data03が重複している。

0074

チャネルアダプタ102は、図8(B)に示すように、2組のData00、…、Data03、及びData10、…、Data13のそれぞれについてCRC符号を計算する。そして、チャネルアダプタ102は、計算したCRC符号を含むチェックコードC00、…、C07、C10、…、C13を生成し、2組のData00、…、Data03、及びData10、…、Data13のそれぞれに付加する。なお、C00、…、C07、C10、…、C13は、Code(L)の一例である。

0075

上記のように、チェックコードC00、…、C07、C10、…、C13が付加されることで、チャネルアダプタ102からコントローラ103までの区間(配線や回路及びバッファ101aを含む区間)で生じうるデータの誤りを検出可能になる。

0076

次に、コントローラ103のチェックコード管理部133は、図8(C)に示すように、チェック済みのデータからチェックコードC00、…、C07、C10、…、C13を分離する。そして、チェックコード管理部133は、分離したチェックコードC00、…、C07、C10、…、C13をコード情報131aとして記憶部131に保存する。

0077

次に、コントローラ103の重複排除・圧縮処理部134は、図8(D)に示すように、重複排除を実施する。このとき、重複排除・圧縮処理部134は、単位サイズ(この例では512Byte)より大きいサイズ(この例では2KByte)を基準に重複排除を実施する。図8の例では、合計サイズが2KByteとなるData00、…、Data03の集合が重複しているため、1つの集合を残し、これと内容が重複する他の集合が全て消去される。このとき、重複排除で消去された集合を特定する復元情報131bが生成される(図8(C)を参照)。

0078

次に、重複排除・圧縮処理部134は、図9(E)に示すように、重複排除後に残ったData00、…、Data03の集合、及びData10、…、Data13の集合をそれぞれ集合毎に圧縮した圧縮データCmp0x、Cmp1xを生成する。そして、重複排除・圧縮処理部134は、図9(F)に示すように、圧縮データCmp0x、Cmp1xをそれぞれ単位サイズ(この例では512Byte)毎に分割する。

0079

例えば、図9(F)のように、圧縮データCmp0xを分割データDiv00、Div01、Div02に分割した場合、一部の分割データDiv02が単位サイズよりも小さなサイズになる場合がある。この場合、重複排除・圧縮処理部134は、分割データDiv02にNullデータ(値0のデータ)を追加し、分割データDiv02のサイズが単位サイズとなるようにサイズを調整する。圧縮データCmp1を分割した分割データDiv11についても同様である。

0080

次に、チェックコード管理部133は、図9(G)に示すように、Div00、…、Div02、Div10、Div11のそれぞれからCRCを計算し、計算したCRCを含むチェックコードC1x、…、C5xを生成する。そして、チェックコード管理部133は、チェックコードC1x、…、C5xをそれぞれDiv00、…、Div02、Div10、Div11に付加する。なお、チェックコードC1x、…、C5xはCode(P)の一例である。

0081

上記のように、チェックコードC1x、…、C5xが付加されることで、コントローラ103からディスク200までの区間(配線や回路及びキャッシュ101bやディスク200を含む区間)で生じうるデータの誤りを検出可能になる。また、分割データと、重複排除の対象となる集合との関係が1対1になるため、重複排除前のデータを復元する際に用いるデータの特定及び取得にかかる処理が効率化される。

0082

以上、チャネルアダプタ102、コントローラ103、及びディスクアダプタ104の機能について説明した。
[2−3.処理の流れ]
次に、処理の流れについて説明する。

0083

書込み動作
まず、図10を参照しながら、書込み処理の流れについて説明する。図10は、第2実施形態に係るストレージシステムにおけるデータの書込みについて、処理の流れを示したシーケンス図である。

0084

(S101)チャネルアダプタ102は、サーバ50からWRITE要求を受け付け、WRITE要求で指定されたデータを取得する。
(S102)チャネルアダプタ102は、サーバ50から取得したデータに基づいてCRC符号(CRC(L))を計算し、計算したCRC(L)とデータの書込み先に関する位置情報とを含むチェックコード(Code(L))を生成する。そして、チャネルアダプタ102は、生成したCode(L)をデータに付加する。

0085

(S103、S104)チャネルアダプタ102は、Code(L)を付加したデータをバッファ101aに書き込む。そして、チャネルアダプタ102は、バッファ101aへの書込みが完了した旨の通知をコントローラ103に入力する。

0086

(S105)コントローラ103のチェックコード管理部133は、バッファ101aから、Code(L)が付加された書込み対象のデータを読み出す。
(S106)チェックコード管理部133は、読み出したデータに付加されたCode(L)からCRC(L)を取得する。そして、チェックコード管理部133は、取得したCRC(L)を用いてデータの誤りの有無をチェックする。データに誤りがある場合、チェックコード管理部133は、チャネルアダプタ102を介してサーバ50に書込みエラーを通知し、書込み処理を異常終了する。一方、データに誤りがない場合、処理はS107へと進む。

0087

(S107)チェックコード管理部133は、データからCode(L)を除去し、除去したCode(L)をコード情報131aとして記憶部131に保存する。
(S108)コントローラ103の重複排除・圧縮処理部134は、チェックコード管理部133によりCode(L)が除去されたデータについて重複排除を実施する。

0088

例えば、重複排除・圧縮処理部134は、バッファ101a、キャッシュ101b、及びディスク200にあるデータを参照し、内容が重複するデータが存在する場合には、書込み対象のデータの重複部分を消去する。そして、重複排除・圧縮処理部134は、消去した重複部分と同じ内容のデータを特定するための復元情報131bを生成する。

0089

また、重複排除・圧縮処理部134は、重複排除後に残った書込み対象のデータを圧縮して圧縮データ(例えば、図9(E)を参照)を生成する。そして、重複排除・圧縮処理部134は、圧縮データを単位サイズに分割して分割データ(例えば、図9(F)を参照)を生成する。

0090

(S109)チェックコード管理部133は、分割データに基づいてCRC符号(CRC(P))を計算し、計算したCRC(P)と分割データの書込み先に関する位置情報とを含むチェックコード(Code(P))を生成する。そして、チェックコード管理部133は、生成したCode(P)を分割データに付加する。

0091

(S110、S111)チェックコード管理部133は、Code(P)を付加した分割データをキャッシュ101bに書き込む。そして、チェックコード管理部133は、チャネルアダプタ102を介して、データの書込みが完了した旨の通知をサーバ50に送信する。つまり、キャッシュ101bへの書込みが完了したタイミングで、WRITE要求に対する完了応答がサーバ50に通知される。

0092

(S112)ディスクアダプタ104は、予め設定された書込み条件を充足したか否かを判定する。書込み条件は、例えば、キャッシュ101bにデータが書き込まれてから経過した時間が所定の閾値を超えたことや、キャッシュ101bの空き容量が所定容量以下となったことなどである。書込み条件を充足した場合、処理はS113へと進む。書込み条件を充足していない場合、S112の判定処理が繰り返される。

0093

(S113)ディスクアダプタ104は、ディスク200に書き込むデータをキャッシュ101bから読み出す。
例えば、ディスクアダプタ104は、キャッシュ101bに格納されているデータのうち、書き込まれてから経過した時間が所定の閾値を超えたデータをディスク200に書き込むデータとしてキャッシュ101bから読み出す。また、ディスクアダプタ104は、より古いデータやより読み出し頻度が低いデータから順にディスク200に書き込むデータを選択し、選択したデータをキャッシュ101bから読み出してもよい。

0094

(S114)ディスクアダプタ104は、キャッシュ101bから読み出したデータに付加されているCode(P)からCRC(P)を取得する。そして、ディスクアダプタ104は、取得したCRC(P)を用いてデータの誤りの有無をチェックする。データに誤りがある場合、ディスクアダプタ104は、コントローラ103に書込みエラーを通知する。データに誤りがない場合、処理はS115へと進む。

0095

(S115)ディスクアダプタ104は、Code(P)が付加されているデータをディスク200に書き込む。S115の処理が完了すると、図10に示した一連の処理は正常終了する。なお、ディスク200への書込みが完了したタイミングで、WRITE要求に対する完了通知がサーバ50に通知されるようにしてもよい。

0096

(重複排除・圧縮処理)
ここで、図11を参照しながら、重複排除・圧縮処理について、さらに説明する。図11は、第2実施形態に係るコントローラによる重複排除・圧縮処理の流れを示したフロー図である。

0097

(S121)コントローラ103の重複排除・圧縮処理部134は、バッファ101a内にあるデータの中から重複排除の対象とするデータを1つ選択する。
(S122)重複排除・圧縮処理部134は、S121で選択したデータと比較して重複排除するかを判定するための比較対象となるデータを1つ選択する。例えば、重複排除・圧縮処理部134は、バッファ101a、キャッシュ101b、及びディスク200の中から比較対象のデータを選択する。

0098

(S123)重複排除・圧縮処理部134は、S121、S122で選択した各データのハッシュ値を取得する。なお、重複排除・圧縮処理部134は、データを選択する度にデータからハッシュ値を計算してもよいし、事前に計算したハッシュ値を記憶部131に格納しておき、利用する際に記憶部131から取得してもよい。

0099

(S124)重複排除・圧縮処理部134は、S123で取得した2つのハッシュ値が一致するか否かを判定する。2つのハッシュ値が一致する場合、処理はS126へと進む。ハッシュ値としては、例えば、SHA(Secure Hash Algorithm)−1などを利用することができる。ハッシュ値の一致は、その計算の元となったデータの一致を意味する。一方、2つのハッシュ値が一致しない場合、処理はS125へと進む。

0100

(S125)重複排除・圧縮処理部134は、S122の処理で、比較対象のデータを選択し終えたか否かを判定する。比較対象のデータを選択し終えた場合、処理はS127へと進む。一方、未選択の比較対象のデータが存在する場合、処理はS122へと進む。

0101

(S126)重複排除・圧縮処理部134は、バッファ101a内のデータを除去し、除去したデータと同じ内容のデータを特定する復元情報131bを作成する。例えば、キャッシュ101bやディスク200に格納されているデータを特定する復元情報131bとしては、例えば、そのデータの格納場所を示すアドレスなどを利用できる。また、バッファ101a内のデータを特定する復元情報131bとしては、例えば、そのデータのチェックコードに含まれる位置情報などを利用できる。

0102

(S127)重複排除・圧縮処理部134は、S121の処理で、バッファ101a内のデータを選択し終えたか否かを判定する。バッファ101a内のデータを選択し終えた場合、処理はS128へと進む。一方、バッファ101a内に未選択のデータが存在する場合、処理はS121へと進む。

0103

(S128)重複排除・圧縮処理部134は、重複排除後に残存するバッファ101a内のデータをそれぞれ圧縮し、圧縮データを生成する。S128の処理が完了すると、図11に示した一連の処理は終了する。

0104

(Code(P)の付加)
ここで、図12を参照しながら、Code(P)の付加処理について、さらに説明する。図12は、第2実施形態に係るコントローラによるチェックコード(Code(P))の付加処理の流れを示したフロー図である。

0105

(S131)コントローラ103の重複排除・圧縮処理部134は、圧縮データを1つ選択する。
(S132)重複排除・圧縮処理部134は、S131で選択した圧縮データを単位サイズに分割して分割データを生成する。例えば、重複排除・圧縮処理部134は、図9(F)に示すように、単位サイズに満たない分割データについて、Nullデータ(値0のデータ)を追加して単位サイズとなるようにサイズを調整する(パディング)。

0106

(S133)コントローラ103のチェックコード管理部133は、重複排除・圧縮処理部134が生成した分割データからCRC(P)を計算し、計算したCRC(P)と位置情報とを含むCode(P)を生成する。そして、チェックコード管理部133は、分割データにCode(P)を付加する。

0107

(S134)重複排除・圧縮処理部134は、圧縮データを選択し終えたか否かを判定する。圧縮データを選択し終えた場合、図12に示した一連の処理は終了する。一方、未選択の圧縮データが存在する場合、処理はS131へと進む。

0108

読み出し動作
次に、図13を参照しながら、読み出し処理の流れについて説明する。図13は、第2実施形態に係るストレージシステムにおける読み出しについて、処理の流れを示したシーケンス図である。

0109

(S141)コントローラ103は、チャネルアダプタ102を介してサーバ50からREAD要求を受け付ける。
(S142)コントローラ103の重複排除・圧縮処理部134は、READ要求で指定されたデータを取得するために、キャッシュ101b及び/又はディスク200から読み出す分割データを特定する。

0110

分割データが書込み時に重複排除されている場合、重複排除・圧縮処理部134は、復元情報131bを参照し、復元に用いる分割データを全て特定する。また、重複排除・圧縮処理部134は、特定した分割データがディスク200にある場合、その分割データをディスク200から読み出すようにディスクアダプタ104を制御する(READ制御)。この場合、S143からS146の処理が実行される。

0111

(S143)READ制御を受けたディスクアダプタ104は、重複排除・圧縮処理部134が特定した分割データをディスク200から読み出す。なお、読み出された分割データには、Code(P)が付加されている。

0112

(S144)ディスクアダプタ104は、読み出した分割データに付加されているCode(P)からCRC(P)を取得し、取得したCRC(P)を用いて分割データの誤りの有無をチェックする。

0113

分割データに誤りがある場合、ディスクアダプタ104は、読み出しエラーをコントローラ103に通知する。このエラーを受けたコントローラ103は、READ要求に対する応答として、チャネルアダプタ102を介してサーバ50に読み出しエラーを通知する。この場合、読み出し処理は異常終了となる。一方、分割データに誤りがない場合、処理はS145へと進む。

0114

(S145、S146)ディスクアダプタ104は、Code(P)が付加されている分割データをキャッシュ101bに書き込む。そして、ディスクアダプタ104は、キャッシュ101bへの書込みが完了した旨をコントローラ103に通知する。

0115

(S147)コントローラ103のチェックコード管理部133は、S142で特定した全ての分割データをキャッシュ101bから読み出す。
(S148)チェックコード管理部133は、キャッシュ101bから読み出した各分割データに付加されているCode(P)からCRC(P)を取得し、取得したCRC(P)を用いて各分割データの誤りの有無をチェックする。誤りのある分割データが検出された場合、チェックコード管理部133は、チャネルアダプタ102を介してサーバ50に読み出しエラーを通知する。この場合、読み出し処理は異常終了となる。一方、誤りのある分割データが検出されなかった場合、処理はS149へと進む。

0116

(S149)チェックコード管理部133は、分割データに付加されているCode(P)を除去する。
(S150)重複排除・圧縮処理部134は、分割データを結合して圧縮データを復元し、復元した圧縮データを伸張して重複排除前のデータを復元する。

0117

なお、S142の処理で重複排除前のデータに対応する全ての分割データが特定され、特定された分割データに基づいて圧縮データが得られるため、圧縮データを伸張して得られたデータから、重複排除前のデータを復元できる。Nullデータがパディングされた分割データがある場合には、圧縮データを復元する際にNullデータが除去される。

0118

(S151)チェックコード管理部133は、コード情報131aとして記憶部131に保存されているCode(L)を取得し、復元した重複排除前のデータに付加する。
(S152、S153)チェックコード管理部133は、Code(L)が付加されたデータをバッファ101aに書き込む。そして、チェックコード管理部133は、READ要求で指定されたデータのバッファ101aへの書込み完了をチャネルアダプタ102に通知する。

0119

(S154)チャネルアダプタ102は、バッファ101aに書き込まれたデータに付加されているCode(L)からCRC(L)を取得し、取得したCRC(L)を用いてデータの誤りの有無をチェックする。データに誤りがある場合、チャネルアダプタ102は、読み出しエラーをサーバ50に通知する。この場合、読み出し処理は異常終了となる。一方、データに誤りがない場合、処理はS155へと進む。

0120

(S155、S156)チャネルアダプタ102は、データに付加されているCode(L)を除去し、READ要求に対する応答として、Code(L)が除去されたデータをサーバ50に送信する。S156の処理が完了すると、図13に示した一連の処理は終了する。

0121

以上、処理の流れについて説明した。上記のように、重複排除を考慮してCode(L)及びCode(P)の付加・除去を適切なタイミングで実施することにより、データの信頼性を下げることなく効率的な重複排除を実現することができる。また、Code(L)及びCode(P)という2種類の独立したチェックコードを利用することで、重複排除をしつつ、ストレージ制御装置100及びディスク200においてデータの伝送及び入出力が生じる各区間でのデータの信頼性を維持することができる。

0122

以上、第2実施形態について説明した。

0123

10ストレージ制御装置
11 制御部
12 記憶部
20記憶装置
C0、C1、C2、C3 第1の符号情報
C4、C5、C6 第2の符号情報
D0、D1、D2 対象データ
Ch0誤り検出符号
ID0書込み先に関する情報
CD00、CD11、CD02、CD23 第1の符号付きデータ
CD04、CD15、CD26 第2の符号付きデータ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ