JP2007034438A - 冗長パス制御装置、方法及びプログラム並びにディスクアレイシステム - Google Patents

冗長パス制御装置、方法及びプログラム並びにディスクアレイシステム Download PDF

Info

Publication number
JP2007034438A
JP2007034438A JP2005213468A JP2005213468A JP2007034438A JP 2007034438 A JP2007034438 A JP 2007034438A JP 2005213468 A JP2005213468 A JP 2005213468A JP 2005213468 A JP2005213468 A JP 2005213468A JP 2007034438 A JP2007034438 A JP 2007034438A
Authority
JP
Japan
Prior art keywords
instruction
path
reserve
disk array
array subsystem
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
JP2005213468A
Other languages
English (en)
Other versions
JP4506594B2 (ja
Inventor
Kenichi Miki
健一 三木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2005213468A priority Critical patent/JP4506594B2/ja
Priority to US11/453,797 priority patent/US20070022227A1/en
Publication of JP2007034438A publication Critical patent/JP2007034438A/ja
Application granted granted Critical
Publication of JP4506594B2 publication Critical patent/JP4506594B2/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
    • 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
    • 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/2002Error 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 interconnections or communication control functionality are redundant
    • G06F11/2007Error 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 interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error 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 interconnections or communication control functionality are redundant using redundant communication media between storage system components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】 I/Oパスの負荷分散機能を積極的に活用する。
【解決手段】 リザーブ命令は、論理ディスク13〜15に対して一つのパスのみのアクセスを許可する。そのため、従来、リザーブ命令によって一つのパスがリザーブされると、他のパスはその論理ディスク13〜15にアクセスできなくなるため、複数のパスによる負荷分散機能が十分に発揮されなかった。これに対し、パス冗長化ドライバ4では、リザーブ命令をそのままディスクアレイサブシステム10へ送るのではなく、リザーブ命令を他のパスのアクセスも許可し得る命令に置換してディスクアレイサブシステム10へ送ることにより、論理ディスクに対して複数のパスのアクセスが可能となるので、複数のパスによる負荷分散機能が十分に発揮されることになる。
【選択図】 図2

Description

本発明は、ディスクアレイサブシステムにアクセスするための複数のパスを制御する冗長パス制御装置等に関する。
SCSI(Small Computer System Interface)とは、パソコンなどの小型コンピュータとハードディスクや光ディスク装置などの周辺機器とを接続するための規格であり、一般に広く普及している。SCSIバスに接続されたどのデバイスも、双方向対等関係を築き、イニシエータであり、ターゲットで有り得る。イニシエータとはSCSIバス上で命令を出す装置であり、その命令を受け取る装置をターゲットという。ほとんどの場合、イニシエータはSCSIホストアダプタ(SCSIカード)であり、ターゲットはSCSI機器(厳密にはディスクコントローラ)となる。イニシエータからの読み出し命令又は書き込み命令に従って、SCSI機器はデータの読み出し又は書き込みを行なう。
このようなSCSIに準拠したパス冗長化ドライバの基本的な機能として、複数のイニシエータ(HBA:Host Bus Adapter)を使用することにより、あるイニシエータ経由での論理ディスクに対するI/O時に障害を検出した場合、他のイニシエータ経由でI/Oリトライを行う機能が知られている(例えば特許文献1)。更に、複数のイニシエータを積極的に使用することで、I/Oパスの負荷分散機能(I/Oパス帯域の有効活用機能)を有するパス冗長化ドライバも存在する。
特開2002−304331号公報
しかしながら、任意の論理ディスクに対してミドルウェア又はソフトウェアがSCSIのコマンドである「リザーブ」を使用する場合、当該論理ディスクはリザーブを発行したイニシエータに占有されるため、他のイニシエータから当該論理ディスクへのアクセス(リードデータ転送I/Oやライトデータ転送I/O)はできなくなる。つまり、ホストコンピュータ上に複数のイニシエータ(I/Oパス)が存在していても、当該論理ディスクはリザーブを発行したイニシエータに占有されることとなるので、他のイニシエータからのアクセスができない。そのため、複数のI/Oパス帯域を、有効に活用することができなかった。なお、リザーブを使用するものの一例としては、クラスタシステムが知られている。
このため、以下のような問題点が存在する。
(1)前述したように、パス冗長化ドライバがI/Oパスの負荷分散機能を有していても、複数のイニシエータを使用してのI/Oパスの負荷分散機能を積極的に活用することができない。
(2)既にリザーブを実施したイニシエータによってリリース(又は任意のイニシエータよってリセット)を実施した後、他のイニシエータからリザーブを行うことで、複数のI/Oパスを使用することは可能である。しかし、一回のI/Oを行う度に、<1>.リザーブを実施したイニシエータによってリリース(又は任意のイニシエータよってリセット)、<2>.他のイニシエータによってリザーブ、<3>.目的のI/O実施、というように合計3つのI/O発行が必要となるので、I/O性能に影響を与えてしまうことになる。なお、「リリース」及び「リセット」は、ともにSCSIのコマンドである。
(3)また、ミドルウェア又はソフトウェアの制御範囲外で、リリース(又はリセット)によって一時的にリザーブ状態が解除されることは、意図しないイニシエータからのI/Oアクセスが可能となることにより、ミドルウェア又はソフトウェアによる論理ディスクの排他制御の不整合やデータ破壊などの問題につながる可能性がある。
そこで、本発明の主な目的は、I/Oパスの負荷分散機能を積極的に活用し得る冗長パス制御装置等を提供することにある。
本発明に係る冗長パス制御装置は、ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御するものである。そして、本発明に係る冗長パス制御装置は、複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉する命令捕捉手段と、命令捕捉手段で捕捉したリザーブ命令を、第一のパスのアクセスを許可するだけでなく他のパスのアクセスも許可し得る命令に置換する命令置換手段と、命令置換手段で置換された命令をディスクアレイサブシステムへ発行する命令発行手段と、を備えたことを特徴とする(請求項1)。ここでいう「第一のパス」は、単数のパスでも複数のパスでもよい。
リザーブ命令は、論理ディスクに対して一つのパスのみのアクセスを許可する。そのため、従来、リザーブ命令によって一つのパスがリザーブされると、他のパスはその論理ディスクにアクセスできなくなるため、複数のパスによる負荷分散機能が十分に発揮されなかった。これに対し、本発明では、リザーブ命令をそのままディスクアレイサブシステムへ送るのではなく、リザーブ命令を他のパスのアクセスも許可し得る命令に置換してディスクアレイサブシステムへ送ることにより、論理ディスクに対して複数のパスのアクセスが可能となるので、複数のパスによる負荷分散機能が十分に発揮されることになる。また、冗長パス制御装置の上位側のミドルウェア又はソフトウェアについては、従来どおりにリザーブ命令を発行すればよいので、新たな変更は不要である。言い換えると、ミドルウェア又はソフトウェアがリザーブを使用するシステム環境において、I/Oパス帯域を有効に活用する手段を提供できたので、I/Oアクセス性能が向上する。
このとき、命令発行手段が発行する命令には、第一のパスを示す情報が含まれる、としてもよい(請求項2)。ディスクアレイサブシステムは、第一のパスを示す情報をレジスタに書き込むことにより、論理ディスクに対する第一のパスのアクセスを許可し得る。なお、第一のパスが複数のパスであれば、第一のパスを示す情報も複数のパスを示す情報である。同様に、他のパスについてもその情報をレジスタに書き込むことにより、論理ディスクに対する複数のパスのアクセスを許可し得る。
各手段は、次の機能を有してもよい(請求項3)。命令捕捉手段は、複数のパスの中でリザーブされている第二のパスについて、当該リザーブをリリースするためのリリース命令、当該リザーブを解除するためのリセット命令及び当該リザーブを強制解除するための強制解除命令の少なくとも一つの命令を捕捉する機能を有する。命令置換手段は、命令捕捉手段で捕捉した命令を、第二のパスのみのアクセスを拒否する命令に置換する機能を有する。命令発行手段は、命令置換手段で置換された命令をディスクアレイサブシステムへ発行する機能を有する。ここでいう「第二のパス」は、単数のパスでも複数のパスでもよい。これにより、リリース命令、リセット命令及び強制解除命令のいずれかによって、指定されたパスのみのアクセスが拒否される。冗長パス制御装置の上位側のミドルウェア又はソフトウェアについては、従来どおりにリリース命令又はリセット命令を発行すればよいので、新たな変更は不要である。
このとき、命令発行手段が発行する命令には、第二のパスを示す情報が含まれる、としてもよい(請求項4)。ディスクアレイサブシステムは、第二のパスを示す情報をレジスタから消すことにより、論理ディスクに対する第二のパスのアクセスを拒否し得る。同様に、他のパスについてもその情報をレジスタから消すことにより、論理ディスクに対する複数のパスのアクセスを拒否し得る。なお、第二のパスが複数のパスであれば、第二のパスを示す情報も複数のパスを示す情報である。
本発明に係るディスクアレイシステムは、本発明に係る冗長パス制御装置と、ディスクアレイサブシステムと、を備えたことを特徴とする(請求項5)。本発明に係るディスクアレイシステムの作用及び効果は、前述した本発明に係る冗長パス制御装置の作用及び効果に準ずる。
本発明に係る冗長パス制御方法は、ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御する方法において、複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉し、この捕捉したリザーブ命令を、第一のパスのアクセスを許可するだけでなく他のパスのアクセスも許可し得る命令に置換し、この置換した命令をディスクアレイサブシステムへ発行する、ことを特徴とする(請求項6)。このとき、ディスクアレイサブシステムへ発行する命令には第一のパスを示す情報が含まれ、ディスクアレイサブシステムは、発行された命令を受けて、第一のパスを示す情報をレジスタに書き込む、としてもよい(請求項7)。また、本発明に係る冗長パス制御方法は、複数のパスの中でリザーブされている第二のパスについて、当該リザーブをリリースするためのリリース命令、当該リザーブを解除するためのリセット命令及び当該リザーブを強制解除するための強制解除命令の少なくとも一つの命令を捕捉し、この捕捉した命令を、第二のパスのみのアクセスを拒否する命令に置換し、この置換した命令をディスクアレイサブシステムへ発行する、としてもよい(請求項8)。このとき、ディスクアレイサブシステムへ発行する命令には第二のパスを示す情報が含まれ、ディスクアレイサブシステムは、発行された命令を受けて、第二のパスを示す情報をレジスタから消去する、としてもよい(請求項9)。本発明に係る冗長パス制御方法の作用及び効果は、前述した本発明に係る冗長パス制御装置の作用及び効果に準ずる。
本発明に係る冗長パス制御プログラムは、ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御する手段として機能するコンピュータに用いられ、複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉する命令捕捉手段、この命令捕捉手段で捕捉したリザーブ命令を、第一のパスのアクセスを許可するだけでなく他のパスのアクセスも許可し得る命令に置換する命令置換手段、及び、この命令置換手段で置換された命令をディスクアレイサブシステムへ発行する命令発行手段、としてコンピュータを機能させるためのものである(請求項10)。本発明に係る冗長パス制御プログラムの構成要素は、前述した本発明に係る冗長パス制御装置の構成要素に対応させてもよい。また、本発明に係る冗長パス制御プログラムの作用及び効果は、前述した本発明に係る冗長パス制御装置の作用及び効果に準ずる。
更に、本発明は次のように構成することもできる。
(1).ディスクアレイサブシステムがそのパスにリザーブされるためのリザーブ命令を捕捉する手段、リザーブ状態をリリースするためのリリース命令を捕捉する手段、リザーブ状態を解除するためのリセット命令を捕捉する手段及びリザーブ状態を強制解除するための強制解除命令を捕捉する手段と、捕捉した命令を他の命令に置換して配下のディスクアレイサブシステムに発行する手段とを有するパス冗長化ドライバ。
(2).上記(1)において、捕捉したリザーブ命令の代わりに、アクセスするパスを区別するためのレジスタに登録する「そのパスだけでなくグループを構成するパスからのアクセスを許可する状態を示す情報」を配下のディスクアレイサブシステムへ発行し、リリース命令又はリセット命令を捕捉した場合に「当該グループを構成するパスからのアクセスを許可する状態を示す情報」をレジスタからクリアする命令を発行するパス冗長化ドライバ。
(3).上記(1)、(2)において、ディスクアレイサブシステムのリザーブ状態を取得するための命令を配下のディスク装置に発行し、自身のホストコンピュータでディスク装置をリザーブしていない場合はアクセスするパスを区別するためのレジスタに登録する「そのホストコンピュータに実装されるパスからのアクセスを許可する状態を示す情報」を配下のディスクアレイサブシステムへ発行しない手段を有するパス冗長化ドライバ。
(4).上記(1)から(3)の構成によって、1台のホストコンピュータから複数パスに分散してディスクへアクセスすることを可能にしたパス冗長化ドライバ。
(5).上記(1)から(4)の機能のいずれか一つ又は複数を含むパス冗長化ドライバを備えた記憶媒体。
解決手段の具体例を以下に示す。以下の例では、SCSI−3におけるパーシステント・リザーブ イン(Persistent Reserve In)命令及びパーシステント リザーブ アウト(Persistent Reserve Out)命令を処理する機能を実装したディスクアレイサブシステムを使用するものとする。また、以下のコマンドの機能(意味)については、SCSIのスペックとなるので、以下のURLから参照できる。
http://www.t10.org/
http://www.t10.org/ftp/t10/drafts/spc2/spc2r20.pdf
http://www.t10.org/ftp/t10/drafts/spc3/spc3r23.pdf
<1>.リザーブ(Reserve)のI/Oリクエストを捕捉する手段をパス冗長化ドライバに設ける。
<2>.リリース(Release)のI/Oリクエストを捕捉する手段をパス冗長化ドライバに設ける。
<3>.リセット(Reset)のI/Oリクエストを捕捉する手段をパス冗長化ドライバに設ける。
<4>.パーシステント リザーブ(Persistent Reserve)を強制的に解除するI/Oリクエストを捕捉する手段をパス冗長化ドライバに設ける。
<5>.アクセスを許可するパスについては、パーシステント リザーブ アウト - レジスタ(Persistent Reserve Out - Register)サービスを発行及び制御する手段をパス冗長化ドライバに設ける。
<6>.リザーブ(Reserve)のI/Oリクエストについて、パーシステント リザーブ アウト - リザーブ(Persistent Reserve Out - Reserve)サービスへの置き換え、ディスクアレイサブシステムへの発行及び制御する手段をパス冗長化ドライバに設ける。
<7>.リリースのI/Oリクエストについて、パーシステント リザーブ アウト - クリア(Persistent Reserve Out - Clear)サービスへの置き換え、ディスクアレイサブシステムへの発行及び制御する手段をパス冗長化ドライバに設ける。
<8>.リセット(Reset)のI/Oリクエストについて、パーシステント リザーブ アウト - クリア(Persistent Reserve Out - Clear)サービスへの置き換え、ディスクアレイサブシステムへの発行及び制御する手段をパス冗長化ドライバに設ける。
<9>.パーシステント リザーブ(Persistent Reserve)の状態を取得するために、パーシステント リザーブ イン - リード キーズ(Persistent Reserve In - Read Keys)サービス及びパーシステント リザーブ イン - リード リザベーション(Persistent Reserve In - Read Reservation)サービスを発行及び制御する手段をパス冗長化ドライバに設ける。
<10>.自身のホストコンピュータでパーシステント リザーブ(Persistent Reserve)をしていない場合は、パーシステント リザーブ アウト - レジスタ(Persistent Reserve Out - Register)サービスを使用しない制御手段をパス冗長化ドライバに設ける。
<11>.自身のホストコンピュータでパーシステント リザーブ(Persistent Reserve)をしている場合に、パーシステント リザーブ(Persistent Reserve)によるリザーブを実施したイニシエータとディスクアレイサブシステムとの間でパス障害を検出したときに、他のイニシエータからパーシステント リザーブ アウト - プリエンプト(Persistent Reserve Out - Preempt)サービスを発行及び制御し、パーシステント リザーブ(Persistent Reserve)によるリザーブを移動させる手段をパス冗長化ドライバに設ける。
<12>.自身のホストコンピュータでもはやパーシステント リザーブ(Persistent Reserve)を使用しない場合に、パーシステント リザーブ アウト - プリエンプト(Persistent Reserve Out - Preempt)サービスを発行及び制御し、パーシステント リザーブ(Persistent Reserve)に関する登録情報を削除する手段をパス冗長化ドライバに設ける。
<13>.強制的にパーシステント リザーブ(Persistent Reserve)命令を使用可能とするために、パーシステント リザーブ アウト - レジスタ アンド イグノア イグズィスティング キー(Persistent Reserve Out - Register and Ignore Existing Key)サービスを発行及び制御する手段をパス冗長化ドライバに設ける。
<14>.パーシステント リザーブ(Persistent Reserve)を強制的に解除するI/Oリクエストについて、パーシステント リザーブ アウト - クリア(Persistent Reserve Out - Clear)サービスへの置き換え、ディスクアレイサブシステムへの発行及び制御する手段をパス冗長化ドライバに設ける。
<15>.パーシステント リザーブ(Persistent Reserve)強制解除コマンドを発行する手段としてパス冗長化ドライバを操作するユーザインタフェース上に設ける。
本発明によれば、リザーブ命令をそのままディスクアレイサブシステムへ送るのではなく、リザーブ命令を他のパスのアクセスも許可し得る命令に置換してディスクアレイサブシステムへ送ることにより、論理ディスクに対して複数のパスのアクセスが可能となるので、複数のパスによる負荷分散機能を十分に発揮できる。また、ミドルウェア又はソフトウェアについては、従来どおりにリザーブ命令を発行すればよいので、新たな改造は不要である。したがって、ミドルウェア又はソフトウェアがリザーブを使用するシステム環境において、I/Oパス帯域を有効に活用できるので、I/Oアクセス性能を向上できる。
図1は、本発明に係るパス冗長化ドライバ(冗長パス制御装置)の一実施形態を示すブロック図である。図2は、本実施形態のパス冗長化ドライバを含むディスクアレイシステムを示すブロック図である。図3は、本実施形態のパス冗長化ドライバを含むクラスタシステム(ディスクアレイシステム)を示すブロック図である。以下、これらの図面に基づき説明する。
まず、図1及び図2に基づき、主要な部分を説明する。
パス冗長化ドライバ4は、ディスクアレイサブシステム10内の論理ディスク13〜15にアクセスするための二つのパス(HBA6を通るパス及びHBA7を通るパス)を制御する手段(図示せず)を備え、その他に命令捕捉手段41、命令置換手段42及び命令発行手段43を備えている。これらの手段は、例えばコンピュータプログラムによって、ホストコンピュータ1内に実現することができる(すなわち本発明に係るパス冗長化プログラムの一実施形態)。命令捕捉手段41は、一つのパスをリザーブするためのリザーブ命令を捕捉する。命令置換手段42は、命令捕捉手段41で捕捉したリザーブ命令を、一つのパスのアクセスを許可するだけでなく他のパスのアクセスも許可し得る命令に置換する。命令発行手段43は、命令置換手段42で置換された命令をディスクアレイサブシステム10へ発行する。
リザーブ命令は、論理ディスク13〜15に対して一つのパスのみのアクセスを許可する。そのため、従来、リザーブ命令によって一つのパスがリザーブされると、他のパスはその論理ディスク13〜15にアクセスできなくなるため、複数のパスによる負荷分散機能が十分に発揮されなかった。これに対し、パス冗長化ドライバ4では、リザーブ命令をそのままディスクアレイサブシステム10へ送るのではなく、リザーブ命令を他のパスのアクセスも許可し得る命令に置換してディスクアレイサブシステム10へ送ることにより、論理ディスク13〜15に対して複数のパスのアクセスが可能となるので、複数のパスによる負荷分散機能が十分に発揮されることになる。また、パス冗長化ドライバ4の上位側のアプリケーション8等については、従来どおりにリザーブ命令を発行すればよいので、新たな変更は不要である。
このとき、命令発行手段43が発行する命令には、アクセスを許可するパスを示す情報が含まれる。ディスクアレイサブシステム10は、そのパスを示す情報をレジスタに書き込むことにより、論理ディスク13〜15に対するそのパスのアクセスを許可し得る。同様に、他のパスについてもその情報をレジスタに書き込むことにより、論理ディスク13〜15に対する複数のパスのアクセスを許可し得る。なお、レジスタは、例えばコントローラ11,12内又は論理ディスク13〜15内に設けられる。
各手段は、次の機能をも有する。命令捕捉手段41は、複数のパスの中でリザーブされている一つのパスについて、当該リザーブをリリースするためのリリース命令、当該リザーブを解除するためのリセット命令及び当該リザーブを強制解除するための強制解除命令の少なくとも一つの命令を捕捉する機能を有する。命令置換手段42は、命令捕捉手段41で捕捉した命令を、一つのパスのみのアクセスを拒否する命令に置換する機能を有する。命令発行手段43は、命令置換手段42で置換された命令をディスクアレイサブシステム10へ発行する機能を有する。これにより、リリース命令、リセット命令及び強制解除命令のいずれかによって、指定されたパスのみのアクセスが拒否される。アプリケーション8等については、従来どおりにリリース命令又はリセット命令を発行すればよいので、新たな変更は不要である。
このとき、命令発行手段43が発行する命令には、アクセスを拒否するパスを示す情報が含まれる。ディスクアレイサブシステム10は、そのパスを示す情報をレジスタから消すことにより、論理ディスク13〜15に対するそのパスのアクセスを拒否し得る。同様に、他のパスについてもその情報をレジスタから消すことにより、論理ディスク13〜15に対する複数のパスのアクセスを拒否し得る。
次に、図2の構成について更に詳しく説明する。
本実施形態のディスクアレイシステム1Aは、ホストコンピュータ1とディスクアレイサブシステム10とから成る。ホストコンピュータ1のHBA6,7は、それぞれホストインタフェースケーブル20,21を介してディスクアレイサブシステム10のコントローラ11,12にあるホスト接続ポート16,17に接続されている。ホストコンピュータ1は、ディスクアレイサブシステム10が制御する論理ディスク13〜15に対するI/Oを実行する。下位ドライバ5は、HBA6,7を制御しI/O処理を行う。
パス冗長化ドライバ4は、上位ドライバ3から受け取ったI/Oを下位ドライバ5へ引き渡し、また、HBA6,7を介してディスクアレイサブシステム10が制御する論理ディスク13〜15に対するI/Oの実行結果を下位ドライバ5から受け取り、正常終了又は異常終了の判断を行い、異常終了の原因がパスの構成要素(HBA6,7、ホストインタフェースケーブル20,21、コントローラ11,12等)における障害(故障)と判断した場合は、代替パスを用いて、異常終了したI/Oのリトライ処理を行う。
ディスクアレイサブシステム10のコントローラ11,12は、それぞれ内部バス16,17を介して各論理ディスク13〜15に接続されている。コントローラ11,12のいずれからも、論理ディスク13〜15のそれぞれに対してアクセスすることができる。
次に、図3の構成について説明する。
図3のクラスタシステム100は、図2のホストコンピュータ1を二台用意し、図2のディスクアレイサブシステム10を一台用意し、二台のホストコンピュータ1で一台のディスクアレイサブシステム10を共有するように組み合わせたものであり、論理ディスク170に対してリザーブを使用する2ノードクラスタシステムである。
図3のホストコンピュータ111,112は、一部の図示を省略しているが図2のホストコンピュータ1と同じ構成であり、これら二つでクラスタ110となっている。図3のディスクアレイサブシステム150は、一部の図示を省略しているが、図2のディスクアレイサブシステム10と同じ構成である。ホストコンピュータ111はパス冗長化ドライバ121とHBA131a,131bとを備え、ホストコンピュータ112はパス冗長化ドライバ122とHBA132a,132bとを備えている。ディスクアレイサブシステム150は、コントローラ161,162と論理ディスク170とを備えている。HBA131a,132aとコントローラ161とはスイッチ141を介して接続され、HBA131b,132bとコントローラ162とはスイッチ142を介して接続されている。
次に、ディスクアレイシステム1Aの動作を、図2に基づき説明する。
ホストコンピュータ1上で動作するアプリケーション8によってディスクアレイサブシステム10に書き込まれるデータ(ライトデータ転送I/O)は、アプリケーション8、ファイルシステム2、上位ドライバ3、パス冗長化ドライバ4、下位ドライバ5、HBA6、ホストインタフェースケーブル20、ホスト接続ポート16を介してコントローラ11に至り、指定された論理ディスク13〜15に書き込まれる。
ホストコンピュータ1上で動作するアプリケーション8よってディスクアレイサブシステム10から読み出されるデータ(リードデータ転送I/O)は、指定された論理ディスク13〜15から、コントローラ11、ホスト接続ポート16、ホストインタフェースケーブル20を介してHBA6に至り、更に下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3、ファイルシステム2を経てアプリケーション8に至る。
また、ホストコンピュータ1による各I/Oの実行結果については、HBA6、下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3、ファイルシステム2及びアプリケーション8の各レイヤによって判断が行われ、必要に応じて何らかの処置が行われるのが一般的である。
ここで、パス冗長化ドライバ4は、下位ドライバ5から受け取ったI/Oの実行結果について正常終了又は異常終了の判断を行い、異常終了の原因がパスの構成要素(HBA、インタフェースケーブル、コントローラ等)における障害(故障)と判断した場合は、代替パスを用いて、異常終了したI/Oのリトライ処理を行うドライバである(として一般に知られている。)。更に、パス冗長化ドライバ4は、一方のI/Oパス(例えばコントローラ11)のみにI/Oが集中することのないよう、複数のI/Oパスを有効に活用し、I/Oの負荷分散(コントローラ11,12にI/Oを振り分け)を行う機能を有する。
次に、ミドルウェア又はソフトウェアがリザーブを使用する場合において、I/Oパス帯域を有効活用する手段について説明する。
まず、リザーブを使用した環境における、従来のパス冗長化ドライバに関する問題点について説明する。
(1).パス冗長化ドライバがI/Oパスの負荷分散機能を有していても、複数のイニシエータ(HBA)を使用してのI/Oパスの負荷分散機能を積極的に活用することができない。
(2).既にリザーブを実施したイニシエータによって、例えばリリース(又は任意のイニシエータよってリセット)を実施した後、他のイニシエータからリザーブを行うことにより、複数のI/Oパスを使用することは可能である。しかし、一回のI/Oを行うたびに、<1>.リザーブを実施したイニシエータでリリース(又は任意のイニシエータでリセット)、<2>.他のイニシエータでリザーブ、<3>.目的のI/O実施、というように合計3つのI/O発行が必要となるので、I/O性能に影響を与えてしまうことになる。
(3).上記(2)は、ミドルウェア又はソフトウェアの制御範囲外で、リリース(又はリセット)によって一時的にリザーブ状態が解除されるため、意図しないイニシエータからのI/Oアクセスが可能となる。そのため、ミドルウェア又はソフトウェアによる論理ディスクの排他制御の不整合やデータ破壊などの問題につながる可能性がある。
これらの問題点を解決するための方法を、図2及び図4〜図10を参照して以下に説明する。図4〜図10は、パス冗長化ドライバ4によって実施される処理過程の一部を示したフローチャート(すなわち本発明に係るパス冗長化方法の一実施形態)である。
本実施形態では、SCSI−3におけるパーシステント リザーブ イン命令及びパーシステント リザーブ アウト命令を処理する機能が実装されているディスク装置を使用した場合について説明する。また、パーシステント リザーブで使用するリザベーション キーは、1つ又は複数のホストコンピュータに実装されているイニシエータ毎にユニークな値を使用するものとする。以降の説明では、リザベーション キーの一例として、イニシエータとなるHBAのワールド ワイド ポート ネーム(World Wide Port Name)の8バイトを使用する。なお、ワールド ワイド ポート ネームとは、ファイバ チャネル(Fibre Channel)ケーブルを接続するファイバ チャネル機器の各ポートに付与された固有識別子のことである。
図4は、パス冗長化ドライバ4のI/Oリクエスト判別処理を示すフローチャートである。以下、この図面を中心に説明する。
まず、上位ドライバ3からI/Oリクエストを受け取り(ステップS101)、I/Oリクエストがリザーブであるか否かを判断し(ステップS102)、リザーブであればリザーブ処理に移行する(ステップS110)。リザーブでなければI/Oリクエストがリリースであるか否かを判断し(ステップS103)、リリースであればリリース処理に移行する(ステップS111)。リリースでなければI/Oリクエストがリセットであるか否かを判断し(ステップS104)、リセットであればリセット処理に移行する(ステップS112)。リセットでなければI/Oリクエストがパーシステント リザーブの強制解除であるか否かを判断し(ステップS105)、パーシステント リザーブの強制解除であれば強制解除処理に移行する(ステップS113)。パーシステント リザーブの強制解除でなければ、すなわちステップS102からステップS105のいずれにも該当しなければ、従来通りの処理へ移行する(ステップS106)。
図5及び図6は、上位ドライバ3から受け取ったI/Oリクエストがリザーブであり、パーシステント リザーブによるリザーブを実施するための変換処理を示すフローチャートである。以下、これらの図面を中心に説明する。
まず、現時点における目的の論理ディスク13〜15に対するパーシステント リザーブ情報に関して、パーシステント リザーブ イン - リード キーズ サービス及びパーシステント リザーブ イン - リード リザベーション サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行し、ディスクアレイサブシステム10から情報を取得する(ステップS201)。
続いて、ステップS201で取得した情報を参照して、自身のホストコンピュータ1でパーシステント リザーブを実施しているか否かを判断し(ステップS202)、自身のホストコンピュータ1で実施していればステップS203へ移行し、そうでなければステップS210へ移行する。
≪既に自身のホストコンピュータでパーシステント リザーブを実施済みの場合の処理≫
ステップS203では、目的の論理ディスク13〜15に対して、パーシステント リザーブによるリザーブを実施するために、ステップS201で取得した情報を参照して、既にパーシステント リザーブ アウト - リザーブ サービスを実施したイニシエータが自身のホストコンピュータ1のHBA6又はHBA7のいずれかであるかを特定し(本実施形態ではHBA6であったとする)、HBA6のワールド ワイド ポート ネームの8バイトをリザベーション キーに指定し、また、タイプ(Type)にイクスクルーシブ アクセス - レジストラント オンリ(Exclusive Access - Registrants Only)を指定したパーシステント リザーブ アウト - リザーブ サービスのI/Oリクエストを生成し、下位ドライバ5へ発行する。
以上で、自身のホストコンピュータ1でパーシステント リザーブによるリザーブを実施している場合の処理を終了し、従来の処理へ移行する(ステップS204)。
≪自身のホストコンピュータではパーシステント リザーブが未実施の場合の処理≫
ステップS202において、自身のホストコンピュータ1でパーシステント リザーブによるリザーブを実施していない場合は、ステップS201で取得した情報を参照して、パーシステント リザーブそのものが実施されているか否かを判断し(ステップS210)、パーシステント リザーブによるリザーブそのものが実施されていなければステップS211へ移行し、自身以外のホストコンピュータ(図2では図示略、図3参照)でパーシステント リザーブによるリザーブが実施されていればステップS220へ移行する。
≪既に自身以外のホストコンピュータがパーシステント リザーブを実施している場合の処理≫
ステップS220に移行する場合は、既に自身以外のホストコンピュータでパーシステント リザーブによるリザーブが実施済みであり、上位ドライバ3から受け取ったリザーブのI/Oリクエストは、リザベーション コンフリクト(Reservation Conflict)応答でリザーブに失敗することが期待値である。
目的の論理ディスク13〜15に対して、HBA6又はHBA7のいずれかのHBA(本実施形態ではHBA6とする)のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定し、また、タイプにイクスクルーシブ アクセス - レジストラント オンリを指定したパーシステント リザーブ アウト - リザーブ サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
当該パターンでは、自身のホストコンピュータ1のHBA6又はHBA7のいずれのイニシエータからもパーシステント リザーブ アウト - レジスタ サービスのI/Oリクエストの発行は行っていないことから、下位ドライバ5へ発行したパーシステント リザーブ アウト - リザーブ サービスのI/Oリクエストはリザベーション コンフリクト応答によってリザーブが失敗し、期待通りの結果が得られることとなる。
≪自身以外のホストコンピュータ含めパーシステント リザーブが実施されていない場合の処理≫
ステップS211において、自身のホストコンピュータ1及び自身以外のホストコンピュータのいずれのイニシエータからもパーシステント リザーブによるリザーブは実施されていないため、目的の論理ディスクに対してパーシステント リザーブを使用するために、HBA6又はHBA7のいずれかのHBA(本実施形態ではHBA6とする)のワールド ワイド ポート ネームの8バイトをサービス アクション リザベーション キーとして指定し、リザベーション キーにゼロを指定したパーシステント リザーブ アウト - レジスタ サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
続いて、目的の論理ディスク13〜15に対してHBA6からパーシステント リザーブによるリザーブを実施するために、リザベーション キーとして、HBA6のワールド ワイド ポート ネームの8バイトを指定し、また、タイプにイクスクルーシブ アクセス - レジストラント オンリを指定したパーシステント リザーブ アウト - リザーブ サービスのI/Oリクエストを生成し、下位ドライバ5へ発行する(ステップS212)。
続いて、ステップS213において、ステップS212で下位ドライバ5へ発行したパーシステント リザーブによるリザーブの実行結果を確認し、正常終了であればステップS214へ移行し、異常終了であればステップS230へ移行する。
ステップS214では、HBA6の対となるHBA7からも目的の論理ディスク13〜15に対してパーシステント リザーブを使用するために、HBA7のワールド ワイド ポート ネームの8バイトをサービス アクション リザベーション キーとして指定し、リザベーション キーにゼロを指定したパーシステント リザーブ アウト - レジスタ サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。これらの処理により、ミドルウェア又はソフトウェアがリザーブを使用する場合において、複数のイニシエータを使用したI/Oアクセスが可能となる。
以上で、自身のホストコンピュータ1及び自身以外のホストコンピュータのどちらもパーシステント リザーブによるリザーブを実施していない場合の処理を終了し、従来の処理へ移行する(ステップS215)。
≪自身以外のホストコンピュータがリザーブ又はリセットしたためパーシステント リザーブができなかった場合の処理≫
ステップS230では、自身以外のホストコンピュータが既にリザーブのI/Oリクエストを実施したか、又はリセットのI/Oリクエストを実施したことで、HBA6からのパーシステント リザーブによるリザーブができなかったため、HBA6に関するリザベーション キーを指定したパーシステント リザーブ アウト - プリエンプト サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。これにより、目的の論理ディスクに対するHBA6に関するパーシステント リザーブ登録情報の削除を実施し、自身のホストコンピュータ1からのパーシステント リザーブは使用しない。
以上で、自身以外のホストコンピュータがリザーブのI/Oリクエスト又はリセットのI/Oリクエストを実施した場合の処理を終了し、従来の処理へ移行する(ステップS231)。
図7[1]は、上位ドライバ3から受け取ったI/Oリクエストがリリースであり、パーシステント リザーブによるリザーブ関係をリリースするための処理を示すフローチャートである。以下、この図面を中心に説明する。
本I/Oリクエストは、リザーブ命令を発行したイニシエータから発行することにより、このイニシエータにリザーブされている論理ディスクのリザーブをリリースすることはできるが、他のイニシエータにリザーブされている論理ディスクのリザーブをリリースすることはできない。そのため、本実施形態では、目的の論理ディスクに対するパーシステント リザーブ アウト - リザーブ サービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ関係を全てリリースするよう試みるのみとし、リザーブ関係がリリースできたか否かは特に気にしない。
ステップS301では、目的の論理ディスク13〜15に対して、HBA6又はHBA7のいずれかのHBA(本実施形態ではHBA6とする)のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - クリア サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
以上で、パス冗長化ドライバ4がリリースのI/Oリクエストを受け付けた場合の処理を終了し、従来の処理へ移行する(ステップS302)。
これらの処理により、自身のホストコンピュータ1で以前に目的の論理ディスク13〜15に対してパーシステント リザーブ アウト - レジスタが行われていれば、この論理ディスクに対するパーシステント リザーブ アウト - リザーブ サービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ関係を全てリリースすることができ、自身のホストコンピュータ1で以前に当該論理ディスクに対してパーシステント リザーブ アウト - レジスタが行われていなければ、この論理ディスクに対するパーシステント リザーブ アウト - リザーブ サービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ関係はリリースすることはできなく、本来のリリース命令の振る舞いを実現することができる。
図7[2]は、上位ドライバ3から受け取ったI/Oリクエストがリセットであり、パーシステント リザーブによるリザーブをリセットするための処理を示すフローチャートである。以下、この図面を中心に説明する。
本I/Oリクエストは、リザーブ命令を発行したイニシエータに限らず、いずれかのイニシエータから発行することで、任意のイニシエータにリザーブされている論理ディスクのリザーブをリセットすることができる。そのため、本実施形態では、目的の論理ディスクに対するパーシステント リザーブ アウト - リザーブ サービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ関係を全てリセットするよう振る舞うこととする。
ステップS401では、目的の論理ディスク13〜17に対して、HBA6又はHBA7のいずれかのHBA(本実施形態ではHBA6とする)のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - レジスタ アンド イグノア イグズィスティング キー サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
続いて、ステップS402において、目的の論理ディスク13〜15に対して、ステップS401にてパーシステント リザーブ アウト - レジスタ アンド イグノア イグズィスティング キー サービスを発行したHBA6のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - クリア サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
以上で、パス冗長化ドライバ4がリセットのI/Oリクエストを受け付けた場合の処理を終了し、従来の処理へ移行する(ステップS403)。
これらの処理により、以前に目的の論理ディスクに対してパーシステント リザーブ アウト - レジスタが行われているか否かに関わらず、当該論理ディスクに対するパーシステント リザーブ アウト - リザーブサービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ関係を全てリセットすることができ、本来のリセット命令の振る舞いを実現することができる。
図8は、下位ドライバ5から受け取った任意の論理ディスクに対するI/Oリクエストの実行結果にパス障害を検出した場合に、パス冗長化ドライバ4が他のパスに切り替えて当該I/Oリクエストのリトライをするための前処理を示すフローチャートである。以下、この図面を中心に説明する。
まず、現時点における当該論理ディスクに関するパーシステント リザーブ情報に関して、パーシステント リザーブ イン - リード キーズ サービス及びパーシステント リザーブ イン - リード リザベーション サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行し、ディスクアレイサブシステム10から情報を取得する(ステップS501)。
ステップS502では、ステップS501で取得した情報を参照して、自身のホストコンピュータ1でパーシステント リザーブによるリザーブを実施しているか否かを判断し、自身のホストコンピュータ1で実施していればステップS503へ移行し、そうでなければ、従来のパス切り替え処理へ移行する(ステップS510)。
ステップS503では、ステップS501で取得した情報を参照して、パス障害を検出したパスでパーシステント リザーブ アウト - リザーブ サービスを実施していたか否かを判断し、パス障害を検出したパスでパーシステント リザーブ アウト - リザーブ サービスを実施していたならステップS504へ移行し、そうでなければ、従来のパス切り替え処理へ移行する(ステップS511)。
ステップS504では、パス障害を検出したパス(本実施形態ではHBA6であったとする)にてパーシステント リザーブ アウト - リザーブ サービスを実施しているため、HBA6のワールド ワイド ポート ネームの8バイトをサービス アクション リザベーション キーとして指定し、パス切り替え先(本実施形態ではHBA7であったとする)よりHBA7のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - プリエンプト サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。これらの処理により、パーシステント リザーブによるリザーブはHBA7のパスに移動させることができる。
以上で、パス冗長化ドライバ4がパス障害を検出した場合の前処理を終了し、従来のパス切り替え処理へ移行する(ステップS505)。
図9は、パス障害を検出したパスが部品交換などにより正常状態に復旧した場合に、パス冗長化ドライバ4に正常なパスとして組み込むための前処理を示すフローチャートである。以下、この図面を中心に説明する。
まず、現時点における当該論理ディスクに関するパーシステント リザーブ情報に関して、パーシステント リザーブ イン - リード キーズ サービス及びパーシステント リザーブ イン - リード リザベーション サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行し、ディスクアレイサブシステム10から情報を取得する(ステップS601)。
ステップS602では、ステップS601で取得した情報を参照して、自身のホストコンピュータ1でパーシステント リザーブによるリザーブを実施しているか否かを判断し、自身のホストコンピュータ1で実施していたならばステップS603へ移行し、そうでなければ、従来のパス切り戻し処理へ移行する(ステップS610)。
ステップS603では、以前にパス障害を検出したパス(本実施形態ではHBA6であったとする)は、パーシステント リザーブを使用するためのレジスタ情報が削除されている可能性があるため、再度HBA6のワールド ワイド ポート ネームの8バイトをサービス アクション リザベーション キーとして指定し、リザベーション キーにゼロを指定したパーシステント リザーブ アウト - レジスタ サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。これらの処理によりHBA6のパスからもパーシステント リザーブを使用することができ、ミドルウェア又はソフトウェアがリザーブを使用する場合において、複数のイニシエータを使用したI/Oアクセスが可能となる。
以上で、パス障害を検出したパスが部品交換などにより正常状態に復旧した場合に、パス冗長化ドライバ4に正常なパスとして組み込むための前処理を終了し、従来のパス切り替え処理へ移行する(ステップS604)。
図4〜図9の処理では、上位ドライバ3から受け取ったリザーブ、リリース又はリセットのI/Oリクエストについて、パーシステント リザーブ イン命令及びパーシステント リザーブ アウト命令への置き換え、ディスクアレイサブシステム10への発行及びこれらの管理及び制御は、パス冗長化ドライバ4内に隠蔽して処理するため、上位ドライバ3や下位ドライバ5及びリザーブを使用するミドルウェアやアプリケーションに改造の必要はない。
なお、これらリザーブ、リリース又はリセットのI/Oリクエストは、主にミドルウェア又はソフトウェアが論理ディスクを排他制御するために使用し、ミドルウェア又はソフトウェアの処理開始時に使用されるか、ミドルウェア又はソフトウェアの稼動中に一定の時間間隔をもって使用されるものであって常時使用されるものではなく、通常のI/Oリクエスト(例えば、リードデータ転送I/Oやライトデータ転送I/O)への影響は与えない。
図10は、パーシステント リザーブを強制的に解除するための処理を示すフローチャートである。以下、この図面を中心に説明する。
パーシステント リザーブ アウト - リザーブ サービスでは、命令のパラメータ指定によっては、ディスクアレイサブシステムの電源をオフし、次回の電源オン後も電源オフ以前のリザーブ状態が保持され続ける。このため、ミドルウェア又はソフトウェアによるリザーブの使用又は制御中にリザーブ管理に矛盾が発生した場合、パーシステント リザーブによるリザーブが解除できなくなる可能性がある点を考慮し、パーシステント リザーブによるリザーブ状態及び関連情報を強制解除する手段をパス冗長化ドライバ4に設けることとする。
ステップS701では、目的の論理ディスク13〜15に対して、HBA6又はHBA7のいずれかのHBA(本実施形態ではHBA6とする)のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - レジスタ アンド イグノア イグズィスティング キー サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
続いて、ステップS702において、目的の論理ディスクに対して、ステップS701においてパーシステント リザーブ アウト - レジスタ アンド イグノア イグズィスティング キー サービスを発行したHBA6のワールド ワイド ポート ネームの8バイトをリザベーション キーとして指定したパーシステント リザーブ アウト - クリア サービスのI/Oリクエストを生成し、これを下位ドライバ5へ発行する。
以上で、パス冗長化ドライバ4がパーシステント リザーブ強制解除のI/Oリクエストを受け付けた場合の処理を終了し、従来の処理へ移行する(ステップS703)。
これらの処理により、目的の論理ディスクに対するパーシステント リザーブ アウト − リザーブ サービス及びパーシステント リザーブ アウト - レジスタ サービスによるリザーブ状態及び関連情報を全て解除することができる。
一例として、図3のようなクラスタシステムにおいて、ミドルウェア又はソフトウェアによるリザーブの使用中又は制御中にリザーブ管理に矛盾が発生した場合にパーシステント リザーブを強制解除する手順を以下に示す。
(1)全てのノード(ホストコンピュータ)にてOSをシャットダウン(電源オフ)する。
(2)任意の1ノードのみOSを起動(電源オン)する。
(3)クラスタソフトのサービスプログラム及びドライバ類をOS起動時に自動で開始されないようにパラメータの設定を変更する。
(4)OSを再起動(電源オフ→電源オン)する。
(5)パス冗長化ドライバを操作するユーザインタフェース上からパーシステント リザーブ強制解除コマンドを実行する。
(6)前記(3)で変更したクラスタソフトのサービスプログラム及びドライバ類のパラメータを元に戻す。
(7)OSをシャットダウンする。
(8)全てのノードにてOSを起動し、クラスタシステムを再開する。
次に、本発明の効果について詳細に説明する。第一の効果は、論理ディスクに対してミドルウェア又はソフトウェアがリザーブを使用する場合においても、パス冗長化ドライバにて、複数のイニシエータを使用してのI/Oパスの負荷分散機能を積極的に活用することが可能となり、アクセス性能の向上を図ることができる。
その理由について説明する。リザーブ状態は、リザーブコマンドを発行したホストバスアダプタ(イニシエータ)とディスク(ターゲット)との間で確立される。このとき、ホストバスアダプタからリザーブされたディスクに対して、別のホストバスアダプタからリード/ライトしてもエラーとなり、リード/ライトは失敗する。そのため、リザーブコマンドが使用される場合では、ホストコンピュータにホストバスアダプタを二枚実装し、それぞれをディスクアレイサブシステムとケーブル接続することにより二つのデータ転送経路を設けても、データ転送に使用できる経路は一つに限定されてしまう。本発明では、この問題点を解決し、複数のデータ転送経路を有効に活用できる。
第二の効果は、論理ディスクに対してミドルウェア又はアプリケーションが使用するリザーブ、リリース及びリセットのI/Oリクエストについて、パーシステント リザーブ イン(SCSI−3)命令及びパーシステント リザーブ アウト(SCSI−3)命令への置き換え、ディスクアレイサブシステムへの発行並びにこれらの管理及び制御は、パス冗長化ドライバ内に隠蔽して処理するため、上位ドライバや下位ドライバ及びミドルウェアやアプリケーションに改造の必要はない。
その理由について説明する。パス冗長化ドライバは、OSカーネル内でフィルタドライバとして実装する。フィルタドライバは一般的に、OS標準ドライバに無い機能を補う。また、その名前が示すように透過性があり、補いたい機能以外は全て素通りするので、フィルタドライバを挟む上下のドライバやミドルウェアに機能変更の必要は発生しない。更に、ユーザモードで動作するアプリケーションには、その存在がわからない。よって、アプリケーションにも改造の必要はない。
第三の効果は、論理ディスクに対してミドルウェア又はアプリケーションが使用するリザーブ、リリース又はリセットのI/Oリクエストに関して作用するものであり、他のI/Oリクエストに対しては何ら影響を与えることはない。
その理由について説明する。第二の効果で述べたように、フィルタドライバの目的は、OS標準ドライバに無い機能を補うことである。そのため、パス冗長化ドライバ(フィルタドライバ)にて機能強化する動作及び作用以外については、OS標準ドライバが普通に処理する。
第四の効果は、ミドルウェア又はソフトウェアによるリザーブの使用又は制御中にリザーブ管理に矛盾が発生した場合にパーシステント リザーブを強制解除する手段を設けることにより、リザーブ管理の矛盾を解消し、正常状態に復帰させることができる。
その理由について説明する。リザーブコマンドによるディスクのリザーブ状態は、仕様上、リザーブコマンドを発行したホストバスアダプタを搭載したホストコンピュータの電源オフやディスク装置の電源オフ、又はリセット(LUNリセット/ターゲット リセット/バス リセット)で解除さる。仮にミドルウェアやソフトウェアによるリザーブの使用又は制御中に、ミドルウェアやソフトウェアの不具合によりリザーブ状態の管理に矛盾が発生した場合においても、ホストコンピュータ又はディスク装置の電源オフでリザーブ状態を解除することができ、リスタートが可能である。
一方、パーシステント リザーブコマンドでは、ホストコンピュータの電源オフやディスク装置の電源オフ、又はリセット(LUNリセット/ターゲット リセット/バス リセット)でもリザーブ状態を解除しない指定が可能である。この場合は、ミドルウェア、ソフトウェア又はパス冗長化ドライバの不具合によって、リザーブ状態の管理に矛盾が発生してしまうと、簡単にリザーブ状態を解除することができない。そのため、ディスクアレイ装置の保守員又は開発技術者によって特殊な保守コマンドでリザーブ状態を解除しなければならないので、ディスクアレイ装置の顧客の業務再開までに時間を要してしまい、その顧客に多大な損害を与えてしまう。そこで、予め強制解除手段を設けておくことにより、このような不測の事態を回避及び解決する。
以下、本発明の他の実施形態について説明する。
図2では、HBA6,7の2つのHBAを搭載するホストコンピュータ1を構成例としてあげたが、HBAの枚数は、OSの種類、OS標準ドライバ、又はホストコンピュータ1のハードウェア等の仕様によって制限されるものであり、パス冗長化ドライバ4としてHBAの枚数に制限はない。
図2では、コントローラ11,12の2つのコントローラを搭載するディスクアレイサブシステム10を構成例としてあげたが、そのコントローラ数に制限はない。
図2では、コントローラ11,12にホスト接続ポート16,17を1つずつ搭載するディスクアレイサブシステム10を構成例としてあげたが、コントローラに搭載するホスト接続ポート数に制限はない。
図2では、HBA6,7とコントローラ11,12とを直接ホストインタフェースケーブル20,21で接続したものを構成例としてあげたが、図3のように、途中に、スイッチ又はハブ等が介在してもかまわない。
図2では、ディスクアレイサブシステム10にホストコンピュータ1が1台のみ接続したものを構成例としてあげたが、図3に示すように、接続するホストコンピュータ数に制限はない。
図2では、論理ディスクはディスクアレイサブシステム10内に構成されるものを例としてあげたが、ディスクアレイサブシステム10に接続されたJBOD(Just Bunch of Disks)等の外部のディスクで構成されても良い。
図2及び図3のホストコンピュータに接続されるディスクアレイサブシステムの数に制限はない。
図2のディスクアレイサブシステム10内に構成される論理ディスク13〜15の数に制限はない。
図2のディスクアレイサブシステム10内の内部バス18,19の数に制限はない。
図3は2ノードクラスタの構成例であるが、クラスタを構成するノード数に制限はない。
本実施形態では、ディスクアレイサブシステムを例にしたが、ディスクアレイサブシステムのみに限定されるものではない。
本実施形態では、パーシステント リザーブ イン命令及びパーシステント リザーブ アウト命令のリザベーション キーとして、HBAのワールド ワイド ポート ネームの8バイトを使用して説明したが、この限りではなく、ユニークな値であれば何でも良い。
本実施形態では、パーシステント リザーブ イン命令及びパーシステント リザーブ アウト命令を処理する機能をディスクアレイサブシステムが実装していることを例に挙げて説明したが、ディスクアレイサブシステムにベンダー固有の命令を実装し、ベンダー固有命令を1つ又は複数組み合わせて実現しても良い。
本発明に係るパス冗長化ドライバの一実施形態を示すブロック図である。 本実施形態のパス冗長化ドライバを含むディスクアレイシステムを示すブロック図である。 本実施形態のパス冗長化ドライバを含むクラスタシステムを示すブロック図である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー1)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー2)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー2)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー3,4)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー5)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー6)である。 本実施形態のパス冗長化ドライバの動作を示すフローチャート(フロー7)である。
符号の説明
1A ディスクアレイシステム
1 ホストコンピュータ
2 ファイルシステム
3 上位ドライバ
4 パス冗長化ドライバ(冗長パス制御装置)
41 命令捕捉手段
42 命令置換手段
43 命令発行手段
5 下位ドライバ
6,7 HBA
8 アプリケーション
10 ディスクアレイサブシステム
11,12 コントローラ
13,14,15 論理ディスク
16,17 ホスト接続ポート
18,19 内部バス
20,21 ホストインタフェースケーブル

