JP2009080696A - ストレージサブシステム及びその制御方法 - Google Patents

ストレージサブシステム及びその制御方法 Download PDF

Info

Publication number
JP2009080696A
JP2009080696A JP2007250139A JP2007250139A JP2009080696A JP 2009080696 A JP2009080696 A JP 2009080696A JP 2007250139 A JP2007250139 A JP 2007250139A JP 2007250139 A JP2007250139 A JP 2007250139A JP 2009080696 A JP2009080696 A JP 2009080696A
Authority
JP
Japan
Prior art keywords
data
logical address
guarantee code
host
block
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.)
Granted
Application number
JP2007250139A
Other languages
English (en)
Other versions
JP5331323B2 (ja
Inventor
Masahiro Arai
政弘 新井
Kentaro Shimada
健太郎 島田
Takahito Nakamura
崇仁 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007250139A priority Critical patent/JP5331323B2/ja
Priority to US12/010,851 priority patent/US8051367B2/en
Priority to EP08250820A priority patent/EP2042980B1/en
Publication of JP2009080696A publication Critical patent/JP2009080696A/ja
Priority to US13/243,435 priority patent/US8209595B2/en
Application granted granted Critical
Publication of JP5331323B2 publication Critical patent/JP5331323B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/0608Saving storage space on storage systems
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1004Adaptive RAID, i.e. RAID system adapts to changing circumstances, e.g. RAID1 becomes RAID5 as disks fill up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】本発明は、保証コードを持つディスクアレイ装置においても、効果的にDe-duplicationによりデータ量の削減を行う制御手段を提供する。
【解決手段】論理データブロックごとに保証コードを付加し、読み出し時にチェックするディスクアレイ装置において、前記ディスクアレイ装置の制御手段は、De-duplicationを実施する機能と、前記De-duplicationを行ってデータを格納する際に、前記保証コードチェック機能向けLA読替え情報ないしデータ読み出し先アドレス読替え情報を生成し、データを読み出す際には前記情報を用いて読み替えを行うことにより、保証コードチェックの誤診断を回避する制御手段を有する。
【選択図】図11

Description

本発明はデータの非重複化(de-duplication)機能を備えたストレージサブシステムとその制御方法に関するものである。
ストレージサブシステムとしてのディスクアレイ装置は、複数の磁気ディスクないし不揮発メモリ等を用いた半導体ディスク(SSD; Solid State Disk)をアレイ状に構成して、ディスクアレイコントローラ配下に置いている。ディスクアレイ装置は、ホストコンピュータからのリード要求(データの読み出し要求)およびライト要求(データの書き込み要求)を複数のディスクを並列に動作させて高速に処理する。
多くのディスクアレイ装置では、ディスクの故障によるデータ損失を防ぐために、RAID(Redundant Array of Inexpensive Disks)と呼ばれるデータ冗長化技術を採用している(例えば、非特許文献1参照)。RAIDは特定のディスクや特定のセクタが故障しデータがディスクから読み出せない障害が発生したとき、有効に機能する。
しかしながら、このような機械的な故障がなく、ディスクアレイコントローラがデータをディスクから読み出すことができるものの、そもそも何らかのトラブルによりディスクの正しいアドレスにデータが書き込まれていなかったり、データそのものが化けたものであるなどの場合の障害には、RAIDでは対処できない。
そこで、このようなデータについての障害に対処するため、一部のディスクアレイ装置は、ホストから論理ボリュームに対する書き込み要求に基づくデータブロックに、保証コードと呼ばれる、データブロックの属性に基づく冗長情報を付加してこれをディスクに格納し、データ読み出しの際に、この冗長情報である保証コードをチェックすることで、既述のデータについての障害を検出しようとしている。
例えば、特許文献1は、データブロックの論理アドレス(LA, Logical Address)値を保証コードとしてデータの内容に付する方法を開示しており、特許文献2では、LA/LRC(LAとLRC(Longitudinal Redundancy Check))を保証コードとして付す形態を開示している。
一方、ディスクへ格納するデータ量を削減する技術としてData De-duplicationと呼ばれるデータの重複を排除する制御技術が知られている。De-duplicationとは、ホストから書き込まれたデータブロックの内容が、先にディスクの別の場所に格納されたデータブロックの内容と同じだった場合、重複データはディスクに書き込まず、同じ内容のデータが格納されているアドレスを参照するようにテーブルやデータベースに記録するにとどめることで、ディスクに格納される総データ量を削減する制御方法である。
例えば、特許文献3では、既に格納されたデータか否かをチェックするモジュールを持ち、データが同一の場合には当該モジュールが当該ブロックのIDを返すデータ格納方法について開示している。
"A Case for Redundant Arrays of Inexpensive Disks (RAID)", David A. Patterson, Garth Gibson, and Randy H. Katz, Computer Science Division Department of Electrical Engineering and Computer Sciences, University of California Berkeley 特開2000-347815 特開2001-202295 米国特許 6928526
既述の保証コードを利用したデータチェック技術と、Data De-duplicationと呼ばれるデータ削減制御技術は別々に存在しており、この2つの技術を組み合わせるというこころみは従来行われていなかった。そこで、本願発明者が鋭意検討したところ、これら2つの技術を単に組み合わせるだけだと以下の問題が生じることが分かった。
ホストから論理ボリュームの異なる論理アドレスに書き込まれようとする二つのデータA、Bがあり、共にデータの内容が同じだとする。De-duplicationは、内容の重複を取り去るために、データAだけをディスクに格納し、データBをディスクに格納せず、データBをデータAへのポインタに置き換える。従って、ホストからデータBに対するリード要求があった場合には、ディスクアレイコントローラは、データAを参照する。
データ保証コードを利用するディスクアレイ装置では、ホストからリード要求があった際、データがディスクの正しい位置から読み出されたかを、保証コードを用いてチェックする。ホストからデータBに対するリード要求があった場合、ディスクアレイコントローラはリード要求に基づき、データBに対応する論理アドレスからデータBが正しく読み出されたか否かを、保証コードを用いてチェックしようとする。
De-duplicationにより、データBに対するリード要求に対して、ディスクアレイコントローラが参照するのはデータAである。このため、読み出されたデータの保証コードはデータAに対する論理アドレスに基づいたものとなる。しかし、ディスクアレイコントローラはデータBに対応する保証コードを期待してチェックを行うため、保証コードチェックエラーと判定してしまう。したがって、これでは、保証コードを利用したデータチェック技術とData De-duplicationと呼ばれるデータ削減制御技術とを組み合わせることはできない。
そこで、データそのものの内容に加え保証コードの内容まで含めて全体として同じ内容である場合にDe-duplicationを行うようにすることが考えられる。
しかしながら、保証コードはLAなどデータブロックに固有の値であるため、全体の内容が重複する複数のデータが存在する可能性は極めて低い。従って、この方法では、保証コードを利用したデータチェック技術をディスクアレイ装置が利用する限り、De-duplicationによるデータ総量を低減させるという恩恵をほとんど受けられない。
そこで、本発明は、保証コードを利用したデータチェック技術を利用しながら、De-duplicationによるデータ量を低減する機能を実装することができるストレージサブシステム及びその制御方法を提供することを目的とする。
前記目的を達成するために、本発明は、データブロックごとに保証コードを付加するように構成されたストレージサブシステムにおいて、De-duplicationを実施する機能と、De-duplication機能を行ってデータを論理ボリュームに格納する際に、保証コードチェック用LA読替え情報ないしデータ読み出し先アドレス読替え情報を生成し、データを読み出す際にはこの情報を用いて情報を読み替え、読み替えた情報に基づいて保証コードの生成を行うことにより、保証コードチェックのエラーを回避するように構成されたことを特徴とするものである。
本発明によれば、保証コードを利用したデータチェック技術を利用しながら、De-duplicationによるデータ量を低減する機能を実装することができるストレージサブシステム及びその制御方法を提供することができる。
以下、本発明の実施の形態を、図面を参照して説明する。図1は本発明におけるディスクアレイ装置の構成を表した図である。ディスクアレイ装置1は、管理用ネットワーク3を介して管理用端末装置5と接続されている。また、ディスクアレイ装置1は、ストレージネットワーク4を介して複数のホスト計算機2と接続されている。
ディスクアレイ装置1には、ディスクアレイコントローラ171、172が備えられており、ストレージネットワークとの間で同時に多くのデータを入出力できるようにしている。なお、実施の形態によっては、ディスクアレイコントローラは1つでもよいし、3つ以上あってもよい。また、ディスクアレイコントローラの機能や部品ごとに複数に分割されて実装されていても良い。また、ディスクアレイ装置1には、複数のディスクドライブ(以下、単にディスク)D00、D01、D02、・・・、D2N等が備えられている。
ディスクアレイコントローラ171、172は接続インターフェース130およびインターフェース間を接続する信号線103を介して、ディスクD00〜D2Nと接続されている。これにより、ディスクアレイコントローラ171、172とディスクD00〜D2Nは互いにデータの入出力を行うことができる。ディスクアレイコントローラ171,172とディスクD00〜D2Nとの接続には、SATA(Serial ATA)やSAS(Serial Attached SCSI)、Fibre Channelなどデータ転送に適切な通信路が用いられる。
ディスクアレイコントローラ171等では、制御プログラムが動作しており、ディスクD00等に対するデータの入出力を制御する。また、ディスクD00等によって構成されるRAIDの構成やRAID上に構築される論理ボリュームを管理する。また、管理用端末装置5と通信を行い、ディスクアレイ装置1の設定や管理、保守に必要な種々のデータをやりとりする。
ディスクD00等は、SATA、SAS、Fibre Channel等で接続可能なディスクであり、媒体には磁気ディスク、不揮発メモリを利用した半導体ディスク等が用いられている。
管理用端末装置5は、CPU、メモリ、記憶装置、インターフェース、入力装置および表示装置が備わるコンピュータ装置である。管理用端末装置5では管理プログラムが動作しており、当該管理プログラムによってディスクアレイ装置1の動作状態を把握し、ディスクアレイ装置1の動作を制御する。なお、管理用端末装置5ではWebブラウザ等のクライアントプログラムが動作し、ディスクアレイ装置1から供給される管理プラグラム(Common Gateway InterfaceやJava(登録商標)等)によってディスクアレイ装置1の動作状態の把握や動作の制御をするようにしてもよい。表示画面51は管理用端末装置5に備わる表示装置の画面である。
ホスト計算機2は、CPU、メモリ、記憶装置およびインターフェースが備わるコンピュータ装置であり、ディスクアレイ装置から供給されるデータを利用して、データベースサービスやウェブサービス等を利用可能にする。
ストレージネットワーク4は、例えばSASプロトコル、Fibre Channelプロトコル、iSCSIプロトコルのような、データの転送に適するプロトコルで通信可能なネットワークである。
管理用ネットワーク3は、例えば、TCP/IPプロトコルによって、コンピュータ間でデータや制御情報を通信可能であり、例えばイーサネット(登録商標)が用いられる。
図3は、本発明の実施の形態のディスクアレイ装置の構成を示す概観図である。ディスクアレイコントローラ171等、およびディスクD00等、ファンおよび電源8は、ディスクアレイ装置1に内蔵されており、ディスクの台数に応じてディスク格納筐体E00、E10、・・・、E80などの複数の筐体を接続して構成される。
図3は、本発明の実施の形態におけるディスクアレイコントローラ171の内部構成を示すブロック図である。なお、ディスクアレイコントローラコントローラ172も同様である。
ディスクアレイコントローラ171には、CPU1901、メモリ1902、データ演算およびデータ転送コントローラ1904、データバッファ1907、ホスト接続インターフェースコントローラ1905、バックエンド接続インターフェースコントローラ1906、LANインターフェースコントローラ1908が備えられている。これらは実装に適切なデータ転送路を介して、互いに接続されている。
CPU1901は、メモリ1902に格納される制御プログラム1903を読み込んでディスクアレイ装置のさまざまな制御を行う。データ演算およびデータ転送コントローラ1904は、CPU1901の指示に基づいて、メモリ1902、ホスト接続インターフェースコントローラ1905、バックエンド接続インターフェースコントローラ1906、データバッファ1907との間で互いのデータの転送を行う。また、データバッファ1907を用いて、所定のデータに対するパリティ計算やハッシュ計算をはじめとする所定の演算のほか、保証コードの生成・付加、チェック・除去を実行する。
ホスト接続インターフェース1905は、図1にて示した、ホスト計算機3との間でデータの入出力の制御を行い、必要に応じて、データバッファ1907にデータを格納したり、取り出したりする。
バックエンド接続インターフェース1906は、ディスクD00等との間でデータの入出力を行い、必要に応じてデータバッファ1907にデータを格納したり、取り出したりする。
データバッファ1907は、例えばDIMM等で構成されるメモリであり、不揮発メモリないし、バッテリ等によって不揮発にされた揮発メモリが用いられる。
LANインターフェースコントローラ7は、管理用端末装置5と管理用ネットワーク3を通じてデータや制御情報の入出力を行うインターフェースコントローラである。
なお、図2に示すディスクアレイコントローラのブロック構成は一例であり、同様の機能を有せば、実装にハードウェア、ソフトウェアを問わない。また、ブロックの構成が異なっていてもよい。例えば、ホスト接続インターフェースコントローラ1905やバックエンド接続インターフェースコントローラ1906、データバッファ1907、CPU1901が別々の基板に実装され、互いに高速なネットワークで結合されているような形態でも良い。
図4は、制御プログラム1903を構成するプログラムおよび情報管理テーブルを示す説明図である。制御プログラム1903には以下のものが含まれる。すなわち、RAID制御プログラム1911、RAIDグループ設定プログラム1912、論理ボリューム設定プログラム1913、管理・通知プログラム1914、De-duplication制御プログラム1915、保証コードチェックプログラム1916、ディスク情報管理テーブルT1、RAIDグループ情報管理テーブルT2、論理ボリューム情報管理テーブルT3、空きプール領域管理リストT4,使用済みプール領域管理リストT5である。
RAID制御プログラム1911は、ホスト計算機3と入出力されたデータをRAIDの仕組み基づいて処理し、ディスクD00等と入出力を行う。また、同制御にかかわる障害復旧処理を行う。
RAIDグループ設定プログラム1912は、管理用端末装置5からの指示やRAID制御プログラム1911の指示に基づき、RAIDグループ情報管理テーブルT2を用いて、RAIDグループの作成、変更、削除を行う。
論理ボリューム設定プログラム1913は、管理用端末装置5からの指示やRAID制御プログラム1911の指示に基づき、論理ボリューム情報管理テーブルT3を用いて、論理ボリュームの作成、変更、削除を行う。論理ボリュームはLU(Logical Unit)と呼ばれることもある。
管理・通知プログラム1914は、管理端末5とデータや制御情報の授受を行う。De-duplication制御プログラム1915は、RAID制御プログラム1911と連携し、重複データの排除に伴う一連の処理を行う。
保証コードチェックプログラム1916は、ホストからリード要求があった際、データが正しい位置から読み出されたかをチェックする。
ディスク情報管理テーブルT1は、ディスクD00等の各種情報を記録するテーブルである。ここで各種情報とは、具体的には、ディスクの番号、ディスクの容量、ディスクの状態(「正常」か「故障」か、など)、所属するRAIDグループの番号、などである。
RAIDグループ情報管理テーブルT2は、ディスクD00等から構成されるRAIDグループの各種情報を記録するテーブルである。ここで各種情報とは、具体的には、RAIDグループの番号、RAIDレベル、RAIDに含まれるディスク数、RAIDの有効容量(実際にデータを書き込める容量)、当該RAIDグループの状態(「正常」か「縮退」か「閉塞」か)、論理ボリュームへの割当済容量、未使用容量である。
論理ボリューム情報管理テーブルT3は、RAID上に構成される論理的なディスク(ボリューム、LU)の各種情報を記録するテーブルである。ここで各種情報とは、具体的には、論理ボリュームの番号、論理ボリュームの容量、論理ボリュームの形態(「実」か「仮想」か「プール」か)、割当元のRAIDグループまたはプールボリュームの番号、実ボリュームであれば当該ボリュームの割当開始LBA(Logical Block Address)や終了LBA、仮想ボリュームであれば実際の使用量やDe-duplicationによる重複削減率、プールボリュームであれば割当済み容量や未使用容量など、である。
実ボリュームとはあらかじめ全容量がディスク上に確保される通常のボリュームであり、仮想ボリュームとは、データが書き込まれた部分にだけ動的に容量が割り当てられるボリュームであり、プールボリュームとは、仮想ボリュームに動的に容量(データブロック)を提供するボリュームである。
テーブルT1、T2、T3の内容は、メモリ1902上に置かれると共に、管理端末装置5からも確認することができる。論理ボリューム情報であれば、例えば図20のV1のように管理画面51に表示される。
空きプール領域管理リストT4は、前記論理ボリュームのうち、プールボリュームとして指定されたボリュームの未使用容量を論理データブロック単位で管理するリストである。
使用済みプール領域管理リストT5は、前記論理ボリュームのうち、プールボリュームとして指定されたボリュームの使用済み容量を論理データブロック単位で管理するリストである。
図5はデータバッファ1907に格納される情報管理テーブルやキャッシュ情報を示す説明図である。データバッファ1907には、以下のものが含まれる。すなわち、LA(Logical Address)読替えテーブルT6、ハッシュテーブルの一部分T7,入出力データキャッシュ領域A1である。
LA読替えテーブルT6は、CPU1901がデータ演算およびデータ転送コントローラ1904を用いて、De-duplicationされたボリュームの保証コードチェック(LA/LRCチェック)を行う際、チェック元のLA情報を書き換えるために用いる情報テーブルである。
ハッシュテーブルの一部分T7はハッシュテーブル全体T8の一部をキャッシングしたものである。ハッシュテーブルT8はサイズが非常に大きいため、ディスクの管理情報格納領域等に格納される。なお、データバッファ1907のサイズが十分に大きいときは、ハッシュテーブルの一部分T7のようなキャッシングは行わず、ハッシュテーブル全体T8を配置しても良い。
入出力データキャッシュ領域A1は、ホスト3等やディスクD00等の間で入出力されるデータをキャッシングしたり、RAIDのパリティ演算や、ハッシュ値の演算のために用いられるワーキングメモリ領域である。
図6は、本発明の実施の形態における空きプール領域管理リストの説明図である。空きプール領域管理リストT4には、仮想ボリュームに割り当てられていない未使用の論理データブロックがLAを用いて記録されている。LA(Logical Address)は、論理ボリュームの番号(LUN, Logical Unit Number)と論理ボリューム上のデータブロックのアドレス(LBA, Logical Block Address)から構成され、論理データブロックに固有なアドレス情報である。
図7は、本発明の実施の形態における使用済みプール領域管理リストの説明図である。使用済みプール領域管理リストT5には、仮想ボリュームに既に割り当てられている論理データブロックがLAを用いて記録されている。また同時に、そのブロックがDe-duplicationによって何重に参照されているかについても記録している。
図8は、本発明の実施の形態におけるハッシュテーブルの説明図である。ハッシュテーブルT6は実際にディスクに書き込まれたデータブロックの内容のハッシュ値と、当該データブロックのLAを記録しているテーブルである。例えば、ハッシュ値が603AB32353を示す内容が書かれたデータブロックは、アドレスがLUN90:LBA353462の位置に格納されていることが分かる。
図9は、本発明の実施の形態におけるLA読み替えテーブルの説明である。LA読み替えテーブルT7は、保証コードチェック(LA/LRCチェック)の際に読替えるべきLAの情報が記録されている。例えば、LUN10:LBA88590がチェックの対象のときは、LA情報をLUN90:LBA343562に読替える必要があることが分かる。
図10は、以上の説明の理解を助けるために、仮想ボリューム、プールボリューム、空きプール領域管理リスト、使用済みプール領域管理リスト、および、LA読み替えテーブルの関係を模式的に示した図である。
ホスト計算機には、仮想ボリュームがあたかも実ボリュームのように見えている。ホスト計算機は、仮想ボリューム上のアドレスを指定してデータの書き込みを行う。仮想ボリュームのアドレスを指定して書き込まれたデータは一旦ディスクアレイコントローラのキャッシュ上に蓄えられ、所定の演算や処理を終えた後、プールボリュームとして確保されたディスク領域に書き込まれる。空きプール領域管理リストと使用済みプール領域管理リストは互いに連携し、どのブロックが使用されたか、あるいはどのブロックが開放されたか(すなわち、未使用(空き)となったか)を記録する。また、必要に応じてLA読み替えテーブルがディスクアレイコントローラの制御プログラムによって更新される。
図11は、本発明の実施の形態におけるDe-duplication処理において、ホストからデータが書き込まれたときにDe-duplication制御プログラム1915が行う、重複データ排除処理を示すフローチャートである。
De-duplication制御プログラム1915は、ホストから仮想ボリュームのアドレスを指定して書き込まれた(ライトされた)ブロックBがディスクアレイコントローラ171等の入出力データキャッシュ領域A1に格納されると、書き込まれたブロックBのデータ内容からハッシュ値HBを計算する(S1000)。なお、この時点で、ブロックBには、仮想ボリュームのアドレスに基づく保証コード(LA/LRC)がデータ演算およびデータ転送コントローラ1904によって自動的に付加されている。
次に、同制御プログラム1915はハッシュテーブルT7,T8を検索し、ハッシュ値HBと一致するハッシュ値Hがないか検索する(S1010)。検索の結果、一致するハッシュ値Hが存在した場合(S1020:Yes)は、実際にブロックBのデータ内容とハッシュ値Hを持つブロックDの内容を比較する(S1030)。これは、ハッシュ値が同じでも、内容が異なるケース(シノニムが存在するケース)があるからである。
比較の結果、ブロックBとブロックDの内容が一致すれば(S1040:Yes)、ブロックBはブロックDと内容が重複しているので、De-duplication可能だと判断する。その結果、ブロックDの参照回数が増えるので、これを記録するために、使用済みプール領域管理リストT5を用いて、ブロックDの参照数を1増加させる(S1050)。
次に、LA読み替えテーブルT6に関する処理に入る。De-duplication制御プログラム1915は、LA読替えテーブルT6を参照し、読替え元がブロックBのLAとなっているレコードがないか検索する(S1060)。該当するレコードが存在しない場合(S1070:No)、LA読み替えテーブルT6に、ブロックBへのアクセスをブロックDへ読替えるよう、両者のLAを用いて記録する(S1080)。
一方、S1020において、ハッシュ値Hと一致するハッシュ値Hが存在しなかった場合(S1020:No)、ブロックBは過去にディスクに記録されたいずれのデータブロックとも内容が重複していないことを意味する。従って、De-duplication制御プログラム1915は、新たにブロックBの内容を書き込むためのボリューム上の空きブロックDを空きプール領域管理リストT4から確保し(S1110)、ブロックDを使用済みプール領域管理リストT5に登録する(S1120)。
次に、同プログラムは、ブロックBが入出力データキャッシュ領域A1に格納される際に自動的に付加された仮想ボリュームのアドレスに基づく保証コード(LA/LRC)を破棄し、ブロックDのLAおよびブロックBのデータ内容から新たな保証コード(LA/LRC)を生成して(S1030)、ブロックBの内容とともに、ブロックDに書き込む(S1040)。
そして、ハッシュ値Hを示すブロックBの内容がブロックDに書き込まれたことをハッシュテーブルT7,T8に記録し(S1050)、ブロックDの参照数を1増やす(S1050)。以降、S1060,S1070に示す処理を行い、S1080にてブロックBへのアクセスをブロックDへ読替えるよう、両者のLAを用いてLA読み替えテーブルT6に記録する。
一方、S1040において、ブロックBのデータ内容とハッシュ値Hを持つブロックDの内容を比較した結果、内容が一致しなかった場合(S1040)、ブロックBとブロックDは同じハッシュ値を持つが内容が異なる(シノニムである)ということが分かる。
そこで、De-duplication制御プログラム1915は、更に同一ハッシュ値Hを持つブロックが他にないかハッシュテーブルT7,T8を検索し(S1100)、存在した場合には(S1100:Yes)、同様にしてブロックBとの比較を実施する(S1030に戻る)。
また、存在しなかった場合には(S1100:No)、ブロックBは過去にディスクに記録されたいずれのデータブロックとも内容が重複していないので、ディスクへの新規書き込みを行うためのS1110以降の処理を実施する。S1110以降の処理については先に説明した通りである。
一方、S1070において、読替え元がブロックBのLAとなっているレコードがLA読替えテーブルT6に存在した場合(S1070:Yes)、ホストは過去にブロックBのアドレスに対して書き込みを行っており、今回その内容が更新されたことを意味する。すなわち、ブロックBの内容書き換えに伴う処理が必要となる。はじめに過去の関連付け情報を消去するために、De-duplication制御プログラム1915は、使用済みプール領域管理リストT5を用いて、前記レコードの読替え先に指定されているブロックDOLDの参照数を1減じ(S1200)、その後、LA読替えテーブルT6から前記レコードを削除する(S1210)。次に、使用済みプール領域管理リストT5を再度参照し、ブロックDOLDの参照数が0になっていないかチェックする(S1220)。
チェックの結果、参照数が0の場合(S1220:Yes)には、ブロックDOLDはどこからも参照されていないデータである、ということが分かるので、使用済みプール領域管理リストT5から削除し、空きプール領域管理リストT4に登録する(S1230)。そして、ハッシュテーブルT7,T8からもDOLDに関するレコードを削除する(S1240)。そして、新たな関連付けをLA読替えテーブルに登録する(S1080)。
図12は、以上の図11における動作の説明の理解を助けるために、説明を模式図に表したものである。ホストから書き込まれたブロックBはディスクアレイコントローラのキャッシュに格納されるとハッシュ値Hが計算される(S1000、Z1)。Hはハッシュテーブルと比較され(S1010、Z2)、新規ならプール領域から書き込み用ブロックDが割り当てられる(S1110、S1120、Z3)。保証コードが生成され(S1030,Z4)、プールボリューム上のブロックDに書き込まれる(S1040、Z5)。
ブロックBの書き込みが内容更新に相当するとき(S1070:Yes)は、旧読み替え先DOLDに対する処理が施される。DOLDがもはやどこからも参照されていなければ(S1220:Yes)、DOLDの情報は使用済みプール領域管理リスト、ハッシュテーブルから削除され、空きプール領域管理リストに登録される(S1230,S1240、Z6)。
図13は、本発明の実施の形態におけるDe-duplication処理において、ホストがデータを読み出そうとしたときにDe-duplication制御プログラム1915と保証コードチェックプログラム1916が行う処理を示すフローチャートである。
ホストから仮想ボリュームのアドレスを指定してブロックBの読み出し(リード要求)が指示されると、De-duplication制御プログラム1915はリード要求先であるブロックBのLAをLA読替えテーブルT6から検索する(S2000)。該当レコードが存在した場合(S2010:Yes)、読替え先に指定されているブロックDからデータ内容と保証コードを読み出し、入出力キャッシュ領域A1に格納する(S2020)。
この時点では、保証コードチェックプログラム1916はブロックBのLAを用いて、入出力キャッシュ領域A1に格納されたブロックDの保証コードのチェックを行おうとしている。そこで、De-duplication制御プログラム1915は、LA読替えテーブルT6の情報を用いて、保証コードチェックプログラム1916のチェック元LA情報をブロックBのLAからブロックDのLAに書き換える(S2030)。
保証コードチェックプログラム1916は、入出力キャッシュ領域A1に格納された保証コード(LA/LRC)を用いて、まずLRCをチェックしてデータ化けがないかを確認し、次にS2030で書き換えられたLA情報を用いてチェックを行い、データが正しい位置から読み出されたかを確認する。
ディスクからデータ化けなく正しい位置(すなわち、ブロックD)から読み出されていれば、チェック結果は正常となる。その場合(S2040)、保証コードチェックプログラム1916は保証コード(LA/LRC)を除去し、データの内容をホストへ返す(S2050)。
一方、S2010において、LA読み替えテーブルT6に該当レコードが存在しない場合は、ブロックBのアドレスに対して過去に書き込みは行われていないため、ヌルデータ(ゼロ等のダミーデータ)を返す(S2100)。
一方、S2040において、データ化けや、正しい位置から読み出されていない場合(S2040:No)には、RAID制御におけるコレクションリードを実施し、当該ブロックのデータを回復して、ホストへ返す(S2200)。
以上の実施形態によれば、保証コード付加・チェック機構のあるディスクアレイ装置においても、効果的にDe-duplicationによるデータ量削減機能を実装することができる。
また、本実施形態では、ホストからのオンラインデータ書き込み・読み出しの動作について説明したが、ホストをコピー元ボリュームに読替えれば、ディスクアレイ装置内のボリューム複製の際にコピー先ボリュームをDe-duplication処理する場合等にも適用できる。
第2の実施形態として、ホストからのアクセス要求そのものを読替える方法がある。すなわち、ブロックB2へのリード要求を、あたかも最初からブロックB1へのリード要求であったかのように処理する。以下、本実施形態を図14〜図19を用いて説明する。
図14は、本実施形態における制御プログラム1903を構成するプログラムおよび情報管理テーブルを示す説明図である。制御プログラム1903には、第1の実施形態の構成に含まれるプログラムおよび情報管理テーブルに加え、アクセス読み替えリストT10が含まれる。
アクセス読み替えリストT10は、ホストからのアクセス要求を、重複排除により同一データを参照している、代表のアクセス要求に読替えるためのリストである。
図15は、本実施形態におけるデータバッファ1907に格納される情報管理テーブルやキャッシュ情報を示す説明図である。データバッファ1907には、第1の実施形態におけるLA読み替えテーブルT6に代わり、仮想ブロック〜実ブロック変換テーブルT11が含まれる。仮想ブロック〜実ブロック変換テーブルT11は、アクセス読み替えリストT10で代表アクセス要求先となっている仮想ボリューム上のLAをプールボリューム上の実ブロックのLAへ変換するためのテーブルである。
図16は、本実施形態におけるアクセス読み替えリストT10の構造を説明した図である。アクセス読み替えリストT10はDe-duplicationで同一データ内容を参照する仮想ボリューム上のブロックのLAをリスト構造で保持している。例えば、ブロックB1、B2、B7は同一のデータ内容を参照する仮想ボリューム上のブロックであり、これらのブロックへのアクセスは、リスト構造の要素であるブロックB1で代表されることを示している。
図17は、本実施形態における仮想ブロック〜実ブロック変換テーブルT11の構造を説明した図である。仮想ブロック〜実ブロック変換テーブルT11は、仮想ボリューム上の代表アクセスブロックとプールボリューム上の実ブロックの対応を、LAを用いて管理している。
図18−1及び図18−2は、本実施形態におけるDe-duplication処理において、ホストからデータが書き込まれたときにDe-duplication制御プログラム1915が行う、重複データ排除処理を示すフローチャートである。
De-duplication制御プログラム1915は、ホストから仮想ボリュームのアドレスを指定して書き込まれた(ライトされた)ブロックBがディスクアレイコントローラ171等の入出力データキャッシュ領域A1に格納されると、書き込まれたブロックBからハッシュ値HBを計算する(S3000)。なお、この時点で、ブロックBには、仮想ボリュームのアドレスに基づく保証コード(LA/LRC)がデータ演算およびデータ転送コントローラ1904によって自動的に付加されている。
次に、同プログラムはハッシュテーブルT7,T8を検索し、ハッシュ値HBと一致するハッシュ値Hがないか検索する(S3010)。検索の結果、一致するハッシュ値Hが存在した場合(S3020:Yes)は、実際にブロックBのデータ内容とハッシュ値Hを持つブロックDの内容を比較する(S3030)。これは、ハッシュ値が同じでも、内容が異なるケース(シノニムが存在するケース)があるからである。
比較の結果、ブロックBとブロックDの内容が一致すれば(S3040:Yes)、ブロックBはブロックDと内容が重複しているのでDe-duplication可能だと判断する。そして、プログラム内部にもつ新規記録ビットを0にする(S3050)。これは、同プログラムが、ブロックBは新たにディスクに記録するデータではないことを一時的に記憶しておくためのフラグである。
次に、同プログラムは以降の処理のために仮想ブロック〜実ブロック変換テーブルT11を参照し、ブロックDに対応する仮想ボリューム上の代表ブロック(以下、代表仮想ブロック)Bを特定しておく(S3060)。
次に、アクセス読み替えリストT10の書き換えに関する処理に入る。De-duplication制御プログラム1915は、アクセス読替えリストT10を参照し、リスト上のいずれかにブロックBのLAが記録されていないか検索する(S3070)。記録が存在しない場合(S3080:No)、先に内部記憶しておいた新規記録ビットをチェックする(S3090)。新規記録ビットが0であった場合(S3090:Yes)には、Bを代表仮想ブロックとするリストにブロックBのLAを登録する。
一方、S3020において、ハッシュ値Hと一致するハッシュ値Hが存在しなかった場合(S3020:No)、ブロックBは過去にディスクに記録されたいずれのデータブロックとも内容が重複していないことを意味する。従って、De-duplication制御プログラム1915は、新たにブロックBの内容を書き込むためのボリューム上の空きブロックDを空きプール領域管理リストT4から確保し(S3210)、ブロックDを使用済みプール領域管理リストT5に登録する(S3220)。次に、同プログラムは、ブロックBのデータおよび保証コードをブロックDに書き込む(S3230)。
そして、ハッシュ値Hを示すブロックBの内容がブロックDに書き込まれたことをハッシュテーブルT7,T8に記録し(S3250)、De-duplication制御プログラム1915が内部に持つ新規記録ビットを1にする。これは、同プログラムが以降の処理の為にブロックBは新たにディスクに記録するデータであることを一時的に記憶しておくためのフラグである。
新規記録ビットが1であった場合(S3090:No)、ブロックBは新たな代表仮想ブロックであるので、仮想ブロック〜実ブロック変換テーブルT11に、ブロックBと書込み先であるブロックDとの対応関係を記録する(S3400)。また、アクセス読み替えリストT10に、ブロックBを代表仮想ブロックとするリストを新たにに作成する(S3410)。
一方、S3080において、アクセス読み替えリストT10にブロックBのLAが記録されていた場合(S3080:Yes)、ホストは過去にブロックBのアドレスに対して書き込みを行っており、今回その内容が更新されたことを意味する。すなわち、ブロックBの内容書き換えに伴う処理が必要となる。そこで、De-duplication制御プログラム1915は、ブロックBが代表仮想ブロックかどうかをチェックする(S3300)。代表仮想ブロックでなかった場合(S3300:No)には、他のブロックへの影響はないので、単にアクセス読み替えリストT10からブロックBの記録を消去する(S3310)。
一方、S3300においてブロックBが代表仮想ブロックであった場合(S3300:Yes)には、当該リストに他の要素が存在するか否かで処理が異なる。他の要素が存在する場合(S3320:Yes)は、読み替え元の先頭要素Cを新たな代表仮想ブロックとし(S3330)、仮想ブロック〜実ブロック変換テーブルT10において、ブロックBのLAをブロックCのLAで書き換える(S3340)。
他の要素が存在しない場合(S3320:No)は、ブロックBのデータ内容を格納していた実ブロックを消去する(未使用状態として登録する)必要がある。すなわち、ブロックBに対応していた実ブロックDOLDを使用済みプール領域管理リストT5から削除し、空きプール領域管理リストT4に登録する(S3350)。その後、仮想ブロック〜実ブロック変換テーブルT11からブロックBとブロックDOLDの対応関係を記したレコードを削除し(S3360)、ハッシュテーブルT7,T8からブロックDOLDに関するレコードを削除する(S3370)。そして、最後にアクセス読み替えリストT10からブロックBの記録を消去する(S3310)
図19は、本発明の実施の形態におけるDe-duplication処理において、ホストがデータを読み出そうとしたときにDe-duplication制御プログラム1915と保証コードチェックプログラム1916が行う処理を示すフローチャートである。
ホストから仮想ボリュームのアドレスを指定してブロックB2の読み出し(リード要求)が指示されると、De-duplication制御プログラム1915はリード要求先であるブロックB2のLAをアクセス読み替えリストT11から検索する(S4000)。検索の結果、B2のLAが記録されていた場合には(S4010:Yes)、リストを走査して、ブロックB2が含まれるリストの代表仮想ブロックB1を特定し、以降あたかもブロックB1へのリード要求であったかのように処理する(S4010)。
De-duplication制御プログラム1915は仮想ブロック〜実ブロック変換テーブルT11を参照してブロックB1の実際の格納先であるブロックDを特定し(S4020)、当該ブロックのデータと保証コードをディスクから読み出して、入出力キャッシュ領域A1に格納する(S4030)。
保証コードチェックプログラム1916は、ブロックB1からのリード要求であると思い込んで保証コード(LA/LRC)チェックを行う。すなわち、LRCチェックの後、チェック元情報をB1のLAとして、入出力キャッシュ領域A1に格納された保証コードのLAをチェックする(S4050)。
ディスクからデータ化けなく正しい位置(すなわち、ブロックD)から読み出されていれば、ブロックDの保証コードにはブロックBのLAに基づくLA/LRCが格納されているので、チェック結果は正常となる。その場合(S4060)、保証コードチェックプログラム1916は保証コード(LA/LRC)を除去し、データの内容をホストへ返す(S4070)。
一方、S4010において、アクセス読み替えリストT11にブロックB2のLAが記録されていなかった場合(S4010:No)は、ブロックBのアドレスに対して過去に書き込みは行われていないため、ヌルデータ(ゼロ等のダミーデータ)を返す(S2100)。
一方、S4060において、データ化けや、正しい位置から読み出されていない場合(S4060:No)には、RAID制御におけるコレクションリードを実施し、当該ブロックのデータを回復して、ホストへ返す(S4200)。
以上の第2の実施形態によれば、第1の実施形態と同様に、保証コード付加・チェック機構のあるディスクアレイ装置においても、効果的にDe-duplicationによるデータ量削減機能を実装することができる。
また、ホストをコピー元ボリュームに読替えれば、ディスクアレイ装置内のボリューム複製の際にコピー先ボリュームをDe-duplication処理する場合等にも適用できる点も同様である。
更に、第1の実施形態では、ディスクに格納される保証コードがプールボリューム上のブロックDのLAに依存しているため、例えばブロックDのLBAが変わってしまうようなプールボリュームの物理的移動は容易にはできなかった。これに対し、第2の実施形態における保証コードは、プールボリューム上のブロックDの格納位置には依存しない。このため、プールボリュームを、例えば、安価なディスクで構成される他のボリュームへマイグレーションしたり、遠隔地のディスクアレイ上のボリュームに移動あるいは複製したりすることが容易に可能となる。
以上、2つの実施形態に基づき、本発明に係るディスクアレイ装置およびその制御方法について説明したが、これらの実施形態は発明の理解を助けるためのものであり、本発明を限定するものではない。本発明は、その趣旨ならびに特許請求の範囲を逸脱することなく、変更・改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
本発明におけるディスクアレイ装置の構成を表した図である。 本発明の実施の形態のディスクアレイ装置の構成を示す概観図である。 本発明の実施の形態におけるディスクアレイコントローラ171の内部構成を示すブロック図である。 制御プログラム1903を構成するプログラムおよび情報管理テーブルを示す説明図である。 データバッファ1907に含まれる情報管理テーブルおよびデータキャッシュ領域を示す説明図である。 本発明の実施の形態における空きプール領域管理リストの説明図である。 本発明の実施の形態における使用済みプール領域管理リストの説明図である。 本発明の実施の形態におけるハッシュテーブルの説明図である。 本発明の実施の形態におけるLA読み替えテーブルの説明図である。 本発明の実施の形態における仮想ボリューム、プールボリューム、各情報管理テーブル等の関係を示す模式図である。 本発明の実施の形態において、De-duplication制御プログラム1915がホストのライト要求に対して行う処理の手順を示したフローチャートである。 本発明の実施の形態において、De-duplication制御プログラム1915がホストのライト要求に対して行う処理を模式的に説明した図である。 本発明の実施の形態において、De-duplication制御プログラム1915および保証コードチェックプログラム1916がホストのリード要求に対して行う処理の手順を示したフローチャートである。 本発明の第2の実施形態における制御プログラム1903を構成するプログラムおよび情報管理テーブルを示す説明図である。 本発明の第2の実施形態におけるデータバッファ1907に含まれる情報管理テーブルおよびデータキャッシュ領域を示す説明図である。 本発明の第2の実施の形態におけるアクセス読み替えリストの説明図である。 本発明の第2の実施の形態における仮想ブロック〜実ブロック変換テーブルの説明図である。 本発明の第2の実施の形態において、De-duplication制御プログラム1915がホストのライト要求に対して行う処理の手順を示したフローチャートの前半部である。 本発明の第2の実施の形態において、De-duplication制御プログラム1915がホストのライト要求に対して行う処理の手順を示したフローチャートの後半部である。 本発明の第2の実施の形態において、De-duplication制御プログラム1915および保証コードチェックプログラム1916がホストのリード要求に対して行う処理の手順を示したフローチャートである。 管理端末5の表示画面51において、論理ボリューム情報管理テーブルT3で管理されるボリュームのうちDe-duplicationボリュームに関する情報を表示した際の画面例である。
符号の説明
1 ディスクアレイ装置
2 ホスト計算機
3 管理用ネットワーク
4 ストレージネットワーク
5 管理用端末装置
130 接続インターフェース
171,172 ディスクアレイコントローラ
1901 CPU
1902 メモリ
1904 データ演算及びデータ転送コントローラ
1905 ホスト接続インターフェースコントローラ
1906 バックエンド接続インターフェースコントローラ
1907 データバッファ
1908 LANインターフェースコントローラ
V1 論理ボリューム管理画面

Claims (8)

  1. 記憶デバイスと、
    制御プログラムを備えるメモリと、
    ホストからの前記記憶デバイスに対するデータのライトアクセス又は当該データに対するリードアクセスを、前記制御プログラムに基づいて制御するコントローラと、
    を備えるストレージサブシステムであって、
    前記コントローラは、
    前記データの固有な属性に基づいて保証コードを生成し、
    前記保証コードを付加して前記データを前記記憶デバイスにライトし、
    前記データを前記記憶デバイスからリードする際に前記保証コードをチェックして当該データの適正を判定し、
    前記データとして第1のデータと第2のデータがあり、前記第1のデータと前記第2のデータとが同一内容のものである場合、前記第2のデータを前記記憶デバイスに格納することなく、前記第1のデータを前記保証コードと共に前記記憶デバイスに格納し、
    前記第2のデータに対する前記ホストからのリードアクセスを前記第1のデータに対応付け、そして、
    前記第2のデータに対する前記ホストからのリードアクセスを処理する際に生成される保証コードが、前記第1のデータの前記保証コードに一致するように前記第2のデータの固有な属性を変更する変更テーブルを備える、
    ストレージサブシステム。
  2. 前記コントローラは、
    前記ホストがアクセスする第1の論理ボリュームと、前記記憶デバイスの記憶領域が割り当てられる第2の論理ボリュームと、を備え、
    前記第1の論理ボリュームの前記第1の論理アドレスに対する前記ホストからのライトアクセスに基づいて、前記第1のデータを前記第2の論理ボリュームの第2の論理アドレスにライトし、
    前記第1の論理ボリュームの第3の論理アドレスに対する前記ホストからの前記第2のデータをリードするためのリードアクセスに基づいて、前記第1のデータを前記第2の論理アドレスからリードし、
    前記第1のデータの前記保証コードを前記第2の論理アドレスに基づいて生成し、
    前記第1の論理アドレスと前記第3の論理アドレスとをそれぞれ前記第2の論理アドレスに対応させる対応テーブルと、前記変更テーブルとして、前記第3の論理アドレスを前記第2の論理アドレスに変更するテーブルと、を備え、
    前記第2のデータに対する前記ホストからのリードアクセスを処理する際に、前記対応テーブルに基づいて前記第2の論理アドレスを取得し、
    前記第2のデータへの前記リードアクセスに対する前記保証コードを生成する際に、前記第3の論理アドレスから前記変更テーブルに基づいて前記2の論理アドレスを取得し、当該第2の論理アドレスに基づいて前記保証コードを生成し、
    当該生成した保証コードと前記第1のデータに付帯する前記保証コードとの一致を判定する、
    請求項1記載のストレージサブシステム。
  3. 前記コントローラは、
    前記ホストがアクセスする第1の論理ボリュームと、前記記憶デバイスの記憶領域が割り当てられる第2の論理ボリュームと、を備え、
    前記第1の論理ボリュームの前記第1の論理アドレスに対する前記ホストからのライトアクセスに基づいて、前記第1のデータを前記第2の論理ボリュームの第2の論理アドレスにライトし、
    前記第1の論理ボリュームの第3の論理アドレスに対する前記ホストからの前記第2のデータをリードするためのリードアクセスに基づいて、前記第1のデータを前記第2の論理アドレスからリードし、
    前記第1のデータの前記保証コードを前記第1の論理アドレスに基づいて生成し、
    前記第1の論理アドレスと前記第3の論理アドレスとをそれぞれ前記第2の論理アドレスに対応させる対応テーブルと、前記変更テーブルとして、前記第3の論理アドレスを前記第1の論理アドレスに変更するテーブルと、を備え、
    前記第2のデータに対する前記ホストからのリードアクセスを処理する際に、前記対応テーブルに基づいて前記第2の論理アドレスを取得し、
    前記第2のデータへの前記リードアクセスに対する前記保証コードを生成する際に、前記第3の論理アドレスから前記変更テーブルに基づいて前記1の論理アドレスを取得し、当該第1の論理アドレスに基づいて前記保証コードを生成し、
    当該生成した保証コードと前記第1のデータに付帯する前記保証コードとの一致を判定する、
    請求項1記載のストレージサブシステム。
  4. 前記第2の論理ボリュームが前記ホストから前記第1の論理ボリュームへのライトアクセスに基づいて、前記記憶デバイスの記憶容量が動的に割り当てられるものである、請求項2又は3記載のストレージサブシステム。
  5. 前記コントローラは、前記第1のデータと第2のデータが同一であるか否かをハッシュ値に基づいて判定する、請求項1記載のストレージサブシステム。
  6. 前記第2のデータの固有な属性が当該第2のデータが格納される論理ボリュームの論理アドレスである、請求項1記載のストレージサブシステム。
  7. 記憶デバイスと、
    制御プログラムを備えるメモリと、
    ホストからの前記記憶デバイスに対するデータのライトアクセス又は当該データに対するリードアクセスを、前記制御プログラムに基づいて制御するコントローラと、
    を備えるストレージサブシステムであって、
    前記コントローラは、
    ホストからのライトアクセスに基づいてデータを論理ボリュームにライトする際に、前記データに対する第1の論理アドレスから保証コードを生成する第1の保証コード生成部と、
    前記データを前記論理ボリュームに前記保証コードを付して前記記憶デバイスにライトするデータライト部と、
    前記ホストからのリードアクセスに基づいて前記データを前記論理ボリュームからリードする際に、当該リードアクセスにおいて前記ホストから指定された第2の論理アドレスに基づいて保証コードを生成する第2の保証コード生成部と、そして、
    前記第2の論理アドレスを前記第1の論理アドレスに読み替えるテーブルと、を有し、
    前記第2の保証コード生成部は、前記ホストが前記ライトされたデータをリードする際に、前記テーブルを参照して前記第1の論理アドレスから保証コードを生成する、
    ストレージサブシステム。
  8. 記憶デバイスと、
    制御プログラムを備えるメモリと、
    ホストからの前記記憶デバイスに対するデータのライトアクセス又は当該データに対するリードアクセスを、前記制御プログラムに基づいて制御するコントローラと、
    を備えるストレージサブシステムの制御方法であって、
    前記コントローラは、
    前記データの固有な属性に基づいて保証コードを生成し、
    前記保証コードを付加して前記データを前記記憶デバイスにライトし、
    前記データを前記記憶デバイスからリードする際に前記保証コードをチェックして当該データの適正を判定し、
    前記データとして第1のデータと第2のデータがあり、前記第1のデータと前記第2のデータとが同一内容のものである場合、前記第2のデータを前記記憶デバイスに格納することなく、前記第1のデータを前記保証コードと共に前記記憶デバイスに格納し、
    前記第2のデータに対する前記ホストからのリードアクセスを前記第1のデータに対応付け、そして、
    前記第2のデータに対する前記ホストからのリードアクセスを処理する際に生成される保証コードが、前記第1のデータの前記保証コードに一致するように前記第2のデータの固有な属性を変更する、
    ストレージサブシステムの制御方法。
JP2007250139A 2007-09-26 2007-09-26 ストレージサブシステム及びその制御方法 Expired - Fee Related JP5331323B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007250139A JP5331323B2 (ja) 2007-09-26 2007-09-26 ストレージサブシステム及びその制御方法
US12/010,851 US8051367B2 (en) 2007-09-26 2008-01-30 Storage sub-system and method for controlling the same
EP08250820A EP2042980B1 (en) 2007-09-26 2008-03-11 Storage sub-system and method for controlling the same
US13/243,435 US8209595B2 (en) 2007-09-26 2011-09-23 Storage sub-system and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007250139A JP5331323B2 (ja) 2007-09-26 2007-09-26 ストレージサブシステム及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009080696A true JP2009080696A (ja) 2009-04-16
JP5331323B2 JP5331323B2 (ja) 2013-10-30

Family

ID=40076763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007250139A Expired - Fee Related JP5331323B2 (ja) 2007-09-26 2007-09-26 ストレージサブシステム及びその制御方法

Country Status (3)

Country Link
US (2) US8051367B2 (ja)
EP (1) EP2042980B1 (ja)
JP (1) JP5331323B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203842A (ja) * 2010-03-24 2011-10-13 Toshiba Corp ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
JP2012525633A (ja) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド フラッシュベースのデータ保存ストレージシステム
US8321384B2 (en) 2010-03-12 2012-11-27 Fujitsu Limited Storage device, and program and method for controlling storage device
JP2014515532A (ja) * 2011-05-27 2014-06-30 クアルコム,インコーポレイテッド 動的言語のハッシュテーブルのためのハードウェアサポート
WO2014188479A1 (ja) * 2013-05-20 2014-11-27 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
JP2015162002A (ja) * 2014-02-26 2015-09-07 富士通株式会社 記憶制御装置、記憶制御方法および記憶制御プログラム
WO2015162758A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
JP2020030707A (ja) * 2018-08-24 2020-02-27 富士通株式会社 情報処理装置、情報処理プログラム、情報処理方法及び情報処理システム
US10862812B2 (en) 2018-01-18 2020-12-08 Toyota Jidosha Kabushiki Kaisha Information processing apparatus, data management system, data management method, and non-transitory computer readable medium storing program
JP2021022324A (ja) * 2019-07-30 2021-02-18 富士通株式会社 記憶制御装置および記憶制御プログラム
US10990535B2 (en) 2017-04-20 2021-04-27 Fujitsu Limited Storage control apparatus and storage control method for deduplication
US11080638B2 (en) 2017-04-27 2021-08-03 Toyota Jidosha Kabushiki Kaisha Analysis technique presenting system, method, and program

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US20090263495A1 (en) * 2007-10-25 2009-10-22 Revalesio Corporation Bacteriostatic or bacteriocidal compositions and methods
US7913114B2 (en) * 2008-07-31 2011-03-22 Quantum Corporation Repair of a corrupt data segment used by a de-duplication engine
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
CA2729078C (en) 2008-09-26 2016-05-24 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9542409B2 (en) * 2008-11-26 2017-01-10 Red Hat, Inc. Deduplicated file system
US8200923B1 (en) * 2008-12-31 2012-06-12 Emc Corporation Method and apparatus for block level data de-duplication
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
WO2010113167A1 (en) 2009-03-30 2010-10-07 Hewlett-Packard Development Company L.P. Deduplication of data stored in a copy volume
US8176270B2 (en) * 2009-05-01 2012-05-08 Quantum Corporation Data allocation system
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8862559B2 (en) 2009-10-06 2014-10-14 Dell Products L.P. Scalable mechanism for detection of commonality in a deduplicated data set
US8965852B2 (en) * 2009-11-24 2015-02-24 Dell Products L.P. Methods and apparatus for network efficient deduplication
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
US9323689B2 (en) 2010-04-30 2016-04-26 Netapp, Inc. I/O bandwidth reduction using storage-level common page information
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
JP5603997B2 (ja) 2010-10-26 2014-10-08 株式会社日立製作所 ストレージ装置及びデータ制御方法
CN102147711B (zh) * 2010-12-31 2014-04-02 华为数字技术(成都)有限公司 一种基于数据内容识别的存储方法及装置
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8930307B2 (en) * 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8620886B1 (en) * 2011-09-20 2013-12-31 Netapp Inc. Host side deduplication
US9398473B2 (en) 2011-12-21 2016-07-19 Cisco Technology, Inc. System and method for load based optimization in communication networks
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US8880476B2 (en) 2012-06-28 2014-11-04 International Business Machines Corporation Low-overhead enhancement of reliability of journaled file system using solid state storage and de-duplication
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US9298386B2 (en) * 2013-08-23 2016-03-29 Globalfoundries Inc. System and method for improved placement of blocks in a deduplication-erasure code environment
TWI501243B (zh) * 2013-11-12 2015-09-21 Phison Electronics Corp 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元
CN104765693B (zh) * 2014-01-06 2018-03-27 国际商业机器公司 一种用于存储数据的方法、装置和系统
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
JP2016149051A (ja) * 2015-02-13 2016-08-18 富士通株式会社 ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
JP6666540B2 (ja) * 2015-06-15 2020-03-18 富士通株式会社 ストレージ制御装置、及びプログラム
US10482071B1 (en) * 2016-01-26 2019-11-19 Pure Storage, Inc. Systems and methods for providing metrics for a plurality of storage entities of a multi-array data storage system
JP6513888B2 (ja) * 2016-09-13 2019-05-15 株式会社日立製作所 データ量削減機能を有する計算機システム、及び、記憶制御方法
US10656859B2 (en) * 2017-03-01 2020-05-19 Tintri By Ddn, Inc. Efficient deduplication for storage systems
US11093444B2 (en) * 2018-07-02 2021-08-17 Weka.IO Ltd. Access redirection in a distributive file system
US10783079B2 (en) * 2019-01-28 2020-09-22 EMC IP Holding Company LLC User data recovery in a content aware storage system
US10951550B2 (en) 2019-01-29 2021-03-16 EMC IP Holding Company LLC Logging infrastructure with time sustain requirements
US10970172B2 (en) 2019-04-29 2021-04-06 EMC IP Holding Company LLC Method to recover metadata in a content aware storage system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099454A (ja) * 2000-09-21 2002-04-05 Nec Corp ファイル管理システムおよび方法
JP2003241901A (ja) * 2002-02-19 2003-08-29 Hitachi Software Eng Co Ltd ディスク共用制御方法および装置
JP2004362418A (ja) * 2003-06-06 2004-12-24 Nec Corp データ共有システム及び方法並びにデータ共有用プログラム
JP2005025683A (ja) * 2003-07-03 2005-01-27 Hitachi Ltd 記憶システム及び記憶装置システム
JP2006195851A (ja) * 2005-01-17 2006-07-27 Hitachi Ltd ストレージシステム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098190A (en) * 1998-08-04 2000-08-01 Hewlett-Packard Co. Method and apparatus for use of a host address to validate accessed data
JP2000347815A (ja) 1999-06-07 2000-12-15 Hitachi Ltd ディスクアレイシステム
JP2001202295A (ja) 2000-01-17 2001-07-27 Hitachi Ltd サブシステム
US6928526B1 (en) * 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
JP4394533B2 (ja) * 2004-07-28 2010-01-06 株式会社日立製作所 ディスクアレイシステム
JP4114877B2 (ja) * 2004-12-02 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション 不正データを検出するための装置、方法、及びプログラム
US7734603B1 (en) 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
JP2009009407A (ja) * 2007-06-28 2009-01-15 Hitachi Ltd 暗号機能を備えたストレージシステム及びデータ保証方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099454A (ja) * 2000-09-21 2002-04-05 Nec Corp ファイル管理システムおよび方法
JP2003241901A (ja) * 2002-02-19 2003-08-29 Hitachi Software Eng Co Ltd ディスク共用制御方法および装置
JP2004362418A (ja) * 2003-06-06 2004-12-24 Nec Corp データ共有システム及び方法並びにデータ共有用プログラム
JP2005025683A (ja) * 2003-07-03 2005-01-27 Hitachi Ltd 記憶システム及び記憶装置システム
JP2006195851A (ja) * 2005-01-17 2006-07-27 Hitachi Ltd ストレージシステム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012525633A (ja) * 2009-04-30 2012-10-22 ネットアップ,インコーポレイテッド フラッシュベースのデータ保存ストレージシステム
US8321384B2 (en) 2010-03-12 2012-11-27 Fujitsu Limited Storage device, and program and method for controlling storage device
JP2011203842A (ja) * 2010-03-24 2011-10-13 Toshiba Corp ホスト装置と連携して重複データを排除するストレージ装置、同ストレージ装置を備えたストレージシステム、及び同システムにおける重複排除方法
JP2014515532A (ja) * 2011-05-27 2014-06-30 クアルコム,インコーポレイテッド 動的言語のハッシュテーブルのためのハードウェアサポート
US9063749B2 (en) 2011-05-27 2015-06-23 Qualcomm Incorporated Hardware support for hashtables in dynamic languages
US9760296B2 (en) 2013-05-20 2017-09-12 Hitachi, Ltd. Storage device and method for controlling storage device
WO2014188479A1 (ja) * 2013-05-20 2014-11-27 株式会社日立製作所 ストレージ装置及びストレージ装置の制御方法
JP2015162002A (ja) * 2014-02-26 2015-09-07 富士通株式会社 記憶制御装置、記憶制御方法および記憶制御プログラム
WO2015162758A1 (ja) * 2014-04-24 2015-10-29 株式会社日立製作所 ストレージシステム
US10990535B2 (en) 2017-04-20 2021-04-27 Fujitsu Limited Storage control apparatus and storage control method for deduplication
US11080638B2 (en) 2017-04-27 2021-08-03 Toyota Jidosha Kabushiki Kaisha Analysis technique presenting system, method, and program
US10862812B2 (en) 2018-01-18 2020-12-08 Toyota Jidosha Kabushiki Kaisha Information processing apparatus, data management system, data management method, and non-transitory computer readable medium storing program
JP2020030707A (ja) * 2018-08-24 2020-02-27 富士通株式会社 情報処理装置、情報処理プログラム、情報処理方法及び情報処理システム
JP2021022324A (ja) * 2019-07-30 2021-02-18 富士通株式会社 記憶制御装置および記憶制御プログラム

Also Published As

Publication number Publication date
EP2042980A2 (en) 2009-04-01
EP2042980A3 (en) 2011-04-13
US8209595B2 (en) 2012-06-26
JP5331323B2 (ja) 2013-10-30
US20120017054A1 (en) 2012-01-19
US8051367B2 (en) 2011-11-01
EP2042980B1 (en) 2013-02-13
US20090083610A1 (en) 2009-03-26

Similar Documents

Publication Publication Date Title
JP5331323B2 (ja) ストレージサブシステム及びその制御方法
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
JP4634157B2 (ja) ストレージシステム
JP4646526B2 (ja) 記憶制御システム及び同システムの制御方法
US7401197B2 (en) Disk array system and method for security
US7653792B2 (en) Disk array apparatus including controller that executes control to move data between storage areas based on a data protection level
JP5117748B2 (ja) 暗号化機能を備えたストレージ仮想化装置
US7506187B2 (en) Methods, apparatus and controllers for a raid storage system
US20070162692A1 (en) Power controlled disk array system using log storage area
WO2015145724A1 (ja) ストレージシステム
US20060155944A1 (en) System and method for data migration and shredding
US20150095696A1 (en) Second-level raid cache splicing
JP5635621B2 (ja) ストレージシステム及びストレージシステムのデータ転送方法
US20110191520A1 (en) Storage subsystem and its data processing method
WO2014188479A1 (ja) ストレージ装置及びストレージ装置の制御方法
JP2007524932A (ja) パリティデータを生成するための方法、システム、及びプログラム
JPH09288547A (ja) アレイ型記憶装置
US8566558B2 (en) Storage apparatus and data management method
WO2017212515A1 (ja) ストレージシステム、計算機、およびストレージ制御方法
JP5691234B2 (ja) ディスクアレイ装置、及び、ミラーリング制御方法
US20240103731A1 (en) Non-volatile storage device offloading of host tasks
US20240103756A1 (en) Non-volatile storage device offloading of host tasks
US20240103765A1 (en) Non-volatile storage device offloading of host tasks
US11221790B2 (en) Storage system
JP5606583B2 (ja) ストレージ装置及び同装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120723

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130619

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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130729

R150 Certificate of patent or registration of utility model

Ref document number: 5331323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees