(57)【要約】【課題】冗長化システムの設定情報に対する要求の排他制御を簡易に行なう。【解決手段】情報処理装置１は、複数の処理部１００を有し、前記複数の処理部のうちの一の処理部１００ａは、前記情報処理装置の構成を定義する設定情報を記憶する記憶部と、外部の端末２，３から前記記憶部における前記設定情報に関連する要求を受信すると前記要求を実行する処理実行部１１と、を有する。前記複数の処理部１００のそれぞれは、外部の端末２，３における同一の要求元から前記要求を受信すると前記要求の送信元アドレス及びポート番号を同一の内部アドレス及びポート番号に付け替える変換部１８を有する。また、情報処理装置１は、前記変換部によって付け替えられた前記内部アドレス及びポート番号に基づいて前記処理実行部による前記要求の実行を許可するか否かを判定する判定部１９を有する。【選択図】図２
2018085634.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理部を有する情報処理装置であって、
前記複数の処理部のうちの一の処理部は、前記情報処理装置の構成を定義する設定情報を記憶する第１記憶部と、外部の端末から前記第１記憶部における前記設定情報に関連する要求を受信すると前記要求を実行する処理実行部と、を有し、
前記複数の処理部のそれぞれは、前記外部の端末における同一の要求元から前記要求を受信すると前記要求のアドレス及びポート番号を同一の内部アドレス及びポート番号に付け替える変換部を有し、
前記変換部によって付け替えられた前記内部アドレス及びポート番号に基づいて前記処理実行部による前記要求の実行を許可するか否かを判定する判定部を有する、情報処理装置。
【請求項２】
前記変換部によって付け替えられた前記内部アドレス及びポート番号を保存する第２記憶部を有し、
前記判定部は、
前記要求を受信すると前記第２記憶部を参照し、
前記第２記憶部に前記内部アドレス及びポート番号が保存されていない場合、前記変換部によって付け替えられた前記内部アドレス及びポート番号を前記第２記憶部に保存するとともに前記要求の実行を許可すると判定する、請求項１に記載の情報処理装置。
【請求項３】
前記判定部は、
前記第２記憶部に前記内部アドレス及びポート番号が保存されている場合、前記第２記憶部に保存されている前記内部アドレス及びポート番号と今回受信した要求について前記変換部によって付け替えられた内部アドレス及びポート番号との比較を行ない、
前記比較の結果が一致であれば前記要求の実行を許可すると判定する、請求項２に記載の情報処理装置。
【請求項４】
前記複数の処理部のそれぞれに設けられ、外部ネットワークを介して前記外部の端末に接続される外部ネットワークインタフェースと、
前記複数の処理部のそれぞれに設けられ、前記外部ネットワークインタフェースに接続された前記外部ネットワークの第１アドレス体系とは独立した第２アドレス体系で構築された内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
前記複数の処理部のそれぞれにおける前記内部ネットワークインタフェースは、前記第２アドレス体系を用いて前記複数の処理部間の通信を行なう、請求項１〜請求項３のいずれか一項に記載の情報処理装置。
【請求項５】
前記複数の処理部のそれぞれは、オペレーティングシステムを有するとともに、当該オペレーティングシステム内のプロセス間通信を行なうループバックデバイスを有し、
前記ループバックデバイスによる前記プロセス間通信のアドレス体系が、前記第２アドレス体系として用いられる、請求項４に記載の情報処理装置。
【請求項６】
前記複数の処理部のそれぞれは、送信元プロセスで生成され前記ループバックデバイスを通過するパケットを取得する取得部を有し、
前記内部ネットワークインタフェースは、前記取得部によって取得された前記パケットを、前記内部ネットワークに出力し、前記第２アドレス体系に従って送信先処理部へ送信する、請求項５に記載の情報処理装置。
【請求項７】
前記複数の処理部のそれぞれは、前記ループバックデバイスを通過する前記パケットを、前記ループバックデバイスと前記オペレーティングシステムのカーネルとの間で遮断する遮断部を有する、請求項６に記載の情報処理装置。
【請求項８】
前記内部ネットワークインタフェースは、他処理部から自処理部宛のパケットを前記第２アドレス体系に従って受信し、
前記複数の処理部のそれぞれは、前記内部ネットワークインタフェースによって受信された前記自処理部宛のパケットを、前記ループバックデバイス経由で送信先プロセスへ送り込む送込み部を有する、請求項７に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
ストレージ装置，サーバ装置などの情報処理装置は、複数の装置（例えば処理部）によって冗長化された冗長化システムとして構成される場合がある。冗長化システムにおいては、複数の装置のうちの一の装置がマスタとして機能し、複数の装置のうちのマスタ以外の一以上の装置がスレーブとして機能する。各装置がマスタとして機能するかスレーブとして機能するかは、運用中に動的に変更可能に構成される。
【０００３】
また、各装置（マスタ／スレーブ）には、外部のクライアント（端末）との間でＴＣＰ（Transmission Control Protocol）通信を行なうための外部ネットワークインタフェースが備えられる。外部ネットワークインタフェースには外部ネットワークが接続され、各装置は、外部ネットワークインタフェース及び外部ネットワークを通じてクライアントとＴＣＰ通信可能に接続される。
【０００４】
上述のような冗長化システムに接続されるクライアントは複数存在する。各クライアントは、複数の装置（マスタ／スレーブ）のいずれか一つに任意に接続される。各クライアントは、外部ネットワークインタフェースを通じて接続された装置（マスタまたはスレーブ）にログインし、冗長化システムの構成等を定義するシステム設定情報を参照／変更可能に構成される。冗長化システムにおいてシステム設定情報は、マスタにおいて一元的に管理される。なお、以下では、システム設定情報を、単に設定情報と称する場合がある。
【０００５】
このとき、ユーザは、クライアントに接続される装置がマスタであるかスレーブであるかを意識することなく、クライアントからシステム設定情報の参照／変更に係る要求を行なえることが望ましい。言い換えると、クライアントがマスタに接続されていてもスレーブに接続されていても、システム設定情報の参照／変更に係る操作について差異が生じないことが望ましい。
【０００６】
このため、システム設定情報の管理にロック機構を導入することで、二以上の装置から同時にシステム設定情報に対する参照／変更等の処理が実行されないように排他制御を行なうことが望ましい。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１９６１４０号公報
【特許文献２】特開２００６−９４１０６号公報
【特許文献３】特開２０１５−７０５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、排他制御は複雑であるため、排他制御を実現するのにコストが掛かる。例えば、排他制御では、マスタまたはスレーブは、マスタとスレーブとの間で相互に通信を行なって参照／変更等の要求を行なう権利を取得することになる。この通信は、本来優先すべきクライアントに対する入出力サービスのための帯域を圧迫し、コストが掛かる。
【０００９】
一つの側面で、本発明は、冗長化システムの設定情報に対する要求の排他制御を簡易に行なえるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本件の情報処理装置は、複数の処理部を有し、前記複数の処理部のうちの一の処理部は、前記情報処理装置の構成を定義する設定情報を記憶する第１記憶部と、外部の端末から前記第１記憶部における前記設定情報に関連する要求を受信すると前記要求を実行する処理実行部と、を有する。前記複数の処理部のそれぞれは、前記外部の端末における同一の要求元から前記設定情報に対する要求を受信すると前記要求のアドレス及びポート番号を同一の内部アドレス及びポート番号に付け替える変換部を有する。また、本件の情報処理装置は、前記変換部によって付け替えられた前記内部アドレス及びポート番号に基づいて前記処理実行部による前記要求の実行を許可するか否かを判定し、二以上の要求を同時に実行するのを抑止する判定部を有する。
【発明の効果】
【００１１】
冗長化システムの設定情報に対する要求の排他制御を簡易に行なうことができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態の冗長化システムとしてのストレージ装置（情報処理装置）のハードウェア構成の一例を示すブロック図である。
【図２】本実施形態のストレージ装置（情報処理装置）の構成及び動作の概要を説明する図である。
【図３】図１に示すストレージ制御装置（ＣＭ）の機能構成の一例を示すブロック図である。
【図４】本実施形態のフロントエンドプログラムによる外部クライアントからの受信処理動作を説明するフローチャートである。
【図５】本実施形態の設定変更プログラムによる動作を説明するフローチャートである。
【図６】本実施形態のフロントエンドプログラムによる外部クライアントへの送信処理動作を説明するフローチャートである。
【図７】ループバックデバイスによるプロセス間通信を説明する図である。
【図８】ループバックデバイスによるプロセス間通信を説明する図である。
【図９】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１０】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１１】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１２】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１３】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１４】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【図１５】本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照し、本願の開示する情報処理装置の実施形態について、詳細に説明する。ただし、以下に示す実施形態は、あくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能を含むことができる。そして、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００１４】
〔１〕本実施形態のストレージ装置のハードウェア構成
まず、図１を参照しながら、本願技術が適用される本実施形態の冗長化システムとしてのストレージ装置（情報処理装置）１のハードウェア構成の一例について説明する。図１は、そのハードウェア構成の一例を示すブロック図である。
【００１５】
本ストレージ装置１は、ドライブエンクロージャ（ＤＥ：Drive Enclosure）３０に格納された記憶装置３１を仮想化して、仮想ストレージ環境を形成する。そして、ストレージ装置１は、仮想ボリュームを、外部クライアント（端末）２，３に提供する。
【００１６】
本ストレージ装置１は、１以上（図１に示す例では２つ）の外部クライアント２，３に対して通信可能に接続されている。外部クライアント２，３とストレージ装置１とは、後述するＣＡ（Communication Adapter）１０１，１０２により接続されている。
【００１７】
外部クライアント２，３は、例えば、サーバ機能をそなえた情報処理端末であり、本ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。外部クライアント２，３は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のストレージアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書込または読出を行なう。
【００１８】
そして、本ストレージ装置１は、外部クライアント２，３からボリュームに対して行なわれる入出力要求（例えば、書込み要求や読出し要求）に応じて、このボリュームに対応する記憶装置３１に対して、データの読出（リード）や書込（ライト）等の処理を行なう。なお、外部クライアント２，３からの入出力要求のことをＩ／Ｏ要求という場合がある。
【００１９】
なお、図１に示す例においては２つの外部クライアント２，３が図示されているが、これに限定されるものではなく、ストレージ装置１に３つ以上の外部クライアントを接続してもよい。
【００２０】
また、ストレージ装置１に接続された外部クライアント２，３は、管理端末として機能してもよい。管理端末は、キーボードやマウス等の入力装置や、表示装置を備える情報処理装置であって、システム管理者等のユーザが各種情報の入力操作を行なう。例えば、ユーザは、各種設定等に係る情報を入力する。入力された情報は、ストレージ装置１に送信される。特に、本実施形態において、ユーザは、外部クライアント２，３から、管理端末としての機能を用いて、後述するシステム設定情報を参照したり変更したりする、システム設定情報に対する各種要求を行なうことが可能である。
【００２１】
本ストレージ装置１は、図１に示すように、複数（本実施形態では２つ）のＣＭ（Controller Module；ストレージ制御装置；処理部）１００ａ，１００ｂ及び１つ以上（図１に示す例では３つ）のドライブエンクロージャ３０をそなえる。
【００２２】
ドライブエンクロージャ３０は、１以上（図１に示す例では４つ）の記憶装置（物理ディスク）３１を搭載可能であり、これらの記憶装置３１の記憶領域（実ボリューム，実ストレージ）を、本ストレージ装置１に対して提供する。
【００２３】
例えば、ドライブエンクロージャ３０は、複数段のスロット（図示省略）をそなえ、これらのスロットに、記憶装置３１を挿入することにより、実ボリューム容量を随時変更することができる。また、複数の記憶装置３１を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成することができる。
【００２４】
記憶装置３１は、後述するメモリ１０６と比較すると容量の大きい、ＨＤＤ（Hard Disk Drive），ＳＳＤ（Solid State Drive）等の記憶装置であって、種々のデータを格納するものである。なお、以下では、記憶装置のことをドライブもしくはディスクという場合がある。
【００２５】
各ドライブエンクロージャ３０は、ＣＭ１００ａのデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とＣＭ１００ｂのＤＡ１０３，１０３とそれぞれ接続されている。そして、各ドライブエンクロージャ３０には、ＣＭ１００ａ，１００ｂのいずれからもアクセスして、データの書込や読出を行なうことができる。すなわち、ドライブエンクロージャ３０の各記憶装置３１に対して、ＣＭ１００ａ，１００ｂのそれぞれを接続することにより、記憶装置３１へのアクセス経路が冗長化されている。
【００２６】
つまり、コントローラエンクロージャ４０は、上述のように記憶装置３１へのアクセス経路を冗長化すべく二以上（図１に示す例では２つ）のＣＭ１００ａ，１００ｂを備える。
【００２７】
ＣＭ１００ａ，１００ｂは、ストレージ装置１内の動作を制御するコントローラ（ストレージ制御装置）であり、外部クライアント２，３から送信されるＩＯコマンドに従って、ドライブエンクロージャ３０の記憶装置３１へのデータアクセス制御等、各種制御を行なう。又、ＣＭ１００ａ，１００ｂは互いに同様の構成を有している。以下、ＣＭを示す符号としては、複数のＣＭのうち１つを特定する場合には符号１００ａ，１００ｂを用い、任意のＣＭを指すときには符号１００を用いる。また、ＣＭ１００ａをマスタＣＭまたはＣＭ＃１またはマスタシステムと、ＣＭ１００ｂをスレーブＣＭまたはＣＭ＃２またはスレーブシステムと、それぞれ記す場合がある。
【００２８】
ＣＭ１００ａ，１００ｂは二重化されており、通常は、ＣＭ１００ａ（ＣＭ＃１）がマスタとして各種制御を行なう。しかし、マスタＣＭ１００ａの故障時には、スレーブＣＭ１００ｂ（ＣＭ＃２）がプライマリとしてＣＭ１００ａの動作を引き継ぐ。
【００２９】
ＣＭ１００ａ，１００ｂは、ＣＡ１０１，１０２を介して、外部クライアント２，３に接続される。そして、ＣＭ１００ａ，１００ｂは、外部クライアント２，３から送信されるリード／ライト等のＩ／Ｏ要求を受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。また、ＣＭ１００ａ，１００ｂは、図２を参照しながら後述するようにループバックアドレスを用いたシステム（ＣＭ）間通信網１２を介して相互に通信可能に接続される。
【００３０】
各ＣＭ１００は、図１に示すように、ＣＡ１０１，１０２と複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ（Central Processing Unit）１０５，メモリ１０６，フラッシュメモリ１０７及びＩＯＣ（Input Output Controller）１０８をそなえる。ＣＡ１０１，１０２，ＤＡ１０３，ＣＰＵ１０５，メモリ１０６，フラッシュメモリ１０７，ＩＯＣ１０８は、例えばＰＣＩｅインタフェース１０４を介して相互に通信可能に接続される。
【００３１】
ＣＡ１０１，１０２は、外部クライアント２，３等から送信されたデータを受信したり、ＣＭ１００から出力するデータを外部クライアント２，３等に送信する。すなわち、ＣＡ１０１，１０２は、外部クライアント２，３等の外部装置との間でのデータの入出力を制御する。
【００３２】
ＣＡ１０１は、ＮＡＳを介して外部クライアント２，３と通信可能に接続するネットワークアダプタであり、例えば、ＬＡＮ（Local Area Network）インタフェース等である。各ＣＭ１００は、ＣＡ１０１により図示しない通信回線を介して外部クライアント２，３等とＮＡＳにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＣＡ１０１，１０１が備えられている。
【００３３】
ＣＡ１０２は、ＳＡＮを介してホスト装置２と通信可能に接続するネットワークアダプタであり、例えば、ｉＳＣＳＩ（Internet Small Computer System Interface）インタフェースやＦＣ（Fibre Channel）インタフェースである。各ＣＭ１００は、ＣＡ１０２により図示しない通信回線を介して外部クライアント２，３等とＳＡＮにより接続され、Ｉ／Ｏ要求の受信やデータの送受信等を行なう。図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに１つのＣＡ１０２がそなえられている。
【００３４】
ＤＡ１０３は、ドライブエンクロージャ３０や記憶装置３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３は、ドライブエンクロージャ３０の記憶装置３１を接続される。
【００３５】
各ＣＭ１００は、外部クライアント２，３から受信したＩ／Ｏ要求に基づき、ＤＡ１０３を介して記憶装置３１に対するアクセス制御を行ない、記憶装置３１に対するデータの書込や読出を行なう。また、図１に示す例においては、ＣＭ１００ａ，１００ｂのそれぞれに２つのＤＡ１０３，１０３がそなえられている。そして、ＣＭ１００ａ，１００ｂのそれぞれにおいて、各ＤＡ１０３にドライブエンクロージャ３０が接続されている。
【００３６】
これにより、ドライブエンクロージャ３０の記憶装置３１には、ＣＭ１００ａ，１００ｂのいずれからもデータの書込や読出を行なうことができる。
【００３７】
フラッシュメモリ１０７は、ＣＰＵ１０５が実行するプログラムや種々のデータ等を格納する記憶装置である。例えば、プログラムとしては、図２に示す設定変更プログラムＰ１１やフロントエンドプログラムＰ１２などが挙げられ、種々のデータとしては、システム設定情報（後述）や、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報（後述）などが挙げられる。なお、これらの情報は、メモリ１０６に保存されてもよい。また、メモリ１０６及びフラッシュメモリ１０７は、それぞれ、第１記憶部または第２記憶部の一例である。
【００３８】
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置である。例えば、メモリ１０６のキャッシュ領域には、外部クライアント２，３から受信したデータや、外部クライアント２，３に対して送信するデータが一時的に格納される。メモリ１０６のアプリケーション用メモリ領域には、ＣＰＵ１０５がアプリケーションプログラムを実行する際に、データやプログラムが一時的に格納される。アプリケーションプログラムは、例えば、本実施形態の排他制御機能を実現すべくＣＰＵ１０５が実行する設定変更プログラムＰ１１やフロントエンドプログラムＰ１２（図２参照）などであり、これらのプログラムＰ１１，Ｐ１２は、メモリ１０６あるいはフラッシュメモリ１０７に保存される。なお、メモリ１０６は、前述した記憶装置（ドライブ）３１と比較するとアクセス速度は高速であるが容量の小さい、ＲＡＭ（Random Access Memory）等である。
【００３９】
ＩＯＣ１０８は、各ＣＭ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１０５を介することなく転送させるＤＭＡ（Direct Memory Access）転送を実現する。
【００４０】
ＣＰＵ１０５は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１０５は、メモリ１０６，フラッシュメモリ１０７等に格納されたＯＳ（Operating System）やプログラムを実行することにより、種々の機能を実現する。
【００４１】
〔２〕本実施形態のストレージ装置の構成及び動作の概要
次に、図２を参照しながら、本実施形態のストレージ装置（情報処理装置）１の構成及び動作の概要(1)〜(5)について説明する。図２は、その構成及び動作の概要を説明する図である。
【００４２】
なお、本実施形態は、例えば、自系と他系との系間通信にＴＣＰインタフェースを採用した冗長化されたストレージ装置１において、装置構成，システム構成等を定義する設定情報を保持して管理する系をマスタとし、それ以外の他系をスレーブとする構成を前提とする。つまり、マスタＣＭ１００ａが設定情報を一元的に管理する。このとき、自系がマスタＣＭ１００ａであり他系がスレーブＣＭ１００ｂである。また、系間通信は、システム間通信あるいはＣＭ間通信とも呼ばれる。
【００４３】
また、図２に示すストレージ装置１において、マスタＣＭ１００ａには外部ネットワーク２０を介して外部クライアント２が通信可能に接続されるとともに、スレーブＣＭ１００ｂには外部ネットワーク２０を介して外部クライアント３が通信可能に接続される。
【００４４】
ストレージ装置１の各ＣＭ１００は、外部ネットワーク２０に接続可能である。ストレージ装置１には、二つのＣＭ１００とともに、後述する外部ネットワークインタフェース２０ａと内部ネットワークインタフェース１２ａとシステム間通信網１２とプロセス間通信網１２ｂとが含まれる。
【００４５】
外部ネットワークインタフェース２０ａは、各ＣＭ１００に設けられ、外部ネットワーク２０に接続される。
【００４６】
内部ネットワークインタフェース１２ａは、各ＣＭ１００に設けられ、ＣＭ１００ａ，１００ｂ間を通信可能に接続するシステム間通信網（内部ネットワーク）１２に接続される。システム間通信網１２は、図７〜図１５を参照しながら後述するごとく、外部ネットワークインタフェース２０ａに接続された外部ネットワーク２０の第１アドレス体系とは独立した第２アドレス体系で構築される。各ＣＭ１００の内部ネットワークインタフェース１２ａは、第２アドレス体系（後述するループバックアドレス）を用いたシステム間通信網１２経由でＣＭ１００ａ，１００ｂ間の通信を行なう。
【００４７】
プロセス間通信網１２ｂは、図２に示すストレージ装置１では、マスタＣＭ１００ａにのみ備えられるが、スレーブＣＭ１００ｂに備えられてもよい。プロセス間通信網１２ｂは、図７を参照しながら後述するごとく、ループバックデバイス１４を用いて同一ＯＳ１０５Ａ上の二つのプロセス（アプリケーション）間で連携する場合に用いられる。図２に示すストレージ装置１では、設定変更プログラム（第一層）Ｐ１１によるプロセス＃１とフロントエンドプログラム（第二層）Ｐ１２によるプロセス＃２との間で通信を行なう場合にプロセス間通信網１２ｂが用いられる。プロセス＃１は、後述する処理実行部（参照／変更部）１１及び判定部１９としての機能を果たすための処理に相当する。プロセス＃２，＃３は、後述するＮＡＰＴ（Network Address Port Translation）機構１８及び判定部１９としての機能を果たすための処理に相当する。
【００４８】
なお、図２に示すマスタＣＭ１００ａでは、ＣＰＵ１０５上で動作するＯＳ１０５Ａ上において、外部ネットワークインタフェース２０ａと内部ネットワークインタフェース１２ａとプロセス間通信網１２ｂとが動作する。そして、ＯＳ１０５Ａ上において、設定変更プログラムＰ１１（プロセス＃１）が実行されることで、後述する処理実行部１１及び判定部１９としての機能が実現される。ＯＳ１０５Ａ上において、フロントエンドプログラムＰ１２（プロセス＃２）が実行されることで、後述するＮＡＰＴ機構１８及び判定部１９としての機能が実現される。
【００４９】
また、図２に示すスレーブＣＭ１００ｂでは、ＣＰＵ１０５上で動作するＯＳ１０５Ａ上において、外部ネットワークインタフェース２０ａと内部ネットワークインタフェース１２ａとが動作する。そして、ＯＳ１０５Ａ上において、フロントエンドプログラムＰ１２（プロセス＃３）が実行されることで、後述するＮＡＰＴ機構１８及び判定部１９としての機能が実現される。なお、実際には、各ＣＭ１００がマスタとして機能するかスレーブとして機能するかは、運用中に動的に変更可能に構成されることを考慮し、各ＣＭ１００には、設定変更プログラムＰ１１とフロントエンドプログラムＰ１２との両方が実装される。
【００５０】
ここで、外部ネットワーク２０は、ストレージ装置１を使用するユーザが管理するイーサネット（登録商標）である。ストレージ装置１の内部ネットワーク１２は、ストレージ装置１内部の二つのＣＭ１００ａ，１００ｂ間を結ぶフレームリレー通信回線である。ＣＭ１００ａ，１００ｂどうしは、内部ネットワーク１２を通して連携する。
【００５１】
以下、図２を参照しながら、本実施形態のストレージ装置１の構成及び動作の概要(1)〜(5)について説明する。
【００５２】
(1) 図２に示すストレージ装置１では、装置構成，システム構成等を定義する設定情報の管理機能が二層化される。第一層は、設定情報の参照／変更等の処理を実行する設定変更プログラムＰ１１に相当し、プロセス＃１において、後述する処理実行部１１及び判定部１９としての機能を実現する。また、第二層は、外部クライアント２，３からのＴＣＰ接続要求を待ち受ける（外部クライアント２，３からの受信待ちを行なう）とともに、外部クライアント２，３への送信を行なうフロントエンドプログラムＰ１２に相当する。第二層は、ＴＣＰ接続要求を受け付けると、受信パケットについて、当該要求のアドレス及びポート番号を内部アドレス及びポート番号に付け替える。そして、第二層は、内部アドレス及びポート番号に付け替えられた当該要求（受信パケット）を、システム間通信網１２もしくはプロセス間通信網１２ｂを通じて設定変更プログラムＰ１１（プロセス＃１）へ受け渡す。なお、内部アドレス及びポート番号への付け替えは、ＮＡＰＴ機構１８によって実行される。
【００５３】
(2) 上述したように、本実施形態において、設定変更プログラムＰ１１は、マスタＣＭ１００ａのみに存在し、後述する処理実行部１１及び判定部１９としての機能を果たす。設定変更プログラムＰ１１（プロセス＃１）は、フロントエンドプログラムＰ１２（プロセス＃２または＃３）が内部アドレス及びポート番号に付け替えた、外部クライアント２，３からのＴＣＰ接続要求を待つ。設定変更プログラムＰ１１は、二以上のＴＣＰ接続要求を同時に受け付けないように機能する、換言すると、同時に一つのＴＣＰ接続要求のみを受け付けるように機能する。さらに換言すると、設定変更プログラムＰ１１は、処理実行部１１によって処理を実行中の一のＴＣＰ接続が存在する間、新たなＴＣＰ接続を受け付けないことで、複雑な排他制御を省くことが可能になる。つまり、冗長化システム１の設定情報に対する要求の排他制御を簡易に行なうことができる。
【００５４】
(3) フロントエンドプログラムＰ１２は、ＮＡＰＴ機構１８を有する。ＮＡＰＴ機構１８は、各ＣＭ１００に存在する。ＮＡＰＴ機構１８は、外部クライアント２，３からのＴＣＰ接続要求のアドレス及びポート番号を、内部アドレス及びポート番号に付け替えてから、当該要求（受信パケット）を、システム間通信網１２もしくはプロセス間通信網１２ｂを通じて設定変更プログラムＰ１１へ受け渡す。ここで、外部クライアント２，３からのＴＣＰ接続要求のアドレス及びポート番号は、上述した第１アドレス体系に基づくものであり、内部アドレス及びポート番号は、上述した第２アドレス体系（ループバックアドレス体系）に基づくものである。一般的なＮＡＰＴ機構１８はループバックアドレスに変換することはできないが、本実施形態におけるＮＡＰＴ機構１８は、外部アドレス等をループバックアドレスの範囲内のアドレスに変換することが可能に構成されている。ＮＡＰＴ機構１８による変換は、同時に一つのＴＣＰ接続要求に応じた接続に対してのみ行なわれる。このように、本実施形態のフロントエンドプログラムＰ１２は、処理実行部１１によって処理を実行中の一のＴＣＰ接続が存在する間、他のＴＣＰ接続要求を第一層の設定変更プログラムＰ１１に渡さないように構成される。これにより、フロントエンドプログラムＰ１２は、処理実行部１１によって処理を実行中の一のＴＣＰ接続が存在する間、新たなＴＣＰ接続を受け付けないことで、複雑な排他制御を省くことが可能になる。つまり、冗長化システム１の設定情報に対する要求の排他制御を簡易に行なうことができる。また、多数のＴＣＰ接続要求がマスタＣＭ１００ａへ集中することによる性能劣化等の発生を抑止することができる。
【００５５】
(4) システム間通信に用いる第２アドレス体系としては、ループバックアドレスが使用される。図７及び図８を参照しながら後述するように、本来、ループバックアドレスは、一つのＯＳ１０５Ａ内で閉じて使用されるアドレスである。本実施形態では、システム間通信網１２について、ある範囲のループバックアドレスを割り当てることで、ＣＭ１００ａ，１００ｂ間の通信が可能になる。これにより、外部クライアント２，３とＣＭ１００との通信に用いるアドレスと、ＣＭ１００ａ，１００ｂとの間の通信に用いるアドレスとの衝突回避処理が不要となる。
【００５６】
(5) 上記項目(2)，(3)で説明したようにＴＣＰ接続要求を受け付けない場合、各層（後述する判定部１９）は、ＴＣＰ接続要求を発行した外部クライアント２，３に対し、リセット信号（ＴＣＰ＿ＲＳＴ）を返信する。これにより、外部クライアント２，３は、システムダウンで無応答の場合とＴＣＰ接続要求の排他制御とを区別することが可能である。
【００５７】
ここで、ＴＣＰの多重接続が発生した場合とシステム１がダウンしている場合とのクライアント２，３に対する挙動について、より詳細に説明する。第一層の設定変更プログラムＰ１１ではlistenのキュー数を０に設定していることから、第一層で多重接続が検出される場合、クライアント２，３に対するリセット応答が行なわれる。第二層のフロントエンドプログラムＰ１２でＴＣＰの多重接続が検出される場合、プログラムＰ１２内でリセット応答が行なわれるようになっているため、クライアント２，３に対するリセット応答が行なわれる。いずれにしても、リセット応答が行なわれることから、クライアント２または３の接続を直ちに切断することができる。一方、システム１がダウンしている場合、何も応答を返せないため、クライアント２，３は接続タイムアウトとなる。このように、クライアント２，３側は多重接続かシステムダウンかの判別が可能である。
【００５８】
このように、本実施形態のストレージ装置１によれば、従来のごとくＴＣＰ接続要求に対する複雑な排他制御が不要になり、必要最低限の通信（コスト）だけで、システム設定情報に対する参照／変更等の機能を実現することができる。
【００５９】
ついで、本実施形態におけるシステム（ＣＭ）間通信網１２及びプロセス（アプリケーション）間通信網１２ｂについて、詳細に説明する。
【００６０】
本実施形態のストレージ装置１においては、内部ネットワークとしてのシステム（ＣＭ）間通信網１２に、外部ネットワーク２０の第１アドレス体系（192.168.1.0/24）とは独立した第２アドレス体系が構築される。このため、本実施形態では、ループバックデバイス１４によるプロセス（アプリケーション）間通信のアドレス体系が、前記第２アドレス体系として用いられる。
【００６１】
ループバックデバイス１４を流れるパケットは、ループバックデバイス１４の特性上、当該パケットを使用するＯＳ１０５Ａの外へ出ない。当該パケットは、例えば図７に示すように、１つのＯＳ１０５Ａ内において２つのプロセス＃１，＃２間で連携するために用いられる（図７の矢印Ａ１，Ａ２参照）。図７では、マスタＣＭ１００ａ上でプロセス間通信を行なう例が示され、プロセス＃１，＃２にそれぞれアドレス127.1.0.1, 127.1.0.2が割り振られている。図２に示すプロセス間通信網１２ｂでは、図７に示す方式で通信が行なわれる。また、ループバックデバイス１４宛のパケットは、図８に示すように、送信先がいなくても送信することが可能である（図８の矢印Ａ３，Ａ４参照）。つまり、送信先がいなくてもエラーを発生させることなくパケットを送信することが可能である。ただし、送信先のいないパケットは、ループバックデバイス１４に送信された後、破棄される。なお、図７及び図８は、ループバックデバイス１４によるプロセス間通信を説明する図である。
【００６２】
このようなループバックデバイス１４によるプロセス間通信のアドレス体系は、127.0.0.0/8であり、ホストアドレスに、約1677万個、確保することができる。そこで、本実施形態では、ストレージ装置１を構成するＣＭ１００ａ，１００ｂの内部で、ループバックデバイス１４上のＩＰ（Internet Protocol）アドレスが衝突しないように割り振られる。
【００６３】
これにより、内部ネットワークインタフェース１２ａは、外部ネットワーク２０の第１アドレス体系とは独立した第２アドレス体系である、ループバックデバイス１４によるプロセス間通信のアドレス体系を用いてＣＭ１００ａ，１００ｂ間の通信を行なう。ただし、上述したように、ループバックデバイス１４を流れるパケットは、ループバックデバイス１４の特性上、当該パケットを使用するＯＳ１０５Ａの外へ出ない。そこで、本実施形態では、図３を参照しながら後述する、各ＣＰＵ１０５における機能構成を用いることで、図９〜図１５を参照しながら後述するように、ループバックデバイス１４を利用したＩＰネットワークが構築される。
【００６４】
ＣＭ１００間を通信可能に接続する内部ネットワーク１２としては、例えば、ＩＰ通信でない汎用通信回線が用いられる。また、汎用通信回線としては、例えば、フレームリレー通信回線（シリアル回線，ＩＰを使用しないイーサネットなど）を用いることができる。図１に示す例では、内部ネットワーク１２としてフレームリレー通信回線が用いられている。これに伴い、各ＣＭ１００における内部ネットワークインタフェース１２ａには、フレームリレー送信部及びフレームリレー受信部としての機能が備えられる。ＣＭ１００内部でのリレーなどを利用することで、任意のＣＭ１００間でフレームリレー通信可能なネットワーク環境が構築される。
【００６５】
なお、汎用通信回線に代え複数のＣＭ１００間の共有メモリ（図示略）を内部ネットワーク１２として備え、共有メモリを介してＣＭ１１間で通信を行なってもよい。
【００６６】
〔３〕本実施形態のストレージ制御装置（ＣＭ）の機能構成
次に、図３を参照しながら、本実施形態のストレージ制御装置（ＣＭ）１００の機能構成について説明する。なお、図３は、図１に示すＣＭ１００（処理部）の機能構成の一例を示すブロック図である。
【００６７】
本実施形態のＣＭ１００において、ＣＰＵ１０５は、上述した設定変更プログラムＰ１１及びフロントエンドプログラムＰ１２を実行することで、処理実行部１１，ＮＡＰＴ機構１８及び判定部１９として機能する。なお、処理実行部１１は、マスタＣＭ１００ａでのみ機能し、スレーブＣＭ１００ｂでは機能しない。また、ＣＰＵ１０５は、図示しないアプリケーションプログラムを実行することで、外部ネットワークインタフェース２０ａ，内部ネットワークインタフェース１２ａ，取得部１５，送込み部１６及び遮断部１７として機能する。
【００６８】
なお、設定変更プログラムＰ１１，フロントエンドプログラムＰ１２や上記図示しないアプリケーションプログラムは、コンピュータ読取可能な記録媒体であって可搬型の非一時的な記録媒体に記録された形態で提供される。当該記録媒体としては、磁気ディスク，光ディスク，光磁気ディスクなどが挙げられる。また、光ディスクとしては、ＣＤ（Compact Disk），ＤＶＤ（Digital Versatile Disk），ブルーレイディスクなどが挙げられる。ＣＤは、ＣＤ−ＲＯＭ（Read Only Memory），ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを含む。ＤＶＤは、ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ(High Definition) ＤＶＤなどを含む。
【００６９】
このとき、ＣＰＵ１０５は、上述のごとき記録媒体から各種プログラムＰ１１，Ｐ１２等を読み取って内部記憶装置（例えばメモリ１０６やフラッシュメモリ１０７）または外付けの記憶装置に格納して用いる。なお、ＣＰＵ１０５は、各種プログラムＰ１１，Ｐ１２等を、ネットワークを介して受信し内部記憶装置または外付けの記憶装置に格納して用いてもよい。
【００７０】
処理実行部（参照／変更部）１１は、マスタＣＭ１００ａで機能し、外部クライアント２，３から、ストレージ装置（冗長化システム）１の構成等を定義するシステム設定情報に関連する要求を受信すると、当該要求に応じて、設定情報に対する参照処理や変更処理などの各種処理を実行する。
【００７１】
変換部（ＮＡＰＴ機構）１８は、各ＣＭ１００で機能し、外部クライアント２，３からシステム設定情報に対する参照／変更等の要求（ＴＣＰアクセス）を受信すると当該要求のアドレス及びポート番号（第１アドレス体系）を内部アドレス及びポート番号（第２アドレス体系）に付け替える。変換部１８は、図４のステップＳ１６，Ｓ２０及び図６のステップＳ４６で用いられる。変換部１８によって付け替えられた内部アドレス及びポート番号は、メモリ１０６（もしくはフラッシュメモリ１０７）に上書き保存される。このとき、変換部１８は、外部クライアント２，３における同一の要求元から前記要求を受信すると、前記要求のアドレス及びポート番号を同一の内部アドレス及びポート番号に付け替える。また、変換部１８は、外部クライアント２，３における異なる要求元から前記要求を受信すると、前記要求のアドレス及びポート番号を、要求元毎に異なる内部アドレス及びポート番号に付け替える。
【００７２】
判定部１９は、各ＣＭ１００で機能し、ＮＡＰＴ機構１８によって付け替えられた内部アドレス及びポート番号に基づいて処理実行部１１による要求の実行を許可するか否かを判定する。これにより、判定部１９は、二以上の要求を同時に実行するのを抑止する。
【００７３】
判定部１９は、マスタＣＭ１００ａのみに備えられてもよいし、各ＣＭ１００に備えられてもよい。本実施形態では、二つのＣＭ１００ａ，１００ｂの両方に備えられている。
【００７４】
判定部１９は、外部クライアント２，３からの要求を受信するとメモリ１０６を参照する。そして、判定部１９は、メモリ１０６に内部アドレス及びポート番号が保存されていない場合、変換部１８によって付け替えられた内部アドレス及びポート番号をメモリ１０６に保存するとともに当該要求の実行を許可すると判定する。
【００７５】
一方、判定部１９は、メモリ１０６に内部アドレス及びポート番号が保存されている場合、記憶部１０６に保存されている内部アドレス及びポート番号と今回受信した要求について変換部１８によって付け替えられた内部アドレス及びポート番号との比較を行なう。
【００７６】
前記比較の結果が一致であれば、判定部１９は、前記要求の実行を許可すると判定する一方、前記比較の結果が不一致であれば、判定部１９は、前記要求の実行を許可しないと判定し外部クライアント２，３に対しリセット信号を返信する。
【００７７】
なお、判定部１９の具体的な機能については、図４〜図６を参照しながら後述する。
【００７８】
ところで、外部ネットワークインタフェース２０ａは、各ＣＭ１００において、外部ネットワーク（イーサネット）２０の第１アドレス体系（192.168.1.0/24）で外部ネットワーク２０に接続され外部クライアント２，３との通信を行なう。
【００７９】
内部ネットワークインタフェース１２ａは、上述した通り、各ＣＭ１００において、ループバックデバイス１４によるプロセス間通信のアドレス体系（127.1.0.1/5）でＣＭ１００間の通信を行なう。
【００８０】
また、内部ネットワークインタフェース１２ａは、自ＣＭ宛のパケットを選択して送込み部１６（後述）に受け渡す一方、自ＣＭ宛（自処理部）のパケット以外のパケットを他ＣＭ（他処理部）に転送する機能を有している。
【００８１】
取得部１５は、ＯＳ１０５Ａにおいて、送信元プロセス（図９〜図１３等のプロセス＃１参照）で生成されループバックデバイス１４を通過するパケットＰ１（図９〜図１３等参照）を取得する。取得部１５としての機能は、ＯＳ１０５Ａに元々備えられるキャプチャ（capture）機能を用いて実現することができる。キャプチャ機能は、ネットワークの状態を監視すべくパケットをキャプチャするもので、取得部１５は、キャプチャ機能を用いてループバックデバイス１４を通過するパケットＰ１を取得する。内部ネットワークインタフェース１２ａは、取得部１５によって取得されたパケットＰ１を、内部ネットワーク１２に出力し、ループバックデバイス１４によるプロセス間通信のアドレス体系に従って送信先ＣＭ（送信先処理部）へ送信する。
【００８２】
また、取得部１５は、送信先プロセス（図１１，図１４，図１５のプロセス＃２参照）で生成されループバックデバイス１４を通過する、他ＣＭ１００の送信元プロセス（上記プロセス＃１参照）への応答パケットＰ２（図１４，図１５参照）を取得する。取得部１５は、上記キャプチャ機能を用いてループバックデバイス１４を通過する応答パケットＰ２を取得する。内部ネットワークインタフェース１２ａは、取得部１５によって取得された応答パケットＰ２を、内部ネットワーク１２に出力し、ループバックデバイス１４によるプロセス間通信のアドレス体系に従って他ＣＭ１００の送信元プロセスへ送信する。
【００８３】
送込み部１６は、内部ネットワークインタフェース１２ａが、他ＣＭから自ＣＭ宛のパケットをループバックデバイス１４によるプロセス間通信のアドレス体系に従って受信すると起動される。送込み部１６は、起動されると、内部ネットワークインタフェース１２ａによって受信された自ＣＭ宛のパケット（Ｐ１またはＰ２）を、ループバックデバイス１４経由で送信先プロセス（プロセス＃２または＃１）へ送り込む。送込み部１６としての機能は、ＯＳ１０５Ａに元々備えられるセンド（send）機能を用いて実現することができる。
【００８４】
遮断部（firewall）１７は、ループバックデバイス１４を通過するパケットＰ１を、ループバックデバイス１４とＯＳ１０５Ａのカーネル１３との間で遮断する。また、遮断部１７は、ループバックデバイス１４を通過する応答パケットＰ２を、ループバックデバイス１４とＯＳ１０５Ａのカーネル１３との間で遮断する。なお、遮断部１７による遮断機能については、図１２〜図１５を参照しながら後述する。カーネル１３は、アプリケーションソフトウェアや周辺機器の監視、ディスクやメモリなどの資源の管理、割りこみ処理、プロセス間通信など、ＯＳとしての基本機能を提供するソフトウェアである。
【００８５】
変換部（ＮＡＰＴ機構）１８は、外部ネットワーク２０に接続されたＣＭ１００において、外部ネットワーク２０の第１アドレス体系と内部ネットワーク１２の第２アドレス体系との間のアドレス変換を行なう。変換部１８によって、ストレージ装置１内部の各ＣＭ１００は、外部ネットワーク２０に接続される外部機器（例えば外部クライアント２，３）との通信を行なうことが可能になっている。
【００８６】
〔４〕本実施形態のストレージ制御装置（ＣＭ）の動作
〔４−１〕本実施形態のフロントエンドプログラムによる受信処理動作
次に、図４に示すフローチャート（ステップＳ１１〜Ｓ２３）に従って、本実施形態のフロントエンドプログラムＰ１２による外部クライアント２，３からの受信処理動作について説明する。
【００８７】
図４に示すように、フロントエンドプログラムＰ１２（判定部１９）は、外部クライアント２，３からパケットを受信するのを待機する（ステップＳ１１）。外部クライアント２，３からパケットを受信すると、判定部１９は、受信したパケットがＴＣＰであり宛先ポート番号が設定変更プログラムＰ１１のポート番号であるか否かを判定する（ステップＳ１２）。
【００８８】
宛先ポート番号が設定変更プログラムＰ１１のポート番号でない場合（ステップＳ１２のＮＯルート）、フロントエンドプログラムＰ１２は、受信したパケットは設定変更処理以外の処理のためのものであると判断する。このため、フロントエンドプログラムＰ１２は、受信したパケットを、当該パケットに対応する処理へ送り（ステップＳ１３）、ステップＳ１１の処理に戻る。
【００８９】
宛先ポート番号が設定変更プログラムＰ１１のポート番号である場合（ステップＳ１２のＹＥＳルート）、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）を参照し、処理実行中のＴＣＰ接続が存在するか否かを判定する（ステップＳ１４）。つまり、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）に設定される「処理実行中のＴＣＰ接続」が有るか無いかを示す情報が「有り」であるか「無し」であるかを判定する。処理実行中のＴＣＰ接続が存在しない場合（ステップＳ１４のＮＯルート）、判定部１９は、受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）であるか否かを判定する（ステップＳ１５）。
【００９０】
受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）でない場合（ステップＳ１５のＮＯルート）、フロントエンドプログラムＰ１２は、ステップＳ１１の処理に戻る。
【００９１】
受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）である場合（ステップＳ１５のＹＥＳルート）、フロントエンドプログラムＰ１２（ＮＡＰＴ機構１８）は、受信したパケットについて、外部の送信元ポート番号をループバックでの送信元ポート番号に付け替える（ステップＳ１６）。ここで、外部の送信元ポート番号は、上述した第１アドレス体系に基づく送信元アドレス及びポート番号に相当し、ループバックでの送信元ポート番号は、上述した第２アドレス体系に基づく内部アドレス及びポート番号に相当する。
【００９２】
そして、フロントエンドプログラムＰ１２は、メモリ１０６（もしくはフラッシュメモリ１０７）において、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報を「有り」に設定する。さらに、フロントエンドプログラムＰ１２は、ステップＳ１６で付け替えた内部アドレス及びポート番号をメモリ１０６（もしくはフラッシュメモリ１０７）に上書き保存する（ステップＳ１７）。この後、フロントエンドプログラムＰ１２は、後述するステップＳ２０の処理へ移行する。
【００９３】
一方、処理実行中のＴＣＰ接続が存在する場合（ステップＳ１４のＹＥＳルート）、判定部１９は、処理実行中のＴＣＰ接続と今回受信したパケットとは同じＩＰアドレス／ポート番号であるか否かを判定する（ステップＳ１８）。つまり、判定部１９は、メモリ１０６に保存されている内部アドレス及びポート番号と、今回受信したパケット（要求）についてＮＡＰＴ機構１８によって付け替えられた内部アドレス及びポート番号との比較を行なう。
【００９４】
同じＩＰアドレス／ポート番号でない場合つまり比較の結果が不一致である場合（ステップＳ１８のＮＯルート）、判定部１９は、受信したパケット前記要求の実行を許可しないと判定する。そして、判定部１９は、受信したパケットを第一層（設定変更プログラムＰ１１）へ転送することなく、当該パケットの送信元である外部クライアント２または３に対しリセット信号（ＴＣＰ＿ＲＳＴ）を返信する（ステップＳ１９）。この後、フロントエンドプログラムＰ１２は、ステップＳ１１の処理に戻る。
【００９５】
同じＩＰアドレス／ポート番号である場合つまり比較の結果が一致である場合（ステップＳ１８のＹＥＳルート）、判定部１９は、受信したパケット前記要求の実行を許可する。そして、ＮＡＰＴ機構１８は、受信したパケットのＩＰヘッダをループバックのＩＰヘッダに書き換える（ステップＳ２０）。ここで、受信したパケットのＩＰヘッダは、上述した第１アドレス体系に基づく送信元アドレス及びポート番号に相当し、ループバックのＩＰヘッダは、上述した第２アドレス体系に基づく内部アドレス及びポート番号に相当する。
【００９６】
ステップＳ２０で付与するループバックアドレスは、第二層（フロントエンドプログラムＰ１２）から第一層（設定変更プログラムＰ１１）へパケットを届けるためのアドレスである。フロントエンドプログラムＰ１２がスレーブＣＭ１００ｂに存在する場合、スレーブＣＭ１００ｂ（プロセス＃３）からＣＭ間通信網１２経由でマスタＣＭ１００ａ（プロセス＃１）へパケットを送信しうるループバックアドレスが選択される。一方、フロントエンドプログラムＰ１２がマスタＣＭ１００ａに存在する場合、フロントエンドプログラムＰ１２（プロセス＃２）からプロセス間通信網１２ｂ経由で設定変更プログラムＰ１１（プロセス＃１）へパケットを送信しうるループバックアドレスを選択する。
【００９７】
そして、フロントエンドプログラムＰ１２は、ループバックのＩＰヘッダに書き換えたパケットを、ループバックデバイス１４に流し、ＣＭ間通信網１２またはプロセス間通信網１２ｂ経由で設定変更プログラムＰ１１へ送信する（ステップＳ２１）。
【００９８】
ついで、フロントエンドプログラムＰ１２は、パケットがＴＣＰ接続の終了を示しているか否かを判定する（ステップＳ２２）。パケットがＴＣＰ接続の終了を示していない場合（ステップＳ２２のＮＯルート）、フロントエンドプログラムＰ１２は、ステップＳ１１の処理に戻る。パケットがＴＣＰ接続の終了を示している場合（ステップＳ２２のＹＥＳルート）、フロントエンドプログラムＰ１２は、メモリ１０６（もしくはフラッシュメモリ１０７）において、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報を「無し」に設定する（ステップＳ２３）。この後、フロントエンドプログラムＰ１２は、ステップＳ１１の処理に戻る。
【００９９】
〔４−２〕本実施形態の設定変更プログラムの動作
次に、図５に示すフローチャート（ステップＳ３１〜Ｓ４０）に従って、本実施形態の設定変更プログラムＰ１１による動作について説明する。
【０１００】
図５に示すように、設定変更プログラムＰ１１（処理実行部１１）は、ループバックデバイス１４（ＣＭ間通信網１２またはプロセス間通信網１２ｂ）から、図４に示す受信処理済みのパケットを受信するのを待機する（ステップＳ３１）。ループバックデバイス１４からパケットを受信すると、設定変更プログラムＰ１１（判定部１９）は、受信したパケットがＴＣＰであり宛先ポート番号が設定変更プログラムＰ１１のポート番号であるか否かを判定する（ステップＳ３２）。
【０１０１】
宛先ポート番号が設定変更プログラムＰ１１のポート番号でない場合（ステップＳ３２のＮＯルート）、当該パケットの送信元である外部クライアント２または３に対しリセット信号（ＴＣＰ＿ＲＳＴ）を返信する（ステップＳ３３）。この後、設定変更プログラムＰ１１は、ステップＳ３１の処理に戻る。
【０１０２】
宛先ポート番号が設定変更プログラムＰ１１のポート番号である場合（ステップＳ３２のＹＥＳルート）、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）を参照し、処理実行中のＴＣＰ接続が存在するか否かを判定する（ステップＳ３４）。つまり、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）に設定される「処理実行中のＴＣＰ接続」が有るか無いかを示す情報が「有り」であるか「無し」であるかを判定する。処理実行中のＴＣＰ接続が存在しない場合（ステップＳ３４のＮＯルート）、判定部１９は、受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）であるか否かを判定する（ステップＳ３５）。
【０１０３】
受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）でない場合（ステップＳ３５のＮＯルート）、設定変更プログラムＰ１１は、ステップＳ３１の処理に戻る。
【０１０４】
受信したパケットがＳＹＮ（ＴＣＰ接続開始指示）である場合（ステップＳ３５のＹＥＳルート）、設定変更プログラムＰ１１は、メモリ１０６（もしくはフラッシュメモリ１０７）において、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報を「有り」に設定する。さらに、設定変更プログラムＰ１１は、受信したパケットについての内部アドレス及びポート番号をメモリ１０６（もしくはフラッシュメモリ１０７）に上書き保存する（ステップＳ３６）。この後、設定変更プログラムＰ１１は、後述するステップＳ３８の処理へ移行する。
【０１０５】
一方、処理実行中のＴＣＰ接続が存在する場合（ステップＳ３４のＹＥＳルート）、判定部１９は、処理実行中のＴＣＰ接続と今回受信したパケットとは同じＩＰアドレス／ポート番号であるか否かを判定する（ステップＳ３７）。つまり、判定部１９は、メモリ１０６に保存されている内部アドレス及びポート番号と、今回受信したパケット（要求）についてＮＡＰＴ機構１８によって付け替えられた内部アドレス及びポート番号との比較を行なう。
【０１０６】
同じＩＰアドレス／ポート番号でない場合つまり比較の結果が不一致である場合（ステップＳ３７のＮＯルート）、判定部１９は、受信したパケット前記要求の実行を許可しないと判定する。そして、判定部１９は、受信したパケットに応じた処理を行なうことなく、当該パケットの送信元である外部クライアント２または３に対しリセット信号（ＴＣＰ＿ＲＳＴ）を返信する（ステップＳ３３）。この後、設定変更プログラムＰ１１は、ステップＳ３１の処理に戻る。
【０１０７】
同じＩＰアドレス／ポート番号である場合つまり比較の結果が一致である場合（ステップＳ３７のＹＥＳルート）、判定部１９は、受信したパケット前記要求の実行を許可する。そして、設定変更プログラムＰ１１（処理実行部１１）は、受信したパケットに応じた処理、例えばシステム設定情報に対する参照／変更等の処理を行なう。このとき、ＴＣＰのパケット管理は、ＯＳ１０５Ａによって実行される。また、パケット内データの処理は、設定変更プログラムＰ１１（処理実行部１１）によって実行される（ステップＳ３８）。
【０１０８】
そして、設定変更プログラムＰ１１は、パケットがＴＣＰ接続の終了を示しているか否かを判定する（ステップＳ３９）。パケットがＴＣＰ接続の終了を示していない場合（ステップＳ３９のＮＯルート）、設定変更プログラムＰ１１は、ステップＳ３１の処理に戻る。パケットがＴＣＰ接続の終了を示している場合（ステップＳ３９のＹＥＳルート）、設定変更プログラムＰ１１は、メモリ１０６（もしくはフラッシュメモリ１０７）において、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報を「無し」に設定する（ステップＳ４０）。この後、設定変更プログラムＰ１１は、ステップＳ３１の処理に戻る。
【０１０９】
〔４−３〕本実施形態のフロントエンドプログラムによる送信処理動作
次に、図６に示すフローチャート（ステップＳ４１〜Ｓ４９）に従って、本実施形態のフロントエンドプログラムＰ１２による外部クライアント２，３への送信処理動作について説明する。
【０１１０】
図６に示すように、フロントエンドプログラムＰ１２（判定部１９）は、ループバックデバイス１４（ＣＭ間通信網１２またはプロセス間通信網１２ｂ）からパケットを受信するのを待機する（ステップＳ４１）。ループバックデバイス１４からパケットを受信すると、判定部１９は、受信したパケットがＴＣＰであり宛先ポート番号が設定変更プログラムＰ１１のポート番号であるか否かを判定する（ステップＳ４２）。
【０１１１】
宛先ポート番号が設定変更プログラムＰ１１のポート番号でない場合（ステップＳ４２のＮＯルート）、フロントエンドプログラムＰ１２は、受信したパケットは設定変更処理以外の処理のためのものであると判断する。このため、フロントエンドプログラムＰ１２は、受信したパケットを、当該パケットに対応する処理へ送り（ステップＳ４３）、ステップＳ４１の処理に戻る。
【０１１２】
宛先ポート番号が設定変更プログラムＰ１１のポート番号である場合（ステップＳ４２のＹＥＳルート）、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）を参照し、処理実行中のＴＣＰ接続が存在するか否かを判定する（ステップＳ４４）。つまり、判定部１９は、メモリ１０６（もしくはフラッシュメモリ１０７）に設定される「処理実行中のＴＣＰ接続」が有るか無いかを示す情報が「有り」であるか「無し」であるかを判定する。処理実行中のＴＣＰ接続が存在しない場合（ステップＳ４４のＮＯルート）、フロントエンドプログラムＰ１２は、ステップＳ４１の処理に戻る。
【０１１３】
一方、処理実行中のＴＣＰ接続が存在する場合（ステップＳ４４のＹＥＳルート）、判定部１９は、処理実行中のＴＣＰ接続と今回受信したパケットとは同じＩＰアドレス／ポート番号であるか否かを判定する（ステップＳ４５）。つまり、判定部１９は、メモリ１０６に保存されている内部アドレス及びポート番号と、今回受信したパケット（要求）についてＮＡＰＴ機構１８によって付け替えられた内部アドレス及びポート番号との比較を行なう。
【０１１４】
同じＩＰアドレス／ポート番号でない場合つまり比較の結果が不一致である場合（ステップＳ４５のＮＯルート）、フロントエンドプログラムＰ１２は、ステップＳ４１の処理に戻る。
【０１１５】
同じＩＰアドレス／ポート番号である場合つまり比較の結果が一致である場合（ステップＳ４５のＹＥＳルート）、ＮＡＰＴ機構１８は、受信したパケットのＩＰヘッダを外部のＩＰヘッダに書き換える（ステップＳ４６）。ここで、受信したパケットのＩＰヘッダは、上述した第２アドレス体系に基づく内部アドレス及びポート番号に相当し、ループバックのＩＰヘッダは、上述した第１アドレス体系に基づく送信元アドレス及びポート番号に相当する。
【０１１６】
そして、フロントエンドプログラムＰ１２は、外部のＩＰヘッダに書き換えたパケットを、外部デバイス（例えば外部ネットワークインタフェース２０ａ）に流し、外部ネットワーク２０経由で当該パケットの送信元である外部クライアント２，３へ送信する（ステップＳ４７）。
【０１１７】
ついで、フロントエンドプログラムＰ１２は、パケットがＴＣＰ接続の終了を示しているか否かを判定する（ステップＳ４８）。パケットがＴＣＰ接続の終了を示していない場合（ステップＳ４８のＮＯルート）、フロントエンドプログラムＰ１２は、ステップＳ４１の処理に戻る。パケットがＴＣＰ接続の終了を示している場合（ステップＳ４８のＹＥＳルート）、フロントエンドプログラムＰ１２は、メモリ１０６（もしくはフラッシュメモリ１０７）において、「処理実行中のＴＣＰ接続」が有るか無いかを示す情報を「無し」に設定する（ステップＳ４９）。この後、フロントエンドプログラムＰ１２は、ステップＳ４１の処理に戻る。
【０１１８】
〔５〕本実施形態におけるシステム（ＣＭ）間通信動作
次に、図９〜図１５を参照しながら、上述のごとく構成された本実施形態のストレージ装置１における、システム（ＣＭ）間通信動作について詳細に説明する。図９〜図１５は本実施形態におけるシステム（ＣＭ）間通信動作を説明する図である。図９〜図１５では、マスタＣＭ１００ａ（ＣＭ＃１）とスレーブＣＭ１００ｂ（ＣＭ＃２）との間での通信動作が、各ＣＭ１００における要部構成のみを図示しながら説明される。ＣＭ＃１のプロセス＃１及びＣＭ＃２のプロセス＃２には、それぞれ、ループバックデバイス１４によるプロセス間通信のアドレス体系のＩＰアドレス127.1.0.1及び127.1.0.2が割り振られている。なお、図中、既述の符号と同一の符号は、同一もしくはほぼ同一の部分を示しているので、その説明は省略する。
【０１１９】
まず、図９〜図１１を参照しながら、基本的なＣＭ間通信手順について説明する。
ＣＭ＃１とＣＭ＃２との間で通信を行なう場合、送信元ＣＭ＃１のプロセス（送信元プロセス）＃１は、送信先ＣＭ＃２のプロセス（送信先プロセス）＃２へのパケットを生成してループバックデバイス１４へ出力する（図９の矢印Ａ３，Ａ４参照）。
【０１２０】
このとき、取得部（capture）１５は、ループバックデバイス１４にパケットキャプチャを仕掛け、送信先プロセス＃２宛のパケットＰ１を取り出す（図９の矢印Ａ５，Ａ６参照）。そして、取得部１５によって取り出されたパケットＰ１は、内部ネットワークインタフェース１２ａのフレームリレー送信部としての機能によって、送信先プロセス＃２のＩＰアドレスに応じた適切なフレームリレー１２へ出力される（図１０及び図１１の矢印Ａ７参照）。これにより、パケットＰ１は、送信先ＣＭ＃２へ送信される。
【０１２１】
フレームリレー１２によって送信されたパケットＰ１は、送信先ＣＭ＃２の内部ネットワークインタフェース１２ａのフレームリレー受信部としての機能によって受信される（図１１の矢印Ａ８参照）。パケットＰ１を受信した内部ネットワークインタフェース１２ａは、パケットＰ１が自ＣＭ＃２宛であるか否かを判断する。
【０１２２】
受信したパケットＰ１が自ＣＭ＃２宛である場合、内部ネットワークインタフェース１２ａは、パケットＰ１を送込み部（send）１６に受け渡す（図１１の矢印Ａ９参照）。そして、送込み部（send）１６によって、パケットＰ１は、ループバックデバイス１４経由で送信先プロセス＃２へ送り込まれる（図１１の矢印Ａ１０，Ａ１１参照）。
【０１２３】
パケットＰ１が自ＣＭ＃２宛でない場合、内部ネットワークインタフェース１２ａは、当該パケットＰ１を、他ＣＭ１００に転送する。
【０１２４】
なお、ＣＭ＃２（プロセス＃２）からＣＭ＃１（プロセス＃１）へのパケットの送信も、上述と同様の手順で実行され、これにより、ＣＭ＃１とＣＭ＃２との間の通信が実現される。
【０１２５】
ここまで、本実施形態における基本的なＣＭ間通信手順について説明したが、ＴＣＰ通信を行なう場合、ＯＳの種類によっては、図１２や図１４に示すようにＣＭ間通信を行なえなくなることがある。例えば図８では、プロセス＃１から送出されたパケットは、ループバックデバイス１４を通過した後に消えているように示されている。しかし、ＯＳの種類（例えばLinux（登録商標））によっては、ループバックデバイス１４を通過したパケットをカーネル１３が受信することがある（図１２の矢印Ａ４参照）。カーネル１３は、このようなパケットを受信すると、当該パケットによる通信は存在しないサービス（プロセス＃２）に対するＴＣＰ通信であると認識し、送信元プロセス＃１へ通信終了信号つまりＴＣＰのリセット信号（ＲＳＴ）を返信してしまう（図１２の矢印Ａ１２，Ａ１３参照）。このリセット信号により、ＴＣＰ通信のコネクションが切断され、送信元プロセス＃１からのパケットＰ１に係る通信が停止する。このため、図９〜図１１に示すようにキャプチャされたパケットＰ１に対し送信先ＣＭ２から返信があっても、当該返信に対応することができず、ＣＭ間通信は確立されないまま終了する。
【０１２６】
上述のような状況が送信元ＣＭ＃１で発生するのを抑止すべく、本実施形態では、ループバックデバイス１４を通過した送信先ＣＭ＃２宛のパケットＰ１は、カーネル１３に渡る前に、遮断部１７によって遮断され破棄される（図１３の矢印Ａ４参照）。これにより、カーネル１３はパケットＰ１を受信しないので、リセット信号がカーネル１３から送信元プロセス＃１へ返信されることがなく、ＣＭ間通信が確立されないまま終了するのを抑止することができる。
【０１２７】
また、送信元ＣＭ＃１内に既存のサービス（プロセス＃２）がある場合、自ＯＳ１０５Ａ内のサービス（プロセス＃２）が、他ＣＭ＃２のサービス（プロセス＃２）の代わりに応答してしまう。つまり、特別な対応をしなければループバックアドレス範囲内のアドレス宛パケットは、全て送信元ＣＭ＃１内で受信されてしまう。例えば、図１１では、パケットＰ１は、アドレス127.1.0.2宛に送信されているが、このアドレスはループバックアドレス範囲内であるので、当該パケットＰ１をＣＭ＃１のＯＳ１０５Ａ内のサービスが受信し、応答してしまう。このような状況も、遮断部１７としてのファイアウォールを、アドレス127.1.0.2宛のパケットを捨てるように設定することで解消される。
【０１２８】
なお、図１２及び図１３では、送信元ＣＭ＃１について説明しているが、図１４及び図１５に示すように、送信先ＣＭ＃２においても、カーネル１３のリセット信号によって生じる不都合も、遮断部１７の機能を用いて解消される。つまり、図１４に示すように、パケットＰ１を受信した送信先プロセス＃２は、送信元プロセス＃１への応答パケット（返信パケット）Ｐ２を生成してループバックデバイス１４へ出力する（図１４の矢印Ａ１４参照）。ループバックデバイス１４を通過する応答パケットＰ２は、取得部１５によって取り出される（図１４の矢印Ａ１６，Ａ１７参照）。取り出された応答パケットＰ２は、内部ネットワークインタフェース１２ａのフレームリレー送信部としての機能によって適切なフレームリレー１２へ出力される（図１４の矢印Ａ１８参照）。これにより、応答パケットＰ２は、送信元ＣＭ＃１へ送信される。
【０１２９】
このとき、ループバックデバイス１４を通過した応答パケットＰ２が、カーネル１３によって受信されることがある（図１４の矢印Ａ１５参照）。カーネル１３は、応答パケットＰ２を受信すると、当該パケットＰ２による通信は存在しないサービス（プロセス＃１）に対するＴＣＰ通信であると認識し、プロセス＃２に対しＴＣＰのリセット信号を返信してしまう（図１４の矢印Ａ１９，Ａ２０参照）。このリセット信号により、ＴＣＰ通信のコネクションが切断され、プロセス＃２からの応答パケットＰ２に係る通信が停止する。このため、応答パケットＰ２に対し送信元ＣＭ＃１から返信があっても、当該返信に対応することができず、ＣＭ間通信は確立されないまま終了する。
【０１３０】
上述のような状況が送信先ＣＭ＃２で発生するのを抑止すべく、本実施形態では、ループバックデバイス１４を通過した送信元ＣＭ１１＃１宛の応答パケットＰ２は、カーネル１３に渡る前に、遮断部１７によって遮断され破棄される（図１５の矢印Ａ１５参照）。これにより、カーネル１３は応答パケットＰ２を受信しないので、リセット信号がカーネル１３からプロセス＃２へ返信されることがなく、ＣＭ間通信が確立されないまま終了するのを抑止することができる。
【０１３１】
なお、送信元ポート番号は、ＯＳ１０５Ａによって自動的に採番される。アプリケーションプログラムが自身で送信元ポート番号を指定することも可能であるが、例外的である。ループバックアドレスは、どのＯＳにも存在するため、ＣＭ＃１のＯＳが自動で割り当てた送信元ポート番号が、ＣＭ＃２のＯＳが自動で割り当てたポート番号と同じになることがある。しかし、本実施形態では、送信元ポート番号は、ＩＰアドレス毎に管理されるため、ループバックアドレスを各ＣＭ１００専用のアドレスとして割り振る（例えば127.1.0.2をＣＭ＃２のＯＳ専用とする）ことで、送信元ポート番号が同一になることが抑止される。
【０１３２】
本実施形態によれば、情報処理装置１０内において、当該情報処理装置１０を構成するＣＭ１００間の内部ネットワーク１２に、外部ネットワーク２０の第１アドレス体系とは独立した第２アドレス体系を、ループバックアドレスを用いて構築することができる。これにより、外部ネットワーク２０に影響されない内部ネットワーク１２を構築することができる。
【０１３３】
したがって、外部ネットワーク２０の設定が変化しても内部ネットワーク１２の設定を変更する必要がなくなる。また、外部ネットワーク２０の設定をどのようなものにしても内部ネットワーク１２を構築することが可能である。
【０１３４】
また、内部ネットワーク１２用のアドレスを確保することができない場合であっても、本実施形態によれば、ループバックアドレスを用いて内部ネットワーク１２のアドレス体系を構築することができる。内部ネットワーク１２用のアドレスを確保できない場合は、例えば、プライベートアドレスを全部抑えられ且つグローバルネットワーク空間に接続されている場合である。
【０１３５】
さらに、外部ネットワーク２０とつながるＣＭ＃１がＮＡＰＴ機構１８を備えることで、情報処理装置１０内部の各ＣＭ１００は、外部ネットワーク２０に接続される外部機器（例えば外部クライアント２，３）との通信を行なうことができる。
【０１３６】
また、本実施形態では、ループバックアドレスを用いてＣＭ間通信を行なう際、ループバックデバイス１４を通過したパケットＰ１や応答パケットＰ２は、カーネル１３に渡る前に、遮断部１７によって遮断され破棄される。これにより、カーネル１３はパケットＰ１，Ｐ２を受信しないので、リセット信号がカーネル１３からパケットＰ１，Ｐ２の発行元であるプロセスへ返信されることがなく、ＣＭ間通信が確立されないまま終了するのを抑止することができる。
【０１３７】
〔６〕その他
なお、以上の説明では、外部パケットの送信元ポート番号は変換されることなくループバックデバイス１４に渡されている。このような処理が可能である理由、換言すると前提条件は、以下の通りである。
【０１３８】
第一層と第二層との間の通信（システム間通信／プロセス間通信）で用いられるループバックアドレスは、それぞれのシステム（ＣＭ）専用である。且つ、ループバックアドレスには、通常、ループバックアドレスとして使用される127.0.0.1と異なるアドレス（内部通信用アドレス）が割り当てられている。
【０１３９】
既存のシステムでは、当該内部通信用アドレスは未使用である。その結果、当該内部通信用アドレスに紐付けられたポート番号はすべて未使用であるため、外部の送信元ポート番号を無変換で割り当てても問題は生じない。
【０１４０】
また、本実施形態では、同時に複数の接続を許可していないので、当該システムにおいて、異なるＩＰアドレスで、同一送信元ポート番号のパケットを処理することもない。
【０１４１】
以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【０１４２】
上述した処理実行部１１，内部ネットワークインタフェース１２ａ，取得部１５，送込み部１６，遮断部１７，変換部１８，判定部１９及び外部ネットワークインタフェース２０ａとしての機能の全部もしくは一部は、コンピュータ（ＭＰＵ（Micro-Processing Unit），ＣＰＵ，各種端末を含む）が所定のプログラムを実行することによって実現されてもよい。
【０１４３】
〔７〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１４４】
（付記１）
複数の処理部を有する情報処理装置であって、
前記複数の処理部のうちの一の処理部は、前記情報処理装置の構成を定義する設定情報を記憶する第１記憶部と、外部の端末から前記第１記憶部における前記設定情報に関連する要求を受信すると前記要求を実行する処理実行部と、を有し、
前記複数の処理部のそれぞれは、前記外部の端末における同一の要求元から前記要求を受信すると前記要求のアドレス及びポート番号を同一の内部アドレス及びポート番号に付け替える変換部を有し、
前記変換部によって付け替えられた前記内部アドレス及びポート番号に基づいて前記処理実行部による前記要求の実行を許可するか否かを判定する判定部を有する、情報処理装置。
【０１４５】
（付記２）
前記判定部は、前記一の処理部に備えられる、付記１に記載の情報処理装置。
【０１４６】
（付記３）
前記判定部は、前記複数の処理部のそれぞれに備えられる、付記１または付記２に記載の情報処理装置。
【０１４７】
（付記４）
前記変換部によって付け替えられた前記内部アドレス及びポート番号を保存する第２記憶部を有し、
前記判定部は、
前記要求を受信すると前記第２記憶部を参照し、
前記第２記憶部に前記内部アドレス及びポート番号が保存されていない場合、前記変換部によって付け替えられた前記内部アドレス及びポート番号を前記第２記憶部に保存するとともに前記要求の実行を許可すると判定する、付記１〜付記３のいずれか一項に記載の情報処理装置。
【０１４８】
（付記５）
前記判定部は、
前記第２記憶部に前記内部アドレス及びポート番号が保存されている場合、前記第２記憶部に保存されている前記内部アドレス及びポート番号と今回受信した要求について前記変換部によって付け替えられた内部アドレス及びポート番号との比較を行ない、
前記比較の結果が一致であれば前記要求の実行を許可すると判定する、付記４に記載の情報処理装置。
【０１４９】
（付記６）
前記判定部は、
前記比較の結果が不一致であれば前記要求の実行を許可しないと判定し、
前記外部の端末に対しリセット信号を返信する、付記５に記載の情報処理装置。
【０１５０】
（付記７）
前記複数の処理部のそれぞれに設けられ、外部ネットワークを介して前記外部の端末に接続される外部ネットワークインタフェースと、
前記複数の処理部のそれぞれに設けられ、前記外部ネットワークインタフェースに接続された前記外部ネットワークの第１アドレス体系とは独立した第２アドレス体系で構築された内部ネットワークに接続される内部ネットワークインタフェースと、を有し、
前記複数の処理部のそれぞれにおける前記内部ネットワークインタフェースは、前記第２アドレス体系を用いて前記複数の処理部間の通信を行なう、付記１〜付記６のいずれか一項に記載の情報処理装置。
【０１５１】
（付記８）
前記複数の処理部のそれぞれは、オペレーティングシステムを有するとともに、当該オペレーティングシステム内のプロセス間通信を行なうループバックデバイスを有し、
前記ループバックデバイスによる前記プロセス間通信のアドレス体系が、前記第２アドレス体系として用いられる、付記７に記載の情報処理装置。
【０１５２】
（付記９）
前記複数の処理部のそれぞれは、送信元プロセスで生成され前記ループバックデバイスを通過するパケットを取得する取得部を有し、
前記内部ネットワークインタフェースは、前記取得部によって取得された前記パケットを、前記内部ネットワークに出力し、前記第２アドレス体系に従って送信先処理部へ送信する、付記８に記載の情報処理装置。
【０１５３】
（付記１０）
前記複数の処理部のそれぞれは、前記ループバックデバイスを通過する前記パケットを、前記ループバックデバイスと前記ＯＳのカーネルとの間で遮断する遮断部を有する、付記９に記載の情報処理装置。
【０１５４】
（付記１１）
前記内部ネットワークインタフェースは、他処理部から自処理部宛のパケットを前記第２アドレス体系に従って受信し、
前記複数の処理部のそれぞれは、前記内部ネットワークインタフェースによって受信された前記自処理部宛のパケットを、前記ループバックデバイス経由で送信先プロセスへ送り込む送込み部を有する、付記１０に記載の情報処理装置。
【０１５５】
（付記１２）
前記複数の処理部のそれぞれにおいて、
前記取得部は、前記送信先プロセスで生成され前記ループバックデバイスを通過する、前記他ユニットの前記送信元プロセスへの応答パケットを取得し、
前記内部ネットワークインタフェースは、前記取得部によって取得された前記応答パケットを、前記内部ネットワークに出力し、前記第２アドレス体系に従って前記他処理部の前記送信元処理部へ送信する、付記１１に記載の情報処理装置。
【０１５６】
（付記１３）
前記複数の処理部のそれぞれにおいて、前記遮断部は、前記ループバックデバイスを通過する前記応答パケットを、前記ループバックデバイスと前記ＯＳのカーネルとの間で遮断する、付記１２に記載の情報処理装置。
【０１５７】
（付記１４）
前記内部ネットワークインタフェースは、前記自処理部宛のパケットを選択して前記送込み部に受け渡す一方、前記自処理部宛のパケット以外のパケットを他処理部に転送する、付記１１〜付記１３のいずれか一項に記載の情報処理装置。
【符号の説明】
【０１５８】
１    ストレージ装置（情報処理装置）
２，３    端末（外部クライアント）
１００，１００ａ，１００ｂ    ＣＭ（ストレージ制御装置，処理部）
１０１，１０２    ＣＡ
１０３    ＤＡ
１０４    ＰＣＩｅインタフェース
１０５    ＣＰＵ（処理部）
１０５Ａ    ＯＳ
１０６    メモリ（第１記憶部，第２記憶部）
１０７    フラッシュメモリ（第１記憶部，第２記憶部）
１０８    ＩＯＣ
１１    処理実行部（参照／変更部）
１２    内部ネットワーク（システム間通信網，フレームリレー，汎用通信回線）
１２ａ    内部ネットワークインタフェース
１２ｂ    プロセス間通信網
１３    カーネル
１４    ループバックデバイス
１５    取得部（capture）
１６    送込み部（send）
１７    遮断部（firewall）
１８    変換部（ＮＡＰＴ機構）
１９    判定部
２０    外部ネットワーク（イーサネット）
２０ａ    外部ネットワークインタフェース
３０    ＤＥ（記憶装置）
３１    記憶装置（ドライブ）
４０    ＣＥ
Ｐ１１    設定変更プログラム（第一層；プロセス＃１）
Ｐ１２    フロントエンドプログラム（第二層；プロセス＃２，＃３）
【図１】
2018085634.tif 000003
【図２】
2018085634.tif 000004
【図３】
2018085634.tif 000005
【図４】
2018085634.tif 000006
【図５】
2018085634.tif 000007
【図６】
2018085634.tif 000008
【図７】
2018085634.tif 000009
【図８】
2018085634.tif 000010
【図９】
2018085634.tif 000011
【図１０】
2018085634.tif 000012
【図１１】
2018085634.tif 000013
【図１２】
2018085634.tif 000014
【図１３】
2018085634.tif 000015
【図１４】
2018085634.tif 000016
【図１５】
2018085634.tif 000017