Claims (10)

  1. ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御する冗長パス制御装置において、
    前記複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉する命令捕捉手段と、
    この命令捕捉手段で捕捉したリザーブ命令を、前記第一のパスのアクセスを許可するだけでなく他の前記パスのアクセスも許可し得る命令に置換する命令置換手段と、
    この命令置換手段で置換された前記命令を前記ディスクアレイサブシステムへ発行する命令発行手段と、
    を備えたことを特徴とする冗長パス制御装置。
  2. 前記命令発行手段が発行する命令には、前記第一のパスを示す情報が含まれる、
    請求項1記載の冗長パス制御装置。
  3. 前記命令捕捉手段は、前記複数のパスの中でリザーブされている第二のパスについて、当該リザーブをリリースするためのリリース命令、当該リザーブを解除するためのリセット命令及び当該リザーブを強制解除するための強制解除命令の少なくとも一つの命令を捕捉する機能を有し、
    前記命令置換手段は、前記命令捕捉手段で捕捉した命令を、前記第二のパスのみのアクセスを拒否する命令に置換する機能を有し、
    前記命令発行手段は、前記命令置換手段で置換された前記命令を前記ディスクアレイサブシステムへ発行する機能を有する、
    請求項1又は2記載の冗長パス制御装置。
  4. 前記命令発行手段が発行する命令には、前記第二のパスを示す情報が含まれる、
    請求項3記載の冗長パス制御装置。
  5. 請求項1乃至4のいずれか1項に記載の冗長パス制御装置と、前記ディスクアレイサブシステムと、
    を備えたことを特徴とするディスクアレイシステム。
  6. ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御する冗長パス制御方法において、
    前記複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉し、
    捕捉した前記リザーブ命令を、前記第一のパスのアクセスを許可するだけでなく他の前記パスのアクセスも許可し得る命令に置換し、
    置換した前記命令を前記ディスクアレイサブシステムへ発行する、
    ことを特徴とする冗長パス制御方法。
  7. 前記ディスクアレイサブシステムへ発行する命令には、前記第一のパスを示す情報が含まれ、
    前記ディスクアレイサブシステムは、前記発行された命令を受けて、前記第一のパスを示す情報をレジスタに書き込む、
    請求項6記載の冗長パス制御方法。
  8. 前記複数のパスの中でリザーブされている第二のパスについて、当該リザーブをリリースするためのリリース命令、当該リザーブを解除するためのリセット命令及び当該リザーブを強制解除するための強制解除命令の少なくとも一つの命令を捕捉し、
    この捕捉した命令を、前記第二のパスのみのアクセスを拒否する命令に置換し、
    この置換した命令を前記ディスクアレイサブシステムへ発行する、
    請求項6又は7記載の冗長パス制御方法。
  9. 前記ディスクアレイサブシステムへ発行する命令には、前記第二のパスを示す情報が含まれ、
    前記ディスクアレイサブシステムは、前記発行された命令を受けて、前記第二のパスを示す情報をレジスタから消去する、
    請求項8記載の冗長パス制御方法。
  10. ディスクアレイサブシステム内の論理ディスクにアクセスするための複数のパスを制御する手段として機能するコンピュータに用いられ、
    前記複数のパスの中の第一のパスをリザーブするためのリザーブ命令を捕捉する命令捕捉手段、
    この命令捕捉手段で捕捉したリザーブ命令を、前記第一のパスのアクセスを許可するだけでなく他の前記パスのアクセスも許可し得る命令に置換する命令置換手段、及び、
    この命令置換手段で置換された前記命令を前記ディスクアレイサブシステムへ発行する命令発行手段、
    として前記コンピュータを機能させるための冗長パス制御プログラム。
JP2005213468A 2005-07-22 2005-07-22 冗長パス制御方法 Expired - Fee Related JP4506594B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005213468A JP4506594B2 (ja) 2005-07-22 2005-07-22 冗長パス制御方法
US11/453,797 US20070022227A1 (en) 2005-07-22 2006-06-16 Path control device, system, cluster, cluster system, method and computer readable medium embodying program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005213468A JP4506594B2 (ja) 2005-07-22 2005-07-22 冗長パス制御方法

Publications (2)

Publication Number Publication Date
JP2007034438A true JP2007034438A (ja) 2007-02-08
JP4506594B2 JP4506594B2 (ja) 2010-07-21

Family

ID=37680352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005213468A Expired - Fee Related JP4506594B2 (ja) 2005-07-22 2005-07-22 冗長パス制御方法

Country Status (2)

Country Link
US (1) US20070022227A1 (ja)
JP (1) JP4506594B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011014088A (ja) * 2009-07-06 2011-01-20 Hitachi Ltd 計算機装置及びパス管理方法
US9952945B2 (en) 2013-03-22 2018-04-24 Toshiba Memory Corporation Electronic equipment including storage device
JP2021056567A (ja) * 2019-09-27 2021-04-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2487637A4 (en) * 2009-09-07 2013-04-03 Fujitsu Ltd MEMBERSHIP MANAGEMENT SYSTEM, MEMBERSHIP MANAGEMENT DEVICE, AND PROGRAM
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US10261690B1 (en) * 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
EP3612922A1 (en) 2017-06-12 2020-02-26 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US10789020B2 (en) 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US10671435B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Data transformation caching in an artificial intelligence infrastructure
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US20190354628A1 (en) 2018-05-21 2019-11-21 Pure Storage, Inc. Asynchronous replication of synchronously replicated data
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
CN109274518B (zh) * 2018-07-30 2021-11-23 咪咕音乐有限公司 一种设备管理方法、装置及计算机可读存储介质
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US11379254B1 (en) 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
US11550514B2 (en) 2019-07-18 2023-01-10 Pure Storage, Inc. Efficient transfers between tiers of a virtual storage system
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US11360689B1 (en) 2019-09-13 2022-06-14 Pure Storage, Inc. Cloning a tracking copy of replica data
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
US20210173945A1 (en) 2019-12-06 2021-06-10 Pure Storage, Inc. Replicating data to a storage system that has an inferred trust relationship with a client
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US11563744B2 (en) 2021-02-22 2023-01-24 Bank Of America Corporation System for detection and classification of intrusion using machine learning techniques
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297072A (ja) * 2000-03-09 2001-10-26 Dell Products Lp クラスタ化した計算機処理環境における記憶資源を管理するシステムと方法
JP2002163156A (ja) * 2000-10-13 2002-06-07 Internatl Business Mach Corp <Ibm> 非並行クラスタリング環境においてscsi−3持続予約を使用しマルチパスi/oを提供する方法及び装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471609A (en) * 1992-09-22 1995-11-28 International Business Machines Corporation Method for identifying a system holding a `Reserve`
US6230229B1 (en) * 1997-12-19 2001-05-08 Storage Technology Corporation Method and system for arbitrating path contention in a crossbar interconnect network
US6286056B1 (en) * 1998-06-26 2001-09-04 Seagate Technology Llc Data storage device with small computer system interface providing persistent reservations
US6654902B1 (en) * 2000-04-11 2003-11-25 Hewlett-Packard Development Company, L.P. Persistent reservation IO barriers
US6804703B1 (en) * 2000-06-22 2004-10-12 International Business Machines Corporation System and method for establishing persistent reserves to nonvolatile storage in a clustered computer environment
US6952734B1 (en) * 2000-08-21 2005-10-04 Hewlett-Packard Development Company, L.P. Method for recovery of paths between storage area network nodes with probationary period and desperation repair
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
FR2854296A1 (fr) * 2003-04-24 2004-10-29 France Telecom Procede et dispositif pour differenciation implicite de la qualite de service dans un reseau
US7039741B2 (en) * 2003-09-25 2006-05-02 International Business Machines Corporation Method and apparatus for implementing resilient connectivity in a serial attached SCSI (SAS) domain
JP4672282B2 (ja) * 2004-05-07 2011-04-20 株式会社日立製作所 情報処理装置、及び情報処理装置の制御方法
US7313636B2 (en) * 2004-06-15 2007-12-25 Lsi Corporation Methods and structure for supporting persistent reservations in a multiple-path storage environment
US20060285550A1 (en) * 2005-06-16 2006-12-21 Cam-Thuy Do Apparatus, system, and method for communicating over multiple paths

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297072A (ja) * 2000-03-09 2001-10-26 Dell Products Lp クラスタ化した計算機処理環境における記憶資源を管理するシステムと方法
JP2002163156A (ja) * 2000-10-13 2002-06-07 Internatl Business Mach Corp <Ibm> 非並行クラスタリング環境においてscsi−3持続予約を使用しマルチパスi/oを提供する方法及び装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011014088A (ja) * 2009-07-06 2011-01-20 Hitachi Ltd 計算機装置及びパス管理方法
US9952945B2 (en) 2013-03-22 2018-04-24 Toshiba Memory Corporation Electronic equipment including storage device
US10387277B2 (en) 2013-03-22 2019-08-20 Toshiba Memory Corporation Electronic equipment including storage device
US10761950B2 (en) 2013-03-22 2020-09-01 Toshiba Memory Corporation Electronic equipment including storage device
JP2021056567A (ja) * 2019-09-27 2021-04-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム
JP7017546B2 (ja) 2019-09-27 2022-02-08 株式会社日立製作所 ストレージシステム、パス管理方法、及びパス管理プログラム
US11372584B2 (en) 2019-09-27 2022-06-28 Hitachi, Ltd. Storage system, path management method, and recording medium
US11989455B2 (en) 2019-09-27 2024-05-21 Hitachi, Ltd. Storage system, path management method, and recording medium

