JP2017184195A - Communication management device, communication management method and program - Google Patents

Communication management device, communication management method and program Download PDF

Info

Publication number
JP2017184195A
JP2017184195A JP2016073184A JP2016073184A JP2017184195A JP 2017184195 A JP2017184195 A JP 2017184195A JP 2016073184 A JP2016073184 A JP 2016073184A JP 2016073184 A JP2016073184 A JP 2016073184A JP 2017184195 A JP2017184195 A JP 2017184195A
Authority
JP
Japan
Prior art keywords
communication
storage nodes
storage
identifier
real storage
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.)
Granted
Application number
JP2016073184A
Other languages
Japanese (ja)
Other versions
JP6677052B2 (en
Inventor
正承 松浦
Masayoshi Matsuura
正承 松浦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2016073184A priority Critical patent/JP6677052B2/en
Publication of JP2017184195A publication Critical patent/JP2017184195A/en
Application granted granted Critical
Publication of JP6677052B2 publication Critical patent/JP6677052B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a management technology capable of flexibly switching a path at high speed while reducing a management load in distributed type storage.SOLUTION: A communication management device includes: generation means 12 for generating settings, including a first rule for determining a transfer destination of an object based on an identifier uniquely given to the object, of a plurality of communication equipment in a route to send the object to one of a plurality of actual storage nodes based on a first assignment relation in which the identifier is assigned to one of the plurality of actual storage nodes and connection relation between the plurality of communication equipment and the plurality of actual storage nodes; and application means 13 for applying the settings to the communication equipment.SELECTED DRAWING: Figure 27

Description

本開示は、ネットワークを管理する技術に関する。   The present disclosure relates to a technique for managing a network.

分散ファイルシステム(以後、「分散FS」(File System)と表記)や分散型オブジェクトストレージでは、ノード管理を行う必要がある。そのノード管理の方法として、(1)メタデータサーバを用いた中央集権的な管理手法、または、(2)システムに所属するノードそれぞれが算出アルゴリズムないし管理テーブルをもち、通信先を解決する管理手法が用いられてきた。   In a distributed file system (hereinafter referred to as “distributed FS” (File System)) and a distributed object storage, node management is required. As a node management method, (1) a centralized management method using a metadata server, or (2) a management method in which each node belonging to the system has a calculation algorithm or a management table and solves a communication destination Has been used.

特許文献1乃至9には、OpenFlow(登録商標)に代表されるSDN(Software−Defined Network)及びパケットの転送に関連する技術が開示されている。   Patent Documents 1 to 9 disclose SDN (Software-Defined Network) typified by OpenFlow (registered trademark) and techniques related to packet transfer.

特開2015−154210号公報JP2015-154210A 特開2015−095730号公報Japanese Patent Laying-Open No. 2015-095730 特開2010−109791号公報JP 2010-109791 A 特表2015−537754号公報Special table 2015-537754 gazette 特開2003−153239号公報JP 2003-153239 A 欧州特許出願公開第2731304号明細書European Patent Application No. 2731304 欧州特許出願公開第2782312号明細書European Patent Application Publication No. 2782312 米国特許出願公開第2014/0229945号明細書US Patent Application Publication No. 2014/0229945 米国特許出願公開第2014/0269288号明細書US Patent Application Publication No. 2014/0269288

(1)の中央集権的な管理を行っている場合、管理を行う制御サーバに障害が発生すると、その障害の影響が全体に波及する問題がある。そのため、制御サーバを冗長化するなど対策を講じなければならない。また制御サーバへアクセスが集中し過ぎるので、制御サーバの性能がネックになることよって、分散FS又は分散オブジェクトストレージ全体で性能が出なくなるといった問題点もある。   When the centralized management of (1) is performed, if a failure occurs in the control server that performs management, there is a problem that the influence of the failure spreads to the whole. Therefore, it is necessary to take measures such as making the control server redundant. Further, since the access to the control server is excessively concentrated, there is a problem that the performance of the control server becomes a bottleneck and the performance of the distributed FS or the distributed object storage is not obtained.

(2)の分散管理型の手法では、システムに参加するノードがそれぞれのノードを把握しなければならない。この方法は、あるノードがダウンしても、残っているノードは動作を継続でき、システムとしては運用が継続できるメリットがある。しかし、参加ノードとオブジェクトの担当の把握を、それぞれのノードが行わなければならないので、ノード管理の負担が大きい。また、ノードの追加など、システムに参加するノードに変更が加わった場合に、管理情報が全体に伝わりきるまで時間がかかるという欠点が存在する。   In the distributed management type method (2), nodes participating in the system must grasp each node. This method has an advantage that even if a certain node goes down, the remaining nodes can continue to operate, and the system can continue to operate. However, since each node must grasp the responsibility of participating nodes and objects, the burden of node management is large. In addition, when a change is made to a node participating in the system, such as addition of a node, there is a drawback that it takes time until the management information is transmitted to the whole.

本発明の目的の1つは、分散型ストレージにおける管理負荷を軽減しながら高速で柔軟な経路の切り替えをできる管理技術を提供することにある。   One of the objects of the present invention is to provide a management technique capable of switching routes at high speed and flexibly while reducing the management load in the distributed storage.

本発明の一態様に係る通信管理装置は、複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成手段と、前記通信機器に前記設定を適用する適用手段と、を備える。   The communication management apparatus according to an aspect of the present invention provides a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. A setting including a first rule for determining a first assignment relationship for assigning the identifier to any of the plurality of real storage nodes, and a connection relationship between the plurality of communication devices and the plurality of real storage nodes. Generating means for generating the information based on the information, and applying means for applying the setting to the communication device.

本発明の一態様に係る通信管理方法は、複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成し、前記通信機器に前記設定を適用する。   The communication management method according to an aspect of the present invention provides a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. A setting including a first rule for determining a first assignment relationship for assigning the identifier to any of the plurality of real storage nodes, and a connection relationship between the plurality of communication devices and the plurality of real storage nodes. And the setting is applied to the communication device.

本発明の一態様に係るプログラムは、コンピュータに、複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成処理と、前記通信機器に前記設定を適用する適用処理と、を実行させる。   The program according to an aspect of the present invention is a program for transferring an object to a computer based on an identifier uniquely assigned to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. A first allocation relationship for assigning the identifier to any one of the plurality of real storage nodes, and a connection relationship between the plurality of communication devices and the plurality of real storage nodes. Generation processing to be generated based on the above, and application processing to apply the setting to the communication device.

本発明によると、分散型ストレージにおける管理負荷を軽減しながら高速で柔軟な経路の切り替えをできるという効果がある。   According to the present invention, there is an effect that a flexible path switching can be performed at high speed while reducing the management load in the distributed storage.

図1は、本発明の第1の実施形態に係る分散ストレージシステムの構成を表す図である。FIG. 1 is a diagram showing the configuration of a distributed storage system according to the first embodiment of the present invention. 図2は、本発明の第1の実施形態に係るOpenFlowネットワークを模式的に表す図である。FIG. 2 is a diagram schematically showing the OpenFlow network according to the first embodiment of the present invention. 図3は、OpenFlowスイッチの構成を模式的に表す図である。FIG. 3 is a diagram schematically illustrating the configuration of the OpenFlow switch. 。図4は、Flow Tableの構造を模式的に表す図である。. FIG. 4 is a diagram schematically illustrating the structure of the Flow Table. 図5は、ネットワークパケットの構造の概要を表す図である。FIG. 5 is a diagram showing an outline of the structure of a network packet. 図6は、本発明の第1の実施形態に係るハッシュ空間の分割の例を表す図である。FIG. 6 is a diagram illustrating an example of hash space division according to the first embodiment of the present invention. 図7は、Group Table の構造を模式的に表す図である。FIG. 7 is a diagram schematically showing the structure of the Group Table. 図8は、本発明の第1の実施形態に係るシステムの全体的な動作を表すフローチャートである。FIG. 8 is a flowchart showing the overall operation of the system according to the first embodiment of the present invention. 図9は、本発明の第1の実施形態に係るシステムの、オブジェクトストレージ用のオーバレイネットワークの設計及び構築の動作を表すフローチャートである。FIG. 9 is a flowchart showing an operation of designing and constructing an overlay network for object storage in the system according to the first embodiment of the present invention. 図10は、本発明の第1の実施形態に係るFlow Tableの例を示す図である。FIG. 10 is a diagram illustrating an example of a Flow Table according to the first embodiment of the present invention. 図11は、本発明の第1の実施形態に係るFlow Tableの例を示す図である。FIG. 11 is a diagram illustrating an example of a flow table according to the first embodiment of the present invention. 図12は、本発明の第1の実施形態に係るFlow Tableの例を示す図である。FIG. 12 is a diagram illustrating an example of a Flow Table according to the first embodiment of the present invention. 図13は、本発明の第1の実施形態に係るOpenFlowスイッチの、パケットが到着した際の動作の例を表すフローチャートである。FIG. 13 is a flowchart showing an example of an operation when a packet arrives in the OpenFlow switch according to the first embodiment of the present invention. 図14は、本発明の第1の実施形態に係るクライアントの全体的な動作の例を表すフローチャートである。FIG. 14 is a flowchart showing an example of the overall operation of the client according to the first embodiment of the present invention. 図15は、本発明の第1の実施形態に係るオブジェクトストレージノードの動作の例を表すフローチャートである。FIG. 15 is a flowchart showing an example of the operation of the object storage node according to the first embodiment of the present invention. 図16は、本発明の第1の実施形態に係るシステムの、データのやり取りを行う動作の例を表すシーケンス図である。FIG. 16 is a sequence diagram illustrating an example of an operation for exchanging data in the system according to the first embodiment of the present invention. 図17は、フラグメントが発生するデータを模式的に表す図である。FIG. 17 is a diagram schematically illustrating data in which a fragment is generated. 図18は、本実施形態に係るシステムの、接続リクエストを使用する動作の例を表すシーケンス図である。FIG. 18 is a sequence diagram illustrating an example of an operation using a connection request in the system according to the present embodiment. 図19は、本発明の第1の実施形態に係るシステムの、解決策が適用された動作の例を表すシーケンス図である。FIG. 19 is a sequence diagram illustrating an example of an operation to which a solution is applied in the system according to the first embodiment of the present invention. 図20は、本発明の第1の実施形態のシステムに係る、フォーマットを変換する機能がライブラリに組み込まれている構成の例を表す図である。FIG. 20 is a diagram illustrating an example of a configuration in which a format conversion function is incorporated in a library according to the system of the first embodiment of the present invention. 図21は、本実施形態に係るシステムの、通信モジュールに通信の解説を要求する動作の例を表すシーケンス図である。FIG. 21 is a sequence diagram illustrating an example of an operation of requesting the communication module to explain the communication in the system according to the present embodiment. 図22は、実施形態に係る通信モジュールを使ったオブジェクトストレージの通信の例を表すシーケンス図である。FIG. 22 is a sequence diagram illustrating an example of object storage communication using the communication module according to the embodiment. 図23は、本発明の第2の実施形態に係るストレージシステムの構成を表すブロック図である。FIG. 23 is a block diagram showing the configuration of a storage system according to the second embodiment of the present invention. 図24は、本発明の第2の実施形態に係る通信機器の構成の例を表すブロック図である。FIG. 24 is a block diagram illustrating an example of a configuration of a communication device according to the second embodiment of the present invention. 図25は、本発明の第2の実施形態に係る通信管理装置の動作の例を表すフローチャートである。FIG. 25 is a flowchart showing an example of the operation of the communication management apparatus according to the second embodiment of the present invention. 図26は、本発明の第2の実施形態に係る通信機器の動作の例を表すフローチャートである。FIG. 26 is a flowchart illustrating an example of the operation of the communication device according to the second embodiment of the present invention. 図27は、本発明の第3の実施形態に係る通信管理装置の構成の例を表すブロック図である。FIG. 27 is a block diagram illustrating an example of a configuration of a communication management apparatus according to the third embodiment of the present invention. 図28は、本発明の第3の実施形態に係る通信管理装置の動作の例を表すフローチャートである。FIG. 28 is a flowchart showing an example of the operation of the communication management apparatus according to the third embodiment of the present invention. 図29は、本発明の各実施形態に係る装置を実現することができる、コンピュータ1000のハードウェア構成の一例を表す図である。FIG. 29 is a diagram illustrating an example of a hardware configuration of a computer 1000 that can implement the apparatus according to each embodiment of the present invention.

次に、発明の実施形態について、図面を参照して詳細に説明する。   Next, embodiments of the invention will be described in detail with reference to the drawings.

<<第1の実施形態>>
最初に、本実施形態の特徴について、簡単に説明する。
<< First Embodiment >>
First, features of the present embodiment will be briefly described.

本発明では、ノード管理機能をストレージシステム側からネットワーク側へ移譲した新たなシステムを構築する。   In the present invention, a new system is constructed in which the node management function is transferred from the storage system side to the network side.

本実施形態では、ストレージネットワーク用のオーバレイネットワークを構築し、利用する。本実施形態では、実現にあたり、OpenFlowを利用するだけでなく拡張する。そして、本実施形態は、例えば以下に示す特徴を備える。
1.OpenFlowコントローラ又はOpenFlowコントローラの協調サーバが分散ストレージの配置情報を管理する機能を有し、分散型オブジェクトストレージのリソース分担を適切に管理する。以下で説明する図1及び以下の説明では、分散ストレージの配置情報を管理する機能を、「分散ストレージ配置情報管理機能」とも表記する。
2.分散ストレージの配置情報を管理する機能とOpenFlowコントローラが連携し、分散ストレージ用のオーバレイネットワークをOpenFlowネットワーク上に構築する。
3.構築したオーバレイネットワークでは、オブジェクト(リソース)と結びつけられたハッシュ値(リソース識別子)などを手掛かりとして、OpenFlowスイッチが適切なストレージノードへリクエストを配送する。
In this embodiment, an overlay network for a storage network is constructed and used. In this embodiment, the OpenFlow is not only used but also extended for realization. And this embodiment is provided with the feature shown below, for example.
1. The OpenFlow controller or a cooperative server of the OpenFlow controller has a function of managing the distributed storage arrangement information, and appropriately manages the resource sharing of the distributed object storage. In FIG. 1 described below and the following description, the function for managing the distributed storage arrangement information is also referred to as a “distributed storage arrangement information management function”.
2. The function to manage the distribution information of the distributed storage and the OpenFlow controller work together to construct an overlay network for the distributed storage on the OpenFlow network.
3. In the constructed overlay network, the OpenFlow switch delivers a request to an appropriate storage node using a hash value (resource identifier) associated with an object (resource) as a clue.

次に、本実施形態を実現する技術の概要について説明する。   Next, an outline of a technique for realizing the present embodiment will be described.

リソースをストレージの代表アドレスへ送信すると、ネットワークがそのリソースの担当ノードへそのオブジェクトを配送するように、分散ストレージ用のオーバレイネットワークを構築し、構築したオーバレイネットワークを使用する。これによりストレージのクライアントは、リソースの担当ノードを直接把握せずとも、分散ストレージを利用できるようになる。   When the resource is transmitted to the representative address of the storage, an overlay network for the distributed storage is constructed so that the network delivers the object to the node in charge of the resource, and the constructed overlay network is used. As a result, the storage client can use the distributed storage without directly grasping the node in charge of the resource.

分散ストレージ用のオーバレイネットワークを構築するのに、OpenFlowを利用する。OpenFlowはオーバレイネットワークを構築することができるが、現行仕様のままではオブジェクトストレージ用のネットワークが構築できない。構築にあたって、例えば以下の少なくともいずれかの解決を行う。
(1)オブジェクトストレージで使用するリソース識別子とリクエストを扱えるようOpenFlow仕様を拡張する。
(2)送信用モジュールにより、リソース識別子やリクエストなどの必要情報をOpenFlowが扱えるプロトコルヘッダ領域へマッピングし、OpenFlowを流用できるようにする。
Use OpenFlow to build an overlay network for distributed storage. OpenFlow can build an overlay network, but it cannot build a network for object storage with the current specifications. At the time of construction, for example, at least one of the following solutions is performed.
(1) Extend the OpenFlow specification to handle resource identifiers and requests used in object storage.
(2) The transmission module maps necessary information such as resource identifiers and requests to a protocol header area that can be handled by OpenFlow so that OpenFlow can be used.

分散ストレージの各ノードがどのリソース(オブジェクトストレージにとってはオブジェクトに相当)を担当するかを管理できるようにするために、分散ストレージの配置情報を管理する機能を用意する。分散ストレージの配置情報を管理する機能は、限られたメモリを使うOpenFlowスイッチでもリソースを扱えるようにする。また、分散ストレージの配置情報を管理する機能は、OpenFlowコントローラと連携し、OpenFlowスイッチのFlow Tableを設定することで、分散ストレージ用のオーバレイネットワーク構築に利用される。   In order to be able to manage which resource (corresponding to an object for object storage) each node of the distributed storage is in charge of, a function for managing the arrangement information of the distributed storage is prepared. The function to manage the distribution information of distributed storage makes it possible to handle resources even with OpenFlow switches that use limited memory. In addition, the function for managing the distribution information of the distributed storage is used to construct an overlay network for the distributed storage by linking with the OpenFlow controller and setting the Flow Table of the OpenFlow switch.

<構成>
次に、本実施形態の構成について説明する。
<Configuration>
Next, the configuration of the present embodiment will be described.

本実施形態では、分散型オブジェクトストレージのオーバレイネットワークを構築することによって、ノード管理をネットワーク側において実現する。クライアント、及び、オブジェクトストレージの構成ノードは、オブジェクトストレージ用の機能モジュールに、以下で説明するやりとりを行うための通信機能を追加で備える。   In this embodiment, node management is realized on the network side by constructing an overlay network of distributed object storage. The client and the object storage configuration node are additionally provided with a communication function for performing the exchange described below in the function module for object storage.

まずオブジェクトストレージについて簡潔に説明する。   First, the object storage will be briefly described.

オブジェクトストレージは、オブジェクトと呼ぶ一連のデータを、そのオブジェクトに関連付けたオブジェクト識別子を使用してアクセスするストレージ装置である。オブジェクト識別子として、一般的に、なんらかのハッシュ値が用いられることが多い。データの格納に際し、階層構造を持たないフラットな配置が採用されることが多いが、格納方法は厳密には定められていない。   An object storage is a storage device that accesses a series of data called an object using an object identifier associated with the object. In general, some hash value is often used as the object identifier. When storing data, a flat arrangement having no hierarchical structure is often adopted, but the storage method is not strictly defined.

オブジェクトストレージとのデータのやり取りに、CRUD (Create, Read, Update, Delete) I/F (Interface)ではなく、REST (Representational State Transfer) I/Fと呼ぶインタフェース仕様を用いることがある。以下の説明では、REST I/F を「Rest I/F」とも表記する。REST I/Fは、目的のリソースを指定するリソース識別子、及び、リソースに対する操作を表すリクエストの、2つの属性を使用する。オブジェクトストレージは、リソースをオブジェクト(一連のデータ)に、リソース識別子をオブジェクト識別子に置き換えることによって、容易にREST I/Fとして利用できるようになる。   An interface specification called REST (Representational State Transfer) I / F may be used for data exchange with the object storage instead of CRUD (Create, Read, Update, Delete) I / F (Interface). In the following description, REST I / F is also referred to as “Rest I / F”. The REST I / F uses two attributes: a resource identifier that specifies a target resource, and a request that represents an operation on the resource. Object storage can be easily used as a REST I / F by replacing a resource with an object (a series of data) and a resource identifier with an object identifier.

リソースに対するリクエストを説明する。リクエストには、GET、HEAD、POST、PUT、及び、DELETE が存在する。これらのリクエストは、主に次の意味で使用される。
GET : 指定されたリソース識別子のリソースを取り出す。
HEAD : 指定されたリソース識別子のメタリソースを取り出す。
POST : 指定したリソース識別子にリソースを新規作成する。
PUT : 指定したリソース識別子にリソースを更新する。
DELETE : 指定したリソース識別子のリソースを削除する。
Describe requests for resources. Requests include GET, HEAD, POST, PUT, and DELETE. These requests are mainly used in the following meanings.
GET: Retrieves the resource with the specified resource identifier.
HEAD: Takes out the meta resource with the specified resource identifier.
POST: Creates a new resource with the specified resource identifier.
PUT: Updates the resource to the specified resource identifier.
DELETE: Deletes the resource with the specified resource identifier.

本実施形態では、リクエストにリクエストID(Identifier)と呼ぶ識別番号を割り当てる。例えば、上述のリクエストに割り当てるリクエストIDを、GETから順に1, 2, … とする。数値に割り当てるのは、情報量を削減し、パケット上の記述位置を固定するためである。しかし、要はリクエストを識別できればよいので、リクエストIDとして、文字列などの別の表現を使ってもよい。   In this embodiment, an identification number called a request ID (Identifier) is assigned to the request. For example, it is assumed that the request IDs assigned to the above requests are 1, 2,. The reason for assigning numerical values is to reduce the amount of information and fix the description position on the packet. However, it is only necessary to identify the request, so another expression such as a character string may be used as the request ID.

上記リクエストは、HEAD、及び、POSTを除き、CRUD (Create, Read, Update, Delete) にほぼ対応している。そのため、インタフェース仕様をRest I/Fによって実現可能であれば、Rest I/Fの代わりにリソース識別子とCRUDを基にしたリクエストを代替に使ったI/Fも容易に実現可能である。   The above request almost corresponds to CRUD (Create, Read, Update, Delete) except HEAD and POST. Therefore, if the interface specification can be realized by Rest I / F, I / F using a request based on a resource identifier and CRUD instead of Rest I / F can be easily realized.

本実施形態では、オブジェクトの最大サイズを1460(本実施形態で使用するヘッダ長)以下とする (関連1)。この制限は、オブジェクトのサイズを通信に使うEthernet(登録商標)の標準MTU(Maximum Transmission Unit)サイズ(1500)以下にするためである。サイズの拡張方法に際しては<<関連技術>>において説明する。   In this embodiment, the maximum size of an object is set to 1460 (header length used in this embodiment) or less (Related 1). This limitation is to reduce the size of the object to a standard MTU (Maximum Transmission Unit) size (1500) of Ethernet (registered trademark) used for communication. The size expansion method will be described in << Related Technology >>.

またオブジェクトストレージのサーバやクライアントが持つオブジェクトストレージ用プログラムが、本実施形態で使用するネットワークプロトコルにのっとり、データを用意する例となっている。通信フォーマットへの変換をオブジェクトストレージ用のプログラムではなく、外部ライブラリやOS(Operating System)として提供する方法に関しては、<<関連技術>>に記載する(関連2)。   In addition, an object storage program held by an object storage server or client is an example of preparing data according to the network protocol used in this embodiment. The method of providing the conversion to the communication format as an external library or OS (Operating System) instead of the object storage program is described in << Related Technology >> (Related 2).

本実施形態について、図1、図2を用いて説明する。図1は、本実施形態の分散ストレージシステムの構成を表す図である。図2は、本実施形態のOpenFlowネットワークを模式的に表す図である。図2は図1のOpenFlowネットワーク部分(図1、101)をより具体的にしたものである。   This embodiment will be described with reference to FIGS. FIG. 1 is a diagram showing the configuration of the distributed storage system of this embodiment. FIG. 2 is a diagram schematically showing the OpenFlow network of the present embodiment. FIG. 2 is a more specific example of the OpenFlow network portion (FIG. 1, 101) of FIG.

本実施形態で取り扱うネットワークは、単なるEthernet機器ではなくOpenFlow対応機器を用いたネットワークで構成している。OpenFlowと対比するものとして単なるEthernetをレガシーネットワークと称することもある。   The network handled in this embodiment is not a simple Ethernet device but a network using OpenFlow compatible devices. In contrast to OpenFlow, simple Ethernet is sometimes referred to as a legacy network.

OpenFlowネットワークは、1つ又は複数のOpenFlowコントローラと呼ばれるネットワークの制御コントローラと、1つ以上のOpenFlowスイッチで構成する。OpenFlowスイッチは、datapath IDと呼ぶ識別子で区別される。本実施形態では、分かりやすさを優先し、OpenFlowスイッチの識別子を、数値の代わりにOFS1, OFS2, … と表記することがある。   The OpenFlow network is composed of one or more OpenFlow controllers called network control controllers and one or more OpenFlow switches. OpenFlow switches are distinguished by identifiers called datapath IDs. In this embodiment, priority is given to ease of understanding, and identifiers of OpenFlow switches are sometimes expressed as OFS1, OFS2,... Instead of numerical values.

OpenFlowコントローラとOpenFlowスイッチは、Ethernetのネットワークで接続した制御用ネットワークで結ばれ、OpenFlowプロトコルを用いて制御通信を行う。   The OpenFlow controller and OpenFlow switch are connected by a control network connected by an Ethernet network, and control communication is performed using the OpenFlow protocol.

OpenFlowスイッチ間の接続で構成したネットワークは、PC(Personal Computer)などの機器の通信に使用される。ここでは、そのようなネットワークを、OpenFlowネットワークと称する。   A network configured by connections between OpenFlow switches is used for communication of devices such as PCs (Personal Computers). Here, such a network is referred to as an OpenFlow network.

図1、図2で示されるネットワーク構成では、1つのOpenFlowコントローラ(図1、103)と3つのOpenFlowスイッチ(図2、201〜203)が使用される。本実施形態の説明では、OpenFlowコントローラをOFCと、OpenFlowスイッチをOFSと略記する。特にOFCに関する説明の必要がない場合、以後の図中でも簡単のためOFCを省略する。   In the network configuration shown in FIGS. 1 and 2, one OpenFlow controller (FIGS. 1 and 103) and three OpenFlow switches (FIGS. 2 and 201 to 203) are used. In the description of this embodiment, the OpenFlow controller is abbreviated as OFC, and the OpenFlow switch is abbreviated as OFS. In particular, if there is no need to explain the OFC, the OFC is omitted in the following figures for simplicity.

本実施形態では、OpenFlowコントローラに分散ストレージ配置情報管理手段(図1、104) と呼ぶストレージ用のオーバレイネットワークを構築するための機能を搭載する。分散ストレージ配置情報管理手段は、OpenFlowコントローラと協調するサーバに搭載される形態でもよい。(分散ストレージ配置情報管理手段の具体的な機能については後述する。)
Client (図1、106) はオブジェクトストレージのクライアントである装置である。通常、クライアントは、パーソナルコンピュータなどの通信機能を備える機器である。本実施形態では、クライアントは、加えて、オブジェクトストレージを使用するための機能を備える。
In this embodiment, the OpenFlow controller is equipped with a function for constructing a storage overlay network called distributed storage arrangement information management means (FIG. 1, 104). The distributed storage arrangement information management means may be mounted on a server that cooperates with the OpenFlow controller. (Specific functions of the distributed storage arrangement information management means will be described later.)
Client (FIG. 1, 106) is a device that is a client of object storage. Usually, the client is a device having a communication function such as a personal computer. In the present embodiment, the client additionally has a function for using the object storage.

OFSには、オブジェクトストレージを構成するコンピュータ (オブジェクトストレージノード) (図1、105) が接続される。   A computer (object storage node) (Fig. 1, 105) that configures object storage is connected to OFS.

OFSには、オブジェクトストレージノード以外にも、別途、パーソナルコンピュータやサーバ(図1、107) が接続されてもよい。そして、OFSに接続されている装置は、それぞれの通信にOFSを使用していてもよい。つまり、OFSを介して、オブジェクトストレージ以外の通信が行われていてもよい。   In addition to the object storage node, a personal computer or a server (FIG. 1, 107) may be connected to the OFS. And the apparatus connected to OFS may use OFS for each communication. That is, communication other than object storage may be performed via OFS.

図2では、OFS間の接続を明示したい部分にポート番号が記載されている。具体的には、OSF間の接続関係は以下の通りである。   In FIG. 2, the port number is described in the portion where the connection between OFS is desired to be specified. Specifically, the connection relationship between OSFs is as follows.

OFS1 のポート1 と OFS2 のポート0 とがケーブル接続され、
OFS1 のポート2 と OFS3 のポート0 とがケーブル接続される。
OFS1 port 1 and OFS2 port 0 are cabled,
Cable connection is made between port 2 of OFS1 and port 0 of OFS3.

また、OSFとオブジェクトストレージノードとの接続関係は以下の通りである。   The connection relationship between the OSF and the object storage node is as follows.

OFS2 のポート1 と オブジェクトストレージノード1 とがケーブル接続され、
OFS2 のポート2 と オブジェクトストレージノード2 とがケーブル接続される。
OFS2 port 1 and object storage node 1 are cabled,
OFS2 port 2 and object storage node 2 are cabled.

OFS3 のポート1 と オブジェクトストレージノード3 とがケーブル接続され、
OFS3 のポート2 と オブジェクトストレージノード4 とがケーブル接続される。
OFS3 port 1 and object storage node 3 are cabled,
OFS3 port 2 and object storage node 4 are cabled.

OpenFlowスイッチの内部構成を図3に示す。図3は、OpenFlowスイッチの構成を模式的に表す図である。現在の規約上、OpenFlowスイッチは、OpenFlowコントローラと通信するための通信手段(Secure Channel)と、ある種のActionリストを格納するGroup Tableと、0番から始まる複数のFlow Tableとを備える。Group Table及び各Flow Tableは、例えば、メモリなどの記憶装置に格納されていてもよい。   The internal configuration of the OpenFlow switch is shown in FIG. FIG. 3 is a diagram schematically illustrating the configuration of the OpenFlow switch. According to the current convention, the OpenFlow switch includes a communication means (Secure Channel) for communicating with the OpenFlow controller, a Group Table for storing a certain type of Action list, and a plurality of Flow Tables starting from 0. The Group Table and each Flow Table may be stored in a storage device such as a memory, for example.

Flow Tableを、図4を用いて説明する。図4は、Flow Tableの構造を模式的に表す図である。各Flow Tableは、1エントリにMatch Fieldsと、Countersと、Instructionsとを構成にもつ複数のフローエントリで構成される。なお、Flow Tableの構成要素は、OpenFlowのバージョンにより異なることがある。   The Flow Table will be described with reference to FIG. FIG. 4 is a diagram schematically illustrating the structure of the Flow Table. Each Flow Table is composed of a plurality of flow entries having Match Fields, Counters, and Instructions in one entry. Note that the components of the Flow Table may differ depending on the OpenFlow version.

Match Fieldsは、このエントリに該当するパケットの条件を保持する。Match FieldはANYという全ての値に該当する特殊な値のほか、Ethernet、及び、TCP/IP(Transmission Control Protocol/Internet Protocol)のヘッダ情報などを指定できる。参考にOpenFlow version 1.1で指定できるものを以下に記す。
1. パケットの入力ポート(Ingress Port)、
2. 統計情報などのメタ情報(Metadata)、
3. Ether source MAC address、
4. Ether destination MAC address、
5. Ether type、
6. VLAN ID、
7. VLAN priority、
8. MPLS label、
9. MPLS traffic class、
10. IPv4 source address、
11. IPv4 destination address、
12. IPv4 proto/ARP opcode、
13. IPv4 ToS bits、
14. TCP/UDP/SCTP source portまたはICMP type、
15. TCP/UDP/SCTP destination portまたはICMP code
これらの属性によって指定されるトラフィックは、フローと呼ばれる。本実施形態では、OpenFlowの仕様にある属性の他に、オブジェクトストレージ用の属性 (リソース識別子、及び、リクエスト) をフローで指定できるようにする。(必要によっては、リクエスト番号などの他の属性が、さらに追加されていてもよい。)
ネットワークパケットは、宛先や送信元などの情報を含むプロトコルヘッダと、データを格納するペイロードで構成される。これを図で表すと、図5のようになる。図5は、ネットワークパケットの構造の概要を表す図である。本実施形態のオブジェクトストレージのやりとりでは、ペイロードの先頭にリクエストとリソース識別子とをおき、プロトコルヘッダの延長として扱えるようにする。(関連1 フラグメントへの対応で拡張する方向もあり)。なお、本実施形態では、フラグメントが発生しないよう、プロトコルヘッダとUDP(User Datagram Protocol)データグラムのサイズがMTU値を超えないものとする。Ethernetでの標準サイズは1500バイトで、IP、UDPヘッダサイズをそこから減じると1460バイトである。そのため、本実施形態では、オブジェクトの最大サイズを1460(本実施形態で使用するヘッダサイズ)以内とした。
Match Fields holds the condition of the packet corresponding to this entry. The Match Field can specify Ethernet, TCP / IP (Transmission Control Protocol / Internet Protocol) header information, etc., in addition to special values corresponding to all values ANY. For reference, the following can be specified in OpenFlow version 1.1.
1. Packet input port (Ingress Port),
2. Meta information such as statistical information (Metadata),
3. Ether source MAC address,
4. Ether destination MAC address,
5. Ether type,
6. VLAN ID,
7. VLAN priority,
8. MPLS label,
9. MPLS traffic class,
10. IPv4 source address,
11. IPv4 destination address,
12. IPv4 proto / ARP opcode,
13. IPv4 ToS bits,
14. TCP / UDP / SCTP source port or ICMP type,
15. TCP / UDP / SCTP destination port or ICMP code
The traffic specified by these attributes is called a flow. In the present embodiment, in addition to the attributes in the OpenFlow specification, attributes for object storage (resource identifier and request) can be specified in the flow. (If necessary, other attributes such as request number may be added.)
A network packet is composed of a protocol header including information such as a destination and a transmission source, and a payload for storing data. This can be represented as shown in FIG. FIG. 5 is a diagram showing an outline of the structure of a network packet. In the object storage exchange of this embodiment, a request and a resource identifier are placed at the beginning of the payload so that it can be handled as an extension of the protocol header. (There is also a direction to expand in response to the related 1 fragment). In this embodiment, it is assumed that the size of the protocol header and UDP (User Datagram Protocol) datagram does not exceed the MTU value so that no fragment occurs. The standard size for Ethernet is 1500 bytes, which is 1460 bytes if the IP and UDP header sizes are reduced from there. Therefore, in the present embodiment, the maximum size of the object is set to be within 1460 (header size used in the present embodiment).

Countersには、このCountersのエントリに該当した場合に更新される統計情報が格納される。   Counters stores statistical information that is updated when the entry corresponds to this Counters entry.

Instructionsは、処理命令を保持する。Instructionsには、Match Fieldsに該当するパケットに対して処理を行うactionが登録される。   Instructions holds processing instructions. In Instructions, an action for processing a packet corresponding to Match Fields is registered.

Rest I/F用のフローの実現方法についてより詳しく説明する。   The method for realizing the flow for Rest I / F will be described in more detail.

本実施形態で扱うリソース識別子は、SHA-1(Secure Hash Algorithm 1)で得られるハッシュ値であるとする。しかしながら、リソースを適切に表すことができるならば、リソース識別子は、別の方式で得られた値でも構わない。方式の選択にあたっては、ハッシュ値が固定長となる方がOpenFlowスイッチ上の動作性能面で望ましい。   The resource identifier handled in this embodiment is assumed to be a hash value obtained by SHA-1 (Secure Hash Algorithm 1). However, the resource identifier may be a value obtained by another method as long as the resource can be appropriately expressed. In selecting the method, it is desirable in terms of operation performance on the OpenFlow switch that the hash value has a fixed length.

SHA-1で得られるハッシュ値は、0から“(2の160乗)-1”の範囲をとる。OpenFlowへ適用するにあたり、一つのハッシュ値を単純に一フローエントリに対応付けると、Flow Tableへ割り当てなければならないメモリが多くなってしまう。またフローエントリ数が多くなるとフローの確認回数が多くなり、OpenFlowスイッチの処理性能へ影響してしまう。この2つの問題のため本実施形態では次のような工夫を行う。   The hash value obtained by SHA-1 ranges from 0 to “(2 to the 160th power) −1”. When applying to OpenFlow, if one hash value is simply associated with one flow entry, more memory must be allocated to the Flow Table. If the number of flow entries increases, the number of flow confirmations increases, which affects the processing performance of the OpenFlow switch. Due to these two problems, the present embodiment performs the following devices.

本実施形態に係るシステムで扱えるオブジェクトストレージの最大ノード数をnとする。   Let n be the maximum number of nodes in the object storage that can be handled by the system according to this embodiment.

最初にハッシュ空間をn個に分割する。ハッシュ空間の分割例として、ハッシュ値を2のべき乗で割ることとする。例えば16 (= 2^4) 分割であれば、ハッシュ空間の分割は、図6のようになる。図6は、ハッシュ空間の分割の例を表す図である。これにより、ハッシュ値が含まれる領域を、ハッシュ値を2進数で表した値の先頭ビット(16分割では4bit) だけを見ることによって判別できる、簡易な判別方法が実現できる。   First, divide the hash space into n. As an example of hash space division, the hash value is divided by a power of 2. For example, in the case of 16 (= 2 ^ 4) partitioning, hash space partitioning is as shown in FIG. FIG. 6 is a diagram illustrating an example of hash space division. This makes it possible to realize a simple discrimination method that can discriminate an area including a hash value by looking at only the first bit (4 bits in 16 divisions) of the value representing the hash value in binary.

次に、分割したハッシュ空間の担当を、例えば以下のように、仮想的なオブジェクトストレージ(すなわち、仮想オブジェクトストレージ)に関連付ける。   Next, the assigned charge of the hash space is associated with a virtual object storage (ie, virtual object storage) as follows, for example.

ハッシュ空間領域0 : 仮想オブジェクトストレージ0、
ハッシュ空間領域1 : 仮想オブジェクトストレージ1、
……
仮想オブジェクトストレージは、Flow Table上に枠を事前に確保しておく意味を持つ。
Hash space area 0: Virtual object storage 0,
Hash space area 1: Virtual object storage 1,
......
Virtual object storage has the meaning of securing a frame in advance on the Flow Table.

最後に、仮想オブジェクトストレージと、実際に存在するオブジェクトストレージとの間の関連付けを行う。ここまでで説明した関連付けは、OpenFlowコントローラ、又は、コントローラと協調するサーバに搭載された分散ストレージ配置情報管理手段によって行われる。分散ストレージ配置情報管理手段は、ノードの追加及び削除などのタイミングで、適切に対応付けを行うことによって、適切に維持管理を行う。本実施形態のオブジェクトストレージの構成ノードを4つとしたとき、割り当てをConsistent Hashing法に基づいて以下のようにする。   Finally, the association between the virtual object storage and the actually existing object storage is performed. The association described so far is performed by the distributed storage arrangement information management means installed in the OpenFlow controller or a server cooperating with the controller. The distributed storage arrangement information management means appropriately performs maintenance management by appropriately associating at the timing such as addition and deletion of nodes. When there are four configuration nodes of the object storage of this embodiment, allocation is performed as follows based on the consistent hashing method.

仮想オブジェクトストレージ0〜3 : Object Storage 1
仮想オブジェクトストレージ4〜7 : Object Storage 2
仮想オブジェクトストレージ8〜11 : Object Storage 3
仮想オブジェクトストレージ12〜15 : Object Storage 4
Object Storage 1からObject Storage 4は、上述のオブジェクトストレージノードである。以下、オブジェクトストレージノードは、「実ノード」とも表記される。実ノードを確定すると、スイッチが転送すべきポートが判明するので、Flow Tableへ記述できようになる。なお実ノードが存在しない場合、パケットをドロップさせる。
Virtual object storage 0 to 3: Object Storage 1
Virtual object storage 4-7: Object Storage 2
Virtual object storage 8-11: Object Storage 3
Virtual object storage 12-15: Object Storage 4
Object Storage 1 to Object Storage 4 are the above-described object storage nodes. Hereinafter, the object storage node is also referred to as “real node”. When the real node is determined, the port to be transferred by the switch is known, so that it can be described in the Flow Table. If no real node exists, the packet is dropped.

このように、一旦仮想ノード(すなわち、仮想オブジェクトストレージ。以下、仮想ストレージノードとも表記される。)として枠を設けておくと、実際のオブジェクトストレージノードが増減してもFlow Tableのフローエントリ数は変化しない。そのため、OpenFlowスイッチの処理性能へのインパクトを防止できる。   As described above, once a frame is provided as a virtual node (that is, virtual object storage; hereinafter also referred to as a virtual storage node), the number of flow entries in the Flow Table can be increased even if the actual object storage node increases or decreases. It does not change. Therefore, the impact on the processing performance of the OpenFlow switch can be prevented.

なおOpenFlowの仕様v1.1までは、フローのマッチ条件としてIPアドレスのマスク部分しか範囲の指定ができなかった。しかし、v1.2では、範囲で指定できる対象が拡張された。本実施形態でも、リソース識別子(ハッシュ値) のマッチ条件は、範囲で指定できるように拡張される。すなわち、リソース識別子の先頭数bitの値をフローのマッチ条件として扱えるようにし、リソースID空間の分割数の増減に備える。   Until the OpenFlow specification v1.1, only the mask part of the IP address could be specified as a flow match condition. However, in v1.2, the target that can be specified by the range has been expanded. Also in this embodiment, the resource identifier (hash value) match condition is extended so that it can be specified by a range. That is, the value of the first few bits of the resource identifier can be handled as a flow match condition to prepare for an increase or decrease in the number of divisions in the resource ID space.

以上により、本実施形態では、リソースID先頭の4bitの値によって、担当するオブジェクトストレージが決定できるようになるので、Storage Overlay Networkの記述をFlow Tableの形へ実装できる。   As described above, in this embodiment, the object storage in charge can be determined by the 4-bit value at the head of the resource ID, so that the description of Storage Overlay Network can be implemented in the form of Flow Table.

Group Tableを、図7を用いて説明する。図7は、Group Table の構造を模式的に表す図である。Group Tableは、1エントリにGroup Identifierと、Group Typeと、Countersと、Action Bucketsとを持つ、複数のグループエントリで構成される。Group Tableを使用することによって、プロトコルフィールドを書き換えて転送するなどの動作が実現できる。   The Group Table will be described with reference to FIG. FIG. 7 is a diagram schematically showing the structure of the Group Table. The Group Table is composed of a plurality of group entries each having a Group Identifier, Group Type, Counters, and Action Buckets. By using Group Table, operations such as rewriting and transferring the protocol field can be realized.

Group Identifierは、符号なし32bitの整数であり、グループエントリを識別する一意な識別子である。   The Group Identifier is an unsigned 32-bit integer and is a unique identifier for identifying a group entry.

Group Typeは、このグループエントリの意味を表し、Action Bucketsの使い方を表す。OpenFlow v1.1の仕様ではGroup Type として、all、select、indirect、fast failoverの4つがある。   Group Type represents the meaning of this group entry and represents the usage of Action Buckets. In the OpenFlow v1.1 specification, there are four group types: all, select, indirect, and fast failover.

値がallの場合、Action Bucketsに登録したaction bucketの全てを実行する。それぞれのaction bucketの実行に際して、パケットは効率的にコピーされて渡される。   If the value is all, all action buckets registered in Action Buckets are executed. When executing each action bucket, the packet is efficiently copied and passed.

値がselectの場合、Action Bucketsに登録したaction bucketのどれかを実行する。   If the value is select, execute one of the action buckets registered in Action Buckets.

Countersは、このグループエントリが処理したパケットの統計情報を格納する。   Counters stores statistical information of packets processed by this group entry.

Action Bucketsは、action bucketのリストである。それぞれのaction bucketは実行やパラメータ変更などを行うactionのリストを格納する。   Action Buckets is a list of action buckets. Each action bucket stores a list of actions that execute, change parameters, etc.

OpenFlowコントローラは、セキュリティを確保した通信経路を通してOpenFlowスイッチのFlow Tableなどを設定する。OpenFlowスイッチに入力されたパケットに対して、OpenFlowスイッチは、設定されたFlow Tableに従って、転送や破棄などの処理を行う。   The OpenFlow controller sets the Flow Table of the OpenFlow switch through a secure communication path. For packets input to the OpenFlow switch, the OpenFlow switch performs processing such as forwarding and discarding according to the set Flow Table.

具体的には、OpenFlowスイッチは、パケットを受け取るとFlow Tableを使ったパイプライン処理を実施する。パイプライン処理は、Flow Tableの0番のテーブルから始まり、GoTo命令がないTableの最後のフローエントリまで実施されたら終了する。Goto命令は指定した別のFlow Tableへ処理を移すことができるが、Flow Tableの後戻りはできない。つまり常にテーブル番号を大きくしていく方向にのみGoto命令は使用できる。   Specifically, when an OpenFlow switch receives a packet, it executes pipeline processing using the Flow Table. Pipeline processing starts from the 0th table of the Flow Table and ends when it is executed up to the last flow entry of the Table without the GoTo instruction. The Goto command can move processing to another specified Flow Table, but cannot return to the Flow Table. In other words, the Goto command can only be used in the direction of always increasing the table number.

<動作の説明>
次に、本実施形態に係るシステムの全体的な動作について、図8を用いて説明する。図8は、本実施形態に係るシステムの全体的な動作を表すフローチャートである。
<Description of operation>
Next, the overall operation of the system according to the present embodiment will be described with reference to FIG. FIG. 8 is a flowchart showing the overall operation of the system according to the present embodiment.

最初に、システムは、通常のOpenFlow技術を用いてベースとなるOpenFlowネットワークを構築する (ステップS0101)。   First, the system constructs a base OpenFlow network using normal OpenFlow technology (step S0101).

次に、システムは、オブジェクトストレージ用のオーバレイネットワークの設計と構築とを行う (ステップS0102)。具体的な内容は後述する。   Next, the system designs and constructs an overlay network for object storage (step S0102). Specific contents will be described later.

ネットワークの設計と構築とを終えると、オブジェクトストレージを構成するノードはストレージのサービスを開始する (ステップS0103)。オブジェクトストレージのクライアントとオブジェクトストレージのやりとりが行われるようになる。   When the network design and construction are completed, the nodes constituting the object storage start the storage service (step S0103). Object storage client and object storage are exchanged.

オブジェクトストレージ用のオーバレイネットワークの設計及び構築(ステップS0102) を、図9を用いてより詳細に説明する。図9は、オブジェクトストレージ用のオーバレイネットワークの設計及び構築の動作を表すフローチャートである。オーバレイネットワークの実現方法により事前に把握しておく必要がある情報は異なる。本実施形態では、ネットワーク設計者は、この時点までに、オブジェクトストレージが使用するIPアドレス(代表オブジェクトストレージアドレス)や、接続するオブジェクトストレージノードが接続されているOFS及び接続しているポートを把握している必要がある。   The design and construction of the overlay network for object storage (step S0102) will be described in more detail with reference to FIG. FIG. 9 is a flowchart showing an operation of designing and constructing an overlay network for object storage. The information that needs to be grasped in advance depends on how the overlay network is implemented. In this embodiment, the network designer knows the IP address used by the object storage (representative object storage address), the OFS to which the connected object storage node is connected, and the connected port up to this point. Need to be.

最初に、OpenFlowコントローラ又は協調サーバの分割ストレージ配置情報管理手段(以下、「管理部」とも表記)は、オブジェクトストレージがリソース識別子として取り扱うハッシュ空間の分割を行う (ステップS0201)。管理部は、ハッシュ空間を分割したら、分割したそれぞれの空間を担当する仮想オブジェクトストレージを決定する。具体的な方法はリソース識別子の説明箇所に記載している。   First, the divided storage arrangement information management means (hereinafter also referred to as “management unit”) of the OpenFlow controller or the cooperative server divides a hash space that the object storage handles as a resource identifier (step S0201). When the management unit divides the hash space, the management unit determines a virtual object storage in charge of each divided space. The specific method is described in the description part of the resource identifier.

次に、管理部は、REST I/Fを使った場合の実際の配送先を決定する (ステップS0202)。上の関連付けに続いて、管理部は、仮想オブジェクトストレージノードと実ストレージノードの関連付けを行う。実ストレージノードを決定すると、OFSにとって送信すべき物理ポート番号を具体的に決定できる。つまりパケットを転送すべきポートが分かる。このようにしてオブジェクトストレージ用のフローエントリが作成できるようになる(ステップS0203)。   Next, the management unit determines an actual delivery destination when the REST I / F is used (step S0202). Following the above association, the management unit associates the virtual object storage node with the real storage node. When the real storage node is determined, the physical port number to be transmitted to the OFS can be specifically determined. In other words, the port to which the packet should be transferred is known. In this way, a flow entry for object storage can be created (step S0203).

ネットワーク全体の配送ルートが指定できるようになったので、OpenFlowコントローラは、設計したネットワークになるようネットワーク上に存在するOpenFlowスイッチのFlow Tableを設定する。本実施形態では、OFS1のFlow Tableは図10に示すようなFlow Tableになり、OFS2のFlow Tableは図11に示すようなFlow Tableになり、OFS3のFlow Tableは図12に示すようなFlow Tableになる。図10、図11及び図12は、Flow Tableの例を示す図である。   Since the distribution route of the entire network can be specified, the OpenFlow controller sets the Flow Table of the OpenFlow switch existing on the network so that it becomes the designed network. In the present embodiment, the OFS1 Flow Table is as shown in FIG. 10, the OFS2 Flow Table is as shown in FIG. 11, and the OFS3 Flow Table is as shown in FIG. become. 10, FIG. 11 and FIG. 12 are diagrams showing examples of a flow table.

最初に実行されるFlow Table0には、オブジェクトストレージ用のやりとりかそうでないかを判断するフローエントリを記載する。具体的には、パケットの宛先IPアドレスが特定のIPアドレスに該当する場合、本実施形態のOpenFlowスイッチは、受信したパケットによる通信がオブジェクトストレージ用の通信と解釈する。この特定のIPアドレスは、上述の代表オブジェクトストレージアドレス(以下、「代表アドレス」とも表記)である。そして、本実施形態のOpenFlowスイッチは、オブジェクトストレージ用のフロー処理を記載したFlow Table1へ処理を進める。   In Flow Table 0 to be executed first, a flow entry for determining whether or not the object storage is exchanged is described. Specifically, when the destination IP address of the packet corresponds to a specific IP address, the OpenFlow switch of the present embodiment interprets the communication using the received packet as the communication for object storage. This specific IP address is the above-described representative object storage address (hereinafter also referred to as “representative address”). Then, the OpenFlow switch of this embodiment advances the processing to Flow Table 1 describing the flow processing for object storage.

パケットの宛先IPアドレスが代表オブジェクトストレージアドレスでなかった場合は、その宛先IPアドレスはANYのフローエントリにマッチする。そのため、本実施形態のOpenFlowスイッチは、Flow Table2へ処理を進める。管理部は、Flow Table2には、OpenFlowネットワーク用エントリを設定する。Flow Table2へ処理を進めたOpenFlowスイッチは、(オブジェクトストレージ以外の)通常の通信を処理する。このように処理の始めに代表アドレスで振り分ける処理にすることで、別のオブジェクトストレージ用のオーバレイネットワークを構築する際でも、ANYの前に同様の手法で作成するオブジェクトストレージ用のフローを差し込めばよく、容易に拡張可能になっている。   If the destination IP address of the packet is not the representative object storage address, the destination IP address matches the flow entry of ANY. Therefore, the OpenFlow switch of this embodiment advances the processing to Flow Table2. The management unit sets an entry for the OpenFlow network in Flow Table2. The OpenFlow switch that has proceeded to Flow Table2 handles normal communication (other than object storage). In this way, by assigning the representative address at the beginning of the process, even when building an overlay network for another object storage, it is only necessary to insert the object storage flow created in the same way before ANY. Easy to expand.

宛先IPアドレスが代表オブジェクトストレージアドレスである場合の処理を記載したFlow Table1について説明する。Flow Table1では、Match Fieldsにリソース識別子を指定するフローが設定され、その条件に該当したパケットを適切なポートへ送信するactionがInstructionsに設定される。すなわち、Flow Table1には、リソース識別子を担当するノードへ送付するフローエントリが記述される。   A description will be given of Flow Table 1 describing processing when the destination IP address is the representative object storage address. In Flow Table1, a flow for specifying a resource identifier is set in Match Fields, and an action for transmitting a packet corresponding to the condition to an appropriate port is set in Instructions. That is, Flow Table 1 describes a flow entry to be sent to the node in charge of the resource identifier.

オブジェクトストレージノードが直結されたOpenFlowスイッチ(OFS2及びOSF3)では、直結されたポートが送信ポートになる (図11:上2つのフローエントリ、図12:下2つのフローエントリ)。それ以外のエントリでは、リソース識別子を担当するノードが接続されているOpenFlowスイッチへ適切に転送されるポートが指定される。   In the OpenFlow switches (OFS2 and OSF3) directly connected to the object storage node, the directly connected ports become transmission ports (FIG. 11: upper two flow entries, FIG. 12: lower two flow entries). In other entries, a port that is appropriately transferred to the OpenFlow switch to which the node in charge of the resource identifier is connected is specified.

OFCは、最終的に設計したフローテーブルを、ネットワーク上のOFSへ配布する (ステップS0204)。フローテーブルを配布することにより、設計されたOpenFlowネットワークが動作を開始する。   The OFC distributes the finally designed flow table to the OFS on the network (step S0204). By distributing the flow table, the designed OpenFlow network starts operating.

パケットが到着した際のOpenFlowスイッチの動作を、図13を用いて説明する。図13は、OpenFlowスイッチの、パケットが到着した際の動作の例を表すフローチャートである。   The operation of the OpenFlow switch when a packet arrives will be described with reference to FIG. FIG. 13 is a flowchart showing an example of the operation of the OpenFlow switch when a packet arrives.

OpenFlowスイッチは、パケットが到着すると、到着したパケットをFlow Tableに従って処理する。Flow Tableは、前述したとおり、基本的にはOFSが動作する前にOFCにより設定される。   When a packet arrives, the OpenFlow switch processes the arrived packet according to the Flow Table. As described above, the Flow Table is basically set by the OFC before the OFS operates.

OpenFlowスイッチは、まずFlow Table0から順に処理する。OpenFlowスイッチは、宛先IPアドレスが代表オブジェクトストレージアドレスにマッチするかを条件にしたフローエントリにより、オブジェクトストレージ用のパケットなのかをチェックする (ステップS0301)。パケットの宛先IPアドレスが代表オブジェクトストレージアドレスに該当した場合(ステップS0301においてYes)、OpenFlowスイッチは、Flow Table1へ処理を移動する (ステップS0302)。   The OpenFlow switch first processes sequentially from Flow Table0. The OpenFlow switch checks whether it is a packet for object storage based on a flow entry on condition that the destination IP address matches the representative object storage address (step S0301). When the destination IP address of the packet corresponds to the representative object storage address (Yes in step S0301), the OpenFlow switch moves the process to Flow Table 1 (step S0302).

Flow Table1には、リソース識別子をチェックするフローが記載されている。本実施形態における動作拡張により、OpenFlowスイッチは、ペイロードの先頭にあるリソース識別子を読出する。OpenFlowスイッチは、リソース識別子がフローエントリのMatch Fieldsに該当するか確認する。OpenFlowスイッチは、リソース識別子がフローエントリのMatch Fieldsに該当する場合フローエントリのInstructionsに設定されたoutput actionにしたがって、所定のポートへパケットを送信する。   Flow Table 1 describes a flow for checking resource identifiers. With the operation extension in this embodiment, the OpenFlow switch reads the resource identifier at the head of the payload. The OpenFlow switch checks whether the resource identifier corresponds to the Match Fields of the flow entry. When the resource identifier corresponds to the Match Fields of the flow entry, the OpenFlow switch transmits the packet to a predetermined port according to the output action set in the Instructions of the flow entry.

ステップS0301において、リソース識別子がフローエントリのMatch Fieldsにマッチしない場合(ステップS0301においてNo)、OpenFlowスイッチは、パケットを通常パケットとして処理する (S0303)。これは、OpenFlowスイッチが、Flow Table0 のANYのフローにより、通常のOpenFlow処理用エントリを格納したFlow Table2へ処理を進めることで実現される。   In step S0301, when the resource identifier does not match the Match Fields of the flow entry (No in step S0301), the OpenFlow switch processes the packet as a normal packet (S0303). This is achieved when the OpenFlow switch advances the process to Flow Table 2 that stores normal OpenFlow processing entries by the flow of ANY in Flow Table 0.

オブジェクトストレージを利用するクライアントについて説明する。図14は、クライアントの全体的な動作の例を表すフローチャートである。   A client that uses object storage will be described. FIG. 14 is a flowchart illustrating an example of the overall operation of the client.

クライアントは、オブジェクトストレージとのデータのやりとりをRest I/Fを通して行う。クライアントは、本ネットワーク用のフォーマットでやりとりする機能を有する。   The client exchanges data with the object storage through the Rest I / F. The client has a function of exchanging in the format for this network.

クライアントは、オブジェクトストレージと通信を行うため、準備段階でUDPソケット(通信端)を作成する(ステップS0401)。   In order to communicate with the object storage, the client creates a UDP socket (communication end) at the preparation stage (step S0401).

UDPソケットは、送信毎に宛先アドレスを指定できる。オブジェクトストレージとの通信では、クライアントは、代表オブジェクトストレージアドレスを送信先IPアドレスに指定する。クライアントは、リクエストID及びリソース識別子を格納した本ネットワークのフォーマットに従ったデータを送信要求する(ステップS0402)。   A UDP socket can specify a destination address for each transmission. In communication with the object storage, the client designates the representative object storage address as the destination IP address. The client requests transmission of data according to the format of this network storing the request ID and resource identifier (step S0402).

クライアントは、オブジェクトストレージを使用しなくなった場合は、作成していたUDPソケットを終了するのに加えて、オブジェクトストレージ用の機能も終了させる (ステップS0403)。   When the client stops using the object storage, in addition to terminating the created UDP socket, the client also terminates the function for object storage (step S0403).

オブジェクトストレージノードの動作の説明を、図15を用いて説明する。図15は、オブジェクトストレージノードの動作の例を表すフローチャートである。   The operation of the object storage node will be described with reference to FIG. FIG. 15 is a flowchart illustrating an example of the operation of the object storage node.

オブジェクトストレージを構成するノード(すなわち、オブジェクトストレージノード)は、サービスの準備の段階(ステップS0501)で、待ち受け用のソケットを作成する。このソケットはクライアントとの通信で利用する。   The node constituting the object storage (that is, the object storage node) creates a standby socket in the service preparation stage (step S0501). This socket is used for communication with clients.

オブジェクトストレージノードは、オブジェクトストレージサービスの提供準備が終了すると、待ち受けソケットを使ったデータサービスの提供を開始する (ステップS0502)。   When the object storage node is ready to provide the object storage service, the object storage node starts providing the data service using the standby socket (step S0502).

オブジェクトストレージノードは、サービスの提供を終えるには、待ち受けソケットを終了する。オブジェクトストレージノードは、さらに、サービス提供で用いていた機能を順次終了する (ステップS0503)。   The object storage node ends the standby socket to finish providing the service. In addition, the object storage node sequentially ends the functions used for providing the service (step S0503).

本実施形態に係るネットワークを介して、クライアントがRest I/Fを使ってオブジェクトストレージとデータ(すなわち、本実施形態ではリソース)のやりとりする動作を、図16を使って説明する。図16は、本実施形態に係るシステムの、データのやり取りを行う動作の例を表すシーケンス図である。   An operation in which a client exchanges object storage and data (that is, a resource in the present embodiment) using the Rest I / F via the network according to the present embodiment will be described with reference to FIG. FIG. 16 is a sequence diagram illustrating an example of an operation for exchanging data in the system according to the present embodiment.

なお、操作対象のリソースには、生成されたリソース識別子が付与されている(既存技術)。リソース識別子は、リソースが持つデータのハッシュ値を算出することによって生成されてもよく、リソースを格納するパス名を基に生成されてもよい。   The generated resource identifier is assigned to the operation target resource (existing technology). The resource identifier may be generated by calculating a hash value of data held by the resource, or may be generated based on a path name for storing the resource.

本実施形態では、リソースに対する操作を表すリクエストに、上述の、数値を使用したリクエストIDという識別子が使用される。   In the present embodiment, the above-described identifier called a request ID using numerical values is used for a request representing an operation on a resource.

これまでに上述したように、クライアントは、送信データ(例えば、ペイロードの部分) を次のように作成する。クライアントは、ペイロードの部分に、リクエストID、リソース識別子を順番に先頭から格納する。クライアントは、ペイロードの部分に、リクエストによっては後で必要なデータを含めてもよい。以下の説明では、リクエストIDの後の括弧内の数字は、本実施形態において、それぞれの動作にリクエストIDとして付与されている数値である。   As described above, the client creates transmission data (for example, a payload portion) as follows. The client stores the request ID and resource identifier in the payload part in order from the top. Depending on the request, the client may include necessary data later in the payload portion. In the following description, the number in parentheses after the request ID is a numerical value given as a request ID to each operation in the present embodiment.

例えばGET動作の場合、クライアントは、GETのリクエストID (1)、及び、リソース識別子を送信データとして送信要求を行う。   For example, in the case of a GET operation, the client makes a transmission request using the GET request ID (1) and the resource identifier as transmission data.

HEAD動作の場合、クライアントは、HEADのリクエストID (2)、及び、リソース識別子を送信データとして送信要求を行う。   In the HEAD operation, the client makes a transmission request using the HEAD request ID (2) and the resource identifier as transmission data.

POST動作の場合、クライアントは、POSTのリクエストID (3)、及び、リソース識別子に続き、オブジェクトストレージへ保存するデータを加えたものを送信データとして送信要求を行う。   In the case of the POST operation, the client makes a transmission request using the POST request ID (3), the resource identifier, and the data to be stored in the object storage as transmission data.

PUT動作の場合、クライアントは、PUTのリクエストID (4)、及び、リソース識別子に続き、オブジェクトストレージへ保存するデータを加えたものを送信データとして送信要求を行う。   In the case of the PUT operation, the client makes a transmission request using transmission data that includes the PUT request ID (4) and the resource identifier followed by data to be stored in the object storage.

DELETE動作の場合、クライアントは、DELETEのリクエストID (5)、及び、リソース識別子をデータとして送信要求を行う。   In the case of a DELETE operation, the client makes a transmission request using the DELETE request ID (5) and the resource identifier as data.

OFS1及びOFS2は、パケットの宛先IPアドレスが代表オブジェクトストレージアドレスであるか確認したのち、リソース識別子の転送先にしたがってパケットを転送する。最終的に、担当ノードがパケットを受け取る。ここでは、オブジェクトストレージ1がリクエストを受け取ったとする。   OFS1 and OFS2 transfer the packet according to the transfer destination of the resource identifier after confirming whether the destination IP address of the packet is the representative object storage address. Eventually, the responsible node receives the packet. Here, it is assumed that the object storage 1 receives a request.

パケットを受け取ったオブジェクトストレージノードは、リクエストIDとリソース識別子に基づいて、リクエストを処理する。本実施形態に係るネットワークに特有のデータフォーマットを取り扱う技術以外の、Rest I/Fの実行部分の技術は、通常の技術と同じでよい。   The object storage node that receives the packet processes the request based on the request ID and the resource identifier. The technology of the Rest I / F execution part other than the technology that handles the data format specific to the network according to the present embodiment may be the same as the normal technology.

以下に、動作の一例を示す。以下の説明でも、括弧内の数値はリクエストIDとして設定されている数値を表す。以下では、例えば、「リクエストIDがGET(1)である場合」は、「リクエストIDが1であり、リクエストIDが示す動作の種類がGETである」ことを表す。   An example of the operation is shown below. In the following description, the numerical value in parentheses represents the numerical value set as the request ID. Hereinafter, for example, “when the request ID is GET (1)” represents “the request ID is 1 and the type of operation indicated by the request ID is GET”.

リクエストIDがGET(1)である場合、オブジェクトストレージ1は、リソース識別子で指定されたリソースのデータを記憶装置から取り出し、クライアントへそのデータを送信する。   When the request ID is GET (1), the object storage 1 retrieves the data of the resource specified by the resource identifier from the storage device and transmits the data to the client.

リクエストIDがHEAD(2) である場合、オブジェクトストレージ1は、リソース識別子で指定されたリソースのメタ情報を記憶装置ないしファイルシステムから取り出し、クライアントへ取り出したデータを送信する。   When the request ID is HEAD (2), the object storage 1 extracts the meta information of the resource specified by the resource identifier from the storage device or the file system, and transmits the extracted data to the client.

リクエストIDがPOST(3) である場合、オブジェクトストレージ1は、リソース識別子で指定されたリソースとして同時に渡されたデータをオブジェクトとして記憶装置へ書き込む。書込みが完了すると、オブジェクトストレージ1は、書込み完了通知をクライアントへ送信する。   When the request ID is POST (3), the object storage 1 writes the data simultaneously passed as the resource specified by the resource identifier as an object to the storage device. When the writing is completed, the object storage 1 transmits a writing completion notification to the client.

リクエストIDがPUT(4) である場合、オブジェクトストレージ1は、リソース識別子で指定されたリソースとして同時に渡されたデータをオブジェクトとして記憶装置へ書き込む。書込みが完了すると、オブジェクトストレージ1は、書込み完了通知をクライアントへ送信する。   When the request ID is PUT (4), the object storage 1 writes the data passed at the same time as the resource specified by the resource identifier as an object to the storage device. When the writing is completed, the object storage 1 transmits a writing completion notification to the client.

リクエストIDがDELETE(5) である場合、オブジェクトストレージ1は、リソース識別子で指定されたリソースを削除する。削除が完了すると、オブジェクトストレージ1は、完了通知をクライアントへ送信する。   When the request ID is DELETE (5), the object storage 1 deletes the resource specified by the resource identifier. When the deletion is completed, the object storage 1 transmits a completion notification to the client.

クライアントへの応答時に、送信元情報が、ストレージノードが使用するIPアドレスであり、代表アドレスと異なっている場合に、(例えばネットワークフィルタに引っかかるなどの)問題が生じる場合がある。   When responding to the client, if the source information is an IP address used by the storage node and is different from the representative address, a problem (for example, being caught by a network filter) may occur.

これに対しては以下のような解決策がある。   There are the following solutions for this.

解決策1.通信フォーマットの拡張
(A)Rest I/Fのフォーマットや通信フォーマットに、通信要求の度に更新される識別子をクライアントがいれておき、ストレージノードが、応答する際に遅れてきた識別子を返す。この仕組みにより、送信元アドレスが代表ストレージアドレスと異なっていても、リクエストを認識できるようになる。(アプリケーションによる対応1:NFS/RPC(Network File System/Remote Procedure Call)の仕組みを流用)
解決策2.アドレスの変換
(A)ストレージノードが、アドレス変換機構(NAT、Network Address Translation)を持ち、送信する際に送信元アドレスを代表ストレージアドレスへ変換して送信する。(OS機構の利用)
(B)ストレージノードの応答に、raw socketを用い、ストレージノードは、送信元アドレスを代表ストレージアドレスにして送信する。(アプリケーションによる対応2)
(C)OpenFlowスイッチで、オブジェクトストレージとクライアントとの間で使用するポート番号、かつ宛先アドレスが、代表ストレージアドレスでない場合、OpenFlowスイッチが、送信元アドレスを代表ストレージアドレスへ変換して、転送する。(ネットワーク経路上における対応)
また、この問題を解決するためにOS基盤や通信ライブラリへ手を入れてもよい。
Solution 1. Expansion of communication format (A) An identifier updated every time a communication request is made in the Rest I / F format or communication format, and the storage node returns an identifier delayed when responding. This mechanism makes it possible to recognize a request even if the transmission source address is different from the representative storage address. (Application response 1: Network File System / Remote Procedure Call (NFS / RPC) mechanism)
Solution 2. Address Conversion (A) The storage node has an address translation mechanism (NAT, Network Address Translation), and when transmitting, converts the source address to a representative storage address and transmits it. (Use of OS mechanism)
(B) The raw socket is used for the response of the storage node, and the storage node transmits the source address as the representative storage address. (Application response 2)
(C) In the OpenFlow switch, when the port number used between the object storage and the client and the destination address are not the representative storage address, the OpenFlow switch converts the source address to the representative storage address and transfers it. (Corresponding on the network route)
You may also go into the OS platform or communication library to solve this problem.

<効果の説明>
通常の分散型ストレージは、オブジェクトストレージに参加するノードを管理する必要があるので、ノード管理機能を備えていた。本実施形態によって、ネットワークにおいてノード管理が行えるようになるので、分散オブジェクトストレージが持たなければならない管理機能が大幅に削減できるようになる。
<Description of effects>
An ordinary distributed storage has a node management function because it needs to manage nodes participating in the object storage. According to this embodiment, node management can be performed in the network, so that the management functions that the distributed object storage must have can be greatly reduced.

分散ストレージとの通信処理の高速化:一般的に、リソースの担当ノードを求め、その担当ノードと通信を行う必要があるが、本実施形態では、リソースを代表アドレスへ送信すればよい。その後は、リソースはOpenFlowスイッチにより順次配送される。   Speeding up communication processing with distributed storage: Generally, it is necessary to find a node in charge of a resource and communicate with the node in charge of the resource. In this embodiment, the resource may be transmitted to a representative address. After that, resources are delivered sequentially by the OpenFlow switch.

また、OpenFlowスイッチにより極めて高速に配送処理が行えることにより、通信性能が向上する。   In addition, the communication performance is improved because the OpenFlow switch can perform delivery processing at extremely high speed.

リソースを担当するノードを更に柔軟に決定できる:分散ストレージの配置情報管理手段で実担当ノードを割り当てる事が可能である。すなわち、一般的な方式よりもより直接的にリソースの担当ノードを決定できる柔軟性を持つ。(例えば、空間を等分して担当しなければならないなどの制約がない。)
担当ノードの切り替えを早く実施できる:クライアントやノードで接続相手を管理している場合、それらを順次変更していかなければならない。しかし、本実施形態では、OpenFlowスイッチのFlow Tableを変更すれば済むため、切り替えを早く実施できる。関係するノードやクライアントが増加するほど、この効果は増す。
The node in charge of the resource can be determined more flexibly: It is possible to assign the actual node in charge by the distributed storage arrangement information management means. In other words, it has the flexibility to determine the responsible node of the resource more directly than the general method. (For example, there are no restrictions such as having to divide the space equally.)
The node in charge can be switched quickly: If the connection partner is managed by a client or node, they must be changed sequentially. However, in this embodiment, it is only necessary to change the Flow Table of the OpenFlow switch, so that switching can be performed quickly. The effect increases as the number of nodes and clients involved increases.

また、メタデータサーバを使った集中管理方式ではメタデータサーバの障害がシステム全体に波及する問題があるが、それとは異なり本実施形態では、 OpenFlowコントローラがダウンしてもサービスが継続できる利点がある。本実施形態では、OpenFlowコントローラがダウンしても、経路の変更ができないだけである。通信は設定済みのOpenFlowスイッチが処理を継続するため、直ちにサービスが停止することはない。   Also, with the centralized management method using a metadata server, there is a problem that the failure of the metadata server is spread to the entire system. Unlike this, this embodiment has the advantage that the service can be continued even if the OpenFlow controller goes down. . In this embodiment, even if the OpenFlow controller goes down, the path cannot be changed. Communication will not stop immediately because the OpenFlow switch that has been set will continue processing.

<<関連技術>>
本実施形態では、OpenFlowコントローラの数、及び、OpenFlowスイッチの数に制限はない。本実施形態は、例示したOpenFlowコントローラの数、及び、OpenFlowスイッチの数と異なる数の、OpenFlowコントローラ及びOpenFlowスイッチにより構成されるネットワークでも実施可能である。
<< Related technology >>
In the present embodiment, there is no limit on the number of OpenFlow controllers and the number of OpenFlow switches. The present embodiment can also be implemented in a network constituted by OpenFlow controllers and OpenFlow switches, which is different from the number of OpenFlow controllers and the number of OpenFlow switches.

本実施形態に係るシステムの構成を、OpenFlowスイッチ内でパケットを複製し、複数のオブジェクトストレージノードへ配送することによって、データの冗長化を行う構成にしてもよい。また、本実施形態に係るシステムの構成を、オーバレイネットワークを2面以上持つ構成に拡張してもよい。そして、ストレージノードの追加及び削除によって変化したストレージネットワークの複数の状態を世代として持つことによって、ストレージノードの追加及び削除に対応できるようにすることも考えられる。   The configuration of the system according to the present embodiment may be configured to make data redundant by duplicating a packet in the OpenFlow switch and delivering the packet to a plurality of object storage nodes. Further, the configuration of the system according to the present embodiment may be extended to a configuration having two or more overlay networks. It is also conceivable to support the addition and deletion of storage nodes by having as a generation a plurality of states of the storage network that have changed due to the addition and deletion of storage nodes.

OpenFlowコントローラを拡張するモジュール、又は、OpenFlowコントローラと協調動作するモジュールによって、OpenFlowスイッチのFlow Tableが自動的に組み立てられるようにしてもよい。   The flow table of the OpenFlow switch may be automatically assembled by a module that extends the OpenFlow controller or a module that operates in cooperation with the OpenFlow controller.

<関連技術>
関連1:データ長を拡大するための実装例
(フラグメントが関わる問題に関して)
UDPデータグラム、TCPストリームは1回の送信要求にMTU以上のサイズを指定できる。送信データの大きさによってはフラグメントと呼ぶネットワーク処理が、下位レイヤにおいて行われる。本実施形態では、簡便化のために、一回のやりとりで行うデータサイズをMTU以下に限定している。しかし、画像データなどのMTUより大きいサイズのデータ扱う事を考えるとMTU以上のデータ長を扱えるように拡張する必要がある。
<Related technologies>
Related 1: Implementation example for expanding data length (for problems involving fragments)
For UDP datagrams and TCP streams, a size larger than the MTU can be specified for a single transmission request. Depending on the size of the transmission data, network processing called fragmentation is performed in the lower layer. In the present embodiment, for simplification, the data size performed in one exchange is limited to MTU or less. However, considering the handling of data larger than the MTU, such as image data, it is necessary to expand the data length so that it can handle a data length larger than the MTU.

図17を用いてフラグメントが発生したときの問題を解説する。本実施形態の説明において、送信要求時にリソースリクエストIDとリソース識別子を先頭にしたデータを渡すことによって、UDPデータグラフはプロトコルヘッダ(UDPヘッダ)の直後、つまりペイロードの先頭に、リソースリクエストとリソース識別子が格納される。ここでフラグメントが発生すると、分割された最初のパケットにしかリソースリクエストとリソース識別子が格納されないため、後続のパケットだけによって転送先を特定できない問題が発生する。   The problem when a fragment occurs will be described with reference to FIG. In the description of this embodiment, by passing data with a resource request ID and resource identifier at the beginning at the time of a transmission request, the UDP data graph immediately follows the protocol header (UDP header), that is, at the beginning of the payload, the resource request and resource identifier. Is stored. When a fragment is generated here, the resource request and the resource identifier are stored only in the first divided packet, and thus there arises a problem that the transfer destination cannot be specified only by the subsequent packet.

この問題に対してはいくつかの解決策がある。   There are several solutions to this problem.

(解決方法1)
解決方法1は、オブジェクトストレージで使用するフォーマットを拡張するものである。すなわちリソースID、リクエスト識別子の他に、データのオフセット(一連のデータの先頭からの長さ)、データサイズを追加する。
(Solution 1)
Solution 1 extends the format used in object storage. That is, in addition to the resource ID and request identifier, a data offset (length from the beginning of a series of data) and data size are added.

送信を行う側で1パケットで取り扱えないデータサイズであった場合、1パケットに収まるサイズに分割し、分割されたデータの開始点をオフセットに、オフセットからのデータ長をデータサイズに格納し、分割した該当のデータを添えて送信することで、解決できる。   If the transmission side has a data size that cannot be handled by one packet, it is divided into a size that fits in one packet, the starting point of the divided data is stored as an offset, and the data length from the offset is stored as a data size. You can solve this problem by sending it with the appropriate data.

(解決方法2)
解決方法2は、VLAN tagなど使用しないプロトコルヘッダへリソース識別子の断片情報(先頭ビット) を格納するようにし、パケットの該当領域を見るだけでOFSが判断できるように拡張することである。
(Solution 2)
Solution 2 is to store resource identifier fragment information (first bit) in a protocol header that is not used, such as a VLAN tag, and expand it so that OFS can determine only by looking at the relevant area of the packet.

コンピュータに搭載されている通常のオペレーティングシステムは、その内部(kernel)のネットワークモジュールでプロトコル処理を行っている。このため、クライアントのネットワークモジュールに本実施形態のネットワークに対応させるよう手を加えることにより、上述の解決方法2は実現できる。また、OFSが、リソースがオブジェクトストレージとの通信によるリソースであるか確認するため、Flow Table0に該当領域も見るフローを追加し、該当する場合はオブジェクトストレージ用の通信を処理するFlow Table1に分岐するように設定する必要がある。   A normal operating system mounted on a computer performs protocol processing using a network module inside the kernel. Therefore, the above-described Solution 2 can be realized by modifying the client network module so as to correspond to the network of the present embodiment. In addition, in order for OFS to check whether the resource is a resource by communication with object storage, a flow that also sees the corresponding area is added to Flow Table 0, and if applicable, it branches to Flow Table 1 that handles communication for object storage It is necessary to set as follows.

(解決方法3)
解決方法3は、OFS内部でフラグメントパケットを一旦組み立てて、転送先を認識したのち、再度分割して転送することである。
(Solution 3)
Solution 3 is to once assemble the fragment packet inside the OFS, recognize the transfer destination, and then divide and transfer again.

フラグメントしているパケットを判別することは、IPヘッダのフラグメントビットを参照することによって可能である。OFSは、パケットがフラグメントしていたらそのパケットの転送を待ち、一旦データグラムへ戻すことによって、パケット群のリソース識別子を得ればよい。その後、OFSは、そのデータグラムを再度分割し、リソース識別子から得た転送先へパケットを送信すればよい。   It is possible to determine a fragmented packet by referring to the fragment bit of the IP header. If the packet is fragmented, OFS only needs to obtain the resource identifier of the packet group by waiting for transfer of the packet and returning it to the datagram. After that, OFS may divide the datagram again and send the packet to the transfer destination obtained from the resource identifier.

この方法には、OFS内部のメモリ使用量が増加し性能が低下する欠点がある。しかし、クライアントやオブジェクトストレージノードへの機能追加が抑えられるという利点がある。   This method has the disadvantage that the memory usage inside the OFS increases and the performance decreases. However, there is an advantage that the function addition to the client and the object storage node can be suppressed.

(解決方法4)
解決方法4は、通信相手を検出するように拡張し、実際のやりとりは代表オブジェクトストレージアドレスではなく、そこから得た情報を使って行うことである。この方法は、UDPに限らずTCPを使った通信においても可能である。
(Solution 4)
Solution 4 is extended to detect the communication partner, and the actual exchange is performed using information obtained from the representative object storage address instead of the representative object storage address. This method is possible not only for UDP but also for communication using TCP.

UDPを使用する場合を説明する。解決方法4では、リソースリクエストに接続リクエストを加える。クライアント、及び、オブジェクトストレージノードが接続リクエストを知っておく必要がある。図18は、本実施形態に係るシステムの、接続リクエストを使用する動作の例を表すシーケンス図である。   The case of using UDP will be described. In Solution 4, a connection request is added to the resource request. The client and the object storage node need to know the connection request. FIG. 18 is a sequence diagram illustrating an example of an operation using a connection request in the system according to the present embodiment.

クライアントは、代表オブジェクトストレージアドレスに対して、操作対象のリソース識別子と接続リクエストとを送信する。   The client transmits an operation target resource identifier and a connection request to the representative object storage address.

OFSは、リソース識別子を参照し、そのリソース識別子を担当とするオブジェクトストレージノードへリクエストを届ける。   OFS refers to the resource identifier and delivers the request to the object storage node in charge of the resource identifier.

担当のオブジェクトストレージノードは、リクエストIDを確認し、リクエストが接続リクエストであれば、自身のIPアドレス及びポート番号などの通信用情報を、クライアントへ送付する。   The responsible object storage node confirms the request ID, and if the request is a connection request, it sends communication information such as its own IP address and port number to the client.

通信用情報を受け取ったクライアントは、代表オブジェクトストレージアドレスでなく、通信用情報を使って送信を行う。クライアントは、もし通信に必要であればソケットを作成する。   The client that has received the communication information transmits using the communication information instead of the representative object storage address. The client creates a socket if necessary for communication.

TCPを使った通信は、sequence番号、ack番号をソケット(通信端)毎に管理しており、UDPのように同一のソケットを使って異なる相手と通信することができない。それにより、TCPを使った通信は分散ノードと通信する場合に同一のソケットが使えない問題を抱える。この問題も、また、リソースリクエストへ接続リクエストを追加し、コールバックさせる方法によって解決できる。図19は、本実施形態に係るシステムの、解決策が適用された動作の例を表すシーケンス図である。   In communication using TCP, sequence numbers and ack numbers are managed for each socket (communication end), and it is not possible to communicate with different parties using the same socket as in UDP. As a result, communication using TCP has the problem that the same socket cannot be used when communicating with distributed nodes. This problem can also be solved by adding a connection request to the resource request and calling it back. FIG. 19 is a sequence diagram illustrating an example of an operation to which a solution is applied in the system according to the present embodiment.

クライアントは、初めの要求時に、接続リクエストと操作対象のリソースIDとを要求のペイロードに格納し、要求をオブジェクトストレージネットワークへ送信する。   At the time of the initial request, the client stores the connection request and the resource ID to be operated in the request payload, and transmits the request to the object storage network.

OFSは、リソースIDから担当のオブジェクトストレージノードへ要求を送り届ける。   OFS sends a request from the resource ID to the object storage node in charge.

オブジェクトストレージノードは、リクエストIDを確認し、要求が接続リクエスト要求であれば、クライアントのIPアドレスを宛先アドレスに持つTCPソケットを作成する。クライアントとオブジェクトストレージノードは、TCPセッションを確立できたら、Rest I/Fのやりとりをおこない、そのやりとりの実行後にソケットを削除する。   The object storage node confirms the request ID, and if the request is a connection request, creates a TCP socket having the client IP address as the destination address. Once the client and object storage node have established a TCP session, they exchange a Rest I / F and delete the socket after the exchange.

セッションはオブジェクトストレージノード側から開設してもよい。クライアント側から張るようにしてもよい。またソケットの作成が負荷になるようであれば、再利用できるよう管理を行うことも考えられる。   The session may be established from the object storage node side. It may be stretched from the client side. In addition, if the creation of a socket is a burden, it is possible to manage the socket so that it can be reused.

関連2:オブジェクトストレージ用オーバレイネットワークの構築方法について
本実施形態では、オブジェクトストレージ用のオーバレイネットワークの構築として、OpenFlowをオブジェクトストレージ用の情報が読めるように拡張した。ここでは、別の方法として、既存のプロトコルフィールドを活かす方法を記載する。この方法によると、既存のフィールドを使用するため、OpenFlowスイッチ自体は現行の製品がそのまま流用できる利点がある。
Related 2: Constructing Method for Object Storage Overlay Network In this embodiment, OpenFlow is extended so that information for object storage can be read as construction of an overlay network for object storage. Here, as another method, a method of utilizing an existing protocol field is described. According to this method, since the existing field is used, the OpenFlow switch itself has an advantage that the current product can be used as it is.

本実施形態では、ペイロード上にオブジェクトストレージ用のヘッダは設けられない。プロトコルヘッダにおいて使用していない領域が使用する。一つの例としてVLAN(Virtual Local Area Network)ヘッダを利用する。OpenFlowでは、VLANに関する次のフィールドがフローのマッチング条件に既に使用できる。
VLAN ID : 12bit
VLAN priority : 3bit
本実施形態では、リクエスト識別子にVLAN priorityフィールドを使用し、リソース識別子にVLAN IDで使用されていない値を使用する。フィールドのbit長が小さいため、リソース識別子全体を格納することはできない。そのため仮想オブジェクトストレージが判別できる情報のみがフィールドに格納される。本実施形態では、リソース識別子の先頭4bitが利用される。同様に先頭4bitを利用し、本例では、(1000〜1016)に割り当てる。(VLAN ID 0は、制限によって利用できない。ここでは仮に1000から順に割り当てた。)
オーバレイネットワークの設計にあたり、OpenFlowコントローラは、本実施形態で説明したように、リソース識別子の空間を分割した後、領域と仮想オブジェクトストレージに対応付けを行う。その後、OpenFlowコントローラは、仮想オブジェクトストレージと実ストレージとを関連付ける。本実施形態では、さらに、リソース識別子の先頭ビットが示す値とVLAN IDとの関連付けを行ってもよい。
In the present embodiment, no header for object storage is provided on the payload. Used by unused areas in the protocol header. As an example, a VLAN (Virtual Local Area Network) header is used. In OpenFlow, the following fields related to VLANs are already available for flow matching conditions.
VLAN ID: 12bit
VLAN priority: 3bit
In the present embodiment, the VLAN priority field is used as the request identifier, and a value not used in the VLAN ID is used as the resource identifier. Since the bit length of the field is small, the entire resource identifier cannot be stored. Therefore, only information that can be identified by the virtual object storage is stored in the field. In the present embodiment, the first 4 bits of the resource identifier are used. Similarly, the first 4 bits are used and assigned to (1000 to 1016) in this example. (VLAN ID 0 cannot be used due to restrictions. In this example, it is assigned in order from 1000.)
In designing the overlay network, the OpenFlow controller divides the resource identifier space and associates the area with the virtual object storage as described in the present embodiment. Thereafter, the OpenFlow controller associates the virtual object storage with the real storage. In this embodiment, the value indicated by the first bit of the resource identifier may be associated with the VLAN ID.

関連付けが終わると、OpenFlowコントローラは、次に担当の実ストレージノードへ配送されるような、マッチング条件にVLAN IDを使用したFlow Tableを作成する。つまり、OpenFlowコントローラは、VLAN ID及びpriorityによって、オブジェクトストレージ用のオーバレイネットワークを作成する。(Flow Table1のリソース識別子用フローのマッチング条件が、VLAN ID及びpriorityを使用しているものとなる)。   When the association is completed, the OpenFlow controller creates a Flow Table using the VLAN ID as a matching condition so that it is next delivered to the real storage node in charge. That is, the OpenFlow controller creates an overlay network for object storage based on the VLAN ID and priority. (The resource identifier flow matching condition in Flow Table 1 uses VLAN ID and priority).

オブジェクトストレージのクライアントは、送信時に、リソース識別子の先頭数ビット(用いる仮想ストレージノード数に依存) をVLAN IDにセットし、リクエスト識別子をVLAN priorityへセットする。このようにすることで、OpenFlowスイッチは、代表オブジェクトストレージアドレスと、VLAN IDと、priorityとに基づいてパケットを転送するだけで、最終的にリソースを担当するマシンへパケットを転送することが可能となる。   At the time of transmission, the object storage client sets the first few bits of the resource identifier (depending on the number of virtual storage nodes to be used) to the VLAN ID, and sets the request identifier to the VLAN priority. By doing this, the OpenFlow switch can finally transfer the packet to the machine responsible for the resource only by transferring the packet based on the representative object storage address, VLAN ID, and priority. Become.

なおTCP/IPプロトコルの細かな部分は、アプリケーションプログラムでは設定できず、OSの内部で設定されることが多い。したがってOSの一機能としてこのような通信機構を提供すると、アプリケーション側で対応するよりも簡単に以上の方法を実装できる。あくまでアプリケーションプログラム側で実装する場合は、raw socketと呼ばれる既存の通信の仕組みを用いた実装が可能である。raw socketを使用するとプロトコルヘッダを自由に設定できるようになる。OS及びアプリケーションプログラムをミックスした構成も考えられる。   Note that the details of the TCP / IP protocol cannot be set by application programs, and are often set inside the OS. Therefore, if such a communication mechanism is provided as a function of the OS, the above method can be implemented more easily than the case where the application handles it. When implemented on the application program side, implementation using an existing communication mechanism called raw socket is possible. If you use raw socket, you can set the protocol header freely. A configuration that mixes OS and application programs is also conceivable.

(多様なオブジェクトストレージフォーマットへの対応)
「オブジェクトストレージ」という同じ名称で呼ばれていても、オブジェクトストレージにおいて使用されるデータフォーマットは様々なものが存在する。すなわち、使用されるデータフォーマットは統一されていない。ここではさらなる工夫として、オブジェクトストレージの多様なフォーマットに対応する、通信モジュールを使用する方法を記載する。直前に記載した事項にも考慮している。
(Support for various object storage formats)
There are various data formats used in the object storage even if they are called by the same name “object storage”. That is, the data format used is not unified. Here, as a further contrivance, a method of using a communication module corresponding to various formats of object storage will be described. The matter described immediately before is also taken into consideration.

ここまでで説明した本実施形態では、オブジェクトストレージ内の通信モジュールが、使用するネットワークに合わせてフォーマットを変換している。オブジェクトストレージ自体は使用されるフォーマットに関与せず、外部の通信モジュールが、適時、通信用のフォーマットへ変換する仕組みをについて説明する。   In the present embodiment described so far, the communication module in the object storage converts the format according to the network to be used. The mechanism in which the object storage itself is not involved in the format used and an external communication module converts to a communication format in a timely manner will be described.

その形態として、ライブラリ形態で利用する方式と、OSの機能としてフォーマットの変換を提供する形態、および、それらの複合形態が考えられる。   As the form, a form used in a library form, a form providing format conversion as a function of the OS, and a composite form thereof are conceivable.

以下では、例として、フォーマットを変換する機能を、ライブラリとして組み込む形式について説明する。その他の形態も、大きく変わらず実現できる。(OSに組み入れた方がより楽に実現できる。)図20は、本実施形態のシステムに係る、フォーマットを変換する機能がライブラリに組み込まれている構成の例を表す図である。   Below, the format which incorporates the function which converts a format as a library is demonstrated as an example. Other forms can be realized without much change. FIG. 20 is a diagram illustrating an example of a configuration in which a format conversion function is incorporated in a library according to the system of the present embodiment.

図20における通信管理部は、通信を管理する機構である。通信に必要な情報は、通信ハンドラと呼ぶ管理構造体に格納される。また、通信ハンドラには、一意に特定できるIDが作成時に付与される。通信管理部は、ハンドラの作成や廃棄といったハンドラの管理作業を行う役割と、指定されたIDのハンドラが持つ情報を渡す役割とを持つ。   The communication management unit in FIG. 20 is a mechanism for managing communication. Information necessary for communication is stored in a management structure called a communication handler. In addition, an ID that can be uniquely specified is assigned to a communication handler when it is created. The communication management unit has a role of performing handler management operations such as creation and disposal of handlers and a function of passing information held by a handler with a specified ID.

オブジェクトストレージは、初期化時に、通信ハンドラの作成を通信管理部へ要求する(図21)。図21は、本実施形態に係るシステムの、通信モジュールに通信の解説を要求する動作の例を表すシーケンス図である。オブジェクトストレージは、通信ハンドラの作成の要求する際、引数として代表オブジェクトストレージアドレスなど送信用情報も渡す。通信管理部は、ハンドラ作成要求時に渡された通信情報を通信ハンドラへ記録したのち、通信に使用するsocketを作成する。ハンドラの作成が終わると、ハンドラのIDを要求アプリケーションへ返却する。オブジェクトストレージは、以後の通信時に受け取ったハンドラIDを指定して要求を行う。   At the time of initialization, the object storage requests the communication management unit to create a communication handler (FIG. 21). FIG. 21 is a sequence diagram illustrating an example of an operation of requesting the communication module to explain the communication in the system according to the present embodiment. When the object storage requests creation of a communication handler, it also passes information for transmission such as a representative object storage address as an argument. The communication management unit records the communication information passed at the time of the handler creation request in the communication handler, and then creates a socket used for communication. When the handler is created, the handler ID is returned to the requesting application. The object storage makes a request by specifying the handler ID received during the subsequent communication.

次に、通信モジュールを使ったオブジェクトストレージの通信について説明する。図22は、通信モジュールを使ったオブジェクトストレージの通信の例を表すシーケンス図である。   Next, object storage communication using the communication module will be described. FIG. 22 is a sequence diagram illustrating an example of object storage communication using a communication module.

本通信モジュールを使用して送信を行う場合、入出力受付部が用意する送信要求I/Fから送信要求を発行する。送信要求I/Fは、通信ハンドラのIDと、オブジェクトストレージのフォーマットで整形されたデータとを、入出力受付部へ渡す。なお、入出力受付部へデータを渡す際に、リソースIDとリクエストIDとをともに渡してもよい。このようにすれば後述するフォーマット変換を、より楽に行うことができる。   When transmission is performed using this communication module, a transmission request is issued from the transmission request I / F prepared by the input / output receiving unit. The transmission request I / F passes the communication handler ID and the data formatted in the object storage format to the input / output receiving unit. When passing data to the input / output receiving unit, both the resource ID and the request ID may be passed. In this way, format conversion described later can be performed more easily.

通信モジュールは、送信要求を受け付けると、渡されたデータのフォーマットから、リソース識別子とリクエストIDとを得る。次に、通信モジュールは、渡されたデータのフォーマットの、本実施形態で使用する通信用フォーマットへの変換を行う。   When receiving a transmission request, the communication module obtains a resource identifier and a request ID from the format of the passed data. Next, the communication module converts the format of the passed data into a communication format used in this embodiment.

本実施形態では、データフォーマットの前に、リクエストIDとリソース識別子が記載される。   In this embodiment, a request ID and a resource identifier are described before the data format.

別の実施形態では、リクエストIDの一部を加工してVLAN IDへ、リソース識別子をVLAN priorityへ格納してもよい。   In another embodiment, a part of the request ID may be processed and stored in the VLAN ID, and the resource identifier may be stored in the VLAN priority.

通信モジュールは、オーバレイネットワーク用のフォーマットを変換したのち、通信に必要なIP及びUDPなどのネットワークヘッダを記述する。その次に、通信モジュールは、通信ハンドラが持つraw socketを使って、作成したデータのOSの通信レイヤへの送信要求を行い、ネットワークへ送信する。   The communication module describes the network header such as IP and UDP necessary for communication after converting the format for the overlay network. Next, the communication module makes a transmission request to the communication layer of the OS using the raw socket of the communication handler, and transmits it to the network.

送信が完了すると、通信モジュールは、送信完了通知を送信要求元へ返却する。   When the transmission is completed, the communication module returns a transmission completion notification to the transmission request source.

次に、受信動作を説明する。オブジェクトストレージプログラムは、ハンドラIDと受信バッファ用のメモリアドレスを引数に、入出力受付部が用意する受信インタフェースを実行する。受信インタフェースは、ハンドラIDで指定されたハンドラのソケットが受信しているかを確認し、受信していた場合、上位で使用するフォーマットへ受信データを変換する。   Next, the reception operation will be described. The object storage program executes the reception interface prepared by the input / output reception unit with the handler ID and the memory address for the reception buffer as arguments. The reception interface checks whether the socket of the handler specified by the handler ID is received, and if received, converts the received data to a format used by the host.

本実施形態では、データの先頭にオーバレイネットワークで使用したヘッダが追加されているので、オブジェクトストレージプログラムは、追加されたヘッダの削除を行う。   In this embodiment, since the header used in the overlay network is added to the beginning of the data, the object storage program deletes the added header.

他の実施形態(例えばVLANを使用する例)では、追加されたヘッダはないので、データ領域はそのまま使用すればよい。   In other embodiments (for example, an example using VLAN), there is no added header, so the data area may be used as it is.

オブジェクトストレージプログラムは、変換したデータを、引数として渡された受信バッファに書き込む。最後に受信関数を戻し、オブジェクトストレージプログラム側の受信機構が動作する。   The object storage program writes the converted data in the reception buffer passed as an argument. Finally, the reception function is returned, and the reception mechanism on the object storage program side operates.

(その他の実現方法:ネットワーク側で対処する方法)
本実施形態は、ネットワーク側のみを拡張することでも実現が可能である。
(Other realization methods: network side)
This embodiment can also be realized by extending only the network side.

1.特定のネットワークポートのパケットが到着した場合、オブジェクトストレージの通信と判断し、パケットの解析を行う。   1. When a packet of a specific network port arrives, it is determined as object storage communication and the packet is analyzed.

(A)(B)において使用しているプロトコルフィールドに情報があれば(B)を実施しない。(プロトコルフィールドに情報があるパケットは、他のスイッチから転送されたパケットである。)
(B)プロトコルフィールドに情報がない場合はフォーマットの解析を実行し、必要なリソースIDなどの情報を入手する。
(A) If there is information in the protocol field used in (B), (B) is not implemented. (A packet with information in the protocol field is a packet transferred from another switch.)
(B) If there is no information in the protocol field, format analysis is performed to obtain information such as a necessary resource ID.

フォーマットの解析方法には、(1)先頭からの固定長の範囲を解析する方法、及び、(2)オブジェクトストレージのフォーマットを解析できるように、より大きく拡張した形態等が考えられる。   As the format analysis method, there are (1) a method for analyzing a fixed length range from the head, and (2) a form that is greatly expanded so that the format of the object storage can be analyzed.

これまでの実現と同様に、使用していないプロトコルフィールドを使用し、仮想オブジェクトストレージ用の情報をそのプロトコルフィールドを書き込む。この書込みにより、常にスイッチで解析動作を行う必要がなくなる。(これは、Group Tableの仕組みにより実現される)
2.プロトコルフィールドの情報に基づき、(以上で説明したように)オーバレイネットワークで転送を行っていく。最終的に目的地にパケットを届ける。
As in previous implementations, unused protocol fields are used and the virtual object storage information is written into the protocol fields. This writing eliminates the need to always perform an analysis operation with a switch. (This is realized by the mechanism of Group Table)
2. Based on the information in the protocol field, transfer is performed in the overlay network (as described above). Finally, deliver the packet to the destination.

本実施形態は、以上のようにネットワーク側のみを拡張することでも実現できる。以上、OpenFlowを例に本実施形態を説明したが、ストレージネットワーク用のオーバレイネットワークを構築するのに利用する技術は、OpenFlowに限られず、例えば、SDNを実現する他の技術であってもよい。   This embodiment can also be realized by extending only the network side as described above. As described above, the present embodiment has been described by taking OpenFlow as an example. However, the technology used for constructing the overlay network for the storage network is not limited to OpenFlow, and may be another technology for realizing SDN, for example.

<<第2の実施形態>>
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
<< Second Embodiment >>
Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

<構成>
図23は、本実施形態に係るストレージシステム1の構成を表すブロック図である。本実施形態のストレージシステム1は、第1の実施形態を模式的に表す。
<Configuration>
FIG. 23 is a block diagram showing the configuration of the storage system 1 according to this embodiment. The storage system 1 of this embodiment schematically represents the first embodiment.

図23を参照すると、本実施形態にストレージシステム1は、通信管理装置10と、複数の通信機器20と、複数の実ストレージノード30とを含む。通信管理装置10には、設定端末装置50が通信可能に接続されていてもよい。   Referring to FIG. 23, the storage system 1 according to the present embodiment includes a communication management device 10, a plurality of communication devices 20, and a plurality of real storage nodes 30. The setting terminal device 50 may be connected to the communication management device 10 so as to be communicable.

通信機器20は、例えば、一般的なOpenFlowスイッチとしても動作する交換機である。通信機器20の各々は、少なくとも1台の他の通信機器20と通信可能に接続されている。実ストレージノード30は、いずれかの通信機器20に通信可能に接続されている。通信機器20は、各実ストレージノード30と、いずれかの通信機器20と通信可能な装置(例えば情報処理装置60)との間の通信を媒介する、通信ネットワーク40を実現する。言い換えると、通信機器20は、接続されている機器が少なくとも1つの通信機器20を介して通信可能な通信ネットワーク40を実現する。実ストレージノード30は、通信ネットワーク40に接続されている。また、情報処理装置60も、通信ネットワーク40に接続されている。通信ネットワーク40は、第1の実施形態におけるStorage Overlay Networkである。   The communication device 20 is, for example, an exchange that also operates as a general OpenFlow switch. Each communication device 20 is communicably connected to at least one other communication device 20. The real storage node 30 is communicably connected to any one of the communication devices 20. The communication device 20 implements a communication network 40 that mediates communication between each real storage node 30 and a device that can communicate with any one of the communication devices 20 (for example, the information processing device 60). In other words, the communication device 20 realizes a communication network 40 in which a connected device can communicate via at least one communication device 20. The real storage node 30 is connected to the communication network 40. The information processing device 60 is also connected to the communication network 40. The communication network 40 is a storage overlay network in the first embodiment.

通信管理装置10と通信機器20とは、さらに、通信ネットワーク40とは独立した経路で、通信可能に接続されている。   The communication management device 10 and the communication device 20 are further communicably connected via a route independent of the communication network 40.

通信管理装置10は、決定部11と、生成部12と、適用部13と、入出力部14と、記憶部15とを含む。通信管理装置10は、一般的なOpenFlowコントローラとして動作する制御装置である。通信管理装置10のこれらの部は、主に、第1の実施形態における、分散ストレージの配置情報を管理する機能(すなわち、分散ストレージ配置情報管理手段)に相当する。   The communication management device 10 includes a determination unit 11, a generation unit 12, an application unit 13, an input / output unit 14, and a storage unit 15. The communication management device 10 is a control device that operates as a general OpenFlow controller. These units of the communication management apparatus 10 mainly correspond to a function (that is, a distributed storage arrangement information management unit) that manages the arrangement information of the distributed storage in the first embodiment.

設定端末装置50は、例えば、ストレージシステム1の管理者が入力した、複数の通信機器20と複数の実ストレージノード30との接続関係と、実ストレージノード30に対する仮想ストレージノードの割り当てとを、通信管理装置10に送信する。   For example, the setting terminal device 50 communicates the connection relationship between the plurality of communication devices 20 and the plurality of real storage nodes 30 and the allocation of the virtual storage nodes to the real storage nodes 30 input by the administrator of the storage system 1. It transmits to the management apparatus 10.

各通信機器20は複数のポートを備える。1つのポートに他の通信機器20又は実ストレージノード30を接続できる。複数の通信機器20と複数の実ストレージノード30との接続関係は、例えば、それぞれの通信機器20の、他の装置が接続されているポートと、そのポートに接続されている他の装置とを特定する情報である。上述の「他の装置」は、他の通信機器20のいずれか又は実ストレージノード30のいずれかを指す。実ストレージノード30に対する仮想ストレージノードの割り当ては、例えば、それぞれの実ストレージノード30に割り当てられている仮想ストレージノードを特定できる情報である。複数の仮想ストレージノードが、1つの実ストレージノード30に割り当てられていてもよい。   Each communication device 20 includes a plurality of ports. Another communication device 20 or real storage node 30 can be connected to one port. The connection relationship between the plurality of communication devices 20 and the plurality of real storage nodes 30 includes, for example, a port of each communication device 20 to which another device is connected and another device connected to the port. Information to identify. The above-mentioned “other device” refers to either one of the other communication devices 20 or one of the real storage nodes 30. The assignment of the virtual storage node to the real storage node 30 is information that can identify the virtual storage node assigned to each real storage node 30, for example. A plurality of virtual storage nodes may be assigned to one real storage node 30.

通信管理装置10の入出力部14は、設定端末装置50から、通信機器20の接続関係と、通信機器20と実ストレージノード30との接続関係と、実ストレージノード30に対する仮想ストレージノードの割り当てとを受信する。通信管理装置10は、受信した、通信機器20の接続関係と、通信機器20と実ストレージノード30との接続関係と、実ストレージノード30に対する仮想ストレージノードの割り当てとを、記憶部15に格納する。以下の説明では、実ストレージノード30に対する仮想ストレージノードの割り当ては、「第3の割り当て関係」とも表記される。   The input / output unit 14 of the communication management device 10 receives, from the setting terminal device 50, the connection relationship of the communication device 20, the connection relationship between the communication device 20 and the real storage node 30, and the allocation of the virtual storage node to the real storage node 30. Receive. The communication management apparatus 10 stores the received connection relationship of the communication device 20, the connection relationship between the communication device 20 and the real storage node 30, and the allocation of the virtual storage node to the real storage node 30 in the storage unit 15. . In the following description, the allocation of the virtual storage node to the real storage node 30 is also expressed as “third allocation relationship”.

記憶部15は、例えば、通信機器20の接続関係と、通信機器20と実ストレージノード30との接続関係と、実ストレージノード30に対する仮想ストレージノードの割り当てとを記憶する。   The storage unit 15 stores, for example, the connection relationship between the communication devices 20, the connection relationship between the communication device 20 and the real storage node 30, and the allocation of virtual storage nodes to the real storage node 30.

情報処理装置60は、オブジェクトストレージとやりとりをする装置である。情報処理装置60は、オブジェクトストレージとやりとりをする際に、リソース識別子とリクエストの種類よってはオブジェクトの内容を、ストレージシステム1に対して送信する。情報処理装置60は、オブジェクトをストレージシステム1に記憶させる場合、例えば、リソース識別子が一意に付与されたオブジェクトを、ストレージシステム1に対して送信してもよい。ストレージシステム1に対して送信されるオブジェクトには、送信先のアドレスとして、ストレージシステム1の代表アドレスが付与されていればよい。代表アドレスは、あらかじめ定められていればよい。オブジェクトを受信した通信機器20は、その通信機器20に適用されている設定にしたがって、いずれかのポートに接続されている装置(すなわち、他の通信機器20又は実ストレージノード30)を、そのオブジェクトの転送先として決定する。通信機器20は、決定した転送先に、受信したオブジェクトを転送する。転送先が実ストレージノード30である場合、その実ストレージノード30は、オブジェクトを受信し、受信したオブジェクトを記憶する。通信機器20に適用されている設定は、例えば以下で説明するように生成される。その設定は、例えば、上述のFlow Table として表されていてもよい。   The information processing device 60 is a device that interacts with the object storage. When the information processing apparatus 60 interacts with the object storage, the information processing apparatus 60 transmits the contents of the object to the storage system 1 depending on the resource identifier and the type of request. When the information processing apparatus 60 stores an object in the storage system 1, for example, the information processing apparatus 60 may transmit an object to which a resource identifier is uniquely assigned to the storage system 1. The object transmitted to the storage system 1 may be given the representative address of the storage system 1 as the destination address. The representative address may be determined in advance. The communication device 20 that has received the object replaces the device connected to one of the ports (that is, the other communication device 20 or the real storage node 30) with the object in accordance with the settings applied to the communication device 20. Is determined as the transfer destination. The communication device 20 transfers the received object to the determined transfer destination. When the transfer destination is the real storage node 30, the real storage node 30 receives the object and stores the received object. The settings applied to the communication device 20 are generated as described below, for example. The setting may be represented as the above-described Flow Table, for example.

決定部11は、リソース識別子を複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係を決定する。具体的には、決定部11は、例えば上述のConsistent Hashingによって、前記リソース識別子を、前記使用部分に基づいて前記複数の仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定すればよい。リソース識別子がハッシュ値として割り当てられている場合、リソース識別子の一部(例えば先頭の所定数のビット。以下、「使用部分」とも表記)と仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定してもよい。決定部11は、仮想ストレージノードの数に基づいて、使用部分(上述の例の場合、先頭のビット数)を決定してもよい。決定部11は、仮想ストレージノードの数より小さくない最小の2のべき乗の指数を、使用部分のビット数として決定してもよい。第2の割り当て関係と上述の第3の割り当て関係とによって、リソース識別子と実ストレージノード30との関係が特定される。決定部11は、上述の、第2の割り当て関係と第3の割り当て関係とに基づいて、第1の割り当て関係を決定すればよい。   The determination unit 11 determines a first allocation relationship in which the resource identifier is allocated to any of the plurality of real storage nodes. Specifically, the determination unit 11 may determine a second allocation relationship in which the resource identifier is allocated to one of the plurality of virtual storage nodes based on the used part, for example, by the above-described consistent hashing. When the resource identifier is assigned as a hash value, a second assignment relationship assigned to either a part of the resource identifier (for example, a predetermined number of bits at the beginning, hereinafter also referred to as “used portion”) and a virtual storage node is set. You may decide. The determination unit 11 may determine a used portion (the number of leading bits in the above example) based on the number of virtual storage nodes. The determination unit 11 may determine the minimum exponent of 2 that is not smaller than the number of virtual storage nodes as the number of bits in the used portion. The relationship between the resource identifier and the real storage node 30 is specified by the second allocation relationship and the third allocation relationship described above. The determination unit 11 may determine the first allocation relationship based on the second allocation relationship and the third allocation relationship described above.

生成部12は、オブジェクトに一意に付与されるリソース識別子に基づいてオブジェクトの転送先を決定するルールを含む設定を表すデータを、上述の第1の割り当て関係と、例えば記憶部15に格納されている、通信機器20の接続関係とに基づいて生成する。以下の説明では、設定を表すデータを、単に「設定」と表記する。オブジェクトに一意に付与されるリソース識別子に基づいてオブジェクトの転送先を決定するルールを、「第1のルール」と表記する。   The generation unit 12 stores data representing a setting including a rule for determining the transfer destination of the object based on a resource identifier uniquely given to the object, in the first allocation relationship described above, for example, in the storage unit 15. It is generated based on the connection relationship of the communication device 20. In the following description, data representing settings is simply referred to as “settings”. A rule for determining a transfer destination of an object based on a resource identifier uniquely assigned to the object is referred to as a “first rule”.

なお、一つの仮想ストレージノードに、複数の実ストレージノード30が割り当てられていてもよい。その場合、第1の割り当て関係において、一つのリソース識別子に対して、複数の実ストレージノード30が割り当てられる。言い換えると、第1の割り当て関係は、リソース識別子を、2つ以上の実ストレージノードに割り当てる割り当てを含んでいてもよい。これは、一つのオブジェクトが2つ以上の実ストレージノードに送信されることを表す。その場合、少なくともいずれかの通信機器20において、同じオブジェクトを2つ以上の転送先に転送される。生成部12は、同じオブジェクトを2つ以上の転送先に転送する通信機器20の設定として、オブジェクトの転送先として、2つ以上の転送先を決定する第1のルールを含む設定を生成すればよい。その場合、その通信機器20は、同じオブジェクトの数が2以上になるよう、オブジェクトを複写すればよい。生成部12は、転送先の数が2以上である通信機器20の設定として、オブジェクトを転送先の数と同じ数になるよう複写するルール(以下、「第2のルール」と表記)を更に含む設定を生成すればよい。   A plurality of real storage nodes 30 may be assigned to one virtual storage node. In that case, a plurality of real storage nodes 30 are allocated to one resource identifier in the first allocation relationship. In other words, the first allocation relationship may include an allocation that allocates resource identifiers to two or more real storage nodes. This represents that one object is transmitted to two or more real storage nodes. In that case, at least one of the communication devices 20 transfers the same object to two or more transfer destinations. If the generation unit 12 generates a setting including a first rule that determines two or more transfer destinations as a transfer destination of an object as a setting of the communication device 20 that transfers the same object to two or more transfer destinations. Good. In that case, the communication device 20 may copy the objects so that the number of the same objects is two or more. The generation unit 12 further sets a rule (hereinafter referred to as “second rule”) for copying the object so as to have the same number as the number of transfer destinations as the setting of the communication device 20 in which the number of transfer destinations is two or more. It is only necessary to generate a setting including this.

生成部12は、オブジェクトの送信先のアドレスとして、上述の代表アドレスが指定されている場合、上述の第1のルールに従ってオブジェクトの転送先を決定する第3のルールを含む設定を生成してもよい。そして、その第3のルールは、オブジェクトの送信先のアドレスとして、上述の代表アドレスが指定されていない場合、通信機器20は、通常のOpenFlowスイッチとして、Flow Tableに基づいて動作するよう設定されていればよい。   The generation unit 12 may generate a setting including the third rule that determines the transfer destination of the object according to the first rule when the representative address is specified as the address of the object transmission destination. Good. The third rule is that the communication device 20 is set to operate as a normal OpenFlow switch based on the Flow Table when the above-described representative address is not designated as the destination address of the object. Just do it.

適用部13は、生成部12が通信機器20ごとに生成した設定を、通信機器20に適用する。具体的には、適用部13は、設定(すなわち、設定を表すデータ)を、通信機器20に送信する。   The application unit 13 applies the setting generated by the generation unit 12 for each communication device 20 to the communication device 20. Specifically, the application unit 13 transmits settings (that is, data representing settings) to the communication device 20.

次に、通信機器20の構成について図面を参照して詳細に説明する。   Next, the configuration of the communication device 20 will be described in detail with reference to the drawings.

図24は、本実施形態に係る通信機器20の構成の例を表すブロック図である。   FIG. 24 is a block diagram illustrating an example of a configuration of the communication device 20 according to the present embodiment.

図24を参照すると、通信機器20は、設定受信部21と、転送先決定部22と、入出力部23とを含む。   Referring to FIG. 24, the communication device 20 includes a setting reception unit 21, a transfer destination determination unit 22, and an input / output unit 23.

通信機器20の設定受信部21が、通信管理装置10の適用部13から、設定を受信する。設定受信部21は、受信した設定を転送先決定部22に送信する。   The setting reception unit 21 of the communication device 20 receives the setting from the application unit 13 of the communication management apparatus 10. The setting receiving unit 21 transmits the received setting to the transfer destination determining unit 22.

入出力部23は、いずれかのポートに接続されている装置(情報処理装置60、他の通信機器20、又は、実ストレージノード30)からオブジェクトを受信する。   The input / output unit 23 receives an object from a device (the information processing device 60, another communication device 20, or the real storage node 30) connected to any port.

転送先決定部22は、受信したオブジェクトの転送先を、受信した設定に従って決定する。   The transfer destination determination unit 22 determines the transfer destination of the received object according to the received setting.

入出力部23は、転送先決定部22が決定した転送先に、受信したオブジェクトを転送する。   The input / output unit 23 transfers the received object to the transfer destination determined by the transfer destination determination unit 22.

<動作>
次に、本実施形態の通信管理装置10の動作について、図面を参照して詳細に説明する。
<Operation>
Next, the operation of the communication management apparatus 10 of this embodiment will be described in detail with reference to the drawings.

図25は、本実施形態の通信管理装置10の動作の例を表すフローチャートである。   FIG. 25 is a flowchart showing an example of the operation of the communication management apparatus 10 of the present embodiment.

図25に示す動作では、入出力部14が、複数の通信機器20及び複数の実ストレージノード30の接続関係と、仮想ストレージノードの実ストレージノードへの割り当て(すなわち、第3の割り当て関係)を受信する(ステップS101)。入出力部14は、受信した接続関係及び第3の割り当て関係を、記憶部15に格納する。実ストレージノードは、第1の実施形態のオブジェクトストレージノードに相当する。   In the operation illustrated in FIG. 25, the input / output unit 14 determines the connection relationship between the plurality of communication devices 20 and the plurality of real storage nodes 30 and the allocation of the virtual storage nodes to the real storage nodes (that is, the third allocation relationship). Receive (step S101). The input / output unit 14 stores the received connection relationship and the third allocation relationship in the storage unit 15. The real storage node corresponds to the object storage node of the first embodiment.

決定部11は、例えば、仮想ストレージノードの数に基づいて、リソース識別子の使用部分を決定する(ステップS102)。決定部11は、例えば決定した使用部分に基づいて、仮想ストレージノードに対するリソース識別子の割り当て(すなわち、第2の割り当て関係)を決定する(ステップS103)。決定部11は、第2の割り当て関係と、第3の割り当て関係とに基づいて、実ストレージノードに対するリソース識別子の割り当て(すなわち、第1の割り当て関係)を決定する(ステップS104)。   For example, the determination unit 11 determines the used part of the resource identifier based on the number of virtual storage nodes (step S102). For example, the determination unit 11 determines the allocation of resource identifiers to the virtual storage node (that is, the second allocation relationship) based on the determined used portion (step S103). The determination unit 11 determines the allocation of resource identifiers to the real storage nodes (that is, the first allocation relationship) based on the second allocation relationship and the third allocation relationship (step S104).

次に、生成部12が、入出力部14が受信し記憶部15に格納されている前述の接続関係と、決定部11によって決定された第1の割り当て関係とに基づいて、オブジェクトに一意に付与されるリソース識別子に基づいてオブジェクトの転送先を決定する第1のルールを含む設定を生成する(ステップS105)。上述のように、第1のルールは、オブジェクトに一意に付与されるリソース識別子に基づいてオブジェクトの転送先を決定するルールである。生成部12は、リソース識別子が2つ以上の実ストレージノードに割り当てられたオブジェクトに対して、2つ以上の転送先を決定する第1のルールと、上述の第2のルールとを含む設定を生成してもよい。上述のように第2のルールは、オブジェクトの数が転送先と同じ数になるようオブジェクトを複製し、転送先の各々にそのオブジェクトを転送するルールである。生成部12は、オブジェクトの送信先が上述の代表アドレスである場合に第1のルールに従ってオブジェクトの転送先を決定し、それ以外の場合、通常のOpen Flow NetworkのFlow Tableに基づいて転送先を決定する第3のルールを生成してもよい。   Next, the generation unit 12 uniquely identifies the object based on the connection relationship received by the input / output unit 14 and stored in the storage unit 15 and the first allocation relationship determined by the determination unit 11. A setting including the first rule for determining the transfer destination of the object based on the given resource identifier is generated (step S105). As described above, the first rule is a rule that determines a transfer destination of an object based on a resource identifier uniquely given to the object. The generation unit 12 performs a setting including a first rule for determining two or more transfer destinations and the above-described second rule for an object assigned a resource identifier to two or more real storage nodes. It may be generated. As described above, the second rule is a rule for copying an object so that the number of objects is the same as the number of transfer destinations, and transferring the objects to each of the transfer destinations. The generation unit 12 determines the transfer destination of the object according to the first rule when the transmission destination of the object is the above-described representative address. Otherwise, the generation unit 12 determines the transfer destination based on the flow table of the normal Open Flow Network. A third rule to be determined may be generated.

次に、適用部13が、生成した設定を通信機器20に適用する(ステップS106)。例えば、適用部13は、生成した設定を通信機器20に送信する。通信機器20の設定受信部21が、設定を受信する。転送先決定部22は、受信した設定に従って転送先を決定する。   Next, the application unit 13 applies the generated setting to the communication device 20 (step S106). For example, the application unit 13 transmits the generated setting to the communication device 20. The setting receiving unit 21 of the communication device 20 receives the setting. The transfer destination determination unit 22 determines a transfer destination according to the received setting.

次に、本実施形態の通信機器20の動作について、図面を参照して詳細に説明する。   Next, the operation of the communication device 20 of the present embodiment will be described in detail with reference to the drawings.

図26は、本実施形態の通信機器20の動作の例を表すフローチャートである。図26に示す動作の例は、上述の第1、第2、及び第3のルールを含む設定に従って動作する通信機器20の動作の例である。   FIG. 26 is a flowchart illustrating an example of the operation of the communication device 20 according to the present embodiment. The example of the operation illustrated in FIG. 26 is an example of the operation of the communication device 20 that operates according to the setting including the above-described first, second, and third rules.

図26によると、まず、入出力部23が、オブジェクトについて一意であるリソース識別子が付与されているオブジェクトを受信する(ステップS201)。オブジェクトには、さらに、送信先のアドレスが付与されている。   According to FIG. 26, first, the input / output unit 23 receives an object to which a resource identifier that is unique for the object is assigned (step S201). The destination address is further given to the object.

転送先決定部22は、送信先のアドレスが代表アドレスであるか否かを判定する(ステップS202)。送信先のアドレスが代表アドレスでない場合(ステップS202においてNO)、転送先決定部22は、一般的なOpenFlowスイッチとして動作することによって、送信先のアドレスに基づいて受信したオブジェクトの転送先を決定する(ステップS207)。そして、入出力部23は、受信したオブジェクトを、決定された転送先に転送する(ステップS207)。   The transfer destination determination unit 22 determines whether or not the destination address is a representative address (step S202). If the destination address is not a representative address (NO in step S202), the transfer destination determining unit 22 operates as a general OpenFlow switch, thereby determining the transfer destination of the received object based on the destination address. (Step S207). Then, the input / output unit 23 transfers the received object to the determined transfer destination (step S207).

送信先のアドレスが代表アドレスである場合(ステップS202においてYES)、転送先決定部22は、通信管理装置10から受信した設定に従って、リソース識別子に基づいて、受信したオブジェクトの転送先を決定する(ステップS203)。   When the destination address is a representative address (YES in step S202), the transfer destination determination unit 22 determines the transfer destination of the received object based on the resource identifier in accordance with the setting received from the communication management apparatus 10 ( Step S203).

2つ以上の転送先が決定されなかった場合(ステップS206においてNO)、入出力部23は、受信したオブジェクトを、決定された転送先に転送する(ステップS207)。   When two or more transfer destinations are not determined (NO in step S206), the input / output unit 23 transfers the received object to the determined transfer destination (step S207).

2つ以上の転送先が決定された場合(ステップS206においてYES)、入出力部23は、オブジェクトの数が転送先の数になるように、オブジェクトを複製する(ステップS205)。そして、入出力部23は、オブジェクトを、決定された転送先に転送する(ステップS207)。   When two or more transfer destinations are determined (YES in step S206), the input / output unit 23 duplicates the objects so that the number of objects is equal to the number of transfer destinations (step S205). Then, the input / output unit 23 transfers the object to the determined transfer destination (step S207).

<効果>
以上で説明した本実施形態には、分散型ストレージにおける管理負荷を軽減しながら高速で柔軟な経路の切り替えをできるという効果がある。その理由は、生成部12が生成した、オブジェクトの転送先を決定する設定を、適用部13が通信機器20に適用するからである。そのため、通信管理装置10が、通信機器20におけるオブジェクトの転送のたびに転送先の決定する必要が無いので、通信管理装置10の負荷が軽減される。また、参加ノードとオブジェクトの担当の把握を、それぞれの通信機器20が行なう必要が無いので、通信機器20の負担が軽減される。また、通信機器20の追加など、システムに参加する通信機器20に変更が加わった場合、設定は通信管理装置10によって各通信機器20に送信されるので、設定が全体に伝わりきるまで時間が短縮される。
<Effect>
The present embodiment described above has an effect that the path can be switched at high speed and flexibly while reducing the management load in the distributed storage. The reason is that the application unit 13 applies the setting for determining the transfer destination of the object generated by the generation unit 12 to the communication device 20. For this reason, the communication management apparatus 10 does not need to determine the transfer destination each time an object is transferred in the communication device 20, so that the load on the communication management apparatus 10 is reduced. In addition, since it is not necessary for each communication device 20 to grasp the responsibility of the participating node and the object, the burden on the communication device 20 is reduced. Further, when a change is made to the communication device 20 that participates in the system, such as addition of the communication device 20, the setting is transmitted to each communication device 20 by the communication management apparatus 10, so that the time is shortened until the setting is fully transmitted Is done.

<<第3の実施形態>>
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
<< Third Embodiment >>
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.

<構成>
図27は、本実施形態の通信管理装置10Aの構成の例を表すブロック図である。
<Configuration>
FIG. 27 is a block diagram illustrating an example of the configuration of the communication management apparatus 10A of the present embodiment.

図27を参照すると、通信管理装置10Aは、生成部12と、適用部13とを含む。   Referring to FIG. 27, the communication management device 10 </ b> A includes a generation unit 12 and an application unit 13.

生成部12は、複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の設定を、第1の割り当て関係と、複数の通信機器及び複数の実ストレージノードの接続関係とに基づいて生成する。設定は、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む。第1の割り当て関係は、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる割り当てを表す。   The generation unit 12 sets the setting of the plurality of communication devices in the path for transmitting the object to any one of the plurality of real storage nodes, to the first allocation relationship and the connection relationship between the plurality of communication devices and the plurality of real storage nodes. Generate based on. The setting includes a first rule that determines a transfer destination of the object based on an identifier uniquely given to the object. The first allocation relationship represents an allocation in which the identifier is allocated to any of the plurality of real storage nodes.

適用部13は、通信機器に設定を適用する。   The application unit 13 applies the setting to the communication device.

<動作>
次に、本実施形態の通信管理装置10Aの動作について、図面を参照して詳細に説明する。
<Operation>
Next, the operation of the communication management apparatus 10A of the present embodiment will be described in detail with reference to the drawings.

図28は、本実施形態の通信管理装置10Aの動作の例を表すフローチャートである。   FIG. 28 is a flowchart illustrating an example of the operation of the communication management apparatus 10A according to the present embodiment.

図28を参照すると、生成部12は、上述の、通信機器の設定を生成する(ステップS301)。生成部12は、通信機器毎に設定を生成すればよい。次に、適用部13が、通信機器に設定を適用する(ステップS302)。適用部13は、通信機器毎に、生成された設定を適用すればよい。   Referring to FIG. 28, the generation unit 12 generates the communication device setting described above (step S301). The production | generation part 12 should just produce | generate a setting for every communication apparatus. Next, the application unit 13 applies the setting to the communication device (step S302). The application unit 13 may apply the generated setting for each communication device.

<効果>
以上で説明した本実施形態には、第2の実施形態と同じ効果がある。その理由は、第2の実施形態の効果が生じる理由と同じである。
<Effect>
The present embodiment described above has the same effect as the second embodiment. The reason is the same as the reason for the effect of the second embodiment.

<<他の実施形態>>
上述の各実施形態に係る装置は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。上述の各実施形態にかかる装置は、例えば、第1の実施形態に係るOFS、OFC及び協調サーバ、第2及び第3の実施形態に係る通信管理装置、及び、第2の実施形態に係る通信機器などである。
<< Other Embodiments >>
The apparatus according to each of the embodiments described above can be realized by a computer and a program for controlling the computer, dedicated hardware, or a combination of the computer and the program for controlling the computer and dedicated hardware. The apparatus according to each of the above embodiments includes, for example, the OFS, OFC, and cooperative server according to the first embodiment, the communication management apparatus according to the second and third embodiments, and the communication according to the second embodiment. Equipment.

言い換えると、上述の各実施形態に係る装置は、回路構成(circuitry)などのハードウェアによって実現することができる。回路構成は、例えば、コンピュータに含まれるプロセッサとメモリであってもよい。その場合、プログラムが、メモリにロードされていればよい。そのプログラムは、プロセッサが実行することが可能であり、コンピュータを上述の各実施形態に係る装置として動作させればよい。回路構成は、例えば、通信可能に接続された複数のコンピュータであってもよい。回路構成は、例えば、回路(circuit)であってもよい。回路構成は、例えば、通信可能に接続された複数の回路であってもよい。回路構成は、通信可能に接続された、1台以上のコンピュータと、1個以上の回路との組み合わせであってもよい。   In other words, the device according to each of the above-described embodiments can be realized by hardware such as a circuit configuration. The circuit configuration may be, for example, a processor and a memory included in the computer. In that case, the program only needs to be loaded into the memory. The program can be executed by a processor, and the computer may be operated as an apparatus according to each of the above-described embodiments. The circuit configuration may be, for example, a plurality of computers that are communicably connected. The circuit configuration may be, for example, a circuit. The circuit configuration may be, for example, a plurality of circuits that are communicably connected. The circuit configuration may be a combination of one or more computers and one or more circuits that are communicably connected.

図29は、本発明の各実施形態に係る装置を実現することができる、コンピュータ1000のハードウェア構成の一例を表す図である。図29を参照すると、コンピュータ1000は、プロセッサ1001と、メモリ1002と、記憶装置1003と、I/O(Input/Output)インタフェース1004とを含む。また、コンピュータ1000は、記録媒体1005にアクセスすることができる。メモリ1002と記憶装置1003は、例えば、RAM(Random Access Memory)、ハードディスクなどの記憶装置である。記録媒体1005は、例えば、RAM、ハードディスクなどの記憶装置、ROM(Read Only Memory)、可搬記録媒体である。記憶装置1003が記録媒体1005であってもよい。プロセッサ1001は、メモリ1002と、記憶装置1003に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ1001は、I/Oインタフェース1004を介して、他の装置にアクセスすることができる。プロセッサ1001は、記録媒体1005にアクセスすることができる。記録媒体1005には、コンピュータ1000を通信管理装置10として動作させるプログラムが格納されている。記録媒体1005には、コンピュータ1000を通信管理装置10Aとして動作させるプログラムが格納されていてもよい。記録媒体1005には、コンピュータ1000を通信機器20として動作させるプログラムが格納されていてもよい。記録媒体1005には、コンピュータ1000を、第1の実施形態のOFCとして動作させるプログラムが格納されていてもよい。記録媒体1005には、コンピュータ1000を、第1の実施形態のOFSとして動作させるプログラムが格納されていてもよい。記録媒体1005には、コンピュータ1000を、第1の実施形態の協調サーバとして動作させるプログラムが格納されていてもよい。   FIG. 29 is a diagram illustrating an example of a hardware configuration of a computer 1000 that can implement the apparatus according to each embodiment of the present invention. Referring to FIG. 29, a computer 1000 includes a processor 1001, a memory 1002, a storage device 1003, and an I / O (Input / Output) interface 1004. The computer 1000 can access the recording medium 1005. The memory 1002 and the storage device 1003 are storage devices such as a RAM (Random Access Memory) and a hard disk, for example. The recording medium 1005 is, for example, a storage device such as a RAM or a hard disk, a ROM (Read Only Memory), or a portable recording medium. The storage device 1003 may be the recording medium 1005. The processor 1001 can read and write data and programs from and to the memory 1002 and the storage device 1003. The processor 1001 can access other devices via the I / O interface 1004. The processor 1001 can access the recording medium 1005. The recording medium 1005 stores a program that causes the computer 1000 to operate as the communication management apparatus 10. The recording medium 1005 may store a program that causes the computer 1000 to operate as the communication management apparatus 10A. The recording medium 1005 may store a program that causes the computer 1000 to operate as the communication device 20. The recording medium 1005 may store a program that causes the computer 1000 to operate as the OFC of the first embodiment. The recording medium 1005 may store a program that causes the computer 1000 to operate as the OFS of the first embodiment. The recording medium 1005 may store a program that causes the computer 1000 to operate as the cooperative server of the first embodiment.

プロセッサ1001は、記録媒体1005に格納されている、上述のプログラムを、メモリ1002にロードする。そして、プロセッサ1001が、メモリ1002にロードされたプログラムを実行することにより、コンピュータ1000は、上述の装置のいずれかとして動作する。   The processor 1001 loads the above-described program stored in the recording medium 1005 into the memory 1002. Then, when the processor 1001 executes the program loaded in the memory 1002, the computer 1000 operates as one of the above-described devices.

決定部11、生成部12、適用部13、入出力部14、設定受信部21、転送先決定部22、及び、入出力部23は、例えば、メモリ1002と、メモリ1002にロードされた専用のプログラムを実行するプロセッサ1001により実現することができる。また、記憶部15は、コンピュータ1000が含むメモリ1002やハードディスク装置等の記憶装置1003により実現することができる。あるいは、決定部11、生成部12、適用部13、入出力部14、記憶部15は、設定受信部21、転送先決定部22、及び、入出力部23は、の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。   The determination unit 11, the generation unit 12, the application unit 13, the input / output unit 14, the setting reception unit 21, the transfer destination determination unit 22, and the input / output unit 23 are, for example, a memory 1002 and a dedicated load loaded in the memory 1002. It can be realized by a processor 1001 that executes a program. Further, the storage unit 15 can be realized by a memory 1002 included in the computer 1000 or a storage device 1003 such as a hard disk device. Alternatively, the determination unit 11, the generation unit 12, the application unit 13, the input / output unit 14, the storage unit 15, the setting reception unit 21, the transfer destination determination unit 22, and the input / output unit 23 may be partially or entirely It can also be realized by a dedicated circuit for realizing the function of each part.

また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   Moreover, although a part or all of said embodiment can be described also as the following additional remarks, it is not restricted to the following.

(付記1)
複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成手段と、
前記通信機器に前記設定を適用する適用手段と、
を備える通信管理装置。
(Appendix 1)
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generating means for generating the identifier based on a first allocation relationship for allocating to any of the plurality of real storage nodes and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
Applying means for applying the setting to the communication device;
A communication management device comprising:

(付記2)
前記第1の割り当て関係は、前記識別子を、前記複数の実ストレージノードのうち2つ以上の実ストレージノードに割り当てる割り当てを含み、
前記生成手段は、いずれかの前記通信機器の前記設定として、前記識別子が2つ以上の実ストレージノードに割り当てられた前記オブジェクトに対して、2つ以上の前記転送先を決定する前記第1のルールと、当該オブジェクトの数が前記転送先の数と同じになるよう当該オブジェクトを複製し、当該オブジェクトを前記転送先の各々に転送する第2のルールとを含む前記設定を生成する
付記1に記載の通信管理装置。
(Appendix 2)
The first allocation relationship includes an allocation in which the identifier is allocated to two or more real storage nodes among the plurality of real storage nodes;
The generation means determines the two or more transfer destinations for the object in which the identifier is allocated to two or more real storage nodes as the setting of any of the communication devices. The setting including a rule and a second rule that duplicates the object so that the number of the object is the same as the number of the transfer destinations and transfers the object to each of the transfer destinations is generated. The communication management device described.

(付記3)
前記複数の実アドレスのいずれかに送信される前記オブジェクトは、送信先のアドレスとして代表アドレスが付与され、
前記生成手段は、オブジェクトに送信先として付与されているアドレスが前記代表アドレスである場合に前記第1のルールに従って前記オブジェクトの前記転送先を決定する第3のルールをさらに含む、前記設定を生成する
付記1又は2に記載の通信管理装置。
(Appendix 3)
The object transmitted to one of the plurality of real addresses is given a representative address as a destination address,
The generation unit further includes a third rule for determining the transfer destination of the object according to the first rule when an address given to the object as a transmission destination is the representative address. The communication management device according to attachment 1 or 2.

(付記4)
前記生成手段は、前記識別子の一部である使用部分に基づいて前記オブジェクトの転送先を決定する前記第1のルールを含む前記設定を、前記使用部分を前記複数の実ストレージノードのいずれかに割り当てる前記第1の割り当て関係に基づいて生成する
付記1乃至3のいずれかに記載の通信管理装置。
(Appendix 4)
The generation unit sets the setting including the first rule for determining a transfer destination of the object based on a used part which is a part of the identifier, and sets the used part to any of the plurality of real storage nodes. The communication management device according to any one of supplementary notes 1 to 3, wherein the communication management device is generated based on the first assignment relationship to be assigned.

(付記5)
複数の仮想ストレージノードの数に基づいて前記識別子における前記使用部分を決定し、前記識別子を、前記使用部分に基づいて前記複数の仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定し、当該第2の割り当てと、前記複数の仮想ストレージノードの各々を前記複数の実ストレージノードのいずれかに割り当てる第3の割り当て関係とに基づいて、前記第1の割り当て関係を決定する決定手段
を更に備える付記4に記載の通信管理装置。
(Appendix 5)
Determining the used portion in the identifier based on the number of virtual storage nodes; determining a second allocation relationship for assigning the identifier to any of the plurality of virtual storage nodes based on the used portion; Determining means for determining the first allocation relationship based on the second allocation and a third allocation relationship in which each of the plurality of virtual storage nodes is allocated to any of the plurality of real storage nodes; The communication management apparatus according to appendix 4.

(付記6)
付記1乃至5のいずれか1項に記載の通信管理装置と、
前記設定に従って前記オブジェクトを転送する前記通信機器と、
を含む通信システム。
(Appendix 6)
The communication management device according to any one of appendices 1 to 5,
The communication device transferring the object according to the setting;
A communication system including:

(付記7)
付記1乃至5のいずれかに記載の通信管理装置が生成した前記設定に従って、前記オブジェクトの転送先を決定する転送先決定手段と、
前記オブジェクトを受信し、当該オブジェクトを前記転送先決定手段によって決定された前記転送先に送信する入出力手段と、
を備える通信装置。
(Appendix 7)
Transfer destination determining means for determining a transfer destination of the object in accordance with the setting generated by the communication management device according to any one of appendices 1 to 5;
Input / output means for receiving the object and transmitting the object to the transfer destination determined by the transfer destination determination means;
A communication device comprising:

(付記8)
複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成し、
前記通信機器に前記設定を適用する、
通信管理方法。
(Appendix 8)
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generating the identifier based on a first allocation relationship for allocating to any of the plurality of real storage nodes and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
Applying the setting to the communication device;
Communication management method.

(付記9)
前記第1の割り当て関係は、前記識別子を、前記複数の実ストレージノードのうち2つ以上の実ストレージノードに割り当てる割り当てを含み、
いずれかの前記通信機器の前記設定として、前記識別子が2つ以上の実ストレージノードに割り当てられた前記オブジェクトに対して、2つ以上の前記転送先を決定する前記第1のルールと、当該オブジェクトの数が前記転送先の数と同じになるよう当該オブジェクトを複製し、当該オブジェクトを前記転送先の各々に転送する第2のルールとを含む前記設定を生成する
付記8に記載の通信管理方法。
(Appendix 9)
The first allocation relationship includes an allocation in which the identifier is allocated to two or more real storage nodes among the plurality of real storage nodes;
The first rule for determining two or more transfer destinations for the object assigned with two or more real storage nodes as the setting of any of the communication devices, and the object 9. The communication management method according to claim 8, wherein the object is copied so that the number of transfer destinations is equal to the number of transfer destinations, and the setting including the second rule for transferring the object to each of the transfer destinations .

(付記10)
前記複数の実アドレスのいずれかに送信される前記オブジェクトは、送信先のアドレスとして代表アドレスが付与され、
オブジェクトに送信先として付与されているアドレスが前記代表アドレスである場合に前記第1のルールに従って前記オブジェクトの前記転送先を決定する第3のルールをさらに含む、前記設定を生成する
付記8又は9に記載の通信管理方法。
(Appendix 10)
The object transmitted to one of the plurality of real addresses is given a representative address as a destination address,
The setting is generated further including a third rule for determining the transfer destination of the object according to the first rule when the address given to the object as the transmission destination is the representative address. The communication management method described in 1.

(付記11)
前記識別子の一部である使用部分に基づいて前記オブジェクトの転送先を決定する前記第1のルールを含む前記設定を、前記使用部分を前記複数の実ストレージノードのいずれかに割り当てる前記第1の割り当て関係に基づいて生成する
付記8乃至10のいずれかに記載の通信管理方法。
(Appendix 11)
Assigning the setting including the first rule for determining a transfer destination of the object based on a used part that is a part of the identifier to assign the used part to any of the plurality of real storage nodes The communication management method according to any one of appendices 8 to 10, wherein the communication management method is generated based on an allocation relationship.

(付記12)
複数の仮想ストレージノードの数に基づいて前記識別子における前記使用部分を決定し、前記識別子を、前記使用部分に基づいて前記複数の仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定し、当該第2の割り当てと、前記複数の仮想ストレージノードの各々を前記複数の実ストレージノードのいずれかに割り当てる第3の割り当て関係とに基づいて、前記第1の割り当て関係を決定する
付記11に記載の通信管理方法。
(Appendix 12)
Determining the used portion in the identifier based on the number of virtual storage nodes; determining a second allocation relationship for assigning the identifier to any of the plurality of virtual storage nodes based on the used portion; The first allocation relationship is determined based on the second allocation and a third allocation relationship in which each of the plurality of virtual storage nodes is allocated to any of the plurality of real storage nodes. Communication management method.

(付記13)
コンピュータに、
複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成処理と、
前記通信機器に前記設定を適用する適用処理と、
を実行させるプログラム。
(Appendix 13)
On the computer,
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generation processing for generating the identifier based on a first allocation relationship for assigning to any of the plurality of real storage nodes, and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
An application process for applying the setting to the communication device;
A program that executes

(付記14)
前記第1の割り当て関係は、前記識別子を、前記複数の実ストレージノードのうち2つ以上の実ストレージノードに割り当てる割り当てを含み、
前記生成処理は、いずれかの前記通信機器の前記設定として、前記識別子が2つ以上の実ストレージノードに割り当てられた前記オブジェクトに対して、2つ以上の前記転送先を決定する前記第1のルールと、当該オブジェクトの数が前記転送先の数と同じになるよう当該オブジェクトを複製し、当該オブジェクトを前記転送先の各々に転送する第2のルールとを含む前記設定を生成する
付記13に記載のプログラム。
(Appendix 14)
The first allocation relationship includes an allocation in which the identifier is allocated to two or more real storage nodes among the plurality of real storage nodes;
The generation process determines the two or more transfer destinations for the object assigned the identifier to two or more real storage nodes as the setting of any of the communication devices. The setting including the rule and the second rule for duplicating the object so that the number of the object is the same as the number of the transfer destinations and transferring the object to each of the transfer destinations is generated. The program described.

(付記15)
前記複数の実アドレスのいずれかに送信される前記オブジェクトは、送信先のアドレスとして代表アドレスが付与され、
前記生成処理は、オブジェクトに送信先として付与されているアドレスが前記代表アドレスである場合に前記第1のルールに従って前記オブジェクトの前記転送先を決定する第3のルールをさらに含む、前記設定を生成する
付記13又は14に記載のプログラム。
(Appendix 15)
The object transmitted to one of the plurality of real addresses is given a representative address as a destination address,
The generation process further includes a third rule for determining the transfer destination of the object according to the first rule when an address given to the object as a transmission destination is the representative address. The program according to appendix 13 or 14.

(付記16)
前記生成処理は、前記識別子の一部である使用部分に基づいて前記オブジェクトの転送先を決定する前記第1のルールを含む前記設定を、前記使用部分を前記複数の実ストレージノードのいずれかに割り当てる前記第1の割り当て関係に基づいて生成する
付記13乃至15のいずれかに記載のプログラム。
(Appendix 16)
In the generation process, the setting including the first rule for determining a transfer destination of the object based on a used part which is a part of the identifier is set to one of the plurality of real storage nodes. The program according to any one of appendices 13 to 15, which is generated based on the first allocation relationship to be allocated.

(付記17)
コンピュータに、
複数の仮想ストレージノードの数に基づいて前記識別子における前記使用部分を決定し、前記識別子を、前記使用部分に基づいて前記複数の仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定し、当該第2の割り当てと、前記複数の仮想ストレージノードの各々を前記複数の実ストレージノードのいずれかに割り当てる第3の割り当て関係とに基づいて、前記第1の割り当て関係を決定する決定処理
を更に実行させる付記16に記載のプログラム。
(Appendix 17)
On the computer,
Determining the used portion in the identifier based on the number of virtual storage nodes; determining a second allocation relationship for assigning the identifier to any of the plurality of virtual storage nodes based on the used portion; A determination process for determining the first allocation relationship based on the second allocation and a third allocation relationship in which each of the plurality of virtual storage nodes is allocated to any of the plurality of real storage nodes; The program according to supplementary note 16 to be executed.

以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。   The present invention has been described above with reference to the embodiments, but the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.

1 ストレージシステム
10 通信管理装置
10A 通信管理装置
11 決定部
12 生成部
13 適用部
14 入出力部
15 記憶部
20 通信機器
30 実ストレージノード
40 通信ネットワーク
50 設定端末装置
60 情報処理装置
101 OpenFlow Network
102 Storage Overlay Network
103 OpenFlow controller
104 分散ストレージ配置情報管理手段
105 Object Storage
106 Client
107 Other Server
201 OSF
202 OSF
203 OSF
1000 コンピュータ
1001 プロセッサ
1002 メモリ
1003 記憶装置
1004 I/Oインタフェース
1005 記録媒体
DESCRIPTION OF SYMBOLS 1 Storage system 10 Communication management apparatus 10A Communication management apparatus 11 Determination part 12 Generation part 13 Application part 14 Input / output part 15 Storage part 20 Communication apparatus 30 Real storage node 40 Communication network 50 Setting terminal apparatus 60 Information processing apparatus 101 OpenFlow Network
102 Storage Overlay Network
103 OpenFlow controller
104 Distributed storage arrangement information management means 105 Object Storage
106 Client
107 Other Server
201 OSF
202 OSF
203 OSF
1000 Computer 1001 Processor 1002 Memory 1003 Storage Device 1004 I / O Interface 1005 Recording Medium

Claims (10)

複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成手段と、
前記通信機器に前記設定を適用する適用手段と、
を備える通信管理装置。
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generating means for generating the identifier based on a first allocation relationship for allocating to any of the plurality of real storage nodes and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
Applying means for applying the setting to the communication device;
A communication management device comprising:
前記第1の割り当て関係は、前記識別子を、前記複数の実ストレージノードのうち2つ以上の実ストレージノードに割り当てる割り当てを含み、
前記生成手段は、いずれかの前記通信機器の前記設定として、前記識別子が2つ以上の実ストレージノードに割り当てられた前記オブジェクトに対して、2つ以上の前記転送先を決定する前記第1のルールと、当該オブジェクトの数が前記転送先の数と同じになるよう当該オブジェクトを複製し、当該オブジェクトを前記転送先の各々に転送する第2のルールとを含む前記設定を生成する
請求項1に記載の通信管理装置。
The first allocation relationship includes an allocation in which the identifier is allocated to two or more real storage nodes among the plurality of real storage nodes;
The generation means determines the two or more transfer destinations for the object in which the identifier is allocated to two or more real storage nodes as the setting of any of the communication devices. 2. The setting including a rule and a second rule that duplicates the object so that the number of the object is the same as the number of the transfer destinations and transfers the object to each of the transfer destinations is generated. The communication management device according to 1.
前記複数の実アドレスのいずれかに送信される前記オブジェクトは、送信先のアドレスとして代表アドレスが付与され、
前記生成手段は、オブジェクトに送信先として付与されているアドレスが前記代表アドレスである場合に前記第1のルールに従って前記オブジェクトの前記転送先を決定する第3のルールをさらに含む、前記設定を生成する
請求項1又は2に記載の通信管理装置。
The object transmitted to one of the plurality of real addresses is given a representative address as a destination address,
The generation unit further includes a third rule for determining the transfer destination of the object according to the first rule when an address given to the object as a transmission destination is the representative address. The communication management device according to claim 1 or 2.
前記生成手段は、前記識別子の一部である使用部分に基づいて前記オブジェクトの転送先を決定する前記第1のルールを含む前記設定を、前記使用部分を前記複数の実ストレージノードのいずれかに割り当てる前記第1の割り当て関係に基づいて生成する
請求項1乃至3のいずれかに記載の通信管理装置。
The generation unit sets the setting including the first rule for determining a transfer destination of the object based on a used part which is a part of the identifier, and sets the used part to any of the plurality of real storage nodes. The communication management device according to any one of claims 1 to 3, wherein the communication management device is generated based on the first assignment relationship to be assigned.
複数の仮想ストレージノードの数に基づいて前記識別子における前記使用部分を決定し、前記識別子を、前記使用部分に基づいて前記複数の仮想ストレージノードのいずれかに割り当てる第2の割り当て関係を決定し、当該第2の割り当てと、前記複数の仮想ストレージノードの各々を前記複数の実ストレージノードのいずれかに割り当てる第3の割り当て関係とに基づいて、前記第1の割り当て関係を決定する決定手段
を更に備える請求項4に記載の通信管理装置。
Determining the used portion in the identifier based on the number of virtual storage nodes; determining a second allocation relationship for assigning the identifier to any of the plurality of virtual storage nodes based on the used portion; Determining means for determining the first allocation relationship based on the second allocation and a third allocation relationship in which each of the plurality of virtual storage nodes is allocated to any of the plurality of real storage nodes; The communication management device according to claim 4 provided.
請求項1乃至5のいずれか1項に記載の通信管理装置と、
前記設定に従って前記オブジェクトを転送する前記通信機器と、
を含む通信システム。
The communication management device according to any one of claims 1 to 5,
The communication device transferring the object according to the setting;
A communication system including:
請求項1乃至5のいずれかに記載の通信管理装置が生成した前記設定に従って、前記オブジェクトの転送先を決定する転送先決定手段と、
前記オブジェクトを受信し、当該オブジェクトを前記転送先決定手段によって決定された前記転送先に送信する入出力手段と
を備える通信装置。
Transfer destination determination means for determining a transfer destination of the object according to the setting generated by the communication management device according to claim 1;
An input / output unit that receives the object and transmits the object to the transfer destination determined by the transfer destination determination unit.
複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成し、
前記通信機器に前記設定を適用する、
通信管理方法。
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generating the identifier based on a first allocation relationship for allocating to any of the plurality of real storage nodes and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
Applying the setting to the communication device;
Communication management method.
前記第1の割り当て関係は、前記識別子を、前記複数の実ストレージノードのうち2つ以上の実ストレージノードに割り当てる割り当てを含み、
いずれかの前記通信機器の前記設定として、前記識別子が2つ以上の実ストレージノードに割り当てられた前記オブジェクトに対して、2つ以上の前記転送先を決定する前記第1のルールと、当該オブジェクトの数が前記転送先の数と同じになるよう当該オブジェクトを複製し、当該オブジェクトを前記転送先の各々に転送する第2のルールとを含む前記設定を生成する
請求項8に記載の通信管理方法。
The first allocation relationship includes an allocation in which the identifier is allocated to two or more real storage nodes among the plurality of real storage nodes;
The first rule for determining two or more transfer destinations for the object assigned with two or more real storage nodes as the setting of any of the communication devices, and the object The communication management according to claim 8, wherein the object is duplicated so that the number of objects is the same as the number of the transfer destinations, and the setting including a second rule for transferring the object to each of the transfer destinations is generated. Method.
コンピュータに、
複数の実ストレージノードのいずれかにオブジェクトを送信する経路における複数の通信機器の、前記オブジェクトに一意に付与される識別子に基づいて前記オブジェクトの転送先を決定する第1のルールを含む設定を、前記識別子を前記複数の実ストレージノードのいずれかに割り当てる第1の割り当て関係と、前記複数の通信機器及び前記複数の実ストレージノードの接続関係とに基づいて生成する生成処理と、
前記通信機器に前記設定を適用する適用処理と、
を実行させるプログラム。
On the computer,
A setting including a first rule for determining a transfer destination of the object based on an identifier uniquely given to the object of a plurality of communication devices in a path for transmitting the object to any of the plurality of real storage nodes. Generation processing for generating the identifier based on a first allocation relationship for assigning to any of the plurality of real storage nodes, and a connection relationship between the plurality of communication devices and the plurality of real storage nodes;
An application process for applying the setting to the communication device;
A program that executes
JP2016073184A 2016-03-31 2016-03-31 Communication management device, communication management method and program Active JP6677052B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016073184A JP6677052B2 (en) 2016-03-31 2016-03-31 Communication management device, communication management method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016073184A JP6677052B2 (en) 2016-03-31 2016-03-31 Communication management device, communication management method and program

Publications (2)

Publication Number Publication Date
JP2017184195A true JP2017184195A (en) 2017-10-05
JP6677052B2 JP6677052B2 (en) 2020-04-08

Family

ID=60007305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016073184A Active JP6677052B2 (en) 2016-03-31 2016-03-31 Communication management device, communication management method and program

Country Status (1)

Country Link
JP (1) JP6677052B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022038935A1 (en) 2020-08-21 2022-02-24 富士フイルム株式会社 Information processing device, information processing method, and information processing program
WO2022038933A1 (en) 2020-08-18 2022-02-24 富士フイルム株式会社 Information processing device, information processing method, and information processing program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110611A (en) * 2002-09-20 2004-04-08 Fujitsu Ltd Load distribution method and system for the same
JP2011227733A (en) * 2010-04-20 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> Server selection control apparatus, service request apparatus, server selection control method, service request method, server selection control program, service request program, service providing system, and service providing method
WO2013147175A1 (en) * 2012-03-30 2013-10-03 日本電気株式会社 Distributed storage system, control device, client terminal, method and program for distributing load
JP2014013960A (en) * 2012-07-03 2014-01-23 Fujitsu Ltd Communication control method, communication control apparatus, communication equipment, and program
JP2014504044A (en) * 2010-12-02 2014-02-13 日本電気株式会社 COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004110611A (en) * 2002-09-20 2004-04-08 Fujitsu Ltd Load distribution method and system for the same
JP2011227733A (en) * 2010-04-20 2011-11-10 Nippon Telegr & Teleph Corp <Ntt> Server selection control apparatus, service request apparatus, server selection control method, service request method, server selection control program, service request program, service providing system, and service providing method
JP2014504044A (en) * 2010-12-02 2014-02-13 日本電気株式会社 COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION METHOD, AND PROGRAM
WO2013147175A1 (en) * 2012-03-30 2013-10-03 日本電気株式会社 Distributed storage system, control device, client terminal, method and program for distributing load
JP2014013960A (en) * 2012-07-03 2014-01-23 Fujitsu Ltd Communication control method, communication control apparatus, communication equipment, and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022038933A1 (en) 2020-08-18 2022-02-24 富士フイルム株式会社 Information processing device, information processing method, and information processing program
WO2022038935A1 (en) 2020-08-21 2022-02-24 富士フイルム株式会社 Information processing device, information processing method, and information processing program

Also Published As

Publication number Publication date
JP6677052B2 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
US11372802B2 (en) Virtual RDMA switching for containerized applications
US10649798B2 (en) Virtual switching method, related apparatus, and computer system
Al-Shabibi et al. OpenVirteX: Make your virtual SDNs programmable
JP6538986B2 (en) Virtual machine packet control
US20150263887A1 (en) Flexible remote direct memory access resource configuration in a network environment
CN105993161B (en) Element, method, system and computer readable storage device for resolving an address
JP2020526122A (en) Data processing method, network interface card, and server
CN110120919B (en) Network resource isolation method and system for container network
US10372633B1 (en) Interconnection of peripheral devices on different electronic devices
WO2024093064A1 (en) Identifier management and forwarding optimization method and apparatus in large-scale multi-modal network
JP2010531602A (en) Method and apparatus for communication of diagnostic data in a real-time communication network
WO2015006970A1 (en) Switching device, controller, and method and system for switching device configuration and packet processing
JP6677052B2 (en) Communication management device, communication management method and program
KR20210016802A (en) Method for optimizing flow table for network service based on server-client in software defined networking environment and sdn switch thereofor
KR20220076826A (en) Method for ndn based in-network computing and apparatus for the same
KR20210070873A (en) Method for duplicating packet and apparatus thereof
CN116195239A (en) Providing modular network services through a distributed elastic middlebox
JP6162831B2 (en) Packet communication system, SDN control device, packet communication method, and program
WO2024114645A1 (en) Instantiation method for virtualization network function (vnf), and apparatus
Xue et al. Virtualization of table resources in programmable data plane with global consideration
WO2023231836A1 (en) File synchronization method, apparatus, device, and storage medium
WO2020184381A1 (en) Processing device, information processing system, information processing method, and program
Zhang et al. Tunneling over ip based on match-action table in software defined networks
CN116132542A (en) Container network management method, container network plug-in and related equipment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200225

R150 Certificate of patent or registration of utility model

Ref document number: 6677052

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150