JP2007004720A - ストレージ装置およびストレージ装置のデータ転送方法 - Google Patents

ストレージ装置およびストレージ装置のデータ転送方法 Download PDF

Info

Publication number
JP2007004720A
JP2007004720A JP2005187105A JP2005187105A JP2007004720A JP 2007004720 A JP2007004720 A JP 2007004720A JP 2005187105 A JP2005187105 A JP 2005187105A JP 2005187105 A JP2005187105 A JP 2005187105A JP 2007004720 A JP2007004720 A JP 2007004720A
Authority
JP
Japan
Prior art keywords
data
data transfer
host
storage device
check code
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.)
Pending
Application number
JP2005187105A
Other languages
English (en)
Inventor
Eiji Ikeda
英二 池田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005187105A priority Critical patent/JP2007004720A/ja
Priority to US11/227,076 priority patent/US20060294449A1/en
Publication of JP2007004720A publication Critical patent/JP2007004720A/ja
Pending legal-status Critical Current

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 従来、ストレージ装置のデータ転送方法は画一的なものであり、ブロックデータをホストとの間で好適に転送することが難しい場合もあった。
【解決手段】 ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理L1と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理L2と、を備え、前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択し、該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行うように構成する。
【選択図】 図4

Description

本発明は、ストレージ装置およびストレージ装置のデータ転送方法に関し、特に、実データおよびチェックコードを有するブロックデータをホストとの間で転送するストレージ装置およびストレージ装置のデータ転送方法に関する。
従来、例えば、RAID(Redundant Arrays of Independent (Inexpensive) Disks)装置などのストレージ装置は、書き込み処理として、ホストから送信されてきた実データ(ユーザデータ)に対してチェックコードを付加し、そのチェックコードを含めたデータを自ストレージ装置(例えば、ハードディスク装置:HDD:Hard Disk Drive)に書き込み、また、読み出し処理として、チェックコードによるチェックを行うと共に、そのチェックコードを除いた実データのみの形式としてホストに転送している。ここで、ブロックデータは、例えば、実データが512バイトでチェックコードが8バイトの520バイトのブロック長のデータとして構成される。
従来、ブロックデータをストレージ装置とホスト間で転送する方式として、ストレージ装置内でチェックコードによるチェックを行った後、チェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式が知られている。また、従来、チェックコードを含んだ状態で一次バッファ(キャッシュ)上でチェックコードによるチェックを行った後、保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式も考えられている。
ところで、従来、実データの転送を阻害することなく、データが正常にストレージ装置に書き込まれたかどうかをデータ転送元のホストで知るデータ転送システムとして、ホストとストレージ装置との間に、システムバスを介して、データバッファ,CRCチェック回路およびブロックCRCコード→CRC変換回路を有するホストアダプタと、データバッファおよびブロックCRCコード生成回路を有するメモリアダプタと、を設けるものが知られている(例えば、特許文献1参照)。
特開2002−351689号公報
上述したように、従来、ブロックデータをストレージ装置とホスト間で転送する方式として、ストレージ装置内でチェックコードによるチェックを行った後、チェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式が知られており、また、チェックコードを含んだ状態で一次バッファ(キャッシュ)上でチェックコードによるチェックを行った後、保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式が考えられている。
FC(Fibre Channel)やiSCSI(Internet Small Computer System Interface)などの制御チップに対してデータ転送を指示する場合、転送アドレスとカウントのペアで構成されるデータ転送リストを使用する。このリストに着目すると、ストレージ装置内でチェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式(第1のデータ転送処理)では、例えば、二次バッファ内のまとまった512バイト単位のデータを指定するためにリストの個数が1個となる(転送アドレスとカウントのペアは1ペア)。
一方、チェックコードを含んだ状態で一次バッファに一時的に保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式(第2のデータ転送処理)では、一次バッファ上の520バイト単位のデータを512バイト単位で細分化指定するためにブロック数と同じ個数必要となる(転送アドレスとカウントのペアは複数ペアであり、その個数は転送ブロック数と同じ)。
ここで、FCは、シリアル転送を行うためのインタフェースの1つでホストとの高速転送および長距離伝送が可能なものであり、また、iSCSIは、SCSIコマンド/データをTCP/IPパケットの伝送フレームの中に包み込み、IPネットワーク経由で送受信するためのプロトコル規格である。
なお、本明細書では、主としてストレージ装置から読み出されたデータをホストへ転送する場合を説明するが、ホストから転送されたデータをストレージ装置へ書き込む場合も同様である。なお、チェックコード周りの動作に関し、読み出しではチェックコードによるチェックを行い、正常ならチェックコードを取り除くのに対して、書き込みではチェックコードを計算して付加するようになっている。
ところで、上述した第1および第2のデータ転送処理は、CPUの能力および二次バッファのサイズ等といったハードウェア構成によって差異はあるものの、概して以下のような特性がある。
すなわち、第1のデータ転送処理は、大容量のブロックアクセスに対しては有利であるが、二次バッファ12の容量が少ない場合には該二次バッファが枯渇するおそれがあり、その場合には性能が低下してしまう。一方、第2のデータ転送処理は、小容量のブロックアクセスに対しては有利であるが、制御チップ11に負担を掛ける傾向がある。なお、第2のデータ転送処理が有利として働く小容量のブロックアクセスとしては、CPUの能力等に大きく依存するが、例えば、数KB〜数10KB程度のブロックアクセス容量である。
このように、第1のデータ転送処理は、二次バッファ12の容量が少ない場合には該二次バッファが枯渇して性能の低下を来たすことになり、また、第2のデータ転送処理は、ブロックアクセスの容量が大きくなると制御チップに負担が掛かってやはり性能が低下することになる。すなわち、上述した第1および第2のデータ転送処理には、それぞれ長所および短所があり、どちらか一方のみを採用した場合には必ず短所が存在することになっていた。
さらに、従来、図1に示す第1のデータ転送処理において、例えば、チェックコードの処理を専用のハードウェアで構成して、第1のデータ転送処理を高速化する手法も提案されていた。しかしながら、このようにチェックコードの処理を専用のハードウェアで行うようにした場合、例えば、チェックコードの構成が変わったとき等にはハードウェア自身を変更しなければならず、融通が利かないといった問題がある。
本発明は、上述した従来のストレージ装置のデータ転送技術が有する課題に鑑み、ブロックデータをホストとの間で好適に転送することのできるストレージ装置およびストレージ装置のデータ転送方法の提供を目的とする。
本発明の第1の形態によれば、ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択し、該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法が提供される。
本発明の第2の形態によれば、ブロックデータをホストとの間で転送するストレージ装置であって、前記ブロックデータを記憶する記憶手段と、実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、前記ホストとの間のインタフェースを制御する制御チップと、前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第1のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置が提供される。
本発明の第3の形態によれば、ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、コンピュータに、前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択させ、該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラムが提供される。
本発明によれば、ブロックデータをホストとの間で好適に転送することのできるストレージ装置およびストレージ装置のデータ転送方法の提供が可能となる。
以下、本発明に係るストレージ装置およびストレージ装置のデータ転送方法の実施例を、添付図面を参照して詳述する。
図1は本発明に係るストレージ装置の一実施例における第1のデータ転送処理を説明するための図である。図1において、参照符号1はストレージ装置を示し、2はホストを示している。
ストレージ装置1は、制御チップ11,二次バッファ12,一次バッファ(キャッシュ)13およびハードディスク装置14を備える。制御チップ11は、例えば、FCやiSCSIなどの制御チップであり、この制御チップ11によりFCやiSCSIなどのホストインタフェースを介してホスト2との間でデータのやりとりを行う。なお、以下の説明では、主としてストレージ装置1からデータを読み出してホスト2へ転送する場合を説明するが、ホスト2からのデータをストレージ装置1へ書き込む場合も同様である。
一次バッファ13は、例えば、複数のハードディスク装置(HDD:Hard Disk Drive)14から読み出されたブロックデータを520バイト単位で一時的に保持している。ここで、1つのブロックデータは、例えば、512バイトの実データと8バイトのチェックコードで構成されている。
二次バッファ12は、8バイトのチェックコードを除いた512バイト化されたデータ(実データのみ)を取り出して保持する。なお、1ブロックのデータサイズ、或いは、1ブロックにおける実データとチェックコードのサイズ等は、上述した構成に限定されるものではなく、様々に変化させることができるのはいうまでもない。
制御チップ11は、二次バッファ12から512バイト単位のデータをまとめて指定する。具体的に、例えば、二次バッファ12には、一次バッファ13に保持されたアドレス#A〜#Dの520バイトのブロックデータのうち各実データ512バイトのみを格納する。このとき、チェックコードのチェックとチェックコードの取り除きが行われる。その後、制御チップ11は、例えば、アドレス#Eと4ブロック分のカウント数(2048)を与えることにより、#A〜#Dの4ブロック分の実データが連続してホストインタフェースを介してホスト2へ転送される。
このように、本実施例のストレージ装置における第1のデータ転送処理は、制御チップ11に対しては、1行だけのアドレスおよびカウント数の指定により、連続する複数ブロックのデータ(実データ)を読み出すようになっている。
なお、ホスト2から転送されたデータをストレージ装置1へ書き込む場合は、ホスト2からのデータ(実データ)がホストインタフェースおよび制御チップ11を介してそのまま二次バッファ12に転送される。このとき、制御チップ11には1行だけのアドレスおよびカウント指定となる。その後、さらに、二次バッファ12からの512バイト毎の実データに8バイトのチェックコードがそれぞれ付加されて一次バッファ13に保持される。そして、この512バイトの実データおよび8バイトのチェックコードで構成される520バイトのブロックデータがハードディスク装置14に書き込まれる。
このように、ホスト2から転送されたデータをストレージ装置1へ書き込む場合も、前述したストレージ装置1から読み出したデータをホスト2へ転送する場合と同様に、第1のデータ転送処理は、ブロックデータからチェックコードを除いた実データだけを一時的に二次バッファ12に保持することになる。
図2は本発明に係るストレージ装置の一実施例における第2のデータ転送処理を説明するための図である。
図2と図1との比較から明らかなように、本実施例のストレージ装置における第2のデータ転送処理は、制御チップ11が一次バッファ13から直接各アドレスの実データを取り込むようになっている。すなわち、制御チップ11は、一次バッファ13に保持されたアドレス#A〜#Dの520バイトのデータからそれぞれ8バイトのチェックデータを取り除き、それぞれアドレス#A〜#Dおよびカウント数(512)を与えることにより、#A〜#Dの各512バイトの実データを順次ホスト2へ転送する。
このように、本実施例のストレージ装置における第2のデータ転送処理では、ブロック数と同じ行数のアドレス指定を行って複数ブロックのデータ(実データ)を読み出すようになっている。
なお、ホスト2から転送されたデータをストレージ装置1へ書き込む場合は、ホスト2からのデータは、ホストインタフェースおよび制御チップ11を介して512バイトの実データと、その後の8バイト分のアドレスをスキップし、順次一次バッファ13へ格納し、各アドレスの512バイトの実データに対応するチェックコードを上記の8バイトスキップしたデータ個所に埋め込んで、512バイトの実データおよび8バイトのチェックコードで構成される520バイトのブロックデータをハードディスク装置14に書き込む。
このように、ホスト2から転送されたデータをストレージ装置1へ書き込む場合も、前述したストレージ装置1から読み出したデータをホスト2へ転送する場合と同様に、第2のデータ転送処理は、二次バッファ12を使用してブロックデータからチェックコードを除いた実データだけを保持することなく、実データおよびチェックコードをアドレス毎に細分化して制御することになる。
ここで、前述したように、第1のデータ転送処理は、大容量のブロックアクセスに対しては有利であるが、二次バッファ12の容量が少ない場合には該二次バッファが枯渇するおそれがあり、その場合には性能が低下してしまう。また、第2のデータ転送処理は、小容量のブロックアクセスに対しては有利であるが、制御チップ11に負担を掛ける傾向があり、やはり性能の低下を来たすことになる。
そこで、本発明は、上述した第1のデータ転送処理および第2のデータ転送処理を、ストレージ装置の内部で動的に切り替えることで、両者の長所を生かすと共に短所を補うようにして、ストレージ装置とホストとの間のデータ転送を行うものである。
本発明は、例えば、大容量アクセス時は第1のデータ転送処理を行い、また、小容量アクセス時は第2のデータ転送処理を行うものであり、さらに、ストレージ装置のその時々の状態に応じて、すなわち、現在処理中の全アクセスのブロック量、二次バッファの空き容量(或いは、使用している容量)、さらには、ホストインタフェース制御チップの能力等に応じて、第1のデータ転送処理および第2のデータ転送処理を切り替え、ストレージ装置とホストとの間のデータ転送処理の性能を最大限に発揮させるものである。
図3は本発明に係るストレージ装置の一実施例におけるコアの判断部の処理を概念的に説明するための図である。
図3に示されるように、コアの判断部100は、例えば、チップの負荷101、起動中のデータ転送量102、これから起動するデータ転送量103および二次バッファの空き容量104等のストレージ装置の負荷状態に応じて、前述した第1のデータ転送処理および第2のデータ転送処理のどちらを選択するかを判断する。
すなわち、コアの判断部100(コア)に対して、実際にデータ転送を実施する直前に、チップの負荷101、起動中のデータ転送量102、これから起動するデータ転送量103および二次バッファの空き容量104の4つのパラメータを入力し、これから行う転送が第1のデータ転送処理或いは第2のデータ転送処理のどちらが高速に行えるかを予測し、その結果を出力すると共に、その結果によって判断された転送方法によって生じる新たな各パラメータを現在のパラメータに加算・フィードバックすることで次回の判断にも使用する。そして、転送が終了した時点で、各パラメータ値より減算および再計算等、フィードバックを行う。なお、ストレージ装置のホストインタフェースポートは、1つに限定されず、複数存在する場合もある。このため、上記の各パラメータは、ホストインタフェースポート毎(制御チップポート毎)に管理される。
ここで、コアの判断部100は、例えば、単に1つのコマンドによるデータ転送量や制御チップの負荷を見るのではなく、連続する複数のコマンドによる総合的なデータ転送量や実際にそれらのコマンドによる制御チップの負荷等に基づいて、第1のデータ転送処理或いは第2のデータ転送処理の選択を行うようになっている。なお、コアの判断部100に入力するパラメータとしては、上述したチップの負荷101、起動中のデータ転送量102、これから起動するデータ転送量103および二次バッファの空き容量104の4つに限定されないのはもちろんである。
図4は本発明に係るストレージ装置における第1および第2のデータ転送処理の切り替えの様子を説明するための図である。なお、図4において、参照符号L1は図1を参照して説明したような第1の転送処理を示し、また、L2は図2を参照して説明したような第2の転送処理を示す。
まず、図1を参照して説明した第1のデータ転送処理L1は、データ転送が二段になっているために、CPUの能力等に依存するが、例えば、データの容量が数KB〜数10KB、或いは、数100KB〜数MB程度を閾値(一定の基準)として、それよりもブロックアクセス容量が小さいと、第2のデータ転送処理L2よりも性能が劣る。しかしながら、第1のデータ転送処理L1は、例えば、上記の閾値を超える大容量のデータ転送においては、安定して性能は伸びることになる。
一方、図2を参照して説明した第2のデータ転送処理L2は、データ転送が一段であるため、小容量のデータ転送では第1のデータ転送処理L1に比較して良好な性能を得ることができる。しかしながら、第2のデータ転送処理L2は、上記の閾値を超える大容量のデータ転送においては、例えば、制御チップの限界が見え始め、アクセスサイズが或る時点以上から(データ転送容量が上記の閾値を超える辺りから)性能が伸びない。
そこで、本発明は、図4から明らかなように、データ容量が所定の閾値よりも小さい領域では第2のデータ転送処理L2を適用し、且つ、データ容量が所定の閾値よりも大きい領域では第1のデータ転送処理L1を適用することで、単一方式では得られない性能を引き出すことを可能とするものである。
なお、第1のデータ転送処理および第2のデータ転送処理の選択は、図3を参照して説明したように、例えば、チップの負荷、起動中のデータ転送量、これから起動するデータ転送量および二次バッファの空き容量等、そのときのストレージ装置の状態に応じても動的に行う。これにより、小容量アクセスであっても同時に実行するコマンド数が多い場合等においても制御チップが限界に達してしまったり、或いは、大容量であっても制御チップの能力を引き出すことができずに二次バッファが枯渇してしまうといった問題を回避することが可能となる。
なお、本発明に係るストレージ装置のデータ転送方法は、例えば、RAID装置等のストレージ装置におけるファームウェア(プログラム)として提供され得る。また、このプログラムは、例えば、フラッシュEEPROMや他の記録媒体に格納してユーザに提供することも可能である。
(付記1)
ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、
前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、
前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択し、該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法。
(付記2)
付記1に記載のストレージ装置のデータ転送方法において、前記第1または第2のデータ転送処理の選択は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持する二次バッファの空き容量に応じて行うことを特徴とするストレージ装置のデータ転送方法。
(付記3)
付記2に記載のストレージ装置のデータ転送方法において、前記第1または第2のデータ転送処理の選択は、前記ストレージ装置における前記制御チップの負荷、前記起動中のデータ転送量、前記これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じた前記ストレージ装置の負荷状態を示す所定の値を、予め設定した閾値と比較して前記第1または第2のデータ転送処理を選択することを特徴とするストレージ装置のデータ転送方法。
(付記4)
付記3に記載のストレージ装置のデータ転送方法において、前記第1または第2のデータ転送処理の選択は、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも小さい場合には前記第2のデータ転送処理を選択し、且つ、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも大きい場合には前記第2のデータ転送処理を選択することを特徴とするストレージ装置のデータ転送方法。
(付記5)
付記1に記載のストレージ装置のデータ転送方法において、前記第1または第2のデータ転送処理の選択は、前記ストレージ装置のホストインタフェースポート毎に行うことを特徴とするストレージ装置のデータ転送方法。
(付記6)
ブロックデータをホストとの間で転送するストレージ装置であって、
前記ブロックデータを記憶する記憶手段と、
実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、
前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、
前記ホストとの間のインタフェースを制御する制御チップと、
前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第1のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置。
(付記7)
付記6に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じて前記第1または第2のデータ転送処理を選択することを特徴とするストレージ装置。
(付記8)
付記7に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における前記制御チップの負荷、前記起動中のデータ転送量、前記これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じた前記ストレージ装置の負荷状態を示す所定の値を、予め設定された閾値と比較して前記第1または第2のデータ転送処理を選択することを特徴とするストレージ装置。
(付記9)
付記8に記載のストレージ装置において、前記選択手段は、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも小さい場合には前記第2のデータ転送処理を選択し、且つ、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも大きい場合には前記第2のデータ転送処理を選択することを特徴とするストレージ装置。
(付記10)
付記6に記載のストレージ装置において、前記選択手段は、前記ストレージ装置のホストインタフェースポート毎に前記第1または第2のデータ転送処理を選択することを特徴とするストレージ装置。
(付記11)
ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、
コンピュータに、
前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択させ、
該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラム。
本発明は、実データおよびチェックコードを有するブロックデータをホストとの間で転送する様々なストレージ装置に対して幅広く適用することができる。
本発明に係るストレージ装置の一実施例における第1のデータ転送処理を説明するための図である。 本発明に係るストレージ装置の一実施例における第2のデータ転送処理を説明するための図である。 本発明に係るストレージ装置の一実施例におけるコアの判断部の処理を概念的に説明するための図である。 本発明に係るストレージ装置における第1および第2のデータ転送処理の切り替えの様子を説明するための図である。
符号の説明
1 ストレージ装置
2 ホスト
11 制御チップ
12 二次バッファ
13 一次バッファ(キャッシュ)
14 ハードディスク装置
100 コアの判断部
101 制御チップの負荷
102 起動中のデータ転送量
103 これから起動するデータ転送量
104 二次バッファの空き容量
L1 第1のデータ転送処理
L2 第2のデータ転送処理

Claims (5)

  1. ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、
    前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、
    前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択し、該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法。
  2. 請求項1に記載のストレージ装置のデータ転送方法において、前記第1または第2のデータ転送処理の選択は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持する二次バッファの空き容量に応じて行うことを特徴とするストレージ装置のデータ転送方法。
  3. ブロックデータをホストとの間で転送するストレージ装置であって、
    前記ブロックデータを記憶する記憶手段と、
    実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、
    前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、
    前記ホストとの間のインタフェースを制御する制御チップと、
    前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第1のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置。
  4. 請求項3に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じて前記第1または第2のデータ転送処理を選択することを特徴とするストレージ装置。
  5. ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第1のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第2のデータ転送処理と、を備え、
    コンピュータに、
    前記ストレージ装置の負荷状態に応じて前記第1または第2のデータ転送処理を選択させ、
    該選択された第1または第2のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラム。
JP2005187105A 2005-06-27 2005-06-27 ストレージ装置およびストレージ装置のデータ転送方法 Pending JP2007004720A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005187105A JP2007004720A (ja) 2005-06-27 2005-06-27 ストレージ装置およびストレージ装置のデータ転送方法
US11/227,076 US20060294449A1 (en) 2005-06-27 2005-09-16 Storage device that transfers block data containing actual data and check code from storage device to host computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005187105A JP2007004720A (ja) 2005-06-27 2005-06-27 ストレージ装置およびストレージ装置のデータ転送方法

Publications (1)

Publication Number Publication Date
JP2007004720A true JP2007004720A (ja) 2007-01-11

Family

ID=37569061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005187105A Pending JP2007004720A (ja) 2005-06-27 2005-06-27 ストレージ装置およびストレージ装置のデータ転送方法

Country Status (2)

Country Link
US (1) US20060294449A1 (ja)
JP (1) JP2007004720A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843803B2 (en) 2011-04-01 2014-09-23 Cleversafe, Inc. Utilizing local memory and dispersed storage memory to access encoded data slices
CN204496890U (zh) * 2015-04-10 2015-07-22 京东方科技集团股份有限公司 显示驱动电路及显示装置
CN113190384B (zh) * 2021-05-21 2022-07-22 重庆紫光华山智安科技有限公司 基于纠删码的数据恢复控制方法、装置、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US6725331B1 (en) * 1998-01-07 2004-04-20 Emc Corporation Method and apparatus for managing the dynamic assignment resources in a data storage system
JP2002132141A (ja) * 2000-10-20 2002-05-09 Sony Corp データ記憶装置、およびデータ記録方法、データ再生方法、並びにプログラム提供媒体
JP2002351689A (ja) * 2001-05-30 2002-12-06 Nec Corp データ転送システム

Also Published As

Publication number Publication date
US20060294449A1 (en) 2006-12-28

Similar Documents

Publication Publication Date Title
JP4704759B2 (ja) フラッシュメモリのデータ管理装置及びその方法
JP5284905B2 (ja) データ移行方法、及びプログラム
JP4768504B2 (ja) 不揮発性フラッシュメモリを用いる記憶装置
US7272687B2 (en) Cache redundancy for LSI raid controllers
US7765339B2 (en) Distributed addressing in solid-state storage
US7958280B2 (en) Parallel data transfer in solid-state storage
JP4429780B2 (ja) 記憶制御装置、制御方法、および制御プログラム。
US20070162692A1 (en) Power controlled disk array system using log storage area
US20030212865A1 (en) Method and apparatus for flushing write cache data
US7380090B2 (en) Storage device and control method for the same
US20080140919A1 (en) Multi-channel solid-state storage system
JP2007233522A (ja) Dmaデータ転送装置及びdmaデータ転送方法
JP5152006B2 (ja) 記憶装置、記憶装置のデータ転送方法
JP2012063817A (ja) 通信装置
JP2004086503A (ja) メモリカード認識システム、メモリカード・ホスト機器、メモリカード、記憶領域切り替え方法及び記憶領域切り替えプログラム
JP4719801B2 (ja) デバイス管理装置、デバイス初期化方法、デバイス初期化プログラムおよびデバイスシステム
JP2007193439A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP2007004720A (ja) ストレージ装置およびストレージ装置のデータ転送方法
JP2019204463A (ja) ストレージシステム及びその制御方法
JP2002202912A (ja) 記録装置、記録制御方法、及びプログラム
US20100325373A1 (en) Duplexing Apparatus and Duplexing Control Method
JP5018060B2 (ja) 情報処理装置および情報処理方法
JP2006040011A (ja) ディスクアレイシステム
JP2008210226A (ja) ホストとusbストレージデバイス間のデータ転送方法
JP2006113882A (ja) データ管理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090120

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090707