Also Published As

Publication number Publication date
US20070022227A1 (en) 2007-01-25
JP4506594B2 (ja) 2010-07-21

Similar Documents

Publication Publication Date Title
JP4506594B2 (ja) 冗長パス制御方法
EP2854021B1 (en) Control device for a storage system capable of acting as a constitutent element of a virtual storage system
US7650446B2 (en) Storage system for back-end communications with other storage system
JP5111754B2 (ja) 記憶制御システム
US8621603B2 (en) Methods and structure for managing visibility of devices in a clustered storage system
US7840766B2 (en) Storage system and method of producing recovery volume
WO2011010352A1 (en) Storage apparatus and its data transfer method
CN103793271A (zh) 用于在镜像卷之间进行切换的方法和系统
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
US9591073B2 (en) Apparatus and method for managing storage copy services systems
JP4818843B2 (ja) リモートコピーを行うストレージシステム
JP2008269469A (ja) ストレージシステム及びその管理方法
JP2009026091A (ja) 接続管理プログラム、接続管理方法および情報処理装置
JP2008287405A (ja) パス管理方法、ホスト計算機及びパス管理プログラム
WO2014087440A1 (en) Storage system and method for managing configuration information thereof
JP2006099440A (ja) リモートコピーシステム
JP2004164047A (ja) 記憶システム
JP6039818B2 (ja) 情報システム、ホストシステム、及びアクセス制御方法
US20080294858A1 (en) Storage system and data management method
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法
WO2016194096A1 (ja) 計算機システム及び計算機システムの管理方法
JP4708669B2 (ja) パス冗長化装置及び方法
JP4146412B2 (ja) クラスタシステム及び同システムに適用される共有ストレージ装置の排他制御方法
JP2005025289A (ja) 複数計算機間で共有する外部記憶装置におけるデータ保護プログラムおよびデータ保護方法
JP6005668B2 (ja) 計算機システム及び論理記憶領域管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091218

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130514

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

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees