WO2012086919A2 - 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체 - Google Patents

복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체 Download PDF

Info

Publication number
WO2012086919A2
WO2012086919A2 PCT/KR2011/008223 KR2011008223W WO2012086919A2 WO 2012086919 A2 WO2012086919 A2 WO 2012086919A2 KR 2011008223 W KR2011008223 W KR 2011008223W WO 2012086919 A2 WO2012086919 A2 WO 2012086919A2
Authority
WO
WIPO (PCT)
Prior art keywords
target
metadata
client
server
data node
Prior art date
Application number
PCT/KR2011/008223
Other languages
English (en)
French (fr)
Other versions
WO2012086919A3 (ko
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 WO2012086919A2 publication Critical patent/WO2012086919A2/ko
Publication of WO2012086919A3 publication Critical patent/WO2012086919A3/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1006Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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]

Definitions

  • the present invention relates to an object distributed storage system using multiple proxy servers to efficiently provide distributed storage services in cloud computing, and more particularly, to physically dedupe and replicate objects. It's about a model that duplicates the metadata that stores locations in a central location and co-references that metadata across all proxy servers.
  • Cloud computing is a concept of distributing and serving various information technology (IT) resources through the Internet network.
  • IaaS infrastructure as a service
  • PaaS Platform As A Service
  • SaaS Software As A Service
  • IaaS has a number of service categories, typically compute and storage services that provide compute resources in the form of virtual machines.
  • the distributed storage system provides a cloud storage service, which uses a low specification hardware to create a common storage pool to satisfy elastic and flexible usage in a timely manner.
  • simple and powerful object-based storage techniques are widely used to perform physical storage management directly on the storage device itself. Therefore, the performance of the storage device can be improved and the capacity of the storage device can be easily expanded. It also features the ability to safely share data independent of the platform.
  • FIG. 1 is a diagram conceptually illustrating a distributed storage system according to the prior art.
  • the object storage system shown in FIG. 1 stores metadata including an authentication server that handles the client's authentication, a proxy server (or master server) that handles the client's requirements, and a physical location of the objects. It includes a metadata database, a data node that is responsible for storing and managing physical objects, and a replica server that manages the replication of data.
  • the client is initially authenticated through the authentication server. After the authentication is completed, the client requests the proxy server information of the data node managing the desired object.
  • the proxy server refers to the metadata and sends the desired operation request to the corresponding data node, and the data node transmits the result of performing the operation to the client through the proxy server.
  • the data node may provide a response directly to the client without going through the proxy server. In this case, the delay or data traffic can be reduced, but since all data nodes must have a client interface, the complexity of the data node can be increased.
  • the object store replicates the data for its safety and high availability, and this copy is called a replica.
  • Widely used distributed storage systems generally have two to three copies, but may have more copies depending on the importance of the object.
  • Replicas of objects must be kept in sync with each other, which is usually handled by a separate replica server.
  • the proxy server receives a request from the client, passes the request to a data node that can process the request, and receives a response back from the data node and sends the request back to the client.
  • the proxy server while introducing the concept of distributed storage for efficient use of system resources, there is a fatal weakness that the processing speed is delayed by the proxy server.
  • An object of the present invention is to provide a flexible and efficient multi-proxy object storage structure for cloud storage services.
  • an object of the present invention is to introduce a plurality of proxy servers to provide the advantages of cloud computing, such as scalability and elasticity, to allow a distributed storage system to have a flexible structure.
  • a distributed storage system for distributed storage in a plurality of data nodes the object transmitted over a network from a plurality of clients.
  • a distributed storage system including a metadata server configured to store metadata including unique information of an object and unique information of a data node in which the object is stored, and an operation request of a client to perform an administrative operation.
  • At least two proxy servers referring to a metadata server to deliver the operation request to a target data node associated with a target object that is an object of a management operation performed by the client, and A global load balancer that authenticates the client and determines, among the proxy servers, a target proxy server that will handle the client's operation request, and the target data node receives the operation received from the target proxy server. Performs on-demand action and targets the result of the target proxy It is configured to transmit to a server or client.
  • the global load balancer is configured to determine the target proxy server in consideration of at least one of the location information of the client and proxy servers and the load of the proxy servers.
  • the distributed storage system includes a plurality of metadata servers each storing metadata, the metadata servers configured to synchronize the metadata with each other, and in each of the proxy servers, one of the metadata servers is the default. (default) Assigned as a metadata server.
  • each proxy server refers to the default metadata server when the default metadata server assigned to the client is in a normal state, and provides the client with a list of unique information of the target data node associated with the target object. If down, it is configured to reference one of the other metadata servers.
  • the distributed storage system according to one aspect of the present invention includes two metadata servers each storing metadata, the metadata servers configured to synchronize the metadata with each other, and each of the proxy servers has two metadata servers. One of these is assigned as the default metadata server.
  • the distributed storage system includes a plurality of data nodes grouped by zones and each stores at least one object, wherein the data nodes have the same object in the same zone group. It is configured to be stored in only one of the belonging data nodes.
  • the distributed storage system selects a region group to which the target data node to store the target object based on the positional relationship of the data nodes and the client and based on the distance between the selected region group and the client.
  • Location-aware server which determines the priority of each regional group, and prioritizes the data nodes included in the same regional group in consideration of the available storage capacity and the object storage history of the data nodes included in the same regional group.
  • a local load balancer for granting the target proxy server, wherein the target proxy server is further configured to determine the data node having the highest priority as the target data node.
  • Another aspect of the present invention for achieving the above object relates to a method for managing an object in a distributed storage system for distributed storage of an object transmitted over a network from a plurality of clients to a plurality of data nodes.
  • a method of managing an object in which a global load balancer authenticates a client, and when an operation request for performing a management operation on a target object is received from the authenticated client, the global load balancer includes a plurality of proxy servers.
  • Target proxy server determination step for determining a target proxy server to process an operation request, the target proxy server by referring to metadata including the unique information of the object and the unique information of the data node where the object is stored, and the target data associated with the target object.
  • determining the target proxy server includes determining the target proxy server in consideration of at least one of the location information of the client and the proxy servers and the load of the proxy servers.
  • the updating of the metadata may include synchronizing the metadata with each other using the updated information by the plurality of metadata servers respectively storing the metadata.
  • the metadata updating step may include assigning one of the metadata servers as a default metadata server to each of the proxy servers, and that the default metadata server assigned to each of the proxy servers is normal. Providing the client with a list of unique information of the target data node associated with the target object with reference to the default metadata server; and referring to one of the other metadata servers if the default metadata server is down. Providing the client with a list of unique information.
  • the management operation is a storage operation for storing the target object in the target data node
  • the target object management step is to create a region group by grouping the data nodes by region based on the location information of each data node, the target to be stored If the object exists, a region group determination step of determining a region group to which the target data node to which the target object is to be stored, and a target data node determination step of determining one data node among data nodes belonging to the same region group as the target data node.
  • the step of determining a regional group includes the step of the location aware server selecting a local group to which the target data node to store the target object based on the positional relationship between the data nodes and the client, and the distance between the selected regional group and the client. Determining the priority based on the regional groups, wherein the determining the target data node comprises: determining, by the target proxy server, one target data node per regional group selected by the location aware server, and the target proxy server by the target data. Transmitting a list of nodes and a priority per regional group to the client, wherein updating the metadata includes updating, by the target proxy server, the metadata database using the determined list of target data nodes.
  • the client is the most Storing the target object in a target data node belonging to a high priority local group, and replicating the target object to target data nodes belonging to a low priority priority local data group according to the priority.
  • the unique information of the object includes at least one of an ID, a size, a data type, and a creator of the object
  • the unique information of the data node includes at least one of an ID, an IP address, and a physical location of the data node.
  • FIG. 1 is a diagram conceptually illustrating a distributed storage system according to the prior art.
  • FIG. 2 is a diagram conceptually illustrating an embodiment of a distributed storage system including a plurality of proxy servers according to an embodiment of the present invention.
  • FIG. 3 is a flowchart conceptually illustrating an object management method according to another aspect of the present invention.
  • FIG. 4 is a diagram conceptually illustrating another embodiment of a distributed storage system including a plurality of proxy servers according to an embodiment of the present invention.
  • the distributed storage system 200 shown in FIG. 2 includes a plurality of clients 210, 212, 216, data nodes DN1-DNn, a plurality of proxy servers 250, 252, and the like connected to the network 290. 254, and a global load balancer 220.
  • the distributed storage system 200 includes a plurality of metadata servers 280 and 282.
  • the global load balancer 220 takes into account the local location of the proxy servers 250, 252, 254 and the load of each proxy server 250, 252, 254 to support a multi proxy environment. Set the proxy server as the target proxy server for a particular client. In addition, the global load balancer 220 may serve as an authentication server for authenticating a client, and further, manages the location of the proxy server and the number and information of the allocated clients for each proxy server.
  • the global load balancer 220 When a request is received from the clients 210, 212, and 216 to perform a management operation, the global load balancer 220 first authenticates the client, and the location of the authenticated client and the proxy servers 250, 252, and 254. By referring to these loads, we determine a proxy server that is locally close to the client but has a low load, that is, a small number of assigned clients as the target proxy server for that client.
  • the requesting client connects to the target proxy server by using the address of the target proxy server determined by the global load balancer 220 and the key (or token) received for authentication to perform operations such as uploading, downloading, and modifying the target object. request.
  • the target proxy server Upon receiving the request for performing an operation, the target proxy server refers to the metadata servers 280 and 282 and transmits the client's request to the data node managing the object. Then, the target data node receiving the request performs the corresponding operation and passes the result back to the target proxy server. The target proxy server then delivers the result of the operation to the requesting client.
  • the target data node may directly transmit the result of performing the management operation to the client without passing through the target proxy server.
  • metadata is dually managed by two metadata servers 280 and 282.
  • metadata stored by the metadata servers 280 and 282 are synchronized with each other. If the metadata referred to by the metadata servers 280 and 282 are not synchronized with each other, the operation result may be different depending on which target proxy server is assigned to the client. For example, it is assumed that the first metadata server 280 has information about the first data node DN1 due to the synchronization failure, but the second metadata server 282 does not have this information. In addition, it is assumed that the first proxy server 250 and the second proxy server 252 are assigned first and second metadata servers 280 and 282 as default metadata servers, respectively. This assumption is for the convenience of the description and is not intended to limit the invention.
  • a client makes an operation request to read a target object stored in the first data node DN1, and the first and second proxy servers 250 and 252 are allocated to the corresponding client, respectively.
  • the target object is the first data node DN1. You can see that it is stored in. Accordingly, the first proxy server 250 transmits an operation request to the first data node DN1, and the first data node DN1 reads the corresponding object and transmits the target object to the client according to the transferred operation request.
  • the second proxy server 252 is assigned to the client as the target proxy server, the target object is assigned to the first data node DN1 because the second proxy server 252 references the second metadata server 282. It is not known that it is stored. Thus, the second proxy server 252 will return a response to the client that it is not executable for the operation request. However, if the execution result of the management operation varies depending on which proxy server is assigned to the client as the target proxy server, the reliability of operation of the entire distributed storage system 200 may be significantly reduced. Therefore, metadata servers 280 and 282 must be synchronized with each other. Alternatively, the metadata servers 280 and 282 may all refer to the same metadata database (not shown). In this case, a bottleneck may occur because all the metadata servers 280 and 282 refer to the same metadata database. However, synchronization of the metadata servers is unnecessary. Therefore, multiple proxy servers can be effectively supported without the need for synchronization of metadata servers.
  • a 'target object' refers to an object that a client wants to store or an object that is of interest to be inquired from a data node.
  • a target data node refers to a data node in which a target object is stored among a plurality of data nodes.
  • a management operation of a target object includes a storage operation for storing the target object in the target data node, a read operation for reading the stored target object from the target data node, and a local group or target data node in which the target object is stored. It should be understood that it includes both a change operation to be performed, an operation to modify a stored target object, and the like. That is, it is understood that all operations in which the client distributes and stores the object and read and modify the stored object are included in the management operation.
  • a distributed storage system is a term that collectively refers to all systems that record the same object in two or more storages, such as a cloud storage system supporting cloud computing, to prevent data loss and reduce storage burden. Should be.
  • the target proxy server metadata servers 280 and 282 are in an active state.
  • Proxy servers 250, 252, and 254 have one of the metadata servers 280, 282 as their default metadata server, and the information about this default metadata server is set as the initial setting value. Know. Therefore, the proxy server always uses the default metadata server to determine the physical location of the target object unless the default metadata server assigned to it is down. It is desirable to alternately assign metadata servers 280 and 282 when initially setting up proxy servers so that each of metadata servers 280 and 282 is assigned to a similar number of proxy servers. Then, since the load can be similarly maintained between the metadata servers 280 and 282, it is possible to prevent a large load on only one metadata server.
  • FIG. 3 is a flowchart conceptually illustrating an object management method according to another aspect of the present invention.
  • the global load balancer first authenticates the client (S310).
  • the global load balancer ignores the operation request of the client which has successfully authenticated and performs the client authentication operation again (S320). If authentication is successful, the global load balancer receives an operation request for performing a management operation on the target object from the authenticated client (S330).
  • the global load balancer determines a target proxy server to process the operation request among the plurality of proxy servers (S340). The global load balancer may select the target proxy server in consideration of the location information of the client and the proxy servers and the load of the proxy servers.
  • the target proxy server determines the target data node to which the target object which is the object of the operation request relates to the operation request from the client, and transmits the operation request to the target data node (S350).
  • the meaning that the object A is 'associated' with the data node B is understood as follows.
  • the management operation is an object storage operation, it may mean that the data node B is determined as the target data node where the A object is to be stored.
  • the management operation is an object read operation, this may mean that the A object is already stored in the data node B.
  • the target data node receiving the operation performs the requested management operation and transmits the result to the target proxy server or client (S360).
  • the metadata server updates the metadata (S370).
  • a plurality of metadata servers respectively storing the metadata synchronize the metadata with each other using the updated information.
  • all metadata servers may reference only one metadata database.
  • the desired metadata can be obtained through the other metadata database, thus operating reliability of the distributed storage system. This is improved.
  • FIG. 4 is a diagram conceptually illustrating another embodiment of a distributed storage system including a plurality of proxy servers according to an embodiment of the present invention.
  • the distributed storage system 400 shown in FIG. 4 includes a plurality of clients 410, 412, 416 and data nodes DN11-DN1n, DNm1-DNmn connected to the network 490.
  • the distributed storage system 400 illustrated in FIG. 4 includes a global load balancer 420, first and nth proxy servers 450 and 452, location aware server 460, replica server 470 and metadata server. 480 more.
  • the configuration and operation of the clients 410, 412, 416, global load balancer 420 and metadata server 480 shown in FIG. 4 are similar to those of the corresponding components shown in FIG. 2. Therefore, repetitive description is omitted for simplicity of the specification.
  • the plurality of data nodes DN11-DN1n and DNm1-DNmn belong to different regional groups ZG1 and ZGm, respectively.
  • the first regional group ZG1 includes data nodes DN11-DN1n
  • the second regional group ZG2 includes data nodes DNm1-DNmn.
  • the illustrated regional groups ZG1 and ZGm shown in FIG. 4 are defined by grouping each locally contiguous data nodes for efficient distributed storage of replicas.
  • data nodes belonging to the same local group are configured not to store the same object. That is, since a replica of one object is distributed and stored in data nodes belonging to another local group, two replicas are not commonly stored in two data nodes belonging to one local group.
  • replicas of one object are mapped to data nodes belonging to different local groups in the metadata representing the physical location of the object. Therefore, even if a certain regional group suffers a physical damage such as a problem in the entire network, the replica is distributed to and stored in data nodes belonging to another regional group, thereby improving reliability.
  • a regional group may be one data center or a server rack in a narrower area.
  • data nodes belonging to the local group are registered in the metadata as belonging to the local group.
  • the replicas of the object are then replicated to data nodes belonging to different local groups.
  • all clients 410, 412, 416 and data nodes DN11-DN1n, DNm1 -DNmn communicate with each other via network 490. That is, there is a virtual channel between each client and each data.
  • these virtual channels do not necessarily have the same conditions for every pair of client and data nodes.
  • the communication environment of the virtual channel may vary depending on the physical distance between the client and the data node. The greater the physical distance between the client and the data node, the longer it takes to transmit and receive objects because objects are passed through more relay nodes or gateways.
  • the communication environment of the virtual channel may also vary depending on the amount of network traffic and the performance of network resources constituting the virtual channel.
  • the present invention selects the most optimal virtual channel between the client and the data node in consideration of the communication environment of the virtual channel.
  • the distributed storage system according to the present invention may refer to a physical distance between a client and a local group. Therefore, the upload time of the object can be minimized by storing the object in a data node belonging to a local group located closest to the client including the stored object.
  • the distributed storage system according to the present invention does not replicate to data nodes belonging to the same local group when replicating an object. Therefore, the target object to be stored is distributed and stored in several local groups.
  • operation of data nodes in an adjacent area is often impossible. For example, suppose there are several data nodes in a data center, and this data center is set up as one regional group.
  • the distributed storage system stores the target object only in one target data node of the data nodes of the corresponding data center, and the replica is stored in the target data node belonging to another local group. Therefore, even if all data nodes in the data center fail, the desired target object can be easily retrieved from the target data nodes belonging to different regional groups.
  • the manual selection method is a method of giving a client a choice by querying the client for a preferred local group on the proxy server when the client first creates an account. Since the number of local groups is determined by the number of replicas, the client selects the preferred local groups in order of priority by the largest number of replicas allowed. That is, the client selects the preferred region group by the maximum number of replicas allowed in consideration of the case where the number of replicas can be selected differently according to the object.
  • 'priority' refers to a ranking determined by determining which regional group or data node is more suitable than another regional group or data node for storing a specific target object.
  • the priority may include a priority of a specific regional group compared to other regional groups and a priority between data nodes belonging to the same regional group.
  • the priority may be ranked directly by the client based on a preference for a particular region and data node with respect to a target object, or may be automatically determined by a proxy server or location aware server.
  • the automatic selection method is a method of selecting a local group using a location-aware server 460.
  • the target proxy server 450 queries the location aware server 460 for the most advantageous local group.
  • the location aware server 460 may determine the location of the client in various ways. In general, the location recognition server 460 may determine the physical location of the client by the IP address of the client. The location aware server 460 selects as many regional groups as the number of basic replicas of the client according to the request of the target proxy server 450, and transmits the selected regional group list to the target proxy server 450. The location aware server 460 may be implemented to be physically integrated into the target proxy server 450.
  • the determining of the target data node belonging to each of the regional groups determined by the location aware server 460 may be performed by the target proxy server 450 or the location aware server 460. If the location aware server 460 also determines the target data node, the location aware server 460 refers to the metadata database 480 to select the target data node that is closest to the client having the target object within the selected regional group. Can be. On the other hand, if the target proxy server 450 selects the target data node, the target proxy server 450 checks the state of the data nodes belonging to each regional group by using a local load balancer 455. A data node having an optimal condition can be selected as the target data node. Although local load balancer 455 is shown as being included in target proxy server 450, it should be understood that this is not a limitation of the present invention.
  • the target proxy server 450 manages information of data nodes in each regional group in metadata, and determines a weight value of each data node in advance in consideration of storage capacity of each data node for load balancing of data nodes. do. To date, load balancing between data nodes in a local group is maintained by selecting data nodes of request clients in consideration of object data stored in each data node and weight values of data nodes.
  • the distributed storage system 400 illustrated in FIG. 4 can improve the stability of the distributed storage system compared to the case of using a single proxy server by including a plurality of proxy servers, and extend the distributed storage system because the proxy server can be freely expanded. It is also easy to do.
  • the target data node is determined by referring to the distance between the client and the data nodes when storing the target object, upload and download time of the object can be reduced.
  • the target object is stored in the target data node belonging to another regional group, even if the network environment of one regional group deteriorates, the target object can be easily read from the target data node belonging to the other regional group, resulting in reliable operation. Significantly improved.
  • the method according to the present invention can be embodied as computer readable codes on a computer readable recording medium.
  • the computer-readable recording medium may include all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROMs, RAMs, CD-ROMs, magnetic tapes, floppy disks, optical data storage devices, and the like, and may also be implemented in the form of carrier waves (for example, transmission over the Internet). Include.
  • the computer readable recording medium can also store computer readable code that can be executed in a distributed fashion by a networked distributed computer system.
  • the present invention can be applied to a technique for improving operation reliability and scalability of a distributed storage system using a plurality of proxy servers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법이 개시된다. 본 발명에 의한 분산 저장 시스템은 오브젝트의 고유 정보 및 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터를 저장하는 메타데이터 서버, 관리 동작을 수행하고자 하는 클라이언트의 동작 요청이 수신되면, 메타데이터 서버를 참조하여 상기 클라이언트가 수행하는 관리 동작의 객체인 대상 오브젝트와 관련되는 대상 데이터 노드에 상기 동작 요청을 전달하는 적어도 두 개의 프락시 서버들, 및 클라이언트를 인증하며, 프락시 서버들 중에서 클라이언트의 동작 요청을 처리할 대상 프락시 서버를 결정하는 글로벌 로드 밸런서를 포함하며, 대상 데이터 노드는 대상 프락시 서버로부터 수신되는 동작 요청에 따른 동작을 수행하고 수행 결과를 대상 프락시 서버 또는 클라이언트로 전송하도록 구성된다. 본 발명에 의하여, 여러 개의 프락시 서버를 도입함으로써 클라우드 컴퓨팅의 장점인 확장성과 탄력성이 제공되며, 분산 저장 시스템이 유연한 구조를 가지게 된다.

Description

복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
본 발명은 클라우드 컴퓨팅에서 분산 저장 서비스를 효율적으로 제공하기 위하여 다중 프락시 서버를 이용한 오브젝트 분산 저장 시스템에 관한 것으로서, 특히, 오브젝트의 중복 제거(Deduplication) 및 복제(replication)를 효과적으로 수행하기 위해 오브젝트의 물리적 위치를 저장하는 메타데이터를 중앙에 이중화하여 두고 모든 프락시 서버에서 해당 메타데이터를 공동 참조하는 모델에 관한 것이다.
클라우드 컴퓨팅은 인터넷 망을 통해 여러 가지 IT(Information Technology) 자원들을 분배하여 서비스하는 개념으로 가장 일반적인 서비스 분류로는 첫째, 하드웨어 인프라를 서비스로 제공하는 IaaS(Infrastructure As A Service), 둘째, 응용 개발 및 실행 플랫폼을 서비스로 제공하는 PaaS(Platform As A Service), 그리고 마지막으로 어플리케이션을 서비스로 제공하는 SaaS(Software As A Service)로 나눈다.
IaaS에는 많은 서비스 카테고리가 있는데, 대표적으로 연산 자원을 가상 머신 형태로 제공하는 연산 서비스와 저장 서비스가 있다. 이러한 분산 저장 시스템은 클라우드 스토리지 서비스를 제공하는데, 이를 이용하면 저사양의 하드웨어를 활용하여 공용의 저장소 풀(storage pool)을 만들어 탄력적이고 유연한 사용량을 적시에 만족하는 특징을 가진다. 이를 위해 널리 이용되는 단순하고 강력한 오브젝트 기반 스토리지 기법에서는 물리적인 저장 공간 관리 기능을 저장 장치 자체에서 직접 수행하게 한다. 그러므로, 저장 장치의 성능이 향상되고 손쉽게 저장 장치의 용량을 확장할 수 있다. 또한, 플랫폼과 독립적으로 데이터를 안전하게 공유할 수 있는 특징을 가진다.
도 1은 종래 기술에 의한 분산 저장 시스템을 개념적으로 나타내는 도면이다.
도 1에 도시되는 오브젝트 스토리지 시스템은 클라이언트의 인증을 처리하는 인증 서버, 클라이언트의 요구사항을 처리하는 프락시 서버(proxy server)(또는 마스터 서버), 오브젝트들의 물리적인 위치를 포함하는 메타데이터를 저장하는 메타데이터 데이터베이스, 실제 오브젝트 저장 및 관리를 담당하는 데이터 노드, 그리고 데이터의 복제 등을 관리하는 복제 서버(replicator server) 등을 포함한다. 클라이언트는 초기에 인증 서버를 통해 인증을 받으며, 인증이 완료된 후에는 프락시 서버에게 원하는 오브젝트를 관리하는 데이터 노드의 정보를 요청한다. 클라이언트의 요청에 대해 프락시 서버는 메타데이터를 참조하여 해당하는 데이터 노드에게 원하는 동작 요청을 전달하고, 데이터 노드는 동작을 수행한 결과를 프락시 서버를 통해 클라이언트에게 전달한다. 또는, 데이터 노드는 프락시 서버를 거치지 않고 직접 클라이언트에게 응답을 제공할 수도 있다. 이 경우 지연이나 데이터 트래픽이 감소하는 효과를 기대할 수 있으나 모든 데이터 노드가 클라이언트 인터페이스를 가져야 함으로 데이터 노드의 복잡도가 증가할 수 있다.
오브젝트 저장소는 데이터의 안전성과 높은 가용성을 위해 데이터를 복제(replication)하며 이런 복제본을 레플리카(replica)라고 한다. 널리 이용되는 분산 저장 시스템은 일반적으로 2개 내지 3개의 복제본을 가지지만, 오브젝트의 중요도에 따라 더 많은 복제본을 가지기도 한다. 오브젝트의 복제본은 서로 동기를 유지해야 하며 이는 보통 별도의 복제 서버 (replicator server)에서 처리한다.
그런데, 종래 기술에 의한 분산 저장 시스템의 경우, 많은 개수의 클라이언트들이 모두 동일한 프락시 서버를 참조하여 복수 개의 데이터 노드에 접근한다. 그 결과, 분산 저장 시스템의 클라이언트 및 데이터 노드의 개수가 증가할수록 해당 프락시 서버의 처리 부담이 현저히 증가한다. 특히, 프락시 서버는 클라이언트의 요구를 받아 요청을 처리할 수 있는 데이터 노드로 요구사항을 전달하고 응답을 다시 데이터 노드에서 받아 클라이언트에 전달하기 때문에 많은 로드가 집중된다. 결국, 종래 기술에 의한 분산 저장 시스템에서는, 시스템 자원의 효율적인 이용을 위해 분산 저장 개념을 도입했으면서도, 프락시 서버에 의하여 처리 속도가 지연되는 치명적인 약점이 존재한다.
더 나아가, 단일 프락시 서버가 오작동을 하거나 다운된 경우, 해당 프락시 서버가 담당했던 분산 저장 시스템 전체의 동작이 불가능한 치명적인 집중 실패 문제(소위, point of failure problem)도 존재한다. 또한, 종래의 분산 저장 시스템에서는 단일 프락시 서버의 처리 용량 이상으로 시스템을 확장하는 것이 불가능하다.
그런데, 클라우드 컴퓨팅의 장점인 확장성과 탄력성 등을 제공하기 위해 유연한 구조를 가져야 함으로 프락시 서버의 다중화 구조를 지원할 필요성이 있다. 또한, 프락시 서버별로 메타데이터를 가지는 경우 메타데이터간 데이터 동기화 문제가 이슈화됨으로 메타데이터를 공유하는 구조가 역시 유리하다.
따라서, 클라우드 스토리지 서비스에서 요구되는 확장성과 유연성을 확보하는 것은 물론, 단일 프락시 서버의 단점인 집중 실패 문제점을 극복하면서도, 메타데이터를 안전하게 관리할 수 있는 기술이 절실히 요구된다.
본 발명의 목적은 클라우드 스토리지 서비스를 위해 유연하고 효율적인 멀티 프락시 오브젝트 스토리지 구조를 제공하는 것이다.
또한, 본 발명의 목적은, 클라우드 컴퓨팅의 장점인 확장성과 탄력성 등을 제공하기 위해 여러 개의 프락시 서버를 도입함으로써, 분산 저장 시스템이 유연한 구조를 가지도록 하는 것이다.
또한, 본 발명의 목적은 멀티 프락시 서버 분산 저장 시스템에서 메타데이터를 공유하도록 함으로써 모든 프락시 서버가 안정적으로 동일한 메타데이터를 참조하도록 하는 것이다.
상기와 같은 목적들을 달성하기 위한 본 발명의 일면은, 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템(distribution storage system)에 관한 것이다. 본 발명의 일면에 의한 분산 저장 시스템은 오브젝트의 고유 정보 및 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터(metadata)를 저장하는 메타데이터 서버, 관리 동작을 수행하고자 하는 클라이언트의 동작 요청이 수신되면, 메타데이터 서버를 참조하여 상기 클라이언트가 수행하는 관리 동작의 객체인 대상 오브젝트(target object)와 관련되는 대상 데이터 노드(target data node)에 상기 동작 요청을 전달하는 적어도 두 개의 프락시 서버들, 및 클라이언트를 인증하며, 프락시 서버들 중에서 클라이언트의 동작 요청을 처리할 대상 프락시 서버(target proxy server)를 결정하는 글로벌 로드 밸런서(global load balancer)를 포함하며, 대상 데이터 노드는 대상 프락시 서버로부터 수신되는 동작 요청에 따른 동작을 수행하고 수행 결과를 대상 프락시 서버 또는 클라이언트로 전송하도록 구성된다. 특히, 글로벌 로드 밸런서는 클라이언트 및 프락시 서버들의 위치 정보 및 프락시 서버들의 로드 중 적어도 하나를 고려하여 대상 프락시 서버를 결정하도록 구성된다. 더 나아가, 분산 저장 시스템은 메타데이터를 각각 저장하는 복수 개의 메타데이터 서버들을 포함하며, 메타데이터 서버들은 메타데이터를 서로 동기화하도록 구성되고, 프락시 서버들 각각에는, 메타데이터 서버들 중 어느 하나가 디폴트(default) 메타데이터 서버로서 할당된다. 또한, 프락시 서버 각각은 자신에게 할당된 디폴트 메타데이터 서버가 정상 상태일 경우 디폴트 메타데이터 서버를 참조하여 대상 오브젝트와 관련되는 대상 데이터 노드의 고유 정보의 목록을 클라이언트에게 제공하고, 디폴트 메타데이터 서버가 다운된 경우 다른 메타데이터 서버들 중 하나를 참조하도록 구성된다. 또는, 본 발명의 일면에 의한 분산 저장 시스템은 메타데이터를 각각 저장하는 두 개의 메타데이터 서버들을 포함하며, 메타데이터 서버들은 메타데이터를 서로 동기화하도록 구성되고, 프락시 서버들 각각에는 두 개의 메타데이터 서버들 중 어느 하나가 디폴트 메타데이터 서버로서 할당된다. 뿐만 아니라, 본 발명의 일면에 의한 분산 저장 시스템은 지역(zone)별로 그루핑되며 각각 적어도 하나의 오브젝트들을 저장하는 복수 개의 데이터 노드들을 포함하며, 데이터 노드들은 동일한 오브젝트는 동일한 지역 그룹(zone group)에 속한 데이터 노드들 중 오직 하나에만 저장되도록 구성된다. 특히, 동작이 상기 오브젝트의 저장 동작인 경우, 분산 저장 시스템은 데이터 노드들 및 클라이언트의 위치 관계에 기반하여 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하고 선택된 지역 그룹 및 클라이언트 간의 거리에 기반하여 지역 그룹별 우선 순위를 결정하는 위치 인식 서버(location-aware server) 및 동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하기 위한 로컬 로드 밸런서(local load balancer)를 포함하며, 대상 프락시 서버는, 가장 높은 우선 순위를 가지는 데이터 노드를 대상 데이터 노드로서 결정하도록 더욱 구성된다.
상기와 같은 목적들을 달성하기 위한 본 발명의 다른 면은 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템에서 오브젝트를 관리하기 위한 방법에 관한 것이다. 본 발명의 다른 면에 의한 오브젝트 관리 방법은 글로벌 로드 밸런서가 클라이언트를 인증하는 단계, 인증된 클라이언트로부터 대상 오브젝트에 대한 관리 동작을 수행하고자 하는 동작 요청이 수신되면, 글로벌 로드 밸런서가 복수 개의 프락시 서버들 중 동작 요청을 처리할 대상 프락시 서버를 결정하는 대상 프락시 서버 결정 단계, 대상 프락시 서버가 오브젝트의 고유 정보 및 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터를 참조하여 대상 오브젝트와 관련되는 대상 데이터 노드를 결정하고, 동작 요청을 대상 데이터 노드로 전달하는 단계, 대상 데이터 노드가 대상 프락시 서버로부터 수신되는 동작 요청에 따른 관리 동작을 수행하고 수행 결과를 대상 프락시 서버 또는 클라이언트로 전송하는 대상 오브젝트 관리 단계, 및 메타데이터가 변경되었을 경우 메타데이터를 갱신하는 메타데이터 갱신 단계를 포함한다. 특히, 대상 프락시 서버 결정 단계는 클라이언트 및 프락시 서버들의 위치 정보 및 프락시 서버들의 로드 중 적어도 하나를 고려하여 대상 프락시 서버를 결정하는 단계를 포함한다. 또한, 메타데이터 갱신 단계는 메타데이터를 각각 저장하는 복수 개의 메타데이터 서버들이 갱신된 정보를 이용하여 메타데이터를 서로 동기화하는 단계를 포함한다. 더 나아가, 메타데이터 갱신 단계는 프락시 서버들 각각에, 메타데이터 서버들 중 어느 하나를 디폴트(default) 메타데이터 서버로서 할당하는 단계 및 프락시 서버 각각이 자신에게 할당된 디폴트 메타데이터 서버가 정상 상태일 경우 디폴트 메타데이터 서버를 참조하여 대상 오브젝트와 관련되는 대상 데이터 노드의 고유 정보의 목록을 클라이언트에게 제공하는 단계, 및 디폴트 메타데이터 서버가 다운된 경우 다른 메타데이터 서버들 중 하나를 참조하여 대상 데이터 노드의 고유 정보의 목록을 클라이언트에게 제공하는 단계를 포함한다. 뿐만 아니라, 관리 동작은 대상 오브젝트를 대상 데이터 노드에 저장하기 위한 저장 동작이며, 대상 오브젝트 관리 단계는 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성하는 단계, 저장할 대상 오브젝트가 존재할 경우, 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹을 결정하는 지역 그룹 결정 단계, 동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 대상 데이터 노드로서 결정하는 대상 데이터 노드 결정 단계, 및 대상 데이터 노드에 대상 오브젝트를 저장하는 저장 단계를 포함한다. 특히, 지역 그룹 결정 단계는 위치 인식 서버가 데이터 노드들 및 클라이언트의 위치 관계에 기반하여 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하는 단계 및 위치 인식 서버가 선택된 지역 그룹 및 클라이언트 간의 거리에 기반하여 지역 그룹별 우선 순위를 결정하는 단계를 포함하고, 대상 데이터 노드 결정 단계는 대상 프락시 서버가 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하는 단계, 및 대상 프락시 서버가 대상 데이터 노드들의 목록 및 지역 그룹별 우선 순위를 클라이언트에게 전송하는 단계를 포함하며, 메타데이터 갱신 단계는 대상 프락시 서버가 결정된 대상 데이터 노드들의 목록을 이용하여 메타데이터 데이터베이스를 갱신하는 단계를 포함하고, 저장 단계는 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 대상 오브젝트를 저장하는 단계, 및 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 대상 오브젝트를 복제하는 복제 단계를 포함한다. 특히, 오브젝트의 고유 정보는 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고, 데이터 노드의 고유 정보는 데이터 노드의 ID, IP 주소, 및 물리적 위치 중 적어도 하나를 포함한다.
본 발명에 의하여, 클라우드 스토리지 서비스에서 요구되는 확장성과 유연성 그리고 높은 탄력성을 동시에 만족시킬 수 있다.
또한, 본 발명에 의하면 많은 클라이언트를 지원하기 위해 단일 프락시 서버의 단점인 집중 실패 문제점을 극복하면서도 프락시 서버간 적절한 부하 분산 효과를 기대할 수 있다.
더 나아가, 본 발명에 의하면 메타 데이터를 이중화하기 때문에 모든 프락시 서버에서 참조할 수 있도록 함으로써 메타 데이터의 안전성과 효율성을 동시에 확보할 수 있다.
도 1은 종래 기술에 의한 분산 저장 시스템을 개념적으로 나타내는 도면이다.
도 2는 본 발명의 일면에 의한 복수 개의 프락시 서버를 포함하는 분산 저장 시스템의 일 실시예를 개념적으로 나타내는 도면이다.
도 3은 본 발명의 다른 면에 의한 오브젝트 관리 방법을 개념적으로 나타내는 흐름도이다.
도 4는 본 발명의 일면에 의한 복수 개의 프락시 서버를 포함하는 분산 저장 시스템의 다른 실시예를 개념적으로 나타내는 도면이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로서, 본 발명을 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "...부", "...기", "모듈", "블록" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 2는 본 발명의 일면에 의한 복수 개의 프락시 서버를 포함하는 분산 저장 시스템의 일 실시예를 개념적으로 나타내는 도면이다. 도 2에 도시된 분산 저장 시스템(200)은 네트워크(290)에 연결되는 복수 개의 클라이언트들(210, 212, 216), 데이터 노드들(DN1-DNn), 복수 개의 프락시 서버들(250, 252, 254), 및 글로벌 로드 밸런서(220)를 포함한다. 또한, 분산 저장 시스템(200)은 복수 개의 메타데이터 서버(280, 282)를 포함한다.
글로벌 로드 밸런서(220)는 멀티 프락시 환경을 지원하기 위해 프락시 서버들(250, 252, 254)의 지역적 위치 및 각 프락시 서버들(250, 252, 254)의 로드를 고려하여 프락시 서버들 중 하나의 프락시 서버를 특정 클라이언트에 대한 대상 프락시 서버로 설정한다. 또한, 글로벌 로드 밸런서(220)는 클라이언트를 인증하는 인증 서버의 역할을 겸할 수 있으며, 더 나아가 프락시 서버의 위치와 프락시 서버별 할당 클라이언트의 수 및 정보를 관리한다.
클라이언트들(210, 212, 216)로부터 관리 동작을 수행하겠다는 요청이 수신되면, 글로벌 로드 밸런서(220)는 우선 해당 클라이언트를 인증하고, 인증된 클라이언트의 위치와 프락시 서버들(250, 252, 254)들의 로드를 참조하여 위치적으로 클라이언트에 가까우면서도 로드가 낮은, 즉 할당 클라이언트의 수가 적은 프락시 서버를 해당 클라이언트에 대한 대상 프락시 서버로서 결정한다.
그러면, 요청한 클라이언트는 글로벌 로드 밸런서(220)가 결정한 대상 프락시 서버의 주소와 인증시 받은 키(또는 토큰)를 이용하여 대상 프락시 서버에 접속하여 대상 오브젝트의 업로드, 다운로드, 수정 등의 동작을 수행하도록 요청한다. 동작 수행 요청을 수신한 대상 프락시 서버는 메타데이터 서버(280, 282)들을 참조하여 해당 오브젝트를 관리하는 데이터 노드에 클라이언트의 요청을 전달한다. 그러면, 이러한 요청을 수신한 대상 데이터 노드는 해당 동작을 수행하고 그 결과를 다시 대상 프락시 서버에 전달한다. 그러면, 대상 프락시 서버는 동작 수행 결과를 요청한 클라이언트에게 전달하게 된다. 물론, 대상 데이터 노드는 관리 동작을 수행한 결과를 대상 프락시 서버를 거치지 않고 직접 클라이언트로 전송할 수 있다.
도 2에 도시된 실시예에서, 메타데이터는 두 개의 메타데이터 서버(280, 282)에 의하여 이중으로 관리된다. 또한, 메타데이터 서버(280, 282)들이 저장하는 메타데이터는 서로 동기화된다. 만일, 각각의 메타데이터 서버(280, 282)들이 참조하는 메타데이터들이 서로 동기화되지 않는다면, 클라이언트에 어떤 대상 프락시 서버가 할당되었는지에 따라서 동작 결과가 상이하게 나타날 수 있다. 예를 들어, 동기화에 실패해 제1 메타데이터 서버(280)는 제1 데이터 노드(DN1)에 대한 정보를 가지고 있으나, 이 정보를 제2 메타데이터 서버(282)는 가지고 있지 못하다고 가정한다. 또한, 제1 프락시 서버(250)와 제2 프락시 서버(252)에는 각각 제1 및 제2 메타데이터 서버(280, 282)가 디폴트 메타데이터 서버로서 할당된다고 가정한다. 이러한 가정은 설명의 편의를 위한 것으로서 본 발명을 한정하는 것이 아님은 명백하다. 클라이언트가 제1 데이터 노드(DN1)에 저장된 대상 오브젝트를 독출하려는 동작 요청을 하고, 해당 클라이언트에 제1 및 제2 프락시 서버들(250, 252)이 각각 할당된다고 가정한다. 이 경우, 클라이언트에 제1 프락시 서버(250)가 대상 프락시 서버로서 할당되면, 제1 프락시 서버(250)는 제1 메타데이터 서버(280)를 참조하기 때문에 대상 오브젝트가 제1 데이터 노드(DN1)에 저장되어 있다는 것을 알 수 있다. 따라서, 제1 프락시 서버(250)는 동작 요청을 제1 데이터 노드(DN1)에 전달하고, 제1 데이터 노드(DN1)는 전달된 동작 요청에 따라 해당 대상 오브젝트를 독출하여 클라이언트에게 전송한다. 그러나, 클라이언트에 제2 프락시 서버(252)가 대상 프락시 서버로서 할당되면, 제2 프락시 서버(252)는 제2 메타데이터 서버(282)를 참조하기 때문에 대상 오브젝트가 제1 데이터 노드(DN1)에 저장되어 있다는 것을 알 수 없다. 따라서, 제2 프락시 서버(252)는 동작 요청에 대해서 실행 불가능하다는 응답을 클라이언트에게 반환하게 될 것이다. 그런데, 클라이언트에게 어떤 프락시 서버가 대상 프락시 서버로서 할당되는지에 따라 관리 동작의 실행 결과가 달라진다면 분산 저장 시스템(200) 전체의 동작 신뢰성이 현저히 떨어진다. 그러므로, 메타데이터 서버(280, 282)들은 서로 동기화되어야 한다. 또는, 메타데이터 서버(280, 282)들은 모두 동일한 메타데이터 데이터베이스(미도시)를 참조할 수 있다. 이 경우, 모든 메타데이터 서버(280, 282)들이 동일한 메타데이터 데이터베이스를 참조하기 때문에 병목 현상이 발생할 수 있으나, 메타데이터 서버들의 동기화가 불필요하게 되는 장점이 있다. 그러므로, 메타데이터 서버들의 동기화가 필요 없이 다중 프락시 서버들을 효과적으로 지원할 수 있다.
본 명세서에서 '대상 오브젝트(target object)'란 클라이언트가 저장하고자 하는 오브젝트나 데이터 노드로부터 조회하고자 하는 관심 대상인 오브젝트를 의미한다. 또한, '대상 데이터 노드(target data node)'란 여러 개의 데이터 노드 중에서 대상 오브젝트가 저장된 데이터 노드를 의미한다.
또한, 본 명세서에서 대상 오브젝트의 관리 동작이란, 대상 오브젝트를 대상 데이터 노드에 저장하는 저장 동작, 저장된 대상 오브젝트를 대상 데이터 노드로부터 독출하는 독출 동작, 대상 오브젝트가 저장된 지역 그룹 또는 대상 데이터 노드를 변경하려는 변경 동작, 및 저장된 대상 오브젝트를 수정하려는 동작 등을 모두 포함하는 것으로 이해되어야 한다. 즉, 클라이언트가 오브젝트를 분산 저장하고, 저장된 오브젝트를 독출하여 수정하는 모든 동작이 관리 동작에 포함되는 것으로 이해된다. 또한, 본 명세서에서 분산 저장 시스템이란 클라우드 컴퓨팅을 지원하는 클라우드 스토리지 시스템과 같이, 동일한 오브젝트를 두 개 이상의 저장소에 기록하여 데이터의 손실을 방지하고 저장 부담을 경감시키려는 모든 시스템을 총칭하여 가리키는 용어로 이해되어야 한다.
대상 프락시 서버 메타데이터 서버(280, 282)들은 모두 동작 상태가 액티브 상태인 것이 바람직하다. 프락시 서버들(250, 252, 254)들은 메타데이터 서버(280, 282)들 중 하나의 메타데이터 서버를 자신의 디폴트 메타 데이터 서버로서 가지고 있으며, 이러한 디폴트 메타데이터 서버에 대한 정보를 최초 설정값으로 알고 있다. 그러므로, 프락시 서버는 자신에게 할당된 디폴트 메타 데이터 서버가 다운되지 않는 한 항상 디폴트 메타 데이터 서버를 이용해 대상 오브젝트의 물리적 위치를 파악한다. 프락시 서버들을 최초 설정할 때 메타데이터 서버(280, 282)들을 번갈아가면서 할당함으로써 메타데이터 서버(280, 282)들 각각이 비슷한 개수의 프락시 서버들에 할당되도록 하는 것이 바람직하다. 그러면, 메타데이터 서버(280, 282)들 간에 부하를 비슷하게 유지할 수 있기 때문에, 어느 하나의 메타데이터 서버에만 많은 부하가 가해지는 현상을 방지할 수 있다.
도 3은 본 발명의 다른 면에 의한 오브젝트 관리 방법을 개념적으로 나타내는 흐름도이다.
도 3에 도시된 오브젝트 관리 방법에서는, 우선 글로벌 로드 밸런서가 클라이언트를 인증한다(S310). 글로벌 로드 밸런서는 인증을 성공한 클라이언트의 동작 요청은 무시하고 클라이언트 인증 동작을 다시 수행한다(S320). 인증이 성공하면, 글로벌 로드 밸런서는 인증된 클라이언트로부터 대상 오브젝트에 대한 관리 동작을 수행하고자 하는 동작 요청을 수신한다(S330). 동작 요청이 수신되면, 글로벌 로드 밸런서는 복수 개의 프락시 서버들 중 해당 동작 요청을 처리할 대상 프락시 서버를 결정한다(S340). 글로벌 로드 밸런서는 클라이언트 및 프락시 서버들의 위치 정보 및 프락시 서버들의 로드 등을 고려하여 대상 프락시 서버를 선택할 수 있다.
대상 프락시 서버가 결정되면, 대상 프락시 서버는 클라이언트로부터의 동작 요청을 해당 동작 요청의 객체인 대상 오브젝트가 관련되는 대상 데이터 노드를 결정하고, 동작 요청을 대상 데이터 노드로 전달한다(S350). 본 명세서에서 A라는 오브젝트가 B라는 데이터 노드와 '관련'된다는 의미는 다음과 같이 이해된다. 우선, 관리 동작이 오브젝트 저장 동작일 경우에는, A 오브젝트가 저장될 대상 데이터 노드로서 데이터 노드 B가 결정된다는 것을 의미할 수 있다. 또는, 관리 동작이 오브젝트 독출 동작일 경우에는, A 오브젝트가 이미 데이터 노드 B에 저장되어 있다는 것을 의미할 수 있다.
이와 같이 동작 요청이 전달되면, 이를 수신한 대상 데이터 노드는 요청된 관리 동작을 수행하고 그 결과를 대상 프락시 서버 또는 클라이언트로 전송한다(S360). 마지막으로, 메타데이터가 변경되었을 경우 메타데이터 서버가 메타데이터를 갱신한다(S370). 전술된 바와 같이, 메타데이터 갱신 단계에서, 메타데이터를 각각 저장하는 복수 개의 메타데이터 서버들이 갱신된 정보를 이용하여 메타데이터를 서로 동기화하는 것이 바람직하다. 또는, 모든 메타데이터 서버들이 하나의 메타데이터 데이터베이스만을 참조할 수도 있다. 다만, 여러 개의 메타데이터 데이터베이스를 두고 이들 메타데이터 데이터베이스들을 서로 동기화하는 경우, 하나의 메타데이터 데이터베이스에 고장이 발생하더라도 다른 메타데이터 데이터베이스를 통하여 원하는 메타데이터를 얻을 수 있기 때문에, 분산 저장 시스템의 동작 신뢰성이 향상된다.
도 4는 본 발명의 일면에 의한 복수 개의 프락시 서버를 포함하는 분산 저장 시스템의 다른 실시예를 개념적으로 나타내는 도면이다.
도 4에 도시된 분산 저장 시스템(400)은 네트워크(490)에 연결되는 복수 개의 클라이언트들(410, 412, 416) 및 데이터 노드들(DN11-DN1n, DNm1-DNmn)을 포함한다. 또한, 도 4에 도시된 분산 저장 시스템(400)은 글로벌 로드 밸런서(420), 제1 및 제n 프락시 서버(450, 452), 위치 인식 서버(460), 복제 서버(470) 및 메타데이터 서버(480)를 더 포함한다.
도 4에 도시된 클라이언트들(410, 412, 416), 글로벌 로드 밸런서(420) 및 메타데이터 서버(480)의 구성 및 동작은 도 2에 도시되는 대응 구성 요소들의 그것과 유사하다. 그러므로, 명세서의 간략화를 위하여 반복적인 설명이 생략된다.
도 4를 참조하면, 복수 개의 데이터 노드들(DN11-DN1n, DNm1-DNmn)이 각각 다른 지역 그룹(ZG1, ZGm)에 속한다는 것을 알 수 있다. 예를 들어, 제1 지역 그룹(ZG1)에는 데이터 노드들(DN11-DN1n)이 포함되고, 제2 지역 그룹(ZG2)에는 데이터 노드(DNm1-DNmn)가 포함된다. 도 4에 도시된 도시되는 지역 그룹(ZG1, ZGm)들은 효과적인 복제본의 분산 저장을 위하여, 각각 지역적으로 인접한 데이터 노드들을 그루핑함으로써 정의된다. 또한, 동일한 지역 그룹에 속하는 데이터 노드들은 동일한 오브젝트를 저장하지 않도록 구성된다. 즉, 하나의 오브젝트의 복제본은 다른 지역 그룹에 속하는 데이터 노드들에 분산되어 저장되기 때문에 두 개의 복제본이 어느 하나의 지역 그룹에 속한 두 개의 데이터 노드에 공통적으로 저장되지 않는다. 이를 메타데이터의 관점에서 보면, 오브젝트의 물리적인 위치를 나타내는 메타데이터에서 하나의 오브젝트의 복제본들은 다른 지역 그룹에 속한 데이터 노드들에 매핑된다. 그러므로, 어느 특정한 지역 그룹이 전체 네트워크 상에 문제가 생기는 등의 물리적인 피해를 입은 경우라도 복제본이 다른 지역 그룹에 속한 데이터 노드에 분산되어 저장되어 있으므로 신뢰성을 높일 수 있다.
도 4에 도시된 분산 저장 시스템(400)에서 지역 그룹은 하나의 데이터 센터가 될 수도 있고 좀 더 좁은 지역으로는 하나의 서버 랙이 될 수도 있다. 지역 그룹이 설정되면, 해당 지역 그룹 내에 속한 데이터 노드들을 그 지역 그룹에 속하는 것으로 메타데이터에 등록된다. 그러면, 오브젝트의 복제본들은 다른 지역 그룹에 속한 데이터 노드에 복제된다.
데이터 노드를 지역 그룹으로 그루핑함으로써 얻어지는 장점은 다음과 같다.
1) 본 발명에서, 모든 클라이언트들(410, 412, 416) 및 데이터 노드들(DN11-DN1n, DNm1-DNmn)들은 네트워크(490)를 통하여 서로 통신한다. 즉, 클라이언트 각각 및 데이터 각각 간에는 가상 채널(virtual channel)이 존재한다. 그러나, 이러한 가상 채널은 클라이언트 및 데이터 노드의 모든 쌍에 대해 반드시 동일한 조건을 가지는 것은 아니다. 예를 들어, 가상 채널의 통신 환경은 클라이언트 및 데이터 노드 간의 물리적 거리에 따라 달라질 수 있다. 클라이언트 및 데이터 노드 간의 물리적 거리가 멀수록 오브젝트는 더 많은 릴레이 노드 또는 게이트웨이를 통하여 전달되기 때문에 송수신 시간이 오래 걸린다. 또한, 가상 채널의 통신 환경은 네트워크 트래픽의 양 및 가상 채널을 구성하는 네트워크 자원의 성능에 따라서도 달라질 수 있다. 가상 채널을 통해 전달되는 트래픽의 양이 많을수록 가상 채널 상에서 전송 충돌(transmission collision)이 발생될 가능성이 높아지며, 네트워크 자원의 성능이 높을수록 가상 채널의 송수신 속도는 빨라진다. 그러므로, 본 발명에서는 이와 같은 가상 채널의 통신 환경을 고려하여 클라이언트 및 데이터 노드 간에 가장 최적의 가상 채널을 선택한다. 최적의 가상 채널을 선택하기 위하여 본 발명에 의한 분산 저장 시스템에서는 클라이언트 및 지역 그룹 간의 물리적 거리를 참조할 수 있다. 따라서, 저장한 오브젝트를 포함하는 클라이언트로부터 가장 가까운 거리에 위치한 지역 그룹에 속한 데이터 노드에 오브젝트를 저장함으로써 오브젝트의 업로드 시간을 최소화할 수 있다.
2) 또한, 본 발명에 의한 분산 저장 시스템은 오브젝트를 복제할 때 동일한 지역 그룹에 속하는 데이터 노드로 복제되지 않도록 한다. 따라서, 저장할 대상 오브젝트는 여러 개의 지역 그룹에 분산 저장된다. 일반적으로, 네트워크 장애가 발생하면 인접 지역의 데이터 노드들의 동작도 불가능한 경우가 많다. 예를 들어, 어느 데이터 센터에 여러 개의 데이터 노드들이 존재하고, 이 데이터 센터가 하나의 지역 그룹으로 설정된다고 가정한다. 이러한 가정은 본 발명을 용이하게 설명하기 위한 것으로 본 발명을 한정하는 것이 아님은 명백하다. 갑작스런 정전 등의 사고로 해당 데이터 센터가 동작 불능의 상태에 빠지는 경우가 발생할 수 있다. 이 경우, 본 발명에 의한 분산 저장 시스템은 대상 오브젝트를 해당 데이터 센터의 데이터 노드들 중 오직 하나의 대상 데이터 노드에만 저장하고, 그 복제본은 다른 지역 그룹에 속하는 대상 데이터 노드에 저장한다. 그러므로, 데이터 센터의 모든 데이터 노드들이 장애를 일으키더라도, 다른 지역 그룹에 속하는 대상 데이터 노드로부터 원하는 대상 오브젝트를 용이하게 조회할 수 있다.
다시 도 4를 참조하면, 분산 저장 시스템(400)에서 데이터 노드를 할당하는 방식으로는 수동 선택 방식과 자동 선택 방식의 두 가지 방식이 제안될 수 있다. 수동 선택 방법은 클라이어트가 최초로 계정을 만들 때 프락시 서버에서 선호하는 지역 그룹을 클라이언트에게 질의하여 클라이언트에게 선택권을 주는 방법이다. 복제본의 개수에 따라 지역 그룹의 개수가 정해지기 때문에, 클라이언트는 허용되는 가장 많은 복제본 개수만큼 선호하는 지역 그룹을 우선 순위에 따라 선택한다. 즉, 클라이언트는 오브젝트에 따라 복제본 개수를 다르게 선택할 수 있는 경우를 고려해 허용되는 최대 복제본 개수만큼 선호 지역 그룹을 선택한다. 이 후 선호하는 지역 그룹을 바꾸고자 할 경우에는 프락시 서버에게 지역 그룹 변경을 요청하고, 이 요청이 받아들여지면 그 이 후에는 대상 오브젝트를 변경된 선호 지역 그룹에 속하는 대상 데이터 노드에 저장한다. 본 명세서에서 '우선 순위'란 특정 대상 오브젝트를 저장하기에 어떤 지역 그룹 또는 데이터 노드가 다른 지역 그룹 또는 데이터 노드에 비하여 더 적합한지 판단하여 매긴 순위를 나타낸다. 우선 순위에는 특정 지역 그룹이 다른 지역 그룹에 비하여 가지는 우선 순위 및 동일한 지역 그룹 내에 속한 데이터 노드들 간의 우선 순위가 포함될 수 있다. 또한, 우선 순위는 클라이언트가 직접 어느 대상 오브젝트에 관련한 특정 지역 및 데이터 노드에 대한 선호도에 기반하여 매길 수도 있고, 또는 프락시 서버 또는 위치 인식 서버에 의하여 자동으로 결정될 수도 있다.
자동 선택 방법은 위치 인식 서버(location-aware server)(460)를 이용하여 지역 그룹을 선택하는 방식이다.
인증된 클라이언트가 대상 오브젝트를 저장할 대상 데이터 노드에 대해서 대상 프락시 서버(예를 들어, 450)에 질의하면, 대상 프락시 서버(450)는 가장 유리한 지역 그룹에 대해서 위치 인식 서버(460)에 문의한다.
위치 인식 서버(460)는 여러 가지 방법으로 클라이언트의 위치를 파악할 수 있는데, 일반적으로는 클라이언트의 IP 주소로 클라이언트의 물리적 위치를 파악할 수 있다. 위치 인식 서버(460)는 대상 프락시 서버(450)의 요청에 따라 클라이언트의 기본 복제본 개수만큼의 지역 그룹을 선정한 후 선정된 지역 그룹 리스트를 대상 프락시 서버(450)에게 전송한다. 위치 인식 서버(460)는 물리적으로 대상 프락시 서버(450) 내에 통합되어 구현될 수 있다.
위치 인식 서버(460)에 의하여 결정된 지역 그룹 각각에 속하는 대상 데이터 노드를 결정하는 동작은 대상 프락시 서버(450) 또는 위치 인식 서버(460)에 의하여 수행될 수 있다. 위치 인식 서버(460)가 대상 데이터 노드까지 결정하는 경우, 위치 인식 서버(460)는 메타데이터 데이터베이스(480)를 참조하여 선택된 지역 그룹 내에서 대상 오브젝트를 가지고 있는 클라이언트와 가장 근접한 대상 데이터 노드를 선택할 수 있다. 반면에, 대상 프락시 서버(450)가 대상 데이터 노드를 선택한다면, 대상 프락시 서버(450)는 로컬 로드 밸런서(load balancer, 455)를 이용하여 각 지역 그룹에 속하는 데이터 노드들의 상태를 점검하고, 이 중에서 최적 조건을 가지는 데이터 노드를 대상 데이터 노드로서 선택할 수 있다. 로컬 로드 밸런서(455)는 대상 프락시 서버(450)에 포함되는 것으로 도시되었으나, 이는 본 발명을 한정하는 것이 아님이 이해되어야 한다.
또한, 대상 프락시 서버(450)는 각 지역 그룹 내 데이터 노드들의 정보를 메타데이터에 관리하고, 데이터 노드들의 로드 밸런싱을 위해 각 데이터 노드의 스토리지 용량을 고려하여 각 데이터 노드의 가중치 값을 사전에 결정한다. 현재까지 각 데이터 노드의 오브젝트 저장 내역과 데이터 노드의 가중치 값을 고려해 요청 클라이언트의 데이터 노드를 선정함으로써 지역 그룹 내 데이터 노드간 로드 밸런싱을 유지한다.
도 4에 도시된 분산 저장 시스템(400)은 복수 개의 프락시 서버들을 포함함으로써 단일 프락시 서버를 이용하는 경우에 비하여 분산 저장 시스템의 안정성을 도모할 수 있으며, 프락시 서버의 확장이 자유롭기 때문에 분산 저장 시스템을 확장하는 것도 용이하다. 또한, 대상 오브젝트를 저장할 때 클라이언트와 데이터 노드들 간의 거리를 참조하여 대상 데이터 노드를 결정하기 때문에, 오브젝트의 업로드 및 다운로드 시간을 절감할 수 있다. 또한, 대상 오브젝트를 다른 지역 그룹에 속하는 대상 데이터 노드에 저장하기 때문에, 어느 한 지역 그룹의 네트워크 환경이 악화되더라도, 손쉽게 다른 지역 그룹에 속한 대상 데이터 노드로부터 대상 오브젝트를 독출할 수 있으므로, 동작 신뢰성이 현저히 향상된다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.
따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 복수 개의 프락시 서버를 이용하여 분산 저장 시스템의 동작 신뢰도 및 확장성을 향상시키기 위한 기술에 적용될 수 있다.

Claims (16)

  1. 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템(distribution storage system)에 있어서,
    상기 오브젝트의 고유 정보 및 상기 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터(metadata)를 저장하는 메타데이터 서버;
    관리 동작을 수행하고자 하는 클라이언트의 동작 요청이 수신되면, 상기 메타데이터 서버를 참조하여 상기 클라이언트가 수행하는 관리 동작의 객체인 대상 오브젝트(target object)와 관련되는 대상 데이터 노드(target data node)에 상기 동작 요청을 전달하는 적어도 두 개의 프락시 서버들; 및
    상기 클라이언트를 인증하며, 상기 프락시 서버들 중에서 상기 클라이언트의 동작 요청을 처리할 대상 프락시 서버(target proxy server)를 결정하는 글로벌 로드 밸런서(global load balancer)를 포함하며,
    상기 대상 데이터 노드는 상기 대상 프락시 서버로부터 수신되는 상기 동작 요청에 따른 관리 동작을 수행하고 수행 결과를 상기 대상 프락시 서버 또는 상기 클라이언트로 전송하도록 구성되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  2. 제1항에 있어서, 상기 글로벌 로드 밸런서는,
    상기 클라이언트 및 상기 프락시 서버들의 위치 정보 및 상기 프락시 서버들의 로드 중 적어도 하나를 고려하여 상기 대상 프락시 서버를 결정하도록 구성되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  3. 제2항에 있어서, 상기 분산 저장 시스템은,
    상기 메타데이터를 각각 저장하는 복수 개의 메타데이터 서버들을 포함하며,
    상기 메타데이터 서버들은 상기 메타데이터를 서로 동기화하도록 구성되고,
    상기 프락시 서버들 각각에는, 상기 메타데이터 서버들 중 어느 하나가 디폴트(default) 메타데이터 서버로서 할당되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  4. 제3항에 있어서, 상기 프락시 서버 각각은,
    자신에게 할당된 디폴트 메타데이터 서버가 정상 상태일 경우 상기 디폴트 메타데이터 서버를 참조하여 상기 대상 오브젝트와 관련되는 대상 데이터 노드의 고유 정보의 목록을 상기 클라이언트에게 제공하고,
    상기 디폴트 메타데이터 서버가 다운된 경우 다른 메타데이터 서버들 중 하나를 참조하도록 구성되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  5. 제4항에 있어서, 상기 분산 저장 시스템은,
    상기 메타데이터를 각각 저장하는 두 개의 메타데이터 서버들을 포함하며,
    상기 메타데이터 서버들은, 상기 메타데이터를 서로 동기화하도록 구성되고,
    상기 프락시 서버들 각각에는, 두 개의 메타데이터 서버들 중 어느 하나가 디폴트 메타데이터 서버로서 할당되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  6. 제1항에 있어서, 상기 분산 저장 시스템은,
    지역(zone)별로 그루핑되며 각각 적어도 하나의 오브젝트들을 저장하는 복수 개의 데이터 노드들을 포함하며,
    상기 데이터 노드들은, 동일한 오브젝트는 동일한 지역 그룹(zone group)에 속한 데이터 노드들 중 오직 하나에만 저장되도록 구성되는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템.
  7. 제6항에 있어서, 상기 분산 저장 시스템은,
    상기 관리 동작이 상기 오브젝트의 저장 동작인 경우, 상기 데이터 노드들 및 상기 클라이언트의 위치 관계에 기반하여 상기 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하고 선택된 지역 그룹 및 상기 클라이언트 간의 거리에 기반하여 상기 지역 그룹별 우선 순위를 결정하는 위치 인식 서버(location-aware server) 및
    동일한 지역 그룹에 포함되는 데이터 노드들의 가용 저장 용량 및 오브젝트 저장 내역을 고려하여 동일한 지역 그룹에 포함되는 데이터 노드들에게 우선 순위를 부여하기 위한 로컬 로드 밸런서(local load balancer)를 포함하며,
    상기 대상 프락시 서버는, 가장 높은 우선 순위를 가지는 데이터 노드를 상기 대상 데이터 노드로서 결정하도록 더욱 구성되는 것을 특징으로 하는 분산 저장 시스템.
  8. 제1항에 있어서,
    상기 오브젝트의 고유 정보는 상기 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고,
    상기 데이터 노드의 고유 정보는 상기 데이터 노드의 ID, IP(Internet Protocol) 주소, 및 물리적 위치 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 저장 시스템.
  9. 복수 개의 클라이언트들로부터 네트워크를 통해 전송되는 오브젝트를 복수 개의 데이터 노드들에 분산 저장하는 분산 저장 시스템에서 오브젝트를 관리하기 위한 방법에 있어서,
    글로벌 로드 밸런서가 상기 클라이언트를 인증하는 단계;
    인증된 클라이언트로부터 대상 오브젝트에 대한 관리 동작을 수행하고자 하는 동작 요청이 수신되면, 상기 글로벌 로드 밸런서가 복수 개의 프락시 서버들 중 상기 동작 요청을 처리할 대상 프락시 서버를 결정하는 대상 프락시 서버 결정 단계;
    상기 대상 프락시 서버가 상기 오브젝트의 고유 정보 및 상기 오브젝트가 저장된 데이터 노드의 고유 정보를 포함하는 메타데이터를 참조하여 상기 대상 오브젝트와 관련되는 대상 데이터 노드를 결정하고, 상기 동작 요청을 상기 대상 데이터 노드로 전달하는 단계;
    상기 대상 데이터 노드가 상기 대상 프락시 서버로부터 수신되는 상기 동작 요청에 따른 관리 동작을 수행하고 수행 결과를 상기 대상 프락시 서버 또는 상기 클라이언트로 전송하는 대상 오브젝트 관리 단계; 및
    상기 메타데이터가 변경되었을 경우 상기 메타데이터를 갱신하는 메타데이터 갱신 단계를 포함하는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  10. 제9항에 있어서, 상기 대상 프락시 서버 결정 단계는,
    상기 클라이언트 및 상기 프락시 서버들의 위치 정보 및 상기 프락시 서버들의 로드 중 적어도 하나를 고려하여 상기 대상 프락시 서버를 결정하는 단계를 포함하는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  11. 제10항에 있어서, 상기 메타데이터 갱신 단계는,
    상기 메타데이터를 각각 저장하는 복수 개의 메타데이터 서버들이 갱신된 정보를 이용하여 상기 메타데이터를 서로 동기화하는 단계를 포함하는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  12. 제11항에 있어서, 상기 메타데이터 갱신 단계는,
    상기 프락시 서버들 각각에, 상기 메타데이터 서버들 중 어느 하나를 디폴트(default) 메타데이터 서버로서 할당하는 단계 및
    상기 프락시 서버 각각이 자신에게 할당된 디폴트 메타데이터 서버가 정상 상태일 경우 상기 디폴트 메타데이터 서버를 참조하여 상기 대상 오브젝트와 관련되는 대상 데이터 노드의 고유 정보의 목록을 상기 클라이언트에게 제공하는 단계; 및
    상기 디폴트 메타데이터 서버가 다운된 경우 다른 메타데이터 서버들 중 하나를 참조하여 상기 대상 데이터 노드의 고유 정보의 목록을 상기 클라이언트에게 제공하는 단계를 포함하는 것을 특징으로 하는 복수 개의 프락시 서버들을 가지는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  13. 제9항에 있어서,
    상기 관리 동작은 상기 대상 오브젝트를 상기 대상 데이터 노드에 저장하기 위한 저장 동작이며,
    상기 대상 오브젝트 관리 단계는,
    상기 데이터 노드들을 각 데이터 노드들의 위치 정보를 기반하여 지역별로 그루핑하여 지역 그룹을 생성하는 단계;
    저장할 대상 오브젝트가 존재할 경우, 상기 대상 오브젝트가 저장될 대상 데이터 노드가 속하는 지역 그룹을 결정하는 지역 그룹 결정 단계;
    동일한 지역 그룹에 속하는 데이터 노드들 중 하나의 데이터 노드를 상기 대상 데이터 노드로서 결정하는 대상 데이터 노드 결정 단계; 및
    상기 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 저장 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  14. 제13항에 있어서,
    상기 지역 그룹 결정 단계는,
    위치 인식 서버가 상기 데이터 노드들 및 상기 클라이언트의 위치 관계에 기반하여 상기 대상 오브젝트를 저장할 대상 데이터 노드가 속하는 지역 그룹을 선택하는 단계 및
    위치 인식 서버가 선택된 지역 그룹 및 상기 클라이언트 간의 거리에 기반하여 상기 지역 그룹별 우선 순위를 결정하는 단계를 포함하고,
    상기 대상 데이터 노드 결정 단계는,
    상기 대상 프락시 서버가 상기 위치 인식 서버가 선택한 지역 그룹 당 하나의 대상 데이터 노드를 결정하는 단계; 및
    상기 대상 프락시 서버가 상기 대상 데이터 노드들의 목록 및 상기 지역 그룹별 우선 순위를 상기 클라이언트에게 전송하는 단계를 포함하며,
    상기 메타데이터 갱신 단계는, 상기 대상 프락시 서버가 결정된 대상 데이터 노드들의 목록을 이용하여 상기 메타데이터 데이터베이스를 갱신하는 단계를 포함하고,
    상기 저장 단계는,
    상기 클라이언트가 가장 높은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드에 상기 대상 오브젝트를 저장하는 단계; 및
    상기 우선 순위에 따라 순차적으로 더 낮은 우선 순위를 가지는 지역 그룹에 속하는 대상 데이터 노드들에 상기 대상 오브젝트를 복제하는 복제 단계를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  15. 제9항에 있어서,
    상기 오브젝트의 고유 정보는 상기 오브젝트의 ID, 크기, 데이터 타입, 및 작성자 중 적어도 하나를 포함하고,
    상기 데이터 노드의 고유 정보는 상기 데이터 노드의 ID, IP 주소, 및 물리적 위치 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 저장 시스템에서 대상 오브젝트를 관리하기 위한 방법.
  16. 제9항 내지 제15항 중 어느 한 항에 따르는 방법을 구현하기 위하여 컴퓨터에 의하여 실행될 수 있는 컴퓨터 프로그램 명령어들을 저장하는 컴퓨터에 의하여 독출가능한 저장 매체.
PCT/KR2011/008223 2010-12-24 2011-10-31 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체 WO2012086919A2 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0134841 2010-12-24
KR1020100134841A KR101544480B1 (ko) 2010-12-24 2010-12-24 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체

Publications (2)

Publication Number Publication Date
WO2012086919A2 true WO2012086919A2 (ko) 2012-06-28
WO2012086919A3 WO2012086919A3 (ko) 2012-09-07

Family

ID=46314560

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/008223 WO2012086919A2 (ko) 2010-12-24 2011-10-31 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체

Country Status (3)

Country Link
US (1) US9888062B2 (ko)
KR (1) KR101544480B1 (ko)
WO (1) WO2012086919A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064030A1 (ko) * 2014-10-21 2016-04-28 삼성에스디에스 주식회사 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법
CN110516031A (zh) * 2019-08-28 2019-11-29 上海欣能信息科技发展有限公司 一种电力非结构化数据的存储管理系统及存储管理方法
CN114584397A (zh) * 2022-04-28 2022-06-03 睿至科技集团有限公司 一种分布式云数据集中处理方法及系统
US11784955B1 (en) * 2022-12-09 2023-10-10 Salesforce, Inc. Virtual space server redundancy across geographic regions

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
EP3232610B1 (en) * 2010-03-22 2020-03-04 Koninklijke KPN N.V. System and method for handling a configuration request
WO2014046380A1 (ko) * 2012-09-18 2014-03-27 에스케이플래닛 주식회사 메타 정보 기반의 클라우드 서비스 방법
WO2014209075A1 (ko) * 2013-06-27 2014-12-31 Seo Jeong Hoan 인터넷 프로토콜을 이용한 서비스를 위한 다중 연결 시스템 및 방법
US20150026130A1 (en) * 2013-07-17 2015-01-22 LiveQoS Inc. Method for efficient management of email attachments
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
CN103475709B (zh) * 2013-09-09 2017-01-04 国家电网公司 一种面向云计算平台的副本动态控制方法及其系统
CN103442090B (zh) * 2013-09-16 2016-08-17 苏州市职业大学 一种数据分散存储的云计算系统
US20150169609A1 (en) * 2013-12-06 2015-06-18 Zaius, Inc. System and method for load balancing in a data storage system
CN104714923B (zh) * 2013-12-17 2018-04-20 华为技术有限公司 一种实现设备共享的方法和装置
US9432476B1 (en) * 2014-03-28 2016-08-30 Emc Corporation Proxy data storage system monitoring aggregator for a geographically-distributed environment
CN103970881A (zh) * 2014-05-16 2014-08-06 浪潮(北京)电子信息产业有限公司 一种实现文件上传的方法及系统
CN104202428A (zh) * 2014-09-25 2014-12-10 北京网秦天下科技有限公司 分布式文件存储系统及文件存储方法
US10275185B2 (en) * 2015-02-27 2019-04-30 International Business Machines Corporation Fail-in-place supported via decentralized or Distributed Agreement Protocol (DAP)
US11188665B2 (en) 2015-02-27 2021-11-30 Pure Storage, Inc. Using internal sensors to detect adverse interference and take defensive actions
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US11089099B2 (en) * 2015-09-26 2021-08-10 Intel Corporation Technologies for managing data object requests in a storage node cluster
KR102098896B1 (ko) 2016-03-02 2020-04-09 한국전자통신연구원 데이터 관리 시스템 및 방법
US10503654B2 (en) 2016-09-01 2019-12-10 Intel Corporation Selective caching of erasure coded fragments in a distributed storage system
EP4187881A1 (en) 2017-08-28 2023-05-31 Bright Data Ltd. Improving content fetching by selecting tunnel devices grouped according to geographic location
US10623889B2 (en) 2018-08-24 2020-04-14 SafeGraph, Inc. Hyper-locating places-of-interest in buildings
CN109120717B (zh) * 2018-09-26 2023-07-25 中国平安人寿保险股份有限公司 反向代理方法、装置及存储介质、分布式系统
US10877947B2 (en) 2018-12-11 2020-12-29 SafeGraph, Inc. Deduplication of metadata for places
LT3780557T (lt) 2019-02-25 2023-03-10 Bright Data Ltd. Turinio parsisiuntimo, naudojant url bandymų mechanizmą, sistema ir būdas
WO2020179942A1 (ko) * 2019-03-05 2020-09-10 주식회사 헤븐트리 공유 데이터베이스를 기반으로 하는 분산 처리 방법
EP3935792A4 (en) 2019-04-02 2022-11-30 Bright Data Ltd. SYSTEM AND METHOD FOR MANAGING A NON-DIRECT URL RETRACTION SERVICE
CN110290165B (zh) * 2019-04-04 2022-01-28 平安科技(深圳)有限公司 网络主机间通信负载调控方法、电子装置及可读存储介质
CN111913801B (zh) * 2020-07-15 2023-08-29 广州虎牙科技有限公司 数据处理方法和装置、代理服务器、存储系统及存储介质
US11762914B2 (en) 2020-10-06 2023-09-19 SafeGraph, Inc. Systems and methods for matching multi-part place identifiers
US11899696B2 (en) 2020-10-06 2024-02-13 SafeGraph, Inc. Systems and methods for generating multi-part place identifiers
US11425044B2 (en) * 2020-10-15 2022-08-23 Cisco Technology, Inc. DHCP layer 2 relay in VXLAN overlay fabric
CN114979153B (zh) * 2022-04-07 2023-10-27 浙江大华技术股份有限公司 负载均衡方法、计算机设备及存储装置
CN115934006B (zh) * 2023-03-14 2023-05-12 北京志凌海纳科技有限公司 Io接入点和数据处理任务管理方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070012544A (ko) * 2004-05-14 2007-01-25 사이트릭스 시스템스, 인크. 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치
KR20070067069A (ko) * 2004-06-25 2007-06-27 텔코디아 테크놀로지스, 인코포레이티드 분산 요청 라우팅
KR100931260B1 (ko) * 2009-07-08 2009-12-11 (주)나노레볼루션 Sbc 환경에서 사용자 단말의 이동성 지원을 위한 끊김없는 서버 접속 및 서비스 연결 방법 및 시스템
US20100318609A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930007928B1 (ko) 1991-01-31 1993-08-21 삼성전자 주식회사 오류정정방법 및 장치
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
KR100673692B1 (ko) 2000-03-16 2007-01-23 엘지엔시스(주) 패리티 블록코드를 이용한 오류 복구방법
JP4039800B2 (ja) 2000-12-19 2008-01-30 株式会社日立製作所 データ管理方法、オブジェクト統合管理システム
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7418620B1 (en) 2001-02-16 2008-08-26 Swsoft Holdings, Ltd. Fault tolerant distributed storage method and controller using (N,K) algorithms
KR20030070797A (ko) 2002-02-26 2003-09-02 김익수 분산 프락시를 사용한 vod 서버 구현
KR100923394B1 (ko) 2002-06-25 2009-10-23 주식회사 케이티 가상사설망에서의 네트워크 저장공간 구현 방법
JP4387087B2 (ja) 2002-07-25 2009-12-16 三洋電機株式会社 データ記憶装置
JP2004126716A (ja) 2002-09-30 2004-04-22 Fujitsu Ltd 広域分散ストレージシステムを利用したデータ格納方法、その方法をコンピュータに実現させるプログラム、記録媒体、及び広域分散ストレージシステムにおける制御装置
US7509645B2 (en) * 2002-10-17 2009-03-24 Intel Corporation Methods and apparatus for load balancing storage nodes in a distributed network attached storage system
US7865536B1 (en) 2003-02-14 2011-01-04 Google Inc. Garbage collecting systems and methods
US20050125456A1 (en) 2003-12-09 2005-06-09 Junichi Hara File migration method based on access history
ES2585178T3 (es) * 2003-12-18 2016-10-04 G-Cluster Global Corporation Sistema servidor/cliente, dispositivo de distribución de carga, procedimiento de distribución de carga y programa de distribución de carga
US20050257002A1 (en) * 2004-04-30 2005-11-17 Nokia, Inc. Apparatus and method for neighbor cache table synchronization
US20050251855A1 (en) * 2004-05-04 2005-11-10 Hob Gmbh & Co. Kg Client-server-communication system
US20060069828A1 (en) 2004-06-30 2006-03-30 Goldsmith Michael A Sharing a physical device among multiple clients
US20060031230A1 (en) * 2004-07-21 2006-02-09 Kumar Sinha M Data storage systems
US20080021935A1 (en) 2004-09-10 2008-01-24 Koninklijke Philips Electronics, N.V. System and Method for Avoiding Redundant Copying of Shared Content When Using Virtual Titles
KR100719285B1 (ko) 2005-03-30 2007-05-17 (주)이스트소프트 웹 스토리지의 분산 파일관리시스템 및 파일관리방법
US20060277596A1 (en) * 2005-06-06 2006-12-07 Calvert Peter S Method and system for multi-instance session support in a load-balanced environment
US20070078959A1 (en) * 2005-10-03 2007-04-05 Yinghua Ye Low-power proxy for providing content listings in ad-hoc, peer to peer networks
US9392078B2 (en) 2006-06-23 2016-07-12 Microsoft Technology Licensing, Llc Remote network access via virtual machine
US7725431B2 (en) * 2006-06-30 2010-05-25 Nokia Corporation Method and apparatus for the synchronization and storage of metadata
JP4859595B2 (ja) 2006-09-01 2012-01-25 株式会社日立製作所 記憶システム、そのデータ再配置方法、データ再配置プログラム
US8239479B2 (en) 2007-06-22 2012-08-07 Microsoft Corporation Server-assisted and peer-to-peer synchronization
KR20090036276A (ko) 2007-10-09 2009-04-14 주식회사 대우일렉트로닉스 광정보 처리장치의 데이터 페이지, 데이터 페이지 맵핑방법및 데이터 페이지 오류검사방법
US7865762B2 (en) 2007-12-04 2011-01-04 Intel Corporation Methods and apparatus for handling errors involving virtual machines
KR100946986B1 (ko) 2007-12-13 2010-03-10 한국전자통신연구원 파일 저장 시스템 및 파일 저장 시스템에서의 중복 파일관리 방법
US8452927B2 (en) 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
US8370402B2 (en) 2008-01-02 2013-02-05 Sandisk Il Ltd Dual representation of stored digital content
US8583878B2 (en) 2008-01-02 2013-11-12 Sandisk Il Ltd. Storage device having direct user access
US9098506B2 (en) 2008-01-02 2015-08-04 Sandisk Il, Ltd. Data indexing by local storage device
US20090171911A1 (en) 2008-01-02 2009-07-02 Sandisk Il, Ltd. Data indexing by local storage device
JP2011513804A (ja) 2008-01-02 2011-04-28 サンディスク アイエル リミテッド 直接ユーザアクセスを受ける記憶デバイス
KR101007356B1 (ko) 2008-08-28 2011-01-13 한국전자통신연구원 가상화 시스템 상에서 입출력 디바이스 설정장치 및 방법
US9367257B2 (en) 2008-09-11 2016-06-14 Microsoft Technology Licensing, Llc Techniques for resource location and migration across data centers
KR20100055297A (ko) 2008-11-17 2010-05-26 에스케이텔레콤 주식회사 분산 저장된 컨텐츠의 리다이렉티드 url을 이용한 동시 멀티미디어 스트리밍 시스템 및 방법
KR101301004B1 (ko) 2008-11-25 2013-08-29 에스케이플래닛 주식회사 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101485610B1 (ko) 2008-11-27 2015-01-22 주식회사 케이티 네트워크 구조를 고려한 분산형 컨텐트 전달 시스템 및 그 방법
KR101104729B1 (ko) 2008-11-28 2012-01-11 에스케이플래닛 주식회사 최적의 캐시조각 획득방식을 이용하는 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법
KR101023585B1 (ko) 2008-12-08 2011-03-21 주식회사 케이티 객체기반 스토리지 시스템에서 클라이언트 요청빈도에 따른데이터 관리 방법
KR101010219B1 (ko) 2008-12-16 2011-01-21 한국전자통신연구원 비대칭 분산 파일 시스템과 그의 점진적 일관성 오류 감지 및 복구 방법
KR101056030B1 (ko) 2008-12-18 2011-08-10 주식회사 다산네트웍스 인터넷 그룹 관리 프로토콜 프락시 장치
KR20100073154A (ko) 2008-12-22 2010-07-01 한국전자통신연구원 메타데이터 서버, 데이터 서버의 데이터 처리 방법 및 이를이용한 비대칭 클러스터 분산 파일 시스템
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
KR20100092850A (ko) 2009-02-13 2010-08-23 경희대학교 산학협력단 클라우드 컴퓨팅 환경에서의 리소스 분배 장치 및 그 방법
US8560639B2 (en) 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
KR20100122197A (ko) 2009-05-12 2010-11-22 주식회사 클루넷 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법
KR101626117B1 (ko) 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US20100332401A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
KR100985169B1 (ko) 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US8972366B2 (en) * 2010-09-29 2015-03-03 Red Hat, Inc. Cloud-based directory system based on hashed values of parent and child storage locations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070012544A (ko) * 2004-05-14 2007-01-25 사이트릭스 시스템스, 인크. 한정된 시스템 자원을 가진 디바이스상에서 애플리케이션출력을 디스플레이하는 방법 및 장치
KR20070067069A (ko) * 2004-06-25 2007-06-27 텔코디아 테크놀로지스, 인코포레이티드 분산 요청 라우팅
US20100318609A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bridging enterprise networks into cloud
KR100931260B1 (ko) * 2009-07-08 2009-12-11 (주)나노레볼루션 Sbc 환경에서 사용자 단말의 이동성 지원을 위한 끊김없는 서버 접속 및 서비스 연결 방법 및 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064030A1 (ko) * 2014-10-21 2016-04-28 삼성에스디에스 주식회사 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법
KR20160046667A (ko) * 2014-10-21 2016-04-29 삼성에스디에스 주식회사 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법
KR102295664B1 (ko) * 2014-10-21 2021-08-27 삼성에스디에스 주식회사 글로벌 서버 로드 밸런서 장치 및 상기 장치에서의 동적 캐쉬 유효 기간 제어 방법
CN110516031A (zh) * 2019-08-28 2019-11-29 上海欣能信息科技发展有限公司 一种电力非结构化数据的存储管理系统及存储管理方法
CN114584397A (zh) * 2022-04-28 2022-06-03 睿至科技集团有限公司 一种分布式云数据集中处理方法及系统
CN114584397B (zh) * 2022-04-28 2022-07-29 睿至科技集团有限公司 一种分布式云数据集中处理方法及系统
US11784955B1 (en) * 2022-12-09 2023-10-10 Salesforce, Inc. Virtual space server redundancy across geographic regions

Also Published As

Publication number Publication date
KR20120072908A (ko) 2012-07-04
KR101544480B1 (ko) 2015-08-13
US20120166611A1 (en) 2012-06-28
US9888062B2 (en) 2018-02-06
WO2012086919A3 (ko) 2012-09-07

Similar Documents

Publication Publication Date Title
WO2012086919A2 (ko) 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
WO2012086918A2 (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
WO2012086920A2 (ko) 내용 기반 중복 방지 기능을 가지는 분산 저장 시스템 및 그 오브젝트 저장 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US9703610B2 (en) Extensible centralized dynamic resource distribution in a clustered data grid
US7634566B2 (en) Arrangement in a network for passing control of distributed data between network nodes for optimized client access based on locality
EP3200431B1 (en) Massively scalable object storage system
EP1969476B1 (en) Peer distribution point feature for system management server
EP3350723B1 (en) Hosted file sync with stateless sync nodes
KR101480867B1 (ko) 맵리듀스 연산 가속 시스템 및 방법
US20100138540A1 (en) Method of managing organization of a computer system, computer system, and program for managing organization
CN103051551A (zh) 一种分布式系统及其自动维护方法
CN110830574B (zh) 一种基于docker容器实现内网负载均衡的方法
JP5969315B2 (ja) データ移行処理システムおよびデータ移行処理方法
CN111158949A (zh) 容灾架构的配置方法、切换方法及装置、设备和存储介质
CN104125294A (zh) 一种大数据安全管理方法和系统
US7219106B2 (en) System for distributing files and transmitting/receiving distributed files
CN111225003B (zh) 一种nfs节点配置方法和装置
JP5945543B2 (ja) ミドルウェアマシン環境を含むシステム
KR101342258B1 (ko) 분산 데이터 관리 시스템 및 그 방법
CN113127444A (zh) 一种数据迁移方法、装置、服务器及存储介质
KR100700717B1 (ko) 컨텐트 구분에 의한 전송시스템의 클러스터링 장치 및 방법
CN112799849B (zh) 一种数据处理方法、装置、设备及存储介质
KR100827626B1 (ko) 링 기반 연결 구조를 이용한 그리드 데이터베이스 시스템및 이를 위한 부하 분산 방법
JPH09231180A (ja) サーバ分割方法
JP2006003962A (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: 11850551

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11850551

Country of ref document: EP

Kind code of ref document: A2