KR101120848B1 - 리소스 뷰에 기초한 리던던트 컨트롤러의 선택 - Google Patents

리소스 뷰에 기초한 리던던트 컨트롤러의 선택

Info

Publication number
KR101120848B1
KR101120848B1 KR1020090115583A KR20090115583A KR101120848B1 KR 101120848 B1 KR101120848 B1 KR 101120848B1 KR 1020090115583 A KR1020090115583 A KR 1020090115583A KR 20090115583 A KR20090115583 A KR 20090115583A KR 101120848 B1 KR101120848 B1 KR 101120848B1
Authority
KR
South Korea
Prior art keywords
controller
primary
partition
controllers
services
Prior art date
Application number
KR1020090115583A
Other languages
English (en)
Other versions
KR20100069572A (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 KR20100069572A publication Critical patent/KR20100069572A/ko
Application granted granted Critical
Publication of KR101120848B1 publication Critical patent/KR101120848B1/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Abstract

각각의 컨트롤러에 의해 제공되는 서비스들에 기초하여 서버 시스템에 대한 프라이머리 컨트롤러를 선택하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 개시된다. 프라이머리 컨트롤러 지정자(primary controller designator, PCD) 유틸리티는 컨트롤러에 의해 제공되는 서비스들 및 이들 서비스들에 배정되는 가중된(weighted) 중요성에 기초하여 컨트롤러의 상대적 중요성을 결정한다. PCD 유틸리티는 (1) 시스템-컨트롤러가 통신할 수 있는 OS 파티션들의 수; 및 (2) 컨트롤러가 억세스할 수 있는 하드웨어 디바이스들의 수에 따라 시스템-컨트롤러에 의해 제공되는 서비스들을 분류한다. 서비스들의 중요성은 그 특정 서비스(들)을 이용/요구하는 파티션의 중요도 및 호스트 OS 파티션 정보에 의해 결정된다. PCD 유틸리티는, 만약 그 지정되는 "프라이머리"가 컨트롤 서비스들의 분류에 따라 가장 중요한 OS 파티션들을 위해 요구되는 서비스들을 제공하는 것이 가능하다면, 컨트롤러를 "프라이머리"로서 지정한다.

Description

리소스 뷰에 기초한 리던던트 컨트롤러의 선택{SELECTION OF A REDUNDANT CONTROLLER BASED ON RESOURCE VIEW}
본 발명은 일반적으로 멀티 프로세서 시스템들(multi-processor systems)에 관한 것이며, 특히 멀티 프로세스 시스템들에서의 컨트롤러들에 관한 것이다.
종래의 서버 시스템들의 시스템 컨트롤 스트럭쳐(structure)는 두 레벨의 리던던트 시스템 컨트롤러들(redundant system controllers)로 구성된다. 이들 리던던트 시스템 컨트롤러들의 목적은 시스템을 부트(boot)하는 것이다. 시스템이 부트되고 난 후에는, 이들 시스템 컨트롤러들은 신뢰성, 가용성 및 보수성(reliability, availability, serviceability; RAS) 서비스들을 제공한다. 각각의 리던던트 쌍(pair)의 시스템 컨트롤러들 중 하나에게는 "프라이머리(primary)" 역할이 배정(assign)된다. "프라이머리" 시스템 컨트롤러는 시스템의 초기 프로그램 로드(Initial Program Load, IPL)을 실행하고 상기 RAS 서비스들을 제공하는 책임을 진다.
종래의 시스템들은 전체적으로 기능하는(fully functioning) 시스템 컨트롤러와 부분적으로 기능하는(partially functioning) 시스템 컨트롤러 사이에 차별을 두지 않는다. 이들 종래의 시스템들은 부분적으로 기능하는 시스템 컨트롤러에 의해 제공된 서비스들을 사용하지 않는다. 그 결과, 종래의 시스템들은 증가된 시스템 능력(capability) - 이 증가된 시스템 능력은 리던던트 쌍 내의 두 개의 시스템 컨트롤러들의 총체적 서비스 능력(collective service capability)으로부터 달성될 수 있음 - 으로부터 이득을 누리지 못한다.
각각의 컨트롤러에 의해 제공되는 서비스들에 기초하여 서버 시스템에 대한 프라이머리 컨트롤러(primary controller)를 선택하기 위한 방법, 시스템 및 컴퓨터 프로그램 제품이 개시된다. 프라이머리 컨트롤러 지정자(primary controller designator, PCD) 유틸리티(utility)는, 컨트롤러에 의해 제공되는 서비스들 및 이들 서비스들에 배정(assign)되는 가중된 중요성(weighted importance)에 기초하여 컨트롤러의 상대적 중요성을 결정한다. 상기 PCD 유틸리티는 시스템 컨트롤러에 의해 제공되는 서비스들을 이하의 (1) 및 (2)에 따라서 분류한다. (1) 시스템 컨트롤러가 통신할 수 있는 OS 파티션들(partitions)의 수; 및 (2) 컨트롤러가 억세스할 수 있는 하드웨어 디바이스들의 수. 서비스들의 중요성은, 호스트 OS 파티션 정보 및 특정 서비스(들)을 이용/요구하는 파티션의 중요도(degree of importance)에 의해 결정된다. 만약 지정되는(designated) "프라이머리"가 가장 중요한 OS 파티션들(컨트롤러 서비스들의 분류에 따를 때)을 위해 요구되는 서비스들을 제공할 수 있다면, 상기 PCD 유틸리티는 하나의 컨트롤러를 "프라이머리"로서 지정한다.
본 발명의 상기 및 추가 목적들, 특징들, 및 이점들은 다음의 상세한 설명에서 분명해질 것이다.
예시적인 실시예들은, 각각의 컨트롤러에 의해 제공되는 서비스들에 기초하여 서버 시스템에 대한 프라이머리 컨트롤러를 선택하기 위한 방법, 시스템 및 컴 퓨터 프로그램 제품을 제공한다. 프라이머리 컨트롤러 지정(primary controller designator, PCD) 유틸리티는, 컨트롤러에 의해 제공되는 서비스들 및 이들 서비스들에 배정(assign)되는 가중된 중요성(weighted importance)에 기초하여 컨트롤러의 상대적 중요성을 결정한다. 상기 PCD 유틸리티는 시스템 컨트롤러에 의해 제공되는 서비스들을 이하의 (1) 및 (2)에 따라서 분류한다. (1) 시스템 컨트롤러가 통신할 수 있는 OS 파티션들(partitions)의 수; 및 (2) 컨트롤러가 억세스할 수 있는 하드웨어 디바이스들의 수. 서비스들의 중요성은, 호스트 OS 파티션 정보 및 특정 서비스(들)을 이용/요구하는 파티션의 중요도(degree of importance)에 의해 결정된다. 만약 지정되는 "프라이머리"가 가장 중요한 OS 파티션들(컨트롤러 서비스들의 분류에 따를 때)을 위해 요구되는 서비스들을 제공할 수 있다면, 상기 PCD 유틸리티는 하나의 컨트롤러를 "프라이머리"로서 지정한다.
본 발명의 예시적인 실시예들에 대한 다음의 상세한 설명에서, 발명이 실행될 수 있는 구체적이고 예시적인 실시예들은 당해 기술 분야에서 숙련된 자들에게 본 발명을 충분히 실행하도록 할 수 있게 설명되며, 다른 실시예들도 이용될 수 있다는 것이 이해되어야 하며, 본 발명의 사상 또는 범위를 벗어남이 없이 논리적(logical), 구성적(architectural), 프로그램적(programmatic), 기계적(mechanical), 전기적(electrical) 및 기타 변경들이 이뤄질 수 있다는 것이 이해되어야 한다. 따라서, 다음의 상세한 설명은 본 발명의 범위를 제한하는 것으로 받아들여져서는 아니되며, 본 발명의 범위는 첨부되는 청구항들 및 그들의 균등범위들에 의해 정의된다.
도면들의 설명에서, 유사한 구성요소들에는 이전의 도면(들)의 명칭들 및 참조 부호들과 유사한 명칭들 및 참조 부호들이 제공된다. 뒤에 나오는 도면이 다른 맥락에서의 또는 다른 기능을 갖는 구성요소들을 이용하는 경우, 그 구성요소는 그 도면 번호를 나타내는 제일 왼쪽의 숫자를 다르게 해서 제공된다. 구성요소들에 배정된 명시적인 숫자들은 단지 설명을 돕기 위해 제공되는 것이지 기술된 실시예에 관한 어떤 한정(limitations)(구조적 또는 기능적 등의)을 의미하려는 의도는 아니다.
특정 컴포넌트, 디바이스 및/또는 파라미터 명칭들(여기서 설명되는 실행 유틸리티/로직의 명칭들과 같은)은 단지 예를 들기 위한 것이지 본 발명에 대한 어떤 한정을 의미하려는 의도는 아니다. 따라서 본 발명에는 한정(limitation) 없이 본 명세서 내의 컴포넌트들/디바이스들/파라미터들을 설명하기 위해 이용되는 다른 명칭(nomenclature)/용어(terminology)가 주어질 수 있다. 본 명세서에서 이용되는 각각의 용어는 그 용어가 이용되는 맥락에서 주어진 가장 넓은 범위로 해석해야 한다.
이제 도면들을 참조하면, 먼저 도 1에는, 일 실시예에서 이용되는 데이터 처리 시스템(data processing system, DPS)의 일 예의 블록도 표현이 도시되어 있다. DPS는 컴퓨터 및/또는 일반적으로 처리 디바이스들일 수 있는 다른 종류의 전자 디바이스들일 수 있다. 도시된 바와 같이, DPS(100)는 시스템 인터커넥트(interconnect)/버스(bus)(102)를 통해 시스템 메모리(106)에 연결된 적어도 하나의 프로세서 또는 중앙 처리 장치(central processing units, CPUs)를 포함한다. 특히, CPU1(101) 및 CPU2(103)(즉, 제1 및 제2 프로세서/프로세서 코어)가 도시되어 있다. 또한, 한 쌍의 시스템 컨트롤러들, 즉 컨트롤러1(122) 및 컨트롤러2(123)는 시스템 버스(102)에 연결된다. 또한 입력/출력(I/O) 컨트롤러(115)는 시스템 버스(102)에 연결되며, 이 I/O 컨트롤러(115)는 입력 디바이스들을 위한 연결 및 컨트롤을 제공한다. 이 입력 디바이스들로서 포인팅 디바이스(또는 마우스)(116) 및 키보드(117)가 도시되어 있다. 또한 I/O 컨트롤러(115)는 출력 디바이스들을 위한 연결 및 컨트롤을 제공할 수 있다. 이 출력 디바이스들로서 디스플레이(118)가 도시되어 있다. 또한, 멀티미디어 드라이브(119)(예, CDRW(compact disk read/write) 또는 DVD(digital video disk) 드라이브) 및 USB(universal serial bus) 포트(121)가 도시되어 있고, 이들은 I/O 컨트롤러(115)에 결합(couple)된다. 멀티미디어 드라이브(119) 및 USB 포트(121)는, 착탈식 스토리지 디바이스(removable storage device)(예, 광 디스크 또는 "썸(thumb)" 드라이브)의 삽입을 가능하게 한다. 이 착탈식 스토리지 디바이스 상에 데이터/명령들/코드가 저장될 수 있으며, 및/또는 이 착탈식 스토리지 디바이스로부터 데이터/명령들/코드가 검색(retrieve)될 수 있다. 또한 DPS(100)는 데이터/명령들/코드가 또한 저장/검색될 수 있는 스토리지(107)를 포함한다.
또한 DPS(100)는 네트워크 인터페이스 디바이스(network interface device, NID)(125)와 함께 도시되어 있으며, DPS(100)는 NID(125)에 의해 하나 또는 그 이상의 억세스/외부 네트워크들(130)에 연결될 수 있다. 하나 또는 그 이상의 억세스/외부 네트워크들(130)의 일 예로서 인터넷이 제공되어 있다. 이러한 구현에서, 인 터넷은 서로 간에 통신할 프로토콜들의 TCP/IP(Transmission Control Protocol/Internet Protocol) 스위트(suite)를 이용하는 네트워크들과 게이트웨이들의 전세계적인 집합(worldwide collection)을 나타낸다. NID(125)는 네트워크의 억세스 포인트에 대한 유선 및/또는 무선 연결을 통해 동작하도록 구성될 수 있다. 네트워크(130)는 인터넷 또는 WAN(wide area network)와 같은 외부 네트워크(external network), 또는 이더넷(근거리 통신망(local area network)-LAN) 또는 가상 사설망(Virtual Private Network, VPN)과 같은 내부 네트워크(internal network)일 수 있다. 외부 네트워크(130)에 대한 연결은 하나 또는 그 이상의 서버들(133)과 함께 성립(establish)될 수 있으며, 일 실시예에서 이러한 하나 또는 그 이상의 서버들(133)은 또한 DPS(100) 상의 실행을 위한 데이터/명령들/코드를 제공할 수 있다.
상술한 DPS(100)의 하드웨어 컴포넌트들에 더하여, 본 발명의 다양한 특징들은 메모리(106) 또는 다른 스토리지(예, 스토리지(107)) 내에 저장된 소프트웨어(또는 펌웨어) 코드 또는 로직을 통해 완성(complete)/지원(support)되고, CPU1(101) 및/또는 CPU2(103)에 의해 실행된다. 그리하여, 예를 들어, 메모리(106) 내에 하나 또는 그 이상의 운영 체계들(OS)(108)을 포함하는 복수의 소프트웨어/펌웨어/로직 컴포넌트들, 어플리케이션들(114), 파티션 정보(104), 컨트롤러 서비스들 및 서비스 값들(파일)(105) 및 프라이머리 컨트롤러 지정자(PCD) 유틸리티(110)가 도시되어 있다. 상기 운영 체계들(108)의 예로서는, 마이크로소프트사의 상표인 Microsoft Windows?, 프리 소프트웨어 재단(Free Software Foundation) 및 리눅스 마크 연구소(Linux Mark Institute)의 등록 상표들인 GNU?/Linux? 등이 있다. 일 실시예에서, PCD 유틸리티(110)는 시스템 컨트롤러(예, 컨트롤러1(122) 또는 컨트롤러2(123)) 상에서 실행되는데, 이러한 시스템 컨트롤러는 하나 또는 그 이상의 프라이머리 컨트롤러들을 결정하기 위한 프로세스 동안에 임시(디폴트) 컨트롤러로서 지정되어 있다. 프라이머리 시스템 및 노드 컨트롤러들은 호스트 CPU들(예, 101, 103)을 초기화(initializing)하기에 앞서 할당되므로, 임시 프라이머리는 서버 네트워크로부터 억세스가능한 시스템 컨트롤러 서비스들을 이용할 수 없는 독립형 시스템들(stand alone systems)에서 이용된다. 그러나, 또 다른 실시예에서, 프라이머리 컨트롤러 지정자(PCD) 유틸리티(110)는, PCD 유틸리티가 대응하는 프라이머리 컨트롤러들을 결정하는 프로세스에 있을 시, (서버) DPS(100)에 연결하고 있는 분리된(separate) 서버의 하나 또는 그 이상의 프로세서들 상에서 실행될 수 있다. OS(108) 내에는 OS1(109), OS2(111) 및 OS3(112)을 포함하는 복수의 OS 유형들이 도시되어 있다. 일 실시예에서, PCD 유틸리티(110)는 파티셔닝 기술(partitioning technology)을 이용하는데, 이 파티셔닝 기술에 의해 DPS(100)는 멀티 프로세서 코어들을 갖춘 DPS(100)와 같은 프로세서 디바이스에서 다른 운영 체계들(예, OS1(109) 및 OS2(111))을 실행(running)할 수 있다. 파티션 프로파일들(partition profiles)(예, 파티션1 프로파일(104) 및 파티션2 프로파일(113))을 이용함에 의해, DPS(100)는 특정 파티션에 대한 리소스들의 할당(allocation)을 결정한다. 간략화를 위해, PCD 유틸리티(110)는 독립형(stand alone) 또는 분리형(separate) 소프트웨어/펌웨어 컴포넌트로서 설명되며, 이 컴포넌트는 이하에서 설명되는 바와 같이 특정한 기능들을 제공한다.
일 실시예에서, 서버들(133)은 소프트웨어 배치 서버(software deploying server)를 포함하며, DPS(100)는 네트워크 인터페이스 디바이스(NID, 125)를 사용하여 네트워크(예, 인터넷(130))를 통해 소프트웨어 배치 서버(133)와 통신한다. 그런 다음, PCD 유틸리티(110)는 소프트웨어 배치 서버(133)를 통해 그 네트워크로부터/그 네트워크 상에 배치(deploy)될 수 있다. 이러한 구성에서, 소프트웨어 배치 서버는 PCD 유틸리티(110)의 실행과 관련된(associated) 모든 기능들을 수행한다. 따라서, DPS(100)는 PCD 유틸리티(110)를 실행하기 위해 DPS(100)의 내부 컴퓨팅 리소스들(internal computing resources)을 이용할 필요가 없다.
CPU(101)는 PCD 유틸리티(110) 뿐만 아니라 OS(108)를 실행하며, 이 OS(108)는 PCD 유틸리티(110)의 사용자 인터페이스 특징들(user interface features)을 지원한다. PCD 유틸리티에 의해 지원 및/또는 실행(implement)되는 일정 기능들(functions)은, PCD 유틸리티(110)에 의해 지원되는 특정한 기능들의 실행을 완성(complete)하기 위해 프로세서 및/또는 디바이스 하드웨어에 의해 실행되는 처리 로직(processing logic)을 제공한다. 설명의 간략화를 위해, 이들 다양한 기능들을 가능하게 하는 코드의 집합체(collective body)는 여기서는 PCD 유틸리티(110)로서 언급된다. PCD 유틸리티(110)에 의해 제공되는 소프트웨어 코드/명령들/로직 중 본 특히 발명에서는, (a) 컨트롤러에 의해 제공되는 서비스들을 분류(classify)하기 위한 코드/로직; (b) 리던던트 컨트롤러들의 상대적 중요성을 결정하기 위한 코드/로직; (c) 하나 또는 그 이상의 리던던트 컨트롤러들의 상대적 중요성에 기초하여 프라이머리 컨트롤러를 선택하기 위한 코드/로직이 있다. 본 발명의 예시적인 실시예에 따르면, CPU(101)가 PCD 유틸리티(110)를 실행할 경우, DPS(100)는 상기 기능적 특징들(functional features) 뿐만 아니라 추가 특징들/기능(functionality)을 가능하게 하는 일련의 기능적 프로세스들(functional processes)을 시작한다. 이들 특징들/기능들은 이하의 도 2-7의 설명에서 더 상세하게 기술된다.
도 1에 도시된 하드웨어 컴포넌트들 및 기본 구성이 변경될 수 있다는 것은 당해 기술 분야에서 통상의 기술을 가진 자들이라면 알 수 있다. DPS(100) 내의 예시적인 컴포넌트들은, 본 발명을 구현하기 위해 필요한 모든 컴포넌트들을 총 망라하려는 의도가 아니라, 본 발명을 구현하기 위해 이용되는 중요한 필수적인 컴포넌트들을 나타내는 것이다. 예를 들어, 도시된 하드웨어에 부가하여 또는 도시된 하드웨어 대신에 다른 디바이스들/컴포넌트들이 사용될 수 있다. 도시된 예는 현재 설명되는 실시예들 및/또는 전반적인 본 발명에 대한 구조적인 또는 기타의 한정을 의미하려는 의도는 아니다. 도 1에 도시된 데이터 처리 시스템은, 예를 들어, AIX(Advanced Interactive Executive) 운영 체계 또는 LINUX 운영 체계를 실행하는, 뉴욕(N.Y.) 아몽크(Armonk)의 IBM 사의 제품인 IBM i/p-시리즈 p6 High-End 시스템일 수 있다.
이제 도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 처리 시스템(DPS)의 시스템 컨트롤 스트럭쳐(System Control Structure, SCS)가 도시되어 있다. 이 시스템 컨트롤 스트럭쳐는 컨트롤러들 및 관련된 억세스가능한 리소스들의 계층적(hierachical) 뷰(view)를 제공하는 관리 트리(management tree)의 표현이 다. DPS(100)는 멀티 레벨의 리던던트 컨트롤러들을 포함한다. 제1 레벨의 리던던트 컨트롤러들은 시스템 컨트롤러들(system controllers, SCs)(122 및 123)을 포함하는데, 이들 시스템 컨트롤러들은 전체 시스템(100)에 걸친 컨트롤을 결집(aggregate)시킨다. 리던던트 컨트롤러들의 제2 레벨은 시스템/노드(201) 내에서 억세스를 컨트롤하는 노드 컨트롤러들(node controllers, NCs)(222 및 223)을 포함하고 있다. 노드(201)에서, 노드 컨트롤러1(222)는 I/O 디바이스(226) 및 CPU1(101)에 결합된다. 노드 컨트롤러2(223)는 I/O 디바이스(228) 및 CPU2(103)에 결합된다. DPS(100)의 SC들 및 NC들은 리던던트 이더넷 네트워크들(각각 이더넷1 링크(202) 및 이더넷2 링크(208)로 도시됨)을 사용하여 통신한다.
엔드 디바이스들(end devices)에 가장 가까운 노드 컨트롤러(NC) 레벨(노드(201) 내에 도시됨)에서 시작하여, PCD 유틸리티(110)는 각각의 NC가 통신할 수 있는 엔드 디바이스들의 세트(set)/뷰(view)를 결정/식별(identify)한다. 특히, 노드 컨트롤러1(222)은 I/O 디바이스(226) 및 CPU1(101)과 통신할 수 있다. 노드 컨트롤러2(223)는 I/O 디바이스(228) 및 CPU2(103)과 통신할 수 있다. PCD 유틸리티(110)는 세트들(프로세서들, 메모리, I/O 허브들 등을 포함하는 억세스가능한 엔드 디바이스들의)을 비교한다. 하나의 노드 컨트롤러에 대응하는 접근가능한 엔드 디바이스들의 하나의 세트(이는 또한 "뷰(view)"로도 언급됨)는 다른 노드 컨트롤러들에 대응하는 억세스가능한 엔드 디바이스들의 다른 세트들/"뷰들"과 비교된다. 만약 이들 세트들이 동일하거나 하나의 세트가 다른 세트의 서브세트(subset)라면, PCD 유틸리티(110)는 컨트롤러 관련 팩터들/특성들(factors/characteristics)의 프 리세트(preset) 그룹에 기초하여 프라이머리 NC를 결정할 수 있다. 그러나, 만약 이들 세트들이 동일하지 않거나 하나의 세트가 다른 세트의 서브세트가 아니라면, PCD 유틸리티(110)는 NC들이 유사한 하드웨어 서비스들을 제공하지 않는다고 결정한다. 그 결과, PCD 유틸리티(110)는 NC가 가장 높은 우선순위(priority)의 파티션의 요구들(requirements)을 충족시킬 수 있는지를 결정하기 위한 비교를 수행한다. 만약 양 NC들(예, 노드 컨트롤러1(222) 및 노드 컨트롤러2(223))이 가장 높은 우선순위의 파티션을 충족시킬 수 있다면, 그 NC 하드웨어 세트들/뷰들은 그 다음으로 가장 높은 우선순위(the next highest priority)의 파티션을 위해 비교된다. 파티션의 우선순위의 레벨은 그 파티션 내에서 실행중인 워크로드(workload)의 중요성에 기초하고, 관련된 폴리시 파일(policy file)에 기록될 수 있다. 일 실시예에서, 비교는 단지 하나의 NC가 각각의 파티션(파티션 우선순위의 특정 레벨에서)의 요구들을 충족시킬 수 있을 때까지 파티션 우선순위의 다양한 레벨들에서 (계속해서(sequentially)) 수행된다. 결국, 가장 높은 우선순위의 파티션들을 위해 엔드 디바이스들과 통신할 수 있는 NC는 프라이머리 NC로서 선택된다.
프라이머리 컨트롤러가 NC 레벨에서 선택된 후, 시스템 컨트롤러(SC) 레벨에서 유사한 비교가 수행된다. 네트워크에서의 비대칭 폴트들(asymmetric faults)에 기인하여, 양 SC들(SC1(122) 및 SC2(123))가 다른 뷰의 NC들을 갖는 것이 가능하다. "프라이머리" SC는 일반적으로 가장 높은 우선순위의 OS 파티션과 통신할 수 있다. 예를 들어, PCD 유틸리티(110)는 프라이머리 시스템 컨트롤러로서 SC1(122)을 선택/지정할 수 있다. 각각의 SC가 통신할 수 있는 억세스가능한 엔드 디바이스 들 및 NC들은 프라이머리 SC를 결정할 때 또한 고려된다.
일 실시예에서, 더 적은 서비스들을 제공하는 시스템 컨트롤러는, 만약 그 시스템 컨트롤러가 가장 중요한 OS 파티션들을 위해 요구되는 서비스들을 제공할 수 있다면, "프라이머리"로서 선택될 수 있다. PCD 유틸리티(110)는 프로세서들, 메모리, 및 I/O 허브들에 어태치(attach)되는 컨트롤러들, 및 심지어 DASD 또는 통신 네트워크들에 어태치되는 I/O 컨트롤러들까지, 프라이머리 컨트롤러를 선택하는 것에 대한 접근법을 확장할 수 있다.
도 3은 본 발명의 일 실시예에 따른 멀티 레벨의 리던던트 컨트롤러들을 갖는 데이터 처리 시스템의 블록도를 도시한다. 리던던트 시스템 컨트롤러들(SCs)(122 및 123)은 전체 시스템(100)에 걸친 컨트롤을 결집(aggregate)시킨다. 리던던트 노드 컨트롤러들(NCs)(222 및 223)은 제1 시스템 노드(201) 내의 억세스를 컨트롤한다. 이와 유사하게, 리던던트 NC들(332 및 333)은 제2 시스템 노드(303) 내의 억세스를 컨트롤한다. 특히, NC들(222 및 223)은 노드(201) 내에서 단지 프로세서들(101 및 103) 및 I/O 허브들(226 및 228)과 통신할 수 있다. NC들(332 및 333)은 노드(303) 내에서 단지 프로세서들(311 및 313) 및 I/O 허브들(336 및 338)과 통신할 수 있다. SC들(122 및 123)은 이더넷(202 및/또는 208)을 통해 NC들(222, 223) 및 NC들(332 및 333)과 직접적으로 통신할 수 있다. 그리하여, SC들(122 및 123)은 노드(201) 또는 노드(303)에서의 어떤 NC와 통신할 수 있다.
리던던트 시스템 컨트롤러들(122 및 123)의 쌍 중에서, 프라이머리 시스템 컨트롤러가 선택된다. 노드(201)에서, 프라이머리 노드 컨트롤러는 리던던트 NC들(222 및 223) 중에서 선택된다. 이와 유사하게, 노드(303)에서, 프라이머리 노드 컨트롤러는 NC들(332 및 333) 중에서 선택된다. 프라이머리 노드 컨트롤러는 프로세서들, I/O 허브들 및 관련 노드에서의 다른 컴포넌트들을 초기화(initialize)하기 위한 하드웨어 억세스들을 수행한다. 프라이머리 시스템 컨트롤러는 그 관련된 노드 내의 컴포넌트들을 초기화함에 있어서 각 노드에서의 프라이머리 노드 컨트롤러를 지원/"명령"한다. 또한, 프라이머리 시스템 컨트롤러는 다른 시스템 관리 기능들에 관해서 프라이머리 노드 컨트롤러들을 지원한다.
리던던트 NC들의 각 쌍(제1 쌍의 NC들(222 및 223) 및 제2 쌍의 NC들(332 및 333))은 하나의 엔드 디바이스에 대한 각각의 쌍 자신의 관련된 연결(각각, 프로세서들(101, 103) 및 프로세서들(311 및 313)과 같은)을 가지고 있기 때문에, 이들 연결들의 하나 또는 그 이상에서의 실패들(failures)은 리던던트 쌍에서의 NC들로 하여금 이용가능한 프로세서들의 다른 뷰를 갖도록 할 수 있다. 또한, SC들(122 및 123)은 그러한 동작들(actions)을 시스템 초기 프로그램 로드(IPL)로 조정(coordinate)하기 때문에, 그들에게 (각각의) 노드(201) 및 노드(303)의 각각에서의 NC들 중의 적어도 하나(제1 쌍의 NC들(222 및 223)로부터 적어도 하나 및 제2 쌍의 NC들(332 및 333)로부터의 적어도 하나)와 통신하도록 요구한다. 또한 SC들은, 만약 그 SC들 중 하나가 하나의 노드에서 NC들 둘 다와 통신할 수 없다면 시스템의 다른 뷰들을 가질 수 있다. 만약 리던던트 쌍에서의 SC들 및 NC들 중 단 하나가 저하된(degraded) 뷰를 갖는다면, 상대적으로 양호한(good) 뷰를 갖는 컨트롤러 가 프라이머리 컨트롤러로서 선택된다(선택 프로세스에서, 저하된 뷰를 갖는 컨트롤러의 배제(elemination)에 의해). 리던던트 쌍에서의 컨트롤러들이 다른(dissimilar) 저하된 뷰들을 갖는 경우, 선택 프로세서는 더 어려워질 것이고, 또한 선택 프로세서는 관리 트리(management tree)의 모든 레벨들에서 컨트롤러들의 뷰에 의존할 수 있다. 상기 관리 트리에서, NC들은 SC들 보다 더 낮은 레벨에 있다.
컨트롤러들이 하드웨어의 다른 저하된 뷰들을 갖는, 컨트롤러들의 리던던트 쌍에서 프라이머리 컨트롤러를 결정하기 위해, PCD 유틸리티(110)는 어느 컨트롤러가 시스템의 더 중요한 뷰를 갖는지를 결정한다. 특히, PCD 유틸리티(110)는 각각의 운영 체계 파티션이 의존성(dependency)을 갖는 시스템 하드웨어를 결정한다. 그런 다음, PCD 유틸리티(110)는 운영 체계 파티션들 각각의 중요성의 순서를 결정한다.
프라이머리 컨트롤러를 선택하는 프로세스의 설명을 용이하게 하기 위해, 두 개의 예들(도 3의 DPS(100)에 대한)이 이용되고 도 4-6에 의해 제공되는 표들을 참조하여 논의된다. 이들 예들에서, 파티션들, 하드웨어 의존성들, 및 대응하는 중요성이 각각의 표에서 정의된다.
도 4는 본 발명의 일 실시예에 따른 파티션들의 세트의 상대적 중요성 및 대응하는 하드웨어 의존성들을 도시하는 제1 예시 표(example table)이다. 이와 유사하게, 도 6은 본 발명의 일 실시예에 따른 파티션들의 세트의 상대적 중요성 및 대응하는 하드웨어 의존성들을 도시하는 제2 예시 표이다. 도 5는 본 발명의 일 실시 예에 따른 컨트롤러 연결을 도시하는 예시 표이다. 도 5는 도 4 및 6에 도시된 예들에 적용가능하다.
표(400)는 표(400)의 대응하는 행들(rows) 내의 파티션들의 파티션 의존성들을 식별한다. 예를 들어, 제1 행(401)은 제1 프로세서 의존성들(PD)(406)(제2 열에서), 제1 I/O 허브 의존성들(HD)(408)(제3 열에서) 및 A-중요성(414)(제4 열에서)으로 도시된 각각의 파티션 중요성을 포함하는, 파티션 A(402)의 의존성들(의 리스트)을 제공한다. 제2 행(403)은 제2 프로세서 의존성들(PD)(407)(제2 열에서), 제2 I/O 허브 의존성들(HD)(411)(제3 열에서) 및 B-중요성(419)(제4 열에서)으로 도시된 각각의 파티션 중요성을 포함하는, 파티션B(405)의 의존성들을 제공한다. 제3 행(404)은 제3 프로세서 의존성들(410)(제2 열에서), 제3 I/O 허브 의존성들(HD)(412)(제3 열에서) 및 C-중요성(416)(제4 열에서)으로 도시된 각각의 파티션 중요성을 포함하는, 파티션 C(409)의 의존성들을 제공한다.
표 400의 (제1) 예에 따르면, 파티션 B(405)(이는 가장 중요한 파티션임)는 B-중요성(419)으로 도시된 바와 같이 "1"의 파티션 중요성을 갖는다. 표 400에서, 제2 PD(407)는 파티션 B(405)의 동작이 CPU2(103)를 요구하는 것을 나타낸다. 제2 I/O HD(411)는 파티션 B(405)가 I/O(228)를 요구하는 것을 나타낸다. CPU2(103) 및 I/O 허브(228)에 대한 연결들을 리뷰(review)하면, NC(222) 및 NC(223) 둘다(both)가 파티션 B(405)의 의존성들(즉, 제2 프로세서 의존성(PD)(407) 및 제2 I/O 허브 의존성(HD)(411))을 이행(fulfull)하는 것이 (표 500 및 도 2, 3의 DPS(100)를 통해) 나타난다.
표 500은 특정한 컨트롤러와 구체적인 컨트롤러의 엔드 디바이스(end devices) 연결들을 요약한다. 예를 들어, 행(504), 행(506) 및 행(508)은 각각 SC2(123), NC1(222) 및 NC2(223)에 대한 연결들을 제공한다. 행(506) 및 행(508)은 NC1(222) 및 NC2(223)에 대한 동일한(identical) 연결들을 표시한다. 따라서, PCD 유틸리티(110)는 NC(222) 또는 NC(223)를 "프라이머리"로서 선택할 수 있다. PCD 유틸리티(110)는 임의로(arbitrarily)(또는 "연결을 끊는 것(break a tie)"에 대한 프리셋 디폴트 배정(preset default assignment)에 기초하여) NC(222)를 프라이머리로서 선택한다. 유사한 리뷰 및 엔트리(512)에 기초함으로써, 두 번째로 중요한 파티션(the second most important partition), 즉 C(409)에 대해, 단지 NC(333)만이 의존성을 이행(fulfill)하며(즉, 제3 PD(410)로 나타낸 CPU4(313) 및 제3 I/O HD(412)로 나타낸 I/O 허브4(338)), NC(333)는 리던던트 쌍에 대한 프라이머리 컨트롤러로서 선택된다. 파티션 A(402)의 의존성들을 이행(fulfill)하기 위해, NC(332), 및 NC(222) 또는 NC(223)는 프라이머리들로서 요구된다. NC(332)는, 더 높은 중요성 파티션(C)의 의존성들에 대해 NC(332)의 억세스가능성에 의해 제공되는 더 높은 우선순위의 지원 때문에, 프라이머리로서 선택되지 않을 수 있다. 그러므로, 파티션 A(402)는 시작되는 것이 가능하지 않다. 두 개의 가장 중요한 파티션들, 즉 B 및 C의 요구들을 충족시키기 위해, PCD 유틸리티(110)는 선택된 프라이머리 SC가 (프라이머리) NC(222) 및 (프라이머리) NC(333)와 통신할 수 있도록 요구한다. 표 500의 행(504)을 리뷰하면, 단지 SC(123)만이 그 성능(capability)(즉, (프라이머리) NC(222) 및 (프라이머리) NC(333)와 통신하는 것)을 갖는다는 것이 나타난다. 따라서, PCD 유틸리티(110)는 SC(123)를 프라이머리 시스템 컨트롤러로서 선택한다.
표 600은 표 600의 대응하는 행들 내의 파티션들의 파티션 의존성들을 식별한다. 예를 들어, 제1 행(602)은 제1 프로세서 의존성들(PD(612)(제2 열에서), 제1 I/O 허브 의존성들(HD)(618)(제3 열에서) 및 B-중요성(617)(제4 열에서)으로 도시된 각각의 파티션 중요성을 포함하는, 파티션 B(607)의 의존성들을 제공한다. 제2 행(603)은 제2 프로세서 의존성들(PD)(615)(제2 열에서), 제2 I/O 허브 의존성들(HD)(616)(제3 열에서) 및 C-중요성(619)(제4 열에서)으로 도시된 각각의 파티션 중요성을 포함하는 파티션 C(611)의 의존성들을 제공한다.
표 600에 따르면, 파티션 C(611)(이는 가장 중요한 파티션임)는 C-중요성(619)에 의해 도시된 "1"의 파티션 중요성을 갖는다. 파티션 C는 프로세서(313) 및 I/O 허브(338)(각각, 제2 프로세서 의존성(PD)(615) 및 제2 I/O 허브 의존성(HD)(616)으로 도시된 것과 같이)에 대한 의존성을 갖는다. 표 500에서의 행(512)에 따르면, 단지 NC(333)만이 CPU4(313) 및 I/O 허브4(338) 둘다에 연결된다. 그러므로, NC(333)는 프라이머리 노드 컨트롤러로서 선택된다. 두 번째로 중요한 파티션, D는 프로세서(211) 및 I/O 허브(336)에 대한 의존성들을 갖는다. 이들 의존성들은 NC(333)에 대한 하나의 백업(a backup)(하나의 프라이머리)으로서 이미 지정된(designated) NC(332)에 의해 단지 충족된다. 그러므로, 파티션 D는 시작되는 것이 가능하지 않다. 파티션 B(607)는, NC(222) 또는 NC(223)(도 5의 행들(506 및 508)에 따른)에 의해 충족된 의존성들(즉, PD(612)로 나타낸 CPU2(103) 및 I/O HD(618)로 나타낸 I/O 허브2(228))을 가지며, PCD 유틸리티(110)는 NC(222)를 프라이머리로서 선택한다. 파티션 A는 NC(332), 및 NC(222) 또는 NC(223)를 요구한다. NC(332)는 이미 하나의 백업으로서 지정되어 있으므로, 파티션 A는 시작되는 것이 가능하지 않다. 파티션 E는 NC(333)(이는 이미 프라이머리 노드 컨트롤러로서 선택되어 있음)를 요구한다. 표 600의 예에서, 단지 파티션들 C, B 및 E가 시작된다. 가장 중요한 파티션의 요구들이 A 및 D와 양립(compatible)할 수 없기 때문에, 파티션들 A 및 D는 시작되지 않는다(즉, 비록 일부 덜 중요한 파티션들은 시작되지만).
일 실시예에서, 하나의 노드에 대한 프라이머리 NC가 프라이머리 SC가 결정된 후에 전환(switch)되는 경우들이 있다. 이러한 전환은, 단지 하나의 SC가 가장 중요한 파티션을 위해 필요한 프라이머리 NC와의 통신이 가능한 경우에 일어날 수 있다. 만약 선택된 프라이머리 SC가 덜 중요한 파티션을 위해 필요한 프라이머리 NC와 통신할 수 없다면, 그 노드에서의 프라이머리 역할은 시블링(sibling) NC로 전환될 수 있다(미리 선택된 프라이머리 NC로부터).
도 7은 예시적인 실시예들의 상기 프로세스들이 완성(complete)되는 방법을 도시하는 흐름도이다. 도 7에 도시된 방법들이 도 1-6에서 보여진 컴포넌트들을 참조하여 설명될 수 있으나, 이는 단지 설명의 편의를 위한 것이고 도 1-6의 대체(alternative) 컴포넌트들 및/또는 구성들이 다양한 방법들을 구현할 시 채용될 수 있다는 것이 이해되어야 한다. 발명들의 핵심 부분들은 DPS(100)(도 1-3) 내의 프로세서(101) 상에서 실행 중이고 DPS(100)의/상의 특정 동작들을 컨트롤하는, PCD 유틸리티(110)에 의해 완성(complete)될 수 있으며, 그리하여 그 방법들은 PCD 유틸리티(110) 및 DPS(100) 둘다 또는 둘 중 하나의 관점에서 설명된다.
도 7의 프로세서는 시작 블록 702에서 시작하여 블록 704로 진행된다. 블록 704에서는 프라이머리 컨트롤러 지정자(PCD) 유틸리티(110)는 컨트롤러 동작의 각 레벨에서 리던던트 컨트롤러들의 서비스들을 분류하기 위한 프로세스를 시작한다. 블록 706에서, PCD 유틸리티(110)는 다음의 (a) 내지 (d)에 기초하여 시스템 컨트롤러에 의해 제공된 서비스들을 분류한다. (a) 대응하는 컨트롤러가 통신할 수 있는 OS 파티션들의 수; (b) 대응하는 컨트롤러가 억세스할 수 있는 하드웨어 디바이스들의 수; (c) 다른 OS 파티션 정보; 및 (d) 컨트롤러 서비스가 요구되는 파티션들의 각각의 우선순위 레벨들. 블록 708에서, PCD 유틸리티(110)는 리던던트 시스템 컨트롤러들의 상대적 중요성을 결정한다. 블록 710에서, PCD 유틸리티(110)는 다음 (a) 및 (b)의 팩터들/파라미터들에 기초하여 동작의 레벨에서 리던던트 컨트롤러들을 비교한다. (a) 대응하는 컨트롤러 서비스의 관련 가중된 값(associated weighted value); (b) 가장 높은 우선순위 파티션들을 충족시키기 위한 리던던트 컨트롤러들의 기능(ability). 동작의 각 레벨에서, 프라이머리 컨트롤러는 블록 712에 보여진 바와 같이 PCD 유틸리티(110)에 의해 식별된다. 특히, PCD 유틸리티(110)는, 컨트롤러가 다음의 (a) 내지 (c) 중 하나 또는 그 이상과 관련된 경우 하나의 컨트롤러를 프라이머리 컨트롤러로서 지정한다. (a) 대응하는 컨트롤러 서비스의 가장 높은 관련 가중된 값(highest associated weighted value); (b) 가장 높은 우선순위의 파티션을 충족시키기 위해, 다른 리던던트 컨트롤러들에 대한, 컨 트롤러의 배타적(exclusive) 기능(ability); 및 (c) 동작의 다른 레벨들에서 컨트롤러들과 통신하기 위한 컨트롤러의 기능. 프로세스는 블록 714에서 종료된다.
상기 흐름도에서, 방법들 중 하나 또는 그 이상은, 컴퓨터 판독가능 코드가 컴퓨팅 디바이스 상에서 실행될 경우(처리 유닛에 의해) 일련의 단계들이 수행되도록 하는, 컴퓨터 판독가능 코드를 포함하는 컴퓨터 판독가능 매체에서 구현된다. 일부 구현 예들에서는, 방법들의 일정 프로세스들은 본 발명의 사상 및 범위를 벗어남이 없이, 동시에 또는 순서를 바꾸어서 결합, 수행될 수 있고, 또는 일부 순서가 생략될 수도 있다. 따라서, 방법의 프로세스들이 특정 순서로 설명 및 도시되어 있지만, 프로세스들의 특정 순서의 사용은 본 발명에 대한 어떤 한정을 의미하려는 의도는 아니다. 본 발명의 사상 또는 범위를 벗어남이 없이 프로세스들의 순서에 대한 변경들이 이뤄질 수 있다. 따라서, 특정 순서의 사용은 본 발명의 범위를 한정하려는 의미로 받아들여져서는 아니되며, 본 발명의 범위는 첨부되는 청구항들 및 균등범위로 확장된다.
당해 기술 분야에서 숙련된 자라면 알 수 있는 바와 같이, 본 발명은 방법, 시스템, 및/또는 컴퓨터 프로그램 제품으로 구체화될 수 있다. 따라서, 본 발명은 전적으로 하드웨어 구현, 전적으로 소프트웨어 구현(펌웨어, 상주 소프트웨어, 마이크로-코드 등), 또는 소프트웨어 및 하드웨어 측면들을 조합하는 구현의 형태를 취할 수 있다. 이들 모두는 일반적으로 본 명세서에서는 "회로", "모듈", "로직", 또는 "시스템"으로서 일컬어질 수 있다. 나아가, 본 발명은 매체 내에 또는 매체 상에 구현되는 컴퓨터 사용가능 프로그램 코드를 갖는 컴퓨터 사용가능 스토리지 매체 상의 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
당해 기술 분야에서 숙련된 자라면 더 알 수 있는 바와 같이, 본 발명의 실시예들에서의 프로세스들은 소프트웨어, 펌웨어, 마이크로코드, 또는 하드웨어의 어떤 결합을 사용하여 구현될 수 있다. 소프트웨어로 본 발명을 실행하기 위한 준비 단계에서, 프로그래밍 코드(소프트웨어이든 펌웨어이든 간에)는 전형적으로 장착된(fixed)(하드) 드라이브들, 디스켓들, 자기 디스크들, 광 디스크들, 자기 테이프, RAMs, ROMs, PROMs 등과 같은 반도체 메모리들과 같은 하나 또는 그 이상의 머신 판독가능 스토리지 매체들에 저장될 것이고, 그에 의해 본 발명에 따른 제품(article of manufacture)을 만들 것이다. 프로그래밍 코드를 포함하고 있는 제품은, 스토리지 디바이스로부터 직접 코드를 실행함으로써, 스토리지 디바이스로부터 하드 디스크, RAM 등과 같은 또 다른 스토리지 디바이스 내에 코드를 복사함으로써, 또는 디지털 및 아날로그 통신 링크들과 같은 전송 유형의 매체를 사용하여 원격 실행을 위한 코드를 전송함으로써 사용된다. 매체는 전자, 자기, 광, 전자기, 적외선, 또는 반도체 시스템(또는 장치 또는 디바이스) 또는 전달 매체일 수 있다. 나아가, 매체는 실행 시스템, 장치, 또는 디바이스와 연결되거나 그것들에 의해 사용하기 위한 프로그램을 포함, 저장, 통신, 전달, 또는 전송할 수 있는 어떤 장치일 수 있다. 본 발명의 방법들은 설명된 실시예(들)에 따른 코드를 포함하는 하나 또는 그 이상의 머신(machine) 판독가능 스토리지 디바이스들을 그것들에 포함되는 코드를 실행하기 위한 적절한 처리 하드웨어와 결합함에 의해 실행될 수 있다. 본 발명을 실행하기 위한 장치는 본 발명에 따라 코딩된 프로그램(들)에 대한 네트워 크 억세스(서버들을 통한)를 포함 또는 갖는 하나 또는 그 이상의 처리 디바이스들 및 스토리지 시스템들일 수 있다. 일반적으로, 컴퓨터, 컴퓨터 시스템, 또는 데이터 처리 시스템이라는 용어는 메모리 매체로부터의 명령들/코드를 실행하는 프로세서(또는 처리 유닛)을 갖는 어떤 디바이스를 포함하는 것으로 넓게 정의될 수 있다.
그리하여, 본 발명의 예시적인 실시예는 인스톨된(또는 실행된) 소프트웨어를 갖는 완전히 기능적인 컴퓨터(서버) 시스템의 맥락에서 설명되고 있지만, 당해 기술 분야에서 숙련된 자라면 본 발명의 예시적인 실시예의 소프트웨어 측면들은 다양한 형태들의 프로그램 제품으로 분포될 수 있으며, 본 발명의 예시적인 실시예는 그 분포를 실제로 수행하기 위해 사용된 매체의 특정 유형에 관계없이 동등하게 적용한다는 것을 알 수 있을 것이다. 예를 들어, 매체의 종류들의 리스트(이것들 만으로 한정되는 것은 아님)는, 플로피 디스크들, 썸 드라이브들(thumb drives), 하드 디스크 드라이브들, CD ROMs, 및 DVDs와 같은 기록 유형(실체적인) 매체, 및 디지털 및 아날로그 통신 링크들과 같은 전송 유형의 매체를 포함한다.
본 발명은 예시적인 실시예들을 참조하여 설명되고 있지만, 당해 기술 분야에서 숙련된 자들이라면 본 발명의 범위로부터 벗어남이 없이 다양한 변경들이 이뤄질 수 있고, 균등물들이 그것들의 구성요소들을 대체할 수 있다는 것을 이해할 것이다. 또한, 본 발명의 본질적인 범위를 벗어남이 없이 발명의 가르침들(teachings)에 대해 특정 시스템, 장치 또는 컴포넌트를 적응(adapt)하기 위해 많은 개조들이 수행될 수 있다. 그러므로, 본 발명은 본 발명을 수행하기 위해 개 시된 특정 실시예들로 한정하지 않으며, 본 발명은 첨부되는 청구항들의 범위 내에 들어오는 모든 실시예들을 포함하는 것으로 의도된다. 더욱이, 제1, 제2 등의 용어들의 사용은 중요성의 어떤 순서를 표시하는 것이 아니라, 하나의 구성요소를 다른 하나의 구성요소와 구별하기 위해서 사용된다.
본 발명 자체, 및 본 발명의 이점들은 예시적 실시예에 대한 다음의 상세한 설명에 대한 참조로써 다음의 도면들과 함께 읽혀질 때 가장 잘 이해될 것이다.
도 1은 본 발명의 일 실시예에 따라 발명이 실행될 수 있는 데이터 처리 시스템의 블록도 표현을 제공한다.
도 2는 본 발명의 일 실시예에 따른 데이터 처리 시스템의 시스템 컨트롤 구조(System Control Structure, SCS)를 도시한다.
도 3은 본 발명의 일 실시예에 따른 멀티 레벨의 리던던트 시스템 관리 컨트롤러들을 갖는 데이터 처리 시스템의 블록도를 도시한다.
도 4는 본 발명의 일 실시예에 따른 파티션들의 세트의 상대적 중요성 및 대응하는 하드웨어 의존성(dependency)들을 도시하는 제1 예시 표(example table)이다.
도 5는 본 발명의 일 실시예에 따른 컨트롤러 접속가능성(connectivity)을 도시하는 또 다른 예시 표이다.
도 6은 본 발명의 일 실시예에 따른 파티션들의 세트의 상대적 중요성 및 상응하는 하드웨어 의존성들을 도시하는 제2 예시 표이다.
도 7은 본 발명의 일 실시예에 따른 프라이머리 컨트롤러를 선택하는 프로세스를 도시하는 흐름도이다.

Claims (18)

  1. 데이터 처리 시스템에서의 방법에 있어서,
    컨트롤러와 관련된 억세스가능한 디바이스들의 세트에 기초하여 컨트롤러에 의해 제공되는 서비스들을 분류(classify)하는 단계;
    특정 서비스(들)을 이용/요구하는 각각의 파티션들에 대한 파티션 우선순위의 레벨을 식별(identify)하는 단계;
    각각의 리던던트 컨트롤러가 충족시킬 수 있는 서비스들의 분류 및 파티션들의 파티션 우선순위의 레벨을 사용함에 의해 리던던트 컨트롤러들의 상대적 중요성을 결정하는 단계;
    하나 또는 그 이상의 리던던트 컨트롤러들의 상대적 중요성의 비교에 기초하여 프라이머리 컨트롤러를 선택하는 단계; 및
    (a) 초기 프로그램 로드(Initial Program Load, IPL) 시스템 기능들; 및 (b) 신뢰성, 가용성 및 보수성(reliability, availability and serviceability, RAS) 서비스들, 중 하나 또는 그 이상의 관리(management)를 가지고 상기 프라이머리 컨트롤러를 배정(assign)하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 분류하는 단계는,
    (a) 대응하는 컨트롤러가 통신할 수 있는 OS 파티션들의 수; (b) 상기 대응하는 컨트롤러가 억세스할 수 있는 하드웨어 디바이스들의 수; (c) OS 파티션 정 보; 및 (d) 상기 컨트롤러 서비스가 요구되는 OS 파티션들의 각각의 우선순위 레벨들, 중 하나 또는 그 이상에 기초하여 컨트롤러의 총체적 서비스들(collective services)에 가중된(weighted) 값을 배정하는 단계를 더 포함하되,
    상기 OS 파티션 정보는, (a) 상기 파티션의 배정되는 우선순위 레벨; (b) 억세스가능한 엔드 디바이스들(end devices)의 유형들; 및 (c) 상기 파티션을 시작하기 위해 요구되는 억세스가능한 엔드 디바이스들의 수, 중 하나 또는 그 이상을 포함하는, 방법.
  3. 청구항 1에 있어서, 상기 결정하는 단계는,
    (a) 대응하는 컨트롤러의 총체적 서비스들(collective services)의 관련 가중된 값(associated weighted value), 및 (b) 하나 또는 그 이상의 가장 높은 우선순위 파티션들을 충족시키기 위한 각각의 리던던트 컨트롤러의 기능(ability), 중 하나 또는 그 이상에 기초하여 동일한 레벨의 동작에서 리던던트 컨트롤러들을 비교하는 단계를 더 포함하는, 방법.
  4. 청구항 1에 있어서, 상기 선택하는 단계는,
    선택되는 컨트롤러가, (a) 대응하는 컨트롤러 서비스들의 가장 높은 관련 가중된 값(highest associated weighted value); (b) 가장 높은 우선순위 파티션을 충족시키기 위한, 다른 리던던트 컨트롤러들에 대한 상기 선택되는 컨트롤러의 배타적 기능(exclusive ability); 및 (c) 다른 동작 레벨들에서 컨트롤러들과 통신하기 위한 상기 선택되는 컨트롤러의 기능, 중 하나 또는 그 이상과 관련되는 경우, 상기 선택되는 컨트롤러를 프라이머리 컨트롤러로서 배정하는 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서, 상기 선택하는 단계는,
    (a) 동작의 다양한 레벨들, 및 (b) 상기 동작의 다양한 레벨들에서의 다른(different) 노드들, 중 하나 또는 그 이상에 대해 프라이머리 컨트롤러들을 선택하는 단계; 및
    선택되는 프라이머리 시스템 컨트롤러(System Controller, SC)가 덜 중요한 파티션을 위해 요구되는 프라이머리 노드 컨트롤러(Node Controller, NC)와 통신할 수 없을 경우, 각각의 노드에서 상기 프라이머리 NC로부터 시블링(sibling) NC로 상기 프라이머리 역할을 전환(switch)시키는 단계를 더 포함하는, 방법.
  6. 청구항 1에 있어서,
    임시 시스템 컨트롤러를 사용하여 데이터 처리 시스템에서의 부트 프로세스(boot process)를 촉진(facilitate)하는 단계를 더 포함하는, 방법.
  7. 데이터 처리 시스템에 있어서,
    하나 또는 그 이상의 프로세서들;
    하나 또는 그 이상의 시스템 컨트롤러들;
    메모리 시스템;
    하나 또는 그 이상의 통신 디바이스들에 대한 네트워크 연결; 및
    상기 프로세서 또는 임시 시스템 컨트롤러 상에서 실행될 경우, 청구항 1 내지 6 중 어느 한 항에 기재된 방법의 각 단계를 수행하는 기능들을 제공하는 유틸리티를 포함하는,
    데이터 처리 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 컴퓨터 판독가능 매체에 있어서, 상기 컴퓨터 판독가능 매체는 상기 컴퓨터 판독가능 매체 상에 구현되는 프로그램 코드를 포함하며, 상기 프로그램 코드는 리던던트 컨트롤러들을 갖는 데이터 처리 디바이스 내에서 실행될 때 엔드 디바이스들(end devices)의 각각의 세트를 갖는 다른 레벨들에서 동작하되, 상기 프로그램 코드는,
    청구항 1 내지 6 중 어느 한 항에 기재된 방법의 각 단계를 수행하는 기능을 제공하는,
    컴퓨터 판독가능 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020090115583A 2008-12-16 2009-11-27 리소스 뷰에 기초한 리던던트 컨트롤러의 선택 KR101120848B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/335,690 2008-12-16
US12/335,690 US8245233B2 (en) 2008-12-16 2008-12-16 Selection of a redundant controller based on resource view

Publications (2)

Publication Number Publication Date
KR20100069572A KR20100069572A (ko) 2010-06-24
KR101120848B1 true KR101120848B1 (ko) 2012-03-16

Family

ID=42241971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090115583A KR101120848B1 (ko) 2008-12-16 2009-11-27 리소스 뷰에 기초한 리던던트 컨트롤러의 선택

Country Status (3)

Country Link
US (1) US8245233B2 (ko)
KR (1) KR101120848B1 (ko)
CN (1) CN101794270B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582266B2 (en) * 2011-02-28 2017-02-28 Microsemi SoC Corporation Apparatus and methods for in-application programming of flash-based programable logic devices
US9021138B2 (en) * 2011-08-26 2015-04-28 Microsoft Technology Licensing, Llc Performance of multi-processor computer systems
KR101867960B1 (ko) 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
US9722859B2 (en) * 2014-01-23 2017-08-01 International Business Machines Corporation Evaluation of field replaceable unit dependencies and connections
US20160092287A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Evidence-based replacement of storage nodes
CN104536529A (zh) * 2014-12-26 2015-04-22 中经汇通电子商务有限公司 一种低功耗热数据服务器
CN104570721B (zh) * 2014-12-31 2017-06-30 重庆川仪自动化股份有限公司 冗余控制器主从状态确定方法
US9952948B2 (en) * 2016-03-23 2018-04-24 GM Global Technology Operations LLC Fault-tolerance pattern and switching protocol for multiple hot and cold standby redundancies
CN208156846U (zh) * 2018-04-10 2018-11-27 深圳市大疆创新科技有限公司 云台控制装置及云台系统
US11176009B2 (en) 2018-10-16 2021-11-16 International Business Machines Corporation Implementing power up detection in power down cycle to dynamically identify failed system component resulting in loss of resources preventing IPL
CN117319236A (zh) * 2022-06-22 2023-12-29 华为云计算技术有限公司 一种资源分配方法以及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050289388A1 (en) 2004-06-23 2005-12-29 International Business Machines Corporation Dynamic cluster configuration in an on-demand environment
US7035952B2 (en) 2003-09-24 2006-04-25 Hewlett-Packard Development Company, L.P. System having storage subsystems and a link coupling the storage subsystems
KR20090077068A (ko) * 2006-10-10 2009-07-14 엘에스아이 코포레이션 리던던트 저장 서브시스템에서 sas raid 컨트롤러 디바이스 채널들을 연결하는 시스템 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1818647A (en) * 1929-03-14 1931-08-11 Pronnecke Karl Merry-go-round
NZ295900A (en) * 1994-10-24 1999-01-28 Fisher Rosemount Systems Inc Control room radio access to distributed field devices
US6671776B1 (en) * 1999-10-28 2003-12-30 Lsi Logic Corporation Method and system for determining and displaying the topology of a storage array network having multiple hosts and computer readable medium for generating the topology
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7010715B2 (en) 2001-01-25 2006-03-07 Marconi Intellectual Property (Ringfence), Inc. Redundant control architecture for a network device
US20030115443A1 (en) * 2001-12-18 2003-06-19 Cepulis Darren J. Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon
US7000088B1 (en) * 2002-12-27 2006-02-14 Storage Technology Corporation System and method for quality of service management in a partitioned storage device or subsystem
US8578130B2 (en) 2003-03-10 2013-11-05 International Business Machines Corporation Partitioning of node into more than one partition
US20080022148A1 (en) 2003-12-11 2008-01-24 Amir Barnea Method and an Apparatus for Controlling Executables Running on Blade Servers
US7290170B2 (en) * 2004-04-07 2007-10-30 International Business Machines Corporation Arbitration method and system for redundant controllers, with output interlock and automatic switching capabilities
US20060174051A1 (en) 2005-02-02 2006-08-03 Honeywell International Inc. Method and apparatus for a redundancy approach in a processor based controller design
US7600055B2 (en) * 2006-01-03 2009-10-06 International Business Machines Corporation Apparatus, system, and method for firmware update of redundant controllers
US7424642B2 (en) 2006-04-24 2008-09-09 Gm Global Technology Operations, Inc. Method for synchronization of a controller
US8108853B2 (en) 2006-05-05 2012-01-31 Honeywell International Inc. Apparatus and method for allowing a fail-back to a prior software release in a process control system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035952B2 (en) 2003-09-24 2006-04-25 Hewlett-Packard Development Company, L.P. System having storage subsystems and a link coupling the storage subsystems
US20050289388A1 (en) 2004-06-23 2005-12-29 International Business Machines Corporation Dynamic cluster configuration in an on-demand environment
KR20090077068A (ko) * 2006-10-10 2009-07-14 엘에스아이 코포레이션 리던던트 저장 서브시스템에서 sas raid 컨트롤러 디바이스 채널들을 연결하는 시스템 및 방법

Also Published As

Publication number Publication date
CN101794270B (zh) 2012-04-18
CN101794270A (zh) 2010-08-04
KR20100069572A (ko) 2010-06-24
US20100153679A1 (en) 2010-06-17
US8245233B2 (en) 2012-08-14

Similar Documents

Publication Publication Date Title
KR101120848B1 (ko) 리소스 뷰에 기초한 리던던트 컨트롤러의 선택
EP3149591B1 (en) Tracking application deployment errors via cloud logs
US7992032B2 (en) Cluster system and failover method for cluster system
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US11847329B2 (en) Techniques for implementing fault domain sets
US8046692B2 (en) User interface mapping modules to deployment targets
US7673113B2 (en) Method for dynamic load balancing on partitioned systems
JP5680961B2 (ja) 物理イメージと仮想イメージの統合的な提供
CA2332084C (en) Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
KR100974156B1 (ko) 파일 서버 재초기화 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
US8327370B2 (en) Dynamic policy manager method, system, and computer program product for optimizing fractional resource allocation
JP5840548B2 (ja) データセンタ内のリソースの使用効率を改善するための方法及び装置
US8185905B2 (en) Resource allocation in computing systems according to permissible flexibilities in the recommended resource requirements
US20120151265A1 (en) Supporting cluster level system dumps in a cluster environment
US20090222560A1 (en) Method and system for integrated deployment planning for virtual appliances
JP2009151767A (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびコンピュータ・プログラムならびにデータ処理システム
US8056084B2 (en) Method and system for dynamically reallocating a resource among operating systems without rebooting of the computer system
US20140310703A1 (en) Multi-machine deployment and configuration of multi-tiered applications
JP2008293117A (ja) 仮想計算機の性能監視方法及びその方法を用いた装置
JPWO2013094048A1 (ja) 試験サーバ、情報処理システム、試験プログラムおよび試験方法
US9218140B2 (en) System and method for selectively utilizing memory available in a redundant host in a cluster for virtual machines
US8347293B2 (en) Mutual exclusion domains to perform file system processes on stripes
US20080288620A1 (en) Physical Network Interface Selection to Minimize Contention with Operating System Critical Storage Operations
US10346188B1 (en) Booting virtual machine instances in a distributed data processing architecture
US11032145B2 (en) Methods and systems that provision applications across multiple computer systems

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: 20150127

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee