KR20180037571A - 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법 - Google Patents

데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법 Download PDF

Info

Publication number
KR20180037571A
KR20180037571A KR1020170117395A KR20170117395A KR20180037571A KR 20180037571 A KR20180037571 A KR 20180037571A KR 1020170117395 A KR1020170117395 A KR 1020170117395A KR 20170117395 A KR20170117395 A KR 20170117395A KR 20180037571 A KR20180037571 A KR 20180037571A
Authority
KR
South Korea
Prior art keywords
node
data
replica
nodes
center cluster
Prior art date
Application number
KR1020170117395A
Other languages
English (en)
Other versions
KR102245309B1 (ko
Inventor
쩡위 양
쟈인 왕
토마스 데이비드 에반스
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US15/408,328 external-priority patent/US10455045B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20180037571A publication Critical patent/KR20180037571A/ko
Application granted granted Critical
Publication of KR102245309B1 publication Critical patent/KR102245309B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • G06F17/30079

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 스토리지 장치의 동작 방법은 주요 노드로부터 두 개 이상의 복제 노드들 각각에 대한 지연 거리를 결정하는 단계, 상기 결정된 지연 거리들에 기초하여 상기 두 개 이상의 복제 노드들 중 선호 복제 노드를 선택하는 단계, 그리고 상기 선호 복제 노드로 데이터를 쓰기 캐시하는 단계를 포함한다.

Description

데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법{METHOD OF DATA STORAGE AND OPERATING METHODE OF DATACENTER CLUSTER CACHING SYSTEM}
본 발명은 데이터 스토리지(storage) 및 데이터 회복을 포함하는 데이터센터 동작에 관한 것이다.
메모리 스토리지 분야에서, 많은 양의 메모리를 저장하는 데이터센터들은 높은 용량, 높은 성능, 저전력 사용, 그리고 적은 비용을 달성하는 것을 추구한다.
복제는 데이터센터 클러스터(cluster)의 복수의 스토리지 노드(node)들 전체에 걸쳐 데이터를 동기화하는 과정이다. 복제는 리던던시(redundancy)를 제공하고, 하나의 스토리지 노드의 손실로부터 데이터 가용성을 증가시킨다. 복제는 시스템이 하드웨어 고장 및 서비스 중단으로부터 회복시키고, 읽기 용량도 증가시킨다. 그러므로, 빅데이터(big data) 및 클라우드 컴퓨팅(cloud computing) 분야에서, 복수의 복제들(예를 들어, 복제된 데이터 집합들)을 저장하는 것은 원격의 클라우드(cloud) 스토리지에 저장된 데이터집합들의 신뢰도 및 가용성을 위한 일반적인 방법이다.
추가적으로, 은행, 주식 시장, 그리고 군용 데이터베이스들과 같은, 특정 데이터베이스들은 저장된 데이터가 복제 가능하고 신뢰할 수 있게 저장되는 것을 필요로 한다.
본 발명은 상술된 기술적 과제를 해결하기 위한 것으로써, 본 발명은 고장 감내 능력을 향상시키고 고장 시나리오들로부터 회복을 할 수 있는 데이터센터 클러스터 캐싱 시스템의 동작 방법을 제공할 수 있다.
본 명세서에서 개시된 실시 예들의 양상들은 데이터 스토리지 및 데이터 회복을 포함하는 데이터센터 동작과 관련된다.
본 발명의 실시 예에 따른 데이터 스토리지 방법은 주요 노드로부터 두 개 이상의 복제 노드들 각각에 대한 지연 거리를 결정하는 단계, 상기 결정된 지연 거리들에 기초하여 상기 두 개 이상의 복제 노드들 중 선호 복제 노드를 선택하는 단계, 그리고 상기 선호 복제 노드로 데이터를 쓰기 캐시하는 단계를 포함한다.
상기 두 개 이상의 복제 노드들 각각은 상기 주요 노드 및 상기 두 개 이상의 복제 노드들을 포함하는 데이터센터 클러스터의 이용 가능한 다른 노드들보다 상기 주요 노드에 대해 더 작은 지연 거리를 가질 수 있다.
상기 주요 노드로서 데이터센터 클러스터의 각 노드는 상기 주요 노드와 상기 복제 노드들 중 각각의 노드 사이의 경로들과 연관된 네트워크 지연들에 기초하여 순위가 매겨진 선호 복제 노드들의 순위를 포함하고, 상기 데이터센터 클러스터의 각 노드는, 로컬 가상 머신들의 데이터를 저장하기 위한 캐시 파티션 및 다른 노드들로부터 복제 데이터를 저장하기 위한 복제 파티션을 포함하는 캐시 계층으로서 솔리드 스테이트 드라이브(SSD) 계층, 그리고 백엔드(backend) 스토리지 계층으로서 하드 디스크 드라이브(HDD) 계층을 포함할 수 있다.
상기 데이터센터 클러스터의 각 노드는 복수의 가상 머신들을 운영하기 위한 물리적 호스트, 상기 데이터센터 클러스터의 각 노드에서 상기 솔리드 스테이트 드라이브 계층 및 상기 하드 디스크 드라이브 계층을 공유하는 상기 가상 머신들 각각을 포함하고, 본 발명의 실시 예에 따른 데이터 스토리지 방법은 네트워크 지연들의 변화들을 반영하기 위해 주기적으로 상기 선호 복제 노드들의 상기 순위를 업데이트하는 단계를 더 포함할 수 있다.
상기 선호 복제 노드들의 상기 순위는 상기 선호 복제 노드들과 연관된 데이터의 접근 빈도 및 상기 선호 복제 노드들과 연관된 서비스 수준 협약들(SLA; service level agreement)을 포함하는 작업부하 특성들에 기초할 수 있다.
본 발명의 하나의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 고장 감내 능력(fault tolerance)을 가능하게 하는 상기 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 데이터센터 클러스터의 고장을 감지하는 단계, 그리고 상기 감지된 고장에 따라 상기 데이터센터 클러스터의 노드들의 스토리지 계층들 사이에서 데이터를 이동시킴으로써 상기 노드들 사이의 로드 밸런싱(load balancing)을 수행하는 단계를 포함하고, 상기 로드 밸런싱은 상기 감지된 고장에 대응하는 서브시스템을 중지하지 않고, 상기 감지된 고장에 대응하는 상기 데이터센터 클러스터의 노드의 전체 데이터집합을 복사하지 않고 수행된다.
본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 데이터센터 클러스터에 있는 제1 복제 노드로부터 상기 데이터센터 클러스터에 있는 제2 복제 노드로 복제 데이터를 이송하는 단계를 더 포함할 수 있고, 상기 복제 데이터를 이송하는 단계는, 새롭게 들어오는 데이터를 상기 제2 복제 노드에 쓰고 변경되지 않은 캐시된 데이터를 상기 제1 복제 노드에서 유지함으로써 수행될 수 있다.
본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 주요 노드의 솔리드 스테이트 드라이브(SSD)로부터 희생 데이터를 축출하는 단계, 상기 주요 노드에서 상기 새롭게 들어오는 데이터를 수신하는 단계, 상기 새롭게 들어오는 데이터를 상기 주요 노드의 하드 디스크 드라이브(HDD)에 쓰는 단계, 그리고 상기 제1 복제 노드의 솔리드 스테이트 드라이브(SSD)로부터 상기 희생 데이터를 제거하는 단계를 더 포함할 수 있다.
상기 감지된 고장은 상기 데이터센터 클러스터의 주요 노드에서의 가상 머신 충돌을 포함하고, 본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티(dirty) 데이터를 쓰는 단계, 상기 더티 데이터를 복제 노드의 솔리드 스테이트 드라이브에 유지하는 단계, 상기 복제 노드의 솔리드 스테이트 드라이브에 있는 상기 더티 데이터를 논더티(nondirty)로 표시하는 단계, 상기 주요 노드에 있는 상기 충돌된 가상 머신을 재시작하는 단계, 그리고 들어오는 입출력 요청들을 상기 주요 노드의 상기 솔리드 스테이트 드라이브 및 상기 복제 노드의 상기 솔리드 스테이트 드라이브로 전달하는 단계를 더 포함할 수 있다.
상기 감지된 고장은 정보가 상기 주요 노드에 쓰여질 수 없는 상기 데이터센터 클러스터의 주요 노드에서의 캐시 장치 고장을 포함하고, 본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 데이터센터 클러스터의 복제 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 쓰는 단계, 상기 더티 데이터를 상기 복제 노드의 상기 솔리드 스테이트 드라이브에서 유지하는 단계, 상기 더티 데이터를 논더티로 표시하는 단계, 상기 정보를 상기 데이터센터 클러스터의 관련된 노드들로 브로드캐스팅(broadcasting)하는 단계, 그리고 상기 데이터센터 클러스터의 상기 관련된 노드들의 각 솔리드 스테이트 드라이브들로부터 상기 관련된 노드들의 각 하드 디스크 드라이브들로 더티 데이터를 라이트백(write back)하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 관련된 노드들의 상기 솔리드 스테이트 드라이브들에 있는 데이터를 논더티 표시로 표시하는 단계, 상기 주요 노드에서의 상기 솔리드 스테이트 드라이브를 교체하는 단계, 들어오는 입출력 요청들을 상기 주요 노드의 상기 솔리드 스테이트 드라이브 및 상기 복제 노드의 상기 솔리드 스테이트 드라이브로 계속하여 쓰는 단계, 그리고 상기 관련된 노드들로부터 상기 주요 노드의 상기 솔리드 스테이트 드라이브로 새로운 복제 데이터를 쓰는 단계를 더 포함할 수 있다.
상기 감지된 고장은 상기 데이터센터 클러스터의 제1 복제 노드에서의 캐시 장치 고장을 포함하고, 본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 데이터센터 클러스터의 주요 노드의 연결을 끊는 단계, 상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 라이트백하는 단계, 상기 데이터센터 클러스터의 원격의 제2 복제 노드를 검색하는 단계, 상기 더티 데이터를 상기 제2 복제 노드의 솔리드 스테이트 드라이브에 저장하는 단계, 상기 더티 데이터를 상기 제2 복제 노드의 상기 솔리드 스테이트 드라이브에서 논더티로 표시하는 단계, 그리고 들어오는 입출력 요청들을 상기 주요 노드의 상기 솔리드 스테이트 드라이브 및 상기 제2 복제 노드의 상기 솔리드 스테이트 드라이브에 계속하여 쓰는 단계를 더 포함할 수 있다.
상기 데이터센터 클러스터의 원격의 제2 복제 노드를 검색하는 단계는 동적 평가 프로세스(dynamic evaluation process)를 사용하는 단계를 포함할 수 있다.
상기 감지된 고장은 상기 데이터센터 클러스터의 주요 노드와 상기 데이터센터 클러스터의 제1 복제 노드 사이의 통신 실패를 포함하고, 본 발명의 실시 예에 따른 데이터센터 클러스터 캐싱 시스템의 동작 방법은 상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 라이트백하는 단계, 상기 제1 복제 노드를 대체할 제2 복제 노드를 찾는 단계, 상기 주요 노드의 솔리드 스테이트 드라이브 및 상기 제2 복제 노드의 솔리드 스테이트 드라이브에 입출력 요청들을 쓰는 단계, 그리고 상기 제1 복제 노드에 대응하는 모든 오래된 복제 데이터를 배포하기 위해 상기 데이터센터 클러스터의 모든 노드들로 요청을 브로드캐스팅하는 단계를 더 포함할 수 있다.
제2 복제 노드를 찾는 단계는 동적 평가 프로세스를 사용하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터센터 클러스터의 복수의 노드들로부터 병렬의 선인출(prefetching)을 가능하게 하기 위한 복제된 데이터를 사용하는 방법은 데이터집합을 두 부분들로 분리시키는 단계, 그리고 대응하는 노드로부터 상기 데이터집합의 상기 두 부분들의 각각을 로딩하는 단계를 포함한다.
상기 데이터집합의 상기 두 부분들의 각각에 대한 상기 대응하는 노드들은, 상기 데이터센터 클러스터의 주요 노드, 그리고 상기 데이터센터 클러스터의 복제 노드를 포함할 수 있다.
C는 상기 데이터세트의 총 크기이고, αC는 상기 주요 노드의 솔리드 스테이트 드라이브로부터의 상기 두 부분들 중 하나의 크기이고, λ1은 상기 주요 노드의 상기 솔리드 스테이트 드라이브의 접근 속도이고, λ2는 상기 복제 노드의 솔리드 스테이트 드라이브의 접근 속도이고, α는 0과 1 사이의 상수 값이고, 본 발명의 실시 예에 따른 방법은 C/λ1가 αC/λ1 및 (1-α)C/λ2의 최대값 이상인 경우 병렬의 선인출을 유발하는 단계를 더 포함할 수 있다.
상기 λ1 및 상기 λ2는 각각 대응하는 네트워크 지연들을 나타낼 수 있다.
본 발명의 실시 예에 따른 방법은 상기 α가
Figure pat00001
인 경우
Figure pat00002
의 네트워크 총 완료 시간을 달성하는 단계를 더 포함할 수 있다.
본 발명의 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법은 데이터센터 클러스터의 노드들 사이에서 자동적으로 로드 밸런싱을 수행하고, 균일하게 온라인 마이그레이션 동작을 수행할 수 있다.
본 발명의 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법은 고장 감내 능력을 향상시키며 고장 시나리오들로부터 회복을 할 수 있다.
도 1은 본 발명의 실시 예에 따른 데이터센터 클러스터의 토폴로지컬(topological) 구조를 나타내는 블록도이다.
도 2a는 본 발명의 실시 예에 따른 링 구조를 사용하여 데이터센터 클러스터의 복제 노드들을 선택하고 할당하는 방법을 보여준다.
도 2b는 본 발명의 실시 예에 따른 네트워크 구조를 사용하여 데이터센터 클러스터의 복제 노드들을 선택하고 할당하는 방법을 보여준다.
도 3은 본 발명의 실시 예에 따른 온라인 마이그레이션 캐시 정책(online migration cache policy)을 나타내는 블록도이다.
도 4a-4d는 본 발명의 하나 이상의 실시 예들에 따른 다른 상황에서의 데이터 회복을 나타내는 블록도들이다.
도 5는 본 발명의 실시 예에 따른 복수의 노드들로부터 병렬의 선인출(prefetching)을 가능하게 하는 복제 데이터를 사용하는 예시를 나타내는 블록도이다.
도 6은 본 발명의 실시 예에 따른 스트림 분할(stream division)의 최적화된 솔루션(solution)을 찾기 위한 수학식을 나타내는 그래프이다.
본 발명 개념의 특징들과 본 발명 개념을 달성하기 위한 방법들은 첨부된 도면들 및 이하의 실시 예들에 대한 상세한 설명을 참고로 하여 더 쉽게 이해될 수 있다. 이하에서는, 첨부된 도면들을 참고로 하여 실시 예들이 더욱 상세하게 설명될 것이고, 도면의 같은 참조 번호들은 같은 요소들을 가리킨다. 그러나, 본 발명은 다양한 다른 형태로 실시될 수 있으며, 본 명세서에 기재된 실시 예들에 한정하여 해석되어서는 안된다. 즉, 이러한 실시 예들은 발명의 개시를 철저하고 완벽하게 하는 예시로서 제공되며, 당업자에게 본 발명의 양상들 및 특징들을 온전히 전달할 것이다. 이에 따라, 본 발명의 양상들 및 특징들을 완벽하게 이해하기 위한 해당 기술 분야의 통상의 기술자에게 불필요한 프로세스들, 요소들, 그리고 기법들은 설명되지 않을 수 있다. 다른 설명이 기술되지 않는다면, 첨부된 도면들 및 상세한 설명 전체에 걸쳐 같은 참조 번호들은 같은 요소들을 나타내고, 따라서, 같은 요소들을 나타내는 같은 참조 번호들의 설명은 중복되지 않을 것이다. 도면에서는, 요소들, 레이어들(layers), 그리고 영역들의 상대적 크기들은 명확성을 위해 과장될 수 있다.
"제1", "제2", 제3" 등의 용어들이 다양한 요소들, 부품들, 영역들, 레이어들 그리고/또는 섹션들을 설명하기 위해 본 명세서에서 사용되더라도, 이러한 요소들, 부품들, 영역들, 레이어들 그리고/또는 섹션들은 이러한 용어들에 의해 한정되지 않아야 한다. 이러한 용어들은 다른 요소, 부품, 영역, 레이어 또는 섹션으로부터 하나의 요소, 부품, 영역, 레이어 또는 섹션을 구별하기 위해 사용된다. 그러므로, 이하에서 설명되는 제1 요소, 부품, 영역, 레이어 또는 섹션은 본 발명의 사상 및 범위를 벗어나지 않고 제2 요소, 부품, 영역, 레이어 또는 섹션으로 일컬어 질 수 있다.
본 명세서에서 "아래", 밑", "하부", "위", "상부" 등과 같은 공간에 대한 상대적 용어들은 도면들에서 도시된 바와 같이 다른 요소(들) 또는 특징(들)에 대한 하나의 요소 또는 특징의 관계를 묘사하는 설명의 편의를 위해 사용될 수 있다. 공간에 대한 상대적 용어들은 도면들에서 도시된 방향 이외의, 사용 또는 동작에 있어서 장치의 다른 방향들을 아우르도록 의도된다. 예를 들어, 도면들에 있는 장치가 회전된다면, 다른 요소들 또는 특징들에 대한 "아래" 또는 "밑" 또는 "하부"로 설명된 요소들은 다른 요소들 또는 특징들에 대한 "위" 방향으로 된다. 따라서, 예시 용어들인 "아래" 및 "하부"는 위 및 아래 방향 모두를 아우를 수 있다. 장치는 다른 방향으로 될 수 있고(예를 들어, 90도 회전되거나 다른 방향들), 본 명세서에서 사용된 공간에 대한 상대적 기술어들은 이에 따라 해석되어야 한다.
요소, 레이어, 영역, 또는 부품이 다른 요소, 레이어, 영역 또는 부품 "위에 위치하는" 또는 "에 연결되는" 것으로써 가리켜지는 경우, 다른 요소, 레이어, 영역, 또는 부품의 직접 위에 위치하거나 연결되고, 또는 하나 이상의 요소들, 레이어들, 영역들, 또는 부품들이 사이에 존재할 수 있다. 또한, 요소 또는 레이어가 두 요소들 또는 레이어들 "사이"에 있는 것으로 가리켜지는 경우, 두 요소들 또는 레이어들 사이의 유일한 요소 또는 레이어일 수 있고, 또는 하나 이상의 요소들 또는 레이어들이 사이에 존재할 수 있다.
본 명세서에서 사용되는 용어는 오직 특정 실시 예들을 설명하기 위한 목적이고 본 발명을 제한하려는 것은 아니다. 본 명세서에서 사용된 바와 같이, 문맥이 명백하게 다른 것을 나타내지 않으면, 단수 형태는 복수 형태를 포함한다. "포함하다" 및 "포함하는" 용어들은 본 명세서에서 사용되는 경우, 기술된 특징들, 정수들, 단계들, 동작들, 요소들 그리고/또는 부품들의 존재를 명시하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 부품들 그리고/또는 그룹들의 추가 또는 존재를 못하게 하는 것은 아니다. 본 명세서에서 사용된 바와 같이, "그리고/또는" 용어는 나열된 항목들과 연관된 하나 이상의 어떤 조합들 그리고 모든 조합들을 포함한다. "적어도 하나의"와 같은 표현들은 요소들의 리스트 앞에 있는 경우, 전체 요소들의 리스트를 수정하고 리스트의 각각의 요소들을 수정하지 않는다.
본 명세서에서 사용된 바와 같이, "대체로", "약" 그리고 유사한 용어들은 근사치의 용어로서 사용되고 정도의 용어들로서 사용되지 않으며, 측정된 또는 산출된 값들에서 당업자에 의해 인식될 수 있는 내재하는 편차를 설명하는 것으로 의도된다. 더욱이, "할 수 있다"의 사용은 본 발명의 실시 예들을 설명하는 경우 "본 발명의 하나 이상의 실시 예들을" 지칭한다. 본 명세서에서 사용된 바와 같이, "사용하다", "사용하는", 그리고 "사용되는" 용어들은 각각 "활용하다", "활용하는", 그리고 "활용되는" 용어들과 동의어로 고려될 수 있다. 또한, "예시"는 예 또는 사례를 지칭하는 것으로 의도된다.
특정 실시 예가 다르게 구현될 수 있는 경우, 특정 프로세스 순서는 설명된 순서와 다르게 수행될 수 있다. 예를 들어, 연속하여 설명된 두 프로세스들은 대체로 동시에 수행될 수 있거나 설명된 순서와 반대되는 순서로 수행될 수 있다.
본 명세서에서 설명된 본 발명의 실시 예들에 따른 전자 또는 전기 장치들 그리고/또는 다른 관련된 장치들 또는 구성 요소들은 적절한 하드웨어, 펌웨어(예를 들어, 응용 주문형 집적 회로(ASIC)), 소프트웨어, 또는 소프트웨어, 펌웨어, 그리고 하드웨어의 조합을 활용하여 구현될 수 있다. 예를 들어, 이러한 장치들의 다양한 구성 요소들은 하나의 집적 회로(IC) 칩 또는 분리된 집적 회로(IC) 칩들에 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성 요소들은 연성 인쇄 회로 필름, 테이프 캐리어 패키지(TCP; tape carrier package), 인쇄 회로 기판(PCB) 위에서 구현되거나 하나의 기판 위에서 형성될 수 있다. 또한, 이러한 장치들의 다양한 구성 요소들은 하나 이상의 컴퓨팅 장치들에서, 하나 이상의 프로세서들에서 동작하고 컴퓨터 프로그램 명령어들을 실행하며 본 명세서에서 기술된 다양한 기능들을 수행하기 위한 다른 시스템 구성 요소들과 상호 작용하는 프로세서 또는 스레드(thread)일 수 있다. 컴퓨터 프로그램 명령어들은 예를 들어, 임의 접근 기억장치(RAM)와 같은 표준 메모리 장치를 사용하여 컴퓨팅 장치에서 구현될 수 있는 메모리에 저장된다. 컴퓨터 프로그램 명령어들은 예를 들어, CD-ROM, 플래시 드라이브(flash drive) 등과 같은 다른 비 일시성의 컴퓨터 판독 가능한 기록 매체에 저장될 수 있다. 또한, 당업자는 본 발명의 실시 예들의 사상 및 범위를 벗어나지 않고 다양한 컴퓨팅 장치들의 기능이 하나의 컴퓨팅 장치로 통합 또는 합쳐지거나 특정한 컴퓨팅 장치의 기능이 하나 이상의 다른 컴퓨팅 장치들 전체에 걸쳐 분산될 수 있다는 것을 인식해야 한다.
다른 것으로 정의되지 않으면, 본 명세서에서 사용되는 모든 용어들(기술적 그리고 과학적 용어들을 포함하는)은 본 발명이 속하는 기술 분야의 통상의 기술자가 일반적으로 이해하는 것과 같은 의미를 포함한다. 일반적으로 사용되는 사전들에서 정의된 용어들과 같은 용어들은 관련된 기술 분야 그리고/또는 본 명세서의 문맥에 있는 의미와 일치하는 의미를 포함하는 것으로 해석되어야 하고, 본 명세서에서 특별히 정의하지 않으면, 이상화되거나 매우 형식적인 지각으로 해석되어서는 안 된다.
도 1은 본 발명의 실시 예에 따른 데이터센터 클러스터의 토폴로지컬(topological) 구조를 나타내는 블록도이다.
도 1을 참조하면, 데이터센터 클러스터(100)는 클러스터에 배열된 복수의 노드들(110)을 포함한다. 각 노드(110)는 복수의 가상 머신들(VMs)(120)을 운영하는 물리적 호스트(host)(예를 들어, 서버)일 수 있다. 가상 머신들(120)은 타입-1 하이퍼바이저(hypervisor) 또는 타입-2 하이퍼바이저에서 운영될 수 있다. 예를 들어, 본 실시 예에서 가상 머신들(120)을 운영하기 위해 사용되는 호스트는 타입-1 구현일 수 있다(예를 들어, 본 발명의 실시 예는 각 노드(110)에 대해 ESXi 호스트들을 사용할 수 있음).
각 노드(110) 안에는, 데이터 스토리지 장치들/메모리 장치들(140)의 두 계층들(tiers)(130)이 존재할 수 있다. 두 스토리지 계층들(130)은 솔리드 스테이트 드라이브(SSD; solid-state drive) 계층(130a), 그리고 하드 디스크 드라이브(HDD; hard disk drive) 계층(130b)을 포함할 수 있다. SSD들 및 HDD들이 아래의 다양한 실시 예들을 설명하기 위해 사용되더라도, 다른 실시 예들은 다른 캐시(cache)/계층 장치들 그리고/또는 메모리 장치들을 사용할 수 있다.
각 스토리지 계층(130)은 하나 이상의 메모리 장치들(140)을 포함한다. 예를 들어, SSD 계층(130a)은 하나 이상의 SSD들(140a)을 포함할 수 있고, HDD 계층(130b)은 하나 이상의 HDD들(140b)을 포함할 수 있다. RAID 모드 디스크들(예를 들어, 복수 배열 독립 디스크들(redundant array of independent disks)로서 동작하는 디스크들)은 각각의 스토리지 계층들(130)에서 채택될 수 있다. 가상 머신들(120)은 각각의 노드(110)에서 SSD 계층(130a) 및 HDD 계층(130b)을 공유한다. SSD 계층(130a)은 캐시 계층으로서 사용될 수 있고, HDD 계층(130b)은 백엔드(backend) 스토리지 계층으로서 사용될 수 있다.
SSD 계층(130a) 안에는 두 파티션들(partitions)(150)이 존재한다. 두 파티션들(150)은 로컬(local) 가상 머신들(120)의 데이터를 저장하는 캐시 파티션(cache partition)(150a) 및 다른 노드들(110)로부터의 복제 데이터를 저장하는 복제 파티션(replica partition)(150b)을 포함한다. 본 실시 예에서는 SSD 계층(130a) 만이 다른 노드들(110) 로부터의 복제 데이터를 저장하는데 사용된다. 네트워크 지연이 확인되는 경우에도 원격의 SSD(140a)의 접근 속도가 로컬 HDD(140b)의 접근 속도보다 빠를 수 있기 때문에(예를 들어, SSD들(140a)과 연관된 높은 속도 광섬유 채널 및 더 내구성 있는 HDD들(140b)과 연관된 느린 속도로 인하여) 이는 적합할 수 있다.
본 발명의 다른 실시 예들에 따르면, 데이터센터 클러스터(100) 토폴로지의 구조를 설계하기 위해 다른 방식이 사용될 수 있다. 사용되는 방식의 유형은 어떻게 복제 노드들(110)을 선택할지, 얼마나 많은 복제 노드들(110)이 시스템의 제약에 있어 적합한지, 그리고 어떻게 복제 노드들(110)에 복제 데이터를 할당할지를 결정함으로써 정해질 수 있다.
도 2a는 본 발명의 실시 예에 따른 링 구조를 사용하여 데이터센터 클러스터의 복제 노드들을 선택하고 할당하는 방법을 보여준다.
도 2a를 참조하면, 제1 방식은 사용자 정의 구조 또는 시스템 정의 구조일 수 있는 링 구조(200a)와 관련된다. 링 구조(200a)는 선형 구조로 여겨질 수 있다. 시스템 정의 링 구조(200a)는 지리학 상의 "거리" 매개 변수들(예를 들어, 총 네트워크 지연에 대응하는 실효 거리에 기초한 지연 거리)에 기초될 수 있다. 도시된 논리적 링 구조(200a)는 주요 노드(110a)와 복제 노드들(110b) 사이에서 선호 순서를 정의한다. 캐싱은 링 구조(200a)에서 다른 복제 노드(110b)로 복제된 복사본을 가지는 로컬 SSD(140a)를 사용하여 수행될 수 있다. 각 노드(110)는 두 이웃 노드들(예를 들어, 각 주요 노드(110a)의 각 측면에 있는 복제 노드(110b))를 가지며, 복제된 데이터는 하나 또는 양쪽의 이웃하는 복제 노드들(110b)에 저장될 수 있다. 주요 노드(110b)는 지리학적 거리/지연 거리 순서로 복제 노드(110b)가 찾아질 때까지 링 구조(200a)의 복제 노드들(110b)을 검색한다. 이러한 검색은 링 클러스터(200a)를 구축하는 과정 동안 주요 노드(110a)가 성공적이지 않은 경우에 사용될 수 있다. 주요 노드가(110a)가 적합한 복제 노드(110b)를 찾으면, 주요 노드(110a)는 남아있는 복제 노드들(110b)이 하고 있는 것과 독립적으로 쓰기 캐싱을 시작할 수 있다.
도 2b는 본 발명의 실시 예에 따른 네트워크 구조를 사용하여 데이터센터 클러스터의 복제 노드들을 선택하고 할당하는 방법을 보여준다.
도 2b를 참조하면, 제2 방식은 네트워크 구조(200b)와 관련된다. 도 2a에 도시된 링 구조(200a)는 주요 노드(110a)가 복제 노드들(110b)을 찾기 위해 하나 또는 두개 방향들(예를 들어, 이전 복제 노드(110b) 또는 다음 복제 노드(110b))만 가지므로 효과적인 선형 접근 방식이다. 그러나, 도 2b에 도시된 네트워크 구조(200b)는 주요 노드(110a)를 더 많은 개수의 다른 복제 노드들(110b)에 접근하게 하여 추가적인 유연성을 제공한다. 추가 접근은 다른 노드들(110)이 선호 복제 노드들(110b)의 리스트를 유지하게 하여 달성될 수 있다. 또한, 네트워크 구조(220b)에 있는 클러스터 구조는 도시된 링과 같은 방향에 한정되지 않는다. 예를 들어, 네트워크 구조(200b)는 대칭 또는 비대칭일 수 있다.
네트워크 구조(200b)에 대한 구조화에 있어서, 거리 매트릭스(matrix)는 노드들(110)(아래의 표 1 참고) 사이의 각 경로에 대한 순위를 매기기 위해 사용될 수 있다. 이에 따라, 주요 노드(110a)로서 동작하는 각 노드(110)는 거리 매트릭스에 대응하는 순서에 기초하여 복수의 다른 복제 노드들(110b)을 사용하려고 할 수 있다.
각 노드(110)에 대한 거리 매트릭스는 복수의 매개 변수들에 기초하여 산출된 점수들 또는 순위들을 포함할 수 있다(예를 들어, 각 노드들(110) 사이의 네트워크 지연에 기초하여). 이러한 점수들/순위들은 앞에서 언급된 지리학적 거리/지연 거리의 추상적 의미를 효과적으로 반영한다. 거리 매트릭스는 실행시간 측정을 통해 주기적으로 업데이트될 수 있다.
본 실시 예에 따른 거리 매트릭스는 아래의 표 1에서 보여질 수 있다. 예를 들어, 주요 노드(110a)로서 제1 노드는 먼저 복제 노드(110b)로서 제2 노드를 사용할 수 있다. 제1 노드는 다음으로 제4 노드, 그 다음에는 제3 노드를 사용할 수 있다. 그러나, 주요 노드(110a)로서 제2 노드가 동작하는 경우, 제2 노드는 먼저 복제 노드(110b)로서 제4 노드를 사용할 수 있다. 제2 노드는 다음으로 제3 노드, 그 다음에는 제1 노드를 사용할 수 있다. 또한, 주요 노드(110a)로서 제3 노드가 동작하는 경우, 제3 노드는 복제 노드(110b)로서 초기에는 제4 노드, 다음으로 제2 노드, 그 다음으로 제1 노드를 사용할 수 있다. 반면에 주요 노드(110a)로서 제4 노드가 동작하는 경우, 제4 노드에 대한 순서는 제1 노드, 다음 제3 노드, 그 다음 제2 노드가 될 수 있다.
노드(to)
노드(from)
1 2 3 4
1 - 1 3 2
2 3 - 2 1
3 3 2 - 1
4 1 3 2 -
주요 노드(110a)로서 각 노드(110)에 대한 복제 노드들(110b)의 선호 순서를 할당하기 위해 다른 프로세스들이 사용될 수 있다. 예를 들어, 오직 하나의 복제 노드(110b)가 각 주요 노드(110a)에 대해 충분하면, 각 노드(110)는 복제 노드(110b)로서 가장 가까운 노드를 선택할 수 있다. 다른 예시로써, 많은 개수의 노드들(110)이 선호 복제 노드(들)(110b)로서 동일한 하나의 노드(110)를 선택하면(또는 노드들(110)의 작은 부분을 선택하면), 주요 노드당 최대 복제 노드들의 개수가 설정될 수 있다.
이에 따라, 네트워크 구조(200b)는 각 주요 노드(110a)가 오직 하나의 복제 노드(110b)를 갖고, 모든 노드들(110)이 동일한 하드웨어 리소스들(resources)을 갖도록(예를 들어, 동종 클러스터(homogeneous cluster)) 설정될 수 있다. 그러나, 네트워크 구조(200b)는 또한 다른 종류의 환경에서 작동할 수 있다.
본 발명의 다른 실시 예에 따르면, 복수의 서비스 수준 협약(SLA; service-level agreement) 네트워크 방식이 사용될 수 있다. 복수의 SLA 네트워크 방식은 데이터 일관성(consistency) 및 데이터 원자성(atomicity)을 더 보호하고 도 2b를 참조하여 설명된 이전의 네트워크 구조 방식을 향상시킨다. SLA는 서비스가 공식적으로 정의된 표준화된 서비스 계약의 일부분일 수 있다. 각 노드(110)는 복수 개의 복제 노드(110b)를 가질 수 있고, 복제 노드들(110b)은 작업부하 특성들 및 SLA에 기초하여(예를 들어, 특별대우는 구입될 수 있는 것과 같이, 대응하는 클라이언트 또는 고객이 얼마나 많이 지불하였는지 및 대응하는 작업부하 온도에 기초하여) 결정되거나 할당될 수 있다. 표 2는 다른 경우에서의 결정 표를 보여준다. 본 발명의 실시 예에 따르면, 표 2는 클러스터 복수의 SLA 네트워크 방식을 설정하기 위해 사용될 수 있다.
경우 추적 목적지 복제 개수
SLA 정도 온도 SSDP SSDR1 SSDR2 HDDP
1 V V V 1
2 V V 1
3 V V V V (V) 1(2)
4 V V V (V) 1(2)
SLA 정도는 각 노드(110)의 중요성의 수준을 할당하는 것과 관련될 수 있다. 본 실시 예는 복수의 복제 방식들을 사용하여 복수의 SLA 수준들을 다룰 수 있다. 본 발명의 실시 예는 오직 두 정도들(예를 들어, 중요 및 중요하지 않음)을 갖는다. 다른 실시 예에서는, 더 세분화된 SLA들의 정도들이 설정될 수 있다. 또한, 온라인에서 변화하는 SLA는 본 발명의 실시 예들에 채택될 수 있다.
추가적으로, "데이터 온도"는 데이터의 접근 빈도에 기초하여 데이터를 두 개(또는 그 이상)의 카테고리들로 분류(예를 들어, "뜨거운 데이터"는 빈번한 접근 패턴을 갖고, "차가운 데이터"는 가끔 문의됨)하기 위한 지표(indicator)로서 사용될 수 있다.
라이트백(write back) 정책은 SSD(140a)가 꽉 찾을 때 하나의 SSD(140a)로부터 다른 SSD(140a)로의 축출이 데이터를 간단하게 제거하도록 사용될 수 있다. SSD(140a)로부터 HDD(140b)로의 라이트백들에 영향을 주는 것을 피하고, HDD(140b)로부터 SSD(140a)로의 인출 동작들에 영향을 주는 것을 피하기 위해, 복제들이 HDD에 쓰여지기 위한 낮은 우선순위가 수립될 수 있다. 많은 기법들이 HDD 큐(queue)에 쓰기의 성능을 향상시키도록 채택될 수 있다.
캐시 정책의 주요한 절차는 복수의 SLA 네트워크 방식에 기초할 수 있다. 앞에서 설명한 바와 같이, 본 발명의 실시 예는 각 주요 노드(110a)에 대해 복수 개의 복제 노드(110b)를 지원할 수 있고, 본 발명의 실시 예는 더 세분화된 SLA들을 지원하기 위해 임의의 개수의 복제 노드들로 확장될 수 있다. 이에 따라, 본 발명의 실시 예들은 실행시간 모드 및 온라인 마이그레이션(migration) 모드라 명명되는 두 개의 다른 캐시 모드들 사이에서 전환할 수 있다.
데이터센터 클러스터(100)는 "마이그레이션 트리거(migration trigger)" 조건의 존재를 주기적으로 확인할 수 있다. "마이그레이션 트리거 " 조건이 존재하는 것으로 판별되면, 두 개의 복제 노드들(100b) 중 하나는 "과열 노드(overheat node)"로 선택될 수 있고, 다음 이용 가능한 복제 노드(110b)가 찾아진다. 그리고 나서, 마이그레이션 모드 캐시 정책이 시작될 수 있다. 오래된 복제 노드(110b)가 더 이상 어떠한 "구식의(out-of-date)" 복제 데이터를 포함하지 않는 것으로 판별된다면, 실행시간 모드 캐시 정책이 모든 다른 경우들에서 운영되는 반면에 마이그레이션 모드 캐시 정책은 종료될 수 있다.
표 2의 3번 및 4번 경우에, 가상 머신들(120)의 충돌들/고장들은 주로 SSD들(140a)에 있는 캐시된 데이터에 영향을 주고, HDD(140b)에 있는 데이터에 영향을 주지 않는 것으로 가정할 수 있다. 본 실시 예에 따른 캐시 정책에서, 캐시된 데이터가 HDD(140b)에 쓰여지는 단지 세 경우들이 존재한다(예를 들어, 라이트백 축출하는 동안, 마이그레이션 시간 동안, 그리고 대기(queued) 복제가 HDD(140b)에 쓰여지는 경우)
실행시간 모드 캐시 정책은 데이터센터 클러스터(100)의 보통 모드 또는 디폴트(default) 모드로서 여겨질 수 있다. 본 발명의 실시 예는 먼저 로컬 SSD 가상 머신 파티션에서(예를 들어, 주요 노드(110a)의 SSD(140a)에서) 새로운 입출력 요청을 찾을 수 있다. 캐시 히트(hit)가 반환되는 것으로 판별된다면, 데이터는 읽기 입출력 동작을 위해 주요 노드(110a)의 SSD(140a)로부터 인출될 수 있고, 또는 새로운 데이터는 주요 노드(110a)의 SSD(140a)에 있는 기존의 캐시된 복사본 및 하나 이상의 복제 노드들(110b)로 업데이트될 수 있다.
캐시 미스(miss)가 있는 것으로 판별되는 경우, 희생 데이터(victim data)는 초기에 주요 노드(110a) 및 복제 노드들(110b)로부터 축출되는 것으로 선택될 수 있다. 그리고 나서, 오직 업데이트된(더티)(dirty) 데이터가 주요 노드(110a)의 HDD(140b)로 쓰여질 수 있다. 다른 교체 알고리즘들은 희생 데이터 선택 프로세스의 구현을 위해 사용될 수 있다. 희생 데이터가 더티 데이터로 ?y별되면 선택된 희생 데이터는 주요 노드(110a)의 HDD(140b)로 라이트백(write back)될 수 있다. 즉, 희생 데이터는 HDD(140b)에서 업데이트 되지 않는 반면, SSD(140a)에서 업데이트될 수 있다. 그 후에, 희생 데이터의 모든 복사본들은 로컬 SSD들(140a) 및 원격의 SSD들(140a)로부터 삭제될 수 있다. 그리고 나서 새로운 데이터는 주요 노드(110a) 및 복제 노드(들)(110b) 양쪽으로 삽입될 수 있다.
상세하게, 희생 데이터가 읽기 입출력 동작에 대응한다면, 희생 데이터는 주요 노드(110a) 및 복제 노드들(110b)의 HDD(140b)로부터 SSD들(140a)로 간단하게 인출될 수 있다. 또한, 인출된 캐시된 데이터는 메모리에 있는 사용자 버퍼(buffer)로 반환될 수 있다. 희생 데이터가 쓰기 입출력 동작에 대응한다면, "더티" 데이터로서 표시되더라도 데이터가 새로운 데이터로 업데이트되기 때문에, 희생 데이터는 주요 노드(110a)의 SSD들(140a) 및 모든 대응하는 복제 노드들(110b)에 간단하게 쓰여질 수 있다.
도 3은 본 발명의 실시 예에 따른 온라인 마이그레이션 캐시 정책(online migration cache policy)을 나타내는 블록도이다.
도 3을 참조하면, 하나의 복제 노드(110b)로부터 다른 복제 노드(110b)에 복제 데이터를 이송하는 경우, 퓨전 캐시 기법(300)이 사용될 수 있다. 퓨전 캐시 기법(300)은 비용 효율적, 느린 마이그레이션 기법이다. 이에 따라, S301 단계에서, 새롭게 들어오는 데이터(360)는 오직 새로운 복제 노드(예를 들어, 제2 복제 노드)(110b2)로 쓰여질 수 있고, S302 단계에서, 변경되지 않는 캐시된 데이터/희생 데이터(370)는 오래된 복제 노드(예를 들어, 제1 복제 노드)(110b1)에서 유지될 수 있다. 이에 따라, 본 실시 예는 두 노드들(예를 들어, 새로운 복제 노드(110b2) 및 오래된 복제 노드(110b1))로 구성된 퓨전 캐시(380)를 사용하여 주요 노드(110a)를 반영할 수 있다. 오래된 복제 노드(110b1)로부터 새로운 복제 노드(110b2)로 모든 기존의 복제 데이터 조각들의 복사를 수행하는 동안 시스템을 중지하지 않음으로써(이러한 데이터 조각들이 필요로 될지 여부에 관계없이), 제안된 퓨전 캐시는 시스템 대역폭을 줄일 수 있다.
도 3은 본 실시 예가 복제 노드(110b)에서 HDD(140b)의 사용을 포함하여 더 많은 복제 노드들(110b)이 존재하는 시스템/데이터센터 클러스터(100)에 적용될 수 있지만, 오직 하나의 복제 노드(예를 들어, 오래된 복제 노드(110b1))가 이송되는 데이터(370)를 수신하는 새로운 복제 노드(110b2)와 함께 이송하는 것을 보여준다. 주요 노드(110a)는 기존의 데이터 조각/희생 데이터(370)를 새로운 복제 노드(110b2)로 이송시킬 수 있다. S303 단계에서, 새로운 데이터(360)가 주요 노드(110a)로 들어오는 경우, S304 단계에서, 희생 데이터(370)는 먼저 주요 노드(110a)의 SSD(140a)로부터 축출될 수 있고, S305 단계에서, 새로운 데이터(360)는 주요 노드(110a)의 HDD(140b)로 쓰여질 수 있다. 반면에, S301 단계에서, 새로운 데이터(360)는 또한 새로운 복제 노드(110b2)에 쓰여질 수 있고, S306 단계에서, 오래된 복제 노드(110b1)는 SSD(140a)로부터 희생 데이터(370)를 간단하게 제거하도록 지시될 수 있다. 퓨전 캐시(380)는 새로운 복제 노드(110b2)의 일체형(unibody)이고, 오래된 복제 노드(110b1)는 주요 노드(110b)를 반영한다. 새로운 복제 노드(110b2)는 결국에 오래된 복제 노드(110b1)를 대체한다.
온라인 마이그레이션 모드 캐시 정책(300)을 사용함으로써, 남아있는 복제 노드(110b)가 주요 노드(110a)에 의해 사용되는 복제 노드(110b)로서 남아 있을 수 있더라도(새로운 복제 노드(110b2)와 마찬가지로), 데이터는 오래된 복제 노드(110b1)로부터 새로운 복제 노드(110b2)로 이송될 수 있다. 두 개의 SSD 복제 노드 프로토타입(prototype)에 대해, 복제 노드들(110b1, 110b2)은 마이그레이션 소스들이 될 수 있다.
도 4a-4d는 본 발명의 하나 이상의 실시 예들에 따른 다른 상황에서의 데이터 회복을 나타내는 블록도들이다.
본 발명의 실시 예들은 HDD(140b)에로의 쓰기가 큐에서 인출 입출력 동작들을 느리게 함에 따라 입출력 성능을 최대화 하기 위해 라이트백 캐싱 정책을 사용할 수 있다. 그러나, SSD(140a)에 있는 스토리지는 SSD 스토리지가 정전 후에 저장된 데이터를 보존함에도 불구하고, 상대적으로 안전하지 않을 수 있다. 이러한 안전의 부족은 몇몇의 상황들(예를 들어, 은행 데이터베이스들, 주식 시장 데이터베이스들, 및 군용 데이터베이스들)에서 받아드릴 수 없다. 이에 따라, 다른 고장들에 대한 회복을 준비하기 위해 데이터는 원격의 SSD들(140a)에서 복제될 수 있다. 고장들의 가능한 유형들은 각각 도 4a 내지 도 4d에 대해 설명되는 네 가지 시나리오들로 분류될 수 있다.
도 4a를 참조하면, 제1 회복 시나리오는 "주요 노드에서의 가상 머신 충돌" 시나리오(400a)라고 할 수 있다. 본 시나리오(400a)에서, VMDK는 간단하게 종료될 수 있다. 그리고 나서, S1401 단계에서, "더티" 데이터는 주요 노드(110a)의 SSD(140a)로부터 주요 노드(110a)의 HDD(140b)로 라이트백될 수 있다. S1402 단계에서, "논더티(nondirty)"로서 표시될지라도 더티 데이터는 복제 노드(110b)의 SSD(140a)에서 유지될 수 있다. 충돌된 가상 머신은 주요 노드(110a)에서 재시작될 수 있고, S1403 단계에서, 들어오는 입출력 요청들은 주요 노드(110a)의 SSD(140a) 및 복제 노드(110b)의 SSD(140a) 양쪽으로 계속하여 전달될 수 있다.
도 4b를 참조하면, 제2 회복 시나리오가 쓰기 캐싱을 지속할 수 없는 결과를 가져오는 "주요 노드 캐시 스토리지 장치 고장" 시나리오(400b)라고 할 수 있다. 본 시나리오(400b)에서, S2401 단계에서, 먼저 "더티" 데이터는 복제 노드(110b)의 SSD(140a)로부터 주요 노드(110a)의 HDD(140b)로 라이트백되고, "논더티"로서 표시될지라도 복제 노드(110b)의 SSD(140a)에서 데이터가 유지될 수 있다. S2402 단계에서, 이러한 "이용 가능하지 않은" 정보는 "논더티" 표시로 SSD(140a)에 해당 데이터를 유지하면서 이러한 고장이 난 주요 노드(110a)(예를 들어, 노드들(110c)와 연관된)에서의 복제들을 가지고 있는 노느들(110)이 해당 노드의 SSD(140a)로부터 HDD(140b)로 "더티" 데이터를 라이트백 하도록 하기 위해 데이터센터 클러스터(100)로 브로드캐스트(broadcast)된다. S2403 단계에서, 주요 노드(110a)에 있는 SSD(140a)는 검색되고 교체된다. 그 이후, S2405 단계에서, 연관된 노드들(110c)이 새로운 복제들을 주요 노드(110a)의 SSD(140a)에 쓰는 반면, S2404 단계에서, 들어오는 입출력 요청들은 주요 노드(110a)의 SSD(140a) 및 복제 노드(110b)의 SSD(140a) 양쪽에 계속하여 쓰여질 수 있다.
도 4c를 참조하면, 제3 회복 시나리오(400c)는 S3401 단계에서, 오래된 복제 노드(110b1)가 캐시 장치/SSD(140a) 고장을 감지하는 경우에 대응한다. 본 발명의 실시 예에서, 주요 노드(110a)는 연결되지 않고, 주요 노드(110a)로부터의 어떠한 연결 시도들이 에러 응답에 의해 거절된다. 먼저, S3402 단계에서, "더티" 데이터는 주요 노드(110a)의 SSD(140a)로부터 주요 노드(110a)의 HDD(140b)로 라이트백된다. S3403 단계에서, 해당 데이터는 또한 "논더티" 표시 데이터로서 표시되더라도, 원격의 새로운 복제 노드(110b2)의 SSD(140a)에 저장되고, 해당 데이터는 동적 평가 프로세스(dynamic evaluation process)를 사용하여 검색될 수 있다. 그 후에, S3404 단계에서, 들어오는 입출력 요청들은 주요 노드(110a)의 SSD(140a) 및 새로운 복제 노드(110b2)의 SSD(140a) 양쪽으로 계속하여 쓰여진다.
도 4d를 참조하면, 제4 회복 시나리오(400d)는 주요 노드(110a)와 오래된 복제 노드(110b1) 사이의 통신 고장에 대응한다. S4401 단계에서, 주요 노드(110a)가 주요 노드(110a)의 주요 호스트와 복제 노드(110b1)의 복제 호스트 사이에 회복할 수 없는 통신 고장을 감지하는 경우, 쓰기 캐싱을 계속하는 것은 가능하지 않을 수 있다. 이러한 고장으로부터 회복하기 위해, S4402 단계에서, 데이터센터 클러스터(100)의 데몬(daemon)은 모든 캐시된 데이터가 백엔드 HDD(140b)로 업데이트 되는 것을 보장하기 위해 주요 노드(110a)의 SSD(140a)로부터 주요 노드(110a)의 HDD(140b)로 "더티" 데이터를 다시 쓸 수 있다. S4403 단계에서, 데몬은 새로운 복제 호스트를 찾기 위해, 그리고 도달할 수 없는 오래된 복제 노드(110b1)를 교체하기 위한 새로운 복제 노드(110b2)를 찾기 위해 동적 평가 프로세스를 시작할 수 있다. S4404 단계에서, 데몬은 마이그레이션 정책에서의 "퓨전 캐시" 설계를 따르는 입출력들을 캐시하기 위해 주요 노드(110a) 및 새로운 복제 노드(110b2)의 SSD들(140a)을 계속해서 사용한다. 마지막으로, 데몬은 도달할 수 없는 복제 노드(110b1)의 SSD(140a)에 있는 모든 오래된 복제들을 배포하기 위해 네트워크로 브로드캐스트할 수 있다.
도 5는 본 발명의 실시 예에 따른 복수의 노드들로부터 병렬의 선인출(prefetching)을 가능하게 하는 복제 데이터를 사용하는 예시를 나타내는 블록도이다.
도 5를 참조하면, 복제된 데이터는 복수의 노드들(110)로부터 병렬의 선인출(500)이 가능하도록 사용될 수 있다(예를 들어, 읽기 동작들을 위해). 본 발명의 실시 예에서, 데이터(예를 들어, 데이터집합의 데이터)(590)는 두 부분들(590a, 590b)로 분리되고, 데이터(590)의 각 부분은 대응하는 주요 노드(110a)와 복제 노드(110b)로부터 로드(load)될 수 있다.
예를 들어, 두 노드의 경우, 총 입출력 시간(예를 들어, 각 입출력 요청의 총 완료 시간(makespan))을 감소시키는데 유용할 수 있다. 병렬의 선인출(500)의 총 완료 시간은 단순히 주요 노드(110a)로부터 전체 데이터를 읽는 시간보다 작다. 본 발명의 실시 예에서, 데이터(590)의 총 크기는 "C"이고, 주요 노드(110a)의 SSD(140a)의 접근 속도는 "λ1"(예를 들어, GB/sec에서)이고, 복제 노드(110b)의 SSD(140a)의 접근 속도는, 네트워크 지연을 고려하더라도, "λ2"(예를 들어, GB/sec에서)이다. "αC" 크기를 갖는 주요 노드(110a)의 SSD(140a)의 데이터가 로드된다고 가정하면, αC/λ1 및 (1-α)C/λ2 사이의 최대값을 결정함으로써 문제는 해결될 수 있다. 여기서 α는 0과 1 사이이고, λ1≥λ2>0이고, C/λ1는 αC/λ1 및 (1-α)C/λ2 사이의 최대값 이상이다.
αC/λ1 및 (1-α)C/λ2 사이의 최대값을 결정하는 것은 입출력 요청의 총 완료 시간을 감소시키거나 최소화하기 위한 목적 함수를 보여준다. 이러한 총 완료 시간은 병렬의 선인출과 관련된 각 노드(예를 들어, 주요 노드 및 복제 노드)의 입출력 동작 시간의 최대 값에 의해 결정될 수 있다. 또한, λ1≥λ2>0을 보장함으로써, 로컬 입출력 속도(예를 들어, 주요 노드와 연관된 속도)는 원격의 입출력 속도(예를 들어, 복제 노드와 연관된 속도)보다 클 수 있다. 각 노드들과 연관된 속도들은 네트워크 지연을 고려하거나 포함할 수 있다. 또는, 제약 사항은 간단하게 λ1>0 및 λ2>0일 수 있다(예를 들어, 복제 노드와 연관된 원격의 입출력 속도가 주요 노드와 연관된 입출력 속도보다 빠르다면, 하지만 최적화된 결과는 동일하게 남는다). 추가적으로, αC/λ1 및 (1-α)C/λ2의 최대값 이상인 C/λ1을 가짐으로써, 병렬의 선인출은 총 완료 시간의 감소 결과가 되는 경우 유발될 수 있다.
도 6은 본 발명의 실시 예에 따른 스트림 분할(stream division)의 최적화된 솔루션(solution)을 찾기 위한 수학식을 나타내는 그래프이다.
도 6을 참조하면, 앞에서 언급된 함수들, 제약 사항들, 그리고 수학식들은 그래프로 나타내질 수 있다. 도 6의 선들(601, 602)은 목적 함수 곡선을 나타내고, 선(605)은 C/λ1을 나타낸다. 도 6에 도시된 바와 같이, 최소점은 선(601)과 선(602)이 교차하는 지점에서 발생한다. 이에 따라, 최소점은 αC/λ1 (1-α)C/λ2와 같아지게 설정함으로써 결정될 수 있다. 그 후에, α가 λ112 (즉, 선(604))와 동일할 때 최소의 총 완료 시간은 C/λ12 (즉, 선(603))로 결정될 수 있다(.
이에 따라, 병렬의 선인출 정책은 결정될 수 있다. 본 발명의 몇몇 실시 예들에 따르면, 병렬의 인출 데몬은 병렬의 선인출을 유발하기 위해 사용될 수 있다. 병렬의 인출 데몬은 복제 노드의 SSD의 접근 속도(네트워크 지연을 포함하는)가 주요 노드의 로컬 SSD의 접근 속도와 대략적으로 같은지 여부를 미리 설정된 임계 값과 접근 속도들의 차이를 비교함으로써 주기적으로 확인할 수 있다. 병렬의 인출 데몬은 또한 복제 노드의 SSD의 처리율의 현재 활용 비율이 주어진 동작 임계 값보다 작은지 여부를 확인할 수 있고, 이러한 모든 조건들이 만족되면 병렬의 선인출을 승인/유발할 수 있다.
또한, 병렬의 인출 데몬은 데이터센터 클러스터의 각 노드로부터 로드된 데이터의 분기 비율을 산출할 수 있고, 노드들로부터 읽기를 시작하기 전에 각 노드에 분기 비율을 할당할 수 있다. 이에 따라, 본 발명의 실시 예들은 두 개 초과의 소스(source) 노드들을 수반하는 병렬의 인출 경우로 더 확장될 수 있다. 마지막으로, 본 발명의 실시 예들은 추가적인 동기화 기법들을 가지고 병렬의 쓰기 동작들을 실행할 수 있다.
이에 따라, 앞에서 설명된 본 발명의 실시 예들에 의해 제공되는 솔루션들은 분산된 캐싱을 위해 설계된 데이터 복제 관리자를 제공하고, SSD-HDD 계층 스토리지 시스템들을 사용하여 데이터 처리 시스템들을 제공한다. 본 발명의 실시 예들은 SSD 공간에서 성능을 향상시키면서 고장들로부터 효과적으로 회복할 수 있도록 복제 노드들에 캐시들을 저장함으로써 고장 감내 능력(ability of fault tolerance)을 향상시킨다. 또한, 본 발명의 실시 예들은 네트워크 지연 및 스토리지 접근 지연을 고려하는 중요성 정도, 작업 부하 온도, 그리고 추상적 거리 매트릭스에 기초하여 복제 노드들을 선택하고 복수의 SLA들을 지원하는 복제 클러스터 아키텍쳐를 구축하기 위한 적어도 세 개의 방식들을 제공한다.
본 발명의 실시 예들은 노드들 사이에서 자동적으로 로드 밸런싱(load-balancing)을 수행하고, 서브시스템을 중지하지 않고 하나의 노드로부터 다른 노드로 전체 데이터집합을 복사하지 않고 균일하게 온라인 마이그레이션 동작을 수행할 수 있다. 그러므로 설명된 실시 예들은 클러스터 캐싱 시스템들의 고장 감내 능력을 향상시키고, 네 가지 다른 고장 시나리오들로부터 성공적인 회복을 하게한다. 본 발명의 실시 예들은 또한 각 입출력 경로에 대해 최적화된 선인출 솔루션으로 주요 노드 및 복제 노드(들) 양쪽으로부터 병렬의 선인출을 하게한다.

Claims (10)

  1. 데이터 스토리지(storage) 방법에 있어서,
    주요 노드(node)로부터 두 개 이상의 복제 노드들 각각에 대한 지연 거리를 결정하는 단계;
    상기 결정된 지연 거리들에 기초하여 상기 두 개 이상의 복제 노드들 중 선호 복제 노드를 선택하는 단계; 그리고
    상기 선호 복제 노드로 데이터를 쓰기 캐시(cache)하는 단계를 포함하는 데이터 스토리지 방법.
  2. 제 1 항에 있어서,
    상기 주요 노드로서 데이터센터 클러스터의 각 노드는 상기 주요 노드와 상기 복제 노드들 중 각각의 노드 사이의 경로들과 연관된 네트워크 지연들에 기초하여 순위가 매겨진 선호 복제 노드들의 순위를 포함하고,
    상기 데이터센터 클러스터의 각 노드는,
    로컬 가상 머신들의 데이터를 저장하기 위한 캐시 파티션(partition) 및 다른 노드들로부터 복제 데이터를 저장하기 위한 복제 파티션을 포함하는 캐시 계층으로서 솔리드 스테이트 드라이브(SSD) 계층, 그리고
    백엔드(back end) 스토리지 계층으로서 하드 디스크 드라이브(HDD) 계층을 포함하는 데이터 스토리지 방법.
  3. 제 2 항에 있어서,
    상기 데이터센터 클러스터의 각 노드는 복수의 가상 머신들을 운영하기 위한 물리적 호스트(host), 상기 데이터센터 클러스터의 각 노드에서 상기 솔리드 스테이트 드라이브 계층 및 상기 하드 디스크 드라이브 계층을 공유하는 상기 가상 머신들 각각을 포함하고,
    네트워크 지연들의 변화들을 반영하기 위해 주기적으로 상기 선호 복제 노드들의 상기 순위를 업데이트하는 단계를 더 포함하는 데이터 스토리지 방법.
  4. 제 2 항에 있어서,
    상기 선호 복제 노드들의 상기 순위는 상기 선호 복제 노드들과 연관된 데이터의 접근 빈도 및 상기 선호 복제 노드들과 연관된 서비스 수준 협약들(SLA; service level agreement)을 포함하는 작업부하 특성들에 기초하는 데이터 스토리지 방법.
  5. 데이터센터 클러스터 캐싱 시스템의 고장 감내 능력(fault tolerance)을 가능하게 하는 동작 방법에 있어서,
    상기 데이터센터 클러스터의 고장을 감지하는 단계; 그리고
    상기 감지된 고장에 따라 상기 데이터센터 클러스터의 노드들의 스토리지 계층들 사이에서 데이터를 이동시킴으로써 상기 노드들 사이의 로드 밸런싱(load balancing)을 수행하는 단계를 포함하고,
    상기 로드 밸런싱은 상기 감지된 고장에 대응하는 서브시스템을 중지하지 않고, 상기 감지된 고장에 대응하는 상기 데이터센터 클러스터의 노드의 전체 데이터집합을 복사하지 않고 수행되는 동작 방법.
  6. 제 5 항에 있어서,
    상기 데이터센터 클러스터에 있는 제1 복제 노드로부터 상기 데이터센터 클러스터에 있는 제2 복제 노드로 복제 데이터를 이송하는 단계를 더 포함하되,
    상기 복제 데이터를 이송하는 단계는,
    새롭게 들어오는 데이터를 상기 제2 복제 노드에 쓰고
    변경되지 않은 캐시된 데이터를 상기 제1 복제 노드에서 유지함으로써 수행되는 동작 방법.
  7. 제 5 항에 있어서,
    상기 감지된 고장은 상기 데이터센터 클러스터의 주요 노드에서의 가상 머신 충돌을 포함하고,
    상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티(dirty) 데이터를 쓰는 단계,
    상기 더티 데이터를 복제 노드의 솔리드 스테이트 드라이브에 유지하는 단계,
    상기 복제 노드의 솔리드 스테이트 드라이브에 있는 상기 더티 데이터를 논더티(nondirty)로 표시하는 단계,
    상기 주요 노드에 있는 상기 충돌된 가상 머신을 재시작하는 단계, 그리고
    들어오는 입출력 요청들을 상기 주요 노드의 상기 솔리드 스테이트 드라이브 및 상기 복제 노드의 상기 솔리드 스테이트 드라이브로 전달하는 단계를 더 포함하는 동작 방법.
  8. 제 5 항에 있어서,
    상기 감지된 고장은 정보가 상기 주요 노드에 쓰여질 수 없는 상기 데이터센터 클러스터의 주요 노드에서의 캐시 장치 고장을 포함하고,
    상기 데이터센터 클러스터의 복제 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 쓰는 단계,
    상기 더티 데이터를 상기 복제 노드의 상기 솔리드 스테이트 드라이브에서 유지하는 단계,
    상기 더티 데이터를 논더티로 표시하는 단계,
    상기 정보를 상기 데이터센터 클러스터의 관련된 노드들로 브로드캐스팅(broadcasting)하는 단계, 그리고
    상기 데이터센터 클러스터의 상기 관련된 노드들의 각 솔리드 스테이트 드라이브들로부터 상기 관련된 노드들의 각 하드 디스크 드라이브들로 더티 데이터를 라이트백(write back)하는 단계를 더 포함하는 동작 방법.
  9. 제 5 항에 있어서,
    상기 감지된 고장은 상기 데이터센터 클러스터의 제1 복제 노드에서의 캐시 장치 고장을 포함하고,
    상기 데이터센터 클러스터의 주요 노드의 연결을 끊는 단계,
    상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 라이트백하는 단계,
    상기 데이터센터 클러스터의 원격의 제2 복제 노드를 검색하는 단계,
    상기 더티 데이터를 상기 제2 복제 노드의 솔리드 스테이트 드라이브에 저장하는 단계,
    상기 더티 데이터를 상기 제2 복제 노드의 상기 솔리드 스테이트 드라이브에서 논더티로 표시하는 단계, 그리고
    들어오는 입출력 요청들을 상기 주요 노드의 상기 솔리드 스테이트 드라이브 및 상기 제2 복제 노드의 상기 솔리드 스테이트 드라이브에 계속하여 쓰는 단계를 더 포함하는 동작 방법.
  10. 제 5 항에 있어서,
    상기 감지된 고장은 상기 데이터센터 클러스터의 주요 노드와 상기 데이터센터 클러스터의 제1 복제 노드 사이의 통신 실패를 포함하고,
    상기 주요 노드의 솔리드 스테이트 드라이브로부터 상기 주요 노드의 하드 디스크 드라이브로 더티 데이터를 라이트백하는 단계,
    상기 제1 복제 노드를 대체할 제2 복제 노드를 찾는 단계,
    상기 주요 노드의 솔리드 스테이트 드라이브 및 상기 제2 복제 노드의 솔리드 스테이트 드라이브에 입출력 요청들을 쓰는 단계, 그리고
    상기 제1 복제 노드에 대응하는 모든 오래된 복제 데이터를 배포하기 위해 상기 데이터센터 클러스터의 모든 노드들로 요청을 브로드캐스팅하는 단계를 더 포함하는 동작 방법.
KR1020170117395A 2016-10-04 2017-09-13 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법 KR102245309B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662404167P 2016-10-04 2016-10-04
US62/404,167 2016-10-04
US15/408,328 US10455045B2 (en) 2016-09-06 2017-01-17 Automatic data replica manager in distributed caching and data processing systems
US15/408,328 2017-01-17

Publications (2)

Publication Number Publication Date
KR20180037571A true KR20180037571A (ko) 2018-04-12
KR102245309B1 KR102245309B1 (ko) 2021-04-27

Family

ID=61969147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170117395A KR102245309B1 (ko) 2016-10-04 2017-09-13 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법

Country Status (1)

Country Link
KR (1) KR102245309B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737252A (zh) * 2020-05-22 2020-10-02 广东科学技术职业学院 基于数据中心的数据融合方法及系统
CN112748881A (zh) * 2021-01-15 2021-05-04 长城超云(北京)科技有限公司 一种面向虚拟化场景的存储容错方法和集群系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048996B1 (en) * 2015-09-29 2018-08-14 Amazon Technologies, Inc. Predicting infrastructure failures in a data center for hosted service mitigation actions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048996B1 (en) * 2015-09-29 2018-08-14 Amazon Technologies, Inc. Predicting infrastructure failures in a data center for hosted service mitigation actions

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737252A (zh) * 2020-05-22 2020-10-02 广东科学技术职业学院 基于数据中心的数据融合方法及系统
CN111737252B (zh) * 2020-05-22 2023-10-03 广东科学技术职业学院 基于数据中心的数据融合方法及系统
CN112748881A (zh) * 2021-01-15 2021-05-04 长城超云(北京)科技有限公司 一种面向虚拟化场景的存储容错方法和集群系统
CN112748881B (zh) * 2021-01-15 2024-02-20 长城超云(北京)科技有限公司 一种面向虚拟化场景的存储容错方法和集群系统

Also Published As

Publication number Publication date
KR102245309B1 (ko) 2021-04-27

Similar Documents

Publication Publication Date Title
US11811895B2 (en) Automatic data replica manager in distributed caching and data processing systems
US8195777B2 (en) System and method for adding a standby computer into clustered computer system
US20190236008A1 (en) Server-based persistence management in user space
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
CN110998557A (zh) 通过分布式存储器的高可用性数据库
US20170031825A1 (en) Direct Host-To-Host Transfer for Local Caches in Virtualized Systems
US11579992B2 (en) Methods and systems for rapid failure recovery for a distributed storage system
US7386664B1 (en) Method and system for mirror storage element resynchronization in a storage virtualization device
KR102245309B1 (ko) 데이터 스토리지 방법 및 데이터센터 클러스터 캐싱 시스템의 동작 방법
US20220121382A1 (en) System and method for segmenting volumes across a multi-node storage system
US10169157B2 (en) Efficient state tracking for clusters
CN112292661A (zh) 扩展分布式存储系统
US11194501B2 (en) Standby copies withstand cascading fails
CN112748865B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US20200034044A1 (en) Implementing coherency and page cache support for a storage system spread across multiple data centers
KR20230088215A (ko) 분산 스토리지 시스템
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
US20240256128A1 (en) System and Method for Managing Data Portion Ownership in a Storage Cluster
US11221948B2 (en) Coordinated reclaiming of data storage space
US20230185822A1 (en) Distributed storage system
WO2017122043A1 (en) Cloud scalable storage with local memory performance
Wang et al. Lightweight Replication Through Remote Backup Memory Sharing for In-memory Key-Value Stores

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant