KR20140022922A - 네트워크 분할을 통한 네이티브 클라우드 컴퓨팅 - Google Patents

네트워크 분할을 통한 네이티브 클라우드 컴퓨팅 Download PDF

Info

Publication number
KR20140022922A
KR20140022922A KR1020137033793A KR20137033793A KR20140022922A KR 20140022922 A KR20140022922 A KR 20140022922A KR 1020137033793 A KR1020137033793 A KR 1020137033793A KR 20137033793 A KR20137033793 A KR 20137033793A KR 20140022922 A KR20140022922 A KR 20140022922A
Authority
KR
South Korea
Prior art keywords
computing
data communication
communication network
computing node
node
Prior art date
Application number
KR1020137033793A
Other languages
English (en)
Other versions
KR101593463B1 (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 인텔 코오퍼레이션
Publication of KR20140022922A publication Critical patent/KR20140022922A/ko
Application granted granted Critical
Publication of KR101593463B1 publication Critical patent/KR101593463B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/781Centralised allocation of resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests

Abstract

네이티브 클라우드 컴퓨팅에 관련된 시스템, 방법 및 저장 매체가 개시된다. 실시예들에서, 시스템은 다수의 컴퓨팅 노드 클러스터, 및 컴퓨팅 노드 클러스터들을 연결하도록 구성된 데이터 통신 네트워크를 포함할 수 있다. 시스템은 계산 작업의 네이티브 실행을 위한 할당을 위해 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해, 데이터 통신 네트워크를 분할하거나 데이터 통신 네트워크의 분할을 야기하도록 구성된 제어 노드를 더 포함할 수 있다. 시스템은 데이터 통신 네트워크에 연결된 제어 네트워크, 및 제어 노드를 더 포함할 수 있다. 다른 실시예들이 개시되고 청구될 수 있다.

Description

네트워크 분할을 통한 네이티브 클라우드 컴퓨팅{NATIVE CLOUD COMPUTING VIA NETWORK SEGMENTATION}
실시예들은 데이터 처리 분야에 관한 것이고, 구체적으로는 네이티브 클라우드 컴퓨팅(native cloud computing)에 관련된 시스템, 방법 및 저장 매체에 관한 것이다.
본 명세서에서 다르게 나타나지 않는 한, 본 섹션에서 설명되는 자료들은 본 출원의 청구항들에 대한 종래기술이 아니며, 본 섹션에 포함되는 것으로 인해 종래기술로 인정되지는 않는다.
집적 회로, 컴퓨팅 및 네트워킹 기술의 발전으로, 클라우드 컴퓨팅이 인기있어졌다. 최근, 클라우드 컴퓨팅은 고성능 컴퓨팅, 즉 과학 분야의 컴퓨팅과 같은 계산 집약적인 애플리케이션을 위해 이용되어 왔다. 현재, 보안 상의 이유로, 즉 상이한 사용자 애플리케이션들을 분리하기 위해, 클라우드 컴퓨팅은 통상적으로 상이한 사용자 애플리케이션들 각각에 대해 각각의 컴퓨팅 노드 상에 다수의 가상 머신을 개별적으로 인스턴스화하고 운영한다. 그 결과, 성능은 네이티브 컴퓨팅에 비해 10-100배 더 느릴 수 있다.
본 명세서의 실시예들은 유사한 참조번호들이 유사한 구성요소들을 나타내는 첨부 도면들에 도시되어 있지만 제한적이지는 않은 예시적인 실시예에 의해 제공될 것이다.
도 1은 네이티브 클라우드 컴퓨팅 구성의 개요를 도시한다.
도 2는 네이티브 컴퓨팅 클라우드들을 형성하기 위한 데이터 통신 네트워크의 예시적인 분할을 도시한다.
도 3은 네이티브 클라우드 컴퓨팅에 관련된 방법을 도시한다.
도 4는 네이티브 클라우드 컴퓨팅을 가능하게 하도록 구성된 비일시적인 컴퓨터 저장 매체를 도시한다.
도 5는 네이티브 클라우드 컴퓨팅 구성의 컴퓨팅 노드 또는 제어 노드로서 사용하기에 적합한 예시적인 컴퓨터 시스템을 도시하며, 여기에서는 상술한 예시들 전부가 본 명세서의 실시예들에 따라 배치된다.
시스템, 방법 및 저장 매체의 실시예들은 네이티브 클라우드 컴퓨팅에 관련된다. 다양한 실시예들에서, 시스템은 다수의 컴퓨팅 노드 클러스터(clusters of computing nodes), 및 컴퓨팅 노드 클러스터들을 연결하도록 구성된 데이터 통신 네트워크를 포함할 수 있다. 시스템은 계산 작업(computation task)의 네이티브 실행을 위한 할당을 위해, 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 적어도 통신적으로 고립시키기 위해, 데이터 통신 네트워크를 분할하거나 데이터 통신 네트워크의 분할을 야기하도록 구성된 제어 노드를 더 포함할 수 있다. 시스템은 데이터 통신 네트워크에 연결된 제어 네트워크, 및 제어 노드를 더 포함할 수 있다.
다양한 실시예들에서, 제어 노드는 컴퓨팅 자원들이 계산 작업을 실행하도록, 제어 네트워크를 통해 사용자 노드로부터 수신된 요청에 응답하여, 할당될 컴퓨팅 노드 클러스터를 적어도 통신적으로 고립시키기 위해 데이터 통신 네트워크를 분할하거나 데이터 통신 네트워크의 분할을 야기하도록 구성될 수 있으며, 컴퓨터 노드 클러스터는 할당에 이용가능하며, 요청을 충족시키기에 실질적으로 충분한 계산 자원을 포함한다. 요청은 클러스터 및/또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 계산 작업에 관련된 하나 이상의 프로그램의 지정, 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 계산 작업의 예상되는 실행 지속기간의 지정을 포함할 수 있다.
다양한 실시예들에서, 제어 노드는 할당된 컴퓨팅 노드 클러스터의 컴퓨팅 노드들에 대해 각각의 운영 체제들을 프로비져닝하거나 각각의 운영 체제들의 프로비져닝을 야기하고, 계산 작업에 관련된 데이터를 프로비져닝될 컴퓨팅 노드들에 로딩하거나 그러한 데이터의 로딩을 야기하고/거나, 프로비져닝된 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 계산 작업에 관련된 하나 이상의 프로그램을 런칭하거나 그러한 하나 이상의 프로그램의 런칭을 야기하도록 더 구성될 수 있다. 제어 노드는 또한 계산 작업의 네이티브 실행의 완료 후에, 할당된 컴퓨팅 노드 클러스터 내에서 계산 작업에 관련된 모든 데이터를 소거하거나 그러한 데이터의 소거를 야기하도록 더 구성될 수 있다.
다양한 실시예들에서, 데이터 통신 네트워크는 컴퓨팅 노드 클러스터들을 인터넷에 연결하도록 더 구성될 수 있다. 데이터 통신 네트워크는 네트워킹 디바이스들의 제1 컬렉션을 포함할 수 있고, 제어 네트워크는 네트워킹 디바이스들의 제2 컬렉션을 포함할 수 있고, 네트워킹 디바이스들의 제1 및 제2 컬렉션은 상이한 네트워킹 디바이스들이다. 다른 실시예들에서, 데이터 통신 네트워크는 복수의 네트워킹 디바이스를 통과하는 네트워킹 경로들의 제1 컬렉션을 포함할 수 있고, 제어 네트워크는 동일한 네트워킹 디바이스들 중 적어도 일부를 통과하는 네트워킹 경로들의 제2 컬렉션을 포함할 수 있지만, 네트워킹 경로들의 제1 및 제2 컬렉션은 상이한 네트워킹 경로들이거나, 동일한 네트워킹 경로들에 대한 상이한 프로토콜들이다.
다양한 실시예들에서, 방법은 제어 노드에 의해, 계산 작업의 실행을 위해 할당될 클라우드 컴퓨팅 노드들에 대한 요청을 사용자 노드로부터 수신하는 단계; 및 제어 노드에 의해, 컴퓨팅 노드 클러스터가 할당을 위해 이용가능하며, 요청을 충족시키기에 실질적으로 충분한 계산 자원을 포함하는 것을 판정하는 단계를 포함할 수 있다. 컴퓨팅 노드 클러스터는 데이터 통신 네트워크를 통해 다른 컴퓨팅 노드 클러스터에 연결될 수 있다. 방법은 제어 노드에 의해, 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 적어도 통신적으로 고립시키기 위해 데이터 통신 네트워크를 분할하거나 데이터 통신 네트워크의 분할을 야기하는 단계; 및 제어 노드에 의해, 계산 작업의 네이티브 실행을 위해, 고립된 컴퓨팅 노드 클러스터를 할당하는 단계를 더 포함할 수 있다.
다양한 실시예들에서, 비일시적인 컴퓨터 판독가능한 저장 매체에는 프로그래밍 명령어들이 저장되어 있을 수 있는데, 그 프로그래밍 명령어들은 서버에 의한 프로그래밍 명령어들의 실행에 응답하여 위에서 설명한 방법을 수행하도록 서버를 프로그래밍하도록 구성된다.
예시적인 실시예들의 다양한 양태들은 본 기술분야의 숙련된 자들이 자신의 작업의 요지를 본 기술분야의 다른 숙련된 자들에게 전달하기 위해 흔하게 이용하는 용어들을 이용하여 설명될 것이다. 그러나, 본 기술분야의 숙련된 자는 다른 실시예들이 설명된 양태들의 일부만으로 구현될 수 있음을 알 것이다. 설명을 위해, 예시적인 실시예들의 완전한 이해를 제공하도록, 특정 수치, 재료 및 구성이 제시된다. 그러나, 본 기술분야의 숙련된 자는 다른 실시예들이 그러한 특정 상세 없이도 구현될 수 있음을 알 것이다. 다른 경우들에서, 예시적인 실시예들을 모호하게 하지 않기 위해, 잘 알려진 특징들은 생략되거나 단순화된다.
또한, 다양한 동작들은 복수의 개별 동작으로서 설명될 것이고, 이것은 예시적인 실시예들을 이해하는 데에 있어서 가장 도움이 되는 방식이지만; 설명의 순서는 그러한 동작들이 반드시 순서에 의존한다는 것을 시사하는 것으로 이해되어서는 안 된다. 구체적으로, 이 동작들이 반드시 제시된 순서대로 수행될 필요는 없다.
여기에서 "네이티브 실행(native execution)"이라는 용어가 이용된다. 이 용어는 작업 실행의 맥락에서 이용될 때, 컴퓨팅 노드 상에 인스턴스화된 복수의 가상 머신 중 하나에서 작업을 실행하는 것에 대조적으로, 컴퓨팅 노드에서 작업을 직접 실행하는 것을 지칭한다. 여기에서 용어 "분할한다(segment)", "분할(segmentation)" 및 다른 변형이 이용된다. 이 용어들은 컴퓨팅 자원 클러스터들을 연결하는 데이터 통신 네트워크의 분할의 맥락에서 이용될 때, 하나 이상의 컴퓨팅 노드 클러스터가 다른 컴퓨팅 노드들로부터 적어도 통신적으로 고립되어, 적어도 통신적으로 고립된 그러한 컴퓨팅 노드 클러스터/클러스터들이 작업의 네이티브 실행을 위해 할당될 수 있게 하는 방식으로 데이터 통신 네트워크를 구성하는 것을 지칭한다. 실시예들에서, 통신적으로 고립되는 것에 더하여, 고립된 컴퓨팅 노드 클러스터/클러스터들은 다른 컴퓨팅 노드 클러스터/클러스터들로부터 물리적으로 고립, 즉 분리될 수 있다.
"일 실시예에서"라는 구문이 반복적으로 이용된다. 이 구문은 일반적으로는 동일 실시예를 지칭하지 않지만, 동일 실시예를 지칭할 수도 있다. 맥락에 의해 다르게 나타나지 않는 한, "포함하는(comprising, including)" 및 "갖는(having)"은 동의어이다. 구문 "A/B"는 "A 또는 B"를 의미한다. 구문 "A 및/또는 B"는 "(A), (B), 또는 (A 및 B)"를 의미한다. 구문 "A, B 및 C 중 적어도 하나"는 "(A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)"를 의미한다. 구문 "(A) B"는 "(B) 또는 (A B)"를 나타내는데, 즉 A는 선택사항이다.
이제 도 1을 참조하면, 네이티브 클라우드 컴퓨팅 구성의 개요가 도시되어 있다. 도시된 바와 같이, 네이티브 클라우드 컴퓨팅 구성(100)은 다양한 컴퓨팅 노드 클러스터들(102), 및 컴퓨팅 노드 클러스트들(102)을 서로, 그리고 인터넷(105)에 연결하도록 구성된 데이터 통신 네트워크(104)를 포함할 수 있다. 네이티브 클라우드 컴퓨팅 구성(100)은 데이터 통신 네트워크(104)에 연결된 제어 네트워크(106), 제어 노드(108) 및 사용자 노드(110)를 더 포함할 수 있다. 사용자 노드(110)는 인터넷(105)을 통해 제어 네트워크(106) 및 데이터 통신 네트워크(104)에 연결될 수 있다. 제어 노드(108)는 이하에 더 상세하게 설명되는 바와 같이, 작업의 실행을 위한 클라우드 컴퓨팅 자원에 대한 사용자 노드(110)로부터의 요청에 응답하여, 작업의 네이티브 실행을 위한 할당을 위해 컴퓨팅 노드 클러스터(102)를 적어도 통신적으로 고립시키기 위해 데이터 통신 네트워크(104)를 분할하도록 구성될 수 있다.
다양한 컴퓨팅 노드 클러스터들(102)의 각각의 컴퓨팅 노드들은 하나 또는 수 개의 CPU, 로컬 랜덤 액세스 메모리, 및 하드 디스크 드라이브와 같은 입출력(I/O) 기능부 등을 가질 수 있다. 컴퓨팅 노드들은 본 기술분야에 알려져 있는 임의의 컴퓨팅 시스템, 예를 들어 텍사스 오스틴의 Dell Computer, 또는 팔로 알토의 Hewlett Packard로부터 입수가능한 컴퓨팅 서버들일 수 있다. 다양한 실시예들에서, 컴퓨팅 서버는 블레이드 서버들(blade servers)을 포함할 수 있다. 블레이드 서버는 멀티코어 프로세서, 예를 들어 캘리포니아주 산타클라라의 Intel Corporation의 멀티코어 프로세서들을 포함할 수 있다. 블레이드 서버는 또한 시스템 메모리, 대용량 저장소 및/또는 다양한 유형의 하나 이상의 네트워킹 카드/인터페이스를 포함할 수 있다. 컴퓨팅 노드(102)의 예는 도 5를 참조하여 나중에 더 상세하게 설명될 것이다. 컴퓨팅 노드들(102)의 수, 컴퓨팅 노드들의 컴퓨팅 용량, 및 이용되는 네트워킹 유형은 동시에 지원될 계산 집약적 작업의 수, 계산 강도, 및 이러한 작업들의 데이터 통신 특성에 따라, 구현마다 달라질 수 있다.
데이터 통신 네트워크(104)는 컴퓨팅 노드 클러스터들(102) 간의 데이터 통신을 용이하게 하도록 구성된 임의의 고속 네트워크 또는 네트워크들, 예를 들어 10G 이더넷 또는 InfiniBand일 수 있다. 데이터 통신 네트워크(104)는 본 명세서의 교시를 제외하면, 본 기술분야에 알려져 있는 고속 라우터, 스위치 및/또는 게이트웨이, 예를 들어 캘리포니아주 산호세의 Cisco Systems, Inc., 캘리포니아주 산호세의 Mellanox, 또는 캘리포니아주 산호세의 Netgear, Inc.로부터 입수가능한 고속 라우터, 스위치 및 게이트웨이와 같은 임의의 고속 네트워킹 디바이스들을 포함할 수 있다. 데이터 통신 네트워크(104)는 유선, 무선 또는 둘 다일 수 있다. 다양한 실시예들에서, 데이터 통신 네트워크(104)의 라우터, 스위치 및/또는 게이트웨이는 데이터 통신 네트워크(104)가 적어도 통신적으로 컴퓨팅 노드들을 상이한 크기의 컬렉션들로 선택적으로 고립시키도록 분할될 수 있는 방식으로 배열될 수 있다.
이제 도 2를 또한 참조하면, 16개의 컴퓨팅 노드 클러스터(102aa-102dd)를 갖는 다양한 실시예들이 도시되어 있다. 실시예들에 대하여, 데이터 통신 네트워크(104)의 라우터 등은 16개의 컴퓨팅 노드 클러스터(102aa-102dd)가 예를 들어 스위칭 포인트 S2에서 데이터 트래픽을 "차단(blocking)"하는 것에 의해 8개의 컴퓨팅 노드 클러스터의 2개의 컬렉션으로 분할될 수 있다(이하에 더 상세하게 설명됨). 8개의 컴퓨팅 노드 클러스터의 제1 컬렉션은 컴퓨팅 노드 클러스터(102aa-102ab, 102ba-102bb, 102ca-102cb, 및 102da 및 102db)를 포함하는 반면, 8개의 컴퓨팅 노드 클러스터의 제2 컬렉션은 컴퓨팅 노드들(102ac-102ad, 102bc-102bd, 102cc-102cd, 및 102dc 및 102dd)을 포함한다. 이러한 컴퓨팅 노드 클러스터들의 컬렉션들 각각은 다른 컴퓨팅 노드 클러스터들의 컬렉션으로부터 적어도 통신적으로 고립되고 보안된다.
계속하여 도 2를 참조하면, 8개의 컴퓨팅 노드 클러스터의 제2 컬렉션은 예를 들어 스위칭 포인트 S3에서 데이터 트래픽을 "차단"함으로써 4개의 컴퓨팅 노드 클러스터의 2개의 더 작은 컬렉션으로 더 분할될 수 있다. 4개의 컴퓨팅 노드 클러스터의 이러한 2개의 새로운 컬렉션 중 첫번째 컬렉션은 컴퓨팅 노드 클러스터(102ac-102ad, 102bc-102bd)를 포함하는 반면, 4개의 컴퓨팅 노드 클러스터의 두번째 새로운 컬렉션은 컴퓨팅 노드 클러스터(102cc-102cd, 및 102dc 및 102dd)를 포함한다. 마찬가지로, 이러한 컴퓨팅 노드 클러스터들의 이러한 새로운 컬렉션들 각각은 다른 컴퓨팅 노드 클러스터들의 컬렉션으로부터 적어도 통신적으로 고립되고 보안된다.
상술한 예는 예시적인 것으로 의도된 것이며, 본 명세서에 대한 제한으로서 읽혀져서는 안 된다. 다른 개수의 컴퓨팅 노드 클러스터(102), 및 다른 분할 구성이 제한없이 구현될 수 있다. 특히, 실시예들에서, 컴퓨팅 노드 클러스터(102)를 다른 컴퓨팅 노드 클러스터들로부터 적어도 통신적으로 고립시키기 위해, 데이터 통신 네트워크(104)가 분할될 수 있다. 추가로, 고립된 컴퓨팅 노드 클러스터/클러스터들(102)은 인터넷에 연결된 채로 남아있을 수 있으며, 다른 컴퓨팅 노드 클러스터/클러스터들(102)은 다른 클라우드 컴퓨팅 요청들을 서비스하기 위한 할당에 이용가능하게 남아있을 수 있다.
다시 도 1을 참조하면, 앞에서 설명된 바와 같이, 네이티브 클라우드 컴퓨팅 구성(100)은 제어 네트워크(106)를 포함할 수 있다. 데이터 통신 네트워크(104)와는 달리, 제어 네트워크(106)는 제한된 대역폭의 네트워크 또는 네트워크들일 수 있다. 제어 네트워크(106)는 본 명세서의 교시를 제외하면, 본 기술분야에 알려져 있는 저-중간 범위(low to mid-range) 성능의 라우터, 스위치 및/또는 게이트웨이, 예를 들어 캘리포니아주 산호세의 Cisco Systems, Inc. 또는 캘리포니아주 산호세의 Netgear, Inc.로부터 입수가능한 저-중간 범위 라우터, 스위치 및 게이트웨이와 같은 임의의 저-중간 범위 성능의 네트워킹 디바이스들을 포함할 수 있다. 제어 네트워크(106)는 마찬가지로 유선, 무선 또는 둘 다일 수 있다.
다양한 실시예들에서, 데이터 통신 네트워크(104) 및 제어 네트워크(106)는 각각 상이한 네트워킹 디바이스 그룹들을 포함할 수 있다. 일부 실시예들에서, 데이터 통신 네트워크(104) 및 제어 네트워크(106)의 적어도 일부는 각각 공통의 네트워킹 디바이스들을 통해 라우팅되는 네트워킹 경로들의 상이한 분리된 그룹들, 또는 동일한 공통의 네트워킹 경로들에 대한 상이한 프로토콜들을 포함할 수 있다.
앞에서 설명된 바와 같이, 네이티브 클라우드 컴퓨팅 구성(100)은 제어 노드(108)를 포함할 수 있다. 제어 노드(108)는 여기에 설명된 제어 기능들을 수행하도록 구성된 제어 로직/구성요소를 포함할 수 있다. 다양한 실시예들에서, 제어 로직/구성요소들은 사용자 노드(110)로부터 계산 작업을 실행하기 위한 클라우드 컴퓨팅 자원들에 대한 요청을 수신하도록 구성된 사용자 인터페이스(122), 및 사용자 인터페이스(122)에 동작상 연결되어, 하나 이상의 컴퓨팅 노드 클러스터(102)가 이용가능하며 계산 작업의 네이티브 실행을 위한 할당에 대한 요청을 실질적으로 충족시키기에 충분한 컴퓨팅 자원을 포함하는지를 판정하도록 구성된 스케줄러(124)를 포함할 수 있다. 스케줄러(124)는 이용가능하며 충분한 자원을 갖는다고 판정된 때에 클러스터/클러스터들(102)을 할당하도록 더 구성될 수 있다. 제어 로직/구성요소들은 스케줄러(122)에 동작상 연결되고 데이터 통신 네트워크(104)를 분할하여 할당된 클러스터/클러스터들(102)을 고립시키도록 구성된 네트워크/클러스터 인터페이스(126)를 더 포함할 수 있다. 사용자 인터페이스(122), 스케줄러(124) 및 네트워크/클러스터 인터페이스(126)는 하드웨어로, 소프트웨어로, 또는 둘 다의 조합으로 구현될 수 있다. 다양한 실시예들에서, 사용자 인터페이스(122), 스케줄러(124) 및 네트워크/클러스터 인터페이스(126)는 결합되어, 예를 들면 제어기를 함께 형성할 수 있다.
마찬가지로, 앞에서 설명된 바와 같이, 네이티브 클라우드 컴퓨팅 구성(100)은 사용자 노드(110)를 포함할 수 있다. 사용자 노드(110)는, 사용자 노드(110)로 하여금 예를 들어 제어 노드(108)에 의해 제공되는 웹페이지(도시되지 않음)에 액세스함으로써 계산 작업을 실행하기 위한 클라우드 컴퓨팅 자원들에 대한 요청을 제출할 수 있게 하도록 구성된 브라우저(132)를 포함할 수 있다. 브라우저(132)는 사용자 노드(110)로 하여금, 계산 노드들(102)의 클러스터/클러스터들의 할당에 관한 통지에 응답하여 수신할 수 있게 하도록 더 구성될 수 있고, 여기에서 할당된 계산 노드 클러스터/클러스터들(102)은 분할된 데이터 통신 네트워크(104)에 의해 다른 계산 노드 클러스터/클러스터들(102)로부터 고립된다. 다른 실시예들에서, 브라우저(132)는, 사용자 노드(110)가 요청을 제출하고/거나 할당 통지를 수신할 수 있게 하도록 구성된, 브라우저(132)에의 플러그-인(도시되지 않음)을 구비할 수 있다. 또 다른 실시예들에서는, 브라우저(132)를 대신하여, 사용자 노드(110)가 유사한 기능들을 제공하도록 구성된 제어 노드(108)의 에이전트(도시되지 않음)를 구비할 수 있다.
클러스터들(102)의 컴퓨팅 노드들과 마찬가지로, 여기에 포함된 본 명세서의 교시를 제외하면, 제어 노드(108) 및/또는 사용자 노드(110)는 본 기술분야에 알려진 임의의 컴퓨팅 시스템, 예를 들어 텍사스 오스틴의 Dell Computer, 또는 팔로 알토의 Hewlett Packard로부터 입수가능한 데스크탑, 랩탑 또는 태블릿 컴퓨터일 수 있다. 다양한 실시예들에서, 컴퓨팅 서버는 블레이드 서버들을 포함할 수 있다. 제어 노드(108) 및/또는 사용자 노드(110)는 멀티코어 프로세서, 예를 들어 캘리포니아주 산타클라라의 Intel Corporation의 멀티코어 프로세서들을 포함할 수 있다. 제어 노드(108) 및/또는 사용자 노드(110)는 또한 시스템 메모리, 대용량 저장소 및/또는 다양한 유형의 하나 이상의 네트워킹 카드/인터페이스를 포함할 수 있다. 제어 노드(108) 및 사용자 노드(110)는 유사하거나 유사하지 않은 컴퓨팅 디바이스들일 수 있다. 다양한 실시예들에서, 제어 노드(108) 및 사용자 노드(110)는 동일한 컴퓨팅 디바이스일 수 있다. 또한, 제어 노드(108) 또는 사용자 노드(110)가 클러스터들(102)의 컴퓨팅 노드들 중 하나일 수 있고, 또는 둘 다가 클러스터들(102)의 컴퓨팅 노드들일 수 있다. 제어 노드(108) 및/또는 사용자 노드(110)의 예는 또한 도 5를 참조하여 나중에 더 상세하게 설명될 것이다.
도 3은 다양한 실시예들에 따라, 네이티브 클라우드 컴퓨팅에 관련된 방법을 도시한다. 도시된 바와 같이, 방법(300)은 블록(302)에서, 제어 노드(108)가 클라우드 컴퓨팅 자원들에 대한 사용자 노드(110)로부터의 요청을 수신하는 것으로 시작할 수 있다. 다양한 실시예들에서, 요청은 클러스터 및/또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 계산 작업에 관련된 하나 이상의 프로그램의 지정, 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 계산 작업의 예상되는 실행 지속기간의 지정을 포함할 수 있다. 다양한 실시예들에서, 요청은 네이티브 컴퓨팅 노드들을 명시적으로 요청할 수 있다.
블록(302)으로부터, 방법(300)은 블록(304)으로 진행할 수 있고, 여기에서 제어 노드(108)는 요청을 실질적으로 충족시키기 위해 이용가능한 네이티브 컴퓨팅 자원이 충분히 존재하는지 여부를 포함하여, 네이티브 컴퓨팅 자원으로 요청을 이행할지 여부를 판정할 수 있다. 다양한 실시예들에서, 요청이 네이티브 컴퓨팅 노드들을 명시적으로 요청하는 경우, 제어 노드(108)는 그 네이티브 컴퓨팅 노드들로 요청을 이행하도록 구성될 수 있다. 다양한 실시예들에서, 요청이 임계치를 초과하는 프로세서 컴퓨팅 용량에 대해 요청하는 경우, 제어 노드(108)는 네이티브 컴퓨팅 노드들로 요청을 이행하도록 구성될 수 있다. 다양한 실시예들에서, 제어 노드(108)는 요청을 정확하게 또는 초과하여 충족시키는 것과 대조적으로, 요청을 실질적으로 충족시키는 컴퓨팅 자원들/용량들을 갖는 네이티브 컴퓨팅 클라우드로 요청을 이행하도록 구성될 수 있다.
블록(304)으로부터, 네이티브 컴퓨팅 자원으로 요청을 이행하기로 결정하고, 요청을 실질적으로 충족시키기 위해 이용가능한 네이티브 컴퓨팅 자원이 충분히 존재한다고 판정한 때, 방법(300)은 블록(306)으로 진행할 수 있고, 거기에서 제어 노드(108)는 사용자의 작업(들)의 네이티브 실행을 위해 할당될 하나 이상의 컴퓨팅 노드 클러스터를 적어도 통신적으로 고립시키기 위해, 데이터 통신 네트워크(104)를 분할하거나 데이터 통신 네트워크의 분할을 야기할 수 있다. 제어 노드(108)는 고립된 컴퓨팅 노드 클러스터 또는 클러스터들과 다른 컴퓨팅 노드 클러스터들 간의 데이터 통신을 차단하기 위해, 데이터 통신 네트워크(104)의 네트워킹 요소들의 라우팅, 접속 및/또는 프로토콜을 직접 구성하거나 그들의 구성을 야기함으로써, 데이터 통신 네트워크(104)를 분할하거나 데이터 통신 네트워크의 분할을 야기할 수 있다. 제어 노드(108)는 예를 들어 운영자에게 네트워킹 구성요소, 라우터, 스위치, 케이블 등을 구성하라는 명령을 발행함으로써 구성을 야기할 수 있다. 명령은 네트워킹 구성요소들에 대한 권한있는(privileged) 및/또는 사용자 액세스불가(user inaccessible) 커맨드를 포함할 수 있다. 명령은 소정의 네트워킹 요소들을 물리적으로 분리하여, 하나 이상의 컴퓨팅 노드 클러스터가 다른 컴퓨팅 노드 클러스터들로부터 물리적으로 고립되게 하라는 운영자에게의 명령을 포함할 수 있다.
블록(306)으로부터, 할당할 컴퓨팅 노드 클러스터 또는 클러스터들을 적어도 통신적으로 고립시키기 위해 데이터 통신 네트워크(104)를 분할한 때, 방법(300)은 블록(308)으로 진행할 수 있고, 여기에서 제어 노드(108)는 고립된 컴퓨팅 노드 클러스터 또는 클러스터들(102)을 요청에 할당하고, 디폴트 또는 지정된 운영 체제들을 할당된 컴퓨팅 노드 클러스터/클러스터들의 컴퓨팅 노드들에 대해 프로비져닝하거나 그러한 프로비져닝을 야기할 수 있다. 다양한 실시예들에서, 제어 노드(108)는 또한 프로비져닝된 컴퓨팅 노드 클러스터/클러스터들 상에서의 네이티브 실행을 위해 관련 애플리케이션들을 로딩 및 런칭하거나 그러한 로딩 및 런칭을 야기할 수 있다. 다양한 실시예들에서, 제어 노드(108)는 또한 애플리케이션 데이터를 프로비져닝된 컴퓨팅 노드 클러스터/클러스터들에 복제하거나 그러한 복제를 야기할 수 있다. 다양한 실시예들에서, 제어 노드(108)는 할당된 컴퓨팅 노드 클러스터/클러스터들에게 프로비져닝, 로딩/런칭 및/또는 복제를 수행하라는 명령을 발행함으로써, 사용자 노드(110) 또는 할당된 컴퓨팅 노드 클러스터/클러스터들에게 프로비져닝, 로딩/런칭 및/또는 복제를 수행하라는 명령을 발행하는 것에 의해, 프로비져닝, 로딩/런칭 및/또는 복제를 야기할 수 있다. 사용자 노드(110)는 사용자 노드(110)의 사용자로부터의 입력에 응답하여 프로비져닝, 로딩/런칭 및/또는 복제를 수행할 수 있다. 앞에서 설명된 바와 같이, 할당된 컴퓨팅 노드 클러스터/클러스터들은 적어도 데이터 통신 세그먼트의 분할에 의해 다른 컴퓨팅 노드 클러스터들로부터 고립되고 보안된다. 따라서, 사용자 작업(들)은 할당된 컴퓨팅 노드 클러스터/클러스터들 상에서 보안되어 네이티브 방식으로 실행될 수 있고, 잠재적으로는 필적할만한 수준의 보안성을 달성하기 위해 가상 머신(VM)을 이용하는 전형적인 클라우드 구성에 비교하여 실행 성능 면에서 10-100배의 이득을 얻는다. 따라서, 본 명세서의 네이티브 클라우드 컴퓨팅 방법 및 장치는 특히 고성능 컴퓨팅, 즉 과학 분야의 컴퓨팅과 같은 계산 집약적인 애플리케이션에 적합할 수 있다. 다양한 실시예들에서, 방법은 제어 노드(108)가 할당된 컴퓨팅 노드 클러스터/클러스터들(102)로부터 컴퓨팅 작업에 관련된 데이터를 소거하거나 그러한 소거를 야기하는 것을 더 포함할 수 있다. 소거는 이용되었던 할당된 컴퓨팅 노드 클러스터/클러스터들의 랜덤 액세스 메모리, 캐시 및/또는 임의의 I/O 기능부, 예를 들어 할당된 컴퓨팅 노드 클러스터/클러스터들의 로컬 및 공유 하드 디스크 드라이브 상의 사용자 특정 영역을 덮어쓰기하는 것을 포함할 수 있다. 또한, 할당된 컴퓨팅 노드 클러스터/클러스터들의 공유 자원 상에 상주하는 작업에 관련된 데이터는 선택적으로, 백업되고, 검색불가능하게 제거되고, 후속하는 특정한 사용자의 요청에서만 다시 검색가능하게 될 수 있다. 실시예들에서, 실행 결과를 포함하는 관련 데이터는 인터넷을 통해 검색가능하게 될 수 있다.
도 4는 본 명세서의 다양한 실시예들에 따른 비일시적인(non-transitory) 컴퓨터 판독가능한 저장 매체를 도시한다. 도시된 바와 같이, 비일시적인 컴퓨터 판독가능한 저장 매체(402)는 다수의 프로그래밍 명령어(404)를 포함할 수 있다. 프로그래밍 명령어들(404)은 장치로 하여금, 프로그래밍 명령어들의 실행에 응답하여,
계산 작업의 실행을 위해 할당될 클라우드 컴퓨팅 노드들에 대한 요청을 사용자 노드로부터 수신하는 단계;
컴퓨팅 노드 클러스터가 할당을 위해 이용가능하며, 요청을 실질적으로 충족시키기에 충분한 계산 자원을 포함하는 것을 판정하는 단계 - 컴퓨팅 노드 클러스터는 데이터 통신 네트워크를 통해 다른 컴퓨팅 노드 클러스터들에 연결됨 - ;
컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해 데이터 통신 네트워크를 분할하거나 데이터 통신 네트워크의 분할을 야기하는 단계; 및
고립된 컴퓨팅 노드 클러스터를 계산 작업의 네이티브 실행을 위해 할당하는 단계
를 포함하는 동작들을 수행할 수 있게 한다.
도 5는 본 명세서의 다양한 실시예들에 따라, 컴퓨팅 노드 또는 제어 노드로서 사용하기에 적합한 예시적인 컴퓨터 시스템을 도시한다. 도시된 바와 같이, 컴퓨팅 시스템(500)은 다수의 프로세서 또는 프로세서 코어(502), 및 시스템 메모리(504)를 포함한다. 청구항을 포함한 본 출원을 위하여, 문맥상 명백히 다르게 요구되지 않는다면, "프로세서" 및 "프로세서 코어"라는 용어는 동의어로 생각될 수 있다. 추가로, 컴퓨팅 시스템(500)은 대용량 디바이스(506)(예를 들어, 디스켓, 하드 드라이브, 컴팩트 디스크 판독 전용 메모리(CDROM) 등), 입력/출력 디바이스(508)(예를 들어, 디스플레이, 키보드, 커서 컨트롤 등), 및 통신 인터페이스(510)(예를 들어, 네트워크 인터페이스 카드, 모뎀 등)를 포함한다. 구성요소들은 하나 이상의 버스를 나타내는 시스템 버스(512)를 통해 서로 연결된다. 복수의 버스의 경우에서, 그들은 하나 이상의 버스 브리지(도시되지 않음)에 의해 브리징된다.
이러한 구성요소들 각각은 본 기술분야에 알려져 있는 그 구성요소의 종래의 기능을 수행한다. 구체적으로, 시스템 메모리(504) 및 대용량 저장소(506)는 여기에서 총괄하여 계산 로직(522)이라고 나타내어지는 도 3의 방법을 구현하는 프로그래밍 명령어들 또는 그 일부의 작업 사본 및 영구적 사본을 저장하기 위해 이용될 수 있다. 다양한 컴포넌트들은 프로세서(들)(502)에 의해 지원되는 어셈블러 명령어들 또는 그러한 명령어들에 컴파일링될 수 있는, 예를 들어 C와 같은 하이레벨 언어에 의해 구현될 수 있다.
프로그래밍 언어들의 영구적 사본은 예를 들어 컴팩트 디스크(CD)와 같은 배포 매체(도시되지 않음)를 통해, 또는 (배포 서버(도시되지 않음)로부터) 통신 인터페이스(710)를 통해 현장에서, 또는 공장에서 영구적 저장소(506)에 넣어질 수 있다. 즉, 에이전트 프로그램을 다양한 컴퓨팅 디바이스들에 배포하기 위해, 에이전트 프로그램의 구현을 갖는 하나 이상의 배포 매체가 이용될 수 있다.
이러한 구성요소들(502-512)의 구성은 알려져 있고, 따라서 더 이상 설명되지 않을 것이다.
구체적인 실시예들이 여기에 도시되고 설명되었지만, 본 기술분야의 통상의 지식을 가진 자들은 본 발명의 실시예들의 범위로부터 벗어나지 않고서, 도시되고 설명된 특정 실시예들에 대해 광범위하게 다양한 다른 및/또는 균등한 구현이 대체될 수 있음을 알 것이다. 본 출원은 여기에 논의된 실시예들의 임의의 개조 또는 변형을 커버하도록 의도된다. 그러므로, 본 발명의 실시예들은 청구항들 및 그들의 균등물에 의해서만 제한되도록 분명히 의도된다.

Claims (27)

  1. 복수의 컴퓨팅 노드 클러스터(clusters of computing nodes);
    상기 컴퓨팅 노드 클러스터들을 연결하도록 구성된 데이터 통신 네트워크; 및
    상기 데이터 통신 네트워크에 연결되고, 계산 작업(computation task)의 네이티브 실행을 위한 할당을 위해 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해, 상기 데이터 통신 네트워크를 분할하거나 상기 데이터 통신 네트워크의 분할을 야기하도록 구성된 제어 노드
    를 포함하는 시스템.
  2. 제1항에 있어서, 상기 데이터 통신 네트워크 및 상기 제어 노드와 연결된 제어 네트워크를 더 포함하고, 상기 제어 노드는 상기 제어 네트워크를 통해 계산 작업을 실행하기 위한 컴퓨팅 자원들에 대하여 사용자 노드로부터 수신된 요청에 응답하여, 할당될 컴퓨팅 노드 클러스터를 고립시키기 위해 상기 데이터 통신 네트워크를 분할하거나 상기 데이터 통신 네트워크의 분할을 야기하도록 구성되고, 컴퓨터 노드 클러스터는 할당에 이용가능하며, 상기 요청을 충족시키기에 실질적으로 충분한 계산 자원들을 포함하는 시스템.
  3. 제2항에 있어서, 상기 요청은 클러스터 또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 상기 계산 작업에 관련된 하나 이상의 프로그램의 지정, 상기 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 상기 계산 작업의 예상되는 실행 지속기간의 지정을 포함하는 시스템.
  4. 제1항에 있어서, 상기 제어 노드는 할당된 컴퓨팅 노드 클러스터의 컴퓨터 노드들에 대해 각각의 운영 체제들을 프로비져닝하거나 상기 각각의 운영 체제들의 프로비져닝을 야기하고, 상기 계산 작업에 관련된 데이터를 프로비져닝될 컴퓨팅 노드들에 로딩하거나 상기 데이터의 로딩을 야기하고, 또는 프로비져닝된 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 상기 계산 작업에 관련된 하나 이상의 프로그램을 런칭하거나 상기 하나 이상의 프로그램의 런칭을 야기하도록 더 구성되는 시스템.
  5. 제1항에 있어서, 상기 제어 노드는 상기 계산 작업의 네이티브 실행의 완료 후에, 할당된 컴퓨팅 노드 클러스터 내에서 상기 계산 작업에 관련된 모든 데이터를 소거하거나 상기 데이터의 소거를 야기하도록 더 구성되는 시스템.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터 통신 네트워크는 상기 컴퓨팅 노드 클러스터들을 인터넷에 연결하도록 더 구성되는 시스템.
  7. 제6항에 있어서, 상기 데이터 통신 네트워크 및 상기 제어 노드와 연결된 제어 네트워크를 더 포함하고, 상기 데이터 통신 네트워크는 제1의 복수의 네트워킹 디바이스를 포함하고, 상기 제어 네트워크는 제2의 복수의 네트워킹 디바이스를 포함하고, 상기 제1 및 제2의 복수의 네트워킹 디바이스는 상이한 네트워킹 디바이스들인 시스템.
  8. 제6항에 있어서, 상기 데이터 통신 네트워크 및 상기 제어 노드와 연결된 제어 네트워크를 더 포함하고, 상기 데이터 통신 네트워크는 복수의 네트워킹 디바이스를 통과하는 제1의 복수의 네트워킹 경로를 포함하고, 상기 제어 네트워크는 상기 복수의 네트워킹 디바이스를 통과하는 제2의 복수의 네트워킹 경로를 포함하고, 상기 제1 및 제2의 복수의 네트워킹 경로는 상이한 네트워킹 경로들, 또는 동일한 네트워킹 경로들에 대한 상이한 프로토콜들인 시스템.
  9. 제어 노드에 의해, 계산 작업의 실행을 위해 할당될 클라우드 컴퓨팅 노드들에 대한 요청을 사용자 노드로부터 수신하는 단계;
    상기 제어 노드에 의해, 적어도 컴퓨팅 노드 클러스터가 할당을 위해 이용가능하며, 상기 요청을 실질적으로 충족시키기에 충분한 계산 자원을 포함하는 것을 판정하는 단계 - 상기 컴퓨팅 노드 클러스터는 데이터 통신 네트워크를 통해 다른 컴퓨팅 노드 클러스터들에 연결됨 - ;
    상기 제어 노드에 의해, 상기 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해 상기 데이터 통신 네트워크를 분할하거나 상기 데이터 통신 네트워크의 분할을 야기하는 단계; 및
    상기 제어 노드에 의해, 상기 계산 작업의 네이티브 실행을 위해, 고립된 컴퓨팅 노드 클러스터를 할당하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서, 상기 수신하는 단계는 제어 네트워크를 통해 상기 요청을 수신하는 단계를 포함하고, 상기 데이터 통신 네트워크를 분할하는 단계는 상기 제어 네트워크를 통해 상기 데이터 통신 네트워크를 분할하는 단계를 포함하는 방법.
  11. 제9항에 있어서, 상기 요청을 수신하는 단계는 클러스터 또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 상기 계산 작업에 관련된 하나 이상의 프로그램의 지정, 또는 상기 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 상기 계산 작업의 예상되는 실행 지속기간의 지정을 갖는 요청을 수신하는 단계를 포함하는 방법.
  12. 제9항에 있어서, 상기 분할하는 단계는 상기 제어 네트워크를 통해, 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스, 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로, 또는 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로에 대한 하나 이상의 프로토콜을 구성하는 단계를 포함하는 방법.
  13. 제9항에 있어서, 상기 제어 노드가, 할당된 컴퓨팅 노드 클러스터의 컴퓨팅 노드들에 대해 각각의 운영 체제들을 프로비져닝하거나 상기 각각의 운영 체제들의 프로비져닝을 야기하고, 상기 계산 작업에 관련된 데이터를 프로비져닝될 컴퓨팅 노드들에 로딩하거나 상기 데이터의 로딩을 야기하고, 또는 프로비져닝된 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 상기 계산 작업에 관련된 하나 이상의 프로그램을 런칭하거나 상기 하나 이상의 프로그램의 런칭을 야기하는 단계를 더 포함하는 방법.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서, 상기 계산 작업의 네이티브 실행의 완료 후에, 상기 제어 노드가, 할당된 컴퓨팅 노드 클러스트 내에서 상기 계산 작업에 관련된 모든 데이터를 소거하거나 상기 모든 데이터의 소거를 야기하는 단계를 더 포함하는 방법.
  15. 컴퓨터 판독가능한 비일시적(non-transitory) 저장 매체로서,
    상기 저장 매체 내에 저장된 복수의 프로그래밍 명령어를 포함하고, 상기 복수의 프로그래밍 명령어는 장치에 의한 상기 프로그래밍 명령어들의 실행에 응답하여, 상기 장치가,
    계산 작업의 실행을 위해 할당될 클라우드 컴퓨팅 노드들에 대한 요청을 사용자 노드로부터 수신하는 단계;
    적어도 컴퓨팅 노드 클러스터가 할당을 위해 이용가능하며, 상기 요청을 실질적으로 충족시키기에 충분한 계산 자원을 포함하는 것을 판정하는 단계 - 상기 컴퓨팅 노드 클러스터는 데이터 통신 네트워크를 통해 다른 컴퓨팅 노드 클러스터들에 연결됨 - ;
    상기 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해 상기 데이터 통신 네트워크를 분할하거나 상기 데이터 통신 네트워크의 분할을 야기하는 단계; 및
    상기 계산 작업의 네이티브 실행을 위해, 고립된 컴퓨팅 노드 클러스터를 할당하는 단계
    를 포함하는 동작들을 수행하게 하도록 구성되는 저장 매체.
  16. 제15항에 있어서, 상기 수신하는 단계는 제어 네트워크를 통해 상기 요청을 수신하는 단계를 포함하고, 상기 데이터 통신 네트워크를 분할하는 단계는 상기 제어 네트워크를 통해 상기 데이터 통신 네트워크를 분할하는 단계를 포함하는 저장 매체.
  17. 제15항에 있어서, 상기 요청을 수신하는 단계는 클러스터 또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 상기 계산 작업에 관련된 하나 이상의 프로그램의 지정, 상기 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 상기 계산 작업의 예상되는 실행 지속기간의 지정을 갖는 요청을 수신하는 단계를 포함하는 저장 매체.
  18. 제15항에 있어서, 상기 분할하는 단계는 제어 네트워크를 통해, 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스, 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로, 또는 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로에 대한 하나 이상의 프로토콜을 구성하는 단계를 포함하는 저장 매체.
  19. 제15항에 있어서, 상기 동작들은 할당된 컴퓨팅 노드들을 각각의 운영 체제들로 프로비져닝하거나 상기 프로비져닝을 야기하고, 상기 계산 작업에 관련된 데이터를 할당된 컴퓨팅 노드들에 로딩하거나 상기 데이터의 로딩을 야기하고, 또는 할당된 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 상기 계산 작업에 관련된 하나 이상의 프로그램을 런칭하는 단계를 더 포함하는 저장 매체.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서, 상기 동작들은 상기 계산 작업의 네이티브 실행의 완료 후에, 상기 할당된 컴퓨팅 노드 클러스트 내에서 상기 계산 작업에 관련된 모든 데이터를 소거하거나 상기 모든 데이터의 소거를 야기하는 단계를 더 포함하는 저장 매체.
  21. 프로세서;
    상기 프로세서에 의해 운영되고, 계산 작업의 실행을 위해 할당될 클라우드 컴퓨팅 자원에 대한 요청을 사용자 노드로부터 수신하도록 구성되는 사용자 인터페이스;
    상기 사용자 인터페이스에 동작가능하게 연결되고, 컴퓨팅 노드 클러스터가 할당을 위해 이용가능하며, 상기 요청을 실질적으로 충족시키기에 충분한 계산 자원을 포함하는지를 판정하고, 상기 컴퓨팅 노드 클러스터가 상기 요청을 실질적으로 충족시키기에 충분한 계산 자원을 포함하며, 할당에 이용가능하다고 판정되면, 상기 계산 작업의 네이티브 실행을 위해 상기 컴퓨팅 노드 클러스터를 할당하도록 구성된 스케줄러 - 상기 컴퓨팅 노드 클러스터는 데이터 통신 네트워크를 통해 다른 컴퓨팅 노드 클러스터들에 연결됨 - ; 및
    상기 스케줄러에 동작가능하게 연결되고, 상기 계산 작업의 네이티브 실행을 위해 컴퓨터 노드 클러스터를 할당할 때, 상기 컴퓨팅 노드 클러스터를 다른 컴퓨팅 노드 클러스터들로부터 고립시키기 위해 상기 데이터 통신 네트워크를 분할하거나 상기 데이터 통신 네트워크의 분할을 야기하도록 구성된 네트워크/클러스터 인터페이스
    를 포함하는 장치.
  22. 제21항에 있어서, 상기 요청은 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 상기 계산 작업에 관련된 하나 이상의 프로그램의 지정, 또는 상기 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정을 포함하는 장치.
  23. 제21항에 있어서, 상기 스케줄러는 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로, 또는 상기 데이터 통신 네트워크의 하나 이상의 네트워킹 디바이스를 통과하는 하나 이상의 경로에 대한 하나 이상의 프로토콜을 분할하여, 상기 데이터 통신 네트워크를 분할하도록 구성되는 장치.
  24. 제21항에 있어서, 상기 스케줄러는 할당된 컴퓨팅 노드 클러스터의 컴퓨팅 노드들에 대해 각각의 운영 체제들을 프로비져닝하거나 상기 각각의 운영 체제들의 프로비져닝을 야기하고, 상기 계산 작업에 관련된 데이터를 프로비져닝될 컴퓨팅 노드들에 로딩하거나 상기 데이터의 로딩을 야기하고, 또는 프로비져닝된 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 상기 계산 작업에 관련된 하나 이상의 프로그램을 런칭하거나 상기 하나 이상의 프로그램의 런칭을 야기하도록 더 구성되는 장치.
  25. 제21항 내지 제24항 중 어느 한 항에 있어서, 상기 스케줄러는 상기 계산 작업의 네이티브 실행의 완료 후에, 할당된 컴퓨팅 노드 클러스터 내에서 상기 계산 작업에 관련된 모든 데이터를 소거하거나 상기 모든 데이터의 소거를 야기하도록 더 구성되는 장치.
  26. 명령어들이 저장되어 있는 비일시적인 컴퓨터 판독가능한 저장 매체로서,
    상기 명령어들은 사용자 컴퓨팅 노드 상에서의 실행 시에, 상기 사용자 컴퓨팅 노드가,
    계산 작업의 실행을 위한 클라우드 컴퓨팅 자원에 대한 요청을 제어 노드에 제출하고 - 상기 요청은 클러스터 또는 컴퓨팅 노드의 개수의 지정, 프로세서 컴퓨팅 용량의 지정, 시스템 메모리 용량의 지정, 영구적 저장 용량의 지정, 입력/출력 용량의 지정, 하나 이상의 운영 체제의 지정, 상기 계산 작업에 관련된 하나 이상의 프로그램의 지정, 또는 상기 계산 작업에 관련된 하나 이상의 데이터 소스 또는 싱크의 지정, 및/또는 상기 계산 작업의 예상되는 실행 지속기간의 지정을 포함함 -; 및
    상기 제어 노드로부터, 상기 계산 작업의 네이티브 실행을 위한 컴퓨팅 노드 클러스터의 할당에 대한 통지를 수신하게 하는 - 상기 컴퓨팅 노드 클러스터는 분할된 컴퓨팅 노드 클러스터들을 연결하는 데이터 통신 네트워크에 의해 다른 계산 노드 클러스터들로부터 고립됨 -
    저장 매체.
  27. 제26항에 있어서, 상기 명령어들은 사용자 컴퓨팅 노드 상에서 실행될 때, 상기 사용자 컴퓨팅 노드가, 상기 사용자 컴퓨팅 노드의 사용자에 응답하여, 할당된 컴퓨팅 노드 클러스터를 각각의 운영 체제들로 프로비져닝하고, 상기 계산 작업에 관련된 데이터를 프로비져닝된 컴퓨팅 노드들에 로딩하고, 또는 상기 컴퓨팅 노드들 상에서의 네이티브 실행을 위해 상기 계산 작업에 관련된 하나 이상의 프로그램을 런칭하게 하는 저장 매체.
KR1020137033793A 2011-06-21 2012-05-25 네트워크 분할을 통한 네이티브 클라우드 컴퓨팅 KR101593463B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/165,533 US8725875B2 (en) 2011-06-21 2011-06-21 Native cloud computing via network segmentation
US13/165,533 2011-06-21
PCT/US2012/039606 WO2012177359A2 (en) 2011-06-21 2012-05-25 Native cloud computing via network segmentation

Publications (2)

Publication Number Publication Date
KR20140022922A true KR20140022922A (ko) 2014-02-25
KR101593463B1 KR101593463B1 (ko) 2016-02-15

Family

ID=47362908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033793A KR101593463B1 (ko) 2011-06-21 2012-05-25 네트워크 분할을 통한 네이티브 클라우드 컴퓨팅

Country Status (7)

Country Link
US (2) US8725875B2 (ko)
EP (2) EP4002138A1 (ko)
JP (2) JP5837683B2 (ko)
KR (1) KR101593463B1 (ko)
CN (2) CN106302663B (ko)
AU (1) AU2012273370B2 (ko)
WO (1) WO2012177359A2 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725875B2 (en) * 2011-06-21 2014-05-13 Intel Corporation Native cloud computing via network segmentation
US9026658B2 (en) * 2012-03-28 2015-05-05 Microsoft Technology Licensing, Llc Enhanced computer cluster operation using resource allocation requests
DE102012211474A1 (de) 2012-07-03 2014-01-09 Siemens Aktiengesellschaft Speicherstruktur einer elektrischen Energiespeicherzelle
US9998531B2 (en) * 2013-09-18 2018-06-12 International Business Machines Corporation Computer-based, balanced provisioning and optimization of data transfer resources for products and services
US11809451B2 (en) 2014-02-19 2023-11-07 Snowflake Inc. Caching systems and methods
US10545917B2 (en) 2014-02-19 2020-01-28 Snowflake Inc. Multi-range and runtime pruning
US10659523B1 (en) * 2014-05-23 2020-05-19 Amazon Technologies, Inc. Isolating compute clusters created for a customer
CN104333603A (zh) * 2014-11-18 2015-02-04 武汉噢易云计算有限公司 一种上传文件到虚拟机的实现系统及方法
US10938909B2 (en) * 2015-12-26 2021-03-02 Intel Corporation Reusable device management in machine-to-machine systems
CN105610944B (zh) * 2015-12-29 2019-03-05 北京物联远信息技术有限公司 一种面向物联网的雾计算架构
US10305747B2 (en) * 2016-06-23 2019-05-28 Sap Se Container-based multi-tenant computing infrastructure
US10437780B2 (en) 2016-07-14 2019-10-08 Snowflake Inc. Data pruning based on metadata
US10193762B2 (en) 2016-08-11 2019-01-29 Rescale, Inc. Dynamic optimization of simulation resources
US10387198B2 (en) 2016-08-11 2019-08-20 Rescale, Inc. Integrated multi-provider compute platform
US10439890B2 (en) * 2016-10-19 2019-10-08 Tata Consultancy Services Limited Optimal deployment of fog computations in IoT environments
US20190205172A1 (en) * 2017-10-26 2019-07-04 Alan Arolovitch Computer-implemented methods and systems for optimal placement and execution of software workloads in a geographically distributed network of compute nodes
US10705883B2 (en) * 2018-06-19 2020-07-07 Microsoft Technology Licensing, Llc Dynamic hybrid computing environment
US10715385B2 (en) 2018-09-27 2020-07-14 International Business Machines Corporation System and method for live migration for software agents
US11457050B1 (en) 2020-12-10 2022-09-27 Amazon Technologies, Inc. Ephemeral data stream service
US11343195B1 (en) * 2020-12-10 2022-05-24 .Amazon Technologies, Inc. Ephemeral data stream routing service
US20230388180A1 (en) * 2022-05-31 2023-11-30 Microsoft Technology Licensing, Llc Techniques for provisioning workspaces in cloud-based computing platforms

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034460B2 (ja) * 1999-02-15 2008-01-16 富士通株式会社 並列計算機の分割・結合システムおよび記録媒体
US7278142B2 (en) * 2000-08-24 2007-10-02 Veritas Operating Corporation Dynamic computing environment using remotely allocable resources
US7743147B2 (en) * 2001-04-20 2010-06-22 Hewlett-Packard Development Company, L.P. Automated provisioning of computing networks using a network database data model
TWI220821B (en) * 2001-04-26 2004-09-01 Accton Technology Corp Zero-loss web service system and method
US7310672B2 (en) 2001-11-13 2007-12-18 Hewlett-Packard Development Company, L.P. Method and system for exploiting service level objectives to enable resource sharing in a communication network having a plurality of application environments
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
US7403993B2 (en) * 2002-07-24 2008-07-22 Kasenna, Inc. System and method for highly-scalable real-time and time-based data delivery using server clusters
CN1294509C (zh) * 2002-09-06 2007-01-10 劲智数位科技股份有限公司 具有分布式负载平衡系统的集群计算机
US7283484B1 (en) * 2003-01-03 2007-10-16 At&T Corp. Network segmentation method
US7287180B1 (en) 2003-03-20 2007-10-23 Info Value Computing, Inc. Hardware independent hierarchical cluster of heterogeneous media servers using a hierarchical command beat protocol to synchronize distributed parallel computing systems and employing a virtual dynamic network topology for distributed parallel computing system
US20050235055A1 (en) * 2004-04-15 2005-10-20 Raytheon Company Graphical user interface for managing HPC clusters
US8583770B2 (en) * 2005-02-16 2013-11-12 Red Hat, Inc. System and method for creating and managing virtual services
US7957413B2 (en) * 2005-04-07 2011-06-07 International Business Machines Corporation Method, system and program product for outsourcing resources in a grid computing environment
US20060242453A1 (en) 2005-04-25 2006-10-26 Dell Products L.P. System and method for managing hung cluster nodes
US20070156479A1 (en) * 2005-11-02 2007-07-05 Long Erik T Multivariate statistical forecasting system, method and software
US7516108B2 (en) * 2005-12-22 2009-04-07 International Business Machines Corporation Block allocation times in a computer system
JP4611922B2 (ja) * 2006-03-28 2011-01-12 富士通株式会社 制御プログラム、制御方法および制御装置
CN100563255C (zh) * 2006-06-14 2009-11-25 杭州华三通信技术有限公司 网际协议存储区域网络的隔离方法及隔离装置
JP4921054B2 (ja) * 2006-07-07 2012-04-18 株式会社日立製作所 負荷分散制御システム及び負荷分散制御方法
US7624118B2 (en) * 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US8380880B2 (en) * 2007-02-02 2013-02-19 The Mathworks, Inc. Scalable architecture
US20080222267A1 (en) * 2007-03-09 2008-09-11 Horn Ray C Method and system for web cluster server
US8069251B2 (en) * 2007-06-01 2011-11-29 Adobe Systems Incorporated System and/or method for client-driven server load distribution
US8521853B2 (en) 2007-06-29 2013-08-27 Alcatel Lucent Apparatus and method for server network management to provide zero planned retrofit downtime
US7822841B2 (en) 2007-10-30 2010-10-26 Modern Grids, Inc. Method and system for hosting multiple, customized computing clusters
CN101478490B (zh) * 2009-02-05 2011-04-20 中兴通讯股份有限公司 一种支持tipc的多集群网络通信的方法和装置
US20110035248A1 (en) * 2009-08-07 2011-02-10 Loic Juillard Distributed Service Platform Computing with a Guaranteed Quality of Service
US8250213B2 (en) * 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US8412810B1 (en) * 2010-07-02 2013-04-02 Adobe Systems Incorporated Provisioning and managing a cluster deployed on a cloud
US8730994B2 (en) * 2011-05-27 2014-05-20 International Business Machines Corporation Fair discount for network resource allocation
US8725875B2 (en) * 2011-06-21 2014-05-13 Intel Corporation Native cloud computing via network segmentation
US8914513B2 (en) * 2011-06-23 2014-12-16 Cisco Technology, Inc. Hierarchical defragmentation of resources in data centers
CN102420820B (zh) * 2011-11-28 2016-06-08 杭州华三通信技术有限公司 一种集群系统中的隔离方法和装置

Also Published As

Publication number Publication date
AU2012273370A1 (en) 2013-12-12
EP2724244B1 (en) 2022-01-05
JP5837683B2 (ja) 2015-12-24
US20120331144A1 (en) 2012-12-27
US20140229622A1 (en) 2014-08-14
CN103620578B (zh) 2016-09-14
EP4002138A1 (en) 2022-05-25
JP2016042374A (ja) 2016-03-31
CN103620578A (zh) 2014-03-05
AU2012273370B2 (en) 2015-12-24
WO2012177359A2 (en) 2012-12-27
EP2724244A2 (en) 2014-04-30
WO2012177359A3 (en) 2013-02-28
CN106302663B (zh) 2021-09-07
EP2724244A4 (en) 2016-06-01
US8725875B2 (en) 2014-05-13
JP2014517419A (ja) 2014-07-17
KR101593463B1 (ko) 2016-02-15
CN106302663A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
KR20140022922A (ko) 네트워크 분할을 통한 네이티브 클라우드 컴퓨팅
US10055257B2 (en) Virtual machine placement in a cloud computing environment based on factors including optimized processor-memory affinity
EP3556081B1 (en) Reconfigurable server
KR100834340B1 (ko) 서버 최적화 방법과 시스템 및 컴퓨터 판독 가능한 저장매체
US10896064B2 (en) Coordinated, topology-aware CPU-GPU-memory scheduling for containerized workloads
US8825863B2 (en) Virtual machine placement within a server farm
US10606624B2 (en) Placement of virtual machines on physical hosts
US9558041B2 (en) Transparent non-uniform memory access (NUMA) awareness
US9286130B2 (en) Optimizing virtual machine deployment time by temporarily allocating more processing resources during the initial deployment time of the virtual machine
US20120167081A1 (en) Application Service Performance in Cloud Computing
EP3481007B1 (en) Method, apparatus and management server for processing resource pool
US11556369B2 (en) Virtual machine deployment method and OMM virtual machine
US10007556B2 (en) Reducing utilization speed of disk storage based on rate of resource provisioning
US20180054359A1 (en) Network attached reconfigurable computing device
WO2016038485A1 (en) Expediting host maintenance mode in cloud computing environments
US9928112B2 (en) Configuration of floating node boundaries
US20160191617A1 (en) Relocating an embedded cloud for fast configuration of a cloud computing environment
WO2024072640A1 (en) User assigned network interface queues

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 4