KR101232654B1 - 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법 - Google Patents

블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법 Download PDF

Info

Publication number
KR101232654B1
KR101232654B1 KR1020120100504A KR20120100504A KR101232654B1 KR 101232654 B1 KR101232654 B1 KR 101232654B1 KR 1020120100504 A KR1020120100504 A KR 1020120100504A KR 20120100504 A KR20120100504 A KR 20120100504A KR 101232654 B1 KR101232654 B1 KR 101232654B1
Authority
KR
South Korea
Prior art keywords
storage
virtual
storage node
terminal
node
Prior art date
Application number
KR1020120100504A
Other languages
English (en)
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 KR1020120100504A priority Critical patent/KR101232654B1/ko
Application granted granted Critical
Publication of KR101232654B1 publication Critical patent/KR101232654B1/ko
Priority to US14/427,515 priority patent/US20150244803A1/en
Priority to PCT/KR2013/008197 priority patent/WO2014042414A1/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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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/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/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Abstract

적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 가상 스토리지 서비스 시스템 및 방법이 개시된다. 상기 단말기가 가상스토리지 서비스를 웹서버에 요청하면, 상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신한다. 다음, 컨트롤 센터 서버가 상기 선택정보를 참조하여 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하고, 상기 컨트롤 센터 서버의 제어에 따라 선택된 스토리지 노드가 가상 디스크 볼륨을 생성한다. 이렇게 함으로써, 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있다. 또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있다.

Description

블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법{Virtual storage service system using block device and Method thereof}
본 발명은 클라우드 컴퓨팅 기술에 관한 것으로, 특히, 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법에 관한 것이다.
일반적으로 클라우드 컴퓨팅이 큰 이슈로 떠오르면서 그 기반이 되는 분산 파일 시스템이 활발히 연구되고 있다.
대부분의 분산 파일 시스템은 사용자간의 정보 공유가 용이하며 장소의 제약성을 줄이면서 저장 공간을 효율적으로 사용할 수 있는 장점으로 인하여 널리 사용된다.
이러한 분산 파일 시스템은 아래와 같은 특징을 가지고 있다.
기존의 클라우드 환경에서 사용되는 대용량 파일 시스템은 대부분 디렉토리 기반의 파일 시스템이다.
그리고, 실제 노드들의 로컬 파일 시스템의 종류에는 상관없이, 여러 분산 스토리지 노드들 간에 지정된 디렉토리에 지정된 크기만큼의 청크(Chunk 혹은 Block이라고도 함)로 나누어서 전체 노드들에 분산하여 저장(spread)한다.
또한, 저장된 청크들에 대해서 파이프라인을 통하여 2중 이상으로 노드들 간에 복제가 이루어진다.
그런데 이러한 종래의 분산파일 시스템은 분산 저장된 개인 정보 및 데이터들이 사용자 입장에서(혹은 관리자 입장에서) 어디에 저장되는지 알 수 없기 때문에 저장된 정보에 대한 손실과 침해에 대한 위험성이 있다.
그리고, 사용자 데이터에 대한 디스크 백업에서도 기존 방식으로는 데이터 중복을 피할 수 없다. 이러한 데이터 중복을 피하기 위해서는 따로 사용자가 사용하는 방식으로 데이터를 빼내어 다른 디스크 혹은 서버에 다운로드 하여야 하는데 이러한 과정은 복잡하고 번거롭다.
또한, 분산 파일 시스템은 대부분 디스크 사용량의 불균형을 위해 밸런싱(Balancing)을 하도록 되어 있는데, 이때 불균형 정도를 측정할 수 없으며 또한 전체 디스크에 대한 리밸런싱(Rebalancing)이 이루어지도록 되어 있어 오버헤드가 발생할 수 있다.
본 발명이 이루고자 하는 기술적 과제는 종래의 문제를 해결하기 위한 것으로, 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있는 방법을 제시하는 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법을 제공하는 것이다.
또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있는 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법을 제공하는 것이다.
이러한 과제를 해결하기 위한 본 발명의 특징에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템은,
적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 가상 스토리지 서비스 시스템으로서,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드 개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신하는 웹서버;
상기 선택정보를 참조하여 가상 디스크 볼륨을 생성하도록 제어하는 컨트롤 센터 서버;
상기 컨트롤 센터 서버의 제어에 따라 가상 디스크 볼륨을 생성하는 적어도 하나의 스토리지노드;
상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장하는 데이터베이스를 포함한다.
상기 웹서버는,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고,
상기 단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지 노드 현황을 상기 단말기에 제공하고,
상기 단말기가 상기 노드 현황에서 가상 스토리지로 사용하고자 하는 스토리지 노드를 선택하면, 상기 컨트롤 센터 서버로 가상 디스크 볼륨 생성을 요청하는 것을 특징으로 한다.
상기 컨트롤 센터 서버는 상기 웹서버의 요청에 따라 상기 선택된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 한다.
이러한 과제를 해결하기 위한 본 발명의 다른 특징에 따른 블록디바이스 기반의 가상 스토리지 서비스 방법은,
적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 가상 스토리지 서비스 방법으로서,
상기 단말기가 가상스토리지 서비스를 웹서버에 요청하는 단계;
상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신하는 단계;
컨트롤 센터 서버가 상기 선택정보를 참조하여 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하는 단계;
상기 컨트롤 센터 서버의 제어에 따라 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하는 단계를 포함한다.
상기 방법은,
상기 컨트롤 센터 서버가 상기 사용자의 생성된 가상 디스크 볼륨 정보를 데이터베이스에 저장하는 단계를 더 포함한다.
상기 웹서버가 선택 정보를 수신하는 단계는,
상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하는 단계;
상기 단말기로부터 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지노드 현황을 상기 단말기에 제공하는 단계;
상기 단말기로부터 상기 스토리지노드 현황에서 스토리지 노드가 선택되면, 상기 컨트롤 센터 서버로 가상 디스크 볼륨 생성을 요청하는 것을 특징으로 한다.
본 발명의 실시예에서는 디바이스 볼륨에 저장된 정보에 대한 손실과 침해에 대한 위험성에 보다 근본적인 방법을 제시하고, 디바이스 볼륨에 사용자 별로 분산 노드를 지정함으로써, 사용자 별로 중복 데이터를 제외한 볼륨 스냅샷 백업을 할 수 있다.
또한, 사용자에 할당된 볼륨 별로 디스크 사용량을 불균형 정도를 측정할 수 있으며, 또한 할당된 볼륨별 리밸런싱을 함으로써, 오버헤드를 줄일 수 있다.
도 1은 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 방법의 동작 흐름도이다.
도 3은 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템에서 스토리지노드의 내부의 사용자 공간 구성을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템에서 분산된 파일의 저장과 내부 스토리지 스택을 보인 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템은,
적어도 하나의 사용자 단말기(11, 12)와 네트워크망(20)을 통해 연결되는 가상 스토리지 서비스 시스템으로서, 웹서버(100), 컨트롤 센터 서버(300), 스토리지노드(410, 420, 430, 440), 데이터베이스(200)를 포함한다.
웹서버(100)는 상기 단말기(11, 12)가 가상스토리지 서비스를 요청하면, 상기 단말기(11, 12)로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드 개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신한다.
컨트롤 센터 서버(300)는 상기 선택정보를 참조하여 가상 디스크 볼륨을 생성하도록 제어한다.
스토리지노드(410, 420, 430, 440)는 상기 컨트롤 센터 서버의 제어에 따라 가상 디스크 볼륨을 생성한다.
데이터베이스(200)는 상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장한다.
상기 웹서버(100)는,
상기 단말기(11, 12)가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고,
상기 단말기(11, 12)로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지 노드 현황을 상기 단말기(11, 12)에 제공하고,
상기 단말기(11, 12)로부터 상기 노드 현황에서 스토리지 노드가 선택되면, 상기 컨트롤 센터 서버(300)로 선택된 가상 디스크 볼륨 생성을 요청한다.
상기 컨트롤 센터 서버(300)는 상기 웹서버의 요청에 따라 상기 선택된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 한다.
이러한 구성을 가진 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 시스템의 동작에 관하여 상세히 설명하면 다음과 같다.
도 2는 본 발명의 실시예에 따른 블록디바이스 기반의 가상 스토리지 서비스 방법의 동작 흐름도이다.
먼저, 스토리지 풀(Pool)에 포함될 즉, 스토리지를 가상화하여 데이터를 분산 관리할 수 있도록 하는 커널 모듈 및 에이전트(소프트웨어)가 설치된 노드 스토리지(410, 420, 430, 440) 장비(x86기반 서버 등)를 IP 주소 기반으로 하여 등록한다(S210). 이후, 이 (410, 420, 430, 440)는 컨트롤 센터 서버(300)에서 관리되며, 또한 데이터 관리(파일(디렉토리)의 위치/경로 등)를 위한 메타데이터가 각 스토리지 노드(410, 420, 430, 440)에 클러스터(실시간 공유)된다. 이렇게 형성된 노드 스토리지(410, 420, 430, 440)들은 서로가 네트워크로 연결되어 컨트롤 센터 서버(300)에서 파일을 분산 저장하고 관리한다. 여기서, 노드 스토리지(410, 420, 430, 440)는 서버일 수도 있고, 더 많은 수로 이루어질 수도 있으며, 단말기(11, 12) 또한 더 많은 수일 수 있다.
이를 신뢰된 네트워크(Trusted Network)라 부르며 이렇게 연결된 서버 군을 스토리지 풀(Pool)이라 하고, 이들 개개를 스토리지 노드라 지칭하기로 한다.
스토리지 풀을 기반으로 하여 사용자가 사용할 스토리지를 가상으로 생성하기 위해 먼저 사용자는 단말기(11)를 이용하여 네트워크망(20)을 통해 웹서버(100)에 접속한다.
그리고나서, 상기 단말기(11)가 가상스토리지 서비스를 웹서버(100)에 요청한다(S220).
상기 단말기가 가상스토리지 서비스를 요청하면, 웹서버(100)가 상기 단말기에게 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청한다.
이때, 가상스토리지 용량 및 스토리지노드의 종류를 입력받고나서 스토리지노드 개수를 입력받은 후에 분산방식을 입력받을 수 있으며, 이러한 순서는 필요에 따라 달라질 수 있다.
다음, 상기 단말기(11)로부터 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지노드 현황을 상기 단말기(11)에 제공한다(S230).
상기 단말기(11)로부터 상기 스토리지노드 현황에서 스토리지 노드가 선택되면(S240), 상기 컨트롤 센터 서버(300)로 가상 디스크 볼륨 생성을 요청한다.
그러면, 컨트롤 센터 서버(300)가 상기 선택정보를 참조하여 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어신호를 출력한다.
그러면, 상기 컨트롤 센터 서버(300)의 제어에 따라 선택된 스토리지 노드가 가상 디스크 볼륨을 생성한다(S250).
이후, 선택된 스토리지 노드는 익스포트 및 임포트 과정을 통해 사용자 단말기(11)와 마운트된다(S260, S270). 즉, 생성된 스토리지노드의 가상 디스크 볼륨은 사용자의 단말기에 임포트(네트워크 마운트)하여 로컬 저장 장치처럼 사용하게 된다.
다음, 상기 컨트롤 센터 서버(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 명령 등으로 확인할 수 있다. 또한, 어느 노드의 블록 디바이스가 복제용인지 구분되어 있으므로, 블록 디바이스에 대한 백업이 중복되지 않고도 행할 수 있다. 이때 백업은 물리적인 써드 파티 장비를 사용할 수도 있을 것이며, 앞에서 언급한 스냅샷 백업을 행할 수도 있을 것이다.
블록 디바이스에 대한 스냅샷 및 백업에 대해서는 이 분야에서 잘 알려진 용어이므로 상세한 설명은 생략한다.
이렇게 생성된 가상 디스크 볼륨은 사용자의 단말기에 임포트(네트워크 마운트)하여 로컬 저장 장치처럼 사용하게 된다.
이러한 내용에 대해서도 이 분야에서 잘 알려져 있으므로 상세 설명은 생략한다.
여기서, 블록 디바이스 기반 분산 가상 스토리지의 내부 데이터 관리에 관하여 좀 더 상세히 설명하면 다음과 같다.
도 3을 참조하면, 실제 노드들 간의 블록이 어떻게 사용자 마다 다르게 구성되는지를 보여주고 있다.
먼저 user1의 경우, 스토리지노드 1과 2에 블록 디바이스 볼륨이 생성되어 있으며, 스토리지노드가 몇 개가 존재하던지 간에 지정된 블록 디바이스들 간에만 데이터의 저장 혹은 분산이 이루어진다.
User2의 경우, 모든 스토리지노드에 분포되어 있으며, 모든 스토리지노드들 간에 지정된 볼륨의 크기 만큼만 데이터의 저장 및 분산이 이루어 질 것이다.
여기에서 눈 여겨 볼 점은 여러 스토리지 노드 내부에 생성된 사용자 볼륨이 제각기 다르다는 점이다. 즉, 도 4에서의 세부 도면을 보면, 하나의 user의 파일 하나에 대해서의 데이터 흐름을 보여준다.
여기에서는 설명을 위해 여러 경우 중 가장 일반적인 사례에 대해서만 단순화해서 보여주고 있으나, 도 3의 컨트롤 센터 서버에서 사용자가 사용할 노드와 용량과 분산 방식을 지정하여 블록 디바이스를 생성하고 파일 시스템 안착 및 분산 방식 적용의 순서로써 사용자 스토리지를 가상화하여 제공하게 된다.
여기서, 사용자(혹은 관리자는)는 자신의 가상 스토리지가 어디어디에 지정되어 있음을 알 수 있으며, 또한 데이터가 어디로 분산되는지, 또 어디로 복제가 이루어져 데이터가 중복되는지를 원천적으로 알 수 있다.
그리고 사용자의 가상 디스크 볼륨에 저장되는 데이터는 디바이스 레벨에서 격리된다. 따라서, 다른 사용자의 데이터가 물리적으로도 논리적으로도 침범할 수 없으며, 데이터의 추적 또한 간단히 이루어 질 수 있으므로 정보 보안상의 위험 범위가 줄어들게 된다.
그리고, 본 발명의 실시예에서 가상 디스크 볼륨 자체가 논리적 블록 디바이스로서 생성된 것이므로, 이는 파일 시스템을 얻은 후, 접근 권한 설정을 할 수 있다. 쉽게 말하면(Windows OS 기준으로 설명하겠다), 일반적 분산 파일 시스템에서는 하나의 파티션에 디렉토리만 구분하여 데이터를 저장하고, 그 저장되는 데이터는 메타 데이터 서버에 의해 자동 관리된다. 즉, 사용자가 위치를 알 수도 없으며, 파일 시스템 입장에서 보면, 하나의 물리적인 파티션에 여러 사용자의 데이터가 디스크 트랙에서 구분하고 있을 뿐 혼용되어 쓰고 읽힌다는 뜻이다. 따라서 특정 사용자를 위한 가상 스토리지의 네크워크 포트를 우회하여 하나의 계정만 뚫으면 그 파티션 내에 존재하는 다른 사용자 데이터를 모두 취득할 수 있게 된다.(이런 방식의 해킹 알고리즘은 너무 방대하므로, 개념만을 설명하였다.)
하지만, 본 발명의 실시예에서는 사용자 마다 파티션이 다르므로, 다른 사용자와 같은 디스크를 사용하더라도 디스크 레벨에서 기타 사용자와 데이터가 중복될 수 없으며, 그래서 앞에서 언급한 해쉬값과 같은 유일한 파일명으로 대치할 필요도 없어지게 된다. 그래서 필요에 따라서는 데이터 유출을 막거나 추적하기 위해 기존의 방식에서 사용된 정보보호 솔루션을 그대로 사용하여 보안을 강화할 수 있다. 즉, 가상화 스토리지를 위한 별도의 방식이나 보안 솔루션을 개발 및 도입하지 않고 기존의 방식에서 사용된 정보보호 솔루션을 사용할 수 있게끔 한다.
다음, 볼륨 리밸런싱(Rebalancing) 및 스냅샷 백업에 관해 설명하면 다음과 같다.
밸런싱 기법에 대한 기술은 분산 파일 시스템내의 고유 기능이다. 따라서 여기서는 블록 디바이스와 결합된 가상 스토리지가 밸런싱 작업에 얼마나 유효한지만을 서술한다.
위의 모든 이슈와 마찬가지로, 각 스토리지노드에 분산된 볼륨의 데이터의 흐름은 확인할 수 있으며, 간혹 데이터의 불균형, 즉, user1의 분산 데이터가 한 쪽의 서버로 쏠리게 되었을 때, 다른 볼륨에 영향을 주지 않고, user1에 지정된 블록 디바이스에 대해서만 스토리지노드 1과 2에 대해서 밸런스를 맞추어주는 작업을 진행할 수 있다. 여기서, 일반적 분산 파일 시스템에서는 한 사용자의 데이터들에 대해 각 노드간에 밸런싱을 하려 할 때 파티션 단위로 밸런싱이 이루어지게 된다. 즉, 하나의 볼륨에 모든 사용자의 데이터가 공존 하므로, 이를 분석하고 밸린싱하는 과정이 복잡해진다.(메타데이터를 뒤져서 파일 이름과 매칭한 후 조각난 파일들을 적절한 위치로 옮기야 한다. 이 과정은 오버헤드가 오히려 심하다. 그래서 보통 노드가 추가되면 전체 노드에 리밸런싱이 일어나게끔 설계되어 있다.) 또한 어느 사용자의 데이터 공간이 불균형한지 알기가 어렵다.(물론 시스템 명령 디렉토리 용량 체크를 함으로써 하나하나 확인해보면 가능하겠지만, 현실적으로 그렇게 운영한다는 것은 불가능하며, 비효율적이다)
그러나 본 발명의 실시예에서는 블록디바이스 레벨로 밸런싱이 이루어질 수 있으므로 불필요한 오버헤드를 줄일 수 있다. 또한, 블록 디바이스별로 용량을 체크하여 컨트롤 센터 서버(300)로 취합되게 되는데, 이로써 사용자 별 노드간 데이터 불균형을 확인할 수 있다. 따라서 본 발명의 실시예에서는 데이터의 복제가 되는 블록이 어디인지를 알 수 있기 때문에 데이터의 중복을 피해서 디바이스 레벨에서의 스냅샷 및 백업이 이루어 질 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (6)

  1. 적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 가상 스토리지 서비스 시스템으로서,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드 개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신하는 웹서버;
    상기 선택정보를 참조하여 가상 디스크 볼륨을 생성하도록 제어하는 컨트롤 센터 서버;
    상기 컨트롤 센터 서버의 제어에 따라 가상 디스크 볼륨을 생성하는 적어도 하나의 스토리지노드; 및
    상기 스토리지노드의 정보 및 상기 사용자의 가상 디스크 볼륨 정보를 저장하는 데이터베이스를 포함하는 가상 스토리지 서비스 시스템.
  2. 제1항에 있어서,
    상기 웹서버는,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 필요한 가상스토리지 용량, 생성될 스토리지 노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하고,
    상기 단말기로부터 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지 노드 현황을 상기 단말기에 제공하고,
    상기 단말기가 상기 노드 현황에서 가상 스토리지로 사용하고자 하는 스토리지 노드를 선택하면, 상기 컨트롤 센터 서버로 가상 디스크 볼륨 생성을 요청하는 것을 특징으로 하는 가상 스토리지 서비스 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 컨트롤 센터 서버는 상기 웹서버의 요청에 따라 상기 선택된 스토리지 노드에 가상 디스크 볼륨을 생성하도록 제어하고, 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하는 것을 특징으로 하는 가상 스토리지 서비스 시스템.
  4. 적어도 하나의 사용자 단말기와 네트워크망을 통해 연결되는 가상 스토리지 서비스 방법으로서,
    상기 단말기가 가상스토리지 서비스를 웹서버에 요청하는 단계;
    상기 웹서버가 상기 단말기로부터 가상 스토리지 서비스에 필요한 가상스토리지 용량, 스토리지노드개수, 스토리지노드 종류, 분산방식, 선택된 스토리지노드를 포함한 선택 정보를 수신하는 단계;
    컨트롤 센터 서버가 상기 선택정보를 참조하여 상기 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하도록 제어하는 단계; 및
    상기 컨트롤 센터 서버의 제어에 따라 선택된 스토리지 노드가 가상 디스크 볼륨을 생성하는 단계를 포함하는 가상 스토리지 서비스 방법.
  5. 제 4 항에 있어서,
    상기 컨트롤 센터 서버가 상기 사용자의 생성된 가상 디스크 볼륨 정보를 데이터베이스에 저장하는 단계를 더 포함하는 가상 스토리지 서비스 방법.
  6. 제5항에 있어서,
    상기 웹서버가 선택 정보를 수신하는 단계는,
    상기 단말기가 가상스토리지 서비스를 요청하면, 상기 단말기에게 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식을 입력하도록 요청하는 단계;
    상기 단말기로부터 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식이 입력되면, 상기 생성될 가상스토리지 용량, 스토리지노드의 종류, 스토리지노드 개수 및 분산방식에 따라 스토리지노드 현황을 상기 단말기에 제공하는 단계;
    상기 단말기로부터 상기 스토리지노드 현황에서 스토리지 노드가 선택되면, 상기 컨트롤 센터 서버로 가상 디스크 볼륨 생성을 요청하는 것을 특징으로 하는 가상 스토리지 서비스 방법.
KR1020120100504A 2012-09-11 2012-09-11 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법 KR101232654B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120100504A KR101232654B1 (ko) 2012-09-11 2012-09-11 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법
US14/427,515 US20150244803A1 (en) 2012-09-11 2013-09-11 Block Device-Based Virtual Storage Service System and Method
PCT/KR2013/008197 WO2014042414A1 (ko) 2012-09-11 2013-09-11 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120100504A KR101232654B1 (ko) 2012-09-11 2012-09-11 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101232654B1 true KR101232654B1 (ko) 2013-02-13

Family

ID=47899419

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120100504A KR101232654B1 (ko) 2012-09-11 2012-09-11 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법

Country Status (3)

Country Link
US (1) US20150244803A1 (ko)
KR (1) KR101232654B1 (ko)
WO (1) WO2014042414A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10097410B2 (en) 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US10592566B2 (en) * 2015-10-29 2020-03-17 Ca, Inc. Intelligent edge device for filtering internet of things (IoT) data
CN108989398B (zh) * 2018-06-27 2021-02-02 苏州浪潮智能科技有限公司 一种虚拟共享存储单元以及基于云存储的集群存储系统
CN110572410A (zh) * 2019-09-16 2019-12-13 苏州百宝箱科技有限公司 基于大数据的信息安全系统和方法
CN116881049B (zh) * 2023-07-21 2024-01-30 无锡隆云数字技术有限公司 一种云构架下基于终端和云主机的分布式数据备份方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287477A (ja) 2003-03-19 2004-10-14 Hitachi Ltd 大容量記憶装置におけるデータの格納・読み出し制御
KR20060042989A (ko) * 2004-10-28 2006-05-15 후지쯔 가부시끼가이샤 가상 스토리지 관리 프로그램, 방법 및 장치
JP2008123170A (ja) 2006-11-10 2008-05-29 Hitachi Ltd アクセス環境構築システム及び方法
JP2009230381A (ja) 2008-03-21 2009-10-08 Hitachi Ltd ストレージシステム及びボリューム割当方法並びに管理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883083B1 (en) * 2002-12-20 2005-04-19 Veritas Operating Corporation System and method for maintaining and accessing information regarding virtual storage devices
US7389394B1 (en) * 2003-05-02 2008-06-17 Symantec Operating Corporation System and method for performing snapshots in a storage environment employing distributed block virtualization
JP4951652B2 (ja) * 2009-06-24 2012-06-13 株式会社日立製作所 コンピュータシステムのリモートコピー方法及びコンピュータシステム
US8886781B2 (en) * 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
US9122418B2 (en) * 2012-08-07 2015-09-01 Xyratex Technology Limited—A Seagate Company Method of controlling the capacity of a virtual storage system, and a virtual storage system
US9053167B1 (en) * 2013-06-19 2015-06-09 Amazon Technologies, Inc. Storage device selection for database partition replicas

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287477A (ja) 2003-03-19 2004-10-14 Hitachi Ltd 大容量記憶装置におけるデータの格納・読み出し制御
KR20060042989A (ko) * 2004-10-28 2006-05-15 후지쯔 가부시끼가이샤 가상 스토리지 관리 프로그램, 방법 및 장치
JP2008123170A (ja) 2006-11-10 2008-05-29 Hitachi Ltd アクセス環境構築システム及び方法
JP2009230381A (ja) 2008-03-21 2009-10-08 Hitachi Ltd ストレージシステム及びボリューム割当方法並びに管理装置

Also Published As

Publication number Publication date
US20150244803A1 (en) 2015-08-27
WO2014042414A1 (ko) 2014-03-20

Similar Documents

Publication Publication Date Title
KR101242458B1 (ko) 지능형 분산 스토리지 서비스 시스템 및 방법
US20190384535A1 (en) Enhanced soft fence of devices
US10152281B2 (en) Systems, devices, apparatus, and methods for transparently inserting a virtual storage layer in a fibre channel based storage area network while maintaining continuous input/output operations
US11954220B2 (en) Data protection for container storage
US10019159B2 (en) Systems, methods and devices for management of virtual memory systems
KR101232654B1 (ko) 블록디바이스 기반의 가상 스토리지 서비스 시스템 및 방법
CN103179053B (zh) 用于提供数据管理服务的系统和方法
JP2016528617A (ja) リソースの負荷バランシング
US20140143391A1 (en) Computer system and virtual server migration control method for computer system
JP2017524213A (ja) 重複排除システムのハッシュ・ベース・マルチテナンシ
WO2021226344A1 (en) Providing data management as-a-service
WO2019148841A1 (zh) 一种分布式存储系统、数据处理方法和存储节点
WO2021062248A1 (en) Network-accessible block-level snapshots
CN112181736A (zh) 分布式存储系统及分布式存储系统的配置方法
CN105404565B (zh) 一种双活数据保护方法和装置
WO2019000535A1 (zh) 云平台的构建方法及云平台
US10318190B2 (en) Using mirror indicators to determine whether to mirror tracks in a data set in a primary volume mirrored to a secondary volume
JP2024506818A (ja) 指紋に基づくデータアドレスを使用するキャッシュインデクシング
US11640343B2 (en) Method for migrating data in a raid system having a protection pool of storage units
Nagle et al. The ANSI T10 object-based storage standard and current implementations
KR102376152B1 (ko) 클라우드 서비스 제공을 위한 스토리지 제공 장치 및 방법
US11615004B2 (en) System and method for failure handling for virtual volumes across multiple storage systems
US11580078B2 (en) Providing enhanced security for object access in object-based datastores
KR102084031B1 (ko) 복수 서버의 로컬 저장소를 통합 관리하는 방법 및 그 장치
CN108769123B (zh) 一种数据系统及数据处理方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190115

Year of fee payment: 7