JP2008016025A - アクティブな書込みゾーンの反転によるコマンド・キューの順序づけ - Google Patents
アクティブな書込みゾーンの反転によるコマンド・キューの順序づけ Download PDFInfo
- Publication number
- JP2008016025A JP2008016025A JP2007172793A JP2007172793A JP2008016025A JP 2008016025 A JP2008016025 A JP 2008016025A JP 2007172793 A JP2007172793 A JP 2007172793A JP 2007172793 A JP2007172793 A JP 2007172793A JP 2008016025 A JP2008016025 A JP 2008016025A
- Authority
- JP
- Japan
- Prior art keywords
- active zone
- zone
- storage
- data
- data storage
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】仮想記憶空間内のコマンド・キューを順序づけ、アクチュエータをショート・ストロークして平均シーク距離を小さくする装置および方法を提供する。
【解決手段】記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域101と、アクティブ・ゾーンに向かうアクチュエータ124をショート・ストロークするためのコマンド・キュー・コントローラ198とを備えるデータ記憶システム104を提供する。また記憶空間を仮想化して、ユーザ・データを第1の領域に、冗長データを第2の領域に記憶し、各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割し、検索アクセス・コマンドに関連するLBAをどの領域のアクティブ・ゾーンが含むかに従って第1領域と第2領域の一方からの検索アクセス・コマンドを実行する方法を提供する。
【選択図】図1
【解決手段】記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域101と、アクティブ・ゾーンに向かうアクチュエータ124をショート・ストロークするためのコマンド・キュー・コントローラ198とを備えるデータ記憶システム104を提供する。また記憶空間を仮想化して、ユーザ・データを第1の領域に、冗長データを第2の領域に記憶し、各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割し、検索アクセス・コマンドに関連するLBAをどの領域のアクティブ・ゾーンが含むかに従って第1領域と第2領域の一方からの検索アクセス・コマンドを実行する方法を提供する。
【選択図】図1
Description
本発明は一般にコンピュータ・システム内の処理能力を強化することに関するものであって、より詳しくは、機器および関連する方法に制限なく、仮想記憶空間内のコマンド・キューの順序づけをして、ショート・ストロークを絶えず用いて平均シーク距離を小さくすることに関するものである。
コンピュータ・システムは、入力装置、出力装置、1個以上のCPUおよび記憶装置(半導体RAM、EEPROM、ディスク・ドライブ、CDドライブ、その他の記憶媒体を含んでよい)、およびインテリジェント・コントローラで構成してよい。オペレーティング・システムは種々の周辺装置の構成(例えば、ディスプレイ・アダプタおよびネットワーク・インターフェースなど)を制御してよく、またアプリケーション環境やデータ・システム(ファイルを作成し、変更し、または削除するときに記憶容量を割り当てたり割当てを解除したりする)を提供する。
またサーバや記憶アレイなどの特殊なコンピュータ・システムは、ネットワークまたはその他の接続を通してアクセスできる記憶容量を割り当てるためのシステムを用いる。データは、例えば独立ドライブの冗長アレイ(RAID)などの冗長記憶フォーマットで、複数のディスク・ドライブにまたがって記憶してよい。ユーザ・データおよび任意のミラー・データまたはパリティ・データ(冗長データ)は、1台以上のディスク・ドライブ上の1つ以上の領域にマップされる。1台以上のディスク・ドライブにデータを記憶する方法を記述する構成情報は、表内にまたはメタデータと呼ぶその他のデータ構造内に含まれる。ファイルを作成し、変更し、または削除したときは、メタデータを更新して、記憶容量の割当てまたは割当て解除を反映する。
ホストのアクセス・コマンド(記憶コマンドおよび検索コマンド)を記憶アレイに送るときのコンピュータ・システムの性能は、アクセス・コマンドをキャッシュに書き込み、これをすぐにホストに通知することにより強化することができる。これにより、システムから要求があるたびにシステム資源を全体的に調べることに比べて、記憶アレイとキャッシュとの間の実際の転送を最適時間で行うことができる。例えば、現在システムがデータ記憶装置を他のタスクに必要としていないときは、コマンド・キュー内の未処理の多くのアクセス・コマンドを実行することができる。
しかし、コマンド・キューが長くなるとシステム処理能力が低下し、また受けたことは通知したがまだ実行していないアクセス・コマンドの数が余り多くなるとデータのミスマッチが大きな問題になる。このため、コマンド・キュー内のコマンドをできるだけ効率的に通すことが望ましい。
したがって、コマンド・キューを管理する方法を改善することが絶えず必要になる。本発明の実施の形態が一般に目指すのはかかる改善である。
したがって、コマンド・キューを管理する方法を改善することが絶えず必要になる。本発明の実施の形態が一般に目指すのはかかる改善である。
ここに実現しまた後でクレームするように、本発明の実施の形態は一般に、コマンド・キューを効率的にスケジューリングしてデータ記憶システムの処理能力を最大にすることを目指す。
或る実施の形態では、記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域と、アクティブ・ゾーンに向かうアクチュエータをショート・ストロークするためのコマンド・キュー・コントローラとを備えるデータ記憶システムを提供する。
或る実施の形態では、記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域と、アクティブ・ゾーンに向かうアクチュエータをショート・ストロークするためのコマンド・キュー・コントローラとを備えるデータ記憶システムを提供する。
別の実施の形態では、記憶空間を仮想化して、ユーザ・データを第1の領域に記憶し、冗長データを第2の領域に記憶する方法を提供する。この方法は更に、各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割する。この方法は更に、検索アクセス・コマンドに関連するLBAをどの領域のアクティブ・ゾーンが含むかに従って第1領域と第2領域の一方からの検索アクセス・コマンドを実行する。
別の実施の形態では、RAID記憶構成と、RAIDを形成するデータ記憶装置を絶えずショート・ストロークするようにコマンド・キュー内のコマンドを順序づけるための手段とを備えるデータ記憶装置を提供する。
本発明の実施の形態を特徴づけるこれらの特徴および利点は、以下の詳細な説明を読み、関連する図面を参照すれば明らかになる。
別の実施の形態では、RAID記憶構成と、RAIDを形成するデータ記憶装置を絶えずショート・ストロークするようにコマンド・キュー内のコマンドを順序づけるための手段とを備えるデータ記憶装置を提供する。
本発明の実施の形態を特徴づけるこれらの特徴および利点は、以下の詳細な説明を読み、関連する図面を参照すれば明らかになる。
本発明の実施の形態は、内蔵のまたは付属のデータ記憶装置を持つ、またはインテリジェント記憶システム内の、コンピュータまたはサーバなどの種々の環境で用いることができる。インテリジェント記憶システムはインテリジェント・コントローラおよびインターフェースを有し、また1つ以上のデータ記憶アレイを有してよい。本発明の好ましい実施の形態を実施するのに適した例示的な環境を示すために、図1に大容量記憶を用いるワイド・エリア・ネットワーク(WAN)として特徴づけられるコンピュータ・ベースのシステム100を示す。
システム100は、ホストA,B,Cでそれぞれ示す多数のホスト・コンピュータ102を含む。ホスト・コンピュータ102は構造106を介して、相互にまた1対のデータ記憶アレイ104(AおよびBでそれぞれ示す)と情報を交換する。構造106は好ましくはファイバ・チャネル・ベースの切換えネットワークとして特徴づけられるが、インターネットを含む他の構成を用いてもよい。
各アレイ104は1対のコントローラ108(A1,A2およびB1,B2で示す)と、RAIDとして動作するディスク・ドライブ(限定されない)としてここで特徴づけられる一組のデータ記憶装置101とを含む。コントローラ108およびデータ記憶装置101は好ましくは耐故障性配置を用いるので、種々のコントローラ108は並列の冗長リンクを用い、またシステム100が記憶するユーザ・データの少なくとも一部は少なくとも一組のデータ記憶装置101内に冗長フォーマットで記憶する。
更に、Aホスト・コンピュータ102およびAデータ記憶アレイ104は物理的に第1のサイトにあり、Bホスト・コンピュータ102およびBデータ記憶アレイ104は物理的に第2のサイト(AおよびCから離れた)にあり、Cホスト・コンピュータ102は更に第3のサイト(AおよびBから離れた)にあるとする。ただしこれは単なる例であって、制限するものではない。
図2は本発明の実施の形態に従って構築されたアレイ104を示す。それぞれが10個のデータ記憶装置114の容量を持つ2台の多重ドライブ・アレイ(MDA)101を用いる。MDA101は大容量記憶のための転換可能な複数のデータ記憶装置114を備える。「転換可能」とは、既存のMDA101内の1個以上のデータ記憶装置114を容易に置換し、追加し、または除去できること、または種々の数、サイズまたは配置のデータ記憶装置114をサポートすることができる異なるMDAを用いてよいことを意味する。「構成要素化」とは、記憶容量の一体となったブロックとしてアレイ104が機能的に提示できるように、MDA101内のデータ記憶装置114および関連する制御電子装置を集合的にまとめることを意味する。
図3は本発明の実施の形態を実施するのに適した1個のデータ記憶装置114の等角図を示す。しかし理解されるように、本発明の実施の形態はこれに限定されるものではない。
装置114は好ましくはベース116およびカバー118(一部を切り取って示す)を含み、全体で多数の構成要素のハウジングを形成する。構成要素はモータ120を含み、共に回転する1個以上の記憶媒体122をこれに固定する。記憶媒体122に近接してアクチュエータ組立体124があり、ボイス・コイル・モータ(VCM)126に電流を流すと軸受組立体の回りに旋回する。このようにして、VCM126を制御して動作させると、アクチュエータ124は記憶媒体122上を半径方向に動く。
アクチュエータ組立体124はロード・アーム130を支持するアクチュエータ・アーム128を含み、ロード・アーム130はその先端にヘッド132(または変換器)を支持して、近接する記憶媒体122との間でデータを転送する。各記憶媒体122を分割してデータ・トラックを形成してよく、またヘッド132はトラックからデータを検索しまたはトラックにデータを記憶するために位置決めすることができる。
ヘッド132と装置114の制御回路との間に必要な電気伝導経路を形成するためヘッド132は可撓回路を有する。その経路は、アクチュエータ組立体124上でヘッド132から、ロード・アーム組立体130およびアクチュエータ・アーム128に沿って、アクチュエータ組立体124の近接端(「Eブロック」と呼ぶことがある)で支持される回路部134まで伸びる。回路部134はヘッド132の可撓回路を、ベース116を通してプリント回路板(PCB)138まで延びる別の可撓回路136に接続する。PCB138に取りつけられた電気コネクタ140は装置114をはめ合いコネクタ(図示しない)に接続するための複数の接触子142を有し、例えば装置114が外部制御回路と通信できるようにする。
図4は図3の装置114の機能的ブロック図である。プログラマブル・コントローラ148は装置114のトップ・レベルの通信および制御を行う。インターフェース(I/F)150は、装置114と結合する外部装置との入出力(I/O)通信および転送を容易にする。読取り/書込み(R/W)チャネル154は、データ記憶動作中は記憶媒体122に書き込むデータを調整し、またデータ検索動作中は記憶媒体122から検索したデータを再構築して外部装置に転送できるようにする。
サーボ回路156は、記憶媒体122に記憶されているサーボ・データを用いるなどしてヘッド132の閉ループ位置決め制御を行う。サーボ回路156は好ましくは多数の制御機能を実行する。例えば、選択されたヘッドが記憶媒体122上の対応するトラックを追従するトラック追従動作や、選択されたヘッド132を開始トラックから宛先トラックまで移動させるシーク動作や、ヘッド132を待機ゾーンまたは構造に入れたり出したりして移動させるヘッド132ロード/アンロード動作などを含む。
サーボ回路156は必要な電流をVCM126のコイル160に与えて、記憶媒体122のトラックに対してヘッド132を選択的に移動させる。サーボ回路156は更に、好ましくはスピンドル・モータ120を制御するためのスピンドル・モータ・ドライバ回路162を含む。これらのサーボ機能実行の処理要求は、好ましくはディジタル信号処理プロセッサ(DPS)164またはサーボ回路156の他の処理装置(ARMなど)から与える。また単一プロセッサ環境では、サーボ処理はトップ・レベル・コントローラ148から与える。
図2に戻って、棚168は空洞170を定義し、バックプレーン172と通信できるようにそれぞれの中にMDA101を受けて係合する。同様に、棚168は他の電気モジュールを受けてバックプレーン172と係合するための空洞を定義する。他の電気モジュールは、記憶コントローラ108、電池176、電源178、およびインターフェース180などであるが、これらに限定されない。
図5はコントローラ108の選択された1つを詳細に示す。コントローラ108は単一集積回路で実現し、または必要に応じて多数の離散回路に分散して、実現してよい。主プロセッサ182(好ましくは、プログラマブル・コンピュータ・プロセッサとして特徴づけられる)は、好ましくは不揮発性メモリ184(フラッシュ・メモリなど)およびダイナミック・ランダム・アクセス・メモリ(DRAM)186内に記憶されたプログラミング・ステップおよび処理データに従って制御する。
構造インターフェース(I/F)188は構造106を介して他のコントローラ108およびホスト・コンピュータ102と通信し、装置I/F回路190は記憶装置114と通信する。I/F回路188,190および経路コントローラ192は、キャッシュ・メモリ194を用いるなどして、記憶アレイ104とホスト102との間でコマンドおよびデータを渡すための通信路を形成する。離散的に図示したが、理解されるように、経路コントローラ192およびI/F回路188,190は一体で構築してよい。
好ましくは、ホストの処理性能を高めるため、書込みコマンドをキャッシュ・メモリ194内にライトバック・キャッシュして、コマンド・キュー196内に未処理として保つ。経路コントローラ192のコマンド・キュー・コントローラ198の部分は、本発明の実施の形態に従って、書込みコマンドならびに優先順位の高い読取りコマンドを通す順序を決める。
各データ記憶装置114の容量を結合した容量で定義されるアレイ104のデータ記憶容量を編成して、アレイ104に書き込みまたアレイ104から読み取ることのできる論理装置を形成する。システム構成情報は、ユーザ・データならびに任意の関連するパリティおよびミラー・データ(冗長データ)とそれぞれの記憶位置との関係を定義する。システム構成情報は更に、データに割り当てられた記憶容量のブロックとメモリ記憶位置(論理ブロック・アドレス(LBA)など)との関係を定義する。システム構成情報は更に、論理ブロック・アドレスにマップされる仮想ブロック・アドレスを定義することによる仮想化を含んでよい。
本発明の実施の形態は、複数のデータ記憶装置114にわたってマップされるデータ記憶グリッド構造を用いる。データ・グリッドは複数の記憶領域内の複数の連続したデータ・ブロックを含む。記憶領域毎の各複数のデータ・ブロックの第1のデータ・ブロックは一般に同じアドレス(グリッド・ベース・アドレスと呼ぶ)にあるのでアドレス生成は簡単である。しかし、2つ以上の記憶領域では異なるベース・アドレスを用いてよい。グリッドは予め定義された量のデータ記憶空間を形成する。1つのグリッド内のデータ記憶空間の量を1つの論理ユニットに割り当ててよく、各グリッドは簡単なメタデータ・オーバーヘッドで実質的にマップしてよい。
図6は、同じサイズのデータ・ブロックの二次元アレイとして見てよいデータ記憶グリッドを示す。アレイの列はデータ記憶装置114に対応し、行は各データ記憶装置114内の同じLBAで始まるデータ・ブロックに対応する。したがって、図6のデータ記憶グリッドでは、A,B,C,D,E,F,G,Hで示すデータ記憶装置114(領域)と交差してデータ・ブロックのアレイを定義する複数の行200を有する。
グリッド内のデータ・ブロックのサイズ(記憶容量)は同じであるが、特定のサイズに限定されるわけではない。データ・ブロックのサイズは記憶システムを設計するときに指定してよく、そのシステム内のデータ記憶装置のサイズ(記憶容量)、ユーザ・アプリケーション、コントローラ・ハードウエアおよびソフトウエア、およびその他の要因を反映してよい。行200は連続的であって、グリッドの隣接する行の間には定義されない記憶空間はない。グリッド内の第1行の開始アドレスはグリッドのベース・アドレスとして働き、ベース・アドレスがデータ記憶ブロックのサイズとグリッド内の行数との積の倍数のアドレスになるように各グリッドを定義してよい。
グリッドに番号をつけてよく、1つのグリッド内に含まれる記憶容量はグリッドのポインタを用いて割り当ててよい。ポインタ表はポインタとグリッド番号とを関連づけるので、仮想化が容易になりまたメタデータ・オーバーヘッドを減らすことができる。アレイ内のデータ記憶装置の利用可能な記憶容量の一部を占める複数のグリッドを定義してよい。グリッドの一部のドライブまたはデータ・ブロックを予備に指定することにより、システム内の他のデータ記憶装置が故障した場合に再構築されたデータまたはコピーされたデータを記憶するのに用いられる追加の記憶容量を備えることができる。グリッド内の一部のデータ・ブロックを、主要なユーザ・データの記憶専用、または誤り回復のための冗長データの記憶専用にしてもよい。
図6のグリッドは、好ましくは水平および垂直の分割線202,204により4つの同じサイズの象限に分割される。垂直分割線204は最初の4つの領域A,B,C,Dと最後の4つの領域E,F,G,Hとを分離する。かかる分離は、例示の目的で以下の説明に用いるRAID1データ・システムを用いる際に有用である。すなわち、実行する記憶アクセス・コマンド毎に主(ユーザ)データを主領域A,B,C,D,の1つに記憶し、この主データをそれぞれの冗長領域E,F,G,H内にミラリングする。簡単のために、各領域内の同じLBAで始まるグリッドに仮想化記憶空間をマップする。更に、主領域A内に記憶されたデータを冗長領域E内にミラリングする、など。
水平分割線202は各領域をデータ記憶媒体122の外半分と内半分とに分離する。これにしたがって、象限をゾーン1およびゾーン2で示すゾーンの対にする。すなわち、ゾーン1は主領域A,B,C,Dの外半分と冗長領域E,F,G,Hの内半分とを含む。ゾーン2は主領域A,B,C,Dの内半分と冗長領域E,F,G,Hの外半分とを含む。
図7は図6のグリッドを簡単化した線図の一部であって、主記憶領域Aとその冗長記憶領域Eだけを示す。経路コントローラ192はゾーン1をアクティブ・ゾーンと指定したので、図に示すようにヘッド132はゾーン1内にあり、ゾーン1内の各トラックに向かって動くよう指示される。すなわち、領域A内のヘッド132は各データ記憶媒体122の外半分の付近だけ動くよう指示され、領域E内のヘッド132はその内半分の付近だけ動くよう指示される。
認識されるように、アクティブ・ゾーンとイナクティブ・ゾーンとは好ましくは重ならないので、主記憶領域Aのアクティブ・ゾーンは冗長記憶領域Eのアクティブ・ゾーン内に含まれるLBAとは異なるLBAを含む。しかし、好ましくは主記憶領域Aのアクティブ・ゾーン内のLBAと冗長記憶領域Eのアクティブ・ゾーン内のLBAとを結合すると2つの領域のそれぞれのLBAの全数を表すので、任意の読取りコマンドを2つの領域の一方または他方で実行することができる。
この配置では、コマンド・キュー・コントローラ198はゾーン1(アクティブ・ゾーン)向けのデータ記憶アクセス・コマンドだけを通す。ゾーン2(イナクティブ・ゾーン)向けの未処理のデータ記憶アクセス・コマンドはコマンド・キュー196内で未処理のままに保つ。イナクティブ・ゾーン向けの未処理のデータ記憶アクセス・コマンドの数が或るしきい値に達すると、図8に示すように、コマンド・キュー・コントローラ198はゾーンを反転させ、ゾーン2をアクティブに、そしてゾーン1をイナクティブにしてよい。
しかし、図7と図8のどちらの配置でも、優先順位の高いデータ検索アクセス・コマンドは、どのアクティブ領域がこのデータ検索アクセス・コマンドに関連するLBAを含むかに従って、受けるとすぐどちらかの領域に渡してよい。各ヘッド132は記憶媒体122の半分だけ動くように制限されるので、データ検索アクセス・コマンドが渡される領域は必ずショート・ストロークになり、したがってデータ・アクセスのシーク効率は高くなる。例えば、図7の条件(ゾーン1がアクティブ)ではLBA210に関連するデータ検索アクセス・コマンドは領域Aに渡されるが、図8の条件(ゾーン2がアクティブ)では同じデータ検索アクセス・コマンドは領域Eに渡される。どちらの場合もアクチュエータ124はショート・ストロークになり、シーク時間は短くなる。
図9は、本発明の実施の形態に従ってコマンド・キューを順序づける方法220の流れ図である。方法220はブロック222で始まり、経路コントローラ192はまずどのゾーンがアクティブか指定する。したがって、他のゾーンはデフォールトでイナクティブに指定する。
ブロック224で、現在コマンド・キュー196内に未処理の優先順位の高いデータ検索アクセス・コマンドがあるかどうか判定する。ブロック224の判定がイエスの場合は、ブロック226でコマンド・キュー・コントローラ198は要求されたデータがダーティ(dirty)かどうか判定する。ブロック226の判定がイエスの場合は、ブロック228でキャッシュ・ヒットを行ってデータ検索アクセス・コマンドを実行し、制御はブロック224に戻る。ブロック226の判定がノーの場合は、ブロック230で経路コントローラ192は未処理の検索コマンドに関連するLBAを含むアクティブ・ゾーンをどの領域が有するか判定する。ブロック232で、経路コントローラ192はこのアクティブ・ゾーンからデータを検索し、制御はブロック224に戻る。
ブロック224の判定がノーの場合は、ブロック234で経路コントローラ192はコマンド・キュー196が満杯(予め決められたしきい値より深い)かどうか判定する。ブロック224の判定がイエスの場合は、ブロック236で経路コントローラ192はアクティブ・ゾーンとイナクティブ・ゾーンとを反転させて、イナクティブ・ゾーン向けにこれまで蓄積された書込みコマンドをフラッシュする。
ブロック236で反転するステップを実行する前に、経路コントローラ192は多数の異なる方法のどれかで、アクティブ・ゾーンへの未処理の書込みコマンドを処理してよい。例えば或る実施の形態では、ゾーンを反転させる前に現在のアクティブ・ゾーンへの全て未処理の書込みコマンドを実行することによりコマンド・キューの深さをできる限り減らしてよい。または、反転応答を速くするために、ゾーンが再び反転するまで未処理の書込みコマンドをコマンド・キュー196内に保って、再びアクティブ・ゾーンに向けてよい。妥協案として、ブロック236で反転するステップを実行する前に、アクティブ・ゾーンへの予め決められた数の未処理の書込みコマンドを、またはすでに開始した書込みコマンドだけを、渡してよい。
次に制御はブロック238に進む。または、ブロック234の判定がノーの場合はすでにブロック238に進んでいるが、ここで未処理の書込みコマンドがダーティ・データに関連するかどうか判定する。ブロック238の判定がイエスの場合は、ブロック240で経路コントローラ192はキャッシュ・ヒットを行って未処理の書込みコマンドを実行し、制御はブロック224に戻る。ブロック238の判定がノーの場合は、ブロック242で経路コントローラ192は、1つの領域の中の現在アクティブなゾーンが含む、LBAに関連するコマンド・キュー196内の未処理の書込みコマンドを識別する。ブロック244で経路コントローラ192は、識別された未処理の書込みコマンドをアクティブ・ゾーンに渡す。
最後に、ブロック246で、コマンド・キュー196が空かどうか判定する。イエスの場合はこの方法は終わり、ノーの場合は制御はブロック224に戻る。
最後に、ブロック246で、コマンド・キュー196が空かどうか判定する。イエスの場合はこの方法は終わり、ノーの場合は制御はブロック224に戻る。
RAID1構成で用いられる本発明の例示の実施の形態は、各領域内に1つのアクティブ・ゾーンと1つだけのイナクティブ・ゾーンとを用いる。しかし別の実施の形態では、この一般的な方式を拡張して、1つのアクティブ・ゾーンと複数のイナクティブ・ゾーンとを用いてアクティブ・ゾーン内の平均シーク距離を更に小さくしてよい。例えば図10は、ユーザ・データ領域A,B,C,Dと行パリティ領域Eおよび列パリティ領域Fとを持ち、RAID1内で3つの構成で用いるのに適したデータ・グリッドを示す。認識されるように、この配置では任意の所定のときに各領域が1つのアクティブ・ゾーンと2つのイナクティブ・ゾーンとを有するように3つのゾーンを定義してよい。
上に説明した実施の形態では、コマンド・キュー・コントローラ198はMDA101内のコントローラ108内に含まれる。これらの説明は単なる例であって、本発明の範囲を制限するものではなく、またコマンド・キュー・コントローラの機能の一部または全てを、ホスト102内に、またはホストとMDA101との間の別の外部装置内に、またはデータ記憶装置114内に置くことも考えられる。
要約すると、本発明の好ましい実施の形態の特徴は、RAID記憶構成と、コマンド・キュー内のコマンドを順序づけてRAIDを形成するデータ記憶装置をショート・ストロークするための手段とを有するデータ記憶システムである。この説明から当業者が理解するように、この説明およびクレームの目的では、「コマンドを順序づけるための手段」という用語の意味はRAIDを形成する複数の領域内でそれぞれアクティブ・ゾーンとイナクティブ・ゾーンの分割配置を必要とし、アクチュエータは現在指定されているアクティブ・ゾーン内だけをシークするように指示されて、アクセス・コマンドを実行するときにショート・ストロークする。また「コマンドを順序づけるための手段」は、結合したアクティブ・ゾーンが相補的であって、読取りコマンドでも書込みコマンドでも、任意の優先順位の高いアクセス・コマンドを領域の1つですぐ実行できることを必要とする。
理解されるように、これまでの説明で本発明の種々の実施の形態の多くの特徴および利点を、本発明の種々の実施の形態の構造および機能の詳細と共に述べたが、この詳細な記述は単なる例示であって、詳細に関しては、特に本発明の原理内の部分の構造および配置に関してクレームを表現する用語の広い一般的な意味で示す範囲で、変更を行ってよい。例えば、本発明の精神と範囲から逸れない限り、組み込まれた装置または用いられる特定の環境に従って特定の要素を変えてよい。
更に、ここに述べた例示の実施の形態はデータ記憶システムに関するものであるが、当業者が認識するように、クレームされた主題はこれに限定されるものではなく、本発明の精神と範囲から逸れない限り、種々の他の電子装置は本発明の実施の形態を用いてよい。
101 記憶領域
104 データ記憶システム
124 アクチュエータ
198 コマンド・キュー・コントローラ
104 データ記憶システム
124 アクチュエータ
198 コマンド・キュー・コントローラ
Claims (20)
- データ記憶システムであって、記憶空間のアクティブ・ゾーン・サブポーションを有する記憶領域と、前記アクティブ・ゾーンに向かうアクチュエータをショート・ストロークするためのコマンド・キュー・コントローラとを備えるデータ記憶システム。
- 主記憶領域と冗長記憶領域とで構成し、仮想記憶空間を各領域内の同じLBAで始まる領域にマップする、請求項1記載のデータ記憶システム。
- 前記主記憶領域のアクティブ・ゾーンは前記冗長記憶領域のアクティブ・ゾーン内に含まれるLBAとは異なるLBAを含む、請求項2記載のデータ記憶システム。
- 前記主記憶領域のアクティブ・ゾーン内のLBAと前記冗長記憶領域のアクティブ・ゾーン内のLBAとを結合すると前記2つの領域のそれぞれのLBAの全数を表す、請求項3記載のデータ記憶システム。
- 前記複数の記憶領域内にそれぞれイナクティブ・ゾーンを含み、各イナクティブ・ゾーンはそれぞれのアクティブ・ゾーン内に含まれないLBAを有する、請求項2記載のデータ記憶システム。
- 前記イナクティブ・ゾーンは前記アクティブ・ゾーンと相補的である、請求項5記載のデータ記憶システム。
- 反転機能を備え、前記コマンド・キュー・コントローラは各領域内のゾーン状態を反転させて、前のアクティブ・ゾーンを現在のイナクティブ・ゾーンにし、前のイナクティブ・ゾーンを現在のアクティブ・ゾーンにする、請求項5記載のデータ記憶システム。
- 各領域は唯一のアクティブ・ゾーンおよび唯一のイナクティブ・ゾーンを有する、請求項7記載のデータ記憶システム。
- 各領域は唯一のアクティブ・ゾーンおよび2つ以上のイナクティブ・ゾーンを有する、請求項7記載のデータ記憶システム。
- 方法であって、
記憶空間を仮想化して、ユーザ・データを第1の領域内に、冗長データを第2の領域内に記憶し、
前記各領域を記憶空間のアクティブ・ゾーンとイナクティブ・ゾーンとに分割し、
検索アクセス・コマンドに関連するLBAをどの領域のアクティブ・ゾーンが含むかに従って第1の領域と第2の領域の一方からの検索アクセス・コマンドを実行する、
方法。 - 前記仮想化するステップは前記各領域内の同じLBAで始まることを特徴とする、請求項10記載の方法。
- 前記第1の領域のアクティブ・ゾーンは前記第2の領域のアクティブ・ゾーン内に含まれるLBAとは異なるLBAを含む、請求項11記載の方法。
- 前記第1の領域のアクティブ・ゾーン内のLBAと前記第2の領域のアクティブ・ゾーン内のLBAとを結合すると前記2つの領域のそれぞれのLBAの全数を表す、請求項12記載の方法。
- 区画を反転させて、前のアクティブ・ゾーンを現在のイナクティブ・ゾーンにし、前のイナクティブ・ゾーンを現在のアクティブ・ゾーンにする、請求項13記載の方法。
- 領域の1つのアクティブ・ゾーン内のLBAに関連する記憶アクセス・コマンドを実行することを更に含む、請求項14記載の方法。
- 記憶アクセス・コマンドを実行することは、前記反転するステップを実行する前に現在のアクティブ・ゾーン向けのコマンド・キュー内の全ての未処理の記憶アクセス・コマンドを実行することを特徴とする、請求項15記載の方法。
- 前記記憶アクセス・コマンドを実行することは、前記反転するステップを実行するときに前記アクティブ・ゾーン向けの未処理の記憶アクセス・コマンドをコマンド・キュー内に保つことを特徴とする、請求項15記載の方法。
- 前記記憶アクセス・コマンドを実行することは、前記反転するステップを実行するときに前記アクティブ・ゾーン向けの開始していない未処理の記憶アクセス・コマンドだけを前記コマンド・キュー内に保つことを特徴とする、請求項17記載の方法。
- 検索アクセス・コマンドの実行は記憶アクセス・コマンドの実行より優先順位が高い、請求項15記載の方法。
- データ記憶装置であって、
RAID記憶構成と、
RAIDを形成するデータ記憶装置を絶えずショート・ストロークするようにコマンド・キュー内のコマンドを順序づけるための手段と、
を備えるデータ記憶装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/478,905 US8244975B2 (en) | 2006-06-30 | 2006-06-30 | Command queue ordering by flipping active write zones |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008016025A true JP2008016025A (ja) | 2008-01-24 |
Family
ID=38878214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007172793A Pending JP2008016025A (ja) | 2006-06-30 | 2007-06-29 | アクティブな書込みゾーンの反転によるコマンド・キューの順序づけ |
Country Status (2)
Country | Link |
---|---|
US (1) | US8244975B2 (ja) |
JP (1) | JP2008016025A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020774A (ja) * | 2008-07-11 | 2010-01-28 | Samsung Electronics Co Ltd | キャッシュフラッシュ制御方法及び装置並びにこれを利用したデータ保存システム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078848B2 (en) | 2009-01-09 | 2011-12-13 | Micron Technology, Inc. | Memory controller having front end and back end channels for modifying commands |
US8959284B1 (en) | 2010-06-28 | 2015-02-17 | Western Digital Technologies, Inc. | Disk drive steering write data to write cache based on workload |
US9058280B1 (en) | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
US9268499B1 (en) | 2010-08-13 | 2016-02-23 | Western Digital Technologies, Inc. | Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory |
US8959281B1 (en) | 2012-11-09 | 2015-02-17 | Western Digital Technologies, Inc. | Data management for a storage device |
US9141176B1 (en) | 2013-07-29 | 2015-09-22 | Western Digital Technologies, Inc. | Power management for data storage device |
US9070379B2 (en) * | 2013-08-28 | 2015-06-30 | Western Digital Technologies, Inc. | Data migration for data storage device |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
US10007319B2 (en) * | 2015-12-17 | 2018-06-26 | Microsemi Solutions (U.S.), Inc. | Power saving in multi-directional data transfer |
US10558362B2 (en) | 2016-05-16 | 2020-02-11 | International Business Machines Corporation | Controlling operation of a data storage system |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5390313A (en) * | 1990-09-24 | 1995-02-14 | Emc Corporation | Data storage system with data mirroring and reduced access time data retrieval |
US5426736A (en) * | 1993-05-26 | 1995-06-20 | Digital Equipment Corporation | Method and apparatus for processing input/output commands in a storage system having a command queue |
US5463758A (en) * | 1993-08-02 | 1995-10-31 | International Business Machines Corporation | System and method for reducing seek time for read operations in mirrored DASD files |
JPH07281840A (ja) * | 1994-04-14 | 1995-10-27 | Ibm Japan Ltd | 2重化ディスク記録装置 |
JP3085085B2 (ja) * | 1994-05-09 | 2000-09-04 | 三菱電機株式会社 | データアクセス装置及び分散データベースシステム |
US5664143A (en) * | 1994-11-23 | 1997-09-02 | International Business Machines Corporation | Method and apparatus for sorting disk access commands in a rotational position queue according to time differences between the commands |
US5787242A (en) * | 1995-12-29 | 1998-07-28 | Symbios Logic Inc. | Method and apparatus for treatment of deferred write data for a dead raid device |
US5854941A (en) * | 1996-05-31 | 1998-12-29 | Acceleration Software International Corporation | System for estimating access time by deriving from first and second rotational time from rotational time table based on logical address and head movement time |
US6061194A (en) * | 1997-04-15 | 2000-05-09 | Lsi Logic Corporation | Device and method for storing and retrieving original and redundant data |
US6076143A (en) * | 1997-09-02 | 2000-06-13 | Emc Corporation | Method and apparatus for managing the physical storage locations for blocks of information in a storage system to increase system performance |
US6028725A (en) * | 1997-06-30 | 2000-02-22 | Emc Corporation | Method and apparatus for increasing disc drive performance |
US6732293B1 (en) * | 1998-03-16 | 2004-05-04 | Symantec Corporation | Method, software and apparatus for recovering and recycling data in conjunction with an operating system |
US6070225A (en) * | 1998-06-01 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for optimizing access to coded indicia hierarchically stored on at least one surface of a cyclic, multitracked recording device |
JP3244053B2 (ja) * | 1998-06-12 | 2002-01-07 | 日本電気株式会社 | 情報処理システム、装置、二次記憶装置及び記録媒体 |
US6442648B1 (en) * | 1998-09-03 | 2002-08-27 | International Business Machines Corporation | Method of and system for the dynamic scheduling of requests to access a storage system |
US6332177B1 (en) * | 1998-10-19 | 2001-12-18 | Lsi Logic Corporation | N-way raid 1 on M drives block mapping |
JP2000132915A (ja) * | 1998-10-22 | 2000-05-12 | Matsushita Electric Ind Co Ltd | ディスク装置およびそのデータ処理方法 |
US6530035B1 (en) * | 1998-10-23 | 2003-03-04 | Oracle Corporation | Method and system for managing storage systems containing redundancy data |
JP3712567B2 (ja) * | 1999-07-23 | 2005-11-02 | 富士通株式会社 | 記憶装置 |
US6397292B1 (en) * | 1999-08-19 | 2002-05-28 | Emc Corporation | Asymmetrical striping of mirrored storage device arrays and concurrent access to even tracks in the first array and odd tracks in the second array to improve data access performance |
US6425052B1 (en) * | 1999-10-28 | 2002-07-23 | Sun Microsystems, Inc. | Load balancing configuration for storage arrays employing mirroring and striping |
US6412042B1 (en) * | 1999-11-17 | 2002-06-25 | Maxtor Corporation | System and method for improved disk drive performance and reliability |
US6571298B1 (en) * | 2000-01-11 | 2003-05-27 | International Business Machines Corporation | System and method for grouping disk access commands in a queue according to proximate disk positions |
US6574676B1 (en) * | 2000-01-11 | 2003-06-03 | International Business Machines Corporation | System and method for scheduling disk drive commands by expected total access time |
US6502178B1 (en) * | 2000-02-14 | 2002-12-31 | International Business Machines Corporation | Method, system, and program for mapping logical addresses to high performance zones on a storage medium |
US6978324B1 (en) | 2000-06-27 | 2005-12-20 | Emc Corporation | Method and apparatus for controlling read and write accesses to a logical entity |
US6738870B2 (en) * | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | High speed remote storage controller |
US6640258B2 (en) * | 2001-01-10 | 2003-10-28 | Hitachi Global Storage Technologies Netherlands B.V. | Method and apparatus for command queue ordering with a sort time reduction algorithm |
US6978345B2 (en) * | 2001-05-15 | 2005-12-20 | Hewlett-Packard Development Company, L.P. | Self-mirroring high performance disk drive |
JP2003308176A (ja) * | 2002-04-03 | 2003-10-31 | Internatl Business Mach Corp <Ibm> | データ記憶装置、コマンド・キューのリオーダリング方法、データ処理方法およびプログラム |
WO2004095201A2 (en) * | 2003-04-09 | 2004-11-04 | Intervideo Inc. | Systems and methods for caching multimedia data |
US7194589B2 (en) * | 2003-08-22 | 2007-03-20 | Oracle International Corporation | Reducing disk IO by full-cache write-merging |
US20050097132A1 (en) * | 2003-10-29 | 2005-05-05 | Hewlett-Packard Development Company, L.P. | Hierarchical storage system |
-
2006
- 2006-06-30 US US11/478,905 patent/US8244975B2/en not_active Expired - Fee Related
-
2007
- 2007-06-29 JP JP2007172793A patent/JP2008016025A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010020774A (ja) * | 2008-07-11 | 2010-01-28 | Samsung Electronics Co Ltd | キャッシュフラッシュ制御方法及び装置並びにこれを利用したデータ保存システム |
Also Published As
Publication number | Publication date |
---|---|
US20080005463A1 (en) | 2008-01-03 |
US8244975B2 (en) | 2012-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008016025A (ja) | アクティブな書込みゾーンの反転によるコマンド・キューの順序づけ | |
JP5349769B2 (ja) | 方向性および浮動ライトバンドを有するコマンドキュー順序付け | |
KR102168838B1 (ko) | 저장 장치들에 대한 매핑 테이블들 | |
US9128618B2 (en) | Non-volatile memory controller processing new request before completing current operation, system including same, and method | |
US20090157756A1 (en) | File System For Storing Files In Multiple Different Data Storage Media | |
JP6732684B2 (ja) | 情報処理装置、ストレージデバイスおよび情報処理システム | |
US20020118582A1 (en) | Log-structure array | |
CN110196687B (zh) | 数据读写方法、装置、电子设备 | |
EP0978040B1 (en) | Memory device | |
US7987328B2 (en) | Data archive system | |
US8234459B2 (en) | Switch module based non-volatile memory in a server | |
KR20100011698A (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법 | |
US8862819B2 (en) | Log structure array | |
US7644206B2 (en) | Command queue ordering by positionally pushing access commands | |
CN109902034A (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
US20090157940A1 (en) | Techniques For Storing Data In Multiple Different Data Storage Media | |
US11526447B1 (en) | Destaging multiple cache slots in a single back-end track in a RAID subsystem | |
JP2012234609A (ja) | データ格納方法及びハイブリッドデータストレージ機器 | |
JP5942037B2 (ja) | データ管理メカニズムを備えたストレージシステムおよびその動作方法 | |
US9235472B2 (en) | Drive array apparatus, controller, data storage apparatus and method for rebuilding drive array | |
JP2009015838A (ja) | 仮想記憶のスパース割当てのための2レベルマップ構造 | |
US6934803B2 (en) | Methods and structure for multi-drive mirroring in a resource constrained raid controller | |
US10915262B2 (en) | Hybrid storage device partitions with storage tiers | |
US6898666B1 (en) | Multiple memory system support through segment assignment | |
KR100529278B1 (ko) | 대용량 데이터에 대한 데이터 중복 저장 시스템 |