JP2005251188A - 冗長パス制御装置及び冗長パス制御方法 - Google Patents

冗長パス制御装置及び冗長パス制御方法 Download PDF

Info

Publication number
JP2005251188A
JP2005251188A JP2005030966A JP2005030966A JP2005251188A JP 2005251188 A JP2005251188 A JP 2005251188A JP 2005030966 A JP2005030966 A JP 2005030966A JP 2005030966 A JP2005030966 A JP 2005030966A JP 2005251188 A JP2005251188 A JP 2005251188A
Authority
JP
Japan
Prior art keywords
host computer
path
controller
access
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005030966A
Other languages
English (en)
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 JP2005030966A priority Critical patent/JP2005251188A/ja
Publication of JP2005251188A publication Critical patent/JP2005251188A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Retry When Errors Occur (AREA)

Abstract

【課題】ホストコンピュータにおける業務を停止せず、かつ、ホストコンピュータでアクセスの失敗を推定できるような冗長パス制御装置を提供する。
【解決手段】 例えばコントローラ11で保守作業が実施されるときに、コントローラ12には、コントローラ11が保守作業中であることを示す情報が記憶される。ホストコンピュータ1の冗長化ドライバ4は、論理ディスク13〜15へのコントローラ11側のパスを指定し、ホストコンピュータ1から論理ディスク13〜15にアクセスさせる。アクセスに失敗しても、コントローラ12の記憶情報から、ホストコンピュータ1はアクセスの失敗の原因を判別できる。
【選択図】 図1

Description

本発明は、論理ディスクを備えると共に、この論理ディスクへアクセスするパスを冗長に持ち、パスを適宜に切替えて論理ディスクの記憶領域をホストコンピュータに提供する冗長パス制御装置、及び冗長パス制御方法に関する。
複数のハードディスク装置をあたかも1台のハードディスク装置のように使用可能とするためのディスクアレイシステムとして、例えば、特許文献1に示されたディスクアレイシステムがある。
特開2002−304331号公報
特許文献1のディスクアレイシステムを構成するホストコンピュータは、複数のハードディスク装置より構成される論理ディスクに格納されたデータへとアクセスする。このアクセスは、このホストコンピュータが実行するアプリケーションソフトウェアに従って行われる。
このディスクアレイシステムは、各論理ディスクにアクセスするための複数のパスと、これらのパスそれぞれに対応付けられたコントローラとを備える。この結果、例えばホストコンピュータから論理ディスクへの高速なアクセスが可能になる。また、いずれかのパスに障害が発生した場合でも、他のパスを用いることでデータを再度転送ことができる。すなわち、他のパスを用いたリトライ処理が可能となる。
さらに、このディスクアレイシステムは、特定の装置により占有された状態(リザーブ状態)の論理ディスクがある場合に、当該リザーブ状態を強制的に解除して、ホストコンピュータにより占有された状態へと切替える機能を有する。このため、特定の装置により占有されていたためにリトライ処理が異常終了した場合も、リトライ処理を再度行なってこれを成功させることができる。
ディスクアレイシステムについて、コントローラの保守作業を実施する場合、具体的には、コントローラのパッケージの交換や、コントローラのファームウェアの置換を行う場合は、保守対象であるコントローラに対する入出力のアクセスが行われないようにするため、以下の(1)〜(3)として示す手法のいずれかに従って、保守作業を行っていた。
(1) ホストコンピュータからディスクアレイへのアクセスをすべて停止した後、保守作業を実施する。
(2) コントローラに対する保守作業が完了するまでの一定の期間、コントローラは、アプリケーションソフトウェアに従ったホストコンピュータからのI/Oアクセスに対して無応答となる。ホストコンピュータは、コントローラが無応答になった場合に、それまで使用していた論理ディスクにアクセスするパスに何らかの障害が発生したと見なし、パスを切替えてアクセスを継続させる。これにより、保守対象のコントローラへのアクセスがなくなる。
(3) ホストコンピュータに対する人為的操作を行うことにより、ホストコンピュータが論理ディスクにアクセスするパスを切り替えた後、保守作業を実施する。
上述の(1)〜(3)の手法では、次のような問題があった。
即ち、(1)の手法では、ホストコンピュータからディスクアレイ側へのすべてのアクセスを停止する。このため、ホストコンピュータ上で動作しているアプリケーションソフトウェアの処理を停止することが必須である。
これに対し、(2)の手法では、保守作業を受けているコントローラは、ホストコンピュータからの入出力要求に応答しなくなり、ホストコンピュータによるアクセスは失敗することになる。しかし、代替パス(つまり、他のコントローラ)を用いたリトライ処理が行われる。このため、アプリケーションソフトウェアの処理を停止する必要はない。ところが、ホストコンピュータの側では、アクセスに失敗した原因が、パスの障害によるものなのか、コントローラが保守作業を受けているためなのかを判別することができず、例えば、一律にパスの障害として扱うこととなる。このように、アクセスの失敗の原因が判別できない場合には、保守作業の混乱が起きる可能性がある。
また、(3)の手法では、保守対象のコントローラに対してアクセス要求が発行されることのないよう、あらかじめ人為的に、論理ディスクにアクセスするためのパスを変更する(保守対象ではないコントローラを経由するよう変更する)。しかし、ディスクアレイシステムに接続されるホストコンピュータの数や、各ホストコンピュータに接続されるパスの数が多くなると、人為的操作の内容が複雑になり、パスの切り替えのミスを招く危険性が高くなる。
そこで、本発明は、ホストコンピュータの処理を停止させず、ホストコンピュータの側でアクセス失敗の原因を推定できるような冗長パス制御装置及び冗長パス制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係る冗長パス制御装置は、
ホストコンピュータと、
それぞれが前記ホストコンピュータと外部の記憶装置とに接続され、前記ホストコンピュータと交信することによって前記ホストコンピュータによる当該記憶装置へのアクセスを媒介する複数のコントローラと、より構成されており、
前記ホストコンピュータからそれぞれの前記コントローラを経て前記記憶装置へと至る経路が、互いに別個のパスを構成しており、
それぞれの前記コントローラは、他の前記コントローラを含むパスの状態を示す状態情報を取得して、書き換え可能な態様で記憶し、前記ホストコンピュータからリクエストを供給されたとき、当該リクエストに応答して当該状態情報を前記ホストコンピュータに供給し、
前記ホストコンピュータは、前記リクエストを生成して前記コントローラに供給し、前記コントローラから前記状態情報を供給されたとき、当該状態情報に基づいて、前記複数のパスのうちいずれかを指定し、指定したパスを経由して前記記憶装置へアクセスする、
ことを特徴とする。
尚、前記状態情報は、保守作業の対象となっているコントローラを示す情報を含んでいてもよい。
また、前記ホストコンピュータは、
前記記憶装置へのアクセスが失敗した場合に、当該アクセスのために用いたパス以外のパスを構成する前記コントローラに前記リクエストを供給して、当該コントローラより前記状態情報を取得し、
前記アクセスが失敗した原因が、当該アクセスのために用いたパスを構成するコントローラが保守作業の対象であったためであるか否かを、取得した状態情報に基づいて推定し、
前記アクセスが失敗した原因が、当該アクセスのために用いたパスを構成するコントローラが保守作業の対象であったためであると推定したとき、当該アクセスのために用いたパスとは異なるパスを指定し、指定したパスを経由して前記記憶装置へアクセスするものであってもよい。
また、前記ホストコンピュータは、任意の前記コントローラに前記リクエストを周期的に供給して前記状態情報を取得することにより、保守作業の対象となっているコントローラを周期的に特定するものであってもよい。
また、冗長パス制御装置は、複数の前記ホストコンピュータを備えるものであってもよい。
また、本発明の第2の観点に係る冗長パス制御方法は、
ホストコンピュータと、それぞれが前記ホストコンピュータと外部の記憶装置とに接続され、前記ホストコンピュータと交信することによって前記ホストコンピュータによる当該記憶装置へのアクセスを媒介する複数のコントローラと、より構成されていて、前記ホストコンピュータからそれぞれの前記コントローラを経て前記記憶装置へと至る経路が、互いに別個のパスを構成しているシステムにおいて、前記ホストコンピュータが前記アクセスのために用いるパスを選択するための冗長パス制御方法であって、
それぞれの前記コントローラは、他の前記コントローラを含むパスの状態を示す状態情報を取得して、書き換え可能な態様で記憶し、前記ホストコンピュータからリクエストを供給されたとき、当該リクエストに応答して当該状態情報を前記ホストコンピュータに供給し、
前記ホストコンピュータは、前記リクエストを生成して前記コントローラに供給し、前記コントローラから前記状態情報を供給されたとき、当該状態情報に基づいて、前記複数のパスのうちいずれかを指定し、指定したパスを経由して前記記憶装置へアクセスする、
ことを特徴とする。
尚、前記状態情報は、保守作業の対象となっているコントローラを示す情報を含んでいるものであってもよい。
本発明によれば、ホストコンピュータが実行する処理を停止しなくても、ホストコンピュータが記憶装置を利用できる。また、ホストコンピュータが記憶装置へのアクセスに失敗した場合でも、各コントローラがポートの状態を示す情報を記憶しているので、この情報に基づいて、アクセスの失敗の原因を判別することができる。
以下、本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係るホストコンピュータ1及びディスクアレイシステム10の構成を示す図である。
ホストコンピュータ1は、プロセッサ、メモリ及びインターフェース回路などより構成されており、図示するように、ファイルシステム2と、上位ドライバ3と、パス冗長化ドライバ4と、下位ドライバ5と、イニシエータとなるHBA(Host Bus Adapter)6及び7と、を備え、アプリケーション8を実行する。なお、これらは互いに別個のハードウェアより構成されている必要はない。従って、例えば、1個のプロセッサが、アプリケーション8を実行するほか、ファイルシステム2、上位ドライバ3、パス冗長化ドライバ4、下位ドライバ5、HBA6及び7の機能をレイヤとして提供するプログラムを実行するようにしてもよい。
ディスクアレイシステム10は、図示するように、複数の論理ディスクを備え、更に、この論理ディスクへアクセスするためのパスを冗長に備える。そして、パスを適宜に切替えることにより論理ディスクの記憶領域をホストコンピュータ1に提供する。
ディスクアレイシステム10は、具体的には、例えば2個のコントローラ11及び12と、任意の数のハードディスクより構成された論理ディスク13,14及び15と、を備えている。コントローラ11及び12は、それぞれ、例えばプロセッサ、メモリ及びインターフェース回路などより構成されている。コントローラ11は、ホストコンピュータ1からデータやコマンドを取得するホスト接続ポート16を備えている。同様に、コントローラ12はホスト接続ポート17を備えている。コントローラ11は、内部バス18を介し、論理ディスク13,14及び15に接続されている。コントローラ12は、内部バス19を介し、論理ディスク13,14及び15に接続されている。そして、ホストコンピュータ1からコントローラ11を経て論理ディスク13,14及び15へと至る経路と、ホストコンピュータ1からコントローラ12を経て論理ディスク13,14及び15へと至る経路とが、互いに別個のパスを構成している。
HBA6は、ホストインタフェースケーブル20を介してホスト接続ポート16に接続されている。HBA7は、ホストインタフェースケーブル21を介してホスト接続ポート17に接続されている。
ホストコンピュータ1は、ディスクアレイシステム10に与えるコマンドの発行をおこなう。そして、論理ディスク13、14及び15に対するアクセスを行う。具体的には、論理ディスク13、14又は15へのデータの供給及び論理ディスク13、14及び15からのデータの取得を実行する。
下位ドライバ5は、HBA6又は7を制御して、HBA6又は7を介したデータの入出力を実行する。
パス冗長化ドライバ4は、上位ドライバ3からコマンドやデータを受け取って、下位ドライバ5に引き渡す。また、パス冗長化ドライバ4は、ディスクアレイシステム10の論理ディスク13、14,15に対するアクセスを実施した結果を示す情報を、HBA6又は7と、下位ドライバ5とを介して受け取る。そして、この情報等に基づき、アクセスが正常終了したか異常終了したか、及び、異常終了の場合はその原因を判断する。そして、異常終了の原因がパスの構成要素(例えば、HBA6及び7、ホストインタフェースケーブル20及び21、コントローラ11及び12等)について発生した障害ないし故障と判断した場合は、代替パスを用いて、異常終了したアクセスのリトライ処理を行う。
ディスクアレイシステム10のコントローラ11は、内部バス18を介して各論理ディスク13,14及び15に接続されている。コントローラ12は、内部バス19を介して各論理ディスク13,14及び15に接続されている。コントローラ11及び12は、いずれも、各論理ディスク13,14及び15にアクセスすることができる。
次に、ホストコンピュータ1及びディスクアレイシステム10の動作を説明する。
ディスクアレイシステム10に書き込まれるデータは、アプリケーション8を実行するホストコンピュータ1によって、ファイルシステム2、上位ドライバ3、パス冗長化ドライバ4、下位ドライバ5、例えばHBA6、ホストインタフェースケーブル20及びホスト接続ポート16を介してコントローラ11に至り、このデータは、論理ディスク13,14又は15のうちコントローラ11により指定されたものに書き込まれる。
ディスクアレイシステム10から読み出されるデータは、例えば、論理ディスク13,14又は15のうちコントローラ11により指定されたものより、コントローラ11、ホスト接続ポート16及びホストインタフェースケーブル20を介してHBA6に至り、更に、下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3及びファイルシステム2を経て、ホストコンピュータ1が実行しているアプリケーション8の処理へと引き渡される。
また、ホストコンピュータ1によるデータの入出力の実行結果については、HBA6、下位ドライバ5、パス冗長化ドライバ4、上位ドライバ3、ファイルシステム2及びアプリケーション8の各レイヤによって判断が行われ、必要に応じた適宜の処理が行われるのが一般的である。
このうち、パス冗長化ドライバ4は、上述したように、下位ドライバ5より受け取った情報等に基づき、アクセスが正常終了したか異常終了したかの判断、及び、異常終了の場合はその原因の判断を行う。そして、異常終了の原因がパスの構成要素について発生した障害ないし故障と判断した場合は、代替パスを用いて、異常終了したアクセスのリトライ処理を行う。
さらに、パス冗長化ドライバ4は、一方のパス(例えば、コントローラ11)のみに入出力が集中することのないよう、コントローラ11又は12にデータ入出力の処理を振り分けることにより、他方のパスを有効に活用し、入出力の負荷分散を行う。
以降では、保守作業の一例として、ディスクアレイシステム10のコントローラ11又は12が記憶するファームウェアを置換する作業を行う場合について説明する。
まず、ディスクアレイシステム10側の動作を図2〜図5を参照して説明する。
図2は、コントローラ11及び12が行うコマンド処理の一部を示すフローチャートである。
図3は、ファームウェアダウンロード処理を示すフローチャートである。
図4は、ポート状態取得コマンドデコード処理を示すフローチャートである。
図5は、コントローラ11及び12からホストコンピュータ1に与える情報を説明するための図である。
コントローラ11及び12は、ホストコンピュータ1からコマンドを受け取ると、このコマンドが正しく実行できるものであるかどうかを判断する(ステップS101)。そして、正しく実行することができないコマンドであれば(ステップS101:NO)、異常終了処理(ステップS120)へ移行する。正しく実行することが可能なコマンドであれば(ステップS101;YES)、このコマンドがファームウェアダウンロードコマンドであるか否かを判断する(ステップS102)。ファームウェアダウンロードコマンドであれば(ステップS102:YES)、ファームウェアダウンロードコマンドデコード処理(ステップS121)へ移行し、そうでなければ(ステップS102:NO)、ステップS103へ進む。
ステップS102からファームウェアダウンロードコマンドデコード処理(ステップS121)へ移行した場合は、図3に示すように、置換する対象のファームウェアを示すファームウェアコードをホストコンピュータ1から受け取ると(ステップS201)、当該ファームウェアを記憶するコントローラは、自己のポートの状態をホストコンピュータ1に示すために自己が記憶する情報を、ファームウェア置換開始指示待ちを示すよう設定し(ステップS202)、正常終了処理(ステップS203)へ移行する。
なお、コントローラ11及び12は、ホストコンピュータ1に示すための上述の情報として、各コントローラのポートないし当該ポートを含むパスの状態を示すポート状態情報を、図5に示すように、ポートの番号と、このポートに与えられているWorld Wide Port Nameとに対応付けて記憶する。(なお、コントローラ11及び12が互いのポートの状態についての情報を取得し合う手法は任意である。)
ステップS202でコントローラ11又は12は、各ポートについてのポート状態情報を更新する。なお、ポートの状態としては、ファームウェア置換開始指示待ちの他に、例えば、正常、ファームウェア置換処理中、ファームウェア置換処理失敗、の各状態がある。
外部の保守制御装置からファームウェアをダウンロードすると、まず、コントローラ11又は12は、自己が記憶する、このファームウェアを書き込む対象のコントローラのポートについてのポート状態情報を、ファームウェア置換開始指示待ちを示す状態へと更新する。ただし、ファームウェア置換開始指示コマンドを受け取るまではファームウェアの置換は開始せず、現在のファームウェアに従った処理を継続する。
続いて、コントローラ11又は12は、ホストコンピュータ1から与えられたコマンドがポート状態取得コマンドであるかを判断する(ステップS103)。そして、ポート状態取得コマンドであれば(ステップS103:YES)、ポート状態取得コマンドデコード処理(ステップS122)へ移行し、そうでなければ(ステップS103:NO)、ステップS104へ進む。
ステップS103でポート状態取得コマンドデコード処理(ステップS122)へ移行した場合、当該コントローラは、自己が記憶するポート状態情報を、各コントローラのポートないし当該ポートを含むパスの状態を正しく示すよう編集し(ステップS301)、正常終了処理(ステップS302)へ移行する。
ステップS104で、コントローラ11又は12は、ホストコンピュータ1から与えられたコマンドがファームウェア置換開始指示コマンドであるか否かを判断する。そして、ファームウェア置換開始指示コマンドであれば(ステップS104:YES)、ステップS105へ進み、そうでなければ(ステップS104:NO)、既存コマンドデコード処理(ステップS123)へ移行する。
ステップS105で、コントローラ11又は12は、自己のポート16又は17の状態が、ファームウェア置換開始指示待ちであるかを判断する。そして、ファームウェア置換開始指示待ちでなければ(ステップS105:NO)、終了処理(ステップS124)へ移行する。一方、ファームウェア置換開始指示待ちであれば(ステップS105:YES)、自己が記憶する、自己のポートについてのポート状態情報を、ファームウェア置換処理中の状態を示すように更新し(ステップS106)、ファームウェア置換処理を開始する(ステップS107)。このように、ファームウェア置換の対象であるポートの状態をファームウェア置換処理中の状態へと更新することで、ホストコンピュータ1は、コントローラ11又は12が保守作業中であることを認識することができる。
次に、コントローラ11又は12は、当該処理の結果を判断する(ステップS108)。そして、正常終了であれば(ステップS108:YES)、自己が記憶する、ファームウェア置換処理を行ったのポートについてのポート状態情報を、正常な状態を示すようと更新し(ステップS109)、正常終了処理(ステップS110)へ移行する。異常終了であれば(ステップS108:NO)、自己が記憶するポート状態情報を、ファームウェア置換処理失敗の状態を示すよう更新し(ステップS125)、異常終了処理(ステップS126)へ移行する。
次に、ホストコンピュータ1のパス冗長化ドライバ4の動作を、図6〜図9を参照しつつ説明する。
図6は、図1のパス冗長化ドライバ4が実施する処理過程の一部を示したフローチャートである。
図7は、パス切り戻し処理を示すフローチャートである。
図8は、パス死活監視処理を示すフローチャートである。
図9は、ファームウェア置換開始指示処理を示すフローチャートである。
パス冗長化ドライバ4は、ファームウェア置換処理中フラグ及びファームウェア置換処理終了フラグを使用し、図6〜図9に示す処理を実施する。
なお、バス冗長化ドライバ4は、ディスクアレイシステム10のそれぞれのポートについて、ファームウェア置換処理中フラグ及びファームウェア置換処理終了フラグを記憶するものとし、パス冗長化ドライバ4が初めて起動する初期化時には、ファームウェア置換処理中フラグ及びファームウェア置換処理終了フラグをクリアするものとする。
パス冗長化ドライバ4は、上位ドライバ3から、ディスクアレイシステム10へのデータの入出力のリクエストを受け取る(ステップS401)。このリクエストには、データを入出力するパスを指定する情報も含まれる。
パス冗長化ドライバ4は、データの入出力に用いようとするパスについてファームウェア置換処理終了フラグがセットされているかを判断する(ステップS402)。セットされていれば(ステップS402:YES)、既にファームウェア置換処理は終了しているため、図7のパス切戻し処理へ移行する(ステップS420)。
ファームウェア置換処理終了フラグがセットされていなければ(ステップS402:NO)、パス冗長化ドライバ4は、ファームウェア置換処理中フラグがセットされているかを判断する(ステップS403)。セットされていれば(ステップS403:YES)、後述するように、これからデータを入出力しようとするパスのコントローラ11又は12において、ファームウェアの置換が行われているため、ステップS412へスキップする。ファームウェア置換処理中フラグがセットされていなければ(ステップS403:NO)、下位ドライバ5へデータ入出力のリクエストを発行し(ステップS404)、その実行結果を確認する(ステップS405)。
ステップS405で、正常終了と確認された場合は(ステップS405:YES)、正常終了処理(ステップS421)へ移行する。異常終了と確認された場合は(ステップS405:NO)、指定されたパスで障害が発生しているか、もしくはファームウェア置換処理中の可能性がある。このためステップS406では、異常終了の原因の判別を行うために、パス冗長化ドライバ4が管理している有効なポート16及び17のうち、異常終了となったアクセスの際に用いられたパス以外のパスを構成するポートを指定して、このポートの状態の情報を求めるポート状態取得コマンドを生成し、下位ドライバ5へ発行する(ステップS407)。
ここで、ポート状態取得コマンドを発行した結果としてディスクアレイシステム10から得られる情報は、先に説明したステップS301で編集された情報である。
ステップS408で、パス冗長化ドライバ4は、ステップS407で発行したコマンドの実行結果が正常であったかどうかを確認する。異常終了であれば(ステップS408:NO)、パスに障害が発生しているといえるので、異常終了処理(ステップS422)へ移行する。正常終了であれば(ステップS408:YES)、パス冗長化ドライバ4にはポート状態情報が正常に供給されているといえるので、これを取得する(ステップS409)。そして、ステップS409で取得したポート状態情報に基づいて、ステップS407で指定されたポートを有するコントローラがファームウェア置換処理中であるかを判断する(ステップS410)。ファームウェア置換処理中でないと判別した場合は(ステップS410:NO)、ステップS405の判断で異常終了となった原因がパスの一時的な間欠障害であったと判断し、異常終了処理(ステップS423)へ移行する。
一方、ファームウェア置換処理中であると判別すれば(ステップS410:YES)、パス冗長化ドライバ4は、当該判別の対象であるポートについてのファームウェア置換処理中フラグをセットし、当該ポートについてのファームウェア置換処理終了フラグをクリアして(ステップS411)、ステップS412に処理を移す。
ステップS412で、パス冗長化ドライバ4は、ステップS409で取得したポート状態情報と、パス冗長化ドライバ4が状態を把握している有効なパス内のポートのWorld Wide Port Nameとに基づいて、リトライに使用するパスを決定する。
次に、パス冗長化ドライバ4は、下位ドライバ5へ、ステップS412で決定したパスを経由するデータ入出力のリクエストを再度発行する(ステップS413)。ここでのリクエストの発行は、ステップS401で上位ドライバから受け取り、ステップS405で異常終了と判断したリクエストに対するリトライ処理も兼ねるものである。
次に、パス冗長化ドライバ4は、ステップS413でリクエストを発行したデータ入出力の実行結果を確認する(ステップS414)。正常終了と確認すれば(ステップS414:YES)、処理を終了する(ステップS415)。この場合、ステップS401で上位ドライバから受け取った後一旦ステップS405で異常終了と判断されたリクエストは、今度は正常にディスクアレイシステム10に送信されている。
また、ステップS403でファームウェア置換処理中と判別したため、ステップS412へスキップして実施したデータ入出力のリクエストも正常に終了する。これにより、ファームウェア置換処理中においても、ホストコンピュータ1は、アプリケーション8に従った処理を継続することができる。一方、パス冗長化ドライバ4は、異常終了と確認した場合(ステップS414:NO)、異常終了処理(ステップS424)へ移行する。
次に、ステップS420のパス切り戻し処理を説明する。
上述のように、コントローラ11又は12がファームウェア置換処理中の場合に、ファームウェア置換処理中のコントローラを含む本来のパスは使用されず、ディスクアレイシステム10の論理ディスク13,14又は15へのデータの入出力のアクセスには、他のパスが使用される。図7のパス切り戻し処理は、ファームウェア置換処理終了後、アクセスに利用するパスを、ファームウェア置換処理開始前に利用していた本来のパスへと戻すための処理である。
パス冗長化ドライバ4は、ステップS401で上位ドライバから受け取ったリクエストが示す本来のパスを指定し、下位ドライバ5を介して、データ入出力のリクエストを発行する(ステップS501)。
次にパス冗長化ドライバ4は、このリクエストの実行結果が正常終了か否かを確認する(ステップS502)。そして、異常終了と確認すれば(ステップS502:NO)、異常終了処理(ステップS510)へ移行する。正常終了と確認すれば(ステップS502:YES)、当該本来のパスについてのファームウェア置換処理中フラグ及びファームウェア置換処理終了フラグをいずれもクリアし(ステップS503)、パス切戻し処理を終了する(ステップS504)。
次に、ステップS402及びS403で利用されるファームウェア置換処理中フラグ及びファームウェア置換処理終了フラグの設定手順を示す。
データ入出力の頻度の少ないパス等では、パスに障害が発生していてもすぐにはこの障害を検出することができない。障害を迅速に検出するため、パス冗長化ドライバ4は、図8に示すパス死活監視処理を実施する。パス死活監視処理は、すべてのパスに対して、定期的(例えば1分毎)にコマンドを発行し、このコマンドの実行結果に基づいてパス障害の有無を判断する処理である。なお、コマンドを発行するタイミングを決定する手法は任意である。従って、例えば、ホストコンピュータ1のプロセッサを駆動するためのクロック信号を、ホストコンピュータ1が備える発振器などから取得し、このクロック信号に基づいてタイミングを決定してもよい。
パス死活監視処理において、パス冗長化ドライバ4は、自己が状態を把握している複数のパスのうち1つを選択して、当該パスに含まれるポートについてのポート状態情報を取得するコマンドのリクエストを生成し(ステップS601)、下位ドライバ5へ、このリクエストを発行する(ステップS602)。そしてパス冗長化ドライバ4は、このリクエストの実行結果をステップS603で確認する。
リクエストの実行結果が異常終了である場合は(ステップS603:NO)、リクエストを発行したパスに障害が発生していることを意味するので、パス障害検出処理(ステップS610)へ移行する。正常終了であれば(ステップS603:YES)、ポート状態情報を取得し(ステップS604)、ファームウェア置換開始待ちの状態にあるポートの有無を判別する(ステップS605)。
そして、ファームウェア置換開始待ちの状態のポートがあれば(ステップS605:YES)、ファームウェア置換開始指示処理(ステップS611)へ移行する。該当するポートがなければ(ステップS605:NO)、ステップS606で、ファームウェア置換処理中の状態にあるポートの有無を判別する。
ステップS606での判別の結果、ファームウェア置換処理中のポートがあると判別すれば(ステップS606:YES)、該当するポートについてのファームウェア置換処理中フラグをセットし、当該ポートについてのファームウェア置換処理終了フラグをクリアして(ステップS612)、パス死活監視処理を終了する(ステップS608)。また、ファームウェア置換処理中のポートがなければ(ステップS606:NO)、該当するポートについてのファームウェア置換処理終了フラグをセットし(ステップS607)、パス死活監視処理を終了する(ステップS608)。
なお、ステップS611のファームウェア置換指示処理として、パス冗長化ドライバ4は、具体的には図9に示すステップS701〜ステップS710の処理を実行する。
すなわち、ステップS701において、パス冗長化ドライバ4は、ファームウェア置換開始指示待ちの状態にあるポートを備えるコントローラを指定したファームウェア置換開始指示コマンドのリクエストを生成し(ステップS701)、下位ドライバ5へ、当該リクエストを発行する(ステップS702)。そして、ステップS702で発行したリクエストの実行結果をステップS703で確認する。
そして、パス冗長化ドライバ4は、リクエストの実行結果が異常終了であれば(ステップS703:NO)、異常終了処理(ステップS710)へ移行する。正常終了であれば(ステップS703:YES)、当該ポートについてのファームウェア置換処理中フラグをセットし、当該ポートについてのファームウェア置換処理終了フラグをクリアし(ステップS704)、ファームウェア置換開始指示処理を終了する(ステップS705)。
以上説明した処理が行われることにより、ディスクアレイシステム10内にある、ファームウェア置換を必要とするコントローラに対して、順次ファームウェアがダウンロードが実施される。そして、ホストコンピュータ1が実行する処理を停止せずに、ディスクアレイシステム10のコントローラが記憶するファームウェアが変更される。
なお、上述の処理のうち、ファームウェアのダウンロード及び置換を行う処理の部分をコントローラのパッケージ交換の処理へと変更すれば、ホストコンピュータ1が実行する処理を停止せずに、コントローラのパッケージ交換を行うこともできる。
以上説明したように、本実施の形態では、ホストコンピュータ1が実行する処理に基づくデータ入出力を停止せずに、ディスクアレイシステム10の保守作業を実施することができる。
又、データ入出力のリクエストの失敗の原因がパスの障害(具体的には、パスを構成するHBA、ホストインタフェースケーブル又はコントローラのいずれかの障害)によるものなのか、コントローラ11又は12が保守作業中に無応答となることによるものか、の判別がパス冗長化ドライバ4で可能となる。従って、すべての障害が一律にパスの障害として扱われるということがなくなり、保守作業時の混乱が回避される。
また、パスを切り替えるための人為的操作が不要であり、さらに、ディスクアレイシステムに接続されるホストコンピュータやパスの数に関係なく、ディスクアレイシステムとパス冗長化ドライバの間で協調してパスの変更が行われるため、保守作業を行う際の操作ミスの危険がない。
なお、本発明は、上記の実施形態に限定されるものではなく、種々の変形が可能である。
例えば、図10に示すように、ホストコンピュータ1の数は複数であってもよく、これら複数のホストコンピュータ1が、共通のディスクアレイシステム10にアクセスするという構成が採られてもよい。
また、ホストコンピュータ1が備えるHBAの数は2個には限られない。図1に示す構成では、ホストコンピュータ1は2個のHBA6及び7を備えているが、ホストコンピュータ1は、自己が実行しているオペレーティングシステムの仕様、下位ドライバ5の仕様、及びホストコンピュータ1のハードウェアの仕様等に起因する制約の範囲内である限り、さらに多数のHBAを搭載してもよい。
また、図1に示す構成では、ディスクアレイシステム10は2個のコントローラ11及び12を備えているものの、ディスクアレイシステム10が備えるコントローラの数も2個に限られない。
また、図1に示す構成では、論理ディスクはディスクアレイシステム10内に構築されているが、論理ディスクは、ディスクアレイシステム10に接続されたJBOD(Just Bunch Of Disks)等の外部のディスクより構成されてもよい。
また、ホストコンピュータ1に接続されるディスクアレイシステム10の数、ディスクアレイシステム10内に構築される論理ディスクの数、ディスクアレイサブシステム10内の内部バスの数は、いずれも任意である。
また、ポート状態情報が表し得るポートの状態は、正常、ファームウェア置換開始指示待ち、ファームウェア置換処理中、ファームウェア置換処理失敗の4種類に限られる必要はなく、任意の基準に従って分類されていてよい。
また、コントローラ11又は12がファームウェアを取得する源は任意である。従って、例えば、遠隔地にある保守センター等から通信回線等を介してファームウェアをダウンロードしてもよい。
本発明の実施形態に係るホストコンピュータ及びディスクアレイシステムの構成を示す図である。 コントローラが行うコマンド処理の一部を示すフローチャートである。 ファームウェアダウンロード処理を示すフローチャートである。 ポート状態取得コマンドデコード処理を示すフローチャートである。 コントローラがホストコンピュータに与える情報を説明する図である。 図1のパス冗長化ドライバが実施する処理の過程の一部を示したフローチャートである。 パス切り戻し処理を示すフローチャートである。 パス死活監視処理を示すフローチャートである。 ファームウェア置換開始指示処理を示すフローチャートである。 図1の変形例を示す図である。
符号の説明
1 ホストコンピュータ
2 ファイルシステム
4 パス冗長化ドライバ
6,7 HBA
8 アプリケーション
10 ディスクアレイシステム
11,12 コントローラ
13〜15 論理ディスク
16,17 ホスト接続ポート
18,19 内部バス
20,21 ホストインタフェースケーブル

Claims (7)

  1. ホストコンピュータと、
    それぞれが前記ホストコンピュータと外部の記憶装置とに接続され、前記ホストコンピュータと交信することによって前記ホストコンピュータによる当該記憶装置へのアクセスを媒介する複数のコントローラと、より構成されており、
    前記ホストコンピュータからそれぞれの前記コントローラを経て前記記憶装置へと至る経路が、互いに別個のパスを構成しており、
    それぞれの前記コントローラは、他の前記コントローラを含むパスの状態を示す状態情報を取得して、書き換え可能な態様で記憶し、前記ホストコンピュータからリクエストを供給されたとき、当該リクエストに応答して当該状態情報を前記ホストコンピュータに供給し、
    前記ホストコンピュータは、前記リクエストを生成して前記コントローラに供給し、前記コントローラから前記状態情報を供給されたとき、当該状態情報に基づいて、前記複数のパスのうちいずれかを指定し、指定したパスを経由して前記記憶装置へアクセスする、
    ことを特徴とする冗長パス制御装置。
  2. 前記状態情報は、保守作業の対象となっているコントローラを示す情報を含んでいる、
    ことを特徴とする請求項1に記載の冗長パス制御装置。
  3. 前記ホストコンピュータは、
    前記記憶装置へのアクセスが失敗した場合に、当該アクセスのために用いたパス以外のパスを構成する前記コントローラに前記リクエストを供給して、当該コントローラより前記状態情報を取得し、
    前記アクセスが失敗した原因が、当該アクセスのために用いたパスを構成するコントローラが保守作業の対象であったためであるか否かを、取得した状態情報に基づいて推定し、
    前記アクセスが失敗した原因が、当該アクセスのために用いたパスを構成するコントローラが保守作業の対象であったためであると推定したとき、当該アクセスのために用いたパスとは異なるパスを指定し、指定したパスを経由して前記記憶装置へアクセスする、
    ことを特徴とする請求項2に記載の冗長パス制御装置。
  4. 前記ホストコンピュータは、任意の前記コントローラに前記リクエストを周期的に供給して前記状態情報を取得することにより、保守作業の対象となっているコントローラを周期的に特定する、
    ことを特徴とする請求項2に記載の冗長パス制御装置。
  5. 複数の前記ホストコンピュータを備える、
    ことを特徴とする請求項1に記載の冗長パス制御装置。
  6. ホストコンピュータと、それぞれが前記ホストコンピュータと外部の記憶装置とに接続され、前記ホストコンピュータと交信することによって前記ホストコンピュータによる当該記憶装置へのアクセスを媒介する複数のコントローラと、より構成されていて、前記ホストコンピュータからそれぞれの前記コントローラを経て前記記憶装置へと至る経路が、互いに別個のパスを構成しているシステムにおいて、前記ホストコンピュータが前記アクセスのために用いるパスを選択するための冗長パス制御方法であって、
    それぞれの前記コントローラは、他の前記コントローラを含むパスの状態を示す状態情報を取得して、書き換え可能な態様で記憶し、前記ホストコンピュータからリクエストを供給されたとき、当該リクエストに応答して当該状態情報を前記ホストコンピュータに供給し、
    前記ホストコンピュータは、前記リクエストを生成して前記コントローラに供給し、前記コントローラから前記状態情報を供給されたとき、当該状態情報に基づいて、前記複数のパスのうちいずれかを指定し、指定したパスを経由して前記記憶装置へアクセスする、
    ことを特徴とする冗長パス制御方法。
  7. 前記状態情報は、保守作業の対象となっているコントローラを示す情報を含んでいる、
    ことを特徴とする請求項6に記載の冗長パス制御方法。
JP2005030966A 2004-02-06 2005-02-07 冗長パス制御装置及び冗長パス制御方法 Pending JP2005251188A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005030966A JP2005251188A (ja) 2004-02-06 2005-02-07 冗長パス制御装置及び冗長パス制御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004030871 2004-02-06
JP2005030966A JP2005251188A (ja) 2004-02-06 2005-02-07 冗長パス制御装置及び冗長パス制御方法

Publications (1)

Publication Number Publication Date
JP2005251188A true JP2005251188A (ja) 2005-09-15

Family

ID=35031556

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005030966A Pending JP2005251188A (ja) 2004-02-06 2005-02-07 冗長パス制御装置及び冗長パス制御方法

Country Status (1)

Country Link
JP (1) JP2005251188A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114360A1 (ja) * 2007-03-16 2008-09-25 Fujitsu Limited ストレージシステム、ストレージ装置、ファームウェアの活性交換方法
JP2008276755A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd ホストバスアダプタ用ドライバ及びオペレーティングシステムのインストール方法
JP2010205207A (ja) * 2009-03-06 2010-09-16 Nec Corp ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP2010205208A (ja) * 2009-03-06 2010-09-16 Nec Corp ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP2012208896A (ja) * 2011-03-30 2012-10-25 Nec Corp ディスクアレイ装置、接続経路制御方法、及び接続経路制御プログラム
JP2012226524A (ja) * 2011-04-19 2012-11-15 Fujitsu Ltd ストレージ装置、制御装置及び制御方法
JP2012226523A (ja) * 2011-04-19 2012-11-15 Fujitsu Ltd ストレージ装置、制御装置及び制御方法
CN111611130A (zh) * 2020-05-13 2020-09-01 上海龙旗科技股份有限公司 一种用于目标接口防烧的方法、系统及设备

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114360A1 (ja) * 2007-03-16 2008-09-25 Fujitsu Limited ストレージシステム、ストレージ装置、ファームウェアの活性交換方法
US8010713B2 (en) 2007-03-16 2011-08-30 Fujitsu Limited Storage system, storage apparatus, and method for hot swapping of firmware
JP4770982B2 (ja) * 2007-03-16 2011-09-14 富士通株式会社 ストレージシステム、ストレージ装置、ファームウェアの活性交換方法
JP2008276755A (ja) * 2007-03-30 2008-11-13 Hitachi Ltd ホストバスアダプタ用ドライバ及びオペレーティングシステムのインストール方法
US8527983B2 (en) 2007-03-30 2013-09-03 Hitachi, Ltd. Host bus adaptor driver and operating system installation method
JP2010205207A (ja) * 2009-03-06 2010-09-16 Nec Corp ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP2010205208A (ja) * 2009-03-06 2010-09-16 Nec Corp ホストコンピュータ、マルチパスシステム、パス割当方法およびプログラム
JP2012208896A (ja) * 2011-03-30 2012-10-25 Nec Corp ディスクアレイ装置、接続経路制御方法、及び接続経路制御プログラム
JP2012226524A (ja) * 2011-04-19 2012-11-15 Fujitsu Ltd ストレージ装置、制御装置及び制御方法
JP2012226523A (ja) * 2011-04-19 2012-11-15 Fujitsu Ltd ストレージ装置、制御装置及び制御方法
CN111611130A (zh) * 2020-05-13 2020-09-01 上海龙旗科技股份有限公司 一种用于目标接口防烧的方法、系统及设备
CN111611130B (zh) * 2020-05-13 2021-11-05 上海龙旗科技股份有限公司 一种用于目标接口防烧的方法、系统及设备

Similar Documents

Publication Publication Date Title
US7454533B2 (en) Redundant path control apparatus and redundant path control method
JP2005251188A (ja) 冗長パス制御装置及び冗長パス制御方法
JP4353208B2 (ja) ストレージサブシステム、ストレージシステム、負荷分散方法、負荷分散プログラム
US7650446B2 (en) Storage system for back-end communications with other storage system
US8370592B1 (en) Multi-machine atomic seamless migration
EP1901162A2 (en) Storage system and data migration method for the same
JP4606711B2 (ja) 仮想化制御装置およびデータ移行制御方法
JP2010510592A (ja) システムプロセッサーのトランスペアレントな交換
JP5825123B2 (ja) 制御装置、制御システムおよび制御方法
JP2005284497A (ja) 中継装置、管理サーバ、中継方法および認証方法
JP2011222011A (ja) リモート・ダイレクト・ストレージ・アクセス
JP2009140194A (ja) 障害回復環境の設定方法
JP2007018455A (ja) データマイグレーション方法又はデータマイグレーションシステム
JP2009199584A (ja) 階層型ストレージシステムにおけるhddのスピンダウンとスピンアップを管理する方法及び装置
JP2006018689A (ja) ストレージ制御装置、そのクラスタ間データ通信方法、及びそのクラスタ間通信制御プログラム
JP2010152508A (ja) 制御装置、ディスクアレイ装置および制御方法
JP2007025933A (ja) ストレージシステム及びそのファームウェア自動更新方法
JP4509089B2 (ja) 仮想化制御装置及びデータ移行制御方法
JP2009282834A (ja) ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
JP5282569B2 (ja) 管理装置、管理システム、管理方法及び管理プログラム
US8972777B2 (en) Method and system for storage management
JP4500346B2 (ja) ストレージシステム
US20100235549A1 (en) Computer and input/output control method
JP5279981B2 (ja) 更新制御プログラム、更新制御方法および更新制御装置
US20090235046A1 (en) Computer system and operation takeover method

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071004

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080108