JP2004013246A - 多重書き込み型記憶装置 - Google Patents
多重書き込み型記憶装置 Download PDFInfo
- Publication number
- JP2004013246A JP2004013246A JP2002162362A JP2002162362A JP2004013246A JP 2004013246 A JP2004013246 A JP 2004013246A JP 2002162362 A JP2002162362 A JP 2002162362A JP 2002162362 A JP2002162362 A JP 2002162362A JP 2004013246 A JP2004013246 A JP 2004013246A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- storage
- write
- data frame
- 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
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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 by mirroring
- G06F11/2064—Error 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 by mirroring while ensuring consistency
-
- 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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0617—Improving the reliability of storage systems in relation to availability
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】データ用ネットワーク610を介してホストからストレージブレードSB#0に転送されたデータフレームが指示するデータアクセス要求に対して、該データアクセス要求に対応するデータがSB#0に無ければ、該データが有りそうなSB#2にデータフレームを転送し、SB#2にも該データが無ければ、データフレーム内でカウントされている各SB間でのデータフレームの転送回数が各SBに同じ値として設定されている転送回数のしきい値以上になっていれば、SB#2は該データの有りそうな全てのSBにデータフレームをブロードキャストし、しきい値以上でなければ該データが有りそうなSBにデータフレームを転送する。
【選択図】 図6
Description
【発明の属する技術分野】
本発明は、サーバおよび記憶装置技術に関し、特に、複数のストレージブレードを構成要素として有し、早い応答性能、高いトランザクション数、及び高い信頼性が要求される記憶装置に関する。
【0002】
【従来の技術】
ハードディスク(HDD)の容量は毎年大きくなっており、それらを複数組み合わせてディスク装置を構成する場合、1台のHDD障害による被害は非常に大きくなってきている。そのため、単一のHDD障害等から各ユーザのデータを守り、低コストで高可用性を実現するシステムが要求されてきている。
従来のホストコンピュータ及び、ディスク装置においては、図1のような大型のディスクコントローラ20が各HDD30、40、50、60を集中制御している。
ホストコンピュータ10より送られるライトデータ(data A)70は、2台のHDD30、40に二重ライトされ、片方のHDDが故障した場合でも他方のHDDをアクセスすることで高信頼性を保っている。
このようなデータの二重化を備えたディスク装置の技術については、特開平7−56688号公報に開示された「データ記憶装置」等がある。
以上のように大型のディスクコントローラ20を用いて集中制御を行う場合、ディスクコントローラは非常に高機能が要求され、システム全体のコストを上げることになる。
また、制御を単一のコントローラで行うため、性能のボトルネックになる可能性もある。
【0003】
一方複数のCPUで分散してディスク装置全体の制御行う方式が最近検討されている。
図2にその例として、HDD内にCPUとメモリ、さらにネットワークコントローラを備えたストレージブレード(SB)を示す。
ここでは図1におけるディスクコントローラ20、HDD30、40、50、60は存在せず、そのかわりにSB100、110、120,130がネットワーク150に直接接続されている。
SB100は、サーバコントローラ200とHDDコントローラ250を内部に備え、それぞれネットワーク、サーバ処理とHDDの処理を行っている。サーバコントローラ200はネットワークとの間で信号を入出力するための入出力ポートを有する。
サーバコントローラ200の内部は、通常のサーバと同等のハードを備えており、組み込みプロセッサ230、メモリ220がブリッジ225で接続されている。
またHDDと通信するためのI/Oインターフェィス210と、ネットワーク150と通信するためのネットワークコントローラが、パスを通じてブリッジ225に接続されている。
HDDコントローラ250は、通常の磁気ディスクを制御するためのハードウエア等からなり、磁気メディア260、磁気ヘッド270の制御、データのリード/ライトを行う。
このSBを複数並べて制御を分散して行うことにより、図1のディスク装置を置き換えることができる。
【0004】
ホストコンピュータ10は、ディスク装置にアクセスする場合、各SBの中の適当な1個に対してコマンド、データを送信する。なお、以後の記載において、SBに送信する「コマンド、データ」のことを「I/O」とも記載する。
もし受信したSBにデータがあればそのSBが直接応答するが、データがない場合には受信したSB内の情報を用いて他のデータがありそうなSBにコマンド、データを転送する。
図2の場合、ホストコンピュータ10はSB#0にコマンド、データを送信しているが、SB#0(100)にはデータがないので、SB#1(110)、SB#3(130)と検索を行っている。
図2のディスク装置の場合、分散制御を行うので、1個のCPU、メモリにそれほど性能、容量が必要なくディスク装置全体のコストを下げることが可能になる、また制御を分散することにより、性能のボトルネックを低下することも可能となる。
【0005】
図3にストレージブレードのディレクトリ構造例を示す。
ここで、ディスク装置全体のディレクトリ構造はroot(300)からファイル情報例349までのバイナリツリー構造をしている。
しかし、すべてのSBに同じ情報を格納することはディレクトリの更新等を考えると最適とはいえない。
そこでディレクトリの部分を各SBで分担して格納する分散ディレクトリが最適であると考えられている。
図3では例えば、SB#0(100)にはroot(300)、節d#0(313)、ファイル情報を格納しているファイル0(315)を含んだSB#0ディレクトリ310をサーバコントローラ200内のメモリ220に格納している。
SB#1(110)にはSB#1ディレクトリ320、SB#2(120)にはSB#2ディレクトリ330、SB#3(110)にはSB#3ディレクトリ340が各々格納されている。
このディレクトリ構造で二重化データを管理する場合はファイル情報の中に記述することになる。
例えば、ファイル3(345)に主データが、ファイル2(327)に副データが存在する場合ファイル3のファイル情報349にはファイル3が主データであること、副データがSB#1(110)のファイル2にあることが記述され、ファイル2のファイル情報329にはファイル2が副ファイルであること、主データがSB#3(130)のファイル3にあることが記述されている。
これらの情報を検索することにより、二重データのリード、ライトを分散制御することが可能になる。
以上のようなストレージブレード(SB)を用いたディスク装置、及び二重化の技術については、電気情報通信学会技術研究報告、信学技報Vol.101 No.339に開示された「自律ディスクのオンラインクラスタ再構築の評価」等がある。
【0006】
【発明が解決しようとする課題】
以上に述べたように、ストレージブレード(SB)と分散ディレクトリを用いることにより、ディスク装置の制御を分散して行うことが可能となった。
しかしディレクトリを分散した場合、目的のSBを検索するために何回もSBをアクセスする可能性がある。
特にSB数が多くなった場合この傾向が大きくなり、性能低下につながる。さらに2重ライトを行う場合さらに検索回数が多くなり、性能低下が起こる。
図4にこの例を示す。
主データはSB#3(130)にあり、副データはSB#1(110)にある。
このときホストコンピュータ10がこのデータをアクセスするために最初にSB#0(100)にアクセスする(▲1▼)。
しかし、このデータはSB#0(100)にはないので、図3に示したSB#0ディレクトリ310を参照して次のデータが存在しそうなSBを選択する。
この例では、SBを特定するための情報がSB#0ディレクトリ310から得られないため、とりあえずSB#2にアクセスする(▲2▼)。
しかし、同様にこのデータは存在しないことがわかる。
次にSB#3(130)にアクセスする(▲3▼)。
ここでSB#3ディレクトリ(340)により初めて主データがファイル3(345)にあることを検索することができ、同時に副データがSB#1のファイル2(327)にあることもわかる(▲4▼、▲5▼)。
なお、図4の下部に示す図は、各SBにおける処理とその処理時間の関係を示す。
以上のようにアクセス回数は5回にわたり、処理時間が長くなるので性能低下を起こす。
また、データの実際のライトも3回のアクセス後にはじめて行われるので、その途中で障害が発生した場合にデータが損失する可能性が高い。
本発明の主たる目的は、複数のストレージブレードでディスク装置を構成し、データの多重化を行う場合に、主データ、副データの検索回数を削減し、性能低下を抑制する技術を提供することにある。
本発明のさらに別の目的は、複数のストレージブレードでディスク装置を構成し、データの多重化ライトを行う際にデータのライトを処理の早い段階で終了することにより、ディスク装置の信頼性を向上する技術を提供することにある。
【0007】
【課題を解決するための手段】
上記目的を達成するため、本発明は、複数のストレージブレードと、該複数のストレージブレードを相互接続しかつ上位装置と各ストレージブレードを接続する相互接続手段を備え、
前記各ストレージブレードは、ユーザデータまたは該ユーザデータの冗長データが格納されるHDDと、該HDDの制御手段と、前記相互接続手段との間で入出力されるデータフレームの入出力ポートを有し、
前記制御手段は、前記入出力ポートから入力されたデータフレームが指示するデータアクセス要求に対して、該データアクセス要求に対応するデータが前記HDDに格納されているか否かを判断し、存在しない場合は、前記データアクセス要求に対応するデータが存在する可能性の高い他のストレージブレードに前記データフレームを転送する記憶装置であり、
前記データフレームに該データフレームがストレージブレード間で転送された転送回数をカウントする転送回数カウント領域を設け、前記各ストレージブレードに該転送回数のしきい値を設定し、
前記制御手段は、アクセス要求のあったデータが前記HDDに格納されていないと判断した場合、前記転送回数カウント領域の転送回数が前記転送回数のしきい値以上であれば、データの存在する可能性のある全てのストレージブレードに対して前記データフレームをブロードキャストするようにしている。
【0008】
【発明の実施の形態】
《実施例1》
以下、本発明に係る実施例1を図面に示しさらに詳細に説明する。
図5は本発明の実施例1におけるデータフレーム構造例を示す。
データフレーム構造例500(SB#0送信前)についてはIP、UDPのプロトコルを参考にしたものである。
ローカルネットワークヘッダ505には、LAN通信に必要なアドレス、データ長等の制御情報が格納されている。
IPヘッダ510にはIPを使った通信に必要なアドレス、データ長等の制御情報が格納されている。
UDPヘッダ515にはUDPを使った通信に必要なアドレス、データ長等の制御情報が格納されている。
ここで取り上げた以外のプロトコルを使っても本発明の範囲であることは自明である。
520はメッセージであり、リード、ライトのコマンドまたはデータ等が格納される。
525はストレージブレードホップ数であり、ストレージブレードにこのデータフレーム構造例500が送信され検索が行われるたびにサーバコントローラ565、585等で1加算される。
527はホップ履歴であり、ストレージブレードを通過するたびにそのIDを記録する。
たとえば、データフレーム構造例500がストレージブレード(SB♯0)に送信され、そこにデータが検索できなかった場合、ストレージブレード(SB♯0)のサーバコントローラは、次のストレージブレード(SB♯1)に検索を依頼する前にストレージブレードホップ数525を1加算してデータフレーム構造例501(SB#0送信後)のストレージブレードホップ数526のようにする。
また、ホップ履歴527に通過したストレージブレード(SB♯0)のIDをホップ履歴528のように記録する。
530は、ブロードキャストを示すフラグであり、通常の検索時にはこのフラグはOFFであるが、通常の検索をあきらめて残りのストレージブレードに対して一斉にこのデータフレーム構造例500を送信する、すなわちブロードキャストする、際にこのフラグがONになる。
535は、ローカルネットワークトレイラであり、データのエラーチェックのコード、データの終端のコード等が記述されている。
ストレージブレード(SB♯0)560、(SB♯1)580にはストレージブレードホップ数の上限を決めるためのホップしきい値566、586を持つ。
567、587はこのシステム内に存在するストレージブレードのID(システム内SBID)を登録するテーブルであり、ブロードキャストを行う際に参照する。
【0009】
このデータフレーム構造例500がSB♯0、SB♯2に送信されると、サーバコントローラ565、585は、データが存在しなかった場合、ストレージブレードホップ数525とサーバコントローラ565、585内にあらかじめ設定してあるホップしきい値566、586を比較し、ストレージブレードホップ数525がしきい値以上になった場合は、これ以上検索を続行することは中止する。
そして、ホップ履歴528に記載されていない残りのストレージブレードをシステム内SB IB(587)を参照しながら、それらに対して一斉にこのデータフレーム構造例500を送信する。
なお、ホップしきい値566、586は外部インターフェイスを通じて、ユーザがディスク装置の負荷等に応じてその値を変更することが可能である。
【0010】
図6は本発明の実施例1における二重ライト例を示す。
ホストコンピュータ10よりコマンド、データは、外部ネットワーク600を通じて負荷分散装置630に送信される。
負荷分散装置630はSB#0(560)、SB#1(570)、SB#2(580)、SB#3(590)の負荷が均等になるようにコマンド、データを送信する(▲1▼)。
次に、この例ではSB#0(560)にはデータが存在しなかったので、しきい値に達していなければストレージブレードホップ数525を加算した後SB#2(580)で検索を続ける(▲2▼)。
SB#2(580)でデータが存在しなかった場合、図4のような従来例では次の候補を検索するために次のSB#3(590)にコマンド、データを送信するが、本発明では、ストレージブレードホップ数525がホップしきい値586以上になったので、残りのSB#1(570)、SB#3(590)に対してデータの存在を確定するために、コマンド、データをブロードキャストにて送信する(▲3▼)。
このブロードキャストのコマンド、データの送信は、データ用ネットワーク610でも制御用ネットワーク620のどちらか負荷の低い方を用いて行われる。次に、ブロードキャストのコマンド、データが、SB#1(570)、SB#3(590)で同時に実行されるので、二重ライトの主データ、副データが同時に検索、ライトが実行できる。
最後に副データのライトの終了後、SB#1(570)からSB#3(590)へ終了報告が制御用ネットワーク620を通して行われて、二重ライトが完了する(▲4▼)。
なお、図6の下部に示す図は、各SBにおける処理とその処理時間の関係を示す。
以上のように図6の二重ライトの場合、図4の従来例に比較して、2回あるライトが同時に処理できる分処理時間の短縮が可能になる。
【0011】
図7に本発明の実施例1におけるI/O処理のフローチャートを示す。
始めに各ストレージブレードがホストコンピュータ10または他のストレージブレードからのI/Oを受信する(700)。
次に、ホストから来たI/Oであるかをチェックする(705)。
ホストコンピュータ10から来たI/Oの場合には、ストレージブレードホップ数を0にリセットする(705)。
次に、I/Oに関して自ストレージブレード(SB)内のディレクトリを検索する(715)。
もしデータがHDD内にあった場合には(720)、すぐに主データ、副データにアクセスすることが可能なので、二重リード、二重ライト動作の実行を行う(755)。この動作については図8で詳細を説明する
もしデータがHDD内で見つからない場合には(720)、他のSBに検索を、通常またはブロードキャストを用いて行う。
これを以下ブロードキャスト処理(725〜750)と呼ぶことにする(770)。
【0012】
ブロードキャスト処理(770)では、始めにブロードキャストがすでに発行されているかどうかをチェックする(725)。これは、図5のデータフレーム構造例におけるブロードキャストのフラグをチェックし、ONになっていればブロードキャストがすでに発行されていると判定する。
発行されている場合には、後なにもする必要がないので、I/Oを受信したSBにおけるI/O処理を終了する(760)。
発行されていない場合は次にストレージブレードホップ数がしきい値以上になっているかどうかのチェックを行う(730)。
しきい値以上になっている場合、通常の検索は中止して、ブロードキャストを実行する必要があるので、まず、ブロードキャストのフラグをONにする(735)。
次に、すでに絞られた候補のSB(すなわち、ホップ履歴に記述されていないSB)のすべてに対して、コマンド、データの検索、実行をブロードキャストして(736)、I/Oを受信したSBにおけるI/O処理を終了する(760)。
もし、しきい値以上になっていない場合、通常の検索を続行する必要があるので、始めにストレージブレードホップ数を加算する(740)。
次に、ディレクトリ情報から次の検索候補のSBを選択する(745)。
最後にその候補に対して、コマンド、データの検索、実行を送信して(750)、I/Oを受信したSBにおけるI/O処理を終了する(760)。
【0013】
図8に本発明の実施例1における二重リードまたは二重ライトのフローチャートを示す。
まず、二重リードまたは二重ライト動作の実行が開始される(800)。
次に、リード処理かライト処理かを判定する(805)。
もしリード処理ならば、次にHDD内のデータは主データかどうかを判定する(810)。
副データは障害発生時以外は使わないので、データのリードは行ず二重リードまたは二重ライト動作を終了する(840)。
もし主データならば、HDDよりデータのリードを行い(815)、データをホストコンピュータに転送する。
その後二重リードまたは二重ライト動作を終了する(840)。
【0014】
もしライト処理ならば、HDDにデータのライトを行う(825)。
次に、ブロードキャストがONになっているかどうか判定する(830)。
OFFならば、2重ライトを実施するためにブロードキャストのフラグをONにして(850)、次に主データまたは副データのあるSBに対してI/Oを発行する(855)。
もしブロードキャストがONになっている場合には、すでに主データ、副データのどちらかは他のSBにライトされているので、次に主データか副データを判定する(835)。
副データの場合には、主データの格納してあるSBに処理終了報告を出す(840)。この終了報告も制御用ネットワーク620を用いて送信する。次に副データの格納しているSBからの応答を待つが(845)、これは自分自身なので結局なにも待たずに二重リードまたは二重ライト動作を終了する(840)。
主データの場合には、副データのあるSBからの応答を待ち(845)、応答の到着後に二重リードまたは二重ライト動作を終了する(840)。
以上に示したように、データの検索回数の増加をしきい値で制限しているので、二重リードまたは二重ライトの処理時間の短縮をはかることが可能になる。
【0015】
《実施例2》
以下、本発明に係る実施例2を図面に示しさらに詳細に説明する。
図9に本発明の実施例2における二重ライト例を示す。
各SB#0(560)、SB#1(570)、SB#2(580)、SB#3(590)には主データ領域と、副データ領域が用意されている。
主データ領域にはリード時にアクセスするデータが存在し、そのSB番号、アドレスは固定されている。
副データ領域には主データのコピーが存在するが、必ず他のSBの主データのコピーであり、かつそのSB番号、アドレスは固定されてなく、空いた領域に追加ライトする方式をとる。
空いた領域が少なくなった場合は、領域内の要らないデータを削除することにより領域を確保する。
副データ領域の管理も主データと同様にディレクトリを用いる。
【0016】
ホストコンピュータ10よりライトコマンド、データは外部ネットワーク600を通じて負荷分散装置630に送信される。
負荷分散装置630はSB#0(560)、SB#1(570)、SB#2(580)、SB#3(590)の負荷が均等になるようにライトコマンド、データを送信する(▲1▼)。
次にこの例ではSB#0(560)にはこのデータが存在しなかったので、しきい値に達していなければストレージブレードホップ数525を加算した後SB#2(580)で検索を続ける(▲2▼)。
同時にSB#0(560)の副データ領域に、このデータ(new_data A)を追加ライトする。
これにより主データを検索している間に副データのライトを完了することができる。
SB#2(580)でこのデータが存在しなかった場合に、ストレージブレードホップ数525がホップしきい値586以上になったので、残りのSB#1(570)、SB#3(590)に対してデータの存在を確定するために、コマンド、データをブロードキャストにて送信する(▲3▼)。この結果、SB#3にこのデータが存在するため、new_data AをSB#3の主データ領域に書き込み、old_data Aをnew_data Aに更新する。
このブロードキャストのコマンド、データの送信はデータ用ネットワーク610でも制御用ネットワーク620のどちらか負荷の低い方を用いて行われる。
同時期にSB#0(560)は、以前この副データがあったSBに対してそのデータの消去をする必要があるため、制御用ネットワーク620を用いて該当副データ(old_data A)を消去するように、SB#1(570)、SB#2(580)、SB#3(590)に対してブロードキャストする(▲4▼)。
該当副データ(old_data A)を格納するSB#1(570)は、副データの消去を行う。
なお、図9の下部に示す図は、各SBにおける処理とその処理時間の関係を示す。
以上のように、図9の二重ライトの場合、図4の従来例、図6の実施例1に比較して、副データのライトを先行処理できるので処理時間の短縮が可能になり、主データまたは副データのどちらかに対する実際のHDDにライトが早期に行われるので、処理中の障害に対してデータの保護が可能になる。
【0017】
図10に本発明の実施例2におけるI/O処理のフローチャートを示す。
まず、ストレージブレード(SB)がI/Oを受信する(800)。
次にライトまたはブロードキャストの判別を行う(1005)。
ライトまたはブロードキャスト以外ならば、二重リードまたは二重ライト動作の実行を行う(755)。二重リードまたは二重ライト動作の実行は、図7に示したものと同じであり、その詳細は図8を用いて説明したとおりである。
ただし、ここでは実際に行うのは二重リードのみである。
ライトまたはブロードキャストならばI/Oに関して自ストレージブレード(SB)内のディレクトリを検索する(1010)。
次にデータがHDD内に存在するかどうか判定する(1015)。
【0018】
データがHDD内に存在しなければ、次にホストから来たI/Oかどうか判定する。
ホストから来たI/Oならば、自HDD内にデータが無くても自SB内の副データ領域にライトする(1025)。
次に、主データを検索するためのブロードキャスト処理を実行する(770)。このブロードキャスト処理は図7に示したブロードキャスト処理と同じである。
最後に他のSBの副データ領域にある該当する旧データを消去するためのブロードキャストを各SBに対して発行して(1030)、I/Oを受信したSBにおけるI/O処理を終了する(1070)。
ホストから来たI/Oでないならば、自SBで行うことはないので、主データを検索するためのブロードキャスト処理を実行し(770)、I/Oを受信したSBにおけるI/O処理を終了する(1070)。
【0019】
データがHDD内に存在した場合も、まず、ホストから来たI/Oかどうか判定する(1040)。
ホストから来たI/Oならば、自SB内にすでに主データまたは副データが存在し、一般の二重ライトを実行するだけで十分なので二重リードまたは二重ライト動作の実行を行う(755)。
ホストから来たI/Oでないならば、主データのライトか、副データの消去かの判定を行う(1045)。
副データの消去ならば、自SBの該当旧副データを消去し(1060)、I/Oを受信したSBにおけるI/O処理を終了する(1070)。
主データのライトならば、自SB内の主データ領域にライト(1050)する。次に旧副データ消去のブロードキャストの通知を受けて(1055)、最後にI/Oを受信したSBにおけるI/O処理を終了する(1070)。
以上に示したように、最初に受信したSBで先行して副データをライトするので、二重ライトの処理時間の短縮、データライトの早期確定が可能になる。
【0020】
【発明の効果】
以上説明したように、本発明では、主データ、副データの検索回数がしきい値を超えた場合それ以上検索を行わないために、二重リード、ライト処理時間が短縮し、性能が向上する。
また、さらに初めにライト命令を受けたストレージブレードに先にデータが格納されるために処理時間の短縮と、処理途中の障害に対するデータ損失が低下するので、性能と信頼性の両方の向上が図れる。
【図面の簡単な説明】
【図1】従来の多重記憶装置の構成を示す図である。
【図2】ストレージブレードの構成を示す図である。
【図3】ストレージブレードのディレクトリ構造例を示す図である。
【図4】従来のストレージブレード型多重記憶装置における二重ライト例を説明するための図である。
【図5】本発明の実施例1におけるデータフレーム構造例を示す図である。
【図6】本発明の実施例1における二重ライト例を説明するための図である。
【図7】本発明の実施例1におけるI/O処理のフローチャートを示す図である。
【図8】本発明の実施例1における二重リードまたは二重ライトのフローチャートを示す図である。
【図9】本発明の実施例2における二重ライト例を説明するための図である。
【図10】本発明の実施例2におけるI/O処理のフローチャートを示す図である。
【符号の説明】
10 ホストコンピュータ
560〜590、900〜915 ストレージブレード
600 外部ネットワーク
610 データ用ネットワーク
620 制御用ネットワーク
630 負荷分散装置
Claims (11)
- 複数のストレージブレードと、該複数のストレージブレードを相互接続しかつ上位装置と各ストレージブレードを接続する相互接続手段を備え、
前記各ストレージブレードは、ユーザデータまたは該ユーザデータの冗長データが格納されるHDDと、該HDDの制御手段と、前記相互接続手段との間で入出力されるデータフレームの入出力ポートを有し、
前記制御手段は、前記入出力ポートから入力されたデータフレームが指示するデータアクセス要求に対して、該データアクセス要求に対応するデータが前記HDDに格納されているか否かを判断し、存在しない場合は、前記データアクセス要求に対応するデータが存在する可能性の高い他のストレージブレードに前記データフレームを転送する記憶装置であって、
前記データフレームに該データフレームがストレージブレード間で転送された転送回数をカウントする転送回数カウント領域を設け、前記各ストレージブレードに該転送回数のしきい値を設定し、
前記制御手段は、アクセス要求のあったデータが前記HDDに格納されていないと判断した場合、前記転送回数カウント領域の転送回数が前記転送回数のしきい値以上であれば、データの存在する可能性のある全てのストレージブレードに対して前記データフレームをブロードキャストすることを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記データフレーム内に前記ブロードキャストを行ったか否かを示すブロードキャスト有無領域を設けることを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記データフレーム内に該データフレームが通過したストレージブレードのIDを記録するID記録領域を設けることを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記制御手段は、転送されてきたデータフレームを他のストレージブレードに転送するとき、該データフレームの前記転送回数カウント領域の転送回数を加算することを特徴とする多重書き込み型記憶装置。 - 請求項2に記載の多重書き込み型記憶装置において、
前記制御手段は、アクセス要求のあったデータが前記HDDに格納されていないと判断した場合、前記転送回数カウント領域の転送回数が前記転送回数のしきい値以上であれば、データの存在する可能性のある全てのストレージブレードに対して前記データフレームをブロードキャストし、前記データフレーム内の前記ブロードキャスト有無領域にフラグを立てることを特徴とする多重書き込み型記憶装置。 - 請求項3に記載の多重書き込み型記憶装置において、
前記制御手段は、転送されてきたデータフレームを他のストレージブレードに転送するとき、自ストレージブレードのIDを該データフレームの前記ID記録領域に記録することを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
外部ネットワークを負荷分散装置を介して前記相互接続手段に接続し、前記上位装置を該外部ネットワークに接続することを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記各ストレージブレードを接続する第2の相互接続手段を備えることを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記各ストレージブレード内のHDDに主データ領域と副データ領域を備えたことを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記各ストレージブレードを接続する第2の相互接続手段を備え、前記各ストレージブレード内のHDDに主データ領域と副データ領域を備え、
該第2の相互接続手段は、副データ領域に新冗長データを格納したストレージブレードが他のストレージブレードの副データ領域に格納されている旧冗長データを削除する指示を通知するためのみに使用することを特徴とする多重書き込み型記憶装置。 - 請求項1記載の多重書き込み型記憶装置において、
前記各ストレージブレードは、前記転送回数のしきい値を記憶するメモリを有し、外部入力に応じて該転送回数のしきい値を変更することを特徴とする多重書き込み型記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002162362A JP4059711B2 (ja) | 2002-06-04 | 2002-06-04 | 多重書き込み型記憶装置 |
US10/335,854 US6832292B2 (en) | 2002-06-04 | 2003-01-03 | Multiple access storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002162362A JP4059711B2 (ja) | 2002-06-04 | 2002-06-04 | 多重書き込み型記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004013246A true JP2004013246A (ja) | 2004-01-15 |
JP4059711B2 JP4059711B2 (ja) | 2008-03-12 |
Family
ID=29561666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002162362A Expired - Fee Related JP4059711B2 (ja) | 2002-06-04 | 2002-06-04 | 多重書き込み型記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6832292B2 (ja) |
JP (1) | JP4059711B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272357A (ja) * | 2006-03-30 | 2007-10-18 | Toshiba Corp | ストレージクラスタシステム、データ処理方法、及びプログラム |
CN109327511A (zh) * | 2018-09-18 | 2019-02-12 | 网宿科技股份有限公司 | 一种基于http协议的数据请求方法和服务器 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4237515B2 (ja) * | 2003-02-07 | 2009-03-11 | 株式会社日立グローバルストレージテクノロジーズ | ネットワークストレージ仮想化方法およびネットワークストレージシステム |
US7984084B2 (en) | 2005-08-03 | 2011-07-19 | SanDisk Technologies, Inc. | Non-volatile memory with scheduled reclaim operations |
JP2007087059A (ja) * | 2005-09-21 | 2007-04-05 | Hitachi Ltd | 記憶制御システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP3030229B2 (ja) * | 1994-06-20 | 2000-04-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データを転送する方法及びデータ記憶システム |
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 |
-
2002
- 2002-06-04 JP JP2002162362A patent/JP4059711B2/ja not_active Expired - Fee Related
-
2003
- 2003-01-03 US US10/335,854 patent/US6832292B2/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007272357A (ja) * | 2006-03-30 | 2007-10-18 | Toshiba Corp | ストレージクラスタシステム、データ処理方法、及びプログラム |
CN109327511A (zh) * | 2018-09-18 | 2019-02-12 | 网宿科技股份有限公司 | 一种基于http协议的数据请求方法和服务器 |
US11330035B2 (en) | 2018-09-18 | 2022-05-10 | Wangsu Science & Technology Co., Ltd. | Method and server for HTTP protocol-based data request |
Also Published As
Publication number | Publication date |
---|---|
JP4059711B2 (ja) | 2008-03-12 |
US6832292B2 (en) | 2004-12-14 |
US20030225968A1 (en) | 2003-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7930474B2 (en) | Automated on-line capacity expansion method for storage device | |
JP3997061B2 (ja) | 記憶サブシステムおよび記憶サブシステムの制御方法 | |
US6675176B1 (en) | File management system | |
CN100428185C (zh) | 存储服务器的自底向上高速缓存结构 | |
JP3944449B2 (ja) | 計算機システム、磁気ディスク装置、および、ディスクキャッシュ制御方法 | |
JP4824374B2 (ja) | ディスクの回転を制御するシステム | |
US20150026417A1 (en) | Caching Method for Distributed Storage System, a Lock Server Node, and a Lock Client Node | |
US20080184000A1 (en) | Storage module and capacity pool free capacity adjustment method | |
US8843602B2 (en) | Network boot system | |
US20060064441A1 (en) | Storage apparatus, storage control method, and computer product | |
JP2004326162A (ja) | ネットワークシステム、サーバ、データ処理方法及びプログラム | |
WO2017162174A1 (zh) | 一种存储系统 | |
JP4911198B2 (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御方法 | |
US20090024768A1 (en) | Connection management program, connection management method and information processing apparatus | |
US20110238915A1 (en) | Storage system | |
US7275064B2 (en) | Apparatus for managing virtualized-information | |
US7099995B2 (en) | Metadata access during error handling routines | |
JP2003015826A (ja) | ディスクアレイ制御装置における共有メモリコピー機能 | |
JP4322240B2 (ja) | 再起動方法、システム及びプログラム | |
WO2021088586A1 (zh) | 一种存储系统中的元数据的管理方法及装置 | |
JP4059711B2 (ja) | 多重書き込み型記憶装置 | |
US20230244417A1 (en) | Storage node, storage device, and network chip | |
JP4464656B2 (ja) | コンテンツ蓄積システムおよびその方法 | |
JP2002288014A (ja) | ファイル管理システム及びファイルデータ書込方法 | |
US11775175B2 (en) | Storage system, storage management method, and storage management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20031205 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040406 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20040406 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040727 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041119 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20041119 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050111 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061107 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070821 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071020 |
|
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: 20071204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R154 | Certificate of patent or utility model (reissue) |
Free format text: JAPANESE INTERMEDIATE CODE: R154 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131228 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |