JP6179141B2 - Data transfer system and network load reducing method - Google Patents
Data transfer system and network load reducing method Download PDFInfo
- Publication number
- JP6179141B2 JP6179141B2 JP2013051721A JP2013051721A JP6179141B2 JP 6179141 B2 JP6179141 B2 JP 6179141B2 JP 2013051721 A JP2013051721 A JP 2013051721A JP 2013051721 A JP2013051721 A JP 2013051721A JP 6179141 B2 JP6179141 B2 JP 6179141B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- transfer
- transfer destination
- storage
- data
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
ネットワークを経由して対象データを複数のストレージに格納する際に、そのネットワークの負荷を軽減させるデータ転送システム、転送用データ送信装置、転送用データ処理装置、ネットワーク負荷軽減方法、転送用データ送信プログラムおよび転送用データ処理プログラムに関する。 A data transfer system, a transfer data transmission device, a transfer data processing device, a network load reduction method, and a transfer data transmission program for reducing the load on the network when storing target data in a plurality of storages via a network And a data processing program for transfer.
OpenStack(登録商標)のSwiftを利用したクラウドシステムでは、データを格納する際、冗長性を確保するため、データを多重に格納する。これは、システム全体の価格を抑えるため、信用の低いストレージを用いてシステムを構成した場合に、データを格納するノードの信頼性を、データを多重に格納することで確保しようとするものである。 In a cloud system using OpenStack (registered trademark) Swift, when data is stored, the data is stored in multiples in order to ensure redundancy. In order to reduce the price of the entire system, when the system is configured using low-trust storage, the reliability of the node storing the data is to be ensured by storing the data in multiple layers. .
また、特許文献1には、分岐装置の負荷を軽減させるマルチキャストデータ通信システムが記載されている。特許文献1に記載されたマルチキャストデータ通信システムは、分岐処理が不必要なスイッチでは、分岐処理を行わないようにすることで、スイッチ自身の負荷を軽減させる。
また、非特許文献1には、イーサネット(登録商標)で経路を冗長化するための技術としてTRILL(TRansparent Interconnection of Lots of Links)が記載されている。非特許文献1に記載されたTRILLは、データが送信されるネットワーク経路を選択または限定することで、ネットワーク負荷を軽減する。また、関連する技術として、不要なマルチキャストトラフィックをフィルタリングするIGMP(Internet Group Management Protocol)スヌーピングも知られている。
Further,
OpenStackのSwiftでは、プロキシノードからデータを多重に書き込むことで、ストレージノードに障害が発生した場合でもデータを保証する。以下の説明では、ストレージノードへの書き込みを3多重として説明する。この場合、プロキシノードとストレージノード間のネットワークには、ユーザが送信するデータ量の3倍以上のデータが流れることになるため、ネットワーク負荷が高くなってしまう。 In OpenStack's Switch, data is guaranteed even when a failure occurs in the storage node by writing multiple data from the proxy node. In the following description, the writing to the storage node is described as being three multiplexed. In this case, data more than three times the amount of data transmitted by the user flows through the network between the proxy node and the storage node, which increases the network load.
ストレージの信頼性が高い場合、データの多重度は3多重程度で済むが、ストレージの信頼度が低い場合、データを保証するため、さらに多重度を上げる必要がある。そして、多重度が上がると、それに伴い、さらにネットワーク負荷が高くなってしまう。 When the storage reliability is high, the data multiplicity may be about three. However, when the storage reliability is low, it is necessary to further increase the multiplicity in order to guarantee the data. As the multiplicity increases, the network load further increases accordingly.
具体的には、データを多重に格納することでノードの信頼性を確保しようとした場合、冗長性を上げようとすればするほど、ネットワークの負荷が高くなると言う問題がある。具体的には、プロキシノードが、実際にデータを格納するストレージノードに対して、データを多重に格納する指示を行う場合、プロキシノードとストレージノードとの間のネットワークに、同一のデータが多く流れてしまうという問題がある。 Specifically, there is a problem that when the reliability of a node is to be ensured by storing data in multiple layers, the higher the redundancy, the higher the load on the network. Specifically, when the proxy node instructs the storage node that actually stores the data to store the data in a multiplexed manner, a large amount of the same data flows through the network between the proxy node and the storage node. There is a problem that it ends up.
また、特許文献1に記載されたシステムは、分岐装置の負荷を軽減することは可能であるが、データが送信される通信路の負荷を軽減できるわけではない。そのため、例えば、同一データを送信する際に同一通信路が使用される場合、その通信路の負荷を軽減することはできない。また、非特許文献1に記載されたTRILLを用いても、同一データを送信する際に同一通信路が使用される場合、その通信路の負荷を軽減することは困難である。これは、IGMPスムーピングを利用した場合も同様である。
Moreover, although the system described in
そこで、本発明は、データを冗長化させて複数のストレージに格納する場合、データの送信側装置とストレージ間のネットワーク負荷を軽減させることができるデータ転送システム、転送用データ送信装置、転送用データ処理装置、ネットワーク負荷軽減方法、転送用データ送信プログラムおよび転送用データ処理プログラムを提供することを目的とする。 Therefore, the present invention provides a data transfer system, a transfer data transmission device, and transfer data that can reduce the network load between the data transmission side device and the storage when data is made redundant and stored in a plurality of storages. It is an object of the present invention to provide a processing device, a network load reduction method, a transfer data transmission program, and a transfer data processing program.
本発明によるデータ転送システムは、ネットワークを介して同一の対象データを複数のストレージに格納するデータ転送システムにおいて、対象データを格納すべき複数のストレージを決定するプロキシサーバと、プロキシサーバから送信されるデータを受信してストレージへ転送するノードとを備え、ノードが、自ノードからデータを転送する先のノードである転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、受信したデータを転送するデータ転送手段と、自ノードが分岐点か否かを判断する分岐点判断手段と、分岐点判断手段によって自ノードが分岐点であると判断された場合、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求をプロキシサーバに送信するアドレス要求手段とを含み、プロキシサーバが、対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを作成して、その転送用パケットをノードに送信するパケット送信手段と、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定手段と、分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、その分岐点を示すノードの転送先情報テーブル記憶手段に、その分岐点を示すノードの転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段とを含み、プロキシサーバの分岐点決定手段が、特別ポート宛パケットを各ストレージまでの経路に送信し、ノードの分岐点判断手段が、特別ポート宛パケットを異なる物理ポートに送信する場合に、自ノードを分岐点と判断し、プロキシサーバの分岐点決定手段が、仮想アドレスの要求に応じて仮想アドレスを割り当て、プロキシサーバの転送先情報登録手段が、割り当てられた仮想アドレスと転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録し、ノードのデータ転送手段は、転送先情報テーブル記憶手段に転送先ノードが登録されている場合、その転送先ノードに対応するストレージ以外の格納先アドレスを転送用パケットから削除してその転送用パケットを転送先ノードに転送し、削除された格納先アドレス宛に対象データを複製して転送することを特徴とする。 A data transfer system according to the present invention is a data transfer system that stores the same target data in a plurality of storages via a network, and a proxy server that determines a plurality of storages to store the target data, and a proxy server that transmits the data. A node that receives data and transfers it to the storage, and the node includes a transfer destination node that is a node to which data is transferred from its own node, and a plurality of storages that store data that passes through the transfer destination node. Transfer destination information table storage means for storing the associated transfer destination information table, data transfer means for transferring the received data, branch point determination means for determining whether or not the own node is a branch point, and branch point determination means If the local node is determined to be a branch point, the storage capacity of the local node's transfer destination The previous address, the request for the virtual address allocated to the local node comprises an address request unit which transmits to the proxy server, the proxy server, storage location of the plurality of storage and destination node of the target data, the target data is stored A packet transmission means that creates a transfer packet that includes the address and the target data and sends the transfer packet to the node, and a node at which the path for transmitting the target data to multiple storage branches And when there are two or more storages at the transfer destination of the transfer destination node of the node indicating the branch point, the branch point is stored in the transfer destination information table storage means of the node indicating the branch point. The transfer destination information registration that registers the virtual address of the transfer destination node of the indicated node and two or more storages existing in the transfer destination in association with each other. And it means, when the branch point determining means of the proxy server sends a special port addressed packets to the path to each storage, branch point determination unit node, to send a special port packet addressed to different physical ports, The local node is determined to be a branch point, the branch point determination unit of the proxy server assigns a virtual address in response to a request for a virtual address, and the transfer destination information registration unit of the proxy server exists at the assigned virtual address and transfer destination If the transfer destination node is registered in the transfer destination information table storage means , the node data transfer means corresponds to the transfer destination node. The storage address other than the storage to be used is deleted from the transfer packet and the transfer packet is transferred to the transfer destination node. The target data is copied and transferred to the storage address.
本発明による転送用データ送信装置は、同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛に前記対象データをネットワーク上のノードを介して送信する転送用データ送信装置であって、ノードは、自ノードからデータを転送する先のノードである転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段を備えており、対象データの転送先と、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合にその転送用パケットから対象データを複製して各ストレージに送信するノードに対してその転送用パケットを送信するパケット送信手段と、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定手段と、分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、その分岐点を示すノードの転送先情報テーブル記憶手段に、その分岐点を示すノードの転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段とを備え、分岐点決定手段が、特別ポート宛パケットを各ストレージまでの経路に送信し、ノードが特別ポート宛パケットを異なる物理ポートに送信するとして自ノードを分岐点と判断した際にそのノードから送信される、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求に応じて、仮想アドレスを割り当て、転送先情報登録手段が、割り当てられた仮想アドレスと転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録することを特徴とする。 A transfer data transmitting apparatus according to the present invention is a transfer data transmitting apparatus that determines a plurality of storages to store the same target data, and transmits the target data to each determined storage via a node on the network. The node stores a transfer destination information table in which a transfer destination node that is a transfer destination of data from its own node and a plurality of storages storing data passing through the transfer destination node are stored. A destination information table storage means is provided, and a transfer packet including the transfer destination of the target data, storage destination addresses of the plurality of storages storing the target data, and the target data is created and addressed to the plurality of storages. When the target data of the target is branched, the target data is copied from the transfer packet and sent to each storage. A packet transmitting means for transmitting a transmission packet, and the branch point determining means path determines that the branch point node that branches when transmitting target data into a plurality of storage, transfer destination node of the node indicating a branch point If there are two or more storages in advance, the transfer destination information table storage means of the node indicating the branch point stores the virtual address of the transfer destination node of the node indicating the branch point and two or more storages existing at the transfer destination. And a transfer destination information registering means for registering them in association with each other . The branch point determining means transmits a special port addressed packet to the path to each storage, and the node transmits the special port addressed packet to a different physical port. When the local node is determined to be a branch point, the storage destination address that is sent from that node and that exists at the local node's forwarding destination, and the local node In response to a request for a virtual address to be allocated, a virtual address is allocated, and the transfer destination information registration unit associates the allocated virtual address with two or more storages existing in the transfer destination and registers them in the transfer destination information table storage unit. characterized in that it.
本発明による転送用データ処理装置は、同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛の対象データを送信する送信装置から転送用パケットを受信して、複数のストレージにその転送用パケットを転送する転送用データ処理装置であって、自ノードからデータを転送する先のノードである転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、転送先情報テーブル記憶手段に転送先ノードが登録されている場合、対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを送信装置から受信したときに、その転送用パケットから、転送先ノードに対応するストレージ以外の格納先アドレスを削除して転送先ノードに転送し、削除された格納先アドレス宛に対象データを複製して転送するデータ転送手段と、自転送用データ処理装置が分岐点か否かを判断する分岐点判断手段と、分岐点判断手段によって自転送用データ処理装置が分岐点であると判断された場合、自転送用データ処理装置の転送先に存在するストレージの格納先アドレスと、自転送用データ処理装置に割り振る仮想アドレスの要求を送信装置に送信するアドレス要求手段とを備え、分岐点判断手段が、送信装置から各ストレージまでの経路に送信される特別ポート宛パケットを受信し、その特別ポート宛パケットを異なる物理ポートに送信する場合に、自転送用データ処理装置を分岐点と判断し、データ転送手段は、送信装置が仮想アドレスの要求に応じて複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定してその分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合にその分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録すると、その登録内容に応じて対象データを転送することを特徴とする。 The transfer data processing device according to the present invention determines a plurality of storages to store the same target data, receives a transfer packet from a transmission device that transmits the determined target data addressed to each storage, and stores the plurality of storages A transfer data processing device for transferring the transfer packet to a transfer destination node to which data is transferred from its own node and a plurality of storages for storing data passing through the transfer destination node. When the transfer destination information table storage unit for storing the associated transfer destination information table and the transfer destination node are registered in the transfer destination information table storage unit, the transfer destination node of the target data and the target data are stored. When a transfer packet containing the storage destination addresses of multiple storages and the target data is received from the transmitter, From socket, remove the storage destination address other than the storage corresponding to the destination node forwards the destination node, a data transfer means for transferring duplicates the target data addressed deleted storage destination address, for the mobile transfer A branch point determination unit that determines whether or not the data processing device is a branch point; and if the data processing device for own transfer is determined to be a branch point by the branch point determination unit, the transfer destination of the data processing device for own transfer is A storage destination address of an existing storage and an address request means for transmitting a request for a virtual address to be allocated to the data processing apparatus for own transfer to the transmission apparatus. The branch point determination means transmits the path from the transmission apparatus to each storage. When a packet addressed to a special port is received and the packet addressed to the special port is transmitted to a different physical port, the data processing device for own transfer is determined to be a branch point. The data transfer means determines the node at which the path when the transmission device transmits the target data to the plurality of storages in response to the request for the virtual address as the branch point, and the transfer destination node of the node indicating the branch point When there are two or more storages at the transfer destination, the virtual address assigned to the transfer destination node of the node indicating the branch point is associated with the two or more storages existing at the transfer destination in association with the transfer destination information table storage means If registered, the target data is transferred according to the registered contents .
本発明によるネットワーク負荷軽減方法は、ネットワークを介して同一の対象データを複数のストレージに格納する際にそのネットワークの負荷を軽減するネットワーク負荷軽減方法であって、対象データを格納すべき複数のストレージを決定するプロキシサーバが、対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを作成して、プロキシサーバから送信されるデータを受信してストレージへ転送するノードに対してその転送用パケットを送信し、ノードが、転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、その転送先ノードに対応するストレージ以外の格納先アドレスを転送用パケットから削除してその転送用パケットを転送先ノードに転送し、削除された格納先アドレス宛に対象データを複製して転送し、プロキシサーバが、特別ポート宛パケットを各ストレージまでの経路に送信し、ノードが、特別ポート宛パケットを異なる物理ポートに送信する場合に、自ノードを分岐点と判断し、自ノードを分岐点であると判断した場合、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求をプロキシサーバに送信し、プロキシサーバが、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定し、仮想アドレスの要求に応じて仮想アドレスを割り当て、プロキシサーバが、分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、その分岐点を示すノードの転送先情報テーブル記憶手段に、その分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて登録することを特徴とする。 The network load reducing method according to the present invention is a network load reducing method for reducing the load on the network when the same target data is stored in a plurality of storages via a network, and the plurality of storages to store the target data. The proxy server determines the transfer destination node of the target data, the storage destination addresses of the multiple storages storing the target data, and the transfer packet including the target data, and is transmitted from the proxy server. The transfer packet is transmitted to the node that receives the data to be transferred to the storage, and the node associates the transfer destination node with a plurality of storages that store the data passing through the transfer destination node. If the destination node to which data is transferred from the local node is registered in the destination information table , Remove the storage destination address other than the storage corresponding to the destination node from the transfer packet and forwards the transfer packet to the destination node, and forwarding duplicates the target data deleted storage destination address destined When the proxy server sends a packet destined for the special port to the path to each storage, and the node sends the packet destined for the special port to a different physical port, the node determines that the node is a branch point, and the node is a branch point. If it is determined that, the storage destination address of the local node's transfer destination and the request for the virtual address to be allocated to the local node are sent to the proxy server, and the proxy server sends the target data to multiple storages path nodes that branch determines the branching point of time, assigns a virtual address in response to a request of the virtual address, the proxy server But if there is more than one storage destination destination node of a node indicating a branch point, the transfer destination information table storage unit of the node indicating the branch point, the destination node of the node representing the branch point The allocated virtual address and two or more storages existing at the transfer destination are registered in association with each other.
本発明による転送用データ送信プログラムは、同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛に対象データをネットワーク上のノードを介して送信するコンピュータに適用される転送用データ送信プログラムであって、ノードは、自ノードからデータを転送する先のノードである転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段を備えており、コンピュータに、対象データの転送先と、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合にその転送用パケットから対象データを複製して各ストレージに送信するノードに対してその転送用パケットを送信するパケット送信処理、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定処理、および、分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、その分岐点を示すノードの転送先情報テーブル記憶手段に、その分岐点を示すノードの転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録処理を実行させ、分岐点決定処理で、特別ポート宛パケットを各ストレージまでの経路に送信させ、ノードが特別ポート宛パケットを異なる物理ポートに送信するとして自ノードを分岐点と判断した際にそのノードから送信される、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求に応じて、仮想アドレスを割り当てさせ、転送先情報登録処理で、割り当てられた仮想アドレスと転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録させることを特徴とする。 The transfer data transmission program according to the present invention determines a plurality of storages to store the same target data, and is used for a transfer applied to a computer that transmits the target data to each determined storage via a node on the network. In the data transmission program, a node is a transfer destination information table in which a transfer destination node that is a node to which data is transferred from its own node and a plurality of storages that store data that passes through the transfer destination node are associated with each other. A transfer destination information table storage means for storing a transfer packet including a transfer destination of target data, storage destination addresses of a plurality of storages storing the target data, and the target data. Create target data from multiple packets when the target data for multiple storage branches Ltd. to packet transmission processing for transmitting the transfer packet to the node to be sent to each storage branch point determination process path is determined as the branch point node that branches when transmitting target data into a plurality of storage, When there are two or more storages at the transfer destination of the transfer destination node of the node indicating the branch point, the transfer destination information table storage means of the node indicating the branch point stores the transfer destination node of the node indicating the branch point. A transfer destination information registration process for registering a virtual address and two or more storages existing at a transfer destination in association with each other is executed, and a special port-addressed packet is transmitted to the path to each storage in a branch point determination process. Is sent from that node when it determines that its own node is a branch point when sending a packet addressed to a special port to a different physical port. In response to a request for a storage destination address of a storage existing at the destination and a virtual address allocated to the own node, a virtual address is assigned, and two or more existing at the assigned virtual address and the destination in the transfer destination information registration process The storage is associated with each other and registered in the transfer destination information table storage means .
本発明による転送用データ処理プログラムは、同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛の対象データを送信する送信装置から、転送用パケットを受信して、複数のストレージにその転送用パケットを転送するコンピュータに適用される転送用データ処理プログラムであって、コンピュータに、転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、送信装置から対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを受信したときに、その転送用パケットから、転送先ノードに対応するストレージ以外の格納先アドレスを削除して転送先ノードに転送し、削除された格納先アドレス宛に対象データを複製して転送するデータ転送処理、自コンピュータが分岐点か否かを判断する分岐点判断処理、および、分岐点判断処理で自コンピュータが分岐点であると判断された場合、自コンピュータの転送先に存在するストレージの格納先アドレスと、自コンピュータに割り振る仮想アドレスの要求を送信装置に送信するアドレス要求処理を実行させ、分岐点判断処理で、送信装置から各ストレージまでの経路に送信される特別ポート宛パケットを受信し、その特別ポート宛パケットを異なる物理ポートに送信する場合に、自コンピュータを分岐点と判断させ、データ転送処理で、送信装置が仮想アドレスの要求に応じて複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定してその分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合にその分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録すると、その登録内容に応じて対象データを転送させることを特徴とする。 The transfer data processing program according to the present invention determines a plurality of storages to store the same target data, receives a transfer packet from a transmission device that transmits the determined target data addressed to each storage, A transfer data processing program applied to a computer that transfers the transfer packet to a storage, wherein the transfer destination node is associated with a plurality of storages that store data passing through the transfer destination node When the transfer destination node to which data is transferred from the own node is registered in the transfer destination information table, the transfer destination node of the target data from the transmitting device and the storage destination addresses of the multiple storages storing the target data And the target data are received from the transfer packet. Remove the storage destination address other than the storage corresponding to the de transferred to the destination node, the data transfer process for transferring duplicates the target data addressed storage destination address that has been removed, the self computer whether a branch point The branch point determination process to be determined, and if the local computer is determined to be a branch point in the branch point determination process, a request for the storage address of the storage existing at the transfer destination of the local computer and the virtual address to be allocated to the local computer Execute the address request processing to send to the transmitting device, receive the special port-addressed packet sent to the path from the transmitting device to each storage, and send the special port-addressed packet to a different physical port in the branch point judgment processing The computer determines that it is a branch point, and in the data transfer process, the sending device responds to a request for a virtual address. If the node at which the path for transmitting the target data to the number of storages branches is determined as a branch point, and there are two or more storages in the transfer destination of the transfer destination node of the node indicating the branch point, the branch point is When the virtual address assigned to the transfer destination node of the indicated node is associated with two or more storages existing at the transfer destination and registered in the transfer destination information table storage means, the target data is transferred according to the registered contents. Features.
本発明によれば、データを冗長化させて複数のストレージに格納する場合、データの送信側装置とストレージ間のネットワーク負荷を軽減させることができる。 ADVANTAGE OF THE INVENTION According to this invention, when making data redundant and storing in several storage, the network load between the transmission side apparatus and storage of data can be reduced.
以下、本発明の実施形態を図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明によるデータ転送システムの一実施形態を示すブロック図である。また、図2は、本実施形態のデータ転送システムを利用したクラウドシステムの例を示す説明図である。 FIG. 1 is a block diagram showing an embodiment of a data transfer system according to the present invention. FIG. 2 is an explanatory diagram showing an example of a cloud system using the data transfer system of this embodiment.
図2に例示するクラウドシステムには、例えば、OpenStackのSwiftが利用される。図2に例示するクラウドシステムは、多数のクライアント40と、データを格納する複数のストレージノード31〜33を備える。なお、図2に例示するクラウドシステムは、3つのストレージノードを備えているが、ストレージノードの数は3つに限定されず、2つであってもよく、4つ以上であってもよい。また、以下の説明では、ストレージノードのことを、単にストレージと記すこともある。
In the cloud system illustrated in FIG. 2, for example, OpenStack Swift is used. The cloud system illustrated in FIG. 2 includes a large number of
クライアント40と、ストレージノード31〜33の間には、クライアント40からのデータd1を中継するプロキシノード10が複数存在する。プロキシノード10は、ユーザ(クライアント40)から対象データを受信すると、その対象データを格納すべき複数のストレージノードを決定し、受信したデータファイル名から決定した複数のストレージノード31〜33にデータを多重に(例えば、データd1をデータd1〜d3に複製して)格納する。なお、図2に例示するクラウドシステムは、2つのプロキシノードを備えているが、プロキシノードの数は2つに限定されず、1つであってもよく、3つ以上であってもよい。
Between the
また、プロキシノード10とストレージノード31〜33の間は、通信ネットワーク網で接続されており、プロキシノード10から送信されるデータを受信してストレージノード31〜33へ中継するスイッチ20a〜20cが存在する。重複したデータは、通信ネットワーク網を介して各ストレージノード31〜33に格納される。なお、図2に例示するクラウドシステムは、3つのスイッチ20a〜20cを備えているが、スイッチの数は3つに限定されず、2つであってもよく、4つ以上であってもよい。
The
以下の説明では、OpenStackのSwiftを利用して、複数のストレージにデータを冗長化させて格納する場合を例示するが、冗長化する際に利用される技術は、OpenStackのSwiftに限定されない。また、本実施形態では、説明を単純化するため、最小単位である3多重の場合を例に説明する。 In the following description, a case where data is made redundant and stored in a plurality of storages using OpenStack Swift is exemplified, but the technology used for redundancy is not limited to OpenStack Swift. Further, in the present embodiment, in order to simplify the description, a case of 3 multiplexing that is the minimum unit will be described as an example.
図1を参照すると、本実施形態のデータ転送システムは、プロキシノード10と、スイッチ20とを備えている。
Referring to FIG. 1, the data transfer system of this embodiment includes a
プロキシノード10は、分岐点決定手段11と、アドレス通知手段12と、転送先情報テーブル作成手段13と、転送先情報テーブル記憶手段14と、UDP(User Datagram Protocol)カプセリングパケット作成手段15と、コネクション管理手段16と、データ格納先選択手段17とを含む。
The
データ格納先選択手段17は、多数のクライアントからストレージノードに格納すべきデータを受信し、受信したデータをどのストレージノードに多重書きするか決定する。データ格納先選択手段17は、例えば、OpenStack Swiftの基本機能に基づいて、多重書きするストレージノードを決定すればよい。なお、多重書きするストレージノードを決定する方法は、この方法に限定されない。
The data storage destination selection means 17 receives data to be stored in the storage node from a large number of clients, and determines to which storage node the received data is to be multiplexed. For example, the data storage
コネクション管理手段16は、決定された複数のストレージノードそれぞれに対し、通信端点を作成することで、通信パスを確立する。このとき、コネクション管理手段16は、ストレージノードとの通信に使用されるソケット(以下、子ソケットと記す。)と、その子ソケットを管理するための特別製のソケット(以下、親ソケットと記す。)を作成する。なお、コネクション管理手段16の詳細な動作については、後述される。
The connection management means 16 establishes a communication path by creating a communication endpoint for each of the determined plurality of storage nodes. At this time, the connection management means 16 uses a socket used for communication with the storage node (hereinafter referred to as a child socket) and a special socket for managing the child socket (hereinafter referred to as a parent socket). Create The detailed operation of the
分岐点決定手段11は、ストレージノードへの通信パスを確立する。その際、分岐点決定手段11は、対象データを送信する経路が分岐するスイッチを特定し、そのスイッチを分岐点と決定する。そして、分岐点決定手段11は、分岐点になるスイッチに、仮想的にIPアドレスを割り振る。
The branch
アドレス通知手段12は、分岐点決定手段11が決定した分岐点(スイッチ)に、割り振られた仮想的なIPアドレスを通知する。
The
転送先情報テーブル記憶手段14は、データを転送する先のスイッチ(以下、転送先ノードと記す。)と、転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する。この転送先情報テーブルは、通信パスを決定する際、対象データを送信する経路に分岐が発生する場合に、その分岐点の先に存在する複数の相手先(具体的には、ストレージノード)を記憶するものである。 The transfer destination information table storage means 14 is a transfer destination information table in which a switch to which data is transferred (hereinafter referred to as a transfer destination node) and a plurality of storages storing data passing through the transfer destination node are associated with each other. Remember. When determining a communication path, this transfer destination information table shows a plurality of destinations (specifically, storage nodes) existing ahead of the branch point when a branch occurs in the route for transmitting the target data. It is something to remember.
具体的には、分岐点の先に複数のストレージノードが存在する場合、後述する転送先情報テーブル作成手段13が、次のスイッチに対して、その複数のストレージノードが存在することをスイッチ内部の転送先情報テーブルに登録させる。 Specifically, when there are a plurality of storage nodes ahead of the branch point, the transfer destination information table creation means 13 described later indicates that the plurality of storage nodes exist for the next switch. Register in the transfer destination information table.
転送先情報テーブル作成手段13は、分岐点(スイッチ)の転送先ノードの転送先に2以上のストレージノードが存在する場合、その分岐点(スイッチ)の転送先情報テーブルに、その分岐点(スイッチ)の転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージノードとを対応付けて転送先情報テーブルに登録する。 When there are two or more storage nodes at the transfer destination of the transfer destination node of the branch point (switch), the transfer destination information table creation means 13 stores the branch point (switch) in the transfer destination information table of the branch point (switch). ) And the two or more storage nodes existing in the transfer destination are registered in the transfer destination information table in association with each other.
すなわち、転送先情報テーブル作成手段13は、通信パスを決定する際に分岐が発生する場合、分岐点の先に複数の相手先(ストレージノード)がいる場合に、スイッチの転送先に複数の相手先が存在することをスイッチ内部の転送先情報テーブルに記憶させる。
In other words, the transfer destination information
UDPカプセリングパケット作成手段15は、転送先ノードに対象データを送信する。具体的には、UDPカプセリングパケット作成手段15は、データを送信する先の複数の情報を、特別ポート宛のUDPのデータとしてまとめ、UDPでカプセル化したデータを転送先ノードに送信する。以下、UDPカプセリングパケット作成手段15によって作成されたデータを転送用パケットと記すこともある。
The UDP encapsulation packet creating means 15 transmits the target data to the transfer destination node. Specifically, the UDP encapsulation
転送用パケットには、送信元アドレス、転送先(スイッチ)アドレス、格納先を示す複数のストレージノードのアドレス、および、ストレージに格納される対象データが含まれる。 The transfer packet includes a transmission source address, a transfer destination (switch) address, addresses of a plurality of storage nodes indicating storage destinations, and target data stored in the storage.
分岐点決定手段11と、アドレス通知手段12と、転送先情報テーブル作成手段13と、UDPカプセリングパケット作成手段15と、コネクション管理手段16と、データ格納先選択手段17とは、プログラム(転送用データ送信プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、プロキシノード10の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、分岐点決定手段11、アドレス通知手段12、転送先情報テーブル作成手段13、UDPカプセリングパケット作成手段15、コネクション管理手段16およびデータ格納先選択手段17として動作してもよい。
The branch point determination means 11, the address notification means 12, the transfer destination information table creation means 13, the UDP encapsulation packet creation means 15, the connection management means 16, and the data storage destination selection means 17 are a program (data for transfer). This is realized by a CPU of a computer that operates according to a transmission program. For example, the program is stored in a storage unit (not shown) of the
また、分岐点決定手段11と、アドレス通知手段12と、転送先情報テーブル作成手段13と、UDPカプセリングパケット作成手段15と、コネクション管理手段16と、データ格納先選択手段17とは、それぞれが専用のハードウェアで実現されていてもよい。
Further, the branch
また、プロキシノード10は、ストレージノードに転送するためのデータを生成して各スイッチに送信することから、プロキシノード10のことを、転送用データ送信装置と呼ぶことができる。
Further, since the
スイッチ20は、分岐点決定手段21と、アドレス要求手段22と、転送先情報テーブル作成手段23と、転送先情報テーブル記憶手段24と、UDPカプセリングパケット転送手段25とを含む。
The
分岐点決定手段21は、自スイッチが分岐点に該当するか否か判断する。具体的には、分岐点決定手段21は、プロキシノード10の分岐点決定手段11が分岐点を決定するために送信するパケットをトリガとして、データを送出する物理ポートが異なる場合、自スイッチを分岐点と判断する。
The branch point determination means 21 determines whether or not the own switch corresponds to a branch point. Specifically, the branch
アドレス要求手段22は、自スイッチが分岐点に該当すると判断された場合、プロキシノード10に仮想IPアドレスを要求する。プロキシノード10から割り当てられた仮想IPアドレスは、転送用データを転送する際に利用される。
The
転送先情報テーブル記憶手段24は、転送先情報テーブル記憶手段14と同様に、転送先情報テーブルを記憶する。
Similarly to the transfer destination information
転送先情報テーブル作成手段23は、プロキシノード10から受信したデータに基づいて、転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージノードとを対応付けた転送先情報テーブルを、転送先情報テーブル記憶手段24に登録する。
Based on the data received from the
具体的には、転送先情報テーブル作成手段23は、プロキシノード10から転送先ノードの仮想IPアドレス割当通知を受けて、転送先情報テーブル記憶手段24にその仮想IPアドレスを設定する。さらに、転送先情報テーブル作成手段23は、転送先ノードの先に複数の相手先(ストレージノード)が存在する場合、転送先ノードとその複数の相手先ノードとを対応付けた転送先情報テーブルを転送先情報テーブル記憶手段24に記憶する。
Specifically, the transfer destination information
UDPカプセリングパケット転送手段25は、転送先情報テーブル記憶手段24に記憶された転送先情報テーブルの内容に基づいて受信した対象データを転送先ノードに転送する。具体的には、UDPカプセリングパケット転送手段25は、転送先情報テーブル記憶手段24に転送先ノードが登録されている場合、その転送先ノードに対応するストレージノード以外の格納先アドレスを転送用パケットから削除して、その転送用パケットを転送先ノードに転送する。さらに、UDPカプセリングパケット転送手段25は、削除された格納先アドレス宛に対象データを複製して転送する。
The UDP encapsulation
UDPカプセリングパケット転送手段25は、例えば、特別ポート宛のカプセリングされたUDPパケットを受け取った場合に、データ中の相手先情報を解析し、転送先情報テーブルの情報に従ってデータを複製する。そして、UDPカプセリングパケット転送手段25は、複製されたデータを目的とする次のスイッチに送出する。 For example, when receiving the encapsulated UDP packet addressed to the special port, the UDP encapsulation packet transfer means 25 analyzes the destination information in the data and duplicates the data according to the information in the transfer destination information table. Then, the UDP encapsulation packet transfer means 25 sends the copied data to the next switch intended.
例えば、OpenStackのSwiftを利用するクラウドシステムでは、複数のストレージノードに同一データが格納される。その際、前段のプロキシノードと後段のストレージノード間において、本来は複数の同一データがネットワーク内を流れることになる。本実施形態では、複数の同一データをネットワーク内の同一パスを通す必要がある場合でも、1つのデータとして流すことができるため、プロキシノードとストレージノード間のネットワーク負荷を軽減できる。特にデータが集中する共通ネットワークパスでは、効果的に負荷を軽減できる。 For example, in a cloud system using OpenStack Switch, the same data is stored in a plurality of storage nodes. At that time, a plurality of identical data originally flows in the network between the proxy node in the previous stage and the storage node in the subsequent stage. In the present embodiment, even when a plurality of identical data needs to pass through the same path in the network, it can be flowed as a single data, so that the network load between the proxy node and the storage node can be reduced. In particular, the load can be effectively reduced in a common network path where data is concentrated.
分岐点決定手段21と、アドレス要求手段22と、転送先情報テーブル作成手段23と、UDPカプセリングパケット転送手段25とは、プログラム(転送用データ処理プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、スイッチ20の記憶部(図示せず)に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、分岐点決定手段21、アドレス要求手段22、転送先情報テーブル作成手段23およびUDPカプセリングパケット転送手段25として動作してもよい。
The branch point determination means 21, address request means 22, transfer destination information table creation means 23, and UDP encapsulation packet transfer means 25 are realized by a CPU of a computer that operates according to a program (transfer data processing program). For example, the program is stored in a storage unit (not shown) of the
また、分岐点決定手段21と、アドレス要求手段22と、転送先情報テーブル作成手段23と、UDPカプセリングパケット転送手段25とは、それぞれが専用のハードウェアで実現されていてもよい。 Further, each of the branch point determination means 21, the address request means 22, the transfer destination information table creation means 23, and the UDP encapsulation packet transfer means 25 may be realized by dedicated hardware.
また、スイッチ20は、プロキシノード10が生成した転送用パケットを転送先に応じて処理することから、スイッチ20のことを、転送用データ処理装置と呼ぶことができる。
In addition, since the
以下、コネクション管理手段16の動作を詳細に説明する。まず、コネクション管理手段16は、作成する通信端点を取りまとめる特別な通信端点を作成する。このとき、コネクション管理手段16は、この通信端点を特別ポートで作成し、分岐点決定手段11がIPアドレスを割り振る通り道のスイッチにも、特別性のポートを受けることのできる通信端点の作成を依頼する。このとき、依頼されたスイッチは、この依頼に応じて、通信端点を作成する。
Hereinafter, the operation of the connection management means 16 will be described in detail. First, the
次に、コネクション管理手段16は、同報通信を行う際に、データ格納先選択手段17によって選択されたデータ格納先(ストレージノード)に対するコネクションを確立し、各コネクションの子ソケットを作成する。
Next, when performing broadcast communication, the
また、このとき、コネクション管理手段16は、格納先であるストレージの情報を格納する格納先情報テーブル(図示せず)を参照する。格納先情報テーブルに格納先(ストレージノード)の情報が存在しない場合、コネクション管理手段16は、分岐点決定手段11に格納先情報テーブルの更新を指示する。一方、格納先の情報が格納先情報テーブルに存在する場合、コネクション管理手段16は、子ソケットを親ソケットの管理下におく。すなわち、コネクション管理手段16は、子ソケットに渡されるデータを親ソケットで管理できるように、子ソケットへコネクション情報を親ソケットに上げるよう制御する。
At this time, the connection management means 16 refers to a storage location information table (not shown) that stores information of the storage that is the storage location. When there is no storage destination (storage node) information in the storage destination information table, the
そのため、子ソケットは、この制御により、データを参照するが、実際のデータ送信は行わない。子ソケットは、親ソケットへコネクション情報(具体的には、相手アドレス、ポート、自ポート、シーケンス(seq)番号、確認応答(ACK)番号)を通知する。 Therefore, the child socket refers to the data by this control, but does not perform actual data transmission. The child socket notifies the parent socket of connection information (specifically, a partner address, a port, a self port, a sequence (seq) number, and an acknowledgment (ACK) number).
親ソケットの通信端点(以下、親通信端点と記す。)には、UDPカプセリングパケット作成手段15によってカプセル化された、親ソケットに従う子ソケットの通信端点(以下、子通信端点)が用いられる。なお、子ソケットを利用した通信端点は、それぞれのストレージノードに対応する。
As the communication end point of the parent socket (hereinafter referred to as the parent communication end point), the communication end point of the child socket (hereinafter referred to as the child communication end point) encapsulated by the UDP encapsulation
UDPカプセリングパケット作成手段15がカプセル化されたデータを送信する際、親ソケットが子ソケットのseq番号を更新する。カプセル化されたデータは、最終的にそれぞれのデータ格納先に送付され、ACKが返却される。一方、返却されたseq番号およびACK番号は、子ソケットから親ソケットに通知される。 When the UDP encapsulation packet creating means 15 transmits the encapsulated data, the parent socket updates the seq number of the child socket. The encapsulated data is finally sent to each data storage destination, and ACK is returned. On the other hand, the returned seq number and ACK number are notified from the child socket to the parent socket.
コネクション管理手段16は、親ソケットから通知されたseq番号を参照し、再送が必要な場合は、子ソケットが参照しているデータを用いて再送する。
The
なお、ここでは、子ソケットがTCP(Transmission Control Protocol )コネクションを用いた場合の動作を説明した。子ソケットがUDPの場合、子ソケットから親ソケットに渡されるコネクション情報は、相手アドレス、ポート、自ポートのみである。また、作成されるUDPカプセリングデータに格納される格納先の情報も、格納先アドレスとポート番号のみとなる。さらに、子ソケットがUDPの場合、TCPコネクションを用いた場合に行われるseq番号およびACK番号の交換、管理および再送動作は必要ない。 Here, the operation when the child socket uses a TCP (Transmission Control Protocol) connection has been described. When the child socket is UDP, the connection information passed from the child socket to the parent socket is only the partner address, port, and own port. Further, the storage destination information stored in the created UDP encapsulation data is also only the storage destination address and the port number. Further, when the child socket is UDP, exchange of seq number and ACK number, management, and retransmission operations that are performed when a TCP connection is used are not necessary.
図3は、本実施形態のデータ転送システムが行う通信方法の例を説明する説明図である。本実施形態では、プロキシノードとスイッチとの間で、上述する操作(例えば、Seq更新、ACK通知など)が行われるが、クライアントには、通常用いられる形式のソケットを用いてパケット(データ)が送受信される。すなわち、クライアントとプロキシノードの間(言い換えると、クライアント/サーバ間)で行われる通信は、通常のソケット通信と変わらない。 FIG. 3 is an explanatory diagram illustrating an example of a communication method performed by the data transfer system of the present embodiment. In the present embodiment, the above-described operations (for example, Seq update, ACK notification, etc.) are performed between the proxy node and the switch. However, the packet (data) is sent to the client using a socket of a commonly used format. Sent and received. That is, communication performed between the client and the proxy node (in other words, between the client / server) is not different from normal socket communication.
次に、本実施形態のデータ転送システムの動作を説明する。ここでは、図2に例示するクラウドシステムに本実施形態のデータ転送システムが用いられるものとする。 Next, the operation of the data transfer system of this embodiment will be described. Here, it is assumed that the data transfer system of this embodiment is used in the cloud system illustrated in FIG.
まず、プロキシノード10のコネクション管理手段16は、ストレージノード31〜33との間に確立されるコネクションを管理するため、特別な親ソケットを作成する。プロキシノード10がクライアント40からファイル(対象データ)を受信した後、データ格納先選択手段17は、ファイルの情報から、そのファイルを格納すべきストレージノードを複数(ここでは、3つ)決定する。
First, the
コネクション管理手段16は、複数のストレージノード31〜33との間のコネクションを作成した後、子ソケットを管理するため、親ソケットに子ソケットのコネクション情報を通知する。例えば、子ソケットがTCPの場合、コネクション管理手段16は、自ポート番号、相手アドレス、相手ポート番号、seq番号及びACK番号をコネクション情報として親ソケットに通知する。また、例えば、子ソケットがUDPの場合、コネクション管理手段16は、自ポート番号、相手アドレスおよび相手ポート番号をコネクション情報として親ソケットに通知する。
The connection management means 16 notifies the connection information of the child socket to the parent socket in order to manage the child socket after creating the connection with the plurality of
次に、分岐点決定手段11は、通信先として決定した各ストレージノード31〜33に対し、経路を調査する特別ポートのUDPパケットを送信する。分岐点決定手段21は、このUDPパケットを1つでも異なる物理ポートに送出する場合、自身が分岐点であると判断する。
Next, the branch
図2に示す例では、このUDPパケットは、まず、スイッチAを通過する。このパケットが通過したスイッチAの分岐点決定手段21は、このUDPパケットを異なる物理ポートに送出することになるので、スイッチA自身が分岐点であると判断する。 In the example shown in FIG. 2, this UDP packet first passes through the switch A. The branch point determination means 21 of the switch A through which this packet has passed sends this UDP packet to a different physical port, and therefore determines that the switch A itself is the branch point.
このとき、アドレス要求手段22は、このUDPパケットの送信元に仮想的なIPアドレスを割り振るよう要求する。なお、自スイッチ内でこのUDPパケットを送出する物理ポートが全て同じポートであった場合、アドレス要求手段22は、何も処理を行わない。
At this time, the address request means 22 requests that a virtual IP address be allocated to the transmission source of this UDP packet. If all the physical ports that send out the UDP packet in the switch are the same port, the
また、アドレス要求手段22は、このUDPパケットの送信元に、受信した複数の格納先アドレス(ストレージノードのIPアドレス)も通知する。送信元であるプロキシノード10は、IPアドレスを要求するデータを受信する。送出したUDPパケットに割り当てた格納先アドレスが、IPアドレスを要求するデータに含まれている場合、分岐点決定手段11は、仮想IPアドレスをスイッチAに割り振る。また、転送先情報テーブル作成手段13は、割り振ったIPアドレスと格納先アドレスの組を、転送先情報テーブル記憶手段14に格納する。
The
図2に示す例では、このUDPパケットは、さらに、スイッチBを通過する。そのため、スイッチBのアドレス要求手段22は、このUDPパケットの送信元に仮想的なIPアドレスを割り振るよう要求する。
In the example shown in FIG. 2, this UDP packet further passes through the switch B. Therefore, the
さらにその先のスイッチ(すなわち、スイッチAの先のスイッチB)から仮想的なIPアドレスを割り振る要求が行われる際、IPアドレスを要求するデータには、格納先アドレスが減った状態で格納されている。これは、前段のスイッチ(ここでは、スイッチA)で分岐されたパケットの一部(図2では、ストレージノード3のアドレス)は、後段のスイッチ(ここでは、スイッチB)に届かないためである。 Further, when a request for allocating a virtual IP address is made from the switch ahead (that is, switch B ahead of switch A), the data requesting the IP address is stored with the storage address reduced. Yes. This is because a part of the packet (the address of the storage node 3 in FIG. 2) branched by the upstream switch (here, switch A) does not reach the downstream switch (here, switch B). .
プロキシノード10(より具体的には、分岐点決定手段11)は、スイッチBにも仮想IPアドレスを割り振る。また、転送先情報テーブル作成手段13は、スイッチBに割り振った仮想IPアドレスと、IPアドレス要求時にスイッチBから送信されたデータに含まれていた格納先アドレスを、スイッチAに通知する。通知されたスイッチAでは、転送先情報テーブル作成手段23が、スイッチBのIPアドレスと格納先アドレスとをスイッチA自身の転送先情報テーブル記憶手段24に格納する。
The proxy node 10 (more specifically, the branch point determination unit 11) also allocates a virtual IP address to the switch B. The transfer destination information
図4は、図2に例示するクラウドシステムにおいて生成される転送先情報テーブルの例を示す説明図である。プロキシノード10は、転送先ノードであるスイッチAのIPアドレスと、スイッチAの転送先に存在するストレージノード1,2,3とを対応付けた転送先情報テーブルを記憶する。また、スイッチAは、転送先ノードであるスイッチBのIPアドレスと、スイッチBの転送先に存在するストレージノード1,2とを対応付けた転送先情報テーブルを記憶する。
FIG. 4 is an explanatory diagram illustrating an example of a transfer destination information table generated in the cloud system illustrated in FIG. The
次に、プロキシノード10が、クライアント40から受信した対象データを、データ格納先選択手段17が決定した複数のストレージノードに送信する方法を説明する。図5は、転送用パケットの例を示す説明図である。
Next, a method in which the
上述する処理において、親ソケットは、実際に複数のストレージノードとコネクションを確立している子ソケットからコネクション情報を取得できる。そこで、UDPカプセリングパケット作成手段15は、このコネクション情報を用いて、データをカプセリング化し、転送先情報テーブルに示される転送先ノード(同説明ではスイッチA)に対し、コネクション情報と共に対象データを送信する。
In the processing described above, the parent socket can acquire connection information from a child socket that has actually established connections with a plurality of storage nodes. Therefore, the UDP encapsulation
図2に示す例では、UDPカプセリングパケット作成手段15は、ストレージノード1〜3のコネクション情報を含む転送用パケットを生成する(図5(a)参照)。
In the example shown in FIG. 2, the UDP encapsulation
スイッチAはUDPカプセリングパケットを受信すると、UDPカプセリングパケット転送手段25は、UDPカプセリングパケットに含まれる複数の格納先アドレスを参照し、自身が備える転送先情報テーブルと比較して、次の転送先を決定する。 When the switch A receives the UDP encapsulation packet, the UDP encapsulation packet transfer means 25 refers to the plurality of storage destination addresses included in the UDP encapsulation packet and compares the next transfer destination with the transfer destination information table provided in itself. decide.
UDPカプセリングパケット転送手段25は、UDPカプセリングパケットからスイッチBの先に存在しないストレージノード3の情報を削除し、この情報を削除したUDPカプセリングパケットをスイッチB宛に転送する。さらに、UDPカプセリングパケット転送手段25は、ストレージノード3に対してはカプセリングパケットに含まれていたストレージノード3のコネクション情報と、対象データ(つまり通常のTCPデータ)を送信する。
The UDP encapsulation packet transfer means 25 deletes the information of the storage node 3 that does not exist ahead of the switch B from the UDP encapsulation packet, and transfers the UDP encapsulation packet from which this information has been deleted to the switch B. Further, the UDP encapsulation
なお、スイッチBでは、転送先情報テーブル記憶手段24に転送先情報テーブルが記憶されていない。そのため、スイッチBのUDPカプセリングパケット転送手段25は、UDPカプセリングパケットに含まれるストレージノード1のコネクション情報と、ストレージノード2のコネクション情報のそれぞれに対象データを付加して、転送先ノードに送信する(図5(c)参照)。
In the switch B, the transfer destination information table is not stored in the transfer destination information
以降、各ストレージノード1〜3は、通常のTCPデータとして対象データを受信して、必要な処理を行う。
Thereafter, each of the
ここで、図4および図5を参照して、各スイッチが転送用パケットを生成する動作をより詳細に説明する。各スイッチは、データを転送する際、図4に例示する転送先情報テーブルを参照し、送信先であるデータ格納先アドレス群(ストレージノードのアドレス群)を検索する。転送先情報テーブルにアドレス群が存在する場合、UDPカプセリングパケット転送手段25は、転送先に転送先ノードのアドレスを設定したUDPヘッダを作成する。
Here, with reference to FIG. 4 and FIG. 5, the operation in which each switch generates a transfer packet will be described in more detail. When transferring data, each switch refers to a transfer destination information table illustrated in FIG. 4 and searches for a data storage destination address group (storage node address group) as a transmission destination. When the address group exists in the transfer destination information table, the UDP encapsulation
次に、UDPカプセリングパケット転送手段25は、ストレージノードとのコネクション情報(ストレージノードのIPアドレス、ポート番号、Seq番号およびACK番号)を全て付加した転送用パケットを生成して、転送先ノードに送信する。 Next, the UDP encapsulation packet transfer means 25 generates a transfer packet to which all the connection information (storage node IP address, port number, Seq number, and ACK number) with the storage node is added, and transmits it to the transfer destination node. To do.
ここで、データ格納先アドレス群を検索した際、格納先のアドレス群の一部が検索された場合、UDPカプセリングパケット転送手段25は、検索された格納先のコネクション情報のみをカプセル化して転送先ノードに転送する。一方、UDPカプセリングパケット転送手段25は、転送先情報テーブルに存在しないアドレスをカプセル化せず、格納先のコネクション情報をヘッダとし対象データを付加して転送先ノードに転送する。 When a part of the storage destination address group is searched when the data storage destination address group is searched, the UDP encapsulation packet transfer means 25 encapsulates only the connection information of the searched storage destination and transfers the transfer destination. Transfer to node. On the other hand, the UDP encapsulation packet transfer means 25 does not encapsulate an address that does not exist in the transfer destination information table, adds the target data with the connection information of the storage destination as a header, and transfers it to the transfer destination node.
例えば、プロキシノード10が図4に例示する転送先情報テーブルを記憶している場合、UDPカプセリングパケット作成手段15は、ストレージノード1〜3のアドレス(格納先アドレス1〜3)をカプセル化する。
For example, when the
次に、スイッチAが図4に例示する転送先情報テーブルを記憶している場合、UDPカプセリングパケットに含まれる格納先アドレス1〜2が、転送先情報テーブルのアドレスに一致する。そのため、UDPカプセリングパケット転送手段25は、格納先アドレス1〜2のみカプセル化し、格納先アドレス3宛てには通常のTCPパケットを送信する。 Next, when the switch A stores the transfer destination information table illustrated in FIG. 4, the storage destination addresses 1 and 2 included in the UDP encapsulation packet match the addresses of the transfer destination information table. Therefore, the UDP encapsulation packet transfer means 25 encapsulates only the storage destination addresses 1 and 2 and transmits a normal TCP packet to the storage destination address 3.
また、スイッチAからUDPカプセリングパケットを受信したスイッチBの転送先情報テーブルには、情報がない。そのため、UDPカプセリングパケット転送手段25は、いずれのアドレスもカプセル化せず、格納先アドレス1〜2宛にそれぞれ通常のTCPパケットを送信する。
In addition, the transfer destination information table of switch B that has received the UDP encapsulation packet from switch A has no information. Therefore, the UDP encapsulation
次に、プロキシノード10が分岐点を決定する動作を説明する。図6は、分岐点を決定する動作の例を示すフローチャートである。プロキシノード10のデータ格納先選択手段17は、複数の格納先を決定する。そして、分岐点決定手段11は、各格納先のアドレスへ特別ポートのUDPパケットを送信する(ステップS11)。
Next, an operation in which the
各スイッチでは特別ポートのUDPパケットを受信した場合(ステップS12におけるYes)、分岐点決定手段21は、送信元のIPアドレス、宛先のIPアドレスおよびUDPパケットを送信した物理ポートを一時的に記憶する(ステップS13)。異なる物理ポートにUDPパケットが送信された場合(ステップS14におけるYes)、アドレス要求手段22は、送信元にIPアドレスを要求する。このとき、アドレス要求手段22は、送信元から受信した格納先アドレス群も併せて送信する(ステップS15)。
When each switch receives the UDP packet of the special port (Yes in step S12), the branch
なお、ステップS12において受信したパケットが特別ポートのUDPパケットでない場合(ステップS12におけるNo)、また、ステップS14においてUDPパケットが送信される物理ポートが異なっていない場合(ステップS14におけるNo)、特に処理は行われない。 If the packet received in step S12 is not a special port UDP packet (No in step S12), or if the physical port to which the UDP packet is transmitted is not different in step S14 (No in step S14), the processing Is not done.
送信元であるプロキシノード10がスイッチからIPアドレスの要求を受信すると、分岐点決定手段11は、そのスイッチに対して仮想IPアドレスを割り振る(ステップS16)。以降、転送先情報テーブルを作成する処理が行われる。
When the
次に、転送先情報テーブルを作成する動作を説明する。図7は、転送先情報テーブルを作成する動作の例を示すフローチャートである。 Next, an operation for creating a transfer destination information table will be described. FIG. 7 is a flowchart illustrating an example of an operation for creating a transfer destination information table.
プロキシノード10がスイッチからIPアドレス要求を受信すると(ステップS21)、転送先情報テーブル作成手段13は、UDPパケットともに送信した格納先アドレスの全てが、IPアドレス要求とともに送信された格納先アドレスに含まれているか判断する(ステップS22)。
When the
送信した全ての格納先が含まれている場合(ステップS22におけるYes)、転送先情報テーブル作成手段13は、割り振る仮想IPアドレスと格納先アドレス群を対応付けた転送先情報テーブルを転送先情報テーブル記憶手段14に格納する(ステップS23)。図2に示す例では、スイッチAからIPアドレス要求とともにストレージノード1〜3の格納先アドレスがプロキシノード10に送信された場合が該当する。
When all the transmitted storage destinations are included (Yes in step S22), the transfer destination information
一方、送信した全ての格納先が含まれていない場合(ステップS22におけるNo)、転送先情報テーブル作成手段13は、転送先情報テーブルを参照し、IPアドレス要求とともに送信された格納先アドレスを含む仮想IPアドレスのうち、送信された格納先アドレスよりも多くの格納先アドレスが対応づけられた仮想IPアドレスが存在するか判断する(ステップS24)。
On the other hand, when not all of the transmitted storage destinations are included (No in step S22), the transfer destination information
該当する仮想IPアドレスが存在する場合(ステップS24におけるYes)、転送先情報テーブル作成手段13は、割り振る仮想IPアドレスと格納先アドレス群の情報を、全ての格納先アドレスが対応付けられた仮想IPアドレス宛に通知する(ステップS25)。図2に示す例では、IPアドレス要求とともにストレージノード1〜2の格納先アドレスがスイッチBからプロキシノード10に送信された場合が該当する。この場合、スイッチBに割り振られる仮想IPアドレスとストレージノード1〜2のアドレス群がスイッチAに送信される。
When the corresponding virtual IP address exists (Yes in step S24), the transfer destination information
スイッチは、IPアドレスと格納先アドレス群の情報を受信する(ステップS26)。受信したスイッチでは、転送先情報テーブル作成手段23が、仮想IPアドレスと格納先アドレス群を対応付けた転送先情報テーブルを転送先情報テーブル記憶手段24に格納する(ステップS27)。図2に示す例では、スイッチAが、仮想IPアドレスとストレージノード1〜2のアドレス群を対応付けた転送先情報テーブルを記憶する。
The switch receives information on the IP address and the storage destination address group (step S26). In the received switch, the transfer destination information
以上のように、本実施形態によれば、プロキシノード10のUDPカプセリングパケット作成手段15が、対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケットを作成して、スイッチAに送信する。また、スイッチ20aのUDPカプセリングパケット転送手段25が、転送先情報テーブルに転送先ノードが登録されている場合、その転送先ノードに対応するストレージ以外の格納先アドレスを転送用パケットから削除して転送先ノード(スイッチB)に転送する。さらに、UDPカプセリングパケット転送手段25が、削除された格納先アドレス宛に対象データを複製して転送する。よって、データを冗長化させて複数のストレージに格納する場合、データの送信側装置とストレージ間のネットワーク負荷を軽減させることができる。
As described above, according to the present embodiment, the UDP encapsulation
すなわち、本実施形態によれば、ネットワーク上の複数のストレージノードに多重書込みを行う際、ネットワークを流れるデータ量を制限できるため、システム全体の負荷を軽減できる。特に、本実施形態によれば、データが集中する通信路の負荷を低減できるため、ボトルネックになる通信路では、効果的に負荷を軽減できる。 That is, according to the present embodiment, when multiple writing is performed to a plurality of storage nodes on the network, the amount of data flowing through the network can be limited, so that the load on the entire system can be reduced. In particular, according to the present embodiment, since the load on the communication path where data is concentrated can be reduced, the load can be effectively reduced in the communication path that becomes a bottleneck.
また、本実施形態では、クライアント40から送信される対象データをプロキシノード10で受信した後、ネットワーク経由で複数のストレージノードに書き込みを行う際、通信路が同じ間はデータを重複して持たないようにしている。転送先情報テーブルは、選択された複数のデータ格納先にデータを送出する際に通る共通のパスの先にあるスイッチに割り当てられたIPアドレスが含まれる。そのスイッチまでは、複数の格納先の情報と共に共通のデータをカプセリングしたUDPカプセリングデータが送信される。
Further, in this embodiment, when the target data transmitted from the
そして、UDPカプセリングパケット転送手段25が、ストレージノードに対する通信路が分岐する時点で、送信するデータを複製する。そのため、データ量が集中する経路のネットワーク負荷を特に下げることが可能になる。すなわち、本来は、同一のデータが多重に流れるはずの共通通信パス上に、1つのUDPカプセリングデータしか流されない。そのため、データが集中する共通通信パスでのネットワーク負荷を軽減できる。 Then, the UDP encapsulation packet transfer means 25 duplicates the data to be transmitted at the time when the communication path to the storage node branches. For this reason, it is possible to particularly reduce the network load of the route where the data amount is concentrated. In other words, originally, only one UDP encapsulation data is flowed on the common communication path where the same data should flow multiple times. Therefore, the network load on the common communication path where data is concentrated can be reduced.
また、最終的に格納先のストレージノードにデータが届いた時には、カプセリングが解かれており、各ストレージノードは、通常の通信手順でデータを受信できる。 Further, when the data finally reaches the storage node of the storage destination, the encapsulation is released and each storage node can receive the data by a normal communication procedure.
次に、本発明の概要を説明する。図8は、本発明によるデータ転送システムの概要を示すブロック図である。本発明によるデータ転送システムは、ネットワークを介して対象データを複数のストレージに格納する。 Next, the outline of the present invention will be described. FIG. 8 is a block diagram showing an outline of a data transfer system according to the present invention. The data transfer system according to the present invention stores target data in a plurality of storages via a network.
本発明によるデータ転送システムは、(例えば、クライアント40から受信した)対象データを格納すべき複数のストレージ(例えば、ストレージノード31〜33)を決定するプロキシサーバ80(例えば、プロキシノード10)と、プロキシサーバ80から送信されるデータ(例えば、転送用パケット)を受信してストレージへ転送するノード90(例えば、スイッチ20a〜20c)とを備えている。
A data transfer system according to the present invention includes a proxy server 80 (e.g., proxy node 10) that determines a plurality of storages (e.g.,
ノード90は、自ノードからデータを転送する先のノードである転送先ノードと、その転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段91(例えば、転送先情報テーブル記憶手段24)と、受信したデータを転送するデータ転送手段92(例えば、UDPカプセリングパケット転送手段25)とを含む。
The
プロキシサーバ80は、対象データの転送先ノードと、その対象データが格納される複数のストレージの格納先アドレスと、その対象データとを含む転送用パケット(例えば、UDPカプセリングパケット)を作成して、その転送用パケットをノード90に送信するパケット送信手段81(例えば、UDPカプセリングパケット作成手段15)を含む。
The
ノード90(例えば、図2におけるスイッチA)のデータ転送手段92は、転送先情報テーブル記憶手段91に転送先ノード(例えば、図2におけるスイッチB)が登録されている場合、その転送先ノードに対応するストレージ(例えば、図2におけるストレージノード1,2)以外の格納先アドレス(例えば、図2におけるストレージノード3の格納先アドレス)を転送用パケットから削除して、その転送用パケットを転送先ノードに転送し、削除された格納先アドレス宛に対象データを複製して転送する。
The
そのような構成により、データを冗長化させて複数のストレージに格納する場合、データの送信側装置とストレージ間のネットワーク負荷を軽減させることができる。 With such a configuration, when data is made redundant and stored in a plurality of storages, the network load between the data transmission side device and the storage can be reduced.
また、プロキシサーバ80は、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する(例えば、特別ポート宛パケットを送信して分岐点を判断する)分岐点決定手段(例えば、分岐点決定手段11)と、分岐点を示すノード(例えば、スイッチA)の転送先ノード(例えば、スイッチB)の転送先に2以上のストレージ(例えば、ストレージノード1〜2)が存在する場合、その分岐点を示すノードの転送先情報テーブル記憶手段91に、その分岐点を示すノードの転送先ノードの仮想アドレスと、転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段(例えば、転送先情報テーブル作成手段13)とを含んでいてもよい。
Further, the
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.
(付記1)ネットワークを介して同一の対象データを複数のストレージに格納するデータ転送システムにおいて、前記対象データを格納すべき複数のストレージを決定するプロキシサーバと、前記プロキシサーバから送信されるデータを受信して前記ストレージへ転送するノードとを備え、前記ノードは、自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、受信したデータを転送するデータ転送手段とを含み、前記プロキシサーバは、対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成して、当該転送用パケットを前記ノードに送信するパケット送信手段を含み、前記ノードのデータ転送手段は、前記転送先情報テーブル記憶手段に前記転送先ノードが登録されている場合、当該転送先ノードに対応するストレージ以外の格納先アドレスを前記転送用パケットから削除して当該転送用パケットを前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送することを特徴とするデータ転送システム。 (Supplementary note 1) In a data transfer system for storing the same target data in a plurality of storages via a network, a proxy server for determining a plurality of storages for storing the target data, and data transmitted from the proxy server A node that receives and transfers the data to the storage, and the node includes a transfer destination node that is a destination node to which data is transferred from the own node, and a plurality of storages in which data passing through the transfer destination node is stored. A transfer destination information table storage unit for storing the associated transfer destination information table; and a data transfer unit for transferring the received data, wherein the proxy server stores a transfer destination node of the target data and the target data. Create a transfer packet that includes the storage destination addresses of multiple storages and the target data. Packet transfer means for transmitting the transfer packet to the node, and the data transfer means of the node, when the transfer destination node is registered in the transfer destination information table storage means, A storage destination address other than the corresponding storage is deleted from the transfer packet, the transfer packet is transferred to the transfer destination node, and the target data is copied and transferred to the deleted storage destination address. And data transfer system.
(付記2)プロキシサーバは、複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定手段と、前記分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、当該分岐点を示すノードの転送先情報テーブル記憶手段に、当該分岐点を示すノードの転送先ノードの仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段とを含む付記1記載のデータ転送システム。
(Supplementary Note 2) The proxy server uses a branch point determination unit that determines a node at which a path for transmitting target data to a plurality of storage branches as a branch point, and a transfer destination of a transfer destination node of the node indicating the branch point. When there are two or more storages, the transfer destination information table storage means of the node indicating the branch point includes a virtual address of the transfer destination node of the node indicating the branch point, and two or more storages existing at the transfer destination. The data transfer system according to
(付記3)ノードは、自ノードが分岐点か否かを判断する分岐点判断手段を含み、プロキシサーバの分岐点決定手段は、特別ポート宛パケットを各ストレージまでの経路に送信し、前記分岐点判断手段は、前記特別ポート宛パケットを異なる物理ポートに送信する場合に、自ノードを分岐点と判断する付記2記載のデータ転送システム。 (Supplementary Note 3) The node includes a branch point determination unit that determines whether or not the node itself is a branch point, and the branch point determination unit of the proxy server transmits a packet addressed to the special port to a path to each storage, and the branch The data transfer system according to supplementary note 2, wherein the point determination means determines that the own node is a branch point when the packet addressed to the special port is transmitted to a different physical port.
(付記4)ノードは、分岐点判断手段によって自ノードが分岐点であると判断された場合、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求をプロキシサーバに送信するアドレス要求手段を含み、分岐点決定手段は、前記要求に応じて仮想アドレスを割り当て、転送先情報登録手段は、割り当てられた仮想アドレスと前記転送先に存在する2以上のストレージとを対応付けて転送先情報テーブル記憶手段に登録する付記3記載のデータ転送システム。 (Supplementary Note 4) When the node determines that the node is a branch point by the branch point determination means, the node proxies the request for the storage destination address of the storage existing at the transfer destination of the node and the virtual address to be allocated to the node. An address request means for transmitting to the server, the branch point determination means assigns a virtual address in response to the request, and the transfer destination information registration means includes the assigned virtual address and two or more storages existing at the transfer destination; The data transfer system according to appendix 3, wherein the information is registered in the transfer destination information table storage unit in association with each other.
(付記5)プロキシサーバは、ストレージとの通信に使用される複数の第一ソケットを管理するための第二ソケットを作成するコネクション管理手段を含み、パケット送信手段は、前記第二ソケットを利用して転送用パケットを送信する付記1から付記4のうちのいずれか1つに記載のデータ転送システム。
(Supplementary Note 5) The proxy server includes connection management means for creating a second socket for managing a plurality of first sockets used for communication with the storage, and the packet transmission means uses the second socket. The data transfer system according to any one of
(付記6)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛に前記対象データをネットワーク上のノードを介して送信する転送用データ送信装置であって、前記対象データの転送先と、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合に当該転送用パケットから対象データを複製して各ストレージに送信するノードに対して当該転送用パケットを送信するパケット送信手段を備えたことを特徴とする転送用データ送信装置。 (Supplementary note 6) A transfer data transmitting apparatus for determining a plurality of storages to store the same target data, and transmitting the target data to each determined storage via a node on the network, wherein the target data A transfer packet including a transfer destination, a storage destination address of a plurality of storages in which the target data is stored, and the target data, and the target packet destined for the plurality of storages is branched. A data transmission apparatus for transfer, comprising: a packet transmission means for transmitting the transfer packet to a node that replicates the target data from and transmits the data to each storage.
(付記7)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛の前記対象データを送信する送信装置から転送用パケットを受信して、前記複数のストレージに当該転送用パケットを転送する転送用データ処理装置であって、自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、前記転送先情報テーブル記憶手段に前記転送先ノードが登録されている場合、前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを前記送信装置から受信したときに、当該転送用パケットから、前記転送先ノードに対応するストレージ以外の格納先アドレスを削除して前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送するデータ転送手段とを備えたことを特徴とする転送用データ処理装置。 (Supplementary note 7) A plurality of storages in which the same target data is to be stored are determined, a transfer packet is received from a transmission device that transmits the target data addressed to each determined storage, and the transfer data is transferred to the plurality of storages A data processing apparatus for transferring packets, in which a transfer destination node that is a node to which data is transferred from its own node and a plurality of storages that store data passing through the transfer destination node are associated with each other A transfer destination information table storing means for storing a destination information table; and when the transfer destination node is registered in the transfer destination information table storing means, a transfer destination node of the target data and a plurality of the target data stored therein When the transfer packet including the storage destination address of the storage and the target data is received from the transmission device, the transfer packet A data transfer means for deleting a storage destination address other than the storage corresponding to the transfer destination node from the network, transferring the address to the transfer destination node, and copying and transferring the target data to the deleted storage destination address; A data processing apparatus for transfer, comprising:
(付記8)ネットワークを介して同一の対象データを複数のストレージに格納する際に当該ネットワークの負荷を軽減するネットワーク負荷軽減方法であって、前記対象データを格納すべき複数のストレージを決定するプロキシサーバが、前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成して、前記プロキシサーバから送信されるデータを受信して前記ストレージへ転送するノードに対して当該転送用パケットを送信し、前記ノードが、転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、当該転送先ノードに対応するストレージ以外の格納先アドレスを前記転送用パケットから削除して当該転送用パケットを前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送することを特徴とするネットワーク負荷軽減方法。 (Supplementary note 8) A network load reducing method for reducing the load on the network when storing the same target data in a plurality of storages via a network, wherein the proxy determines a plurality of storages to store the target data Data sent from the proxy server by the server creating a transfer packet including the transfer destination node of the target data, storage destination addresses of a plurality of storages storing the target data, and the target data The transfer packet is transmitted to the node that transfers the packet to the storage, and the node associates the transfer destination node with a plurality of storages that store data passing through the transfer destination node. If the transfer destination node to which data is transferred from the local node is registered in the destination information table, the transfer A storage destination address other than the storage corresponding to the destination node is deleted from the transfer packet, the transfer packet is transferred to the transfer destination node, and the target data is copied and transferred to the deleted storage destination address. A network load reducing method characterized by the above.
(付記9)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛に前記対象データをネットワーク上のノードを介して送信する転送用データ送信方法であって、前記対象データの転送先と、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合に前記転送用パケットから対象データを複製して各ストレージに送信するノードに対して、前記転送用パケットを送信することを特徴とする転送用データ送信方法。 (Supplementary note 9) A transfer data transmission method for determining a plurality of storages to store the same target data, and transmitting the target data to each determined storage via a node on the network, wherein the target data Transfer packet including the transfer destination, the storage destination addresses of the plurality of storages in which the target data is stored, and the target data, and the transfer packet when the target data destined for the plurality of storages branches A transfer data transmission method, comprising: transmitting the transfer packet to a node that replicates target data from a node and transmits the data to each storage.
(付記10)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛の前記対象データを送信する送信装置から転送用パケットを受信して、前記複数のストレージに当該転送用パケットを転送する転送用データ処理方法であって、転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、前記送信装置から前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを受信したときに、当該転送用パケットから、前記転送先ノードに対応するストレージ以外の格納先アドレスを削除して前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送することを特徴とする転送用データ処理方法。 (Supplementary Note 10) A plurality of storages to store the same target data are determined, a transfer packet is received from a transmission device that transmits the target data destined for each determined storage, and the transfer data is transferred to the plurality of storages A transfer data processing method for transferring a packet, in which data is transferred from the own node to a transfer destination information table in which a transfer destination node is associated with a plurality of storages storing data passing through the transfer destination node. A transfer packet including a transfer destination node of the target data from the transmission device, storage destination addresses of a plurality of storages storing the target data, and the target data when a destination transfer destination node is registered Is received, the storage destination address other than the storage corresponding to the forwarding destination node is deleted from the forwarding packet and the forwarding packet is deleted. Transferred to Okusaki node, transfers data processing method characterized by transferring replicating the target data destined deleted storage address.
(付記11)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛に前記対象データをネットワーク上のノードを介して送信するコンピュータに適用される転送用データ送信プログラムであって、前記コンピュータに、前記対象データの転送先と、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合に当該転送用パケットから対象データを複製して各ストレージに送信するノードに対して当該転送用パケットを送信するパケット送信処理を実行させるための転送用データ送信プログラム。 (Supplementary Note 11) A transfer data transmission program applied to a computer that determines a plurality of storages to store the same target data and transmits the target data to each determined storage via a node on the network. In the computer, a transfer packet including the transfer destination of the target data, storage destination addresses of the plurality of storages storing the target data, and the target data is created, and the target data addressed to the plurality of storages is created. A data transmission program for transfer for causing a node that replicates the target data from the transfer packet and transmits it to each storage to execute a packet transmission process for transmitting the transfer packet when the node branches.
(付記12)同一の対象データを格納すべき複数のストレージを決定し、決定した各ストレージ宛の前記対象データを送信する送信装置から、転送用パケットを受信して、前記複数のストレージに当該転送用パケットを転送するコンピュータに適用される転送用データ処理プログラムであって、前記コンピュータに、転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、前記送信装置から前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを受信したときに、当該転送用パケットから、前記転送先ノードに対応するストレージ以外の格納先アドレスを削除して前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送するデータ転送処理を実行させるための転送用データ処理プログラム。 (Supplementary Note 12) A plurality of storages to store the same target data are determined, a transfer packet is received from a transmission device that transmits the target data destined for each determined storage, and the transfer is transferred to the plurality of storages Transfer data processing program applied to a computer for transferring packets for transfer, wherein the transfer destination node associates a transfer destination node with a plurality of storages storing data passing through the transfer destination node When a transfer destination node to which data is transferred from the own node is registered in the table, the transfer destination node of the target data from the transmission device, and storage destination addresses of a plurality of storages storing the target data When the transfer packet including the target data is received, the transfer packet is transferred from the transfer packet to the transfer destination node. A transfer data processing program for deleting a storage destination address other than the corresponding storage, transferring it to the transfer destination node, and executing a data transfer process for copying and transferring the target data to the deleted storage destination address .
本発明は、例えば、データ書き込み時にプロキシノードからストレージノード間のネットワーク負荷を軽減させるような、OpenStackを使用したクラウドシステムに好適に適用される。 The present invention is preferably applied to, for example, a cloud system using OpenStack that reduces a network load between a proxy node and a storage node when writing data.
10 プロキシノード
11 分岐点決定手段
12 アドレス通知手段
13 転送先情報テーブル作成手段
14 転送先情報テーブル記憶手段
15 UDPカプセリングパケット作成手段
16 コネクション管理手段
17 データ格納先選択手段
20,20a〜20c スイッチ
21 分岐点決定手段
22 アドレス要求手段
23 転送先情報テーブル作成手段
24 転送先情報テーブル記憶手段
25 UDPカプセリングパケット転送手段
31〜33 ストレージノード(1〜3)
40 クライアント
DESCRIPTION OF
40 clients
Claims (7)
前記対象データを格納すべき複数のストレージを決定するプロキシサーバと、
前記プロキシサーバから送信されるデータを受信して前記ストレージへ転送するノードとを備え、
前記ノードは、
自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、
受信したデータを転送するデータ転送手段と、
自ノードが分岐点か否かを判断する分岐点判断手段と、
前記分岐点判断手段によって自ノードが分岐点であると判断された場合、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求をプロキシサーバに送信するアドレス要求手段とを含み、
前記プロキシサーバは、
前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成して、当該転送用パケットを前記ノードに送信するパケット送信手段と、
前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定手段と、
前記分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、当該分岐点を示すノードの前記転送先情報テーブル記憶手段に、当該分岐点を示すノードの転送先ノードの仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段とを含み、
前記プロキシサーバの分岐点決定手段は、特別ポート宛パケットを各ストレージまでの経路に送信し、
前記ノードの分岐点判断手段は、前記特別ポート宛パケットを異なる物理ポートに送信する場合に、自ノードを分岐点と判断し、
前記プロキシサーバの分岐点決定手段は、前記仮想アドレスの要求に応じて仮想アドレスを割り当て、
前記プロキシサーバの転送先情報登録手段は、割り当てられた仮想アドレスと前記転送先に存在する2以上のストレージとを対応付けて前記転送先情報テーブル記憶手段に登録し、
前記ノードのデータ転送手段は、前記転送先情報テーブル記憶手段に前記転送先ノードが登録されている場合、当該転送先ノードに対応するストレージ以外の格納先アドレスを前記転送用パケットから削除して当該転送用パケットを前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送する
ことを特徴とするデータ転送システム。 In a data transfer system that stores the same target data in multiple storages via a network,
A proxy server for determining a plurality of storages to store the target data;
A node that receives data transmitted from the proxy server and transfers the data to the storage;
The node is
A transfer destination information table storage unit for storing a transfer destination information table in which a transfer destination node that transfers data from the own node and a plurality of storages in which data passing through the transfer destination node are stored are associated with each other; ,
Data transfer means for transferring received data ;
A branch point judging means for judging whether or not the own node is a branch point;
Address request for transmitting to the proxy server a request for the storage address of the storage existing at the transfer destination of the local node and the virtual address to be allocated to the local node when the branch point determining means determines that the local node is the branch point Means ,
The proxy server is
A packet that creates a transfer packet including a transfer destination node of the target data, storage destination addresses of a plurality of storages storing the target data, and the target data, and transmits the transfer packet to the node A transmission means ;
A branch point determination means for determining, as a branch point, a node at which a path for transmitting target data to the plurality of storages branches;
When two or more storages exist in the transfer destination of the transfer destination node of the node indicating the branch point, the transfer destination information table storage unit of the node indicating the branch point stores the transfer destination node of the node indicating the branch point. Transfer destination information registration means for registering a virtual address and two or more storages existing in the transfer destination in association with each other ;
The branch point determination means of the proxy server sends a packet addressed to the special port to the path to each storage,
The node branch point determination means determines that the own node is a branch point when transmitting the packet addressed to the special port to a different physical port,
The branch point determination means of the proxy server assigns a virtual address in response to the request for the virtual address,
The transfer destination information registration unit of the proxy server registers the allocated virtual address and two or more storages existing in the transfer destination in association with each other in the transfer destination information table storage unit,
When the transfer destination node is registered in the transfer destination information table storage unit, the data transfer unit of the node deletes the storage destination address other than the storage corresponding to the transfer destination node from the transfer packet, and A data transfer system, wherein a transfer packet is transferred to the transfer destination node, and the target data is copied and transferred to the deleted storage address.
ストレージとの通信に使用される複数の第一ソケットを管理するための第二ソケットを作成するコネクション管理手段を含み、
パケット送信手段は、前記第二ソケットを利用して転送用パケットを送信する
請求項1記載のデータ転送システム。 The proxy server
Including a connection management means for creating a second socket for managing a plurality of first sockets used for communication with the storage;
Packet transmission means, the data transfer system of claim 1, wherein transmitting the transfer packet by using the second socket.
前記ノードは、自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段を備えており、
前記対象データの転送先と、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合に当該転送用パケットから対象データを複製して各ストレージに送信するノードに対して当該転送用パケットを送信するパケット送信手段と、
前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定手段と、
前記分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、当該分岐点を示すノードの前記転送先情報テーブル記憶手段に、当該分岐点を示すノードの転送先ノードの仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録手段とを備え、
前記分岐点決定手段は、特別ポート宛パケットを各ストレージまでの経路に送信し、前記ノードが前記特別ポート宛パケットを異なる物理ポートに送信するとして自ノードを分岐点と判断した際に当該ノードから送信される、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求に応じて、仮想アドレスを割り当て、
前記転送先情報登録手段は、割り当てられた仮想アドレスと前記転送先に存在する2以上のストレージとを対応付けて前記転送先情報テーブル記憶手段に登録する
ことを特徴とする転送用データ送信装置。 A data transmission device for transfer that determines a plurality of storages to store the same target data, and transmits the target data to each determined storage via a node on the network,
The node is a transfer destination information that stores a transfer destination information table in which a transfer destination node that is a node to which data is transferred from the own node and a plurality of storages that store data that passes through the transfer destination node are associated with each other. A table storage means,
When a transfer packet including the transfer destination of the target data, storage destination addresses of a plurality of storages storing the target data, and the target data is created, and the target data destined for the plurality of storages branches A packet transmission means for transmitting the transfer packet to a node that copies the target data from the transfer packet and transmits it to each storage ;
A branch point determination means for determining, as a branch point, a node at which a path for transmitting target data to the plurality of storages branches;
When two or more storages exist in the transfer destination of the transfer destination node of the node indicating the branch point, the transfer destination information table storage unit of the node indicating the branch point stores the transfer destination node of the node indicating the branch point. Transfer destination information registration means for registering a virtual address and two or more storages existing in the transfer destination in association with each other ;
The branch point determination means transmits a packet addressed to a special port to a path to each storage, and determines that the node is a branch point when the node determines that the special port address packet is transmitted to a different physical port. Assign a virtual address according to the request for the storage address of the storage that exists at the transfer destination of the local node and the virtual address to be allocated to the local node,
The transfer destination information registration unit registers the assigned virtual address and two or more storages existing in the transfer destination in association with each other in the transfer destination information table storage unit .
自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段と、
前記転送先情報テーブル記憶手段に前記転送先ノードが登録されている場合、前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを前記送信装置から受信したときに、当該転送用パケットから、前記転送先ノードに対応するストレージ以外の格納先アドレスを削除して前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送するデータ転送手段と、
自転送用データ処理装置が分岐点か否かを判断する分岐点判断手段と、
前記分岐点判断手段によって自転送用データ処理装置が分岐点であると判断された場合、自転送用データ処理装置の転送先に存在するストレージの格納先アドレスと、自転送用データ処理装置に割り振る仮想アドレスの要求を前記送信装置に送信するアドレス要求手段とを備え、
前記分岐点判断手段は、前記送信装置から各ストレージまでの経路に送信される特別ポート宛パケットを受信し、当該特別ポート宛パケットを異なる物理ポートに送信する場合に、自転送用データ処理装置を分岐点と判断し、
前記データ転送手段は、前記送信装置が前記仮想アドレスの要求に応じて前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定して当該分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合に当該分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて前記転送先情報テーブル記憶手段に登録すると、当該登録内容に応じて前記対象データを転送する
ことを特徴とする転送用データ処理装置。 Determine a plurality of storages to store the same target data, receive a transfer packet from a transmitting device that transmits the target data addressed to each determined storage, and transfer the transfer packet to the plurality of storages A data processing device for transfer,
A transfer destination information table storage unit for storing a transfer destination information table in which a transfer destination node that transfers data from the own node and a plurality of storages in which data passing through the transfer destination node are stored are associated with each other; ,
When the transfer destination node is registered in the transfer destination information table storage unit, the transfer destination node of the target data, storage destination addresses of a plurality of storages storing the target data, and the target data are included. When the transfer packet is received from the transmission device, the storage destination address other than the storage corresponding to the transfer destination node is deleted from the transfer packet and transferred to the transfer destination node, and the deleted storage address and data transfer means for transferring to replicate the target data addressed,
A branch point judging means for judging whether or not the data processing device for own transfer is a branch point;
When it is determined by the branch point determination means that the self-transfer data processing device is a branch point, the storage destination address of the storage existing at the transfer destination of the self-transfer data processing device and the self-transfer data processing device are allocated. Address request means for transmitting a request for a virtual address to the transmitter,
The branching point judging means receives a special port-addressed packet transmitted from the transmitting device to each storage path, and transmits the special-port-addressed packet to a different physical port. Judge as a branch point,
The data transfer means determines a node at which a path when the transmission device transmits target data to the plurality of storages in response to a request for the virtual address as a branch point, and transfers a node indicating the branch point When two or more storages exist in the transfer destination of the destination node, the transfer destination is associated with the virtual address assigned to the transfer destination node of the node indicating the branch point and the two or more storages existing in the transfer destination A data processing apparatus for transfer, which, when registered in the information table storage means, transfers the target data in accordance with the registered contents .
前記対象データを格納すべき複数のストレージを決定するプロキシサーバが、前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成して、前記プロキシサーバから送信されるデータを受信して前記ストレージへ転送するノードに対して当該転送用パケットを送信し、
前記ノードが、転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、当該転送先ノードに対応するストレージ以外の格納先アドレスを前記転送用パケットから削除して当該転送用パケットを前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送し、
前記プロキシサーバが、特別ポート宛パケットを各ストレージまでの経路に送信し、
前記ノードが、前記特別ポート宛パケットを異なる物理ポートに送信する場合に、自ノードを分岐点と判断し、自ノードを分岐点であると判断した場合、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求を前記プロキシサーバに送信し、
前記プロキシサーバが、前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定し、前記仮想アドレスの要求に応じて仮想アドレスを割り当て、
前記プロキシサーバが、前記分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、当該分岐点を示すノードの前記転送先情報テーブル記憶手段に、当該分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて登録する
ことを特徴とするネットワーク負荷軽減方法。 A network load reduction method for reducing the load on the network when storing the same target data in a plurality of storages via a network,
A proxy server that determines a plurality of storages to store the target data includes a transfer destination node for the target data, storage destination addresses of a plurality of storages for storing the target data, and the target data Create a packet, send the transfer packet to the node that receives the data sent from the proxy server and forwards it to the storage,
The transfer destination node to which data is transferred from its own node is registered in the transfer destination information table in which the node associates the transfer destination node with a plurality of storages storing data passing through the transfer destination node. The storage destination address other than the storage corresponding to the transfer destination node is deleted from the transfer packet, the transfer packet is transferred to the transfer destination node, and the target data is sent to the deleted storage destination address. Duplicate and transfer ,
The proxy server sends a packet addressed to the special port to the path to each storage,
When the node transmits the packet addressed to the special port to a different physical port, the node determines that the node is a branch point, and determines that the node is a branch point. A request for a storage address and a virtual address to be allocated to the own node is sent to the proxy server,
The proxy server determines, as a branch point, a node at which a path when transmitting target data to the plurality of storages branches, and assigns a virtual address in response to the request for the virtual address,
When the proxy server has two or more storages in the transfer destination of the transfer destination node of the node indicating the branch point, the node indicating the branch point in the transfer destination information table storage unit of the node indicating the branch point A network load reduction method comprising: registering a virtual address assigned to a transfer destination node in association with two or more storages existing at the transfer destination .
前記ノードは、自ノードからデータを転送する先のノードである転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルを記憶する転送先情報テーブル記憶手段を備えており、
前記コンピュータに、
前記対象データの転送先と、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを作成し、複数のストレージ宛の対象データが分岐する場合に当該転送用パケットから対象データを複製して各ストレージに送信するノードに対して当該転送用パケットを送信するパケット送信処理、
前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定する分岐点決定処理、および、
前記分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合、当該分岐点を示すノードの前記転送先情報テーブル記憶手段に、当該分岐点を示すノードの転送先ノードの仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて登録する転送先情報登録処理を実行させ、
前記分岐点決定処理で、特別ポート宛パケットを各ストレージまでの経路に送信させ、前記ノードが前記特別ポート宛パケットを異なる物理ポートに送信するとして自ノードを分岐点と判断した際に当該ノードから送信される、自ノードの転送先に存在するストレージの格納先アドレスと、自ノードに割り振る仮想アドレスの要求に応じて、仮想アドレスを割り当てさせ、
前記転送先情報登録処理で、割り当てられた仮想アドレスと前記転送先に存在する2以上のストレージとを対応付けて前記転送先情報テーブル記憶手段に登録させる
ための転送用データ送信プログラム。 A data transmission program for transfer applied to a computer that determines a plurality of storages to store the same target data, and transmits the target data to each determined storage via a node on the network,
The node is a transfer destination information that stores a transfer destination information table in which a transfer destination node that is a node to which data is transferred from the own node and a plurality of storages that store data that passes through the transfer destination node are associated with each other. A table storage means,
In the computer,
When a transfer packet including the transfer destination of the target data, storage destination addresses of a plurality of storages storing the target data, and the target data is created, and the target data destined for the plurality of storages branches Packet transmission processing for transmitting the transfer packet to a node that copies the target data from the transfer packet and transmits it to each storage ,
A branch point determination process for determining, as a branch point, a node at which a path when transmitting target data to the plurality of storages branches; and
When two or more storages exist in the transfer destination of the transfer destination node of the node indicating the branch point, the transfer destination information table storage unit of the node indicating the branch point stores the transfer destination node of the node indicating the branch point. A transfer destination information registration process for registering a virtual address and two or more storages existing in the transfer destination in association with each other;
In the branch point determination process, the special port addressed packet is transmitted to the path to each storage, and when the node determines that the node is a branch point as transmitting the special port addressed packet to a different physical port, In response to a request for the storage address of the storage existing at the transfer destination of the local node and the virtual address to be allocated to the local node, the virtual address is allocated,
A transfer data transmission program for associating the allocated virtual address with two or more storages existing in the transfer destination in the transfer destination information registration process and registering them in the transfer destination information table storage means .
前記コンピュータに、
転送先ノードと、当該転送先ノードを経由するデータが格納される複数のストレージを対応付けた転送先情報テーブルに、自ノードからデータを転送する先の転送先ノードが登録されている場合、前記送信装置から前記対象データの転送先ノードと、当該対象データが格納される複数のストレージの格納先アドレスと、当該対象データとを含む転送用パケットを受信したときに、当該転送用パケットから、前記転送先ノードに対応するストレージ以外の格納先アドレスを削除して前記転送先ノードに転送し、削除された格納先アドレス宛に前記対象データを複製して転送するデータ転送処理、
自コンピュータが分岐点か否かを判断する分岐点判断処理、および、
前記分岐点判断処理で自コンピュータが分岐点であると判断された場合、自コンピュータの転送先に存在するストレージの格納先アドレスと、自コンピュータに割り振る仮想アドレスの要求を前記送信装置に送信するアドレス要求処理を実行させ、
前記分岐点判断処理で、前記送信装置から各ストレージまでの経路に送信される特別ポート宛パケットを受信し、当該特別ポート宛パケットを異なる物理ポートに送信する場合に、自コンピュータを分岐点と判断させ、
前記データ転送処理で、前記送信装置が前記仮想アドレスの要求に応じて前記複数のストレージに対象データを送信する際の経路が分岐するノードを分岐点と決定して当該分岐点を示すノードの転送先ノードの転送先に2以上のストレージが存在する場合に当該分岐点を示すノードの転送先ノードに割り当てた仮想アドレスと、前記転送先に存在する2以上のストレージとを対応付けて前記転送先情報テーブル記憶手段に登録すると、当該登録内容に応じて前記対象データを転送させる
ための転送用データ処理プログラム。 Decide a plurality of storages to store the same target data, receive transfer packets from the transmitting device that transmits the target data addressed to each determined storage, and transfer the transfer packets to the plurality of storages A data processing program for transfer applied to a computer,
In the computer,
When a transfer destination node to which data is transferred from its own node is registered in a transfer destination information table in which a transfer destination node is associated with a plurality of storages storing data passing through the transfer destination node, When a transfer packet including a transfer destination node of the target data, storage destination addresses of a plurality of storages in which the target data is stored, and the target data is received from the transmission device, from the transfer packet, A data transfer process for deleting a storage destination address other than the storage corresponding to the transfer destination node, transferring the address to the transfer destination node, and copying and transferring the target data to the deleted storage destination address ;
A branch point determination process for determining whether or not the local computer is a branch point; and
When the branch point determination process determines that the own computer is a branch point, the storage destination address of the storage existing at the transfer destination of the own computer and the address for sending a request for a virtual address to be assigned to the own computer to the transmission device Execute request processing,
In the branch point determination process, when receiving a packet destined for a special port transmitted on the route from the transmitting device to each storage and transmitting the packet destined for the special port to a different physical port, the local computer is determined to be a branch point. Let
In the data transfer process, a node that branches a path when the transmission device transmits target data to the plurality of storages in response to a request for the virtual address is determined as a branch point, and a node indicating the branch point is transferred. When two or more storages exist in the transfer destination of the destination node, the transfer destination is associated with the virtual address assigned to the transfer destination node of the node indicating the branch point and the two or more storages existing in the transfer destination A transfer data processing program for transferring the target data in accordance with the registered contents when registered in the information table storage means .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051721A JP6179141B2 (en) | 2013-03-14 | 2013-03-14 | Data transfer system and network load reducing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013051721A JP6179141B2 (en) | 2013-03-14 | 2013-03-14 | Data transfer system and network load reducing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014179748A JP2014179748A (en) | 2014-09-25 |
JP6179141B2 true JP6179141B2 (en) | 2017-08-16 |
Family
ID=51699286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013051721A Active JP6179141B2 (en) | 2013-03-14 | 2013-03-14 | Data transfer system and network load reducing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6179141B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911461B (en) * | 2017-11-24 | 2021-05-07 | 网宿科技股份有限公司 | Object processing method in cloud storage system, storage server and cloud storage system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4094537B2 (en) * | 2003-12-08 | 2008-06-04 | 日本電信電話株式会社 | Multicast data communication system, branching apparatus, and program |
-
2013
- 2013-03-14 JP JP2013051721A patent/JP6179141B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2014179748A (en) | 2014-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112470436B (en) | Systems, methods, and computer-readable media for providing multi-cloud connectivity | |
US11032188B2 (en) | Method and apparatus for path selection | |
US11743332B2 (en) | Systems and methods for routing data to a parallel file system | |
CN111034159B (en) | Replication with dedicated metal deployment in the cloud | |
US20110185082A1 (en) | Systems and methods for network virtualization | |
JP6544401B2 (en) | PACKET TRANSFER DEVICE, CONTROL DEVICE, COMMUNICATION SYSTEM, COMMUNICATION METHOD, AND PROGRAM | |
US20060146999A1 (en) | Caching engine in a messaging system | |
CN105683929B (en) | Method and apparatus for database and memory aware router | |
JP2008527538A (en) | Caching engine in the messaging system | |
CN114401221B (en) | SDWAN overlay routing services | |
TW201830919A (en) | Software Defined Network controller, service function chaining system and trace tracking METHOD | |
JP2008536369A (en) | Connection forwarding | |
CN112543107B (en) | Content delivery with reliable multicast using redundant unicast overlay networks | |
CN103825826B (en) | The implementation method and device of a kind of dynamic routing | |
US9832121B1 (en) | Next hop instruction associations for forwarding unit programming within a network device | |
US9467374B2 (en) | Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway | |
US9491264B2 (en) | Extensible messaging and presence protocol (XMPP) based software-service-defined-network (SSDN) | |
Cha et al. | A mobility link service for ndn consumer mobility | |
US11223697B2 (en) | Scaling microservices communication over information centric networks | |
CN111131022B (en) | Service flow processing method and device | |
US8031713B2 (en) | General multi-link interface for networking environments | |
JP6179141B2 (en) | Data transfer system and network load reducing method | |
WO2012029248A1 (en) | Data transfer system | |
Parisis et al. | Implementation and evaluation of an information-centric network | |
JP5803924B2 (en) | Data transfer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161213 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170210 |
|
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: 20170620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170703 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6179141 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |