KR20170093367A - 데이터 가용성 지원 시스템 및 방법 - Google Patents
데이터 가용성 지원 시스템 및 방법 Download PDFInfo
- Publication number
- KR20170093367A KR20170093367A KR1020160014658A KR20160014658A KR20170093367A KR 20170093367 A KR20170093367 A KR 20170093367A KR 1020160014658 A KR1020160014658 A KR 1020160014658A KR 20160014658 A KR20160014658 A KR 20160014658A KR 20170093367 A KR20170093367 A KR 20170093367A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file
- virtualization server
- log
- update data
- Prior art date
Links
Images
Classifications
-
- G06F17/30368—
-
- G06F17/30144—
-
- G06F17/302—
-
- G06F17/30218—
-
- G06F17/30557—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명의 목적은, 랜덤 액세스 메모리를 기반으로 하는 가상화 서버에서의 데이터 가용성을 지원하기 위해, 로컬 디스크를 활용하여 갱신 데이터의 로그를 관리할 수 있는, 데이터 가용성 지원 시스템 및 방법을 제공하는 것이다. 이를 위해, 본 발명에 따른 데이터 가용성 지원 시스템은, 가상 머신이 실행되는 가상화 서버; 및 상기 가상화 서버와 네트워크로 연결되며, 가상 디스크 파일을 저장하는 분산 파일시스템을 포함하고, 상기 가상화 서버는 랜덤 엑세스 메모리를 입출력 처리를 위한 호스트 측면 캐시로 이용하며, 상기 가상화 서버는 상기 랜덤 액세스 메모리에 저장되는 갱신 데이터를 상기 가상화 서버의 로컬 디스크에 갱신 데이터 로그 파일로 저장한다.
Description
본 발명은 분산 파일시스템의 클라이언트를 기반으로 하여, 데이터 가용성을 지원하는 시스템 및 방법에 관한 것이다.
가상 데스크탑 서비스를 지원하는 호스트 서버(가상화 서버)는 다수의 가상 머신을 운용하며, 가상 머신 마다 데스크탑의 운영 체제가 설치되는 가상 디스크가 구비된다.
가상 디스크 파일은 SAN(Storage Area Network) 스토리지 또는 네트워크 기반의 분산 파일시스템에 영구적으로 저장된다.
가상 데스크탑으로부터 하이퍼바이저를 통해, 가상 디스크 파일로 전달되는 입출력 요청들은, 랜덤 입출력 특성이 강하다. 따라서, 물리적으로 데이터가 저장되는 저장 장치로, 다수의 파일들에 대한 입출력 요청이 혼합되는, IO blending 현상이 발생한다. 상기 현상은 하드디스크 드라이브와 같은 저장 장치들에 상당한 부하를 주어, 저장 장치의 입출력 성능을 저하시킨다.
이러한 입출력 성능 저하 문제를 해결하기 위해, 가상화 서버에 캐시 공간을 제공하여, 자주 접근되는 데이터나 작은 랜덤 쓰기 데이터를 저장하는 기술이 널리 활용되고 있다.
이 경우, 고가의 비휘발성 메모리(NVRAM)나 낸드 플래시 기반의 고속 입출력 장치(SSD)가, 호스트 측면 캐시로서 이용된다.
이와 관련하여, 한국공개특허공보 제2009-0098110호(발명의 명칭: 서버 가상화 장치)는 반가상화 기술에 하드웨어 가상화 지원 기술을 결합하여 성능을 개선한 서버 가상화 장치를 개시하고 있다.
본 발명의 실시예는 랜덤 액세스 메모리를 기반으로 하는 가상화 서버에서의 데이터 가용성을 지원하기 위해, 로컬 디스크를 활용하여 갱신 데이터의 로그를 관리할 수 있는, 데이터 가용성 지원 시스템 및 방법을 제공하고자 한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 목적을 달성하기 위한 기술적 수단으로서, 본 발명에 따른 데이터 가용성 지원 시스템은 가상 머신이 실행되는 가상화 서버; 및 상기 가상화 서버와 네트워크로 연결되며, 가상 디스크 파일을 저장하는 분산 파일시스템을 포함하고, 상기 가상화 서버는 랜덤 엑세스 메모리를 입출력 처리를 위한 호스트 측면 캐시로 이용하며, 상기 가상화 서버는 상기 랜덤 액세스 메모리에 저장되는 갱신 데이터를 상기 가상화 서버의 로컬 디스크에 갱신 데이터 로그 파일로 저장한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 가상 머신을 운용하는 가상화 서버의 랜덤 엑세스 메모리를 호스트 측면 캐시로 활용할 수 있으며, 상기 가상화 서버의 로컬 디스크를 로그 저장소로 활용하여, 캐시 공간에 저장되는 갱신 데이터를, 오프셋을 기반으로 독립적인 갱신 데이터 로그 파일에 동기화 방식으로 저장하여 관리할 수 있다.
따라서, 본 발명에 의하면, 캐시 공간에 저장 중인 갱신 데이터를 네트워크 기반의 영구 스토리지 공간에 저장시킬 수 없는 장애 상황, 예를 들어, 정전 등과 같은 장애 상황에서도, 데이터의 가용성이 보장될 수 있다.
예를 들어, 상기한 바와 같은 장애 상황에서, 가상화 서버가 재 기동될 때, 캐시 공간에 저장되었던 데이터는 손실되었지만, 로컬 디스크의 갱신 데이터 로그 파일에 저장되어 있는 데이터가 활용될 수 있기 때문에, 데이터 가용성이 보장될 수 있다.
또한, 로그 저장소의 효율적인 운용을 위해, 본 발명에서는, 갱신 데이터 로그 파일이, 캐시 공간에서 관리되는 버킷 식별자별로 독립적인 파일로서, 생성, 저장 및 삭제될 수 있다. 또한, 본 발명은 갱신 데이터 로그 파일의 크기에 제한을 설정하여, 갱신 데이터 로그 파일을 캐시 공간의 갱신 데이터와 동기화시킬 수 있다. 이에 따라, 갱신 데이터 로그 파일을 저장하는 공간이 효율적으로 관리될 수 있다.
도 1은 본 발명에 따른 데이터 가용성 지원 시스템의 일실시예 구성도.
도 2는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 호스트 측면 캐시와 로컬 디스크의 구성을 나타낸 예시도.
도 3은 데이터 가용성 지원이 없는 경우에 분산 파일시스템의 비동기 입출력 처리 방법을 나타낸 예시도.
도 4a는 본 발명에 따른 데이터 가용성 지원 시스템에서의 갱신 로그 기반의 비동기 입출력 처리 방법을 나타낸 예시도.
도 4b는 본 발명에 따른 데이터 가용성 지원 시스템에서의 캐시 데이터 연동 갱신 로그 처리 방법을 나타낸 예시도.
도 5a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버의 장애 시의 갱신 데이터 로그 파일 및 가상 디스크 파일의 상태를 나타낸 예시도.
도 5b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 상태를 나타낸 예시도.
도 6a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 볼륨 데이터를 복구하는 방법을 나타낸 흐름도.
도 6b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 복구 쓰레드를 수행하는 방법을 나타낸 흐름도.
도 2는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 호스트 측면 캐시와 로컬 디스크의 구성을 나타낸 예시도.
도 3은 데이터 가용성 지원이 없는 경우에 분산 파일시스템의 비동기 입출력 처리 방법을 나타낸 예시도.
도 4a는 본 발명에 따른 데이터 가용성 지원 시스템에서의 갱신 로그 기반의 비동기 입출력 처리 방법을 나타낸 예시도.
도 4b는 본 발명에 따른 데이터 가용성 지원 시스템에서의 캐시 데이터 연동 갱신 로그 처리 방법을 나타낸 예시도.
도 5a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버의 장애 시의 갱신 데이터 로그 파일 및 가상 디스크 파일의 상태를 나타낸 예시도.
도 5b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 상태를 나타낸 예시도.
도 6a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 볼륨 데이터를 복구하는 방법을 나타낸 흐름도.
도 6b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 복구 쓰레드를 수행하는 방법을 나타낸 흐름도.
본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게 알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다.
한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.
도 1은 본 발명에 따른 데이터 가용성 지원 시스템의 일실시예 구성도이다.
본 발명은 랜덤 액세스 메모리를 기반으로 하는 호스트 측면 캐시를 이용하는 가상화 서버(100)에서의 데이터 가용성을 지원하기 위해, 상기 가상화 서버(100)의 로컬 디스크(600)를 활용하여 갱신 데이터의 로그를 관리한다.
즉, 본 발명은 가상 머신을 운용하는 가상화 서버(100)의 랜덤 엑세스 메모리(500)를 호스트 측면 캐시(510)로 활용할 수 있으며, 상기 랜덤 엑세스 메모리(500)에 저장되는 갱신 데이터를 갱신 데이터 로그 파일에 동기화시킨 후, 상기 갱신 데이터 로그 파일을 상기 가상화 서버(100)의 로컬 디스크(600)에 저장하여 관리할 수 있다.
이를 위해, 본 발명에 따른 데이터 가용성 지원 시스템은, 도 1에 도시된 바와 같이, 가상 머신(200)이 실행되는 가상화 서버(100) 및 상기 가상화 서버(100)와 네트워크로 연결되며, 가상 디스크 파일을 저장하는 분산 파일시스템(700)을 포함한다.
상기 가상화 서버(100)는 랜덤 엑세스 메모리(500)를 입출력 처리를 위한 호스트 측면 캐시(510)로 이용할 수 있다.
또한, 상기 가상화 서버(100)는 상기 랜덤 액세스 메모리(500)에 저장되는 갱신 데이터를 상기 가상화 서버(100)의 로컬 디스크(600)에 갱신 데이터 로그 파일로 저장할 수 있다.
이 경우, 파일 단위의 오프셋을 기준으로, 일정 범위내의 갱신 데이터가 단일의 갱신 데이터 로그 파일로 관리될 수 있다.
부연하여 설명하면, 본 발명은 상기 가상화 서버(100)의 로컬 디스크(600)를 활용하여, 동적으로 갱신 데이터의 로그를 관리하는 시스템 및 방법을 제공하고 있다.
이하에서는, 본 발명이, 가상화 서버(100)의 랜덤 엑세스 메모리(500)를 활용하는 호스트 측면 캐시(510)에 대해, 데이터 가용성을 지원하는 구체적인 방법이 도면들을 참조하여 상세히 설명된다.
본 발명에 따른 데이터 가용성 지원 시스템은, 가상 데스크탑 서비스 환경에서, 공유 스토리지로서 분산 파일시스템(700)을 이용한다.
즉, 본 발명은, 도 1에 도시된 바와 같이, 가상화를 지원하는 하이퍼바이저(300)와 가상 디스크 파일의 갱신 데이터를 빠르게 저장하는 호스트 측면 캐시(510)가 동작하는 가상화 서버(100) 및 상기 가상 디스크 파일을 영구적으로 저장하는 네트워크 기반의 분산 파일시스템(700)으로 구성된다. 상기 호스트 측면 캐시(510)로는 상기 가상화 서버(100)의 랜덤 액세스메모리(500)가 이용될 수 있다.
가상 디스크(210)는 상기 가상 머신(200)에 가상 블록 장치로서 구비되어, 운영 체제 및 응용 프로그램을 설치하는 용도로 활용되거나, 사용자 데이터 전용 데이터 디스크 등으로 활용된다.
네트워크 기반의 상기 분산 파일시스템(700)은, 전체 저장 공간을 논리 볼륨(710) 단위로 구분하여, 독립적으로 사용할 수 있는 구조를 제공한다.
상기 분산 파일시스템(700)에 대한 파일 입출력은, 클라이언트 파일시스템(410)을 통해 처리되며, 빠른 입출력 처리를 위해 랜덤 액세스 메모리(500)를 기반으로 하는, 호스트 측면 캐시(510)가 구성될 수 있다.
상기 클라이언트 파일시스템(410)과 로컬 파일시스템(420)은 가상화 서버 파일시스템(400)에 구비된다. 상기 로컬 파일시스템(420)은 상기 로컬 디스크(600)와 통신을 수행한다.
가상 데스크탑의 입출력 성능에서 중요한 것은 응답 시간이다. 네트워크 통신으로 인한 지연 시간(latency)을 줄이기 위하여, 휘발성 메모리, 즉, 랜덤 액세스 메모리(RAM)(500) 기반의 호스트 측면 캐시(510)가 적용되는 경우, 갑자기 전원이 차단되면, 캐싱 중인 갱신 데이터가 복구될 수 없는 단점이 있다.
이를 해결하기 위해, 본 발명은, 분산 파일시스템(700)에서 파일에 대한 쓰기 요청을, 호스트 측면 캐시(510) 및 로컬 디스크(600)에 동시에 전송할 수 있다. 따라서, 본 발명은 동적으로 갱신 데이터를 관리할 수 있으며, 이에 따라, 클라이언트 기반으로 데이터 가용성을 제공할 수 있다.
도 2는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 호스트 측면 캐시와 로컬 디스크의 구성을 나타낸 예시도이다.
상기 분산 파일 시스템(700)과 상기 가상화 서버(100) 간에 송수신되는 가상 디스크 파일(720)은, 도 2의 (a)에 도시된 바와 같이, 오프셋 기준으로, 일정 크기 단위마다 버킷으로 정의되어, 상기 호스트 측면 캐시(510)에 저장되는 갱신 데이터를 관리한다.
상기 가상 디스크 파일(720)을 버킷 단위로 관리하는 이유는, 평상시 가상 데스크탑에서 발생하는 입출력 워크로드의 특성이, 작은 크기의 랜덤 입출력이기 때문에, 입출력 처리의 병렬성을 높이기 위함이다. 각 버킷은 512바이트 크기의 섹터들의 배수로 정의될 수 있다.
상기 호스트 측면 캐시(510)의 파일 엔트리(520)는 상기 호스트 측면 캐시(510)의 파일 관리 구조이고, 상기 가상 디스크 파일(720)이 개방될 때마다 생성되며, 파일 메타 정보(530)와 버킷 단위의 데이터를 관리하는 버킷 엔트리(540)로 구성된다.
상기 버킷 엔트리(540)는 버킷을 구성하는 섹터들의 캐시 버퍼 정보를 저장하는 섹터맵(541a)과 버퍼 엔트리(542b)로 구성되는데 이는 본 발명의 범위에 포함되지 않는다.
로그 저장소(610)는 상기 로컬 디스크(600)에 구비되며, ext3나 ext4 등 운영 체제가 지원하는 로컬 파일시스템을 통해 임의의 디렉터리(/log)로 마운트되어 구성된다.
상기 로그 저장소(610)로 이용되는 상기 로컬 디스크(600)는 마운트된 최상위 디렉터리(/log) 아래의 볼륨명 디렉터리(601) 및 가상 디스크 파일의 inode 번호명 디렉터리(602) 순으로 구조화되고, 그 아래 버킷 단위로 버킷 식별자를 이름으로 하여 갱신 데이터 로그가 독립적인 파일(갱신 데이터 로그 파일이라 함)로 동적으로 관리될 수 있다.
버킷 식별자는 파일 오프셋을 버킷 단위로 나누었을 때, 몇 번째 버킷에 속하는지를 나타내는 값이다. 이를 사용하는 이유는, 호스트 측면 캐시에서 버킷 엔트리가 처리될 때 해당 갱신 데이터 로그 파일을 로그 저장소(610)에서 쉽게 검색하기 위함이다.
단일 가상화 서버(100)에 분산 파일시스템(700)으로부터 다수의 볼륨이 마운트되면, 상기 (610) 저장소에 마운트된 수만큼의 볼륨명 디렉터리(601)가 생성되어 관리된다.
파일 inode 번호명 디렉터리(602)는 각 볼륨에서 가상 디스크 파일(720)이 개방될 때 생성되며, 파일이 종료될 때 삭제된다.
데이터 갱신 로그 파일은 해당 버킷에 대한 첫 번째 쓰기 요청이 오면 동기 쓰기 모드(O_DIRECT)로 생성 및 개방되고, 해당 파일이 폐쇄(close)될 때 종료 및 삭제된다.
데이터 갱신 로그 파일에 대한 입출력은 가상 디스크 파일에 대한 쓰기 요청과 동기화되기 때문에 매번 파일을 개방/종료시키는 것은 오버헤드가 된다. 따라서, 데이터 갱신 로그 파일이 생성될 때 운영 체제가 할당하는 파일 디스크립터(file descriptor)를 파일 엔트리(520)의 버킷 엔트리(540)가 관리할 수 있다. 이 경우, 상기 버킷 엔트리(540)는, 갱신 데이터 로그 파일에 대한 입출력 때 마다 상기 디스크립터(file descriptor)를 활용할 수 있다.
도 3은 데이터 가용성 지원이 없는 경우에 분산 파일시스템의 비동기 입출력 처리 방법을 나타낸 예시도이다. 즉, 도 3은 도 1에서 로컬 디스크가 이용되지 않는 경우에, 분산 파일시스템에서의 비동기 입출력 처리 방법을 나타낸 예시도이다.
상기 가상 머신(200)에서 상기 가상 디스크(210)의 섹터 10부터 13까지의 데이터가 갱신되면, 갱신된 데이터(갱신 데이터라 함)는 상기 가상화 서버 파일시스템(400)을 통해 상기 호스트 측면 캐시(510)로 전달되어, 해당 버킷의 데이터로 메모리 버퍼에 저장된다.
상기 호스트 측면 캐시(510)는 기본적으로 write-back 모드로 구동되므로, 저장되는 갱신 데이터는 디스테이징(De-staging) 정책에 기반하여 버킷 단위로 네트워크를 통해 상기 분산 파일시스템(700)의 가상 디스크 파일(720)로 디스테이징된다.
도 4a는 본 발명에 따른 데이터 가용성 지원 시스템에서의 갱신 로그 기반의 비동기 입출력 처리 방법을 나타낸 예시도이다. 도 4a에서 (a)는 갱신 데이터 로그 파일(620)을 나타내며, (b)는 상기 가상화 서버(100)와 상기 분산 파일시스템(700)을 나타낸다.
상기 가상 머신(200)에서 상기 가상 디스크(210)의 섹터 10부터 13까지의 데이터가 갱신되면, 갱신된 데이터(갱신 데이터라 함)(210)는 상기 가상화 서버 파일시스템(400)을 통해 상기 호스트 측면 캐시(510)로 전달된다.
이 경우, 도 3에 도시된 방법과 달리, 파일 오프셋으로 버킷 식별자가 결정되면, 우선, 상기 로컬 디스크(600)를 통해 버킷 식별자를 이름으로 갖는 갱신 데이터 로그 파일을 검색한 후, 로그 엔트리를 동기 쓰기 방식으로 상기 로컬 디스크(600)에 저장시킨다.
상기 로그 엔트리는 상기 갱신 데이터 로그 파일의 입출력 단위이며, 헤더와 데이터로 구성된다.
상기 헤더는 저장하려는 데이터의 버킷 내부에서의 시작 섹터 번호와 데이터 크기에 해당하는 섹터 수로 구성된다.
상기 갱신 데이터 로그 파일에 대한 저장이 완료되면, 메모리 버퍼를 할당하여, 쓰기 요청된 데이터를 저장하는 과정이 수행한다.
도 4b는 본 발명에 따른 데이터 가용성 지원 시스템에서의 캐시 데이터 연동 갱신 로그 처리 방법을 나타낸 예시도이다. 도 4b에서 도면부호 520은 상기 호스트 측면 캐시(510)에 저장되어 있는 가상 디스크 파일을 나타낸다.
상기 호스트 측면 캐시(510)에서 버킷 0, 버킷 10, 버킷 100의 데이터를 저장 중이면, 상기 로컬 디스크(600)에도 버킷마다 갱신 데이터 로그 파일들이 존재한다.
갱신 데이터는 디스테이징 정책에 따라 상기 분산 파일시스템(700)으로 디스테이징되고, 디스테이징이 완료되면 해당 버킷의 데이터는 메모리로부터 삭제되도록 관리된다.
따라서, 대응되는 갱신 데이터 로그 파일에서 저장 중인 갱신 데이터도 더 이상 필요하지 않기 때문에, 상기 갱신 데이터 로그 파일의 크기가 0으로 truncate되도록 관리된다.
이렇게 호스트 측면 캐시(510)의 버킷 엔트리의 데이터와 갱신 데이터 로그 파일의 데이터가 동기화되어 관리됨으로써, 상기 로컬 디스크(600)가 효율적으로 활용될 수 있다. 또한, 갱신 데이터 로그 파일의 데이터가 최신 데이터로 유지됨으로써 장애 복구 시 빠른 복구와 데이터 가용성이 제공될 수 있다.
갱신 데이터 로그 파일(620)의 특성상, 동일 데이터가 캐시에 저장되어 있는 동안 수 차례 반복적으로 갱신되면, 그때 마다 로그 엔트리가 저장되면서 파일 크기가 꾸준히 증가할 것이고, 최악의 경우는, 특정 갱신 데이터 로그 파일들로 인해, 상기 로컬 디스크(600)의 로그 저장소(610)의 공간 부족 문제가 발생할 수 있다.
이를 방지하기 위하여, 본 발명은 상기 갱신 데이터 로그 파일(620)의 크기에 한계치(threshold)를 설정하고, 이를 넘어서면, 해당 버킷에 대해 강제로 디스테이징이 수행되도록 함으로써 로그 파일을 관리할 수 있다.
도 5a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버의 장애 시의 갱신 데이터 로그 파일 및 가상 디스크 파일의 상태를 나타낸 예시도이다.
예를 들어, 도 4b에서 상기 가상 디스크 파일(720)의 갱신 데이터 중 버킷 0의 데이터는 네트워크를 통해 상기 분산 파일시스템(700)에 저장되었지만, 버킷 10과 버킷 100의 데이터는 디스테이징 처리 중이거나 처리 전인 상황에서, 정전 등의 이유로 상기 가상화 서버(100)에 장애가 발생하는 경우, 도 5a에 도시된 바와 같이, 휘발성 메모리인 상기 호스트 측면 캐시(510)에 저장된 갱신 데이터는 모두 손실된다. 그러나, 디스테이징이 완료되지 않은 버킷 10과 버킷 100의 갱신 데이터 로그 파일은 상기 로컬 디스크(600)에 존재한다.
도 5b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 상태를 나타낸 예시도이다.
상기 로컬 디스크(600)의 로그 저장소(610)에 저장되어 있는, 버킷 10과 버킷 100에 대응하는, 갱신 데이터 로그 파일이 개방되고, 파일의 처음부터 끝까지 로그 엔트리 단위로 읽혀져, 상기 갱신 데이터 로그 파일에 저장되어 있던 갱신 데이터가 상기 호스트 측면 캐시(510)에 저장된다.
상기 호스트 측면 캐시(510)에 저장된 복구 갱신 데이터는 상기 분산 파일시스템(700)으로 디스테이징되고, 복구가 완료된 상기 갱신 데이터 로그 파일 및 파일 inode 번호명 디렉터리는 상기 로컬 디스크(600)의 상기 로그 저장소(610)로부터 삭제된다.
참고로, 본 발명의 실시예에 따른 도 1 내지 도 5b에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 형태로 구현될 수 있으며, 소정의 역할들을 수행할 수 있다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
이하에서는 도 6a 및 도 6b를 참조하여, 본 발명의 일 실시예에 따른 데이터 가용성 지원 시스템에서의 데이터 가용성 지원 방법에 대하여 설명하도록 한다.
도 6a는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 볼륨 데이터를 복구하는 방법을 나타낸 흐름도이며, 도 6b는 본 발명에 따른 데이터 가용성 지원 시스템에 적용되는 가상화 서버가 재기동된 후 갱신 로그 기반으로 장애 데이터가 복구되는 방법 중 복구 쓰레드를 수행하는 방법을 나타낸 흐름도이다.
볼륨 데이터를 복구하는 과정은, 상기 분산 파일시스템(700)의 논리 볼륨(710)이 임의의 디렉터리로 마운트되었을 때, 이미 해당 볼륨명 디렉터리가 상기 로그 저장소(610)에 존재하는 경우 수행이 시작된다.
먼저, 상기 분산 파일 시스템(700)은, 도 6a에 도시된 바와 같이, 해당 논리 볼륨에 대한 입출력 요청을 중단시킨 후(S571), 상기 로그 저장소(610)의 볼륨명 디렉터리 아래에 존재하는 엔트리들을 파일 inode 번호로 변환하여 복구 요청 큐에 저장한다(S572).
복구 파일 목록이 완료되면, 상기 분산 파일 시스템(700)가 병렬 처리를 위해 필요한 만큼의 복구 쓰레드를 생성시키고(S573), 모든 쓰레드가 수행 종료될 때까지 대기한 후(S574) 볼륨에 대한 입출력 요청 중단을 해제(S575)시키면, 볼륨 데이터 복구는 종료된다.
복구 쓰레드를 수행하는 과정에서는, 도 6b에 도시된 바와 같이, 복구 요청 큐로부터 파일 inode 번호가 획득된 후, 해당 파일의 개방이 요청된다. 파일이 개방되면서 상기 호스트 측면 캐시(510)에 파일 엔트리와 버킷 엔트리가 생성된다.
다음으로, 파일 inode 번호명 디렉터리(602) 아래의 엔트리들로부터 갱신 데이터 로그 파일 목록이 작성된다(S581). 파일의 크기가 0보다 큰 파일에 대해서만, 파일의 처음부터 끝까지 로그 엔트리 단위로 읽혀지며, 상기 호스트 측면 캐시(510)에 쓰기 요청이 전송된다.
갱신 데이터 로그 파일마다, 상기 호스트 측면 캐시(510)에 쓰기 처리가 완료되면, 해당 갱신 데이터 로그 파일은 삭제된다(S582).
복구가 완료된 파일에 대해 폐쇄가 요청된다. 이에 따라, 상기 호스트 측면 캐시(510)에 저장된 모든 복구 데이터는 상기 분산 파일시스템(700)으로 저장되고, 로그 저장소로부터 파일 inode 번호명 디렉터리가 삭제되며(S583), 복구 쓰레드는 종료된다.
상술한 설명에서, 단계 S571 내지 S583은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 1 내지 도 5b에서의 데이터 가용성 지원 시스템에 관하여 이미 기술된 내용은 도 6a 및 도 6b의 데이터 가용성 지원 방법에도 적용된다.
이하에서는, 상기에서 설명된 본 발명이 간단히 정리된다.
본 발명은, 개방된 파일이 불안정하게 종료되어, 랜덤 액세스 메모리(500)에 저장된 갱신 데이터가 손실된 경우, 가상화 서버(100)의 로그 저장소(610)에 존재하는 갱신 데이터 로그 파일을 활용하여 손실된 데이터를 복구하는 시스템 및 방법을 제공한다.
즉, 본 발명은 랜덤 액세스 메모리(500)를 기반으로 하는 호스트 측면 캐시(510)에서의 데이터 가용성을 지원하기 위해, 로컬 디스크(600)를 활용하여 갱신 데이터 로그를 관리할 수 있다.
부연하여 설명하면, 본 발명에서는, 가상 데스크탑용 가상 머신(200)을 운용하는 가상화 서버(100)에서, 랜덤 엑세스 메모리(RAM)가 로컬 캐시 공간으로 구성됨으로써, 분산 파일시스템(700)에 저장된 가상 디스크 파일(720)이 캐시 공간에 적재되며, 따라서, 빠르게 입출력 요청이 처리될 수 있다.
특히, 본 발명에서는, 상기 가상화 서버(100)의 로컬 디스크(600)가 갱신 데이터 로그의 저장소로 활용되어, 갱신 데이터 로그가 캐시 공간의 데이터 처리 방식과 동기화되어 관리될 수 있다.
따라서, 본 발명은 로그 저장소를 효율적으로 관리할 수 있으며, 정전 등의 이유로 서버 장애가 발생하더라도, 캐시 공간에 저장되었다가 손실된 데이터에 대한 가용성을 보장할 수 있다.
본 발명의 일 실시예에 따른 대화 데이터 가용성 지원 시스템에서의 데이터 가용성 지원 방법은 컴퓨터에 의해 실행되는 매체에 저장된 컴퓨터 프로그램 또는 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 가상화 서버
200: 가상머신
210: 가상 디스크 300: 하이퍼 바이저
400: 가상 서버 파일시스템 410: 클라이언트 파일시스템
420: 로컬 파일시스템 500: 랜덤 엑세스 메모리
510: 호스트 측면 캐시 600: 로컬 디스크
610: 로그 저장소 700: 분산 파일 시스템
710: 논리 볼륨
210: 가상 디스크 300: 하이퍼 바이저
400: 가상 서버 파일시스템 410: 클라이언트 파일시스템
420: 로컬 파일시스템 500: 랜덤 엑세스 메모리
510: 호스트 측면 캐시 600: 로컬 디스크
610: 로그 저장소 700: 분산 파일 시스템
710: 논리 볼륨
Claims (1)
- 가상 머신이 실행되는 가상화 서버; 및
상기 가상화 서버와 네트워크로 연결되며, 가상 디스크 파일을 저장하는 분산 파일시스템을 포함하되,
상기 가상화 서버는 랜덤 엑세스 메모리를 입출력 처리를 위한 호스트 측면 캐시로 이용하며,
상기 가상화 서버는 상기 랜덤 액세스 메모리에 저장되는 갱신 데이터를 상기 가상화 서버의 로컬 디스크에 갱신 데이터 로그 파일로 저장하는 데이터 가용성 지원 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160014658A KR101975058B1 (ko) | 2016-02-05 | 2016-02-05 | 데이터 가용성 지원 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160014658A KR101975058B1 (ko) | 2016-02-05 | 2016-02-05 | 데이터 가용성 지원 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170093367A true KR20170093367A (ko) | 2017-08-16 |
KR101975058B1 KR101975058B1 (ko) | 2019-05-03 |
Family
ID=59752388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160014658A KR101975058B1 (ko) | 2016-02-05 | 2016-02-05 | 데이터 가용성 지원 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101975058B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102673726B1 (ko) * | 2023-07-28 | 2024-06-10 | 주식회사 워크스타일 | 분산 저장 자동 버전 관리 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110041087A (ko) * | 2009-10-15 | 2011-04-21 | 성균관대학교산학협력단 | 서버 가상화 장치 |
US9081686B2 (en) * | 2012-11-19 | 2015-07-14 | Vmware, Inc. | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
-
2016
- 2016-02-05 KR KR1020160014658A patent/KR101975058B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110041087A (ko) * | 2009-10-15 | 2011-04-21 | 성균관대학교산학협력단 | 서버 가상화 장치 |
US9081686B2 (en) * | 2012-11-19 | 2015-07-14 | Vmware, Inc. | Coordinated hypervisor staging of I/O data for storage devices on external cache devices |
Also Published As
Publication number | Publication date |
---|---|
KR101975058B1 (ko) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10834224B2 (en) | Transaction log acceleration | |
US9507732B1 (en) | System and method for cache management | |
US9547591B1 (en) | System and method for cache management | |
US10073656B2 (en) | Systems and methods for storage virtualization | |
US9697130B2 (en) | Systems and methods for storage service automation | |
US9430161B2 (en) | Storage control device and control method | |
US8347050B2 (en) | Append-based shared persistent storage | |
US9910777B2 (en) | Enhanced integrity through atomic writes in cache | |
US9811276B1 (en) | Archiving memory in memory centric architecture | |
US8997098B2 (en) | Hypervisor-based server duplication system and method and storage medium storing server duplication computer program | |
US9959074B1 (en) | Asynchronous in-memory data backup system | |
US11314639B2 (en) | Protecting against data loss during garbage collection | |
US9665496B2 (en) | Non-volatile memory write mechanism | |
WO2019061352A1 (zh) | 数据加载方法及装置 | |
CN107153512B (zh) | 一种数据迁移方法和装置 | |
US10592131B2 (en) | Restorable memory allocator | |
KR20170085951A (ko) | 버저닝 저장 장치 및 방법 | |
US10877848B2 (en) | Processing I/O operations in parallel while maintaining read/write consistency using range and priority queues in a data protection system | |
US8151068B2 (en) | Data copy management for faster reads | |
US10459641B2 (en) | Efficient serialization of journal data | |
US10067843B1 (en) | Synchronizing control nodes and a recovery from a failure of a primary control node of a storage system | |
US11960450B2 (en) | Enhancing efficiency of segment cleaning for a log-structured file system | |
US20160077747A1 (en) | Efficient combination of storage devices for maintaining metadata | |
KR101975058B1 (ko) | 데이터 가용성 지원 시스템 및 방법 | |
CN117348968A (zh) | 一种虚拟磁盘的缓存数据加速方法、装置和设备 |
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 |