KR102100848B1 - 프락시 서버 및 이에 의한 복제본 관리 방법 - Google Patents

프락시 서버 및 이에 의한 복제본 관리 방법 Download PDF

Info

Publication number
KR102100848B1
KR102100848B1 KR1020140005276A KR20140005276A KR102100848B1 KR 102100848 B1 KR102100848 B1 KR 102100848B1 KR 1020140005276 A KR1020140005276 A KR 1020140005276A KR 20140005276 A KR20140005276 A KR 20140005276A KR 102100848 B1 KR102100848 B1 KR 102100848B1
Authority
KR
South Korea
Prior art keywords
cloud
cloud storage
resource usage
storages
resource
Prior art date
Application number
KR1020140005276A
Other languages
English (en)
Other versions
KR20150085421A (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
Application filed by 주식회사 케이티, 포항공과대학교 산학협력단 filed Critical 주식회사 케이티
Priority to KR1020140005276A priority Critical patent/KR102100848B1/ko
Publication of KR20150085421A publication Critical patent/KR20150085421A/ko
Application granted granted Critical
Publication of KR102100848B1 publication Critical patent/KR102100848B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

복수의 클라우드 저장소 각각에 연결된 프락시(proxy) 서버에 의한 오브젝트의 복제본 관리 방법에 있어서, 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 단계; 복수의 클라우드 저장소 중 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하는 단계; 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정하는 단계; 및 결정된 제 1 오브젝트의 복제본을 복수의 클라우드 저장소들 각각의 자원 사용량에 기초하여 선택된 백업 클라우드 저장소로 복제하는 단계를 포함하는 것을 특징으로 하는 본 발명의 일 실시예에 따른 복제본 관리 방법이 개시된다.

Description

프락시 서버 및 이에 의한 복제본 관리 방법 {PROXY SERVER AND METHOD FOR MANAGING REPLICA THEREBY}
본 발명은 복수의 클라우드 저장소에 저장되어 있는 오브젝트의 복제본을 동적으로 관리하는 프락시 서버 및 이에 의한 복제본 관리 방법에 관한 것이다.
컴퓨터 네트워크 기술의 발전에 따라, 각 단말의 독립적인 하드웨어 성능에 의존하던 기존의 컴퓨팅 환경은, 네트워크 상의 모든 컴퓨팅 자원을 활용하여 단말의 요청에 따라 해당 서비스를 제공하는 클라우드 컴퓨팅(Cloud Computing) 형태로 진화하고 있다.
클라우드 컴퓨팅 서비스란, 인터넷과 같은 정보통신망을 통한 '컴퓨팅 자원의 온 디맨드 아웃소싱 서비스'라고 정의할 수 있다. 클라이언트는 어플리케이션(Application), 스토리지(Storage), 운영체제(Operation System, OS), 보안(Security)등의 필요한 컴퓨팅 자원을 각 클라이언트의 단말에 설치하여 사용하는 것이 아니라, 가상화 기술을 통해 생성된 가상의 컴퓨팅 환경 상의 서비스를 원하는 시점에 원하는 만큼 선택하여 사용하게 된다. 클라이언트는 각 컴퓨팅 자원의 구입비용을 지불하는 것이 아니라 사용량에 기반하여 대가를 지불하게 된다.
클라우드 컴퓨팅 서비스의 구체적인 형태는 클라이언트에게 제공하는 컴퓨팅 자원의 종류에 따라서 다양하게 분류되며, IaaS(Infrastructure-As-A-Service), PaaS(Platform-As-A-Service), SaaS(Software-As-A-Service) 등을 포함할 수 있다.
이 중 IaaS는 서버 또는 스토리지 등 하드웨어 인프라를 클라이언트에게 서비스 형태로 제공하는 것이며, AWS(Amazon Web Service)가 가장 대표적인 예이다.
IaaS의 많은 서비스 카테고리 중 스토리지 자원을 가상 머신 형태로 제공하는 것을 클라우드 스토리지 서비스라 한다. 이러한 클라우드 스토리지 서비스는 일반적으로 분산 저장 시스템의 형태로 구현되고, 저사양의 하드웨어를 활용하여 공용의 저장소 풀(storage pool)을 만들어 탄력적이고 유연한 사용량을 적시에 만족시키는 특징을 가진다.
이를 위해 널리 이용되는 단순하고 강력한 오브젝트 기반 스토리지 기법에서는 물리적인 저장 공간 관리 기능을 저장 장치 자체에서 직접 수행하게 한다. 그러므로, 저장 장치의 성능이 향상되고 손쉽게 저장 장치의 용량을 확장할 수 있다. 또한, 플랫폼과 독립적으로 데이터를 안전하게 공유할 수 있는 특징을 가진다.
클라우드 스토리지 서비스에서 오브젝트에 대한 액세스는 시간이 지남에 따라 급속히 줄어드는 특성을 가지고 있다. 즉, 저장된 후 약 30일이 지나면 다시 엑세스될 확률이 80%이하로 떨어지고, 약 90일이 지나면 20%이하까지 떨어진다. 그러나, 현재의 클라우드 스토리지 서비스는 고정된 개수의 복제본을 유지하는 방법을 사용하므로, 오래된 데이터의 경우에는 불필요하게 스토리지 공간을 낭비하고 이에 따라 관리 비용이 계속적으로 소모됨으로써 비용 효율성이 떨어지는 문제가 있다. 또한, 최근에 저장된 오브젝트의 경우에는 너무 많은 엑세스 요청으로 복제본이 부족하여 가용성을 해치는 문제를 가지고 있다.
본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 클라우드 저장소의 과부하를 방지하는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 특정 클라우드 저장소로 사용자 단말의 요청이 집중되는 것을 방지하는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 자원 영향도가 적은 오브젝트를 클라우드 저장소로부터 삭제하여 클라우드 저장소의 저장 공간을 효율적으로 유지하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 복제본 관리 방법은,
복수의 클라우드 저장소 각각에 연결된 프락시(proxy) 서버에 의한 오브젝트의 복제본 관리 방법에 있어서, 상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 단계; 상기 복수의 클라우드 저장소 중 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하는 단계; 상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정하는 단계; 및 상기 결정된 제 1 오브젝트의 복제본을 상기 복수의 클라우드 저장소들 각각의 자원 사용량에 기초하여 선택된 백업 클라우드 저장소로 복제하는 단계를 포함할 수 있다.
상기 복수의 클라우드 저장소 각각의 자원 사용량은, 상기 복수의 클라우드 저장소 각각의 디스크 활용도 및 네트워크 대역폭 중 적어도 하나에 기초하여 결정될 수 있다.
상기 제 1 오브젝트를 결정하는 단계는, 상기 과부하 클라우드 저장소에 저장된 오브젝트들 중 가장 큰 자원 영향도를 갖는 오브젝트를 상기 제 1 오브젝트로 결정하는 단계를 포함할 수 있다.
상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도는, 상기 오브젝트들에 대한 사용자 단말의 엑세스 주기에 기초하여 결정될 수 있다.
상기 복제하는 단계는, 상기 복수의 클라우드 저장소들 중 자원 사용량이 가장 낮은 클라우드 저장소를 상기 백업 클라우드 저장소로 선택하는 단계를 포함할 수 있다.
상기 복제하는 단계는, 상기 복수의 클라우드 저장소들 각각의 미래 자원 사용량을 예측하는 단계; 및 상기 예측된 미래 자원 사용량에 기초하여 상기 복수의 클라우드 저장소들 중 상기 백업 클라우드 저장소를 결정하는 단계를 포함할 수 있다.
상기 미래 자원 사용량은, 기 설정된 기간 동안 획득된 상기 복수의 클라우드 저장소 각각의 자원 사용량의 평균 변화량에 기초하여 결정될 수 있다.
상기 복제하는 단계는, 상기 백업 클라우드 저장소에 할당된 복제본을 위한 저장 공간의 잔여 용량을 확인하는 단계; 상기 잔여 용량이 제 2 기준 값보다 작은 경우, 상기 저장 공간에 기 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 저장 공간에 기 저장된 오브젝트들 중 삭제될 오브젝트를 선택하는 단계; 및 상기 선택된 삭제될 오브젝트를 상기 백업 클라우드 저장소로부터 삭제하는 단계를 포함할 수 있다.
상기 삭제될 오브젝트를 선택하는 단계는, 상기 제 1 오브젝트의 자원 영향도보다 작은 자원 영향도를 갖는 오브젝트를 상기 삭제될 오브젝트로 선택하는 단계를 포함할 수 있다.
상기 복제본 관리 방법은, 상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들에 대한 자원 영향도를 저장하는 단계; 및 상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들 각각에 대한 사용자 단말의 엑세스에 기초하여 상기 저장된 자원 영향도를 갱신하는 단계를 더 포함할 수 있다.
상기 자원 사용량을 획득하는 단계는, 상기 복수의 클라우드 저장소 각각의 메모리와 상기 프락시 서버의 메모리가 소정의 네트워크로 연결된 공유 메모리 캐시로부터 상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 프락시 서버는,
복수의 클라우드 저장소 각각에 저장된 오브젝트의 복제본을 관리하는 프락시 서버에 있어서, 상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 자원 사용량 수집부; 상기 복수의 클라우드 저장소 중 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하고, 상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정하는 제어부; 및 상기 결정된 제 1 오브젝트의 복제본을 상기 복수의 클라우드 저장소들 각각의 자원 사용량에 기초하여 선택된 백업 클라우드 저장소로 복제하는 복제본 관리부를 포함할 수 있다.
상기 프락시 서버는, 상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들에 대한 사용자 단말의 엑세스 주기에 기초하여 상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들 각각의 자원 영향도를 계산하는 자원 영향도 계산부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 클라우드 저장소의 과부하를 방지할 수 있다.
또한, 본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 특정 클라우드 저장소로 사용자 단말의 요청이 집중되는 것을 방지할 수 있다.
또한, 본 발명의 일 실시예에 따른 프락시 서버 및 이에 의한 복제본 관리 방법은 자원 영향도가 적은 오브젝트를 클라우드 저장소로부터 삭제하여 클라우드 저장소의 저장 공간을 효율적으로 유지할 수 있다.
도 1은 본 발명의 일 실시예에 따른 프락시 서버를 도시하는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 복제본 관리 방법의 순서를 도시하는 순서도이다.
도 3은 도 2의 S240 단계 및 S250 단계를 상세하게 도시하는 순서도이다.
도 4는 본 발명의 일 실시예에 따른 프락시 서버와, 공유 메모리 캐시 및 복수의 클라우드 저장소 사이의 동작을 설명하기 위한 도면이다.
도 5는 오브젝트의 자원 영향도를 계산하는 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 프락시 서버의 구성을 도시하는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 실시예에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.
이하에서는, 먼저 도 1을 참조하여, 클라우드 스토리지 서비스의 기본적인 내용에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 프락시 서버(200)를 도시하는 개념도이다.
도 1에 도시된 바와 같이 프락시 서버(200)는 사용자 단말(100) 및 복수의 클라우드 저장소(300)와 연결될 수 있다.
사용자 단말(100)은 스마트폰, 데스크탑, 노트북, PDA 등 프락시 서버(200)와 소정의 네트워크를 통해 연결될 수 있는 다양한 단말 장치들을 포함한다.
프락시 서버(200)는 사용자 단말(100)과 직접적으로 통신하는 장치로서, 사용자 단말(100)로부터 오브젝트에 대한 소정의 요청을 수신하여 분석 후 처리한다. 프락시 서버(200)는 사용자 단말(100)로부터 전송되는 소정의 요청에 포함된 정보를 분석하여 각 요청에 대한 적절한 행위를 수행한다.
복수의 클라우드 저장소(300)는 오브젝트 및 메타 데이터 등을 저장한다. 오브젝트는 복수의 클라우드 저장소 각각에 저장될 수 있는 데이터를 의미하며, 일 예로서, 프로그램 파일(file)을 포함할 수 있다. 또한, 메타 데이터는 오브젝트, 폴더 및 계정 등과 관련된 정보를 포함한다.
프락시 서버(200)는 사용자 단말(100)로부터 인증 요청이 수신된 경우, 복수의 클라우드 저장소(300) 각각에 메타데이터로서 저장된 사용자의 계정 정보와 사용자 단말(100)로부터 수신된 인증 요청을 비교하여 인증 결과를 사용자 단말(100)로 돌려준다.
또한, 프락시 서버(200)는 사용자 단말(100)로부터 오브젝트에 대한 소정의 요청이 수신되는 경우, 해당 오브젝트가 저장된 위치를 파악하고, 해당 오브젝트를 저장하고 있는 클라우드 저장소(300)로 사용자의 요청을 전달하여 사용자의 요청이 처리되도록 한다. 즉, 프락시 서버(200)는 사용자 단말(100)과 복수의 클라우드 저장소(300) 사이의 작업을 중계할 수 있다.
도 1을 보면, 프락시 서버(200)의 메모리와 복수의 클라우드 저장소(300) 각각의 메모리는 소정의 네트워크로 연결되어 공유 메모리 캐시(400)를 구성할 수 있다. 프락시 서버(200)와 복수의 클라우드 저장소(300) 각각은 공유 메모리 캐시(400)에 소정 데이터를 업로드함으로써, 소정 데이터를 함께 공유할 수 있다. 공유 메모리 캐시(400)는 오브젝트가 저장되어 있는 클라우드 저장소(300)의 위치, 오브젝트에 대한 접근 시간 등의 정보를 저장할 수 있다.
본 발명의 일 실시예에 따른 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량에 기초하여, 복수의 클라우드 저장소(300) 각각에 저장된 오브젝트의 복제본의 생성 및 삭제를 제어할 수 있다. 이에 대해서는 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 복제본 관리 방법의 순서를 도시하는 순서도이다.
S210 단계에서, 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량을 획득한다. 복수의 클라우드 저장소(300) 각각은 자신의 자원 사용량을 측정하여 주기적으로 또는 측정된 자원 사용량이 임계치를 초과할 때 마다 프락시 서버(200)로 전송할 수 있고, 공유 메모리 캐시(400)에 업로드할 수도 있다.
복수의 클라우드 저장소(300) 각각의 자원 사용량은 복수의 클라우드 저장소(300) 각각의 디스크 활용도 및 네트워크 대역폭 중 적어도 하나에 기초하여 결정될 수 있다. 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량에 기초하여 어느 클라우드 저장소(300)가 현재 자원을 많이 사용하고 있는지 등을 파악할 수 있다.
S220 단계에서, 프락시 서버(200)는 복수의 클라우드 저장소(300) 중 기 설정된 제 1 기준 값을 초과하는 자원 사용량을 갖는 클라우드 저장소(300)를 과부하 클라우드 저장소로 선택한다. 즉, 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량에 기초하여 과부하의 위험이 높거나 현재 과부하 상태인 과부하 클라우드 저장소를 선택할 수 있다. 상기 제 1 기준 값은 다양하게 결정될 수 있다.
S230 단계에서, 프락시 서버(200)는 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 과부하 클라우드 저장소에 저장된 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정한다. 자원 영향도는 오브젝트가 클라우드 저장소(300)의 자원에 영향을 미치는 정도를 나타내는 값으로서, 오브젝트에 대한 사용자 단말(100)의 엑세스(access) 주기에 기초하여 결정될 수 있다. 자원 영향도를 결정하는 구체적인 방법에 대해서는 도 5를 참조하여 후술한다.
프락시 서버(200)는 과부하 클라우드 저장소에 저장된 오브젝트들 중 가장 큰 자원 영향도를 갖는 오브젝트를 제 1 오브젝트로 결정할 수 있다. 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각에 저장된 오브젝트들 각각에 대한 자원 영향도를 저장할 수 있고, 복수의 클라우드 저장소(300) 각각에 저장된 오브젝트들 각각에 대한 사용자 단말(100)의 엑세스에 기초하여 기 저장된 자원 영향도를 갱신할 수도 있다.
S240 단계에서, 프락시 서버(200)는 복수의 클라우드 저장소(300)들 각각의 자원 사용량에 기초하여 백업 클라우드 저장소를 선택한다. 백업 클라우드 저장소는 복수의 클라우드 저장소(300)들 중 가장 낮은 자원 사용량을 갖는 클라우드 저장소(300)로 선택될 수 있다.
또한, 구현예에 따라, 프락시 서버(200)는 복수의 클라우드 저장소(300)들 각각의 자원 사용량 모두가 제 1 기준 값을 초과하는 경우, 백업 클라우드 저장소를 선택하지 않고, 제 1 오브젝트의 복제본을 생성하지 않을 수 있다.
S250 단계에서, 프락시 서버(200)는 제 1 오브젝트의 복제본을 백업 클라우드 저장소로 복제한다.
오브젝트의 복제본의 개수가 늘어날수록 저장 용량은 증가하지만, 클라우드 저장소(300)의 자원에 미치는 영향은 감소되므로, 오브젝트의 복제본의 개수를 적절하게 유지하는 것이 매우 중요하다. 본 발명의 일 실시예에 따른 프락시 서버(200)는 복수의 클라우드 저장소(300) 중 특정 클라우드 저장소(300)가 과부하 상태이거나 과부하의 위험이 존재하는 경우, 오브젝트의 복제본을 생성함으로써, 특정 클라우드 저장소(300)의 자원 사용량을 감소시킬 수 있다. 이에 따라 특정 클라우드 저장소(300)는 과부하의 위험으로부터 벗어날 수 있다.
도 3은 도 2의 S240 단계 및 S250 단계를 상세하게 도시하는 순서도이다.
S310 단계에서, 프락시 서버(200)는 복수의 클라우드 저장소(300)들 각각의 미래 자원 사용량을 예측한다.
미래 자원 사용량은 다양한 방법으로 결정될 수 있다. 예를 들어, 미래 자원 사용량은 기 설정된 기간 동안 측정된 복수의 클라우드 저장소 각각의 자원 사용량의 평균 변화량에 기초하여 결정될 수 있다. 구체적으로, 가장 최근에 측정된 복수의 클라우드 저장소(300) 각각의 자원 사용량과, 기 설정된 기간 동안 측정된 복수의 클라우드 저장소(300) 각각의 자원 사용량의 평균 변화량의 합으로 결정될 수 있다. 또는, 기 설정된 기간 동안 획득된 복수의 클라우드 저장소(300) 각각의 자원 사용량의 평균과, 기 설정된 기간 동안 획득된 복수의 클라우드 저장소(300) 각각의 자원 사용량의 평균 변화량의 합으로 결정될 수도 있다. 자원 사용량의 평균은 기 설정된 기간 동안에 주기적으로 측정된 자원 사용량 각각에 소정 가중치를 곱하여 결정될 수 있고, 자원 사용량의 평균 변화량은 기 설정된 기간 동안에 주기적으로 측정된 변화량 각각에 소정 가중치를 곱하여 결정될 수도 있다.
S320 단계에서, 프락시 서버(200)는 예측된 미래 자원 사용량에 기초하여 복수의 클라우드 저장소(300)들 중 백업 클라우드 저장소를 결정한다.
S330 단계에서, 프락시 서버(200)는 백업 클라우드 저장소에 할당된 복제본을 위한 저장 공간의 잔여 용량을 확인한다. 복수의 클라우드 저장소(300) 각각에는 복제본을 위한 저장 공간이 할당될 수 있으며, 해당 저장 공간에는 복제본으로서 생성된 오브젝트들이 저장될 수 있다.
S340 단계에서, 프락시 서버(200)는 상기 저장 공간의 잔여 용량이 기 설정된 제 2 기준 값 미만인지 여부를 판단한다.
백업 클라우드 저장소에 할당된 복제본을 위한 저장 공간의 잔여 용량이 제 2 기준 값 이상인 경우에는 S370 단계에서, 제 1 오브젝트의 복제본이 백업 클라우드 저장소에 복제된다.
또한, 백업 클라우드 저장소에 할당된 복제본을 위한 저장 공간의 잔여 용량이 제 2 기준 값 미만이라면, S350 단계에서, 프락시 서버(200)는 상기 저장 공간에 기 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 저장 공간에 기 저장된 오브젝트들 중 삭제될 오브젝트를 선택한다.
구체적으로, 프락시 서버(200)는 저장 공간에 기 저장된 오브젝트들 중 제 1 오브젝트의 자원 영향도보다 작은 자원 영향도를 갖는 오브젝트를 상기 삭제될 오브젝트로 선택할 수 있다, 만약, 제 1 오브젝트의 자원 영향도보다 작은 자원 영향도를 갖는 오브젝트가 상기 저장 공간에 존재하지 않는 경우, 제 1 오브젝트의 복제본을 백업 클라우드 저장소에 저장할 실익이 없으므로, 제 1 오브젝트의 복제본의 생성을 중단한다.
S360 단계에서, 프락시 서버(200)는 삭제될 오브젝트를 백업 클라우드 저장소로부터 삭제하고, S370 단계에서, 제 1 오브젝트의 복제본을 백업 클라우드 저장소에 복제한다.
도 4는 본 발명의 일 실시예에 따른 프락시 서버(200)와, 공유 메모리 캐시(400) 및 클라우드 저장소(300) 사이의 동작을 설명하기 위한 도면이다.
먼저, ① 프락시 서버(200)는 공유 메모리 캐시(400)에 저장된 복수의 클라우드 저장소(300) 각각의 자원 사용량을 획득한다. 복수의 클라우드 저장소(300)는 공유 메모리 캐시(400)로 자신의 자원 사용량을 주기적으로 업로드할 수 있다. ② 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량에 기초하여 과부하 상태이거나 과부하 상태가 될 위험이 있는 과부하 클라우드 저장소(310)를 선택한다. 다음으로, ③ 프락시 서버(200)는 과부하 클라우드 저장소(310)에 저장된 오브젝트들 각각의 자원 영향도에 기초하여 복제본을 생성할 제 1 오브젝트를 결정한다. ④ 프락시 서버(200)는 복수의 클라우드 저장소(300) 각각의 자원 사용량에 기초하여 백업 클라우드 저장소(330)를 선택하고, ⑤ 복제본을 위해 백업 클라우드 저장소(330)에 할당된 저장 공간의 잔여 용량을 확인한다. ⑥ 프락시 서버(200)는 백업 클라우드 저장소(330)의 저장 공간의 용량이 충분하거나, 저장 공간의 용량이 충분하지 않더라도 저장 공간에 기 저장된 오브젝트를 삭제할 수 있는 경우, 제 1 오브젝트의 복제본을 백업 클라우드 저장소(330)로 복제한다. 마지막으로, ⑦ 프락시 서버(200)는 제 1 오브젝트의 복제본에 관한 정보, 예를 들어, 제 1 오브젝트의 복제본이 생성된 위치, 복제본의 개수 등에 관한 정보를 공유 메모리 캐시(400)에 업로드한다.
이하에서는, 도 5를 참조하여, 오브젝트의 자원 영향도를 계산하는 방법에 대해 설명한다. 도 5는 오브젝트의 자원 영향도를 계산하는 방법을 설명하기 위한 순서도이다.
S510 단계에서, 프락시 서버(200)는 복수의 클라우드 저장소(300)에 저장된 임의의 오브젝트에 대한 사용자 단말(100)의 소정의 요청을 수신한다. 사용자 단말(100)의 소정의 요청은 임의의 오브젝트에 대한 실행, 복사, 수정 등의 요청을 포함할 수 있다.
S520 단계에서, 프락시 서버(200)는 사용자 단말(100)에 의해 선택된 오브젝트의 엑세스 주기가 기 저장되어 있는지를 판단한다. 엑세스 주기는 임의의 오브젝트에 대한 사용자 단말(100)의 엑세스 시간 간격을 의미한다. 예를 들어, 사용자 단말(100)이 2시 10분에 임의의 오브젝트에 대한 소정의 요청을 프락시 서버(200)로 전송하고, 이후 2시 12분에 동일한 오브젝트에 대한 소정의 요청을 프락시 서버(200)로 전송한 경우, 해당 오브젝트에 대한 엑세스 주기는 120초로 결정된다.
오브젝트의 엑세스 주기가 기 저장되어 있는 경우, S530 단계에서, 프락시 서버(200)는 기 저장된 엑세스 주기와 가장 최근에 측정된 엑세스 주기에 기초하여 사용자 단말(100)에 의해 선택된 오브젝트의 엑세스 주기를 갱신한다. 가장 최근에 측정된 엑세스 주기란, 임의의 오브젝트가 가장 최근에 엑세스된 시간과 동일한 오브젝트가 가장 최근의 바로 이전에 엑세스된 시간 사이의 차이를 의미한다. 프락시 서버(200)는 기 저장된 엑세스 주기와 가장 최근에 측정된 엑세스 주기 각각에 가중치를 곱한 후 서로 합함으로써, 오브젝트의 엑세스 주기를 갱신할 수 있다.
오브젝트의 엑세스 주기가 기 저장되어 있지 않은 경우, S540 단계에서, 프락시 서버(200)는 사용자 단말(100)에 의해 선택된 오브젝트의 엑세스 주기를 기 설정된 초기 값으로 저장한다.
S550 단계에서, 프락시 서버(200)는 오브젝트의 엑세스 주기에 기초하여 오브젝트의 자원 영향도를 계산한다. 예를 들어, 프락시 서버(200)는 오브젝트의 자원 영향도를 아래의 수학식 1을 이용하여 계산할 수 있다.
[수학식 1]
오브젝트의 영향도 = 1 / (오브젝트의 엑세스 주기 × 오브젝트의 복제본 개수)
즉, 상기 수학식 1을 보면, 오브젝트의 엑세스 주기가 매우 짧더라도, 오브젝트의 복제본의 개수가 많으면 오브젝트의 영향도는 작아지며, 반대로 오브젝트의 엑세스 주기가 매우 길더라도, 오브젝트의 복제본의 개수가 적으면 오브젝트의 영향도는 커진다.
도 6은 본 발명의 일 실시예에 따른 프락시 서버(600)의 구성을 도시하는 블록도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 프락시 서버(600)는 API(610)(application programming interface), 요청 처리부(630), 자원 사용량 수집부(650), 제어부(670) 및 복제본 관리부(690)를 포함할 수 있다. API(610), 요청 처리부(630), 자원 사용량 수집부(650), 제어부(670) 및 복제본 관리부(690)는 마이크로 프로세서로 구성될 수 있다.
API(610)는 사용자 단말이 프락시 서버(600)와 통신하기 위해 호출하는 프로그램 인터페이스이다.
요청 처리부(630)는 사용자 단말로부터 소정의 요청을 수신하고, 수신된 요청을 분석하여 각 요청에 부합하는 행위를 수행한다. 예를 들어, 요청 처리부(630)는 사용자 단말로부터 인증 요청이 수신되면, 사용자의 계정 정보를 참조하여 사용자 단말로 인증 결과를 전달하고, 사용자 단말로부터 임의의 오브젝트에 대한 수정, 실행 등의 요청이 수신되면, 해당 오브젝트를 저장하고 있는 클라우드 저장소로 사용자 단말로부터 수신된 요청을 전달한다.
자원 사용량 수집부(650)는 복수의 클라우드 저장소 각각의 자원 사용량을 획득한다. 자원 사용량 수집부(650)는 복수의 클라우드 저장소 각각으로부터 자원 사용량을 직접 수신할 수 있고, 복수의 클라우드 저장소 각각에 의해 공유 메모리 캐시에 업로드된 자원 사용량을 획득할 수도 있다.
제어부(670)는 복수의 클라우드 저장소 중 기 설정된 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하고, 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 과부하 클라우드 저장소에 저장된 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정한다. 또한, 제어부(670)는 복수의 클라우드 저장소 각각의 자원 사용량에 기초하여 백업 클라우드 저장소를 결정할 수도 있다. 과부하 클라우드 저장소, 제 1 오브젝트 및 백업 클라우드 저장소를 결정하는 방법에 대해서는 전술하였는바, 상세한 설명을 생략한다.
복제본 관리부(690)는 제 1 오브젝트의 복제본을 백업 클라우드 저장소로 복제한다.
도 6에는 도시되지 않았지만, 본 발명의 일 실시예에 따른 프락시 서버(600)는 복수의 클라우드 저장소 각각에 저장된 오브젝트들에 대한 사용자의 엑세스 주기에 기초하여 복수의 클라우드 저장소 각각에 저장된 오브젝트들 각각의 자원 영향도를 계산하는 자원 영향도 계산부를 더 포함할 수 있다. 자원 영향도 계산부는 사용자 단말로부터 임의의 오브젝트에 대한 소정의 요청이 수신될 때마다, 오브젝트들에 대한 자원 영향도를 갱신할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 사용자 단말
200, 600: 프락시 서버
300: 클라우드 저장소
400: 공유 메모리 캐시
610: API
630: 요청처리부
650: 자원 사용량 수집부
670: 제어부
690: 복제본 관리부

Claims (13)

  1. 복수의 클라우드 저장소 각각에 연결된 프락시(proxy) 서버에 의한 오브젝트의 복제본 관리 방법에 있어서,
    상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 단계;
    상기 복수의 클라우드 저장소 중 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하는 단계;
    상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정하는 단계; 및
    상기 결정된 제 1 오브젝트의 복제본을 상기 복수의 클라우드 저장소들 각각의 자원 사용량에 기초하여 선택된 백업 클라우드 저장소로 복제하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  2. 제1항에 있어서,
    상기 복수의 클라우드 저장소 각각의 자원 사용량은,
    상기 복수의 클라우드 저장소 각각의 디스크 활용도 및 네트워크 대역폭 중 적어도 하나에 기초하여 결정된 것을 특징으로 하는 복제본 관리 방법.
  3. 제1항에 있어서,
    상기 제 1 오브젝트를 결정하는 단계는,
    상기 과부하 클라우드 저장소에 저장된 오브젝트들 중 가장 큰 자원 영향도를 갖는 오브젝트를 상기 제 1 오브젝트로 결정하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  4. 제1항에 있어서,
    상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도는,
    상기 오브젝트들에 대한 사용자 단말의 엑세스 주기에 기초하여 결정되는 것을 특징으로 하는 복제본 관리 방법.
  5. 제1항에 있어서,
    상기 복제하는 단계는,
    상기 복수의 클라우드 저장소들 중 자원 사용량이 가장 낮은 클라우드 저장소를 상기 백업 클라우드 저장소로 선택하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  6. 제1항에 있어서,
    상기 복제하는 단계는,
    상기 복수의 클라우드 저장소들 각각의 미래 자원 사용량을 예측하는 단계; 및
    상기 예측된 미래 자원 사용량에 기초하여 상기 복수의 클라우드 저장소들 중 상기 백업 클라우드 저장소를 결정하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  7. 제6항에 있어서,
    상기 미래 자원 사용량은,
    기 설정된 기간 동안 획득된 상기 복수의 클라우드 저장소 각각의 자원 사용량의 평균 변화량에 기초하여 결정되는 것을 특징으로 하는 복제본 관리 방법.
  8. 제1항에 있어서,
    상기 복제하는 단계는,
    상기 백업 클라우드 저장소에 할당된 복제본을 위한 저장 공간의 잔여 용량을 확인하는 단계;
    상기 잔여 용량이 제 2 기준 값보다 작은 경우, 상기 저장 공간에 기 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 저장 공간에 기 저장된 오브젝트들 중 삭제될 오브젝트를 선택하는 단계; 및
    상기 선택된 삭제될 오브젝트를 상기 백업 클라우드 저장소로부터 삭제하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  9. 제8항에 있어서,
    상기 삭제될 오브젝트를 선택하는 단계는,
    상기 제 1 오브젝트의 자원 영향도보다 작은 자원 영향도를 갖는 오브젝트를 상기 삭제될 오브젝트로 선택하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  10. 제1항에 있어서,
    상기 복제본 관리 방법은,
    상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들에 대한 자원 영향도를 저장하는 단계; 및
    상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들 각각에 대한 사용자 단말의 엑세스에 기초하여 상기 저장된 자원 영향도를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 복제본 관리 방법.
  11. 제1항에 있어서,
    상기 자원 사용량을 획득하는 단계는,
    상기 복수의 클라우드 저장소 각각의 메모리와 상기 프락시 서버의 메모리가 소정의 네트워크로 연결된 공유 메모리 캐시로부터 상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 단계를 포함하는 것을 특징으로 하는 복제본 관리 방법.
  12. 복수의 클라우드 저장소 각각에 저장된 오브젝트의 복제본을 관리하는 프락시 서버에 있어서,
    상기 복수의 클라우드 저장소 각각의 자원 사용량을 획득하는 자원 사용량 수집부;
    상기 복수의 클라우드 저장소 중 제 1 기준 값을 초과하는 자원 사용량을 갖는 과부하 클라우드 저장소를 선택하고, 상기 과부하 클라우드 저장소에 저장된 오브젝트들 각각의 자원 영향도에 기초하여, 상기 오브젝트들 중 복제본을 생성할 제 1 오브젝트를 결정하는 제어부; 및
    상기 결정된 제 1 오브젝트의 복제본을 상기 복수의 클라우드 저장소들 각각의 자원 사용량에 기초하여 선택된 백업 클라우드 저장소로 복제하는 복제본 관리부를 포함하는 것을 특징으로 하는 프락시 서버.
  13. 제12항에 있어서,
    상기 프락시 서버는,
    상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들에 대한 사용자 단말의 엑세스 주기에 기초하여 상기 복수의 클라우드 저장소 각각에 저장된 오브젝트들 각각의 자원 영향도를 계산하는 자원 영향도 계산부를 더 포함하는 것을 특징으로 하는 프락시 서버.
KR1020140005276A 2014-01-15 2014-01-15 프락시 서버 및 이에 의한 복제본 관리 방법 KR102100848B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140005276A KR102100848B1 (ko) 2014-01-15 2014-01-15 프락시 서버 및 이에 의한 복제본 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140005276A KR102100848B1 (ko) 2014-01-15 2014-01-15 프락시 서버 및 이에 의한 복제본 관리 방법

Publications (2)

Publication Number Publication Date
KR20150085421A KR20150085421A (ko) 2015-07-23
KR102100848B1 true KR102100848B1 (ko) 2020-04-14

Family

ID=53875441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140005276A KR102100848B1 (ko) 2014-01-15 2014-01-15 프락시 서버 및 이에 의한 복제본 관리 방법

Country Status (1)

Country Link
KR (1) KR102100848B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101081286B1 (ko) * 2010-02-26 2011-11-08 인하대학교 산학협력단 가용율 기반의 서버 재설정 장치 및 방법
KR20120071980A (ko) * 2010-12-23 2012-07-03 주식회사 케이티 맵 리듀스를 이용한 데이터 처리 장치 및 방법
KR20130039213A (ko) * 2011-10-11 2013-04-19 한국전자통신연구원 장치 클라우드를 이용한 가상 머신 제공 시스템 및 그 방법
KR101844786B1 (ko) * 2011-12-14 2018-04-06 한국전자통신연구원 클라우드 시스템 간의 인프라 공유 지원 장치 및 방법

Also Published As

Publication number Publication date
KR20150085421A (ko) 2015-07-23

Similar Documents

Publication Publication Date Title
US20230333942A1 (en) Tiered cloud storage for different availability and performance requirements
JP6437007B2 (ja) ブロックベースのストレージにおけるページキャッシュ書き込みロギング
US9158460B2 (en) Selecting data nodes using multiple storage policies in cloud storage system
CA2901668C (en) Deduplication storage system with efficient reference updating and space reclamation
KR101764085B1 (ko) 개별 데이터 볼륨들에 대한 내구성 특성들을 동적으로 수정하기
CN108196978B (zh) 数据存储方法、装置、数据存储系统及可读存储介质
JP2018514018A (ja) リソース配置を最適化するための適時性リソース移行
JP5600277B2 (ja) クラウドサービス再配置システムと方法およびプログラム
US10893101B1 (en) Storage tier selection for replication and recovery
KR101959601B1 (ko) 관리 시스템 및 관리 시스템을 제어하기 위한 방법
CN108551399B (zh) 一种云环境下服务的部署方法、系统及相关装置
KR20120116774A (ko) 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
CN107301090B (zh) 在存储服务器中为应用设置数据处理路径的方法及装置
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
US10747458B2 (en) Methods and systems for improving efficiency in cloud-as-backup tier
US20170153909A1 (en) Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine
KR20140143775A (ko) 캐시 관리 기법
US10931750B1 (en) Selection from dedicated source volume pool for accelerated creation of block data volumes
CN109587185B (zh) 云存储系统和云存储系统中的对象处理方法
CN112631994A (zh) 数据迁移方法及系统
CN107783826B (zh) 一种虚拟机迁移方法、装置及系统
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US10956442B1 (en) Dedicated source volume pool for accelerated creation of block data volumes from object data snapshots
KR102100848B1 (ko) 프락시 서버 및 이에 의한 복제본 관리 방법
KR101671119B1 (ko) 클라우드 컴퓨팅 시스템의 자원 관리 방법

Legal Events

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