KR100985166B1 - 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법 - Google Patents

분산 저장 시스템에서 파일을 동기화하는 장치 및 방법 Download PDF

Info

Publication number
KR100985166B1
KR100985166B1 KR1020090105663A KR20090105663A KR100985166B1 KR 100985166 B1 KR100985166 B1 KR 100985166B1 KR 1020090105663 A KR1020090105663 A KR 1020090105663A KR 20090105663 A KR20090105663 A KR 20090105663A KR 100985166 B1 KR100985166 B1 KR 100985166B1
Authority
KR
South Korea
Prior art keywords
file
hot
hits
session
storage system
Prior art date
Application number
KR1020090105663A
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 KR1020090105663A priority Critical patent/KR100985166B1/ko
Application granted granted Critical
Publication of KR100985166B1 publication Critical patent/KR100985166B1/ko
Priority to US13/500,027 priority patent/US8700684B2/en
Priority to CN2010800467269A priority patent/CN102687112A/zh
Priority to PCT/KR2010/007721 priority patent/WO2011055976A2/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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

Abstract

본 발명은 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법에 관한 것이다.
본 발명에 따른 분산 저장 시스템에서의 파일 동기화 장치 및 방법은, 클라이언트에 의해 요청되는 파일의 조회수를 집계하고, 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하며, 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 것을 특징으로 한다.

Description

분산 저장 시스템에서 파일을 동기화하는 장치 및 방법 {Apparatus and method for file synchronization in distributed storage system}
본 발명은 분산 저장 시스템(DSS; Distributed Storage System)에서 파일을 동기화하는 장치 및 방법에 관한 것으로, 보다 상세하게는 임의의 분산 저장 시스템에서 클라이언트(client)에 의해 자주 조회되는 핫파일(hot file)이 있는 경우 이를 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화함으로써 상호 연관된 분산 저장 시스템을 효율적으로 운영하는 파일 동기화 장치 및 방법에 관한 것이다.
참고로, 본 발명은 지식경제부 및 정보통신산업진흥원의 지원을 받아 수행된 연구결과이다(A1200-0901-0046; 고성능-고확장성-고가용성 병렬 저장시스템 개발).
분산 저장 시스템(Distributed Storage System) 또는 병렬 저장 시스템(Parallel Storage System)은 여러 대의 저장 장치를 1대의 저장 장치로 가상화시킨 저장 시스템이다. 이러한 분산 저장 시스템에서는 1개의 파일을 저장할 때 1대의 저장 장치에 저장하지 않고 가상화되어 있는 여러 대의 저장 장치에 나누어 저장하고 사용한다.
기존의 RAID(Redundant Array of Inexpensive Devices) 저장 장치가 여러 개의 하드 디스크를 하나의 저장 장치로 통합하면서 더 크고, 더 빠르고, 더 안정적 인 저장 장치로 구성하듯이, 분산 저장 시스템도 여러 대의 저장 장치를 1대의 저장 장치로 구성하여 더 크고, 더 빠르고, 더 안정적인 저장 시스템 기능을 제공 할 수 있다.
이러한 분산 저장 시스템 기술은 클라우드 컴퓨팅(Cloud Computing) 등에서 핵심적인 기술로 이용되며, 분산 저장 시스템을 구성하는 저장 장치의 수량이 증가하면 증가할수록 용량과 성능도 비례하여 증가하고 전체 소유 비용(Total Cost of Owner-ship)의 비용 대비 효과를 극대화시켜 주기 때문에, 기존의 저장 시스템이 제공하지 못하는 높은 수준의 성능과 확장성을 제공할 수 있다.
이와 관련하여, 도 1은 종래기술에 따른 분산 저장 시스템의 구성을 예시한 것이다.
도 1을 참고하면, 일반적으로 분산 저장 시스템은 각각의 파일을 여러 개로 나누어 분산 저장하는 복수개의 저장 서버(이는 가상적인 하나의 저장 서버에 해당됨)(110)와 이들 파일에 대한 메타데이터를 생성하여 관리하는 메타데이터 서버(120) 등으로 구성되며, 적어도 하나의 클라이언트(130)가 네트워크 등을 통해 소정 파일의 입/출력을 요청하면 메타데이터 서버(120)가 해당 파일이 분산 저장될/저장되어 있는 저장 서버들(110)의 정보를 제공하고 이에 클라이언트(130)가 이들 저장 서버(110)에 접속하여 해당 파일의 입/출력을 수행함으로써 서비스가 이루어진다. (참고로, 본 발명에서 '파일'이라는 용어는 클라이언트에 의해 조회 또는 요청되는 내용을 의미하는 것으로, 이는 파일, 데이터, 컨텐츠, 청크(chunk) 등을 포함하는 의미이다.)
한편, 이러한 분산 저장 시스템은 서로 관련성 있는 여러 개의 분산 저장 시스템이 네트워크 등을 통해 상호 연동될 수 있는데, 도 2는 이를 설명하기 위한 것으로, 복수개의 분산 저장 시스템이 네트워크 등을 통해 상호 연결된 구조를 나타내는 도면이다.
도 2를 참고하면, 제1 분산 저장 시스템(100)은 파일을 분산 저장하는 복수개의 저장 서버(110)와 이들 파일에 대한 메타데이터를 관리하는 메타데이터 서버(120) 등으로 구성되고, 마찬가지로 제2 분산 저장 시스템(100')과 제3 분산 저장 시스템(100")도 각각 복수개의 저장 서버(110', 110")와 메타데이터 서버(120', 120") 등으로 구성되며, 각각의 분산 저장 시스템은 네트워크 등을 통해 상호 유기적으로 연결되어 파일(데이터, 컨텐츠) 등을 공유한다.
이와 같이, 여러 개의 분산 저장 시스템이 상호 유기적으로 연결되어 파일을 공유하는 경우, 종래기술에서는 크게 2가지 방식으로 상호 연관된 분산 저장 시스템들을 운영하였는데, 첫 번째는 모든 파일이 서로 동기화되어 각각의 분산 저장 시스템이 동일한 파일을 보유하도록 구현하는 방식이며, 두 번째는 각각의 분산 저장 시스템이 원본 파일을 보유하고 다른 저장 시스템으로부터 해당 파일에 대한 조회요구가 발생하면 해당 파일을 전송하여 조회요구에 응답하는 방식이다.
그러나, 첫 번째 방식의 경우, 모든 파일들이 상호 연관된 분산 저장 시스템에서 동기화되어야 하므로 파일의 이동량이 많고 저장 공간을 많이 차지하게 되는 문제점이 있으며, 특히 임의의 분산 저장 시스템에서는 거의 요구되지 않는 파일이라 하더라도 이를 저장하고 있어야 하기 때문에 저장 공간과 통신 대역폭이 크게 낭비되는 문제점이 있었다.
그리고, 두 번째 방식의 경우, 비록 해당 파일의 조회요구가 발생하는 경우에만 실제 파일의 이동이 발생하므로 저장 공간의 낭비를 줄일 수 있지만, 클라이언트에 의해 자주 조회되는 핫파일(hot file)의 경우에는 여러 개의 분산 저장 시스템에서 파일 요구가 한꺼번에 몰리게 되어, 병목현상이 발생하여 응답 속도가 느리게 되며 시스템의 성능과 효율이 저하되는 문제점이 있었다.
본 발명은 전술한 바와 같은 문제점을 해결하기 위해 창안된 것으로, 본 발명의 목적은 임의의 분산 저장 시스템에서 클라이언트에 의해 자주 조회되는 파일을 적어도 하나의 다른 분산 저장 시스템에 복사하여 동기화함으로써 상호 연관된 분산 저장 시스템을 효율적으로 운영하는 파일 동기화 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은, 분산 저장 시스템에서 현재 핫파일의 개수, 핫파일의 복사본 개수, 저장 장치의 성능 및 여유 공간 등을 고려하여 핫파일의 선정을 적응적으로 수행함으로써 상호 연관된 분산 저장 시스템을 효율적으로 운영하는 파일 동기화 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 핫파일의 선정 과정에서 세션(session)의 길이를 조회수 집계 기간을 2의 지수승으로 나눈 값으로 설정하고, 해당 세션에 대한 세션 액세스 플래그를 이용하여 핫파일 여부를 판단함으로써 핫파일 선정을 위한 연산량과 메모리 사용량을 감소시키는 파일 동기화 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 일단 핫파일로 선정되면 일정 기간 동안 강제적으로 핫파일의 지위를 유지시키거나 및/또는 조회수가 소정 임계값 이하로 떨어질 때까지 핫파일의 지위를 유지시킴으로써 핫파일의 지위의 빈번한 변경에 따른 시스템의 성능 저하를 방지하여 보다 효율적인 핫파일 관리 정책을 구현할 수 있는 파일 동기화 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 전술한 바와 같은 파일 동기화 장치 및 방법을 효율적으로 이용하는 분산 저장 시스템을 제공하는 것이다.
상기 목적을 위하여, 본 발명의 일 형태에 따른 분산 저장 시스템에서의 파일 동기화 장치는, 클라이언트로부터 요청되는 파일의 조회수를 집계하는 조회수 집계부; 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하는 핫파일 선정부; 및 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 핫파일 동기화부를 포함하고, 상기 조회수 집계부는 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 한다.
그리고, 본 발명의 일 형태에 따른 분산 저장 시스템은, 파일을 분산 저장하기 위한 복수개의 저장 서버; 및 상기 파일에 대한 메타데이터를 관리하는 메타데이터 서버를 포함하고, 상기 메타데이터 서버는 클라이언트로부터 요청되는 파일의 조회수를 집계하여 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하고, 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하며, 상기 메타데이터 서버는 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 한다.
한편, 본 발명의 일 형태에 따른 분산 저장 시스템에서의 파일 동기화 방법은, 클라이언트에 의해 요청되는 파일의 조회수를 집계하는 단계; 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하는 단계; 및 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 단계를 포함하고, 상기 조회수를 집계하는 단계는, 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 한다.
본 발명에 따르면, 상호 연관된 복수개의 분산 저장 시스템에서 빈번히 조회되는 특정 파일로 인해 야기되는 네트워크 부하를 해소하고 나아가 인기 있는 파일의 접근성을 향상시켜 파일 관리를 효율적으로 수행할 수 있는 효과를 가진다.
그리고, 본 발명에 따르면, 임의의 분산 저장 시스템에서 클라이언트에 의해 자주 조회되는 핫파일(hot file)을 적어도 하나의 다른 분산 저장 시스템에 미리 복사하여 동기화시킴으로써 앞으로 예상되는 조회에 대한 캐시 스토리지(cache storage) 역할을 도모할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, 분산 저장 시스템에서 현재 핫파일의 개수, 핫파일의 복사본 개수, 저장 장치의 성능 및 여유 공간 등을 고려하여 핫파일의 선정을 적응적으로 수행함으로써 상호 연관된 분산 저장 시스템을 효율적으로 운영할 수 있는 효과를 가진다.
또한, 본 발명에 따르면, 핫파일의 선정 과정에서 세션(session)의 길이를 조회수 집계 기간을 2의 지수승으로 나눈 값으로 설정하고 해당 세션에 대한 세션 액세스 플래그를 이용하여 핫파일 여부를 판단함으로써, 비교적 작은 연산량과 적은 메모리 사용량으로 핫파일을 효율적으로 관리할 수 있는 효과를 가진다.
이하에서는 첨부 도면 및 바람직한 실시예를 참조하여 본 발명을 상세히 설명한다. 참고로, 하기 설명에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
먼저, 도 3은 본 발명의 일 실시예에 따른 분산 저장 시스템의 구성을 예시 한 것이다.
도 3을 참고하면, 본 발명의 일 실시예에 따른 분산 저장 시스템은 각각의 파일을 여러 개로 나누어 분산 저장하는 복수개의 저장 서버(310), 상기 파일에 대한 메타데이터를 생성하여 관리하는 메타데이터 서버(320), 그리고 상기 파일에 대해 자주 조회되는 핫파일을 선정하여 다른 분산 저장 시스템에 복사하여 동기화하는 파일 동기화 장치(340) 등으로 구성되며, 이에 따라 임의의 분산 저장 시스템에서 클라이언트(330)로부터 자주 요청되는 파일을 상호 연관된 적어도 하나의 다른 분산 저장 시스템에 미리 복사하여 동기화함으로써 해당 파일에 대한 요청(조회수)이 많더라도 이를 효율적으로 처리하여 시스템 성능을 향상시킨다.
한편, 도 4는 본 발명의 다른 실시예에 따른 분산 저장 시스템의 구성을 예시한 것이다.
도 4를 참고하면, 본 발명의 다른 실시예에 따른 분산 저장 시스템은 각각의 파일을 여러 개로 나누어 분산 저장하는 복수개의 저장 서버(410)와, 상기 파일에 대한 메타데이터를 생성하여 관리하는 메타데이터 서버(420) 등으로 구성되며, 특히 상기 메타데이터 서버(420)는 본 발명에 따른 파일 동기화 장치의 기능을 포함함으로써, 상기 파일에 대해 자주 조회되는 핫파일을 선정하고 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화함으로써, 클라이언트(430)로부터 해당 파일에 대한 요청(조회수)이 많더라도 이를 효율적으로 처리한다.
부언하면, 본 발명에 따른 파일 동기화 장치는 임의의 분산 저장 시스템에서 별도의 장치 또는 서버로 구성되거나(도 3 참조), 메타데이터 서버 자체 또는 일부로 구성되어(도 4 참조), 클라이언트로부터 자주 조회되는 핫파일을 선정하여 미리 다른 분산 저장 시스템에 저장하여 동기화함으로써 시스템 부하를 해소시키고 성능을 향상시킨다.
이와 관련하여, 도 5는 본 발명의 일 실시예에 따른 파일 동기화 장치의 상세 구성을 예시한 것으로, 도시된 바와 같이, 본 발명의 일 실시예에 따른 파일 동기화 장치(340)는 조회수 집계부(341), 핫파일 선정부(342), 핫파일 동기화부(343), 핫파일 관리부(344) 등을 포하며, 이는 특히 도 3에 예시된 분산 저장 시스템에서 유용하게 적용될 수 있다.
그리고, 도 6은 본 발명의 다른 실시예에 따른 파일 동기화 장치의 상세 구성을 예시한 것으로, 도시된 바와 같이, 본 발명의 다른 실시예에 따른 파일 동기화 장치(420)는 조회수 집계부(421), 핫파일 선정부(422), 핫파일 동기화부(423), 핫파일 관리부(424), 메타데이터 관리부(425), 저장 장치 관리부(426) 등을 포함하며, 이는 특히 도 4에 예시된 분산 저장 시스템에서 유용하게 적용될 수 있다.
한편, 도 7은 본 발명의 일 실시예에 따른 분산 저장 시스템에서의 파일 동기화 방법의 흐름도를 나타낸 것으로, 구체적으로는 집계 기간 동안 파일의 조회수를 집계하여 핫파일을 선정하고 핫파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화함으로써 별도 관리하는 것을 나타낸 것이다.
이하에서는 도 2 내지 도 9를 참조하여 본 발명에 따른 분산 저장 시스템에 서의 파일 동기화 장치 및 방법에 대해 상세 설명한다. 참고로, 하기 설명에서는 본 발명의 실시 형태가 다소 상이하더라도 실질적으로 동일하거나 유사한 구성 또는 기능에 대하여는 이를 구별하지 않고 함께 설명한다.
먼저, 도 5 및 도 6을 참조하면, 본 발명에 따른 파일 동기화 장치에 있어 조회수 집계부(341, 421)는 클라이언트로부터 요청되는 파일에 대해 기 설정된 조회수 집계 기간 동안 해당 파일의 조회수를 집계한다(도 7의 단계 S710 참조).
이 경우, 조회수 집계부(341, 421)는 주기적으로 조회수를 집계하는 것이 바람직하며, 이와 같이 주기적인 조회수 집계를 위한 소정의 단위 기간을 세션(session)이라 한다. 그리고, 상기 집계 기간은 세션의 양의 정수배에 해당하는 길이로 구현하는 것이 바람직하며, 특히 상기 집계 기간을 세션의 2의 지수승(예, 2, 22, 23, 24, ...)에 해당하는 길이로 구현하는 것이 더욱 바람직하다. 즉, 세션의 길이를 상기 집계 기간을 2의 지수승으로 나눈 값에 해당하도록 설정함으로써, 파일의 조회수 갱신 시 시프트(shift) 연산만으로 가능하게 하여 연산량을 줄이고 시스템 성능을 향상시킬 수 있다.
이와 관련하여, 도 8은 본 발명에 따른 세션 액세스 플래그(session access flag)를 이용한 조회수 집계 방식을 예시하는 도면이다. 참고로, 본 실시예에서 조회수 집계 기간은 8(=23)개의 세션에 해당하는 길이로 구현되며, 세션 액세스 플래그(session access flag)는 해당 세션 동안 파일의 조회가 있었는지 여부에 대한 정보를 나타낸다.
이하 이를 상술하면, 도 8의 (a)는 이전(n-1 번째)의 집계 기간 동안 소정 파일에 대한 조회수를 집계하는 것을 나타낸 것인데, 이 경우 이전(n-1 번째)의 집계 기간 동안의 조회수는 8개 세션의 조회수를 모두 합한 38[=1+4+0+7+3+6+7+10]이 된다.
그리고, 도 8의 (b)는 현재(n 번째)의 집계 기간 동안 소정 파일에 대한 조회수를 집계하는 것을 나타낸 것인데, 이 경우 현재(n 번째)의 집계 기간 동안의 조회수는 이전(n-1 번째)의 집계 기간 동안 집계된 조회수[38]에서 가장 오래된 세션에 해당하는 조회수[1]을 감산하고 새로운 세션 동안의 조회수[5]를 가산하여 42[=4+0+7+3+6+7+10+5]가 된다.
더 나아가, 도 8의 (c)는 다음(n+1 번째)의 집계 기간 동안 소정 파일에 대한 조회수를 집계하는 것을 나타낸 것인데, 마찬가지로 이 경우 다음(n+1 번째)의 집계 기간 동안의 조회수는 38[=0+7+3+6+7+10+5+0]이 될 것이다.
한편, 조회수 집계부(341, 421)는 전술한 바와 같은 방식(제1 방식)으로 집계 기간에 대해 정확한 조회수를 계산할 수도 있지만, 예컨대 메모리가 부족한 경우에는 세션 액세스 플래그를 이용하여 다음과 같은 방식(제2 방식)으로 조회수를 계산함으로써 메모리 사용량을 줄일 수 있다. 즉, 전술한 제1 방식은 집계 기간에 대한 조회수를 정확히 산출할 수 있는 반면, 집계 기간에 해당하는 모든 갱신 구간(세션)의 조회수를 보유해야 하므로 메모리의 사용량이 많아지게 되는 단점이 있다. 따라서, 메모리가 부족한 경우에는 후술하는 제2 방식으로도 조회수를 산출할 수 있으며, 제1 방식 또는 제2 방식의 선택은 시스템 성능에 따라 사용자가 적절히 구현할 수 있을 것이다.
세션 액세스 플래그를 이용하는 제2 방식에 대해 상술하면, 도 8의 (a)의 경우 조회수 집계부(341, 421)는 이전(n-1 번째)의 집계 기간 동안의 조회수[38]와 이에 해당하는 세션 액세스 플래그 정보[11011111]를 저장한다. 즉, 제2 방식에서는 집계 기간에 해당하는 모든 세션에 대한 조회수를 저장하지 않고, 집계 기간 동안의 전체 조회수와 세션 액세스 플래그 정보를 저장한다.
그리고, 도 8의 (b)의 경우, 현재(n 번째)의 집계 기간 동안의 조회수 계산은 이전(n-1 번째)의 집계 기간 동안의 조회수[38]에서 가장 오래된 세션에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수[5]를 가산하는데, 이 경우 가장 오래된 세션에 해당하는 조회수는 메모리에 남아 있지 않아 다음과 같이 계산한다.
구체적으로, 가장 오래된 세션에 해당하는 조회수는 이전의 집계 기간 동안 집계된 전체 조회수[38]를 이전의 집계 기간에 해당하는 세션들 중 세션 액세스 플래그가 1인 세션의 수[7]로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값[1]을 곱하여 구한다. 이에 따라 가장 오래된 세션에 해당하는 조회수는 약 5.43[=(38/7)*1]이 되는데, 이는 세션 액세스 플래그가 1인 세션(즉, 한 번이라도 조회가 있었던 세션)에 대한 조회수를 평균한 것이다.
그리고, 세션 액세스 플래그 정보는 새로운 세션에 대한 플래그 값이 생성되면서 1씩 시프트(shift)된다.
그러므로, 조회수 집계를 제2 방식과 같이 구현함으로써, 메모리 사용량과 연산량을 효과적으로 줄일 수 있다. 예컨대, 제1 방식의 경우 4×8 = 32 byte 메모 리(여기서, 4는 하나의 세션에 대한 조회수를 저장하기 위한 크기이며, 8은 8개의 세션을 의미함)를 사용하지만, 제2 방식의 경우 1 + 4×2 = 9 byte의 메모리(여기서, 1은 세션 액세스 플래그 8bit를 저장하기 위한 크기이며, 4는 하나의 세션에 대한 조회수를 저장하기 위한 크기이고, 2는 전체의 세션 및 현재의 세션을 의미함)만 사용하면 되므로, 23/32 = 71.9% 의 절감 효과를 가진다.
참고로, 이 경우 해당 파일에 대한 레코드(record)의 엔트리(entry)는 파일 이름, 볼륨(volume) 이름, 집계 기간 조회수, 세션 조회수, 세션 액세스 플래그 등으로 구성될 수 있다.
다시 도 5 및 도 6을 참조하면, 본 발명에 따른 파일 동기화 장치에 있어 핫파일 선정부(342, 422)는 전술한 바와 같이 집계 기간 동안 집계된 파일의 조회수에 기초하여 해당 파일에 대한 핫파일 여부를 선정한다.
구체적으로, 핫파일 선정부(342, 422)는 집계 기간 동안의 해당 파일의 조회수를 기 설정된 핫파일 선정 임계값과 비교하고(도 7의 단계 S720 참조), 만약 해당 파일의 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정한다(도 7의 단계 S730 참조).
또한, 핫파일 선정부(342, 422)는 소정 파일이 핫파일로 선정된 이후라도 만약 조회수가 작은 경우에는 다시 일반 파일로 복귀(핫파일 해제)시켜, 지속적으로 핫파일을 관리한다. 예컨대, 핫파일 선정부(342, 422)는 집계 기간 동안 해당 파일의 조회수를 기 설정된 핫파일 해제 임계값과 비교하고, 만약 해당 파일의 조회 수가 핫파일 해제 임계값 이하인 경우 해당 파일을 핫파일에서 해제한다. 이때, 핫파일 지위의 빈번한 변경을 방지하기 위해서, 핫파일 해제 임계값은 핫파일 선정 임계값보다 작게 설정하는 것이 바람직하며, 또한 핫파일 최소유지기간을 설정하여 핫파일로 선정된 이후에는 일정 기간 동안 강제적으로 핫파일의 지위를 유지시키는 것이 바람직하다.
도 9는 이를 설명하기 위한 도면으로, 임의의 파일에 대하여 시간에 따른 집계 기간 동안의 조회수의 변화를 나타내는 그래프를 예시한 도면이다.
즉, 도 9를 참조하면, 해당 파일의 조회수가 증가하여 핫파일 선정 임계값 이상이 되는 경우 핫파일로 선정하고, 핫파일로 선정된 이후에는 소정의 핫파일 최소유지기간 동안 조회수에 상관없이(예컨대, 핫파일 해제 임계값 이하로 떨어지더라도) 핫파일의 지위가 유지되며, 핫파일 최소유지기간이 경과한 후에 만약 조회수가 핫파일 해제 임계값 이하로 떨어지게 되면 핫파일의 지위를 상실하여 해제된다.
한편, 상기 핫파일 선정 임계값 및/또는 핫파일 해제 임계값은 상황(예, 현재 핫파일의 개수, 핫파일의 복사본 개수, 저장 장치의 성능 및 여유 공간 등)에 따라 적응적으로 변경될 수 있다.
다시 도 5 및 도 6을 참조하면, 본 발명에 따른 파일 동기화 장치에 있어 핫파일 동기화부(343, 423)는 핫파일로 선정된 파일을 상호 연관된 적어도 하나의 다른 분산 저장 시스템으로 복사하여 핫파일 동기화를 수행한다(도 7의 단계 S740 참조).
구체적으로, 핫파일 동기화부(343, 423)는 적어도 하나의 다른 분산 저장 시스템의 메타데이터 서버와 연동하여 핫파일로 선정된 파일을 상기 적어도 하나의 다른 분산 저장 시스템의 저장 서버에 복사함으로써, 복수개의 분산 저장 시스템에 대해 핫파일 동기화를 수행한다. 이 경우, 핫파일 동기화부(343, 423)는 핫파일 동기화 시 핫파일로 선정된 파일을 파일 단위로(즉, 해당 파일 전체를 전송하여) 동기화하거나 또는 청크(chunk) 단위로(즉, 해당 파일의 해당 청크를 전송하여) 동기화할 수 있다. 그리고, 이에 따라 원본 파일을 저장하고 있는 제1 분산 저장 시스템으로부터 해당 파일(핫파일)을 전송받아 복사본 파일을 저장하는 제2, 제3의 분산 저장 시스템은, 만약 클라이언트가 제2 또는 제3의 분산 저장 시스템에 접속하여 해당 파일을 요청하는 경우, 캐시 스토리지(cache storage) 역할을 수행하여 해당 파일을 신속하게 전송할 수 있다.
한편, 본 발명에 따른 파일 동기화 장치에 있어 핫파일 관리부(344, 424)는 핫파일로 선정된 파일과 핫파일로 선정되지 않은 파일을 구별하여 관리한다.
구체적으로, 핫파일 관리부(344, 424)는 상호 연관된 분산 저장 시스템에서 핫파일로 선정된 파일의 수를 지속적으로 모니터링하고, 만약 핫파일로 선정된 파일의 수가 기 설정된 핫파일수 최대값보다 큰 경우에는 상기 핫파일 선정 임계값 및/또는 핫파일 해제 임계값을 변경하여 핫파일의 수를 적절히 유지한다. 예컨대, 핫파일 관리부(344, 424)는 핫파일로 선정된 파일의 수가 핫파일수 최대값 m보다 큰 경우, 핫파일 선정 임계값을 조회수가 m번째로 큰 핫파일의 조회수로 변경하거 나, 핫파일 선정 임계값을 소정의 크기만큼 높게 재설정함으로써, 핫파일의 수를 적응적으로 조절하여 시스템 성능을 유지시킨다.
또한, 핫파일 관리부(344, 424)는 해당 분산 저장 시스템 내에서 핫파일로 선정된 파일에 대하여 복사본의 개수를 증가시키거나 및/또는 상대적으로 성능이 좋은 저장 장치에 저장함으로써, 해당 파일에 대한 접근 경로를 향상시켜 클라이언트로부터 요청 시 해당 파일을 신속하게 전송할 수 있도록 한다.
여기서, 상대적으로 성능이 좋은 저장 장치의 예로는 속도가 빠른 SSD(Solid State Disk)나 캐시 메모리(cache memory) 등이 있으며, 핫파일 관리부(344, 424)는 조회수가 많은 핫파일을 고속의 SSD나 캐시 메모리 등에 저장하고 조회수가 상대적으로 적은 일반 파일을 저속의 하드 디스크 등에 저장함으로써, 네트워크 부하를 완화하여 시스템 성능을 향상시킨다.
마지막으로, 도 6의 메타데이터 관리부(425)와 저장 장치 관리부(426)는 본 발명에 따른 파일 동기화 장치가 메타데이터 서버로 구현된 경우 추가로 더 포함할 수 있는 구성요소를 나타낸 것이다.
이를 간단히 설명하면, 메타데이터 관리부(425)는 해당 분산 저장 시스템내에서 복수개의 저장 장치(또는 저장 서버)에 분산 저장되는 파일에 대한 메타데이터를 생성하여 관리하며, 저장 장치 관리부(426)는 해당 분산 저장 시스템에 포함된 복수개의 저장 장치(또는 저장 서버)에 대한 성능 및 용량 정보를 관리한다.
한편, 본 발명에 따른 분산 저장 시스템에서 파일을 동기화하는 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 기록매체를 통하여 실시될 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
지금까지 본 발명을 바람직한 실시예를 참조하여 상세히 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 필수적 특징들을 변경하지 않고서 다른 구체적인 다양한 형태로 실시할 수 있는 것이므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.
그리고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 특정되는 것이며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부 터 도출되는 모든 변경 또는 변형된 형태는 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래기술에 따른 분산 저장 시스템의 구성도이다.
도 2는 복수개의 분산 저장 시스템이 네트워크 등을 통해 상호 연결된 구조를 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 분산 저장 시스템의 구성도이다.
도 4는 본 발명의 다른 실시예에 따른 분산 저장 시스템의 구성도이다.
도 5는 본 발명의 일 실시예에 따른 파일 동기화 장치의 상세 구성도이다.
도 6은 본 발명의 다른 실시예에 따른 파일 동기화 장치의 상세 구성도이다.
도 7은 본 발명의 일 실시예에 따른 파일 동기화 방법의 흐름도이다.
도 8은 본 발명에 따른 세션 액세스 플래그를 이용한 조회수 집계 방식을 예시하는 도면이다.
도 9는 임의의 파일에 대하여 시간에 따른 조회수의 그래프를 예시한 도면이다.

