JP6575318B2 - ネットワーク制御装置、クラスタシステムおよび制御プログラム - Google Patents

ネットワーク制御装置、クラスタシステムおよび制御プログラム Download PDF

Info

Publication number
JP6575318B2
JP6575318B2 JP2015225667A JP2015225667A JP6575318B2 JP 6575318 B2 JP6575318 B2 JP 6575318B2 JP 2015225667 A JP2015225667 A JP 2015225667A JP 2015225667 A JP2015225667 A JP 2015225667A JP 6575318 B2 JP6575318 B2 JP 6575318B2
Authority
JP
Japan
Prior art keywords
packet
communication
processing device
connection destination
unit
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.)
Active
Application number
JP2015225667A
Other languages
English (en)
Other versions
JP2017098606A (ja
Inventor
伸幸 七野
伸幸 七野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015225667A priority Critical patent/JP6575318B2/ja
Priority to US15/347,857 priority patent/US10122635B2/en
Publication of JP2017098606A publication Critical patent/JP2017098606A/ja
Application granted granted Critical
Publication of JP6575318B2 publication Critical patent/JP6575318B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2466Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Hardware Redundancy (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、ネットワーク制御装置、クラスタシステムおよび制御プログラムに関する。
図10〜図19は従来のクラスタシステム500の動作を説明するための図である。
図10に示すクラスタシステム500は、クラスタ503とイーサスイッチ(Ether Switch)502とクライアント501とを備え、クライアント501は、イーサスイッチ502を介してクラスタ503に接続されている。
クラスタ503は装置504と装置505とをクラスタ構成として備えている。以下、装置504を装置#1といい、装置505を装置#2という場合がある。クライアント501と装置#1,#2とはLAN(Local Area Network)で接続され、このLAN上にイーサスイッチ502が配置されている。
イーサスイッチ502はクライアント501に対する、これらの装置#1,#2の接続を切り換える。すなわち、イーサスイッチ502は、クライアント501に対して、装置#1,#2を選択的に接続する切り換えを行なうものであり、例えば、装置#1,#2の一方がダウンすると、他方への切り替えを行なう。
図10に示す例においては、クライアント501のIPアドレスが“192.168.0.128”であり、装置#1,#2の各IPアドレスが、それぞれ“192.168.0.1”,“192.168.0.2”である。
図10に示す状態においては、クライアント501は装置#1と接続され、TCP(Transmission Control Protocol)通信することでジョブを処理しているものとする。
この状態において、装置#1がダウンすると、図11に示すように、装置#2に装置#1のIPアドレスが追加され(符号P1参照)、クライアント501は、装置#2と接続される。装置#1で実施中であったジョブは装置#2に引き継がれ、クライアント501は装置#2との間でTCP通信を行ない、処理を続行する。
この際、装置#2においては、クライアント501との間で行なったTCP通信についての接続記録(TCP接続情報)が記憶される(符号P2参照)。
TCPにおいては、通信データの管理にシーケンシャル番号と呼ばれる通し番号が用いられており、TCP接続情報には、このシーケンシャル番号が含まれる(符号P3参照)。シーケンシャル番号は、ジョブによって用いられる場合もある。
装置#1が復旧すると、図12に示すように、装置#2が代行していた装置#1のジョブは装置#1へ戻される。クライアント501は、装置#1と接続され、この装置#1との間でTCP通信を行ない、処理を続行する。
このとき、装置#2が代行していたジョブが使用していたTCP接続情報は装置#2内に残ったままになる(符号P4参照)。TCP接続情報は、OS(Operating System)内部の管理情報で、外部アプリケーションから変更できないからである。
一方、装置#1においては、クライアント501との通信が再開されることにより、図13に示すように、クライアント501との間の通信が“Sequential no. B”まで進む(符号P5参照)。
特開2002−344450号公報 特開2006−215635号公報 特表2011−518486号公報
図13に示した状態において、装置#1が、再度、ダウンすると、図14に示すように、装置#2は装置#1で実施中であったジョブを引き継ぐ。
このとき、クラスタ503を利用していたクライアント501は、装置#1がダウンする前のTCP接続情報をそのまま使って装置#2にアクセスする。なお、このアクセスにおいては、クライアント501からのアクセスに用いられるTCPポート番号が、装置#2に残っているTCP接続情報と合致する。
ここで、TCP通信を行なうクライアント501と装置#2との間において、シーケンシャル番号の齟齬が生じると、TCPACK(acknowledgement)の輻輳が発生する。
前述の如く、TCPでは通信データの管理にシーケンシャル番号を用いているが、このシーケンシャル番号が期待値と異なった場合に、送信元に対して、期待した番号を持つデータを送信するよう応答(ACK)する。
このACKを受け取った側がそのデータを用意できない場合、自分の管理しているシーケンシャル番号を応答(ACK)する。つまり、互いに自分の期待するシーケンシャルを応答し合うことになる。
図14および図15に示した例においては、クライアント501においては、装置#1との間で、“Sequential no. B”まで通信が進んでいるので、“B”の次である、“B+1”を付して送信を行なう。
これに対して、装置#2には、前回、クライアント501と通信を行なった際のTCP接続情報(“Sequential no. A”)が残っているので(図14の符号P6参照)、“A”の次である、“A+1”を期待している。
このように、クライアント501と装置#2との間で期待するシーケンス番号に齟齬が生じる。装置#2はクライアント501にSequential no. が“A+1”のデータを送るようACK応答を行なう。このACKを受信したクライアント501はその情報を用意できないために、自身の次のSequential no.が“B+1”であることをACK送信する。
これらの相互のACK応答の繰り返し(輻輳)はTCPの通信タイムアウト(30秒以上)まで行なわれ、クラスタ切り替えの遅延要因となる。
なお、TCP接続情報は、OSのカーネルによって管理される情報であり、容易に削除することはできない。
なお、この遅延はクラスタ構成されたNFS(Network File System)サーバでは一般的なものである。
また、上述した相互のACK応答の繰り返しによる輻輳は、リンクダウン(Link down)を要因とするクラスタ切り替えにおいても発生する。
図15に示すクラスタシステムにおいては、クライアント501が装置#1と通信しており、“Sequential no. X”まで通信が進んでいる状態を示している(符号P7参照)。なお、装置#1は図示しない他のLANを介して他のクライアント等と接続されており、この他のクライアントからのジョブも処理している。
ここで、図16に示すように、イーサスイッチ502と装置#1とを接続するLANがリンクダウンしたとする(符号P8参照)。なお、装置#1と他のクライアント(図示省略)とを接続する他のLAN(図示省略)については異常が生じていないので、装置#1は、この他のクライアントからのジョブを処理する装置として運用が続行されるものとする。
クラスタ503においては、図17に示すように、装置#1で使えなくなったLANのIPアドレスが装置#2に追加され(符号P9参照)、装置#1で実施中であったジョブは装置#2に引き継がれる。これにより、装置#2においては、クライアント501との間の通信が“Sequential no. Y”まで進む(符号P10参照)。
その後、図18に示すように、装置#1とクライアント501とを接続するLANがリンクアップすると(符号P11参照)、装置#2に設定されていた装置#1のIPアドレスが装置#1に戻され(符号P12参照)、装置#1による運用が再開される。
このとき、装置#2が代行していたジョブが使用していたTCP接続情報は装置#2内に残ったままになる(符号P13参照)。
ここで、クラスタ503を利用していたクライアント501においては、装置#2との間で、“Sequential no. Y”まで通信が進んでいるので、TCP Sequential no.として“Y”の次である、“Y+1”を付して送信を行なう。
これに対して、図19に示すように、装置#1には、前回、クライアント501と通信を行なった際のTCP接続情報(“Sequential no. = X”)が残っているので(符号P14参照)、TCP Sequential no.として、“X”の次である、“X+1”を期待している。
従って、TCP通信を行なうクライアント501と装置#1との間において、シーケンシャル番号の齟齬が生じ、TCPACKの輻輳が発生する。
このように、従来のクラスタシステムにおいては、クラスタ503を構成する装置#1,#2とクライアント501との間で、通信再開時のシーケンシャル番号の不一致によりTCPACKの輻輳が発生するという課題がある。
1つの側面では、クラスタシステムにおける処理装置の切り替え時に輻輳の発生を抑止できるようにすることを目的とする。
このため、このネットワーク制御装置は、第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、前記第2の処理装置に備えられるネットワーク制御装置であって、前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、仮想通信インタフェースを設定する仮想通信インタフェース設定部と、送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得する通信進捗情報取得部と、取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成するリセットパケット生成部と、前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する削除処理部とを備える。
一実施形態によれば、クラスタシステムにおける処理装置の切り替え時に輻輳の発生を抑止できるようにする。
実施形態の一例としてのストレージシステムのハードウェア構成を示す図である。 実施形態の一例としてのストレージシステムの機能構成を示す図である。 実施形態の一例としてのストレージシステムにおける仮想NICによるパケットの出力時の処理を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるTCP接続情報削除に関する常駐処理を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるTCP接続情報削除に関する常駐処理を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるTCP接続情報削除処理を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるTCP接続情報削除サブルーチンによる処理を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるカーネルのパケット登録処理(1)を説明するためのフローチャートである。 実施形態の一例としてのストレージシステムにおけるカーネルのパケット登録処理(2)を説明するためのフローチャートである。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。 従来のクラスタシステムの動作を説明するための図である。
以下、図面を参照して本ネットワーク制御装置、クラスタシステムおよび制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)構成
図1は実施形態の一例としてのストレージシステム1のハードウェア構成を示す図、図2はその機能構成を示す図である。
実施形態の一例としてのストレージシステム1は、図1に示すように、通信線50を介して複数(図1に示す例では2つ)のストレージ装置10−1,10−2が通信可能に接続されている。これらの、ストレージ装置10−1,10−2は地理的に離れた場所に配置されていてもよい。
これらのストレージ装置10−1,10−2は同様の構成を備える。以下、ストレージ装置を示す符号としては、複数のストレージ装置のうち1つを特定する必要があるときには符号10−1,10−2を用いるが、任意のストレージ装置を指すときには符号10を用いる。
そして、これらのストレージ装置10−1,10−2はクラスタシステムを構成している。すなわち、ストレージ装置10−1,10−2は二重化されており、一方になんらかの異常が生じた場合に、他方がその動作を引き継ぐことでダウンタイムを短くして信頼性を向上させている。
ストレージ装置10−1,10−2には、それぞれイーサスイッチ3を介してクライアント2が接続されている。
クライアント2は、接続されたストレージ装置10−1,10−2のボリューム(論理ボリューム,仮想ボリューム)にデータの書き込みや読み出しを行なう機能を備える。
クライアント2は、情報処理装置であり、例えば、図示しない、CPU(Central Processing Unit)やメモリ等を備えたコンピュータである。
イーサスイッチ3はクライアント2に対する、これらのストレージ装置10−1,10−2の接続を切り換える。すなわち、イーサスイッチ3は、クライアント2に対して、装置10−1,10−2を選択的に接続する切り換えを行なうものであり、例えば、一方のストレージ装置10がダウンすると、他方のストレージ装置10への切り替えを行なう。
ストレージ装置10−1,10−2は、例えば、NASボリュームを管理し、クライアント2に対して記憶領域を提供する。
各ストレージ装置10は、それぞれ1以上(本実施形態では1つ)のCM(情報処理装置)111を備える。
通信線50は、データを通信可能に接続する通信回線であって、例えばTCP/IP(Internet Protocol)等の規格に基づきデータ転送を実現する。
各ストレージ装置10は、図1に示すように、CM(Controller Module)111及びディスクエンクロージャ130を備える。
CM111はストレージ装置10における種々の制御を行なうものであり、クライアント2からのストレージアクセス要求(アクセス制御信号)に従って、ディスクエンクロージャ130のディスク装置131へのアクセス制御等、各種制御を行なう。各CM111は互いに同様のハードウェア構成を有する。
ディスクエンクロージャ130は、1以上のディスク装置131を備える。ディスク装置131は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。ストレージ装置10においては、このHDD131の記憶領域が論理ボリュームに対して割り当てられる。また、複数のHDD131を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
CM111は、図1に示すように、CA(Communication Adapter)124,RA(Remote Adapter)125,CPU110,DA(Device Adapter)126及びメモリ127を備える。なお、図1に示す例においては、各ストレージ装置10に1つのCM111が備えられているが、これに限定されるものではなく、それぞれ2つ以上のCM111を備えてもよい。
CA124は、クライアント2と通信可能に接続するインタフェースコントローラであり、例えば、LANインタフェースのNIC(Network Interface Card)を備える。CM111は、このCA124によりLANを介してクライアント2等と接続され、IOコマンドの受信やデータの送受信等を行なう。
RA125は、通信回線50を介して他のストレージ装置10と通信可能に接続(リモート接続)するインタフェースコントローラである。通信線50は、例えば、PCIe(Peripheral Component Interconnect Express)バスであり、RA125は、PCIeバスアダプタである。
すなわち、ストレージ装置10−1のCM111とストレージ装置10−2のCM111とは、通信線50を介して通信可能に接続され。これらのCM111,111および通信線50により、通信システムが構成されている。
DA126は、ディスクエンクロージャ130と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。
メモリ127はROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ127のROMには、後述するTCP接続情報削除処理に係るソフトウェアプログラム(制御プログラム)やこのプログラム用のデータ類が書き込まれている。メモリ127上のソフトウェアプログラムは、CPU110に適宜読み込まれて実行される。又、メモリ127のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
また、メモリ(RAM)127における所定の領域には、後述するTCP接続情報60,ルーティングテーブル22およびARPテーブル23が格納される。
メモリ127のROMには、CPU110が実行するプログラムや種々のデータが格納されている。
CPU110は、種々の制御や演算を行なう処理装置であり、メモリ127等に格納されたプログラムを実行することにより、種々の機能を実現する。
そして、ストレージ装置10のCPU110は、図2に示すように、TCP接続情報削除処理部11として機能する。
なお、TCP接続情報削除処理部11としての機能を実現するためのプログラム(制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しない読取装置を介してプログラムを読み取って、内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
TCP接続情報削除処理部11としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ127)に格納されたプログラム(制御プログラム)がコンピュータのマイクロプロセッサ(本実施形態ではCPU110)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、以下、OSがLinux(登録商標)である例について示す。
TCP接続情報削除処理部11は、クラスタ切り替えによってIPアドレスが他ストレージ装置10に移行するイベントが発生した場合に、移行元(切り替え元)のストレージ装置10において、不要となったTCP接続情報60を削除する処理を実現する。
なお、最初に一方のストレージ装置10(例えば、ストレージ装置10−1)から、他のストレージ装置10(例えば、ストレージ装置10−2)へ切り替えが発生する場合等においては、ACK輻輳は発生しない。ストレージ装置10にTCP接続情報が残っていないからである。
ACK輻輳が発生するためには、TCP接続情報が残る必要があり、かつ、そのTCP接続情報と新しいTCP通信においてIPアドレスおよびTCPポート番号が合致する必要がある。通常のTCP通信ではクライアント2側のポート番号は多数のプールから選択されるため、合致する確率は低い。しかし、NFSクライアントの場合、クライアント側ポート番号は数個のプールの範囲で選択されるため、合致する可能性が高い。
ACK輻輳が発生しないケースであっても、TCP接続情報は同一IPアドレス、同一ポート番号の新しいTCP接続要求が発生するまで残り続けることがある(一定時間経過で消えるケースは注意4参照)。これは、システムのメモリ資源を占有することを意味する。
TCP接続情報60は、外部装置(本実施形態においてはクライアント2)との間で行なわれた通信に関する接続記録情報である。TCP接続情報60は、図11等に示したように、通信先のクライアント2のIPアドレスおよびポート番号と、自身(自CM111のクライアント2との通信に用いられたCA124)のIPアドレスおよびポート(port)番号との組み合わせに対して、その通信の進捗を表すシーケンシャル番号(通信進捗情報)を関連付けることにより構成されている。
TCP接続情報60は、例えばLinuxのnetstatコマンドを実行することにより参照できる情報を備える。
すなわち、TCP接続情報60は、TCPによる通信が行なわれる装置(例えば、クライアント2とストレージ装置10)の組み合わせ毎に備えられる。
TCP接続情報削除処理部11は、図2に示すように、仮想NIC(Network Interface Card)設定部12,テーブル編集部13,ダミーパケット作成部14,リセットパケット出力部20,ダミーパケット受信処理部16,TCP接続情報照合部17,シーケンシャル番号確認部18,ACKパケット出力部19およびRSTパケット処理部21としての機能を備える。
仮想NIC設定部(仮想通信インタフェース設定部)12は、仮想NIC(仮想通信インタフェース)を一つ用意する。仮想NICは仮想的に設けられたNICであり、仮想NICはOSに対してNICがあるように振る舞う。
仮想NICは、実際には存在しないNICである。そのため、ハードウェア的にはデータの送信も受信も不可能である。以下、仮想NICを仮想NICドライバという場合がある。
本ストレージシステム1においては、この仮想NICドライバを使うことで、OSのカーネル15(図2参照)に対するパケット操作を可能とし、カーネル15が管理するTCP接続情報60の削除を実現する。
ダミーパケット作成部14は、送信元がクライアント2であると擬似的に認識させるダミーのTCPパケット(ダミーパケット)を作成して、前述した仮想NICに受信(処理)させる。
ダミーパケットの作成には、自身(自CM111のクライアント2との通信に用いられているCA124)のIPアドレスおよびポート番号、接続先であるクライアント2のIPアドレスとポート番号、および2種類のシーケンシャル番号をパラメータとして用いる。
ダミーパケット作成部14は、値が大きく異なる(例えば、桁数が異なる)2種類のシーケンシャル番号を用いて、シーケンシャル番号が大きく異なる2つのダミーパケット(第1のダミーパケット,第2のダミーパケット)を作成する。
例えば、第1のダミーパケットには、シーケンシャル番号として“0x0”を設定し、第2のダミーパケットには、シーケンシャル番号として“0x80000000”を設定する。
ダミーパケットには、以下(a)〜(h)の設定をパラメータとして用いる。これにより、接続先であるクライアント2からTCP ACKパケットが届いたかのように見えるダミーパケット(第1のダミーパケットおよび第2のダミーパケット)が作成される。
(a)送信元MAC(Media Access Control)アドレスには、仮想NICのMACアドレスに1を加えた値
(b)送信先MACアドレスには、仮想NICのMACアドレス
(c)送信先ポート番号には、自身のポート番号
(d)送信先IPアドレスには、自身のIPアドレス
(e)送信元IPアドレスには、接続先IPアドレス
(f)送信元ポート番号には、接続先ポート番号
(g)TCP Flagは、ACKのみ
(h)シーケンシャル番号には、パラメータとして与えられたシーケンシャル番号
ダミーパケット作成部14は、作成した2種類のダミーパケットを、仮想NICのioctl I/F(InterFace)を用いてカーネル15に登録させる(仮想NICの入力I/F処理)。
標準的なLinuxのカーネル15の機能では、任意のパケットをNICが受信したように見せることはできない。
そこで、カーネル15が持つ、NICドライバのioctl I/Fを利用して、ioctl経由でパケットをカーネル15に登録する処理を仮想NICドライバへ追加する。これにより、任意のパケットを仮想NIC経由で受信したように、カーネル15に処理させることが可能になる。
カーネル15の処理により、何らかのパケットをNICが受信したように見せるためにも、カーネル15が作成したパケットが、後述する「カーネル15のパケット登録処理」に送られる。
テーブル編集部13は、ダミーパケット作成部14によって作成されたダミーパケットを仮想NICに受信させるために、ルーティングテーブル22およびARP(Address Resolution Protocol)テーブル23を編集する。なお、これらのルーティングテーブル22およびARPテーブル23としての情報は、例えば、メモリ127の所定の領域に格納されており、カーネル15によって管理される。
ルーティングテーブル22は、パケットの送り先等を管理する情報である。テーブル編集部13は、接続先であるクライアント2のIPアドレス宛のパケットが仮想NICを通過するように、ルーティングテーブル22へルーティング情報を追加する。
このルーティングテーブル22の編集を行なわない場合には、仮想NICを通る通信は「接続先IPアドレスが仮想NICに割り当てたサブネットアドレスの範囲内」に限定されることになる。その場合、サブネットアドレス外の接続先の場合、仮想NICの出力処理を通らず、その結果、仮想NICからの出力処理において、後述するリセットパケット出力部20によるTCP RSTパケットの出力が行なわれなくなってしまう。すなわち、TCP接続情報削除処理を実現することができない。
ARPテーブル23は、IPアドレスとMACアドレスとの対応関係を示す情報である。
テーブル編集部13は、このARPテーブル23に、接続先、すなわちクライアント2のIPアドレス宛のパケットが、仮想NICを通るように設定を行なう。
具体的には、テーブル編集部13は、ARPテーブル23に、仮想NICのMACアドレスとして、ユニークな任意のMACアドレス(ダミーのMACアドレス)を追加登録する。また、テーブル編集部13は、接続先であるクライアント2のIPアドレスに対して、仮想NICのMACアドレスに1を加えた値を対応付ける。
カーネル15はどのNICから通すかの判断にARPテーブル23を参照するので、本ストレージシステム1においては、パケットが仮想NICを通るようにするために、このようなARPテーブル23の編集が必要とされるのである。
本実施形態においては、ARPテーブル23に設定するMACアドレスは仮想NICのMACアドレスに1を加えたものとしているが、これに限定されるものではなく、適宜変更して実施することができる。
ダミーパケット受信処理部16は、ダミーパケット作成部14によって出力されるダミーパケットを受信する。
TCP接続情報照合部17は、ダミーパケット受信処理部16が受信したダミーパケットについて、カーネル15が管理しているTCP接続情報60と照合する。
例えば、TCP接続情報照合部17は、ダミーパケットの送信元IPアドレスおよびポート番号や、送信先IPアドレスおよびポート番号を、TCP接続情報60に登録されている情報と照合する。
なお、ダミーパケットの情報がTCP接続情報照合部17に登録されていないものである場合には、当該パケットは無視される。
前述の如く、ダミーパケットは、クライアント2から送信されたかのように認識されるものであるので、正しく作成されたダミーパケットについては無視されることはない。
シーケンシャル番号確認部18は、ダミーパケット受信処理部16が受信したダミーパケットのシーケンシャル番号を、カーネル15が管理している前回処理時のシーケンシャル番号と比較する。
シーケンシャル番号確認部18は、受信したダミーパケットのシーケンシャル番号を抽出し、メモリ127等の所定の領域に記憶する。そして、シーケンシャル番号確認部18は、受信したダミーパケット(第2のダミーパケット)のシーケンシャル番号を、記憶している先に受信したダミーパケット(第1のダミーパケット)のシーケンシャル番号と比較する。
本ストレージシステム1においては、前述の如く、ダミーパケット作成部14により、シーケンシャル番号が大きく異なる2つのダミーパケットが作成され、これらのダミーパケットが連続して送信される。従って、少なくとも、ダミーパケット受信処理部16が連続して受信した2つのダミーパケットにおいて、シーケンシャル番号が一致することはない。
ACKパケット出力部19は、シーケンシャル番号確認部18による確認の結果、ダミーパケット(第2のダミーパケット)のシーケンシャル番号が、前回処理したダミーパケット(第1のダミーパケット)のシーケンシャル番号と不一致である場合に、正しいシーケンシャル番号を付加したACKパケットを仮想NICから出力する。
なお、ダミーパケットのシーケンシャル番号が前回処理時のシーケンシャル番号と一致する場合には、ACKパケットの送信処理は行なわれない。
ここで、ダミーパケット受信処理部16が受信したダミーパケットのシーケンシャル番号が、先に受信したパケットのシーケンシャル番号と偶然に一致する場合が考えられる。しかしながら、前述の如く、少なくとも、ダミーパケット受信処理部16が連続して受信した2つのダミーパケット(第1のダミーパケット,第2のダミーパケット)において、シーケンシャル番号が一致することはないので、2つのダミーパケットを受信することで、シーケンシャル番号の不一致が必ず検出されることとなる。従って、ACKパケット出力部19は、正しいシーケンシャル番号を付加したACKパケットを確実に出力することになる。
従って、前述したダミーパケット作成部14は、送信元がクライアント2であると擬似的に認識させるダミーパケットを作成し、仮想NICに受信させることで、ストレージ装置10−2におけるクライアント2との通信進捗状態を表すシーケンシャル情報(通信進捗情報)を取得する通信進捗情報取得部として機能する。
リセットパケット出力部20は、ACKパケット出力部19によって出力されたACKパケットから、シーケンシャル番号を抽出する。そして、このシーケンシャル番号と、自身のIPアドレス(local)および接続先であるクライアント2のIPアドレス(foreign)を含むTCP RSTパケット(リセットパケット)を作成し、NICの受信処理に渡す。
TCP RSTパケットは、OSのカーネル15に対してTCP接続情報60における削除対象を通知する。すなわち、TCP RSTパケットに含まれる、シーケンシャル番号およびIPアドレス(local,foreign)にが、TCP接続情報60における削除対象を表す。
カーネル15(RSTパケット処理部21)は、TCP RSTパケットを受信すると、TCP RSTパケットによって通知される削除対象のTCP接続情報60を削除する。
従って、上述したリセットパケット出力部20は、取得したシーケンシャル番号(通信進捗情報)を用いて、このシーケンシャル番号を含むTCP RSTパケット(リセットパケット)を生成するリセットパケット生成部として機能する。
RSTパケット処理部21は、リセットパケット出力部20から出力されるTCP RSTパケットに基づき、通信ペア毎に備えられた複数のTCP接続情報60の中から、TCP RSTパケットに含まれる、シーケンシャル番号およびIPアドレス(local,foreign)によって特定されるTCP接続情報60を削除する(RSTパケット処理)。
すなわち、RSTパケット処理部21は、TCP RSTパケットに含まれるシーケンシャル番号およびIPアドレスをTCP接続情報60と照合し、これらのシーケンシャル番号およびIPアドレスが一致するTCP接続情報60を削除する。
なお、上述した、ダミーパケット受信処理部16,TCP接続情報照合部17,シーケンシャル番号確認部18,ACKパケット出力部19およびRSTパケット処理部21としての機能は、OSのカーネル15に備えられる機能により実現される。
すなわち、カーネル15における、ダミーパケット受信処理部16,TCP接続情報照合部17,シーケンシャル番号確認部18,ACKパケット出力部19およびRSTパケット処理部21としての機能が、ダミーパケット作成部14から出力されるダミーパケットについての登録処理〔カーネル15のパケット(ダミーパケット)登録処理〕を実現する。なお、カーネル15のパケット(ダミーパケット)登録処理についての詳細は、図8および図9を用いて後述する。
すなわち、RSTパケット処理部21は、リセットパケット出力部20から出力されるリセットパケットに基づき、ストレージ装置10−2に記憶されたクライアント2との間におけるTCP接続情報60(接続記録情報)を削除する削除処理部として機能する。
(B)動作
先ず、上述の如く構成された実施形態の一例としてのストレージシステム1における仮想NICによるパケットの出力時の処理(仮想NIC出力処理)を、図3に示すフローチャート(ステップA1〜A4)に従って説明する。
本処理は、ストレージ装置10の起動後に常駐して実施されるものであり、仮想NICの送信処理を通るパケットの全てに対して実行される。
仮想NICのパケット出力が行なわれると(ステップA1)、仮想NICのドライバが、パケットがTCPパケットであるかを確認する(ステップA2)。パケットがTCPパケットでない場合には(ステップA2のNOルート参照)、当該パケットは破棄され(ステップA4)、処理を終了する。
パケットがTCPパケットである場合には(ステップA2のYESルート参照)、ステップA3に移行する。ステップA3においては、リセットパケット出力部20が、パケットから抽出したシーケンシャル番号を用いてTCP RSTパケットを作成し、NICの受信処理へ渡す。その後、ステップA4に移行する。
次に、実施形態の一例としてのストレージシステム1におけるTCP接続情報削除に関する常駐処理を、図4および図5に示すフローチャート(ステップB1〜B11)に従って説明する。なお、図4はステップB1〜B4を、図5はステップB5〜B11を示す。
本処理はTCP接続情報削除処理部11によって実行されるものであり、変数として削除リトライカウントが用いられる。
TCP接続情報削除処理に関する常駐処理が開始されると(図4のステップB1)、図4のステップB2において、クラスタ切り替えによりIPアドレスが他のストレージ装置10に移行するイベントが発生するまで待ち合わせる。
クラスタ切り替えによりIPアドレスが他のストレージ装置10に移行した場合に、その移行元のストレージ装置10において、以下の処理が行なわれる。
すなわち、クラスタ切り替えによりIPアドレスが他のストレージ装置10に移行すると、その移行元のストレージ装置10のCM111において、今までクライアント2と通信していたNICから、IPアドレスを削除する(図4のステップB3)。以下、この移行されるIPアドレスが“192.168.1.1”である例について示す。
仮想NIC設定部12が仮想NICを設定し、この設定した仮想NICに対して、ステップB3で削除したIPアドレス(192.168.1.1)を設定する(図4のステップB4)。
次に、削除リトライカウントに“0”を設定することで初期化する(図5のステップB5)。
OS上のネットワーク管理テーブル(netstat)を検索して、ステップB3において削除したIPアドレス(192.168.1.1)を含むTCP接続情報を抽出する。抽出されたTCP接続情報を“接続リスト”に登録する(図5のステップB6)。なお、この接続リストの情報は、例えばメモリ127の所定の領域に格納される。
接続リストに登録されているTCP接続情報の数を確認する(図5のステップB7)。接続リストに登録がない場合、すなわち、登録個数が0個である場合には(ステップB7の“0個である”ルート参照)、ステップB2に戻る。
接続リストの登録個数が1個以上である場合には(ステップB7の“1個以上である”ルート参照)、削除リトライカウントの値をインクリメントする(1増やす)(図5のステップB8)。
次に、削除リトライカウントの値が予め設定された制限値(閾値)を超えたかを確認する。削除リトライカウントの値が制限値を超えた場合には(ステップB9の“超えた”ルート参照)、ステップB2に戻る。すなわち、念のために、ステップB2〜B7の処理を所定回数(制限値以上)繰り返し実行することで、信頼性を向上させることができる。制限値は例えば3回である。
一方、削除リトライカウントの値が制限値を超えていない場合には(ステップB9の“超えていない”ルート参照)、図5のステップB10に移行する。
ステップB10において、TCP接続情報削除処理部11は、接続リストからTCP接続情報を1つずつ取り出して、図6に後述するTCP接続情報削除処理を実行する。
TCP接続情報削除処理部11は、接続リストの全てのTCP接続情報に対して、ステップB10の処理が行なわれたかを確認する(図5のステップB11)。確認の結果、接続リストに未処理のTCP接続情報が残っている場合には(ステップB11の“残っている”ルート参照)、ステップB10に戻る。
接続リストに未処理のTCP接続情報が残っていない場合、すなわち、接続リストの全てのTCP接続情報に対してTCP接続情報削除処理が行なわれた場合には(ステップB11の“すべて処理した”ルート参照)、ステップB6に戻る。
次に、実施形態の一例としてのストレージシステム1におけるTCP接続情報削除処理を、図6に示すフローチャート(ステップC1〜C4)に従って説明する。
ステップC1において、接続先(クライアント2)のIPアドレス宛の通信は、仮想NICを通るように、テーブル編集部13がルーティングテーブル22およびARPテーブル23を変更する。
ステップC2において、TCP接続情報削除処理部11は、TCP接続情報削除サブルーチンを呼び出す。TCP接続情報削除サブルーチンを実行するに際して、自身のIPアドレスのIPアドレスとポート番号,接続先のクライアント2のIPアドレスとポート番号、およびシーケンシャル番号として“0x0”が、パラメータとして渡される。
なお、TCP接続情報削除サブルーチンについては図7を用いて後述する。
ステップC3において、TCP接続情報削除処理部11は、TCP接続情報削除サブルーチンを呼び出す。ステップC2と同様に、TCP接続情報削除サブルーチンを実行するに際して、自身のIPアドレスのIPアドレスとポート番号,接続先のクライアント2のIPアドレスとポート番号が、パラメータとして渡される。また、本ステップにおいては、シーケンシャル番号として、ステップC2とは大きく異なる“0x80000000” がパラメータとして渡される。
ステップC4において、テーブル編集部13は、ステップC1において変更したルーティングテーブル22およびARPテーブル23を変更前の状態に戻した後、処理を終了する。
次に、実施形態の一例としてのストレージシステム1におけるTCP接続情報削除サブルーチンによる処理を、図7に示すフローチャート(ステップD1〜D2)に従って説明する。
ステップD1において、ダミーパケット作成部14が、ダミーパケット(TCPパケット)を作成する。
なお、ダミーパケットには、以下(a)〜(h)の設定がパレメータとして用いられる。
(a)送信元MACアドレスには、仮想NICのMACアドレスに1を加えた値
(b)送信先MACアドレスには、仮想NICのMACアドレス
(c)送信先port番号には、自身のport番号
(d)送信先IPアドレスには、自身のIPアドレス
(e)送信元IPアドレスには、接続先IPアドレス
(f)送信元port番号には、接続先port番号
(g)TCP Flagは、ACKのみ
(h)シーケンシャル番号には、パラメータとして与えられたシーケンシャル番号
ステップD2において、ダミーパケット作成部14は、ステップD1において作成したダミーパケットを、ioctlを用いて仮想NICに受信(処理)させる。その結果、図8を用いて後述するカーネル15のパケット登録処理(1)にパケットが渡される。
その後、処理を終了する。
なお、この図7に示す処理は、異なる2つのシーケンシャル番号をそれぞれ用いて2回実行される。これにより異なるシーケンシャル番号を有する2つのダミーパケット(第1のダミーパケットおよび第2のダミーパケット)が作成される。
すなわち、第1のダミーパケットには、図6のフローチャートのステップC2においてパラメータとして用意された“0x0”がシーケンシャル番号として設定される。また、第2のダミーパケットには、図6のフローチャートのステップC3においてパラメータとして用意された“0x80000000”が設定される。
次に、実施形態の一例としてのストレージシステム1におけるカーネル15のパケット登録処理(1)を、図8に示すフローチャート(ステップE1〜E4)に従って説明する。
ダミーパケット作成部14が作成したダミーパケットをダミーパケット受信処理部16が受信する。
ステップE1において、TCP接続情報照合部17は、ダミーパケット受信処理部16が受信したダミーパケットについて、カーネル15が管理しているTCP接続情報60と照合する。
なお、ダミーパケットの情報がTCP接続情報照合部17に登録されていないものである場合には、当該パケットは無視される。
ステップE2において、シーケンシャル番号確認部18が、ダミーパケット受信処理部16が受信したダミーパケットのシーケンシャル番号を、カーネル15が管理している前回処理時のシーケンシャル番号と比較する。
ACKパケット出力部19は、シーケンシャル番号確認部18による確認の結果、ダミーパケット(第2のダミーパケット)のシーケンシャル番号が、前回処理したダミーパケット(第1のダミーパケット)のシーケンシャル番号と不一致である場合に、正しいシーケンシャル番号を付加したACKパケットを仮想NICから出力する。
ステップE3において、図3に示した仮想NIC出力処理が呼ばれる。この仮想NIC出力処理においては、TCP RSTパケットが生成される。これにより、後述するカーネル15のパケット登録処理(2)にパケットが渡り(ステップE4)、カーネル15のパケット登録処理(1)が終了する。
次に、実施形態の一例としてのストレージシステム1におけるカーネル15のパケット登録処理(2)を、図9に示すフローチャート(ステップF1)に従って説明する。
カーネル15のパケット登録処理(2)においては、ステップF1において、RSTパケット処理部21によるRSTパケット処理ルーチンが呼ばれる。RSTパケット処理が開始される。
すなわち、RSTパケット処理部21は、リセットパケット出力部20から出力されるTCP RSTパケットに基づき、このTCP RSTパケットに含まれるシーケンシャル番号およびIPアドレスを複数のTCP接続情報60と照合する。RSTパケット処理部21は、複数のTCP接続情報60から、TCP RSTパケットに含まれる、シーケンシャル番号およびIPアドレス(local,foreign)によって特定されるTCP接続情報60を削除して、処理を終了する。
(C)効果
このように、実施形態の一例としてのストレージシステム1によれば、仮想NIC設定部12が仮想NICを設定し、ダミーパケット作成部14が、クライアント2から送信されたかのように擬似的に認識させるダミーパケットを作成し、仮想NICに処理させる。
シーケンシャル番号確認部18が、受信したダミーパケットのシーケンシャル番号を、カーネル15が管理している前回処理時のシーケンシャル番号と比較し、不一致である場合に、ACKパケット出力部19が正しいシーケンシャル番号を付加したACKパケットを仮想NICから出力する。
その後、この正しいシーケンシャル番号を含むTCP RSTパケットを生成し、RSTパケット処理部21が、このTCP RSTパケットに基づき、複数のTCP接続情報60の中から、クラスタ切り替えにより削除されたIPアドレスに関する、不要なTCP接続情報60を削除する。
これにより、クラスタ切り替えにより、切り替え元のストレージ装置10において発生する不要なTCP接続情報60を削除することができる。
そして、不要なTCP接続情報60を削除することにより、クラスタ内のメモリ127の領域が解放される。また、TCP ACK輻輳を抑止し、ネットワークの有効利用が可能になる。さらに、TCP ACK輻輳によるクラスタ切り替えの遅延を抑止することもできる。
また、ダミーパケット作成部14が、シーケンシャル番号が大きく異なる2つのダミーパケットを作成して送信することで、シーケンシャル番号確認部18によるシーケンシャル番号の不一致を確実に検出させることができる。
仮想NIC設定部12が仮想NICを設定することで、上述したTCP接続情報削除処理がCA124等の通信機器に影響を与えることがなく、利便性が高い。
(D)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、各CM111のCPU110が実行するOSがLinuxである例について示しているが、これに限定されるものではなく、種々変形して実施することができる。
また、上述した実施形態においては、ダミーパケット受信処理部16,TCP接続情報照合部17,シーケンシャル番号確認部18,ACKパケット出力部19およびRSTパケット処理部21としての機能をカーネル15が備えているが、これらのうち少なくとも一部の機能をカーネル15の外部に持たせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(E)付記
(付記1)
第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、前記第2の処理装置に備えられるネットワーク制御装置であって、
前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、
仮想通信インタフェースを設定する仮想通信インタフェース設定部と、
送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得する通信進捗情報取得部と、
取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成するリセットパケット生成部と、
前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する削除処理部と
を備えることを特徴とする、ネットワーク制御装置。
(付記2)
前記通信進捗情報取得部が、
仮通信進捗情報を設定した前記ダミーパケットを出力するダミーパケット作成部と、
前記ダミーパケットに対して、前記第2の処理装置において管理する前記通信進捗情報を含む応答パケットを出力する応答出力部と
を備え、
前記リセットパケット生成部が、前記応答パケットに含まれる前記通信進捗情報を用いて、前記リセットパケットを生成する
ことを特徴とする、付記1記載のネットワーク制御装置。
(付記3)
前記ダミーパケット作成部が、互いに異なる仮通信進捗情報を設定した2つの前記ダミーパケットを出力する
ことを特徴とする、付記2記載のネットワーク制御装置。
(付記4)
第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、
前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、前記第2の処理装置において、
仮想通信インタフェースを設定する仮想通信インタフェース設定部と、
送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得する通信進捗情報取得部と、
取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成するリセットパケット生成部と、
前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する削除処理部と
を備えることを特徴とする、クラスタシステム。
(付記5)
前記通信進捗情報取得部が、
仮通信進捗情報を設定した前記ダミーパケットを出力するダミーパケット作成部と、
前記ダミーパケットに対して、前記第2の処理装置において管理する前記通信進捗情報を含む応答パケットを出力する応答出力部と
を備え、
前記リセットパケット生成部が、前記応答パケットに含まれる前記通信進捗情報を用いて、前記リセットパケットを生成する
ことを特徴とする、付記4記載のクラスタシステム。
(付記6)
前記ダミーパケット作成部が、互いに異なる仮通信進捗情報を設定した2つの前記ダミーパケットを出力する
ことを特徴とする、付記5記載のクラスタシステム。
(付記7)
第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、前記第2の処理装置のプロセッサに、
前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、
仮想通信インタフェースを設定し、
送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得し、
取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成し、
前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する
処理を実行させることを特徴とする、制御プログラム。
(付記8)
仮通信進捗情報を設定した前記ダミーパケットを出力し、
前記ダミーパケットに対して、前記第2の処理装置において管理する前記通信進捗情報を含む応答パケットを出力し、
前記応答パケットに含まれる前記通信進捗情報を用いて、前記リセットパケットを生成する
処理を、前記プロセッサに実行させることを特徴とする、付記7記載の制御プログラム。
(付記9)
互いに異なる仮通信進捗情報を設定した2つの前記ダミーパケットを出力する
処理を、前記プロセッサに実行させることを特徴とする、付記8記載の制御プログラム。
1 ストレージシステム
2 クライアント
3 イーサスイッチ
10−1,10−2,10 ストレージ装置
110 CPU
11 TCP接続情報削除処理部
12 仮想NIC設定部
13 テーブル編集部
14 ダミーパケット作成部
15 カーネル
16 ダミーパケット受信処理部
17 TCP接続情報照合部
18 シーケンシャル番号確認部
19 ACKパケット出力部
20 リセットパケット出力部
21 RSTパケット処理部
22 ルーティングテーブル
23 ARPテーブル
111 CM
124 CA
125 RA
126 DA
127 メモリ
130 ディスクエンクロージャ
131 ディスク装置
50 通信線
60 TCP接続情報

Claims (5)

  1. 第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、前記第2の処理装置に備えられるネットワーク制御装置であって、
    前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、
    仮想通信インタフェースを設定する仮想通信インタフェース設定部と、
    送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得する通信進捗情報取得部と、
    取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成するリセットパケット生成部と、
    前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する削除処理部と
    を備えることを特徴とする、ネットワーク制御装置。
  2. 前記通信進捗情報が通信の進捗を表すシーケンシャル番号であり、
    前記通信進捗情報取得部が、
    パラメータとして付与されたシーケンシャル番号を設定した前記ダミーパケットを出力するダミーパケット作成部と、
    前記ダミーパケットに対して、前記第2の処理装置において管理する前記通信進捗情報を含む応答パケットを出力する応答出力部と
    を備え、
    前記リセットパケット生成部が、前記応答パケットに含まれる前記通信進捗情報を用いて、前記リセットパケットを生成する
    ことを特徴とする、請求項1記載のネットワーク制御装置。
  3. 前記ダミーパケット作成部が、2つの前記ダミーパケットを出力し、
    前記2つのダミーパケットにそれぞれ設定された、前記パラメータとして付与されたシーケンシャル番号が互いに異なっている
    ことを特徴とする、請求項2記載のネットワーク制御装置。
  4. 第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、
    前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、前記第2の処理装置において、
    仮想通信インタフェースを設定する仮想通信インタフェース設定部と、
    送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得する通信進捗情報取得部と、
    取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成するリセットパケット生成部と、
    前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する削除処理部と
    を備えることを特徴とする、クラスタシステム。
  5. 第1の処理装置と第2の処理装置とを備え、接続先装置と通信可能に接続されるクラスタシステムにおいて、前記第2の処理装置のプロセッサに、
    前記接続先装置との通信相手が、前記第2の処理装置から前記第1の処理装置へ切り替わった際に、
    仮想通信インタフェースを設定し、
    送信元が前記接続先装置であると擬似的に認識させるダミーパケットを前記仮想通信インタフェースに処理させることで、前記第2の処理装置における前記接続先装置との通信進捗状態を表す通信進捗情報を取得し、
    取得した前記通信進捗情報を用いて、前記通信進捗情報を含むリセットパケットを生成し、
    前記リセットパケットに基づき、前記第2の処理装置に記憶された前記接続先装置との間における接続記録情報を削除する
    処理を実行させることを特徴とする、制御プログラム。
JP2015225667A 2015-11-18 2015-11-18 ネットワーク制御装置、クラスタシステムおよび制御プログラム Active JP6575318B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015225667A JP6575318B2 (ja) 2015-11-18 2015-11-18 ネットワーク制御装置、クラスタシステムおよび制御プログラム
US15/347,857 US10122635B2 (en) 2015-11-18 2016-11-10 Network controller, cluster system, and non-transitory computer-readable recording medium having stored therein control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015225667A JP6575318B2 (ja) 2015-11-18 2015-11-18 ネットワーク制御装置、クラスタシステムおよび制御プログラム

Publications (2)

Publication Number Publication Date
JP2017098606A JP2017098606A (ja) 2017-06-01
JP6575318B2 true JP6575318B2 (ja) 2019-09-18

Family

ID=58690861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015225667A Active JP6575318B2 (ja) 2015-11-18 2015-11-18 ネットワーク制御装置、クラスタシステムおよび制御プログラム

Country Status (2)

Country Link
US (1) US10122635B2 (ja)
JP (1) JP6575318B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425473B1 (en) * 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
CN110995805B (zh) * 2019-11-24 2022-02-18 浪潮电子信息产业股份有限公司 一种集群网卡的确定方法、装置、设备及可读存储介质
US11902207B2 (en) * 2020-12-01 2024-02-13 Texas Instruments Incorporated TCP power optimization protocol for connected and low throughput devices
JP7120678B1 (ja) * 2021-05-06 2022-08-17 Necプラットフォームズ株式会社 通信処理装置、通信処理システム、障害通知方法及び障害通知プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002344450A (ja) 2001-05-15 2002-11-29 Hitachi Ltd 高可用性処理方法及びその実施システム並びにその処理プログラム
US7076555B1 (en) * 2002-01-23 2006-07-11 Novell, Inc. System and method for transparent takeover of TCP connections between servers
US7467202B2 (en) * 2003-09-10 2008-12-16 Fidelis Security Systems High-performance network content analysis platform
US20050283529A1 (en) * 2004-06-22 2005-12-22 Wan-Yen Hsu Method and apparatus for providing redundant connection services
JP4516439B2 (ja) 2005-02-01 2010-08-04 富士通株式会社 中継プログラム、中継方法および中継装置
US7971099B2 (en) 2008-04-02 2011-06-28 International Business Machines Corporation Method for enabling faster recovery of client applications in the event of server failure
US8363549B1 (en) * 2009-09-02 2013-01-29 Juniper Networks, Inc. Adaptively maintaining sequence numbers on high availability peers
JP5574944B2 (ja) * 2010-12-21 2014-08-20 三菱電機株式会社 無線中継装置および無線中継方法
US9088584B2 (en) * 2011-12-16 2015-07-21 Cisco Technology, Inc. System and method for non-disruptive management of servers in a network environment
US9560172B2 (en) * 2013-05-06 2017-01-31 Alcatel Lucent Stateless recognition of keep-alive packets
US20150082378A1 (en) * 2013-09-18 2015-03-19 Apcera, Inc. System and method for enabling scalable isolation contexts in a platform
TWI501092B (zh) * 2013-11-19 2015-09-21 Synology Inc 伺服器群集之操作方法
US10180889B2 (en) * 2014-06-23 2019-01-15 Liqid Inc. Network failover handling in modular switched fabric based data storage systems

Also Published As

Publication number Publication date
US10122635B2 (en) 2018-11-06
JP2017098606A (ja) 2017-06-01
US20170142016A1 (en) 2017-05-18

Similar Documents

Publication Publication Date Title
US7787383B2 (en) Method and apparatus for monitoring a connection in a peer-to-peer network
US6886086B2 (en) Storage system and data backup method for the same
JP6575318B2 (ja) ネットワーク制御装置、クラスタシステムおよび制御プログラム
US9253293B2 (en) Fault-tolerant communications in routed networks
US10466935B2 (en) Methods for sharing NVM SSD across a cluster group and devices thereof
JP2009252239A (ja) Hba移行の方法および装置
US20070070975A1 (en) Storage system and storage device
JP2011134296A (ja) I/oパス切替え方法及び装置
JP2005010872A (ja) 仮想ポート名の管理装置
US8359379B1 (en) Method of implementing IP-based proxy server for ISCSI services
JP2006146767A (ja) Ip−sanネットワークフィルタ定義作成方法およびフィルタ定義設定方法
JP2005157826A (ja) アクセス制御装置及び方法
JP5884606B2 (ja) ストレージ管理方法、システム、およびプログラム
JP2021129142A (ja) ネットワーク構成図生成方法およびネットワーク構成図生成プログラム
JP4133738B2 (ja) 高速ネットワークアドレス引継ぎ方法、ネットワーク装置及びプログラム
US20180241820A1 (en) Software-defined storage apparatus, and system and storage method thereof
JP7103231B2 (ja) コネクション管理ユニット、およびコネクション管理方法
JP7473600B2 (ja) ストレージシステム、データ送信方法およびネットワークインタフェース
US11855778B2 (en) Network interface for storage controller
CN105573935A (zh) 调平io
Vugt et al. Configuring Storage
US20180145875A1 (en) Information processing device
JP2006155398A (ja) データ仲介方法およびデータ仲介装置
JP5452323B2 (ja) 情報処理装置及び試験方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190507

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190705

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190805

R150 Certificate of patent or registration of utility model

Ref document number: 6575318

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150