(57)【要約】【課題】  ホストとストレージ間の通信の信頼性を向上させることにより信頼性（reliability）および可用性（availability）を向上させたストレージシステムおよびストレージ装置を提供する。【解決手段】  ホスト１００〜１５９は、ｉＳＣＳＩイニシエータ機能を有し、ストレージ装置３００は、ｉＳＣＳＩターゲット機能を有しホスト１００〜１５９とＩＰ通信可能である。管理サーバ４００は、パス定義情報３４２とストレージ装置３００のポート負荷情報とを収集し、あるポート（使用ポート）に係る通信障害が発生した場合、この使用ポートを除くポートから、ネットワーク構成およびポートごとの負荷に応じて使用ポートの代替ポートを選定し、使用ポートの通信条件を代替ポートに引き継がせ、使用ポートに係る通信を代替ポートによって継続させる。【選択図】      図８
2007087266.tif 000002
【特許請求の範囲】
【請求項１】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記複数のポートごとの負荷を示す負荷情報を収集する負荷情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートから、前記負荷情報を参照し前記負荷に応じて前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項２】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージシステムの物理構成または論理構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートから、前記構成情報を参照し前記物理構成または前記論理構成に応じて前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項３】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記複数のポートごとの負荷を示す負荷情報を収集する負荷情報収集部と、
前記ストレージシステムの物理構成または論理構成を表す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記負荷情報および前記構成情報を参照し、前記負荷と前記物理構成または前記論理構成とに応じて、前記使用ポートを除く前記複数のポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項４】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージが有するポートごとの負荷情報を収集する負荷情報収集部、または、前記ストレージシステムの物理構成または論理構成を表す構成情報を収集する構成情報収集部の少なくとも１つと、
前記複数のポートのうち前記ホストと通信するための使用ポートに係るエラーが所定値を超えた場合、前記負荷情報および前記構成情報を参照し、前記負荷、前記物理構成または前記論理構成に応じて、前記使用ポートを除く前記複数のポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項５】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記複数のポートごとの負荷を示す負荷情報を収集する負荷情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートから、前記負荷情報を参照し前記負荷に応じて前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項６】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージシステムの物理構成または論理構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートから、前記構成情報を参照し前記物理構成または前記論理構成に応じて前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項７】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記複数のポートごとの負荷を示す負荷情報を収集する負荷情報収集部と、
前記ストレージシステムの物理構成または論理構成を表す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記負荷情報および前記構成情報を参照し、前記負荷と前記物理構成または前記論理構成とに応じて、前記使用ポートを除く前記複数のポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項８】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージが有するポートごとの負荷情報を収集する負荷情報収集部、または、前記ストレージシステムの物理構成または論理構成を表す構成情報を収集する構成情報収集部の少なくとも１つと、
前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信エラーの数量または頻度が所定値を超えた場合、前記負荷情報および前記構成情報を参照し、前記負荷、前記物理構成または前記論理構成に応じて、前記使用ポートを除く前記複数のポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項９】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージのポートあたりのｉＳＣＳＩセッション数またはＩ／Ｏ量を示す負荷情報を収集する負荷情報収集部と、
前記複数のポートのうち前記ホストとのｉＳＣＳＩセッションを確立している使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートから、前記負荷情報を参照し前記ｉＳＣＳＩセッション数または前記Ｉ／Ｏ量がより少ない代替ポートを選定し、前記使用ポートのＩＰアドレスおよびｉＳＣＳＩターゲット情報を前記代替ポートに引き継がせ、前記ホストとのｉＳＣＳＩセッションを継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項１０】
ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージシステムのサブネット構成およびポート構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストとのｉＳＣＳＩセッションを確立している使用ポートに係る通信障害が発生した場合、前記構成情報を参照し、前記複数のポートのうち前記使用ポートと同一のブロードキャストドメインに属するポートから代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレスおよびｉＳＣＳＩターゲット情報を引き継がせ、前記ホストとのｉＳＣＳＩセッションを継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項１１】
請求項１０に記載のストレージシステムにおいて、
前記管理サーバは、
前記ストレージのポートあたりのｉＳＣＳＩセッション数またはＩ／Ｏ量を示す負荷情報を収集する負荷情報収集部を具備し、
前記代替ポート選定部は、前記代替ポートを選定する際に、前記負荷情報を参照して、前記代替ポートを、前記通信中ポートと同一のブロードキャストドメインに属するポートのうち前記ｉＳＣＳＩセッション数または前記Ｉ／Ｏ量がより少ない当該ポートから選定することを特徴とするストレージシステム。
【請求項１２】
ｉＳＣＳＩイニシエータ機能を有するホストと、前記ホストとＩＰネットワークを介して通信可能なｉＳＣＳＩターゲット機能を有するストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記ストレージのポートあたりのｉＳＣＳＩセッション数またはＩ／Ｏ量を示す負荷情報を収集する負荷情報収集部と、
当該ストレージシステムのサブネット構成およびポート構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストとのｉＳＣＳＩセッションを確立している使用ポートに係る送受信パケットのエラー情報をＭＩＢ（Management Information Base）から収集するエラー情報収集部と、
前記送受信パケットのエラーが所定値を超えた場合、前記複数のポートのうち前記使用ポートと同一ブロードキャストドメインに属し、前記ｉＳＣＳＩセッション数または前記Ｉ／Ｏ量がより少ないポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートのＩＰアドレスおよびｉＳＣＳＩターゲット情報を前記代替ポートに引き継がせ、前記ホストとのｉＳＣＳＩセッションを継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項１３】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記管理サーバは、
前記複数のポートごとのＮＡＳセッション数またはＩ／Ｏ量を示す負荷情報を収集する負荷情報収集部と、
前記複数のポートのうち前記ホストとの通信のための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートのうち前記負荷情報を参照して前記ＮＡＳセッション数または前記Ｉ／Ｏ量がより少ないポートから前記使用ポートを代替する代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレス情報を引き継がせ、前記ホストとの通信を継続させる代替ポート選定手段と、
を具備したことを特徴とするストレージシステム。
【請求項１４】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記ストレージシステムのサブネット構成およびポート構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストとの通信のための使用ポート係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートのうち前記使用ポートと同一のブロードキャストドメインに属するポートから前記使用ポートを代替する代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレス情報を引き継がせ、前記ホストとの通信を継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項１５】
ＮＡＳクライアント機能を有するホストと、ＮＡＳサーバ機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、
前記複数のポートごとのＮＡＳセッション数またはＩ／Ｏ量を示す負荷情報を収集する負荷情報収集部と、
前記ストレージシステムのサブネット構成およびポート構成を示す構成情報を収集する構成情報収集部と、
前記複数のポートのうち前記ホストとの通信のための使用ポートに係る通信障害が発生した場合、前記使用ポートを除く前記複数のポートのうち前記使用ポートと同一のブロードキャストドメインに属し前記ＮＡＳセッション数または前記Ｉ／Ｏ量がより少ないポートから前記使用ポートを代替する代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレス情報を引き継がせ、前記ホストとの通信を継続させる代替ポート選定部と、
を具備したことを特徴とするストレージシステム。
【請求項１６】
請求項５から請求項８または請求項１３から請求項１５のいずれかに記載のストレージシステムにおいて、
前記ホストは、ＮＦＳクライアント機能またはＣＩＦＳクライアント機能を有し、
前記ストレージは、ＮＦＳプロトコルまたはＣＩＦＳプロトコルに基づき前記ホストと通信可能である、
ことを特徴とするストレージシステム。
【請求項１７】
ｉＳＣＳＩターゲット機能を有し複数のポートを備えｉＳＣＳＩイニシエータ機能を有するホストと通信可能なストレージ装置であって、
前記複数のポートのうち前記ホストとの通信のための使用ポートに係る通信障害が発生したことを検知する通信障害検知部と、
前記通信障害が発生した場合、前記複数のポートのうち前記使用ポートと同一のブロードキャストドメインに属するポートから前記使用ポートを代替する代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレスおよびｉＳＣＳＩターゲット情報を引き継がせる代替ポート選定部と、
前記代替ポートを通じてGratuitous ARPパケットを送信することにより前記ホストとのｉＳＣＳＩセッションを継続させるｉＳＣＳＩセッション継続部と、
を具備したことを特徴とするストレージ装置。
【請求項１８】
ＮＡＳサーバ機能を有し複数のポートを備えＮＡＳクライアント機能を有するホストと通信可能なストレージ装置であって、
前記複数のポートのうち前記ホストとの通信のための使用中ポートに係る通信障害が発生したことを検知する通信障害検知部と、
前記通信障害が発生した場合、前記使用ポートと同一のブロードキャストドメインに属するポートから代替ポートを選定し、前記代替ポートに前記通信中ポートのＩＰアドレスを引き継がせる代替ポート選定部と、
前記代替ポートを通じてGratuitous ARPパケットを送信することにより前記ホストとのＮＡＳセッションを継続させるＮＡＳセッション継続部と、
を具備したことを特徴とするストレージ装置。
【請求項１９】
ｉＳＣＳＩターゲット機能を有しｉＳＣＳＩイニシエータ機能を有するホストとｉＳＣＳＩ通信可能なストレージ装置であって、
前記ストレージ装置の通信中ポートに係る通信障害が発生したことを検知する通信障害検知部と、
前記通信中ポートに係る前記通信障害が発生した場合、前記通信中ポートと同一のブロードキャストドメインに属するポートのうちｉＳＣＳＩセッション数またはＩ／Ｏ量がより少ないポートから代替ポートを選定し、前記代替ポートに前記通信中ポートに通信条件を引き継がせる代替ポート選定部と、
前記代替ポートを通じてGratuitous ARPパケットを送信することにより前記ホストとのｉＳＣＳＩセッションを継続させるｉＳＣＳＩセッション継続部と、
を具備したことを特徴とするストレージ装置。
【請求項２０】
ＮＡＳサーバ機能を有しＮＡＳクライアント機能を有するホストとＩＰ通信可能なストレージ装置であって、
前記ストレージ装置の通信中ポートに係るＩＰ通信障害が発生したことを検知する通信障害検知部と、
前記通信中ポートに係るＩＰ通信障害が発生した場合、当該通信中ポートと同一ブロードキャストドメインに属するポートのうちＮＡＳセッション数またはＩ／Ｏ量がより少ないポートから代替ポートを選定し、前記代替ポートに通信条件を引き継がせる代替ポート選定部と、
当該他のポートを通じてGratuitous ARPパケットを送信することにより前記ホストとのＮＡＳセッションを継続するＮＡＳセッション継続部と、
を具備したことを特徴とするストレージ装置。
【請求項２１】
請求項１から請求項１６のいずれかに記載のストレージシステムにおいて、
前記ストレージは、複数のポートを具備したネットワークコントローラを複数具備し、
前記代替ポート選定手段は、前記通信中ポートと同一のブロードキャストドメインに属し、かつ、前記通信中ポートが属する前記ネットワークコントローラと異なる前記ネットワークコントローラに属するポートから、前記代替ポートを選定することを特徴とするストレージシステム。
【請求項２２】
請求項１７から請求項２０のいずれかに記載のストレージ装置において、
複数のポートを具備したネットワークコントローラを複数具備し、
前記代替ポート選定手段は、前記通信中ポートと同一のブロードキャストドメインに属し、かつ、前記通信中ポートが属する前記ネットワークコントローラと異なる前記ネットワークコントローラに属するポートから、前記代替ポートを選定することを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムおよびストレージ装置に関し、特に、ホストとストレージ間の通信の信頼性を向上させることにより信頼性（reliability）および可用性（availability）を向上させたストレージシステムおよびストレージ装置に関する。
【背景技術】
【０００２】
ＳＡＮ（Storage Area Network）は、ストレージ間、またはこれとホストとを結ぶネットワークである。従前のＳＡＮの多くが、ファイバチャネル技術などを用いた専用のネットワークであったが、その後普及したＩＰ−ＳＡＮは、汎用のＩＰ（Internet Protocol）技術を利用したネットワークである。また、ストレージ装置などのＩ／Ｏ（Input/Output; 入出力）デバイスと通信を行うための一般的なプロトコル群として、小型コンピュータシステムインタフェース（SCSI; Small Computer Systems Interface）がある。
【０００３】
そこで、ＩＰ−ＳＡＮ技術とＳＣＳＩ技術とを踏まえて、インターネット小型コンピュータシステムインタフェース（iSCSI; Internet Small Computer Systems Interface）が策定された（非特許文献１参照）。ｉＳＣＳＩ通信では、ＳＣＳＩコマンドに準拠したｉＳＣＳＩコマンドおよび関連するデータは、カプセル化され、ＩＰパケットとしてＩＰネットワーク経由で転送される。また、ＩＰレイヤの上位層に位置するｉＳＣＳＩレイヤでは、ＳＣＳＩコマンドインタフェースに準じたｉＳＣＳＩコマンドインタフェースが提供される。
【０００４】
なお、ｉＳＣＳＩプロトコルでは、１つのｉＳＣＳＩセッションは、１つまたは複数のＴＣＰコネクションから構成される。これは、ＳＣＳＩプロトコルにおけるI_T Nexusに相当するものである。したがって、１つのｉＳＣＳＩセッションを複数のＴＣＰコネクションによって構成することにより、イニシエータたるホストと、ターゲットたるストレージとの通信の信頼性の向上を図ることができる。
【０００５】
また、従来、第１のコントローラにより第２のコントローラを監視し、第２のコントローラが故障した場合、第１のコントローラは、第２のコントローラのＩＰアドレスを引き継いで、サーバからのＩ／Ｏ要求を処理するストレージシステムが開示されている（例えば、特許文献1参照）。
【０００６】
【特許文献１】特開２００３−２０３０１９号公報（段落００３０〜００３３、図５、図６）
【非特許文献１】Satran, et al., RFC 3720 "Internet Small Computer Systems Interface (iSCSI)" [online].  The Internet Engineering Task Force (IETF), August 2004.  [Retrieved on 2005-08-23].  Retrieved from the Internet: <URL: http://www.ietf.org/rfc/rfc3720.txt>
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一方、ｉＳＣＳＩセッションを複数のコネクションで構成するには、複数のＩＰアドレスに対してＴＣＰコネクションを確立して冗長パスを構築できるように、各ホストに個別に設定を行っておく必要がある。他方、ＩＰ−ＳＡＮは、大規模化が進み、接続されるホスト数の増加に伴い、ストレージのポート数も増加している。
【０００８】
そこで、ｉＳＣＳＩプロトコル（非特許文献１記載）に基づき、ホストとストレージとの通信の信頼性を向上させるため、ｉＳＣＳＩセッションを複数のＴＣＰコネクションから構成し、複数のＩＰアドレスに対してＴＣＰコネクションを確立して冗長パスを構築するには、各ホストに個別に設定を行うこととなる。このため、大規模化が進むＩＰ−ＳＡＮでは、作業工数や管理工数が膨大となる問題点がある。
【０００９】
また、ｉＳＣＳＩレイヤは、ＴＣＰ／ＩＰレイヤの上位層に位置するものであり、また、ＩＰネットワークは、輻輳が生じた場合、積極的にパケットを廃棄することにより、トラフィックの回復を図ることがある。このため、ｉＳＣＳＩ通信を行う際、ネットワークに輻輳が生じると、ｉＳＣＳＩレイヤにおいても、Ｉ／Ｏ（データの入出力）が一時的に停止したり、実効転送速度などの性能が劣化したりする問題点がある。
【００１０】
この問題点に対処するため、Ｉ／Ｏ停止または性能劣化が生じる度にパスを切り替える構成とした場合、輻輳が頻発するネットワークではフラッピング（flapping）が発生し、通信状態が不安定になる問題点があった。そこで、従来のｉＳＣＳＩ通信では、一般的に、ＴＣＰ再送およびＴＣＰコネクションタイムアウトを待って、パスの切り替えを行っていたため、ストレージのポート故障などによりＩＰレイヤに障害が発生したとき、パスの切り替えに時間が掛かる問題点があった。
【００１１】
また、前記従来のストレージシステム（特許文献１記載）は、第２のコントローラが故障した場合、第１のコントローラが通信を引き継ぐことにより、パスを切り替えるものの、故障した第２のコントローラに係る通信を、第２のコントローラ以外のコントローラ（第１のコントローラを含む。）に引き継ぐ構成を有するに過ぎない。
【００１２】
したがって、ストレージのポート数が増加しつつある現状において、前記従来のストレージシステムでは、故障したコントローラを代替するコントローラにより設定されるパスが、必ずしも適切なものでない問題点があった。また仮に、代替ポートを選定できるようにするとすれば、使用ポートと対応する代替ポートとを定義するための作業工数や管理工数が膨大になるとともに、ネットワーク構成によっては、正常に通信の引き継ぎが行われない問題点があった。さらに、ストレージのＩ／Ｏ状態は刻々と変化するため、通信状況に応じた適切な代替ポートが選定されない問題点があった。
【００１３】
そこで、本発明の目的は、このような従来技術の各問題点に鑑み、ホストとストレージ間の通信の信頼性を向上させることにより信頼性および可用性を向上させたストレージシステムおよびストレージ装置を提供することにある。
【課題を解決するための手段】
【００１４】
前記課題を解決するため、本発明のストレージシステムは、ｉＳＣＳＩイニシエータ機能を有するホストと、ｉＳＣＳＩターゲット機能を有し複数のポートを備え前記ホストとＩＰネットワークを介して通信可能なストレージと、前記ストレージと通信可能な管理サーバと、を具備したストレージシステムであって、前記管理サーバは、前記複数のポートごとの負荷を示す負荷情報を収集する負荷情報収集部と、前記ストレージシステムの物理構成または論理構成を表す構成情報を収集する構成情報収集部と、前記複数のポートのうち前記ホストと通信するための使用ポートに係る通信障害が発生した場合、前記負荷情報および前記構成情報を参照し、前記負荷と前記物理構成または前記論理構成とに応じて、前記使用ポートを除く前記複数のポートから前記使用ポートを代替する代替ポートを選定し、前記使用ポートの通信条件を前記代替ポートに引き継がせ、前記使用ポートに係る通信を前記代替ポートによって継続させる代替ポート選定部と、を具備したことを特徴とする。
【００１５】
また、前記課題を解決するため、本発明のストレージ装置は、ｉＳＣＳＩターゲット機能を有し複数のポートを備えｉＳＣＳＩイニシエータ機能を有するホストと通信可能なストレージ装置であって、前記複数のポートのうち前記ホストとの通信のための使用ポートに係る通信障害が発生したことを検知する通信障害検知部と、前記通信障害が発生した場合、前記複数のポートのうち前記使用ポートと同一のブロードキャストドメインに属するポートから前記使用ポートを代替する代替ポートを選定し、前記代替ポートに前記使用ポートのＩＰアドレスおよびｉＳＣＳＩターゲット情報を引き継がせる代替ポート選定部と、前記代替ポートを通じてGratuitous ARPパケットを送信することにより前記ホストとのｉＳＣＳＩセッションを継続させるｉＳＣＳＩセッション継続部と、を具備したことを特徴とする。
【発明の効果】
【００１６】
本発明のストレージシステムおよびストレージ装置によれば、適切な代替ポート選定を行うことにより、信頼性および可用性を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明を実施するための最良の形態について、添付した図面を参照し、詳細に説明する。
【００１８】
（第１実施形態）
図１は、本発明の第１実施形態に係るストレージシステム１の概要を示すブロック図である。
このストレージシステム１は、ｉＳＣＳＩプロトコルに基づくＩＰ−ＳＡＮシステムであって、ターゲットのポートに故障などが生じて、イニシエータとこのポート（特許請求の範囲に記載の「使用ポート」に相当）を通じた通信に障害が発生した場合、この使用ポートの代わりとなる適切な代替ポート（特許請求の範囲に記載の「代替ポート」に相当）を選定し、この代替ポートに通信条件を引き継がせることにより、通信可能な代替パスを確保し、ストレージの可用性および信頼性の向上を図ったものである。
【００１９】
ストレージシステム１は、ホスト１００〜１５９と、通信装置２００，２５０と、ストレージ装置３００と、管理サーバ４００とを具備している。ホスト１００〜１５９は、ｉＳＣＳＩプロトコルにおけるイニシエータに相当し、また、ストレージ装置３００は、ｉＳＣＳＩプロトコルにおけるターゲットに相当する。
【００２０】
ホスト１００〜１０９，ホスト１１０〜１１９，ホスト１２０〜１２９はそれぞれ、通信装置２００に接続されている。同様に、ホスト１３０〜１３９，ホスト１４０〜１４９，ホスト１５０〜１５９はそれぞれ、通信装置２５０に接続されている。通信装置２００および通信装置２５０はそれぞれ、ストレージ装置３００に接続され、通信装置２００と通信装置２５０とは、相互接続されている。管理サーバ４００は通信装置２５０に接続されている。
【００２１】
通信装置２００，２５０が、ストレージ装置３００に複数の接続線で直接的に接続されているように図示したが、これらの接続線は、通信装置２００および通信装置２５０と、ストレージ装置３００との間に複数の論理的なパスが設定可能であることを意味するものである。したがって、典型的には、通信装置２００および通信装置２５０と、ストレージ装置３００とは、１つまたは複数のＩＰネットワーク（図示せず）を介して、通信可能に接続されている。
【００２２】
このように、これらのｉＳＣＳＩデバイス（ホスト１００〜１５９およびストレージ装置３００）は、通信装置２００または通信装置２５０を介して、ＩＰパケットを相互に伝送することが可能である。こうして、これらのｉＳＣＳＩデバイスは、ｉＳＣＳＩコマンドおよび関連するデータをカプセル化してｉＳＣＳＩ  ＰＤＵを作成し、このｉＳＣＳＩ  ＰＤＵをペイロードとして組み立てたＩＰパケットを伝送することにより、ｉＳＣＳＩ通信を行う。
【００２３】
図２は、ホスト１００の構成例を詳細に示すブロック図である。
ホスト１０１〜１５９は、ホスト１００と同様の構成でよい。ホスト１００〜１５９はいずれも、ｉＳＣＳＩイニシエータ機能を有するコンピュータである。
【００２４】
ホスト１００は、ＣＰＵ（図示せず）を含み演算処理機能および制御機能を有する処理部１００１と、ＲＡＭを含み主記憶装置および補助記憶装置として機能する記憶部１００２と、通信装置２００と通信を行うためのインタフェース機能（すなわち、ＩＰ通信機能）を提供するポート１００３と、キーボードおよびポインティングデバイスなどの入力デバイスを含みデータや情報の入力を受け付ける入力装置１００４と、ディスプレイ装置などの出力デバイスを含みデータや情報を出力する出力装置１００５と、ホスト１００内の各構成要素間でデータおよび信号の送受を媒介するバス１００６と、を具備している。
【００２５】
記憶部１００２には、オペレーティングシステム（ＯＳ；基本プログラム）１００７と、イニシエータプログラム１００８とがロードされ、処理部１００１によって実行可能になっている。
【００２６】
オペレーティングシステム１００７は、メモリ管理機能およびタスク管理機能を有し、アプリケーションプログラムを実行可能にするＡＰＩ（Application Program Interface）を提供するプログラムである。
【００２７】
イニシエータプログラム１００８は、各構成要素を制御し、ホスト１００をｉＳＣＳＩイニシエータとして機能させるアプリケーションプログラムである。イニシエータプログラム１００８は、ホスト１００がｉＳＣＳＩ通信を行う際に、パケットデータの送受信、組み立ておよび分解など、ｉＳＣＳＩ通信に関する処理を実行する。
【００２８】
ホスト１００は、ポート１００３を通じて通信装置２００と接続され、後記するように、通信装置２００を経由して、ストレージ装置３００とｉＳＣＳＩ通信を行う。同様に、ホスト１０１〜１５９も、通信装置２００または通信装置２５０を経由して、ストレージ装置３００とｉＳＣＳＩ通信を行う。
【００２９】
図３は、ストレージ装置３００の構成例を詳細に示すブロック図である。
ストレージ装置３００は、ストレージ装置３００全体を制御するとともに外部のデバイスとの通信機能を提供するストレージ制御装置３１０と、所定のデータ格納領域を提供するディスク格納装置３２０とを具備している。
【００３０】
ストレージ制御装置３１０は、ＣＰＵを含み演算処理機能および制御機能を有する処理部３１１と、ＲＡＭなどの記憶装置を含み主記憶装置および補助記憶装置として機能する記憶部３１２と、通信装置２００と通信するためのＩＰインタフェース機能を提供するポート３３１〜３３３を搭載したネットワークコントローラ３１４と、通信装置２５０と通信するためのＩＰインタフェース機能を提供するポート３３４〜３３６を搭載したネットワークコントローラ３１５と、ディスク格納装置３２０と接続されデータ伝送を媒介するストレージ接続装置３１３と、ストレージ制御装置３１０内の各構成要素間でデータおよび信号の送受を媒介するバス３１６と、を具備している。
【００３１】
ディスク格納装置３２０は、複数の物理ディスクからなる物理ディスク群３２１と、これらの物理ディスクを相互接続するバス３２２とを具備している。
ディスク格納装置３２０内では、各物理ディスクの個々の記憶領域は、全体が一括して管理されている。１つの物理ディスクの記憶領域全体を分割した部分記憶領域は、他の１つまたは複数の物理ディスクの部分記憶領域と組み合わされ、論理ユニット（LU; Logical Unit）たる論理ボリュームを構成している。こうして、物理ディスク群３２１は、ディスク格納装置３２０外からは、複数の論理ボリュームであるボリューム３１００〜３１５９として見え、それぞれ独立したディスク（論理ディスク）として取り扱うことができる。
【００３２】
記憶部３１２には、ストレージ制御プログラム３４１が処理部３１１によって実行可能にロードされている。
ストレージ制御プログラム３４１は、ｉＳＣＳＩプロトコルに基づくＩ／Ｏ処理などを行って、外部のデバイスとボリューム３１００〜３１５９とのアクセスを制御し、ストレージ装置３００を、ｉＳＣＳＩターゲットとして機能させる。
【００３３】
記憶部３１２はさらに、どのｉＳＣＳＩイニシエータがどのボリュームにアクセス可能かを示すテーブルであるパス定義情報３４２と、ポート３３１〜３３６の負荷情報を記録したポート負荷情報３４３と、ポート３３１〜３３６の通信エラー情報を記録したポートエラー情報３４４とを、書き換え可能に記憶している。
【００３４】
ストレージ装置３００は、ポート３３１〜３３３を通じて、通信装置２００と複数の異なるパスを設定でき、また、ポート３３４〜３３６を通じて、通信装置２５０と複数の異なるパスを設定できる。ストレージ装置３００は、これらのパスを通じて、通信装置２００および通信装置２５０と、共通の通信プロトコル（ＩＰ）に基づき通信する機能を有する。こうして、ストレージ装置３００と、ホスト１００〜１５９とは、通信装置２００または通信装置２５０を経由して、ｉＳＣＳＩ通信を行うことができる。
【００３５】
この際、ストレージ制御プログラム３４１は、ｉＳＣＳＩ通信に関する処理を行い、ホスト１００〜１５９に対し、ｉＳＣＳＩプロトコルに基づきボリューム３１００〜３１５９へアクセスできる環境を提供する。
【００３６】
図４は、管理サーバ４００の構成例を詳細に示すブロック図である。
管理サーバ４００は、ＣＰＵを含み演算処理機能および制御機能を有する処理部４０１と、ＲＡＭなどの記憶装置を含み主記憶装置および補助記憶装置として機能する記憶部４０２と、通信装置２５０と通信を行うためのインタフェース機能を有するポート４０３と、キーボードやポインティングデバイスなどの入力デバイスを含みデータや情報の入力を受け付ける入力装置４０４と、ディスプレイ装置などの出力デバイスを含みデータや情報を出力する出力装置４０５と、管理サーバ４００内の各構成要素を相互接続しデータおよび信号の送受を媒介するバス４０６と、を具備している。
【００３７】
記憶部４０２には、オペレーティングシステム（ＯＳ；基本プログラム）４１１と、代替ポート選定プログラム４１２とが、処理部４０１によって実行可能にロードされている。オペレーティングシステム４１１は、メモリ管理機能およびタスク管理機能を有し、ＡＰＩを提供するプログラムである。代替ポート選定プログラム４１２は、後記するように、ストレージ装置３００のポート３３１〜３３６から適切な代替ポートを選定するための機能を有する。
記憶部４０２はまた、代替ポートの選定に関する情報を示す代替ポート選定ログ４１３およびネットワーク構成を示す構成情報４１５（後記）を書き換え可能に記憶している。
【００３８】
管理サーバ４００は、ポート４０３を通じて通信線路により通信装置２５０と接続されている。そして、管理サーバ４００は、通信装置２５０とＩＰなどに基づいて通信を行うことにより、通信装置２５０のネットワーク通信管理を行う。
【００３９】
管理サーバ４００が、通信装置２５０と接続されている例について説明したが、通信装置２００と接続されていてもよい。また、通信装置２００，２５０またはストレージ装置３００が、管理サーバ４００の構成および機能を含むようにしてもよい。
【００４０】
図５は、通信装置２００の構成例を詳細に示すブロック図である。
通信装置２００は、ＣＰＵを含み演算処理機能および制御機能を有する処理部２０１と、ＲＡＭなどの記憶装置を含み主記憶装置および補助記憶装置として機能する記憶部２０２と、外部のデバイスとＩＰなどに基づくインタフェース機能を提供するポート２１１〜２３０と、通信装置２００内の各構成要素を相互接続し信号およびデータの送受を媒介するバス２０３とを具備している。
【００４１】
記憶部２０２には、パケット転送制御プログラム２２１が、処理部２０１によって実行可能にロードされている。
パケット転送制御プログラム２２１は、パケット転送制御処理を行い、通信装置２００に、ＩＰパケット転送機能を付与する。
【００４２】
このように、ホスト１００〜１５９、管理サーバ４００およびストレージ装置３００は、通信装置２００または通信装置２５０を経由して、他のデバイスとＩＰプロトコルによる通信が可能となる。
【００４３】
通信装置２５０は、通信装置２００と同様の構成でよい。また、通信装置２００と同様のさらなる通信装置（図示せず）を備えてもよい。これにより、パスの冗長度がさらに増加し、ストレージシステム１の信頼性および可用性を増大させることができる。
【００４４】
前記したように、ホスト１００〜１５９は、ｉＳＣＳＩプロトコルに基づきストレージ装置３００のボリューム３１００〜３１５９にアクセスする。ｉＳＣＳＩデバイスは、ｉＳＣＳＩネームとＩＰアドレスとの組により、通信の相手方となるイニシエータまたはターゲットを識別し、ｉＳＣＳＩセッションを確立する。
【００４５】
図６は、ストレージ装置３００が保持するパス定義情報３４２のテーブルの一例を示す図である。
パス定義情報３４２は、パス定義情報３４２内のレコードに一意に付されたレコード番号と、ストレージ装置３００の各ポート名と、そのポートが搭載されているネットワークコントローラ（インターフェースモジュール）の識別子と、設定されたＩＰアドレスと、そのポートからアクセス可能なターゲットのｉＳＣＳＩネームおよびボリュームの識別子と、接続を許可するイニシエータ名と、を示す各フィールドを有している。
【００４６】
例えば、レコード番号＃１のレコードは、イニシエータ名"host100"〜"host109"で識別されるホスト１００〜１０９が、ストレージ装置３００のポート３３１に割り当てられたＩＰアドレス"10.10.1.1/24"を経由して、ボリューム３１００〜３１０９にアクセス可能であることを示す。
【００４７】
次に、図６に示すパス定義情報３４２を用いて、ポート３３１〜３３６の各々にＩＰアドレスを割り当て、１０個のホストと通信する例について説明する。
【００４８】
図７は、ポート負荷情報３４３のテーブルの一例を示す図である。
このポート負荷情報３４３は、ポート３３１〜３３６の負荷を示すものであり、ポート負荷情報３４３内の各レコードを一意に示すレコード番号と、ポート名と、このポートを経由して確立中のｉＳＣＳＩセッション数と、このポートを経由して送受されたデータ量を示すＩ／Ｏ量[MB/s]と、を示す各フィールドを有している。
【００４９】
ｉＳＣＳＩセッション数を示すフィールドはさらに、所定時間ごとのｉＳＣＳＩセッション数を記録したサブフィールドを有する。また、Ｉ／Ｏ量を示すフィールドはさらに、所定時間ごとのＩ／Ｏ量を記録したサブフィールドを有する。ｉＳＣＳＩセッション数およびＩ／Ｏ量は、例えば、５分ごとに５分平均のデータを記録するが、これらの時間は、ポートの構成や通信状況などを勘案して、これより長くまたは短くしてもよい。
【００５０】
なお、ｉＳＣＳＩプロトコルでは、ｉＳＣＳＩセッションは、１つ以上のＴＣＰコネクションによって構成される。このため、ホスト(イニシエータ)とストレージ(ターゲット)間の通信の信頼性を向上するために、ｉＳＣＳＩセッションを複数のＴＣＰコネクションによって構成できる。例えば、ホスト１００が、ポート３３１およびポート３３２を通じて２つのＴＣＰコネクションを確立し、"target01"およびボリューム３１００にアクセスすることが考えられる。この場合では、ホストに、１つのｉＳＣＳＩセッションを確立させるごとに複数のパスを設定する必要があるため、ホストの数が多くなると、作業工数や管理工数が増加する問題点がある。
【００５１】
また、ｉＳＣＳＩレイヤは、ＴＣＰ／ＩＰレイヤの上位層である。ところが、ＩＰネットワークは、輻輳すると、パケットを積極的に廃棄するため、ｉＳＣＳＩレイヤにおいても、Ｉ／Ｏが一時的に停止したり、性能劣化が発生したりすることがある。
【００５２】
このため、Ｉ／Ｏ停止または性能劣化が生じたとき、直ちにパスを切り替える構成が考えられる。しかし、ＩＰネットワークで輻輳が頻発すると、フラッピングが発生する。すなわち、ｉＳＣＳＩデバイス（ノード）間で２つのパスを経路情報が行き来し、パスの切り替えが頻発することにより、通信状態が不安定となる。
【００５３】
そこで、従来のｉＳＣＳＩによるシステムでは、ＴＣＰ再送およびＴＣＰコネクションタイムアウトを待ってから、パスを切り替える構成が採られてきた。しかし、この構成では、ストレージのポート故障などでＩＰレイヤに障害が発生すると、パスの切り替えに時間が掛かり、可用性が低下する問題点があった。
【００５４】
そこで、ストレージのポート故障が発生した場合、単一のｉＳＣＳＩセッション（１つのＴＣＰコネクション）を確立していたポートの機能を別のポートに引き継ぐことにより、パスを切り替える構成が考えられる。しかし、ホストの増加に伴いストレージのポート数が増加すると、ホストが発生するＩ／Ｏトラフィックが刻々と変化することと相俟って、適切な代替ポートを選定することが困難になる問題点があった。また、選定した代替ポートに、ネットワーク構成などの条件に従って、適切に通信を引き継ぎがせるためには、代替ポートにあらかじめ定義を行っておく必要があり、作業工数や管理工数が膨大になる問題点があった。
【００５５】
そこで本実施形態のストレージシステム１は、ストレージのポート自身の故障、接続先の通信装置２００または２５０の故障、ケーブルなどの通信線路の故障などにより、ストレージ装置３００のポート３３１〜３３６のいずれかを通じたＩＰ通信に障害が発生した場合、その通信障害を検知して、その通信障害に係るポート（特許請求の範囲に記載の「使用ポート」）に設定されたＩＰアドレスやターゲット情報などの通信条件を、使用ポートの代替となるポート（特許請求の範囲に記載の「代替ポート」）へ引き継がせることにより、ホストとの通信を円滑に継続させる構成とした。そのため、ストレージシステム１は、この代替ポートを、ストレージ装置３００のポート３３１〜３３６のそれぞれの負荷、および、通信装置２００，２５０をはじめとするデバイスの接続状況などネットワークの物理構成および論理構成を勘案して選定する構成とした。
【００５６】
本実施形態では、管理サーバ４００において代替ポート選定プログラム４１２が実行されることにより、前記した構成が実現されるようにした。この代替ポート選定プログラム４１２は、所定の周期ごとに（例えば５分間隔ごとに）、繰り返し起動される。以下に、その処理の詳細を説明する。
【００５７】
図８は、代替ポート選定プログラム４１２の実行により、通信障害に係るポート（使用ポート）を代替する代替ポートを選定し、この使用ポートの通信条件を、選定した代替ポートに引き継がせ、この使用ポートに係る通信を前記代替ポートによって継続させる一連の処理の一例を示したフローチャートである。
【００５８】
まず、代替ポート選定プログラム４１２は、ストレージ装置３００からパス定義情報３４２を、通信装置２００，２５０経由で収集する（ステップ４００１）。パス定義情報３４２を取得するには、ＴＣＰ／ＩＰネットワークにおいて、ネットワークに接続されたデバイスをネットワーク経由で監視および制御するためのプロトコル、例えばＳＮＭＰ（Simple Network Management Protocol）などに基づいて行う。この場合、ストレージ装置３００は、パス定義情報３４２を含むＭＩＢ（Management Information Base）を保持し、管理サーバ４００へ提供可能であるものとする。
【００５９】
次に、代替ポート選定プログラム４１２は、ポート負荷情報３４３を、ストレージ装置３００から、通信装置２００または通信装置２５０経由で収集する（ステップ４００２）。ポート負荷情報３４３は、前記したパス定義情報３４２の取得（ステップ４００１）と同様に、例えばＳＮＭＰに基づいて、ポート負荷情報３４３を含むストレージ装置３００のＭＩＢから取得される。そして、代替ポート選定プログラム４１２は、取得した新たなポート負荷情報３４３に基づき、記憶部４０２に格納した一時テーブル４１４を更新する。
【００６０】
図９は、現在時刻が００：０６であるときの一時テーブル４１４の一例を示す図である。
この一時テーブル４１４は、ステップ４００１で取得したパス定義情報３４２と、ステップ４００２で取得したポート負荷情報３４３とから、ポートごとの最新の負荷を示す情報（ここでは、時刻００：０５の情報が該当する。）を抽出し、編集したものである。
【００６１】
一時テーブル４１４は、レコード番号と、ポート名と、ネットワークコントローラの識別子と、サブネットのアドレスと、確立中のｉＳＣＳＩセッション数と、現在のＩ／Ｏ量の値とに対応した各フィールドを有し、レコードごとに各フィールドに対応する値が記録されている。
【００６２】
図８に戻り、代替ポート選定プログラム４１２は、一時テーブル４１４のｎ番目のポート、すなわちポートｎについて、最適な代替ポートを選定する（ステップ４００３；代替ポート選定処理）。なお、ｎの初期値は１であり、ｎは自然数の値をとる。ｎの初期値は１であるから、まず、ｎ＝１に対応するポート、すなわちポート３３１に代わる適切な代替ポートを選定する。
【００６３】
図１０は、代替ポート選定処理（ステップ４００３）を詳細に示すフローチャートである。
代替ポート選定プログラム４１２は、ポート３３１を除くポートのうち、別個のネットワークコントローラ（２）に搭載されていて、同一のブロードキャストドメイン（サブネット）に属するポートｘを、一時テーブル４１４（図９参照）を参照して検索する（ステップ５００１）。
【００６４】
ポートｘは、ポートｎを搭載したネットワークコントローラ（１）が故障した可能性を考慮し、このネットワークコントローラ（１）とは別個のネットワークコントローラ（２）に搭載されているポートであることが望ましい。ただし、正常に動作しているポートがあれば、同一のネットワークコントローラ（１）に搭載されているポートから選ぶことも可能である。ポートｘはまた、ポートｎと同一のＩＰアドレスを引き継ぐため、ポート３３１と同一ブロードキャストドメイン(サブネット)に属するポートから選ぶ。この例では、パス定義情報３４２を参照すると、これらの条件に合致するポートｘとして、ポート３３２およびポート３３３が挙げられる。
【００６５】
好ましくは、通信装置２００および２５０と、ストレージ装置３００との物理的または論理的な接続関係を示す構成情報４１５（図４参照）を作成しておき、ポートｎが通じている通信装置２００（または２５０）とは別個の通信装置２５０（または２００）に通じているポートを検索し、これらのポートから優先的にポートｘを選定するようにする。この構成情報４１５は、例えば、事前に作成しておき、例えば、管理サーバ４００の記憶部４０２に格納しておく。
【００６６】
図１１は、構成情報４１５のテーブルの一例を示す図である。
この構成情報４１５は、レコード番号と、ストレージ装置名と、ポート名と、ネットワークコントローラの識別子と、接続先機器名との各フィールドと、これらに対応した値を、レコードごとに記憶している。
【００６７】
図１０に戻り、次に、代替ポート選定プログラム４１２は、ステップ５００１において検索したポートｘ（ポート３３２，３３３）のうち、一時テーブル４１４を参照して、最も負荷の低いポートを検索する（ステップ５００２）。一時テーブル４１４（図９参照）に示されるように、代替ポート選定プログラム４１２は、ポートｘのうち、最も負荷が低く適切な代替ポートとして、ポート３３２を選定する。ポートの選定は、ｉＳＣＳＩセッション数またはＩ／Ｏ量のいずれか、もしくはこれらの両方を勘案して行う。
【００６８】
代替ポート選定プログラム４１２は、ステップ５００２で選定した代替ポートの識別子（代替ポート名）を一時テーブル４１４に追記する（ステップ５００３）。
図１２は、代替ポートに関する情報を追記した一時テーブル４１４を示す図である。
この一時テーブル４１４には、“代替ポート名”フィールドが追加され、レコード＃１に“ポート３３２”が記載されている。
【００６９】
図８に戻り、代替ポート選定プログラム４１２は、ｎの値に１を加算する（ステップ４００４）。
【００７０】
次に、代替ポート選定プログラム４１２は、一時テーブル４１４（図１２参照）に記録されているすべてのポートについて、代替ポート選定処理（ステップ４００３）がなされたか否かをチェックする（ステップ４００５）。代替ポート選定処理がなされていないポートがあれば（ステップ４００５のＮｏ）、ステップ４００３に戻り、該当するポートについて、代替ポート選定処理を行う。これら全てのポートについて代替ポート選定処理がなされていれば（ステップ４００５のＹｅｓ）、次の処理（ステップ４００６）へ進む。
【００７１】
図１３は、代替ポート選定プログラム４１２による各処理を経て生成された一時テーブル４１４を示す図である。
この一時テーブル４１４を参照すると、ポート３３１〜３３６のそれぞれについて、最適な代替ポートが１つずつ選定されている。
【００７２】
図８に戻り、代替ポート選定プログラム４１２は、選定した代替ポートを、ストレージ装置３００において設定する（ステップ４００６：代替ポート設定処理）。
図１４は、代替ポート設定処理（ステップ４００６）を行った後のストレージ装置３００が保持するパス定義情報３４２のテーブルの一例を示す図である。
【００７３】
図８に戻り、代替ポート選定プログラム４１２は、代替ポート設定処理（ステップ４００６）で設定した内容を代替ポート選定ログ４１３に保存する（ステップ４００７）。
なお、代替ポート設定処理（ステップ４００６）で、前回の代替ポート選定ログ４１３の内容を参照し、設定した内容が前回と同一であれば、代替ポート設定処理（ステップ４００６）は省略してもよい。また、適切な代替ポートが見出せなかったポートが存在した場合、その旨をメールなどにより管理者（管理サーバ４００）に通知するようにしてもよい。
【００７４】
（ストレージ装置３００自身による切り替え動作）
ストレージ装置３００は、ストレージ装置３００自身が有する各ポートのＩＰ通信状態を常に監視し、通信中のポート（使用ポート）に係る障害が発生したときは、この使用ポートを代替する代替ポートに切り替え、この使用ポートに係る通信を継続させる機能を有する。
【００７５】
図１５は、ストレージ装置３００自身による切り替え動作を示すフローチャートである。
ストレージ装置３００では、ストレージ制御プログラム３４１は、各ポートのＩＰ通信の状態を常に監視している（ステップ６０００）。ＩＰ通信状態の監視は、例えば、ポートの故障、接続先通信機器における障害、ケーブルなどの通信線路の故障などで発生するリンクダウン（linkdown）を監視することにより行う。リンクダウンが発生していないときは（ステップ６０００のＮｏ）、引き続き監視を行う。リンクダウンが発生したときは（ステップ６０００のＹｅｓ）、次のステップへ進む。
【００７６】
次に、ストレージ制御プログラム３４１は、ＩＰ通信不能となった（使用）ポートｎの代替ポートをパス定義情報３４２（図１４参照）から検索する（ステップ６００１）。ここでは、ポート３３１がＩＰ通信不能となったとする。その場合、代替ポートはポート３３２となる。
【００７７】
そして、ストレージ制御プログラム３４１は、ＩＰ通信不能となった（使用）ポートｎ（ポート３３１）に設定されていたＩＰアドレスおよびターゲット名を、（代替）ポートｘ（ここではポート３３２）に再設定する（ステップ６００２）。
【００７８】
図１６は、使用ポートから代替ポートへＩＰアドレスおよびターゲット名を再設定した後のパス定義情報３４２を示すテーブルである。
この例では、具体的には、ストレージ制御プログラム３４１は、ＩＰアドレス"10.10.1.1/24"、ターゲット名"target02"をポート３３２からアクセス可能とする。なお、故障したポート３３１は、復旧するまで、代替ポート選定処理（後記）における代替ポートの候補にはならない。
【００７９】
次に、ストレージ制御プログラム３４１は、代替ポート（ここではポート３３２）を通じて、引き継いだＩＰアドレス"10.10.1.1/24"がポート３３２経由でアクセス可能となるよう、Gratuitous ARP（Address Resolution Protocol; アドレス解決プロトコル）パケットを通信装置２００，２５０のいずれか（この場合、通信装置２００）に向けて送信する（ステップ６００３）。これにより、ホスト１００〜１０９はポート３３２経由でＩＰアドレス"10.10.1.1/24"にアクセス可能となり、従前にポート３３１経由で確立されていたｉＳＣＳＩセッションを代替ポート（ポート３３２）経由で継続できる。なお、その後、ポート３３１を通じてリンクアップ（linkup）が発生した場合、パス定義情報３４２を、リンクダウン前の状態（図１４参照）に元に切り戻してもよい。
【００８０】
以上、現在時刻が００：０６であるときの代替ポート選定に係る処理について説明した。以下、所定時刻が経過し、現在時刻が１１：１２となったときの代替ポート選定に係る処理について説明する。
【００８１】
図８に戻り、代替ポート選定プログラム４１２は、まず、現在のパス定義情報３４２をストレージ装置３００から収集し（ステップ４００１）、ポート負荷情報３４３をストレージ装置３００から収集する（ステップ４００２）。
【００８２】
図１７は、現在時刻が１１：１２であるときの一時テーブル４１４を示す図である。
この一時テーブル４１４を参照すると、ネットワーク構成は変化していないが、ポートごとの通信負荷（ｉＳＣＳＩセッション数およびＩ／Ｏ量が）が変化していることが分かる。
【００８３】
図８に戻り、代替ポート選定プログラム４１２は、この一時テーブル４１４を参照し、前記したように、ステップ４００３，４００４，４００５を実行する。
【００８４】
図１８は、ステップ４００３，４００４，４００５（代替ポート選定処理など）を実行した後の一時テーブル４１４を示す図である。
【００８５】
図８に戻り、代替ポート選定プログラム４１２は、前記したようにストレージ装置３００に代替ポートを設定し（ステップ４００６）、代替ポート選定ログ４１３に設定内容を保存する（ステップ４００７）。
【００８６】
ポートごとの通信負荷が変化したため、この現在時刻が１１：１２であるときの例では、先に述べた現在時刻が００：０６である時の例とは異なる代替ポートが定義されることとなる。例えば、現在時刻が００：０６であったとき、ポート３３１の最適な代替ポートはポート３３２であったが、現在時刻が１１：１２となったとき、ポート３３１の最適な代替ポートは、ポート負荷状況からポート３３３となったことが分かる。
【００８７】
以上の構成で処理を実行することにより、本実施形態では、最適な代替ポートを選定し、引き継ぎ動作が確実に行われるストレージシステム１を低コストで実現できる。
【００８８】
以上、ストレージシステム１がｉＳＣＳＩシステムである例について述べてきたが、ストレージシステム１を、ＮＦＳ（Network File System）またはＣＩＦＳ（Common Internet File System）などのＮＡＳ（Network Attached Storage）システムとして構成することも可能である。この場合、ストレージ装置３００は、ＮＦＳサーバまたはＣＩＦＳサーバなどのＮＡＳとして機能し、ストレージ装置３００のポートに係る障害が発生した場合、ＩＰアドレス情報の引き継ぎを実行する構成を有する。この例では、ｉＳＣＳＩ通信を行う場合と異なり、ターゲット情報の引き継ぎ機能は有さなくてよい。
【００８９】
（第２実施形態）
次に、本発明の第２実施形態に係るストレージシステム１について説明する。
第２実施形態のストレージシステム１の構成および動作は、以下に述べる事項のほかは、原則として第１実施形態において説明したストレージシステム１と同様でよい。
第１実施形態では、ポートにＩＰ通信障害が発生した後に、対策を行う構成および動作について説明した。第２実施形態では、ポートごとの通信エラーを監視しておき、ポートの劣化や通信状態の悪化を検知することにより、ポート故障などによるＩＰ通信不能時の一時的なパケット廃棄による性能劣化を事前に回避する構成について説明する。
【００９０】
図１９は、ストレージ装置３００が保持するポートエラー情報３４４のテーブルの一例を示す図である。
ポートエラー情報３４４は、ポートごとの通信エラーを、エラーの種類ごとに計数して作成したデータベースである。ポートエラー情報３４４は、レコード番号、ポート名、および、監視対象となるデバイス、すなわち、ストレージ装置３００のＭＩＢ（Management Information Base）である"ifInDiscards"、"ifInErrors"、"ifOutDiscards"、"ifOutErrors"に対応したフィールドとそれらの値を含んでいる。この例では、このポートエラー情報３４４のレコード＃２を参照すると、ポート３３２の"ifOutError"(送信エラーパケット数)の値が１２０であり、他のエラーが０であることが分かる。
【００９１】
このストレージシステム１において、管理サーバ４００が代替ポート選定プログラム４１２を実行することにより、前記した構成が実現される。
【００９２】
図２０は、代替ポート選定プログラム４１２の実行により、通信状態の劣化に係るポート（使用ポート）を代替する代替ポートを選定し、この使用ポートの通信条件を、選定した代替ポートに引き継がせ、この使用ポートに係る通信を前記代替ポートによって継続させる一連の処理の一例を示したフローチャートである。
【００９３】
まず、代替ポート選定プログラム４１２は、ストレージ装置３００からパス定義情報３４２を収集する（ステップ７００１）。
そして、代替ポート選定プログラム４１２は、各ポートの負荷およびエラーの状況を示すポート負荷情報３４３と、ポートエラー情報３４４とを収集し、収集した各情報のうち最新のものを、一時テーブル４１４に格納する（ステップ７００２）。
これらの情報の取得は、例えばＳＮＭＰに基づき、ストレージ装置３００のＭＩＢから抽出することにより行う。
【００９４】
図２１は、現在時刻が００：０６のときの一時テーブル４１４の一例を示す図である。
一時テーブル４１４は、取得したパス定義情報３４２、ポート負荷情報３４３、および、ポートエラー情報３４４から、ポートごとの最新の負荷状況およびエラー状況などを抽出し、まとめたものである。一時テーブル４１４は、レコード番号、ポート名、ネットワークコントローラの識別子、サブネット、現在のセッション数、現在のＩ／Ｏ量、および、監視対象となるデバイス、すなわち、ストレージ装置３００のＭＩＢ（Management Information Base）である"ifInDiscards"、"ifInErrors"、"ifOutDiscards"、"ifOutErrors"に対応したフィールドとそれらの値を含んでいる。
【００９５】
図２０に戻り、代替ポート選定プログラム４１２は、一時テーブル４１４に記録されているｎ番目（ｎの初期値は１）のポートの代わりとなる、適切な代替ポートを選定する（代替ポート選定処理：ステップ７００３）。例えば、ｎ＝１ならば、ポート３３１に代わる適切な代替ポートを選定する。
【００９６】
図２２は、代替ポート選定処理（ステップ７００３）を詳細に示すフローチャートである。
図２２に示すように、代替ポート選定プログラム４１２は、ポート３３１のエラーが事前に設定した閾値を超過しているか否かをチェックする（ステップ８００１）。ここでは、管理者が、エラー情報の閾値を例えば１００と設定しておいたとする。この場合、ポート３３１のエラー情報は全て０であるため、エラー情報は閾値を超過していないこととなり、この処理（ステップ７００３）から次の処理（ステップ７００４）へ移る。
【００９７】
図２０に戻り、代替ポート選定プログラム４１２は、ｎの値を１加算する（ステップ７００４）。
【００９８】
代替ポート選定プログラム４１２は、一時テーブル４１４に記載されたすべてのポートについて、代替ポート選定処理（ステップ７００３）が終了したか否かをチェックする（ステップ７００５）。終了していれば（ステップ７００５のＹｅｓ）次の処理（ステップ７００６）に進み、そうでなければ（ステップ７００５のＮｏ）代替ポート選定処理（ステップ７００３）に戻る。
【００９９】
ポートごとに、ステップ７００３からステップ７００５までの処理を繰り返すと、ポート３３２の処理のとき、エラー情報が閾値である１００を超過する（ステップ８００１のＹｅｓ；図２２参照）ため、次の処理（ステップ８００２）に移る。
【０１００】
次に、代替ポート選定プログラム４１２は、第１実施形態のステップ５００１からステップ５００３までの処理（図１０参照）と同様に、ステップ８００２からステップ８００４までの処理を実行する。
【０１０１】
図２３は、ポート３３２について最適な代替ポートが１つ選定された後の一時テーブル４１４を示す図である。
【０１０２】
図２０に戻り、代替ポート選定プログラム４１２は、ステップ７００６およびステップ７００７を実行する。ステップ７００６は、ステップ４００６と同様に実行すればよく、また、ステップ７００７は、ステップ４００７と同様に実行すればよい。
【０１０３】
図２４は、代替ポート設定後のパス定義情報３４２を示すテーブルの一例を示す図である。
また、ストレージ装置３００では、代替ポート選定プログラム４１２は、このパス定義情報３４２を参照し、ステップ６００１からステップ６００３の処理（図１５参照）を実行することにより、通信エラーの発生に係るポートの情報を、通信障害の発生前に、適切な代替ポートに引き継いで通信を継続できる。
【０１０４】
このように、第２の実施形態のストレージシステム１は、前記各処理を実行することにより、ＩＰ通信不能時の一時的なパケット廃棄による性能劣化を、故障が発生しそうなポートでの通信を事前に別の正常ポートに切り替えて実施することで防止可能となり、さらなる信頼性および可用性の向上を図ることができる。
【０１０５】
以上、ストレージシステム１がｉＳＣＳＩシステムである例について述べてきたが、第１の実施形態と同様に、ストレージシステム１を、ＮＦＳ（Network File System）またはＣＩＦＳ（Common Internet File System）などのＮＡＳ（Network Attached Storage）システムとして構成することも可能である。この場合、ストレージ装置３００は、ＮＦＳサーバまたはＣＩＦＳサーバなどのＮＡＳとして機能し、ストレージ装置３００のポートに係る障害が発生した場合、ＩＰアドレス情報の引き継ぎを実行する構成を有する。この例では、ｉＳＣＳＩ通信を行う場合と異なり、ターゲット情報の引き継ぎ機能は有さなくてよい。
【０１０６】
なお、本明細書の各実施形態で示した情報およびデータは、必要な情報およびデータが必要に応じて取り出せる形式であれば、いかなる形式をとっていてもよい。本説明では、各データや情報の内容をテーブル形式で示したが、シリアルデータまたはスプレッドシートなどの形式でもよい。あるいは、リレーショナルデータベースおよびリレーショナルデータベース管理システム（RDBMS; Relational DataBase Management System）を含む構成により、分散して存在する複数のデータベースにまたがって、関連する情報またはデータが記録されたリレーショナルデータベースから、ＲＤＢＭＳによって必要な情報またはデータが抽出される形式をとっていてもよい。
【図面の簡単な説明】
【０１０７】
【図１】本発明の第１実施形態に係るストレージシステムの概要を示すブロック図である。
【図２】ホストの構成例を詳細に示すブロック図である。
【図３】ストレージ装置の構成例を詳細に示すブロック図である。
【図４】管理サーバの構成例を詳細に示すブロック図である。
【図５】通信装置の構成例を詳細に示すブロック図である。
【図６】ストレージ装置が保持するパス定義情報のテーブルの一例を示す図である。
【図７】ポート負荷情報のテーブルの一例を示す図である。
【図８】代替ポート選定プログラムの実行により、通信障害に係るポート（使用ポート）を代替する代替ポートを選定し、この使用ポートの通信条件を、選定した代替ポートに引き継がせ、この使用ポートに係る通信を前記代替ポートによって継続させる一連の処理の一例を示したフローチャートである。
【図９】現在時刻が００：０６であるときの一時テーブルの一例を示す図である。
【図１０】代替ポート選定処理（ステップ４００３）を詳細に示すフローチャートである。
【図１１】構成情報のテーブルの一例を示す図である。
【図１２】代替ポートに関する情報を追記した一時テーブルを示す図である。
【図１３】代替ポート選定プログラムによる各処理を経て生成された一時テーブルを示す図である。
【図１４】代替ポート設定処理（ステップ４００６）を行った後のストレージ装置が保持するパス定義情報のテーブルの一例を示す図である。
【図１５】ストレージ装置自身による切り替え動作を示すフローチャートである。
【図１６】使用ポートから代替ポートへＩＰアドレスおよびターゲット名を再設定した後のパス定義情報を示すテーブルである。
【図１７】現在時刻が１１：１２であるときの一時テーブルを示す図である。
【図１８】代替ポート選定処理などを実行した後の一時テーブルを示す図である。
【図１９】ストレージ装置が保持するポートエラー情報のテーブルの一例を示す図である。
【図２０】代替ポート選定プログラムの実行により、通信状態の劣化に係るポート（使用ポート）を代替する代替ポートを選定し、この使用ポートの通信条件を、選定した代替ポートに引き継がせ、この使用ポートに係る通信を前記代替ポートによって継続させる一連の処理の一例を示したフローチャートである。
【図２１】現在時刻が００：０６のときの一時テーブルの一例を示す図である。
【図２２】代替ポート選定処理を詳細に示すフローチャートである。
【図２３】最適な代替ポートが１つ選定された後の一時テーブルを示す図である。
【図２４】代替ポート設定後のパス定義情報を示すテーブルの一例を示す図である。
【符号の説明】
【０１０８】
１      ストレージシステム
１００〜１５９  ホスト
２００，２５０  通信装置
２０１，３１１，４０１，１００１  処理部
２０２，３１２，４０２，１００２  記憶部
２０３，３１６，３２２，１００６  バス
２２１  パケット転送制御プログラム
３００  ストレージ装置
３１０  ストレージ制御装置
３１３  ストレージ接続装置
３１４，３１５  ネットワークコントローラ
３２０  ディスク格納装置
３２１  物理ディスク群
２１１〜２３０，３３１〜３３６，４０３，１００３  ポート
３４１  ストレージ制御プログラム
３４２  パス定義情報
３４３  ポート負荷情報
３４４  ポートエラー情報
４００  管理サーバ
４０４，１００４  入力装置
４０５，１００５  出力装置
４０６  バス
４１１，１００７  オペレーティングシステム
４１２  代替ポート選定プログラム
４１３  代替ポート選定ログ
４１４  一時テーブル
４１５  構成情報
１００８  イニシエータプログラム
３１００〜３１５９  ボリューム
【図１】
2007087266.tif 000003
【図２】
2007087266.tif 000004
【図３】
2007087266.tif 000005
【図４】
2007087266.tif 000006
【図５】
2007087266.tif 000007
【図６】
2007087266.tif 000008
【図７】
2007087266.tif 000009
【図８】
2007087266.tif 000010
【図９】
2007087266.tif 000011
【図１０】
2007087266.tif 000012
【図１１】
2007087266.tif 000013
【図１２】
2007087266.tif 000014
【図１３】
2007087266.tif 000015
【図１４】
2007087266.tif 000016
【図１５】
2007087266.tif 000017
【図１６】
2007087266.tif 000018
【図１７】
2007087266.tif 000019
【図１８】
2007087266.tif 000020
【図１９】
2007087266.tif 000021
【図２０】
2007087266.tif 000022
【図２１】
2007087266.tif 000023
【図２２】
2007087266.tif 000024
【図２３】
2007087266.tif 000025
【図２４】
2007087266.tif 000026