+

WO2011136261A1 - ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム - Google Patents

ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム Download PDF

Info

Publication number
WO2011136261A1
WO2011136261A1 PCT/JP2011/060238 JP2011060238W WO2011136261A1 WO 2011136261 A1 WO2011136261 A1 WO 2011136261A1 JP 2011060238 W JP2011060238 W JP 2011060238W WO 2011136261 A1 WO2011136261 A1 WO 2011136261A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
data
node
storage node
group
Prior art date
Application number
PCT/JP2011/060238
Other languages
English (en)
French (fr)
Inventor
隆史 鳥居
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US13/643,805 priority Critical patent/US20130046845A1/en
Priority to JP2012512877A priority patent/JP5803908B2/ja
Priority to EP20110775042 priority patent/EP2565791A4/en
Publication of WO2011136261A1 publication Critical patent/WO2011136261A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements

Definitions

  • the present invention relates to a storage system that holds a large amount of data, a storage system control method, and a computer program.
  • a storage that holds a large amount of data is required.
  • a company that provides a web search service employs a distributed storage technology in which a plurality of servers are arranged in parallel.
  • This distributed storage technology is a technology in which data is distributed and arranged in thousands of nodes (also referred to as “peers”) to constitute one large storage as a whole.
  • peer also referred to as “peers”
  • Distributed storage technology is not an expensive dedicated storage device, but a technology that can realize large-capacity storage by arranging multiple relatively inexpensive servers. This technology is also attracting attention in the business field.
  • metaserver method As one method for knowing the location of the node holding the data, there is a metaserver method in which a metaserver for managing the location information of the data is provided.
  • this metaserver method as the configuration of the storage system becomes large, the performance of the metaserver that detects the position of the node storing data may become a bottleneck.
  • a method for obtaining the position of the data by using a dispersion function for example, a hash function
  • a dispersion function for example, a hash function
  • This uses the distributed hash table (DHT) technology that has been used in the field of P2P (Peer to Peer) networks for a long time, and it uses key-value storage (Key-Value storage: KVS).
  • KVS key-value storage
  • an identifier for accessing data is a key (Key)
  • data is a value (Value)
  • the key (Key) is applied to a distribution function, that is, a node storing data using the key as an input value of the distribution function.
  • the position of hereinafter referred to as “data storage node” is obtained arithmetically.
  • KVS metaserver method must have location information of all data, whereas in KVS, all clients need only share the distribution function and the node list.
  • the cost of sharing the function and the node list is small, and there is no performance bottleneck. If KVS is used, there is no bottleneck due to the performance of the meta server like the meta server method, and even when the storage system becomes large, a large-capacity storage with performance expandability (scalability) can be realized (Patent Literature) 1 to 3).
  • a data storage node is determined arithmetically using a hash function (or a similar distribution function) as a distribution function.
  • overlay routing is performed by routing of a distributed hash table.
  • the existing KVS technology may not have a high degree of freedom in data arrangement. Since the KVS technology is used in a large-scale storage system, each storage is inevitably distributed and arranged in a large-scale network. Then, there may be a case where the distance on the network between the node (client) that accesses the data and the data storage node that holds the data increases. If the delay between the client and the data storage node is large, the processing speed in the storage system is also slowed down. Therefore, it is required to improve the processing speed of the storage system by arranging the client and the data storage node as close as possible. For this purpose, it is required that the data arrangement can be freely changed.
  • the second point is that the overlay routing of the distributed hash table is not linked to the actual network topology, so that inefficient routing is performed, and as a result, the performance may not be high. . In an extreme case, you can go from Tokyo to Osaka via the United States.
  • a first aspect is a method for controlling a storage system, wherein the plurality of storage nodes included in the storage system are stored in the storage system. And a second group of storage nodes sharing information on the location of the storage node storing data, and a first group of storage nodes whose network distance is within a predetermined distance range in FIG. And a logical space identifier for identifying the second group is assigned to each of the second groups, and the position in the logical space is determined by using a data identifier as an input value of a distribution function. And the second group to which an identifier corresponding to the calculated position is assigned. Storing data corresponding to said data identifier to the storage node belonging to flop.
  • Each of the plurality of storage nodes always belongs to one or more of the first groups and one or more of the second groups, and other storage nodes belong to the second group.
  • a list of all storage nodes and a list of all other storage nodes in the first group to which the storage node belongs may be stored.
  • the storage node that makes a data access request in the storage system calculates the position in the logical space using the data identifier as an input value of the distribution function, and assigns an identifier corresponding to the calculated position.
  • the selected second group is selected and another node belonging to the selected second group in the first group to which the storage node belongs is selected from the node list stored in the storage node.
  • a storage node may be searched and a data access request may be output to the other storage node searched.
  • the storage node that has received the data access request in the storage system stores the data that has received the access request in the storage node
  • the storage node that has requested the data has been requested.
  • the second group to which the storage node belongs from the node list stored in the storage node, when data is output and the data that has received the access request is not stored in the storage node
  • the other storage node storing the requested data may be retrieved, and the access request for the data may be transferred to the retrieved other storage node.
  • the storage node that has received the data access request in the storage system stores the data that has received the access request in the storage node
  • the storage node that has requested the data has been requested.
  • the second group to which the storage node belongs from the node list stored in the storage node, when data is output and the data that has received the access request is not stored in the storage node
  • the other storage node storing the requested data may be retrieved, and the retrieved other storage node may be notified to the storage node making the access request.
  • FIG. 1 is a block diagram illustrating a schematic configuration of a storage system according to an embodiment.
  • FIG. It is a figure explaining the existing KVS technique in the conventional storage system.
  • 1 is a diagram illustrating an example of a logical node configuration in a storage system according to an embodiment. It is a figure explaining the KVS technique in the storage system of one Embodiment.
  • 1 is a diagram illustrating an example of a physical configuration in a storage system according to an embodiment. It is the sequence figure which showed the flow of the data access process in the storage system of one Embodiment.
  • FIG. 1 is a block diagram showing a schematic configuration of a storage system according to the present embodiment.
  • the storage system 3 includes a plurality of storage nodes 1 that are data storage nodes. Each storage node 1 is given one or more IDs.
  • the plurality of storage nodes 1 are mapped in the storage system 3 by the management server 10 and configured as one global name space.
  • the physical position where each storage node 1 in the storage system 3 is installed is not one place, but each storage node 1 installed in a plurality of places is connected by a network or the like, for example.
  • One global namespace is configured.
  • the client 2 is a node that accesses the data in the storage system 3. Then, the client 2 accesses the storage system 3 as one large storage.
  • FIG. 2 is a diagram for explaining an existing KVS technique in a conventional storage system.
  • FIG. 2 shows a case where data storage nodes assigned with IDs “a”, “b”, “c”, and “d” are mapped on the circumference of a logical space.
  • F (Key) is obtained by multiplying the key, which is a data identifier, by the dispersion function F.
  • data corresponding to F (Key) is held in the data storage node having the ID closest in the clockwise direction from the position of F (Key).
  • FIG. 2 shows that data corresponding to F (Key) satisfying a ⁇ F (Key) ⁇ b is stored in the data storage node assigned with “b” as an ID.
  • This data storage method using the existing KVS technology has an advantage that the client only needs to share the distributed function F and the list of data storage nodes, and therefore, the client can share less information.
  • the key which is a data identifier, cannot be changed once assigned to the data, the data cannot be moved to an arbitrary data storage node, and there is no degree of freedom in data arrangement.
  • FIG. 3 is a diagram showing an example of a logical node configuration in the storage system 3 of the present embodiment.
  • each storage node 1 in the storage system 3 is grouped into two types of groups, a storage group 4 and a network group 5.
  • the management server 10 groups the storage nodes 1 in the storage system 3.
  • Storage group 4 is a group composed of storage nodes 1 that share information on the location of storage node 1 storing data based on the KVS technology used in storage system 3.
  • the network group 5 is a group determined by the management server 10 based on the network distance in the storage system 3, and the storage node 1 in which the network distance is relatively close within a predetermined distance range. It is a group composed of That is, the network distance between any two storage nodes 1 belonging to the network group 5 is a distance within a predetermined distance range.
  • Each storage node 1 in the storage system 3 belongs to one of the storage groups 4 managed by the management server 10 and simultaneously belongs to one of the network groups 5.
  • white circles indicate the storage nodes 1, and the circles representing each storage node 1 represent the identification number in the storage group 4 and the identification number in the network group 5. More specifically, among the two-digit codes in the circles representing each storage node 1, the code on the left is one storage group 4 (in FIG. 3, the storage group 4 to which the code “Y” is assigned). Represents the identification number (1, 2,..., X,..., M) of the storage node 1 in FIG. 3, and the code on the right side is assigned one network group 5 (in FIG. 3, the code “X” is assigned). Represents the identification number (1, 2,..., Y,..., N) of the storage node 1 in the network group 5).
  • FIG. 4 is a diagram for explaining the KVS technology in the storage system 3 of the present embodiment.
  • the degree of freedom of data arrangement is increased by grouping a plurality of storage nodes 1.
  • one or more IDs are assigned to each storage group 4 by the management server 10, and the storage group 4 to which the ID is assigned is mapped in the storage system 3.
  • the storage groups 4 to which the IDs “A”, “B”, “C”, and “D” are assigned are logical space circles as in the existing KVS technology shown in FIG. The case where it is mapped on the circumference is shown.
  • F (Key) is obtained by applying the data identifier Key to the distribution function F, as in the existing KVS technology shown in FIG. Then, on this circumference, the storage group 4 having the ID closest in the clockwise direction from the position of F (Key) is determined as the storage group 4 holding the data. Subsequently, it is determined which storage node 1 in the determined storage group 4 holds data, and the data corresponding to F (Key) is held in the determined storage node 1.
  • FIG. 5 is a diagram showing an example of a physical configuration in the storage system 3 of the present embodiment.
  • the network group 5 is a group of storage nodes 1 having a relatively short network distance. This network distance can be considered as, for example, the number of stages of switches on the network path. More specifically, as illustrated in FIG. 5, a storage system 3 including a plurality of racks 6 including a plurality of storage nodes 1 and switches 7 and an upper switch 8 that bundles the racks 6 is assumed. . In this case, each rack 6 corresponds to each network group 5.
  • each storage node 1 in the storage system 3 always belongs to one or more network groups 5, and at the same time, always belongs to one or more storage groups 4. Also, the storage group 4 to which each storage node 1 belongs is assigned by the management server 10 so that all storage groups 4 in the storage system 3 can be traced from the storage node 1 belonging to the network group 5. Yes. That is, the storage group 4 of each storage node 1 can be covered so that all storage groups 4 can be covered by taking the union of all storage nodes 1 in the network group 5 to which a certain storage node 1 belongs. Assigned.
  • the number of storage nodes 1 belonging to each storage group 4 or network group 5 may be different for each storage group 4 or network group 5.
  • the storage group 4 or the network group 5 of this storage node 1 can be assigned so that one storage node 1 belongs to a plurality of storage groups 4 or network groups 5.
  • Each storage node 1 uses a list of all other storage nodes 1 in the storage group 4 to which the own storage node 1 belongs and a list of all other storage nodes 1 in the network group 5 as a node list. I remember it. In each node list, the IDs of the storage group 4 and network group 5 to which each storage node 1 belongs, the address (position) information of each storage node 1, and the data stored in each storage node 1 (for example, , Data list, etc.).
  • all storage nodes 1 have a list of all storage nodes 1 in the network group 5 to which the own storage node 1 belongs and all storage nodes 1 in the storage group 4 to which the own storage node 1 belongs.
  • the list is stored in the memory of the own storage node 1. Since the total number of storage node 1 lists stored in each storage node 1 in the storage system 3 is very small compared to the conventional storage system, the memory capacity in the storage system is reduced and the maintenance cost is reduced. Reduction can be realized.
  • each storage node needs to store 1000 lists as a node list.
  • a list of the number of all storage nodes 1 in the network group 5 to which the own storage node 1 belongs and all storages in the storage group 4 to which the own storage node 1 belongs is only stored as a node list.
  • 1000 storage nodes 1 are grouped into an N group storage group 4 and an M group network group 5, respectively, and each storage node 1 is divided into one storage group 4 and one network group 5, respectively. Assume that they belong.
  • each storage node 1 only stores only a list of N storage nodes 1 in the network group 5 to which the own storage node 1 belongs and a list of M storage nodes 1 in the storage group 4.
  • the node list stored in each storage node 1 is N + M ⁇ 1 lists.
  • each storage node 1 stores 1000 lists in the conventional storage system, whereas the number of lists stored in the storage node 1 of the storage system 3 of this embodiment is about 10 minutes. This means that the memory capacity used for storing the node list in each storage node 1 is reduced.
  • alive monitoring of the storage system is periodically performed.
  • FIG. 6 is a sequence diagram showing the flow of data access processing in the storage system 3 of this embodiment.
  • the storage node 1 (hereinafter referred to as “storage node”) assigned with the identification number “1” belonging to the network group 5 (hereinafter referred to as “network group NG_X”) assigned with the code “X” shown in FIG.
  • network group NG_X the network group 5 assigned with the code “X” shown in FIG.
  • a case will be described in which data is accessed by the client 2 as “X1”).
  • the storage node X1 obtains F (Key) by multiplying the data identifier (Key) by the distribution function F (step S10). Then, the storage group 4 (hereinafter referred to as “storage group SG_Y”) to which the storage node 1 holding the data corresponding to F (Key) belongs is obtained (step S20). For example, when “A” and “B” are IDs of the storage group 4, a storage group 4 to which “B” satisfying A ⁇ F (Key) ⁇ B is assigned as an ID is obtained (see FIG. 4).
  • the storage node 1 belonging to the storage group SG_Y is obtained from the node list in the network group NG_X to which the own storage node X1 belongs (step S30).
  • a storage node XY (see FIG. 3) belonging to the storage group SG_Y in the network group NG_X is obtained.
  • the storage node X1 transmits a data request (request) to the storage node XY (step S40).
  • the storage node XY that has received the request searches whether or not the requested data is data held by the own storage node XY (step S50). If the requested data is data held by the own storage node XY, the storage node XY responds to the request from the storage node X1, and transmits the requested data to the storage node X1 (step S60). Then, the storage node X1 receives the data transmitted from the storage node XY, thereby completing the data access by the storage node X1.
  • step S50 if the requested data is not the data held by the own storage node XY, the storage node XY requests the other storage nodes 1 in the storage group SG_Y to which the own storage node XY belongs. It is determined that the processed data is distributed. Then, the storage node XY obtains another storage node 1 in the storage group SG_Y storing the data requested from the node list, and sends a request from the storage node X1 to the other storage node 1 in the storage group SG_Y. (Step S61).
  • FIG. 6 shows a case where the request is transferred to the storage node 2Y (see FIG. 3) belonging to the storage group SG_Y.
  • the method by which the storage node XY transfers the request to the other storage nodes 1 in the storage group 4 depends on the data distribution method in the storage group 4. This data distribution method will be described later.
  • the storage node 2Y to which the request has been transferred searches for the requested data from the data held by the own storage node 2Y (step S70).
  • the storage node 2Y transmits the requested data to the storage node XY (step S80).
  • the storage node XY transfers the request response and data from the storage node 2Y to the storage node X1 in the same network group NG_X (step S81).
  • the storage node X1 receives the data transferred from the storage node XY, thereby completing the data access by the storage node X1.
  • step S50 when the storage node 1 that received the request does not hold the requested data, the request is transferred to the storage node 1 that stores the requested data.
  • the storage node 1 does not transfer the request to the other storage node 1 and notifies the requesting storage node 1 of the other storage node 1. More specifically, first, in step S50, the storage node XY obtains a storage node 2Y that is another storage node 1 in the storage group SG_Y storing the data requested from the node list.
  • step S60 instead of transmitting the requested data to the storage node X1, the storage node XY notifies that the requested data is stored in the storage node 2Y in the storage group SG_Y. Then, the storage node X1 transmits (retransmits) a data request (request) directly to the notified storage node 2Y, and receives the requested data transmitted from the storage node 2Y. As described above, the storage node X1 can directly receive the data transmitted from the storage node 2Y by retransmitting the request to the storage node 2Y.
  • one storage node 1 (hereinafter referred to as “metaserver”) that manages all data arrangements in the storage group 4 is determined, and the metaserver determines all data arrangements in the storage group 4. It is a centralized metaserver system that manages centrally. Since this centralized metaserver system centrally manages data arrangement, it is easy to manage data movement and replication.
  • each storage node 1 temporarily stores (caches) the location information of the data accessed in its own storage node 1 in, for example, a cache memory, thereby making an inquiry to the meta server.
  • the data in the storage system 3 can also be accessed without performing it.
  • the second method of data distribution in the storage group 4 in the storage system 3 of the present embodiment is a hash method in which the storage node 1 is determined by a distribution function, similarly to the data arrangement between the storage groups 4. .
  • the storage node 1 is obtained from the hash value based on a hash table in which the range of the hash value and the corresponding storage node 1 are paired.
  • This method is the same as the conventional method using a hash table.
  • the storage system 3 of the present embodiment is different in that the range of hash values is divided into fine units (smallest hash values) in order to increase the degree of freedom of data arrangement.
  • the data when moving certain data to another storage node 1, the data can be moved to another storage node 1 by changing the storage node 1 corresponding to the hash value of the data to be moved on the hash table.
  • This data movement method is the same for data movement using a conventional hash table.
  • the conventional hash table does not divide the range of hash values, it is necessary to move all the data included in the range of hash values when moving the data. It may take too much.
  • the storage system 3 of this embodiment since the range of hash values is divided into fine units, only data included in the range of divided hash values can be moved, and the conventional hash table It is not necessary to move all the data as in the case of moving data using.
  • the amount of data to be moved can be reduced by dividing the hash value range into fine units, but the hash table becomes larger by dividing the hash value range.
  • the hash table size is reduced (compressed) by fusing the hash range with less access with the adjacent hash range. Can do.
  • Data movement is performed between storage nodes 1 in the same storage group 4.
  • the storage node 1 (1Y) to which the identification number “1” belonging to the storage group 4 to which the code “Y” is assigned is assigned to “m”.
  • Data is moved to any one storage node 1 up to the node 1 (mY).
  • data can be moved to any one storage node 1 in the same storage group 4.
  • the degree of freedom of data arrangement can be improved.
  • the reason for changing the data arrangement may be that the distance between the client 2 accessing the data of the storage system 3 and the storage node 1 holding the accessed data is long on the network.
  • the client 2 and the network group 5 can always find the same storage node 1 in the storage group 4.
  • the efficiency of the storage system 3 can be sufficiently improved.
  • control in the power saving mode is possible, and power saving of the storage system 3 can be realized.
  • the storage group 4 that has changed the data arrangement is not changed as a storage group. There is no need to figure out. Therefore, the cost for grasping the change in the data arrangement can be kept low, and as a result, the scalability of the entire storage system is improved. This means that the objective of reducing the distance on the network between the client 2 accessing the data of the storage system 3 and the storage node 1 holding the accessed data is sufficiently achieved. it can.
  • storage nodes are grouped into orthogonal groups of storage groups and network groups in a scalable storage system.
  • data arrangement can be performed in consideration of the network topology, and the degree of freedom of data arrangement can be improved.
  • flexible data placement can be performed. For example, by arranging processing nodes and data close to each other, the efficiency of the storage system can be improved.
  • the degree of freedom of data arrangement is improved, for example, by collecting data in a predetermined storage node, the power saving of the storage system can be realized. It is possible to increase the access speed by performing control and preventing unnecessary traffic.
  • the storage node 1 in the above embodiment may include a CPU (Central Processing Unit), a memory, a hard disk, a network interface, and the like.
  • the storage node 1 may be a server computer, a personal computer, or the like that is generally widely used. Further, the above embodiment may be implemented by software or hardware.
  • the above embodiment can be applied to, for example, a storage system that holds a large amount of data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 ストレージシステムの制御方法であって、ストレージシステムに含まれる複数のストレージノードを、該ストレージシステム内においてネットワーク的な距離が予め定められた距離の範囲内であるストレージノードからなる第1のグループと、データを格納しているストレージノードの位置の情報を共有しているストレージノードからなる第2のグループと、にグループ化し、第2のグループ毎に該第2のグループを識別する論理的な空間上の識別子を割り当て、データ識別子を分散関数の入力値として論理的な空間上の位置を算出し、算出された位置に対応する識別子が割り当てられた第2のグループに属するストレージノードに該データ識別子に対応するデータを格納する。

Description

ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム
 本発明は、大量のデータを保持するストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラムに関する。
 本願は、2010年4月28日に、日本に出願された特願2010-103859号に基づき優先権を主張し、その内容をここに援用する。
 ネット上で提供されるデータ量の増加に伴って、大量のデータを保持するストレージが必要とされている。例えば、ウェブ検索サービスを提供する企業では、複数のサーバを並列に並べた分散ストレージ技術を採用している。この分散ストレージ技術は、数千のノード(「ピア」ともいう)にデータを分散して配置し、全体として一つの大きなストレージを構成する技術である。また、分散ストレージ技術は、高価なストレージ専用装置ではなく、比較的安価なサーバを複数並べることによって大容量のストレージを実現することができる技術として、扱うデータ量が増大しているエンタープライズやキャリアの事業分野でも注目されている技術である。一部のペタ(1015)バイトを超えた大容量のデータを格納する事業分野では、ストレージ専用装置においてデータを格納することができる容量がボトルネックとなってしまうため、大量のデータ格納を実現するための方法として、分散ストレージ技術を使用するしか解がないというケースも出始めている。
 しかし、分散ストレージ技術においては、データが複数のノードに分散している。このため、データにアクセスしようとするクライアントは、まず、データを持っているノードの位置を知る必要がある。従って、近年注目されている分散ストレージ技術においては、データを保持しているノードの位置を知るための方法が、技術的なポイントとなっている。
 データを保持しているノードの位置を知るための一つの方法として、データの位置情報を管理するメタサーバを設けるメタサーバ方式がある。このメタサーバ方式では、ストレージシステムの構成が大規模になることに伴って、データを格納しているノードの位置を検出するメタサーバの性能がボトルネックになることがある。
 そのため、データを保持しているノードの位置を知るための別の方法として、分散関数(例えば、ハッシュ関数)を用いてデータの位置を求める方法が注目されている。これは、以前からP2P(Peer to Peer:ピアツーピア)ネットワークの分野で用いられている分散ハッシュテーブル(Distributed Hash Table:DHT)の技術を利用しており、キーバリューストレージ(Key-Valueストレージ:KVS)と呼ばれている。このKVSは、データにアクセスする識別子をキー(Key)、データをバリュー(Value)とし、キー(Key)を分散関数にかけて、すなわち、キーを分散関数の入力値として、データを格納しているノード(以下、「データ格納ノード」という)の位置を算術的に求める。
 KVSのメタサーバ方式との違いは、メタサーバ方式が全てのデータの位置情報をもたなければならないのに対し、KVSでは、全てのクライアントで分散関数とノードリストとを共有すればよいだけなので、分散関数とノードリストとを共有する際のコストが小さく、性能的なボトルネックがないことである。KVSを用いれば、メタサーバ方式のようなメタサーバの性能によるボトルネックがなく、ストレージシステムが大規模になった場合でも、性能拡張性(スケーラビリティ)のある大容量ストレージを実現することができる(特許文献1~3参照)。
特開2009-289161号公報 特開2009-151403号公報 特開2008-269141号公報
 既存のKVS技術では、分散関数としてハッシュ関数(あるいは、それに類似の分散関数)を用いて、算術的にデータ格納ノードが決定されている。また、DHT技術では、分散ハッシュテーブルのルーティングにより、オーバーレイルーティングが行われている。このため、既存のKVS技術を用いたストレージシステムでは、大きく分けて、例えば、以下のような2つの点がみられる。
 まず、1つ目の点は、既存のKVS技術ではデータ配置の自由度が高いとはいえないことがある点である。KVS技術は、大規模のストレージシステムで利用されるため、必然的に各ストレージが大規模ネットワークに分散して配置されることとなる。すると、データにアクセスするノード(クライアント)とデータを保持しているデータ格納ノードとのネットワーク上の距離が遠くなるケースがあり得る。クライアントとデータ格納ノードとの間の遅延が大きければ、ストレージシステムにおける処理の速度も遅くなる。このため、クライアントとデータ格納ノードとをできるだけ近くに配置することによってストレージシステムの処理速度を向上することが求められている。そのためには、データ配置を自由に変更できることが求められる。
また、データを分散させて保持するのではなく、逆にデータを予め定めたデータ格納ノードに集めて、空いているデータ格納ノードを作ることによって、ストレージシステムの省電力化を実現することも考えられる。このようなときにも、データ配置を自由に変更することができれば、ストレージシステムの省電力モードによる制御も可能となる。しかしながら、既存のKVS技術では、データ格納ノードがハッシュ関数によって決まってしまうため、例えば、あるデータを特定のデータ格納ノードに配置しようとしても、データ配置を自由に制御することができない可能性がある。
 そして、2つ目の点は、分散ハッシュテーブルのオーバーレイルーティングが実際のネットワークトポロジーと連動していないため、効率的でないルーティングがなされて、結果的に性能が高いものではないことがある点である。極端な例では、東京から大阪に行くのにアメリカを経由するというようなこともあり得る。
 従来、スケーラブルなストレージシステムにおいて、データ配置の自由度を向上させることができるストレージシステムの制御方法が求められていた。
 本発明は、例えば、以下の側面を有しても良い。ただし、以下の記述は本発明を限定するものではない。
 第1の側面はストレージシステムの制御方法であって、データを格納する複数のストレージノードによって構成されたストレージシステムの制御方法において、該ストレージシステムに含まれる前記複数のストレージノードを、該ストレージシステム内においてネットワーク的な距離が予め定められた距離の範囲内であるストレージノードからなる第1のグループと、データを格納しているストレージノードの位置の情報を共有しているストレージノードからなる第2のグループと、にグループ化し、前記第2のグループ毎に該第2のグループを識別する論理的な空間上の識別子を割り当て、データ識別子を分散関数の入力値として前記論理的な空間上の位置を算出し、前記算出された位置に対応する識別子が割り当てられた前記第2のグループに属する前記ストレージノードに該データ識別子に対応するデータを格納する。
 また、上記複数のストレージノードのそれぞれは、1つ以上の前記第1のグループと1つ以上の前記第2のグループとに必ず属し、該ストレージノードが属している前記第2のグループ内の他の全てのストレージノードのリストと、該ストレージノードが属している前記第1のグループ内の他の全てのストレージノードのリストとを、記憶してもよい。
 また、上記ストレージシステム内でデータのアクセス要求をするストレージノードは、データ識別子を分散関数の入力値として、前記論理的な空間上の位置を算出し、該算出された位置に対応する識別子が割り当てられた前記第2のグループを選択し、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第1のグループ内で前記選択した第2のグループに属している他のストレージノードを検索し、前記検索した他のストレージノードにデータのアクセス要求を出力してもよい。
 また、上記ストレージシステム内でデータのアクセス要求を受けたストレージノードは、前記アクセス要求を受けたデータを該ストレージノード内に格納している場合は、該データを要求した前記ストレージノードに要求されたデータを出力し、前記アクセス要求を受けたデータを該ストレージノード内に格納していない場合は、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第2のグループ内で要求されたデータを格納している他のストレージノードを検索し、前記検索した他のストレージノードに、前記データのアクセス要求を転送してもよい。
 また、上記ストレージシステム内でデータのアクセス要求を受けたストレージノードは、前記アクセス要求を受けたデータを該ストレージノード内に格納している場合は、該データを要求した前記ストレージノードに要求されたデータを出力し、前記アクセス要求を受けたデータを該ストレージノード内に格納していない場合は、該ストレージノードに記憶しているノードリストから、該ストレージノードが属している前記第2のグループ内で要求されたデータを格納している他のストレージノードを検索し、前記検索した他のストレージノードを、前記アクセス要求をするストレージノードに通知してもよい。
 上記側面によれば、例えば、スケーラブルなストレージシステムにおいて、データ配置の自由度を向上させることができるという効果が得られる。
一実施形態によるストレージシステムの概略構成を示したブロック図である。 従来のストレージシステムにおける既存のKVS技術を説明する図である。 一実施形態のストレージシステムにおける論理的なノード構成の一例を示した図である。 一実施形態のストレージシステムにおけるKVS技術を説明する図である。 一実施形態のストレージシステムにおける物理構成の一例を示した図である。 一実施形態のストレージシステムにおけるデータアクセス処理の流れを示したシーケンス図である。
 以下、一実施形態について、図面を参照して説明する。図1は、本実施形態によるストレージシステムの概略構成を示したブロック図である。図1において、ストレージシステム3は、データ格納ノードである複数のストレージノード1を備えている。各ストレージノード1には、1つもしくは複数のIDが付与されている。そして、これら複数のストレージノード1が、管理サーバ10によってストレージシステム3内でマッピングされて、1つのグローバルネームスペースとして構成されている。なお、ストレージシステム3内の各ストレージノード1が設置されている物理的な位置は1カ所ではなく、複数の場所に設置されている各ストレージノード1が、例えば、ネットワークなどによって接続されることによって、1つのグローバルネームスペースを構成している。
 クライアント2は、ストレージシステム3のデータにアクセスするノードである。そして、クライアント2は、ストレージシステム3を、1つの大きなストレージとみなしてアクセスする。
 ここで、既存のKVS技術について説明する。図2は、従来のストレージシステムにおける既存のKVS技術を説明する図である。図2では、それぞれ「a」、「b」、「c」、「d」というIDが付与されたデータ格納ノードが、論理的な空間の円周上にマッピングされている場合を示している。既存のKVS技術では、データ識別子であるKeyを、分散関数FにかけてF(Key)が求められる。そして、この円周上で、F(Key)の位置から右回りに最も近いIDを持つデータ格納ノードに、F(Key)に対応するデータが保持される。図2においては、a<F(Key)≦bを満たすF(Key)に対応するデータが、IDとして「b」が付与されたデータ格納ノードに格納されることを示している。
 この既存のKVS技術によるデータ格納の方法は、クライアントが、分散関数Fとデータ格納ノードのリストを共有するのみであるので、クライアントが共有する情報が少なくて済むという利点がある。しかし、データ識別子であるKeyは、一度データに付与された後に変更することができないため、任意のデータ格納ノードにデータを移動することができず、データ配置の自由度がない。
 次に、本実施形態のストレージシステム3におけるデータ格納の方法について説明する。図3は、本実施形態のストレージシステム3における論理的なノード構成の一例を示した図である。図3に示すように、本実施形態のストレージシステム3では、ストレージシステム3内の各ストレージノード1を、ストレージグループ4およびネットワークグループ5という2種類のグループにグループ化する。このストレージシステム3内における各ストレージノード1のグループ化は、管理サーバ10によって行われる。
 ストレージグループ4は、ストレージシステム3で用いるKVS技術に基づいてデータを格納しているストレージノード1の位置の情報を共有するストレージノード1で構成されたグループである。
 また、ネットワークグループ5は、ストレージシステム3におけるネットワーク的な距離に基づいて、管理サーバ10によって決定されたグループであり、ネットワーク的な距離が予め定められた距離の範囲内で比較的近いストレージノード1で構成されたグループである。すなわち、ネットワークグループ5に属する任意の2つのストレージノード1間のネットワーク的な距離は、予め定められた距離の範囲内の距離となる。
 ストレージシステム3における各ストレージノード1は、管理サーバ10によって管理されるいずれかのストレージグループ4に属していると同時に、いずれかのネットワークグループ5に属している。
 なお、図3において白抜きの○は、ストレージノード1を示しており、各ストレージノード1を表す○内には、ストレージグループ4における識別番号とネットワークグループ5における識別番号とを表している。より具体的には、各ストレージノード1を表す○内の2桁の符号のうち、左側の符号は、1つのストレージグループ4(図3においては、符号“Y”が付与されたストレージグループ4)におけるストレージノード1の識別番号(1,2,・・・,X,・・・,m)を表し、右側の符号は、1つのネットワークグループ5(図3においては、符号“X”が付与されたネットワークグループ5)におけるストレージノード1の識別番号(1,2,・・・,Y,・・・,n)を表している。
 次に、本実施形態のストレージシステム3におけるKVS技術について説明する。図4は、本実施形態のストレージシステム3におけるKVS技術を説明する図である。図4に示すように、本実施形態のストレージシステム3におけるKVS技術では、複数のストレージノード1をグループ化することによって、データ配置の自由度を増加させる。そして、ストレージシステム3では、管理サーバ10によって、各ストレージグループ4に1つもしくは複数のIDを付与され、IDを付与されたストレージグループ4を、ストレージシステム3内にマッピングする。図4では、それぞれ「A」、「B」、「C」、「D」というIDが付与されたストレージグループ4が、図2に示した既存のKVS技術と同様に、論理的な空間の円周上にマッピングされている場合を示している。
 そして、本実施形態のストレージシステム3におけるKVS技術では、図2に示した既存のKVS技術と同様に、データ識別子であるKeyを、分散関数FにかけてF(Key)を求める。そして、この円周上で、F(Key)の位置から右回りに最も近いIDを持つストレージグループ4を、データを保持するストレージグループ4と決定する。続いて、決定されたストレージグループ4内のどのストレージノード1がデータを保持するかを決定し、決定されたストレージノード1に、F(Key)に対応したデータを保持する。
 次に、本実施形態のストレージシステム3におけるネットワークグループ5について説明する。図5は、本実施形態のストレージシステム3における物理構成の一例を示した図である。上記に述べたとおり、ネットワークグループ5は、ネットワーク的な距離が比較的近いストレージノード1をグループ化したものである。このネットワーク的な距離とは、例えば、ネットワーク経路上のスイッチの段数と考えることができる。より具体的には、図5に示したように、複数のストレージノード1とスイッチ7とから構成される複数のラック6と、それぞれのラック6を束ねる上位スイッチ8からなるストレージシステム3を想定する。この場合、各ラック6がそれぞれのネットワークグループ5に相当する。
 ストレージシステム3における各ストレージノード1は、上記に述べたとおり、必ず1つ以上のネットワークグループ5に属していると同時に、必ず1つ以上のストレージグループ4に属している。また、各ストレージノード1が属するストレージグループ4は、ネットワークグループ5内に属しているストレージノード1から、ストレージシステム3における全てのストレージグループ4をたどることができるように、管理サーバ10によって割り当てられている。つまり、ある1つのストレージノード1が属するネットワークグループ5内の全てのストレージノード1の和集合をとれば、全てのストレージグループ4をカバーすることができるように、各ストレージノード1のストレージグループ4が割り当てられている。
 なお、各ストレージグループ4やネットワークグループ5に属するストレージノード1の数は、それぞれのストレージグループ4やネットワークグループ5で異なる数であってもよい。例えば、1つのストレージノード1が、複数のストレージグループ4やネットワークグループ5に属するように、このストレージノード1のストレージグループ4やネットワークグループ5を割り当てることもできる。
 各ストレージノード1は、自ストレージノード1が属しているストレージグループ4内の他の全てのストレージノード1のリストと、ネットワークグループ5内の他の全てのストレージノード1のリストとを、ノードリストとして記憶している。それぞれのノードリストには、各ストレージノード1が属しているストレージグループ4およびネットワークグループ5のIDと、各ストレージノード1のアドレス(位置)情報と、各ストレージノード1が格納しているデータ(例えば、データの一覧など)の情報が含まれている。
 次に、本実施形態のストレージシステム3において各ストレージノード1が記憶しているノードリストの数について説明する。上記に述べたとおり、全てのストレージノード1は、自ストレージノード1が属するネットワークグループ5内の全てのストレージノード1のリストと、自ストレージノード1が属するストレージグループ4内の全てのストレージノード1のリストとを自ストレージノード1のメモリ上に記憶している。ストレージシステム3において各ストレージノード1が記憶しているストレージノード1のリストの総数は、従来のストレージシステムに比べて非常に少ない数となるため、ストレージシステム内におけるメモリ容量の削減と、メンテナンスコストの削減とを実現することができる。
 より具体的には、例えば、1000台のストレージノードで構成されたストレージシステムを考える。従来のストレージシステムにおいて全てのストレージノードのノードリストを記憶する場合、各ストレージノードは、1000個のリストをノードリストとして記憶する必要がある。
 これに対して、本実施形態のストレージシステム3では、自ストレージノード1が属するネットワークグループ5内の全てのストレージノード1の個数のリストと、自ストレージノード1が属するストレージグループ4内の全てのストレージノード1の個数のリストとを、ノードリストとして記憶するのみである。例えば、1000台のストレージノード1が、Nグループのストレージグループ4、およびMグループのネットワークグループ5にそれぞれグループ化され、各ストレージノード1が、それぞれ、1つのストレージグループ4および1つのネットワークグループ5に属している場合を想定する。この場合、各ストレージノード1は、自ストレージノード1が属するネットワークグループ5内のN個のストレージノード1のリストと、ストレージグループ4内のM個のストレージノード1のリストのみを記憶するのみであるため、各ストレージノード1が記憶するノードリストは、N+M-1個のリストとなる。ここで、-1個としたのは、図3からもわかるように、自ストレージノード1のリストは、ストレージグループ4とネットワークグループ5とで重複しており、この重複を回避するためである。より具体的には、ストレージグループ4が100グループ、ネットワークグループ5が10グループであった場合には、100+10-1=109個のリストを各ストレージノード1が記憶するのみとなる。
 これは、従来のストレージシステムにおいて各ストレージノード1が1000個のリストを記憶していたのに対して、本実施形態のストレージシステム3のストレージノード1が記憶するリストの数は、約10分の1の数であり、各ストレージノード1内でノードリストの記憶に使用するメモリ容量の削減を実現していることとなる。
 また、一般的に、ストレージシステムでは、データにアクセスできない時間を極力減らすため、ストレージシステムの死活監視を定期的に行っている。このストレージシステムの死活監視では、ストレージシステム内の各ストレージノードのエラーをなるべく早く検出する必要があり、ノードリストに含まれているストレージノードが正常に稼動しているか否かという稼働状況をチェックすることによって行われている。もし、ストレージシステム内のいずれかのストレージノードにエラーが発生している、ストレージシステムのネットワークが不通になっている、などの原因によって、ストレージシステムが正常に稼動していない場合には、ノードリストの変更が必要となる。この稼働状況のチェックにかかるコストは、ノードリストに含まれるリストの数に比例して大きくなるため、リストの数が多くなると、ストレージシステム全体のスケーラビリティを大きく損なう要因となってしまう。そのため、ノードリストに含まれるリストの数を少なく保つことは、スケーラブルなストレージシステムにとっては重要な項目である。本実施形態のストレージシステム3では、各ストレージノード1がノードリストに記憶しているストレージノード1のリストの数が少ないため、メンテナンスコストの削減を実現することができる。
 次に、本実施形態のストレージシステム3において各ストレージノード1がデータを保持しているストレージノード1の検索方法について説明する。図6は、本実施形態のストレージシステム3におけるデータアクセス処理の流れを示したシーケンス図である。図6では、図3に示した符号“X”が付与されたネットワークグループ5(以下、「ネットワークグループNG_X」という)に属する識別番号“1”が付与されたストレージノード1(以下、「ストレージノードX1」という)がクライアント2となってデータにアクセスする場合について説明する。
 まず、ストレージノードX1は、データ識別子(Key)を分散関数FにかけてF(Key)を求める(ステップS10)。そして、F(Key)に対応するデータを保持しているストレージノード1が属しているストレージグループ4(以下、「ストレージグループSG_Y」という)を求める(ステップS20)。例えば、「A」、「B」をストレージグループ4のIDとすると、A<F(Key)≦Bを満たす「B」がIDとして付与されたストレージグループ4が求められる(図4参照)。
 そして、自ストレージノードX1が属するネットワークグループNG_X内で、ストレージグループSG_Yに属するストレージノード1をノードリストから求める(ステップS30)。図6では、ネットワークグループNG_X内でストレージグループSG_Yに属するストレージノードXY(図3参照)が求められたものとする。そして、ストレージノードX1は、ストレージノードXYにデータの要求(リクエスト)を送信する(ステップS40)。
 続いて、リクエストを受信したストレージノードXYは、要求されたデータが、自ストレージノードXYが保持しているデータであるか否かを検索する(ステップS50)。要求されたデータが自ストレージノードXYの保持しているデータである場合、ストレージノードXYは、ストレージノードX1からのリクエストに応答し、要求されたデータをストレージノードX1に送信する(ステップS60)。そして、ストレージノードX1が、ストレージノードXYから送信されてきたデータを受信することによって、ストレージノードX1によるデータのアクセスを完了する。
 また、ステップS50において、要求されたデータが自ストレージノードXYの保持しているデータでない場合、ストレージノードXYは、自ストレージノードXYが属しているストレージグループSG_Y内の他のストレージノード1に、要求されたデータが分散されていると判断する。そして、ストレージノードXYは、ノードリストから要求されたデータを格納しているストレージグループSG_Y内の他のストレージノード1を求め、ストレージノードX1からのリクエストを、ストレージグループSG_Y内の他のストレージノード1に転送する(ステップS61)。図6では、ストレージグループSG_Yに属するストレージノード2Y(図3参照)にリクエストが転送された場合を示している。
なお、ストレージノードXYがストレージグループ4内の他のストレージノード1にリクエストを転送する方法は、ストレージグループ4内におけるデータ分散方法に依存する。
このデータ分散方法に関しては、後述する。
 そして、リクエストが転送されたストレージノード2Yは、自ストレージノード2Yが保持しているデータから、要求されたデータを検索する(ステップS70)。そして、ストレージノード2Yは、ストレージノードXYから転送されてきたストレージノードX1からのリクエストに応答し、要求されたデータをストレージノードXYに送信する(ステップS80)。そして、ストレージノードXYは、ストレージノード2Yからのリクエストの応答とデータとを、同じネットワークグループNG_X内のストレージノードX1に転送する(ステップS81)。そして、ストレージノードX1が、ストレージノードXYから転送されてきたデータを受信することによって、ストレージノードX1によるデータのアクセスを完了する。
 なお、図6の説明においては、ステップS50において、リクエストを受信したストレージノード1が要求されたデータを保持していない場合に、要求されたデータを格納しているストレージノード1にリクエストを転送する例を説明したが、ストレージノード1が他のストレージノード1にリクエストを転送せず、要求元のストレージノード1に他のストレージノード1を通知する方法とすることもできる。より具体的には、まず、ステップS50において、ストレージノードXYは、ノードリストから要求されたデータを格納しているストレージグループSG_Y内の他のストレージノード1であるストレージノード2Yを求める。そして、ステップS60において、ストレージノードXYが要求されたデータをストレージノードX1に送信する代わりに、要求したデータがストレージグループSG_Y内のストレージノード2Yに格納されていること通知する。そして、ストレージノードX1は、通知されたストレージノード2Yに直接データの要求(リクエスト)を送信(再送信)し、ストレージノード2Yから送信されてきた要求したデータを受信する。
