JP5404947B2 - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- JP5404947B2 JP5404947B2 JP2013064768A JP2013064768A JP5404947B2 JP 5404947 B2 JP5404947 B2 JP 5404947B2 JP 2013064768 A JP2013064768 A JP 2013064768A JP 2013064768 A JP2013064768 A JP 2013064768A JP 5404947 B2 JP5404947 B2 JP 5404947B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- packet
- node
- memory node
- nodes
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System (AREA)
Description
本発明の実施形態は、転送機能を有するメモリノードを相互に接続したストレージ装置及びデータ処理方法に関わり、例えばストレージ装置におけるデータパケットの転送制御方式に関わる。 Embodiments described herein relate generally to a storage apparatus and a data processing method in which memory nodes having a transfer function are connected to each other, for example, a data packet transfer control system in the storage apparatus.
容量を容易に拡張できるストレージ装置として、転送機能を有するメモリノードを相互に接続したストレージ装置が考えられる。各メモリノードは、自身のメモリノード宛のデータパケットを受信した場合は読み出しもしくは書き込みなどの所定の処理を行う。一方、各メモリノードは、自身のメモリノード宛でないパケットを受信した場合は、受信パケットを適切な他のメモリノードに転送する。各メモリノードによって適切な転送が繰り返されることにより、データパケットは目的のメモリノードに到達できる。 As a storage device whose capacity can be easily expanded, a storage device in which memory nodes having a transfer function are connected to each other can be considered. Each memory node performs a predetermined process such as reading or writing when receiving a data packet addressed to its own memory node. On the other hand, when each memory node receives a packet that is not addressed to its own memory node, it transfers the received packet to another appropriate memory node. By repeating appropriate transfer by each memory node, the data packet can reach the target memory node.
各メモリノードは、メモリと、転送機能を有するコントローラ、複数のポートを有している。各メモリノードは、パケットの転送先を示した経路指定表(ルーティングテーブル)を維持・管理し、それに従ってパケットの転送を行う。経路指定表を管理すれば、物理的な位置に関わらず任意の論理的なパケット転送ネットワークを構築することが可能である。 Each memory node has a memory, a controller having a transfer function, and a plurality of ports. Each memory node maintains and manages a routing table (routing table) indicating the transfer destination of the packet, and transfers the packet accordingly. If the routing table is managed, it is possible to construct an arbitrary logical packet transfer network regardless of the physical position.
しかし、容量拡張のため新たなメモリノードを追加する場合、もしくは故障等の理由により既存のメモリノードを除去する場合には、各メモリノードの経路指定表を更新する必要があり、その手続きは煩雑である。経路指定表の維持・管理コストは、特にメモリノード数が大規模になった場合に膨大になり、それが容量の拡張性に制限を課すことになる。 However, when adding a new memory node for capacity expansion or removing an existing memory node due to a failure or the like, it is necessary to update the routing table of each memory node, and the procedure is complicated. It is. The routing table maintenance and management costs become enormous, especially when the number of memory nodes becomes large, which imposes restrictions on capacity scalability.
また、転送機能を有するメモリノードを相互に接続したストレージ装置おいて、複数のデータを複数のメモリノードに書き込み・読み出しを行う場合において、複数のデータを同一配線で同時に通信させることは一般に困難であるため、データの転送待機が生じやすい。このようなデータの転送待機は、データの書き込み・読み出しに必要な時間の増加を招く。 In addition, in a storage apparatus in which memory nodes having a transfer function are connected to each other, it is generally difficult to simultaneously communicate a plurality of data through the same wiring when writing / reading a plurality of data to / from a plurality of memory nodes. Therefore, there is a tendency to wait for data transfer. Such data transfer waiting increases the time required for data writing / reading.
メモリノードが経路指定表を管理する必要がなく、効率的にパケットを転送することができるストレージ装置、及びデータ処理方法を提供する。 There is provided a storage device and a data processing method capable of efficiently transferring a packet without requiring a memory node to manage a routing table.
一実施態様のストレージ装置は、第1の入力ポートと、第1の不揮発性メモリと、前記第1の不揮発性メモリを制御する第1の制御部と、を含む第1のメモリノードと、前記第1のメモリノードと接続される第2の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、いずれか1つは前記第1の入力ポートと接続される複数の第1の出力ポートと、を含む第2のメモリノードと、前記複数の第1の出力ポートのうちの1つに接続される第3の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードとを具備するストレージ装置であって、前記第2のメモリノードは、前記ストレージ装置内における前記第2のメモリノードの位置情報である第1の位置情報を記憶し、前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、前記第2の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、前記第2の制御部は、前記パケット内の前記送信先アドレスと前記送信元アドレス、前記第1の位置情報を少なくとも含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定するように構成されている。 A storage apparatus according to an embodiment includes a first memory node including a first input port, a first nonvolatile memory, and a first control unit that controls the first nonvolatile memory; A second input port connected to the first memory node, a second nonvolatile memory, a second control unit for controlling the second nonvolatile memory, and any one of the first input port A second memory node including a plurality of first output ports connected to the input port; a third input port connected to one of the plurality of first output ports; A storage device comprising a plurality of third memory nodes different from the first to second memory nodes, wherein the second memory node is position information of the second memory node in the storage device Memorize the first position information , The first control unit outputs including at least a packet destination address and the source address to the second memory node, said second input port, the output from the first memory node The second control unit receives a packet, and the second control unit includes at least the plurality of third memory nodes based on information including at least the transmission destination address, the transmission source address, and the first position information in the packet. and is configured to determine an output destination of said packet from said first memory node.
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。 Hereinafter, embodiments will be described with reference to the drawings. In the following description, components having the same function and configuration are denoted by the same reference numerals, and redundant description will be given only when necessary.
[第1実施形態]
第1実施形態は、転送機能を有する複数のメモリノードを相互に接続したストレージ装置を備え、各メモリノードが効率的にデータパケットを転送する転送方式を有する。
[First Embodiment]
The first embodiment includes a storage apparatus in which a plurality of memory nodes having a transfer function are connected to each other, and has a transfer method in which each memory node efficiently transfers a data packet.
[1]ストレージ装置の構成
図1は、第1実施形態のストレージ装置の構成を示す図であり、複数のメモリノードの物理的な配置法と、それに対するアドレスの割り当て法の一例を示す。
[1] Configuration of Storage Device FIG. 1 is a diagram showing a configuration of a storage device according to the first embodiment, and shows an example of a physical arrangement method of a plurality of memory nodes and an address allocation method corresponding thereto.
図示するように、ストレージ装置10はデータ転送機能を有するメモリノード11を複数備える。各々のメモリノード11は、正方格子の格子点に置かれる。格子点の座標である格子座標(x,y)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y)とする。すなわち、メモリノード11の論理アドレスは、物理アドレス(格子座標(x,y))に一致する。
As illustrated, the
各メモリノード11は、4つの入力ポート12と4つの出力ポート13を持つ。各メモリノードは、隣接する4つのメモリノードと入力ポート12及び出力ポート13を介して相互に接続される。具体的には、対向する2つの隣接したメモリノードは、互いの入力ポート12と出力ポート13とが接続される。
Each
図2に、各メモリノード11の構成を示す。メモリノード11は、入力ポート12、入力ポートバッファ12A、出力ポート13、出力ポートバッファ13A、セレクタ14、パケットコントローラ15、メモリ16、メモリコントローラ17、MPU18、及びローカルバス19を有する。
FIG. 2 shows the configuration of each
入力ポート12に入力されたパケットは、入力ポートバッファ12Aに一時的に記憶される。セレクタ14には入力ポートバッファ12Aからパケットが入力され、またパケットコントローラ15から制御信号が入力される。セレクタ14は、制御信号に従い、入力されたパケットからいずれかのパケットを選択して出力ポートバッファ13Aに出力する。出力ポートバッファ13Aは、セレクタ14から出力されたパケットを一時的に記憶すると共に、出力ポート13に出力する。パケットコントローラ15は、セレクタ14の出力を制御する。パケットとは、送信先アドレス及び送信元アドレスを少なくとも含むヘッダー部と、データ部とからなる転送データの単位である。
A packet input to the
メモリ16は、データを記憶する複数のメモリセルを有する。メモリ16は、例えばNAND型フラッシュメモリ等からなる。メモリコントローラ17は、メモリ16への書き込み、読み出し、及び消去の動作を制御する。MPU18は、メモリノード内で必要な演算処理を行う。ローカルバス19は、入力ポートバッファ12A、パケットコントローラ15、メモリコントローラ17、及びMPU18間を相互に接続し、これらの間の信号伝送を行う。
The
メモリノード11が受信したパケットは、入力ポート12を介して入力ポートバッファ12Aに格納される。パケットコントローラ15は、パケットが含む送信先(宛先)アドレスとそのメモリノード自身(以下、自ノード)のアドレスの2つの情報に基づいて、受信したパケットが自ノード宛であるか否かを判断する。
The packet received by the
もし、自ノード宛であれば、パケットコントローラ15は、自ノードのメモリ16に対する書き込み、読み出し、もしくはその他所定の処理を行う。もし、自ノード宛でなければ、パケットの送信先アドレスと自ノードのアドレスの2つの情報に基づいて、パケットを転送する隣接するメモリノードを決定し、セレクタ14により対応する出力ポートバッファ13Aにパケットを出力する。
If it is addressed to the own node, the
図1に示したストレージ装置では、正方格子の格子点にメモリノードが配置されたが、本実施形態はこの例に限定されるものではない。これを図3を参照して、例を挙げて説明する。 In the storage device shown in FIG. 1, memory nodes are arranged at lattice points of a square lattice, but the present embodiment is not limited to this example. This will be described with reference to FIG.
図3(a)に示す構成が図1に示した例に相当する。より一般的には、本実施形態において、各メモリノードは格子点に配置される。格子とは、幾何学においては平面上の点のうち、x座標、y座標がともに整数である点を言う。ここでは、x方向とy方向の単位ベクトル、exとeyの長さが異なる場合、即ちx方向とy方向の繰り返し周期が異なる場合も含む。この例を図3(b)に示す。 The configuration shown in FIG. 3A corresponds to the example shown in FIG. More generally, in the present embodiment, each memory node is arranged at a lattice point. A lattice refers to a point on the plane where both x and y coordinates are integers in geometry. Here, it includes the case where the unit vectors in the x direction and the y direction, the lengths of ex and e y are different, that is, the case where the repetition period in the x direction and the y direction are different. An example of this is shown in FIG.
また、x方向とy方向の単位ベクトルが直交しない場合、即ちx軸とy軸が直交しない場合も含む。この例を図3(c)に示す。また、メモリノードの相互接続数は4とは限らない。相互接続数が6の例を図3(d)に示す。 In addition, the case where the unit vectors in the x direction and the y direction are not orthogonal, that is, the case where the x axis and the y axis are not orthogonal is included. An example of this is shown in FIG. Also, the number of memory node interconnections is not necessarily four. An example in which the number of interconnections is 6 is shown in FIG.
本実施形態においては、格子の定義に関わらず、いずれの場合においても、格子座標(x,y)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y)とする。すなわち、メモリノードの論理アドレスは、物理アドレス(格子座標(x,y))に一致する。 In this embodiment, regardless of the definition of the lattice, in any case, the logical address of the memory node located at the lattice coordinate (x, y) coincides with the position coordinate and is (x, y). That is, the logical address of the memory node matches the physical address (lattice coordinate (x, y)).
また、より一般的には、本実施形態においては、各格子点に2以上のメモリノードの組が配置される場合を含む。各格子点に2つのメモリノードが配置される例を、図3(e)に示す。この例では、格子点(1,0)などに2つのメモリノードが配置される。これを、(1,0,0)と(1,0,1)とする。即ち、1つのメモリノードの座標は(x,y,z)の3つの整数の組によって表される。この場合においても、ノード座標(x,y,z)に位置するメモリノードの論理アドレスは、位置座標と一致して(x,y,z)とする。すなわち、メモリノードの論理アドレスは、物理アドレス(格子座標(x,y,z))に一致する。さらに、格子点が配置される平面が三次元的に曲げられたり、もしくは折りたたまれた場合も含む。 More generally, the present embodiment includes a case where a set of two or more memory nodes is arranged at each lattice point. An example in which two memory nodes are arranged at each lattice point is shown in FIG. In this example, two memory nodes are arranged at a lattice point (1, 0) or the like. These are (1, 0, 0) and (1, 0, 1). That is, the coordinates of one memory node are represented by a set of three integers (x, y, z). Even in this case, the logical address of the memory node located at the node coordinates (x, y, z) coincides with the position coordinates and is (x, y, z). That is, the logical address of the memory node matches the physical address (lattice coordinates (x, y, z)). Furthermore, it includes the case where the plane on which the lattice points are arranged is bent or folded three-dimensionally.
隣接したメモリノードとは、図3(a)〜図3(e)において以下のような位置関係にあるメモリノードを指す。図3(a)〜図3(c)において、例えば自ノードが座標(1,1)に存在する場合、自ノードに隣接したメモリノードは座標(0,1)、(1,2)、(2,1)、(1,0)に存在する4つのメモリノードを指す。また図3(d)において、例えば自ノードが座標(1,1)に存在する場合、自ノードに隣接したメモリノードは座標(0,1)、(0,2)、(1,2)、(2,1)、(2,0)、(1,0)に存在する6つのメモリノードを指す。さらに、図3(e)において、例えば自ノードが座標(1,0,1)に存在する場合、自ノードに隣接したメモリノードとは座標(0,1,0)、(1,1,0)、(1,0,0)に存在する3つのメモリノードを指す。 Adjacent memory nodes refer to memory nodes having the following positional relationship in FIGS. 3 (a) to 3 (e). 3A to 3C, for example, when the own node exists at the coordinates (1, 1), the memory nodes adjacent to the own node are coordinates (0, 1), (1, 2), ( 2, 1) and (1, 0). 3D, for example, when the own node exists at the coordinates (1, 1), the memory nodes adjacent to the own node are coordinates (0, 1), (0, 2), (1, 2), Six memory nodes existing at (2, 1), (2, 0), and (1, 0). Further, in FIG. 3E, for example, when the own node exists at the coordinates (1, 0, 1), the memory nodes adjacent to the own node are the coordinates (0, 1, 0), (1, 1, 0). ), Three memory nodes existing at (1, 0, 0).
[2]ストレージ装置の転送アルゴリズム1
転送アルゴリズム1では、パケットが含む送信先アドレス、及び自ノードのアドレスの2つの情報に基づいて、転送先のメモリノードを決定する。
[2] Storage
In the
図4は、第1実施形態のストレージ装置における転送アルゴリズム1を示す図である。図4を参照して、パケットの送信先アドレスと自ノードのアドレスの2つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム1とする。
FIG. 4 is a diagram showing a
パケットを受け取ったメモリノードは、パケットの送信先ノード(to)と自ノード(PP: Present position)との距離が最も小さくなる隣接するメモリノードにパケットを転送する。 The memory node that has received the packet transfers the packet to an adjacent memory node where the distance between the packet destination node (to) and its own node (PP: Present position) is the smallest.
図5A〜図5Dを参照して、転送アルゴリズム1に従うパケットの転送過程の具体例を示す。
With reference to FIGS. 5A to 5D, a specific example of a packet transfer process according to the
図5Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、自ノード(PP)のアドレスを(xpp, ypp)とし、さらにdx=xto−xpp、dy=yto−yppとする。転送先を示す方向として、図5Bに示すように、yが増加する方向をN(North)、xが増加する方向をE(East)、yが減少する方向をS(South)、xが減少する方向をW(West)とする。 As shown in FIG. 5A, the address of the destination node (to) is (x to , y to ), the address of its own node (PP) is (x pp , y pp ), and dx = x to −x pp , Let dy = y to −y pp . As shown in FIG. 5B, the direction indicating the transfer destination is N (North) when y increases, E (East) when x increases, S (South) when y decreases, and x decreases. The direction to perform is W (West).
aに対してその絶対値をあらわす記号を|a|として、|dx|>|dy|ならばx方向へ、|dx|<|dy|ならy方向へ進む。x方向へ進む場合は、dx>0ならEへ、dx<0ならWに転送する。同様に、y方向へ進む場合は、dy>0ならNへ、dy<0ならSに転送する。 If a symbol representing the absolute value of a is | a |, | dx |> | dy | proceeds in the x direction, and if | dx | <| dy |, proceeds in the y direction. When proceeding in the x direction, transfer to E if dx> 0, and to W if dx <0. Similarly, when proceeding in the y direction, transfer to N if dy> 0, and to S if dy <0.
図5Cに、ストレージ装置における転送アルゴリズム1のフローを示す。転送アルゴリズム1はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。
FIG. 5C shows a flow of the
まず、パケットコントローラ15は、dx=xto−xpp、dy=yto−yppを算出する(ステップS1)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS2)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS3)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS4)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS5)。
First, the
次に、ステップS2においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS6)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS7)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS8)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS9)。
Next, when dx is not 0 in step S2, the
次に、ステップS6においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、dx>0かつdy>0が成り立つか否かを判定する(ステップS10)。dx>0かつdy>0が成り立つとき、dx>dyが成り立つか否かを判定する(ステップS11)。dx>dyが成り立つとき、パケットをEへ転送する(ステップS12)。一方、dx>dyが成り立たないとき、パケットをNへ転送する(ステップS13)。
Next, when dy is not 0 in step S6, that is, when dx and dy are not 0, the
次に、ステップS10においてdx>0かつdy>0が成り立たないとき、パケットコントローラ15は、dx<0かつdy>0が成り立つか否かを判定する(ステップS14)。dx<0かつdy>0が成り立つとき、(−1)・dx>dyが成り立つか否かを判定する(ステップS15)。(−1)・dx>dyが成り立つとき、パケットをWへ転送する(ステップS16)。一方、(−1)・dx>dyが成り立たないとき、パケットをNへ転送する(ステップS17)。
Next, when dx> 0 and dy> 0 do not hold in step S10, the
次に、ステップS14においてdx<0かつdy>0が成り立たないとき、パケットコントローラ15は、dx<0かつdy<0が成り立つか否かを判定する(ステップS18)。dx<0かつdy<0が成り立つとき、dx>dyが成り立つか否かを判定する(ステップS19)。dx>dyが成り立つとき、パケットをSへ転送する(ステップS20)。一方、dx>dyが成り立たないとき、パケットをWへ転送する(ステップS21)。
Next, when dx <0 and dy> 0 do not hold in step S14, the
次に、ステップS18においてdx<0かつdy<0が成り立たないとき、パケットコントローラ15は、dx>(−1)・dyが成り立つか否かを判定する(ステップS22)。dx>(−1)・dyが成り立つとき、パケットをEへ転送する(ステップS23)。一方、dx>(−1)・dyが成り立たないとき、パケットをSへ転送する(ステップS24)。
Next, when dx <0 and dy <0 do not hold in step S18, the
以上の処理により、メモリノードに入力されたパケットは、送信先ノード(to)と自ノード(PP)との距離が最も小さくなるような隣接するメモリノードに転送される。 Through the above processing, the packet input to the memory node is transferred to an adjacent memory node where the distance between the transmission destination node (to) and the own node (PP) is minimized.
図5Dに、パケットの転送過程の具体例を示す。転送アルゴリズム1においては|dx|=|dy|となるまでは|dx|>|dy|ならばx方向へ、|dx|<|dy|ならy方向へ連続して進み、|dx|=|dy|となった後はx方向とy方向へ交互に進む。
FIG. 5D shows a specific example of the packet transfer process. In the
例えば、ケース1では、dx=0かつdy>0であるため、送信先ノード(to)に到達するまでNへ進む。ケース4では、dx>0かつdy>0であり、dx<dyであるため、dx=dyとなるまでNへ連続して進み、dx=dyとなった後はEとNへ交互に進む。
For example, in
[3]ストレージ装置を含むストレージシステム
図6は、第1実施形態のストレージ装置を含むストレージシステムの構成を示す図である。
[3] Storage System Including Storage Device FIG. 6 is a diagram showing a configuration of a storage system including the storage device of the first embodiment.
ストレージシステム20は、ストレージ装置をクライアントが使用するためのシステムであり、以下のような構成を備える。
The
ストレージ装置10はゲートウェイサーバを介してクライアントと接続される。ストレージ装置10内部の通信規格とゲートウェイサーバ21A,21Bの通信規格が異なる場合は、両者の間にアダプタ22A,22Bをそれぞれ設置しても良い。
The
詳述すると、ストレージ装置10の外周部に配置されたメモリノード(1,4)は、アダプタ22A、ゲートウェイサーバ21Aを介してクライアント31Aと接続される。同様に、メモリノード(1,1)は、アダプタ22B、ゲートウェイサーバ21Bを介してクライアント31B1,31B2と接続される。なお、“メモリノード(x,y)”は、アドレス(x,y)のメモリノードであることを表す。以降も同様である。
More specifically, the memory nodes (1, 4) arranged on the outer periphery of the
ゲートウェイサーバ21A,21Bは、例えばコンピュータから構成され、ストレージ装置10内部のメモリノード11と同じ規約に基づいてアドレスを持つ。図6では、ゲートウェイサーバ21Aはアドレス(0,4)を持ち、ゲートウェイサーバ21Bはアドレス(0,1)を持つ。
The
次に、ストレージシステムにおける書き込み動作を説明する。 Next, a write operation in the storage system will be described.
図7は、ストレージ装置10にクライアントがファイルを書き込む手続きを示す。ここでは、クライアント31Aがストレージ装置10にファイルを書き込む場合を述べる。
FIG. 7 shows a procedure for a client to write a file to the
クライアント31Aは、ファイルとファイルIDをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。ファイルIDとしては、\\strage_system \home \cliantA \file1.txtといった所定のファイルシステムにおけるフルパスのファイル名を使うことができる。
The
次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータパケットに分割し、各パケットにパケットIDを割り振る。続いて、ファイルIDと、分割されたパケットのパケットIDをファイルテーブルに書き込む((2)参照)。パケットIDは、パケットを一意に特定できる識別子である。パケットIDとしては、・・・\file1.txt~1、・・・\file1.txt~2というように、「ファイルID+連続する番号」を割り当てることができる。
Next, the
次に、ゲートウェイサーバ21Aは、パケットIDの情報に基づき、そのパケットを書き込むメモリノードのアドレス(以下、書き込みノードアドレス)を決定する((3)参照)。この際、大規模分散ファイルシステムで使用されるコンシステントハッシング(文献1参照)と呼ばれるノード決定手法を使っても良い。コンシステントハッシングは、ノードアドレスのハッシュ値、およびパケットIDのハッシュ値の両方を使って、書き込みアドレスを決定する点に特徴がある。
Next, the
[文献1]:丸山不二夫/首藤一幸編、「雲の世界の向こうをつかむクラウドの技術」、株式会社アスキー・メディアワークス、2009年11月6日、p.88、ISBN978-4-04-868064-6
次に、ゲートウェイサーバ21Aは、書き込みアドレスを送信先アドレス、ゲートウェイサーバ21Aのアドレスを送信元アドレスとして、書き込みパケットをストレージ装置10に送信する((4)、(5)参照)。
[Reference 1]: Fujio Maruyama / Kazuyuki Shudo, “Cloud technology to grab beyond the cloud world”, ASCII Media Works, Inc., November 6, 2009, p.88, ISBN978-4-04-868064 -6
Next, the
メモリノード(1,4)に送信されたパケットは、ストレージ装置10内で転送アルゴリズム1に従って適切な転送が繰り返されることにより、送信先アドレスのメモリノードに到達する((6)参照)。目的のメモリノードでは、受け取ったパケットを自ノードのメモリ16に書き込む((7)参照)。その後、書き込み完了パケットをゲートウェイサーバ21Aへ返信する((8)参照)。
The packet transmitted to the memory node (1, 4) reaches the memory node at the destination address by repeating appropriate transfer in the
次に、ストレージシステムにおける読み出し動作を説明する。 Next, a read operation in the storage system will be described.
図8は、ストレージ装置10からクライアントがファイルを読み出す手続きを示す。ここでは、クライアント31Aがストレージ装置10からファイルを読み出す場合を述べる。
FIG. 8 shows a procedure for a client to read a file from the
クライアント31Aは、読み出し要求(ファイルID)をゲートウェイサーバ21Aに送信する((1)参照)。
The
ゲートウェイサーバ21Aは、ファイルテーブルからファイルIDに対応するパケットIDを取得する((2)参照)。続いて、ゲートウェイサーバ21Aは、パケットIDの情報に基づき、読み出しを行うメモリノードのアドレス(以下、読み出しノードアドレス)を決定する((3)参照)。この際、大規模分散ファイルシステムで使用されるコンシステントハッシングと呼ばれるノード決定手法を使っても良い。
The
次に、ゲートウェイサーバ21Aは、読み出しノードアドレスを送信先アドレス、ゲートウェイサーバ21Aのアドレスを送信元アドレスとして、読み出しパケットをストレージ装置10に送信する((4)、(5)参照)。
Next, the
メモリノード(1,4)に送信されたパケットは、ストレージ装置10内で転送アルゴリズム1に従って適切な転送が繰り返されることにより、送信先アドレスのメモリノードに到達する((6)参照)。目的のメモリノードでは、読み出しパケットに従い、自ノードのメモリ16から目的のデータを読み出す((7)参照)。その後、読み出したデータをデータパケットとしてゲートウェイサーバ21Aに返信する((8)参照)。
The packet transmitted to the memory node (1, 4) reaches the memory node at the destination address by repeating appropriate transfer in the
図6に示したシステムにおいては、書き込みデータのランダマイズ処理(Rand処理)、書き込みデータへの誤り訂正符号(ECC:error-correcting code)の付与、及びECCを用いた読み出しデータの誤り検出および訂正の機能(ECC機能)をゲートウェイサーバが実施してよい。この場合、各メモリノードのメモリコントローラはランダマイズ処理とECC機能を持つ必要がない。さらに、メモリノード間の通信の際にECC処理を実施する必要がない。このため、メモリノード一つ当たりのコストを低減することが可能となる。 In the system shown in FIG. 6, randomization processing (Rand processing) of write data, addition of error-correcting code (ECC) to write data, and error detection and correction of read data using ECC are performed. The function (ECC function) may be performed by the gateway server. In this case, the memory controller of each memory node does not need to have a randomization process and an ECC function. Further, there is no need to perform ECC processing during communication between memory nodes. For this reason, the cost per memory node can be reduced.
[4]ストレージ装置の拡張性
ストレージ装置に新たなメモリノードを追加する際の方式について説明する。
[4] Extensibility of storage apparatus A method for adding a new memory node to the storage apparatus will be described.
図9は、ストレージ装置に新たなメモリノードを追加した際の自動アドレス取得方式を示す。 FIG. 9 shows an automatic address acquisition method when a new memory node is added to the storage apparatus.
本実施形態のストレージ装置10においては、格子座標(x,y)に位置するメモリノードの論理アドレスは位置座標と一致して(x,y)とするため、追加するメモリノードは隣接ノードにアドレスを問い合わせることにより、自ノードのアドレスを簡易に割り出すことができる。
In the
例えば、追加するメモリノードがW方向にある隣接ノードにアドレスを問い合わせる場合、隣接ノードのアドレスを(x,y)とすると、追加ノードのアドレスは(x+1,y)となる。同様に、N,E,Sにある隣接ノード(x,y)に問い合わせた場合、自ノードのアドレスはそれぞれ(x,y−1),(x−1,y),(x,y+1)となる。 For example, when the memory node to be added inquires of an adjacent node in the W direction about the address, if the address of the adjacent node is (x, y), the address of the additional node is (x + 1, y). Similarly, when an inquiry is made to the adjacent nodes (x, y) in N, E, and S, the addresses of the own nodes are (x, y-1), (x-1, y), (x, y + 1) and Become.
図9に示した場合においては、メモリノード(4,4)のE方向に新しいメモリノードを追加した状況を例示している。追加するメモリノードは、toとfromがnoneであるaddress_requestパケットをW方向にある隣接ノード(4,4)に送信する。address_requestパケットを受信したメモリノード(4,4)は、fromを自ノードアドレスとし、toを(5,4)としたaddress_answerパケットをE方向にあるメモリノードの出力ポートバッファにセットする。追加ノードは、address_answerパケットを受信することにより、自ノードのアドレスが、(5,4)であることを割り出すことができる。 In the case shown in FIG. 9, a situation is shown in which a new memory node is added in the E direction of the memory node (4, 4). The memory node to be added transmits an address_request packet in which to and from are none to the adjacent nodes (4, 4) in the W direction. The memory node (4, 4) that has received the address_request packet sets an address_answer packet with from as its own node address and to as (5, 4) in the output port buffer of the memory node in the E direction. The additional node can determine that the address of its own node is (5, 4) by receiving the address_answer packet.
また、別の方式として、手動アドレス設定方式も考えられる。手動アドレス設定方式では、ストレージ装置10の運用者が予め追加するメモリノードのアドレスを割り出し、それをプリセットしてから、新規のメモリノードを追加する。
As another method, a manual address setting method is also conceivable. In the manual address setting method, the operator of the
前述した自動アドレス取得方式は、各メモリノードのパケットコントローラがAddress_requestパケットに対して回答する機能を有することが必要である。このため、パケットコントローラ1つ当たりのコストが高価になる傾向がある。一方、追加するメモリノードのアドレスをプリセットする必要がないため、メモリノードを追加する時の手続きが簡易化され、運用コストを低下させることができる。 The automatic address acquisition method described above needs to have a function for the packet controller of each memory node to respond to the Address_request packet. For this reason, the cost per packet controller tends to be expensive. On the other hand, since it is not necessary to preset the address of the memory node to be added, the procedure for adding the memory node is simplified and the operation cost can be reduced.
以上説明したように第1実施形態によれば、メモリノードの論理的なアドレスと物理的な位置(物理アドレス)が一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。 As described above, according to the first embodiment, since the logical address of the memory node matches the physical position (physical address), it is not necessary for each memory node to manage the routing table. A data transfer method can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus.
[第2実施形態]
第2実施形態のストレージ装置について説明する。第2実施形態は、第1実施形態が有する転送アルゴリズム1と異なる転送アルゴリズム2を有する。転送アルゴリズム2では、パケットが含む送信先アドレス及び送信元アドレス、自ノードのアドレスの3つの情報に基づいて、転送先のメモリノードを決定する。なお、このストレージ装置は、図1及び図2と同様な構成を有するため、記載を省略する。
[Second Embodiment]
A storage apparatus according to the second embodiment will be described. The second embodiment has a
[1]ストレージ装置の転送アルゴリズム2
図10は、第2実施形態のストレージ装置における転送アルゴリズム2を示す図である。図10を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレスの3つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム2とする。
[1] Storage
FIG. 10 is a diagram illustrating a
図10に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線で区切られる2つの領域のどちらに自ノード(PP)が存在するかを判断し、その領域に割り当てられた方向の隣接するメモリノードにパケットを転送する。 As shown in FIG. 10, it is determined in which of the two areas separated by a straight line connecting the transmission destination node (to) and the transmission source node (from) the own node (PP) exists and assigned to that area. Transfer the packet to adjacent memory nodes in the specified direction.
図11A〜図11Dを参照して、転送アルゴリズム2に従うパケットの転送過程の具体例を示す。
A specific example of a packet transfer process according to
図11Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、送信元ノード(from)のアドレスを(xfrom, yfrom)、自ノード(PP)のアドレスを(xpp, ypp)とする。さらに、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromとする。転送先を示す方向として、図11Bに示すように、yが増加する方向をN、xが増加する方向をE、yが減少する方向をS、xが減少する方向をWとする。 As shown in FIG. 11A, the address of the destination node (to) is (x to , y to ), the address of the source node (from) is (x from , y from ), and the address of its own node (PP) is ( x pp , y pp ). Further, dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from . As shown in FIG. 11B, N indicates a direction in which y increases, E indicates a direction in which x increases, S indicates a direction in which y decreases, and W indicates a direction in which x decreases.
y=(dx/dy)・xという送信先ノード(to)と送信元ノード(from)を結ぶ直線の式に基づき、Dyと(dy/dx)・Dxのどちらが大きいかを比較することで、その直線で区切られる2つの領域のどちらに自ノード(PP)が存在しているかを判断する。 Based on the equation of a straight line connecting the destination node (to) and the source node (from), y = (dx / dy) · x, and comparing which of Dy and (dy / dx) · Dx is larger, It is determined in which of the two areas separated by the straight line the own node (PP) exists.
dx>0かつdy>0の場合を例に転送方向の割り当て例を説明する。Dyと(dy/dx)・Dxを比較した場合に、Dyが(dy/dx)・Dxよりも大きくなる領域をA領域、もう一方の領域をB領域とする。転送において、A領域の第一優先方向にはEを割り当て、B領域の第一優先方向にはNを割り当てる。転送アルゴリズム2においては、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように転送が行われる。
An example of assigning the transfer direction will be described by taking the case of dx> 0 and dy> 0 as an example. When Dy is compared with (dy / dx) · Dx, an area where Dy is larger than (dy / dx) · Dx is an A area, and the other area is a B area. In the transfer, E is assigned to the first priority direction of the A area, and N is assigned to the first priority direction of the B area. In the
図11Cに、ストレージ装置における転送アルゴリズム2のフローを示す。転送アルゴリズム2はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。
FIG. 11C shows a flow of
まず、パケットコントローラ15は、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromを算出する(ステップS31)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS32)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS33)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS34)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS35)。
First, the
次に、ステップS32においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS36)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS37)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS38)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS39)。
Next, when dx is not 0 in step S32, the
次に、ステップS36においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、Dy・dx>dy・Dxが成り立つか否かを判定する(ステップS40)。Dy・dx>dy・Dxが成り立つとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS41)。dx>0かつdy>0が成り立つとき、パケットをEへ転送する(ステップS42)。一方、dx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS43)。dx<0かつdy>0が成り立つとき、パケットをNへ転送する(ステップS44)。
Next, when dy is not 0 in step S36, that is, when dx and dy are not 0, the
次に、ステップS43においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS45)。dx<0かつdy<0が成り立つとき、パケットをWへ転送する(ステップS46)。dx<0かつdy<0が成り立たないとき、パケットをSへ転送する(ステップS47)。 Next, when dx <0 and dy> 0 do not hold in step S43, it is determined whether dx <0 and dy <0 hold (step S45). When dx <0 and dy <0 hold, the packet is transferred to W (step S46). When dx <0 and dy <0 do not hold, the packet is transferred to S (step S47).
次に、ステップS40においてDy・dx>dy・Dxが成り立たないとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS48)。dx>0かつdy>0が成り立つとき、パケットをNへ転送する(ステップS49)。dx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS50)。dx<0かつdy>0が成り立つとき、パケットをWへ転送する(ステップS51)。dx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS52)。dx<0かつdy<0が成り立つとき、パケットをSへ転送する(ステップS53)。dx<0かつdy<0が成り立たないとき、パケットをEへ転送する(ステップS54)。 Next, when Dy · dx> dy · Dx does not hold in step S40, it is determined whether dx> 0 and dy> 0 hold (step S48). When dx> 0 and dy> 0 hold, the packet is transferred to N (step S49). When dx> 0 and dy> 0 do not hold, it is determined whether dx <0 and dy> 0 hold (step S50). When dx <0 and dy> 0 hold, the packet is transferred to W (step S51). When dx <0 and dy> 0 do not hold, it is determined whether dx <0 and dy <0 hold (step S52). When dx <0 and dy <0 hold, the packet is transferred to S (step S53). When dx <0 and dy <0 do not hold, the packet is transferred to E (step S54).
以上の処理により、メモリノードに入力されたパケットは、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように、隣接するメモリノードに転送される。 Through the above processing, the packet input to the memory node is transferred to an adjacent memory node so that the packet advances along a straight line connecting the transmission destination node (to) and the transmission source node (from).
図11Dに、パケットの転送過程の具体例を示す。転送アルゴリズム2においては、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが進むように転送が行われる。例えば、ケース3では、dx<0かつdy>0であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線からできるだけ離れないように、WまたはNへ進む。ケース4では、dx>0かつdy>0であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線からできるだけ離れないように、NまたはEへ進む。
FIG. 11D shows a specific example of the packet transfer process. In the
図12A及び図12Bを参照して、転送アルゴリズム1に対する転送アルゴリズム2の優位性を示す。
With reference to FIGS. 12A and 12B, the superiority of the
図12A及び図12Bは、2つの送信元ノード(from1)と(from2)からそれぞれ送信先ノード(to)宛てのパケットを送信した場合のパケットの転送過程を例示している。図12Aは転送アルゴリズム1による転送過程を示し、図12Bは転送アルゴリズム2による転送過程を示す。
FIG. 12A and FIG. 12B illustrate the packet transfer process when packets addressed to the destination node (to) are transmitted from the two source nodes (from1) and (from2), respectively. FIG. 12A shows a transfer process by the
図12Aに示す転送アルゴリズム1では、2つのパケットが合流する地点で、合流待ちの渋滞(jamで示す)が発生している。一方、図12Bに示す転送アルゴリズム2では渋滞は発生していない。したがって、転送アルゴリズム2では、転送アルゴリズム1よりも渋滞発生確率を減少させることができる。
In the
以上説明したように第2実施形態によれば、第1実施形態に比べて渋滞発生確率を減少させることができ、多くのクライアントが同時に接続した場合でも、応答速度を維持することができるストレージ装置を提供可能である。 As described above, according to the second embodiment, it is possible to reduce the probability of occurrence of traffic congestion as compared with the first embodiment, and it is possible to maintain the response speed even when many clients are connected simultaneously. Can be provided.
また、第1実施形態と同様に、メモリノードの論理アドレスと物理アドレスが一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。その他の構成及び効果は、前述した第1実施形態と同様である。 Further, as in the first embodiment, since the logical address and the physical address of the memory node coincide with each other, an efficient data transfer method that does not require each memory node to manage the routing table can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus. Other configurations and effects are the same as those of the first embodiment described above.
[第3実施形態]
第3実施形態のストレージ装置について説明する。第3実施形態は、第1,第2実施形態が有する転送アルゴリズム1,2と異なる転送アルゴリズム3を有する。転送アルゴリズム3では、パケットが含む送信先アドレス及び送信元アドレス、自ノードのアドレス、及び自ノードの出力ポート占有情報の4つの情報に基づいて、転送先のメモリノードを決定する。なお、このストレージ装置は、図1及び図2と同様な構成を有するため、記載を省略する。
[Third Embodiment]
A storage apparatus according to the third embodiment will be described. The third embodiment has a
[1]ストレージ装置の転送アルゴリズム3
図13は、第3実施形態のストレージ装置における転送アルゴリズム3を示す図である。図13を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の一例を示す。これを転送アルゴリズム3とする。
[1] Storage
FIG. 13 is a diagram showing a
図13に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線で区切られる2つの領域のどちらに自ノード(PP)が存在するかを判断し、その領域に割り当てられた2つの方向のうち、自ノードの出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。各領域には、第一優先方向と、第二優先方向を割り当てる。第一優先方向の出力ポートバッファが別のパケットにより占有されていた場合に、第二優先方向が選択される。 As shown in FIG. 13, it is determined in which of two areas separated by a straight line connecting the transmission destination node (to) and the transmission source node (from) the own node (PP) exists and assigned to that area. Of the two directions, the packet is transferred to the adjacent node in the direction determined by the occupation information of the output port of the own node. A first priority direction and a second priority direction are assigned to each area. The second priority direction is selected when the output port buffer in the first priority direction is occupied by another packet.
図13、図14A〜図14Dを参照して、転送アルゴリズム3に従うパケットの転送過程の具体例を示す。
A specific example of a packet transfer process according to
図14Aに示すように、送信先ノード(to)のアドレスを(xto, yto)、送信元ノード(from)のアドレスを(xfrom, yfrom)、自ノードのアドレス(PP)を(xpp, ypp)とする。さらに、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromとする。 As shown in FIG. 14A, the address of the destination node (to) is (x to , y to ), the address of the source node (from) is (x from , y from ), and the address (PP) of its own node is ( x pp , y pp ). Further, dx = x to −x from , dy = y to −y from , Dx = x pp −x from , and Dy = y pp −y from .
図13では、dx>0かつdy>0の場合を例示している。Dyと(dy/dx)・Dxを比較した場合に、Dyが(dy/dx)・Dxよりも大きくなる領域をA領域、もう一方の領域をB領域とする。転送において、A領域の第一優先方向にはEを割り当て、B領域の第一優先方向にはNを割り当てる。また、A領域の第二優先方向(bypass方向)にはNを割り当て、B領域の第二優先方向にはEを割り当てる。例えば、図示されているようにパケットを転送するメモリノードがB領域に属す場合において、第一優先方向であるN方向の出力ポートバッファが別のパケットに占有されていれば、そのメモリノードは第二優先方向であるE方向にパケットを転送する。 FIG. 13 illustrates a case where dx> 0 and dy> 0. When Dy is compared with (dy / dx) · Dx, an area where Dy is larger than (dy / dx) · Dx is an A area, and the other area is a B area. In the transfer, E is assigned to the first priority direction of the A area, and N is assigned to the first priority direction of the B area. Further, N is assigned to the second priority direction (bypass direction) of the A area, and E is assigned to the second priority direction of the B area. For example, as shown in the figure, when a memory node that transfers a packet belongs to the B region, if the output port buffer in the N direction, which is the first priority direction, is occupied by another packet, the memory node Forward the packet in the E direction, which is the second priority direction.
図14Cに、ストレージ装置における転送アルゴリズム3のフローを示す。転送アルゴリズム3はパケットコントローラ15に記憶されており、パケットコントローラ15により実行される。なお、図14Bに示すように、Nへパケットを出力するための出力ポートバッファをOPBNとし、Eへパケットを出力するための出力ポートバッファをOPBE、Wへパケットを出力するための出力ポートバッファをOPBW、Sへパケットを出力するための出力ポートバッファをOPBSとする。
FIG. 14C shows a flow of the
これら出力ポートバッファOPBN、OPBE、OPBW、OPBSが空いているか(パケットが記憶できるか)、あるいはパケットに占有されているかの情報(出力ポート占有情報)は、以下のようにパケットコントローラ15に記憶される。パケットコントローラ15は、出力ポートバッファと入力ポートバッファの総数分だけバッファ占有フラグビットを有する。パケットコントローラ15は、出力ポートバッファにパケットが書き込まれた場合、そのバッファに対応するバッファ占有フラグビットを“1”にし、出力ポートバッファからパケットが出力された場合、そのバッファに対応するバッファ占有フラグビットを“0”にする。パケットコントローラ15は、バッファ占有フラグビットを評価することで、対応する出力ポートバッファが空いているか否か(パケットに占有されているか否か)を判断できる。
Information about whether these output port buffers OPBN, OPBE, OPBW, and OPBS are free (can store a packet) or is occupied by a packet (output port occupation information) is stored in the
まず、パケットコントローラ15は、dx=xto−xfrom、dy=yto−yfrom、Dx=xpp−xfrom、Dy=ypp−yfromを算出する(ステップS61)。続いて、パケットコントローラ15は、dxが0であるか否かを判定する(ステップS62)。dxが0であるとき、yto>yppが成り立つか否かを判定する(ステップS63)。yto>yppが成り立つとき、パケットをNへ転送する(ステップS64)。一方、yto>yppが成り立たないとき、パケットをSへ転送する(ステップS65)。
First, the
次に、ステップS62においてdxが0でないとき、パケットコントローラ15は、dyが0であるか否かを判定する(ステップS66)。dyが0であるとき、xto>xppが成り立つか否かを判定する(ステップS67)。xto>xppが成り立つとき、パケットをEへ転送する(ステップS68)。一方、xto>xppが成り立たないとき、パケットをWへ転送する(ステップS69)。
Next, when dx is not 0 in step S62, the
次に、ステップS66においてdyが0でないとき、すなわちdxとdyが0でないとき、パケットコントローラ15は、Dy・dx>dy・Dxが成り立つか否かを判定する(ステップS70)。Dy・dx>dy・Dxが成り立つとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS71)。dx>0かつdy>0が成り立つとき、Eへ出力する出力ポートバッファOPBEが空いているか否か、すなわち別のパケットにより占有されていないかを判定する(ステップS72)。出力ポートバッファOPBEが空いているとき、パケットをEへ転送する(ステップS73)。一方、出力ポートバッファOPBEが空いていないとき、パケットをNへ転送する(ステップS74)。
Next, when dy is not 0 in step S66, that is, when dx and dy are not 0, the
次に、ステップS71においてdx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS75)。dx<0かつdy>0が成り立つとき、Nへ出力する出力ポートバッファOPBNが空いているか否かを判定する(ステップS76)。出力ポートバッファOPBNが空いているとき、パケットをNへ転送する(ステップS77)。一方、出力ポートバッファOPBNが空いていないとき、パケットをWへ転送する(ステップS78)。 Next, when dx> 0 and dy> 0 do not hold in step S71, it is determined whether dx <0 and dy> 0 hold (step S75). When dx <0 and dy> 0 hold, it is determined whether or not the output port buffer OPBN to be output to N is empty (step S76). When the output port buffer OPBN is empty, the packet is transferred to N (step S77). On the other hand, when the output port buffer OPBN is not empty, the packet is transferred to W (step S78).
次に、ステップS75においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS79)。dx<0かつdy<0が成り立つとき、Wへ出力する出力ポートバッファOPBWが空いているか否かを判定する(ステップS80)。出力ポートバッファOPBWが空いているとき、パケットをWへ転送する(ステップS81)。一方、出力ポートバッファOPBWが空いていないとき、パケットをSへ転送する(ステップS82)。 Next, when dx <0 and dy> 0 do not hold in step S75, it is determined whether dx <0 and dy <0 hold (step S79). When dx <0 and dy <0 hold, it is determined whether or not the output port buffer OPBW to be output to W is empty (step S80). When the output port buffer OPBW is empty, the packet is transferred to W (step S81). On the other hand, when the output port buffer OPBW is not empty, the packet is transferred to S (step S82).
次に、ステップS79においてdx<0かつdy<0が成り立たないとき、Sへ出力する出力ポートバッファOPBSが空いているか否かを判定する(ステップS83)。出力ポートバッファOPBSが空いているとき、パケットをSへ転送する(ステップS84)。一方、出力ポートバッファOPBSが空いていないとき、パケットをEへ転送する(ステップS85)。 Next, when dx <0 and dy <0 are not satisfied in step S79, it is determined whether or not the output port buffer OPBS output to S is empty (step S83). When the output port buffer OPBS is empty, the packet is transferred to S (step S84). On the other hand, when the output port buffer OPBS is not empty, the packet is transferred to E (step S85).
次に、ステップS70においてDy・dx>dy・Dxが成り立たないとき、dx>0かつdy>0が成り立つか否かを判定する(ステップS86)。dx>0かつdy>0が成り立つとき、Nへ出力する出力ポートバッファOPBNが空いているか否かを判定する(ステップS87)。出力ポートバッファOPBNが空いているとき、パケットをNへ転送する(ステップS88)。一方、出力ポートバッファOPBNが空いていないとき、パケットをEへ転送する(ステップS89)。 Next, when Dy · dx> dy · Dx does not hold in step S70, it is determined whether dx> 0 and dy> 0 hold (step S86). When dx> 0 and dy> 0 hold, it is determined whether or not the output port buffer OPBN that outputs to N is empty (step S87). When the output port buffer OPBN is empty, the packet is transferred to N (step S88). On the other hand, when the output port buffer OPBN is not empty, the packet is transferred to E (step S89).
次に、ステップS86においてdx>0かつdy>0が成り立たないとき、dx<0かつdy>0が成り立つか否かを判定する(ステップS90)。dx<0かつdy>0が成り立つとき、Wへ出力する出力ポートバッファOPBWが空いているか否かを判定する(ステップS91)。出力ポートバッファOPBWが空いているとき、パケットをWへ転送する(ステップS92)。一方、出力ポートバッファOPBWが空いていないとき、パケットをNへ転送する(ステップS93)。 Next, when dx> 0 and dy> 0 do not hold in step S86, it is determined whether dx <0 and dy> 0 hold (step S90). When dx <0 and dy> 0 hold, it is determined whether or not the output port buffer OPBW to be output to W is empty (step S91). When the output port buffer OPBW is empty, the packet is transferred to W (step S92). On the other hand, when the output port buffer OPBW is not empty, the packet is transferred to N (step S93).
次に、ステップS90においてdx<0かつdy>0が成り立たないとき、dx<0かつdy<0が成り立つか否かを判定する(ステップS94)。dx<0かつdy<0が成り立つとき、Sへ出力する出力ポートバッファOPBSが空いているか否かを判定する(ステップS95)。出力ポートバッファOPBSが空いているとき、パケットをSへ転送する(ステップS96)。一方、出力ポートバッファOPBSが空いていないとき、パケットをWへ転送する(ステップS97)。 Next, when dx <0 and dy> 0 do not hold in step S90, it is determined whether dx <0 and dy <0 hold (step S94). When dx <0 and dy <0 hold, it is determined whether or not the output port buffer OPBS to be output to S is empty (step S95). When the output port buffer OPBS is empty, the packet is transferred to S (step S96). On the other hand, when the output port buffer OPBS is not empty, the packet is transferred to W (step S97).
次に、ステップS94においてdx<0かつdy<0が成り立たないとき、Eへ出力する出力ポートバッファOPBEが空いているか否かを判定する(ステップS98)。出力ポートバッファOPBEが空いているとき、パケットをEへ転送する(ステップS99)。一方、出力ポートバッファOPBEが空いていないとき、パケットをSへ転送する(ステップS100)。 Next, when dx <0 and dy <0 do not hold in step S94, it is determined whether or not the output port buffer OPBE to be output to E is empty (step S98). When the output port buffer OPBE is empty, the packet is transferred to E (step S99). On the other hand, when the output port buffer OPBE is not empty, the packet is transferred to S (step S100).
以上の処理により、第一優先方向において渋滞が発生している場合には、第二優先方向へパケットを転送することにより、渋滞を回避しながら送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿って、隣接するメモリノードにパケットが転送される。 By the above processing, if there is a traffic jam in the first priority direction, the destination node (to) and the source node (from) while avoiding the traffic jam by forwarding the packet in the second priority direction A packet is transferred to an adjacent memory node along a straight line connecting the two.
図14Dに、パケットの転送過程の具体例を示す。ケース1は渋滞が発生しない例であり、送信先ノード(to)と送信元ノード(from)を結ぶ直線に沿ってパケットが転送される。ケース2,3は、渋滞を回避する例を示す。ケース2では、パケットをNへ転送しようとしているとき、N方向に渋滞が発生している。このため、ケース3に示すように、パケットをEへ転送して渋滞を回避している。ケース4,5は、渋滞を回避する他の例を示す。ケース4では、パケットをEへ転送しようとしているとき、E方向に渋滞が発生している。このため、ケース5に示すように、パケットをNへ転送して渋滞を回避している。
FIG. 14D shows a specific example of the packet transfer process.
転送アルゴリズム3においては、第一優先方向で渋滞が発生している場合には、第二優先方向へパケットを転送することにより、渋滞を回避することができる。この際、渋滞がそもそも発生しなかった場合と比べて、送信先ノードにパケットが到達するまでの転送回数は変わらない。
In the
[2]ストレージ装置の転送アルゴリズム4
図15は、ストレージ装置における転送アルゴリズム4を示す図である。図15を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の別の第1例を示す。これを転送アルゴリズム4とする。
[2] Storage
FIG. 15 is a diagram showing the
図15に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線、及びその直線と送信先ノード(to)の位置で直交する直線で区切られる4つの領域を定義する。それら4つの領域のうち、どの領域に自ノード(PP)が存在するかを判断し、自ノード(PP)が存在する領域に割り当てられた第一優先と第二優先の2つの方向のうち、自ノード(PP)の出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。 As shown in FIG. 15, four regions defined by a straight line connecting the transmission destination node (to) and the transmission source node (from) and a straight line orthogonal to the position of the transmission destination node (to) are defined. Of these four areas, it is determined in which area the own node (PP) exists, and among the two directions of the first priority and the second priority assigned to the area where the own node (PP) exists, The packet is forwarded to the adjacent node in the direction determined by the occupation information of the output port of the own node (PP).
アルゴリズム3と比較したアルゴリズム4の優位性は次の通りである。アルゴリズム3に対しては、送信先ノード(to)と送信元ノード(from)を結ぶ直線を対角線とする長方形により規定される領域の外にパケットを転送することを禁止する制限を設ける必要がある。一方、アルゴリズム4に対しては、その制限を設ける必要がない。
The superiority of
[3]ストレージ装置の転送アルゴリズム5
図16は、ストレージ装置における転送アルゴリズム5を示す図である。図16を参照して、パケットの送信先アドレス及び送信元アドレス、自ノードのアドレス、自ノードの出力ポート占有情報の4つの情報に基づいて、転送先の隣接ノードを決定する方法の別の第2例を示す。これを転送アルゴリズム5とする。
[3] Storage
FIG. 16 is a diagram showing the
図16に示すように、送信先ノード(to)と送信元ノード(from)を結ぶ直線、その直線と送信先ノード(to)の位置で直交する直線、送信先ノード(to)の位置でx方向とy方向に伸びる2つの直線の4つの直線で区切られる8つの領域を定義する。それら8つの領域のうち、どの領域に自ノード(PP)が存在するかを判断し、自ノード(PP)が存在する領域に割り当てられた第一優先と第二優先の2つの方向のうち、自ノード(PP)の出力ポートの占有情報によって決まる方向の隣接ノードにパケットを転送する。前記送信先ノード(to)の位置でx方向とy方向に伸びる2つの直線は、例えば送信先ノード(to)を通りメモリノードの配列方向に沿った2つの直線を含む。 As shown in FIG. 16, a straight line connecting the transmission destination node (to) and the transmission source node (from), a straight line orthogonal to the position of the transmission destination node (to), and x at the position of the transmission destination node (to). Eight regions defined by four straight lines of two straight lines extending in the direction and y direction are defined. Of these 8 areas, it is determined in which area the own node (PP) exists, and among the two directions of the first priority and the second priority assigned to the area where the own node (PP) exists, The packet is forwarded to the adjacent node in the direction determined by the occupation information of the output port of the own node (PP). The two straight lines extending in the x direction and the y direction at the position of the transmission destination node (to) include, for example, two straight lines passing through the transmission destination node (to) and along the arrangement direction of the memory nodes.
アルゴリズム4と比較したアルゴリズム5の優位性は次の通りである。アルゴリズム4では、送信先ノード(to)と送信元ノード(from)を結ぶ直線を対角線とする長方形により規定される領域の外でパケットを第二優先方向(bypass方向)に転送させた場合、送信先ノード(to)にパケットが到達するまでの転送回数が少なくとも1つ増加する。一方、アルゴリズム5の場合では転送回数の増加がない。
The superiority of
以上説明したように第3実施形態によれば、第1,第2実施形態に比べて渋滞発生確率を減少させることができ、多くのクライアントが同時に接続した場合でも、応答速度を維持することができるストレージ装置を提供可能である。 As described above, according to the third embodiment, it is possible to reduce the occurrence probability of traffic congestion as compared with the first and second embodiments, and to maintain the response speed even when many clients are connected simultaneously. It is possible to provide a storage device that can be used.
また、第1実施形態と同様に、メモリノードの論理アドレスと物理アドレスが一致するため、各メモリノードが経路指定表を管理する必要のない効率的なデータ転送方式を実現することができる。このため、ストレージ装置の拡張性に優れる、すなわちストレージ装置にメモリノードを容易に追加することが可能である。その他の構成及び効果は、前述した第1実施形態と同様である。 Further, as in the first embodiment, since the logical address and the physical address of the memory node coincide with each other, an efficient data transfer method that does not require each memory node to manage the routing table can be realized. For this reason, the expandability of the storage apparatus is excellent, that is, it is possible to easily add a memory node to the storage apparatus. Other configurations and effects are the same as those of the first embodiment described above.
[第4実施形態]
第4実施形態では、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置に接続された制御コンピュータからなるストレージシステムにおいて、パケット転送時の渋滞が発生しない、つまり渋滞フリーとなるシステムの運用条件について説明する。
[Fourth Embodiment]
In the fourth embodiment, in a storage system including a storage apparatus having a plurality of memory nodes having a transfer function and a control computer connected to the storage apparatus, no congestion occurs at the time of packet transfer, that is, no congestion occurs. The operating conditions will be described.
[1]ストレージシステムの構成
図17は、第4実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 17 is a diagram showing the configuration of the storage system of the fourth embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数の制御コンピュータ41を備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード11には、制御コンピュータ41が接続されている。
As illustrated, the storage system includes a
[2]ストレージシステムの渋滞発生フリーの運用条件
図17を参照して、ストレージシステムにおけるパケット転送シミュレーションの枠組みを説明する。ストレージ装置10に接続された制御コンピュータ41から送信されたリクエストパケットが送信先アドレスのメモリノードに到達するまでの過程、および目的のメモリノードから返送されたデータパケットが元の制御コンピュータ41に到着するまでの過程をシミュレートする。パケットの転送アルゴリズムとしては、図13を用いて説明したバイパス機能付ルーティングアルゴリズム(転送アルゴリズム3)を使用する。
[2] Storage System Congestion-Free Operation Conditions With reference to FIG. 17, a framework for packet transfer simulation in the storage system will be described. The process until the request packet transmitted from the
ストレージ装置10のメモリノード数をNnode=Nx×Nyとし、ストレージ装置10に接続されている制御コンピュータ数をNcとする。メモリノード間で1回のパケット転送が行われる時間を単位ステップ時間とする。制御コンピュータ41が、単位ステップ時間当たりに、リクエストパケットを送信する確率をRrとする。Rrは最大で1である。バイパス転送発生率をRbypass、渋滞発生率をRjamとする。
The number of memory nodes of the
バイパス転送発生率Rbypassは、メモリノードが1つのパケットの転送を試みた際に、バイパス転送により渋滞が回避された確率を示す。一方、渋滞発生率Rjamは、メモリノードが1つのパケットの転送を試みた際に、第一優先方向の出力ポートバッファのみならず、第二優先方向の出力ポートバッファも別のパケットにより占有されていたために、パケット転送を実施できず渋滞が発生し、パケットが滞留した確率を示す。また、負荷係数をRloadとする。負荷係数Rloadは、1つのメモリノードに存在しているパケット数の平均である。 The bypass transfer occurrence rate R bypass indicates a probability that traffic congestion is avoided by bypass transfer when the memory node attempts to transfer one packet. On the other hand, when the memory node tries to transfer one packet, the jam occurrence rate R jam is not only the output port buffer in the first priority direction but also the output port buffer in the second priority direction is occupied by another packet. Therefore, it indicates the probability that the packet transfer could not be performed and the traffic jam occurred and the packet stayed. Also, let R load be the load coefficient. The load coefficient R load is an average of the number of packets existing in one memory node.
図18は、バイパス転送発生率Rbypassと負荷係数Rloadの関係、ならびに渋滞発生率Rjamと負荷係数Rloadの関係を示す。多数のプロットは、メモリノード数Nnode、制御コンピュータ数をNc、確率Rrを様々に変化させた場合の結果を示している。 FIG. 18 shows the relationship between the bypass transfer occurrence rate R bypass and the load factor R load and the relationship between the traffic jam occurrence rate R jam and the load factor R load . Many plots show the results when the number of memory nodes is N node , the number of control computers is Nc, and the probability Rr is variously changed.
渋滞発生率Rjamは負荷係数Rloadが0.2より小さい場合ほぼゼロであり、渋滞フリーのシステム運用条件は負荷係数Rload<0.2であることが分かる。渋滞発生率Rjamは負荷係数Rloadが0.2以上になると増加し始める。しかし、負荷係数Rload=2であっても渋滞発生率Rjamは0.05程度であり、実用上ほとんど問題にならない。一方、渋滞発生率Rjamは負荷係数Rloadが2より大きくなると急増する。これは、負荷係数Rloadが2より大きくなると連鎖的に渋滞が発生するハングアップ現象が起こるためである。 The traffic jam occurrence rate R jam is almost zero when the load coefficient R load is smaller than 0.2, and it can be seen that the traffic congestion free system operating condition is the load coefficient R load <0.2. The congestion occurrence rate R jam starts to increase when the load coefficient R load becomes 0.2 or more. However, even if the load coefficient R load = 2, the traffic jam occurrence rate R jam is about 0.05, which poses no practical problem. On the other hand, the jam occurrence rate R jam increases rapidly when the load coefficient R load is larger than 2. This is because when the load coefficient R load is greater than 2, a hang-up phenomenon occurs in which traffic congestion occurs in a chained manner.
バイパス転送発生率Rbypassは負荷係数Rloadの増加に対して、渋滞発生率Rjamよりも一桁早く立ち上がっている。つまり、バイパス転送アルゴリズムは渋滞発生要件を一桁程度改善する効果がある。 The bypass transfer occurrence rate R bypass rises one digit earlier than the traffic jam occurrence rate R jam with respect to the increase of the load coefficient R load . In other words, the bypass transfer algorithm has an effect of improving the congestion occurrence requirement by about one digit.
次に、このシミュレーション結果に基づき、渋滞フリーもしくは渋滞発生が実用上問題とならない、制御コンピュータ数とメモリノード数の関係を求める。平均パケット滞在ステップ時間をSavgとする。平均パケット滞在ステップ時間Savgは、制御コンピュータ41がリクエストパケットを送信してからそのリクエストパケットが送信先アドレスのメモリノードに到達するまでのステップ時間Srequestと、目的のメモリノードから返送されたデータパケットが元の制御コンピュータに到着するまでのステップ時間Sdatの和である。ステップ時間SrequestとSdatは、渋滞が発生しない場合(Nx/2+Ny/2)である。従って、平均パケット滞在ステップ時間Savgは(Nx+Ny)であり、これはおよそ2√Nnodeである。
Next, based on the simulation results, the relationship between the number of control computers and the number of memory nodes is determined so that congestion free or occurrence of traffic congestion is not a practical problem. Let the average packet stay step time be Savg . Average packet staying step time S avg, the data control
一方、制御コンピュータ41が、1ステップ時間当たりに送信するリクエストパケットの総数は、Nc×Rrである。従って、ストレージシステム内に存在するパケット総数は平均でNc×Rr×2√Nnodeである。このため、Rload〜Nc×Rr×2√Nnode/Nnode=Nc×Rr×2/√Nnodeである。ここで、渋滞発生要件をRload limitとすると、好ましいシステム運用条件は、Rload<Rload limitとなる。従って、渋滞フリーもしくは渋滞発生が実用上問題とならない最大の制御コンピュータ数Ncmaxは、Ncmax<Rload limit×√Nnode/(Rr×2)となる。Rrは最大1であるから、より厳しい条件は、Ncmax<Rload limit×√Nnode/2である。
On the other hand, the total number of request packets that the
前述したように、パケット転送時に渋滞発生フリーの運用条件はRload limit=0.2であり、渋滞が実用上問題とならない運用条件はRload limit=2である。従って、好ましい最大の制御コンピュータ数NcmaxはNcmax<√Nnodeであり、より好ましくはNcmax<0.1×√Nnodeである。よって、Nc<√Nnodeという関係が成立している。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, the operation condition for free of occurrence of traffic congestion at the time of packet transfer is R load limit = 0.2, and the operation condition for which traffic congestion does not cause a practical problem is R load limit = 2. Therefore, the preferred maximum number of control computers Nc max is Nc max <√N node , more preferably Nc max <0.1 × √N node . Therefore, the relationship Nc <√N node is established. Other configurations and effects are the same as those of the first embodiment described above.
[第5実施形態]
第5実施形態は、図1に示した転送機能を有する複数のメモリノードを相互に接続したストレージ装置を備え、各メモリノードが分散処理機能を有する。
[Fifth Embodiment]
The fifth embodiment includes a storage device in which a plurality of memory nodes having a transfer function shown in FIG. 1 are connected to each other, and each memory node has a distributed processing function.
[1]ストレージ装置の構成
図19は、第5実施形態のストレージ装置の構成を示す図である。
[1] Configuration of Storage Device FIG. 19 is a diagram showing a configuration of a storage device according to the fifth embodiment.
図示するように、ストレージ装置は、図1に示した複数のメモリノード11を含むストレージ装置10を備えると共に、各メモリノード11はアドレス変換器42を備え、分散処理機能を有している。
As illustrated, the storage apparatus includes the
[2]ストレージ装置の分散処理機能
ここでは、図19を参照して、appleとorangeというキーワードを共に含むURLを見つけるAND検索処理を例に挙げて、分散処理機能を説明する。
[2] Distributed Processing Function of Storage Device Here, with reference to FIG. 19, the distributed processing function will be described by taking an AND search process for finding a URL including both the apple and orange keywords as an example.
ここで、メモリノード(1,3)と(4,3)がそれぞれappleとorangeの転置ファイルを保持しているものとする。転置ファイルとは、キーワードの一つ一つについて作成される索引ファイルで、例えばappleというキーワードに対応する転置ファイルにはappleを含む全URLのリストが格納される。 Here, it is assumed that the memory nodes (1, 3) and (4, 3) hold apple and orange transposed files, respectively. The transposed file is an index file created for each keyword. For example, the transposed file corresponding to the keyword apple stores a list of all URLs including apple.
ゲートウェイサーバは、AND検索命令をappleとorangeの転置ファイルを管理するメモリノードに送信する。転置ファイルを管理するメモリノードは、転置ファイルの内容をkey-value型データにマッピングする。ここで、keyとvalueはそれぞれURLとその転置ファイルのキーワードとする。 The gateway server transmits an AND search command to the memory node that manages the transposed files of apple and orange. The memory node that manages the transposed file maps the contents of the transposed file to key-value type data. Here, key and value are the URL and the keyword of the transposed file, respectively.
各メモリノードは、自らが保有するkey-value型データの各レコードについて、keyをアドレス変換器42によりアドレスに変換し、そのアドレスにvalueを含むパケットを送信する。アドレス変換器42は、あるルールに従い、自らkeyからアドレスを算出する場合もあるし、keyをアドレスに変換する機能を有するサーバに問い合わせて、keyに対応するアドレスを得ても良い。
Each memory node converts the key into an address by the
例えば、アドレス変換器42は、次のアドレッシングルールに従い、keyからアドレスを算出する。
For example, the
アドレス=hash(key) mod N
ここで、hash()は暗号学的なハッシュ関数、Nはストレージ装置10内のメモリノード数、mod NはNを法とする剰余演算を表す。
Address = hash (key) mod N
Here, hash () is a cryptographic hash function, N is the number of memory nodes in the
また例えば、アドレス変換器42は、keyに対応するアドレスを別のサーバに問い合わせ、そして別のサーバがコンシステントハッシングによりkeyをアドレスに変換して元のアドレス変換器42に回答する。
Further, for example, the
図19に示す例では、appleとorangeの転置ファイルは共にURL1を含むとし、URL1はアドレス(2,1)に変換されたものとする。この場合、メモリノード(2,1)が、URL1がAND検索式を満たすかどうかを判定する役割を担うことになる。メモリノード(2,1)には、valueがappleとorangeである2つのパケットが届く。このため、メモリノード(2,1)はURL1がAND検索条件を満たしていることが分かる。 In the example shown in FIG. 19, it is assumed that both the apple and orange transposition files include URL1, and URL1 is converted to the address (2, 1). In this case, the memory node (2, 1) plays a role of determining whether URL1 satisfies the AND search expression. Two packets whose values are apple and orange arrive at the memory node (2, 1). For this reason, the memory node (2, 1) knows that URL1 satisfies the AND search condition.
メモリノード(2,1)はその旨をクエリーを出したゲートウェイサーバに通知する。同様の判定を転置ファイルに記載されたURLすべてについて多数のメモリノードが行うことにより、クエリーを出したゲートウェイサーバはAND検索条件を満たしたURLのリストを得ることができる。 The memory node (2, 1) notifies the gateway server that issued the query to that effect. A large number of memory nodes make the same determination for all the URLs described in the transposed file, so that the gateway server that issued the query can obtain a list of URLs that satisfy the AND search condition.
以上のAND検索演算を、単一メモリノードで行う場合は、次のコードで示す演算を行う必要がある。
ここでは、appleとorangeの転置ファイルがそれぞれ格納するURLの数を、それぞれNappleとNorangeとし、==は一致演算を示す。メモリノードは一致演算を、Napple×Norange/2回だけ繰り返す必要がある。本実施形態のストレージ装置では、この一致演算を数多くのメモリノードで分散して実施することができる。 Here, the numbers of URLs stored in the transposed files of apple and orange are N apple and N orange , respectively, and == indicates a matching operation. The memory node needs to repeat the matching operation only N apple × N orange / 2 times. In the storage apparatus of the present embodiment, this coincidence operation can be carried out by being distributed among a large number of memory nodes.
以上説明したように第5実施形態によれば、第1実施形態に記載したストレージング機能だけでなく、分散処理(分散コンピューティング)機能も併せ持つことができる。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, according to the fifth embodiment, not only the storage function described in the first embodiment but also a distributed processing (distributed computing) function can be provided. Other configurations and effects are the same as those of the first embodiment described above.
[第6実施形態]
第6実施形態は、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置の一部のメモリノードが、隣接するメモリノード(以下、隣接ノード)と接続された入出力ポート(以下、隣接ポート)以外の入出力ポート(以下、非隣接ポート)を有し、前記一部のメモリノードが、前記非隣接ポートにより、制御コンピュータもしくは隣接しないメモリノード(以下、非隣接ノード)と接続された構成を有する。
[Sixth Embodiment]
In the sixth embodiment, a storage apparatus including a plurality of memory nodes having a transfer function, and an input / output port (hereinafter, referred to as an adjacent node) in which a part of the memory nodes of the storage apparatus is connected to an adjacent memory node (hereinafter referred to as an adjacent node). There are input / output ports (hereinafter referred to as non-adjacent ports) other than adjacent ports, and the some memory nodes are connected to a control computer or non-adjacent memory nodes (hereinafter referred to as non-adjacent nodes) by the non-adjacent ports. Have a configuration.
[1]ストレージシステムの構成
図20は、第6実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 20 is a diagram showing the configuration of the storage system of the sixth embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21A,21Bを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。ストレージ装置10の中央部に配置されたメモリノード(3,5)は、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、この非隣接ポートにはアダプタ22Bを介してゲートウェイサーバ21Bが接続されている。
As illustrated, the storage system includes a
[2]ストレージシステムのパケット転送
図20を参照して、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有するメモリノードを導入した効果について述べる。ここで、ストレージ装置10のx方向のメモリノード数をNx、y方向のメモリノード数をNyとする。
[2] Packet Transfer of Storage System The effect of introducing a memory node having an input / output port (non-adjacent port) other than the input / output port connected to the adjacent node will be described with reference to FIG. Here, the number of memory nodes in the x direction of the
ゲートウェイサーバの接続先がストレージ装置10の外周部に配置されたメモリノードに限定される場合、ゲートウェイサーバから目的のメモリノードに到達するまでのパケットの平均転送回数は、Nx/2+Ny/2である。
When the connection destination of the gateway server is limited to the memory nodes arranged on the outer periphery of the
一方、図20に示すように、ストレージ装置10の中央部に位置するメモリノード(3,5)の入出力ポート数を増やし、追加した入出力ポート(前記非隣接ポート)によって、メモリノード(3,5)をゲートウェイサーバ21Bと接続する。すると、ゲートウェイサーバ21Bから目的のメモリノードまでのパケットの平均転送回数は、Nx/4+Ny/4となる。
On the other hand, as shown in FIG. 20, the number of input / output ports of the memory node (3, 5) located in the central part of the
このように、ストレージ装置10内の一部のメモリノードの入出力ポート数を増やし、追加した入出力ポートでメモリノードとゲートウェイサーバを接続すると、パケットが目的のメモリノードに到達するまでの平均転送回数を低減させることができる。
As described above, when the number of input / output ports of some memory nodes in the
また、図21に示すように、追加した入出力ポートによってゲートウェイサーバに接続されたメモリノードをストレージ装置10に複数配置しても良い。すなわち、メモリノード(4,7)は隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、この非隣接ポートはアダプタ22Cを介してゲートウェイサーバ21Cに接続されている。
Further, as shown in FIG. 21, a plurality of memory nodes connected to the gateway server by the added input / output port may be arranged in the
さらに、ストレージ装置10内のメモリノードに接続された複数のゲートウェイサーバ21A,21B,21C,21D同士を、サーバとメモリノードとを接続する配線とは別の配線23で接続しても良い。また、ゲートウェイサーバ間、例えばゲートウェイサーバ21A,21B間にアダプタ22Eを接続しても良い。これにより、配線23を使用して、ゲートウェイサーバ間、及びゲートウェイサーバとメモリノード間でパケット転送を行うことができる。例えば、ゲートウェイサーバ21A→ゲートウェイサーバ21B→ゲートウェイサーバ21C→メモリノード(4,7)の順でパケットを転送してもよい。また、ゲートウェイサーバ21A→ゲートウェイサーバ21D→メモリノード(5,4))の順でパケットを転送してもよい。
Furthermore, the plurality of
以上説明したように第6実施形態によれば、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う際に、転送時間を短縮させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, according to the sixth embodiment, when packet transfer is performed between the gateway server and the memory node in the storage apparatus, the transfer time can be shortened. Other configurations and effects are the same as those of the first embodiment described above.
[第7実施形態]
第7実施形態は、転送機能を有するメモリノードを複数備えたストレージ装置と、ストレージ装置の一部のメモリノードが、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、前記一部のメモリノードが、前記非隣接ポートにより、制御コンピュータもしくは隣接しないメモリノード(非隣接ノード)と接続された構成を有する。
[Seventh Embodiment]
In the seventh embodiment, a storage device having a plurality of memory nodes having a transfer function, and a part of the storage device have input / output ports (non-adjacent ports) other than input / output ports connected to adjacent nodes. And a part of the memory nodes is connected to a control computer or a memory node that is not adjacent (non-adjacent node) by the non-adjacent port.
[1]ストレージシステムの構成
図22は、第7実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 22 is a diagram showing the configuration of the storage system of the seventh embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続されたゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(7,1)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。
As illustrated, the storage system includes a
ストレージ装置10の内部に配置されたメモリノード(3,3)、(3,8)、(8,3)、(8,8)は、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有する。非隣接ポート間は配線24により接続されている。例えば、メモリノード(3,3)と(3,8)間、メモリノード(3,8)と(8,8)間、メモリノード(8,8)と(8,3)間、及びメモリノード(8,3)と(3,3)間が、配線24により相互に接続されている。
Memory nodes (3, 3), (3, 8), (8, 3), (8, 8) arranged inside the
非隣接ノードに接続されたメモリノードは、物理的な位置によって決まるアドレスに加えて、非隣接ノードと接続されたメモリノード同士の相対的な物理位置によって決まる付加アドレスを持つ。非隣接ノードと接続されたメモリノードは、自ノード以外のメモリノードを宛先とするパケットを受信した場合、自ノードのパケットコントローラが、自ノードの付加アドレス、もしくは自ノード以外の、非隣接ノードに接続されたメモリノードの付加アドレスのいずれか一つを少なくとも含む情報に基づいてパケットの出力ポートを決定する。 A memory node connected to a non-adjacent node has an additional address determined by a relative physical position of memory nodes connected to the non-adjacent node, in addition to an address determined by a physical position. When a memory node connected to a non-adjacent node receives a packet destined for a memory node other than the self-node, the packet controller of the self-node will send an additional address of the self-node or a non-adjacent node other than the self-node. A packet output port is determined based on information including at least one of the additional addresses of the connected memory nodes.
[2]ストレージシステムのパケット転送
まず、隣接しないメモリノード(非隣接ノード)同士の接続が、ストレージ装置10内のパケット転送回数に与える影響について説明する。前述したように、一部の非隣接ノードが非隣接ポートによって相互接続されたストレージ装置を図22に、全メモリノードの入出力ポート数が同じで、非隣接ノード間の接続が無いストレージ装置を図23に示す。
[2] Packet Transfer in Storage System First, the influence of the connection between non-adjacent memory nodes (non-adjacent nodes) on the number of packet transfers in the
これらストレージ装置において、アドレス(7,0)のゲートウェイサーバ21Aから、メモリノード(7,8)にデータパケットを送付するケースを考える。
In these storage apparatuses, consider a case in which a data packet is sent from the
非隣接ノード間の接続が無い場合(図23)、最短のデータ転送経路は、ゲートウェイサーバ21A(7,0)→メモリノード(7,1)→(7,2)→(7,3)→(7,4)→(7,5)→(7,6)→(7,7)→(7,8)である。よって、ゲートウェイサーバ21Aからメモリノード(7,8)にパケット転送を行う際の(ゲートウェイサーバとメモリノード間、及びメモリノードとメモリノード間の)総パケット転送回数は8回である。
When there is no connection between non-adjacent nodes (FIG. 23), the shortest data transfer path is
他方、非隣接ノード間が相互接続されている場合(図22)、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(8,3)→(8,8)→(7,8)が最短経路になり、6回の転送でパケットをゲートウェイサーバ21Aから送信先メモリノード(7,8)に送ることができる。
On the other hand, when non-adjacent nodes are interconnected (FIG. 22),
このように、一部の隣接しないメモリノード同士を増設した入出力ポートによって接続し、それら入出力ポート間の接続配線を用いてパケット転送を行うことにより、送信先ノードに到達するまでのパケット転送回数を低減でき、転送時間を短縮することができる。 In this way, some non-adjacent memory nodes are connected by an additional input / output port, and packet transfer is performed using connection wiring between these input / output ports, so that packet transfer until reaching the destination node The number of times can be reduced and the transfer time can be shortened.
但し、図22に示すように、非隣接ノード間が接続されたストレージ装置では、メモリノードとメモリノード間、或いはメモリノードとゲートウェイサーバ21A間の物理的な距離と、それらのデータ転送上の距離が必ずしも一致しない点に注意が必要である。
However, as shown in FIG. 22, in a storage apparatus in which non-adjacent nodes are connected, the physical distance between the memory node and the memory node or between the memory node and the
前述したように、アドレス(7,0)のゲートウェイサーバ21Aから、メモリノード(7,8)のにデータパケットを送付する場合において、非隣接ノード間の接続が存在しないストレージ装置(図23)では、パケットの最低総転送回数(8回)は、パケット送信元と送信先の物理的な位置で決まるアドレス(ゲートウェイサーバ21A(7,0)、メモリノード(7,8))の差に等しい。
As described above, when a data packet is sent from the
他方、前述したように、非隣接ノード間が接続された図22のストレージ装置では、同じ物理アドレスを有するゲートウェイサーバ21A(7,0)〜送信先メモリノード(7,8)間のパケット通信を、6回の転送で行うことができる。このように、非隣接ノード間が接続されたストレージ装置では、物理的な最短距離と、データ転送上の最短距離が異なるため、物理的な位置によって決まるアドレスのみでパケットの最短転送経路を決定することはできない。
On the other hand, as described above, in the storage apparatus of FIG. 22 in which non-adjacent nodes are connected, packet communication between the
そこで、非隣接ノード間が接続されたストレージ装置では、これら非隣接ノードに接続されたメモリノード同士の相対的な物理位置を反映したアドレス(以下、サブアドレスと記す)を非隣接ノードに接続されたメモリノードに追加付与し、全メモリノードに与えられた、物理位置を反映したアドレス(以下、メインアドレスと記す)とサブアドレスの両者からデータ転送経路・パケット転送先を決定すれば、前述したアルゴリズムに従って効率良くパケット転送を行うことができる。なお、図22では、メインアドレスを丸括弧で、サブアドレスを四角括弧で表示している。また、前記非隣接ノードに接続されたメモリノードは、例えば図22に示したメモリノード(3,3)、(3,8)、(8,3)、(8,8)を指す。 Therefore, in storage devices connected between non-adjacent nodes, addresses reflecting the relative physical positions of memory nodes connected to these non-adjacent nodes (hereinafter referred to as subaddresses) are connected to non-adjacent nodes. If the data transfer route / packet transfer destination is determined from both the sub-address and the address (hereinafter referred to as the main address) that is given to all memory nodes and reflects the physical location, it is given to all the memory nodes according to the algorithm described above. Packet transfer can be performed efficiently. In FIG. 22, the main address is displayed in parentheses and the sub address is displayed in square brackets. The memory nodes connected to the non-adjacent nodes indicate, for example, the memory nodes (3, 3), (3, 8), (8, 3), (8, 8) shown in FIG.
但し、前述したように効率良くパケット転送を行うためには、パケットのヘッダー部に必要なアドレス情報が全て書かれていること、転送先決定に用いられる、パケットの送信元アドレス及び送信先アドレスを適宜書き換えること等が必要である。これらについて、次に説明する。 However, as described above, in order to perform packet transfer efficiently, all the necessary address information is written in the header part of the packet, and the source address and destination address of the packet used for determining the transfer destination are set. It is necessary to rewrite as appropriate. These will be described next.
非隣接ノードに接続されたメモリノードを有するストレージシステムでパケット転送を行う場合、望ましいパケットのヘッダー部のアドレス情報の一例を図24に示す。 FIG. 24 shows an example of address information of a header portion of a desired packet when packet transfer is performed in a storage system having a memory node connected to a non-adjacent node.
ここで、最終送信先ノードと送信元ノードは、それぞれパケットを最終的に届ける宛先のノードと、パケットを最初に作成・発信するノードを意味する。他方、一時送信先ノードアドレスと一時送信元ノードアドレスは、各メモリノードでパケット転送先決定に用いられるアドレスであり、パケットの通信過程で書き換えられる。このときの書き換えルールについては後述する。 Here, the final transmission destination node and the transmission source node mean a destination node that finally delivers the packet and a node that first creates and transmits the packet. On the other hand, the temporary transmission destination node address and the temporary transmission source node address are addresses used for determining the packet transfer destination in each memory node, and are rewritten in the packet communication process. The rewrite rule at this time will be described later.
なお、一時送信先/送信元アドレスのタイプは、そのアドレスが、メインアドレスとサブアドレスのどちらであるか区別するためのものである。また、第1中継ノード、第2中継ノードは、パケット送信時に経由すべき非隣接ノードに接続されたメモリノードであり、送信元ノードに最も近い非隣接ノードに接続されたメモリノードが第1中継ノード、最終送信先ノードに最も近い非隣接ノードに接続されたメモリノードが第2中継ノードである。 The type of temporary transmission destination / transmission source address is used to distinguish whether the address is a main address or a sub address. Further, the first relay node and the second relay node are memory nodes connected to non-adjacent nodes that should be routed at the time of packet transmission, and the memory node connected to the non-adjacent node closest to the transmission source node is the first relay node. The memory node connected to the non-adjacent node closest to the node and the final destination node is the second relay node.
図22に示したように、隣接しないメモリノードと一部のメモリノードが接続されたストレージ装置を含むシステムで、非隣接ノード間の接続を経由したパケット転送を行う場合、パケットを受信したメモリノードにおけるパケット転送先決定やパケットのヘッダー部の修正等は、例えば次のようなルールで行うことが好ましい。 As shown in FIG. 22, in a system including a storage apparatus in which a non-adjacent memory node and a part of memory nodes are connected, when performing packet transfer via connection between non-adjacent nodes, the memory node that received the packet It is preferable to perform packet transfer destination determination, packet header correction, and the like in FIG.
(a)追加の入出力ポート(非隣接ポート)を有しないメモリノードがパケットを受信した場合、パケットコントローラがパケットのヘッダー部に記録されたアドレス情報を調べ、
(i) 最終送信先ノードのアドレスが自ノードのアドレスと一致する場合には、パケット転送を行わない。
(A) When a memory node that does not have an additional input / output port (non-adjacent port) receives a packet, the packet controller examines address information recorded in the header of the packet,
(i) If the address of the final destination node matches the address of its own node, packet transfer is not performed.
(ii) 最終送信先ノードのアドレスが自ノードのアドレスと異なる場合には、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、隣接したメモリノードにパケットを送信する。 (ii) If the address of the final destination node is different from the address of its own node, determine the transfer destination by referring to the temporary source node, temporary destination node, and the main address of its own node, and Send the packet.
(b)非隣接ノードに接続されたメモリノードがパケットを受信した場合、パケットコントローラはパケットのヘッダー部に記録されたアドレス情報を調べ、
(i) 自ノードのアドレスが最終送信先ノードのアドレスと一致する場合には、パケット転送を行わない。
(B) When the memory node connected to the non-adjacent node receives the packet, the packet controller examines the address information recorded in the header part of the packet,
(i) If the address of the own node matches the address of the final destination node, packet transfer is not performed.
(ii) 自ノードのアドレスが、最終送信先ノードのアドレスと異なり、
(1) 第1中継ノードのアドレスと一致する場合は、パケットのヘッダー部の一時送信先、一時送信元のアドレスを、それぞれ第2中継ノードのサブアドレス、自ノードのサブアドレスに書き換える。さらに、一時送信元ノード、一時送信先ノード、自ノードのサブアドレスを参照して転送先を決定し、他の非隣接ノードに接続されたメモリノードにパケットを送信する。
(ii) The address of its own node is different from the address of the final destination node,
(1) If it matches the address of the first relay node, the temporary transmission destination and temporary transmission source addresses in the header of the packet are rewritten to the subaddress of the second relay node and the subaddress of the own node, respectively. Further, the transfer destination is determined with reference to the subaddress of the temporary transmission source node, temporary transmission destination node, and own node, and the packet is transmitted to the memory node connected to another non-adjacent node.
(2) 第2中継ノードのアドレスと一致する場合は、一時送信先アドレスを最終送信先ノードのメインアドレス、一時送信元アドレスを自ノードのメインアドレスに変更する。さらに、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、隣接した他のメモリノードにパケットを転送する。 (2) If it matches the address of the second relay node, the temporary transmission destination address is changed to the main address of the final transmission destination node, and the temporary transmission source address is changed to the main address of the own node. Further, the transfer destination is determined with reference to the main address of the temporary transmission source node, temporary transmission destination node, and own node, and the packet is transferred to another adjacent memory node.
(3) 第1中継ノード、第2中継ノードのいずれのアドレスとも異なり、さらにパケットのヘッダー部に書かれた一時送信先アドレスと一時送信元アドレスがサブアドレスである場合には、一時送信元ノード、一時送信先ノード、自ノードのサブアドレスを参照して転送先を決定し、他の非隣接ノードに接続されたメモリノードにパケットを転送する。 (3) When the temporary transmission destination address and the temporary transmission source address written in the header part of the packet are subaddresses, unlike the addresses of the first relay node and the second relay node, the temporary transmission source node, The transfer destination is determined with reference to the subaddress of the temporary transmission destination node and its own node, and the packet is transferred to the memory node connected to another non-adjacent node.
(4) 第1中継ノード、第2中継ノードのいずれのアドレスとも異なり、さらに一時送信先アドレスと一時送信元アドレスがメインアドレスである場合には、一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して転送先を決定し、他の隣接したメモリノードにパケットを転送する。 (4) Unlike the addresses of the first relay node and the second relay node, and when the temporary transmission destination address and the temporary transmission source address are main addresses, the temporary transmission source node, the temporary transmission destination node, and the own node The transfer destination is determined with reference to the main address of the packet, and the packet is transferred to another adjacent memory node.
次に、非隣接ノード間の接続を併用してパケット送信を行う例として、図22に示したシステムで、クライアントがゲートウェイサーバ21Aを介してストレージ装置にファイルを書き込む手続きを説明する。
Next, as an example of performing packet transmission using a connection between non-adjacent nodes together, a procedure for a client to write a file to the storage device via the
図25は、図22に示したストレージシステムにおける書き込み動作を示す図である。 FIG. 25 is a diagram showing a write operation in the storage system shown in FIG.
まず、クライアントは、ファイルとファイルIDとをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。
First, the client transmits a file and a file ID to the
次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータに分割し、分割した各データに分割データIDを割り振る。さらに、ファイルIDと分割データIDをファイルテーブルに書き込む。分割データIDは、分割されたデータを一意に特定できる識別子である((2)参照)。
Next, the
次に、ゲートウェイサーバ21Aは、分割データIDの情報に基づき、分割データを書き込む書き込み先のメモリノード(以下、書き込みノード)のアドレスを決定する(図22ではメインアドレス(7,8)のメモリノード)。
Next, the
次に、下記手順で、ゲートウェイサーバ21Aから書き込みノードにパケットを転送する際に、通信時間(パケット転送回数)が最小となる経路を求める:
1. ゲートウェイサーバ21Aに最も近い、非隣接ノードに接続されたメモリノード(第1中継ノード)と、書き込みノードに最も近接した非隣接ノードに接続されたメモリノード(第2中継ノード)のそれぞれのアドレスを調べる。図22で(7,8)に書き込む場合、ゲートウェイサーバ21Aと書き込みノードのそれぞれの最近接の非隣接ノードに接続されたメモリノードは、メインアドレス(8,3)、(8,8)のメモリノードである。
Next, in the following procedure, when a packet is transferred from the
1. Each of a memory node (first relay node) connected to a non-adjacent node closest to the
2. 非隣接ノード間の接続を含む最短経路と、含まない最短経路を求める。図22でメモリノード(7,8)に書込む場合、前者は、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(8,3)([2,1])→(8,8)([2,2])→(7,8)であり、後者は、ゲートウェイサーバ21A→メモリノード(7,1)→(7,2)→(7,3)→(7,4)→(7,5)→(7,6)→(7,7)→(7,8)である。
2. Find the shortest path that includes connections between non-adjacent nodes and the shortest path that does not. When writing to the memory node (7, 8) in FIG. 22, the former is the
3. 隣接ノードとのみ接続されたメモリノード間の経路についてはメインアドレスで、非隣接ノードに接続されたメモリノード間の経路は、サブアドレスを元にして、それぞれの経路でパケット送信を行う際に生じる転送回数を算出する。図22でメモリノード(7,8)に書き込む場合、非隣接ノードに接続されたメモリノードを介する最短経路の転送回数は6回であり、非隣接ノードに接続されたメモリノードを介さない最短経路では、転送回数は8回である。 3. The route between memory nodes connected only to adjacent nodes is the main address, and the route between memory nodes connected to non-adjacent nodes is based on sub-addresses when packets are sent on each route. Calculate the number of transfers that occur. When writing to the memory node (7, 8) in FIG. 22, the number of transfers of the shortest path through the memory node connected to the non-adjacent node is 6, and the shortest path not through the memory node connected to the non-adjacent node Then, the number of transfers is eight.
4. パケット転送回数が小さい方の経路をデフォルト経路として決定する((3)参照)。以下では、非隣接ノード間の接続を含む経路の方が、含まない経路よりもパケット転送回数が少ないケースについて説明する。 4. Determine the route with the smaller number of packet transfers as the default route (see (3)). Hereinafter, a case will be described in which a route including a connection between non-adjacent nodes has a smaller number of packet transfers than a route not including the connection.
・アドレスデータ、書き込み命令等からなるヘッダー部を、書き込みデータに付加した書き込みパケットをゲートウェイサーバ21Aで作成する。なお、パケットのヘッダー部に記録されたアドレス情報の一時送信先は第1中継ノードのメインアドレス(図22では(8,3))とし、一時送信元はパケット送信元のメインアドレス(図22では(7,0))とする。
The
・作成した書き込みパケットを、ゲートウェイサーバ21Aからゲートウェイサーバ21Aに接続されたメモリノードに転送する((4)参照)。
Transfer the created write packet from the
・前述したアルゴリズムに従って、一時送信先メモリノード(図22ではメインアドレス(8,3)の第1中継ノード)に到達するまで、メモリノード間で書き込みパケットの転送を行う(各メモリノードは一時送信先、一時送信元、自ノードのメインアドレスを参照して転送先を決定する)((5)参照)。 In accordance with the algorithm described above, write packets are transferred between the memory nodes until the temporary destination memory node (the first relay node of the main address (8, 3) in FIG. 22) is reached (each memory node is temporarily transmitted). The transfer destination is determined by referring to the destination, the temporary transmission source, and the main address of the own node) (see (5)).
・書き込みパケットを受け取った第1中継ノードは、パケットのヘッダー部を読み、パケットの最終送信先ノードが他のメモリノードであり、第1中継ノードが自ノードであることから、一時送信先を第2中継ノードのサブアドレス(図22では[2,2])、一時送信元を自ノードのサブアドレス(図22では[2,1]))に変更する((6)参照)。さらに、隣接した非隣接ノードに接続されたメモリノードにパケットを転送する((7)参照)。 The first relay node that has received the write packet reads the header of the packet, and since the final destination node of the packet is another memory node and the first relay node is its own node, 2 The sub-address of the relay node ([2, 2] in FIG. 22) and the temporary transmission source are changed to the sub-address of the own node ([2, 1] in FIG. 22) (see (6)). Further, the packet is transferred to the memory node connected to the adjacent non-adjacent node (see (7)).
・前述したアルゴリズムに従い、一時送信先メモリノードである第2中継ノードに到達するまで、非隣接ノードに接続されたメモリノード間で書き込みパケットの転送を行う(各メモリノードは一時送信先、一時送信元、自ノードのサブアドレスを参照して転送先を決定する)。 In accordance with the algorithm described above, write packets are transferred between memory nodes connected to non-adjacent nodes until reaching the second relay node which is a temporary transmission destination memory node (each memory node is a temporary transmission destination, temporary transmission The forwarding destination is determined by referring to the subaddress of the original node and the own node).
・書き込みパケットを受信した第2中継ノードは、パケットのヘッダー部を読み、最終送信先が他のメモリノードで、第2中継ノードが自ノードであることから、一時送信先を最終送信先ノードのメインアドレス(図22では書き込みノード(7,8))、一時送信元を自ノードのメインアドレス(図22では(8,8))に変更する((8)参照)。さらに、隣接したメモリノードに書き込みパケットを転送する。 The second relay node that has received the write packet reads the header part of the packet, and since the final transmission destination is another memory node and the second relay node is its own node, the temporary transmission destination is the final transmission destination node. The main address (write node (7, 8) in FIG. 22) and the temporary transmission source are changed to the main address of the own node ((8, 8) in FIG. 22) (see (8)). Further, the write packet is transferred to the adjacent memory node.
・一時送信元ノード、一時送信先ノード、自ノードのメインアドレスを参照して、前述したアルゴリズムによりメモリノード間で転送が繰り返され、最終送信先である書き込みノード(図8ではメインアドレス(7,8))に書き込みパケットが到達する((9)参照)。 With reference to the main addresses of the temporary transmission source node, temporary transmission destination node, and own node, the transfer is repeated between the memory nodes by the algorithm described above, and the write node (the main address (7, The write packet arrives at 8)) (see (9)).
・パケットを受信した書き込みノードは、最終送信先が自ノードであることから、パケットを転送せず、ヘッダー部のアドレス情報や書き込みデータ等を自ノードのメモリ16に書き込む((10)参照)。その後、宛先や中継先を逆にした書き込み完了報告のパケットを作成する。このパケットでは、発信元ノードを書き込みノードの(7,8)とし、最終送信先ノードをゲートウェイサーバ21Aの(7,0)、第1中継ノードをメインアドレス(8,8)(サブアドレス[2,2])のノード、第2中継ノードをメインアドレス(8,3)(サブアドレス[2,1])のノードとする。その後、書き込み完了報告のパケットを前述した手順と同様の手続きで、ゲートウェイサーバ21Aへ返信する((11)参照)。全分割データの書き込みが終わった後、ゲートウェイサーバ21Aはクライアントにファイル書き込みの終了報告を行う。
The writing node that has received the packet does not transfer the packet because the final transmission destination is its own node, and writes address information, write data, and the like of the header portion to the
前述した例では、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、隣接しないメモリノード同士が非隣接ポートによって相互接続されたメモリノードを有するストレージ装置にクライアントがファイルを書き込む手順を説明したが、メモリノードに書き込まれたデータの読み出し・消去やメモリの空き容量確認などのため、読み出し命令・消去命令や空き容量の返信命令等をゲートウェイサーバからストレージ装置のメモリノードに送る場合も、非隣接ノード間の接続を介して通信を行うことでパケット転送時間を短縮することができる。さらに、読み出したデータや問合せ結果などをメモリノードからゲートウェイサーバに送る場合などにおいても、非隣接ノード間の接続を介して通信を行うことでパケット転送時間を短縮することができる。 In the above-described example, a client is connected to a storage apparatus having an input / output port (non-adjacent port) other than an input / output port connected to an adjacent node and having memory nodes in which non-adjacent memory nodes are interconnected by non-adjacent ports. Explained the procedure for writing files, but in order to read / erase data written to the memory node and to check the free space of the memory, etc., a read command / erase command and a free space return command are sent from the gateway server to the storage device. Also in the case of sending to the memory node, the packet transfer time can be shortened by performing communication through the connection between the non-adjacent nodes. Furthermore, even when the read data or inquiry results are sent from the memory node to the gateway server, the packet transfer time can be shortened by performing communication via the connection between the non-adjacent nodes.
前述したように、隣接しないノード間の接続を介してデータ送信を行うことでパケットの平均転送回数を減らすことが可能である。なお、追加入出力ポート(非隣接ポート)によって非隣接ノードと接続されるメモリノードは、ストレージ装置内で均一に分散して配置されていることが好ましい。 As described above, it is possible to reduce the average number of packet transfers by performing data transmission through connections between non-adjacent nodes. Note that the memory nodes connected to the non-adjacent nodes by the additional input / output ports (non-adjacent ports) are preferably arranged uniformly distributed in the storage apparatus.
例えば、10×10のメモリノードから構成されている図22に示したストレージ装置では、5×5のメモリノードを含む4つの領域に分割(境界を点線で示す)し、各領域の中心に位置するメモリノード(3,3)、(8,3)、(3,8)、(8,8)同士を増設ポート(非隣接ポート)で接続している。この場合には、どの5×5のメモリノードブロックにも、1つの追加入出力ポート(非隣接ポート)を有するメモリノードが存在する。 For example, in the storage apparatus shown in FIG. 22 composed of 10 × 10 memory nodes, the area is divided into four areas including 5 × 5 memory nodes (the boundary is indicated by a dotted line) and positioned at the center of each area. The memory nodes (3, 3), (8, 3), (3, 8), and (8, 8) are connected to each other by extension ports (non-adjacent ports). In this case, there is a memory node having one additional input / output port (non-adjacent port) in any 5 × 5 memory node block.
このように、含まれるメモリノード数が同じであるような、複数の領域にストレージ装置を分割し、その中心のメモリノードを追加入出力ポート付きのメモリノードとして相互接続することで、追加入出力ポート付きのメモリノードをストレージ装置内で均一に分散配置させることができる。 In this way, the storage device is divided into multiple areas where the number of included memory nodes is the same, and the central memory node is interconnected as a memory node with an additional input / output port. Memory nodes with ports can be uniformly distributed in the storage apparatus.
なお、例えば、al×bmのノードから構成されたストレージ装置をl×mずつの領域ab個に分割し、各領域の中心に位置するメモリノード同士を追加入出力ポートにより接続する場合、(cl+d、em+f)(a≧c≧0、b≧e≧0、l≧d≧0、m≧f≧0)で表わされるメモリノードに最も近く、各領域の中心に位置する追加入出力ポート付きのメモリノードアドレスは、(cl+round(l/2,0)、em+round(m/2,0))で表わされる。(round(A,0)は、Aの小数点以下を四捨五入する関数)。 For example, when a storage apparatus composed of nodes of al × bm is divided into a × b areas of l × m, and memory nodes located at the center of each area are connected by an additional input / output port, (cl + d , Em + f) (a ≧ c ≧ 0, b ≧ e ≧ 0, l ≧ d ≧ 0, m ≧ f ≧ 0) with an additional input / output port located at the center of each region. The memory node address is represented by (cl + round (l / 2, 0), em + round (m / 2, 0)). (Round (A, 0) is a function that rounds off the decimal point of A).
さて、ストレージ装置において、隣接しない一部のメモリノード間を接続することで生じる課題は、その接続を介して通信を行うパケットの数が増えると、パケット通信の渋滞が生じやすくなることである。 In the storage apparatus, a problem caused by connection between some memory nodes that are not adjacent to each other is that packet communication congestion is likely to occur as the number of packets that are communicated via the connection increases.
これに対して、隣接したメモリノード間よりも、隣接しないメモリノード間のパケット通信速度を高くすることで、このパケット転送の渋滞を緩和させることができる。但し、この場合には、ゲートウェイサーバにおいて、パケット転送のデフォルト経路決定時に行う、非隣接ノード間の接続を介する最短経路と、非隣接ノード間の接続を経由しない最短経路の総パケット通信時間の算出に注意が必要である。総パケット通信時間は、メモリノード間の通信時間とパケット転送回数の積に等しい。従って、隣接したメモリノード間と隣接しないメモリノード間のデータ通信速度が等しい場合には、前述したように、各経路の転送回数でデータ通信時間を比較することができる。しかし、パケット送信速度が異なる場合には、転送回数だけで総パケット通信時間を比べることができない。 In contrast, by increasing the packet communication speed between non-adjacent memory nodes as compared to between adjacent memory nodes, this packet transfer congestion can be alleviated. However, in this case, the gateway server calculates the total packet communication time for the shortest route through the connection between non-adjacent nodes and the shortest route through the connection between non-adjacent nodes, which is performed when determining the default route for packet transfer. It is necessary to pay attention to. The total packet communication time is equal to the product of the communication time between memory nodes and the number of packet transfers. Therefore, when the data communication speeds between adjacent memory nodes and non-adjacent memory nodes are equal, as described above, the data communication times can be compared with the number of transfers of each path. However, if the packet transmission rates are different, the total packet communication time cannot be compared only by the number of transfers.
通信速度の逆数(速度=距離/時間であるから、これは通信時間に比例)と転送回数の積を参照することで、非隣接ノード同士の接続を経由する経路と、非隣接ノード同士の接続を経由しない経路の総パケット通信時間を正確に比較することができる。しかし、前述した例のように、隣接したノード間の接続と非隣接ノード間の接続がパケット通信経路で混在している場合、この計算は煩雑なものとなる。 By referring to the product of the reciprocal of the communication speed (speed = distance / time, so this is proportional to the communication time) and the number of transfers, the path via the connection between non-adjacent nodes and the connection between non-adjacent nodes It is possible to accurately compare the total packet communication time of routes that do not pass through. However, when the connection between adjacent nodes and the connection between non-adjacent nodes are mixed in the packet communication path as in the example described above, this calculation becomes complicated.
隣接ノード間と非隣接ノード間でパケット通信速度が異なるストレージ装置では、付与するアドレスのステップをパケット通信速度に逆比例させ、そのアドレス差を転送回数と見なすのも一つの方法である。 In a storage apparatus in which the packet communication speed is different between adjacent nodes and non-adjacent nodes, one method is to consider the address step to be given inversely proportional to the packet communication speed and regard the address difference as the number of transfers.
隣接ノード間よりも非隣接ノード間の方が、パケット通信速度が10倍高い場合のアドレス付与例を図26に示す。図26では、隣接しないノードと接続されたメモリノードには、それら物理位置を反映させながら、あるメモリノードと、そのメモリノードと接続された非隣接ノードとの間で1ずつ異なるようにサブアドレスを付与している(四角括弧で表示)。さらに、図26に示す全メモリノードには、互いの物理的な位置関係を反映させながら、隣り合うメモリノード間で、10ずつ異なるメインアドレスを与えている(丸括弧で表示)。 FIG. 26 shows an example of address assignment when the packet communication speed is 10 times higher between non-adjacent nodes than between adjacent nodes. In FIG. 26, the memory nodes connected to the non-adjacent nodes reflect sub-addresses so that they differ one by one between a certain memory node and a non-adjacent node connected to the memory node while reflecting their physical positions. Is given (indicated by square brackets). Further, all the memory nodes shown in FIG. 26 are given 10 different main addresses between adjacent memory nodes (indicated by parentheses) while reflecting the physical positional relationship with each other.
このようなストレージ装置で、非隣接ノードに接続されたメモリノード間でパケット送信を行う場合は各メモリノードのサブアドレスの差を計算し、隣接メモリノード間でパケット送信を行う場合はメインアドレスの差を計算し、それらを転送回数と見なす。転送回数の算出ルールをこのように定めれば、隣接ノード間と非隣接ノード間で接続速度が異なる場合においても、転送回数だけでパケット通信時間を見積もり、比較することができる。 In such a storage device, when packet transmission is performed between memory nodes connected to non-adjacent nodes, the sub-address difference of each memory node is calculated, and when packet transmission is performed between adjacent memory nodes, the difference between main addresses is calculated. And consider them as the number of transfers. If the rule for calculating the number of transfers is determined in this way, the packet communication time can be estimated and compared only by the number of transfers even when the connection speed is different between adjacent nodes and non-adjacent nodes.
以上説明したように第7実施形態によれば、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う際に、転送時間を短縮させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, according to the seventh embodiment, when packet transfer is performed between the gateway server and the memory node in the storage device, the transfer time can be shortened. Other configurations and effects are the same as those of the first embodiment described above.
[第8実施形態]
第8実施形態では、パケットの平均転送回数を減らすため、ゲートウェイサーバとストレージ装置との間にスイッチングリレーを追加したストレージシステムについて説明する。
[Eighth Embodiment]
In the eighth embodiment, a storage system will be described in which a switching relay is added between the gateway server and the storage apparatus in order to reduce the average number of packet transfers.
[1]ストレージシステムの構成
図27は、第8実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 27 is a diagram showing the configuration of the storage system of the eighth embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、ストレージ装置10に接続されたスイッチングリレー81、及びスイッチングリレー81に接続されたゲートウェイサーバ21Aを備える。
As illustrated, the storage system includes a
ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。スイッチングリレー81は、ストレージ装置10の一端側(図27において左端)に配置されたメモリノード(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)の全てに接続されている。スイッチングリレー81には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。
As shown in FIG. 1, the
スイッチングリレー81は、パケットのヘッダー部に記録されたアドレス情報に従い、受信したパケットを指定された送信先ノードに転送する。スイッチングリレー81には、ストレージ装置内のメモリノードとは異なるアドレスが付与されている(図27では四角括弧で表示)。
The switching
[2]ストレージシステムのパケット転送
第8実施形態のストレージシステムにおいてパケットを転送する手順について説明する。
[2] Packet Transfer of Storage System A procedure for transferring packets in the storage system of the eighth embodiment will be described.
ゲートウェイサーバ21Aから送り出されたパケットは、アダプタ22Aを通ってスイッチングリレー81に入る。スイッチングリレー81に入ったパケットは、スイッチングリレー81と接続された、メモリノード(1,1)、(1,2)、(1,3)、(1,4)、(1,5)、(1,6)、(1,7)、(1,8)、(1,9)のいずれか一つに送られ、その後、送信先アドレスのメモリノードまで転送される。
The packet sent out from the
逆に、ストレージ装置10内のメモリノードから発信されたパケットは、メモリノード(1,1)〜(1,9)のいずれか一つのメモリノードに送られ、スイッチングリレー81とアダプタ22Aを介してゲートウェイサーバ21Aに転送される。
On the contrary, the packet transmitted from the memory node in the
図27に示したシステムにおいて、ゲートウェイサーバ21Aからスイッチングリレー81とメモリノード(1,9)を介して、メモリノード(5,9)にパケットを送る場合は以下となる。最短経路はスイッチングリレー81→メモリノード(1,9)→(2,9)→(3,9)→(4,9)→(5,9)で、ストレージ装置10内の転送回数は4回である。
In the system shown in FIG. 27, a packet is sent from the
他方、図28に示すように、スイッチングリレー81を介さずに、ゲートウェイサーバ21Aがストレージ装置10のメモリノード(1,4)に接続されているシステムでは、ゲートウェイサーバ21Aからメモリノード(5,9)にパケットを送る場合は以下となる。ゲートウェイサーバ21A→メモリノード(1,4)→(1,5)→(1,6)→(1,7)→(1,8)→(1,9)→(2,9)→(3,9)→(4,9)→(5,9)が最短経路の一つであり、ストレージ装置10内でパケットの転送は最低9回必要である。
On the other hand, as shown in FIG. 28, in a system in which the
このように、ゲートウェイサーバ21Aとストレージ装置10との間にスイッチングリレー81を導入すると、パケットの転送回数を減らし、転送時間を短縮することができる。
As described above, when the switching
なお、ゲートウェイサーバ21Aからストレージ装置10にパケットを送信するケースについて説明したが、ストレージ装置10内のメモリノードに保存されたデータをゲートウェイサーバ21Aに送信する場合においても、ゲートウェイサーバ21Aとストレージ装置10との間にスイッチングリレー81が存在するシステム(図27)の方が、アダプタを介してゲートウェイサーバ21Aとストレージ装置10が直接接続されたシステム(図28)よりも、一般に、パケットの平均転送回数が少なく、転送時間が短い。
The case of transmitting a packet from the
但し、スイッチングリレーを導入したシステムにおけるパケット転送回数は、スイッチングリレーとストレージ装置間でパケットの送受信を行う際に中継するメモリノードに依存する。例えば、前述したように、図27に示したシステムでゲートウェイサーバ21Aがメモリノード(5,9)との間でパケット転送を行う場合、中継するメモリノードがメモリノード(1,9)であれば、ストレージ装置10内の転送回数は最低4回である。しかし、他のメモリノードを中継した場合には、5回以上の転送が必要である。
However, the number of packet transfers in a system in which a switching relay is introduced depends on the memory node that relays when transmitting and receiving packets between the switching relay and the storage device. For example, as described above, when the
このように、パケットの転送回数を最小限にするためには、スイッチングリレーに直接接続されたメモリノードのうち、送信先ノードに最も近いメモリノードを中継メモリノードとして選択することが重要である。パケット転送時間が最短となる、中継メモリノードのアドレス算出手順については後述する。 Thus, in order to minimize the number of packet transfers, it is important to select the memory node closest to the transmission destination node as the relay memory node among the memory nodes directly connected to the switching relay. The procedure for calculating the address of the relay memory node that will minimize the packet transfer time will be described later.
なお、スイッチングリレーを介さずにゲートウェイサーバとストレージ装置が接続されたシステムにおいて、ゲートウェイサーバとストレージ装置内のメモリノードとの間でパケット転送を行う場合、送信元と送信先は、ゲートウェイサーバ、メモリノードのいずれかであり、これはパケット転送が行われている間変更されない。 In a system in which a gateway server and a storage device are connected without using a switching relay, when packet transfer is performed between the gateway server and a memory node in the storage device, the transmission source and the transmission destination are the gateway server, the memory Any of the nodes, which is not changed while packet forwarding is taking place.
他方、スイッチングリレーを介してゲートウェイサーバとストレージ装置が接続されたシステムにおいて、パケット転送を行う場合には、まず中継メモリノードを宛先としてパケット転送が行われる。パケットが中継メモリノードに到達した後は、メモリノード(ゲートウェイサーバからメモリノードにパケットを送信する場合)或いはスイッチングリレー(メモリノードからゲートウェイサーバにパケット送信する場合)を送信先としてパケット転送が行われる。すなわち、パケットが中継メモリノードに到達する前後で、パケットの送信先の変更が必要である。 On the other hand, when performing packet transfer in a system in which a gateway server and a storage device are connected via a switching relay, packet transfer is first performed with the relay memory node as the destination. After the packet reaches the relay memory node, packet transfer is performed with the memory node (when the packet is transmitted from the gateway server to the memory node) or the switching relay (when the packet is transmitted from the memory node to the gateway server) as the destination. . That is, the packet transmission destination needs to be changed before and after the packet reaches the relay memory node.
スイッチングリレーを使用したシステムにおいて、パケットのヘッダー部に記録されたアドレス情報の例を図29に示す。ここで、最終送信先ノードと送信元ノードは、それぞれパケットを最終的に届ける宛先のメモリノード、パケットを最初に作成・発信するメモリノードを意味する。他方、一時送信先ノードアドレスと一時送信元ノードアドレスは、各メモリノードでパケット転送先の決定に用いられるアドレスであり、スイッチングリレーに接続された中継メモリノードで書き換えられる(書き換えルールについては後述する)。 FIG. 29 shows an example of the address information recorded in the header part of the packet in the system using the switching relay. Here, the final destination node and the source node mean a destination memory node that finally delivers the packet and a memory node that first creates and transmits the packet. On the other hand, the temporary transmission destination node address and the temporary transmission source node address are addresses used for determining the packet transfer destination in each memory node, and are rewritten in the relay memory node connected to the switching relay (the rewriting rules will be described later). ).
なお、アドレスタイプとは、そのアドレスが、ストレージ装置10内のメモリノードのアドレスであるか、スイッチングリレー81のアドレスであるかを、区別するためのものである。また、中継ノードアドレスは、パケット転送時に経由すべき、スイッチングリレー81と接続されたメモリノードのアドレスである。
The address type is for distinguishing whether the address is an address of a memory node in the
前述したように、スイッチングリレーに接続されたメモリノードでは、パケットのヘッダー部に記録されたアドレス情報の書き換えが行われる。パケットのアドレス情報が図29に示したものである場合、書き換えルールは例えば次のようなものである。 As described above, in the memory node connected to the switching relay, the address information recorded in the header part of the packet is rewritten. When the address information of the packet is as shown in FIG. 29, the rewrite rule is, for example, as follows.
1. 最終送信先ノードが自ノード以外のメモリノードで、送信元がスイッチングリレーである場合、一時送信先を最終送信先ノードに、一時送信元を自ノードに変更する。 1. If the final destination node is a memory node other than its own node and the source is a switching relay, the temporary destination is changed to the final destination node and the temporary source is changed to its own node.
2. 最終送信先ノードがスイッチングリレーである場合、一時送信先をスイッチングリレーに、一時送信元を自ノードに変更する。 2. If the final destination node is a switching relay, change the temporary destination to the switching relay and the temporary source to its own node.
3. 最終送信先が自ノード以外のメモリノードで、送信元もメモリノードである場合、一時送信先、一時送信元共に変更しない。 3. If the final destination is a memory node other than its own node and the source is also a memory node, neither the temporary destination nor the temporary source is changed.
例えば、図27に示したシステムで、クライアントがストレージ装置10にファイルを書き込む手続きは次のようになる。
For example, in the system shown in FIG. 27, the procedure for the client to write a file to the
図30は、図27に示したストレージシステムにおける書き込み動作を示す図である。 FIG. 30 is a diagram showing a write operation in the storage system shown in FIG.
まず、クライアントは、ファイルとファイルIDとをゲートウェイサーバ21Aに送信する((1)参照)。ファイルIDは、ファイルを一意に特定できる識別子である。
First, the client transmits a file and a file ID to the
次に、ゲートウェイサーバ21Aは、ファイルを規定サイズのデータに分割し、分割した各データに分割データIDを割り振る。さらに、ファイルIDと分割データIDをファイルテーブルに書き込む。分割データIDは、分割されたデータを一意に特定できる識別子である((2)参照)。
Next, the
次に、ゲートウェイサーバ21Aは、分割データIDの情報に基づき、分割データを書き込む書き込み先のメモリノード(書き込みノード)のアドレスを決定する(図27ではアドレス(5,9))。さらに、スイッチングリレー81に接続されたメモリノードのうち、書き込みノードに最も近いメモリノードを中継メモリノードとして、そのアドレスを算出する(図27ではアドレス(1,9))((3)参照)。
Next, the
次に、ゲートウェイサーバ21Aは、書き込みデータに、前述したアドレス情報を含むヘッダー部等を付け加えた書き込みパケットを作成する。ここで、一時送信先アドレスは中継ノードアドレス(図27ではアドレス(1,9))、一時送信元ノードアドレスは、スイッチングリレー81のアドレス(図27では[1])とする。その後、パケットをスイッチングリレー81に送信する((4)参照)。
Next, the
書き込みパケットを受け取ったスイッチングリレー81は、指定された一時送信先メモリノード(中継メモリノード(1,9))にこの書き込みパケットを送信する((5)参照)。
The switching
スイッチングリレー81から書き込みパケットを受信した中継メモリノードは、パケットのヘッダー部を読み、最終送信先ノードがストレージ装置10内の他のメモリノードであることから、以下のようにヘッダー部を書き換えた書き込みパケットを作成する。ヘッダー部において、一時送信元アドレスを自ノードアドレスに、一時送信先ノードアドレスを、最終送信先である書き込みノードのアドレス(図27では(5,9))に変更する((6)参照)。
The relay memory node that has received the write packet from the switching
その後、書き込みパケットを隣接したメモリノードに転送する。ストレージ装置10内で適切な転送を繰り返すことにより、書き込みパケットを書き込みノード(図27ではメモリノード(5,9))に到達させる((7)参照)。
Thereafter, the write packet is transferred to the adjacent memory node. By repeating appropriate transfer in the
書き込み先のメモリノードでは、受け取ったパケットの書き込みデータ、パケット送信元や中継ノードのアドレス等を自ノードのメモリ16に書き込む((8)参照)。その後、書き込み完了報告のパケットを作成し、上記と逆の経路でゲートウェイサーバ21Aに返信する((9)参照)。書き込み完了報告のパケットでは、ヘッダー部のアドレス情報の最終送信先ノードはスイッチングリレーとし、送信元は書き込みノード、中継ノードはゲートウェイサーバ21Aから書き込みノードにパケット転送を行った際と同じメモリノード、一時送信先ノードは中継ノード、一時送信元ノードは書き込みノードとする。前記パケットは、中継メモリノードにおいて、一時送信先をスイッチングリレーに、一時送信元を中継ノードに、ヘッダー部のアドレス情報が書き換えられる((10)参照)。
In the write destination memory node, the write data of the received packet, the address of the packet transmission source, the relay node, and the like are written in the
全分割データの書き込みが終わった後、ゲートウェイサーバ21Aは、クライアントにファイル書き込みの終了報告を行う。
After all the divided data has been written, the
なお、クライアントがストレージ装置10にファイルを書き込む場合だけでなく、書き込まれたデータの読み出し・消去やメモリの空き容量の確認などのため、読み出し・消去命令や空き容量の返信命令等をストレージ装置10のメモリノードに送る場合も、前述した手続きに従ってスイッチングリレー81に接続されたメモリノードを介してパケットを転送することができる。さらに、書き込みや消去等の命令実施完了報告、メモリノードから読み出したデータなどをメモリノードからゲートウェイサーバ21Aに送信する際などにも、同様に、前述した手続きに従ってスイッチングリレー81に接続されたメモリノードを介してパケットを転送することができる。これにより、転送時間を短縮することができる。
It should be noted that not only when the client writes a file to the
なお、ここまでは、図27に示したように、左端のメモリノードのみがスイッチングリレー81と接続されたストレージシステムについて説明したが、図31に示すように、全ての外周部のメモリノードがスイッチングリレー81,82,83,84と接続されたストレージシステムにおいても、スイッチングリレーを導入しないシステムより、パケットの平均転送回数が少なく、転送時間を短くすることができる。図31に示すストレージシステムでは、ストレージ装置の左端に配置されたメモリノードにスイッチングリレー81が接続され、上端に配置されたメモリノードにスイッチングリレー82、右端に配置されたメモリノードにスイッチングリレー83、下端に配置されたメモリノードにスイッチングリレー84がそれぞれ接続されている。また、全てのスイッチングリレーは、アダプタ22Aを介してゲートウェイサーバ21Aと接続されている。
The storage system in which only the leftmost memory node is connected to the switching
さらに、図32に示すように、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有する複数のメモリノードが、非隣接ポートによってスイッチングリレー81と接続されたストレージ装置を含むストレージシステムにおいても、スイッチングリレーを導入しないシステムより、パケットの平均転送回数が少なく、転送時間を短くすることができる。図32に示すストレージシステムでは、ストレージ装置10内のメモリノード(3,2)、(3,7)、(8,2)、(8,7)にスイッチングリレー81が接続されている。
Further, as shown in FIG. 32, a storage device in which a plurality of memory nodes having input / output ports (non-adjacent ports) other than the input / output ports connected to adjacent nodes are connected to the switching
さて、前述したように、スイッチングリレーに接続されているメモリノードを介してパケット転送を行う場合、パケット転送時間(転送回数)が最小となるメモリノードを中継メモリノードとして選択することが重要である。以下では、その中継メモリノードのアドレス算出について説明する。 As described above, when packet transfer is performed via a memory node connected to a switching relay, it is important to select a memory node having a minimum packet transfer time (number of transfers) as a relay memory node. . Hereinafter, address calculation of the relay memory node will be described.
まず、図27に示したように、左端のメモリノード全てがスイッチングリレー81に接続されたストレージ装置10とゲートウェイサーバ21Aとの間でデータ転送を行う場合、ストレージ装置10内のアドレス(x,y)のパケット送信先/送信元メモリノードにとって、パケット転送距離(転送回数)が最小となる、スイッチングリレー81に接続されたメモリノードは、アドレス(1,y)のメモリノードである。
First, as shown in FIG. 27, when all the leftmost memory nodes perform data transfer between the
角に配置されたメモリノードのアドレスが(a0,b0)で、横c0個、縦d0個のメモリノードから成るストレージ装置において、外周部の全メモリノードがスイッチングリレーに接続されている場合、ストレージ装置10内のアドレス(x,y)のメモリノードがゲートウェイサーバ21Aとの間でパケット転送を行うとき、転送時間(転送回数)が最小となる中継メモリノードのアドレスは、以下の通りである。ここで、図31に示すように、スイッチングリレーと接続されたメモリノードのアドレスは、(a0,y)、(a0+c0,y)、(x,b0)、(x,b0+d0)で表わされる(xはa0〜a0+c0の任意の整数値、yはb0〜b0+d0の任意の整数値)。
In the storage device having memory nodes arranged at the corners of (a0, b0) and having c0 horizontal and d0 vertical memory nodes, all the memory nodes on the outer periphery are connected to the switching relay. When the memory node at the address (x, y) in the
min(x−a0,a0+c0−x)≦min(y−b0,b0+d0−y)かつmin(x−a0,a0+c0−x)=x−a0の場合は(x−a0,y);
min(x−a0,a0+c0−x)≦min(y−b0,b0+d0−y)かつmin(x−a0,a0+c0−x)=a0+c0−xの場合は(a0+c0−x,y);
min(x−a0,a0+c0−x)≧min(y−b0,b0+d0−y)かつmin(y−b0,b0+d0−y)=y−b0の場合は(x,y−b0);
min(x−a0,a0+c0−x)≧min(y−b0,b0+d0−y)かつmin(y−b0,b0+d0−y)=b0+d0−yの場合は(x,b0+d0−y)。
min (x−a0, a0 + c0−x) ≦ min (y−b0, b0 + d0−y) and min (x−a0, a0 + c0−x) = (x−a0, y) when x−a0;
min (x−a0, a0 + c0−x) ≦ min (y−b0, b0 + d0−y) and min (x−a0, a0 + c0−x) = a0 + c0−x (a0 + c0−x, y);
min (x−a0, a0 + c0−x) ≧ min (y−b0, b0 + d0−y) and min (y−b0, b0 + d0−y) = y−b0 (x, y−b0);
When min (x−a0, a0 + c0−x) ≧ min (y−b0, b0 + d0−y) and min (y−b0, b0 + d0−y) = b0 + d0−y, (x, b0 + d0−y).
なお、min(x,y)は、二つの引数x,yのうち、小さい方を与える関数である。 Note that min (x, y) is a function that gives the smaller of the two arguments x and y.
他方、図32に示すように、スイッチングリレー81と接続されたメモリノードのアドレスが(am+b,cn+d)(m,nは整数)で与えられる場合(図32では、a=5、b=3、c=5、d=2、m=0または1、n=0または1)、任意のメモリノード(アドレス(x,y))に対して、パケット転送時間(転送回数)が最小となる、スイッチングリレー81に接続されるメモリノード(中継メモリノード)は、(a(round(x/a,0)+b、c(round(y/c,0)+d)で与えられる。ここで、round(u,0)は、数値uを小数点で四捨五入する関数である。
On the other hand, as shown in FIG. 32, when the address of the memory node connected to the switching
以上説明したように第8実施形態によれば、ストレージ装置内でメモリノード間のパケット転送回数を低減させることができる。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, according to the eighth embodiment, the number of packet transfers between memory nodes in the storage apparatus can be reduced. Other configurations and effects are the same as those of the first embodiment described above.
[第9実施形態]
第9実施形態は、複数のデータを複数のメモリノードに保存するデータ処理において、ゲートウェイサーバとのデータ転送時間が互いに異なるメモリノードを、複数データの保存先として選択するデータ処理手順を備える。
[Ninth Embodiment]
The ninth embodiment includes a data processing procedure for selecting, as data storage destinations, memory nodes having different data transfer times with the gateway server in data processing for storing a plurality of data in a plurality of memory nodes.
[1]ストレージシステムの構成
図33Aは、第9実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 33A is a diagram showing the configuration of the storage system of the ninth embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。
As illustrated, the storage system includes a
[2]ストレージシステムのデータ処理方法
第9実施形態のストレージシステムにおけるデータ処理手順について説明する。
[2] Data processing method of storage system A data processing procedure in the storage system of the ninth embodiment will be described.
図33A〜図33D及び図34A〜図34Eは、ストレージ装置10がアダプタ22Aを介してゲートウェイサーバ21Aと接続されたストレージシステムである。ストレージ装置は、隣接したメモリノード11が相互接続された複数のメモリノードから構成される。
33A to 33D and FIGS. 34A to 34E are storage systems in which the
各メモリノード11は、送信されたパケットが自ノード宛であれば受け取り、他のメモリノードが宛先の場合は、隣接するメモリノードにパケットを転送する。このデータ転送機能により、ゲートウェイサーバ21Aと指定メモリノードとの間でパケット通信を行うことができる。
Each
但し、パケット転送に必要な転送回数は、メモリノードにより異なる。例えば、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数は、アドレス(1,4)のメモリノードは0回、アドレス(1,5)、(2,4)、(1,3)のメモリノードは1回、アドレス(1,6)、(2,5)、(3,4)、(2,3)、(1,2)のメモリノードは2回である。図33A〜図33D及び図34A〜図34Eでは、同一の最低転送回数を持つメモリノードを同一のハッチングで表している。
However, the number of transfers required for packet transfer differs depending on the memory node. For example, the minimum number of transfers required for packet communication with the
またここでは、ストレージ装置10のメモリノード内のパケット転送時間とメモリノード間のパケット送信時間が、メモリノードに依らず一定とする。この場合、総パケット転送時間はどのメモリノード間でも同じである。なお、パケット転送時間は、入力ポートにパケットを受信した後、パケットのヘッダー部に記録されたアドレスから自ノード宛かどうかを判断し、出力ポートからパケットを出力するまでの時間である。総パケット転送時間は、メモリノードがパケットを受け取ってから隣接ノードにパケットを送信し、そのパケットが隣接ノードに到達するまでの時間である。
Here, the packet transfer time in the memory node of the
さて、一つのファイルを3つに分割し、分割後のデータの順番に合わせてID=1、ID=2、ID=3とIDを付与した3つのデータを、3つのメモリノードにそれぞれ保存する。その後、メモリノードから3つのデータを読み出して、ゲートウェイサーバに送信するデータ処理について考える。 Now, one file is divided into three, and the three data with ID = 1, ID = 2, ID = 3 and ID are stored in three memory nodes according to the order of the divided data. . Then, consider data processing in which three data are read from the memory node and transmitted to the gateway server.
データを保存する3つのメモリノードが、ゲートウェイサーバとのパケット通信に必要な最低転送回数が同じになるメモリノードである場合と、最低転送回数が全て異なるメモリノードの場合のそれぞれについて、読み出されたデータのストレージ装置内の転送過程を比較する。なお、読み出し命令は一斉に行われ、読み出されたデータの送信は同時に開始されること、従って3つのデータの転送も全く同じタイミングで進行するものとする。 The three memory nodes that store data are read for each of the memory nodes that have the same minimum transfer count required for packet communication with the gateway server and the memory nodes that have different minimum transfer counts. Compare the transfer process of stored data in the storage device. It is assumed that the read command is performed all at once, and the transmission of the read data is started at the same time, so that the transfer of the three data proceeds at exactly the same timing.
ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が3回であるメモリノード(1,1)、(2,2)、(3,5)に保存された3つのデータが、各メモリノードから読み出された後、ゲートウェイサーバ21Aに向けて転送されていく過程の一例を図33A〜図33Dに示す。
Three data stored in the memory nodes (1, 1), (2, 2), (3, 5) having a minimum transfer count of 3 required for packet communication with the
図33Aは、各メモリノード内のメモリからデータが読み出された直後(転送前)のストレージ装置10の状態を示し、図33Bは、図33Aから一定時間経過し、3つのデータ全てが、保存されていたメモリノードの隣接ノードに転送された状態を示す。図33Bに示すように、図33Aにおいてメモリノード(1,1)、(2,2)、(3,5)に保存されていた3つのデータは、メモリノード(1,2)、(2,3)、(2,5)にそれぞれ転送されている。
FIG. 33A shows the state of the
図33C、図33Dは、それぞれデータの転送が2回、3回行われた状態を示す。図33Cに示すように、図33Bにおいてメモリノード(1,2)、(2,3)、(2,5)に保存されていた3つのデータは、メモリノード(1,3)、(2,4)、(1,5)にそれぞれ転送されている。さらに、図33Dに示すように、図33Cにおいてメモリノード(1,3)、(2,4)、(1,5)に保存されていた3つのデータは、メモリノード(1,4)にそれぞれ転送されている。なお図33A〜図33Dは、保存されていたメモリノードからゲートウェイサーバ21Aへ向けてデータ転送を行う過程であるため、時間の経過と共に、ゲートウェイサーバ21Aとのパケット通信に必要な、最低転送回数が少ないメモリノードにデータが転送されている。
FIG. 33C and FIG. 33D show a state where data transfer is performed twice and three times, respectively. As shown in FIG. 33C, the three data stored in the memory nodes (1, 2), (2, 3), (2, 5) in FIG. 33B are stored in the memory nodes (1, 3), (2, 4) and (1, 5), respectively. Furthermore, as shown in FIG. 33D, the three data stored in the memory nodes (1, 3), (2, 4), and (1, 5) in FIG. 33C are stored in the memory nodes (1, 4), respectively. Has been transferred. 33A to 33D are processes in which data is transferred from the stored memory node to the
さて、図33A〜図33Cに示したストレージ装置10では、3つのデータはそれぞれ別のメモリノードに存在しているが、図33Dに示したストレージ装置10では、全てのデータがアドレス(1,4)のメモリノード上に位置している。これは、3つのデータが同時にアドレス(1,4)のメモリノードに到達した状態を表している。
In the
但し、メモリノードの一時保存用メモリ(入力ポートバッファ)の記憶容量サイズが、複数のデータを保存できるほど大きくない場合には、メモリノード(1,4)では一度に一つのデータしか受け入れることができない。一時保存用メモリは、自ノード宛でないデータを受信した場合に、そのデータを転送するまでの間、保管するためのメモリである。 However, if the storage capacity size of the temporary storage memory (input port buffer) of the memory node is not large enough to store a plurality of data, the memory node (1, 4) can accept only one data at a time. Can not. The temporary storage memory is a memory for storing data that is not addressed to the own node until the data is transferred.
この場合には、受信した一つのデータのアダプタ22Aへの転送が終了するまで、他のデータはアドレス(1,4)のメモリノードに転送できず、隣接ノードで待機する必要がある。
In this case, until transfer of one received data to the
メモリノードの一時保存用メモリのサイズが十分大きく、3つのデータを同時に一時保存できる場合においても、アドレス(1,4)のメモリノードからゲートウェイサーバ21Aに3つのデータを一度に送信することは通常できないため、一つのデータがゲートウェイサーバ21Aに送信されるまでの間、他のデータはアドレス(1,4)のメモリノードで待機する必要がある。このようなデータ転送の待機が生じると、全データの転送に要する時間が増加する。
Even when the size of the memory for temporary storage of the memory node is sufficiently large and three data can be temporarily stored at the same time, it is normal to transmit three data from the memory node at the address (1, 4) to the
また、図33A〜図33Dからわかるように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じであるメモリノードの数は、転送回数が少なくなるにつれて減少する。従って、図33Aに示すように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じで異なるメモリノードに複数データを保存し、同時に読み出して転送を開始すると、時間が経過してデータがゲートウェイサーバ21Aに近づくほど、転送先のメモリノードの数が減少し、複数データが同一のメモリノードに転送される確率が高まる。このように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が同じであるメモリノードに複数データを保存すると、読み出し後の転送時に無駄な待機時間が発生しやすくなる。
As can be seen from FIGS. 33A to 33D, the number of memory nodes having the same minimum number of transfers required for packet communication with the
図34A〜図34E、図35A、及び図35Bを参照して、このような転送時の待機時間を低減するためのデータ処理手順を説明する。 With reference to FIGS. 34A to 34E, 35A, and 35B, a data processing procedure for reducing the waiting time at the time of such transfer will be described.
図34A〜図34Eは、メモリノードから読み出されたデータがゲートウェイサーバ21Aに向けて転送されていく過程の一例を示す図である。図34A〜図34Eは、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が1回であるメモリノード(1,5)にID=2のデータを、最低転送回数が2回であるメモリノード(1,2)にID=1のデータを、3回であるメモリノード(4,4)にID=3のデータを保存させた後、これらデータを同時に読み出してゲートウェイサーバ21Aに転送する過程を示している。
34A to 34E are diagrams illustrating an example of a process in which data read from the memory node is transferred to the
この場合も、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が少ないメモリノードへとデータは転送されている。しかし、図34A〜図34Eの場合、全ての過程で、図33Dに示したような同一メモリノードへの複数データの転送が生じていない。これは、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存したためである。この場合にも、最低転送回数が少ないメモリノードへとデータ転送が行われるが、最低転送回数が異なるメモリノードから全データの転送が開始されるため、どの時間においても各データは最低転送回数が異なるメモリノードに位置する。
Also in this case, data is transferred to a memory node having a minimum minimum number of transfers required for packet communication with the
このように、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することにより、読み出しデータの転送時における複数データの同一メモリノードへの同時転送が回避され、データ転送時間を短縮することができる。
In this way, by storing data in memory nodes having different minimum transfer counts necessary for packet communication with the
なお、当然ではあるが、ゲートウェイサーバとのパケット通信に必要な最低転送回数が異なるメモリノードに保存したデータを読み出してゲートウェイサーバに転送する場合、データを保存したメモリノードがゲートウェイサーバに近い順番でゲートウェイサーバにデータが到達する。図34Aでは、ゲートウェイサーバ21Aに最も近いメモリノードにID=2のデータを、次にサーバ21Aに近いメモリノードにID=1のデータを、最もサーバ21Aから遠いメモリノードにID=3のデータを保存しているため、これらメモリノードから読み出し・転送されたデータは、図34C〜図34Eに示したように、ID=2のデータ、ID=1のデータ、ID=3のデータの順番でゲートウェイサーバ21Aに到達する。
Of course, when data stored in memory nodes with different minimum number of transfers required for packet communication with the gateway server is read out and transferred to the gateway server, the memory nodes storing the data are in the order closest to the gateway server. Data arrives at the gateway server. In FIG. 34A, ID = 2 data is stored in the memory node closest to the
前述したように、これらデータは一つのファイルを3分割したものであり、分割後のデータの順番に合わせてID=1、ID=2、ID=3とIDを付与されている。このため、分割データからファイルを再構成するためには、ゲートウェイサーバ21Aに到達したデータをID順に入れ替える必要がある。
As described above, these data are obtained by dividing one file into three, and ID = 1, ID = 2, ID = 3 and ID are assigned in accordance with the order of the divided data. For this reason, in order to reconstruct a file from the divided data, it is necessary to replace the data that has reached the
他方、図35Aでは、ID=1のデータをゲートウェイサーバ21Aからの最低転送回数1回のメモリノードに、ID=2のデータを最低転送回数2回のメモリノードに、ID=3のデータを最低転送回数3回のメモリノードに保存している。このため、これらのデータをメモリノードから読み出し、ゲートウェイサーバ21Aに転送すると、図35Bに示すように、ID=1のデータ、ID=2のデータ、ID=3のデータの順番でゲートウェイサーバ21Aに到達する。従って、ファイルの再構成を行う際に、データの並べ替えを行う必要が無い。
On the other hand, in FIG. 35A, ID = 1 data is transferred to the memory node having the minimum transfer count of 1 from the
このように、データの読み出し順番が意味を持つ複数のデータを、ゲートウェイサーバとのパケット通信に必要な最低転送回数が異なるメモリノードに保存する場合、その順番に合わせて、ゲートウェイサーバに近いメモリノードから遠いメモリノードへ順に保存する。これにより、ゲートウェイサーバ21Aに転送されたデータの並び替え作業を省略することができる。
As described above, when storing a plurality of data whose data reading order is meaningful in a memory node having a different minimum transfer count required for packet communication with the gateway server, a memory node close to the gateway server according to the order. The memory nodes are stored in order from the remote node. Thereby, the rearrangement work of the data transferred to the
さて、全て等価なメモリノードから構成されたストレージ装置の単一メモリノードとゲートウェイサーバが、アダプタを介して接続されているストレージシステムで、ストレージ装置に複数データを保存する手順について説明したが、図36Aに示すように、隣接ノードと接続された入出力ポート以外の入出力ポート(非隣接ポート)を有し、非隣接ポートによって相互接続された複数のメモリノードを有するストレージ装置においても、ゲートウェイサーバ21Bとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することで、保存データの転送時に無駄な待機時間が発生するのを回避することができる。 Now, in the storage system in which a single memory node of a storage device composed of all equivalent memory nodes and a gateway server are connected via an adapter, the procedure for storing multiple data in the storage device has been described. As shown in FIG. 36A, a gateway server also includes a storage device having a plurality of memory nodes having input / output ports (non-adjacent ports) other than input / output ports connected to adjacent nodes and interconnected by non-adjacent ports. By storing data in memory nodes having different minimum transfer counts necessary for packet communication with 21B, it is possible to avoid unnecessary waiting time when transferring stored data.
さらに、図36B〜図36Dに示すように、スイッチングリレーを介してストレージ装置10とゲートウェイサーバ21Aが接続されている場合においても、ゲートウェイサーバ21Aとのパケット通信に必要な最低転送回数が異なるメモリノードにデータを保存することで、保存データの転送時に無駄な待機時間が発生するのを回避することができる。なお、図36A〜図36Dでは、ID=1、ID=2、ID=3のデータを、パケット通信に必要な最低転送回数が1回、2回、3回のメモリノードにそれぞれ保存した例を示している。
Further, as shown in FIGS. 36B to 36D, even when the
なお前述したように、メモリノードのアドレスのハッシュ値とパケットIDのハッシュ値から、パケットデータを保存するメモリノードのアドレスを決める方法(コンシステントハッシング)がある。これは例えば、0〜2160−1の整数値を取るID空間を考え、メモリノードとパケットのそれぞれに対して、前者はアドレス、後者はパケットIDで暗号学的ハッシュ関数SHA−1を計算(計算結果は0〜2160−1のいずれかの整数値になる)することで、それらをID空間のいずれかのIDに割り当てる。次に、各パケットに対して、ハッシュ値のIDからID空間を時計回りにたどり、最初に行き当たったメモリノードを、そのパケットを保存するメモリノードとして決定するものである。 As described above, there is a method (consistent hashing) for determining the address of the memory node that stores the packet data from the hash value of the address of the memory node and the hash value of the packet ID. For example, an ID space taking an integer value of 0 to 2 160 −1 is considered, and for each of the memory node and the packet, the former is an address and the latter is a packet ID to calculate the cryptographic hash function SHA-1. The calculation result is any integer value between 0 and 2 160 −1), so that they are assigned to any ID in the ID space. Next, for each packet, the ID space is traced clockwise from the ID of the hash value, and the first memory node encountered is determined as the memory node that stores the packet.
本方法は、高い均一性でパケットをメモリノードに分散保存できるだけでなく、メモリノードを増減させても、変更が必要なパケットが少ない(すなわち、メモリノードのスケーラビリティが高い)特長を有している。しかし、この方法でパケットを保存するメモリノードを決めると、ゲートウェイサーバとの通信時に必要な転送回数が同じメモリノードにパケットが保存されうる(前述したように、これは、データ読み出し時にパケット衝突を引き起こす)。 This method not only can distribute and store packets in memory nodes with high uniformity, but also has a feature that the number of packets that need to be changed is small even if the number of memory nodes is increased or decreased (that is, the scalability of the memory nodes is high). . However, when a memory node that stores a packet is determined by this method, the packet can be stored in a memory node having the same number of transfers required for communication with the gateway server (as described above, this causes a packet collision when reading data). cause).
ゲートウェイサーバとの通信でパケット転送回数が異なるメモリノードに、N個のパケットを均一に分散させて保存するためには、例えばパケットIDのハッシュ値mod Nを計算して(modは割り算の余りを返す関数)、そのパケットを保存するメモリノードの転送回数(0〜(N−1)のいずれか)を決める(計算の結果、転送回数が一致するパケットがあれば、異なる値になるように調整する)。さらに、各パケットに対して、決められた転送回数を有するメモリノードの中から、そのパケットを保存するメモリノードを前述したコンシステントハッシングにより決めれば良い。 In order to uniformly distribute and store N packets in memory nodes having different packet transfer counts in communication with the gateway server, for example, the hash value mod N of the packet ID is calculated (mod is the remainder of the division) Return function), determine the number of transfers (any of 0 to (N-1)) of the memory node storing the packet (if there is a packet with the same number of transfers as a result of the calculation, adjust it to a different value) To do). Furthermore, for each packet, a memory node that stores the packet may be determined by the above-described consistent hashing from among the memory nodes having the determined number of transfers.
なお、このようなパケット保存先のメモリノードを決定する手順では、決められた転送回数を有するメモリノードのアドレス把握が必要である。ある転送回数を有するメモリノードのアドレスは次のように表わされる。 In the procedure for determining the memory node of the packet storage destination as described above, it is necessary to grasp the address of the memory node having the determined number of transfers. The address of a memory node having a certain number of transfers is expressed as follows.
図33A〜図35Bのように、ゲートウェイサーバ21Aが、アダプタ22Aを介してストレージ装置(ここでは、メモリノードのアドレスは全て正の整数値とする)の端に位置するメモリノード(1,a0)と接続されているシステムにおいて、メモリノード(1,a0)との間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(1+b,a0+(n−b))(n≧b≧0)、及び(1+c,a0−(n−c))(a0−1≧n−c≧0)で表わされる。
As shown in FIG. 33A to FIG. 35B, the
図36A、図36D示したように、増加ポート(非隣接ポート)によって、隣接しないメモリノード同士やメモリノードとスイッチングリレーが接続されたストレージ装置(メモリノードのアドレスは正の整数値とする)において、増加ポートを有するノード(a0,b0)との間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(a0+c,b0+(n−c))(n≧c≧0)、(a0+d,b0−(n−d))(n≧d≧0,b0−1≧n−d)、(a0−e,b0+(n−e))(min(a0−1,n)≧e≧0)、(a0−f,b0−(n−f))(a0−1≧f≧0,b0−1≧n−f≧0)で表わされる。 As shown in FIG. 36A and FIG. 36D, in the storage device (memory node address is a positive integer value) in which the memory nodes are not adjacent to each other or the memory node and the switching relay are connected by an increase port (non-adjacent port). When a packet communication is performed with a node (a0, b0) having an increased port, the address of the memory node having the minimum transfer count of n is (a0 + c, b0 + (nc)) (n ≧ c ≧ 0), (a0 + d, b0− (n−d)) (n ≧ d ≧ 0, b0−1 ≧ nd), (a0−e, b0 + (n−e)) (min (a0−1, n) ≧ e ≧ 0), (a0−f, b0− (n−f)) (a0−1 ≧ f ≧ 0, b0−1 ≧ n−f ≧ 0).
図36Bに示すように、ストレージ装置(全メモリノードのアドレスは正の整数値とする)の左端(アドレス(1,y))のメモリノードがスイッチングリレーと接続されているシステムにおいて、アドレス(1,a0)の中継メモリノードとの間でパケット通信を行う場合に、最低転送回数がn回であるメモリノードのアドレスは、(1,a0+n)で表わされる。 As shown in FIG. 36B, in the system in which the memory node at the left end (address (1, y)) of the storage apparatus (addresses of all memory nodes are positive integer values) is connected to the switching relay, the address (1 , A0), when performing packet communication with the relay memory node, the address of the memory node whose minimum transfer count is n is represented by (1, a0 + n).
なお、データ転送時間が同じメモリノードが相互接続されたストレージ装置を含むシステムについて説明してきたが、図36Eに示すようなデータ転送時間が同じメモリノードがツリー状に接続されたストレージシステムや、図36Fに示すようなデータ転送時間の異なるメモリノードから成るストレージシステムなど、サーバとのデータ通信時間が異なるメモリノードが存在するストレージ装置を含むシステムであれば、本実施形態を適用することができる。 Note that a system including a storage device in which memory nodes having the same data transfer time are interconnected has been described. However, as shown in FIG. 36E, a storage system in which memory nodes having the same data transfer time are connected in a tree shape, The present embodiment can be applied to any system including a storage apparatus having memory nodes having different data communication times with a server, such as a storage system including memory nodes having different data transfer times as shown in 36F.
図36Eに示すシステムは、データ転送時間が同じメモリノードがツリー状に接続されたストレージシステムであり、ゲートウェイサーバ21Aとの通信時間が同じメモリノードを同一のハッチングで示している。図36Fに示すシステムでは、メモリノード間とメモリノード〜スイッチングリレー間のデータ通信速度は同じであり、さらにアドレス(a, l)、(a, m)、(a, n)、(b, l)、(b, m)、(b, n)のメモリノード間、及びこれらメモリノード〜スイッチングリレー81間のデータ通信速度に対して、アドレス(α, δ)、(β, γ)、(β, ε)のメモリノード間、及びこれらメモリノード〜スイッチングリレー81間のデータ通信速度は2倍、アドレス(A, B)とスイッチングリレー81間の通信速度は4倍の場合を示している。なお、スイッチングリレー81とのデータ転送時間が同じメモリノードを同一のハッチングで示している。但し、メモリノード内でのデータ転送時間は、メモリノード間及びスイッチングリレー〜メモリノード間のデータ転送時間より十分に小さいと仮定する。
The system shown in FIG. 36E is a storage system in which memory nodes having the same data transfer time are connected in a tree shape, and the memory nodes having the same communication time with the
以上説明したように第9実施形態によれば、複数のメモリノードに保存したデータを各メモリノードから読み出した後、ゲートウェイサーバに送信する際の転送時間を短縮することができる。これにより、高速なデータ読み出しが可能となる。その他の構成及び効果は、前述した第1実施形態と同様である。 As described above, according to the ninth embodiment, it is possible to reduce the transfer time when data stored in a plurality of memory nodes is read from each memory node and then transmitted to the gateway server. Thereby, high-speed data reading becomes possible. Other configurations and effects are the same as those of the first embodiment described above.
[第10実施形態]
第10実施形態は、ゲートウェイサーバから複数のデータを複数のメモリノードに送信するデータ処理において、データ通信時間が長いメモリノードを宛先とするデータから、データ通信時間が短いメモリノードを宛先とするデータの順に、データ転送を行うデータ処理手順を備える。
[Tenth embodiment]
According to the tenth embodiment, in data processing for transmitting a plurality of data from a gateway server to a plurality of memory nodes, data destined for a memory node with a short data communication time from data destined for a memory node with a long data communication time In this order, a data processing procedure for performing data transfer is provided.
[1]ストレージシステムの構成
図37Aは、第10実施形態のストレージシステムの構成を示す図である。
[1] Configuration of Storage System FIG. 37A is a diagram showing the configuration of the storage system of the tenth embodiment.
図示するように、ストレージシステムは、複数のメモリノード11を含むストレージ装置10、及びストレージ装置10に接続された複数のゲートウェイサーバ21Aを備える。ストレージ装置10は、図1に示したように、データ転送機能を有するメモリノードが相互に複数接続された構成を有する。ストレージ装置10の外周部に配置されたメモリノード(1,4)には、アダプタ22Aを介してゲートウェイサーバ21Aが接続されている。
As illustrated, the storage system includes a
[2]ストレージシステムのデータ処理方法
第10実施形態のストレージシステムにおけるデータ処理手順について説明する。
[2] Data processing method of storage system A data processing procedure in the storage system of the tenth embodiment will be described.
図37A〜図37G及び図38A〜図38Eは、第9実施形態と同様に、ストレージ装置がアダプタ22Aを介してゲートウェイサーバ21Aと接続されたストレージシステムである。ストレージ装置は、隣接したメモリノード11が相互接続された複数のメモリノードから構成される。
37A to 37G and FIGS. 38A to 38E are storage systems in which the storage apparatus is connected to the
ここでは、ゲートウェイサーバ21Aから、ID=1、ID=2、ID=3の3つのデータを、それぞれアドレス(1,5)、(1,2)、(4,4)のメモリノードに送信する場合の、ゲートウェイサーバ21Aからのデータ送信順番と、全データ送信に必要な時間の関係について考える。なお、メモリノードの一時保存用メモリ(入力ポートバッファ)にパケットは1つしか保存できず、また一度に1つのパケットしか、ゲートウェイサーバ21Aからアドレス(1,4)のメモリノードに送信できないものとする。
Here, the
図37A〜図37Gでは、ゲートウェイサーバ21Aに近いメモリノードを宛先とするデータから遠いメモリノードを宛先とするデータの順番(すなわち、ID=1のデータ、ID=2のデータ、ID=3のデータの順)で、ゲートウェイサーバ21Aからストレージ装置にパケットを送信した場合のパケット転送過程を示している。
In FIGS. 37A to 37G, the order of data destined for a memory node far from the memory node close to the
この場合当然のことながら、図37B〜図37Cに示すように、ゲートウェイサーバ21Aに最も近い、アドレス(1,5)のメモリノード宛のデータ(ID=1)送信は最も早く終了する。
In this case, as a matter of course, as shown in FIGS. 37B to 37C, the transmission of data (ID = 1) addressed to the memory node with the address (1, 5) closest to the
しかし、ゲートウェイサーバ21Aから最も遠い、アドレス(4,4)のメモリノードを宛先としたデータ(ID=3)は、図37Dに示すように、2つのデータ(ID=1、ID=2)が、アドレス(1,4)のメモリノードから隣接メモリノードに転送されてしまうまで、アドレス(1,4)に送信することができず、それまでの間、ゲートウェイサーバ21Aで待機する必要がある。その待機が終わり、アドレス(1,4)のメモリノードに送信されても、図37D〜図37Gに示すように、アドレス(4,4)までデータが到達するためには最低3回の転送が必要である。
However, the data (ID = 3) destined for the memory node with the address (4, 4) farthest from the
他方、図38A〜図38Eでは、ゲートウェイサーバ21Aから最も遠いメモリノードを宛先とするデータから、近いメモリノードを宛先とするデータの順番(すなわちID=3のデータ、ID=2のデータ、ID=1のデータの順)で、ゲートウェイサーバ21Aからストレージ装置にパケットを送信した場合のパケット転送過程を示している。
On the other hand, in FIG. 38A to FIG. 38E, the order of data destined for the memory node farthest from the
この場合においても、図38B〜図38Dに示すように、ID=3のデータとID=2のデータがアドレス(1,4)のメモリノードから隣接ノードに転送されてしまうまで、ID=1のデータはアドレス(1,4)のメモリノードに送信できず、ゲートウェイサーバ21Aで待機する必要がある。
Also in this case, as shown in FIGS. 38B to 38D, ID = 1 and ID = 2 data are transferred from the memory node at address (1, 4) to the adjacent node until ID = 1. Data cannot be transmitted to the memory node at the address (1, 4), and it is necessary to wait at the
しかし、後から発信されるデータ(ID=1)の宛先であるアドレス(1,5)のメモリノードは、ゲートウェイサーバ21Aに近く、少ない転送回数で宛先のメモリノードに到達する。他方、先にゲートウェイサーバ21Aから送信されたデータ(ID=3)は、宛先がゲートウェイサーバ21Aから離れているが、他のデータがゲートウェイサーバ21Aで待機している間に転送が開始されているため、その分早く宛先に到達する。これらの結果、図38Eに示すように、3つのデータは、同時に宛先のメモリノードに到達する。
However, the memory node of the address (1, 5) that is the destination of the data (ID = 1) transmitted later is close to the
図37A〜図37Gと図38A〜図38Eの比較からわかるように、宛先のメモリノードがゲートウェイサーバ21Aから離れたデータから、ゲートウェイサーバ21Aから近いデータの順番で、ゲートウェイサーバ21Aからデータ送信を行うことで、全てのデータ送信に必要な時間を最小にすることができる。
As can be seen from the comparison between FIGS. 37A to 37G and FIGS. 38A to 38E, the data is transmitted from the
なお、データ転送時間が同じメモリノードが相互接続されたストレージ装置を含むシステムについて説明してきたが、データ転送時間が同じメモリノードがツリー状に接続されたストレージシステム(図36E)や、データ転送時間の異なるメモリノードから成るストレージシステム(図36F)など、サーバとのデータ通信時間が異なるメモリノードが存在するストレージ装置に複数のデータを送信する場合には、本実施形態を同様に適用することができる
以上説明したように第10実施形態によれば、ゲートウェイサーバとの通信時間が異なる複数のメモリノードに複数のデータを送る際、必要となる通信時間を最小にすることができる。その他の構成及び効果は、前述した第1実施形態と同様である。
Although a system including a storage device in which memory nodes having the same data transfer time are interconnected has been described, a storage system (FIG. 36E) in which memory nodes having the same data transfer time are connected in a tree shape, or a data transfer time In the case where a plurality of data is transmitted to a storage apparatus having memory nodes having different data communication times, such as a storage system (FIG. 36F) including different memory nodes, the present embodiment can be similarly applied. As described above, according to the tenth embodiment, when a plurality of data is sent to a plurality of memory nodes having different communication times with the gateway server, the required communication time can be minimized. Other configurations and effects are the same as those of the first embodiment described above.
以上述べたように第1〜第10実施形態によれば、メモリノードが経路指定表を管理する必要がなく、効率的にパケットを転送することができるストレージ装置、及びデータ処理方法を提供することができる。 As described above, according to the first to tenth embodiments, it is possible to provide a storage apparatus and a data processing method capable of efficiently transferring packets without the memory node having to manage the routing table. Can do.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
10…ストレージ装置、11…メモリノード、12…入力ポート、12A…入力ポートバッファ、13…出力ポート、13A…出力ポートバッファ、14…セレクタ、15…パケットコントローラ、16…メモリ、17…メモリコントローラ、18…MPU、19…ローカルバス、20…ストレージシステム、21A,21B,21C,21D…ゲートウェイサーバ、22A,22B,22C,22D,22E…アダプタ、31A,31B1,31B2…クライアント、41…制御コンピュータ、42…アドレス変換器、23,24…配線、81,82,83,84…スイッチングリレー。
DESCRIPTION OF
Claims (16)
前記第1のメモリノードと接続される第2の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、いずれか1つは前記第1の入力ポートと接続される複数の第1の出力ポートと、を含む第2のメモリノードと、
前記複数の第1の出力ポートのうちの1つに接続される第3の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードと、
を具備するストレージ装置であって、
前記第2のメモリノードは、前記ストレージ装置内における前記第2のメモリノードの位置情報である第1の位置情報を記憶し、
前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、
前記第2の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、
前記第2の制御部は、前記パケット内の前記送信先アドレスと前記送信元アドレス、前記第1の位置情報を少なくとも含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定するように構成されているストレージ装置。 A first memory node including: a first input port; a first nonvolatile memory; and a first controller that controls the first nonvolatile memory;
A second input port connected to said first memory node, and a second control unit for controlling the second non-volatile memory, said second non-volatile memory, any one of the first A second memory node including a plurality of first output ports connected to the input ports of
Includes a third input port connected to one of said plurality of first output ports, and a plurality of third memory node different from the first to the second memory node,
A storage device comprising:
The second memory node stores first position information that is position information of the second memory node in the storage device;
The first control unit outputs a packet including at least a transmission destination address and a transmission source address to the second memory node,
The second input port receives the packet output from the first memory node;
The second control unit, based on information including at least the transmission destination address, the transmission source address, and the first location information in the packet, at least the plurality of third memory nodes and the first A storage apparatus configured to determine an output destination of the packet from among memory nodes .
前記第1のメモリノードと接続される第1の入力ポートと、第2の不揮発性メモリと、前記第2の不揮発性メモリを制御する第2の制御部と、複数の第1の出力ポートと、を含む第2のメモリノードと、
前記複数の第1の出力ポートのうちの1つに接続される第2の入力ポートを含み、前記第1乃至第2のメモリノードとは異なる複数の第3のメモリノードと、
前記第1乃至第3のメモリノードとは異なる1以上の第4のメモリノードと、
を具備するストレージ装置であって、
前記第1の制御部は、送信先アドレスと送信元アドレスを少なくとも含むパケットを前記第2のメモリノードへ出力し、
前記第1の入力ポートは、前記第1のメモリノードから出力された前記パケットを受信し、
前記第2の制御部は、前記第1のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、前記ストレージ装置内における位置情報が前記送信元アドレスと一致する第5のメモリノードと、前記ストレージ装置内における位置情報が前記送信先アドレスと一致する第6のメモリノードとを結ぶ第1の直線で区切られる2つの領域のうち第1の領域に前記第2のメモリノードが属する場合に、前記複数の第3のメモリノードのうち第1の方向に存在する第7のメモリノードに前記パケットを出力し、前記第1の領域とは異なる第2の領域に前記第2のメモリノードが属する場合に、前記複数の第3のメモリノードのうち第2の方向に存在する第8のメモリノードに前記パケットを出力するストレージ装置。 A first memory node including: a first nonvolatile memory; and a first control unit that controls the first nonvolatile memory;
A first input port connected to the first memory node, a second non-volatile memory, a second control unit for controlling the second non-volatile memory, and a plurality of first output ports; A second memory node comprising:
A plurality of third memory nodes including a second input port connected to one of the plurality of first output ports and different from the first to second memory nodes;
One or more fourth memory nodes different from the first to third memory nodes;
A storage device comprising:
The first control unit outputs a packet including at least a transmission destination address and a transmission source address to the second memory node,
The first input port receives the packet output from the first memory node;
The second control unit is configured such that, among the first memory node, the plurality of third memory nodes, and the one or more fourth memory nodes, position information in the storage device matches the source address. Of the two areas separated by a first straight line connecting the fifth memory node and the sixth memory node whose position information in the storage device matches the destination address. A second region that is different from the first region, when the two memory nodes belong to, outputting the packet to a seventh memory node that exists in a first direction among the plurality of third memory nodes; Storage device that outputs the packet to an eighth memory node existing in a second direction among the plurality of third memory nodes when the second memory node belongs to the second memory node .
前記第5の領域に前記第2のメモリノードが属する場合、前記第8のメモリノードに前記パケットを出力し、前記第6の領域に前記第2のメモリノードが属する場合、前記複数の第3のメモリノードのうち前記第1の方向と逆の方向に存在するメモリノードに前記パケットを出力する請求項6に記載のストレージ装置。 The second control unit is a region that is perpendicular to the first straight line in the first region and delimited by a second straight line that passes through the sixth memory node, and a third region of the region close to the memory node, and the other was a fourth region in said second region, among the areas separated by the second linear, the area close to the fifth memory node 5 When the second area is the sixth area and the second memory node belongs to the third area, the packet is output to the seventh memory node, and the fourth area is When the second memory node belongs, the packet is output to a memory node existing in a direction opposite to the second direction among the plurality of third memory nodes,
When the second memory node belongs to the fifth area, the packet is output to the eighth memory node, and when the second memory node belongs to the sixth area, the plurality of third nodes The storage apparatus according to claim 6, wherein the packet is output to a memory node existing in a direction opposite to the first direction among the memory nodes.
前記第2の制御部は、前記第1のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、前記ストレージ装置内における位置情報が前記送信先アドレスと一致するメモリノードへの転送経路が最も短いメモリノードに前記パケットを出力する請求項1に記載のストレージ装置。 One or more fourth memory nodes different from the first to third memory nodes,
The second control unit is configured such that, among the first memory node, the plurality of third memory nodes, and the one or more fourth memory nodes, position information in the storage device matches the destination address. The storage apparatus according to claim 1, wherein the packet is output to a memory node having the shortest transfer path to the memory node.
前記複数の第3のメモリノードのうち前記第2のメモリノードに隣接しない第1の非隣接メモリノードと、前記1以上の第4のメモリノードのうち前記第1の非隣接メモリノードと接続され前記第1の非隣接メモリノードに隣接しない1以上の第2の非隣接メモリノードと、前記第2のメモリノードは夫々メモリノード同士の相対的な物理位置によって決定する付加アドレスを持ち、
前記第2の制御部は、前記第2のメモリノードの付加アドレス、前記第1の非隣接メモリノードの付加アドレス、前記第2の非隣接メモリノードの付加アドレスの少なくともいずれか一つを含む情報に基づいて、少なくとも前記複数の第3のメモリノード及び前記第1のメモリノードの中から前記パケットの出力先を決定する請求項1に記載のストレージ装置。 One or more fourth memory nodes different from the first to third memory nodes,
The first non-adjacent memory node not adjacent to the second memory node among the plurality of third memory nodes and the first non-adjacent memory node among the one or more fourth memory nodes are connected. One or more second non-adjacent memory nodes that are not adjacent to the first non-adjacent memory node, and the second memory node has an additional address determined by the relative physical location of the memory nodes,
The second control unit includes information including at least one of an additional address of the second memory node, an additional address of the first non-adjacent memory node, and an additional address of the second non-adjacent memory node. 2. The storage apparatus according to claim 1, wherein an output destination of the packet is determined from at least the plurality of third memory nodes and the first memory node based on.
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうちいずれか1つ以上と接続されるリレーと、
をさらに具備し、
前記リレーは、前記リレーと接続されるメモリノードの中で、前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち前記ストレージ装置内における位置情報が前記送信先アドレスと一致するメモリノードへの転送経路が最も短いメモリノードに前記パケット送信することを特徴とする請求項1に記載のストレージ装置。 One or more fourth memory nodes different from the first to third memory nodes;
A relay connected to any one or more of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes;
Further comprising
Among the memory nodes connected to the relay, the relay includes the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes. 2. The storage apparatus according to claim 1, wherein the packet is transmitted to a memory node having a shortest transfer path to a memory node whose position information in the storage apparatus matches the destination address.
をさらに具備し、Further comprising
前記リレーは、前記リレーと接続されるメモリノードの中で、前記第6のメモリノードへの転送経路が最も短いメモリノードに前記パケット送信することを特徴とする請求項2に記載のストレージ装置。The storage device according to claim 2, wherein the relay transmits the packet to a memory node having a shortest transfer path to the sixth memory node among the memory nodes connected to the relay.
前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードのうち、他のメモリノードと接続されない入力ポートを少なくとも1以上有するメモリノードに接続可能なコンピュータの総数をNcとし、前記第1のメモリノードと前記第2のメモリノードと前記複数の第3のメモリノードと前記1以上の第4のメモリノードの総数をNnodeとした場合、Nc<√Nnodeを満たすことを特徴とする請求項1に記載のストレージ装置。 One or more fourth memory nodes different from the first to third memory nodes,
Memory having at least one or more input ports not connected to other memory nodes among the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes. The total number of computers connectable to a node is Nc, and the total number of the first memory node, the second memory node, the plurality of third memory nodes, and the one or more fourth memory nodes is Nnode. 2, the storage apparatus according to claim 1, wherein Nc <√Nnode is satisfied.
前記第2の制御部は、key-value型データの各レコードを保有し、前記送信先アドレスを前記アドレス変換器により変換された前記アドレスとし、前記パケットにvalueを含めて出力する請求項1または2に記載のストレージ装置。 The second memory node further includes an address converter that converts a key included in the packet into an address;
It said second control unit, holds the record of the key-value type data, the destination address and converted the address by the address converter, according to claim 1 and outputs, including the value in the packet or 2. The storage device according to 2 .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013064768A JP5404947B2 (en) | 2013-03-26 | 2013-03-26 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013064768A JP5404947B2 (en) | 2013-03-26 | 2013-03-26 | Storage device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010252336A Division JP5238791B2 (en) | 2010-11-10 | 2010-11-10 | Storage apparatus and data processing method in which memory nodes having transfer function are connected to each other |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013224277A Division JP5628397B2 (en) | 2013-10-29 | 2013-10-29 | Storage device |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013145592A JP2013145592A (en) | 2013-07-25 |
JP2013145592A5 JP2013145592A5 (en) | 2013-09-26 |
JP5404947B2 true JP5404947B2 (en) | 2014-02-05 |
Family
ID=49041304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013064768A Expired - Fee Related JP5404947B2 (en) | 2013-03-26 | 2013-03-26 | Storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5404947B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037165B2 (en) | 2015-03-02 | 2018-07-31 | Toshiba Memory Corporation | Storage system and control method thereof |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6205923B2 (en) | 2013-07-11 | 2017-10-04 | 株式会社デンソー | Driving support device |
CN114422436B (en) * | 2021-12-14 | 2024-03-19 | 北京罗克维尔斯科技有限公司 | Gateway, gateway control method, gateway control device, electronic equipment and storage medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003174460A (en) * | 2001-12-06 | 2003-06-20 | Hitachi Ltd | Data communication method, system for performing the same and processing program therefor |
EP2383657A1 (en) * | 2005-04-21 | 2011-11-02 | Violin Memory, Inc. | Interconnetion system |
JP2009037273A (en) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | Multiprocessor system |
JP2010218364A (en) * | 2009-03-18 | 2010-09-30 | Fujitsu Ltd | Information processing system, and communication control apparatus and method |
JP4385387B1 (en) * | 2009-07-02 | 2009-12-16 | 修平 西山 | Database system with attributed key-value store |
-
2013
- 2013-03-26 JP JP2013064768A patent/JP5404947B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10037165B2 (en) | 2015-03-02 | 2018-07-31 | Toshiba Memory Corporation | Storage system and control method thereof |
US10346083B2 (en) | 2015-03-02 | 2019-07-09 | Toshiba Memory Corporation | Storage system and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2013145592A (en) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5238791B2 (en) | Storage apparatus and data processing method in which memory nodes having transfer function are connected to each other | |
US11003604B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
US8819611B2 (en) | Asymmetric mesh NoC topologies | |
US4797882A (en) | Mesh-based switching network | |
JP6060316B2 (en) | Method and system for configuring NoC and computer-readable storage medium | |
US5533198A (en) | Direction order priority routing of packets between nodes in a networked system | |
JP4713902B2 (en) | Storage system | |
JPH09153892A (en) | Method and system for communicating message in wormhole network | |
US10305825B2 (en) | Bus control device, relay device, and bus system | |
CN108111410B (en) | Method and device for constructing deadlock-free route in network with Cartesian topology | |
JP2010218364A (en) | Information processing system, and communication control apparatus and method | |
WO2021114768A1 (en) | Data processing device and method, chip, processor, apparatus, and storage medium | |
JP5404947B2 (en) | Storage device | |
JP5628397B2 (en) | Storage device | |
US20170111286A1 (en) | Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto | |
JP2015015049A (en) | Storage device | |
CN110825689B (en) | Electronic chip and implementation method thereof | |
KR100446243B1 (en) | Method and Apparatus for dispersing packet road inter board with multi link | |
CN117082014A (en) | CLOS network, construction method, transmission method, system, device and medium | |
CN118784549A (en) | Data routing method, device, computer equipment, storage medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130729 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20130729 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20130805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130820 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130919 |
|
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: 20131008 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131029 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5404947 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |