KR20200101502A - 클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 - Google Patents
클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 Download PDFInfo
- Publication number
- KR20200101502A KR20200101502A KR1020190011454A KR20190011454A KR20200101502A KR 20200101502 A KR20200101502 A KR 20200101502A KR 1020190011454 A KR1020190011454 A KR 1020190011454A KR 20190011454 A KR20190011454 A KR 20190011454A KR 20200101502 A KR20200101502 A KR 20200101502A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- hash value
- downloaded
- file distribution
- distribution managers
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/1827—Management specifically adapted to NAS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명의 클라우드 컴퓨팅 네트워크 시스템은, 적어도 두 개의 파일 분산 관리자들이 스토리지 서버에 저장된 파일을 병렬로 다운로드하고, 다운로드된 파일에 대한 해쉬값을 계산한다. 적어도 두 개의 파일 분산 관리자들로부터의 해쉬값들이 일치할 때 다운로드된 파일을 클라우드 멤버들에게 전송함으로써 스토리지 서버로부터 다운로드되는 파일의 오류를 최소화할 수 있다.
Description
본 발명은 분산 처리가 가능한 클라우드 컴퓨팅 네트워크 시스템에 관한 것이다.
일반적으로 임의의 네트워크를 통해 전자화된 정보를 전달받기 위해서는 소정의 정보를 요구하는 컴퓨터(이하 클라이언트라 칭함)와, 클라이언트로부터 요구된 정보를 제공하는 컴퓨터(이하 서버라 칭함) 그리고 이들 간의 정보 전달 경로를 구성하는 네트워크가 존재해야 한다. 이 중 서버와 네트워크는 하나의 클라이언트에게만 서비스되는 자원이 아니므로, 복수의 서로 다른 클라이언트들의 요구에 응답할 때 과중한 부하가 걸리게 된다.
그 결과, 서버에 동시에 접속할 수 있는 클라이언트의 수는 제한되어야 하고 정보를 요구하는 클라이언트는 자신에게 할당된 대역폭 중의 일부만을 사용할 수 밖에 없다.
이와 같은 문제점을 해결하기 위해서 인터넷을 통해 정보를 판매하는 콘텐츠 제공자(contents provider)들은 사용자/고객의 수를 늘이고 서비스의 품질을 향상시키기 위해서 서버의 역할을 할 수 있는 대용량의 고가 컴퓨터를 다수 구입하거나, 네트워크의 대역폭을 증가시키는 등의 막대한 투자를 해야한다. 콘텐츠 제공자들은 정보 제공 서비스를 안정적으로 제공하기 위하여 최대 클라이언트 수를 예측하고 그에 대비한 자원을 준비하여야 하는데, 예측한 최대 클라이언트 수만큼의 정보 요구가 발생하지 않은 경우에는 자원 낭비가 초래되고, 예측한 최대 클라이언트 수보다 정보를 요구하는 클라이언트의 수가 많은 경우에는 정상적인 서비스 제공이 어려운 문제는 여전히 존재한다.
따라서 본 발명의 목적은 한정된 자원을 가지고 많은 클라이언트들에게 서비스를 제공할 수 있는 클라우드 컴퓨팅 네트워크 시스템을 제공하는 데 있다.
본 발명의 다른 목적은 클라우딩 컴퓨팅 네트워크 시스템에서 다수의 멤버들에게 파일을 분산 저장하되, 파일의 안정성을 높일 수 있는 파일 분산 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 클라우드 컴퓨팅 네트워크 시스템의 파일 분산방법은: 적어도 두 개의 파일 분산 관리자들이 스토리지 서버에 저장된 파일을 병렬로 다운로드하는 단계와, 상기 파일 분산 관리자들 각각에서 상기 다운로드된 파일에 대한 해쉬값을 계산하는 단계, 그리고 상기 파일 분산 관리자들로부터의 상기 해쉬값들이 일치할 때 상기 다운로드된 파일을 클라우드 멤버들에게 전송하는 단계를 포함한다.
이 실시예에 있어서, 상기 다운로드 단계는, 상기 파일을 미리 설정된 미리 설정된 크기의 데이터 블록 단위로 다운로드한다.
이 실시예에 있어서, 상기 해쉬값 계산 단계는, 상기 파일 분산 관리자들 각각에서 상기 데이터 블록에 대한 블록 해쉬값을 계산한다.
이 실시예에 있어서, 상기 전송 단계는, 상기 파일 분산 관리자들로부터의 상기 데이터 블록에 대한 블록 해쉬값들이 일치할 때 상기 다운로드된 데이터 블록을 상기 클라우드 멤버들로 전송한다.
이 실시예에 있어서, 상기 전송 단계는, 상기 블록 해쉬값을 상기 클라우드 멤버들로 더 전송한다.
이 실시예에 있어서, 상기 전송 단계는, 상기 파일 분산 관리자들로부터의 상기 데이터 블록에 대한 블록 해쉬값들이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하는 단계를 포함한다.
이 실시예에 있어서, 파일 분산 방법은, 상기 스토리지 서버에 저장된 상기 파일은 데이터 파일 및 해쉬값을 포함하고, 상기 다운로드된 데이터 파일에 대한 해쉬값을 계산하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 계산된 해쉬값과 상기 다운로드된 파일에 포함된 해쉬값이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어한다.
본 발명의 다른 특징에 따른 클라우드 컴퓨팅 네트워크 시스템은, 복수의 클라우드 멤버들과, 파일을 저장하는 스토리지 서버와, 각각이 상기 스토리지 서버로부터 상기 파일을 다운로드하고, 다운로드된 파일의 해쉬값을 계산하며, 그리고 통신 네트워크를 통하여 상기 복수의 클라우드 멤버들에게 상기 다운로드된 파일을 전송하는 적어도 두 개의 파일 분산 관리자들, 그리고 상기 적어도 두 개의 파일 분산 관리자들에 의해서 계산된 상기 해쉬
값들이 일치하는 지를 판별하고, 판별 결과에 따라서 상기 파일 분산 관리자들을 제어하는 마스터 관리자를 포함한다.
이 실시예에 있어서, 상기 적어도 두 개의 파일 분산 관리자들 각각은, 상기 파일을 미리 설정된 크기의 데이터 블록 단위로 다운로드하고, 상기 데이터 블록에 대한 상기 해쉬값을 계산한다.
이 실시예에 있어서, 상기 적어도 두 개의 파일 분산 관리자들 각각은, 상기 마스터 관리자의 제어에 따라서 상기 다운로드된 데이터 블록을 상기 클라우드 멤버들로 전송한다.
이 실시예에 있어서, 상기 마스터 관리자는, 상기 적어도 두 개의 파일 분산 관리자들로부터의 상기 해쉬값들이 일치할 때, 상기 데이터 블록을 상기 클라우드 멤버들로 전송하도록, 상기 파일 분산 관리자들을 제어한다.
이 실시예에 있어서, 상기 적어도 두 개의 파일 분산 관리자들 각각은, 상기 마스터 관리자의 제어에 따라서 상기 데이터 블록 및 상기 데이터 블록에 대한 해쉬값을 상기 클라우드 멤버들로 전송한다.
상기 마스터 관리자는, 상기 적어도 두 개의 파일 분산 관리자들로부터의 상기 해쉬값들이 일치하지 않을 때,
상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어한다.
이 실시예에 있어서, 상기 스토리지 서버에 저장된 상기 파일은 파일 전체에 대한 해쉬값을 포함한다.
이 실시예에 있어서, 상기 적어도 두 개의 파일 분산 관리자들은, 상기 다운로드된 파일에 포함된 해쉬값과 상기 다운로드된 파일로부터 계산된 해쉬값을 상기 마스터 관리자에게 전달한다.
이 실시예에 있어서, 상기 마스터 관리자는, 상기 다운로드된 파일에 포함된 해쉬값과 상기 다운로드된 파일로부터 계산된 해쉬값이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어한다.
이와 같은 본 발명의 클라우딩 컴퓨팅 네트워크 시스템은 파일 스토리지에 저장된 파일들을 클라우드 멤버들에게 분산시킴으로써 한정된 자원을 가지고 많은 클라이언트들에게 서비스를 제공할 수 있다.
특히, 하나의 파일을 다수의 클라우드 멤버들에게 분산 저장할 수 있으므로 클라이언트는 빠른 속도로 원하는 파일을 다운로드할 수 있다. 더욱이, 하나의 파일을 다수의 클라우드 멤버들에게 분산 저장할 때의 오류를 최소화할 수 있어서 분산 저장되는 파일의 안정성이 향상된다.
도 1은 본 발명의 바람직한 실시예에 따른 클라우딩 컴퓨팅 네트워크 시스템을 보여주는 도면이다.
도 2는 도 1에 도시된 메인 서버의 구성을 보여주는 도면이다
도 3은 파일 분산 관리자들에 의해서 해쉬값이 계산되는 과정을 보여주는 블록도이다.
도 4는 스토리지 서버로부터 파일 분산 관리자들로 다운로드되는 파일 블록들을 보여주는 도면이다.
도 5는 본 발명의 바람직한 실시예에 따른 클라우드 컴퓨팅 네트워크 시스템의 메인 서버에서 파일을 분산하는 방법을 보여주는 플로우차트이다.
도 2는 도 1에 도시된 메인 서버의 구성을 보여주는 도면이다
도 3은 파일 분산 관리자들에 의해서 해쉬값이 계산되는 과정을 보여주는 블록도이다.
도 4는 스토리지 서버로부터 파일 분산 관리자들로 다운로드되는 파일 블록들을 보여주는 도면이다.
도 5는 본 발명의 바람직한 실시예에 따른 클라우드 컴퓨팅 네트워크 시스템의 메인 서버에서 파일을 분산하는 방법을 보여주는 플로우차트이다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 클라우드 컴퓨팅 네트워크(Cloud Computing Network, CCN)란 네트워크 및 스토리지 자원의 가상화를 통해 사용자에게 각종 소프트웨어와 보안 솔루션, 컴퓨팅 능력까지 온디맨드(on-demend) 방식으로 제공하기 위한 네트워크 서비스이다. 이러한 CCN 서비스는 네트워크 효율성을 향상시키고, 트래픽 집중 시에도 속도 저하가 발생하지 않으므로 고품질의 서비스 제공이 가능해진다. 본 발명은 이와 같은 CCN을 적용한 시스템 및 그것의 파일분산 방법을 제공한다.
도 1은 본 발명의 바람직한 실시예에 따른 클라우딩 컴퓨팅 네트워크 시스템을 보여주는 도면이다.
도 1을 참조하면, 클라우딩 컴퓨팅 네트워크 시스템(100)은 서비스를 제공하는 메인 서버(110), 대용량 파일을 저장하는 스토리지 서버(120) 그리고 네트워크(130)를 통해 메인 서버와 연결되는 클라우드 멤버들(151-153)을 포함한다.
클라이언트들(141-143)은 퍼스널 컴퓨터를 이용하여 네트워크(130)를 통해 메인 서버(110)에 접속하며, 네트워크(130)를 통해 클라우드 멤버들(151-153)과도 연결될 수 있다. 클라이언트들(141-143)은 메인 서버(110)가 제공 가능한 파일들 중 일부에 대한 다운로드를 요청하고, 메인 서버(110)의 제어에 따라서 스토리지 서버(120) 또는 클라우드 멤버들(151-153)로부터 원하는 파일을 다운로드한다. 클라이언트들(141-143)은 데스크탑 컴퓨터, 노트북과 같은 퍼스널 컴퓨터 뿐만 아니라 PDA(personal digital assistant), 휴대폰 등과 같이 무선 인터넷이 가능한 다양한 휴대용 단말기들(handheld terminal)이 될 수 있다.
메인 서버(110)와 클라이언트들(141-143) 사이에 연결된 네트워크(130)인 인터넷 회선은 유한한 자원이다. 인터넷 회선의 용량을 늘리기 위해서 메인 서버(110)를 운영하는 사업자는 IDC(internet data center) 또는 ISP(internet service provider)에게 더 많은 회선 사용 비용을 지불해야만 한다. 그러므로 메인 서버(110)를 운영하는 사업자는 한정된 회선을 가지고 효율적으로 클라이언트들(141-143)에게 다양한 서비스를 제공하기 위한 노력이 요구된다.
스토리지 서버(120)는 어플리케이션 프로그램 파일, 게임 프로그램 파일, 텍스트 데이터 파일, 문서 파일, 그림파일, 음악 파일, 동영상 파일 및 바코드 파일 등과 같은 대용량 데이터를 제공하는 사업자(콘텐츠 제공자)로부터 제공된 파일들을 저장한다. 스토리지 서버(120)에 저장된 파일들은 메인 서버(110)의 제어에 의해서 클라이언트들(141-143)로 제공될 수 있다. 메인 서버(110)와 스토리지 서버(120)는 전용 회선을 통해 직접 연결되거나, 근거리 통신 네트워크 등을 통해 연결될 수 있으며 또는 인터넷과 같은 네트워크(130)를 통해 연결될 수도 있다.
메인 서버(110)는 클라이언트들(141-143)의 파일 요청에 응답해서 스토리지 서버(120)에 저장된 파일들이 클라이언트들(141-143)에게 제공되도록 제어한다. 메인 서버(110)는, 네트워크(130)의 한정된 자원을 효율적으로 이용하기 위하여, 스토리지 서버(120)에 저장된 파일들을 클라우드 멤버들(151-153)에게 분산 저장하고, 클라이언트들(141-143)이 스토리지 서버(120) 대신 클라우드 멤버들(151-153)로부터 파일을 다운로드하도록 제어한다.
클라우드 멤버들(151-153)은 퍼스널 컴퓨터를 이용하여 네트워크(130)를 통해 메인 서버(110)와 연결된다. 클라우드 멤버들(151-153)은 메인 서버(110)의 제어에 따라서 스토리지 서버(120)에 저장된 파일을 다운로드하고, 클라이언트들(141-143)에게 파일을 전송한다.
네트워크(130)를 통하여 메인 서버(110)와 연결되는 클라이언트들(141-143)은 클라우드 멤버들(151-153)로부터 파일을 다운로드하기 위해서 필요한 클라이언트 소프트웨어 프로그램을 저장하는 메모리(미 도시됨)를 포함하며, 상기 클라이언트 소프트웨어 프로그램은 프로세서(미 도시됨)에 의해서 실행된다.
도 2는 도 1에 도시된 메인 서버(110)의 구성의 일 예를 보여주는 도면이다.
도 2를 참조하면, 메인 서버(110)는 클라이언트 관리자(111), 마스터 관리자(112), 멤버 관리자(113) 그리고 파일 분산 관리자들(114, 115)를 포함한다. 클라이언트 관리자(110)는, 스토리지 서버(120)에 저장되어 있으며 클라이언트들에게 제공 가능한 파일 리스트를 웹 브라우저(web browser)에 개시한다. 클라이언트들(141-143)은 웹 브라우저의 파일 리스트에 포함된 파일들에 대한 다운로드를 요청한다.
클라이언트 관리자(111)는 파일을 요청하는 클라이언트들(141-143)에 대한 관리를 담당한다. 즉, 클라이언트 관리자(111)는 동일한 파일을 요청하는 클라이언트들의 수, 소정 시간동안 동일한 파일을 다운로드한 클라이언트들의 수 및 파일에 대한 트래픽 등에 따라서 클라이언트들(141-143)로부터 요청된 파일이 핫파일인 지를 판별한다. 클라이언트 관리자(110)는 클라이언트들(141-143)에 의해서 요청된 파일이 핫파일이 아니면 요청된 파일이 스토리지 서버(120)에서 클라이언트들(141-143)로 전송되도록 제어한다. 클라이언트 관리자(110)는 클라이언트들(141-143)로부터 요청된 파일이 핫파일이면 스토리지 서버(120)에 저장된 파일이 클라우드 멤버들(151-153)에게 분산 저장되도록 파일 분산 관리자(114)를 제어한다.
멤버 관리자(113)는 클라우드 멤버들(151-153)을 관리한다. 즉, 클라우드 멤버들(151-153) 중 파워 온 상태이고, 네트워크(130)에 접속한 상태이며, 파일을 다운로드 가능한 클라우드 멤버들에 대한 정보를 주기적으로 수집한다. 멤버 관리자(113)는 수집된 클라우드 멤버에 대한 정보를 파일 분산 관리자들(114, 115)로 제공한다.
파일 분산 관리자들(114, 115)은 핫파일로 설정된 파일을 스토리지 서버(120)로부터 다운로드한다. 파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 미리 설정된 크기(예를 들면, 10MByte)의 데이터가 다운로드되면 해쉬값(hash value)을 계산한다. 이 실시예에서, 다운로드되는 파일의 미리 설정된 크기의 데이터를 데이터 블록(data block)이라 칭한다. 파일 분산 관리자들(114, 115) 각각에 의해서 계산된 해쉬값들은 마스터 관리자(112)로 제공된다.
해쉬값은 해쉬 함수의 결과로 만들어지는 코드이다. 해쉬 함수는 입력값의 길이에 상관없이 일정한 길이를 가진 출력값 즉, 해쉬값을 갖는다. 이 때 서로 다른 입력값에 대해서는 서로 다른 해쉬값이 구해지는 것으로 알려져 있다. 또한 해쉬 함수는 단방향 함수이므로, 출력값으로 입력값을 유추할 수 없다. 파일의 내용이 수정,삭제 또는 추가되면 해쉬 함수의 입력값이 바뀌기 때문에 출력값 또한 달라진다. 따라서 원래의 파일 해쉬값과 다운로드된 파일의 해쉬값을 비교하여 파일의 변조 여부를 확인할 수 있다. 대표적인 해쉬 함수로는 MD5, SHA등이 있다.
도 3은 파일 분산 관리자들(114, 115)에 의해서 해쉬값이 계산되는 과정을 보여주는 블록도이고, 도 4는 스토리지 서버(120)로부터 파일 분산 관리자들(114, 115)로 다운로드되는 파일 블록들을 보여주는 도면이다.
도 3 및 도 4를 참조하면, 스토리지 서버(120)로부터 파일 분산 관리자들(114, 115)로 다운로드되는 파일(D_FILE)의 크기는 작게는 수십 메가바이트(MByte)에서 수백 메가바이트에 이른다. 이와 같이 대용량의 파일(D_FILE)을 클라우드 멤버들(151-153)에 효율적으로 분산 저장하기 위하여 본 발명의 파일 분산 관리자들(114,115)은 다운로드되는 파일(D_FILE)을 작은 블록들(B0-Bn)로 나눈다. 즉, 파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 파일(D_FILE)을 다운로드하던 중 다운로드된 데이터의 크기가 미리 지정된 크기 예를 들면, 10 메가바이트이면, 하나의 데이터 블록으로 저장하고, 다운로드된 데이터 블록의 해쉬값을 계산한다. 이와 같은 방법으로 스토리지 서버(120)로부터 다운로드되는 파일(D_FILE)은 n 개의 블록들(B0-Bn)로 나뉘어 관리된다.
특히, 본 발명의 파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 다운로드되는 파일(D_FILE)을 병렬로 동시에 입력받아서 데이터 블록들(B0-Bn) 각각에 대한 해쉬값을 계산한다. 파일 분산 관리자(114)에 의해서 계산된 해쉬값(HV1)과 파일 분산 관리자(115)에 의해서 계산된 해쉬값(HV2)은 마스터 관리자(112)에게 제공된다. 즉, 스토리지 서버(120)로부터 다운로드된 데이터 블록은 두 개의 파일 분산 관리자들(114, 115)에 의해서 병렬로 해쉬값들(HV1, HV2)이 계산된다. 마스터 관리자(112)는 파일 분산 관리자들(114, 115)들로부터의 해쉬값들(HV1, HV2)을 비교해서, 해쉬값들(HV1,HV2)이 동일한 지의 여부를 판별한다. 스토리지 서버(120)와 파일 분산 관리자들(114, 115) 사이의 통신 경로상의 문제 또는 파일 분산 관리자들(114, 115) 내 저장 장치(미 도시됨)의 손상 등의 이유로 데이터 블록의 일부 데이터가 변경되었다면 해쉬값들(HV1, HV2)은 서로 다른 값을 가질 것이다. 만일 해쉬값들(HV1, HV2)이 다르다면, 마스터 관리자(112)는 스토리지 서버(120)로부터 파일 분산 관리자들(114, 115)로 다운로드된 데이터 블록에 오류가 있는 것으로 판별하고, 파일 분산 관리자들(114, 115)이 데이터 블록을 다시 다운로드하도록 제어한다. 이 때, 손상된 블록에 대한 재 다운로드는, 해당 데이터 블록만을 다시 다운로드하거나 또는 손상된 블록을 포함하는 파일 전체를 다시 다운로드하는 방법이 있다.
만일 파일 분산 관리자들(114, 115)에 의해서 계산된 해쉬값들(HV1, HV2)이 일치하면, 마스터 관리자(112)는 파일 분산 관리자들(114, 115)이 다운로드된 데이터 블록을 클라우드 멤버들(151-153)로 전송하도록 제어한다.이때, 파일 분산 관리자들(114, 115) 각각에게 클라우드 멤버들(151-153) 중 일부를 할당하고, 파일 분산 관리자들(114, 115)이 할당된 일부 클라우드 멤버들로 데이터 블록을 전송하도록 설계될 수 있다. 다른 실시예에서는 파일 분산 관리자들(114, 115) 중 어느 하나는 데이터 블록에 대한 해쉬값만을 계산하도록 설계되고, 다른 하나는 해쉬값 계산 뿐만 아니라 클라우드 멤버들로 데이터 블록을 전송하도록 설계될 수 있다.
파일 분산 관리자들(114, 115)은 클라우드 멤버들(151-153)로 이미 다운로드된 데이터 블록을 전송함과 동시에 새로운 데이터 블록을 다운로드하는 병렬 처리가 가능하도록 설계될 수 있다.
도 4에 도시된 바와 같이, 스토리지 서버(120)에 저장된 데이터 파일(D_FILE)은 이미 데이터 파일(D_FILE) 전체에 대한 해쉬값(HV)을 포함한다. 파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 데이터 블록들(B0-Bn)을 모두 다운로드하고 나서 데이터 블록들(B0-Bn) 전체 즉, 데이터 파일(D_FILE)에 대한 해쉬값을 계산한다. 파일 분산 관리자들(114, 115)은 계산된 해쉬값과 데이터 파일(D_FILE)에 포함된 해쉬값을 마스터 관리자(112)로 전달한다.
마스터 관리자(112)는 파일 분산 관리자들(114, 115)에 의해서 계산된 해쉬값과 데이터 파일(D_FILE)에 포함된 해쉬값을 비교하고, 두 해쉬값들이 일치하면 핫파일로 설정된 파일(D_FILE)에 대한 파일 분산이 종료된 것으로 처리한다. 만일 두 해쉬값들이 일치하지 않으면, 마스터 관리자(112)는 파일 분산 관리자들(114, 115)이 데이터 파일(D_FILE)을 다시 다운로드하도록 제어할 것이다.
메인 서버(110)에 포함된 클라이언트 관리자(111), 마스터 관리자(112), 멤버 관리자(113) 및 파일 분산 관리자들(114, 115)는 단일의 관리자로 통합 구성될 수 있다. 또한 클라이언트 관리자(111), 마스터 관리자(112), 멤버 관리자(113) 및 파일 분산 관리자들(114, 115) 각각은 소정의 기능을 수행하기 위한 소프트웨어 프로그램을 내장한 컴퓨터로 구성될 수 있으며 서버(server)로 불리울 수 있다.
도 5는 본 발명의 바람직한 실시예에 따른 클라우드 컴퓨팅 네트워크 시스템의 메인 서버에서 파일을 분산하는 방법을 보여주는 플로우차트이다.
도 5를 참조하면, 메인 서버(110)의 멤버 관리자(113)는 클라우드 멤버들(151-153)로부터 각 클라우드 멤버의 상태 정보를 수집한다(510). 예컨대, 클라우드 멤버의 상태 정보는 클라우드 메모리에 이미 다운로드된 파일크기, 가용 저장 공간의 크기, 클라우드 멤버로 활동한 시간, 최대 대역폭(bandwith) 등을 포함한다. 클라우드 멤버들(151-153)의 동작 상태는 수시로 변경될 수 있으므로, 메인 서버(110) 내 멤버 관리자(113)는 주기적으로 또는 필요에 따라서 클라우드 멤버들(151-153)로부터 상태 정보를 수집할 수 있다.
클라이언트 관리자(111)는 클라이언트들(141-143)로부터 파일 요청을 수신한다(512). 메인 서버(110)의 클라언트 관리자(111)는 클라이언트(141)에 의해서 요청된 파일(D_FILE)이 핫파일(hot-file)인 지의 여부를 판별한다(514). 핫파일이란 많은 수의 클라이언트들로부터 파일 다운로드 요청이 있었거나 또는 현재 다운로드되고 있는 인기있는 파일을 칭한다. 예를 들어, 클라이언트 관리자(111)는, 5분동안 100명의 클라이언트들이 파일(D_FILE)에 대한 다운로드를 요청했거나, 20명의 클라이언트들에게 동시에 파일(D_FILE)이 다운로드되고 있는 중일 때 또는 트래픽이 10GB 이상이면 파일(D_FILE)을 핫파일로 분류할 수 있다.
클라이언트 관리자(111)는 클라이언트(141)에 의해서 요청된 파일(D_FILE)이 핫파일이 아니면 스토리지 서버(120)에 저장된 파일(D_FILE)이 클라이언트(141)에게 전송되도록 제어한다(530).
클라이언트 관리자(111)는 클라이언트(141)에 의해서 요청된 파일(D_FILE)이 핫파일인 것으로 판별되면, 파일(D_FILE)이 클라우드 멤버들(151-153)에 분산 저장되어 있는 지의 여부를 확인한다(516). 만일 핫파일이 클라우드 멤버들(151-153)에 분산 저장되어 있다면, 클라이언트 관리자(111)는 클라이언트(141)에게 파일(D_FILE)이 분산 저장된 클라우드 멤버에 대한 정보를 전송한다(528). 파일을 저장하고 있는 클라우드 멤버에 대한 정보는 멤버 관리자(113)로부터 제공된 것이다. 클라이언트(141)는 클라이언트 관리자(111)로부터 수신된 클라우드 멤버 정보를 참조하여 클라우드 멤버들로부터 원하는 파일(D_FILE)을 다운로드 할 것이다.
요청된 파일(D_FILE)이 핫파일이고, 클라우드 멤버들(151-153)에 분산 저장되어 있지 않으면, 클라이언트 관리자(111)는 요청된 파일이 클라우드 멤버들(151-153)에게 분산되도록 멤버 관리자(113) 및 파일 분산 관리자(114)에게 요청한다.
멤버 관리자(113)는 수집된 정보에 따라서 파일을 다운로드할 수 있는 즉, 파일 분산이 가능한 멤버를 선정하고, 선정된 멤버 정보를 파일 분산 관리자들(114, 115)에게 전달한다(518).
파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 파일(D_FILE)을 다운로드한다(520). 앞서 설명한 바와 같이, 파일 분산 관리자들(114, 115)은 다운로드된 데이터를 소정 크기의 데이터 블록로 나누고, 데이터 블록에 대한 블록 해쉬값(HV1, HV2)을 계산한다(520). 예컨대, 다운로드된 데이터의 크기가 10킬로바이트일 때마다 하나의 데이터 블록이 생성된다. 파일 분산 관리자들(114, 115)에 의해서 계산된 블록 해쉬값들(HV1,HV2)은 마스터 관리자(112)에게 전달된다(520).
마스터 관리자(112)는 두 개의 파일 분산 관리자들(114, 115)로부터 입력된 블록 해쉬값들(HV1, HV2)을 비교하고, 블록 해쉬값(HV1, HV2)이 같으면 파일 분산 관리자들(114, 115)이 데이터 블록을 클라우드 멤버들(151-153)에게 전송하도록 제어한다. 파일 분산 관리자들(114, 115)은 마스터 관리자(112)로부터의 제어에 응답해서 다운로드된 데이터 블록 및 그 데이터 블록에 대한 블록 해쉬값을 멤버 관리자(113)에 의해서 선정된 클라우드 멤버들(151-153)에게 전송한다(526). 데이터 블록 뿐만 아니라 그 데이터 블록에 대한 블록 해쉬값도 클라우드 멤버들(151-153)에게 전송함으로써 추후 클라이언트(141)에 의해서 데이터 블록의 정확성 여부가 검사될 수 있다. 만일 블록 해쉬값(HV1, HV2)이 다르면 마스터 관리자(112)는 파일 분산 관리자들(114, 115)이 데이터 블록을 다시 다운로드 받도록 제어한다. 이 때, 파일 분산 관리자들(114, 115)은 오류가 있는 데이터 블록만을 다시 다운로드하거나 또는 파일(D_FILE) 전체를 다시 다운로드한다.
한편, 클라이언트 관리자(111)는 파일(D_FILE)이 분산 저장된 클라우드 멤버들(151-153)에 대한 정보를 클라이언트들(528)에게 전송한다(528). 클라이언트(141)는 클라이언트 관리자(111)로부터 수신된 클라우드 멤버 정보를 참조하여 클라우드 멤버들로부터 원하는 파일(D_FILE)을 다운로드 할 것이다.
파일 분산 관리자들(114, 115)은 스토리지 서버(120)로부터 파일(D_FILE) 전체가 다운로드될 때까지 다운로드, 데이터 블록 및 블록 해쉬값 생성 과정을 반복적으로 수행한다. 앞서 설명한 바와 같이, 파일(D_FILE)은 데이터 및 전체 해쉬값을 포함한다. 파일(D_FILE)에 대한 다운로드가 완료되면, 파일 분산 관리자들(114, 115) 각각의 파일(D_FILE) 내 전체 데이터에 대한 전체 해쉬값을 계산하고, 계산된 전체 해쉬값과 파일(D_FILE)에 포함된 전체 해쉬값을 마스터 관리자(112)에게 출력한다.
마스터 관리자(112)는 계산된 전체 해쉬값과 파일(D_FILE)에 포함된 전체 해쉬값이 일치하면 파일(D_FILE)에 대한 다운로드를 종료하도록 파일 분산 관리자들(114, 115)을 제어한다. 파일 분산 관리자들(114, 115)은 마스터 관리자(112)의 제어에 응답해서 파일(D_FILE)의 마지막 데이터 블록이 전송된 클라우드 멤버에게 전체 해쉬값을 전송한다. 클라이언트(141)는 파일(D_FILE)이 모두 다운로드된 후 전체 해쉬값으로 파일(D_FILE)의 정확성을 다시 한 번 검사할 수 있다.
이와 같은 본 발명에 의하면, 클라이언트들(141-143)에 의한 다운로드 요청이 많은 파일을 클라우드 멤버들(151-153)에게 분산해서 저장하고, 클라이언트들(141-143)로부터 파일 다운로드 요청이 있을 때 스토리지 서버(120) 대신 클라우드 멤버들(151-153)을 통하여 파일을 제공함으로써, 한정된 네트워크(130) 자원을 효율적으로 사용할 수 있다. 특히, 스토리지 서버(120)로부터 메인 서버(110)로 파일을 다운로드할 때 발생할 수 있는 데이터 오류를 최소화할 수 있다. 또한, 데이터 블록마다 해쉬값이 생성되므로, 클라이언트(141)는 다수의 클라우드 멤버들(151-153)로부터 데이터 블록들을 다운로드하던 중 오류가 있는 데이터 블록에 대해서만 재 다운로드 받을 수 있다.
본 발명은 TV 방송, 케이블 방송, 영화, 인터넷 강의, 상품 광고, 성인 방송과 같은 동영상 방송, 인터넷 노래방 중계, 이미지캐싱, 실시간 음악듣기, 온라인 게임 다운로드 뿐만 아니라 소프트웨어의 버그 패치와 업그레이드와 같이 단기간에 폭발적으로 이용자의 수가 증가하는 분야에서 파일의 다운로드 품질을 향상시키는데 이용될 수 있다. 이와 같은 본 발명에 의하면, 기업의 비용부담을 최소화하고, 다양한 컨텐츠 및 파일을 장애 없이 신속하게 전달함으로써 산업 발달에 도움이 될 것이다.
Claims (17)
- 적어도 두 개의 파일 분산 관리자들이 스토리지 서버에 저장된 파일을 병렬로 다운로드하는 단계와;
상기 파일 분산 관리자들 각각에서 상기 다운로드된 파일에 대한 해쉬값을 계산하는 단계; 그리고 상기 파일 분산 관리자들로부터의 상기 해쉬값들이 일치할 때 상기 다운로드된 파일을 클라우드 멤버들에게 전송하는 단계를 포함하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 1 항에 있어서,
상기 다운로드 단계는,
상기 파일을 미리 설정된 미리 설정된 크기의 데이터 블록 단위로 다운로드하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 2 항에 있어서,
상기 해쉬값 계산 단계는,
상기 파일 분산 관리자들 각각에서 상기 데이터 블록에 대한 블록 해쉬값을 계산하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 3 항에 있어서,
상기 전송 단계는,
상기 파일 분산 관리자들로부터의 상기 데이터 블록에 대한 블록 해쉬값들이 일치할 때 상기 다운로드된 데이터 블록을 상기 클라우드 멤버들로 전송하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 4 항에 있어서,
상기 전송 단계는,
상기 블록 해쉬값을 상기 클라우드 멤버들로 더 전송하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 4 항에 있어서,
상기 전송 단계는,
상기 파일 분산 관리자들로부터의 상기 데이터 블록에 대한 블록 해쉬값들이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하는 단계를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 1 항에 있어서,
상기 스토리지 서버에 저장된 상기 파일은 데이터 파일 및 해쉬값을 포함하고,
상기 다운로드된 데이터 파일에 대한 해쉬값을 계산하는 단계를 더 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템의 파일 분산 방법. - 제 7 항에 있어서,
상기 계산된 해쉬값과 상기 다운로드된 파일에 포함된 해쉬값이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 복수의 클라우드 멤버들과;
파일을 저장하는 스토리지 서버와;
각각이 상기 스토리지 서버로부터 상기 파일을 다운로드하고, 다운로드된 파일의 해쉬값을 계산하며, 그리고 통신 네트워크를 통하여 상기 복수의 클라우드 멤버들에게 상기 다운로드된 파일을 전송하는 적어도 두 개의 파일분산 관리자들; 그리고 상기 적어도 두 개의 파일 분산 관리자들에 의해서 계산된 상기 해쉬값들이 일치하는 지를 판별하고, 판별 결과에 따라서 상기 파일 분산 관리자들을 제어하는 마스터 관리자를 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 9 항에 있어서,
상기 적어도 두 개의 파일 분산 관리자들 각각은,
상기 파일을 미리 설정된 크기의 데이터 블록 단위로 다운로드하고, 상기 데이터 블록에 대한 상기 해쉬값을 계산하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 10 항에 있어서,
상기 적어도 두 개의 파일 분산 관리자들 각각은,
상기 마스터 관리자의 제어에 따라서 상기 다운로드된 데이터 블록을 상기 클라우드 멤버들로 전송하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 11 항에 있어서,
상기 마스터 관리자는,
상기 적어도 두 개의 파일 분산 관리자들로부터의 상기 해쉬값들이 일치할 때, 상기 데이터 블록을 상기 클라우드 멤버들로 전송하도록, 상기 파일 분산 관리자들을 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 12 항에 있어서,
상기 적어도 두 개의 파일 분산 관리자들 각각은,
상기 마스터 관리자의 제어에 따라서 상기 데이터 블록 및 상기 데이터 블록에 대한 해쉬값을 상기 클라우드 멤버들로 전송하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 11 항에 있어서,
상기 마스터 관리자는,
상기 적어도 두 개의 파일 분산 관리자들로부터의 상기 해쉬값들이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 9 항에 있어서,
상기 스토리지 서버에 저장된 상기 파일은 파일 전체에 대한 해쉬값을 포함하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 15 항에 있어서,
상기 적어도 두 개의 파일 분산 관리자들은,
상기 다운로드된 파일에 포함된 해쉬값과 상기 다운로드된 파일로부터 계산된 해쉬값을 상기 마스터 관리자에게 전달하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템. - 제 16 항에 있어서,
상기 마스터 관리자는,
상기 다운로드된 파일에 포함된 해쉬값과 상기 다운로드된 파일로부터 계산된 해쉬값이 일치하지 않을 때, 상기 스토리지 서버로부터 상기 파일을 다시 다운로드하도록, 상기 파일 분산 관리자들을 제어하는 것을 특징으로 하는 클라우드 컴퓨팅 네트워크 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190011454A KR20200101502A (ko) | 2019-01-29 | 2019-01-29 | 클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190011454A KR20200101502A (ko) | 2019-01-29 | 2019-01-29 | 클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200101502A true KR20200101502A (ko) | 2020-08-28 |
Family
ID=72265955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190011454A KR20200101502A (ko) | 2019-01-29 | 2019-01-29 | 클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20200101502A (ko) |
-
2019
- 2019-01-29 KR KR1020190011454A patent/KR20200101502A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11245770B2 (en) | Locality based content distribution | |
CN109688222B (zh) | 共享计算资源的调度方法、共享计算***、服务器及存储介质 | |
CN102067094B (zh) | 高速缓存优化 | |
KR101033813B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
KR20100122197A (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
KR101120572B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 다운로드 방법 | |
CN108173774B (zh) | 一种客户端的升级方法及*** | |
KR20010088742A (ko) | 분산처리 및 피어 대 피어 통신을 이용한 네트워크 상의정보전송 병렬화 방법 | |
KR101089509B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
US7739364B2 (en) | Method and apparatus for dynamically reconfiguring a server system | |
KR101195123B1 (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
KR20110109610A (ko) | 클라우드 컴퓨팅 네트워크 시스템 및 그것의 파일 분산 방법 | |
KR20200101502A (ko) | 클라우드 네트워크 시스템과 이것의 효과적인 파일 분산법 | |
KR101219816B1 (ko) | 서비스 중단없이 안정적으로 회원 서비스 시스템의 데이터 이전이 가능한 클라우드 서버 | |
CN112383606B (zh) | 一种桌面容器镜像增量p2p分发方法及设备 | |
CN113407339A (zh) | 资源请求反馈方法、装置、可读存储介质及电子设备 | |
CN113194330A (zh) | 一种碎片化多云视频资源管理方法及*** | |
CN114189560A (zh) | 资源的传输方法和装置、存储介质、电子装置 | |
US8301775B2 (en) | Affiliate bandwidth management | |
KR20190119497A (ko) | 분산 파일 시스템 기반의 대용량 다중 vod 스트리밍 서비스 제공 시스템 및 그 제공 방법 | |
US20210173878A1 (en) | Systems and methods of incremented aggregated data retrieval | |
CN115766703A (zh) | 文件下载方法及相关装置 | |
CN115485661A (zh) | 资源处理方法、装置、电子设备和存储介质 | |
CN101394426A (zh) | 基于网络电视的互联网业务处理方法和*** | |
KR20080015624A (ko) | 프린팅장치 및 그 p2p통신방법 |