WO2014042415A1 - 지능형 분산 스토리지 서비스 시스템 및 방법 - Google Patents

지능형 분산 스토리지 서비스 시스템 및 방법 Download PDF

Info

Publication number
WO2014042415A1
WO2014042415A1 PCT/KR2013/008198 KR2013008198W WO2014042415A1 WO 2014042415 A1 WO2014042415 A1 WO 2014042415A1 KR 2013008198 W KR2013008198 W KR 2013008198W WO 2014042415 A1 WO2014042415 A1 WO 2014042415A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
storage node
virtual
capacity
nodes
Prior art date
Application number
PCT/KR2013/008198
Other languages
English (en)
French (fr)
Inventor
김태훈
김용광
Original Assignee
효성아이티엑스(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 효성아이티엑스(주) filed Critical 효성아이티엑스(주)
Priority to US14/427,503 priority Critical patent/US20150248253A1/en
Publication of WO2014042415A1 publication Critical patent/WO2014042415A1/ko

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices

Definitions

  • the present invention relates to control computing technology, and more particularly, to an intelligent distributed storage service system and method.
  • This distributed file system has the following characteristics.
  • chunks also referred to as chunks or blocks
  • it is divided into chunks (also referred to as chunks or blocks) in a designated directory among several distributed storage nodes and distributed to all nodes.
  • duplicated nodes are duplicated over two or more nodes through the pipeline for stored chunks.
  • the data is distributed and stored in a round robin manner (a method of storing the data evenly on all servers rather than operating with a special algorithm) to all registered data nodes, and the data is distributed and stored at the stored location. Is universal.
  • the technical problem to be solved by the present invention is to solve the conventional problem, the computing power of the server equipment used in all data nodes is different, or the network load, CPU, memory utilization rate and the application situation (that is, execution environment) Although different, the original purpose of distributed file system and storage virtualization is to provide an intelligent distributed storage service system and method capable of securing high performance and high availability by distributing low specification storage equipment.
  • the present invention provides an intelligent distributed storage service system and method.
  • the present invention provides an intelligent distributed storage service system and method that can measure an unbalance degree of disk usage for each volume allocated to a user and reduce overhead by rebalancing allocated volumes.
  • An intelligent distributed storage service system connected to at least one user terminal through a network
  • a web server for receiving selection information including the virtual storage capacity, the number of storage nodes, the type of storage node and the distribution method required for the virtual storage service from the terminal;
  • At least one storage node for creating a virtual disk volume under external control
  • a control center server that monitors an available capacity and a usage state of the storage node, and controls to generate a virtual disk volume by determining a storage node corresponding to the selection information among the monitored storage nodes;
  • the web server The web server,
  • the terminal When the terminal requests a virtual storage service, request the terminal to input the required virtual storage capacity, the type of storage node to be created, the number of storage nodes, and a distribution method.
  • the input information is transmitted to the control center server.
  • the control center server The control center server,
  • a storage node corresponding to the selection information is determined among nodes that are 1.5 times or more larger than the capacity required by each storage node, and controls to create a virtual disk volume.
  • the storage node's available capacity and usage state are calculated by multiplying the available capacity of each storage node, the average rank of disk I / O, the average rank of CPU utilization, the memory utilization rate, and the average rank of network I / O, and the sum of the sum values. Based on this, the storage node to configure the virtual storage is controlled to create a virtual disk volume.
  • the control center server may control to generate a virtual disk volume in the determined storage node, and the determined storage node generates a virtual disk volume.
  • An intelligent distributed storage service method connected to at least one user terminal through a network
  • selection information including a virtual storage capacity, a number of storage nodes, a type of storage node, and a distribution method required for a virtual storage service from the terminal;
  • Multiplying the available capacity, the disk I / O average rank, the CPU utilization average rank, the memory utilization rate, and the network I / O average rank by multiplying the available capacity of each storage node by using the available capacity and the use state of the storage node;
  • the control center server further comprises storing the user's generated virtual disk volume information in a database.
  • the terminal When the terminal requests a virtual storage service, requesting the terminal to input a required virtual storage capacity, a type of storage node to be created, a number of storage nodes, and a distribution scheme;
  • the embodiment of the present invention provides a more fundamental method of risk of loss and infringement of information stored in a device volume, and assigns a distributed node to a device volume to perform a volume snapshot backup except for redundant data for each user. Can be.
  • the amount of imbalance in disk usage can be measured for each volume assigned to a user, and overhead can be reduced by rebalancing for each assigned volume.
  • the summation result can be generated by the same criterion. Also, by applying weights to each factor, the priority data is reflected in the summation result to be more objectively suitable. It can be arranged distributed in.
  • FIG. 1 is a block diagram of an intelligent distributed storage service system according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a storage pool forming process in an intelligent distributed storage service method according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a storage monitoring process in an intelligent distributed storage service method according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating a storage node selection process in an intelligent distributed storage service method according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating an example of determining a ranking of storage nodes in an intelligent distributed storage service method according to an exemplary embodiment of the present invention.
  • FIG. 1 is a block diagram of a block device-based virtual storage service system according to an embodiment of the present invention.
  • a virtual storage service system connected to at least one user terminal 11 and 12 through a network 20, the web server 100, the control center server 300, and the storage nodes 410, 420, 430, and 440. And a database 200.
  • the web server 100 requests the terminal to input the required virtual storage capacity, the type of storage node to be created, the number of storage nodes, and a distribution method.
  • the control center server 300 displays the virtual storage capacity, the type of storage node, the number of storage nodes, and the distribution method. To pass.
  • the control center server 300 controls to create a virtual disk volume with reference to the selection information.
  • the control center server 300 The control center server 300,
  • a storage node corresponding to the selection information is determined among nodes that are 1.5 times or more larger than the capacity required by each storage node, and controls to create a virtual disk volume.
  • the control center server 300 is
  • the storage node's available capacity and usage state are calculated by multiplying the available capacity of each storage node, the average rank of disk I / O, the average rank of CPU utilization, the memory utilization rate, and the average rank of network I / O, and the sum of the sum values. Based on this, the storage node to configure the virtual storage is controlled to create a virtual disk volume.
  • the control center server 300 controls to generate a virtual disk volume in the determined storage node, and the determined storage node generates a virtual disk volume.
  • the storage nodes 410, 420, 430, and 440 create virtual disk volumes under the control of the control center server.
  • the database 200 stores information of the storage node and virtual disk volume information of the user.
  • the node storage (410, 420, 430, 440) equipment (x86-based server, etc.) installed with kernel modules and agents (software) that will be included in the storage pool (ie, to distribute data by virtualizing storage). Is registered based on IP address.
  • the node storages 410, 420, 430, and 440 are managed by the control center server 300, and metadata for data management (location / path of a file (directory), etc.) is stored in each storage node 410,. 420, 430, and 440 clusters (real time sharing).
  • the node storages 410, 420, 430, and 440 thus formed are connected to each other through a network to distribute and store files in the control center server 300.
  • the node storage 410, 420, 430, 440 may be a server, a greater number, the terminal 11, 12 may also be a larger number.
  • This is called a trusted network, and a group of connected servers is called a storage pool, and each of these is referred to as a storage node.
  • the storage pool formation method will be described in detail as follows.
  • FIG. 2 is a diagram illustrating a storage pool forming method in an intelligent distributed storage service method according to an embodiment of the present invention.
  • control center server 300 is the first node (S210).
  • control center server 300 forms an existing storage node and a peer probe, that is, a trusted network pipeline internally (S220). Then, storage node monitoring is executed (S230).
  • FIG. 3 is a diagram illustrating a storage monitoring process in an intelligent distributed storage service method according to an embodiment of the present invention.
  • each node storage extracts the available disk capacity, disk I / O, CPU utilization, memory utilization, network I / O, and the like that can be used in the virtual storage control center. Transfer to server 300 (S310).
  • the control center server 300 receives the information extracted from the storage node, and determines whether the storage node is a registered storage node (S320).
  • the extraction information received along with the storage node identifier (IP address, etc.) is stored in the database 200 (S340).
  • the collected extraction information is processed for each storage node by period (hour, day, week, month) and stored in the database 200 (S360).
  • FIG. 4 is a diagram illustrating a storage node selection process in an intelligent distributed storage service method according to an embodiment of the present invention.
  • the user To virtually create storage for the user to use based on the storage pool, the user first accesses the web server 100 through the network 20 using the terminal 11, and provides the virtual storage service to the web server 100. ).
  • the web server 100 When the terminal requests a virtual storage service, the web server 100 requests the terminal to input a virtual storage capacity, a type of storage node, a number of storage nodes, and a distribution method to be generated.
  • the distribution method may be input, and the order may be changed as necessary.
  • the control center server 300 When the generated virtual storage capacity, the type of storage node, the number of storage nodes, and the distribution method are input from the terminal 11 (S410), the control center server 300 generates the virtual storage capacity to be generated and the type of storage node.
  • storage nodes having sufficient capacity are selected according to the number and distribution of storage nodes.
  • the method of determining the storage nodes with sufficient capacity may be a node that is 1.5 times larger than the capacity required by each storage node, or may be selected in another way.
  • the cloud center server 300 determines the available capacity of each storage node, the average rank of disk I / O, the average rank of CPU utilization, the memory utilization, and the average network I / O for the storage nodes having sufficient capacity. Multiplying the ranks by multiplying the weights (S430 and S440), and determining the storage nodes whose ranks of the sum are in the order of the required number of storage nodes as the storage nodes that will constitute the virtual storage (S450), and the virtual disk volume. Control to generate (S460).
  • the storage node determination process of the control center server 300 will be described in more detail as follows.
  • Weight is a constant value that gives more weight so that it can act as a more important factor among Disk Usage, Disk I / O, Network I / O, CPU Usage, and Memory Usage.
  • a 100-point conversion score ⁇ weight is generated by the following equation (1).
  • Disk Free Score (Disk Free ⁇ Disk Total) ⁇ 100 ⁇ Weight 1
  • Network I / O Score (100-(Average Rank of Network I / O ⁇ Total Storage Nodes)) ⁇ 100 ⁇ Weight 3
  • the above Free size + Cached size means the actual available memory usage, and can also include the swap usage if necessary.
  • Equation 1 may be variously modified, and weights may be given differently as necessary.
  • Storage nodes are selected (as many nodes as selected) in ascending score according to the number of storage nodes to be created. That is, if four storage nodes are to be created, four storage nodes having a high score are determined as storage nodes corresponding to the selection information. An example of calculating the rank at this time is shown in FIG. 5.
  • the storage nodes 1 to 5 are ranked according to a result of calculating Disk Usage, Disk I / O, Network I / O, CPU Usage, and Memory Usage according to the above formula.
  • Storage nodes corresponding to the first to fourth storage nodes are determined as storage nodes corresponding to the selection information.
  • control center server 300 When the storage node corresponding to the selection information is determined as described above, the control center server 300 outputs a control signal so that the storage node determined as the storage node corresponding to the selection information generates a virtual disk volume.
  • the storage node determined under the control of the control center server 300 creates a virtual disk volume.
  • the generated storage node is mounted with the user terminal 11 through an export and import process. That is, the created virtual disk volume of the storage node is network mounted on the user's terminal and used as a local storage device (S470).
  • control center server 300 stores the created virtual disk volume information of the user in a database.
  • a method of creating a volume varies according to a distribution method, and storage distribution methods used in the present invention are as follows.
  • D (Distributed): A method in which each file is distributed to each node as a whole, which is advantageous when a large amount of small file such as a document file exists.
  • S Stripe: Each file is divided and stored and read in a fixed chunk size. It is a large file such as a video media file, and is advantageous when it wants to guarantee multiple simultaneous reads. .
  • D + S It is mainly used to add a volume to a virtual array that already exists as a stripe.
  • D + R Used to add a volume to a virtual array that already exists as a replication (Scale-out).
  • D + S + R A composite of the above configurations.
  • the number of D, S, and R can be specified, and at this time, it can be seen that which storage node is distributed, striped, or replicated according to the block device of the storage node.
  • the number of block devices in the storage node should be D number * S number * R number, and in the case of R, the number of block devices must be increased evenly.
  • the file name is stored as it is, so the file name and the system command disk usage (du) can be checked.
  • Eight storage nodes can be selected and used as storage nodes from 192.168.16.11 to 192.168.16.18. Of course, you can also choose eight of the other storage nodes.
  • the storage devices (block devices) of the eight different storage nodes are treated as one by applying virtualization
  • the user who is actually stored in the directory where the block devices are mounted in each storage node is stored.
  • the data of the file exist as the file name.
  • the file name is stored as it is but in chunk size. In this case, you can check it with the du command, which is one of the system calls.
  • backup to the block device can be performed without duplication. In this case, the backup may use a physical third party device, or the above-mentioned snapshot backup.
  • Snapshots and backups for block devices are well known in the art, and detailed descriptions thereof will be omitted.
  • the created virtual disk volume is imported (network mounted) to the user's terminal and used as a local storage device.
  • a user may know where his virtual storage is designated, and where the data is distributed, and where the data is duplicated and where the data is duplicated.
  • Data stored on the user's virtual disk volume is isolated at the device level. Therefore, the data of other users cannot be physically or logically invaded, and the tracking of the data can be simplified, thus reducing the scope of information security risk.
  • the virtual disk volume itself since the virtual disk volume itself is created as a logical block device, it may be able to set an access right after obtaining a file system.
  • data is stored in only one directory on one partition, and the stored data is automatically managed by the metadata server. This means that the user does not know the location, and from a file system point of view, the data of multiple users in a single physical partition is only mixed and written to and read from disk tracks.
  • bypassing the network port of the virtual storage for a specific user only a single account can be used to obtain all the other user data that exists in that partition. .
  • volume rebalancing and snapshot backup will be described.
  • the technique of balancing techniques is a unique feature in distributed file systems. Therefore, here we describe how effective virtual storage combined with block devices is for balancing operations.
  • the embodiment of the present invention provides a more fundamental method of risk of loss and infringement of information stored in a device volume, and assigns a distributed node to a device volume to perform a volume snapshot backup except for redundant data for each user. Can be.
  • the amount of imbalance in disk usage can be measured for each volume assigned to a user, and overhead can be reduced by rebalancing for each assigned volume.
  • the summation result can be generated by the same criterion. Also, by applying weights to each factor, the priority data is reflected in the summation result to be more objectively suitable. It can be arranged distributed in.

Abstract

적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 분산 스토리지 서비스 시스템 및 방법이 개시된다. 상기 단말기가 가상스토리지 서비스를 웹서버에 요청하면, 상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식을 포함한 선택 정보를 수신한다. 컨트롤 센터 서버가 상기 선택정보를 참조하여 입력된 가상스토리지 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하고, 상기 컨트롤 센터 서버가 각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정한다. 그리고 나서, 컨트롤 센터 서버가 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하고, 상기 컨트롤 센터 서버의 제어에 따라 선택된 스토리지 노드가 가상 디스크 볼륨을 생성한다.

Description

지능형 분산 스토리지 서비스 시스템 및 방법
본 발명은 컨트롤 컴퓨팅 기술에 관한 것으로, 특히, 지능형 분산 스토리지 서비스 시스템 및 방법에 관한 것이다.
일반적으로 컨트롤 컴퓨팅이 큰 이슈로 떠오르면서 그 기반이 되는 분산 파일 시스템이 활발히 연구되고 있다.
대부분의 분산 파일 시스템은 사용자간의 정보 공유가 용이하며 장소의 제약성을 줄이면서 저장 공간을 효율적으로 사용할 수 있는 장점으로 인하여 널리 사용된다.
이러한 분산 파일 시스템은 아래와 같은 특징을 가지고 있다.
기존의 컨트롤 환경에서 사용되는 대용량 파일 시스템은 대부분 디렉토리 기반의 파일 시스템이다.
그리고, 실제 노드들의 로컬 파일 시스템의 종류에는 상관없이, 여러 분산 스토리지 노드들 간에 지정된 디렉토리에 지정된 크기만큼의 청크(Chunk 혹은 Block이라고도 함)로 나누어서 전체 노드들에 분산하여 저장(spread)한다.
또한, 저장된 청크들에 대해서 파이프라인을 통하여 2중 이상으로 노드들 간에 복제가 이루어진다.
그런데 이러한 종래의 분산파일 시스템은 분산 저장된 개인 정보 및 데이터들이 사용자 입장에서(혹은 관리자 입장에서) 어디에 저장되는지 알 수 없기 때문에 저장된 정보에 대한 손실과 침해에 대한 위험성이 있다.
그리고, 사용자 데이터에 대한 디스크 백업에서도 기존 방식으로는 데이터 중복을 피할 수 없다. 이러한 데이터 중복을 피하기 위해서는 따로 사용자가 사용하는 방식으로 데이터를 빼내어 다른 디스크 혹은 서버에 다운로드 하여야 하는데 이러한 과정은 복잡하고 번거롭다.
또한, 분산 파일 시스템은 대부분 디스크 사용량의 불균형을 위해 밸런싱(Balancing)을 하도록 되어 있는데, 이때 불균형 정도를 측정할 수 없으며 또한 전체 디스크에 대한 리밸런싱(Rebalancing)이 이루어지도록 되어 있어 오버헤드가 발생할 수 있다.
한편, 기존의 분산 스토리지 방식은 등록된 모든 데이터 노드에 라운드 로빈 방식(특별한 알고리즘으로 동작하는 것이 아닌 모든 서버에 골고루 저장하는 방식)으로 데이터를 분산 저장하여, 저장된 위치에서 분산되어 데이터 읽기가 행해지는 것이 보편적이다.
그리고, 새로운 사용자를 위한 스토리지가 생성되더라도, 위와 마찬가지로 진행된다.(즉, 모든 데이터 노드에 존재하게 된다.)
그런데, 모든 데이터 노드에서 사용되는 서버 장비의 컴퓨팅 능력이 동일하지 않다면, 가장 열악한 노드의 latency(대기 시간)를 따라가게 된다.(모든 데이터 노드에 분산/복제가 이루어지기 때문)
이러한 이유로 모든 데이터 노드에서 사용되는 서버 장비의 컴퓨팅 능력을 만족시킨다 하더라도 네트워크 부하 및 CPU, 메모리 사용률은 상황과 어플리케이션 상황(즉, 실행 환경)에 따라 다르게 된다.
따라서, 분산 파일 시스템과 스토리지 가상화가 가지는 본래의 취지 즉, 저 사양의 스토리지 장비를 분산 배치하여 고성능과 고가용성을 확보한다는 목적을 만족시키지 못하는 상황이 일어날 수 있다.
본 발명이 이루고자 하는 기술적 과제는 종래의 문제를 해결하기 위한 것으로, 모든 데이터 노드에서 사용되는 서버 장비의 컴퓨팅 능력이 다르거나 네트워크 부하 및 CPU, 메모리 사용률은 상황과 어플리케이션 상황(즉, 실행 환경)이 다르더라도 분산 파일 시스템과 스토리지 가상화가 가지는 본래의 취지 즉, 저 사양의 스토리지 장비를 분산 배치하여 고성능과 고가용성을 확보할 수 있는 지능형 분산 스토리지 서비스 시스템 및 방법을 제공하는 것이다.
또한, 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있는 방법을 제시하는 지능형 분산 스토리지 서비스 시스템 및 방법을 제공하는 것이다.
또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있는 지능형 분산 스토리지 서비스 시스템 및 방법을 제공하는 것이다.
이러한 과제를 해결하기 위한 본 발명의 특징에 따른 블록디바이스 기반의 지능형 분산 스토리지 서비스 시스템은,
적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 지능형 분산 스토리지 서비스 시스템으로서,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드 개수, 스토리지노드 종류 및 분산방식을 포함한 선택 정보를 수신하는 웹서버;
외부의 제어에 따라 가상 디스크 볼륨을 생성하는 적어도 하나의 스토리지노드;
상기 스토리지노드의 가용용량 및 사용상태를 모니터링 하고, 모니터링된 스토리지노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어하는 컨트롤 센터 서버;
상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장하는 데이터베이스를 포함한다.
상기 웹서버는,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고,
상기 단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 입력된 정보를 상기 컨트롤 센터 서버로 전달하는 것을 특징으로 한다.
상기 컨트롤 센터 서버는,
입력된 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하고,
각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어한다.
상기 컨트롤 센터 서버는
상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하고, 합한값의 순위에 따라 가상 스토리지를 구성할 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어한다.
상기 컨트롤 센터 서버는 상기 결정된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 한다.
이러한 과제를 해결하기 위한 본 발명의 다른 특징에 따른 지능형 분산 스토리지 서비스 방법은,
적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 지능형 분산 스토리지 서비스 방법으로서,
상기 단말기가 가상스토리지 서비스를 웹서버에 요청하는 단계;
상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식을 포함한 선택 정보를 수신하는 단계;
컨트롤 센터 서버가 상기 선택정보를 참조하여 입력된 가상스토리지 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하는 단계;
상기 컨트롤 센터 서버가 각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하는 단계;
상기 컨트롤 센터 서버가 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하는 단계;
상기 컨트롤 센터 서버의 제어에 따라 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하는 단계를 포함한다.
상기 선택정보에 대응되는 스토리지노드를 결정하는 단계는,
상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하는 단계;
상기 합한값의 순위가 상기 필요한 스토리지노드 개수의 순의 안에 드는 스토리지노드를 가상 스토리지를 구성할 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어하는 단계를 포함한다.
상기 방법은,
상기 컨트롤 센터 서버가 상기 사용자의 생성된 가상 디스크 볼륨 정보를 데이터베이스에 저장하는 단계를 더 포함한다.
상기 웹서버가 선택 정보를 수신하는 단계는,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하는 단계;
상기 단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 입력된 정보를 상기 컨트롤 센터 서버로 전달하는 단계를 포함한다.
본 발명의 실시예에서는 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있다.
또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있다.
또한, 노드 스토리지의 사양 등의 기준이 다른 데이터의 경우에도 같은 기준으로 합산 결과를 낼 수 있으며, 또한 가중치를 각 요소(factor)에 적용함으로써 우선시할 데이터를 합산 결과에 반영하여 보다 객관적으로 적합한 환경에 분산 배치될 수 있다.
그리고, 서버 리소스를 보다 적게 사용하는 스토리지노드에 분산 처리함으로써, 저 사양의 스토리지 장비를 분산 배치하여 고성능과 고가용성을 확보할 수 있다.
도 1은 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지 풀 형성과정을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지 모니터링 과정을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지노드 선택과정을 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지노드의 순위를 결정하는 예를 나타내는 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템의 구성도이다.
*도 1을 참조하면, 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템은,
적어도 하나의 사용자 단말기(11, 12)와 네트워크망(20)을 통해 연결되는 가상 스토리지 서비스 시스템으로서, 웹서버(100), 컨트롤 센터 서버(300), 스토리지노드(410, 420, 430, 440), 데이터베이스(200)를 포함한다.
웹서버(100)는 상기 단말기(11, 12)가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고, 상기 단말기(11, 12)로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식을 상기 컨트롤 센터 서버(300)로 전달한다.
컨트롤 센터 서버(300)는 상기 선택정보를 참조하여 가상 디스크 볼륨을 생성하도록 제어한다.
상기 컨트롤 센터 서버(300)는,
입력된 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하고,
각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어한다.
상기 컨트롤 센터 서버(300)는
상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하고, 합한값의 순위에 따라 가상 스토리지를 구성할 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어한다.
상기 컨트롤 센터 서버(300)는 상기 결정된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 한다.
스토리지노드(410, 420, 430, 440)는 상기 컨트롤 센터 서버의 제어에 따라 가상 디스크 볼륨을 생성한다.
데이터베이스(200)는 상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장한다.
이러한 구성을 가진 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템의 동작에 관하여 상세히 설명하면 다음과 같다.
먼저, 스토리지 풀(Pool)에 포함될 즉, 스토리지를 가상화하여 데이터를 분산 관리할 수 있도록 하는 커널 모듈 및 에이전트(소프트웨어)가 설치된 노드 스토리지(410, 420, 430, 440) 장비(x86기반 서버 등)를 IP 주소 기반으로 하여 등록한다.
이후, 이 노드 스토리지(410, 420, 430, 440)는 컨트롤 센터 서버(300)에서 관리되며, 또한 데이터 관리(파일(디렉토리)의 위치/경로 등)를 위한 메타데이터가 각 스토리지 노드(410, 420, 430, 440)에 클러스터(실시간 공유)된다. 이렇게 형성된 노드 스토리지(410, 420, 430, 440)들은 서로가 네트워크로 연결되어 컨트롤 센터 서버(300)에서 파일을 분산 저장하고 관리한다. 여기서, 노드 스토리지(410, 420, 430, 440)는 서버일 수도 있고, 더 많은 수로 이루어질 수도 있으며, 단말기(11, 12) 또한 더 많은 수일 수 있다.
이를 신뢰된 네트워크(Trusted Network)라 부르며 이렇게 연결된 서버 군을 스토리지 풀(Pool)이라 하고, 이들 개개를 스토리지 노드라 지칭하기로 한다.
이러한 스토리지 풀 형성방법을 상세히 설명하면 다음과 같다.
도 2는 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지 풀 형성방법은 나타낸 도면이다.
도 2를 참조하면, 스토리지 노드 등록이 시작되면, 컨트롤 센터 서버(300)가 첫 번째 노드인지 판단한다(S210).
첫 번째 노드라면, 단독 풀이 되고, 스토리지 노드 모니터링이 실행된다(S230).
두 번째 이상의 노드라면, 컨트롤 센터 서버(300)는 기존의 스토리지노드와 피어푸르브(Peer Probe) 즉, 내부적으로 신뢰 네트워크(Trusted Network) 파이프 라인을 형성하게 된다(S220). 그리고 나서, 스토리지 노드 모니터링이 실행된다(S230).
다음, 스토리지 모니터링 과정에 관하여 설명하면 다음과 같다.
도 3은 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지 모니터링 과정을 나타낸 도면이다.
도 3을 참조하면, 정상적으로 네트워크 형성이 되면, 각각의 노드 스토리지는 가상 스토리지에서 사용될 수 있는 가용한 디스크 용량과, Disk I/O, CPU 사용률, 메모리 사용률, Network I/O 등을 추출하여 컨트롤 센터 서버(300)로 전달한다(S310).
컨트롤 센터 서버(300)는 스토리지 노드에서 추출된 정보를 수신하고, 스토리지 노드가 등록된 스토리지노드인지 판단한다(S320).
등록된 스토리지노드가 아니면 예외처리를 한다(S330).
등록된 스토리지노드이면, 스토리지노드 식별자(IP 주소 등)와 함께 전달받은 추출정보를 데이터베이스(200)에 저장한다(S340).
그리고나서, 수집된 추출정보를 각 스토리지노드마다 기간별(시간, 일, 주, 월 단위)로 가공하여 데이터베이스(200)에 저장한다(S360).
이후 스토리지 노드 선택과정이 진행되면, 이를 상세히 설명하면 다음과 같다.
도 4는 본 발명의 실시예에 따른 지능형 분산 스토리지 서비스 방법에서 스토리지노드 선택과정을 나타낸 도면이다.
스토리지 풀을 기반으로 하여 사용자가 사용할 스토리지를 가상으로 생성하기 위해 먼저 사용자는 단말기(11)를 이용하여 네트워크망(20)을 통해 웹서버(100)에 접속하고, 가상스토리지 서비스를 웹서버(100)에 요청한다.
상기 단말기가 가상스토리지 서비스를 요청하면, 웹서버(100)가 상기 단말기에게 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청한다.
이때, 가상스토리지 용량 및 스토리지노드의 종류를 입력받고나서 스토리지노드 개수를 입력받은 후에 분산방식을 입력받을 수 있으며, 이러한 순서는 필요에 따라 달라질 수 있다.
다음, 상기 단말기(11)로부터 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면(S410), 컨트롤 센터 서버(300)는 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 용량이 충분한 스토리지노드들을 고른다(S420). 용량이 충분한 스토리지 노드를 판단하는 방법은 각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드를 고를 수도 있고 다른 방법으로 고를 수도 있다.
예를 들면 아래의 조건에 해당하는 노드를 고른다.
[현재 노드 내에 남아 있는 용량] > [생성될 가상 스토리지 총 용량 / (생성되어야 할 저장 공간의 개수 / Replication 개수)] 단, Replication 개수가 0일때는 나누지 않는다.
이렇게 용량이 충분한 스토리지노드가 선택되면, 클라우도 센터 서버(300)는 용량이 충분한 스토리지노드에 대해 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하고(S430, S440), 상기 합한값의 순위가 상기 필요한 스토리지노드 개수의 순의 안에 드는 스토리지노드를 가상 스토리지를 구성할 스토리지노드로 결정하고(S450), 가상 디스크 볼륨을 생성하도록 제어한다(S460).
이러한 컨트롤 센터 서버(300)의 스토리지노드 결정 과정을 좀 더 상세히 설명하면 다음과 같다.
여기서 Weight(가중치)는 Disk Usage, Disk I/O, Network I/O, CPU Usage, Memory Usage 중에 보다 더 중요한 요인으로 작용될 수 있게 무게를 더 실어주기 위한 상수 값이다.
용량이 충분한 스토리지노드들 중에서 다음과 수학식 1과 같은 방식으로 100점 환산 점수 × Weight를 만든다.
[수학식 1]
1. Disk Free Score = (Disk Free ÷ Disk Total) × 100 × Weight 1
2. Disk I/O Score = (100 - (Disk I/O 평균 순위 ÷ 전체 스토리지노드 개수)) × 100 × Weight 2
3. Network I/O Score = (100 - (Network I/O 평균 순위 ÷ 전체 스토리지노드 개수)) × 100 × Weight 3
4. CPU Usage Score = (100- CPU Usage 평균 비율) × Weight 4
5. Memory Usage Score = ((Free size + Cached size) ÷ Total size) 평균값 × 100 × Weight 5
위의 Free size + Cached size는 실제 가용 가능한 메모리 사이즈(Memory usage)를 뜻하며, 필요시에는 swap(가상 메모리) 사용율도 포함될 수 있다. 여기서 상기 수학식 1은 다양하게 변형이 가능하며, 가중치도 필요에 따라서 다르게 주어질 수 있다.
∑(n=1,..., 5) : 위의 1~5번까지 합계를 구한다.
그리고 생성되어야 할 스토리지노드 개수에 따라 점수가 높은 순으로 스토리지노드가 선택(선택 노드 개수만큼)된다. 즉, 4개의 스토리지노드가 생성되어야 한다면 점수가 높은 4개의 스토리지노드를 선택정보에 대응되는 스토리지노드로 결정한다. 이때 순위를 계산한 예를 도 5에 도시하였다.
도 5를 참조하면, 스토리지노드 1 내지 스토리지노드 5를 Disk Usage, Disk I/O, Network I/O, CPU Usage, Memory Usage를 상기 계산식에 따라 계산한 결과에 따라 순위가 결정된다. 그리고 1위부터 4위의 스토리지노드가 선택정보에 대응되는 스토리지노드로 결정된다.
상기 과정과 같이 선택정보에 대응되는 스토리지노드가 결정되면, 상기 선택정보에 대응되는 스토리지노드로 결정된 스토리지노드가 가상 디스크 볼륨을 생성하도록 상기 컨트롤 센터 서버(300)가 제어신호를 출력한다.
그러면, 상기 컨트롤 센터 서버(300)의 제어에 따라 결정된 스토리지 노드가 가상 디스크 볼륨을 생성한다.
이후, 생성된 스토리지 노드는 익스포트 및 임포트 과정을 통해 사용자 단말기(11)와 마운트된다. 즉, 생성된 스토리지노드의 가상 디스크 볼륨은 사용자의 단말기에 네트워크 마운트되어 로컬 저장 장치처럼 사용하게 된다(S470).
다음, 상기 컨트롤 센터 서버(300)가 상기 사용자의 생성된 가상 디스크 볼륨 정보를 데이터베이스에 저장한다.
여기서, 볼륨을 생성하는 방식은 분산 방식(Distribution Method)에 따라 달라지는데, 본 발명에서 사용되는 스토리지 분산 방식들은 다음과 같다.
D(Distributed) : 각각의 파일이 통째로 각각의 노드에 분배되는 방식으로서, 주로 문서 파일과 같이 작은 용량의 파일이 다량 존재하게 될 때 유리한 방식이다.
S(Stripe) : 각각의 파일이 정해진 청크 크기(chunk size)로 쪼개어져 저장되고 읽히는 방식으로서, 주로 동영상 미디어 파일과 같이 대용량의 파일이며 다수의 동시 일기(Read)를 보장하고자할 때 유리한 방식이다.
R(Replication) : 정해진 노드에 복제 저장되는 방식으로 주로 저장되는 파일의 안정성이 확보되어야 하며, 무정지 서비스가 지원되어야할 때 사용된다.
DS(Distributed Stripe) : D + S : 주로 이미 stripe로 존재하는 가상 스토리지에 볼륨을 추가하고자 할 때, 사용된다.(Scale-out)
DR(Distributed Replication) : D + R : 주로 이미 Replication으로 존재하는 가상 스토리지에 볼륨을 추가하고자 할 때, 사용된다.(Scale-out)
SR(Striped Replication) : S + R : 주로 대용량의 파일이며, 동시에 데이터 안정성을 확보하고자 할 때 사용된다.
DSR(Distributed Striped Replication) : D + S + R : 위의 구성들의 복합 구성이다.
위의 가상화 방식들에서 D, S, R의 개수를 지정할 수 있으며, 이때 그 지정된 개수에 따라 어느 스토리지노드의 블록 디바이스(block device)에 Distribute, Stripe, Replication되어 있는지를 알 수 있다.
먼저 Distribute 노드부터 지정되며, Stripe, Replication 순서로 지정된다. 단 DSR과 같은 복합 구성의 경우 스토리지노드 안의 블록 디바이스 개수는 D개수 * S개수 * R개수 여야 하며, R의 경우 짝수로 증가 되어야 한다. 또한, 일반적인 분산 파일 시스템(보통 해쉬값과 같은 고유값으로 변환된다)과 달리 파일명 그대로 저장되므로 파일 명과 시스템 명령어 disk usage(du)명령으로 확인이 가능하다.
예를 들어, 아래와 같이 생성한다고 가정하자.
사용자 가상 스토리지 8TB를 생성한다고 하고,
분산 방식은 SR : S = 4개, R = 2개라고 하면,
Node내의 해당 사용자 가상 스토리지 용 블록 디바이스 개수는 4 * 2 = 8개가 된다.
그리고, 8개의 스토리지노드를 192.168.16.11 ~ 192.168.16.18까지의 스토리지 노드로 선택 사용할 수 있다. 물론 다른 스토리지노드로 8개를 선택할 수도 있다.
위의 조건에서 각각의 11번 부터 18번까지 8개의 스토리지 노드에 각각 8TB(총 용량)/( 8(생성되야 할 총 블록 디바이스 개수)/2(Replication 개수) ) = 2TB(생성할 용량)만큼씩 생성하게 된다.
이러한 방식으로 가상 디스크 볼륨이 생성된다.
그리고, 사용자들은 여러 스토리지노드에 생성된 가상 디스크 볼륨을 가상으로 하나의 논리적인 볼륨으로서 사용하게 되는데 이러한 개념을 가상스토리지라 한다.
위의 스토리지노드는 S방식부터 적용이 되므로, IP 11번 부터 14번까지 반을 Stripe으로, 나머지는 같은 개수만큼의 Replication으로 적용하게 된다.
여기서, 이후 가상화를 적용할 경우에 일반적인 분산 파일 시스템의 경우 어디로 분산이 되며 또한 어디로 파일 복제가 이루어지는지 물리적으로 논리적으로 알 수 있는 방법이 없다.
그러나, 본 발명의 실시예에서는 가상화를 적용하여 위의 8개의 각기 다른 스토리지노드의 저장 장치(블록 디바이스)들이 하나로 취급된다 하더라도, 개개의 스토리지노드내에 블록 디바이스가 마운트되어 있는 디렉토리 안을 보면 실제로 저장된 사용자의 데이터들이 파일명 그대로 존재 하게 된다. 단 stripe 방식으로 저장될 경우, 파일명은 그대로이나 청크 사이즈로 분할 저장되어 있을 것이다. 이 경우 시스템 콜 중 하나인 du 명령 등으로 확인할 수 있다. 또한, 어느 노드의 블록 디바이스가 복제용인지 구분되어 있으므로, 블록 디바이스에 대한 백업이 중복되지 않고도 행할 수 있다. 이때 백업은 물리적인 써드 파티 장비를 사용할 수도 있을 것이며, 앞에서 언급한 스냅샷 백업을 행할 수도 있을 것이다.
블록 디바이스에 대한 스냅샷 및 백업에 대해서는 이 분야에서 잘 알려진 용어이므로 상세한 설명은 생략한다.
이렇게 생성된 가상 디스크 볼륨은 사용자의 단말기에 임포트(네트워크 마운트)하여 로컬 저장 장치처럼 사용하게 된다.
이러한 내용에 대해서도 이 분야에서 잘 알려져 있으므로 상세 설명은 생략한다.
본 발명의 실시예에서는 사용자(혹은 관리자는)는 자신의 가상 스토리지가 어디어디에 지정되어 있음을 알 수 있으며, 또한 데이터가 어디로 분산되는지, 또 어디로 복제가 이루어져 데이터가 중복되는지를 원천적으로 알 수 있다.
그리고 사용자의 가상 디스크 볼륨에 저장되는 데이터는 디바이스 레벨에서 격리된다. 따라서, 다른 사용자의 데이터가 물리적으로도 논리적으로도 침범할 수 없으며, 데이터의 추적 또한 간단히 이루어 질 수 있으므로 정보 보안상의 위험 범위가 줄어들게 된다.
그리고, 본 발명의 실시예에서 가상 디스크 볼륨 자체가 논리적 블록 디바이스로서 생성된 것이므로, 이는 파일 시스템을 얻은 후, 접근 권한 설정을 할 수 있다. 쉽게 말하면(Windows OS 기준으로 설명하겠다), 일반적 분산 파일 시스템에서는 하나의 파티션에 디렉토리만 구분하여 데이터를 저장하고, 그 저장되는 데이터는 메타 데이터 서버에 의해 자동 관리된다. 즉, 사용자가 위치를 알 수도 없으며, 파일 시스템 입장에서 보면, 하나의 물리적인 파티션에 여러 사용자의 데이터가 디스크 트랙에서 구분하고 있을 뿐 혼용되어 쓰고 읽힌다는 뜻이다. 따라서 특정 사용자를 위한 가상 스토리지의 네크워크 포트를 우회하여 하나의 계정만 뚫으면 그 파티션 내에 존재하는 다른 사용자 데이터를 모두 취득할 수 있게 된다.(이런 방식의 해킹 알고리즘은 너무 방대하므로, 개념만을 설명하였다.)
하지만, 본 발명의 실시예에서는 사용자 마다 파티션이 다르므로, 다른 사용자와 같은 디스크를 사용하더라도 디스크 레벨에서 기타 사용자와 데이터가 중복될 수 없으며, 그래서 앞에서 언급한 해쉬값과 같은 유일한 파일명으로 대치할 필요도 없어지게 된다. 그래서 필요에 따라서는 데이터 유출을 막거나 추적하기 위해 기존의 방식에서 사용된 정보보호 솔루션을 그대로 사용하여 보안을 강화할 수 있다. 즉, 가상화 스토리지를 위한 별도의 방식이나 보안 솔루션을 개발 및 도입하지 않고 기존의 방식에서 사용된 정보보호 솔루션을 사용할 수 있게끔 한다.
다음, 볼륨 리밸런싱(Rebalancing) 및 스냅샷 백업에 관해 설명하면 다음과 같다.
밸런싱 기법에 대한 기술은 분산 파일 시스템내의 고유 기능이다. 따라서 여기서는 블록 디바이스와 결합된 가상 스토리지가 밸런싱 작업에 얼마나 유효한지만을 서술한다.
위의 모든 이슈와 마찬가지로, 각 스토리지노드에 분산된 볼륨의 데이터의 흐름은 확인할 수 있으며, 간혹 데이터의 불균형, 즉, user1의 분산 데이터가 한 쪽의 서버로 쏠리게 되었을 때, 다른 볼륨에 영향을 주지 않고, user1에 지정된 블록 디바이스에 대해서만 스토리지노드 1과 2에 대해서 밸런스를 맞추어주는 작업을 진행할 수 있다. 여기서, 일반적 분산 파일 시스템에서는 한 사용자의 데이터들에 대해 각 노드간에 밸런싱을 하려 할 때 파티션 단위로 밸런싱이 이루어지게 된다. 즉, 하나의 볼륨에 모든 사용자의 데이터가 공존 하므로, 이를 분석하고 밸린싱하는 과정이 복잡해진다.(메타데이터를 뒤져서 파일 이름과 매칭한 후 조각난 파일들을 적절한 위치로 옮기야 한다. 이 과정은 오버헤드가 오히려 심하다. 그래서 보통 노드가 추가되면 전체 노드에 리밸런싱이 일어나게끔 설계되어 있다.) 또한 어느 사용자의 데이터 공간이 불균형한지 알기가 어렵다.(물론 시스템 명령 디렉토리 용량 체크를 함으로써 하나하나 확인해보면 가능하겠지만, 현실적으로 그렇게 운영한다는 것은 불가능하며, 비효율적이다)
그러나 본 발명의 실시예에서는 블록디바이스 레벨로 밸런싱이 이루어질 수 있으므로 불필요한 오버헤드를 줄일 수 있다. 또한, 블록 디바이스별로 용량을 체크하여 컨트롤 센터 서버(300)로 취합되게 되는데, 이로써 사용자 별 노드간 데이터 불균형을 확인할 수 있다. 따라서 본 발명의 실시예에서는 데이터의 복제가 되는 블록이 어디인지를 알 수 있기 때문에 데이터의 중복을 피해서 디바이스 레벨에서의 스냅샷 및 백업이 이루어 질 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
본 발명의 실시예에서는 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있다.
또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있다.
또한, 노드 스토리지의 사양 등의 기준이 다른 데이터의 경우에도 같은 기준으로 합산 결과를 낼 수 있으며, 또한 가중치를 각 요소(factor)에 적용함으로써 우선시할 데이터를 합산 결과에 반영하여 보다 객관적으로 적합한 환경에 분산 배치될 수 있다.
그리고, 서버 리소스를 보다 적게 사용하는 스토리지노드에 분산 처리함으로써, 저 사양의 스토리지 장비를 분산 배치하여 고성능과 고가용성을 확보할 수 있다.

Claims (11)

  1. 적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 지능형 분산 스토리지 서비스 시스템으로서,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드 개수, 스토리지노드 종류 및 분산방식을 포함한 선택 정보를 수신하는 웹서버;
    외부의 제어에 따라 가상 디스크 볼륨을 생성하는 적어도 하나의 스토리지노드;
    상기 스토리지노드의 가용용량 및 사용상태를 모니터링 하고, 모니터링된 스토리지노드중에서 상기 선택정보에 대응되는 스토리지 노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어하는 컨트롤 센터 서버; 및
    상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장하는 데이터베이스를 포함하는 지능형 분산 스토리지 서비스 시스템.
  2. 제1항에 있어서,
    상기 웹서버는,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고,
    상기단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 입력된 정보를 상기 컨트롤 센터 서버로 전달하는 것을 특징으로 하는 지능형 분산 스토리지 서비스 시스템.
  3. 제2항에 있어서,
    상기 컨트롤 센터 서버는,
    입력된 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하고,
    각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 스토리지노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어하는 지능형 분산 스토리지 서비스 시스템.
  4. 제3항에 있어서,
    상기 컨트롤 센터 서버는
    상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하고, 합한값의 순위에 따라 가상 스토리지를 구성할 스토리지노드를 결정하여 가상 디스크 볼륨을 생성하도록 제어하는 지능형 분산 스토리지 서비스 시스템.
  5. 제2항에 있어서,
    상기 컨트롤 센터 서버는,
    스토리지노드들중에서 아래 조건에 해당하는 스토리지 노드를 고르는 것을 특징으로 하는 지능형 분산 스토리지 서비스 시스템.
    [현재 노드 내에 남아 있는 용량] > [생성될 가상 스토리지 총 용량/(생성되어야 할 저장 공간의 개수/Replication 개수)]
    (단, Replication 개수가 0 일 때는 나누지 않음)
  6. 제1항 내지 제5항중 어느 한항에 있어서,
    상기 컨트롤 센터 서버는 상기 결정된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 하는 지능형 분산 스토리지 서비스 시스템.
  7. 적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 지능형 분산 스토리지 서비스 방법으로서,
    상기 단말기가 가상스토리지 서비스를 웹서버에 요청하는 단계;
    상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식을 포함한 선택 정보를 수신하는 단계;
    컨트롤 센터 서버가 상기 선택정보를 참조하여 입력된 가상스토리지 용량을 필요한 스토리지노드 개수로 나누어 각 스토리지노드가 필요로 하는 용량을 계산하는 단계;
    상기 컨트롤 센터 서버가 각 스토리지노드가 필요로 하는 용량의 1.5배 이상인 노드중에서 상기 선택정보에 대응되는 스토리지노드를 결정하는 단계;
    상기 컨트롤 센터 서버가 상기 결정된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하는 단계;
    상기 결정된 스토리지 노드가 상기 컨트롤 센터 서버의 제어에 따라 가상 디스크 볼륨을 생성하는 단계를 포함하는 지능형 분산 스토리지 서비스 방법.
  8. 제7항에 있어서,
    상기 선택정보에 대응되는 스토리지노드를 결정하는 단계는,
    상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하는 단계;
    상기 합한값의 순위가 상기 필요한 스토리지노드 개수의 순위 안에 드는 스토리지노드를 상기 대응되는 스토리지노드로 결정하는 단계를 포함하는 지능형 분산 스토리지 서비스 방법.
  9. 제8항에 있어서,
    상기 컨트롤 센터 서버가 상기 사용자의 생성된 가상 디스크 볼륨 정보를 데이터베이스에 저장하는 단계를 더 포함하는 지능형 분산 스토리지 서비스 방법.
  10. 제9항에 있어서,
    상기 웹서버가 선택 정보를 수신하는 단계는,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하는 단계;
    상기 단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 입력된 정보를 상기 컨트롤 센터 서버로 전달하는 단계를 포함하는 지능형 분산 스토리지 서비스 방법.
  11. 제8항에 있어서,
    상기 스토리지노드의 가용용량 및 사용상태를 이용하여 각 스토리지 노드의 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위에 가중치를 곱하여 계산하여 합하는 단계에서,
    상기 가용용량, 디스크 입출력 평균순위, 중앙처리장치 사용률 평균순위, 메모리 사용률, 네트워크 입출력 평균순위는 다음 식과 같이 구하는 것을 특징으로 하는 지능형 분산 스토리지 서비스 방법.
    1. Disk Free Score = (Disk Free ÷ Disk Total) × 100 × Weight 1
    2. Disk I/O Score = (100 - (Disk I/O 평균 순위 ÷ 전체 스토리지노드 개수)) × 100 × Weight 2
    3. Network I/O Score = (100 - (Network I/O 평균 순위 ÷ 전체 스토리지노드 개수)) × 100 × Weight 3
    4. CPU Usage Score = (100 - CPU Usage 평균 비율) × Weight 4
    5. Memory Usage Score = ((Free size + Cached size) ÷ Total size) 평균값 × 100 × Weight 5
PCT/KR2013/008198 2012-09-13 2013-09-11 지능형 분산 스토리지 서비스 시스템 및 방법 WO2014042415A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/427,503 US20150248253A1 (en) 2012-09-13 2013-09-11 Intelligent Distributed Storage Service System and Method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120101780A KR101242458B1 (ko) 2012-09-13 2012-09-13 지능형 분산 스토리지 서비스 시스템 및 방법
KR10-2012-0101780 2012-09-13

Publications (1)

Publication Number Publication Date
WO2014042415A1 true WO2014042415A1 (ko) 2014-03-20

Family

ID=48181685

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/008198 WO2014042415A1 (ko) 2012-09-13 2013-09-11 지능형 분산 스토리지 서비스 시스템 및 방법

Country Status (3)

Country Link
US (1) US20150248253A1 (ko)
KR (1) KR101242458B1 (ko)
WO (1) WO2014042415A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459892B2 (en) 2014-04-23 2019-10-29 Qumulo, Inc. Filesystem hierarchical aggregate metrics
KR101678680B1 (ko) * 2014-05-08 2016-11-22 주식회사 알티베이스 하이브리드 메모리 테이블 클러스터
US10715595B2 (en) * 2014-12-23 2020-07-14 Western Digital Technologies, Inc. Remotes metadata extraction and transcoding of files to be stored on a network attached storage (NAS)
US9679157B2 (en) * 2015-01-07 2017-06-13 International Business Machines Corporation Limiting exposure to compliance and risk in a cloud environment
KR101744060B1 (ko) * 2015-08-27 2017-06-07 주식회사 케이티 노하드(no-hdd) 서비스 제공 방법, 노하드 서비스 제공 서버 및 시스템
US10019202B2 (en) * 2016-01-11 2018-07-10 International Business Machines Corporation Autonomic configuration of storage systems for virtualization
CN106445411A (zh) * 2016-09-13 2017-02-22 乐视控股(北京)有限公司 一种数据读取方法、装置及分布式存储系统
US10666569B1 (en) 2016-09-23 2020-05-26 Amazon Technologies, Inc. Journal service with named clients
US10423459B1 (en) * 2016-09-23 2019-09-24 Amazon Technologies, Inc. Resource manager
US10346366B1 (en) 2016-09-23 2019-07-09 Amazon Technologies, Inc. Management of a data processing pipeline
US10805238B1 (en) 2016-09-23 2020-10-13 Amazon Technologies, Inc. Management of alternative resources
US10089136B1 (en) * 2016-09-28 2018-10-02 EMC IP Holding Company LLC Monitoring performance of transient virtual volumes created for a virtual machine
CN107948229B (zh) * 2016-10-13 2021-04-13 腾讯科技(深圳)有限公司 分布式存储的方法、装置及系统
CN107957930A (zh) * 2017-11-22 2018-04-24 国云科技股份有限公司 一种宿主机节点存储空间的监控方法
KR102024846B1 (ko) * 2018-02-13 2019-09-24 서강대학교 산학협력단 파일 시스템 프로그램 및 이를 이용한 데이터 센터 제어 방법
US11360936B2 (en) 2018-06-08 2022-06-14 Qumulo, Inc. Managing per object snapshot coverage in filesystems
US10904335B2 (en) 2018-09-04 2021-01-26 Cisco Technology, Inc. Reducing distributed storage operation latency using segment routing techniques
US11029891B2 (en) * 2018-11-06 2021-06-08 Cisco Technology, Inc. Hybrid distributed storage system to dynamically modify storage overhead and improve access performance
KR101955517B1 (ko) * 2018-11-26 2019-05-30 한국과학기술정보연구원 위치 및 부하 기반 sdn 및 분산 클라우드 오케스트레이션 장치 및 방법
US10795796B1 (en) 2020-01-24 2020-10-06 Qumulo, Inc. Predictive performance analysis for file systems
US11151001B2 (en) 2020-01-28 2021-10-19 Qumulo, Inc. Recovery checkpoints for distributed file systems
KR102227189B1 (ko) * 2020-04-03 2021-03-15 주식회사엔클라우드 서버에 장착되어 블록레벨 스토리지 및 리소스를 공유하는 모듈
KR102363226B1 (ko) * 2020-04-24 2022-02-15 주식회사 잼픽 인공지능형 분산 스토리지 시스템
US11775481B2 (en) 2020-09-30 2023-10-03 Qumulo, Inc. User interfaces for managing distributed file systems
US11157458B1 (en) 2021-01-28 2021-10-26 Qumulo, Inc. Replicating files in distributed file systems using object-based data storage
US11461241B2 (en) 2021-03-03 2022-10-04 Qumulo, Inc. Storage tier management for file systems
US11567660B2 (en) 2021-03-16 2023-01-31 Qumulo, Inc. Managing cloud storage for distributed file systems
US11132126B1 (en) 2021-03-16 2021-09-28 Qumulo, Inc. Backup services for distributed file systems in cloud computing environments
US11669255B2 (en) 2021-06-30 2023-06-06 Qumulo, Inc. Distributed resource caching by reallocation of storage caching using tokens and agents with non-depleted cache allocations
US11354273B1 (en) * 2021-11-18 2022-06-07 Qumulo, Inc. Managing usable storage space in distributed file systems
US11599508B1 (en) 2022-01-31 2023-03-07 Qumulo, Inc. Integrating distributed file systems with object stores
US11722150B1 (en) 2022-09-28 2023-08-08 Qumulo, Inc. Error resistant write-ahead log
CN115268800B (zh) * 2022-09-29 2022-12-20 四川汉唐云分布式存储技术有限公司 基于计算路由重定向的数据处理方法及数据存储系统
US11729269B1 (en) 2022-10-26 2023-08-15 Qumulo, Inc. Bandwidth management in distributed file systems
US11921677B1 (en) 2023-11-07 2024-03-05 Qumulo, Inc. Sharing namespaces across file system clusters
US11934660B1 (en) 2023-11-07 2024-03-19 Qumulo, Inc. Tiered data storage with ephemeral and persistent tiers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110263A1 (en) * 2001-12-10 2003-06-12 Avraham Shillo Managing storage resources attached to a data network
KR20070012210A (ko) * 2005-07-21 2007-01-25 경북대학교 산학협력단 애드혹 네트워크를 기반으로 한 가상 스토리지 시스템 및가상 스토리지 관리 방법
KR20110114883A (ko) * 2010-04-14 2011-10-20 (주)엑스소프트 가상볼륨 저장관리 시스템
KR20120009800A (ko) * 2010-07-21 2012-02-02 에스케이 텔레콤주식회사 분산 파일 관리 장치 및 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
JP4402565B2 (ja) * 2004-10-28 2010-01-20 富士通株式会社 仮想ストレージ管理プログラム、方法及び装置
JP5218284B2 (ja) * 2008-08-20 2013-06-26 富士通株式会社 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
WO2010102084A2 (en) * 2009-03-05 2010-09-10 Coach Wei System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US7904540B2 (en) * 2009-03-24 2011-03-08 International Business Machines Corporation System and method for deploying virtual machines in a computing environment
CN102460393B (zh) * 2009-05-01 2014-05-07 思杰系统有限公司 用于在虚拟存储资源之间建立云桥的系统和方法
US8819284B2 (en) * 2011-08-30 2014-08-26 At&T Intellectual Property I, L.P. Methods, systems and apparatus to route cloud-based service communications
US8775734B2 (en) * 2011-11-15 2014-07-08 Microsoft Corporation Virtual disks constructed from unused distributed storage
US8959389B2 (en) * 2011-11-23 2015-02-17 International Business Machines Corporation Use of a virtual drive as a hot spare for a raid group
US9081598B2 (en) * 2012-11-30 2015-07-14 Telefonaktiebolaget L M Ericsson (Publ) Ensuring hardware redundancy in a virtualized environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110263A1 (en) * 2001-12-10 2003-06-12 Avraham Shillo Managing storage resources attached to a data network
KR20070012210A (ko) * 2005-07-21 2007-01-25 경북대학교 산학협력단 애드혹 네트워크를 기반으로 한 가상 스토리지 시스템 및가상 스토리지 관리 방법
KR20110114883A (ko) * 2010-04-14 2011-10-20 (주)엑스소프트 가상볼륨 저장관리 시스템
KR20120009800A (ko) * 2010-07-21 2012-02-02 에스케이 텔레콤주식회사 분산 파일 관리 장치 및 방법

Also Published As

Publication number Publication date
KR101242458B1 (ko) 2013-03-12
US20150248253A1 (en) 2015-09-03

Similar Documents

Publication Publication Date Title
WO2014042415A1 (ko) 지능형 분산 스토리지 서비스 시스템 및 방법
US9647933B1 (en) Port identifier management for path failover in cluster environments
JP5026305B2 (ja) 視覚化および地理的分散データセンタ用記憶装置およびサーバプロビジョニング
WO2012141404A1 (ko) 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
US7856488B2 (en) Electronic device profile migration
CN101673283B (zh) 管理终端和计算机系统
WO2012057581A4 (ko) 클라우드 컴퓨팅 시스템 및 그의 데이터 동기화 방법
JP4964220B2 (ja) バーチャルマシーンフェイルオーバにおけるセキュリティレベルの実現
WO2012086918A2 (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US8578121B2 (en) Computer system and control method of the same
WO2012111905A2 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
US20090307761A1 (en) Access authority setting method and apparatus
WO2014042414A1 (ko) 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법
WO2014142553A1 (ko) 워크 로드에 따라 동적 자원 할당 가능한 상호 연결 패브릭 스위칭 장치 및 방법
JP2002318725A (ja) ディスクアレイシステム
WO2014029111A1 (zh) 一种用户行为处理系统及方法
WO2017082505A1 (ko) 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법
WO2019221377A1 (ko) 블록체인 기반 트랜잭션 관리 시스템 및 그 동작 방법
JP2002373103A (ja) 計算機システム
WO2020153580A1 (ko) 블록체인 상에서 외부 노드를 통한 트랜잭션 처리 방법 및 이러한 방법을 수행하는 장치
WO2023070935A1 (zh) 一种数据存储方法、装置及相关设备
WO2016127315A1 (zh) 一种私有云系统的资源共享方法及装置
JP2020013307A (ja) ファイル移行方法およびファイル移行システム
WO2018076539A1 (zh) 伪无线接入点识别方法及系统
KR102084031B1 (ko) 복수 서버의 로컬 저장소를 통합 관리하는 방법 및 그 장치

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14427503

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13837750

Country of ref document: EP

Kind code of ref document: A1