このように、ストレージノードX1が、ストレージノード2Yにリクエストを送信し直すことによって、ストレージノード2Yから送信されてきたデータを直接受信することができる。
 次に、本実施形態のストレージシステム3におけるストレージグループ4内のデータ分散方法について、2つの方法を説明する。まず、1つ目の方法は、ストレージグループ4内の全てのデータ配置を管理する1つのストレージノード1(以下、「メタサーバ」という)を決め、そのメタサーバがストレージグループ4内の全てのデータ配置を集中して管理する集中メタサーバ方式である。この集中メタサーバ方式は、データ配置を集中して管理するため、データの移動や複製の管理が容易である。
 この集中メタサーバ方式では、クライアント2がストレージシステム3内のデータをアクセスする際に、必ずメタサーバに対しての問い合わせが行われる。しかし、ストレージシステム3において、データを移動する頻度はそれほど多くないため、例えば、クライアント2からアクセスされるデータが特定のデータに集中している(局所性がある)可能性がある。この場合には、各ストレージノード1が、自ストレージノード1内でアクセスされたデータの位置情報を、例えば、キャッシュメモリなどに一時記憶(キャッシュ)しておくことによって、メタサーバに対しての問い合わせを行わずに、ストレージシステム3内のデータをアクセスすることもできる。
 なお、ストレージシステム3内のデータをアクセスする際に、メタサーバに対しての問い合わせを行う場合には、メタサーバの性能がボトルネックになる可能性がある。また、ストレージシステム3の構成が大規模である場合には、ストレージシステム3内のストレージグループ4がネットワークに分散しているため、ネットワークトラフィックが増えてしまう可能性がある。この場合においても、各ストレージノード1におけるキャッシュの機能と組み合わせることによって、上記に述べた欠点を解決することができる可能性が高い。
 また、本実施形態のストレージシステム3におけるストレージグループ4内のデータ分散方法の2つ目の方法は、ストレージグループ4間のデータ配置と同様に、分散関数によってストレージノード1を決定するハッシュ方式である。このハッシュ方式では、ハッシュ値の範囲と対応するストレージノード1とが組となったハッシュテーブルに基づいて、ハッシュ値からストレージノード1を求める。この方法は、従来のハッシュテーブルを用いた方法と同様である。ただし、本実施形態のストレージシステム3においては、データ配置の自由度を高めるために、ハッシュ値の範囲を細かい単位(最も小さくなるハッシュ値)に分割していることが異なる。
 例えば、あるデータを別のストレージノード1に移動するときには、ハッシュテーブル上で移動するデータのハッシュ値が対応するストレージノード1を変えることによって、データを別のストレージノード1に移動することができる。このデータの移動方法は、従来のハッシュテーブルを用いたデータの移動においても同様である。しかし、従来のハッシュテーブルでは、ハッシュ値の範囲を分割していないため、データの移動を行う際に、ハッシュ値の範囲に含まれる全てのデータを移動する必要があり、データの移動におけるコストがかかりすぎる場合がある。これに対して、本実施形態のストレージシステム3では、ハッシュ値の範囲を細かい単位に分割しているため、分割したハッシュ値の範囲に含まれるデータのみを移動することができ、従来のハッシュテーブルを用いたデータの移動のように、全てのデータを移動する必要がない。
 なお、本実施形態のストレージシステム3では、ハッシュ値の範囲を細かい単位に分割することによって、移動するデータの量を少なくすることができるが、ハッシュ値の範囲の分割によってハッシュテーブルが大きくなる。しかし、ハッシュテーブルのサイズに上限を設け、ハッシュテーブルのサイズが上限に達したときに、アクセスの少ないハッシュ範囲を隣接するハッシュ範囲と融合することによって、ハッシュテーブルのサイズを小さく(圧縮)することができる。
 次に、本実施形態のストレージシステム3において、データを移動させる場合の一例を説明する。データの移動は、同一のストレージグループ4内のストレージノード1間で行う。例えば、図3に示したノード構成の一例では、符号“Y”が付与されたストレージグループ4に属する識別番号“1”が付与されたストレージノード1(1Y)から“m”が付与されたストレージノード1(mY)までのいずれか1つのストレージノード1にデータを移動する。このように、本実施形態のストレージシステム3では、同一のストレージグループ4内のいずれか1つのストレージノード1にデータを移動することができる。
 上記に述べたとおり、本実施形態によるストレージシステム3によれば、同一のストレージグループ4内のストレージノード1間でデータを移動させることによって、データ配置の自由度を向上させることができる。また、データ配置の変更を行う理由としては、ストレージシステム3のデータにアクセスするクライアント2とアクセスされるデータを保持しているストレージノード1とにおけるネットワーク上の距離が遠いことが考えられるが、本実施形態によるストレージシステム3では、ネットワークトポロジーに応じてネットワークグループ5を設定しているため、ストレージグループ4内でクライアント2とネットワークグループ5が同じストレージノード1を必ず見つけることができる。このように、ストレージグループ4内でデータを移動することができる自由度があれば、十分にストレージシステム3の効率を向上することができる。そして、データ配置の自由度が向上することによって、省電力モードによる制御も可能となり、ストレージシステム3の省電力化を実現することもできる。
 なお、ストレージシステム内の任意のストレージノードにデータを移動することができれば、データ配置の自由度が最大となるが、その場合には、データ配置が変更されたことをストレージシステム内の全てのストレージノードが把握する必要がある。しかし、これは、ストレージシステムの構成が大規模になるにしたがって、全てのストレージノードがデータ配置の変更を把握するためのコストが上昇し、結果としてストレージシステム全体のスケーラビリティを大きく損なう要因となる。それに対して本実施形態のストレージシステム3における制御方法であれば、データ配置を変更したストレージグループ4内のストレージノード1のみがデータ配置の変更を把握していればよい。そして、データ配置の変更をしていない他のストレージグループ4内のストレージノード1にとっては、データ配置を変更したストレージグループ4であってもストレージグループとしての変更がされていないため、データ配置の変更を把握する必要がない。従って、データ配置の変更を把握するためのコストを低く抑えることができ、結果としてストレージシステム全体のスケーラビリティが向上することとなる。そして、これは、ストレージシステム3のデータにアクセスするクライアント2とアクセスされるデータを保持しているストレージノード1とにおけるネットワーク上の距離を近くするという目的を、十分に達成しているということができる。
 上記実施形態におけるストレージシステムの制御方法では、スケーラブルなストレージシステムにおいて、ストレージグループとネットワークグループという直交したグループでストレージノードをグルーピングする。ストレージグループの中ではネットワークトポロジーを考慮したデータ配置を行えるようにして、データ配置の自由度を向上させることができる。これにより、柔軟なデータ配置をすることができるため、例えば、処理ノードとデータとを近くに配置することによって、ストレージシステムの効率を向上することができる。また、上記実施形態のストレージシステムの制御方法では、データ配置の自由度が向上するため、例えば、データを予め定めたストレージノードに集めることによって、ストレージシステムの低消費電力化を実現する省電力の制御を行うことや、不要なトラフィックを防いでアクセス速度を向上させることができる。
 以上、一実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、種々の変更も含まれる。
 なお、上記実施の形態におけるストレージノード1は、CPU(Central Processing Unit)、メモリ、ハードディスク、ネットワークインタフェース、などを有してもよい。上記ストレージノード1は、一般に広く用いられるサーバコンピュータ、パソコン、などであってもよい。また、上記の実施形態はソフトウェア、もしくは、ハードウェアによって実装されてもよい。
 上記の実施形態は、例えば、大量のデータを保持するストレージシステムに適用が可能である。
1・・・ストレージノード
2・・・クライアント
3・・・ストレージシステム
4・・・ストレージグループ
5・・・ネットワークグループ
6・・・ラック
7・・・スイッチ
8・・・上位スイッチ
10・・・管理サーバ

Claims (7)

  1.  複数のストレージノードを具備するストレージシステムにおいて、
     前記各ストレージノードは、
      データを格納する第1の記憶部と、
      ネットワーク的な距離が所定の範囲内にある前記ストレージノードからなるネットワークグループと、前記データに対応するデータ識別情報に基づくストレージグループと、に関するノード情報を格納する第2の記憶部と、を具備し、
     前記各ストレージノードは、前記データのアクセス要求を受信したときに、前記ノード情報を参照して前記データへのアクセス処理を行う、ストレージシステム。
  2.  前記各ストレージノードは、該ストレージノードが属する前記ネットワークグループ内の全ての前記ストレージノードの情報と、該ストレージノードが属する前記ストレージグループ内の全ての前記ストレージノードの情報とを、前記ノード情報に記憶する、請求項1に記載のストレージシステム。
  3.  データを格納する複数のストレージノードを含むストレージシステムにおけるストレージシステムの制御方法であって、
     前記データのアクセス要求を受信したときに、ネットワーク的な距離が所定の範囲内にある前記ストレージノードからなるネットワークグループと、前記データに対応するデータ識別情報に基づくストレージグループと、に関するノード情報を参照するステップと、
     前記ノード情報に基づいて前記データへのアクセス処理を行うステップと、
     を具備する、ストレージシステムの制御方法。
  4.  前記アクセス要求を受信した前記ストレージノードにおいて、前記データ識別情報に基づいて前記ストレージグループを判定するステップと、
     前記ノード情報を参照し、前記アクセス要求を受信した前記ストレージノードが属している前記ネットワークグループ内で前記判定した前記ストレージグループに属する前記ストレージノードを検出するステップと、
     前記検出されたストレージノードに前記データへのアクセスを要求するステップと、
     前記検出されたストレージノードからの応答に基づいて前記アクセス要求に対して応答するステップと、
     を更に具備する、請求項3に記載のストレージシステムの制御方法。
  5.  前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納している場合は、前記アクセス要求に対応するデータを、前記アクセス要求を受信した前記ストレージノードに送信するステップと、
     前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納していない場合は、前記ノード情報を参照して、前記検出されたストレージノードが属する前記ストレージグループ内の他の前記ストレージノードに対して前記アクセス要求に対応するデータを要求し、前記アクセス要求を受信した前記ストレージノードに前記アクセス要求に対応するデータを送信するステップと、
     を更に具備する、請求項4に記載のストレージシステムの制御方法。
  6.  前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納している場合は、前記アクセス要求を受信した前記ストレージノードに前記アクセス要求に対応するデータを送信するステップと、
     前記検出されたストレージノードにおいて、前記アクセス要求に対応するデータを前記検出されたストレージノードが格納していない場合は、前記ノード情報を参照して、前記検出されたストレージノードが属する前記ストレージグループ内の前記アクセス要求に対応するデータを格納している他の前記ストレージノードを検索し、前記検索されたストレージノードを、前記アクセス要求を受信した前記ストレージノードに通知するステップと、
     を更に具備する、請求項4に記載のストレージシステムの制御方法。
  7.  データを格納する複数のストレージノードを含むストレージシステムにおける前記各ストレージノードのコンピュータ読み出し可能な非一時的記録媒体に格納されたコンピュータプログラムであって、
      前記データのアクセス要求を受信したときに、ネットワーク的な距離が所定の範囲内にある前記ストレージノードからなるネットワークグループと、前記データに対応するデータ識別情報に基づくストレージグループと、に関するノード情報を参照する命令と、
     前記ノード情報に基づいて前記データへのアクセス処理を行う命令と、
     を具備する、コンピュータプログラム。
PCT/JP2011/060238 2010-04-28 2011-04-27 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム WO2011136261A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/643,805 US20130046845A1 (en) 2010-04-28 2011-04-27 Storage system, control method for storage system, and computer program
JP2012512877A JP5803908B2 (ja) 2010-04-28 2011-04-27 ストレージシステム及びストレージシステムの制御方法
EP20110775042 EP2565791A4 (en) 2010-04-28 2011-04-27 STORAGE SYSTEM, CONTROL METHOD FOR STORAGE SYSTEM, AND COMPUTER PROGRAM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010103859 2010-04-28
JP2010-103859 2010-04-28

Publications (1)

Publication Number Publication Date
WO2011136261A1 true WO2011136261A1 (ja) 2011-11-03

Family

ID=44861559

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/060238 WO2011136261A1 (ja) 2010-04-28 2011-04-27 ストレージシステム、ストレージシステムの制御方法、及びコンピュータプログラム

Country Status (4)

Country Link
US (1) US20130046845A1 (ja)
EP (1) EP2565791A4 (ja)
JP (1) JP5803908B2 (ja)
WO (1) WO2011136261A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141451A (ja) * 2014-01-27 2015-08-03 富士通株式会社 記憶装置、複製方法及び複製プログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2701363B1 (en) * 2011-07-22 2015-09-02 Huawei Technologies Co., Ltd. Content processing method, device and system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280304A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2008011330A (ja) * 2006-06-30 2008-01-17 Kddi Corp データ管理装置
JP2008146119A (ja) * 2006-12-06 2008-06-26 Hitachi Ltd センサ情報処理サーバおよびセンサ情報処理システム。
JP2008269141A (ja) 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP2009151403A (ja) 2007-12-19 2009-07-09 Hitachi Ltd ストレージノード、クラスタストレージシステム及びその運用方法
JP2009289161A (ja) 2008-05-30 2009-12-10 Nippon Telegr & Teleph Corp <Ntt> クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
JP2010074604A (ja) * 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003903967A0 (en) * 2003-07-30 2003-08-14 Canon Kabushiki Kaisha Distributed data caching in hybrid peer-to-peer systems
EP1832976A4 (en) * 2004-10-12 2009-04-29 Fujitsu Ltd SOFTWARE UPGRADE PROGRAM, SOFTWARE UPGRADE DEVICE, AND SOFTWARE UPGRADING PROCEDURE
US7743214B2 (en) * 2005-08-16 2010-06-22 Mark Adams Generating storage system commands
JP2007148545A (ja) * 2005-11-24 2007-06-14 Brother Ind Ltd 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
US7870133B2 (en) * 2008-01-14 2011-01-11 Infosys Technologies Ltd. Method for semantic based storage and retrieval of information

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007280304A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP2008011330A (ja) * 2006-06-30 2008-01-17 Kddi Corp データ管理装置
JP2008146119A (ja) * 2006-12-06 2008-06-26 Hitachi Ltd センサ情報処理サーバおよびセンサ情報処理システム。
JP2008269141A (ja) 2007-04-18 2008-11-06 Nec Corp オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
JP2009151403A (ja) 2007-12-19 2009-07-09 Hitachi Ltd ストレージノード、クラスタストレージシステム及びその運用方法
JP2009289161A (ja) 2008-05-30 2009-12-10 Nippon Telegr & Teleph Corp <Ntt> クラスタ型ストレージシステム、そのノード装置、データの読み出しおよび書き込み制御方法およびそのプログラム
JP2010074604A (ja) * 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2565791A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015141451A (ja) * 2014-01-27 2015-08-03 富士通株式会社 記憶装置、複製方法及び複製プログラム

Also Published As

Publication number Publication date
EP2565791A4 (en) 2013-12-25
EP2565791A1 (en) 2013-03-06
JPWO2011136261A1 (ja) 2013-07-22
JP5803908B2 (ja) 2015-11-04
US20130046845A1 (en) 2013-02-21

Similar Documents

Publication Publication Date Title
Peng et al. VDN: Virtual machine image distribution network for cloud data centers
CN102387193B (zh) 均衡基于点对点的网络文件系统中的高速缓存负载
US10956246B1 (en) Isolated read channel management interfaces at streaming data service
US11068182B2 (en) Asynchronous semi-inline deduplication
KR101928529B1 (ko) 코드 분산 해쉬테이블 기반의 맵리듀스 시스템 및 방법
JP4068473B2 (ja) ストレージ装置、分担範囲決定方法及びプログラム
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
CN113508372B (zh) 用于分布式系统中的元数据路由的系统、方法和介质
US10908834B2 (en) Load balancing for scalable storage system
CN102609446B (zh) 一种分布式Bloom过滤系统及其使用方法
US11509700B2 (en) Stream data record reads using push-mode persistent connections
US10031682B1 (en) Methods for improved data store migrations and devices thereof
US20150106468A1 (en) Storage system and data access method
US12375556B2 (en) Isolated read channel categories at streaming data service
CN103067525A (zh) 一种基于特征码的云存储数据备份方法
CN104184812A (zh) 一种基于私有云的多点数据传输方法
JP6233403B2 (ja) ストレージシステム、ストレージ装置、ストレージ装置の制御方法及び制御プログラム、管理装置、管理装置の制御方法及び制御プログラム
JP2023541069A (ja) アクティブ-アクティブストレージシステムおよびそのデータ処理方法
US11070600B1 (en) Optimization techniques to support lagging readers at streaming data service
JP5803908B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP2010271797A (ja) 分散ストレージにおけるデータ位置管理方法及び装置及びプログラム
WO2012046585A1 (ja) 分散ストレージシステム、その制御方法、およびプログラム
Sun et al. A lightweight data location service for nondeterministic exascale storage systems
JP5278254B2 (ja) ストレージシステム、データ記憶方法及びプログラム
Gu et al. Dynamic replica placement and location strategies for data grid

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11775042

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012512877

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13643805

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2011775042

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2011775042

Country of ref document: EP

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载