KR101164700B1 - 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리 - Google Patents

가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리 Download PDF

Info

Publication number
KR101164700B1
KR101164700B1 KR1020077010921A KR20077010921A KR101164700B1 KR 101164700 B1 KR101164700 B1 KR 101164700B1 KR 1020077010921 A KR1020077010921 A KR 1020077010921A KR 20077010921 A KR20077010921 A KR 20077010921A KR 101164700 B1 KR101164700 B1 KR 101164700B1
Authority
KR
South Korea
Prior art keywords
virtual machine
cluster
delete delete
computer
computer system
Prior art date
Application number
KR1020077010921A
Other languages
English (en)
Other versions
KR20070062607A (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 KR20070062607A publication Critical patent/KR20070062607A/ko
Application granted granted Critical
Publication of KR101164700B1 publication Critical patent/KR101164700B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

일 실시예에서는, 리소스 그룹의 가상 머신을 구성 및/또는 모니터링하기 위한 방법 및 장치가 제공된다. 다른 실시예에서는, 리소스를 일 클러스터로부터 다른 클러스터로 재배치하는 것을 인가하는 재배치 정책에 따라 리소스 그룹을 구성 및/또는 모니터링하기 위한 방법 및 장치가 제공된다. 또 다른 실시예에서는, 웹-서비스 인터페이스를 통해 액세스 가능한 사용자 인터페이스를 가진 리소스 그룹 도구를 통해 리소스 그룹을 구성, 모니터링 및/또는 관리하기 위한 방법 및 장치가 제공된다. 또 다른 실시예에서는, 웹-서비스 인터페이스를 통해 리소스 그룹 도구의 하나 이상의 에이전트와 콘솔 사이에서 통신하기 위한 방법 및 장치가 제공된다.
Figure R1020077010921
컴퓨터 시스템, 리소스 그룹, 가상 머신, 클러스터, 재배치 정책, 웹-서비스 인터페이스

Description

가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링 및/또는 관리 {CONFIGURING, MONITORING AND/OR MANAGING RESOURCE GROUPS INCLUDING A VIRTUAL MACHINE}
본 발명은 컴퓨터 시스템의 리소스 그룹들을 구성, 모니터링 및/또는 관리하는 것에 관한 것이다.
서버들, 저장 장치들, 및 다른 컴퓨터 장치들은 대부분, 다수의 이들 장치들과 다수의 최종 사용자들 사이의 통신을 가능하게 하면서, 네트워크를 통해 상호 접속된다. 일부 네트워크 시스템들에서는, 가용성 모니터들(availability monitors)이 이용되어 애플리케이션 프로그램들 및/또는 다른 컴퓨터 시스템 리소스들의 가용성을 보장한다. 따라서, 사용자의 애플리케이션을 호스팅하는 서버의 장애가 애플리케이션의 종료를 수반할 필요는 없다. 대신에, 애플리케이션은 네트워크에서 작동중인 다른 서버로 재배치될 수 있고, 그것에 의해, 애플리케이션 가용성을 보장할 수 있다.
일반적으로, 애플리케이션은, 최종 사용자가 어떤 장애들 또는 심각한 성능 열화를 인지하지 않으면, "이용 가능한" 것으로 간주된다. 다른 이점들 중에서, 고가용성 모니터를 갖는 컴퓨팅 네트워크는 장애들 및/또는 특정 이벤트들에 대한 자동화된 응답을 허용한다. 고가용성 솔루션들은, 장애시에, 애플리케이션 레벨, 머신 레벨 등에서, 영향받은 리소스들이 네트워크내에서 작동중인 시스템들에 재배치될 수 있다는 것을 보장한다. 더욱이, 고가용성 솔루션들은 시스템 유지 보수(system maintenance), 부하 변동들, 업무 흐름들, 및 성능과 가용성에 영향을 미치는 다른 팩터들도 모니터링하고 관리할 수 있다.
도면들에서 유사 참조 번호들은 유사 구성 요소들을 나타낸다.
도 1은 자동화된 가용성 소프트웨어가 구현될 수 있는 예시적 시스템을 나타내는 블록도이다.
도 2는, 클러스터(cluster)에 상주하는 가상 머신(virtual machine)들이 본 발명의 일 실시예에 따른 가용성 모니터에 의해 구성, 모니터링 및/또는 관리되는 예시적 시스템을 나타내는 블록도이다.
도 3은 도 2의 시스템을 예시하며, 여기에서, 클러스터에 상주하는 여러 개의 가상 머신들은 본 발명의 일 실시예에 따른 가용성 모니터에 의해 상이한 노드들로 재배치된다.
도 4는, 클러스터 리소스들이 본 발명의 일 실시예에 따른 웹-서비스 인터페이스(web-services interface)를 통해 제2 컴퓨터로부터 구성, 모니터링 및/또는 관리되는 예시적 시스템을 나타내는 블록도이다.
도 5는, 사용자 인터페이스를 갖춘 콘솔 및 시스템의 노드들 상의 복수개의 에이전트들을 구비하는 리소스 그룹 구성 도구를 가진 예시적 시스템을 나타내는 블록도로서, 이 콘솔 및 노드들은 본 발명의 일 실시예에 따른 웹-서비스 인터페이스를 통해 통신한다.
도 6은, 본 발명의 일 실시예에 따른, 제1 클러스터로부터의 리소스들이 제2 클러스터에 재배치될 수 있는 예시적 시스템을 나타내는 블록도이다.
도 7은, 본 발명의 일 실시예에 따른, 제1 클러스터로부터의 리소스가 제2 클러스터에 재배치된 도 6의 예시적 시스템을 나타내는 블록도이다.
앞서 언급된 바와 같이, 다수 노드들(예를 들어, 서버들 및/또는 다른 컴퓨터 장치들)을 가진 네트워킹된 컴퓨터 시스템들은 리소스들(예를 들어, 애플리케이션들)의 고가용성을 제공하는 가용성 모니터들을 가질 수 있다. 다른 이점들 중에서도, 그러한 시스템은 시스템 대체 작동 보호(failover protection)를 제공하는데, 이 경우, 리소스는 오작동중인 노드로부터 정상 작동중인 노드로 재배치될 수 있다. 좀 더 일반적으로, 노드가 고장나는 경우, 다른 노드가 오작동중인 노드에 의해 앞서 제공된 하나 이상의 서비스들을 호스팅할 수 있으며, 이 서비스들은, 애플리케이션들의 실행, 및 저장 장치 및 다른 컴퓨터 장치들로의 액세스를 포함하지만, 그것으로 한정되는 것은 아니다. 네트워크를 통한 서비스들의 전달은, 장애 허용성(fault tolerance)이외의 이유들, 예를 들어, 네트워크상에 작업 부하를 재분배하거나, 하드웨어 또는 소프트웨어 변경들을 허용하거나, 네트워크에 새로운 장치를 추가하는 이유 등을 위해서도 개시될 수 있다. 네트워크를 관리하는 단계에 수반되는 결정들은 관리자에 의해 수동적으로 지시될 수 있거나, 자동화된 가용성 모니터에 의해 관리될 수 있다.
자동화된 가용성 소프트웨어 모니터들은, 네트워크를 모니터링하는 단계 및 가용성을 보장하기 위한 액션들을 취하는 단계에 수반되는 프로세스들을 구현한다. 그러한 소프트웨어 패키지의 일례가 메사추세츠주, 홉킨톤 주재의 EMC사의 사업부인 Legato에 의해 제공되는 자동화된 가용성 관리자(AAM;Automated Availability Manager)이다. 자동화된 가용성 모니터들은, 네트워크 리소스들을 계속해서 모니터링해야 하는 관리자의 부담을 덜어주는 자동화된 방식으로 가용성 관리 능력들을 제공한다. 그러한 자동화된 가용성 모니터들은, 치명적인 이벤트들에 응답하여 시스템 대체 작동 보호를 제공할 수 있고, 시스템 유지 보수, 부하 변동들 및 업무 흐름들을 모니터링하고 관리하는 것에 의해 네트워크 성능을 향상시킬 수 있다.
도 1은 자동적인 가용성 소프트웨어에 의해 관리되는 종래의 시스템(1000)을 도시한다. 시스템(1000)은, 네트워크(155)에 의해 상호 접속된 복수개의 노드들(예를 들어, 서버들)(110A-110D)을 구비하는 클러스터(100)를 포함한다. 네트워크(155)는, 노드들(110A-110B)이 서로 통신할 수 있게 하는 임의 유형의 네트워크일 수 있다. 도 1에 도시된 특정 구성에서, 네트워크(155)는 허브(160) 및, 노드들(110A-110D) 사이의 통신만을 핸들링하는 전용 네트워크를 생성하는, 허브와 노드들 사이의 복수개의 네트워크 접속들(155A-155D)을 구비한다. 다른 구현들에서, 네트워크(155)는 좀더 큰 네트워크의 일부분인 다른 엔티티들, 예를 들어, 클라이언트들(또는 최종 사용자들)이나 다른 노드들 사이의 통신을 핸들링할 수 있다. 도 1의 예에서, 시스템(1000)은, 최종 사용자들(170A-170F)을 노드들(110)에 접속시키는 다른 네트워크(165)도 포함한다. 최종 사용자는 네트워크(165)를 통해 하나 이상의 노드(110)(예를 들어, 클라이언트 컴퓨터)에 액세스하는 임의 장치를 구비할 수도 있다. 네트워크(165)는, LAN, WAN, 인터넷, 다른 유형의 네트워크들, 또는 이들의 임의 조합을 포함하는, 소정 접속을 제공하는 임의 유형의 네트워크일 수 있다. 다른 장치들을 클러스터에 접속시키는 네트워크(165)는 클러스터의 노드들(110A-110D) 사이에서 접속을 확립하는데도 사용될 수 있다.
가용성 소프트웨어가 실행될 수 있는 시스템들이 도 1의 특정 구현으로 제한되지는 않으며, 일반적으로, 상이한 네트워크 접속 토폴로지들을 이용하는 다수의 상이한 시스템 구성들로 구현될 수 있다.
도 1의 예시적 구성에서, 클러스터(100)의 노드들(11OA-11OD)은 클라이언트들(170A-170F)에 의해 액세스되는 애플리케이션들을 호스팅할 수 있다. 그러한 애플리케이션들의 예들로는 워드프로세서, 웹 브라우저, 데이터베이스 소프트웨어, 이메일 서비스 등을 들 수 있다. 이와 같이, 노드들(110)은, 예를 들어, 웹서버, 데이터베이스 리소스(들), 또는 임의의 다른 서비스나 기능을 포함하는, 임의 수의 서비스들을 호스팅할 수 있다. 최종 사용자들(170)의 관점에서, 클러스터는, 어떤 노드가 어떤 애플리케이션을 호스팅중인지가 최종 사용자에게 불명료한, 단일 엔티티로서 인식될 수도 있다. 시스템(1000)은, 애플리케이션들의 상태, 노드들(110)에 대한 작업 부하, 및 다른 메트릭들(other metrics)을 모니터링할 수 있고, 그것에 의해, 장애 또는 성능 열화를 포함하는, 이벤트들에 최선으로 응답하는 방법을 결정할 수 있는 시스템 관리자에 의해 관리될 수 있다. 예를 들어, 특정 노드에서의 장애는, 관리자가, 장애가 발생중인 노드에서 호스팅되는 애플리케이션들을 클러스터(100)의 정상적으로 작동중인 다른 노드들로 전달(migration)하도록 자극할 수 있다.
AAM 소프트웨어는 장애들 및 다른 이벤트들에 자동적인 응답들을 제공하고, 그것에 의해, 사람의 개입을 요구하지 않으면서, 클러스터와 연관된 리소스들의 관리를 지원하는 것에 의해, 시스템 관리자에 의한 수동적인 개입의 필요성을 경감하도록 개발되었다. 예를 들어, 자동화된 가용성 모니터가 클러스터(100)에 설치되어, 도 1의 클러스터(100)에서의 다양한 리소스들을 모니터링하고 제어할 수 있다. 각각의 에이전트가, 에이전트가 상주하는 노드(110A-D)에 의해 제공되는 리소스들을 모니터링하고 제어하는 역할을 수행하도록, 각각, 노드들(110A-D)에 설치된 자동화된 가용성 에이전트들(120A-120D)을 포함하는 분산 AAM 모니터(distributed AAM monitor)를 포함하는, 다수 구현들이 가능하다. 자동화된 가용성 에이전트들은 노드들(110)의 일부 또는 전부에 설치될 수 있고, 시스템 메트릭들을 감지하는 단계, 및 일방적으로 작용하거나, 클러스터의 자동화된 다른 가용성 에이전트들과 통신하는 것에 의해, 클러스터의 쟁점들을 검출하고 해결한 다음 가용성을 보장함으로써 감지된 이벤트들에 기초해 액션들을 조정하는 단계를 포함하는 다수 기능들을 수행할 수 있다.
도 1의 실시예에 예시된 AAM 모니터는 각각의 노드에 에이전트를 갖춘 분산 AAM 모니터를 구비하지만, 여기에서 설명된 본 발명의 양상들이 이 구성 또는 임의 의 다른 특정 구성을 가진 AAM 모니터 시스템을 사용하는 것으로 제한되지는 않으며, 비-분산 구성들을 포함하는 다른 구성들에도 사용될 수 있다는 것을 알 수 있어야 한다.
자동화된 가용성 모니터(120)는 클러스터(100)에 의해 제공되는 리소스들의 가용성을 모니터링하고 유지 보수할 수 있다. 리소스는, 서비스, 애플리케이션 프로세스, 시스템 경로 또는 논리 어드레스, IP 어드레스, 노드(예를 들어, 저장 장치 또는 서버), 네트워크 정보 카드(NIC;network information card), 네트워크 장치(예를 들어, 라우터 또는 브릿지), 컴퓨터 에일리어스(computer alias), 데이터베이스, 또는 임의의 적합한 다른 엔티티와 같은, 모니터링, 제어 또는 관리될 수 있는 임의 엔티티를 의미한다. 모니터링될 하나 이상의 리소스들, 및 리소스들이 자동적 가용성 소프트웨어에 의해 모니터링되는 것을 가능하게 하는 인프라스트럭처(infrastructure)(예를 들어, 하나 이상의 데이터 구조들, 명령들, 파라미터들, 속성들 등)를 구비하는 리소스 그룹들이 형성될 수 있다. 리소스 그룹들은, 각각이 단일 노드에 의해 제공되거나 다수 노드들에 의해 공유되는 리소스들의 집합을 모니터링하도록 생성될 수 있다. 자동화된 가용성 모니터에 의해 수행되는 기능들을 참조할 때, 모니터링, 관리, 제어 등의 용어들은 함께 또는 교체 가능하게 사용될 수 있고, 각각은 여기에서 설명되는 기능들의 유형들을 지칭하므로, 이들 상이한 용어들 사이의 의미 구별은 무의미하다.
리소스 그룹들의 구성은, 관리될 리소스들의 세트, 리소스들의 스타트업(startup) 및 셧다운(shutdown)에 응답하기 위한 규칙들, (예를 들어, 리소스를 호스팅중인 노드가 고장나는 경우 리소스를 전달하기 위한) 시스템 대체 작동 노드를 선택하기 위한 절차들, 및 모니터링되는 메트릭들의 기준들의 트리거링(triggering)에 응답하는 명령들을 정의하는 단계를 포함할 수 있지만, 그것으로 제한되는 것은 아니다. 예를 들어, 리소스 그룹은, 호스트 노드에서 실행되는 애플리케이션 프로그램(예를 들어, 워드프로세서), 애플리케이션 메트릭들이 수집되는 센서들, 및 센서들을 모니터링하고, 임의 조건들이 하나 이상의 규칙들과 매칭될 때 보고하거나 작용하는 트리거들을 포함할 수 있다. 일부 구현들에서는, 리소스 그룹의 센서들 및 트리거들이 프로세스들 및 노드 장애들을 모니터링하여 반응하고, 자동화된 가용성 모니터는, 일단 트리거가 시동되고 나면 장애를 완화하기 위한 규칙들을 평가한다.
출원인은, 종래의 가용성 관리 해결책들은 모니터링되는 리소스 그룹내에 가상 머신들을 포함할 수 없다는 것을 알 수 있었다. 가상 머신들은, 하드웨어와 소프트웨어 모두를 포함하는 컴퓨팅 시스템들을 가상화 또는 모델링하는 소프트웨어 엔티티들이다. 가상 머신 기술로 인해, 다수의 개별 가상 머신들이 동일한 하드웨어 컴퓨팅 시스템에서 실행될 수 있다. 가상 머신 기술의 일례로는 EMC사의 사업부인, 캘리포니아주, 팔로 알토 주재의 VMWare로부터 입수 가능한 VMWare ESX Server를 들 수 있다. 출원인은, 이러한 시스템들에 자동화된 가용성 모니터를 통합하는 것이, 클러스터들의 가상 머신들을 위한 고가용성 능력들을 가능하게 할 것이라는 것을 알 수 있었다. 따라서, 발명의 일 실시예는 가상 머신들을 구비하는 리소스 그룹들의 생성을 가능하게 한다.
종래의 AAM 시스템들은, 컴포넌트들 모두가 동일한 네트워크에 설치될 것을 요구하는, 복수개의 에이전트들 또는 그것에 관한 컴포넌트들 사이의 통신 기술들을 이용한다. 출원인은, AAM 시스템의 컴포넌트들 사이의 통신을 위해 웹-서비스들의 프로토콜(web-services protocol)을 이용하는 것이 리소스 그룹의 구성 및 관리에서 보다 큰 융통성(flexibility)을 제공할 수 있다는 것을 알 수 있었다. 따라서, 본 발명의 일 실시예는 웹-서비스들의 프로토콜을 통한 리소스 그룹의 구성 및/또는 관리를 가능하게 한다.
종래의 AAM 시스템들에서, 리소스 그룹의 리소스들을 관리하는데 이용 가능한 물리적 노드들은 클러스터내의 노드들로 제한된다. 여기에서 사용되는 바와 같이, 클러스터는, 함께 그룹화되어 식별자, 및 클러스터에 속하는 노드들의 그룹을 식별하는, 클러스터와 연관된 정보를 가진 클러스터를 형성하는 하나 이상의 노드들을 의미한다. 클러스터의 식별자로 지시되는 네트워크 트래픽은 클러스터의 물리적 노드들 중 하나 이상으로 라우팅된다. 출원인은, 일부 환경들에서는, 리소스들이 2 이상의 클러스터들 사이에서 재배치될 수 있는 리소스 그룹의 구성을 가능하게 하는 것이 바람직하다는 것을 알 수 있었다. 따라서, 본 발명의 다른 실시예는 그러한 리소스 그룹들의 구성을 가능하게 한다.
여기에서 설명되는 본 발명의 양상들은 리소스 그룹들을 구성, 모니터링 및/또는 관리하는 것에 관한 것이고, 리소스 그룹과 관련하여 이들 3가지 기능들 중 하나를 수행할 수 있는 가용성 관리자 또는 모니터의 임의 유형과 관련하여 이용될 수 있다. 여기에서 사용되는 바와 같이, 리소스 그룹 도구(resource group tool) 라는 용어는 일반적으로, 리소스 그룹을 구성, 모니터링 및/또는 관리할 수 있는 임의 도구, (소프트웨어, 하드웨어, 또는 이들의 조합일 수 있는) 제품 등을 설명하는데 사용된다. 그러한 리소스 그룹 도구들의 예들로는 가용성 관리자 또는 모니터를 들 수 있지만, 여기에서 설명되는 본 발명의 양상들이, 통상적으로 그러한 레이블들(labels)로써 언급되는 제품들로 제한되지는 않으며, 리소스 그룹을 구성할 수 있거나, 리소스 그룹을 모니터링할 수 있거나, 리소스를 관리할 수 있거나, 상기한 것의 임의 조합을 수행할 수 있는 임의 도구와 관련하여 사용될 수 있다.
앞서 언급된 바와 같이, 가상 머신은 컴퓨터 시스템의 추상적 표현이다. 가상 머신은 호스트 머신에 상주하는 게스트 환경(guest environment)을 의미할 수 있는데, 이 경우, 가상 머신은 게스트 오퍼레이팅 시스템, 게스트 애플리케이션들, 및/또는 가상화된 게스트 하드웨어를 위한 설비들을 제공한다. 가상 머신에서 실행되는 게스트 오퍼레이팅 시스템들 또는 애플리케이션들의 관점으로부터, 게스트 하드웨어와 인터페이스하는 임의의 저레벨 명령어들은 게스트 하드웨어에서 직접적으로 실행되는 것처럼 보이지만, 실제로는 가상 머신에 의해 가상화되어 궁극적으로는 호스트 머신상의 실제 하드웨어로 전달될 수 있다. 가상 머신은 다수 방법들로 구현될 수 있다는 것과 임의의 특정 방식으로 구현된 가상 머신들의 사용으로 본 발명의 양상들이 제한되는 것은 아니라는 것을 알 수 있어야 한다.
다수의 가상 머신들이 호스트 머신에 상주할 수 있으므로, 다수의 게스트 오퍼레이팅 시스템들 및 애플리케이션들이 하나의 호스트 머신에서 동시에 실행될 수도 있다. 예를 들어, 네트워크에 커플링된 임의 노드상에 다수의 가상 머신들이 상주할 수 있다. 가상 머신에서 애플리케이션을 실행하는 사용자가 가상 머신 또는 가상 머신이 상주하는 노드 위치도 인지하지 못할 수도 있지만, 사용자의 관점에서, 그것은 마치, 애플리케이션이 통상적인 완전한 물리적 컴퓨터 시스템의 전용 리소스들을 갖는 것과 같다.
도 2는, 리소스 그룹이 하나 이상의 가상 머신들을 포함하도록 형성될 수 있는 발명의 일 실시예를 구현하는 예시적 시스템을 예시한다. 도 2의 시스템은 네트워크(355)를 통해 상호 접속된 노드들(310A-310C)을 포함하는 클러스터(300)를 포함한다. 노드(310A)는 가상 머신들(330A-C)을 호스팅하고, 노드(310B)는 가상 머신(330D)을 호스팅하며, 노드(310C)는 가상 머신들(33OE-F)을 호스팅한다.
소정 노드(310)는, 노드(310)가 효율적으로 핸들링할 수 있는 부하에 기초해 다수의 가상 머신들(330)을 호스팅할 수 있다. 각각의 가상 머신은 차례로 게스트 오퍼레이팅 시스템 및 애플리케이션들을 호스팅할 수 있다. 도 2는 클러스터 노드들만을 예시하지만, 최종 사용자 네트워크는, 도 1에서 설명되고 예시된 바와 같이, 아주 유사한 방식으로 클러스터(310)에도 커플링될 수 있고, 그것에 의해, 각각의 사용자는 가상 머신들(330)에서 애플리케이션들을 실행할 수 있다. 또한, 도 2는 네트워크(355)를 위한 특정 표현을 제시하지만, (도 1과 관련하여 설명된 것들을 포함하는) 임의의 네트워크 토폴로지 또는 유형이 클러스터의 노드들을 상호 접속하는데 이용될 수 있으므로, 네트워크가 이러한 특정 구현으로 제한되는 것은 아니다. 이러한 관점에서, 하나 이상의 가상 머신들을 포함하는 리소스 그룹을 형성하는 것에 관련된 본 발명의 양상들은 임의 유형의 구성을 가진 클러스터들에서 구 현될 수 있다.
발명의 일 실시예에 따르면, 가상 머신들은 클러스터의 물리적 호스트 노드들을 통해 동적으로 재배치될 수 있다. 가상 머신들의 재배치는, 가용성 목적들을 위해 또는 임의의 다른 이유를 위해, 하드웨어 유지 보수, 분산(deployment) 또는 전달을 예상하여, 클러스터의 노드들에 작업 부하들을 재분산하도록 개시될 수 있다.
도 2에 도시된 실시예에서, 자동화된 가용성 모니터는, 각각, 노드들(310A-C)에 상주하는 에이전트들(320A-320C)을 구비한다. 모니터는 클러스터(300)의 하나 이상의 리소스 그룹들을 구성, 모니터링 및/또는 관리할 수 있고, 임의의 그러한 리소스 그룹의 노드들(310)에 상주하는 가상 머신들(330)을 포함할 수 있다. 도 2에 도시되지는 않았지만, 모니터는 에이전트들과 통신하고 리소스 그룹의 구성을 가능하게 하는 콘솔을 더 구비할 수 있다. 콘솔은 임의의 적합한 위치(예를 들어, 클러스터의 노드들 중 하나 또는 다른 어떤 곳)에 상주할 수 있다. 리소스 그룹에 가상 머신을 포함시키는 것에 관한 본 발명의 양상들은 임의 구성 유형의 모니터에 따라 구현될 수 있고, 에이전트(320)가 각각의 노드에 상주하는 도 2에 도시된 바와 같은 재분산 구성, 또는 임의의 다른 특정 유형의 구성을 가진 AAM 시스템에 사용하는 것으로 제한되지 않는다.
가상 머신들(330)은 임의의 다른 리소스와 함께 에이전트들(320)에 의해 구성, 모니터링, 및/또는 관리될 수 있다. 다른 리소스들의 예들로는 서비스들, 애플리케이션 프로세스들, 시스템 경로들 또는 논리 어드레스들, IP 어드레스들, 노 드들(예를 들어, 저장 장치들 또는 서버들), NIC들, 네트워크 장치들(예를 들어, 라우터 또는 브릿지), 컴퓨터 에일리어스들, 데이터베이스들 등과 같은, 상술된 것들 중 하나를 들 수 있다. 앞서 언급한 바와 같이, 여기에서 설명되는 본 발명의 양상들은 에이전트들이 모든 노드들에 상주하는 모니터의 사용이나, 또는 소정 가상 머신을 구성, 모니터링 및/또는 관리하는 에이전트 또는 에이전트들이, 가상 머신이 상주하는 노드와 동일한 노드에 상주하는 모니터의 사용으로 제한되지 않는다.
리소스 그룹은, 가상 머신을 포함하는, 리소스를 모니터링 및/또는 제어하는 것에 관련된 임의 갯수의 기능들을 정의하도록 구성될 수 있다. 가상 머신을 위한 가용성 속성들은 (예를 들어, 노드가 고장나면 가용성을 보장하는) 장애 허용성 쟁점들 및/또는 성능 쟁점들을 다루도록 정의될 수 있다. 예를 들어, 리소스 그룹은 가상 머신의 호스트 노드를 위한 하나 이상의 성능 목표들 또는 요구 사항들(예를 들어, 호스트 노드상의 가상 머신, 메모리, 또는 저장 리소스들 등에 할당된 호스트 프로세서 사용의 백분율)을 특정하도록 구성될 수 있고, 모니터는 그러한 목적들 또는 요구 사항들이 충족되는 지를 알아보기 위한 액션들을 취할 수 있다.
예를 들어, 일 실시예에서, 가상 머신을 포함하는 리소스 그룹은 가상 머신을 위한 가용성 속성들, 가상 머신을 초기화하기 위한 일련의 액션들, 및/또는 가상 머신을 중단하기 위한 일련의 액션들을 정의할 수 있다. 발명이 이러한 관점에서 제한되지 않으므로, 모니터는 가상 머신으로부터, 가상 머신이 임의의 적당한 방식으로 적절하게 작동중인 지의 여부를 판정하기 위한 정보를 획득할 수도 있다. 가상 머신이 작동하는 방법의 분석시에, 리소스 그룹에 의해 정의된 규칙들은 가상 머신의 상태에 응답하여 실행될 액션들을 정의할 수 있다. 예를 들어, 가상 머신이 소정 노드에서 바람직한 바에 따라 또는 요구되는 바에 따라 작동하고 있지 않다면, 리소스 그룹내에서 정의된 규칙들은 가상 머신을 다른 노드에 재배치하는 것을 지시할 수 있다. 발명이 이러한 관점에서 제한되지는 않으므로, 재배치는 임의의 적당한 방식으로 실현될 수 있다. 일례로서, (예를 들어, VMWare로부터 입수 가능한) 소정 가상 머신 기술은, 모니터가 가상 머신을 일 노드로부터 다른 노드로 재배치하도록 액세스할 수 있는 재배치 서비스(relocation service)를 제공할 수 있다.
가상 머신의 모니터링을 가능하게 하기 위해, 모니터는 (예를 들어, 에이전트들을 통해) 가상 머신으로부터 임의의 적당한 방식으로 정보를 모을 수 있다. 일 실시예에서, 그러한 정보는 가상 머신들(330A-F)내의 경량 에이전트들(335A-F)을 사용해서 수집된다. 경량 에이전트들(335)은 실행되는 가상 머신들 또는 애플리케이션들에 관한 메트릭들을 감지하고 수집하며, 그 다음, 이 메트릭들은 에이전트들(320A-C)로 전달될 수 있다. 도 2에서, 경량 에이전트들(335)은, 도 2에 점선의 통신 경로들로써 예시된 바와 같이, 동일한 노드들(310)에 상주하는 에이전트들(320)과 통신한다. 그러나, 소정 가상 머신(330)내의 경량 에이전트(335A-F)는, 발명이 이러한 관점에서 제한되지는 않으므로, 다른 방법으로, 상이한 노드(310)에 상주하는 에이전트(320) 또는 모니터의 임의의 컴포넌트와 선택적으로 통신할 수도 있다.
다른 실시예에서, 경량 에이전트들(335A-F)은 웹-서비스들의 프로토콜을 통해 하나 이상의 에이전트들(320)과 통신할 수 있다. 웹-서비스들은, 각각이 다른 컴퓨터 시스템의 특징에 대한 상세한 지식을 가질 것을 요구하지 않으면서, 컴퓨터들 사이에서 정보를 교환하기 위한 표준화된 플랫폼-독립형 통신 프로토콜이다. 웹-서비스들의 프로토콜은 데이터를 표현하기 위한 크로스 플랫폼(cross-platform), 플렉서블(flexible), 텍스트-기반 표준(text-based standard)인 XML(Extensible Markup Language)을 이용할 수 있다. 당업자들에게, 현재의 웹-서비스들의 프로토콜들의 구현 세부 사항들은 공지되어 있다.
발명의 일부 실시예들은 경량 에이전트들(335)과 에이전트들(320) 사이의 통신을 위해 웹-서비스들의 프로토콜을 이용할 수 있지만, 다른 통신 프로토콜들이 이용될 수도 있다는 것을 알 수 있어야 한다.
일 실시예에서는, 감지된 메트릭들을 경량 에이전트들(335A-F)로부터 수신할 때, 에이전트들(320A-C)은, 오퍼레이팅 환경 및/또는 리소스, 이 경우 가상 머신의 특징들을 위해 바람직한 및/또는 요구되는 기준들을 확립하는 확립된 승인 제어 기준들에 기초해, 가상 머신들에 대한 액션들을 실행할 것인지의 여부를 판정한다. 예를 들어, 승인 제어 기준들은, 가상 머신을 호스팅하는 물리적 컴퓨터 노드(310)에서의 메모리량과 같은, 각 가상 머신(335)의 호스트를 위한 최소 하드웨어 요구 사항들을 확립할 수 있다. 그러한 승인 제어 기준들은, 차례로, 가상 머신과 같은 소정 리소스가 상주해야 하는 노드들(310)의 바람직한 리스트를 생성하도록 한다. 승인 제어 기준들은, 부가적으로 또는 선택적으로, 예를 들어, 가상 머신에 할당되어야 하는 호스트 프로세서 이용의 백분율을 특정하는 것에 의해 가상 머신에 할당된 호스트 리소스들의 양을 위한 기준들을 확립할 수 있다.
승인 제어 기준들이 가상 머신 또는 임의의 다른 리소스의 오퍼레이팅 환경 및/또는 특징에 대한 임의의 희망 기준들을 확립할 수 있으므로, 앞서 논의된 특정 승인 제어 기준들은 단지 예들이라는 것을 알 수 있어야 한다.
승인 제어 기준들과 함께, 모니터(예를 들어, 에이전트들(320A-C))는, 그에 따라 머신이 재배치될 조건들을 특정하고 (승인 제어 기준들과 함께) 새로운 호스트의 선택을 안내하는 재배치 정책에 기초해, 가상 머신의 이동을 관리할 수 있다. 예를 들어, 재배치 정책을 통해, 모니터(예를 들어, 에이전트들(320))는, 자신의 현재 호스트 노드의 장애 또는 성능이 열화된 경우에 가상 머신(330)이 이동되어야 할 노드(310)를 자동적으로 결정할 수 있고, 그것에 의해, 가상 머신의 가용성을 자동적으로 보장할 수 있다.
도 3은, 가상 머신들(330A-330B)이 노드(310B)로 재배치되고, 가상 머신(330C)은 노드(310C)로 재배치된, 도 2의 클러스터(300)를 예시한다. 노드(310A)로부터의 재배치는, (경량 에이전트들(335A-335C)로부터 에이전트(320A)로 송신된) 가상 머신들내에서 실행되는 애플리케이션들에 관해 감지된 메트릭들에 의해, 노드(310A)의 장애에 의해, 또는 임의의 적합한 다른 트리거링 이벤트에 의해 트리거링되었을 수도 있다. 재배치 정책은 에이전트들(310A-C)에 의해, 가상 머신들(335A-335C) 각각을 재배치할 목적지(destination) 노드들을 결정하는데 이용될 수 있다.
도 2 및 도 3에 예시된 특정 일례는 가상 머신들만을 포함하는 리소스 그룹을 수반하지만, 가상 머신들 이외에 리소스의 다른 임의 유형을 포함하는 리소스 그룹들이 구성될 수도 있으므로, 발명이 이러한 관점에서 제한되는 것은 아니라는 것을 알 수 있어야 한다.
통상적으로, 리소스 그룹들을 구성하기 위해 자동화된 가용성 모니터와 통신하기 위한 사용자 인터페이스는 클러스터와 동일한 네트워크내에 상주해야 하는데, 네트워크는 종종, 인터넷과 같은, 접속된 공중 네트워크를 통한 비인가 외부 액세스로부터 네트워크를 보호하기 위한 방화벽 뒤에 배치된다. 또한, 클러스터 구성을 수행중인 자동화된 가용성 모니터의 컴포넌트들과 사용자 인터페이스 사이의 통신, 모니터링 및/또는 제어는 통상적으로, 모니터의 컴포넌트들 모두가 모니터링되는 클러스터(들)와 동일한 네트워크내에(예를 들어, 동일한 방화벽 뒤에) 배치될 것과 전용 프로토콜을 사용해 통신할 수 있을 것을 요구하면서, 전용의 특정 통신 프로토콜을 사용해 수행된다. 그러한 제약들은, 관리자가 현장에서 일반적인 클러스터 관리 소프트웨어와 상호 작용할 것을 요구한다.
발명의 일 실시예에 따르면, 웹-서비스들의 프로토콜은, 자동화된 가용성 모니터의 사용자 인터페이스와, 응답 그룹들을 구성, 모니터링 및/또는 제어하기 위한 다른 컴포넌트들 사이에서의 통신에 이용된다.
일 실시예에서, 자동화된 가용성 모니터를 위한 웹-서비스 인터페이스를 제공하는 것은, 리소스 그룹을 구성, 모니터링 및/또는 제어할 때의 위치 융통성을 허용하는데, 이 경우, 모니터는, 클러스터가 방화벽에 의해 보호되는 경우라 하더 라도, 클러스터의 네트워크 외부로부터 액세스될 수 있다. 예를 들어, 웹-서비스 인터페이스를 통해, 관리자는, 예를 들어 인터넷을 사용해서, (방화벽 뒤에서 보안된 경우라 하더라도) 클러스터 네트워크 외부의 컴퓨터로부터의 리소스 그룹 구성 및/또는 관리 도구와 통신할 수 있고, 그것에 의해, 관리자는, 동일한 네트워크에서 컴퓨터로부터의 모니터 또는 구성 도구에 액세스할 필요 없이, 하나 이상의 리소스 그룹들을 구성, 모니터링 및/또는 제어할 수 있다.
웹-서비스 인터페이스의 사용은, 클러스터 네트워크의 외부 위치로부터의 리소스 그룹 구성 및/또는 관리 도구와의 통신을 가능하게 하지만, 웹-서비스 인터페이스가 동일한 네트워크상의 컴퓨터로부터의 리소스 그룹을 구성, 모니터링 및/또는 제어하는데도 이용될 수 있다는 것을 알 수 있어야 한다. 웹-서비스 인터페이스의 사용은, 상술된 플랫폼-독립 방식으로, 관리자에 의해 사용되는 컴퓨터와 리소스 그룹 구성 및/또는 관리 도구 사이의 통신을 가능하게 한다.
상기 논의에서, 웹-서비스 인터페이스는 사용자 인터페이스와 리소스 그룹 구성 및/또는 관리 도구 사이에서 이용되는 것으로 설명되었다. 일 실시예에서, 웹-서비스 인터페이스를 통해 (예를 들어, 공개적으로 이용 가능한 웹 사이트에 액세스하는 것에 의해) 액세스 가능한 사용자 인터페이스는 리소스 그룹들을 구성할 수 있고, 앞서 구성된 리소스 그룹들을 모니터링 및 제어할 수도 있는 능력을 제공한다. 그러나, 웹-서비스 인터페이스를 통해 액세스 가능한 사용자 인터페이스는 선택적으로 (예를 들어, 구성하는 단계는 허용하지만 모니터링하는 단계는 허용하지 않기 위해, 또는 모니터링하는 단계는 허용하지만 구성하는 단계는 허용하지 않 기 위해) 리소스 그룹들을 구성, 모니터링 및 제어하는데 관련된 활동들의 임의의 서브세트를 수행하기 위한 능력을 제공할 수 있으므로, 웹-서비스 인터페이스를 통해 리소스 그룹 도구에 액세스하는 단계에 관련된 본 발명의 실시예가 이러한 관점에서 제한되지는 않으며, 그에 따라, 임의의 다른 활동들이 리소스 그룹 클러스터와 동일한 네트워크에서의 액세스를 요구할 수도 있다는 것을 알 수 있어야 한다.
이하에서는, 클러스터(500), 컴퓨터(580) 및, 컴퓨터(580)를 클러스터에 커플링하는 네트워크(565)를 구비하는 컴퓨터 시스템(5000)을 예시하는 도 4를 참조하여 리소스 그룹 구성 및/또는 관리 도구에 액세스하는 웹-서비스 인터페이스의 사용에 관련된 발명의 양상에 대한 일 실시예가 설명될 것이다. 클러스터(500)는, 리소스들(530A-530E)을 소유하는 한 세트의 물리적 컴퓨터 노드들(510A-510C)을 구비한다. 앞서 논의된 바와 같이, 물리적 컴퓨터 노드들(510A-510C)은, 서버, 저장 시스템, 또는 모니터링될 하나 이상의 리소스들을 가진 임의의 다른 장치와 같은, 임의의 적당한 장치를 구비할 수 있다. 물리적 클러스터들은 상술된 바와 아주 유사한 방식으로 임의 토폴로지의 네트워크의 임의 유형일 수 있는 네트워크(555)를 통해 상호 접속된다.
네트워크(565)는 클러스터(500)와 컴퓨터(580) 사이의 통신을 허용하는 임의 유형의 네트워크 접속일 수 있다. 일 실시예에서, 클러스터(500) 및 네트워크(555)는 안전한 사설 네트워크(secure private network)의 일부일 수 있고 방화벽에 의해 보호될 수 있다. 일 실시예에서, 네트워크(565)는 공중 네트워 크(public network;예를 들어, 인터넷)일 수 있다. 컴퓨터(580)는 클러스터(500)와 동일한 사설 네트워크의 일부분일 수 있거나, 상이한 방화벽에 의해 보호되는 상이한 사설 네트워크의 일부분일 수 있거나, 어떤 방화벽에 의해서도 보호되지 않을 수 있거나, 웹-서비스 인터페이스를 통해 클러스터(500)와 통신하기 위해 공중 네트워크(565)로의 액세스를 제공하는 다른 임의 구성으로 배치될 수도 있다.
컴퓨터(580)는, 네트워크(565)를 통해, 클러스터(500)의 리소스 그룹들의 구성을 가능하게 하는 구성 도구와의 통신을 허용하는 사용자 인터페이스를 제공한다. 웹-서비스 인터페이스의 사용을 통해, 컴퓨터(580)는 웹-서비스들의 프로토콜에 따라 통신 신호들을 송수신하는 것에 의해 구성 도구와 통신한다. 웹-서비스들의 프로토콜 및 인터페이스를 통한 통신으로 인해, 컴퓨터(580)는 공중 네트워크(565)에 접속된 임의 컴퓨터에 상주하는 리소스 그룹 구성 도구와 상호 작용할 수 있다. 일 실시예에서는, 상술된 바와 같은 콘솔일 수 있는 구성 도구가 클러스터(500)(예를 들어, 클러스터(500)의 물리적 컴퓨터 노드들(510A-510C) 중 어느 하나 또는 복수개)에 배치된다. 웹-서비스 인터페이스를 통해, 사용자는, 사용자가 클러스터(500)내의 컴퓨터로부터의 구성 도구와 통신하기 위해 사용할 수 있는 종래의 기술들과 동일한 방식으로, 사용자가 클러스터(500)의 물리적 컴퓨터 노드들(510A-510C)에 상주하는 리소스들을 구성, 모니터링 및/또는 제어하는 것을 허용하면서, 컴퓨터(580)를 사용해 구성 도구와 통신할 수 있다. 예를 들어, 사용자는, 관리될 리소스들, 메트릭들을 감지하기 위한 센서들, 리소스들의 스타트업 및 셧다운에 응답하기 위한 규칙들, 시스템 대체 작동 노드를 선택하기 위한 절차들, 감지된 메트릭들의 트리거링 기준들에 응답하기 위한 명령들 등을 정의하는 것에 의해 클러스터의 리소스 그룹의 구성을 지시할 수 있다.
앞서 논의된 바와 같이, 본 발명의 일 실시예에 따르면, 하나 또는 리소스 그룹들의 구성을 가능하게 하는 구성 도구를 위한 인터페이스는 웹-서비스 인터페이스에 의해 이용 가능해질 수 있다. 대안적으로, 본 발명의 다른 실시예에 따르면, 하나 이상의 앞서 구성된 리소스 그룹들을 모니터링하기 위한 인터페이스는 웹-서비스 인터페이스에 의해 이용 가능해질 수 있다. 또한, 본 발명의 일 실시예에 따르면, 그러한 기능성은 조합되어 인터페이스가 AAM 모니터 또는 적당한 다른 도구에 대해 이용 가능해져, 웹-서비스 인터페이스에 의해 리소스 그룹들을 구성 및 모니터링 할 수 있게 된다.
구성 및/또는 모니터링 도구를 위한 웹-서비스 인터페이스는, 본 발명이 이러한 관점에서 제한되지는 않으므로, 임의의 적당한 방식으로 구현될 수 있다. 본 발명의 일 실시예에 따르면, 구성 및/또는 모니터링 도구를 위한 사용자 인터페이스는, 웹 사이트와 아주 유사한 방식으로, 네트워크(565)의 공개적으로 액세스 가능한 어드레스에서 이용 가능해질 수 있다. 본 발명의 이 실시예에 따르면, 사용자 인터페이스는, 다음으로, 네트워크(565) 및 브라우저로의 액세스로 임의의 컴퓨터(580)에 의해 액세스될 수 있다.
도 5는 분산 모니터링 시스템에 관한 발명의 다른 실시예를 예시하는데, 이 경우, 모니터링 시스템의 2 이상의 구성 요소들 사이의 통신은 웹-서비스 인터페이스를 사용해 수행될 수 있다. 도 5의 실시예에서, 모니터링 시스템은 클러스 터(600)의 물리적 컴퓨터 노드들(610A-610C)에 상주하는 에이전트들(620A-C), 및 클러스터(600)의 리소스 그룹들의 구성을 가능하게 하기 위해 모니터링 시스템에 사용자 인터페이스를 제공하는 콘솔(685)을 구비한다. 콘솔(685)은, 제2 컴퓨터(680)의 프로세서에 액세스 가능하고 그것에 의해 실행되는 컴퓨터-판독 가능 매체에서 인코딩되는 명령어들로써 구현되는 것과 같이, 임의의 적합한 방법으로 구현될 수 있다. 일 실시예에서, 콘솔(685)은 그래픽 사용자 인터페이스의 프레젠테이션을 정의하는 명령어들을 포함할 수 있고, 그에 따라, 사용자는, 그래픽 사용자 인터페이스를 통해, 리소스 그룹을 구성하기 위한 하나 이상의 명령들을 제공할 수 있다.
콘솔(685)은 물리적 컴퓨터 노드들(610A-C)에 상주하는 에이전트들(620A-C)과 통신한다. 에이전트들(620A-C)은 임의의 적당한 방법으로, 예를 들어, 대응되는 물리적 컴퓨터 노드(610A-C)의 프로세서에 액세스 가능하고 그것에 의해 실행되는 컴퓨터-판독 가능 매체(예를 들어, 메모리 또는 다른 저장 장치)에 인코딩되는 명령어들로써 구현될 수 있다. 도 5에서, 에이전트들(620A-C)은, 하나 이상의 리소스들(630A-E)도 상주할 수 있는 동일한 물리적 컴퓨터 노느들(61OA-C)에 소프트웨어로서 설치되고, 동일한 노드에서 리소스들(630A-E)을 구성, 모니터링 및/또는 제어할 수 있다. 그러나, 앞서 논의된 바와 같이, 여기에서 설명되는 발명의 실시예들이 이러한 유형의 구성을 가진 모니터에 사용되는 것으로 제한되지는 않는다. 예를 들어, 에이전트는, 그것에 의해 구성되거나 모니터링되는 리소스가 상주하는 노드와는 별도의 장치에 설치될 수 있고, 에이전트가 상주하는 장치는 에이전트를 실행할 수 있는 임의의 컴퓨팅 장치일 수 있다. 이와 같이, 에이전트가 도 5에서는 클러스터(600)의 노드 각각에 상주하지만, 여기에서 설명되는 본 발명의 양상들은 좀더 적은 에이전트들(예를 들어, 클러스터마다 하나)을 이용하는 다른 구성들에도 사용될 수 있다.
일 실시예에서, 콘솔(685)과 에이전트들(620A-C) 사이의 통신은 웹-서비스들의 프로토콜 및 인터페이스를 통해 실현된다. 도 4의 제2 컴퓨터(580) 및 클러스터(500)와 관련하여 앞서 설명된 바와 같이, 네트워크(665)는 공중 또는 사설 네트워크일 수 있거나, 콘솔(685)이 상주하는 컴퓨터(680)는 클러스터와 동일한 사설 네트워크에 속할 수 있거나, 컴퓨터(680)는 클러스터(600)를 보호하는 방화벽 외부에 위치할 수 있다. 콘솔(680)은 클러스터(600) 및 거기에 배치된 에이전트들(620A-C)을 보호하는 방화벽을 벗어나 배치될 수 있으므로, 콘솔(685)과 에이전트들(620) 사이의 통신을 위해 웹-서비스 인터페이스를 사용하는 것은, 콘솔이 클러스터로부터 원격적으로(예를 들어, 다른 방, 빌딩, 도시, 주, 또는 국가에) 배치되는 것을 가능하게 할 수 있다.
콘솔(685) 및 에이전트들(620A-C)이 웹-서비스 인터페이스 및 프로토콜을 통해 통신할 때, 그러한 통신은 임의의 적당한 방식으로 구현될 수 있다는 것을 알 수 있어야 한다. 예를 들어, 콘솔(685)은 에이전트들(620A-C)과 통신하도록 적응된 에이전트 인터페이스를 가질 수 있고, 에이전트 인터페이스는 웹-서비스 인터페이스를 통해 보내질 수 있으며, 그에 따라, 에이전트들(620A-C)은 브라우저를, 또는 에이전트들에 대한 적당한 다른 기술을 이용하는 것에 의해 콘솔에 액세스할 수 있다. 부가적으로 또는 선택적으로, 에이전트들(620A-C)은 콘솔(685)과의 통신을 위해 적응된 콘솔 인터페이스를 가질 수 있고, 에이전트들을 위한 콘솔 인터페이스들은 웹-서비스 인터페이스를 통해 보내질 수 있으며, 그에 따라, 콘솔(685)은 브라우저 또는 콘솔에 대한 적당한 다른 기술을 사용해 에이전트들에 액세스할 수 있다.
앞서 콘솔(685)은 웹-서비스 인터페이스를 사용해 에이전트들(620A-C)과 통신하는 것에 의해 리소스 그룹을 구성할 수 있는 능력을 제공하는 것으로 설명되었지만, 발명의 일 실시예에서, 콘솔(685)은, 에이전트들(620A-C)에 의해 모니터링된 리소스들을 포함하는 앞서 구성된 리소스 그룹을 모니터링할 수 있는 능력을 제공할 수 있다는 것과, 그러한 모니터링 기능은 콘솔(685)을 통해 리소스 그룹을 구성할 수 있는 능력에 더하여 또는 콘솔(685)을 통해 리소스 그룹을 구성할 수 있는 능력 대신에 수행될 수 있다는 것도 알 수 있어야 한다. 이것으로 인해 리소스 그룹이, 클러스터(600)와 동일한 네트워크에 접속된 컴퓨터를 통해서가 아니라, 원격적으로 모니터링되는 것이 가능해질 수 있다는 것을 알 수 있어야 한다.
본 발명의 일 실시예에 따르면, 리소스들이 모니터링되고 있는 클러스터로부터의 리소스 그룹을 구성 및/또는 모니터링하기 위해 사용자 인터페이스(예를 들어, 도 5의 콘솔(685))를 커플링 해제할 수 있는 능력으로 인해, 하나의 콘솔 인터페이스가, 상이한 사설 네트워크들 뒤쪽의 클러스터들을 포함하는, 다수 클러스터들의 리소스 그룹들을 관리하는데 사용될 수 있다.
종래의 가용성 모니터링 및 관리 시스템들에서, 리소스 그룹들은 물리적 노 드들의 특정 클러스터내의 리소스들을 위해 정의되고, 리소스 그룹을 위한 가용성 요구 사항들을 충족시키기 위해 가용성 모니터링 시스템에 이용 가능한 물리적 컴포넌트들은 클러스터내의 컴포넌트들로 제한된다. 컴퓨터 시스템을 구성할 때, 클러스터를 정의하는데 이용되는 인프라스트럭처는, 함께 단일 클러스터로 바람직스럽게 그룹화될 수 있는 물리적 컴포넌트들의 수에 대한 소정의 실질적 제한들을 부여할 수 있다. 클러스터를 정의하기 위한 인프라스트럭처는 클러스터에 할당된 식별자(예를 들어, 이름), 클러스터에 포함되는 물리적 컴포넌트들(예를 들어, 노드들)의 리스트, 및 클러스터의 하나 이상의 리소스 그룹들의 구성을 지원하기 위한 노드들 사이의 클러스터 레벨 통신을 포함한다. 예를 들어, 통상적인 리소스 그룹들은, 리소스가 처음에 상주할 수 있는 클러스터의 노드에서 장애가 발생하는 경우라 하더라도, 클러스터의 하나 이상의 리소스들의 지속적인 가용성을 지원하도록 정의된다. 클러스터내의 노드들이 함께 작동하여 그러한 가용성 기능성을 제공할 수 있도록 하기 위해, 통상적인 모니터링 시스템들은 클러스터의 노드들 사이에서 클러스터-레벨 통신을 이용하고, 그에 따라, 클러스터의 노드들은, 다른 노드들의 상태, 및 노드 장애의 발생시에 리소스의 지속적인 가용성을 보장하기 위해 액션들이 취해져야 하는지의 여부를 인지한다. 그러한 클러스터-레벨 통신의 예들로는 클러스터의 노드들 사이에서의 하트비트(heartbeat) 또는 폴링(polling) 통신들을 들 수 있고, 그에 따라, 노드들은 다른 노드들의 상태 및 지속되는 실행 가능성(continued viability)을 함께 모니터링할 수 있다.
앞서 언급된 바와 같이, 클러스터를 지원하는데 이용되는 인프라스트럭처의 관점에서, 임의의 특정 클러스터로 함께 그룹화되는 물리적 노드들의 수를 제한하는 것이 바람직할 수도 있다. 예를 들어, 클러스터내의 노드들 수가 지나치게 커지면, 클러스터를 지원하기 위한 노드들 사이의 클러스터-레벨 통신이 지나치게 부담스러워질 수 있고, 네트워크 대역폭의 바람직스럽지 않게 큰 백분율을 클러스터의 노드들을 상호 접속하는 네트워크를 위해 소비할 수 있다. 따라서, 종래의 모니터링 시스템들을 사용할 때, 사용자들은 대부분, 임의의 1개 클러스터에서 상호 접속되는 물리적 노드들의 수를 제한한다.
임의의 특정 클러스터에서 함께 그룹화될 수 있는 노드들의 수에 대한 제한들의 부정적인 면은, 그것이, 특정 리소스 그룹을 위한 바람직한 가용성 요구 사항들을 충족시키기 위해 취해질 수 있는 액션들에 대해 바람직스럽지 못한 제한들을 부과할 수 있다는 것이다. 예를 들어, 특정 리소스 그룹은, 특정 클러스터로 함께 그룹화하기에 바람직할 수 있는 노드들의 특정 그룹내의 소수 노드들에 의해서만 충족되는 일 세트의 바람직한 오퍼레이팅 환경 기준들을 가질 수도 있다. 출원인은, 일부 환경들에서는, 리소스 그룹이 리소스 그룹을 위한 가용성 요구 사항들을 충족시키기 위해 클러스터를 벗어난 물리적 노드들 또는 컴포넌트들을 사용할 수 있도록 리소스 그룹을 구성하는 것이 바람직할 수 있다는 것을 알 수 있었다. 따라서, 본 발명의 일 실시예에 따르면, 리소스 그룹은, 리소스를 상이한 클러스터로 재배치하는 것을 인가하는, 그룹의 하나 이상의 리소스를 위한 재배치 정책을 포함하도록 구성될 수 있다.
본 발명의 일 실시예에 따르면, 리소스 그룹내의 리소스들이 클러스터 외부 에 재배치되는 것을 허용하는 것에 관련된 본 발명의 양상은, 리소스들을 재배치하는 것에 의해 증가된 융통성을 제공하기 위해, 웹-서비스들을 이용해 자동화된 가용성 모니터의 컴포넌트들 사이에서 통신을 허용하는 본 발명의 양상과 함께 사용될 수 있다. 예를 들어, 특정 기업내에, 각각이 자신의 방화벽 뒤에서 보안되는 (예를 들어, 상이한 지리적 위치들에 배치된) 다수의 사설 네트워크들이 존재할 수 있고, 그에 따라, 다수의 사설 네트워크들은 다른 통신 프로토콜들을 사용해 직접적으로 통신할 수 없다. 그러나, 사설 네트워크들 각각은 공중 네트워크(예를 들어, 인터넷)에 접속될 수 있고, 각각은 웹-서비스들의 프로토콜을 사용해 액세스될 수 있다. 따라서, 본 발명의 일 실시예에 따르면, 웹-서비스들의 프로토콜 및 인터페이스는, 일 사설 네트워크의 클러스터로부터의 리소스를 다른 사설 네트워크의 클러스터로 재배치하는 것을 용이하게 하는데 사용될 수 있다.
모니터링 도구의 컴포넌트들 사이에서의 통신을 위해 웹-서비스 인터페이스 및 프로토콜을 사용하는 것에 관련된 본 발명의 양상과의 조합이 유익하지만, 리소스들을 클러스터 외부에 재배치하는 것에 관련된 본 발명의 양상은 이러한 관점에서 제한되는 것은 아니라는 것과, 리소스들을 동일한 방화벽 뒤에 배치된 클러스터로 이동시키는 것을 포함하는, 다수의 다른 환경들에서 리소스들을 클러스터 외부에 재배치하기 위해서나, 또는 모니터링 도구의 다양한 컴포넌트들 사이에서 통신하기 위한 임의의 적당한 통신 프로토콜을 사용하기 위해서 사용될 수 있다는 것을 알 수 있어야 한다.
도 6은, 시스템(9000)이 2개의 클러스터들(900A 및 900B)을 구비하는 일 실 시예를 예시한다. 클러스터(900A)는, 리소스들(930A-930E)을 호스팅하는 물리적 컴퓨터 노드들(910A-910C)을 구비한다. 리소스들(930A-930E)은 에이전트들(920A-C)을 포함하는 모니터링 시스템에 의해 모니터링된다. 클러스터(900B)는 리소스들(930F-930H)을 호스팅하는 물리적 컴퓨터 노드들(910D-910E)을 구비한다. 리소스들(930F-930H)은 에이전트들(920D-E)을 포함하는 모니터링 시스템에 의해 모니터링된다.
클러스터들(900A 및 900B)은 네트워크(965)를 통해 상호 접속된다. 앞서 논의된 바와 같이, 네트워크(965)는, 클러스터들(900A 및 900B) 중 하나 이상이 방화벽 뒤의 사설 네트워크에 배치되는 공중 네트워크일 수 있다. 그러나, 앞서 논의된 바와 같이, 네트워크(965)는, 선택적으로, 동일한 방화벽 뒤에 배치될 수 있는 클러스터들(900A 및 900B)을 접속하기 위한 임의 유형의 네트워크일 수 있으므로, 클러스터-대-클러스터 재배치에 관련된 본 발명의 양상이 이러한 관점에서 제한되지는 않는다. 여기에서 사용되는 바와 같이, 방화벽이라는 용어는 외부 액세스로부터 네트워크 컴포넌트들을 보호하기 위한 임의의 보안 기술을 광범위하게 언급하는데 사용된다.
도시된 실시예에서, 제1 클러스터(900A)에 하나 이상의 리소스들(930A-E)을 구비하는 리소스 그룹은, 특정 조건들 하에서, 리소스들 중 하나 이상을 제2 클러스터(900B)로 재배치하는 것을 인가하는 재배치 정책에 따라 구성된다. 앞서 논의된 것과 아주 동일한 방식으로, 재배치가 발생할 특정 조건들은 임의의 적당한 승인 제어 조건들에 따라 정의될 수 있고, 재배치되는 리소스를 위한 목적지는 임의 의 적당한 재배치 정책에 따라 특정될 수 있는데, 본 발명이 이러한 관점에서 제한되지는 않기 때문이다.
앞서 설명된 예에서, 리소스들(93OA-E)을 구비하는 리소스 그룹은 리소스(930A)를 클러스터(900B)에 재배치하는 것을 인가하는 재배치 정책에 따라 구성된다. 특정 조건의 발생시에, 리소스(930A)는, 도 7에 도시된 바와 같이, 클러스터(900B)로 재배치된다. 클러스터-대-클러스터 재배치에 관련된 본 발명의 양상들이 재배치를 트리거링할 수 있는 임의의 특정 조건들로 제한되지는 않는데, 통상적으로 리소스를 일 노드로부터 클러스터내의 다른 노드로 재배치하는 결과를 초래할 조건들의 유형 중 어느 하나, 또는 리소스 그룹을 구성중인 관리자가 그러한 재배치를 트리거링하기를 원할 수 있는 임의의 다른 이벤트를 포함하는 임의의 적당한 조건들이 이용될 수 있기 때문이다.
리소스(930A)의 재배치는 임의의 적당한 방식으로 수행될 수 있다. 앞서 논의된 바와 같이, 본 발명의 일 실시예에 따르면, 웹-서비스 인터페이스 및 프로토콜은 클러스터들(900A 및 900B) 사이의 통신에 사용되어 리소스(930A)의 재배치를 용이하게 할 수 있다. 그러나, 본 발명이 이러한 관점에서 제한되는 것은 아니라는 것과, 임의의 적당한 통신 기술이 클러스터들(900A 및 900B) 사이의 통신에 이용되어 재배치를 용이하게 할 수 있다는 것을 알 수 있어야 한다.
본 발명의 일 실시예에 따르면, 임의의 특정 가용성 모니터에 의해 이용되는 통신 프로토콜들에 범용적인 방식으로 클러스터들(900A 및 900B) 사이에서 통신하기 위한 기술이 이용되고, 그에 따라, 리소스는, 클러스터들이 상이한 벤더 들(vendors)에 의해 제공되는 가용성 모니터링 도구들에 의해 구성 및 관리되는 경우라 하더라도, 일 클러스터에서 다른 클러스터로 재배치될 수 있다. 이러한 관점에서, 출원인은, 상이한 가용성 모니터 벤더들이 그것에 의해 관리되는 리소스들을 참조하기 위해 상이한 레이블들을 사용하기는 하지만, 대부분의 가용성 모니터링 시스템들이 동일하거나 유사한 유형들의 리소스들을 모니터링하고 관리하는 능력을 가진다는 것을 알 수 있었다. 따라서, 본 발명의 일 실시예에 따르면, 임의의 특정 벤더에 의해 사용되는 언어와 무관한 메타 언어(meta language)가 사용되어, 제1 벤더에 의해 제공되는 가용성 모니터에 의해 관리되는 제1 클러스터로부터의 리소스를 제2 벤더로부터의 가용성 모니터에 의해 관리되는 제2 클러스터로 재배치하는 것을 용이하게 하는 통신을 제공한다.
본 발명의 일 실시예에 따르면, XML이 상이한 벤더들로부터의 가용성 제품들에 의해 관리되는 클러스터들 사이의 통신을 가능하게 하기 위한 메타 언어로서 이용되고, XML 언어는 웹-서비스 인터페이스에 따라 사용된다. 가용성 모니터 제품들은 통상적으로, 리소스 그룹들이 구성되는 것을 가능하게 하는 사용자 인터페이스를 제공하고, XML 언어는 유사한 레벨에서 통신하는데 이용될 수 있다.
(웹-서비스들을 통해) XML은 본 발명의 일 실시예에 따른 메타 언어로서 사용되지만, 임의의 적당한 언어가 이용될 수 있으므로, 클러스터-대-클러스터 재배치에 관련된 본 발명의 양상이 XML을 클러스터-대-클러스터 통신을 위한 메타 언어로서 사용하는 것으로 제한되지는 않는다는 것을 알 수 있어야 한다.
예를 들어, 다른 범용 언어가 이용되어, 상이한 벤더들에 의해 제공되는 가 용성 모니터링 제품들 사이의 통신을 용이하게 할 수 있거나, 양자가 동일한 벤더로부터의 가용성 모니터링 제품들에 의해 관리되는 경우라면, 전용 통신 프로토콜들이 일 클러스터로부터 다른 클러스터로의 재배치를 용이하게 하는데 이용될 수 있다.
일 클러스터(예를 들어, 도 7의 900A)로부터의 리소스가 다른 클러스터(예를 들어, 900B)로 이동되었을 때, 2개의 클러스터들은 함께 작용하여 양자의 클러스터들에 의해 지원되는 하나 이상의 리소스 그룹의 가용성을 제공할 것이므로, 2개의 클러스터들은, 적어도 일부 제한된 관점들에서, 좀더 큰 메타 클러스터를 형성하는 것으로 간주될 수 있다는 것을 알 수 있어야 한다. 본 발명의 일 실시예에 따르면, 2개의 (또는 그 이상의) 클러스터들이, 많은 관점들에서 앞서 논의된 클러스터-레벨 인프라스트럭처 통신과 유사하지만 2개의 클러스터들에 의해 지원되는 리소스 그룹의 가용성을 보장하기에 바람직한 통신으로 제한될 수 있는 메타 클러스터 통신에 사용될 수 있다. 본 발명의 일 실시예에 따르면, 그러한 메타 클러스터 통신은, 다른 클러스터로의 재배치를 인가하는 재배치 정책에 따른 리소스 그룹의 구성시에 개시되는 것이 아니라, 오히려, 리소스 그룹이 다른 클러스터에 실제로 재배치되어 메타 클러스터를 형성할 때 활성화된다.
리소스가 다른 클러스터로부터 재배치되는 목적지 클러스터에는, 재배치되는 리소스의 가용성을 지원하기 위한 소정 동작에 대해 지시하는 구성 정보가 제공되어야 한다는 것도 알 수 있어야 한다. 그러한 구성 정보는, 목적지 클러스터가 처음에 구성될 때 목적지 클러스터(예를 들어, 상기 일례의 클러스터(900B))에 제공 될 수 있거나, 또는 선택적으로, 리소스가 목적지 클러스터에 재배치될 때 제공될 수 있다.
상기 논의에서, 메타 클러스터는 하나 이상의 리소스 그룹들을 지원하도록 형성되는 것으로 설명되고, 2개의 클러스터들을 포함한다. 그러나, 클러스터-대-클러스터 재배치 및 메타 클러스터의 형성에 관련된 본 발명의 양상은, 3개 이상의 클러스터들을 포함하는 메타 클러스터가 형성될 수도 있으므로, 2개의 클러스터들을 구비하는 메타 클러스터를 형성하는 것으로 제한되지는 않는다는 것을 알 수 있어야 한다.
상기한 내용으로부터 알 수 있는 바와 같이, 웹-서비스들의 통신, 클러스터-대-클러스터 재배치 및 리소스 그룹에 가상 머신을 포함시키는 것과 관련된 양상들을 포함하는, 서로 독립적으로 사용될 수 있는 본 발명의 다수 양상들이 여기에서 설명된다. 그러나, 본 발명의 양상들이 이러한 관점에서 제한되지는 않으므로, 일부 실시예들에서는, 상술된 특징들 모두가 함께 사용될 수 있거나 상술된 특징들의 임의 조합 또는 서브세트가 특정 구현에서 함께 이용될 수 있다는 것도 알 수 있어야 한다.
앞서 논의된 바와 같이, 본 발명의 양상들은 클러스터의 리소스 그룹들을 구성 및/또는 모니터링하기 위한 도구들의 사용에 관한 것이다. 리소스 그룹의 관리 및 모니터링을 위해 여기에서 사용되는 참조들은, 자동화된 가용성 모니터들 및 관리자들을 포함하는, 이러한 기능들을 수행하기 위한 소프트웨어 도구들에 대한 일반적인 참조들로서, 상호 교환 가능하게 사용된다. 앞서 논의된 바와 같이, 여기 에서 설명되는 본 발명의 양상들이 임의의 특정 구성들을 가진 그러한 도구들로 제한되지 않으며, 리소스 그룹들을 구성 및 모니터링하기 위한 임의 도구들과 함께 이용될 수도 있다.
본 발명의 상술된 실시예들은 다수 방법들 중 어느 하나로 구현될 수 있다. 예를 들어, 실시예들은 하드웨어, 소프트웨어, 또는 이들의 조합을 사용해 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는, 단일 컴퓨터로 제공되는지 아니면 다수 컴퓨터들 사이에서 분산되는지에 상관없이, 임의의 적당한 프로세서 또는 프로세서들의 집합에서 실행될 수 있다. 상술된 기능들을 수행하는 임의의 컴포넌트 또는 컴포넌트들의 집합은 일반적으로, 상술된 기능들을 제어하는 하나 이상의 컨트롤러들로서 간주될 수 있다는 것을 알 수 있어야 한다. 하나 이상의 컨트롤러들은, 마이크로코드 또는 소프트웨어를 사용해 앞서 언급된 기능들을 수행하도록 프로그램되는 전용 하드웨어로써 또는 범용 하드웨어(예를 들어, 하나 이상의 프로세서들)로써 구현되는 것과 같이 다수 방법들로 구현될 수 있다.
여기에서 약술되는 다양한 방법들은 다양한 오퍼레이팅 시스템들 또는 플랫폼들 중 어느 하나를 이용하는 하나 이상의 프로세서들에서 실행 가능한 소프트웨어로서 코딩될 수 있다는 것을 알 수 있어야 한다. 부가적으로, 그러한 소프트웨어는 다수의 적당한 프로그래밍 언어들 및/또는 종래의 프로그래밍이나 스크립팅(scripting) 도구들 중 어느 하나를 사용해 기입될 수 있고, 실행 가능한 기계어 코드로서 컴파일(compile)될 수도 있다. 이러한 관점에서, 발명의 일 실시예는, 하나 이상의 컴퓨터들 또는 다른 프로세서들에서 실행될 경우, 앞서 논의된 발명의 다양한 실시예들을 구현하는 방법들을 수행하는 하나 이상의 프로그램들로 인코딩된 컴퓨터-판독 가능 매체 또는 다수의 컴퓨터-판독 가능 매체들(예를 들어, 컴퓨터 메모리, 하나 이상의 플로피 디스크들, 광 디스크들, 자기 테이프들 등)에 대한 것이라는 것을 알 수 있어야 한다. 컴퓨터-판독 가능 매체 또는 매체들은 전송 가능할 수 있고, 그에 따라, 거기에 저장된 프로그램 또는 프로그램들은 하나 이상의 상이한 컴퓨터들 또는 다른 프로세서들로 로드(load)되어 앞서 논의된 본 발명의 다양한 양상들을 구현할 수 있다.
"프로그램"이라는 용어는 여기에서, 컴퓨터 또는 다른 프로세서를 프로그램하여 앞서 논의된 본 발명의 다양한 양상들을 구현하는데 이용될 수 있는 임의 유형의 컴퓨터 코드 또는 명령어들의 세트를 포괄적으로 언급하는데 사용된다는 것을 이해할 수 있어야 한다. 부가적으로, 이 실시예의 일 양상에 따르면, 본 발명의 방법들을 수행하는 하나 이상의 컴퓨터 프로그램들은 단일 컴퓨터 또는 프로세서에 상주할 필요는 없으며, 실행될 경우, 본 발명의 다양한 양상들을 구현하기 위해 상이한 다수의 컴퓨터들 또는 프로세서들 사이에서 모듈 방식으로 분산될 수 있다는 것을 알 수 있어야 한다.
일 실시예는, 복수개의 물리적 컴퓨터 노드들, 복수개의 물리적 컴퓨터 노드들에서 실행되는 복수개의 가상 머신들, 및 컴퓨터 시스템의 리소스들을 모니터링하는 모니터를 구비하는 컴퓨터 시스템을 조작하는 방법을 제공한다. 복수개의 가상 머신들 각각은 컴퓨터 시스템의 가상 표현을 구비한다. 본 방법은, 복수개의 가상 머신들 중 하나 이상을 구비하는 하나 이상의 리소스 그룹을 구성하는 단계를 구비하고, 그에 따라, 복수개의 가상 머신들 중 하나 이상은 모니터에 의해 모니터링될 수 있다. 다른 실시예는, 실행될 경우, 본 방법을 수행하는 복수개의 명령어들로써 인코딩된 하나 이상의 컴퓨터 판독 가능 매체에 대한 것이다.
다른 실시예에 따르면, 하나 이상의 컴퓨터가, 복수개의 물리적 컴퓨터 노드들, 복수개의 물리적 컴퓨터 노드들에서 실행되는 복수개의 가상 머신들, 및 컴퓨터 시스템의 리소스들을 모니터링하는 모니터를 구비하는 컴퓨터 시스템에서의 사용을 위해 제공된다. 복수개의 가상 머신들 각각은 컴퓨터 시스템의 가상 표현을 구비한다. 하나 이상의 컴퓨터는, 복수개의 가상 머신들 중 하나 이상을 구비하는 하나 이상의 리소스 그룹을 구성하도록 프로그램된 하나 이상의 프로세서를 구비하고, 그에 따라, 복수개의 가상 머신들 중 하나 이상은 모니터에 의해 모니터링될 수 있다.
또 다른 실시예는, 복수개의 물리적 컴퓨터 노드들, 복수개의 물리적 컴퓨터 노드들에서 실행되는 복수개의 가상 머신들, 및 컴퓨터 시스템의 리소스들을 모니터링하는 모니터를 구비하는 컴퓨터 시스템을 조작하는 방법을 제공한다. 복수개의 가상 머신들 각각은 컴퓨터 시스템의 가상 표현을 구비한다. 본 방법은 리소스 그룹의 복수개의 가상 머신들 중 하나 이상을 모니터링하는 단계를 구비한다. 또 다른 실시예는, 실행될 경우, 본 방법을 수행하는 복수개의 명령어들로써 인코딩된 하나 이상의 컴퓨터 판독 가능 매체에 대한 것이다.
일 실시예에 따르면, 복수개의 물리적 컴퓨터 노드들, 복수개의 물리적 컴퓨터 노드들에서 실행되는 복수개의 가상 머신들, 및 컴퓨터 시스템의 리소스들을 모 니터링하는 모니터를 구비하는 컴퓨터 시스템을 조작할 때 사용하기 위해 하나 이상의 컴퓨터가 제공된다. 복수개의 가상 머신들 각각은 컴퓨터 시스템의 가상 표현을 구비한다. 하나 이상의 컴퓨터는 리소스 그룹의 복수개의 가상 머신들 중 하나 이상의 모니터링을 가능하게 하도록 프로그램된 하나 이상의 프로세서를 구비한다.
본 발명의 다양한 양상들은 단독으로, 조합으로, 또는 앞서 설명된 실시예들에서 구체적으로 논의되지 않은 다양한 구성들로 사용될 수 있고, 여기에서 설명되는 본 발명의 양상들은, 그 애플리케이션에 있어서 상기 설명에서 기술된 또는 도면들에서 예시된 세부 사항들 및 컴포넌트들의 배치들로 제한되지는 않는다. 본 발명의 양상들은 다른 실시예들이 될 수 있고, 다양한 방법들로 실시되거나 수행될 수 있다. 본 발명의 다양한 양상들은 임의 유형의 네트워크, 클러스터, 또는 구성과 관련하여 구현될 수 있다. 네트워크 구현에 대한 제한들은 존재하지 않는다.
따라서, 상기 설명 및 도면들은 단지 일례일 뿐이다.
또한, 여기에서 사용되는 표현 및 전문 용어는 설명을 위한 것이고, 제한하는 것으로 간주되어서는 안된다. 본 명세서에서, "포함하는", "구비하는" 또는 "가진", "함유하는", "수반하는", 및 그 변형들을 사용하는 것은, 추가적인 항목들 뿐만 아니라 이후에 열거되는 항목들 및 그 등가물들을 포괄하기 위한 것이다.

Claims (55)

  1. 제1 가상 머신 상에서 실행되는 애플리케이션 프로그램을 관리하는 방법으로서,
    가용성 모니터(availability monitor)에 의해, 제1 컴퓨터에 의해 호스팅되는 상기 제1 가상 머신 상에서 실행되는 상기 애플리케이션 프로그램을 모니터링하는 단계; 및
    트리거링 이벤트의 발생시에 상기 애플리케이션 프로그램을 제2 가상 머신으로 재배치하는 단계
    를 포함하고,
    상기 제2 가상 머신은 상기 제1 컴퓨터 또는 제2 컴퓨터에 의해 호스팅되는 애플리케이션 프로그램 관리 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 가상 머신들 각각은 컴퓨터 시스템의 추상적 표현(abstract representation)을 포함하는 애플리케이션 프로그램 관리 방법.
  3. 제1항에 있어서, 상기 제1 및 제2 가상 머신들은 상기 제1 컴퓨터에 의해 호스팅되는 애플리케이션 프로그램 관리 방법.
  4. 제1항에 있어서, 상기 제2 가상 머신은 제2 컴퓨터에 의해 호스팅되는 애플리케이션 프로그램 관리 방법.
  5. 제1항에 있어서, 상기 트리거링 이벤트는 상기 애플리케이션 프로그램의 장애(failure)인 애플리케이션 프로그램 관리 방법.
  6. 제1항에 있어서, 상기 트리거링 이벤트는 상기 제1 가상 머신의 성능의 저하인 애플리케이션 프로그램 관리 방법.
  7. 제1항에 있어서, 상기 트리거링 이벤트는 상기 제1 가상 머신의 비가용성(unavailability)인 애플리케이션 프로그램 관리 방법.
  8. 제1항에 있어서, 상기 트리거링 이벤트는 상기 제1 가상 머신에 할당된 제1 컴퓨터 프로세서의 이용의 백분율을 초과하는 애플리케이션 프로그램 관리 방법.
  9. 제1항에 있어서, 상기 트리거링 이벤트는 재배치 정책(relocation policy)에 따르는 애플리케이션 프로그램 관리 방법.
  10. 제1항에 있어서, 상기 애플리케이션 프로그램을 상기 제2 가상 머신으로 재배치하는 단계는 재배치 정책에 따르는 애플리케이션 프로그램 관리 방법.
  11. 제1항에 있어서, 상기 가용성 모니터는 자동화되는 애플리케이션 프로그램 관리 방법.
  12. 제1항에 있어서, 상기 가용성 모니터는 상기 제1 가상 머신에 상주하는 제1 에이전트 및 상기 제2 가상 머신에 상주하는 제2 에이전트를 포함하는 애플리케이션 프로그램 관리 방법.
  13. 제1항에 있어서, 상기 가용성 모니터는 웹 인터페이스를 이용하여 액세스되는 애플리케이션 프로그램 관리 방법.
  14. 제13항에 있어서, 재배치하는 단계는 상기 웹 인터페이스를 이용하여 수행되는 애플리케이션 프로그램 관리 방법.
  15. 제14항에 있어서, 상기 애플리케이션 프로그램을 상기 제2 가상 머신으로 재배치하기 전에 상기 웹 인터페이스를 이용하여 상기 제2 가상 머신을 선택하는 단계를 더 포함하는 애플리케이션 프로그램 관리 방법.
  16. 제13항에 있어서, 상기 웹 인터페이스를 이용하여 상기 트리거링 이벤트를 정의하는 단계를 더 포함하는 애플리케이션 프로그램 관리 방법.
  17. 제1항에 있어서, 상기 가용성 모니터는 상기 제1 및 제2 가상 머신들에 액세스하는 컴퓨터 상에 상주하는 애플리케이션 프로그램 관리 방법.
  18. 제1항에 있어서, 상기 가용성 모니터는 웹-서비스 프로토콜(web-services protocol)을 이용하여 액세스되는 애플리케이션 프로그램 관리 방법.
  19. 제1항에 있어서, 상기 제1 가상 머신 상에서 실행되는 상기 애플리케이션 프로그램을 모니터링하기 전에 재배치 정책을 정의하는 단계를 더 포함하고,
    상기 애플리케이션 프로그램을 모니터링하는 단계는 상기 재배치 정책에 따르고,
    상기 애플리케이션 프로그램을 상기 제2 가상 머신으로 재배치하는 단계는 상기 재배치 정책에 따르는 애플리케이션 프로그램 관리 방법.
  20. 제19항에 있어서, 상기 재배치 정책을 정의하는 단계는 웹 인터페이스를 이용하여 수행되는 애플리케이션 프로그램 관리 방법.
  21. 컴퓨터 시스템으로서,
    상기 컴퓨터 시스템의 제1 컴퓨터 상에서 호스팅되는 제1 가상 머신; 및
    상기 제1 컴퓨터 상에서 호스팅되거나 상기 컴퓨터 시스템의 제2 컴퓨터 상에서 호스팅되는 제2 가상 머신
    을 포함하고,
    상기 제1 가상 머신은 가용성 모니터에 의해 모니터링되는 애플리케이션 프로그램을 실행하고,
    상기 제2 가상 머신은 트리거링 이벤트의 발생시에 상기 제1 가상 머신으로부터 상기 애플리케이션 프로그램을 수신하도록 구성되는 컴퓨터 시스템.
  22. 제21항에 있어서, 상기 제2 가상 머신은 상기 제1 가상 머신으로부터 수신된 상기 애플리케이션 프로그램을 실행하도록 구성되는 컴퓨터 시스템.
  23. 제21항에 있어서, 상기 제1 및 제2 가상 머신들 각각은 상기 컴퓨터 시스템의 추상적 표현을 포함하는 컴퓨터 시스템.
  24. 제21항에 있어서, 상기 가용성 모니터는 자동화되는 컴퓨터 시스템.
  25. 제21항에 있어서, 상기 가용성 모니터는 상기 제1 가상 머신에 상주하는 제1 에이전트 및 상기 제2 가상 머신에 상주하는 제2 에이전트를 포함하는 컴퓨터 시스템.
  26. 제21항에 있어서, 상기 가용성 모니터는 웹 인터페이스를 이용하여 액세스되는 컴퓨터 시스템.
  27. 제26항에 있어서, 상기 웹 인터페이스는 상기 애플리케이션 프로그램을 상기 제1 가상 머신으로부터 상기 제2 가상 머신으로 재배치하는 데 이용되는 컴퓨터 시스템.
  28. 제26항에 있어서, 상기 웹 인터페이스는 상기 제1 가상 머신으로부터 상기 애플리케이션 프로그램을 수신하도록 상기 제2 가상 머신을 구성하는 데 이용되는 컴퓨터 시스템.
  29. 제26항에 있어서, 상기 웹 인터페이스는 상기 트리거링 이벤트를 정의하는 데 이용되는 컴퓨터 시스템.
  30. 제21항에 있어서, 상기 가용성 모니터는 상기 제1 및 제2 가상 머신들에 액세스하는 컴퓨터 상에 상주하는 컴퓨터 시스템.
  31. 제21항에 있어서, 상기 가용성 모니터는 웹-서비스들의 프로토콜을 이용하여 액세스되는 컴퓨터 시스템.
  32. 제21항에 있어서, 상기 가용성 모니터는 재배치 정책에 따라 상기 제1 가상 머신 상에서 실행되는 상기 애플리케이션 프로그램을 모니터링하는 컴퓨터 시스템.
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
KR1020077010921A 2004-10-15 2005-10-13 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리 KR101164700B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/966,873 US9329905B2 (en) 2004-10-15 2004-10-15 Method and apparatus for configuring, monitoring and/or managing resource groups including a virtual machine
US10/966,873 2004-10-15
PCT/US2005/037087 WO2006044701A1 (en) 2004-10-15 2005-10-13 Configuring, monitoring and/or managing resource groups including a virtual machine

Publications (2)

Publication Number Publication Date
KR20070062607A KR20070062607A (ko) 2007-06-15
KR101164700B1 true KR101164700B1 (ko) 2012-07-11

Family

ID=35768086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077010921A KR101164700B1 (ko) 2004-10-15 2005-10-13 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리

Country Status (6)

Country Link
US (1) US9329905B2 (ko)
EP (1) EP1810141A1 (ko)
JP (1) JP2008517382A (ko)
KR (1) KR101164700B1 (ko)
CN (1) CN101040262A (ko)
WO (1) WO2006044701A1 (ko)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539063B1 (en) 2003-08-29 2013-09-17 Mcafee, Inc. Method and system for containment of networked application client software by explicit human input
US7840968B1 (en) 2003-12-17 2010-11-23 Mcafee, Inc. Method and system for containment of usage of language interfaces
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
US7783735B1 (en) * 2004-03-22 2010-08-24 Mcafee, Inc. Containment of network communication
US7873955B1 (en) * 2004-09-07 2011-01-18 Mcafee, Inc. Solidifying the executable software set of a computer
US7603552B1 (en) 2005-05-04 2009-10-13 Mcafee, Inc. Piracy prevention using unique module translation
US8347297B2 (en) * 2005-05-20 2013-01-01 International Business Machines Corporation System and method of determining an optimal distribution of source servers in target servers
US7856661B1 (en) 2005-07-14 2010-12-21 Mcafee, Inc. Classification of software on networked systems
US7774446B2 (en) * 2005-12-30 2010-08-10 Microsoft Corporation Discovering, defining, and implementing computer application topologies
US8145737B2 (en) * 2005-12-30 2012-03-27 Microsoft Corporation Implementing computer application topologies on virtual machines
US7757269B1 (en) 2006-02-02 2010-07-13 Mcafee, Inc. Enforcing alignment of approved changes and deployed changes in the software change life-cycle
US8725533B2 (en) * 2006-03-09 2014-05-13 International Business Machines Corporation Policy-driven relocation of electronic healthcare records in a network environment
US7895573B1 (en) 2006-03-27 2011-02-22 Mcafee, Inc. Execution environment file inventory
US7870387B1 (en) * 2006-04-07 2011-01-11 Mcafee, Inc. Program-based authorization
US8352930B1 (en) 2006-04-24 2013-01-08 Mcafee, Inc. Software modification by group to minimize breakage
US8555404B1 (en) 2006-05-18 2013-10-08 Mcafee, Inc. Connectivity-based authorization
US8250572B2 (en) * 2006-08-07 2012-08-21 Oracle International Corporation System and method for providing hardware virtualization in a virtual machine environment
JP4923990B2 (ja) * 2006-12-04 2012-04-25 株式会社日立製作所 フェイルオーバ方法、およびその計算機システム。
US7716517B2 (en) * 2006-12-21 2010-05-11 Telefonaktiebolaget Lm Ericsson (Publ) Distributed platform management for high availability systems
US9424154B2 (en) * 2007-01-10 2016-08-23 Mcafee, Inc. Method of and system for computer system state checks
US8332929B1 (en) 2007-01-10 2012-12-11 Mcafee, Inc. Method and apparatus for process enforced configuration management
JP4853717B2 (ja) * 2007-02-23 2012-01-11 日本電気株式会社 サーバ移行計画作成システム、サーバ移行計画作成方法
US8205207B2 (en) * 2007-03-15 2012-06-19 International Business Machines Corporation Method of automated resource management in a partition migration capable environment
US20080250407A1 (en) * 2007-04-05 2008-10-09 Microsoft Corporation Network group name for virtual machines
US8984108B2 (en) * 2007-05-03 2015-03-17 Telefonaktiebolaget L M Ericsson (Publ) Dynamic CLI mapping for clustered software entities
US8918490B1 (en) * 2007-07-12 2014-12-23 Oracle America Inc. Locality and time based dependency relationships in clusters
US8225315B1 (en) * 2007-07-23 2012-07-17 Oracle America, Inc. Virtual core management
JP5104588B2 (ja) * 2007-10-18 2012-12-19 富士通株式会社 マイグレーションプログラム、および仮想マシン管理装置
US7822841B2 (en) * 2007-10-30 2010-10-26 Modern Grids, Inc. Method and system for hosting multiple, customized computing clusters
US8195931B1 (en) 2007-10-31 2012-06-05 Mcafee, Inc. Application change control
US8719624B2 (en) * 2007-12-26 2014-05-06 Nec Corporation Redundant configuration management system and method
US8515075B1 (en) 2008-01-31 2013-08-20 Mcafee, Inc. Method of and system for malicious software detection using critical address space protection
JP5035011B2 (ja) * 2008-02-22 2012-09-26 日本電気株式会社 仮想サーバ管理装置および仮想サーバ管理方法
JP5211766B2 (ja) * 2008-03-10 2013-06-12 富士通株式会社 資源割り当て装置及びプログラム
US20090240930A1 (en) * 2008-03-24 2009-09-24 International Business Machines Corporation Executing An Application On A Parallel Computer
US20090249329A1 (en) * 2008-03-25 2009-10-01 Sambit Kumar Dash Limited service life through virtualized service images
US8336094B2 (en) * 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
US8615502B2 (en) 2008-04-18 2013-12-24 Mcafee, Inc. Method of and system for reverse mapping vnode pointers
US20090265707A1 (en) * 2008-04-21 2009-10-22 Microsoft Corporation Optimizing application performance on virtual machines automatically with end-user preferences
US9086924B2 (en) * 2008-04-24 2015-07-21 International Business Machines Corporation Executing a distributed java application on a plurality of compute nodes
US8185901B2 (en) 2008-04-24 2012-05-22 International Business Machines Corporation Parsing an application to find serial and parallel data segments to minimize migration overhead between serial and parallel compute nodes
US8281311B2 (en) * 2008-04-24 2012-10-02 International Business Machines Corporation Executing a distributed software application on a plurality of compute nodes according to a compilation history
US8161483B2 (en) 2008-04-24 2012-04-17 International Business Machines Corporation Configuring a parallel computer based on an interleave rate of an application containing serial and parallel segments
US8516494B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Executing an application on a parallel computer
US20100042988A1 (en) * 2008-08-14 2010-02-18 Microsoft Corporation Installation Management using Virtual Machines
US10095533B1 (en) * 2008-10-06 2018-10-09 Veritas Technologies Llc Method and apparatus for monitoring and automatically reserving computer resources for operating an application within a computer environment
US8544003B1 (en) 2008-12-11 2013-09-24 Mcafee, Inc. System and method for managing virtual machine configurations
KR101068537B1 (ko) * 2008-12-18 2011-09-28 한국전자통신연구원 가상화 플랫폼을 이용한 가상화 관리 장치 및 그 제어방법
US8032660B2 (en) * 2008-12-30 2011-10-04 Intel Corporation Apparatus and method for managing subscription requests for a network interface component
KR101571880B1 (ko) * 2009-02-02 2015-11-25 삼성전자 주식회사 전자장치와 가상머신 제공장치 및 이를 이용한 가상머신 서비스 이용 방법
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8381284B2 (en) 2009-08-21 2013-02-19 Mcafee, Inc. System and method for enforcing security policies in a virtual environment
US8495629B2 (en) * 2009-09-24 2013-07-23 International Business Machines Corporation Virtual machine relocation system and associated methods
US8381033B2 (en) * 2009-10-30 2013-02-19 International Business Machines Corporation Fault management in virtual computing environments
US9552497B2 (en) * 2009-11-10 2017-01-24 Mcafee, Inc. System and method for preventing data loss using virtual machine wrapped applications
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
KR101651202B1 (ko) * 2009-12-21 2016-08-26 삼성전자주식회사 가상화 장치 및 가상화 장치의 동작 방법
US9959147B2 (en) * 2010-01-13 2018-05-01 Vmware, Inc. Cluster configuration through host ranking
US8799418B2 (en) * 2010-01-13 2014-08-05 Vmware, Inc. Cluster configuration
US8429449B2 (en) 2010-03-01 2013-04-23 International Business Machines Corporation Optimized placement of virtual machines in a network environment
US8478878B2 (en) 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
US8938800B2 (en) 2010-07-28 2015-01-20 Mcafee, Inc. System and method for network level protection against malicious software
US8925101B2 (en) 2010-07-28 2014-12-30 Mcafee, Inc. System and method for local protection against malicious software
US9009384B2 (en) 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8549003B1 (en) 2010-09-12 2013-10-01 Mcafee, Inc. System and method for clustering host inventories
US8650564B2 (en) * 2010-10-19 2014-02-11 Vmware, Inc. Method and system for synchronizing fault-tolerant virtual machines and adjusting CPU resource limit based on execution latency
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8296267B2 (en) 2010-10-20 2012-10-23 Microsoft Corporation Upgrade of highly available farm server groups
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US9075993B2 (en) 2011-01-24 2015-07-07 Mcafee, Inc. System and method for selectively grouping and managing program files
US9112830B2 (en) 2011-02-23 2015-08-18 Mcafee, Inc. System and method for interlocking a host and a gateway
US9542215B2 (en) 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
WO2012118849A1 (en) * 2011-02-28 2012-09-07 V3 Systems, Inc. Migration of virtual machine pool
CN102916995B (zh) * 2011-08-05 2017-12-19 南京中兴新软件有限责任公司 应用托管方法及系统
US9594881B2 (en) 2011-09-09 2017-03-14 Mcafee, Inc. System and method for passive threat detection using virtual memory inspection
US9626700B1 (en) * 2011-09-29 2017-04-18 Amazon Technologies, Inc. Aggregation of operational data for merchandizing of network accessible services
US8776043B1 (en) 2011-09-29 2014-07-08 Amazon Technologies, Inc. Service image notifications
US9530156B2 (en) 2011-09-29 2016-12-27 Amazon Technologies, Inc. Customizable uniform control user interface for hosted service images
US10147123B2 (en) 2011-09-29 2018-12-04 Amazon Technologies, Inc. Electronic marketplace for hosted service images
US8694738B2 (en) 2011-10-11 2014-04-08 Mcafee, Inc. System and method for critical address space protection in a hypervisor environment
US9069586B2 (en) 2011-10-13 2015-06-30 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8973144B2 (en) 2011-10-13 2015-03-03 Mcafee, Inc. System and method for kernel rootkit protection in a hypervisor environment
US8800024B2 (en) 2011-10-17 2014-08-05 Mcafee, Inc. System and method for host-initiated firewall discovery in a network environment
US8713668B2 (en) 2011-10-17 2014-04-29 Mcafee, Inc. System and method for redirected firewall discovery in a network environment
US9229758B2 (en) * 2011-10-28 2016-01-05 International Business Machines Corporation Passive monitoring of virtual systems using extensible indexing
JP5408230B2 (ja) * 2011-11-04 2014-02-05 オムロン株式会社 ネットワークシステム、ノード装置群、センサ装置群およびセンサデータ送受信方法
US9519472B2 (en) 2011-11-23 2016-12-13 Red Hat, Inc. Automation of virtual machine installation by splitting an installation into a minimal installation and customization
KR101408037B1 (ko) * 2012-01-13 2014-06-17 주식회사 케이티 클라우드 시스템에서의 가상 머신 통합 모니터링 장치 및 방법
US10445121B2 (en) * 2012-02-23 2019-10-15 Red Hat Inc. Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
CN103309721A (zh) * 2012-03-08 2013-09-18 鸿富锦精密工业(深圳)有限公司 虚拟机监视器管理系统及方法
JP6010975B2 (ja) * 2012-03-30 2016-10-19 日本電気株式会社 ジョブ管理装置、ジョブ管理方法、及びプログラム
US8739272B1 (en) 2012-04-02 2014-05-27 Mcafee, Inc. System and method for interlocking a host and a gateway
US9077665B1 (en) * 2012-05-24 2015-07-07 Scale Computing, Inc. Transferring virtual machines and resource localization in a distributed fault-tolerant system
WO2014033882A1 (ja) * 2012-08-30 2014-03-06 富士通株式会社 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体
GB2506195A (en) * 2012-09-25 2014-03-26 Ibm Managing a virtual computer resource
US20140143264A1 (en) * 2012-11-20 2014-05-22 Kaseya International Limited Policy event driven remote desktop recording across a data network
US8973146B2 (en) 2012-12-27 2015-03-03 Mcafee, Inc. Herd based scan avoidance system in a network environment
KR101540631B1 (ko) * 2012-12-28 2015-07-30 삼성에스디에스 주식회사 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체
US9053026B2 (en) * 2013-02-05 2015-06-09 International Business Machines Corporation Intelligently responding to hardware failures so as to optimize system performance
US10157073B2 (en) * 2013-05-29 2018-12-18 Nec Corporation Virtual-machine control device, virtual-machine control method, computer-readable recording medium recording program for virtual-machine control method, and data center
US9235802B1 (en) * 2013-06-27 2016-01-12 Emc Corporation Automated defect and optimization discovery
US9870268B2 (en) 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US9313091B1 (en) 2013-09-26 2016-04-12 Emc Corporation Analytics platform for automated diagnosis, remediation, and proactive supportability
US9274874B1 (en) 2013-09-30 2016-03-01 Emc Corporation Automated defect diagnosis from machine diagnostic data
US9471594B1 (en) 2013-09-30 2016-10-18 Emc Corporation Defect remediation within a system
CN105580023B (zh) 2013-10-24 2019-08-16 迈克菲股份有限公司 网络环境中的代理辅助的恶意应用阻止
US9753784B2 (en) 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
US9519513B2 (en) * 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US10097618B2 (en) 2014-01-15 2018-10-09 Snu R&Db Foundation Cluster system and communication method in cluster system
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
US10291745B2 (en) * 2014-03-28 2019-05-14 Microsoft Technology Licensing, Llc Cross-client integration of groups
US9727439B2 (en) 2014-05-28 2017-08-08 Vmware, Inc. Tracking application deployment errors via cloud logs
US9652211B2 (en) 2014-06-26 2017-05-16 Vmware, Inc. Policy management of deployment plans
US9712604B2 (en) 2014-05-30 2017-07-18 Vmware, Inc. Customized configuration of cloud-based applications prior to deployment
US9639691B2 (en) 2014-06-26 2017-05-02 Vmware, Inc. Dynamic database and API-accessible credentials data store
US11228637B2 (en) 2014-06-26 2022-01-18 Vmware, Inc. Cloud computing abstraction layer for integrating mobile platforms
US20150378763A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Methods and apparatus to manage monitoring agents
KR101649606B1 (ko) * 2014-12-12 2016-08-19 국민대학교산학협력단 가상화 운영체제 성능 분석 방법, 이를 수행하는 가상화 운영체제 성능 분석 장치 및 이를 저장하는 기록매체
CN106330991B (zh) * 2015-06-17 2019-06-21 先智云端数据股份有限公司 具有轻量级容器节点的储存系统
US10613886B2 (en) * 2015-06-30 2020-04-07 Vmware, Inc. Protecting virtual computing instances
US10732867B1 (en) * 2017-07-21 2020-08-04 EMC IP Holding Company LLC Best practice system and method
US11416563B1 (en) 2017-10-20 2022-08-16 Amazon Technologies, Inc. Query language for selecting and addressing resources
US11296960B2 (en) * 2018-03-08 2022-04-05 Nicira, Inc. Monitoring distributed applications
US11368407B2 (en) * 2018-05-29 2022-06-21 Amazon Technologies, Inc. Failover management using availability groups
US10846070B2 (en) 2018-07-05 2020-11-24 At&T Intellectual Property I, L.P. Facilitating cloud native edge computing via behavioral intelligence
US11340931B2 (en) 2019-07-23 2022-05-24 Vmware, Inc. Recommendation generation based on selection of selectable elements of visual representation
US10911335B1 (en) 2019-07-23 2021-02-02 Vmware, Inc. Anomaly detection on groups of flows
US11349876B2 (en) 2019-07-23 2022-05-31 Vmware, Inc. Security policy recommendation generation
US11188570B2 (en) 2019-07-23 2021-11-30 Vmware, Inc. Using keys to aggregate flow attributes at host
US11398987B2 (en) 2019-07-23 2022-07-26 Vmware, Inc. Host-based flow aggregation
US11436075B2 (en) 2019-07-23 2022-09-06 Vmware, Inc. Offloading anomaly detection from server to host
US11176157B2 (en) 2019-07-23 2021-11-16 Vmware, Inc. Using keys to aggregate flows at appliance
US11140090B2 (en) 2019-07-23 2021-10-05 Vmware, Inc. Analyzing flow group attributes using configuration tags
US11288256B2 (en) 2019-07-23 2022-03-29 Vmware, Inc. Dynamically providing keys to host for flow aggregation
US11743135B2 (en) 2019-07-23 2023-08-29 Vmware, Inc. Presenting data regarding grouped flows
US11579913B2 (en) * 2019-12-18 2023-02-14 Vmware, Inc. System and method for optimizing network topology in a virtual computing environment
US11321213B2 (en) 2020-01-16 2022-05-03 Vmware, Inc. Correlation key used to correlate flow and con text data
US11991187B2 (en) 2021-01-22 2024-05-21 VMware LLC Security threat detection based on network flow analysis
US11785032B2 (en) 2021-01-22 2023-10-10 Vmware, Inc. Security threat detection based on network flow analysis
US11997120B2 (en) 2021-07-09 2024-05-28 VMware LLC Detecting threats to datacenter based on analysis of anomalous events
US11831667B2 (en) 2021-07-09 2023-11-28 Vmware, Inc. Identification of time-ordered sets of connections to identify threats to a datacenter
US11792151B2 (en) 2021-10-21 2023-10-17 Vmware, Inc. Detection of threats based on responses to name resolution requests
US12015591B2 (en) 2021-12-06 2024-06-18 VMware LLC Reuse of groups in security policy
JP7318084B1 (ja) * 2022-09-20 2023-07-31 株式会社三井E&S 統括装置及び統括プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2750517B1 (fr) 1996-06-27 1998-08-14 Bull Sa Procede de surveillance d'une pluralite de types d'objets d'une pluralite de noeuds a partir d'un noeud d'administration dans un systeme informatique
US6802062B1 (en) * 1997-04-01 2004-10-05 Hitachi, Ltd. System with virtual machine movable between virtual machine systems and control method
US6260068B1 (en) 1998-06-10 2001-07-10 Compaq Computer Corporation Method and apparatus for migrating resources in a multi-processor computer system
AU1602101A (en) * 1999-11-12 2001-06-06 Zebrazone, Inc. Highly distributed computer server architecture and operating system
US7080159B2 (en) * 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
US7016972B2 (en) * 2001-04-23 2006-03-21 International Business Machines Corporation Method and system for providing and viewing performance analysis of resource groups
US7213246B1 (en) * 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
EP1418501A1 (fr) 2002-11-08 2004-05-12 Dunes Technologies S.A. Méthode d'administration d'applications sur des machines virtuelles
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7552437B2 (en) * 2004-01-14 2009-06-23 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20050160424A1 (en) * 2004-01-21 2005-07-21 International Business Machines Corporation Method and system for grid-enabled virtual machines with distributed management of applications
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7900206B1 (en) * 2004-03-31 2011-03-01 Symantec Operating Corporation Information technology process workflow for data centers
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
US20060085530A1 (en) 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups using web services
US20060085668A1 (en) 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups

Also Published As

Publication number Publication date
KR20070062607A (ko) 2007-06-15
US20060085785A1 (en) 2006-04-20
JP2008517382A (ja) 2008-05-22
US9329905B2 (en) 2016-05-03
EP1810141A1 (en) 2007-07-25
CN101040262A (zh) 2007-09-19
WO2006044701A1 (en) 2006-04-27

Similar Documents

Publication Publication Date Title
KR101164700B1 (ko) 가상 머신을 포함하는 리소스 그룹들의 구성, 모니터링및/또는 관리
US20060085530A1 (en) Method and apparatus for configuring, monitoring and/or managing resource groups using web services
EP1825365A1 (en) Configuring, monitoring and/or managing resource groups
US7296268B2 (en) Dynamic monitor and controller of availability of a load-balancing cluster
US7337473B2 (en) Method and system for network management with adaptive monitoring and discovery of computer systems based on user login
US8260893B1 (en) Method and system for automated management of information technology
US7305461B2 (en) Method and system for network management with backup status gathering
US8032625B2 (en) Method and system for a network management framework with redundant failover methodology
US20030009540A1 (en) Method and system for presentation and specification of distributed multi-customer configuration management within a network management framework
US9264296B2 (en) Continuous upgrading of computers in a load balanced environment
US7590653B2 (en) Automated discovery and inventory of nodes within an autonomic distributed computing system
US7441024B2 (en) Method and apparatus for applying policies
US8205000B2 (en) Network management with platform-independent protocol interface for discovery and monitoring processes
US8171119B2 (en) Program deployment apparatus and method
US20020112051A1 (en) Method and system for network management with redundant monitoring and categorization of endpoints
US20030041167A1 (en) Method and system for managing secure geographic boundary resources within a network management framework
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20030009553A1 (en) Method and system for network management with adaptive queue management
US20130336168A1 (en) Self-organization of a satellite grid
US20020112040A1 (en) Method and system for network management with per-endpoint monitoring based on application life cycle
CN109313577A (zh) 分布式计算网络中的数据平面api
US8588225B1 (en) Physical resource to virtual service network mapping in a template based end-to-end service provisioning
US8204972B2 (en) Management of logical networks for multiple customers within a network management framework
Smith A system for monitoring and management of computational grids
US20020144143A1 (en) Method and system for network management capable of restricting consumption of resources along endpoint-to-endpoint routes throughout a network

Legal Events

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

Payment date: 20160624

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170628

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 8