KR20140129245A - 클라우드 네트워크에서 파일 청킹 및 복제를 이용하는 분산 파일 시스템의 방법 및 장치 - Google Patents
클라우드 네트워크에서 파일 청킹 및 복제를 이용하는 분산 파일 시스템의 방법 및 장치 Download PDFInfo
- Publication number
- KR20140129245A KR20140129245A KR1020147026428A KR20147026428A KR20140129245A KR 20140129245 A KR20140129245 A KR 20140129245A KR 1020147026428 A KR1020147026428 A KR 1020147026428A KR 20147026428 A KR20147026428 A KR 20147026428A KR 20140129245 A KR20140129245 A KR 20140129245A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- file
- client
- files
- access
- Prior art date
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1021—Server selection for load balancing based on client or server locations
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
여러 실시예는 액세스된 파일 및 액세스 위치와 관계없는 클라우드 스토리지의 성능 보장을 제공하는 클라우드 네트워크에서 분산 네트워크 파일 시스템을 제공하는 방법 및 장치를 제공한다. 클라이언트의 파일 시스템은 클라이언트의 액세스 위치 및 결정된 최대 액세스 대역폭에 기초하는 그리고 파일 액세스 패턴을 알고 있을 필요 없는 파일 배치 전략을 이용하여 제공된다.
Description
본 발명은 일반적으로 클라우드 네트워크에서 분산 네트워크 파일 시스템을 제공하는 방법 및 장치에 관한 것이다.
본 단원은 본 발명의 더 나은 이해를 촉진하는데 도움이 될 수 있는 측면을 소개한다. 따라서, 본 단원의 설명은 이러한 점에 비추어 읽혀져야 하며 무엇이 선행기술이라거나 무엇이 선행기술이 아니라는 것에 대한 인정으로 이해되지 않아야 한다.
일부 알려진 파일 시스템에서, 파일의 액세스는 네트워크 부착 스토리지(network attached storage)를 기업 네트워크에 접속시킴으로써 성취된다. 다른 알려진 분산 네트워크 파일 시스템에서, 파일의 액세스는 상이한 스토리지 서버들에서 파일을 스트라이프함으로써 성취된다.
여러 실시예는 액세스한 파일 및 액세스 위치와 무관한 클라우드 스토리지의 성능을 보장하는 클라우드 네트워크에서 분산 네트워크 파일 시스템을 제공하는 방법 및 장치를 제공한다. 클라이언트의 파일 시스템은 파일 액세스 패턴을 알고 있을 필요 없이 클라이언트의 액세스 위치 및 결정된 최대 액세스 대역폭에 기초한 파일 배치 전략을 이용하여 제공된다. 유리하게, 분산 파일 시스템은 서비스 공급자가 확실하게 스토리지에 액세스해주지 않고도 모든 공개된 액세스 위치로부터 스토리지에 빠르고 어디에서건 보장된 액세스를 허용한다.
일 실시예에서, 분산 파일 시스템을 제공하기 위한 장치가 제공된다. 장치는 데이터 스토리지 및 데이터 스토리지에 통신 가능하게 연결된 프로세서를 포함한다. 프로세서는 복수의 클라이언트 위치 - 복수의 클라이언트 위치는 스토리지 네트워크 내 복수의 스토리지 노드에 저장된 복수의 파일들과 연관되며, 복수의 클라이언트 위치는 복수의 연관된 통신 채널을 통하여 스토리지 네트워크 내 복수의 에지 노드에 통신 가능하게 연결됨 - 를 결정하고; 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하고; 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 스토리지 노드 내 복수의 파일의 스토리지를 제공하도록 프로그램된다.
일부 실시예에서, 복수의 파일의 스토리지의 제공은 프로세서를 파일 청킹 및 파일 복제 스토리지 메커니즘 - 파일 청킹 및 파일 복제 스토리지 메커니즘은 복수의 파일을 복수의 파일 청크로서 저장하는 것을 명시함 - 을 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 복수의 파일에 적용하도록 더 프로그래밍하고; 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 스토리지 노드 내 복수의 파일 청크의 배치를 결정하도록 더 프로그래밍하고; 복수의 에지 노드의 선택 부분의 각각에 대해, 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 복수의 클라이언트 위치의 선택 부분의 각각으로부터 수신된 파일 액세스 요청에 응답하여 액세스될 복수의 스토리지 노드 중 적어도 하나를 결정하도록 더 프로그래밍하는 것을 포함한다.
일부 실시예에서, 파일 청킹 스토리지 메커니즘을 적용하는 것은 복수의 파일 전체에 걸쳐 균일한 파일 청킹 비율을 적용하는 것을 포함한다.
일부 실시예에서, 복수의 파일의 스토리지의 제공은 프로세서가 복수의 제2 클라이언트 위치 - 복수의 제2 클라이언트 위치는 스토리지 네트워크 내 복수의 스토리지 노드에 저장된 복수의 제2 파일들과 연관되고 복수의 제2 클라이언트 위치는 복수의 제2의 연관된 통신 채널을 통해 스토리지 네트워크 내 복수의 에지 노드에 통신 가능하게 연결됨 - 를 결정하도록 더 프로그래밍하고; 복수의 제2의 연관된 통신 채널의 복수의 제2 액세스 대역폭을 결정하도록 더 프로그래밍하고; 복수의 제2 클라이언트 위치, 복수의 제2 액세스 대역폭 및 클라이언트 서비스 보장에 기초하여 스토리지 네트워크 내 복수의 제2 파일의 스토리지를 제공하는 것을 줄이도록 더 프로그래밍하는 것을 포함한다.
일부 실시예에서, 복수의 파일의 스토리지의 제공은 프로세서가 복수의 제2 클라이언트 위치 및 복수의 제2 액세스 대역폭에 기초하여 클라이언트 서비스 보장을 스케일하도록 프로그래밍하고; 복수의 제2 클라이언트 위치 및 복수의 제2 액세스 대역폭에 기초하여 스토리지 노드 내 복수의 제2 파일의 스토리지를 제공하도록 더 프로그래밍하는 것을 포함한다.
일부 실시예에서, 복수의 파일의 스토리지의 제공은 프로세서가 복수의 클라이언트 위치와 연관된 복수의 에지 노드를 결정하도록 프로그래밍하고; 스토리지 네트워크 내 복수의 스토리지 노드로부터 복수의 파일에 액세스하는 액세스 정보에 따라 복수의 에지 노드를 업데이트하도록 프로그래밍하는 것을 포함한다.
일부 실시예에서, 복수의 파일의 스토리지의 제공은 프로세서가 스토리지 네트워크 내 복수의 통신 경로를 결정하도록 더 프로그래밍하는 것을 포함하고, 복수의 통신 경로는 복수의 에지 노드와 복수의 스토리지 노드 사이의 연관된 통신 경로를 정의한다.
일부 실시예에서, 적어도 하나의 파일 스토리지 메커니즘은 청킹 및 파일 복제를 포함하고, 파일 청킹은 복수의 파일을 각기 최대한 p개 청크로 분할하고, 파일 청킹 비율은 복수의 파일 전체에 걸쳐 균일하며, 파일 복제는 r개 복제 그룹을 생성하되, 각각의 복제 그룹은 복수의 스토리지 노드 중 하나 이상을 포함한다.
일부 실시예에서, 파일 청크는 청크 id에 기초하여 복제 그룹 내 스토리지 노드에 저장된다.
일부 실시예에서, 동일한 청크 id를 갖는 모든 파일 청크는 복제 그룹 내 동일한 스토리지 노드에 저장된다.
일부 실시예에서, 분산 파일 시스템을 제공하는 장치가 제공된다. 장치는 데이터 스토리지 및 데이터 스토리지에 통신 가능하게 연결된 프로세서를 포함한다. 프로세서는 복수의 클라이언트 위치 - 복수의 클라이언트 위치는 클라이언트 및 복수의 파일과 연관됨 - 로부터 스토리지 네트워크 내 복수의 스토리지 노드에 저장된 복수의 파일에 액세스하려는 복수의 요청을 수신하도록 프로그래밍되고; 스토리지 컨트롤러로부터 복수의 파일에 어떻게 액세스하는 지를 명시하는 액세스 정보를 수신하도록 프로그래밍되고; 제1 클라이언트 위치로부터 제1 파일의 액세스 요청을 수신하도록 프로그래밍되고; 제1 파일을 저장하는 복수의 결정된 스토리지 노드 및 결정된 스토리지 노드로의 복수의 통신 경로를 결정 - 결정은 클라이언트, 액세스 정보 및 제1 파일에 기초함 - 하도록 프로그래밍되고; 제1 파일을 결정된 통신 경로를 통하여 결정된 스토리지 노드로부터 검색하도록 프로그래밍된다. 복수의 클라이언트 위치는 제1 클라이언트 위치를 포함하고 복수의 스토리지 노드는 복수의 결정된 스토리지 노드를 포함한다.
일부 실시예에서, 결정된 스토리지 노드는 복수의 파일과 연관된 클라이언트에 기초하여 고정되어 있다.
제3 실시예에서, 분산 파일 시스템을 제공하는 시스템이 제공된다. 시스템은 복수의 클라이언트 위치 - 복수의 위치의 각각은 복수의 클라이언트 중 하나와 연관됨 - 와; 복수의 연관된 통신 채널을 통하여 복수의 클라이언트 위치에 통신 가능하게 연결된 복수의 에지 노드와; 복수의 에지 노드에 통신 가능하게 연결된 복수의 스토리지 노드 - 상기 복수의 스토리지 노드는 복수의 파일을 저장하고, 복수의 파일 중 적어도 일부분은 각기 복수의 클라이언트 중 하나와 연관됨 - 와; 에지 노드에 통신 가능하게 연결된 스토리지 컨트롤러를 포함한다. 스토리지 컨트롤러는 복수의 결정된 클라이언트 위치를 결정하도록 프로그램되고; 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하도록 프로그램되고; 복수의 결정된 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 복수의 스토리지 노드 내 복수의 파일의 스토리지를 제공하도록 프로그램된다.
제4 실시예에서, 복수의 파일의 스토리지를 제공하는 방법이 제공된다. 방법은 복수의 클라이언트 위치 - 복수의 클라이언트 위치는 스토리지 네트워크 내 복수의 스노리지 노드에 저장된 복수의 파일과 연관되고 복수의 클라이언트 위치는 복수의 연관된 통신 채널을 통해 스토리지 네트워크 내 복수의 에지 노드에 통신 가능하게 연결됨 - 를 결정하는 단계와; 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하는 단계와; 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 스토리지 노드 내 복수의 파일의 스토리지를 제공하는 단계를 포함한다.
일부 실시예에서, 복수의 파일의 스토리지를 제공하는 단계는 파일 청킹 및 파일 복제 스토리지 메커니즘 - 파일 청킹 및 파일 복제 스토리지 메커니즘은 복수의 파일을 복수의 파일 청크로서 저장하는 것을 명시함 - 을 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 복수의 파일에 적용하는 단계와; 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 스토리지 노드 내 복수의 파일 청크의 배치를 결정하는 단계와; 복수의 에지 노드의 선택 부분의 각각에 대해 복수의 클라이언트 위치 및 복수의 액세스 대역폭에 기초하여 복수의 클라이언트 위치의 선택 부분의 각각으로부터 수신된 파일 액세스 요청에 응답하여 액세스될 복수의 스토리지 노드 중 적어도 하나를 결정하는 단계를 포함하며, 복수의 에지 노드의 선택 부분은 복수의 클라이언트 위치의 선택 부분과 연관된다.
일부 실시예에서, 파일 청킹 스토리지 메커니즘을 적용하는 단계는 복수의 파일 전체에 걸쳐 실질적으로 균일한 파일 청킹을 적용하는 단계를 포함한다.
여러 실시예가 첨부 도면에 예시된다.
도 1은 클라우드 네트워크에서 분산 네트워크 파일 시스템(100)의 실시예를 포함하는 클라우드 네트워크를 도시한다.
도 2는 스토리지 컨트롤러(220)에 의해 제공된 분산 네트워크 파일 시스템(200)에서 파일에 액세스하는 기능 블록을 개략적으로 도시한다.
도 3은 스토리지 컨트롤러가 도 1의 분산 네트워크 파일 시스템(100) 또는 도 2의 분산 네트워크 파일 시스템(200)을 제공하는 방법(300)의 실시예를 도시하는 플로우차트이다.
도 4는 에지 노드가 클라이언트 위치로부터의 파일 요청을 서비스하는 방법(400)의 실시예를 도시하는 플로우차트 이다.
도 5는 스토리지 컨트롤러가 도 3의 단계(360)에서 예시된 바와 같은 스토리지 시스템을 제공하는 방법(500)의 실시예를 도시하는 플로우차트이다.
도 6은 도 1의 에지 노드(140) 또는 도 2의 에지 노드(240), 또는 도 1의 스토리지 컨트롤러(120) 또는 도 2의 스토리지 컨트롤러(220)와 같은 각종 장치(600)의 실시예를 개략적으로 도시한다.
이해를 도모하기 위하여, 동일한 참조 부호는 실질적으로 동일 또는 유사한 구조 또는 실질적으로 동일 또는 유사한 기능을 갖는 구성요소를 지정하는데 사용된다.
도 1은 클라우드 네트워크에서 분산 네트워크 파일 시스템(100)의 실시예를 포함하는 클라우드 네트워크를 도시한다.
도 2는 스토리지 컨트롤러(220)에 의해 제공된 분산 네트워크 파일 시스템(200)에서 파일에 액세스하는 기능 블록을 개략적으로 도시한다.
도 3은 스토리지 컨트롤러가 도 1의 분산 네트워크 파일 시스템(100) 또는 도 2의 분산 네트워크 파일 시스템(200)을 제공하는 방법(300)의 실시예를 도시하는 플로우차트이다.
도 4는 에지 노드가 클라이언트 위치로부터의 파일 요청을 서비스하는 방법(400)의 실시예를 도시하는 플로우차트 이다.
도 5는 스토리지 컨트롤러가 도 3의 단계(360)에서 예시된 바와 같은 스토리지 시스템을 제공하는 방법(500)의 실시예를 도시하는 플로우차트이다.
도 6은 도 1의 에지 노드(140) 또는 도 2의 에지 노드(240), 또는 도 1의 스토리지 컨트롤러(120) 또는 도 2의 스토리지 컨트롤러(220)와 같은 각종 장치(600)의 실시예를 개략적으로 도시한다.
이해를 도모하기 위하여, 동일한 참조 부호는 실질적으로 동일 또는 유사한 구조 또는 실질적으로 동일 또는 유사한 기능을 갖는 구성요소를 지정하는데 사용된다.
상세한 설명과 도면은 단지 본 발명의 원리를 설명할 뿐이다. 그러므로 본 기술에서 통상의 지식을 가진 자들이라면 비록 본 출원에서 명시적으로 설명되거나 도시되지 않았을지라도, 본 발명의 원리를 구체화하고 그 정신과 범주 내에 포함되는 여러 가지 구성들을 창안하는 것이 가능할 것이라는 것이(사실이) 인식될 것이다. 또한, 본 출원에서 인용된 모든 예들은 원리적으로 독자들이 본 발명의 원리 및 발명자(들)에 의해 기술 발전에 기여된 개념을 이해하는데 있어서 도움을 주려는 교육적 목적을 위해서만 명확하게 보이게 하려는 것이며 그렇게 특별하게 인용된 예들과 조건에 한정되지 않고 있는 대로 해석되어야 한다. 또한, 본 출원에서 사용된 바와 같은, "또는"이라는 용어는 달리 지적하지 않는 한(예를 들어, "그렇지 않으면", 또는 "아니면 대안으로") 비배타적인 것이라고 여긴다. 또한, 본 출원에서 기술된 여러 실시예는 일부 실시예가 하나 이상의 다른 실시예와 합쳐져서 새로운 실시예를 형성할 수 있으므로, 반드시 상호 배타적일 필요는 없다.
여러 실시예는 액세스한 파일 및 액세스 위치와 독립적인 클라우드 스토리지에서 성능을 보장하는 클라우드 네트워크에서 분산 네트워크 파일 시스템을 제공하는 방법 및 장치를 제공한다. 클라이언트의 파일 시스템은 클라이언트의 액세스 위치 및 결정된 최대 액세스 대역폭에 기초한 그리고 파일 액세스 패턴을 알고 있을 필요 없는 파일 배치 전략을 이용하여 제공된다.
도 1은 클라우드 네트워크에서 분산 네트워크 파일 시스템(100)의 실시예를 포함하는 클라우드 네트워크를 도시한다. 분산 네트워크 파일 시스템(100)은 하나 이상의 클라이언트 위치(110-01 - 110-06)(일괄하여, 클라이언트 위치(110)라고 함), 스토리지 컨트롤러(120) 및 스토리지 네트워크(130)를 포함한다. 하나 이상의 클라이언트 위치 통신 채널(115-01 - 110-09)(일괄하여, 클라이언트 위치 통신 채널(115)이라고 함) 및 스토리지 컨트롤러 통신 채널(125)은 클라이언트 위치(110) 및 스토리지 컨트롤러(120)를 제각기 스토리지 네트워크(130)에 접속시킨다. 스토리지 네트워크(130)는 하나 이상의 네트워크 장치(160-1 - 160-6)(일괄하여, 네트워크 장치(160)라고 함) 또는 하나 이상의 링크(175-01 - 175-04)(일괄하여, 링크(170)라고 함)를 통하여 하나 이상의 스토리지 노드(150-01 - 150-05)(일괄하여 스토리지 노드(150)라고 함)에 상호접속된 에지 노드(140-01 - 140-07)(일괄하여, 에지 노드(140)라고 함)를 포함한다. 스토리지 컨트롤러(120)는 스토리지 노드(150) 내 파일들의 배치를 결정하고 클라이언트 위치(110)로부터 발생한 파일의 액세스를 지시하기 위해 액세스 정보를 에지 노드(140)에게 제공한다.
클라이언트 위치(110)는 하나 이상의 클라이언트의 하나 이상의 위치를 포함할 수 있다. 도 1에 도시된 바와 같이, 클라이언트(A)는 클라이언트 위치(110-02 및 110-03)를 갖고 있고, 클라이언트(B)는 클라이언트 위치(110-01 및 110-05)를 갖고 있고, 클라이언트(C)는 클라이언트 위치(110-04 및 110-06)를 갖고 있다. 세 명의 클라이언트로서 묘사되지만, 몇 명의 클라이언트라도 존재할 수 있으며, 각각의 클라이언트가 두 곳의 클라이언트 위치를 갖고 있는 것으로 묘사되지만, 각각의 클라이언트는 임의 개수의 클라이언트 위치를 포함할 수 있다는 것을 알아야 한다. 클라이언트 위치(110)는 클라이언트 위치 통신 채널(115) 중 하나 이상을 통하여 파일을 송신 또는 수신할 수 있는 임의 형태 또는 임의 개수의 통신 장치(들)를 포함할 수 있다. 예를 들어, 통신 장치는 딘 클라이언트(thin client), 스마트폰, 퍼스널 또는 랩톱 컴퓨터, 서버, 네트워크 장치, 태블릿, 텔레비전 셋탑 박스, 또는 미디어 플레이어 등일 수 있다. 통신 장치는 예시적인 시스템 내부의 다른 자원에 의존하여 처리 또는 저장과 같은 작업의 일부를 수행할 수 있거나 아니면, 독립적으로 작업을 수행할 수 있다. 클라이언트 위치는 동일한 지리학적 위치를 공유할 수 있다는 것을 알아야 한다(예를 들면, 클라이언트(B)(110-01) 및 클라이언트(A)(110-02)는 동일한 빌딩 내에 상주할 수 있다).
본 명세서에서 사용된 바와 같은 용어 "파일"은 특정 클라이언트(예를 들면, 클라이언트(A))에 의해 통제되는 모든 클라이언트 콘텐트를 의미하며 클라이언트 통신 채널(115)을 통하여 전송 또는 수신될 수 있는 모든 콘텐트를 포함하는 것으로 넓게 이해하여야 한다. 예를 들어, 파일은 통상의 파일, 패킷, 패킷 스트림, 디지털 서류, 비디오 또는 이미지 콘텐트, 파일 블록, 데이터 객체, 또는 전술한 것의 임의의 부분 등을 포함할 수 있다.
클라이언트 위치 통신 채널(115)은 연관된 에지 노드(140)를 통하여 클라이언트 위치(110)와 스토리지 네트워크(130) 사이의 통신 연결을 제공한다. 특히, 클라이언트 위치 통신 채널(예를 들어, 115-02)은 클라이언트 위치(예를 들어, 110-02)와 에지 노드(예를 들어, 140-01) 사이에서 보장된 서비스 레벨을 제공한다. 보장된 서비스 레벨은 최대 대역폭의 보장을 포함할 수 있다. 클라이언트 위치는 동일한 물리적 클라이언트 위치 통신 채널을 공유할 수 있다는 것을 알아야 한다. 예를 들어, 클라이언트(B)(110-01)와 클라이언트(A)(110-02)는 클라이언트(B)(110-01)의 VPN 터널 및 클라이언트(A)(110-02)의 제2 VPN 터널을 이용하여 고속 광대역 접속을 공유할 수 있다.
통신 채널(115 및 125) 및 링크(175)는 무선 통신(예를 들어, LTE, GSM, CDMA, 블루투스); 펨토셀 통신(예를 들어, WiFi); 패킷 네트워크 통신(예를 들어, IP); 방송 통신(예어, DOCSIS 및DSL); 및 스토리지 통신(예를 들어, 섬유 채널(Fibre Channel), iSCSI)와 같은 하나 이상의 통신 채널을 통한 통신을 지원한다. 단일의 연결로서 묘사되지만, 통신 채널(115 및 125) 및 링크(175)는 임의 개수의 통신 채널 또는 통신 채널들의 조합일 수 있다.
스토리지 컨트롤러(120)는 스토리지 노드(150) 내에 파일의 배치를 결정하고 클라이언트 위치(110)로부터의 파일의 액세스를 지시하기 위한 액세스 정보를 에지 노드(140)에 제공하는 모든 장치일 수 있다. 특히, 스토리지 노드(150) 내 파일의 배치는 결정된 액세스 위치(예를 들면, 한 곳 이상의 클라이언트 위치(110)) 및 결정된 액세스 대역폭(예를 들면, 클라이언트 위치(예를 들어, 110-02) 및 에지 노드(예를 들어, 140-01)를 상호 연결하는 하나 이상의 클라이언트 위치 통신 채널의 대역폭 보장)에 기초한다. 단 하나의 스토리지 컨트롤러가 예시되어 있지만, 분산 네트워크 파일 시스템(100)은 더 많은 스토리지 컨트롤러를 포함할 수 있다는 것을 알아야 한다.
스토리지 네트워크(130)는 하나 이상의 네트워크 장치(160) 또는 하나 이상의 링크(175)를 경유하여 하나 이상의 스토리지 노드(150)에 상호 연결된 하나 이상의 에지 노드(140)를 포함한다.
단지 네 개의 링크(175-01 - 175-04)만이 스토리지 네트워크(130)에서 표시되어 있지만, 에지 노드(140), 스토리지 노드(150) 및 네트워크 장치(160)를 상호연결하는 모든 링크가 링크(175)의 일원이며 그외 나머지 표식들은 명료성을 기하기 위해 생략되었음을 알아야 한다. 스토리지 네트워크(130)는 임의 개수의 에지 노드(140), 스토리지 노드(150) 및 네트워크 장치(160) 그리고 임의 개수 및 구성의 링크(175)를 포함할 수 있다는 것을 또한 알아야 한다. 더욱이, 스토리지 네트워크(130)는 LTE, GSM, CDMA, 근거리 네트워크(들) (LAN), 무선 근거리 네크(들) (WLAN), 광역 네트워크(WAN), 또는 도시 지역 네트워크(MAN) 등을 포함하는 무선, 유선, 또는 펨토셀 네트워크의 임의의 조합 및 임의 개수를 포함할 수 있음을 알아야 한다.
에지 노드(140)는 클라이언트 위치(110) 중 하나를 스토리지 네트워크(130) 에 합류시키는 게이트웨이로서 작용하는 모든 장치일 수 있다. 특히, 에지 노드(140) 중 하나는 파일 요청(예를 들어, (115-02)를 통해 수신된 파일 읽기 또는 쓰기 요청)을 수신하고 그 파일 액세스 요청을 요청된 파일을 저장하고 있는 하나 이상의 스토리지 노드(150)로 전달한다. 일곱 개의 에지 노드가 예시되어 있지만, 분산 네트워크 파일 시스템(100)은 더 적은 또는 더 많은 에지 노드를 포함할 수 있다는 것을 알아야 한다.
스토리지 노드(150)는 파일을 저장하고 통상의 스토리지 서비스를 제공한다. 스토리지 노드(150)는 모든 적합한 스토리지 장치일 수 있으며 임의 개수의 스토리지 장치를 포함할 수 있다. 포함되어 있는 스토리지 장치(들)는 유사하거나 이질적일 수 있고 그리고/또는 서로 로컬일 수 있거나 지리적으로 분산되어 있을 수 있다. 다섯 개의 스토리지 노드가 예시되지만, 분산 네트워크 파일 시스템(100)은 더 적은 또는 더 많은 스토리지 노드를 포함할 수 있다는 것을 알아야 한다.
네트워크 장치(160)는 요청과 파일을 스토리지 네트워크(130)를 통하여 라우트한다. 네트워크 장치(160)는 라우터, 스위치, 허브, 또는 브릿지 등을 포함하는 모든 적합한 네트워크 장치일 수 있다. 포함되어 있는 네트워크 장치(들)는 유사하거나 이질적일 수 있고 그리고/또는 서로에 대해 로컬일 수 있거나 지리적으로 분산되어 있을 수 있다. 여섯 개의 네트워크 장치가 예시되지만, 분산 네트워크 파일 시스템(100)은 더 적은 또는 더 많은 네트워크 장치를 포함할 수 있다.
일부 실시예에서, 클라이언트 위치(110) 중 하나 이상은 통상의 가상 사설 네트워크 서비스를 이용하는 기업 위치이며 클라이언트 위치 통신 채널(115) 중 하나 이상은 VPN 터널이다.
일부 실시예에서, 스토리지 컨트롤러(120)는 스토리지 네트워크(130)의 일부분일 수 있다. 본 실시예의 다른 실시예에서, 에지 노드(140) 중 하나 이상은 스토리지 컨트롤러(120)의 기능을 제공할 수 있다.
일부 실시예에서, 스토리지 컨트롤러(120)는 데이터 복제 및 데이터 청킹과 같은 파일 스토리지 메커니즘을 이용한다. 유리하게, 파일 스토리지 메커니즘은 스토리지 네트워크(130) 내에서 혼잡 병목을 경감시켜 줄 수 있다. 제1의 파일 스토리지 메커니즘, 즉 데이터 복제는 파일들의 여러 카피를 상이한 스토리지 노드(150)에 저장함으로써 네트워크 부하를 여러 링크에다 분산시키는 것을 포함한다. 유리하게, 데이터 복제를 이용함으로써, 파일 액세스 요청으로 인해 생긴 부하는 스토리지 노드(150), 네트워크 장치(160) 및 링크(175)와 같은 스토리지 네트워크(130)의 여러 부분에 걸쳐서 제공될 수 있다. 제2의 파일 스토리지 메커니즘인 데이터 청킹은 파일을 상이한 스토리지 노드에서 저장될 수 있는 여러 더 작은 청크로 분할하는 것을 포함한다. 나중에, 파일이 요청될 때, 모든 청크가 사용자에게 다운로드된다. 유리하게, 청킹은 파일 액세스 요청으로 생긴 부하를 스토리지 네트워크(130) 전체에 분산되게 할 수 있다.
도 2는 스토리지 컨트롤러(220)에 의해 제공된 분산 네트워크 파일 시스템(200)에서 파일 청크(280-01 - 280-04)(일괄하여, 파일 청크(280))를 액세스하는 기능 블록을 개략적으로 도시한다. 시스템은 세(3) 곳의 클라이언트 위치(210-01 - 210-03) (일괄하여 클라이언트 위치(210))를 갖고 있는 하나의 클라이언트(예를 들면, 클라이언트(A))를 포함한다. 클라이언트 위치(210)는 각각의 클라이언트 위치 통신 채널(215-01 - 215-03) (일괄하여, 클라이언트 위치 통신 채널(215))을 통하여 각각의 에지 노드(240-01 - 240-03) (일괄하여, 에지 노드(240))와 통신한다. 에지 노드(240)는 연관된 통신 경로(285-1 - 285-06) (일괄하여, 통신 경로(285))를 통하여 스토리지 노드(250-01 - 250-06) (일괄하여 스토리지 노드(250))와 통신한다.
클라이언트 위치(210)는 도 1에서 설명한 것처럼 스토리지 네트워크(230)에서 파일에 액세스하는 클라이언트(A)의 예시적인 세 곳의 위치이다.
클라이언트 위치 통신 채널(215)은 도 1에서 설명한 것처럼 클라이언트 위치(210)를 각각의 에지 노드(240)와 통신적으로 연결하는 예시적인 세 개의 클라이언트 위치 통신 채널이다.
스토리지 컨트롤러(220)는 도 1에서 설명한 것처럼 스토리지 네트워크(230) 내에서 클라이언트의 파일들(예를 들어, 파일 청크(280))을 제공한다.
에지 노드(240) 및 스토리지 노드(250)은 도 1에서 설명한 것처럼 기능한다.
파일 청크(280)는 클라이언트의 파일의 적어도 일부분임을 보여준다. 이 예에서, 파일 청크(280)는 스토리지 네트워크(230) 내에 두 클라이언트 파일, P 및 Q가 저장된 것으로 표시된다. 이 예에서, 데이터 복제 및 데이터 청킹이 사용된다. 먼저, 파일들이 두 세그먼트로 청크되며 각각의 청크는 두 위치에서 복제된다. 도시된 바와 같이, 파일(P)은 세그먼트(P1 및 P2)로 청크되며 청크(P1)는 스토리지 노드(250-01 및 250-04)에 저장되고 반면에 청크(P2)는 스토리지 노드(250-02 및 250-03)에 저장된다.
통신 경로(285)는 에지 노드(240)를 연관된 스토리지 노드(250)에 통신적으로 연결한다. 예를 들어, 에지 노드(240-01)는 통신 경로(285-01)를 경유하여 스토리지 노드(250-01)에 그리고 통신 경로(285-02)를 경유하여 스토리지 노드(250-02)에 통신적으로 연결된다. 특히, 통신 경로(285-01 - 285-06)는 파일 청크(예를 들어 파일 청크(280-01)의 파일 청크(P1)를 검색하기 위하여 에지 노드(예를 들어, (240-01))가 스토리지 노드(예를 들어, (250-01))에 액세스하는 경우 스토리지 컨트롤러(220)에 의해 제공된 통신 경로(예를 들어, (285-01))의 적절한 네트워크 장치 및 링크(예를 들어, 도 1의 네트워크 장치(160) 및 링크(175))를 포함한다.
일부 실시예에서, 스토리지 네트워크(230)에 저장된 파일 청크(280)는 한 셋의 파일들을 나타낸다. 시스템에서 한 셋의 파일들은 동적일 수 있다는 것을 알아야 한다.
도 3은 스토리지 컨트롤러(예를 들면, 도 1의 스토리지 컨트롤러(120) 또는 도 2의 스토리지 컨트롤러(220))가 도 1의 분산 네트워크 파일 시스템(100) 또는 도 2의 분산 네트워크 파일 시스템(200)을 제공하는 방법(300)의 실시예를 설명하는 플로우차트를 도시한다. 방법은 (i) 클라이언트 액세스 위치를 결정하고(단계(320)), 및 (ii) 액세스 대역폭(단계(330))을 결정하는 단계를 포함한다. 이 방법을 실행하는 장치는 파일 액세스 패턴을 사전에 알고 있을 필요 없이 결정된 액세스 위치 및 액세스 대역폭에 기초하여 스토리지 네트워크(예를 들어, 도 1의 스토리지 네트워크(130) 및 도 2의 스토리지 네트워크(230))를 제공한다.
방법(300)에서, 단계(320)는 도 1의 클라이언트 위치(110) 또는 도 2의 클라이언트 위치(220)와 같은 액세스 위치를 결정하는 단계를 포함한다. 특히, 명시된 클라이언트의 파일에 대한 액세스 요청이 발생하는 클라이언트 위치가 판단된다. 예를 들면, 도 1에서 클라이언트(A)의 클라이언트 파일의 경우, 결정된 클라이언트 위치는 (110-02 및 110-03)일 수 있다. 유사하게, 도 2에서 클라이언트(A)의 파일의 경우, 판단된 클라이언트 위치는 (210-02 및 210-03)일 수 있다. 몇몇 클라이언트 위치(예를 들어, 본 예의 목적의 경우, 도 2의 클라이언트 위치(210-02))는 파일에 액세스할 수 없고, 그래서 결정된 클라이언트 위치가 아닐 수 있다는 것을 알아야 한다.
방법(300)에서, 단계(340)는 결정된 클라이언트 위치 및 제각기 하나 이상의 에지 노드 사이의 액세스 대역폭을 결정하는 단계를 포함한다. 도 1을 참조하면, 클라이언트 위치 통신 채널(115-02, 115-03 및 115-04)은 VPN 서비스를 위해 대역폭 보장이 사전에 협상된 VPN 터널일 수 있다. 유사하게, 도 2를 참조하면, 클라이언트 위치 통신 채널(215-01 - 215-03)은 VPN 서비스를 위해 대역폭 보장이 사전에 협상된 VPN 터널일 수 있다. 이와 같이, 결정된 액세스 대역폭은 사전-협상된 대역폭 보장에 기초할 수 있다.
방법(300)에서, 단계(360)는 결정된 클라이언트 액세스 위치 및 결정된 액세스 대역폭에 기초하여 클라우드-기반 스토리지 시스템(100)을 제공하는 단계를 포함한다. 특히 도 2를 참조하면, 파일 스토리지 메커니즘(들)이 결정되고 결정된 클라이언트 위치(예를 들어, 클라이언트 위치(210-01 - 210-03)에 대하여 방법을 실행하는 장치는 (i) 옵션으로, 선택된 각각의 클라이언트 위치가 스토리지 네트워크(예를 들어, 스토리지 네트워크(230))에 액세스하게 될 에지 노드(들)(예를 들어, 에지 노드(240))를 결정하고, (ii) 파일 스토리지 메커니즘(들)을 파일에 적용(예를 들어, 파일을 파일 청크(280)로 청크 및 복제)하고 어느 파일 청크가 어느 스토리지 노드(예를 들어, 스토리지 노드(250))에 저장되는지를 결정하고, (iii) 옵션으로, 각각의 결정된 클라이언트 위치 또는 에지 노드가 클라이언트 파일에 액세스하게 될 경로(예를 들어, 통신 경로(285))를 결정하고, (iv) 액세스 통신 정보를 이용하여 적절한 에지 노드(예를 들어, 에지 노드(240))를 갱신한다. 위의 단계(i)에서 결정된 에지 노드(들)은 지리적으로 클라이언트 위치에 가장 가까운 에지 노드 또는 (예를 들어, 업무 협상 중에 결정된) 이전에 선택된 에지 노드일 수 있다. 이러한 실시예 중 일부에서, 단계(i)에서의 결정은 이전에 선택된 에지 노드(들)을 검색하는 단계를 포함할 수 있다.
유리하게, 스토리지 노드(예를 들어, 도 1의 스토리지 노드(150) 또는 도 2의 스토리지 노드(250))의 일부분을 제공하여 클라이언트 사용자가 파일에 액세스하는데 필요한 대역폭 보장된 클라이언트의 단독 사용을 위한 가상 스토리지를 생성함으로써, 기업의 등급 서비스(enterprise grade service)가 제공될 수 있다.
일부 실시예에서, 단계(320)는 파일 청크를 검색하기 위해 에지 노드(예를 들어, (240-1))에 가장 가까운 스토리지 노드(예를 들어, (250-1) 및 (250-02))를 선택하는 단계를 포함한다. 일부 다른 실시예에서, 더 멀리 있을 수 있는 특정 스토리지 노드로 터널링하는 것과 같은 다른 전략을 통해 에지 노드에 가장 가까이 있지 않은 스토리지 노드를 선택할 수 있다.
단계(360)의 어떤 실시예에서, 파일 스토리지 메커니즘은 청킹 및 복제를 포함한다. 유리하게, 이러한 메커니즘은 액세스 오블리비어스 방식(access oblivious scheme)을 가능하게 할 수 있다. 이러한 실시예의 일부에서, 스토리지 네트워크(예를 들어, 도 2의 스토리지 네트워크(230))에 저장된 각각의 파일은 최대한 p개 청크로 청크되며 이들 청크의 각각은 r 번 복제되어, 스토리지 네트워크에서 최대한 p X r 개 파일 청크를 생성하게 된다. 이러한 실시예의 일부에서, 청킹 비율은 파일 청크 전체에서 상당히 균일하다. 예를 들어, 도 2를 참조하면, 크기(P1)/크기(P2)의 비율 "r"은 크기(Q1)/크기(Q2)의 비율과 실질적으로 같다. 유리하게, 에지 노드와 스토리지 노드 통신 경로 사이의 트래픽 비율(예를 들어, "(285-1) 상의 트래픽"/" (285-2) 상의 트래픽")은 비율 "r"을 비슷하게 하여 스토리지 제공을 실제 파일 액세스 패턴에 오블리비어스하게 만들어 준다.
단계(360)의 일부 실시예에서, 액세스 통신 정보는 에지 노드가 어느 스토리지 노드로부터 파일 청크를 검색하는지를 지시하는 정보를 포함한다. 예를 들어, 도 2를 참조하면, 요청이 클라이언트 위치(210-01)로부터 발생한 경우, 에지 노드(240-01)는 두 파일 청크(P1 및 P2)를 각기 스토리지 노드(250-01 및 250-02)로부터 검색하라고 지시 받는다.
단계(360)의 어떤 실시예에서, 액세스 통신 정보는 파일 청크를 검색할 때 에지 노드가 사용할 액세스 통신 경로를 지시하는 정보를 포함한다. 예를 들어, 도 2를 참조하면, 요청이 클라이언트 위치(210-01)로부터 발생한 경우, 에지 노드(240-01)는 두 파일 청크(P1 및 P2)를 각기 액세스 통신 경로(285-01 및 285-02)를 사용하여 스토리지 노드로부터 검색하라고 지시 받는다.
단계(360)의 어떤 실시예에서, 제공은 파일 스토리지 메커니즘을 적용하는 동안 통상적인 장애조치, 복구, 로드 밸런싱 또는 중복 기술을 포함하는 것을 포함한다. 이러한 실시예에서, 파일 스토리지 메커니즘이 적용됨으로써 보장된 서비스 레벨(예를 들어, 보장된 대역폭)을 위반하지 않도록 하기 위해 이러한 기술들이 포함된다.
유리하게, 사용자 액세스 패턴, 액세스 위치 및 실제 액세스된 파일을 미리 알지 않고도 파일로의 보장된 액세스를 제공하는 방식으로 파일을 수용하기 위한 일련의 스토리지 노드를 선택함으로써, 시스템(예를 들어 도 1의 분산 네트워크 파일 시스템(100))은,
o 파일 배치가 동적 사용자 요청에 따라 변동할 필요가 없으므로 액세스 오블리비어스일 수 있다. 새로운 사용자는 클라이언트 위치에서 합류할 수 있으며 새로운 클라이언트 파일은 보장된 서비스 한계 내에서 대역폭 요구가 남아 있는 한 클라우드 쪽으로 참여될 수 있다. 스토리지 노드 병목 및 스토리지 네트워크 링크 병목은 액세스되는 클라이언트 파일에 무관하다.
o 시스템이 변화하는 액세스 패턴에 따라 성능 요건을 만족시키기 위해 클라이언트 파일을 지속적으로 모니터링하고 이리저리 옮기는 것을 필요로 하지 않으므로 비용 효과적이다.
o 입회 결정으로서 효율적인 새로운 클라이언트 위치 입회 결정은 파일 액세스 패턴을 미리 알고 있을 필요 없이도 요구된 성능 보장을 용인할 수 있다.
도 4는 에지 노드(예를 들어, 도 2의 에지 노드(240-01 - 240-03)가 클라이언트 위치(예를 들어, 도 2의 클라이언트 위치(210-01 -210-03)로부터의 파일 요청을 서비스하는 방법(400)의 실시예를 설명하는 플로우차트를 도시한다. 방법은 스토리지 컨트롤러로부터 액세스 패턴을 수신하는 단계를 포함한다(단계 420). 그러면 방법을 실행하는 장치는 액세스 패턴을 사용하여 요청된 파일(단계 440)의 스토리지 위치(들)를 결정하며(단계 460) 결정된 스토리지 위치로부터 요청된 파일을 검색한다(단계 480).
방법(400)에서, 단계(420)는 스토리지 컨트롤러(예를 들어, 도 2의 스토리지 컨트롤러(220))로부터 액세스 파라미터를 수신하는 단계를 포함한다. 특히, 액세스 파라미터는 요청 클라이언트 위치(예를 들어, 도 2의 클라이언트 위치(210))에 필요한 파일이 상주하는 스토리지 노드(들)(예를 들어, 도 2의 스토리지 노드(250))를 명시한다. 일부 실시예에서, 액세스 파라미터는 또한 클라이언트 위치 파일을 검색할 때 사용하는 통신 경로(예를 들어, 도 2의 통신 경로(285))를 명시한다.
방법(400)에서, 단계(440)는 클라이언트 위치로부터 클라이언트 파일에 액세스하는 요청을 수신하는 단계를 포함한다. 특히, 도 2를 참조하면, 에지 노드(예를 들어, 에지 노드(240-01))는 클라이언트 위치 통신 채널(예를 들어, (215-01))을 통해 클라이언트 위치(예를 들어, 클라치(210-01))로부터의 파일(예를 들어, 파일(P))의 액세스 요청을 수신하는 게이트웨이로서 작용한다.
방법(400)에서, 단계(460)는 수신된 액세스 파라미터를 이용하여 요청된 클라이언트 세그먼트(예를 들어, 도 2의 파일(P))가 저장되어 있는 스토리지 노드(들)(예를 들어, 도 2의 스토리지 노드(250))를 결정하는 단계를 포함한다.
방법(400)에서, 단계(480)는 결정된 스토리지 노드(들)로부터 파일을 검색하는 단계를 포함한다. 특히, 도 2를 참조하면, 에지 노드(예를 들어, 에지 노드(240-01))는 판단된 스토리지 노드(들)(예를 들어, 스노드(250-01 및 250-02)로부터 파일(예를 들어, (280-01)의 P1 및 (280-02)의 P2)의 청크를 검색하며 재구성된 파일을 클라이언트 위치(예를 들어, 클라이언트 위치(210-01))에 있는 요청 사용자에게 전달한다.
단계(420)의 어떤 실시예에서, 방법을 실행하는 에지 노드는 에지 노드에게 클라이언트 파일을 수용하는 스토리지 노드(들)를 가리키는 클라이언트(예를 들어 도 2의 클라이언트(A)) 당 테이블을 유지한다.
단계(420)의 어떤 실시예에서, 방법을 실행하는 에지 노드는 클라이언트 파일을 검색할 때 어느 액세스 통신 경로(들)이 사용되어야 하는지를 에지 노드에게지시하는 클라이언트 당 테이블을 유지한다.
단계(460)의 어떤 실시예에서, 에지 노드가 특정 클라이언트(예를 들어, 도 1 및 도 2의 클라이언트(A))를 위해 액세스하는 스토리지 노드(들)는 액세스되는 클라이언트 파일에 무관하게 고정되어 있다.
도 5는 스토리지 컨트롤러(예를 들어, 도 1의 스토리지 컨트롤러(120))가 도 3의 단계(360)에 예시된 바와 같이 스토리지 시스템을 제공하는 방법(500)의 실시예를 설명하는 플로우 차트이다. 방법은 청크 크기를 결정하는 단계(단계 520), 스토리지 노드(들) 내 청크들의 배치를 결정하는 단계(단계 530), 및 선택된 에지 노드가 액세스 스토리지 노드(들)을 결정하는 단계(단계 540)를 포함한다. 방법을 실행하는 장치는 또한 옵션으로 새로운 클라이언트가 입회될 수 있는지를 결정하며(단계 560) 옵션으로 만일 스케일 서비스(scale service)가 이용가능 하면(단계 565) 보장된 비율을 스케일한다(단계570). 스케일 서비스는 스케일된 보장된 서비스 레벨을 이용하여 새로운 클라이언트의 입회를 허용한다. 방법을 실행하는 장치는 또한 이러한 판단에 기초하여 에지 노드(들) 및 스토리지 노드(들)를 제공한다(단계 580).
방법(500)에서, 단계(520)는 청크 크기를 결정하는 단계를 포함한다. 특히, 클라이언트 파일의 청크 크기는 도 3에서 설명된 것처럼 결정된다.
방법(500)에서, 단계(530)는 도 3에서 설명된 것처럼 스토리지 노드(들) 내 파일 청크들의 배치를 결정하는 단계를 포함한다.
방법(500)에서, 단계(540)는 선택된 에지 노드(들)가 액세스 스토리지 노드(들)을 결정하는 단계를 포함한다. 특히, 클라이언트 파일을 수용하는 스토리지 노드(들)(예를 들어, 도 1의 스토리지 노드(150) 및 도 2의 스토리지 노드(250))는 선택된 에지 노드(예를 들어, 도 1의 에지 노드(140) 및 도 2의 에지 노드(240))와 연관된다.
방법(500)은 옵션으로 단계(560)를 포함한다. 단계(560)는 새로운 클라이언트가 입회될 수 있는지를 결정하는 단계를 포함한다. 특히, 새로운 클라이언트는 만일 파일들에 대한 모든 액세스 패턴을 처리하는데 이용할 수 있는 충분한 대역폭이 있다면 클라우드 서비스 공급자에 의해 입회된다. 만일 새로운 클라이언트가 입회될 수 있으면, 방법은 단계(580)로 진행하며, 그렇지 않으면 방법은 단계(565)로 진행한다.
방법(500)은 옵션으로 단계(565)를 포함한다. 단계(565)는 클라이언트가 입회될 수 있도록 하기 위하여 요청 클라이언트의 서비스 보장이 조절될 수 있는지를 결정하는 단계를 포함한다. 만일 서비스 보장이 조절될 수 있으면, 방법은 단계(570)로 진행하고, 그렇지 않으면 방법은 끝난다(단계 595). 일부 실시예에서, 스케일 서비스가 제공되지 않을 수 있다는 것을 알아야 한다. 이러한 실시예에서, 만일 새로운 클라이언트가 입회될 수 없다고 판단되면 단계(560)는 끝난다(단계 595).
방법(500)은 옵션으로 단계(570)를 포함한다. 단계(570)는 클라이언트가 입회될 수 있도록 하기 위하여 요청 클라이언트의 서비스 보장을 스케일링하는 단계를 포함한다. 예를 들어, 만일 대역폭이 최대로 보장된 대역폭의 90%인 경우 파일에 대한 모든 액세스 패턴을 처리하는데 이용할 수 있는 충분한 대역폭이 있으면, 최대로 보장된 대역폭은 90%의 비율로 다시 스케일된다.
방법(500)에서, 단계(580)는 도 3에서 설명된 것처럼 에지 노드(들) 및 스토리지 노드(들)을 제공하는 단계를 포함한다.
새로이 추가되는 클라이언트에 관하여 기술되지만, 방법은 또한 클라이언트의 스토리지 제공을 업데이트하는데도 적용될 수 있다는 것을 알아야 한다. 이러한 실시예에서, 단계(560)는 업데이트된 클라이언트 스토리지 요건이 만족될 수 있는지를 결정하고 만일 만족되지 않으면, 업데이트된 클라이언트 스토리지 요건을 다시 스케일하거나 이전의 클라이언트 스토리지 요건으로 다시 되돌릴 수 있다.
단계(520, 530 또는 540)의 어떤 실시예에서, 스토리지 노드의 위치는 고정되어 있고 알려져 있다.
방법(500)의 어떤 실시예에서, 단계(520, 530, 540 또는 570)는 동시에 판단될 수 있다. 예를 들어, 단계(520, 530 및 540)에서 판단된 파라미터는 동일한 알고리즘을 통해 구할 수 있으며 단계(570)의 스케일 인수는 결과에 근거하여 만들어질 수 있다.
방법(500)의 일부 실시예에서, 단계(565 및 570)는 동시에 실시될 수 있다. 예를 들어, 클라이언트가 스케일을 허용할 것인지에 관한 판단은 그 판단이 스케일 인수에 근거한 것이라는 것을 요구 할 수 있다.
단계(520, 530 또는 540)의 일부 실시예에서, 클라이언트 파일이 에지 노드(예를 들어, 도 1의 에지 노드(140) 또는 도 2의 (240-01 - 240-03))에서 액세스될 수 있는 최대 비율은 상한 제한된다. 이러한 실시예의 일부에서, 상한 제한은 클라이언트 위치 통신 채널(예를 들어, 도 1의 클라이언트 위치 통신 채널(115) 또는 도 2의 (215-01 - 215-03) 중 하나)의 용량이다. 유리하게, 사전-협상된 클라이언트 위치 통신 채널 대역폭 보장을 이용하면 클라이언트(예를 들어, 도 1 또는 도 2의 클라이언트(A))가 다른 클라이언트 위치 통신 채널에서 대역폭 비율을 증강하거나 삭감함으로써 서비스 레벨을 재협상할 수 있다.
단계(520, 530 또는 540)의 일부 실시예에서, 액세스 통신 경로(예를 들어, 도 2의 통신 경로(285-01 - 285-06))는 통상의 최단 경로 라우팅 기술을 이용하여 결정된다. 이러한 실시예의 일부에서, 스토리지 네트워크(예를 들어 도 1의 스토리지 네트워크(130) 및 도 2의 (230))에서 각각의 링크 "e"는 링크 용량(c(e)) 및 최단 경로 계산을 위해 사용되는 링크 가중 메트릭(w(e))을 갖는다. 링크(e)의 용량은 링크에서 현재 이용가능한 용량이다. 이것은 링크(e)를 사용하여 데이터에 액세스하는 허용된 모든 클라이언트(예를 들어, 도 1의 클라이언트(A), 클라이언트(B) 및 클라이언트(C))에 대하여 만들어진 대역폭 예약만큼 줄어든 원래 링크 용량이다.
일부 실시예에서, 단계(560)는 새로이 추가된 또는 업데이트된 클라이언트(예를 들어, 도 1의 클라이언트(A))의 추가된 대역폭 요건에 기초하여 스토리지 네트워크의 링크(예를 들어, 도 1의 스토리지 네트워크(130)의 링크(175))의 링크 용량을 업데이트하는 단계를 포함한다.
일부 실시예에서, 단계(560)는 대역폭 요건이 총족될 수 있는지를 결정하는 단계를 포함한다. 이러한 실시예의 어떤 실시예에서, 대역폭 요건은 파일을 다운로드 또는 업로드하기 위한 것이다. 이러한 실시예의 어떤 실시예에서, 클라이언트(예를 들어, 도 1 및 도 2의 클라이언트(A))와 클라우드 스토리지 공급자 사이의 서비스 품질 협약이 존재한다. 예를 들어, 서비스 품질 협약은 파일이 일정 시간 내에 다운로드될 수 있게 보장할 수 있거나 또는 파일이 다운로드될 수 있는 최대 속도를 명시할 수 있다.
이러한 실시예의 일부에서, 수학식(1)은 에지 노드(예를 들어, 도 1의 에지 노드(140) 중 하나)에서 전체 대역폭 요건을 결정하는데 사용될 수 있다.
수학식 1에서, Rf는 파일("f")의 다운로드 속도를 나타내며 는 시간(t)에서 에지 노드("u")로 전송되는 파일의 요청 회수를 나타낸다. Du는 에지 노드("u")에서 최대 다운로드 속도를 나타낸다.
일부 실시예에서, 단계(520, 530 또는 540)는 선형 프로그래밍 과제를 통상의 고전적 최적화 기술을 이용하여 해결하는 단계를 포함한다. 통상의 고전적 최적화 기술은 가장 원하는 목표 또는 목적을 달성하는 행위를 결정하는 단계를 포함한다. 가장 원하는 목표 또는 목적을 달성하는 행위는 목적 함수의 값을 극대화 또는 극소화함으로써 결정될 수 있다. 일부 실시예에서, 목적 함수의 목표 또는 메트릭은 최대 링크 활용을 최소화하는 것일 수 있다.
과제는 다음과 같이 표현될 수 있다.
수학식(2) 최적화하기:
수학식(3) 수행:
수학식(2)는 목적 함수이며 수학식(3)은 해법에 부과된 제약들의 집합을 구성한다. xi 변수(x1, x2, xn)는 판단 변수의 집합을 나타내며 y = f(x1, x2, xn)는 이들 판단 변수의 항에서 표현된 목적 함수이다. 목적 함수는 최대화 또는 최소화될 수 있음을 알아야 한다.
단계(520, 530 또는 540)의 일부 실시예에서, 선형 프로그래밍 과제를 이용하는 제1 실시예는 파일을 동일한 개수의 청크들로 분할하고 파일을 "r" 번 복제하는 단계를 포함한다. 일부 실시예에서, 제약 은 전체 파일이 확실히 청크되는 것을 보장하도록 적용된다. 제약에서, βk 는 청크(k)로 만들어진 각 파일의 단편(fraction)을 나타낸다. 일부 실시예에서, 제약 은 또한 각 파일이 최대한 "p"개 청크들로 분할되는 것을 보장하기 위해 적용된다.
제1 실시예의 일부 실시예에서, 청크("k")의 각각의 복제("j")는 동일한 스토리지 노드에 배치된다. 예를 들어, 도 2를 참조하면, 스토리지 노드(250-01)는 파일(P 및 Q)의 j=1 복제 당 k=1 청크를 수용하며 스토리지 노드(250-02)는 파일(P 및 Q)의 j=1 복제 당 k=2 청크를 수용한다.
제1 실시예의 일부 실시예에서, 선형 프로그래밍 판단 변수는 청크의 크기 및 각 청크의 각 복제가 배치되어 있는 스토리지 노드의 위치이다. 스토리지 노드의 개수를 나타내는 및 각 청크의 복제 개수를 나타내는 "r"을 이용하면, 가능한 복제 그룹("G")이 있다. 여기서 Gj는 복제 그룹(j) 내 r 개 스토리지 노드들의 집합을 나타낸다. 이러한 실시예의 어떤 실시예에서, 만일 청크(k)가 복제 그룹(Gj)에 저장되어 있으면, 각각의 스토리지 노드("c"∈Gj )는 매 파일의 청크(k)를 저장한다. 표기를 간단히 하기 위하여, 청크 id 및 복제 그룹 id는 동일하다. 예를 들어, 청크(j)는 복제 그룹(Gj)에 저장된다.
제1 실시예의 어떤 실시예에서, 에지 노드("u")가 복제 그룹(j)로부터 파일의 단편(βj)에 액세스할 때, 이러한 액세스는 에지 노드(u)에 가장 가까운 스토리지 노드로부터 수행된다. 이와 같이, 에지 노드(u)는 모든 c'∈Gj에 대하여 이도록 스토리지 노드(c∈Gj)로부터 파일 단편(βj)을 액세스한다. 이 수학식에서, SP(...; ...)은 에지 노드와 스토리지 노드 쌍 사이에서 가장 가까운 경로를 나타낸다. 유사하게, SP(Gj; u)는 SP(c; u) 내 링크들의 집합을 나타내는데 사용되며, 여기서 스토리지 노드(c)는 Gj 내에서 에지 노드(u)에 가장 가까운 스토리지 노드이다. 클라이언트 데이터를 파일 청크를 수용하고 있는 가장 가까운 스토리지 노드로부터 액세스하는 것을 확장하여, 파일이 동일한 복제 그룹 내 복수의 스토리지 노드들로부터 액세스될 수 있는 사례를 해결할 수 있음을 알아야 한다.
각각의 에지 노드가 복제 그룹(j)으로부터 매 파일의 단편(βj)을 액세스하기 때문에, 시간(t)에서 복제 그룹(j)으로부터 에지 노드에 이르기까지 총 유동율(flow rate)은 이며, 여기서 는 시간(t)에서 에지 노드(u)로 전송되는 파일(f)의 복사본의 개수를 나타낸다. 수학식(1)로부터, 다음과 같이 작성될 수 있다.
수학식(4 및 5)에서, βj는 파일 단편이고, Rf 는 파일("f")의 다운로드 속도를 나타내며 는 시간(t)에서 에지 노드("u")로 전송되는 파일(f)의 요청 회수를 나타낸다. Du 는 에지 노드("u")에서 최대 다운로드 속도를 나타낸다.
수학식(4 및 5)로부터, 복제 그룹(j)으로부터 에지 노드(u)에 이르기 까지 제공될 용량의 양은 βjDu 로 상한 제한된다. H(e)가 링크(e)를 사용하여 파일에 액세스하는 (복제 그룹, 에지 노드) 쌍의 집합을 나타낸다고 하면 (즉, ), 링크(e)에서 최대 흐름은 가 될 것이다. (복제 그룹, 에지 노드) 쌍의 선택된 집합(즉, H(e))은 선택된 에지 노드에 대한 정해진 스토지리 노드들을 명시한다(예를 들면, 단계 540).
제1 실시예의 어떤 실시예에서, 선형 프로그래밍 과제의 목적은 파일들이 얼마나 많이 청크될 수 있는지를 결정하는 것이며(단계 520) 이 때 λ로 표시된 최대 링크 활용을 최소화하기 위하여 이들 청크들이 복제된다(단계 530). 이러한 파라미터를 결정하는 선형 프로그래밍 과제는 다음과 같을 수 있다. 즉,
수학식(6 - 9)에서, βj는 파일 단편을 나타내고, Du 는 에지 노드("u")에서 최대 다운로드 속도를 나타내고, λ는 최대 링크 활용을 나타내고, c(e)는 링크(e)의 대역폭 용량을 나타내고(여기서 e는 링크(E)의 집합의 일원임), j는 청크 개수 및 복제 그룹 개수를 나타내고, Gj는 스토리지 노드들의 복제 그룹을 나타내고, H(e)는 링크(e)를 사용하여 파일에 액세스하는 (복제 그룹, 에지 노드) 쌍들의 집합을 나타내며, p는 청크들의 최대 개수를 나타낸다.
이와 같이, 제1 실시예에서, 정해진 청크 크기(단계 520)는 βj이고, 스토리지 노드(들)에서 청크들의 정해진 배치(단계 530)는 G로 주어지고(여기서 각 복제 그룹(Gj) 별로, 각각의 스토리지 노드(c∈Gj)는 매 파일의 청크(j)를 저장함), 각각의 선택된 에지 노드 마다 정해진 액세스 스토리지 노드(단계 540)는 H(e)에서 복제 그룹-에지 노드 쌍의 집합(즉, (Gj, u))으로 주어진다.
또한, 제1 실시예에서, 클라이언트 입회 판단(단계 560)은 최소 최대 링크 활용(λ)으로부터 유도될 수 있다. 만일 λ≤1 이면, 클라이언트는 액세스 오블리비어스 서비스 보장에 따라 입회될 수 있다. 만일 λ>1 이면, 클라이언트는 스토리지 컨트롤러가 서비스 보장이 스케일(단계 565)될 수 있다고 결정하지 않는 한 액세스 오블리비어스 서비스 보장에 따라 입회되지 않을 수 있다. 액세스 오블리비어스 서비스 보장에 따라 클라이언트 입회를 가능하게 하기 위하여, 서비스 보장은 각각의 에지 노드(u)에서 λ에 의해 하향 스케일될 수 있다(단계 570). 예를 들어, 만일 서비스 보장이 최대 다운로드 속도와 같은 액세스 속도이면, 최대 다운로드 속도는 각각의 에지 노드(u)에서 Du/λ로 하향 스케일될 수 있다.
추가적인 제한을 추가함으로써 스토리지 노드들 중 어느 노드에서라도 스토리즈 양의 제한이 선형 프로그래밍 수립에 포함될 수 있다는 것을 알아야 한다.
비록 기본적으로 특별한 순서로 묘사되고 설명되었지만, 방법(300, 400 및 500)에 도시된 단계들은 어떠한 적절한 순서로도 수행될 수 있다는 것을 알아야 한다. 더욱이, 하나의 단계로 식별된 단계들은 그 순서에서 하나 이상의 다른 단계들에서 수행될 수도 있거나 아니면 하나의 단계보다 많은 공통적인 행위가 단지 한번만 수행될 수 있다.
전술한 여러 방법들의 단계는 프로그램된 컴퓨터에 의해 수행될 수 있다는 것을 알아야 한다. 본 출원에서, 일부 실시예들은 프로그램 저장 장치, 예를 들면, 머신 또는 컴퓨터로 판독가능하고 머신-실행가능한 또는 컴퓨터-실행가능한 명령의 프로그램을 인코드하는 디지털 데이터 저장 매체를 포함하는 것으로 또한 의도하고자 하며, 여기서 명령은 전술한 방법들의 일부 또는 모든 단계를 수행한다. 프로그램 저장 장치는, 예를 들면, 디지털 메모리, 자기 디스크 및 자기 테이프와 같은 자기 저장 매체, 하드 드라이브 또는 광학적으로 판독가능한 디지털 데이터 저장 매체일 수 있다. 또한 실시예들은 전술한 방법의 단계들을 수행하도록 프로그램된 컴퓨터를 포함하는 것으로 의도하고자 한다.
도 6은 도 1의 에지 노드(140) 또는 도 2의 에지 노드(240) 중 하나, 또는 도 1의 스토리지 컨트롤러(120) 또는 도 2의 스토리지 컨트롤러(220)와 같은 각종 장치의 실시예를 개략적으로 도시한다. 장치(600)는 프로세서(610), 데이터 스토리지(611), 및 I/O 인터페이스(630)를 포함한다.
프로세서(610)는 장치(600)의 동작을 제어한다. 프로세서(610)는 데이터 스토리지(611)와 연동한다.
데이터 스토리지(611)는 적절히 라우팅 정보 등과 같은 프로그램 데이터를 저장할 수 있다. 데이터 스토리지(611)는 또한 프로세서(610)에 의해 실행가능한 프로그램(620)을 저장한다.
프로세서-실행가능 프로그램(620)은 I/O 인터페이스 프로그램(621), 제공 프로그램(623), 또는 클라이언트 파일 서비싱 프로그램(625)을 포함할 수 있다. 프로세서(610)는 프로세서-실행가능 프로그램(620)과 연동한다.
I/O 인터페이스(630)는 프로세서(610) 및 I/O 인터페이스 프로그램(621)과 연동하여 적절히 전술한 바와 같이 도 1의 클라이언트 위치 통신 채널(115, 125, 175) 또는 (215 또는 225)를 통해 통신을 지원한다.
제공 프로그램(623)은 전술한 바와 같이 도 3의 방법(들)(300) 또는 도 5의 (500)의 단계들을 실행한다.
클라이언트 파일 서비싱 프로그램(625)은 전술한 바와 같이 도 4의 방법(400)의 단계를 실행한다.
일부 실시예에서, 프로세서(610)는 프로세서/CPU 코어와 같은 자원을 포함할 수 있고, I/O 인터페이스(630)는 모든 적합한 네트워크 인터페이스를 포함할 수 있고, 또는 데이터 스토리지(611)는 메모리 또는 저장 장치를 포함할 수 있다. 더욱이, 장치(600)는 하나 이상의 서버(들), 프로세서, 메모리, 네트워크 인터페이스 또는 저장 장치와 같은 컴포넌트로 구성된 블래이드(blades)와 같은 모든 적합한 물리적인 하드웨어 구성일 수 있다. 이러한 실시예의 일부에서, 장치(600)는 서로 멀리 떨어진 클라우드 네트워크 자원을 포함할 수 있다.
일부 실시예에서, 장치(600)는 가상 머신일 수 있다. 이러한 실시예의 일부에서, 가상 머신은 상이한 머신들로부터의 컴포넌트를 포함할 수 있거나 또는 지리적으로 분산되어 있을 수 있다. 예를 들어, 데이터 스토리지(611) 및 프로세서(610)는 두 가지 상이한 머신에서 존재할 수 있다.
프로세서-실행가능 프로그램(620)이 프로세서(610)에서 구현될 때, 프로그램 코드 세그먼트는 프로세서와 조합하여 특정한 로직 회로와 유사하게 동작하는 특유한 장치를 제공한다.
비록 본 출원에서, 예를 들면, 프로그램 및 로직이 데이터 스토리지 내에 저장되어 있고 메모리가 프로세서에 통신 가능하게 연결되어 있는 실시예에 대하여 도시되고 기술되었을 지라도, 그러한 정보는 (예를 들면, 모든 적절한 개수의 메모리, 스토리지 또는 데이터베이스를 이용하는) 다른 모든 적절한 방식으로; 모든 적절한 장치들 구성에 통신 가능하게 결합된 메모리, 스토리지 또는 데이터베이스들의 모든 적절한 구성을 이용하여; 정보를 메모리(들), 스토리지(들) 및/또는 내부 또는 외부 데이터베이스(들)의 모든 적절한 조합에 저장하여; 또는 모든 적절한 개수의 액세스가능한 외부 메모리, 스토리지 또는 데이터베이스를 이용하여 저장될 수 있다는 것을 인식하여야 한다. 이와 같이, 본 출원에서 언급된 데이터 스토리지라는 용어는 메모리(들), 스토리지(들), 및 데이터베이스(들)의 모든 적절한 조합을 망라하는 것으로 의미한다.
설명 및 도면은 단지 본 발명의 원리를 예시할 뿐이다. 그러므로 본 출원에 명백히 기술 또는 도시되지 않았다 할지라도, 본 기술에서 통상의 지식을 가진 자들이라면 본 발명의 원리를 구현하며 그 사상 및 범위에 포함되는 여러 장치들을 고안할 수 있음을 인식할 것이다. 더욱이, 본 출원에 언급된 모든 예들은 주로, 독자가 개시의 원리 및 발명자(들)가 기여한 개념을 이해하여 기술을 진전시키도록 교육적인 목적으로만 의도된 것이며, 그와 같이 특정하게 언급된 예 및 조건에 제한되지 않는 것으로 해석되어야 한다. 더욱이, 특정 예들은 물론이고, 원리, 양태, 및 개시된 실시예들을 언급하는 본 출원의 모든 문구는 그 균등물을 망라하는 것으로 의도된다.
"프로세서"로서 명기된 모든 기능 블록들을 포함하여, 도면에 도시된 각종 구성요소의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 연계하여 소프트웨어를 실행할 수 있는 하드웨어를 사용하여 제공될 수 있다. 프로세서에 의해 제공될 때, 그 기능들은 단일의 전용 프로세서에 의해, 단일의 공유 프로세서에 의해, 또는 그 중의 일부가 공유될 수 있는 복수의 개개 프로세서들에 의해 제공될 수 있다. 더욱이, "프로세서" 또는 "컨트롤러"라는 용어의 명시적인 사용은 소프트웨어를 실행할 수 있는 하드웨어를 배타적으로 언급하는 것으로 해석되지 않아야 하며, 제한 없이, 디지털 신호 프로세서(DSP) 하드웨어, 네트워크 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 소프트웨어를 저장하는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 및 비휘발성 저장 장치를 암시적으로 포함할 수 있다. 통상적인 또는 일반적인 다른 하드웨어 또한 포함될 수 있다. 유사하게, 도면들에 도시된 모든 스위치는 개념적일 뿐이다. 이들의 기능은 프로그램 로직의 동작을 통하여, 전용 로직을 통하여, 프로그램 컨트롤 및 전용 로직의 상호작용을 통하여, 또는 심지어 수작업으로도 실행될 수 있으며, 문맥으로부터 더욱 상세하게 이해될 때 특별한 기술이 시행자에 의해 선택될 수 있다.
본 출원에서 모든 블록도가 본 발명의 원리를 구현하는 예시적인 회로의 개념도를 표현한 것이라는 것을 알아야 한다. 유사하게, 모든 플로우 차트, 흐름도, 및 상태 천이도 등은 컴퓨터 또는 프로세서가 명시적으로 도시되든 않든지 간에 컴퓨터 판독가능 매체에서 실질적으로 표현될 수 있으며 그리고 그러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 각종 프로세스를 표현하는 것임을 알아야 한다.
Claims (10)
- 분산 파일 시스템을 제공하는 장치로서,
데이터 스토리지와,
상기 데이터 스토리지에 통신 가능하게 연결된 프로세서를 포함하되, 상기 프로세서는,
스토리지 네트워크 내 복수의 스토리지 노드 내에 저장된 복수의 파일들과 연관되며 복수의 연관된 통신 채널을 통하여 상기 스토리지 네트워크 내 복수의 에지 노드에 통신 가능하게 연결되는 복수의 클라이언트 위치를 결정하도록 구성되고,
상기 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하도록 구성되고,
상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 스토리지 노드 내 상기 복수의 파일의 스토리지를 제공하도록 구성되는
장치.
- 제 1 항에 있어서,
상기 복수의 파일의 스토리지의 제공은,
복수의 파일을 복수의 파일 청크로서 저장하는 것을 명시하는 파일 청킹 및 파일 복제 스토리지 메커니즘을 상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 파일에 적용하고,
상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 스토리지 노드 내 상기 복수의 파일 청크의 배치를 결정하고,
상기 복수의 에지 노드의 선택 부분의 각각에 대해, 상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 클라이언트 위치의 선택 부분의 각각으로부터 수신된 파일 액세스 요청에 응답하여 액세스될 상기 복수의 스토리지 노드 중 적어도 하나를 결정하도록 상기 프로세서를 구성하는 것을 포함하고,
상기 복수의 에지 노드의 선택 부분은 상기 복수의 클라이언트 위치의 선택 부분과 연관되는
장치.
- 제 2 항에 있어서,
상기 복수의 파일의 스토리지의 제공은 또한,
상기 스토리지 네트워크 내 상기 복수의 스토리지 노드 내에 저장된 복수의 제2 파일들과 연관되고 복수의 제2의 연관된 통신 채널을 통해 상기 스토리지 네트워크 내 상기 복수의 에지 노드에 통신 가능하게 연결되는 복수의 제2 클라이언트 위치를 결정하고,
상기 복수의 제2의 연관된 통신 채널의 복수의 제2 액세스 대역폭을 결정하고,
상기 복수의 제2 클라이언트 위치, 복수의 제2 액세스 대역폭 및 클라이언트 서비스 보장에 기초하여 상기 스토리지 네트워크 내 상기 복수의 제2 파일의 스토리지의 제공을 줄이도록 상기 프로세서를 구성하는 것을 포함하는
장치.
- 제 1 항에 있어서,
상기 복수의 파일의 스토리지의 제공은,
상기 복수의 클라이언트 위치와 연관된 복수의 에지 노드를 결정하고,
적어도 하나의 파일 스토리지 메커니즘을 상기 복수의 파일에 적용하고,
상기 복수의 스토리지 노드로부터 상기 복수의 파일의 액세스를 명시하는 액세스 정보에 따라 상기 복수의 에지 노드를 업데이트하도록 상기 프로세서를 구성하는 것을 포함하는
장치.
- 분산 파일 시스템을 제공하는 장치로서,
데이터 스토리지와,
상기 데이터 스토리지에 통신 가능하게 연결된 프로세서를 포함하되, 상기 프로세서는,
클라이언트 및 복수의 파일과 연관되는 복수의 클라이언트 위치로부터 스토리지 네트워크 내 복수의 스토리지 노드에 저장된 상기 복수의 파일에 액세스하려는 복수의 요청을 수신하고,
스토리지 컨트롤러로부터 상기 복수의 파일에 어떻게 액세스하는 지를 명시하는 액세스 정보를 수신하고,
제1 클라이언트 위치로부터 제1 파일에 대한 액세스 요청을 수신하고,
클라이언트, 상기 액세스 정보 및 상기 제1 파일에 기초하여 상기 제1 파일을 저장하는 복수의 결정된 스토리지 노드 및 상기 결정된 스토리지 노드로의 복수의 통신 경로를 결정하고,
상기 제1 파일을 상기 결정된 통신 경로를 통하여 상기 결정된 스토리지 노드로부터 검색하도록 구성되며,
상기 복수의 클라이언트 위치는 제1 클라이언트 위치를 포함하고,
상기 복수의 스토리지 노드는 복수의 결정된 스토리지 노드를 포함하는
장치.
- 제 5 항에 있어서,
상기 결정된 스토리지 노드는 상기 복수의 파일과 연관된 상기 클라이언트에 기초하여 고정되어 있는
장치.
- 분산 파일 시스템을 제공하는 시스템으로서,
복수의 클라이언트 중 하나와 각각 연관되는 복수의 클라이언트 위치와,
복수의 연관된 통신 채널을 통하여 상기 복수의 클라이언트 위치에 통신 가능하게 연결된 복수의 에지 노드와,
상기 복수의 에지 노드에 통신 가능하게 연결된 복수의 스토리지 노드 - 상기 복수의 스토리지 노드는 복수의 파일을 저장하고, 상기 복수의 파일 중 적어도 일부분은 각기 상기 복수의 클라이언트 중 하나와 연관됨 - 와,
상기 에지 노드에 통신 가능하게 연결된 스토리지 컨트롤러를 포함하되, 상기 스토리지 컨트롤러는,
복수의 결정된 클라이언트 위치를 결정하고,
상기 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하고,
상기 복수의 결정된 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 스토리지 노드 내 상기 복수의 파일의 스토리지를 제공하도록 구성되는
시스템.
- 분산 파일 시스템을 제공하는 방법으로서,
데이터 스토리지에 통신 가능하게 연결된 프로세서에서, 스토리지 네트워크 내 복수의 스토리지 노드 내에 저장된 복수의 파일들과 연관되며 복수의 연관된 통신 채널을 통하여 상기 스토리지 네트워크 내 복수의 에지 노드에 통신 가능하게 연결되는 복수의 클라이언트 위치를 결정하는 단계와,
상기 데이터 스토리지와 연동하는 상기 프로세서에 의해, 상기 복수의 연관된 통신 채널의 복수의 액세스 대역폭을 결정하는 단계와,
상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 스토리지 노드 내 상기 복수의 파일의 스토리지를 제공하는 단계를 포함하는
방법.
- 제 8 항에 있어서,
상기 복수의 파일의 스토리지를 제공하는 단계는,
상기 복수의 파일을 복수의 파일 청크로서 저장하는 것을 명시하는 파일 청킹 및 파일 복제 스토리지 메커니즘을 상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 파일에 적용하는 단계와,
상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 스토리지 노드 내 상기 복수의 파일 청크의 배치를 결정하는 단계와,
상기 복수의 에지 노드의 선택 부분의 각각에 대해 상기 복수의 클라이언트 위치 및 상기 복수의 액세스 대역폭에 기초하여 상기 복수의 클라이언트 위치의 선택 부분의 각각으로부터 수신된 파일 액세스 요청에 응답하여 액세스될 상기 복수의 스토리지 노드 중 적어도 하나를 결정하는 단계를 포함하되,
상기 복수의 에지 노드의 선택 부분은 상기 복수의 클라이언트 위치의 선택 부분과 연관되는
방법.
- 제 9 항에 있어서,
상기 파일 청킹 스토리지 메커니즘을 적용하는 단계는 상기 복수의 파일 전체에 걸쳐 실질적으로 균일한 파일 청킹을 적용하는 단계를 포함하는
방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/427,958 US20130254248A1 (en) | 2012-03-23 | 2012-03-23 | Method And Apparatus For A Distributed File System In A Cloud Network |
US13/427,958 | 2012-03-23 | ||
PCT/US2013/027713 WO2013142008A1 (en) | 2012-03-23 | 2013-02-26 | Method and apparatus for a distributed file system in a cloud network using file chunking and replication |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140129245A true KR20140129245A (ko) | 2014-11-06 |
Family
ID=47891974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147026428A KR20140129245A (ko) | 2012-03-23 | 2013-02-26 | 클라우드 네트워크에서 파일 청킹 및 복제를 이용하는 분산 파일 시스템의 방법 및 장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130254248A1 (ko) |
EP (1) | EP2828749A1 (ko) |
JP (1) | JP2015512534A (ko) |
KR (1) | KR20140129245A (ko) |
CN (1) | CN104254838A (ko) |
WO (1) | WO2013142008A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477679B2 (en) * | 2013-09-20 | 2016-10-25 | Google Inc. | Programmatically choosing preferred storage parameters for files in large-scale distributed storage systems |
US9367562B2 (en) | 2013-12-05 | 2016-06-14 | Google Inc. | Distributing data on distributed storage systems |
US9607002B2 (en) * | 2013-12-18 | 2017-03-28 | Intel Corporation | File retrieval from multiple storage locations |
US10289310B2 (en) * | 2017-06-27 | 2019-05-14 | Western Digital Technologies, Inc. | Hybrid data storage system with private storage cloud and public storage cloud |
US10733061B2 (en) | 2017-06-27 | 2020-08-04 | Western Digital Technologies, Inc. | Hybrid data storage system with private storage cloud and public storage cloud |
US11425183B2 (en) * | 2019-06-07 | 2022-08-23 | Eaton Intelligent Power Limited | Multi-threaded data transfer to multiple remote devices using wireless hart protocol |
CN112565325B (zh) * | 2019-09-26 | 2022-09-23 | 华为云计算技术有限公司 | 镜像文件管理方法、装置及系统、计算机设备、存储介质 |
US11893064B2 (en) * | 2020-02-05 | 2024-02-06 | EMC IP Holding Company LLC | Reliably maintaining strict consistency in cluster wide state of opened files in a distributed file system cluster exposing a global namespace |
CN114531467B (zh) * | 2020-11-04 | 2023-04-14 | 中移(苏州)软件技术有限公司 | 一种信息处理方法、设备和系统 |
CN117033330B (zh) * | 2023-10-08 | 2023-12-08 | 南京翼辉信息技术有限公司 | 一种多核文件共享系统及其控制方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266555B1 (en) * | 2000-03-03 | 2007-09-04 | Intel Corporation | Methods and apparatus for accessing remote storage through use of a local device |
US6970939B2 (en) * | 2000-10-26 | 2005-11-29 | Intel Corporation | Method and apparatus for large payload distribution in a network |
EP1364510B1 (en) * | 2000-10-26 | 2007-12-12 | Prismedia Networks, Inc. | Method and system for managing distributed content and related metadata |
EP1430399A1 (en) * | 2001-08-31 | 2004-06-23 | Arkivio, Inc. | Techniques for storing data based upon storage policies |
JP2004126716A (ja) * | 2002-09-30 | 2004-04-22 | Fujitsu Ltd | 広域分散ストレージシステムを利用したデータ格納方法、その方法をコンピュータに実現させるプログラム、記録媒体、及び広域分散ストレージシステムにおける制御装置 |
US7213021B2 (en) * | 2004-03-11 | 2007-05-01 | Hitachi, Ltd. | Method and apparatus for storage network management |
US20070214105A1 (en) * | 2006-03-08 | 2007-09-13 | Omneon Video Networks | Network topology for a scalable data storage system |
CN101316274B (zh) * | 2008-05-12 | 2010-12-01 | 华中科技大学 | 一种适用于广域网的数据容灾系统 |
US9176779B2 (en) * | 2008-07-10 | 2015-11-03 | Juniper Networks, Inc. | Data access in distributed systems |
JP2011113462A (ja) * | 2009-11-30 | 2011-06-09 | Samsung Electronics Co Ltd | コンテンツデータの送受信方法及びコンテンツデータの送受信システム |
US8868508B2 (en) * | 2010-02-09 | 2014-10-21 | Google Inc. | Storage of data in a distributed storage system |
US8234372B2 (en) * | 2010-05-05 | 2012-07-31 | Go Daddy Operating Company, LLC | Writing a file to a cloud storage solution |
US20120066191A1 (en) * | 2010-09-10 | 2012-03-15 | International Business Machines Corporation | Optimized concurrent file input/output in a clustered file system |
-
2012
- 2012-03-23 US US13/427,958 patent/US20130254248A1/en not_active Abandoned
-
2013
- 2013-02-26 CN CN201380015933.1A patent/CN104254838A/zh active Pending
- 2013-02-26 JP JP2015501681A patent/JP2015512534A/ja active Pending
- 2013-02-26 KR KR1020147026428A patent/KR20140129245A/ko not_active Application Discontinuation
- 2013-02-26 WO PCT/US2013/027713 patent/WO2013142008A1/en active Application Filing
- 2013-02-26 EP EP13710170.5A patent/EP2828749A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20130254248A1 (en) | 2013-09-26 |
JP2015512534A (ja) | 2015-04-27 |
WO2013142008A1 (en) | 2013-09-26 |
CN104254838A (zh) | 2014-12-31 |
EP2828749A1 (en) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20140129245A (ko) | 클라우드 네트워크에서 파일 청킹 및 복제를 이용하는 분산 파일 시스템의 방법 및 장치 | |
US10050862B2 (en) | Distributed application framework that uses network and application awareness for placing data | |
US8965845B2 (en) | Proactive data object replication in named data networks | |
EP2901308B1 (en) | Load distribution in data networks | |
US20180102945A1 (en) | Graceful scaling in software driven networks | |
US9626222B2 (en) | Method and apparatus for network and storage-aware virtual machine placement | |
WO2017211377A1 (en) | Method, apparatus and system for mobile edge computing | |
JP2012518841A (ja) | トポロジを意識したキャッシュ協働 | |
BR112013032366B1 (pt) | Aparelho de arquitetura expandida de gerenciamento e controle de serviço de nuvem para interface com um estrato de rede | |
CN111404992A (zh) | 承租人控制的云更新 | |
JP6823716B2 (ja) | マルチサイト複製をサポートする一貫性ハッシュ構成 | |
JP7398567B2 (ja) | 動的適応型パーティション分割 | |
KR102001572B1 (ko) | 분산 파일 시스템 및 이의 데이터 관리 방법 | |
CN102740165A (zh) | 对等流媒体直播系统及其中的数据传输方法 | |
Suto et al. | An overlay-based data mining architecture tolerant to physical network disruptions | |
JP2007272540A (ja) | データ配信方法及びデータ配信システム | |
Enghardt et al. | Using informed access network selection to improve HTTP adaptive streaming performance | |
US10826805B2 (en) | System and method for dynamic online backup optimization | |
US20170180270A1 (en) | Adaptive fabric multicast schemes | |
Nguyen et al. | A dynamic-clustering backup scheme for high-availability distributed File sharing Systems | |
GB2593521A (en) | Establishment of a Telecommunications service | |
JP7564879B2 (ja) | 非同種ストレージ内の容量及び性能の最適化 | |
Peng et al. | Software‐Defined Network Resource Optimization of the Data Center Based on P4 Programming Language | |
Ruty et al. | An initial evaluation of 6Stor, a dynamically scalable IPv6-centric distributed object storage system: Precise architecture description and first benchmark results | |
Kanaga et al. | SELDAC: Software-Defined Storage based Efficient Load Distribution and Auto Scaling in Cloud Data Centers. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |