KR101504882B1 - 하드웨어 장애 완화 - Google Patents

하드웨어 장애 완화 Download PDF

Info

Publication number
KR101504882B1
KR101504882B1 KR1020147002386A KR20147002386A KR101504882B1 KR 101504882 B1 KR101504882 B1 KR 101504882B1 KR 1020147002386 A KR1020147002386 A KR 1020147002386A KR 20147002386 A KR20147002386 A KR 20147002386A KR 101504882 B1 KR101504882 B1 KR 101504882B1
Authority
KR
South Korea
Prior art keywords
agent device
resource allocation
agent
server hardware
action
Prior art date
Application number
KR1020147002386A
Other languages
English (en)
Other versions
KR20140036010A (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 KR20140036010A publication Critical patent/KR20140036010A/ko
Application granted granted Critical
Publication of KR101504882B1 publication Critical patent/KR101504882B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
    • 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
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다양한 실시예들은 자원 할당 장치에 의해 서버 하드웨어의 장애를 검출하는 단계와; 서버 하드웨어를 이용하도록 구성되는 제1 에이전트 장치를 식별하는 단계와; 서버 하드웨어 장애에 응답하여 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계 중 하나 이상을 포함하는 방법 및 관련 네트워크 노드에 관한 것이다. 다양한 실시예들은 서버 하드웨어를 이용하도록 구성되는 제2 에이전트 장치를 식별하는 단계와; 서버 하드웨어 장애에 응답하여 제2 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계 중 하나 이상을 더 포함한다. 다양한 실시예들은 자원 할당 장치에 의해 제2 에이전트 장치로부터 서버 하드웨어의 장애의 표시를 수신하는 단계를 더 포함하고, 제2 에이전트 장치는 제1 에이전트 장치와 다르다.

Description

하드웨어 장애 완화{HARDWARE FAILURE MITIGATION}
본 명세서에서 개시되는 다양한 실시예들은 전반적으로 시스템 신뢰성 및 가용성에 관한 것이다.
가상화 및 클라우드 컴퓨팅과 같은 기술들의 진보는 이전에 전용 및 독립 하드웨어와 관련된 다양한 애플리케이션들을 공유 하드웨어 자원들을 제공하는 머신들로 이동시키는 것을 용이하게 하였다. 이러한 소위 "서버 통합(server consolidation)"은 가용 자원들의 더 충분한 이용, 따라서 미사용 자원들과 관련된 감소된 비용을 가능하게 한다. 예를 들어, 이전에 단지 적게 이용되었던 서버들을 폐기함으로써, 에너지 소비, 바닥 공간 및 기타 서버 비용들을 줄일 수 있다.
그러나, 독립 서버들은 다른 이익들을 제공한다. 예를 들어, 독립 서버들은 하드웨어 장애들의 엄격한 억제를 제공하는데; 예를 들어 애플리케이션과 관련된 하드웨어가 고장나는 경우에, 이것은 단지 그 애플리케이션에만 영향을 미칠 수 있다. 그러나, 서버 통합은 단일 하드웨어 장애가 다수의 애플리케이션에 영향을 미칠 수 있는 가능성을 유발한다. 예를 들어, 4개의 애플리케이션이 CPU를 공유하고 있는 경우에 그리고 그 CPU가 하드웨어 장애를 겪는 경우에, 4개의 애플리케이션 모두가 손상되고 회복되지 못할 수 있다.
다양한 실시예들은 하드웨어 장애의 영향들을 완화하기 위해 서버 자원들을 할당하는 자원 할당 장치에 의해 수행되는 방법에 관련되며, 이 방법은 자원 할당 장치에 의해 서버 하드웨어의 장애를 검출하는 단계와; 서버 하드웨어를 이용하도록 구성되는 제1 에이전트 장치를 식별하는 단계와; 서버 하드웨어 장애에 응답하여 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계 중 하나 이상을 포함한다.
다양한 실시예들은 제1 에이전트 장치 정의를 저장하는 에이전트 장치 정의 저장소와 - 제1 에이전트 장치 정의는 제1 에이전트 장치 및 관련된 서버 하드웨어 자원을 식별함 -; 서버 하드웨어 자원의 장애를 검출하도록 구성되는 하드웨어 장애 검출기와; 에이전트 장치 정의에 기초하여, 제1 에이전트 장치를 서버 하드웨어 자원을 이용하도록 구성되는 에이전트 장치인 것으로 식별하고, 서버 하드웨어 장애에 응답하여 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하도록 구성되는 에이전트 장치 보호 모듈 중 하나 이상의 포함하는 자원 할당 장치와 관련된다.
다양한 실시예들은 하드웨어 장애의 영향들을 완화하기 위한 명령어들이 인코딩된 유형의 비일시적 머신 판독 가능 저장 매체와 관련되며, 이 유형의 비일시적 머신 판독 가능 저장 매체는 자원 할당 장치에 의해 서버 하드웨어의 장애를 검출하기 위한 명령어들과; 서버 하드웨어를 이용하도록 구성되는 제1 에이전트 장치를 식별하기 위한 명령어들과; 서버 하드웨어 장애에 응답하여 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하기 위한 명령어들 중 하나 이상을 포함한다.
다양한 실시예들은 하드웨어 장애의 영향들을 완화하기 위해 하이퍼바이저에 의해 수행되는 방법에 관련되며, 이 방법은 하이퍼바이저에 의해, 서버 하드웨어의 장애를 검출하는 단계와; 서버 하드웨어를 이용하도록 구성되는 제1 가상 머신을 식별하는 단계와; 서버 하드웨어 장애에 응답하여 제1 가상 머신의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계 중 하나 이상을 포함한다.
다양한 실시예들은 서버 하드웨어와 관련된 제2 에이전트 장치를 식별하는 단계와; 서버 하드웨어 장애에 응답하여 제2 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계 중 하나 이상을 더 포함한다.
서버 하드웨어의 장애를 검출하는 단계가 자원 할당 장치에 의해 제2 에이전트 장치로부터 서버 하드웨어의 장애의 표시를 수신하는 단계를 포함하고, 제2 에이전트 장치는 제1 에이전트 장치와 다른 다양한 실시예들이 설명된다.
적어도 하나의 액션은 제1 에이전트 장치에 대해 서버 하드웨어 자원들을 할당하도록 제2 자원 할당 장치에 지시하는 단계를 포함하는 다양한 실시예들이 설명된다. 적어도 하나의 액션은 제1 에이전트 장치와 관련된 장치 이미지를 제2 자원 할당 장치로 전송하는 단계를 더 포함하는 다양한 실시예들이 설명된다. 제2 자원 할당 장치에 지시하는 단계가 명령 메시지를 인터넷을 통해 제2 자원 할당 장치로 전송하는 단계를 포함하는 다양한 실시예들이 설명된다.
적어도 하나의 액션은 제1 에이전트 장치의 동작을 중지시키는 단계를 포함하는 다양한 실시예들이 설명된다.
적어도 하나의 액션은 제1 에이전트 장치에 대한 에러를 시뮬레이션하는 단계를 포함하는 다양한 실시예들이 설명된다. 제1 에이전트 장치에 대한 에러를 시뮬레이션하는 단계는 인터넷을 통해 에러 메시지를 에이전트 장치와 관련된 장치로 전송하는 단계를 포함하는 다양한 실시예들이 설명된다.
다양한 실시예들을 더 잘 이해하기 위해, 첨부 도면들을 참조한다.
도 1a는 공유 하드웨어 자원들을 제공하기 위한 예시적인 시스템을 도시한다.
도 1b는 도 1a의 일부 컴포넌트들에 대한 대안적인 배열을 도시한다.
도 1c는 도 1a의 일부 컴포넌트들에 대한 다른 대안적인 배열을 도시한다.
도 2는 하드웨어 장애로부터 에이전트 장치들을 보호하기 위한 예시적인 자원 할당 장치를 도시한다.
도 3은 다수의 에이전트 장치 정의를 저장하기 위한 예시적인 데이터 배열을 도시한다.
도 4는 하드웨어 장애로부터 에이전트 장치들을 보호하기 위한 예시적인 방법을 도시한다.
이해를 용이하게 하기 위해, 동일한 참조 번호들이 실질적으로 동일하거나 유사한 구조 및/또는 실질적으로 동일하거나 유사한 기능을 가진 요소들을 지시하는 데 사용되었다.
전술한 것을 고려하여, 하드웨어 자원들을 공유하는 에이전트 장치들을 그러한 자원들의 장애로부터 보호하는 방법을 제공하는 것이 바람직할 것이다. 특히, 에이전트 장치들이 장애에 의해 영향을 받을 가능성을 최소화하면서 그러한 에이전트 장치들의 계속된 동작을 가능하게 하는 것이 바람직할 것이다. 이제, 도면들을 참조하여, 다양한 실시예들의 광범위한 양태들이 개시된다.
도 1a는 공유 하드웨어 자원들을 제공하기 위한 예시적인 시스템(100a)을 도시한다. 예시적인 시스템은 다수의 클라이언트 장치(110a-c), 네트워크(120), 자원 할당 장치들(130a-b) 및 다수의 에이전트 장치(140a-d)를 포함할 수 있다. 자원 할당 장치들(130a-b) 및 에이전트 장치들(140a-d)은 하나 이상의 클라우드 컴퓨팅 기반구조 사이에 상주할 수 있다.
클라이언트 장치들(110a-c)은 각각 네트워크(120)와 같은 네트워크와 통신할 수 있는 임의의 장치를 포함할 수 있다. 여기서는 3개의 장치가 도시되지만, 예시적인 시스템(100a)은 더 적거나 많은 장치를 포함할 수 있다. 추가적으로, 예시적인 시스템(100a)에 참여하는 클라이언트 장치들의 수는 동작 동안 변할 수 있다. 예를 들어, 클라이언트 장치(110a)는 예시적인 시스템(100a)에 참여하는 것을 중단할 수 있고/있거나, 다른 2개의 클라이언트 장치(도시되지 않음)가 유사한 참여를 시작할 수 있다.
각각의 클라이언트 장치(110a-c)는 개인용 또는 랩탑 컴퓨터, 단말기, 서버, 태블릿, 무선 이메일 장치, 셀 폰, 스마트폰, 텔레비전 셋톱 박스, 또는 네트워크(120)를 통해 다른 장치들과 통신할 수 있는 임의의 다른 장치일 수 있다. 각각의 클라이언트 장치(110a-c)는 상이한 이유들로 인해 예시적인 시스템(100a)에 참여할 수 있다. 예를 들어, 클라이언트 장치(110a)는 씬 클라이언트(thin client)일 수 있으며, 클라이언트 장치(110a)의 정상 동작과 관련된 대부분의 또는 모든 처리를 수행하기 위해 예시적인 시스템 내의 다른 자원들에 의존할 수 있다. 다른 예로서, 클라이언트 장치(110b)는 대부분의 작업들을 독립적으로 수행할 수 있는 개인용 컴퓨터일 수 있으며, 예를 들어 큰 음악 또는 전자 서적 모음과 같은 데이터를 저장하고 검색하기 위해 예시적인 시스템(100a) 내의 다른 자원들에 의존할 수 있다. 또 다른 예로서, 클라이언트 장치(110c)는 다른 장치들(도시되지 않음)로부터 요청들을 수신하고 응답하는 서버일 수 있다. 클라이언트 장치(110c)는 그러한 요청들이 도달하는 레이트가 클라이언트 장치(110c)에 대해 너무 높아서 소정 한도의 효율, 응답 시간 또는 서버 부하를 평가하기 위한 다른 기준 내에서 처리할 수 없을 때 예시적인 시스템(100a) 내의 다른 자원들에 의존하여 그러한 요청들 중 일부를 처리할 수 있다.
네트워크(120)는 예시적인 시스템(100a)의 다른 장치들 사이의 통신을 제공하도록 적응되는 장치 또는 장치들의 그룹일 수 있다. 따라서, 네트워크(120)는 패킷들을 적당한 목적지들로 전달하기 위한 다수의 라우터 및/또는 스위치를 포함할 수 있다. 다양한 실시예들에서, 네트워크(120)는 하나 이상의 2G, 3G 및/또는 4G 시스템 및/또는 다른 무선 시스템들을 포함할 수 있다. 추가적으로, 다양한 실시예들에서, 네트워크(120)는 인터넷 및/또는 하나 이상의 근거리 네트워크(LAN)와 같은 유선 네트워크들을 포함할 수 있다.
자원 할당 장치들(130a-b)은 각각 에이전트 장치들(140a-d)을 관리하는 장치일 수 있다. 예를 들어, 자원 할당 장치(130a)는 에이전트 장치들(140a-b)을 관리할 수 있으며, 자원 할당 장치(130b)는 에이전트 장치들(140c-d)을 관리할 수 있다. 그러한 에이전트 장치들(140a-d)을 관리함에 있어서, 자원 할당 장치들(130a-b)은 각각의 에이전트 장치(140a-d)와 관련하여 공유 하드웨어 자원들을 할당 및/또는 실행할 수 있다. 예를 들어, 자원 할당 장치(130a)는 에이전트 장치 1(140a)이 제1 CPU 상에서 처리 시간의 20%를 사용할 수 있는 반면에 에이전트 장치 M(140b)이 동일 CPU 상에서 처리 시간의 10%를 사용할 수 있는 것을 보증할 수 있다. 따라서, 다양한 실시예들에서, 자원 할당 장치들(130a-b)은 각각 하이퍼바이저를 포함할 수 있다. 자원 할당 장치들(130a-b)은 예를 들어 요청 및 응답 메시지 라우팅, 자원 예약, 부하 균형화, 사용 계측 및/또는 충전과 같은 다수의 추가적인 기능들을 수행할 수 있다. 예시적인 시스템(100a)은 2개의 자원 할당 장치(130a-b)를 포함하지만, 다양한 실시예들은 더 적거나 많은 자원 할당 장치(도시되지 않음)를 포함할 수 있다는 점에 유의한다.
에이전트 장치들(140a-d) 각각은 클라이언트 장치들(110a-c) 중 하나 이상과 관련하여 동작하도록 구성된 장치들일 수 있다. 각각의 에이전트 장치(140a-d)는 하나 이상의 프로세서, 메모리, 저장소 및/또는 네트워크 인터페이스들과 같은 하드웨어 자원들을 포함할 수 있다. 다양한 실시예들에서, 에이전트 장치들(140a-d)은 그러한 하드웨어 자원들을 다른 에이전트 장치들(140a-d) 및/또는 자원 할당 장치들(130a-b)과 공유할 수 있다. 예를 들어, 에이전트 장치 1(140a)은 자원 할당 장치(130a) 및 에이전트 장치 M(140b)과 CPU를 공유할 수 있다. 그러한 하드웨어 자원들은 하나 이상의 물리 서버(도시되지 않음) 사이에 배치될 수 있다. 다양한 실시예들에서, 에이전트 장치들(140a-d) 중 하나 이상은 가상 머신을 포함할 수 있다.
일부 실시예들에 따르면, 자원 할당 장치들(130a-d)은 이들이 관리하는 에이전트 장치들(140a-d)과 동일한 물리 서버들 상에 함께 상주할 수 있다. 예를 들어, 자원 할당 장치(130a) 및 에이전트 장치들(140a-b)은 단일 물리 서버(150a) 상에 함께 상주할 수 있다. 그러한 실시예들에서, 자원 할당 장치(130a)는 하이퍼바이저를 포함할 수 있는 반면, 에이전트 장치들(140a-b) 각각은 가상 장치를 포함할 수 있으며, 이들 모두는 단일 물리 서버 상에서 실행될 수 있다. 또한, 자원 할당 장치(130b) 및 에이전트 장치들(140c-d)은 다른 물리 서버(160a) 상에 함께 상주할 수 있다. 그러나, 본 명세서에서 설명되는 방법들은 다양한 대안 구성들에 적용될 수 있다는 것이 명백해야 한다. 예를 들어, 도 1b에 도시된 바와 같은 대안 구성(100b)은 자원 할당 장치(130a)가 제1 물리 서버(150b) 상에 상주할 수 있는 반면에 에이전트 장치들(140a-b) 모두가 제2 물리 서버(152b) 상에 상주할 수 있다는 것을 나타낸다. 다른 대안으로서, 도 1c에 도시된 바와 같은 대안 구성(100c)은 자원 할당 장치(130c) 및 에이전트 장치들(140a-b) 각각이 각각의 독립 물리 서버(150c, 152c, 154c) 상에 상주할 수 있다는 것을 나타낸다. 이 분야의 기술자들에게는 다양한 추가적인 배열들이 명백할 수 있다.
도 1a를 다시 참조하면, 자원 할당 장치들(130a-b)은 하드웨어 장애의 검출시에 에이전트 장치들(140a-d)을 사전에 보호하도록 구성될 수 있다. 자원 할당 장치들(130a-b)은 예를 들어 인터럽트의 수신, 하드웨어 장치로부터의 하나 이상의 하트비트 응답 신호의 수신 실패, 하나 이상의 상태 레지스터의 판독, 비응답 하드웨어 장치의 식별 및/또는 하드웨어 장치에 액세스하려고 시도할 때의 에러 표시의 수신과 같은 다양한 방법들에 의해 그러한 하드웨어 장애를 검출할 수 있다. 하드웨어 장애 검출을 위한 다수의 추가적인 방법이 이 분야의 기술자들에게 명백할 것이다.
하드웨어 장애의 검출시, 자원 할당 장치들(130a-b)은 먼저 장애에 의해 잠재적으로 영향을 받을 수 있는 임의의 에이전트 장치들을 식별할 수 있다. 예를 들어, 자원 할당 장치(130a-b)는 어느 에이전트 장치들이 고장난 하드웨어 장치의 적어도 일부를 이용하도록 현재 지정되어 있는지를 결정할 수 있다. 다양한 대안 실시예들에서, 자원 할당 장치에 의해 관리되는 모든 에이전트 장치들(140a-d)은 잠재적으로 영향을 받는 것으로 가정될 수 있다. 잠재적으로 영향을 받는 각각의 에이전트 장치(140a-d)에 대해, 자원 할당 장치(130a-b)는 하드웨어 장애로부터 에이전트 장치(140a-d)를 보호하기 위한 단계들을 취할 수 있는데, 예를 들어 에이전트 장치(140a-d)를 다른 자원 할당 장치(130a-b)로 라이브로 이동시키고, 에이전트 장치(140a-d)의 동작을 중지시키고/시키거나, 에이전트 장치(140a-d)에 대한 하드웨어 에러를 시뮬레이션할 수 있다.
라이브 이동의 경우, 하드웨어 장애를 검출하는 자원 할당 장치(130a-b)는 다른 자원 할당 장치(130a-b)와 통신하여, 하나 이상의 에이전트 장치를 다른 자원 할당 장치(130a-b)로 이동시킬 수 있다. 예를 들어, 하드웨어 에러를 검출하고, 이것이 에이전트 장치 1(140a)에 영향을 미칠 수 있는 것으로 결정할 때, 자원 할당 장치(130a)는 에이전트 장치(140a)를 대신할 새로운 에이전트 장치(도시되지 않음)를 인스턴스화하도록 자원 할당 장치(130b)에 지시할 수 있다. 추가적으로, 자원 할당 장치(130a)는 장치 이미지를 자원 할당 장치(130b)로 전송할 수 있으며, 따라서 현재 유지되고 있는 에이전트 장치 1(140a)과 동일한 프로세서 상태, 메모리 내용들 및/또는 기타 상태를 갖는 새로운 에이전트 장치가 생성될 수 있고, 따라서 새로운 하드웨어를 사용하도록 에이전트 장치(140a)를 이동시키는 영향들을 최소화할 수 있다.
동작을 중지시키거나 에러를 시뮬레이션하는 경우에, 자원 할당 장치(130a-b)는 에이전트 장치(140a-d)를 에러로부터 격리하기 위한 추가적인 액션을 취하도록 소정의 다른 엔티티에 지시할 수 있다. 예를 들어, 자원 할당 장치(130a)는 하드웨어 장애를 검출하고, 이에 응답하여 (클라이언트 장치(110a)가 에이전트 장치 1(140a)과 관련된 것으로 가정하여) 이를 알리는 메시지를 클라이언트 장치(110a)로 전송함으로써 에이전트 장치 1(140a)의 에러를 시뮬레이션할 수 있다. 이어서, 클라이언트 장치(110a)는 예를 들어 에이전트 장치 M+1(140c)과 같은 중복 에이전트 장치로 요청들을 지향시키는 것과 같이 에러를 처리하기 위해 다른 기술들에 의존할 수 있다.
다른 예에서, 자원 할당 장치(130a)는 하드웨어 장애를 검출하고, 에이전트 장치 M(140b)이 잠재적으로 영향을 받을 수 있는 것으로 결정할 수 있다. 이에 응답하여, 자원 할당 장치(130a)는 에이전트 장치 M(140b)의 동작을 중지시킬 수 있다. 이후, 예를 들어 클라이언트 장치(110c) 또는 에이전트 장치 M+N(140d)과 같은 다른 장치는 에이전트 장치 M(140b)과 통신하려고 시도할 수 있으며, 어떠한 응답도 수신하지 못할 수 있다. 이어서, 이 다른 장치는 비응답 에이전트 장치(140b)를 처리하기 위한 단계들을 수행할 수 있다. 따라서, 이러한 방법들을 이용함으로써, 자원 할당 장치(130a)는 에이전트 장치가 하드웨어 에러에 의해 실제로 영향을 받기 전에 다른 장치들의 에러 처리 특징들을 활성화할 수 있다.
도 2는 하드웨어 장애로부터 에이전트 장치들을 보호하기 위한 예시적인 자원 할당 장치(200)를 도시한다. 자원 할당 장치(200)는 시스템(100a)의 자원 할당 장치들(130a-b) 중 어느 하나 또는 양자에 응답할 수 있다. 자원 할당 장치(200)는 네트워크 인터페이스(210), 에이전트 장치 관리기(220), 에이전트 장치 정의 저장소(230), 에이전트 장치 인터페이스(240), 하드웨어 장애 검출기(250) 및 에이전트 장치 보호 모듈(260)을 포함할 수 있다.
네트워크 인터페이스(210)는 하드웨어, 및/또는 적어도 하나의 다른 장치와 통신하도록 구성되는 머신 판독 가능 저장 매체 상에 인코딩된 실행 가능 명령어들을 포함하는 인터페이스일 수 있다. 예를 들어, 네트워크 인터페이스(210)는 클라이언트 장치, 에이전트 장치들 및/또는 다른 자원 할당 장치들과 통신할 수 있다. 따라서, 네트워크 인터페이스(210)는 인터넷과 같은 네트워크를 통해 통신하기 위해 하나 이상의 이더넷 인터페이스를 포함할 수 있다. 추가적으로, 네트워크 인터페이스(210)는 상이한 어드레스들을 갖고 상이한 프로토콜들을 갖고/갖거나 상이한 물리 서버들에 속하는 다수의 인터페이스를 포함할 수 있다. 추가적으로, 자원 할당 장치(200)는 네트워크 인터페이스(210) 또는 그의 부분들을 예를 들어 에이전트 장치들과 같은 다른 엔티티들과 공유할 수 있다.
에이전트 장치 관리기(220)는 하드웨어, 및/또는 에이전트 장치들을 설정하고 관리하도록 구성되는 머신 판독 가능 저장 매체 상의 실행 가능 명령어들을 포함할 수 있다. 다양한 실시예들에서, 에이전트 장치 관리기(220)는 다양한 에이전트 장치들의 설정을 위한 요청들을 수신한 후에 에이전트 장치 정의를 생성함으로써 적어도 부분적으로 요청된 에이전트 장치들을 설정할 수 있다. 이를 행함에 있어서, 에이전트 장치 관리기(220)는 요청, 클라이언트 장치, 가입자 특권들, 가용 하드웨어 자원들 및/또는 다양한 다른 고려 사항들에 기초하여 하드웨어 자원들의 일부를 각각의 새로운 에이전트 장치에 할당할 수 있다. 이어서, 에이전트 장치 관리기(220)는 이 정의를 에이전트 장치 정의 저장소(230)에 저장할 수 있다. 에이전트 장치 관리기(220)는 예를 들어 에이전트 장치들과 네트워크 인터페이스(210)를 통해 액세스 가능한 다른 장치들 간의 메시지 라우팅 및/또는 할당된 하드웨어 자원들의 실행과 같은 다양한 추가적인 기능들을 수행할 수 있다.
에이전트 장치 정의 저장소(230)는 다양한 에이전트 장치 정의들을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 에이전트 장치 정의 저장소(230)는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체들, 광학 저장 매체, 플래시 메모리 장치들 및/또는 유사한 저장 매체들과 같은 머신 판독 가능 저장 매체를 포함할 수 있다. 에이전트 장치 정의 저장소(230)의 내용들은 도 3과 관련하여 아래에 더 상세히 설명될 것이다.
에이전트 장치 인터페이스(240)는 하드웨어, 및/또는 적어도 하나의 에이전트 장치와 통신하도록 구성되는 머신 판독 가능 저장 매체 상에 인코딩된 실행 가능 명령어들을 포함하는 인터페이스일 수 있다. 다양한 실시예들에서, 에이전트 장치 인터페이스(240)는 운영 체제 또는 다른 환경에 의해 제공되는 하나 이상의 통신 방법을 포함할 수 있다. 예를 들어, 에이전트 장치 인터페이스(240)는 소켓들, 파이프들, 메시지 큐들 및/또는 공유 메모리를 포함할 수 있다. 대안으로서 또는 추가로, 에이전트 장치 인터페이스(240)는 시스템 버스, SCSI, SATA, PATA, USB, IEEE 1394, 및/또는 이더넷 인터페이스와 같은 네트워크 인터페이스 등의 인터페이스들을 포함할 수 있다. 따라서, 다양한 실시예들에서, 에이전트 장치 인터페이스(240)는 네트워크 인터페이스(210)를 포함할 수 있다.
하드웨어 장애 검출기(250)는 하드웨어, 및/또는 자원 할당 장치(200) 및/또는 하나 이상의 에이전트 장치와 관련된 하드웨어의 장애를 검출하도록 구성되는 머신 판독 가능 저장 매체 상의 실행 가능 명령어들을 포함할 수 있다. 예를 들어, 자원 할당 장치(200)와 관련된 하나 이상의 에이전트 장치는 하드웨어 에러를 만날 때 인터럽트를 전송하도록 구성될 수 있다. 하드웨어 장애 검출기(250)는 그러한 인터럽트를 수신하고, 그에 따라 하드웨어 장애가 발생한 것으로 결정할 수 있다. 추가적으로 또는 대안으로서, 하드웨어 장애 검출기(250)는 하드웨어 장치들을 주기적으로 폴링하고/하거나 하드웨어 장치들로부터 하트비트 신호를 수신할 수 있다. 하나 이상의 폴링 응답 및/또는 하트비트 신호의 수신 실패는 하드웨어 장애가 발생했다는 것을 하드웨어 장애 검출기(250)에 알릴 수 있다. 예를 들어 하드웨어 상태 레지스터들을 판독하고, 비응답 하드웨어를 만나고/만나거나, 하드웨어 장치에 대한 액세스의 시도시에 에러를 수신하는 것과 같이 하드웨어 장애들을 검출하는 다수의 추가적인 또는 대안적인 방법들이 이 분야의 기술자들에게 명백할 것이다. 하드웨어 장애의 검출시, 하드웨어 장애 검출기(250)는 고장난 장치를 에이전트 장치 보호 모듈(260)에 보고할 수 있다.
에이전트 장치 보호 모듈(260)은 하드웨어, 및/또는 하드웨어 장애에 의해 영향받을 수 있는 에이전트 장치들을 식별한 후에 그러한 영향을 피하기 위한 단계들을 수행하도록 구성되는 머신 판독 가능 저장 매체 상의 실행 가능 명령어들을 포함할 수 있다. 특정 하드웨어 장치가 고장났거나 장애를 겪고 있다는 표시를 하드웨어 장애 검출기(250)로부터 수신할 때, 에이전트 장치 보호 모듈(260)은 고장난 하드웨어 장치의 일부를 할당받거나 달리 영향을 받을 수 있는 임의의 에이전트 장치들을 식별할 수 있다. 예를 들어, 에이전트 장치 보호 모듈(260)은 에이전트 장치 정의 저장소를 통해 반복하여, 고장난 하드웨어와 관련된 임의의 에이전트 장치를 식별할 수 있다. 대안으로서, 에이전트 장치 보호 모듈은 단순히, 자원 할당 모듈(200)과 관련된 임의의 에이전트 장치가 잠재적으로 영향 받을 수 있는 것으로 가정할 수 있다.
잠재적으로 영향 받는 에이전트 장치들을 식별한 후, 에이전트 장치 보호 모듈(260)은 각각의 식별된 에이전트 장치에 대해 소정의 보호 액션을 취할 수 있다. 에이전트 장치 보호 모듈(260)은 각각의 식별된 장치에 대해 동일 액션을 취할 수 있거나, 상이한 에이전트 장치들에 대해 상이한 보호 액션이 적합한 것으로 결정할 수 있다. 다양한 실시예들에서, 에이전트 장치 보호 모듈(260)은 에이전트 장치에 대한 자원들을 재할당할 수 있으며, 따라서 에이전트 장치는 고장난 하드웨어를 더 이상 사용하지 않는다. 대안으로서 또는 추가로, 에이전트 장치 보호 모듈은 에이전트 장치들의 동작을 중지시키고/시키거나, 에이전트 장치에 대해 에러를 시뮬레이션할 수 있다. 이를 행함에 있어서, 에이전트 장치 보호 모듈(260)은 하드웨어 장애가 에이전트 장치에 실제로 영향을 미치기 전에 치료 액션을 취하도록 다른 엔티티들(도시되지 않음)에 프롬프트(prompt)할 수 있다.
다른 대안 또는 추가적인 보호 액션으로서, 에이전트 장치 보호 모듈(260)은 하나 이상의 에이전트 장치를 다른 자원 할당 장치로 라이브로 이동시킬 수 있다. 예를 들어, 에이전트 장치 보호 모듈(260)은 하드웨어가 교체 에이전트 장치에 대해 할당되어야 한다는 표시를 다른 자원 할당 장치로 전송할 수 있다. 이를 행함에 있어서, 에이전트 장치 보호 모듈(260)은 하드웨어 요구들과 같은 에이전트 장치를 정의하는 정보를 전송할 수 있다. 에이전트 장치 보호 모듈(260)은 이동되는 에이전트 장치의 상황을 교체 에이전트 장치에 복사하기 위해 장치 이미지도 전송할 수 있다. 다양한 실시예들에서, 에이전트 장치 보호 모듈(260)은 하드웨어 장애의 표시의 수신시에 또는 에이전트 장치의 정상 동작 동안 주기적으로 그러한 장치 이미지를 생성할 수 있다. 다양한 실시예들에서, 에이전트 장치 보호 모듈은 에이전트 장치 정의 저장소에 저장된 에이전트 장치 정의 또는 그의 일부를 전송할 수 있다. 전송되는 임의의 정보를 이용하여, 다른 자원 할당 장치(도시되지 않음)는 에이전트 장치의 사본을 확보할 수 있고, 따라서 에이전트 장치를 새로운 하드웨어로 이동시킬 수 있다.
도 3은 다수의 에이전트 장치 정의를 저장하기 위한 예시적인 데이터 배열(300)을 도시한다. 데이터 배열(300)은 에이전트 장치 정의 저장소(230)와 같은 데이터베이스 또는 캐시 내의 테이블일 수 있다. 대안으로서, 데이터 배열(300)은 일련의 링크된 리스트들, 어레이 또는 유사한 데이터 구조일 수 있다. 따라서, 데이터 배열(300)은 기초 데이터의 추상화이며, 이러한 데이터의 저장에 적합한 임의의 데이터 구조가 사용될 수 있다.
데이터 배열(300)은 에이전트 장치를 정의하기 위한 다수의 필드를 포함할 수 있다. 예를 들어, 데이터 배열(300)은 에이전트 장치 ID 필드(305), 프로세서 자원 필드(310), 메모리 자원 필드(315) 및 장치 이미지 필드(320)를 포함할 수 있다. 데이터 배열(300)은 예를 들어 추가적인 자원들, 관련된 클라이언트 장치들 및/또는 사용자들, 및/또는 최초로 요청된 자원들과 같은 추가적인 정보를 저장하기 위한 다수의 추가적인 필드를 포함할 수 있다. 에이전트 장치를 정의하는 데 유용한 대안 또는 추가적인 데이터는 이 분야의 기술자들에게 명백할 것이다.
에이전트 장치 ID 필드(305)는 자원 할당 장치에 의해 관리되는 각각의 에이전트 장치에 대한 고유 식별자를 저장할 수 있다. 프로세서 자원 필드(310)는 에이전트 장치가 가용 프로세서들 중 어떤 공유 프로세서들을 이용할 수 있는지에 대한 표시를 저장할 수 있다. 또한, 메모리 자원 필드(315)는 에이전트 장치가 가용 메모리 장치들 중 어떤 공유 메모리 장치들을 이용할 수 있는지에 대한 표시를 저장할 수 있다. 장치 이미지(320)는 에이전트 장치와 관련하여 생성된 최신 장치 이미지를 지정할 수 있다.
일례로서, 정의(330)는 에이전트 장치 0x23이 CPU1 및 CPU2 양자 상에서 처리 시간의 10%를 할당받는다는 것을 지시한다. 추가적으로, 에이전트 장치 0x23은 메모리 뱅크 2 상에서 메모리 어드레스 0xA000000-0xAFFFFFF를 할당받았다. SDA1 상에서 /var/images/035-0004에 저장된 이미지는 에이전트 장치 0x23의 최신 장치 이미지를 저장한다. 정의들(340, 350)은 에이전트 장치 0xA1 및 0xCB 각각에 대한 할당 자원들 및 장치 이미지 위치를 유사하게 정의한다. 데이터 배열(300)은 다수의 추가적인 정의(360)를 포함할 수 있다.
도 4는 하드웨어 장애로부터 에이전트 장치들을 보호하기 위한 예시적인 방법(400)을 도시한다. 방법(400)은 예를 들어 하드웨어 장애 검출기(250) 및/또는 에이전트 장치 보호 모듈(260)과 같은 자원 할당 장치(200)의 컴포넌트들에 의해 수행될 수 있다.
방법(400)은 단계 405에서 시작하고, 단계 410으로 진행하여, 자원 할당 장치(200)가 전술한 임의의 방법에 따라 하드웨어 장애를 검출할 수 있다. 이어서, 단계 415에서, 자원 할당 장치(200)는 분석을 위해 제1 에이전트 장치를 검색할 수 있다. 예를 들어, 자원 할당 장치(200)는 에이전트 장치 정의를 검색할 수 있다. 이어서, 단계 420에서, 자원 할당 장치(200)는 검색된 에이전트 장치가 고장난 하드웨어와 관련되는지를 결정할 수 있다. 그렇지 않은 경우, 방법(400)은 단계 430으로 건너뛸 수 있다. 검색된 에이전트 장치가 고장난 하드웨어와 관련되는 경우, 방법(400)은 단계 425로 진행할 수 있다. 다양한 대안 실시예들에서, 단계 420은 존재하지 않을 수 있으며, 단계 415는 단계 425로 직접 진행할 수 있다. 따라서, 그러한 대안 실시예들에서, 자원 할당 장치(200)는 모든 관련 에이전트 장치들에 대해 단계 425를 수행할 수 있다.
단계 425에서, 자원 할당 장치(200)는 하드웨어 장애로부터 현재 에이전트 장치를 보호하기 위한 하나 이상의 액션을 취할 수 있다. 전술한 바와 같이, 자원 할당 장치(200)는 에이전트 장치들에 상이한 자원들을 할당하거나, 에이전트 장치를 중지시키거나, 에이전트 장치에 대한 에러를 시뮬레이션하거나, 에이전트 장치를 다른 자원 할당 장치로 이동시킬 수 있다. 에이전트 장치를 보호하는 다양한 대안 방법들이 이 분야의 기술자들에게 명백할 수 있다.
단계 430에서, 자원 할당 장치(200)는 하드웨어 에러를 고려하여 처리될 임의의 에이전트 장치가 남았는지를 결정할 수 있다. 그러한 경우, 자원 할당 장치(200)는 다음 에이전트 장치를 검색할 수 있으며, 방법(400)은 단계 420으로 루프 백할 수 있다. 모든 에이전트 장치들이 처리되면, 방법(400)은 단계 430으로부터 진행하여 단계 440에서 종료될 수 있다.
다양한 실시예들이 설명되었으며, 이제 도 1-4를 참조하여 시스템(100a)의 동작의 일례가 설명될 것이다. 이 예의 목적을 위해, 자원 할당 장치(200)는 자원 할당 장치(130a)에 응답할 수 있고, 데이터 배열(300)은 에이전트 장치 정의 저장소(230)의 내용들을 설명할 수 있으며, 방법(400)은 자원 할당 장치(200)의 동작을 설명할 수 있다. 정의(330)는 클라이언트 장치(110a)와 관련될 수 있는 에이전트 장치 1(140a)에 응답할 수 있다. 에이전트 장치 M+1(140c)은 클라이언트 장치와도 관련될 수 있으며, 현재 수동 모드로 동작하는 에이전트 장치 1(140a)의 중복 사본일 수 있다.
단계 410에서, 하드웨어 장애 검출기(250)는 에이전트 장치 0xCB로부터 CPU2가 고장났다는 표시를 수신할 수 있다. 단계 420에서, 에이전트 장치 보호 모듈(260)은 정의(330)에 따라 에이전트 장치 0x23이 CPU2와 관련되며, 따라서 하드웨어 장애에 의해 영향을 받을 가능성이 있는 것으로 결정할 수 있다. 이에 응답하여, 에이전트 장치 보호 모듈(260)은 에이전트 장치 1(140a) 상에서 중대한 에러를 시뮬레이션하기 위해 메시지를 클라이언트 장치(110a)로 전송함으로써 보호 액션을 취할 수 있다. 이어서, 클라이언트 장치(110a)는 중복 에이전트 장치 M+1(140c)을 능동 모드로 배치하고, 임의의 처리 요청들을 그 에이전트 장치(140c)로 재지향시킴으로써 응답할 수 있다.
이어서, 방법(400)은 단계 420으로 루프 백할 수 있으며, 여기서 에이전트 장치 보호 모듈은 정의(340)에 따라 에이전트 장치 0xA1이 CPU2와 관련되지 않은 것으로 결정할 수 있다. 따라서, 자원 할당 장치(200)는 에이전트 장치 0xA1에 대해 어떠한 추가 액션도 취하지 않을 수 있다. 자원 할당 장치(200)가 데이터 배열(300) 내의 모든 정의들을 분석할 때까지 이러한 방식으로 처리가 계속될 수 있다.
위에 따르면, 다양한 실시예들은 자원 할당 장치로 하여금 에이전트 장치들이 하드웨어 장애로부터 영향을 받는 것을 사전에 방지하는 것을 가능하게 한다. 특히, 장애가 보고된 하드웨어와 관련된 에이전트 장치들을 식별함으로써, 자원 할당 장치는 하드웨어 장애가 에이전트 장치에 실제로 영향을 미치기 전에 에이전트 장치를 보호하기 위한 단계들을 수행할 수 있다.
위의 설명으로부터, 본 발명의 다양한 실시예들은 하드웨어 및/또는 소프트웨어로 구현될 수 있다는 것이 명백해야 한다. 더구나, 다양한 실시예들은 머신 판독 가능 저장 매체 상에 저장된 명령어들로서 구현될 수 있으며, 적어도 하나의 프로세서는 명령어들을 판독하고 실행하여, 본 명세서에서 상세히 설명되는 동작들을 수행할 수 있다. 머신 판독 가능 저장 매체는 개인용 또는 랩탑 컴퓨터, 서버 또는 다른 컴퓨팅 장치와 같은 머신에 의해 판독될 수 있는 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함할 수 있다. 따라서, 유형의 비일시적 머신 판독 가능 저장 매체는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체들, 광학 저장 매체, 플래시 메모리 장치들 및/또는 유사한 저장 매체들과 같은 머신 판독 가능 저장 매체를 포함할 수 있다.
이 분야의 기술자들은 본 명세서에서의 임의의 블록도들은 본 발명의 원리들을 구현하는 예시적인 회로의 개념도들을 나타낸다는 것을 알아야 한다. 유사하게, 임의의 흐름 차트들, 흐름도들, 상태 전이도들, 의사 코드 등은, 머신 판독 가능 매체들 내에 실질적으로 표현되고, 따라서 컴퓨터 또는 프로세서가 명시적으로 설명되는지에 여부에 관계없이 그러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 다양한 프로세스들을 나타낸다는 것을 알 것이다.
다양한 실시예들이 그들의 소정의 예시적인 양태들을 구체적으로 참조하여 상세히 설명되었지만, 본 발명은 다른 실시예들이 가능하며, 그의 상세들은 다양한 명백한 사항들에서 변경될 수 있다는 것을 이해해야 한다. 이 분야의 기술자들에게 자명하듯이, 본 발명의 사상 및 범위로부터 벗어나지 않고서 변형들 및 변경들이 실시될 수 있다. 따라서, 위의 개시, 설명 및 도면들은 예시의 목적을 위한 것일 뿐이며, 청구범위에 의해서만 정의되는 본 발명을 어떠한 방식으로도 한정하지 않는다.

Claims (15)

  1. 서버 하드웨어 장애의 영향을 완화하기 위해 서버 자원을 할당하는 자원 할당 장치에 의해 수행되는 방법으로서,
    상기 자원 할당 장치에 의해, 서버 하드웨어의 장애를 검출하는 단계(410)와,
    상기 서버 하드웨어를 이용하도록 구성되는 제1 에이전트 장치 - 상기 제1 에이전트 장치는 상이한 서버 하드웨어를 이용하도록 구성될 수 있는 가상 장치를 포함함 - 를 식별하는 단계(415, 420, 435)와,
    상기 서버 하드웨어 장애에 응답하여 그리고 상기 서버 하드웨어 장애에 의해 상기 제1 에이전트 장치가 영향을 받기 전에 상기 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계(425)를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 서버 하드웨어를 이용하도록 구성되는 제2 에이전트 장치를 식별하는 단계(415, 420, 435)와,
    상기 서버 하드웨어 장애에 응답하여 상기 제2 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하는 단계(425)를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    서버 하드웨어의 장애를 검출하는 상기 단계는, 상기 자원 할당 장치에 의해 제2 에이전트 장치로부터 서버 하드웨어의 상기 장애의 표시를 수신하는 단계를 포함하고, 상기 제2 에이전트 장치는 제1 에이전트 장치와 다른
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치에 대해 상이한 서버 하드웨어 자원들을 할당하도록 제2 자원 할당 장치에 지시하는 단계를 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 제2 자원 할당 장치에 지시하는 상기 단계는 명령 메시지를 인터넷을 통해 상기 제2 자원 할당 장치로 전송하는 단계를 포함하는
    방법.
  6. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치의 동작을 중지시키는 단계를 포함하는
    방법.
  7. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치에 대한 에러를 시뮬레이션하는 단계를 포함하는
    방법.
  8. 제 7 항에 있어서,
    상기 제1 에이전트 장치에 대한 에러를 시뮬레이션하는 상기 단계는 인터넷을 통해 에러 메시지를 상기 에이전트 장치와 관련된 장치로 전송하는 단계를 포함하는
    방법.
  9. 자원 할당 장치(200)로서,
    제1 에이전트 장치 정의를 저장하는 에이전트 장치 정의 저장소(230) - 상기 제1 에이전트 장치 정의는 제1 에이전트 장치 및 관련된 서버 하드웨어 자원을 식별하고, 상기 제1 에이전트 장치는 상이한 서버 하드웨어 자원을 이용하도록 구성될 수 있는 가상 장치를 포함함 - 와,
    상기 서버 하드웨어 자원의 장애를 검출하도록 구성되는 하드웨어 장애 검출기(250)와,
    에이전트 장치 보호 모듈(260)을 포함하되,
    상기 에이전트 장치 보호 모듈(260)은,
    상기 에이전트 장치 정의에 기초하여, 상기 제1 에이전트 장치를, 상기 서버 하드웨어 자원을 이용하도록 구성되는 에이전트 장치로서 식별하고,
    상기 서버 하드웨어 장애에 응답하여 그리고 상기 서버 하드웨어 장애에 의해 상기 제1 에이전트 장치가 영향을 받기 전에 상기 제1 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하도록 구성되는
    자원 할당 장치.
  10. 제 9 항에 있어서,
    상기 에이전트 장치 정의 저장소(230)는 제2 에이전트 장치 정의를 저장하고, 상기 제2 에이전트 장치 정의는 제2 에이전트 장치 및 관련된 서버 하드웨어 자원을 식별하고,
    상기 에이전트 장치 보호 모듈(260)은,
    상기 제2 에이전트 장치를 상기 서버 하드웨어 자원을 이용하도록 구성되는 에이전트 장치로서 식별하고,
    상기 서버 하드웨어 장애에 응답하여 상기 제2 에이전트 장치의 재구성을 실행하기 위한 적어도 하나의 액션을 취하도록 더 구성되는
    자원 할당 장치.
  11. 제 9 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치에 대해 상이한 서버 하드웨어 자원을 할당하도록 제2 자원 할당 장치에 지시하는 액션을 포함하는
    자원 할당 장치.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치와 관련된 장치 이미지를 상기 제2 자원 할당 장치로 전송하는 액션을 더 포함하는
    자원 할당 장치.
  13. 제 10 항에 있어서,
    상기 제2 자원 할당 장치에 지시함에 있어서, 상기 에이전트 장치 보호 모듈은 명령 메시지를 인터넷을 통해 상기 제2 자원 할당 장치로 전송하는
    자원 할당 장치.
  14. 제 9 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치의 동작을 중지시키는 액션을 포함하는
    자원 할당 장치.
  15. 제 9 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 액션은 상기 제1 에이전트 장치에 대한 에러를 시뮬레이션하는 액션을 포함하는
    자원 할당 장치.
KR1020147002386A 2011-08-01 2012-06-27 하드웨어 장애 완화 KR101504882B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/195,482 US8856585B2 (en) 2011-08-01 2011-08-01 Hardware failure mitigation
US13/195,482 2011-08-01
PCT/US2012/044283 WO2013019339A1 (en) 2011-08-01 2012-06-27 Hardware failure mitigation

Publications (2)

Publication Number Publication Date
KR20140036010A KR20140036010A (ko) 2014-03-24
KR101504882B1 true KR101504882B1 (ko) 2015-03-20

Family

ID=46548816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002386A KR101504882B1 (ko) 2011-08-01 2012-06-27 하드웨어 장애 완화

Country Status (6)

Country Link
US (1) US8856585B2 (ko)
EP (1) EP2740255A1 (ko)
JP (1) JP2014522052A (ko)
KR (1) KR101504882B1 (ko)
CN (1) CN103718535B (ko)
WO (1) WO2013019339A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
US9198060B2 (en) * 2013-01-30 2015-11-24 Dell Products L.P. Information handling system physical component maintenance through near field communication device interaction
US9569294B2 (en) 2013-01-30 2017-02-14 Dell Products L.P. Information handling system physical component inventory to aid operational management through near field communication device interaction
US9208015B2 (en) * 2013-06-18 2015-12-08 Vmware, Inc. Hypervisor remedial action for a virtual machine in response to an error message from the virtual machine
US9213572B2 (en) 2013-12-02 2015-12-15 Vmware, Inc. Interdependent virtual machine management
US9442792B2 (en) 2014-06-23 2016-09-13 Vmware, Inc. Using stretched storage to optimize disaster recovery
US9489273B2 (en) * 2014-06-23 2016-11-08 Vmware, Inc. Using stretched storage to optimize disaster recovery
US9703651B2 (en) * 2015-06-15 2017-07-11 Vmware, Inc. Providing availability of an agent virtual computing instance during a storage failure
US9760427B2 (en) 2015-09-10 2017-09-12 Cisco Technology, Inc. Method and apparatus for identifying location related hardware failures
US10218387B2 (en) 2017-05-08 2019-02-26 Silicon Laboratories Inc. ECC memory controller supporting secure and non-secure regions
US10360104B2 (en) * 2017-05-08 2019-07-23 Silicon Laboratories Inc. ECC memory controller to detect dangling pointers
US10567233B2 (en) * 2017-06-07 2020-02-18 International Business Machines Corporation Shadow agent projection in multiple places to reduce agent movement over nodes in distributed agent-based simulation
US10949548B2 (en) * 2018-10-18 2021-03-16 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
KR102567541B1 (ko) * 2021-10-12 2023-08-21 스트라토 주식회사 엣지 서비스 인스턴스 배포 장치 및 그 제어방법
WO2024005875A1 (en) * 2022-06-29 2024-01-04 Hewlett Packard Enterprise Development Lp High availability systems having thinly-provisioned secondary servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981089A2 (en) 1998-07-20 2000-02-23 Lucent Technologies Inc. Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
WO2002001347A2 (en) * 2000-06-30 2002-01-03 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for automatic re-assignment of software components of a failed host
US20090006885A1 (en) 2007-06-28 2009-01-01 Pattabhiraman Ramesh V Heartbeat distribution that facilitates recovery in the event of a server failure during a user dialog

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421787B1 (en) * 1998-05-12 2002-07-16 Sun Microsystems, Inc. Highly available cluster message passing facility
JP2001022709A (ja) * 1999-07-13 2001-01-26 Toshiba Corp クラスタシステム及びプログラムを記憶したコンピュータ読み取り可能な記憶媒体
GB2379046B (en) * 2001-08-24 2003-07-30 3Com Corp Storage disk failover and replacement system
JP4119162B2 (ja) * 2002-05-15 2008-07-16 株式会社日立製作所 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
US20060271812A1 (en) * 2005-05-26 2006-11-30 David Horton Systems and methods for providing redundant application servers
US7586946B2 (en) * 2005-10-31 2009-09-08 Hewlett-Packard Development Company, L.P. Method and apparatus for automatically evaluating and allocating resources in a cell based system
JP4609380B2 (ja) * 2006-05-31 2011-01-12 日本電気株式会社 仮想サーバ管理システムおよびその方法ならびに管理サーバ装置
US7434096B2 (en) * 2006-08-11 2008-10-07 Chicago Mercantile Exchange Match server for a financial exchange having fault tolerant operation
CN101350952B (zh) * 2007-07-22 2012-10-03 华为技术有限公司 一种电路域核心网重用方法及通讯***以及相关设备
US8065560B1 (en) * 2009-03-03 2011-11-22 Symantec Corporation Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter
US9130967B2 (en) * 2010-11-17 2015-09-08 Alcatel Lucent Method and system for network element service recovery
US8707083B2 (en) * 2010-12-03 2014-04-22 Lsi Corporation Virtualized cluster communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0981089A2 (en) 1998-07-20 2000-02-23 Lucent Technologies Inc. Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
WO2002001347A2 (en) * 2000-06-30 2002-01-03 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for automatic re-assignment of software components of a failed host
US20090006885A1 (en) 2007-06-28 2009-01-01 Pattabhiraman Ramesh V Heartbeat distribution that facilitates recovery in the event of a server failure during a user dialog

Also Published As

Publication number Publication date
US8856585B2 (en) 2014-10-07
JP2014522052A (ja) 2014-08-28
EP2740255A1 (en) 2014-06-11
CN103718535A (zh) 2014-04-09
KR20140036010A (ko) 2014-03-24
CN103718535B (zh) 2017-04-05
US20130036322A1 (en) 2013-02-07
WO2013019339A1 (en) 2013-02-07

Similar Documents

Publication Publication Date Title
KR101504882B1 (ko) 하드웨어 장애 완화
Yamato et al. Fast and reliable restoration method of virtual resources on OpenStack
US10156986B2 (en) Gang migration of virtual machines using cluster-wide deduplication
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US10243780B2 (en) Dynamic heartbeating mechanism
US8055933B2 (en) Dynamic updating of failover policies for increased application availability
US20180288152A1 (en) Storage dynamic accessibility mechanism method and apparatus
US10120779B1 (en) Debugging of hosted computer programs
CN102355369A (zh) 虚拟化集群***及其处理方法和设备
US11768724B2 (en) Data availability in a constrained deployment of a high-availability system in the presence of pending faults
US10530634B1 (en) Two-channel-based high-availability
WO2015058711A1 (zh) 故障快速检测方法及装置
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
US20190334990A1 (en) Distributed State Machine for High Availability of Non-Volatile Memory in Cluster Based Computing Systems
US10102088B2 (en) Cluster system, server device, cluster system management method, and computer-readable recording medium
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
US10367711B2 (en) Protecting virtual computing instances from network failures
JP2016513309A (ja) 分散コンピューティングシステムのコンピューティングノードにおける障害に起因するエラー伝播の制御
US10454773B2 (en) Virtual machine mobility
US9348672B1 (en) Singleton coordination in an actor-based system
CN112398668B (zh) 一种基于IaaS集群的云平台和节点的切换方法
US8750120B2 (en) Confirmed delivery of bridged unicast frames
CN112637336B (zh) 一种虚拟机高可用实现方法、装置及存储介质
US9753822B1 (en) Automatic non-disruptive connection recovery of a fixed topology fabric in a data storage system
Hamanaka et al. High-reliability, High-availability Cluster System Supporting Cloud Environment

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
LAPS Lapse due to unpaid annual fee