KR20150017990A - 서버 클러스터의 데이터 분배 방법 및 장치 - Google Patents

서버 클러스터의 데이터 분배 방법 및 장치 Download PDF

Info

Publication number
KR20150017990A
KR20150017990A KR1020130094336A KR20130094336A KR20150017990A KR 20150017990 A KR20150017990 A KR 20150017990A KR 1020130094336 A KR1020130094336 A KR 1020130094336A KR 20130094336 A KR20130094336 A KR 20130094336A KR 20150017990 A KR20150017990 A KR 20150017990A
Authority
KR
South Korea
Prior art keywords
data
information
server cluster
devices
availability
Prior art date
Application number
KR1020130094336A
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 KR1020130094336A priority Critical patent/KR20150017990A/ko
Publication of KR20150017990A publication Critical patent/KR20150017990A/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
    • 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
    • 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]

Abstract

본 발명의 일 실시예는, 서버 클러스터의 데이터 분배 방법에 있어서, 서버 클러스터 내의 각 디바이스들로부터, 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타내는 디바이스 가용성에 관한 정보를 획득하고, 디바이스 가용성 정보에 기초하여, 소정의 데이터들을 각 디바이스들 중 적어도 하나에 저장하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

서버 클러스터의 데이터 분배 방법 및 장치 {Method and Apparatus of Data Partitioning in Server Cluster}
본 발명은 클러스터 서버 내의 데이터 분배에 관한 것으로 특히 클러스터 내의 디바이스들을 특성을 고려하여 데이터를 분배함으로써, 데이터의 가용성 및 안정성을 향상 시킬 수 있는 데이터 분배 방법 및 장치에 관한 것이다.
최근 데이터의 디지털화 및 다양한 디지털 디바이스의 보급으로 사용자가 많은 데이터를 생산하면서, 처리해야할 데이터의 규모가 기하급수적으로 오르고 있다. 특히 무선 네트워크의 폭넓은 보급으로, 많은 데이터가 서버에서 처리되는데, 처리해야할 데이터가 급속도로 증가하면서, 기존의 고성능 단일 서버를 이용한 데이터의 처리는 한계를 드러내고 있다. 따라서 최근에는 복수 대의 서버를 클러스터링하여 하나의 서버 클러스터를 구성하여, 처리 성능을 높이고, 서버 내에 동일한 데이터를 백업함으로써, 데이터의 가용성 및 안정성을 높이는 방식을 사용하고 있다. 이러한 서버 클러스터는 처리해야할 데이터의 규모에 따라 서버의 규모를 동적으로 쉽게 관리할 수 있다. 다만, 서버 기반의 데이터 관리는 데이터의 관리 및 접근성이 용이할 수 있으나, 서비스 제공자가 인프라를 구축하는데 많은 비용이 소모되고, 사용자 또한 개인 정보 유출 등의 보안 문제에 민감할 수 밖에 없다. 따라서 최근에는 타블렛(Tablet), 핸드폰(Cellular Phone), 퍼스널 컴퓨터, TV 등의 개인 디바이스 및 가전 제품을 이용하여 서버 클러스터를 구성하는 방법들이 제공되고 있다.
본 발명의 일 실시예에서는 서버 클러스터 디바이스들의 특성을 고려하여 데이터를 분배함으로서, 서버 클러스터 내에 저장되는 데이터의 가용성 및 안정성을 높이고자 한다.
상기와 같은 종래 기술의 문제를 해결하기 위한 본 발명의 일 실시예는 서버 클러스터의 데이터 분배 방법에 있어서, 서버 클러스터 내의 각 디바이스들로부터, 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타내는 디바이스 가용성에 관한 정보를 획득하는 단계, 상기 디바이스 가용성 정보에 기초하여, 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 단계를 포함한다.
상기 디바이스 가용성에 관한 정보를 획득하는 단계는, 상기 각 디바이스의 성능 정보를 획득하는 단계를 더 포함하고, 상기 저장하는 단계는, 상기 디바이스 가용성에 관한 정보 및 상기 디바이스 성능 정보에 기초하여 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 단계를 포함하는 것이 바람직하다.
상기 디바이스 성능 정보는, 상기 각 서버 디바이스들의 파워오프 기간에 관한 정보, 저장 용량에 관한 정보, 사용하는 대역폭에 관한 정보 중 적어도 하나를 포함하는 것이 바람직하다.
상기 디바이스 가용성에 관한 정보는 상기 각 디바이스의 작동한 총 시간과 상기 서버 클러스터 내의 클러스터 네트워크에 연결된 시간의 비율에 기초하여 결정되는 것이 바람직하다.
상기 저장하는 단계는, 상기 디바이스 가용성에 관한 정보에 기초하여, 상기 서버 클러스터가 상기 소정의 데이터에 항상 접속할 수 있도록 상기 데이터를 저장할 적어도 하나의 디바이스를 선택하는 단계, 상기 디바이스에 상기 데이터를 저장하는 단계를 포함하는 것이 바람직하다.
상기 선택하는 단계는, 동일한 데이터를 몇 개의 디바이스에 중복 저장해야 하는지 여부를 나타내는 복제 지수 정보에 기초하여 선택하는 것이 바람직하다.
상기 소정의 데이터는 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 포함하며, 상기 저장하는 단계는, 상기 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 상기 각 디바이스 중 가장 높은 디바이스 가용성을 가진 디바이스부터 순차적으로 분배하여 저장하는 단계를 포함하는 것이 바람직하다.
상기 소정의 데이터는 상기 서버 클러스터 내의 각 디바이스들 간의 동기화에 필요한 데이터를 포함하고, 상기 저장하는 단계는, 상기 동기화에 필요한 데이터를 상기 각 디바이스들 중 가장 높은 디바이스 가용성을 가진 디바이스부터 순차적으로 분배하여 저장하는 단계를 포함하는 것이 바람직하다.
서버 클러스터 내의 디바이스들 중 적어도 하나가 소정의 기간 동안 상기 서버 클러스터에서 탈퇴했던 경우, 상기 서버 클러스터에서 탈퇴하였었던 디바이스는 상기 저장된 동기화에 필요한 데이터를 기초로 상기 서버 클러스터 내의 다른 디바이스들과 동기화 하는 것이 바람직하다.
상기 소정의 데이터는 외부 디바이스로부터 수신한 데이터를 포함하고, 상기 저장하는 단계는, 상기 적어도 하나의 디바이스 중 사용자의 입력에 의해 선택된 디바이스에 상기 데이터를 저장하는 단계를 포함하며, 상기 선택된 디바이스가 상기 데이터를 저장하는 도중 상기 클러스터에서 탈퇴하는 경우, 상기 디바이스 가용성에 관한 정보에 기초하여 선택된 다른 디바이스에 상기 데이터를 저장하는 것이 바람직하다.
본 발명의 일 실시예는 서버 클러스터의 데이터 분배 장치에 있어서, 서버 클러스터 내의 각 디바이스들로부터, 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타내는 디바이스 가용성에 관한 정보를 획득하는 가용성 정보 획득부,상기 디바이스 가용성 정보에 기초하여, 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 데이터 분배부를 포함한다.
상기 가용성 정보 획득부는, 상기 각 디바이스의 성능 정보를 획득하는 디바이스 성능 정보 획득부를 더 포함하며, 상기 데이터 분배부는, 상기 디바이스 가용성에 관한 정보 및 상기 디바이스 성능 정보에 기초하여 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 것이 바람직하다.
상기 디바이스 성능 정보는, 상기 각 서버 디바이스들의 파워오프 기간에 관한 정보, 저장 용량에 관한 정보, 사용하는 대역폭에 관한 정보 중 적어도 하나를 포함하는 것이 바람직하다.
상기 디바이스 가용성에 관한 정보는, 상기 각 디바이스의 작동한 총 시간과 상기 서버 클러스터 내의 클러스터 네트워크에 연결된 시간의 비율에 기초하여 결정되는 것이 바람직하다.
상기 데이터 분배부는, 상기 디바이스 가용성에 관한 정보에 기초하여, 상기 서버 클러스터가 상기 소정의 데이터에 항상 접속할 수 있도록 상기 데이터를 저장할 적어도 하나의 디바이스를 선택하여 저장하는 것이 바람직하다.
상기 데이터 분배부는, 동일한 데이터를 몇 개의 디바이스에 중복 저장해야 하는지 여부를 나타내는 복제 지수 정보에 기초하여 디바이스를 선택하는 것이 바람직하다.
상기 소정의 데이터는 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 포함하며, 상기 데이터 분배부는, 상기 데이터를 상기 각 디바이스들 중 디바이스 가용성이 가장 높은 디바이스부터 순차적으로 분배하여 저장하는 것이 바람직하다.
상기 소정의 데이터는, 상기 서버 클러스터 내의 각 디바이스들 간의 동기화에 필요한 데이터를 포함하고, 상기 데이터 분배부는, 상기 데이터를 상기 각 디바이스들 중 디바이스 가용성이 가장 높은 디바이스부터 순차적으로 분배하여 저장하는 것이 바람직하다.
서버 클러스터 내의 디바이스들 중 적어도 하나가 소정의 기간 동안 상기 서버 클러스터에서 탈퇴한 경우, 상기 서버 클러스터에서 탈퇴했었던 디바이스는 상기 저장된 동기화에 필요한 데이터를 기초로 상기 서버 클러스터 내의 다른 디바이스들과 동기화 하는 것이 바람직하다.
상기 소정의 데이터는 외부 디바이스로부터 수신한 데이터를 포함하고, 상기 데이터 분배부는, 상기 적어도 하나의 디바이스 중 사용자의 입력에 의해 선택된 디바이스에 상기 데이터를 저장하며, 상기 선택된 디바이스가 상기 데이터를 저장하는 도중 상기 클러스터에서 탈퇴하는 경우, 상기 디바이스 가용성에 관한 정보에 기초하여 선택된 다른 디바이스에 상기 데이터를 저장하는 것이 바람직하다.
본 발명의 일 실시예는 상기 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명의 일 실시예에서는 서버 클러스터 디바이스들의 특성을 고려하여 데이터를 분배함으로서, 서버 클러스터 내에 저장되는 데이터의 가용성 및 안정성을 높일 수 있다.
도 1은 본 발명의 일 실시예에 따른 서버와 디바이스간의 관계를 설명하기 위한 시스템 도면이다.
도 2는 본 발명의 일 실시예에 따른 클러스터 서버의 구성을 설명하기 위한 시스템 도면이다.
도 3은 본 발명의 일 실시예에 따른 서버 클러스터에서 데이터를 분배하는 방법의 순서도이다.
도 4는 본 발명의 일 실시예에 따른 서버 클러스터에서 데이터를 분배하는 장치의 구조를 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 서버 클러스터 내에서의 데이터 분배 방법을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 서버 클러스터를 구성하는 디바이스의 동작을 도시한 도면이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 서버와 디바이스간의 관계를 설명하기 위한 시스템 도면이다.
도 1에서 서버(101)는 유무선 네트워크, 통신매체 등을 이용하여 디바이스(103)와 데이터를 송신 및 수신한다.
도 1의 서버(101)는 단일 디바이스로 구성되는 서버 일 수 있으며, 복수의 디바이스를 클러스터링(Clustering)한 서버 클러스터일 수도 있다. 복수의 디바이스를 클러스터링한 서버는 각 디바이스가 디바이스 내에 저장된 데이터베이스를 관리하며, 각 디바이스 내에 저장된 데이터 베이스는 하나의 논리적인 데이터베이스를 구성할 수 있다.
복수의 디바이스를 클러스터링 함으로써, 서버 클러스터를 구성하고, 서버 클러스터 내의 복수의 디바이스는 서버 클러스터의 구성 디바이스로서 동작한다. 이는 도 2 내지 도 7에서 자세히 설명한다.
본 발명의 일 실시예에 따르면, 서버(101)는 디바이스(103)에게 컨텐츠와 같은 데이터를 제공해주기도 하며, 컨텐츠 제공자와 디바이스(103)를 연결해주는 역할을 수행하기도 한다. 즉, 본 발명의 서버(103)는 일반적인 모든 서버의 역할을 제공할 수 있다. 또한 본 발명의 일 실시예에 따르면 서버(101)는 클라우드 서버(Cloud Server)를 포함할 수 있다. 클라우드 서버란 클라우드 컴퓨팅 방식을 사용하여 제공되는 서버를 의미하며, 당업자에게 자명한 사항에 해당하여, 자세한 내용은 생략한다.
본 발명의 일 실시예에 따르면, 디바이스(103)는 서버(101)가 복수의 디바이스로 구성된 클러스터 서버인 경우에도 하나의 서버로서 인식하여 통신을 수행한다. 물론, 클러스터 내의 복수의 디바이스 중 하나를 선택하여 통신하는 방식 또한 가능하다. 본 발명의 일 실시예에 따르면, 디바이스(103)은 클라이언트 일 수 있다.
본 발명의 일 실시예에 따르면, 서버(101)는 디바이스(103)로부터 수신된 데이터를 서버에 저장한다. 복수의 디바이스를 클러스터링 함으로써 구성된 서버는 데이터를 복수의 디바이스들 중 적어도 하나에 저장한다. 물론 서버(101) 내의 각 디바이스 내에 저장된 데이터, 클러스터 서버 내의 각 디바이스가 생성한 데이터 또한 서버 클러스터를 구성하는 복수의 디바이스들 중 적어도 하나에 저장할 수 있다. 또한 데이터의 안정성을 위해 두 개 이상의 디바이스에 동일한 데이터를 저장할 수도 있다. 본 발명의 일 실시예에 따르면, 몇 개의 디바이스에 저장할 지 여부는 클러스터 서버 내의 복제 인자에 기초하여 결정할 수 있다.
도 2는 본 발명의 일 실시예에 따른 클러스터 서버의 구성을 설명하기 위한 시스템 도면이다.
도 2에서 서버 클러스터(201)는 복수의 디바이스들을 포함한다. 즉, 복수의 디바이스들은 서버 클러스터의 구성 디바이스로서 동작한다.
본 발명의 일 실시예에 따르면, 서버 클러스터 내에 포함되는 복수의 디바이스들은, 핸드폰, 타블렛(Tablet), 냉장고, 랩탑(Laptop), 퍼스널 컴퓨터(Personal Computer), DVD, TV, 셋탑박스(Set-top Box), 로봇 청소기 등을 포함할 수 있으며, 상기 예시에 제한되지 않는다.
본 발명의 일 실시예에 따르면, 서버 클러스터 내에 포함되는 디바이스들은 클러스터 네트워크를 통해 연결된다. 클러스터 네트워크라 함은 서버 클러스터 내의 복수의 디바이스들이 연결된 네트워크, 노드들을 의미한다.
본 발명의 일 실시예에 따르면, 클러스터 네트워크는 홈 네트워크를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 서버 클러스터를 구성하는 각 디바이스들은 서버 클러스터로부터 탈퇴하거나, 참여할 수 있다. 본 발명의 일 실시예에 따르면, 각 디바이스들의 탈퇴 및 참여는 각 디바이스가 클러스터 네트워크에 연결되었는지 여부를 기초로 판단할 수 있고, 서버 관리 장치가 각 디바이스의 탈퇴 및 참여를 결정할 수도 있으며, 서버 클러스터를 구성하는 각 디바이스가 탈퇴 및 참여를 결정할 수도 있다. 즉, 서버 클러스터를 구성하는 각 디바이스의 탈퇴 및 참여 여부를 판단하는 방법 및 탈퇴 및 참여를 결정하는 주체는 제한이 없다.
개인 디바이스의 고성능화와 TV, 냉장고 등의 홈 디바이스, 가전 제품 등의 스마트화가 진행되면서, 각 디바이스를 네트워크로 연결하는 홈 네트워크가 출현하였으며, 홈 네트워크를 이용하여 클러스터 서버를 구성할 수 있게 되었다. 다만, 일반적으로 서비스 공급자가 구성하는 서버 클러스터의 경우, 서버 클러스터 내의 각 디바이스는 계속적으로 서버로서 구성하는 디바이스로서, 서버 클러스터로부터 탈퇴하거나, 서버 클러스터 참여하는 등의 동작을 수행하는 일이 거의 없다. 하지만, 핸드폰, 타블렛, 퍼스널 컴퓨터 등의 개인 디바이스를 이용하여 사용자가 서버 클러스터를 구성할 때에는, 각 디바이스들이 항상 서버 클러스터 내의 구성요소로서 동작하지 않을 수 있다. 즉, 핸드폰의 경우 사용자가 가지고 외출을 할 수 있으며, 타블렛의 경우 전원이 오프된 상태로 존재할 수도 있다.
즉, 사용자가 서버 클러스터 내의 데이터 또는 데이터베이스에 접근하고자 할 때, 사용자가 접근하고자 하는 데이터 또는 데이터베이스를 저장하고 있는 디바이스가 서버 클러스터에서 제외된 상태 일 수 있다. 이 경우 사용자가 데이터를 사용하고자 할 때 사용할 수 있는, 데이터의 가용성이 보장되지 않는다. 또한 각 디바이스 마다 성능 및 장애 발생 정도가 달라, 데이터의 안정성이 보장되지 않을 수 있다. 즉, 데이터가 사용자가 원하는 장소에 손실 없이 존재하지 않을 수 있다.
본 발명의 일 실시예는, 데이터 가용성 및 안정성을 보장하기 위해서, 디바이스 가용성 관련 정보에 기초하여 서버 클러스터 내에 저장해야할 데이터를 분배하여 저장할 수 있다.
본 발명의 일 실시예에 따르면 디바이스 가용성이란 디바이스가 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타낼 수 있다. 디바이스 가용성은 디바이스의 성능을 더 고려하여 결정할 수도 있다.
본 발명의 일 실시예에 따르면, 디바이스가 서버 클러스터를 구성하는 디바이스로 동작하는 시간 비율이라 함은, 여러가지 방법 및 기준에 의해 결정된다. 즉, 하루 또는 소정의 기간을 기준으로 디바이스가 서버 클러스터의 구성 디바이스로 동작한 시간의 비율에 따라 결정될 수 있고, 전원이 켜져 있는 시간 중 클러스터 네트워크에 연결된 시간의 비율에 따라 결정될 수도 있다. 즉, 시간 비율을 측정하는 기준이 되는 시간 기간은 제한이 없으며, 사용자가 각 디바이스의 가용성을 직접 설정할 수도 있다.
본 발명의 일 실시예에 따르면, 디바이스의 성능은 디바이스의 연산 능력, 배터리 사용 여부, 저장 용량, 사용하는 대역폭, 전원이 연결되어 있는 시간 등을 포함하며, 상기 예시에 제한되지 않는다.
도 3은 본 발명의 일 실시예에 따른 서버 클러스터에서 데이터를 분배하는 방법의 순서도이다.
단계 S301에서, 서버 클러스터의 데이터 분배 장치는 각 디바이스들로부터 디바이스 가용성에 관한 정보를 획득한다.
본 발명의 일 실시예에 따르면, 서버 클러스터의 데이터 분배 장치는 서버 클러스터 내에 포함된 독립적인 장치일 수 있고, 서버 클러스터를 구성하는 각 디바이스 중 하나 일 수도 있으며, 서버 클러스터를 구성하는 각 디바이스 중 하나에 포함될 수도 있다. 또한 도 1의 디바이스(103)과 같이 서버 클러스터 내에 포함된 디바이스가 아닌 외부 디바이스로서, 서버 클러스터와 데이터를 송신 및 수신하는 디바이스 일 수도 있다.
본 발명의 일 실시예에 따르면 디바이스 가용성이란 서버 클러스터 내의 제 1 디바이스 또는 사용자가 서버 클러스터 내의 제 2 디바이스에 접속하기를 원할 때, 접속가능한지 여부를 나타내는 척도를 의미한다. 즉, 디바이스가 서버 클러스터를 구성하는 디바이스로서 동작하는 시간의 비율 값에 기초하여 결정될 수 있으며, 서버 클러스터 내에 참여하고 있을 확률에 기초하여 결정될 수도 있다. 또한 디바이스의 활용 정도를 의미할 수도 있다.
본 발명의 일 실시예에 따르면, 데이터 분배 장치는 각 디바이스에게 디바이스 가용성에 관한 정보를 요청하고, 이에 대한 응답으로, 각 디바이스 가용성에 관한 정보를 수신할 수 있다. 또한 각 디바이스들로부터 디바이스 가용성을 결정하기 위한 동작 시간 정보, 네트워크 연결 시간 정보 등을 수신하고, 수신된 디바이스 가용성을 결정하기 위한 정보에 기초하여, 각 디바이스의 가용성에 관한 정보를 획득할 수도 있다. 추가적으로 사용자가 각 디바이스의 가용성에 관한 정보를 직접 입력할 수도 있다.
본 발명의 일 실시예에 따르면, 디바이스 가용성은 디바이스가 작동한 총 시간과 클러스터 네트워크 연결된 시간의 비율에 기초하여 결정될 수 있다. 예를 들어, 디바이스가 작동한 시간과 클러스터 네트워크에 연결되어 있던 시간이 동일한 경우 디바이스 가용성은 1이 될 수 있다. 또한 전원이 연결된 시간과 전원이 오프된 기간을 기초로 시간 비율을 계산할 수 있으며, 디바이스 가용성을 결정하기 위한 방법은 제한이 없다. 또한 시간 비율을 계산시 디바이스의 이전 동작 시간 및 연결 시간 등을 고려하여 결정될 수 있으며, 사용자가 설정한 소정의 기간 내의 평균 동작 시간, 평균 연결 시간을 기초하여 계산할 수도 있다. 물론 사용자가 직접 디바이스의 가용성을 결정하여 입력할 수도 있다.
본 발명의 일 실시예에 따르면, 디바이스 가용성은 디바이스의 성능 정보에 기초하여 결정할 수도 있다. 예를 들어, 연산 능력이 높거나, 저장 공간이 높은 경우, 디바이스가 네트워크에 연결된 시간뿐만 아니라 및 디바이스 성능을 함께 고려하여 디바이스 가용성을 결정할 수 있다.
단계 S303에서, 데이터 분배 장치는 단계 S301에서 획득한 디바이스 가용성 정보에 기초하여, 소정의 데이터를 각 디바이스들 중 적어도 하나에 저장할 수 있다.
본 발명의 일 실시예로서, 소정의 데이터는 데이터베이스를 포함할 수 있다. 즉, 소정의 데이터는 데이터 항목의 중복 없이 데이터를 구조화한 데이터베이스를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 데이터 분배 장치는 서버 클러스터가 소정의 데이터에 항상 접속할 수 있도록 데이터를 저장할 디바이스를 선택하고, 선택된 디바이스에 데이터를 저장할 수도 있다. 즉, 각 디바이스들의 디바이스 가용성 정보에 기초하여, 동일한 데이터를 저장하게 될 디바이스 중 적어도 하나가 항상 클러스터 네트워크에 연결되어 있을 수 있도록 디바이스들을 선택하여 저장할 수 있다. 예를 들어, 항상 클러스터 네트워크에 연결된 냉장고에 저장할 디바이스는 다른 디바이스에는 저장할 필요가 없다. 그러나 각 디바이스의 저장할 수 있는 데이터의 용량이 다르므로, 모든 데이터를 냉장고에 포함된 저장 장치에 저장할 수는 없다. 따라서, 핸드폰, 타블렛 PC처럼 클러스터 네트워크에 연결되는 시간이 짧은 디바이스의 경우, TV나 DVD 플레이어 같은 상대적으로 디바이스 가용성이 높은 장치에 동일한 데이터를 더 저장할 수도 있다.
본 발명의 일 실시예에 따르면, 데이터 분배 장치는 서버 클러스터 내에 저장되는 소정의 데이터에 대한 데이터 가용성이 가장 높게 보장되도록 각 디바이스들에 데이터를 분배하여 저장할 수도 있다. 즉, 데이터 분배 장치는 서버 클러스터 내의 데이터에 항상 접속이 가능하도록 데이터 가용성이 1이 되도록 데이터를 분배할 수 있으며, 모든 데이터의 가용성을 1로 유지할 수 없을 때는 데이터 가용성이 가장 높도록 분배하거나, 데이터의 중요도, 데이터의 타입, 사용자의 데이터 이용 패턴 등을 고려하여 분배할 수 있다.
추가적으로, 본 발명의 일 실시예에 따르면, 데이터 분배 장치는 서버 클러스터 내에 저장해야 할 소정의 데이터의 중요도에 기초하여 저장할 디바이스를 선택할 수 있다. 데이터의 중요도는 소정의 기준에 의해 결정되며, 소정의 기준의 사용자에 입력에 기초하여 결정될 수 있다. 또한 본 발명의 일 실시예에 따르면, 소정의 데이터의 타입을 식별하여, 데이터의 타입 및 디바이스의 가용성에 기초하여 각 디바이스 중 적어도 하나를 선택하여 저장할 수도 있다.
예를 들어, 소정의 기준에 의해 데이터의 중요도 또는 사용자의 사용 빈도가 높은 경우, 가장 높은 디바이스 가용성을 가진 디바이스에 저장해야 한다. 즉, 사용자가 자주 사용하거나, 중요한 데이터이기 때문에, 사용자가 사용하고자 할 때 해당 데이터에 항상 접근할 수 있어야 하기 때문이다.
또한 데이터의 타입에 기초하여 저장할 디바이스를 결정할 수도 있는데, 사용자가 데이터를 요청할 때, 데이터를 실행하지 않고, 전송하는 데이터를 전송해주는 것만으로 충분한 종류의 데이터의 경우 저장되는 디바이스의 성능과는 관계 없이 데이터를 저장할 디바이스를 선택할 수 있다. 그러나 데이터를 실행하여 결과를 제공하거나, 렌더링이 필요한 경우에는 디바이스의 성능 정보, 디바이스 가용성 정보 중 적어도 하나를 고려하여 데이터를 저장할 디바이스를 선택할 수도 있다.
또한 본 발명의 일 실시예에 다르면 사용자가 데이터를 이용하는 패턴을 고려하여 데이터를 분배할 디바이스를 선택 및 저장할 수도 있다. 즉, 사용자가 특정 시간에, 특정 데이터를 이용하는 패턴을 분석하여, 특정 시간에 이용하는 데이터는 디바이스 가용성이 다소 낮더라도, 특정 시간에는 항상 접속하는 핸드폰과 같은 디바이스에 저장하도록 데이터를 분배할 수도 있다.
본 발명의 일 실시예에 따르면, 동일한 데이터가 클러스터를 구성하는 각 디바이스들 중 둘 이상의 디바이스들에 저장될 수 있다. 즉, 데이터의 안정성을 보장하기 위해, 데이터를 백업하는 역할 및 동일한 데이터를 저장한 복수의 디바이스들 중 적어도 하나가 서버 클러스터에서 제외되어 있는 경우 데이터의 가용성을 보장하기 위해서이다. 데이터 분배 장치는 복제 지수 정보에 기초하여 동일한 데이터를 몇 개의 디바이스에 저장해야 하는지 결정할 수 있다. 즉 복제 지수는 데이터 분배 장치가 결정한 값으로서, 사용자의 입력 의해 결정될 수 있으며, 데이터의 안정성 및 데이터의 가용성을 보정하기 위해 각 디바이스의 가용성 및 디바이스 성능 정보에 기초하여 결정될 수 있다.
본 발명의 일 실시예에 따르면, 서버 클러스터를 구성하는 각 디바이스들은 서버 클러스터에 참여, 서버 클러스터로부터 탈퇴할 수 있다. 즉, 디바이스가 서버 클러스터 내의 클러스터 네트워크와 연결되었다는 의미는, 서버 클러스터에 참여, 서버 클러스터에 포함, 서버 클러스터를 구성하는 디바이스로서 동작한다는 의미와 동일하며, 디바이스가 클러스터 네트워크와 연결되지 않았다는 의미는, 서버 클러스터로부터 제외, 서버 클러스터로부터 탈퇴, 서버 클러스터를 구성하는 디바이스로서 동작하지 않는다는 의미와 동일하다.
본 발명의 일 실시예에 따르면 각 디바이스의 서버 클러스터의 참여 및 탈퇴는 데이터 분배 장치 또는 디바이스 각각이 결정할 수 있다. 서버 클러스터 내의 구성 디바이스로서의 동작 여부는 클러스터 네트워크에 연결되었는지 여부를 기준으로 결정할 수도 있다. 이는 상기에서 설명한 바와 같으므로, 자세한 설명은 생략한다.
본 발명의 일 실시예에 따르면, 소정의 데이터가 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나 인 경우, 데이터 분배 장치는 디바이스 가용성이 높은 장치부터 순차적으로 저장할 수 있다. 즉, 데이터 분배 장치는 로그 데이터 및 업데이트를 위한 데이터는 가용성이 높은 디바이스에 저장해둠으로써, 서버 클러스터 내에 이상이 생기거나, 업데이트가 필요한 디바이스가 항상 접속할 수 있도록 데이터를 분배하여 저장할 수 있다. 본 발명의 일 실시예에 따르면, 로그 데이터란 컴퓨터 시스템 내에서 발생하는 장애에서 데이터를 보고 하기 위해 데이터 장애 발생 직전의 상태로 복원하기 위해 필요한 정보 및 로그인 및 로그아웃 정보 등을 포함할 수 있다.
또한 본 발명의 일 실시예에 따르면, 소정의 데이터가 동기화를 위해 필요한 데이터인 경우, 데이터 분배 장치는 디바이스 가용성이 높은 장치부터 순차적으로 저장할 수 있다. 동기화란, 서버 클러스터 내에 동일한 데이터가 복수의 디바이스에 저장되어 있을 때, 복수의 디바이스들 중 하나의 디바이스에 저장된 데이터가 사용자의 입력에 의해 변경되면, 데이터의 동일성을 유지하기 위해 다른 디바이스에 저장된 동일한 데이터를 변경하는 것을 의미할 수 있다.
예를 들어, 핸드폰이 서버 클러스터로부터 제외된 기간 동안 서버 클러스터 내에 저장된 데이터가 변경된 경우, 핸드폰이 서버 클러스터에 다시 참여할 때는 서버 클러스터 내에서 변경된 사항을 적용하기 위해 동기화를 수행하여야 한다. 물론 서버 클러스터 내에 계속 참여하고 있는 경우에도 동기화는 필요할 수 있다. 즉, 데이터 분배 장치가 동기화를 위해 필요한 데이터를 가용성이 높은 디바이스에 저장해둠으로써, 동기화가 필요한 디바이스가 항상 접속하여 동기화를 수행할 수 있도록 한다,
추가적으로 본 발명의 일 실시예에 따르면, 소정의 데이터는 외부 디바이스로부터 수신한 데이터를 포함하며, 외부 디바이스로부터 수신한 데이터를 사용자의 입력에 의해 선택한 디바이스에 저장하는 도중, 선택된 디바이스가 클러스터로부터 제외되면, 디바이스 가용성에 관한 정보에 기초하여 다른 디바이스에 저장할 수 있다.
예를 들면, 사용자 입력에 기초하여 서버 클러스터의 구성요소로서 동작하고 있는 핸드폰에 컨텐츠 제공자로부터 제공되는 컨텐츠를 다운로드 받다가, 핸드폰이 서버 클러스터에서 제외된 경우, 다운로드 중이던 컨텐츠를 디바이스 가용성 정보에 의해 선택된 다른 디바이스에 계속하여 다운로드 할 수 있다. 추가적으로 데이터 분배 장치는, 핸드폰이 클러스터 네트워크에 참여하는 경우, 다운로드 받았던 컨텐츠를 핸드폰에 저장할 수 있다.
도 4는 본 발명의 일 실시예에 따른 서버 클러스터에서 데이터를 분배하는 장치의 구조를 나타낸 도면이다.
도 4를 참고하면, 본 발명의 데이터 분배 장치(400)은 가용성 정보 획득부(401), 데이터 분배부(403) 및 제어부(407)를 포함할 수 있다. 추가적으로 도 4에 도시된 데이터 분배 장치(400)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 4에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
본 발명의 일 실시예에 따르면, 가용성 정보 획득부(401)는 각 디바이스로부터 디바이스 가용성 정보를 획득한다. 도 3에서 설명한 바와 같이 가용성 정보 획득부(401)는 통신부(411)를 통해 각 디바이스에 디바이스 가용성 관련 정보 또는 디바이스 가용성을 결정하기 위해 필요한 정보를 요청할 수 있고, 수신부(미도시)를 통해 디바이스 가용성 정보 또는 디바이스 가용성을 결정하기 위해 필요한 정보를 수신할 수도 있다.
본 발명의 일 실시예에 따르면, 서버 클러스터 내의 각 디바이스는 데이터 분배 장치로부터 가용성 관련 정보에 대한 요청을 수신하고, 요청에 대한 응답으로 디바이스의 가용성 관련 정보 또는 디바이스의 가용성을 결정하기 위해 필요한 정보를 데이터 분배 장치에 송신할 수 있다.
본 발명의 일 실시예에 따르면, 가용성 정보 획득부(401)는 디바이스 성능 정보 획득부(413)를 더 포함할 수 있다. 도 1 내지 도 3에서 설명한 바와 같이 데이터 분배 장치가 디바이스의 가용성 정보를 결정할 때, 디바이스의 정보를 고려하여 결정할 수 있으므로, 각 디바이스로부터 디바이스의 성능에 대한 정보를 수신할 수 있다. 디바이스 성능에 대한 정보는 연산 능력 등 디바이스에 관한 다양한 정보를 포함할 수 있다. 이는 도 1 내지 도 3에서 설명한 바와 같다.
본 발명의 일 실시예에 따르면 데이터 분배부(403)는 서버 클러스터 내에 소정의 데이터를 저장하기 위해 서버 클러스터 내의 구성 디바이스로 동작하는 적어도 하나의 디바이스를 선택할 수 있다. 또한 데이터 분배부(403)가 데이터를 저장할 디바이스를 선택할 때, 디바이스 가용성을 고려하여 선택할 수 있다.
본 발명의 일 실시예에 따르면 데이터 분배부(403)는 데이터의 중요도 및 타입을 식별하는 데이터 식별부(미도시)를 포함할 수 있다. 즉, 데이터 분배부(403)은 데이터 분배시 데이터의 중요도 및 데이터의 타입을 고려하여, 데이터를 저장할 디바이스를 선택하여, 데이터를 저장할 수 있다. 추가적으로, 데이터 분배부(403)는 사용자 데이터를 이용하는 패턴을 고려하여 데이터를 분배할 디바이스를 선택할 수 있다. 즉, 데이터 분배부(403)는 사용자가 클러스터 서버에 저장된 데이터를 이용하는 시간에 관한 정보, 사용하는 데이터의 종류 뿐만 아니라, 특정 시간에 클러스터 서버에서 제외되는 디바이스에 대한 정보 등, 사용자가 서버 클러스터를 이용하는 패턴에 대한 정보를 고려함으로써, 데이터를 어떻게 분배를 결정할 수 있다.
또한 데이터 분배부(403)는 동일한 데이터를 서버 클러스터 내의 각 디바이스들에 중복하여 저장할 수 있다. 즉, 데이터의 안정성 및 데이터의 가용성을 보정하기 위해서 데이터 분배부는 데이터를 백업할 수 있다. 데이터 분배부는 복제 지수 정보에 기초하여 동일한 데이터를 몇 개의 디바이스에 저장해야 하는지 여부를 결정할 수 있다. 이는 도 3에서 설명한 바와 같다.
본 발명의 일 실시예에 따르면, 데이터 분배부(403)는 서버 클러스터 내에 저장해야 할 데이터가 로그 데이터 및 업데이트 데이터인 경우, 디바이스 가용성이 높은 장치부터 순차적으로 분배하여 저장할 수 있다. 소정의 데이터가 동기화에 필요한 데이터인 경우도 동일한 방식으로 분배할 수 있다. 물론, 데이터 분배부(403)가 사용자가 입력에 의해 결정된 소정의 기준에 따라, 다른 방법을 사용하여 데이터를 분배할 수 있음은 당업자에게 자명하다.
또한 본 발명의 일 실시예에 따르면, 데이터 분배부(403)가 선택한 서버 클러스터 내의 디바이스가 데이터를 저장하는 도중 클러스터 네트워크와의 연결이 끊어진 경우, 디바이스 가용성 관련 정보에 기초하여 다른 디바이스를 선택하여 데이터를 저장할 수 있다. 또한 클러스터 네트워크와 연결이 끊어졌던 디바이스가 다시 서버 클러스터 내에 참여하는 경우, 다른 디바이스가 대신 저장하고 있던 데이터를 다시 서버 클러스터 내에 참여한 디바이스에게 전송해줄 수 있다.
추가적으로 본 발명의 일 실시예에 따르면, 데이터 분배 장치(400)는 서버 클러스터의 구성 디바이스를 결정하는 구성 요소 결정부(미도시)를 포함할 수 있다. 즉, 데이터 분배 장치(400)는 서버 클러스터의 관리 장치로서 기능할 수 있으며, 서버 클러스터를 구성하기 위한 디바이스들을 선택, 결정할 수 있다.
본 발명의 일 실시예에 따르면, 데이터 분배 장치(400)은 각 디바이스가 서버 클러스터 내의 클러스터 네트워크에 연결되어 있는지 여부를 판단하는, 디바이스 연결 판단부(미도시)를 더 포함할 수 있다. 또한 데이터 분배 장치(400)은 범용적인 구성요소인 사용자 인터페이스부, 표시부 등을 더 포함할 수 있다.
본 발명의 일 실시예에 따르면 제어부(407)는 데이터 분배 장치(400)가 포함하는 모든 구성요소들을 제어할 수 있으며, 중앙 제어 장치와 같은 연산 유닛을 포함할 수 있으나, 상기 예시에 제한되지 않는다.
도 5는 본 발명의 일 실시예에 따른 서버 클러스터 내에서의 데이터 분배 방법을 나타낸 도면이다.
종래에는 서버 클러스터가 데이터를 분배할 때, 디바이스들의 특징과는 관계없이 데이터를 분배하였다. 즉, 제 1 디바이스 내지 제 6 디바이스(503 내지 513)의 특성과는 관계없이 동일한 특성을 가진 디바이스라 가정하고 데이터를 분배하였다.
그러나 본 발명의 일 실시예에 따르면 각 디바이스의 디바이스 가용성 관련 정보를 고려하여 각 디바이스에 데이터를 분배한다.
본 발명의 일 실시예에 따르면, 제 1 디바이스 내지 제 6 디바이스(503 내지 513)은 클러스터 네트워크(501)로 연결되어 있다. 클러스터 네트워크는 홈 네트워크를 포함할 수 있다.
본 발명의 일 실시예에 따르면 데이터 분배 장치는 제 1 디바이스 이거나, 제 1 디바이스에 포함되거나, 제 1 디바이스 내지 제 6 디바이스(503 내지 513)가 아닌 다른 디바이스에 해당할 수 있다.
도 5를 참조하면, 원 안에 표시된 숫자들은 각 디바이스의 가용성을 나타낸 값이다. 도 1 내지 도 4에서 설명한 바와 같이, 디바이스의 가용성은 다양한 방법에 의해 결정될 수 있다. 본 발명의 일 실시예에 따르면, 디바이스의 가용성은 디바이스가 서버 클러스터 내의 구성 디바이스로서 동작하는 시간의 비율에 기초하여 결정될 수 있다. 또한 디바이스의 성능 정보를 고려하여 결정될 수도 있으며, 디바이스가 서버 클러스터의 구성 디바이스서 동작하는 시간의 비율 및 디바이스의 성능 정보를 모두 고려하여 결정될 수도 있다.
본 발명의 일 실시예에 따르면, 서버 클러스터의 데이터 분배 장치는 데이터의 안정성 및 데이터의 가용성을 보장하기 위해 복수의 장치에 동일한 데이터를 저장할 수 있다. 도 6을 참조하면, 제 1 내지 제 4 데이터는 3개의 디바이스에 중복되어 저장된다. 본 발명의 일 실시예에 따르면, 몇 개의 디바이스에 저장할지는 복제 인자 정보(Replication Factor)에 따라 결정될 수 있다. 복제 인자 정보는 사용자의 설정에 의해 결정될 수 있으며, 사용자가 서버 클러스터에 요구하는 데이터의 안정성 및 데이터의 가용성에 기초하여 동적으로 설정될 수도 있다.
또한 본 발명의 일 실시예에 따르면 제 1 데이터 내지 제 4 데이터의 데이터 타입이 각기 다른 경우에는, 데이터 분배 장치는 각 데이터의 타입에 기초하여 저장할 디바이스를 선택함으로써, 데이터를 분배하여 저장할 수 있다. 또한 데이터 분배 장치는 사용자의 데이터 이용 패턴을 고려하여 데이터를 분배하여 저장할 수도 있다.
도 6은 본 발명의 일 실시예에 따른 서버 클러스터를 구성하는 디바이스의 동작을 도시한 도면이다.
도 6을 참조하면, 서버 클러스터 내의 각 구성 디바이스들인 제 1 디바이스 내지 제 6 디바이스(603 내지 613)는 클러스터 네트워크(601)에 포함된다.
본 발명의 일 실시예에 따르면 각 디바이스는 디바이스 가용성, 디바이스 성능과 같은 디바이스의 특성이 상이할 수 있다. 따라서 서버 클러스터 내에 저장되는 데이터의 가용성 및 데이터의 안정성을 보장하기 위해서는 서버 클러스터의 구성 디바이스들에 데이터를 분배하여 저장할 때, 디바이스의 특성을 고려하여 저장하여야 한다.
특히, 본 발명의 일 실시예에 따르면, 서버 클러스터를 구성하는 디바이스는 각각 클러스터 네트워크(601)의 참가 및 탈퇴가 가능하다. 즉, 서버 클러스터로부터 제외될 수도 있으며, 제외된 이후 다시 참가할 수도 있다.
추가적으로, 본 발명의 일 실시예에 따르면, 동일한 네트워크에 연결된 디바이스들 중 일부만을 선택하여 서버 클러스터를 구성할 수도 있다. 즉, 서버 클러스터를 구성하는 디바이스의 선택은 제한이 없으며, 사용자의 입력에 의해 서버 클러스터를 구성할 디바이스를 선택하여 저장할 수도 있다.
제 1 디바이스(603)와 제 3 디바이스(607)가 동일한 데이터를 저장하고 있다고 가정하면, 도 6에서와 같이, 제 3 디바이스(607)가 클러스터 네트워크로부터 제외되어 있는 동안, 제 1 디바이스에 데이터가 변경될 수 있다. 데이터의 안정성을 유지하고, 신뢰성 있는 데이터를 제공하기 위해, 제 3 디바이스 내에 저장된 데이터 또한 제 1 디바이스에 저장된 변경된 데이터와 동일하게 변경하여야 한다. 즉, 서버 클러스터 내에서 동기화의 필요성이 존재할 수 있으며, 동기화를 위해 필요한 데이터는 디바이스 가용성이 가장 높은 디바이스에 저장할 수 있다.
또한 본 발명의 일 실시예에 따르면, 제 3 디바이스(607)가 컨텐츠 다운로드와 같이 데이터를 저장하는 동작을 수행하던 도중 클러스터 네트워크에서 탈퇴한 경우에는 서버 클러스터 내의 다른 디바이스를 선택하여 데이터를 저장하도록 할 수도 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. 매커니즘, 요소, 수단, 구성과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, 필수적인, 중요하게 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 '상기'의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다

Claims (21)

  1. 서버 클러스터의 데이터 분배 방법에 있어서,
    서버 클러스터 내의 각 디바이스들로부터, 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타내는 디바이스 가용성에 관한 정보를 획득하는 단계;
    상기 디바이스 가용성 정보에 기초하여, 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 디바이스 가용성에 관한 정보를 획득하는 단계는,
    상기 각 디바이스의 성능 정보를 획득하는 단계를 더 포함하고,
    상기 저장하는 단계는, 상기 디바이스 가용성에 관한 정보 및 상기 디바이스 성능 정보에 기초하여 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 디바이스 성능 정보는, 상기 각 서버 디바이스들의 파워오프 기간에 관한 정보, 저장 용량에 관한 정보, 사용하는 대역폭에 관한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 디바이스 가용성에 관한 정보는 상기 각 디바이스의 작동한 총 시간과 상기 서버 클러스터 내의 클러스터 네트워크에 연결된 시간의 비율에 기초하여 결정되는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 저장하는 단계는,
    상기 디바이스 가용성에 관한 정보에 기초하여, 상기 서버 클러스터가 상기 소정의 데이터에 항상 접속할 수 있도록 상기 데이터를 저장할 적어도 하나의 디바이스를 선택하는 단계;
    상기 디바이스에 상기 데이터를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서,
    상기 선택하는 단계는,
    동일한 데이터를 몇 개의 디바이스에 중복 저장해야 하는지 여부를 나타내는 복제 지수 정보에 기초하여 선택하는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 소정의 데이터는 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 포함하며,
    상기 저장하는 단계는,
    상기 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 상기 각 디바이스 중 가장 높은 디바이스 가용성을 가진 디바이스부터 순차적으로 분배하여 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제 1 항에 있어서,
    상기 소정의 데이터는 상기 서버 클러스터 내의 각 디바이스들 간의 동기화에 필요한 데이터를 포함하고,
    상기 저장하는 단계는,
    상기 동기화에 필요한 데이터를 상기 각 디바이스들 중 가장 높은 디바이스 가용성을 가진 디바이스부터 순차적으로 분배하여 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    서버 클러스터 내의 디바이스들 중 적어도 하나가 소정의 기간 동안 상기 서버 클러스터에서 탈퇴했던 경우,
    상기 서버 클러스터에서 탈퇴하였었던 디바이스는 상기 저장된 동기화에 필요한 데이터를 기초로 상기 서버 클러스터 내의 다른 디바이스들과 동기화 하는 것을 특징으로 하는 방법.
  10. 제 1 항에 있어서,
    상기 소정의 데이터는,
    외부 디바이스로부터 수신한 데이터를 포함하고,
    상기 저장하는 단계는,
    상기 적어도 하나의 디바이스 중 사용자의 입력에 의해 선택된 디바이스에 상기 데이터를 저장하는 단계를 포함하며,
    상기 선택된 디바이스가 상기 데이터를 저장하는 도중 상기 클러스터에서 탈퇴하는 경우, 상기 디바이스 가용성에 관한 정보에 기초하여 선택된 다른 디바이스에 상기 데이터를 저장하는 것을 특징으로 하는 방법.
  11. 서버 클러스터의 데이터 분배 장치에 있어서,
    서버 클러스터 내의 각 디바이스들로부터, 서버 클러스터를 구성하는 디바이스로서 동작하는 시간 비율을 나타내는 디바이스 가용성에 관한 정보를 획득하는 가용성 정보 획득부;
    상기 디바이스 가용성 정보에 기초하여, 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 데이터 분배부를 포함하는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 가용성 정보 획득부는,
    상기 각 디바이스의 성능 정보를 획득하는 디바이스 성능 정보 획득부를 더 포함하며,
    상기 데이터 분배부는, 상기 디바이스 가용성에 관한 정보 및 상기 디바이스 성능 정보에 기초하여 소정의 데이터들을 상기 각 디바이스들 중 적어도 하나에 저장하는 것을 특징으로 하는 장치.
  13. 제 12 항에 있어서,
    상기 디바이스 성능 정보는, 상기 각 서버 디바이스들의 파워오프 기간에 관한 정보, 저장 용량에 관한 정보, 사용하는 대역폭에 관한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  14. 제 11 항에 있어서,
    상기 디바이스 가용성에 관한 정보는, 상기 각 디바이스의 작동한 총 시간과 상기 서버 클러스터 내의 클러스터 네트워크에 연결된 시간의 비율에 기초하여 결정되는 것을 특징으로 하는 장치.
  15. 제 11 항에 있어서,
    상기 데이터 분배부는,
    상기 디바이스 가용성에 관한 정보에 기초하여, 상기 서버 클러스터가 상기 소정의 데이터에 항상 접속할 수 있도록 상기 데이터를 저장할 적어도 하나의 디바이스를 선택하여 저장하는 것을 특징으로 하는 장치.
  16. 제 15 항에 있어서,
    상기 데이터 분배부는, 동일한 데이터를 몇 개의 디바이스에 중복 저장해야 하는지 여부를 나타내는 복제 지수 정보에 기초하여 디바이스를 선택하는 것을 특징으로 하는 장치.
  17. 제 11 항에 있어서,
    상기 소정의 데이터는 로그 데이터 및 업데이트를 위한 데이터 중 적어도 하나를 포함하며,
    상기 데이터 분배부는,
    상기 데이터를 상기 각 디바이스들 중 디바이스 가용성이 가장 높은 디바이스부터 순차적으로 분배하여 저장하는 것을 특징으로 하는 장치.
  18. 제 11 항에 있어서,
    상기 소정의 데이터는, 상기 서버 클러스터 내의 각 디바이스들 간의 동기화에 필요한 데이터를 포함하고,
    상기 데이터 분배부는,
    상기 데이터를 상기 각 디바이스들 중 디바이스 가용성이 가장 높은 디바이스부터 순차적으로 분배하여 저장하는 것을 특징으로 하는 장치.
  19. 제 18 항에 있어서,
    서버 클러스터 내의 디바이스들 중 적어도 하나가 소정의 기간 동안 상기 서버 클러스터에서 탈퇴한 경우,
    상기 서버 클러스터에서 탈퇴했었던 디바이스는 상기 저장된 동기화에 필요한 데이터를 기초로 상기 서버 클러스터 내의 다른 디바이스들과 동기화 하는 것을 특징으로 하는 장치.
  20. 제 11 항에 있어서,
    상기 소정의 데이터는,
    외부 디바이스로부터 수신한 데이터를 포함하고,
    상기 데이터 분배부는,
    상기 적어도 하나의 디바이스 중 사용자의 입력에 의해 선택된 디바이스에 상기 데이터를 저장하며,
    상기 선택된 디바이스가 상기 데이터를 저장하는 도중 상기 클러스터에서 탈퇴하는 경우, 상기 디바이스 가용성에 관한 정보에 기초하여 선택된 다른 디바이스에 상기 데이터를 저장하는 것을 특징으로 하는 장치.
  21. 제 1 항에 기재된 방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020130094336A 2013-08-08 2013-08-08 서버 클러스터의 데이터 분배 방법 및 장치 KR20150017990A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130094336A KR20150017990A (ko) 2013-08-08 2013-08-08 서버 클러스터의 데이터 분배 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130094336A KR20150017990A (ko) 2013-08-08 2013-08-08 서버 클러스터의 데이터 분배 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20150017990A true KR20150017990A (ko) 2015-02-23

Family

ID=53046577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130094336A KR20150017990A (ko) 2013-08-08 2013-08-08 서버 클러스터의 데이터 분배 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20150017990A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402719A (zh) * 2016-11-25 2017-11-28 慧荣科技股份有限公司 可用于数据储存装置的数据储存方法与数据回复程序、以及采用这些方法的数据储存装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107402719A (zh) * 2016-11-25 2017-11-28 慧荣科技股份有限公司 可用于数据储存装置的数据储存方法与数据回复程序、以及采用这些方法的数据储存装置
CN107402719B (zh) * 2016-11-25 2020-10-16 慧荣科技股份有限公司 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置

Similar Documents

Publication Publication Date Title
US11379461B2 (en) Multi-master architectures for distributed databases
US10656868B2 (en) Optimal storage and workload placement, and high resiliency, in geo-distributed cluster systems
CN107251533B (zh) 用于对等匹配的位于一处的对等设备
CN107278365B (zh) 用于可扩展的对等匹配的设备
US20140289382A1 (en) Utilizing version vectors across server and client changes to determine device usage by type, app, and time of day
US20140122510A1 (en) Distributed database managing method and composition node thereof supporting dynamic sharding based on the metadata and data transaction quantity
US7594007B2 (en) Distributed service management for distributed networks
CN106487928B (zh) 消息推送方法及装置
US20130227091A1 (en) Provisioning and managing a cluster deployed on a cloud
US20100306280A1 (en) Swarm-Based Synchronization Over a Network of Object Stores
CN109173270B (zh) 一种游戏服务系统和实现方法
CN105162879B (zh) 实现多机房数据一致性的方法、装置及系统
US20150189011A1 (en) Peer-to-peer network prioritizing propagation of objects through the network
KR20150111952A (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
US11588890B2 (en) System, method and apparatus having a redundant cluster for processing data
CN103916231A (zh) 云计算平台及其服务器时间同步方法
US9229762B2 (en) Host providing system and host providing method
CN108322358A (zh) 异地多活的分布式消息发送、处理、消费方法及装置
CN103457870A (zh) 用于分布式系统的负载均衡及高可用性子系统及方法
CN108199912B (zh) 一种异地多活的分布式消息的管理、消费方法及装置
Najaran et al. SPEX: scalable spatial publish/subscribe for distributed virtual worlds without borders
KR20150017990A (ko) 서버 클러스터의 데이터 분배 방법 및 장치
CN110728379A (zh) 配置信息管理方法及装置、电子设备和非暂态存储介质
CN108009247B (zh) 信息推送方法及装置
US10033817B2 (en) Stateless technique for distributing data uploads

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right