Claims (22)

  1. 하나의 파일을 복수개의 저장 장치에 분산 저장하는 분산 저장 시스템에서 파일을 동기화하는 장치로서,
    클라이언트로부터 요청되는 파일의 조회수를 집계하는 조회수 집계부;
    소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하는 핫파일 선정부; 및
    상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 핫파일 동기화부를 포함하고,
    상기 조회수 집계부는 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 하는 파일 동기화 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 세션의 길이는 상기 집계 기간을 2의 지수승으로 나눈 값에 해당하는 것을 특징으로 하는 파일 동기화 장치.
  5. 삭제
  6. 삭제
  7. 제1항 또는 제4항에 있어서,
    상기 핫파일 선정부는 핫파일 최소유지기간 동안 상기 핫파일로 선정된 파일에 대하여 핫파일의 지위를 유지하는 것을 특징으로 하는 파일 동기화 장치.
  8. 제1항 또는 제4항에 있어서,
    상기 핫파일 선정부는 핫파일로 선정된 파일에 대한 최근 집계 기간 동안의 조회수가 핫파일 해제 임계값 이하인 경우 해당 파일을 핫파일에서 해제하는 것을 특징으로 하는 파일 동기화 장치.
  9. 제1항 또는 제4항에 있어서,
    상기 핫파일로 선정된 파일의 수가 기 설정된 핫파일수 최대값보다 큰 경우 상기 핫파일 선정 임계값을 변경하는 핫파일 관리부를 더 포함하는 것을 특징으로 하는 파일 동기화 장치.
  10. 제1항 또는 제4항에 있어서,
    상기 핫파일 동기화부는 핫파일로 선정된 파일에 대해 파일 단위 또는 청크(chunk) 단위로 동기화하는 것을 특징으로 하는 파일 동기화 장치.
  11. 파일을 분산 저장하기 위한 복수개의 저장 서버; 및
    상기 파일에 대한 메타데이터를 관리하는 메타데이터 서버를 포함하는 분산 저장 시스템에 있어서,
    상기 메타데이터 서버는 클라이언트로부터 요청되는 파일의 조회수를 집계하여 소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하고, 상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하며,
    상기 메타데이터 서버는 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 하는 분산 저장 시스템.
  12. 제11항에 있어서,
    상기 메타데이터 서버는 상기 핫파일로 선정된 파일에 대해 파일 단위 또는 청크(chunk) 단위로 동기화하는 것을 특징으로 하는 분산 저장 시스템.
  13. 삭제
  14. 삭제
  15. 제11항 또는 제12항에 있어서,
    상기 세션의 길이는 상기 집계 기간을 2의 지수승으로 나눈 값에 해당하는 것을 특징으로 하는 분산 저장 시스템.
  16. 제11항 또는 제12항에 있어서,
    상기 메타데이터 서버는 상기 핫파일로 선정된 파일의 수가 기 설정된 핫파일수 최대값보다 큰 경우 상기 핫파일 선정 임계값을 변경하는 것을 특징으로 하는 분산 저장 시스템.
  17. 하나의 파일을 복수개의 저장 장치에 분산 저장하는 분산 저장 시스템에서 파일을 동기화하는 방법으로서,
    클라이언트에 의해 요청되는 파일의 조회수를 집계하는 단계;
    소정의 집계 기간 동안 집계된 조회수가 핫파일 선정 임계값 이상인 경우 해당 파일을 핫파일로 선정하는 단계; 및
    상기 핫파일로 선정된 파일을 적어도 하나의 다른 분산 저장 시스템으로 복사하여 동기화하는 단계를 포함하고,
    상기 조회수를 집계하는 단계는, 이전 집계 기간 동안 집계된 조회수에서 가장 오래된 세션(session)에 해당하는 조회수를 감산하고 새로운 세션 동안의 조회수를 가산함으로써 현재 집계 기간 동안의 조회수를 집계하며, 상기 가장 오래된 세션에 해당하는 조회수는 상기 이전 집계 기간 동안 집계된 조회수를 상기 이전 집계 기간에 해당하는 세션들 중 세션 액세스 플래그(session access flag)가 1인 세션의 수로 나눈 후 상기 가장 오래된 세션의 세션 액세스 플래그 값을 곱함으로써 계산되는 것을 특징으로 하는 파일 동기화 방법.
  18. 삭제
  19. 제17항에 있어서,
    상기 세션의 길이는 상기 집계 기간을 2의 지수승으로 나눈 값에 해당하는 것을 특징으로 하는 파일 동기화 방법.
  20. 제17항 또는 제19항에 있어서,
    상기 핫파일로 선정된 파일의 수가 기 설정된 핫파일수 최대값보다 큰 경우 상기 핫파일 선정 임계값을 변경하는 단계를 더 포함하는 것을 특징으로 하는 파일 동기화 방법.
  21. 제17항 또는 제19항에 있어서,
    상기 핫파일로 선정된 파일에 대한 최근 집계 기간 동안의 조회수가 핫파일 해제 임계값 이하인 경우 해당 파일을 핫파일에서 해제하는 단계를 더 포함하는 것을 특징으로 하는 파일 동기화 방법.
  22. 제17항 또는 제19항에 따른 파일 동기화 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능 기록매체.
KR1020090105663A 2009-11-03 2009-11-03 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법 KR100985166B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020090105663A KR100985166B1 (ko) 2009-11-03 2009-11-03 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법
US13/500,027 US8700684B2 (en) 2009-11-03 2010-11-03 Apparatus and method for managing a file in a distributed storage system
CN2010800467269A CN102687112A (zh) 2009-11-03 2010-11-03 在分布式存储系统中管理文件的装置及方法
PCT/KR2010/007721 WO2011055976A2 (ko) 2009-11-03 2010-11-03 분산 저장 시스템에서 파일을 관리하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090105663A KR100985166B1 (ko) 2009-11-03 2009-11-03 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR100985166B1 true KR100985166B1 (ko) 2010-10-05

Family

ID=43134948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090105663A KR100985166B1 (ko) 2009-11-03 2009-11-03 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100985166B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101389534B1 (ko) 2013-06-24 2014-04-28 액세스모바일 (주) Id 태그 서비스 제공 시스템 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005092A (ja) * 2002-05-31 2004-01-08 Hitachi Ltd ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
KR20080031256A (ko) * 2005-07-12 2008-04-08 마이크로소프트 코포레이션 분산 저장장치를 갖는 네트워크 컴퓨터 시스템에서의데이터의 싱글 뷰

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004005092A (ja) * 2002-05-31 2004-01-08 Hitachi Ltd ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
KR20080031256A (ko) * 2005-07-12 2008-04-08 마이크로소프트 코포레이션 분산 저장장치를 갖는 네트워크 컴퓨터 시스템에서의데이터의 싱글 뷰

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101389534B1 (ko) 2013-06-24 2014-04-28 액세스모바일 (주) Id 태그 서비스 제공 시스템 및 방법

Similar Documents

Publication Publication Date Title
KR100979750B1 (ko) 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
US11372544B2 (en) Write type based crediting for block level write throttling to control impact to read input/output operations
US8700684B2 (en) Apparatus and method for managing a file in a distributed storage system
Peng et al. VDN: Virtual machine image distribution network for cloud data centers
US9304928B2 (en) Systems and methods for adaptive prefetching
US8918602B2 (en) Dynamically altering time to live values in a data cache
CN101556557B (zh) 一种基于对象存储设备的对象文件组织方法
US8275902B2 (en) Method and system for heuristic throttling for distributed file systems
US11561930B2 (en) Independent evictions from datastore accelerator fleet nodes
WO2012029259A1 (en) Storage system
CN103795781A (zh) 一种基于文件预测的分布式缓存模型
Lee et al. Understanding write behaviors of storage backends in ceph object store
CN106445409A (zh) 一种分布式块存储的数据写入方法及装置
CN113391890A (zh) 一种任务处理方法、装置、设备和计算机存储介质
CN108540510B (zh) 一种云主机创建方法、装置及云服务系统
Xu et al. Rethink the storage of virtual machine images in clouds
US20150331633A1 (en) Method and system of caching web content in a hard disk
US6973536B1 (en) Self-adaptive hybrid cache
US9996470B2 (en) Workload management in a global recycle queue infrastructure
Sazoglu et al. A financial cost metric for result caching
Yang et al. Tombolo: Performance enhancements for cloud storage gateways
US11005776B2 (en) Resource allocation using restore credits
KR100985166B1 (ko) 분산 저장 시스템에서 파일을 동기화하는 장치 및 방법
Xie et al. The improvement of cache replacement algorithm in P2P streaming media system
Chuchuk et al. SISSA: Caching for dataset-based workloads with heterogeneous file sizes

Legal Events

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

Payment date: 20130731

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140711

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150708

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170711

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee