WO2012046585A1 - 分散ストレージシステム、その制御方法、およびプログラム - Google Patents

分散ストレージシステム、その制御方法、およびプログラム Download PDF

Info

Publication number
WO2012046585A1
WO2012046585A1 PCT/JP2011/071857 JP2011071857W WO2012046585A1 WO 2012046585 A1 WO2012046585 A1 WO 2012046585A1 JP 2011071857 W JP2011071857 W JP 2011071857W WO 2012046585 A1 WO2012046585 A1 WO 2012046585A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
mode
nodes
client terminal
list
Prior art date
Application number
PCT/JP2011/071857
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 日本電気株式会社
Publication of WO2012046585A1 publication Critical patent/WO2012046585A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2010-224597 (filed on Oct. 4, 2010), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a distributed storage system, a control method thereof, and a program, and more particularly to a distributed storage system that saves power in some storage nodes included in the system, a control method thereof, and a program.
  • the distributed storage system has a large number of computers connected via a network, and stores and provides data using a hard disk drive (HDD: Hard Disk Drive), a memory, and the like of these computers.
  • HDD Hard Disk Drive
  • software or special hardware decides which computer will place data and which computer will process the data.
  • the resource usage in the system is adjusted and the performance for the client terminal and its users is improved.
  • nodes In a distributed storage system, data is distributed and stored in a plurality of storage nodes (hereinafter simply referred to as “nodes”). Therefore, when a client terminal accesses data, it is necessary to grasp the node holding the data. Further, when there are a plurality of nodes that hold data to be accessed, the client terminal needs to grasp which node should be accessed.
  • metaserver method As a method for a client terminal to grasp a node that holds data, a method of providing a metaserver composed of one or more computers that manage data location information (hereinafter referred to as “metaserver method”) is known.
  • the meta server method As the storage system becomes larger, the processing performance of the meta server that detects the position of the node storing the data becomes insufficient, which becomes a bottleneck in access performance.
  • the client terminal needs to access the metaserver before accessing the data storing node, and the data access time becomes long. In particular, when the metaservers are geographically separated and network access takes time, the data access time increases significantly.
  • a technique in which a part of data location information on the meta server is cached on a client terminal or other computer that performs access.
  • the client terminal can directly access the data storage node without accessing the meta server.
  • the cache includes a synchronous cache and an asynchronous cache.
  • changes to the location information (original) on the meta server are applied to the cache synchronously.
  • changes to the location information (original) on the meta server are not applied to the cache synchronously. That is, according to the asynchronous cache, the client terminal may erroneously access a node that does not hold data according to the old position information.
  • a method for the client terminal to grasp the node holding the data there is a method for obtaining the position of the data using a distribution function (for example, a hash function).
  • a distribution function for example, a hash function
  • distributed KVS Key Value Storage
  • all client terminals share a distributed function and a list of nodes participating in the system (node list).
  • the stored data is divided into fixed-length or arbitrary-length data fragments (Value, value), and each Value is given an identifier (Key, key) for uniquely identifying it.
  • the client terminal gives a key to the distribution function as an input, and stores the data based on the output value of the distribution function and the node list (hereinafter referred to as “data storage node”). Is calculated arithmetically.
  • the distribution function of information shared between client terminals does not change over time.
  • the contents of the node list are changed with the failure or addition of a node.
  • the system performance decreases when the number of client terminals is large.
  • the number of nodes is tens of thousands
  • the number of client terminals is also tens of thousands to hundreds of thousands. Therefore, it takes a very long time to update information synchronously during all calculation periods.
  • the node list held by each client terminal is an asynchronous cache.
  • the distributed storage system can support a large number of client terminals.
  • the client terminal can access the data node according to the node list held by the client terminal.
  • the client terminal may access a node that does not hold data.
  • Non-Patent Document 1 when a client terminal accesses a node excluded from the system due to a failure, it detects that a response is not returned for a certain period of time (timeout), and uses another normal node. To continue processing.
  • this node list may be an asynchronous cache for the same reason as described above.
  • the storage system can be made to save power by changing the rotational speed of the HDD or by stopping the power of the disk or controller.
  • a method of saving power by operating some computer nodes in a power saving mode is similar to the node failure control in that the node whose power is stopped cannot respond to the access from the client terminal.
  • a method of switching access to another node is known.
  • Virtual IP address technology can be used to switch the addresses of a plurality of nodes. That is, a technique for updating an ARP table in the same network using a GARP (Gratuituous ARP) packet or a technique based on a virtual LAN (VLAN) can be used.
  • GARP Geographical ARP
  • VLAN virtual LAN
  • Patent Literature 3 and Patent Literature 4 each describe a load distribution method using a virtual IP address function based on GARP.
  • Patent Document 5 describes a method for realizing a virtual IP address using a VLAN. Note that the power saving control for the distributed storage system is different from the case of the node failure in that the system can grasp in advance that the node will not respond.
  • JP 2005-539303 A Special table 2003-517221 gazette Japanese Patent No. 3930516 Japanese Patent No. 4015770 Japanese Patent No. 3825333
  • the client terminal may hold an asynchronous cache of the node list or data position information. That is, the client terminal may erroneously access a node in the power saving mode based on the node list or data position information before the change.
  • the controller in the case can process the access request and, when receiving access to a different HDD, can transfer it to the appropriate HDD.
  • a node in the power saving mode cannot respond to an access request. Therefore, the client terminal needs to wait for a response for a predetermined timeout time, and then needs to access another node, for example, a node holding backup data.
  • the response performance of the system will decrease. Therefore, in order to maintain the response performance of the system, a method of shortening the timeout time can be considered. However, if the timeout time is made too short, failure processing and access transfer processing occur when the response performance deteriorates when the node is heavily loaded, in addition to stopping the node. Therefore, it is difficult to shorten the timeout time.
  • An object of the present invention is to provide a distributed storage system, a control method thereof, and a program for solving such a problem.
  • the distributed storage system is: Multiple nodes each storing objects, A first node list that holds identifiers of nodes that can be accessed from client terminals of the plurality of nodes; The operation mode of each of the plurality of nodes is changed between a first mode that can be accessed from a client terminal and a second mode that cannot be accessed from a client terminal, and the first node list And a control device for updating The plurality of nodes are respectively accessed by client terminals that reference a second node list that is updated asynchronously based on the first node list; The control device processes access from the client terminal to the first node when the operation mode of the first node of the plurality of nodes is changed from the first mode to the second mode. Instructing the second node of the plurality of nodes and deleting the identifier of the first node from the first node list, the operation mode of the first node is set to the first node The mode is changed to the second mode.
  • the control method is: The first mode in which the computer is included in the distributed storage system and each of the operation modes of the plurality of nodes storing the objects can be accessed from the client terminal and the second mode cannot be accessed from the client terminal And updating a first node list that holds identifiers of nodes that can be accessed from client terminals of the plurality of nodes; Operation of the first node of the plurality of nodes when the plurality of nodes are respectively accessed by client terminals referring to a second node list that is updated asynchronously based on the first node list Instructing the second node of the plurality of nodes to process access from the client terminal to the first node when changing the mode from the first mode to the second mode. And, after deleting the identifier of the first node from the first node list, changing the operation mode of the first node from the first mode to the second mode.
  • the program according to the third aspect of the present invention is: Between the first mode that can be accessed from the client terminal and the second mode that cannot be accessed from the client terminal, the respective operation modes of the plurality of nodes that are included in the distributed storage system and store the objects respectively And updating the first node list holding the identifier of the node that can be accessed from the client terminal of the plurality of nodes, Operation of the first node of the plurality of nodes when the plurality of nodes are respectively accessed by client terminals referring to a second node list that is updated asynchronously based on the first node list Instructing the second node of the plurality of nodes to process access from the client terminal to the first node when changing the mode from the first mode to the second mode.
  • the program can be provided as a program product recorded on a non-transient computer-readable storage medium (non-transient computer-readable storage medium).
  • a client that refers to a node list that is asynchronously updated based on a node list that indicates whether or not a client terminal can access a node included in the distributed storage system.
  • the service level of the distributed storage system for the client terminal can be prevented from being lowered.
  • FIG. 2 is a block diagram showing in detail a configuration of a node in the distributed storage system according to the first embodiment.
  • FIG. It is a figure which shows the node list in the distributed storage system which concerns on 1st Embodiment as an example.
  • FIG. 6 is a sequence diagram showing an object read operation in the distributed storage system according to the first embodiment.
  • FIG. 5 is a sequence diagram showing an object write operation in the distributed storage system according to the first embodiment.
  • FIG. 1 is a block diagram which shows the structure regarding node power saving in the distributed storage system which concerns on 1st Embodiment.
  • FIG. 5 is a sequence diagram showing a node power saving operation in the distributed storage system according to the first embodiment.
  • FIG. 7 is a sequence diagram showing a normal node operation operation in the distributed storage system according to the first embodiment. It is a block diagram which shows the structure regarding the object access in the distributed storage system which concerns on 2nd Embodiment. It is a block diagram which shows the structure regarding the storage and access of data in the distributed storage system which concerns on 3rd Embodiment.
  • a distributed storage system According to the first deployment mode, a distributed storage system according to the first aspect is provided.
  • the second node can process access to the first node. Therefore, according to such a distributed storage system, a client terminal refers to a node list that is asynchronously updated based on a node list that indicates whether or not a node included in the distributed storage system can be accessed from a client terminal.
  • the service level of the distributed storage system for the client terminal can be prevented from being lowered.
  • the control device when the operation mode of the first node is changed from the second mode to the first mode, the control device should be written to the first node held by the second node.
  • a distributed storage system is provided that transfers objects from a second node to a first node. According to such a distributed storage system, an object held by another node instead of the original node can be stored in the original node when access from the client terminal becomes possible.
  • a distributed storage system in which the power consumption in the second mode of each of the plurality of nodes is lower than the power consumption in the first mode. According to such a distributed storage system, it is possible to maintain the service level for the client terminal while reducing the power consumption of the distributed storage system.
  • the control device when the first node and the second node are connected to different networks, the control device is connected to the same network as the first node of the plurality of nodes.
  • a distributed storage system is provided that instructs the third node and the second node to process access from the client terminal to the first node via the configured third node. According to such a distributed storage system, the service level for the client terminal can be maintained in the distributed storage system across a plurality of networks.
  • the control method according to the second viewpoint is provided.
  • the program may be stored in a computer-readable recording medium.
  • the distributed storage system according to the first embodiment will be described with reference to the drawings.
  • the distributed storage system of the present embodiment uses a node list cache.
  • FIG. 1 is a block diagram showing a configuration relating to data storage and access in the distributed storage system of this embodiment.
  • the distributed storage system includes a client terminal 90 connected to a network 60, nodes 10 to 30, a node list (original) 55, and a node list synchronization control unit 56.
  • the network 60 has an access route determination unit 62.
  • the number of nodes is three, but the number of nodes is not limited to this.
  • the nodes 10, 20, and 30 include data transmission / reception units 11, 21, and 31 and data storage units 12, 22, and 32, respectively.
  • the network 60 includes an access route determination unit 62.
  • the client terminal includes a data transmission / reception unit 91, a data transmission / reception node determination unit 92, and a node list (replication) 93.
  • FIG. 2 is a block diagram showing in detail the configuration of each of the nodes 10, 20, and 30 in FIG.
  • a user computer H5 is connected to data processing computers H11 to H13 via a network H4.
  • the network H4 and the user computer H5 in FIG. 2 correspond to the network 60 and the client terminal 90 in FIG. 1, respectively.
  • the CPU H1Xa realizes the function of each unit in the distributed storage system of this embodiment together with the software.
  • the data storage devices H11b to H13b are, for example, HDD, flash memory, DRAM (Dynamic Random Access Memory), MRAM (Magnetic Resistant Random Access Memory), FeRAM (Ferroelectric Random Access Memory RAM), FeRAM (Ferroelectric Random Access Memory RAM). And a controller that records data on a physical medium that can record data, such as a storage device, a magnetic tape, or a medium installed outside a node.
  • the network H4 and the data transfer apparatuses H11c to H13c are, for example, Ethernet (registered trademark), Fiber Channel or FCoE (Fibre Channel over Ethernet (registered trademark)), InfiniBand, QsNet, Myrnet, or TCP / IP using these. It can be realized by an upper protocol such as RDMA. However, the implementation methods of the network H4 and the data transfer devices H11c to H13c are not limited to these.
  • the stored data is stored in the data storage units 12, 22, and 32 of the nodes 10, 20, and 30 as a set of fixed-length or semantically separated data fragments (hereinafter referred to as “objects”).
  • Each object is given a unique identifier (key).
  • the client terminal 90 acquires desired data by designating a key.
  • a copy of each object can be stored in multiple nodes.
  • redundant code information calculated based on the object may be stored in another node. Redundant code information is used to prevent data loss in the event of a node failure.
  • Examples of objects include, for example, a file system file, a set of metadata related to the file, a tuple or table of a relational database, data of an object database, a value of a key-value data storage system, and a tag of an XML document Content, RDF document resources, Google App Engine data entities, Microsoft Windows Azure queue, messages, Cassandra's Wide Column Store column, JSON (JavaScriptObjectBONSJonObjectJB) It is done.
  • the objects in the present invention are not limited to these objects.
  • the data transmission / reception unit 91 of the client terminal 90 identifies a node having the data from an identifier for identifying the node (hereinafter referred to as “node identifier”) and a data key, and transmits or receives data.
  • node identifier an identifier for identifying the node
  • data key a data key
  • the access route determination unit 62 included in the network 60 receives the request information including the node identifier from the data transmission / reception unit 91 and transmits the request information to the node specified by the node identifier.
  • the node identifier may be a pair of an IP address and a port number. Further, when a port number is determined in advance, an IP address may be used as a node identifier.
  • the data transmission / reception unit 91 sends an IP packet requesting a TCP connection to a designated port of the computer having the IP address.
  • the access route determination unit 62 has a router on the network 60, a routing table on each computer, and an ARP (Address Resolution Protocol) table.
  • the destination IP address can be obtained from the routing table according to the IP address.
  • the destination IP address is converted into a MAC (Media Access Control) address assigned to the Ethernet port of the computer or router according to the ARP table in the client terminal 90.
  • MAC Media Access Control
  • the client terminal 90 broadcasts an ARP request packet including the IP address to the network 60. At this time, only the destination computer or router to which the IP address is assigned returns an ARP reply packet including the MAC address of the Ethernet port corresponding to the IP address of the destination computer or router to the client terminal 90.
  • the client terminal 90 transmits a TCP connection request packet to the MAC address, and thereafter performs transmission / reception according to the TCP protocol.
  • the destination is a router, the same IP address and MAC address conversion as described above is performed in the router between the client terminal 90 and the destination computer, and communication is performed.
  • a computer may be connected by an open flow technique.
  • the router or switch that can rewrite the route information from the outside uses the ID representing the IP address of the packet or the destination computer based on the route information. Based on this, information is made to reach the destination computer.
  • the data transmitting / receiving unit 91 and the access route determining unit 62 are not limited to these.
  • the node list synchronization control unit 56 propagates the node list (original) 55 and the update of the node list (original) 55 to the node list (duplicate) 93.
  • the node list (original) 55 and the node list synchronization control unit 56 may be provided in each node, or may be provided in a dedicated computer.
  • the node list synchronization control unit 56 may be provided in the client terminal 90.
  • the node list (original) 55 holds a list of node identifiers for nodes participating in the distributed storage system.
  • FIG. 3 is a diagram illustrating a node list as an example.
  • the node list may be a list of node names.
  • the node list may be a list of node IP addresses.
  • the node list may be a list of node addresses and port numbers.
  • the node list may be a list of node names and node addresses.
  • the node list depends on the implementation of the data transmission / reception unit 91 and is not limited to the mode shown in FIG.
  • the node list (copy) 93 of the client terminal 90 is an asynchronous copy of all or part of the node list (original) 55.
  • asynchronous means that the contents of the node list (original) 55 are updated from the first version N1 to the second version N2, and even after the update is reflected,
  • This is a control method in which the client terminal 90 that has read the content may acquire the content of the first version N1.
  • a method of matching the contents between the node lists every 30 seconds between the node list (original) 55 and the node list (replication) 93 is conceivable.
  • the node list (original) 55 and the node list (duplicate) 93 all include the node 10, the node 20, and the node 30.
  • the node 20 fails at a certain time T1 and the node 20 is deleted from the node list (original) 55.
  • the client terminal 90 holding the node list (duplicate) 93 accesses the object at time T2 15 seconds after the time T1, the node 20 may be acquired from the node list (duplicate) 93.
  • FIG. 4 is a sequence diagram showing a data reading operation from the client terminal 90 in the distributed storage system of the present embodiment.
  • the data transmission / reception node determination unit 92 of the client terminal 90 reads the node list from the node list (replica) 93 (step S11). If the client terminal 90 does not hold the node list (copy) 93, the client terminal 90 reads the node list (original) 55 (step S12).
  • the data transmission / reception node determination unit 92 determines the node to be accessed based on the key of the object to be read and the copy information of the node list including the node identifier (step S13).
  • the data transmission / reception node determination unit 92 can use a consistent hash method as an example when determining a node to access.
  • a consistent hash method a hash function h (x) that takes an object key or a node identifier as an argument is defined.
  • the node list may store a hash value of the node identifier.
  • the data transmission / reception node determination unit 92 calculates a hash value h (k) for the object key k to be read.
  • the data transmission / reception node determination unit 92 sets the node indicated by the node identifier n1 as the access target node.
  • the data transmission / reception node determination unit 92 can also use a distributed hash table method.
  • the node list in addition to the node identifier, the node list includes a range of output values when an object key is input to the hash function h2 (x), and a node identifier of a node storing an object group in the range Is granted.
  • the data transmission / reception node determination unit 92 determines, as an access target node, a node that handles a range of hash values for an object key to be read. Note that the data transmission / reception node determination unit 92 may employ a method other than the consistent hash method and the distributed hash table method.
  • the data transmission / reception node determination unit 92 may be able to select one or more nodes. By transferring in parallel from a plurality of nodes, an object can be acquired at high speed.
  • a plurality of duplicate objects may be updated by a majority protocol.
  • the majority voting protocol if writing of the majority of duplicate objects succeeds, the process can continue even if the remaining duplicate objects are old versions.
  • the data transmission / reception node determination unit 92 may use a majority of the plurality of nodes as the access target node.
  • the consistent hash method is used as a method for determining a plurality of nodes, h (k) node, h (h (k)) node, h (h (h (k)) Like a node of)
  • a node to which a hash function is applied a plurality of times can be set as an access target.
  • a list of nodes in which a duplicate object of each node is stored is assigned to the node list, and a plurality of nodes may be selected based on the list.
  • FIG. 5 is a sequence diagram showing a data write operation from the client terminal 90 in the distributed storage system of this embodiment.
  • the data write operation is different from the data read operation (FIG. 4) in the node determination operation when a plurality of duplicate objects are distributed and arranged in different nodes. For example, all duplicate objects may be updated synchronously.
  • FIG. 6 is a block diagram showing a configuration relating to power saving control and access transfer of a node in the distributed storage system of this embodiment.
  • the distributed storage system further includes a control device 50 and an access destination change unit 61.
  • the control device 50 includes a node management unit 51, an access change unit 52, and an operation mode change unit 53.
  • the power consumption of the entire system is reduced by changing the power mode of some of the nodes 10, 20, and 30 to reduce the power consumption. Further, the access to the node in the power saving mode is processed by another node that can receive the access, thereby maintaining the data access service of the distributed storage system.
  • the node 10 is a power saving node and the node 20 is a node that temporarily receives access to the node 10 (hereinafter referred to as “temporary storage node”).
  • the nodes 10 and 20 have power control units 13 and 23, respectively. Receiving the operation mode change instruction information, the power control units 13 and 23 change the power modes of the nodes 10 and 20, respectively.
  • the power saving mode is a state in which the power consumption of the nodes 10 and 20 is reduced by reducing the power consumption of all or part of the components constituting the nodes 10 and 20 or by cutting off the power supply.
  • power saving modes S1, S3, and S4 are defined in addition to the normal S0 mode.
  • the power supply control unit 13 can use the ACPI implementation part.
  • the power consumption of the node 10 can be reduced by reducing the power of the HDD.
  • the power consumption of the node 10 can be reduced by normally shutting down the computer of the node 10 and turning off the power of the node 10. Note that the method of power control by the power supply control unit 13 is not limited to these methods.
  • the temporary storage node 20 includes a temporary data receiving unit 25 and a temporary data management unit 26 in order to temporarily receive access addressed to the node 10.
  • the access destination change unit 61 changes information related to the access destination determination of the access route determination unit 62.
  • the control device 50 determines which node is to be stopped and controls the stop of the node.
  • the operation mode change unit 53 sends operation mode change instruction information to the power supply control unit 13 of the node 10.
  • the access changing unit 52 controls the access destination changing unit 61 to change the information of the access route determining unit 62 and transmits the power saving node identifier to the temporary data receiving unit 25 of the temporary storage node 20.
  • the node management unit 51 controls the temporary data management unit 26 to temporarily store data addressed to the power saving node.
  • the node management unit 51 Send retained data.
  • the control device 50 can be realized, for example, as a program on a computer constituting each node.
  • the control device 50 can also be realized as a program on one or more dedicated computers.
  • the implementation method of the control apparatus 50 is not limited to these.
  • FIG. 7 is a sequence diagram showing a node power saving mode transition operation.
  • the method for determining the power saving node and the temporary storage node is not particularly limited.
  • the power saving node and the temporary storage node should not be the same node.
  • One temporary storage node may store data of a plurality of power saving nodes.
  • an object set for one power saving node may be divided into a plurality of pieces, and a temporary storage node may be assigned to each.
  • the node 10 is a power saving node and the node 20 is a temporary storage node.
  • the node manager 51 generates the temporary data receiver 25 and the temporary data manager 26 in the node 20 (step S31).
  • the temporary data receiving unit 25 detects that the request is addressed to the node 10 and passes it to the temporary data management unit 26.
  • the temporary data management unit 26 holds the data in the node 20.
  • the data storage unit 22 in the node 20 may hold data addressed to the node 10. Further, a data storage unit dedicated to data addressed to the power saving node may be provided separately.
  • the node management unit 51 requests the data transmission / reception unit 11 of the node 10 to stop the service associated with the power saving mode change (step S32).
  • the data transmitting / receiving unit 11 of the node 10 ends the data providing / holding service.
  • subsequent access to the node 10 uses another node.
  • the node 10 After the service ends, for example, the node 10 returns a node service end notification including the node identifier of the node 20 to the client terminal 90 or the node that is the access transmission source.
  • the client terminal 90 that has received the node service end notification retransmits access to the duplicate object holding node in the case of a data read request, and retransmits access to the node 20 in the case of a data write request.
  • the node 10 after the service ends transfers the access to the duplicate object holding node when the access is a data read request, and transfers the access to the node 20 when the access is a data write request. You may make it do. Thereafter, the node 10 relays communication between the transfer destination node and the client terminal 90 as necessary.
  • the node management unit 51 updates the node list (original) 55 (step S33).
  • the information in the node list (original) 55 is changed, and it is added that the data write request addressed to the node 10 is temporarily received by the node 20.
  • This update is asynchronously propagated to each node list (replica) 93 according to a node list synchronization mechanism provided in the system.
  • a request may be transmitted to the node 10. However, since the node 10 has already stopped the service, this request is forwarded to the node 20 and the node holding the duplicate object as described above.
  • the access changing unit 52 requests the access destination changing unit 61 to change the access destination of the request addressed to the node 10 to the node 20 (step S35).
  • the network 60 is TCP / IP on the Ethernet
  • such a request broadcasts a GARP request (or GARP reply) from the process on the node 20 to the network 60 and receives the GARP request / reply.
  • GARP request or GARP reply
  • This can be realized by updating the ARP table of the internal computer.
  • the network 60 uses the OpenFlow technology, the flow addressed to the node 10 can be made to reach the computer of the node 20 by requesting the OpenFlow controller to change the path information.
  • another data receiving unit for receiving a request from the operation mode changing unit 53 described later is provided on the node 10 as necessary.
  • the IP address used by the node 10 is replaced with the node 20. Therefore, it is necessary to open a TCP standby process with another address.
  • the operation mode change unit 53 transmits operation mode change instruction information to the power supply control unit 13 of the node 10 (step S36).
  • the power control unit 13 of the node 10 changes the power mode of the node 10 to the power saving mode. At this point, access to the node 10 has already reached the node 20.
  • FIG. 8 is a sequence diagram showing a return operation from the node power saving mode.
  • the operation mode change unit 53 causes the node 10 to transition to the normal operation mode via the power control unit 13 of the node 10 (step S41).
  • the node management unit 51 instructs the temporary data management unit 26 of the node 20 to apply the update data in the power saving mode to the node 10 (step S42).
  • the object in the data storage unit 12 of the node 10 is updated to the latest state by the temporary data management unit 26 of the node 20 and the data transmission / reception unit 11 of the node 10.
  • the update of the temporary data receiving unit 25 in the node 20 during this period is sequentially applied to the node 10.
  • the temporary data receiving unit 25 of the node 20 sets the subsequent access to be transferred to the node 10.
  • the node 10 resumes the service.
  • the access changing unit 52 changes the access route determining unit 62 via the access destination changing unit 61 so that a request addressed to the node identifier of the node 10 reaches the node 10 (step S43).
  • the node management unit 51 updates the node list (original) 55 (step S45) and changes the node 10 so that it receives a data write request addressed to the node 10. As described above, the node 10 returns to the distributed storage system.
  • the node 10 waits for the timeout of the node 10. Instead, the access is processed by the node 20 or the replica holding node.
  • each node has the power saving mode and the non-power saving mode, the access timeout from the client terminal is small, and even when some nodes are stopped, the data Redundancy and data writing performance can be maintained. This is because the access to the power saving node that cannot respond to the access can be transferred to the temporary storage node by the access destination change unit and the access route determination unit. At this time, the temporary storage node can respond to the access without waiting for a timeout.
  • the temporary storage node temporarily holds data related to write access to the power saving node, and transmits the data to the power saving node after the power saving node returns to the normal mode. Therefore, the data writing service is not stopped, and data redundancy can be maintained.
  • data redundancy and data writing performance can be maintained even when the access timeout from the client terminal is small and some nodes are stopped. it can.
  • FIG. 9 is a block diagram showing a configuration relating to data storage and access in the distributed storage system using the data arrangement information according to the present embodiment.
  • the distributed storage system of this embodiment includes data arrangement information (original) 85 and data arrangement information (replication) 87 instead of the node list (original) 55 and node list (replication) 93 in the first embodiment.
  • a data arrangement information synchronization control unit 86 is provided instead of the node list synchronization control unit 56.
  • the data arrangement information (original) 85 holds information for acquiring a corresponding node from the object key.
  • the data transmission / reception node determination unit 92 refers to the data arrangement information (replication) 87 instead of the node list (replication) 93 to determine the data transmission / reception node.
  • the data arrangement information (original) 85 is constituted by, for example, a meta server.
  • the metaserver holds an index structure such as B + -Tree and a hash index, and acquires a corresponding node identifier from the object key.
  • the configuration other than these is the same as the configuration in the distributed storage system of the first embodiment.
  • the operation of the distributed storage system of the first embodiment is that the node management unit 51 updates the data arrangement information (original) 85 instead of the node list (original) 55. , FIG. 8).
  • the node The processing is performed by the node 20 or the replication holding node without waiting for the timeout of 10.
  • the access timeout from the client terminal is small, and the data redundancy and the data writing performance can be maintained even when some nodes are stopped. .
  • FIG. 10 is a block diagram showing a configuration relating to data storage and access in the distributed storage system using the node list cache according to the present embodiment.
  • a part of the nodes constituting the distributed storage system is connected to the second network 70 that is outside the range of the access path determination unit 62.
  • the node 10, the node 30, and the client terminal 90 are connected to the first network 60.
  • the node 20 is connected to the second network 70.
  • the access destination change unit 61 can change only the access route determination unit 62 in the first network 60.
  • the configuration other than these is the same as the configuration of the distributed storage system of the first embodiment.
  • the problem can be solved by the same method.
  • the node list in the following description is read as data arrangement information.
  • the transition to the power saving mode when the node that transitions to the power saving mode and the temporary storage node are connected to different networks will be described.
  • one or more nodes (here, referred to as node 30) existing in the same network 60 as the node 10 are determined before the time when the access destination is changed (time T1 in FIG. 7).
  • an access transfer means for receiving an access addressed to the node 10 and transferring it to the node 20 is created on the node 30.
  • the access changing unit 52 changes the access route determining unit 62 via the access destination changing unit 61.
  • the access destination of the node 10 is changed to the node 30. This is because the node 20 serving as the temporary storage node is connected to a different network 70 and the access destination cannot be changed to the node 20.
  • Other processes of the power saving mode transition process are the same as those in the first embodiment.
  • a client terminal that refers to old data arrangement information (replication) 87 in which updates are not propagated Even in the case of access from 90, processing is performed by the node 30 and the replication holding node without waiting for the node 10 to time out.
  • the access timeout from the client terminal is small, and the data redundancy and the data writing performance can be maintained even when some nodes are stopped. .
  • the data storage system according to the present invention can be applied to parallel databases, parallel data processing systems, distributed storage systems, parallel file systems, distributed databases, data grids, and cluster computers.
  • a plurality of nodes each storing an object;
  • a first node list that holds identifiers of nodes that can be accessed from client terminals of the plurality of nodes;
  • the operation mode of each of the plurality of nodes is changed between a first mode that can be accessed from a client terminal and a second mode that cannot be accessed from a client terminal, and the first node list
  • a control device for updating The plurality of nodes are respectively accessed by client terminals that reference a second node list that is updated asynchronously based on the first node list;
  • the control device processes access from the client terminal to the first node when the operation mode of the first node of the plurality of nodes is changed from the first mode to the second mode.
  • the operation mode of the first node is set to the first node A distributed storage system, wherein the mode is changed from the mode to the second mode.
  • the first mode in which the computer is included in the distributed storage system and each of the plurality of nodes storing the objects can be accessed from the client terminal and cannot be accessed from the client terminal.
  • the computer includes instructing the third node and the second node to process access from the client terminal to the first node via the node.
  • the control method according to any one of 5 to 7.
  • a first mode that can be accessed from a client terminal and a second mode that cannot be accessed from a client terminal, for each operation mode of a plurality of nodes that are included in the distributed storage system and store objects respectively A process of updating a first node list that holds an identifier of a node that can be accessed from a client terminal among the plurality of nodes, and Operation of the first node of the plurality of nodes when the plurality of nodes are respectively accessed by client terminals referring to a second node list that is updated asynchronously based on the first node list Instructing the second node of the plurality of nodes to process access from the client terminal to the first node when changing the mode from the first mode to the second mode. Causing the computer to execute a process of changing the operation mode of the first node from the first mode to the second mode after deleting the identifier of the first node from the first node list.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 オブジェクトを格納する複数のノードと、クライアント端末からアクセス可能なノードの識別子を保持する第1のノードリストと、各ノードの動作モードをクライアント端末からアクセス可能な第1のモードとアクセス不能な第2のモードとの間で変更するとともに第1のノードリストを更新する制御装置とを備え、各ノードは、第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末からそれぞれアクセスされ、制御装置は、第1のノードの動作モードを第1のモードから第2のモードへ変更する際に、第1のノードへのアクセスを第2のノードに処理するように指示するとともに第1のノードリストから第1のノードの識別子を削除した後、第1のノードの動作モードを変更する。アクセス不能なノードへアクセスしたクライアント端末に対するサービスレベルを維持する。

Description

分散ストレージシステム、その制御方法、およびプログラム
[関連出願についての記載]
 本発明は、日本国特許出願:特願2010-224697号(2010年10月04日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、分散ストレージシステム、その制御方法、およびプログラムに関し、特に、システムに含まれる一部のストレージノードを省電力化する分散ストレージシステム、その制御方法、およびプログラムに関する。
 分散ストレージシステムは、ネットワークを介して接続された多数の計算機を有し、これらの計算機のハードディスクドライブ(HDD:Hard Disk Drive)、メモリ等を用いて、データの格納およびデータの提供を行う。分散ストレージシステムでは、いずれの計算機にデータを配置し、いずれの計算機によってデータを処理するのかを、ソフトウェアまたは特別なハードウェアが決定する。また、分散ストレージシステムの動作を動的に変更することにより、システム内のリソース使用量を調整するとともに、クライアント端末およびその利用者に対する性能を向上させる。
 分散ストレージシステムにおいては、データは複数のストレージノード(以下、単に「ノード」という。)に分散して格納されている。したがって、クライアント端末がデータにアクセスする場合には、データを保持しているノードを把握する必要がある。また、アクセス対象のデータを保持するノードが複数存在する場合には、クライアント端末は、いずれのノードにアクセスすべきかを把握する必要がある。
 データを保持しているノードをクライアント端末が把握する方式として、データの位置情報を管理する1又は2以上の計算機から成るメタサーバを設ける方式(以下「メタサーバ方式」という。)が知られている。メタサーバ方式によると、ストレージシステムが大規模になるに従って、データを格納しているノードの位置を検出するメタサーバの処理性能が不足し、アクセス性能上のボトルネックとなる。また、メタサーバ方式によると、クライアント端末はデータを格納するノードにアクセスする以前にメタサーバにアクセスする必要があり、データアクセス時間が長くなる。特に、メタサーバが地理的に離れており、ネットワークアクセスに時間を要する場合には、データアクセス時間は顕著に増大する。
 この問題を解消するため、メタサーバ上のデータ位置情報の一部を、アクセスを行うクライアント端末又は他の計算機上にキャッシュする技術が知られている。クライアント端末は、キャッシュされた位置情報を利用できる場合には、メタサーバへアクセスすることなく、直接データ格納ノードへアクセスすることができる。
 ここで、キャッシュには、同期キャッシュおよび非同期キャッシュがある。同期キャッシュでは、メタサーバ上の位置情報(原本)への変更が同期的にキャッシュに適用される。一方、非同期キャッシュでは、メタサーバ上の位置情報(原本)への変更は同期的にキャッシュに適用されない。すなわち、非同期キャッシュによると、クライアント端末は、古い位置情報に従って、データを保持していないノードへ誤ってアクセスすることがある。
 データを保持しているノードをクライアント端末が把握するための他の方式として、分散関数(例えばハッシュ関数)を用いてデータの位置を求める方式がある。かかる方式として、例えば、分散KVS(Key Value Storage)が知られている。分散KVSにおいては、すべてのクライアント端末が、分散関数、および、システムに参加しているノードのリスト(ノードリスト)を共有する。また、格納データは固定長または任意長のデータ断片(Value、バリュー)に分割され、各Valueには、これを一意に特定するための識別子(Key、キー)が付与されている。クライアント端末は、データにアクセスする場合には、分散関数にキーを入力として与え、分散関数の出力値とノードリストに基づいて、データを格納しているノード(以下「データ格納ノード」という。)を算術的に求める。
 クライアント端末間で共有される情報のうちの分散関数は、時間が経過しても変化しない。一方、ノードリストの内容は、ノードの故障または追加に伴って変更される。しかし、すべてのクライアント端末間でノードリストを同期的に変更した場合には、クライアント端末の台数が多いときに、システムの性能が低下する。特に、ノードの台数が数万台規模の場合には、クライアント端末の台数も数万~数10万台規模となる。したがって、すべての計算期の間で同期的に情報を更新するには、非常に長い時間を要する。
 このような場合には、各クライアント端末が保持するノードリストを非同期キャッシュとすることが好ましい。ノードリストを非同期キャッシュとすることにより、分散ストレージシステムは多くの台数のクライアント端末をサポートすることができる。また、クライアント端末は、自身の保持するノードリストに従って、データノードにアクセスすることができる。しかし、非同期キャッシュとされたノードリストの内容が古い場合には、クライアント端末は、データを保持していないノードにアクセスするおそれがある。
 非特許文献1に記載された技術によると、クライアント端末は、故障によりシステムから除外されたノードへアクセスした場合、一定時間応答が返却されないこと(タイムアウト)を検知し、他の正常なノードを用いて処理を継続する。
 なお、クライアント端末のみならず、ノードもノードリストを保持する場合には、上記と同様の理由により、このノードリストも非同期キャッシュとされることがある。
 ところで、コンピュータシステムやストレージシステムの大規模化に伴い、これらのシステムにおける消費電力が増加している。消費電力の増加により、冷房設備に対するコストも増大している。例えば、複数のHDDが搭載された筐体を含むストレージシステムでは、HDDの回転速度を変更したり、ディスクやコントローラの電力を停止したりすることで、ストレージシステムの省電力化が行なわれる。
 特許文献1に記載された記憶システムでは、ディスク装置にアクセスしない場合にディスク装置を停止させることで、システムの消費電力を削減する。また、非特許文献2に記載された“write off-loading”によると、停止したディスクへの書き込み要求を、一時的に停止していないディスクへと書き込むことで、利用されているデータを保持しているディスクを停止することができる。
 さらに、複数の計算機ノードを備えた分散ストレージシステムにおいて、一部の計算機ノードを省電力モードで動作させることで、システムを省電力化する方法が知られている。分散ストレージシステムに対する省電力制御は、電力を停止されたノードがクライアント端末からのアクセスに応答できなくなる点で、ノード障害の制御と類似している。ノード障害に対する制御として、アクセスを他のノードへ切り替える方法が知られている。
 例えば、特許文献2に記載されたシステムにおいては、故障した場合には、アクセスの切り替えが行われる。複数のノードのアドレスを切り替えるには、仮想IPアドレス技術を利用することができる。すなわち、GARP(Gratuitous ARP)パケットを用いて同一ネットワーク内のARPテーブルを更新する技術や、バーチャルLAN(VLAN:Virtual LAN)に基づく技術を利用することができる。例えば、特許文献3および特許文献4には、それぞれ、GARPによる仮想IPアドレス機能を応用した負荷分散方法が記載されている。また、特許文献5には、VLANを用いた仮想IPアドレスの実現方式が記載されている。なお、分散ストレージシステムに対する省電力制御は、ノードが応答しなくなることを予めシステム側で把握することができる点において、ノード障害の場合とは異なる。
特表2005-539303号公報 特表2003-517221号公報 特許第3930516号公報 特許第4015770号公報 特許第3825333号公報
Ion Stoica,Robert Morris,David Karger,M.Frans Kaashoek,Hari Balakrishnan,"Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications,"ACM SIGCOMM Computer Communication,Review 31(4),p.149-160,ACM Press,2001 Narayanan,D.,Donnelly,A.,Rowstron,A.,"Write Off-Loading: Practical Power Management for Enterprise Storage,"ACM Trans.Storage,Vol.4,No.3,Article 10,November 2008
 上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。分散ストレージシステムの省電力制御について考える。非特許文献2に記載された“write off-loading”におけるHDD間の制御と同様に、省電力モードのノードへのデータ更新リクエストの内容を、一時的に他のノードに蓄積するように制御することで、システムの応答性能を低下させることなく、システムの消費電力を削減することができる。
 ここでは、省電力モードのノードに対しては、ネットワークアクセスができないものとする。例えば、計算機全体の省電力モードを、ACPI(Advanced Configuration and Power Interface)標準に規定されたS4とすると、電力を大幅に削減することができる。しかしながら、このとき、TCP/IPなどのOSを介するネットワークアクセスには応答することができない。したがって、一部のノードを省電力モードとするためには、上記のノードリストまたはデータ位置情報の内容を更新し、省電力モードのノードを反映させる必要がある。
 しかし、上述のように、クライアント端末は、ノードリストまたはデータ位置情報の非同期キャッシュを保持している場合がある。すなわち、クライアント端末は、変更前のノードリストまたはデータ位置情報に基づいて、誤って省電力モードのノードへアクセスするおそれがある。
 単一筐体内における“write off-loading”によると、筐体内のコントローラは、アクセス要求を処理することができ、異なるHDDへのアクセスを受け取ると、適切なHDDへ転送することができる。しかし、複数のノードを備えた分散ストレージシステムでは、省電力モードのノードは、アクセス要求に応じることができない。したがって、クライアント端末は、あらかじめ定められたタイムアウト時間だけ応答を待ち、その後、改めて他のノード、例えば、バックアップデータを保持するノードへアクセスする必要がある。
 タイムアウト時間を長くすると、システムの応答性能が低下する。そこで、システムの応答性能を維持するために、タイムアウト時間を短くする方法が考えられる。しかし、タイムアウト時間を短くし過ぎた場合には、ノード停止以外に、ノード高負荷時の応答性能の低下が生じたときにも、障害処理やアクセス転送処理が発生してしまう。したがって、タイムアウト時間を短くすることは困難である。
 そこで、クライアント端末から分散ストレージシステムに含まれるノードへのアクセスの可否を表す(第1の)ノードリストに基づいて非同期に更新された(第2の)ノードリストを参照したクライアント端末によって、アクセス不能なノードへのアクセスが行なわれた場合において、クライアント端末に対する分散ストレージシステムのサービスレベルを低下させないようにすることが課題となる。本発明の目的は、かかる課題を解決する分散ストレージシステム、その制御方法、およびプログラムを提供することにある。
 本発明の第1の視点に係る分散ストレージシステムは、
 オブジェクトをそれぞれ格納する複数のノードと、
 前記複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストと、
 前記複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、前記第1のノードリストを更新する制御装置と、を備え、
 前記複数のノードは、前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされ、
 前記制御装置は、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する。
 本発明の第2の視点に係る制御方法は、
 コンピュータが、分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する工程と、
 前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する工程と、を含む。
 本発明の第3の視点に係るプログラムは、
 分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する処理と、
 前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する処理と、をコンピュータに実行させる。
 なお、プログラムは、非トランジエントなコンピュータ読み取り可能な記録媒体(non-transient computer-readable storage medium)に記録されたプログラム製品として提供することができる。
 本発明に係る分散ストレージシステム、その制御方法、およびプログラムによると、クライアント端末から分散ストレージシステムに含まれるノードへのアクセスの可否を表すノードリストに基づいて非同期に更新されたノードリストを参照したクライアント端末によって、アクセス不能なノードへのアクセスが行なわれた場合において、クライアント端末に対する分散ストレージシステムのサービスレベルを低下させないようにすることができる。
第1の実施形態に係る分散ストレージシステムにおけるオブジェクトアクセスに関する構成を示すブロック図である。 第1の実施形態に係る分散ストレージシステムにおけるノードの構成を詳細に示すブロック図である。 第1の実施形態に係る分散ストレージシステムにおけるノードリストを一例として示す図である。 第1の実施形態に係る分散ストレージシステムにおけるオブジェクトの読み込み動作を示すシーケンス図である。 第1の実施形態に係る分散ストレージシステムにおけるオブジェクトの書き込み動作を示すシーケンス図である。 第1の実施形態に係る分散ストレージシステムにおけるノード省電力化に関する構成を示すブロック図である。 第1の実施形態に係る分散ストレージシステムにおけるノード省電力化動作を示すシーケンス図である。 第1の実施形態に係る分散ストレージシステムにおけるノード通常運用化動作を示すシーケンス図である。 第2の実施形態に係る分散ストレージシステムにおけるオブジェクトアクセスに関する構成を示すブロック図である。 第3の実施形態に係る分散ストレージシステムにおけるデータの格納およびアクセスに関する構成を示すブロック図である。
 第1の展開形態によると、上記第1の視点に係る分散ストレージシステムが提供される。かかる分散ストレージシステムによると、第1のノードリストに基づいて非同期に更新された第2のノードリストを参照したクライアント端末によって、クライアント端末からアクセスすることができない第2のモードに変更された第1のノードへのアクセスが行なわれた場合においても、第1のノードへのアクセスを第2のノードが処理することができる。したがって、かかる分散ストレージシステムによると、クライアント端末から分散ストレージシステムに含まれるノードへのアクセスの可否を表すノードリストに基づいて非同期に更新されたノードリストを参照したクライアント端末によって、アクセス不能なノードへのアクセスが行なわれた場合において、クライアント端末に対する分散ストレージシステムのサービスレベルを低下させないようにすることができる。
 第2の展開形態によると、制御装置は、第1のノードの動作モードを第2のモードから第1のモードへ変更する場合に、第2のノードが保持する第1のノードに書き込まれるべきオブジェクトを、第2のノードから第1のノードへ転送する、分散ストレージシステムが提供される。かかる分散ストレージシステムによると、本来のノードの代わりに他のノードによって保持されたオブジェクトを、クライアント端末からのアクセスが可能となった時点で、本来のノードに格納することができる。
 第3の展開形態によると、前記複数のノードのそれぞれの第2のモードにおける消費電力は、第1のモードにおける消費電力よりも低い、分散ストレージシステムが提供される。かかる分散ストレージシステムによると、分散ストレージシステムの省電力化を図りつつ、クライアント端末に対するサービスレベルを維持することができる。
 第4の展開形態によると、制御装置は、第1のノードと第2のノードとが異なるネットワークに接続されている場合には、複数のノードのうちの第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から第1のノードへのアクセスを処理するように、第3のノードおよび第2のノードに指示する、分散ストレージシステムが提供される。かかる分散ストレージシステムによると、複数のネットワークに跨った分散ストレージシステムにおいて、クライアント端末に対するサービスレベルを維持することができる。
 第5の展開形態によると、上記第2の視点に係る制御方法が提供される。
 第6の展開形態によると、上記第3の視点に係るプログラムが提供される。なお、プログラムは、コンピュータ読み取り可能な記録媒体に格納されていてもよい。
 <実施形態1>
 第1の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。本実施形態の分散ストレージシステムは、ノードリストのキャッシュを利用する。
 図1は、本実施形態の分散ストレージシステムにおけるデータの格納およびアクセスに関する構成を示すブロック図である。図1を参照すると、分散ストレージシステムは、ネットワーク60に接続されたクライアント端末90と、ノード10~ノード30と、ノードリスト(原本)55と、ノードリスト同期制御部56とを備えている。ネットワーク60は、アクセス経路決定部62を有する。図1においては、一例として、ノードの台数を3台としたが、ノードの台数はこれに限定されない。
 ノード10、20、30は、それぞれ、データ送受信部11、21、31、および、データ格納部12、22、32を備えている。ネットワーク60は、アクセス経路決定部62を備えている。クライアント端末は、データ送受信部91、データ送受信ノード決定部92、ノードリスト(複製)93を備えている。
 図2は、図1のノード10、20、30のそれぞれの構成を詳細に示すブロック図である。図2を参照すると、ユーザ計算機H5は、ネットワークH4を介して、データ処理計算機H11~H13に接続されている。図2におけるネットワークH4およびユーザ計算機H5は、それぞれ、図1のネットワーク60およびクライアント端末90に相当する。
 データ処理計算機H1X(X=1~3)は、それぞれ、CPU H1Xa、データ記憶装置H1Xb、および、データ転送装置H1Xcを備えている。CPU H1Xaは、ソフトウェアとともに、本実施形態の分散ストレージシステムにおける各部の機能を実現する。
 データ記憶装置H11b~H13bは、例えば、HDD、フラッシュメモリ、DRAM(Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、PRAM(Phase change RAM)、RAIDコントローラに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、または、ノードの外部に設置された媒体にデータを記録する制御装置である。
 ネットワークH4およびデータ転送装置H11c~H13cは、例えば、Ethernet(登録商標)、Fibre ChannelやFCoE(Fibre Channel over Ethernet(登録商標))、InfiniBand、QsNet、 Myrinet、または、これらを利用するTCP/IP、RDMAなどの上位プロトコルにより実現することができる。ただし、ネットワークH4およびデータ転送装置H11c~H13cの実現方法は、これらに限られない。
 格納データは、固定長または意味的に区切られたデータ断片(以下「オブジェクト」という。)の集合として、ノード10、20、30のそれぞれのデータ格納部12、22、32に格納される。各オブジェクトには、一意の識別子(キー)が与えられている。クライアント端末90は、キーを指定することで所望のデータを取得する。また、各オブジェクトの複製は、複数のノードに格納され得る。また、各オブジェクトの他に、オブジェクトに基づいて計算された冗長符号情報が他のノードに格納されるようにしてもよい。冗長符号情報は、ノード故障時において、データの消失を防ぐために用いられる。
 オブジェクトの例として、例えば、ファイルシステムのファイル、ファイルと関連するメタデータの集合、関係データベースのタプルもしくはテーブル、オブジェクトデータベースのデータ、Key-Valueデータ格納システムのValue、XML文書のタグで囲まれた内容、RDF文書のリソース、Google App Engineのデータエンティティ、Microsoft Windows Azure キュー、メッセージ、Cassandra等のWide Column StoreのColumn、JSON(JavaScript Object Notation)、BSON(Binary JSON)で記載されたドキュメント等が上げられる。なお、本発明におけるオブジェクトは、これらのオブジェクトに限られない。
 クライアント端末90のデータ送受信部91は、ノードを特定する識別子(以下「ノード識別子」という。)と、データキーから当該データを持つノードを特定し、データを送信または受信する。
 ネットワーク60に含まれるアクセス経路決定部62は、データ送受信部91から、ノード識別子を含む要求情報を受信し、当該ノード識別子により指定されたノードへ送信する。
 例えば、Ethernet(登録商標)上にIPプロトコルとTCPプロトコルによって通信するネットワークにより分散ストレージシステムを構築する場合には、ノード識別子を、IPアドレスとポート番号の組としてもよい。また、予めポート番号が定められている場合には、IPアドレスをノード識別子としてもよい。
 データ送受信部91は、当該IPアドレスの計算機の指定されたポートにTCPコネクション要求をするIPパケットを送出する。
 アクセス経路決定部62は、ネットワーク60上のルータと、各計算機上のルーティング表およびARP(Address Resolution Protocol)表を有する。IPアドレスにしたがって、ルーティング表から宛先IPアドレスを取得することができる。次に、宛先IPアドレスは、クライアント端末90内のARP表にしたがって、当該計算機またはルータのEthernetポートに付与されたMAC(Media Access Control)アドレスに変換される。
 ARP表が当該IPアドレスに関する項目を保持していない場合には、クライアント端末90は、当該IPアドレスを含むARP要求パケットをネットワーク60にブロードキャストする。このとき、当該IPアドレスを付与された宛先計算機またはルータのみが、当該宛先計算機またはルータの当該IPアドレスに対応するEthernetポートのMACアドレスを含むARP返答パケットをクライアント端末90に返答する。クライアント端末90は、当該MACアドレスに対し、TCPコネクション要求パケットを送信し、以降、TCPプロトコルに従って送受信を行う。宛先がルータである場合には、上記と同様のIPアドレスとMACアドレスの変換が、クライアント端末90と宛先計算機の間のルータでそれぞれ行われ、通信が行われる。
 データ送受信部91とアクセス経路決定部62の他の例として、オープンフロー技術により計算機が接続されている場合がある。この場合には、クライアント端末90が目的の計算機へのパケットを送信した後、外部から経路情報を書き換え可能なルータまたはスイッチが、経路情報を基に、当該パケットのIPアドレスまたは宛先計算機を表すIDを基に宛先計算機へ情報を到達させる。なお、データ送受信部91およびアクセス経路決定部62は、これらに限定されない。
 ノードリスト同期制御部56は、ノードリスト(原本)55と、ノードリスト(原本)55の更新を、ノードリスト(複製)93に伝播させる。ノードリスト(原本)55およびノードリスト同期制御部56は、それぞれノード内に設けられていてもよいし、専用の計算機内に設けられていてもよい。また、ノードリスト同期制御部56は、クライアント端末90に設けられていてもよい。
 ノードリスト(原本)55は、分散ストレージシステムに参加しているノードに対するノード識別子の一覧を保持している。図3は、ノードリストを一例として示す図である。図3(a)を参照すると、ノードリストをノード名の一覧としてもよい。また、図3(b)を参照すると、ノードリストをノードのIPアドレスの一覧としてもよい。さらに、図3(c)を参照すると、ノードリストをノードアドレスとポート番号の一覧としてもよい。また、図3(d)を参照すると、ノードリストをノード名とノードアドレスの一覧としてもよい。なお、ノードリストは、データ送受信部91の実装に依存し、図3に示した態様に限定されない。
 クライアント端末90のノードリスト(複製)93は、ノードリスト(原本)55の全部または一部の非同期の複製である。ここで、非同期とは、ノードリスト(原本)55の内容が第1のバージョンN1から第2のバージョンN2に更新され、その更新が反映された後であっても、ノードリスト(複製)93の内容を読んだクライアント端末90が第1のバージョンN1の内容を取得する可能性があるような制御方式をいう。
 非同期の複製として、例えば、ノードリスト(原本)55とノードリスト(複製)93との間で、30秒ごとにノードリスト間の内容を一致させる方法が考えられる。一例として、ノードリスト(原本)55およびノードリスト(複製)93が、いずれも、ノード10、ノード20、ノード30を含んでいる場合を考える。また、ある時刻T1においてノード20が故障し、ノードリスト(原本)55からノード20が削除されたとする。このとき、時刻T1の15秒後の時刻T2において、ノードリスト(複製)93を保持するクライアント端末90がオブジェクトへアクセスする際、ノードリスト(複製)93からノード20を取得するおそれがある。
 図4は、本実施形態の分散ストレージシステムにおけるクライアント端末90からのデータ読み込み動作を示すシーケンス図である。図4を参照すると、クライアント端末90のデータ送受信ノード決定部92は、ノードリスト(複製)93からノード一覧を読み込む(ステップS11)。ここで、クライアント端末90は、ノードリスト(複製)93を保持していない場合には、ノードリスト(原本)55を読み込む(ステップS12)。
 次に、データ送受信ノード決定部92は、読み込み対象となるオブジェクトのキーと、ノード識別子を含むノードリストの複製情報を基に、アクセスするノードを決定する(ステップS13)。
 データ送受信ノード決定部92は、アクセスするノードを決定する際に、一例として、コンシステントハッシュ方式を利用することができる。コンシステントハッシュ方式では、オブジェクトキーまたはノード識別子を引数として取るハッシュ関数h(x)が定義されている。ノードリストには、ノード識別子のハッシュ値が格納されていてもよい。この方式では、データ送受信ノード決定部92は、読み込み対象となるオブジェクトキーkに対してハッシュ値h(k)を計算する。次に、データ送受信ノード決定部92は、ノードリストに基づいて、ノード識別子のハッシュ値の昇順で並ぶノード識別子に対し、h(ni)<=h(k)<h(nj)となるノード識別子n1を選ぶ。データ送受信ノード決定部92は、このノード識別子n1が示すノードをアクセス対象ノードとする。
 また、データ送受信ノード決定部92は、分散ハッシュテーブル方式を利用することもできる。分散ハッシュテーブル方式では、ノードリストはノード識別子に加え、オブジェクトキーをハッシュ関数h2(x)に入力した際の出力値の範囲が定められており、その範囲のオブジェクト群を格納するノードのノード識別子が付与されている。データ送受信ノード決定部92は、読み込み対象となるオブジェクトキーに対し、ハッシュ値の範囲を受け持つノードをアクセス対象ノードと決定する。なお、データ送受信ノード決定部92は、コンシステントハッシュ方式および分散ハッシュテーブル方式以外の方式を採用することもできる。
 オブジェクトの複数の複製が、それぞれ異なるノードに分散して配置されている場合には、データ送受信ノード決定部92は、1つ以上のノードを選択できるようにしてもよい。複数のノードから並列に転送を行うことで、高速にオブジェクトを取得することができる。
 また、複数の複製オブジェクトが多数決プロトコルで更新されるようにしてもよい。多数決プロトコルでは、過半数の複製オブジェクトの書き込みが成功すれば、残りの複製オブジェクトは古いバージョンであっても処理を続行することができる。多数決プロトコルを採用した場合には、データ送受信ノード決定部92は、複数のノードのうちの過半数をアクセス対象ノードとしてもよい。複数のノードの決定方法として、コンシステントハッシュ方式を用いる場合には、オブジェクトのキーkに対し、h(k)のノード、h(h(k))のノード、h(h(h(k)))のノードのように、ハッシュ関数を複数回適用したノードをアクセス対象とすることができる。他の例として、例えば、ノードリストに各ノードの複製オブジェクトが格納されるノードの一覧が付与されており、当該一覧を基に複数のノードを選択するようにしてもよい。
 図5は、本実施形態の分散ストレージシステムにおけるクライアント端末90からのデータ書き込み動作を示すシーケンス図である。データ書き込み動作は、複数の複製オブジェクトが異なるノードに分散して配置されているときのノード決定の動作において、データ読み込み動作(図4)と相違する。例えば、すべての複製オブジェクトを同期更新してもよい。
 次に、本実施形態に係る分散ストレージシステムの省電力制御について、図面を参照して説明する。図6は、本実施形態の分散ストレージシステムのうちのノードの省電力制御とアクセスの転送に関する構成を示すブロック図である。図6を参照すると、分散ストレージシステムは、さらに、制御装置50およびアクセス到達先変更部61を備えている。制御装置50は、ノード管理部51、アクセス変更部52、および、動作モード変更部53を備えている。
 本実施形態では、ノード10、20、30のうちの一部のノードの電力モードを変更して消費電力を少なくすることで、システム全体の消費電力を削減する。また、省電力モード中のノードへのアクセスを、アクセスを受けることのできる他のノードが処理することで、分散ストレージシステムのデータアクセスサービスを維持する。
 一例として、図6において、ノード10を省電力ノードとし、ノード20をノード10のアクセスを仮に受けるノード(以下「仮格納ノード」という。)とする。
 ノード10、20は、それぞれ、電源制御部13、23を有する。電源制御部13、23は、それぞれ、動作モード変更指示情報を受信すると、ノード10、20の電力モードを変更する。ここで、省電力モードとは、ノード10、20を構成する部品の全部または一部の消費電力を削減するか、電源を遮断することにより、ノード10、20の消費電力を低下させた状態をいう。
 ACPI標準では、通常の状態のS0モード以外に、省電力モードS1、S3およびS4が定義されている。ノード10として用いられる計算機がACPIに準拠した省電力モードを実装している場合には、電源制御部13は、ACPI実装部分を利用することができる。また、ノード10がHDDを備えている場合には、HDDの電力を低下させることにより、ノード10の消費電力を削減することができる。さらに、ノード10の計算機を正常にシャットダウンし、ノード10の電源を落とすことにより、ノード10の消費電力を削減することもできる。なお、電源制御部13による電力制御の方法は、これらの方法に限定されない。
 仮格納ノード20は、ノード10宛のアクセスを一時的に受けるため、一時データ受信部25および一時データ管理部26を備えている。
 アクセス到達先変更部61は、アクセス経路決定部62のアクセス先決定に関する情報を変更する。
 制御装置50は、いずれのノードを停止させるかを決定するともに、ノードの停止を制御する。
 動作モード変更部53は、ノード10の電源制御部13に動作モード変更指示情報を送付する。
 アクセス変更部52は、アクセス到達先変更部61を制御し、アクセス経路決定部62の情報を変更するとともに、仮格納ノード20の一時データ受信部25に、省電力ノード識別子を送信する。
 ノード管理部51は、一時データ管理部26を制御し、省電力ノード宛のデータを一時的に蓄え、省電力ノード10が省電力モードから通常モードに復帰した場合には、省電力ノード10に保持データを送信する。
 制御装置50は、例えば、各ノードを構成する計算機上のプログラムとして実現することができる。また、制御装置50は、専用の1つ以上の計算機上のプログラムとして実現することもできる。なお、制御装置50の実現方法は、これらに限定されない。
 図7は、ノード省電力モード移行動作を示すシーケンス図である。ここでは、一例として、1つ以上の省電力ノードと、省電力ノードに対する仮格納ノードとが予め決定されている場合について考える。なお、省電力ノードおよび仮格納ノードの決定方法については、特に限定しない。ただし、省電力ノードと仮格納ノードとが同一のノードとなることがないようにする。また、1つの仮格納ノードが複数の省電力ノードのデータを格納するようにしてもよい。さらに、1つの省電力ノードに対するオブジェクト集合を複数に分割し、それぞれに仮格納ノードを割り当てるようにしてもよい。ここでは、一例として、ノード10を省電力ノードとし、ノード20を仮格納ノードとする。
 ノード管理部51は、一時データ受信部25および一時データ管理部26をノード20内に生成する(ステップS31)。
 以後、ノード10宛のデータ書き込み要求がノード20に送信されると、一時データ受信部25は、その要求がノード10宛であることを検出し、一時データ管理部26に渡す。一時データ管理部26は、当該データをノード20内に保持する。ノード20内のデータ格納部22が、ノード10宛てのデータを保持するようにしてもよい。また、省電力ノード宛てのデータ専用のデータ格納部を別途設けるようにしてもよい。
 次に、ノード管理部51は、ノード10のデータ送受信部11に省電力モード変更に伴うサービスの停止を要求する(ステップS32)。ノード10のデータ送受信部11は、要求を受信すると、データ提供・保持サービスを終了する。データ提供・保持サービスを終了した場合には、以降のノード10宛のアクセスは、別のノードを利用する。
 サービス終了後のノード10は、例えば、アクセス送信元のクライアント端末90またはノードに対して、ノード20のノード識別子を含むノードサービス終了通知を返答する。ノードサービス終了通知を受けたクライアント端末90は、データの読み込み要求の場合には、複製オブジェクト保持ノードへアクセスを再送し、データの書き込み要求の場合には、ノード20へアクセスを再送する。
 一方、サービス終了後のノード10は、アクセスがデータの読み込み要求である場合には、複製オブジェクト保持ノードへアクセスを転送し、アクセスがデータの書き込み要求である場合には、ノード20にアクセスを転送するようにしてもよい。その後、ノード10は、必要に応じて、転送先ノードとクライアント端末90との間の通信を中継する。
 次に、ノード管理部51は、ノードリスト(原本)55を更新する(ステップS33)。更新により、ノードリスト(原本)55の情報が変更され、ノード10宛のデータ書き込み要求はノード20が仮に受けることが追記される。この更新は、システムに備わったノードリスト同期機構に従って、非同期的に各ノードリスト(複製)93へ伝播される。ノードリスト(原本)55が更新された直後においては、いくつかのノードリスト(複製)93には、更新が伝播されていない可能性がある。したがって、ノード10へ要求が送信される可能性がある。しかしながら、ノード10はすでにサービスを停止しているため、この要求は上記の説明のとおり、ノード20や複製オブジェクトを保持するノードに転送される。
 次に、アクセス変更部52は、ノード管理部51による処理の終了を受けると、ノード10宛の要求のアクセス到達先をノード20へ変更するように、アクセス到達先変更部61に要求する(ステップS35)。一例としてネットワーク60がEthernet上のTCP/IPである場合には、かかる要求は、ノード20上のプロセスからGARP要求(あるいはGARP返信)をネットワーク60にブロードキャストし、GARP要求・返信を受け取ったネットワーク60内の計算機のARP表を更新することで実現しうる。一方、ネットワーク60がオープンフロー技術を用いている場合には、オープンフローコントローラへ経路情報変更を要求することで、ノード10宛のフローをノード20の計算機へ到達させることができる。
 なお、後述の動作モード変更部53からのリクエストを受信するための別のデータ受信部を、必要に応じてノード10上に設ける。例えば、GARP方式によると、ノード10が使用していたIPアドレスがノード20に付け替えられる。したがって、別のアドレスによるTCP待ち受けプロセスを開く必要がある。
 次に、動作モード変更部53は、アクセス変更部52の処理の終了を受けると、ノード10の電源制御部13に動作モード変更指示情報を送信する(ステップS36)。
 ノード10の電源制御部13は、動作モード変更指示情報を受信すると、ノード10の電力モードを省電力モードに変更する。この時点において、ノード10へのアクセスは、すでにノード20へ到達するようになっている。
 図8は、ノード省電力モードからの復帰動作を示すシーケンス図である。図8を参照すると、動作モード変更部53は、ノード10の電源制御部13を介して、ノード10を通常運用モードに遷移させる(ステップS41)。
 次に、ノード管理部51は、省電力モード中の更新データをノード10へ適用するように、ノード20の一時データ管理部26に指示する(ステップS42)。
 ノード20の一時データ管理部26とノード10のデータ送受信部11とによって、ノード10のデータ格納部12のオブジェクトは最新の状態に更新される。この間のノード20内の一時データ受信部25の更新は、逐次ノード10に適用される。未適用の更新のすべてがノード10上のデータに適用されると、ノード20の一時データ受信部25は、以降のアクセスはノード10へ転送するように設定する。また、ノード10はサービスを再開する。
 次に、アクセス変更部52は、アクセス到達先変更部61を介して、ノード10のノード識別子宛のリクエストがノード10へ到達するようにアクセス経路決定部62を変更する(ステップS43)。
 次に、ノード管理部51は、ノードリスト(原本)55を更新し(ステップS45)、ノード10宛のデータ書き込み要求をノード10が受けるように変更する。以上により、ノード10は、分散ストレージシステムに復帰する。
 本実施形態の分散ストレージシステムによると、ノードリスト(原本)55の更新が伝播されていない古いノードリスト(複製)93を参照したクライアント端末90からのアクセスであっても、ノード10のタイムアウトを待つことなく、ノード20や複製保持ノードによりアクセスが処理される。
 本実施形態に係る分散ストレージシステムによると、各ノードが省電力モード化と非省電力モード化を有し、クライアント端末からのアクセスのタイムアウトが少なく、一部のノードが停止中の時点でも、データ冗長性とデータ書き込み性能を維持することができる。なぜなら、アクセスに応答できない省電力ノードへのアクセスを、アクセス到達先変更部とアクセス経路決定部によって仮格納ノードへ転送することができるからである。このとき、仮格納ノードは、タイムアウトを待つことなく、当該アクセスに応答することができる。
 また、仮格納ノードは、省電力ノードへの書き込みアクセスに係るデータを一時的に保持し、省電力ノードが通常モードに復帰した後に省電力ノードにデータを送出する。したがって、データ書き込みサービスは停止されず、データの冗長性を維持することもできる。
 すなわち、本実施形態の分散ストレージシステムによると、クライアント端末からのアクセスのタイムアウトが少なく、かつ、一部のノードが停止中の時点であっても、データ冗長性とデータ書き込み性能を維持することができる。
 <実施形態2>
 第2の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。
 図9は、本実施形態に係る、データ配置情報を利用した分散ストレージシステムのうちのデータの格納とアクセスに関する構成を示すブロック図である。
 本実施形態の分散ストレージシステムは、第1の実施形態におけるノードリスト(原本)55とノードリスト(複製)93の代わりに、データ配置情報(原本)85とデータ配置情報(複製)87を備え、ノードリスト同期制御部56の代わりに、データ配置情報同期制御部86を備えている。データ配置情報(原本)85は、オブジェクトのキーから該当するノードを取得するための情報を保持している。データ送受信ノード決定部92は、ノードリスト(複製)93の代わりに、データ配置情報(複製)87を参照して、データ送受信ノードを決定する。
 データ配置情報(原本)85は、例えば、メタサーバにより構成される。メタサーバは、B+-Treeやハッシュ索引などの索引構造を保持し、オブジェクトのキーから該当するノード識別子を取得する。
 本実施形態の分散ストレージシステムにおいては、これら以外の構成については、第1の実施形態の分散ストレージシステムにおける構成と同様である。
 本実施形態の分散ストレージシステムにおけるノード省電力モードへの移行処理、および、ノード省電力モードからの復帰処理について説明する。本実施形態においては、ノード管理部51によって、ノードリスト(原本)55の代わりに、データ配置情報(原本)85が更新される点において、第1の実施形態の分散ストレージシステムの動作(図7、図8)と相違する。
 本実施形態の分散ストレージシステムによると、メタサーバを用いた構成の分散ストレージシステムにおいて、更新の伝播されていない古いデータ配置情報(複製)87を参照したクライアント端末90からのアクセスであっても、ノード10のタイムアウトを待つことなく、ノード20や複製保持ノードにより処理が行われる。
 したがって、本実施形態の分散ストレージシステムによると、クライアント端末からのアクセスのタイムアウトが少なく、かつ一部のノードが停止中の時点であっても、データ冗長性とデータ書き込み性能を維持することができる。
 <実施形態3>
 第3の実施形態に係るデータ記憶システムについて、図面を参照して説明する。
 図10は、本実施形態に係る、ノードリストキャッシュを利用した分散ストレージシステムのうちデータの格納とアクセスに関する構成を示すブロック図である。
 本実施形態では、分散ストレージシステムを構成するノードの一部が、アクセス経路決定部62の範囲外にある第2のネットワーク70に接続されている。図10では、ノード10、ノード30、およびクライアント端末90は、第1のネットワーク60に接続されている。一方、ノード20は、第2のネットワーク70に接続されている。このとき、アクセス到達先変更部61は、第1のネットワーク60におけるアクセス経路決定部62のみを変更することができるものとする。
 本実施形態の分散ストレージシステムにおいて、これら以外の構成は、第1の実施形態の分散ストレージシステムの構成と同様である。なお、第2の実施形態に準じた構成においても、同様の手法により課題を解決できる。この場合には、以下の説明におけるノードリストをデータ配置情報と読み替える。
 本実施形態の分散ストレージシステムにおいて、省電力モードに移行するノードと仮格納ノードとが異なるネットワークに接続されている場合における、省電力モードへの移行について説明する。
 この場合、アクセス到達先を変更する時刻(図7の時刻T1)よりも前に、ノード10と同一のネットワーク60に存在する1つ以上のノード(ここでは、ノード30とする)を決定する。次に、ノード10宛のアクセスを受け付けて、ノード20へ転送するアクセス転送手段をノード30上に作成する。
 その後、アクセス変更部52は、アクセス到達先変更部61を介して、アクセス経路決定部62を変更する。ここでは、第1の実施形態と異なり、ノード10のアクセス到達先をノード30へと変更する。これは、仮格納ノードとなるノード20が異なるネットワーク70に接続されており、アクセス到達先をノード20に変更することができないからである。省電力モード移行処理のその他の処理は、第1の実施形態における処理と同様である。
 あるノードを省電力モードに移行し、異なるネットワークに存在するノードを仮格納ノードとした場合において、省電力モードへの移行後に再び当該省電力モード移行ノードを通常運用モードに変更するときの処理について説明する。この場合には、図8において、アクセス到達先を変更する時刻(図8の時刻T3)よりも後の任意の時点において、ノード30上に作成したアクセス転送手段を終了する。省電力モードからの復帰処理におけるその他の処理は、第1の実施形態における処理と同様である。
 本実施形態の分散ストレージシステムによると、分散ストレージシステムの一部のノードが複数のネットワークにまたがる構成の分散ストレージシステムにおいて、更新の伝播されていない古いデータ配置情報(複製)87を参照したクライアント端末90からのアクセスであっても、ノード10のタイムアウトを待つことなく、ノード30や複製保持ノードにより処理が行われる。
 したがって、本実施形態の分散ストレージシステムによると、クライアント端末からのアクセスのタイムアウトが少なく、かつ一部のノードが停止中の時点であっても、データ冗長性とデータ書き込み性能を維持することができる。
 本発明に係るデータ記憶システムは、並列データベースや並列データ処理システム、分散ストレージシステム、並列ファイルシステム、分散データベース、データグリッド、クラスタコンピュータに適用することができる。
 本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
 上記実施形態の一部または全部は、以下の付記として記載することができるものであるが、これらに限定されるものではない。
 (付記1)オブジェクトをそれぞれ格納する複数のノードと、
 前記複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストと、
 前記複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、前記第1のノードリストを更新する制御装置と、を備え、
 前記複数のノードは、前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされ、
 前記制御装置は、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更することを特徴とする分散ストレージシステム。
 (付記2)前記制御装置は、前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送することを特徴とする、付記1に記載の分散ストレージシステム。
 (付記3)前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、付記1または2に記載の分散ストレージシステム。
 (付記4)前記制御装置は、前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、該第3のノードおよび前記第2のノードに指示することを特徴とする、付記1ないし3のいずれか一に記載の分散ストレージシステム。
 (付記5)コンピュータが、分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する工程と、
 前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する工程と、を含むことを特徴とする制御方法。
 (付記6)前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、コンピュータが、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送する工程をさらに含むことを特徴とする、付記5に記載の制御方法。
 (付記7)前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、付記5または6に記載の制御方法。
 (付記8)前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、コンピュータが該第3のノードおよび前記第2のノードに指示する工程を含むことを特徴とする、付記5ないし7のいずれか一に記載の制御方法。
 (付記9)分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する処理と、
 前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する処理と、をコンピュータに実行させることを特徴とするプログラム。
 (付記10)前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送する処理を、さらにコンピュータに実行させることを特徴とする、付記9に記載のプログラム。
 (付記11)前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、付記9または10に記載のプログラム。
 (付記12)前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、該第3のノードおよび前記第2のノードに指示する処理をコンピュータに実行させることを特徴とする、付記9ないし11のいずれか一に記載のプログラム。
10、20、30  ノード
11、21、31  データ送受信部
12、22、32  データ格納部
13、23  電源制御部
25  一時データ受信部
26  一時データ管理部
50  制御装置
51  ノード管理部
52  アクセス変更部
53  動作モード変更部
55  ノードリスト(原本)
56  ノードリスト同期制御部
60、70、H4  ネットワーク
61  アクセス到達先変更部
62、72  アクセス経路決定部
85  データ配置情報(原本)
86  データ配置情報同期制御部
87  データ配置情報(複製)
90  クライアント端末
91  データ送受信部
92  データ送受信ノード決定部
93  ノードリスト(複製)
H11~H13  データ処理計算機
H11a~H13a  CPU
H11b~H13b  データ記憶装置
H11c~H13c  データ転送装置
H5  ユーザ計算機

Claims (12)

  1.  オブジェクトをそれぞれ格納する複数のノードと、
     前記複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストと、
     前記複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、前記第1のノードリストを更新する制御装置と、を備え、
     前記複数のノードは、前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされ、
     前記制御装置は、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更することを特徴とする分散ストレージシステム。
  2.  前記制御装置は、前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送することを特徴とする、請求項1に記載の分散ストレージシステム。
  3.  前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、請求項1または2に記載の分散ストレージシステム。
  4.  前記制御装置は、前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、該第3のノードおよび前記第2のノードに指示することを特徴とする、請求項1ないし3のいずれか1項に記載の分散ストレージシステム。
  5.  コンピュータが、分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する工程と、
     前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する工程と、を含むことを特徴とする制御方法。
  6.  前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、コンピュータが、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送する工程をさらに含むことを特徴とする、請求項5に記載の制御方法。
  7.  前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、請求項5または6に記載の制御方法。
  8.  前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、コンピュータが該第3のノードおよび前記第2のノードに指示する工程を含むことを特徴とする、請求項5ないし7のいずれか1項に記載の制御方法。
  9.  分散ストレージシステムに含まれ、オブジェクトをそれぞれ格納する複数のノードのそれぞれの動作モードを、クライアント端末からアクセスすることができる第1のモードとクライアント端末からアクセスすることができない第2のモードとの間で変更するとともに、該複数のノードのうちのクライアント端末からアクセスすることができるノードの識別子を保持する第1のノードリストを更新する処理と、
     前記複数のノードが前記第1のノードリストに基づいて非同期に更新される第2のノードリストを参照するクライアント端末によってそれぞれアクセスされる場合において、前記複数のノードのうちの第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する際に、クライアント端末から前記第1のノードへのアクセスを処理するように前記複数のノードのうちの第2のノードに指示するとともに前記第1のノードリストから前記第1のノードの識別子を削除した後、前記第1のノードの動作モードを前記第1のモードから前記第2のモードへ変更する処理と、をコンピュータに実行させることを特徴とするプログラム。
  10.  前記第1のノードの動作モードを前記第2のモードから前記第1のモードへ変更する場合に、前記第2のノードが保持する前記第1のノードに書き込まれるべきオブジェクトを、前記第2のノードから前記第1のノードへ転送する処理を、さらにコンピュータに実行させることを特徴とする、請求項9に記載のプログラム。
  11.  前記複数のノードのそれぞれの前記第2のモードにおける消費電力は、前記第1のモードにおける消費電力よりも低いことを特徴とする、請求項9または10に記載のプログラム。
  12.  前記第1のノードと前記第2のノードとが異なるネットワークに接続されている場合には、前記複数のノードのうちの前記第1のノードと同一のネットワークに接続された第3のノードを経由して、クライアント端末から前記第1のノードへのアクセスを処理するように、該第3のノードおよび前記第2のノードに指示する処理をコンピュータに実行させることを特徴とする、請求項9ないし11のいずれか1項に記載のプログラム。
PCT/JP2011/071857 2010-10-04 2011-09-26 分散ストレージシステム、その制御方法、およびプログラム WO2012046585A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-224697 2010-10-04
JP2010224697 2010-10-04

Publications (1)

Publication Number Publication Date
WO2012046585A1 true WO2012046585A1 (ja) 2012-04-12

Family

ID=45927580

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/071857 WO2012046585A1 (ja) 2010-10-04 2011-09-26 分散ストレージシステム、その制御方法、およびプログラム

Country Status (1)

Country Link
WO (1) WO2012046585A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014021544A (ja) * 2012-07-12 2014-02-03 Nec Corp 分散ストレージシステム、データ配置ノード選択方法及びプログラム
JP2015172855A (ja) * 2014-03-12 2015-10-01 日本電気株式会社 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム
JP2016502715A (ja) * 2012-11-08 2016-01-28 ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. コンシステントハッシュ法を用いたネームスペースのための方法およびシステム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093220A (ja) * 1999-09-20 2001-04-06 Nec Eng Ltd 複数ハードディスクドライブ環境における省電力制御システム及び省電力制御方法
JP2004102374A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd データ移行装置を有する情報処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093220A (ja) * 1999-09-20 2001-04-06 Nec Eng Ltd 複数ハードディスクドライブ環境における省電力制御システム及び省電力制御方法
JP2004102374A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd データ移行装置を有する情報処理システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014021544A (ja) * 2012-07-12 2014-02-03 Nec Corp 分散ストレージシステム、データ配置ノード選択方法及びプログラム
JP2016502715A (ja) * 2012-11-08 2016-01-28 ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. コンシステントハッシュ法を用いたネームスペースのための方法およびシステム
US9363317B2 (en) 2012-11-08 2016-06-07 DSSD, Inc. Method and system for global namespace with consistent hashing
JP2016173826A (ja) * 2012-11-08 2016-09-29 ディ・エス・エス・ディ・インコーポレイテッドDssd, Inc. コンシステントハッシュ法を用いたネームスペースのための方法およびシステム
JP2015172855A (ja) * 2014-03-12 2015-10-01 日本電気株式会社 データ格納制御システム、データ格納制御方法、及び、データ格納制御プログラム

Similar Documents

Publication Publication Date Title
US10956246B1 (en) Isolated read channel management interfaces at streaming data service
US9684453B2 (en) Cluster federation and trust in a cloud environment
US9560093B2 (en) Higher efficiency storage replication using compression
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
JP5016063B2 (ja) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
US9367261B2 (en) Computer system, data management method and data management program
US9069835B2 (en) Organizing data in a distributed storage system
US11075984B1 (en) Workload management at streaming data service supporting persistent connections for reads
JP2004054721A (ja) ネットワークストレージ仮想化方法
US20150312342A1 (en) Parallel i/o write processing for use in clustered file systems having cache storage
US20150106468A1 (en) Storage system and data access method
US20150312343A1 (en) Parallel i/o read processing for use in clustered file systems having cache storage
US20210021653A1 (en) Stream data record reads using push-mode persistent connections
US20200401323A1 (en) Streaming data service with isolated read channels
US20230239345A1 (en) Isolated read channel categories at streaming data service
US10545667B1 (en) Dynamic data partitioning for stateless request routing
WO2012046585A1 (ja) 分散ストレージシステム、その制御方法、およびプログラム
JP2012008934A (ja) 分散ファイルシステム及び分散ファイルシステムにおける冗長化方法
US11070600B1 (en) Optimization techniques to support lagging readers at streaming data service
KR101696911B1 (ko) 분산 데이터 베이스 장치 및 그 장치에서의 스트림 데이터 처리 방법
JP2010271797A (ja) 分散ストレージにおけるデータ位置管理方法及び装置及びプログラム
WO2016088372A1 (ja) アクセス装置、マイグレーション装置、分散ストレージシステム、アクセス方法及びコンピュータ読み取り可能記録媒体
CN113434290A (zh) 基于raft协议的数据处理方法和设备,及计算机存储介质
JP5803908B2 (ja) ストレージシステム及びストレージシステムの制御方法
JP5278254B2 (ja) ストレージシステム、データ記憶方法及びプログラム

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11830518

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP