KR101954480B1 - 클라우드-컴퓨팅 스탬프의 자동화된 구축 - Google Patents

클라우드-컴퓨팅 스탬프의 자동화된 구축 Download PDF

Info

Publication number
KR101954480B1
KR101954480B1 KR1020147021361A KR20147021361A KR101954480B1 KR 101954480 B1 KR101954480 B1 KR 101954480B1 KR 1020147021361 A KR1020147021361 A KR 1020147021361A KR 20147021361 A KR20147021361 A KR 20147021361A KR 101954480 B1 KR101954480 B1 KR 101954480B1
Authority
KR
South Korea
Prior art keywords
hardware
computing
hardware inventory
inventory
user device
Prior art date
Application number
KR1020147021361A
Other languages
English (en)
Other versions
KR20140120895A (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 KR20140120895A publication Critical patent/KR20140120895A/ko
Application granted granted Critical
Publication of KR101954480B1 publication Critical patent/KR101954480B1/ko

Links

Images

Classifications

    • 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/12Discovery or management of network topologies
    • 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/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명에 따르면 데이터 센터의 클라우드-컴퓨팅 패브릭과 균일하게 매끄럽게 상호작용하도록 하드웨어 인벤토리를 자동으로 구성하기 위한 방법, 시스템 및 컴퓨터 판독가능한 매체가 제공된다. 먼저, 각각 직렬 기반 접속 및 네트워크 기반 접속을 통해 네트워크 디바이스에 대한 통신을 전송 및 수신함으로써 하드웨어 인벤토리 내의 하드웨어 디바이스의 위치가 파악된다. 하드웨어 디바이스의 위치를 찾는 동안 수집된 정보는 검증을 위해 템플릿 파일에 대해 상호 참조된다. 이러한 정보는 또한 하드웨어 인벤토리의 인프라구조 상태를 생성하도록 사용된다. 인프라구조 상태는 하드웨어 인벤토리를 통합하도록 패브릭의 컨트롤러와 공유된다. 통합에 따라, 서비스 및 보안 조치가 패브릭의 도달가능성을 확대하기 위해서 데이터 센터의 패브릭 컴퓨팅 클러스터로서 지정되는 하드웨어 인벤토리 상에 공급되는 반면, 분산된 서비스는 패브릭 컨트롤러에 의해 관리되는 하드웨어 인벤토리의 입수가능한 부분들 상에 배치 및 이용가능하게 된다.

Description

클라우드-컴퓨팅 스탬프의 자동화된 구축{AUTOMATED BUILD-OUT OF A CLOUD-COMPUTING STAMP}
일반적으로, 분산된 서비스 애플리케이션은 (다양한 노드를 가로지르는) 클라우드 컴퓨팅 네트워크에서 호스팅되며 우선적으로 서비스-애플리케이션 구성요소의 리던던시, 동적 스케일 가능성 및 오토 힐링(auto-healing) 기능을 통해 높은 이용가능성을 촉진하도록 의도된다. 이러한 서비스 애플리케이션은 종종 서비스 애플리케이션 구성요소들의 그룹을 포함하는 부분들로 분할된다. 이러한 서비스 애플리케이션 구성요소는 하나 이상의 데이터 센터의 노드(예로서, 물리적 머신 및 가상 머신)에 걸쳐 호스팅될 수 있다. 종종, 서비스 애플리케이션의 사용 수요를 수용하고 전체 서비스 애플리케이션이 기본 하드웨어로부터의 지원의 부재로 인해 이용 불가능해지지 않음을 보장하는 것을 돕도록 이러한 데이터 센터의 컴퓨팅/저장 용량을 생성하거나 확장해야할 필요성이 존재한다.
데이터 센터의 확장은 데이터 센터 내의 기존 노드와 협력하여 동작하도록 기존 하드웨어 세트를 재구성하거나 새로운 세트의 하드웨어를 구성하는 것과 같은 다양한 시나리오를 포함할 수 있다. 일 예시에서, 각각이 복수의 블레이드를 수용하는 새로운 세트의 랙이 데이터 센터 노드를 상호접속시키는 패브릭 내에 통합되도록 타겟팅될 수 있다. 이러한 패브릭은 랙, 네트워크 디바이스(L2/3 스위치, 라우터, 로드 밸런서), 전원 및 직렬 디바이스 및 블레이드와 같이 새롭게 추가된 하드웨어와 현존하는 노드에 걸쳐 분산된 서비스 애플리케이션 구성요소가 마치 각 서비스 애플리케이션이 자체의 독립적인 컴퓨팅 디바이스 상에서 구동하고 있는 것처럼 상호작용할 수 있음을 보장하도록 돕는다.
데이터 센터의 확장을 수행할 때, 새로운 세트의 하드웨어를 패브릭으로 통합하기 위한 단계들이 현재 수동으로 수행된다. 이렇게 수동으로 수행되는 단계들은 종종 시간을 많이 소비하고 비효율적이며 일관적이지 않은 결과를 발생시키고, 따라서 잠재적으로 패브릭 내의 서비스 방해를 나타낸다. 따라서, 지정된 하드웨어 세트를 패브릭 내에 배치하도록 구축하는(build out) 자동화된 엔드-투-엔드 프로세스가 데이터 센터의 컴퓨팅/저장 용량을 확대하기 위한 효율적이고 강건하며 스케일가능한 프레임워크를 획득하는 것을 도울 것이다.
본 요약부는 상세한 설명에서 추가로 기술되는 개념들을 단순화된 형식으로 소개하도록 제공되었다. 본 요약부는 청구된 청구사항의 기본 특성 또는 중요 특성을 식별하기 위한 것이 아니며, 또한 청구된 청구사항의 범주의 결정을 돕도록 사용되는 것 또한 아니다.
본 발명의 실시예는 구성되지 않은 하드웨어의 인벤토리의 물리적 토폴로지(physical topology)를 검증하고 데이터 센터의 클라우드-컴퓨팅 패브릭 내에서 패브릭-컴퓨팅 클러스터(FCC)로서 하드웨어 인벤토리를 통합/배치하는 자동화된 부트스트랩 프로세스를 수행하는 시스템, 방법 및 컴퓨터 저장 매체에 관한 것이다. 부트스트랩 프로세스가 구현되는 자동화된 방식은 데이터 센터에 용량을 추가하거나 재구성하기 위해 수동으로 실행되는 절차로부터 촉발되는 전술한 문제의 결과를 방지한다. 따라서, 본 발명의 실시예에서 자동화된 부트스트랩 프로세스는 하드웨어 인벤토리의 구축을 가능하게 하며 일관되고 효율적인 방식으로 클라우드-컴퓨팅 패브릭 내에 통합되게 한다.
일반적으로, 부트스트랩 프로세스는 데이터 센터의 컴퓨팅/저장 용량 생성 또는 확대 지시를 수신함에 따라 트리거링된다. 실시예에서, 데이터 센터는 복수의 노드(예로서, 물리적 머신 또는 가상 머신), 네트워크 디바이스, 직렬 디바이스, 전원 디바이스 및 클라우드-컴퓨팅 패브릭을 통해 동작상 상호접속 및 관리되는 그외의 장비를 포함한다. 패브릭은 데이터 센터를 통해 분산되는 서비스 애플리케이션에 대한 기본적인 지원을 제공한다. 특히, 노드들에 걸쳐 분산되는 이러한 서비스 애플리케이션의 부분들(예로서, 롤 인스턴스 또는 프로그램 구성요소)은 패브릭의 컨트롤러에 의해 관리될 수 있다. 패브릭 컨트롤러는 일반적으로 패브릭의 기본적인 기능을 지원하는 컴퓨터 리소스, 네트워크 기어, 직렬 디바이스 및 전원 장치의 모니터링, 유지 및 건강 관리를 둘러싼 다양한 의무를 담당한다.
예시적인 실시예에서, 부트스트랩 프로세스는 이벤트(예로서, 데이터 센터의 용량 확장 호출)에 의해 트리거링됨에 따라 독립적인 단계들로 수행된다. 이러한 단계들은 각각 자족적인 워크플로우를 실행함으로써 수행되며 도 2에 일반적으로 도시된다. 먼저, 하드웨어 인벤토리의 초기 셋업을 명시하기 위한 공저(coauthoring) 단계가 수행될 수 있다. 이 단계는 고객의 전제에 따라 요청된 추가 용량을 명시하는 고객 의존 스키마를 수신하는 것; 의존 스키마를 만족시키는 하드웨어를 식별하는 것; 식별된 하드웨어를 구성하기 위한 값들을 수집하도록 고객과 인터페이싱하는 것; 값으로부터 심볼 표현을 생성하는 것; 하드웨어의 전달에 따라 심볼 표현을 이용하여 구성을 검증하는 것; 및 위상의 레이아웃을 기억화하는 템플릿 파일을 준비하는 것 중 하나 이상을 구현하는 워크플로우를 포함한다.
템플릿 파일이 준비되면, 네트워크 디바이스 및 하드웨어 디바이스의 발견 및 검증을 포함하는 단계가 시작될 수 있다. 이러한 디바이스들 각각에 대해 발견 및 검증을 수행하는 워크플로우는 일반적으로 하드웨어 디바이스를 둘러싸는 물리적 토폴로지(예로서, 인터랙(interrack) 위치 및 배선 배치)를 발견하도록 직렬 기반 접속 및/또는 네트워크 기반 접속을 통해 네트워크 디바이스와 통신하는 사용자 디바이스(들)를 포함한다. 이러한 사용자 디바이스(들)는 하드웨어 디바이스를 검증하기 위해 템플릿 파일에 대해 발견된 물리적 토폴로지를 상호참조할 수 있다. 위상 물리적/논리적 구성이 완전히 생성되면, 새로운 패브릭 인스턴스의 배치 또는 현존하는 패브릭 인스턴스의 확장이 시작될 수 있다.
다음으로, 데이터 센터의 패브릭 내에 하드웨어 인벤토리를 패브릭-컴퓨팅 클러스터(FCC)로서 배치하고 FCC에 대한 보안을 공급하는 단계를 발효하도록 사용자 디바이스(들)는 데이터 센터의 클라우드-컴퓨팅 패브릭과의 통신을 시작할 수 있다. 이러한 단계들은 데이터 센터 내의 현존하는 하드웨어 및 리소스와 상호작용하도록 하드웨어 클러스터를 셋업하는 것을 지원하는 다양한 워크플로우를 포함한다. 또한, 이러한 워크플로우는 하드웨어 인벤토리의 물리적 토폴로지를 검증함에 따라 수집되는 정보로부터 인프라구조를 준비하는 단계; 패브릭 컨트롤러와 인프라구조 상태를 공유함으로써 데이터 센터의 패브릭 내에 하드웨어 인벤토리를 통합시키는 단계; 하드웨어 인벤토리 내에 패브릭 상에서 구동하는 서비스를 배치하는 단계; 및 하드웨어 인벤토리를 데이터 센터 FCC로서 지정하는 단계들을 포함할 수 있다. 따라서, 부트스트랩 프로세스의 이러한 단계들이 연속적으로 수행되면, 하드웨어 인벤토리를 구축하고 데이터 센터의 패브릭 내에 하드웨어 인벤토리를 통합시키기 위한 엔드-투-엔드 자동화를 진행시킨다. 이러한 엔드-투-엔드 자동화는 데이터 센터 내에서 재확립되는 하드웨어 인벤토리 내에서(예를 들어, 데이터 센터 내의 새로운 FCC 인스턴스를 나타내기 위한 현존하는 FCC의 재구성) 또는 데이터 센터 외부의 사이트에서(원격 하드웨어 인벤토리를 데이터 센터 내의 새로운 FCC 인스턴스로서 통합) 효율적이고, 강건하며 스케일가능한 프레임워크를 추가로 획득할 수 있다.
본 발명의 실시예는 첨부된 도면을 참조하여 아래에서 상세하게 기술되었다.
도 1은 본 발명의 실시예를 구현하는데에 사용하기 적합한 예시적인 컴퓨팅 환경의 블록도;
도 2는 본 발명의 실시예에 따라 데이터 센터의 클라우드-컴퓨팅 패브릭에 하드웨어 인벤토리를 통합하는 부트스트랩 프로세스의 예시적인 단계를 도시한 순서도;
도 3은 본 발명의 실시예를 구현하는데에 사용하기 적합한, 하드웨어 인벤토리의 제 1 타입 위상을 발견, 검증 및 구성하는 예시적인 검증 에코시스템을 나타낸 그래픽 표현을 도시한 도면;
도 4는 본 발명의 실시예를 구현하는데에 사용하기에 적합한, 하드웨어 인벤토리의 제 2 타입 위상을 발견, 검증 및 구성하는 예시적인 검증 에코시스템을 나타낸 그래픽 표현을 도시한 도면;
도 5는 본 발명의 실시예를 구현하는데에 사용하기에 적합한, 데이터 센터의 클라우드-컴퓨팅 패브릭 내에 하드웨어 인벤토리를 통합 및 배치하기 위한 예시적인 부트스트랩 에코시스템을 나타낸 그래픽 표현을 도시한 도면;
도 6은 본 발명의 실시예에 따라 데이터 센터의 위상 내에 결합된 하드웨어 인벤토리를 발견 및 검증하기 위한 전반적인 방법을 도시한 순서도;
도 7은 본 발명의 실시예에 따라,
데이터 센터의 새로운 하드웨어 인벤토리를 패브릭-컴퓨팅 클러스터(FCC)에 구축함에 따라 또는 패브릭 인스턴스를 배치하기 위한 또는 데이터 센터 내에 현존하는 FCC 스탬프를 확장함에 따라 발견되어 검증된 새로운/재목적화된 하드웨어 인벤토리를 추가하기 위한 전반적인 방법을 도시한 순서도.
본 발명의 실시예의 청구사항은 법으로 명시된 요구사항을 만족시키도록 본 명세서에 특별하게 기술되었다. 그러나, 이러한 기술내용이 본 발명의 범주를 한정하는 것은 아니다. 오히려, 본 출원인은 청구된 청구사항이 다른 발명 또는 미래의 기술과 관련하여 본 명세서에 기술된 것과 상이한 단계들 또는 유사한 단계들과의 조합을 포함하는 다른 방식으로도 구현될 수 있음을 고려하였다.
일반적으로, 본 발명의 실시예는 부트스트랩(bootstrap) 프로세스를 사용함으로써 하드웨어의 인벤토리 또는 정제되지 않은 세트를 데이터 센터와 자동으로 병합하는 클라우드-컴퓨팅 패브릭(cloud-computing fabric)에서의 기술을 도입한다. 본 명세서에서 사용되는 "하드웨어 인벤토리(hardware inventory)"라는 용어는 임의의 특정한 구성요소의 구성으로 제한되지 않으며, 패브릭 내에서 결과적으로 통합될 수 있는 디바이스들(예로서, 네트워크 디바이스, 컴퓨팅 디바이스 및 파워 서플라이 디바이스)의 임의의 모음을 광범위하게 지칭한다. 일 예시에서, 하드웨어 인벤토리는 클라우드-컴퓨팅-네트워크 서비스 제공자의 고객에 의해 관리되는 사설 기업 네트워크 내에 위치될 수 있으며, 이때 이러한 타입의 하드웨어 인벤토리 상에서 어플라이언스로서 부트스트랩 프로세스를 구현하는 것은 데이터 센터와 사설 기업 네트워크 사이의 원거리 도달가능성을 허용한다. 다른 예시에서, 하드웨어 인벤토리는 클라우드-컴퓨팅-네트워크 서비스 제공자에 의해 관리되는 데이터 센터 내에 위치될 수 있으며, 이때 부트스트랩 프로세스를 구현하는 것은 데이터 센터의 컴퓨팅 용량/로컬 스토리지를 구축(building-out)하는 것을 가능하게 한다.
아래에서 상세하게 기술되는 바와 같이, 부트스트랩 프로세스는 부트스트랩 프로세스를 포함하는 다양한 단계들의 실행 및 오케스트레이션(orchestration)을 구동하는 하나 이상의 워크플로우 엔진(도 5의 사용자 디바이스(310) 상에서 구동)을 이용한 엔드-투-엔드(end-to-end) 자동화를 특징으로 한다. 실시예에서, 이러한 단계들은 각 단계가 다른 단계 또는 워크플로우의 병행 동작에 의존하지 않고 개별적으로 완료까지 적용 및 구동될 수 있도록 독립적인 워크플로우로서 실행될 수 있다. 단계들이 자립식으로 독립적으로 실행되게 함으로써, 각 단계는 이전의 또는 후속하는 워크플로우의 임의의 부정적인 상호작용 없이 하드웨어 인벤토리에 일관적으로 점진적 개선을 전달한다.
위에서 본 발명의 실시예에 대한 개요를 간략하게 기술하였으며, 본 발명의 실시예를 구현하기에 적합한 예시적인 운영 환경이 아래에서 기술된다.
운영 환경
먼저 도 1을 참조하면, 본 발명의 실시예를 구현하기 위한 예시적인 운영 환경이 도시되었으며 일반적으로 컴퓨팅 디바이스(100)로 지정되었다. 컴퓨팅 디바이스(100)는 단지 적절한 컴퓨팅 환경의 일 예시이며 본 발명의 이용 또는 기능의 범주에 대한 어떠한 제한을 제안하기 위한 것은 아니다. 또한 컴퓨팅 디바이스(100)가 도시된 구성요소들 중 임의의 하나 또는 구성요소들의 조합과 관련된 임의의 종속성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
본 발명은 PDA 또는 그외의 핸드헬드 디바이스와 같은 컴퓨터 또는 다른 머신에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능한 명령을 포함하는 머신 이용가능한 명령 또는 컴퓨터 코드의 일반적인 맥락으로 기술될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함하는 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추출 데이터 타입을 수행하는 코드를 지칭한다. 본 발명은 핸드헬드 디바이스, 고객 전자기기, 범용 컴퓨터, 전용 컴퓨터 등을 포함하는 다양한 시스템 구성에서 실시될 수 있다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다.
도 1을 참조하면, 컴퓨팅 디바이스(100)는 메모리(112), 하나 이상의 프로세서(114), 하나 이상의 프레젠테이션 구성요소(116), 입력/출력(I/O) 포트(118), 입력/출력 구성요소(120) 및 예시적인 파워 서플라이(122)를 직접적으로 또는 간접적으로 연결하는 버스(110)를 포함한다. 버스(110)는 (어드레스 버스, 데이터 버스, 또는 이들의 조합과 같은) 하나 이상의 버스를 나타낼 수 있다. 도 1의 다양한 블록들이 명확성을 위해서 실선으로 도시되었지만, 실제로는 기술하는 다양한 구성요소들은 그렇게 명백한 것이 아니며, 비유적으로 라인들은 보다 정확하게는 애매하고 경계가 명확히 정의되지 않았을 수 있다. 예를 들어, 디스플레이 디바이스와 같은 프레젠테이션 구성요소가 I/O 구성요소로 간주될 수 있다. 또한, 프로세서가 메모리를 구비할 수도 있다. 본 출원인은 이것은 기술의 특성으로서 인지하며 도 1의 도면이 단지 본 발명의 하나 이상의 실시예와 함께 사용될 수 있는 예시적인 컴퓨팅 디바이스의 일례임을 반복한다. "워크스테이션," "서버," "랩탑," "핸드헬드 디바이스" 등과 같은 카테고리들은 도 1의 범주 내에서 고려되며 "컴퓨팅 디바이스"로 지칭되기 때문에 이들 사이의 구별은 이루어지지 않는다.
컴퓨팅 디바이스(100)는 전형적으로 다양한 컴퓨터 판독가능한 매체를 포함한다. 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스(100)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 휘발성 및 비휘발성 매체, 착탈형 및 비착탈형 매체를 모두 포함한다. 예시로서, 컴퓨터 판독가능한 매체는 컴퓨터 저장매체 및 통신 매체를 포함할 수 있지만 이것으로 한정되지는 않는다. 컴퓨터 저장 매체는 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈, 또는 그외의 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체 모두를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 그외의 메모리 기술, CD-ROM, DVD 또는 그외의 광학 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 그외의 자기 스토리지 디바이스, 또는 원하는 정보를 저장하도록 사용될 수 있으며 컴퓨팅 디바이스(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이것으로 제한되는 것은 아니다. 통신 매체는 전형적으로 컴퓨터 판독가능한 명령, 데이터 구조, 프로그램 모듈 또는 반송파와 같은 변조된 데이터 신호 또는 그외의 전송 메커니즘 내의 그외의 데이터를 포함하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호(modulated data signal)"라는 표현은 신호 내의 정보를 인코딩하는 것과 같은 방식으로 변경 또는 설정된 하나 이상의 자신의 특징을 갖는 신호를 의미한다. 예시로서, 통신 매체는 유선 네트워크 또는 다이렉트-와이어드 접속과 같은 유선 매체 및 음향, RF, 적외선 및 그외의 무선 매체와 같은 무선 매체를 포함한다. 전술된 것들의 조합 역시 컴퓨터 판독가능한 매체의 범주 내에 포함되어야만 한다.
메모리(112)는 휘발성 및/또는 비휘발성 메모리의 형태인 컴퓨터 저장 매체를 포함한다. 메모리는 착탈형, 비착탈형, 또는 이들의 조합일 수 있다. 예시적인 하드웨어 디바이스는 고체-상태 메모리, 하드 드라이브, 광학 디스크 드라이브 등을 포함한다. 컴퓨팅 디바이스(100)는 메모리(112) 또는 I/O 구성요소(120)와 같은 다양한 엔티티로부터 데이터를 판독하는 하나 이상의 프로세서를 포함한다. 프레젠테이션 구성요소(들)(116)는 사용자 또는 다른 디바이스에게 데이터 표시를 보여준다. 예시적인 프레젠테이션 구성요소는 디스플레이 디바이스, 스피커, 프린팅 구성요소, 진동 구성요소 등을 포함한다.
I/O 포트(118)는 일부가 내장될 수 있는 I/O 구성요소(120)를 포함하는 다른 디바이스에 컴퓨팅 디바이스(100)가 논리적으로 연결되도록 한다. 예시적인 구성요소는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 프린터, 무선 디바이스 등을 포함한다.
부트스트랩 프로세스의 단계들
하드웨어의 인벤토리와 데이터 센터의 클라우드-컴퓨팅 패브릭 사이의 연동(interoperation)을 확립하기 위한 부트스트랩 프로세스(bootstrap process)의 개별적인 단계들이 도 2를 참조하여 기술될 것이다. 일반적으로, 도 2는 본 발명의 실시예에 따라 하드웨어 인벤토리를 데이터 센터의 패브릭으로 결합시키기 위한 부트스트랩 프로세스의 예시적인 5개의 단계를 나타내는 순서도(200)를 도시한다. 실시예에서, 아래에서 논의되는 단계들을 이용하여 하드웨어 인벤토리를 패브릭 컴퓨팅 클러스터(FCC)로서 구축하는 것은 사용자 디바이스(도 3의 참조번호(310) 참고) 상의 구성 소프트웨어(도 3의 참조번호(311) 참조)에 의해 수행될 수 있다. 사용자 디바이스는 하드웨어 인벤토리, 데이터 센터, 및/또는 그외의 네트워크 디바이스와 함께 부트스트랩 프로세스의 하나 이상의 단계를 각각 구현하는 다양한 에코시스템을 형성하도록 일치하게 동작한다.
도 2로 돌아가면, 블록(210)에 도시된 바와 같이, 부트스트랩 프로세스의 제 1 단계는 하드웨어 인벤토리의 초기 셋업을 명시하기 위한 워크플로우를 포함한다. 일반적으로, 이러한 워크플로우의 결과로 블록(230)과 블록(240) 사이에서 패브릭 네트워크를 사용하기 위해 필요한 논리적/물리적 구성을 생성시킨다. 제 1 단계 동안에, 워크플로우는 하드웨어 인벤토리를 데이터 센터의 FCC로서 공개하기 이전에 하드웨어 인벤토리의 초기 구성에 대한 이해를 얻는 것을 포함할 수 있다. 예를 들어, 제 1 단계 워크플로우는 하드웨어 인벤토리의 초기 구성이 예상된 하드웨어 레이아웃(예를 들어, 디바이스 위치, IP 어드레스, VLAN 및 배선(wiring))과 일치하고 데이터 센터에 의해 시행되는 소정의 규정(예를 들어, 플래그된(flagged) 비보안 구성요소가 존재하지 않으며 원하는 통신 구성요소가 존재함)을 만족시키는 것을 보장하기 위해 하드웨어 인벤토리의 초기 구성을 검증하도록 시도할 수 있다.
예시적인 실시예에서, 제 1 단계의 워크플로우는 초기 논리 소스 및 그러한 소스의 적절한 사양이 지원되는 구성에 부합한다는 것을 검증하는 것과 관련된다. 검증의 일 예시는 구성에서 제공되는 충분한 네트워크 리소스(예를 들어, IP 어드레스, VLAN, 포트 등)가 사양에 의해 표현된 원하는 구성에 부합하는지 여부를 결정하는 것을 포함할 수 있다. 예를 들어, 제 1 단계 워크플로우는 이러한 조건이 사양 내에 존재한다면 머신마다 적어도 하나의 IP 어드레스가 제공된다고 검증할 수 있다.
검증의 다른 예시는 (예로서, 현재 사용중인 리소스가 우연히 제공된) 알려진 현존하는 범위와 오버랩하는 구성이 존재하는지 여부를 결정하는 것을 포함할 수 있다. 검증의 또 다른 예시는 계획된 리소스의 세트가 지원된 구성을 구성하는지 여부를 결정하는 것을 포함할 수 있다(예를 들어, 사양을 만족시키기 위한 각각의 요구되는 리소스가 충분히 존재하는가, 리소스 타입들의 조합이 지원되는가, 검출된 TOR 스위치가 검출된 블레이드와 호환가능한가). 검증의 또 다른 예시는 최종사용자/고객과의 상호작용이 실행을 위해 요구되는 리소스를 수집하는데에 필요한지 여부를 결정하는 것을 포함한다(예를 들어, 비밀번호, 어드레스, IP 블록, VLAN 등).
블록(220)에서 도시된 바와 같이, 하드웨어 인벤토리 상에서 네트워크 디바이스의 발견, 검증(validation) 및 배선 검증을 위한 제 2 단계가 구현될 수 있다. 실시예에서, 제 2 단계의 워크플로우는 각각 직렬 기반 접속 및 네트워크 기반 접속을 통해 네트워크 디바이스의 TOR(top-of-rack) 스위치 및 직렬 액세스 디바이스와 통신하는 것을 포함할 수 있다. 또한, 제 2 단계 워크플로우는 하드웨어 디바이스(예로서, 프로세서, 프로세싱 장치, 컴퓨팅 디바이스, 서버 및 랙(rack) 내에 삽입된 블레이드)가 선택적으로 분석을 위해 트래픽을 사용자 디바이스에 전송하게 하도록 TOR 스위치 및/또는 직렬 액세스 디바이스를 프롬프트(prompt)하는 명령을 하나 이상의 접속 상에서 전송하는 것을 포함할 수 있으며, 상태를 리셋하도록 선택적으로 디바이스를 파워-사이클(power-cycle) 하기 위한 전원 분배 장치(PDU)의 사용을 포함할 수 있다.
이러한 분석은 블록(230)에 도시된 바와 같이 하드웨어 디바이스를 발견 및 검증하는 것을 포함할 수 있다. 즉, 부트스트랩 프로세스의 제 3 단계는 하드웨어 디바이스로부터 사용자 디바이스로 운반되는 데이터 패킷을 사용한다. 제 3 단계의 워크플로우는 하드웨어 디바이스의 위치 또는 부재, 구성 및 내부 접속을 결정하도록 데이터 패킷의 콘텐츠(예로서, 페이로드 및 헤더)를 파싱(parsing)하는 것을 포함할 수 있다.
실시예에서, 제 3 단계 워크플로우는 디바이스/블레이드 자체 내에서의 하드웨어 및/또는 소프트웨어 구성요소(예로서, BIOS 및 디바이스 펌웨어)의 검증, 업데이트 및/또는 구성을 수행하기 위해 다양한 디바이스 및/또는 블레이드에 특정한 워크플로우, 툴 등도 전송할 수 있다. 다른 실시예에서, 제 3 단계의 워크플로우는 디바이스/블레이드를 갖는 구성요소가 기능적이며 패브릭 필요조건을 만족시킨다는 것을 검증하기 위한 역할을 하는 "스모크 테스트(smoke test)"를 실행할 수 있다. 또한, 제 3 단계 워크플로우는 기록 및 궁극적인 이용을 위해서 디바이스/블레이드의 모델, 제조자 및 펌웨어 버전을 식별할 수 있다.
블록(240)에 도시된 바와 같이, 부트스트랩 프로세스의 제 4 단계는 데이터 센터의 패브릭 내의 FCC 인스턴스로서 인벤토리를 사용하는 것을 포함한다. 예시적인 실시예에서, 제 4 단계 워크플로우는 (예를 들어 이전 단계들 중 적어도 하나 동안 생성된) 하드웨어 인벤토리의 인프라구조 상태를 패브릭과 공유하는 것과, 패브릭과의 상호작용을 허용하는 하드웨어 인벤토리 상에서 서비스를 설치하는 것을 포함할 수 있다. 하드웨어 인벤토리 상에 서비스를 설치하는 것은 아래의 문단에서 논의되는 복수의 시나리오들 중 하나에 해당할 수 있다. 블록(250)에 도시된 바와 같이, 부트스트랩 프로세스의 제 5 단계는 클러스터에 걸친(cluster-wide) 검증 및 하드웨어 인벤토리가 FCC 인스턴스로서 지정되면 하드웨어 인벤토리 상에서의 보안 조치 공급을 포함한다. 예시적인 실시예에서, 제 5 단계 워크플로우는 새로운 FCC 인스턴스와 연관된 비밀 스토어와 패브릭의 컨트롤러 간의 통과 데이터(예로서, 디바이스 크리덴셜(device credential), 오리지널 증명서(original certificate), 개인 키 및 패스워드)를 포함할 수 있다.
부트스트랩 프로세스의 5개의 별개의 단계들이 기술되었지만, 데이터 센터의 패브릭 내에 하드웨어 인벤토리를 결합시키는 것의 진행을 돕는 다른 타입의 워크플로우의 적절한 배치가 사용될 수 있으며, 본 발명의 실시예들이 본 명세서에 기술된 5개의 단계로 제한되지 않는다는 것을 이해해야만 한다. 예를 들어, 본 발명의 실시예는 개별적인 단계(예를 들어, 제 5 단계)의 워크플로우를 상호 배타적인 방식으로 수행될 수 있는 별개의 워크플로우(예를 들어, 클러스터에 걸친 검증 및 보안 공급)로 분할하는 것을 고려한다.
이제 하드웨어 인벤토리 상에 서비스를 설치하기 위한 예시적인 다수의 시나리오가 기술될 것이다. 일 시나리오에서, 하드웨어 인벤토리는 데이터 센터에 대해 새롭고 이전에 구성되지 않은 장비를 나타낸다. 따라서, 새로운 하드웨어는 데이터 센터의 현존하는 리소스와 투명하게 동작하도록 구성되며, 클라우드-컴퓨팅 패브릭의 컨트롤러에 의해 관리되는 클라우드-컴퓨팅 스탬프 또는 새로운 FCC 인스턴스로서 데이터 센터 내에 깨끗하게 통합된다.
다른 시나리오에서, 하드웨어 인벤토리는 데이터 센터가 추가적인 스토리지/컴퓨팅 용량을 요청함에 따라 추가되는 데이터 센터의 로컬 익스텐션을 나타낸다. 로컬 익스텐션은 패브릭 컨트롤러에 의한 관리를 가능하게 하도록 구축하는 블레이드들의 랙(rack)을 포함할 수 있다. 실시예에서, 구축 프로세스는 랙 내에서 블레이드들의 배선 패턴을 발견하는 것과, 사전정의된 템플릿 파일(template file)에 대해 배선 패턴을 검증하는 것과, 블레이드가 데이터 센터 내로 통합되는 것을 승인하는 것을 포함한다. 사실상, 블레이드 구축은 랙 내에서의 임의의 잠재하는 배선 이슈 또는 하드웨어 이슈(예로서, 결손 부분의 물리적 결함, 부분들의 유효하지 않은 버전, 또는 부적절한 구성)가 검출되어 해결됨을 보장하도록 도울 수 있으며, 그에 따라 데이터 센터 내의 블레이드들의 결합이 구동중인 서비스에 대해서 데이터 센터에 의해 제공되고 있는 라이브 기본적 지원에 부정적인 영향을 미치지 않을 것임을 보장한다.
또 다른 시나리오에서, 하드웨어 인벤토리는 현재 데이터 센터의 리소스를 상호연결하는 패브릭으로부터 분할되고 구분된 클라우드-컴퓨팅 패브릭의 자체 인스턴스로 구성된다. 따라서, 하드웨어 인벤토리가 데이터 센터 내에 결합되면, 데이터 센터는 오리지널 데이터 센터에 할당된 서비스로부터 새롭게 부트스트랩된 하드웨어 인벤토리로 할당된 서비스를 분리하도록 기능하는 적어도 두 개의 클라우드-컴퓨팅 패브릭(예로서, 운영 시스템)을 구동할 것이다. 이러한 방식으로, 별개의 패브릭이 특정한 고객의 서비스 전용일 수 있으며, 그에 따라 데이터 센터 내에서일부 서비스를 다른 서비스로부터 가상적으로 및 물리적으로 제외/보호한다(예를 들어, 데이터 센터 컨테이너 내의 구축/부트스트랩).
RMA(return manufacture authorization) 시나리오로 지칭되는 또 다른 시나리오에서, 하드웨어 인벤토리는 (아래에서 "패브릭 컨트롤러"로 지칭되는) 데이터 센터의 패브릭의 컨트롤러에 의해 도달가능하지 않은 것으로(예로서, 동작 불능 또는 비접속된) 간주되는 컴퓨팅 디바이스(들) 또는 다른 디바이스(예로서, 네트워크, PDU 및 시리얼)를 나타낸다. 하드웨어의 라이프사이클 관리 중에, 패브릭 컨트롤러는 데이터 센터 내에 집합된 컴퓨팅 디바이스(예로서, 물리적 머신 및/또는 가상 머신)의 상태를 주기적으로 요청할 수 있다. 상태 요청은 각각 컴퓨팅 디바이스 상에서 구동중인 에이전트에 요청을 전달하는 것과, 그에 대한 답으로 헬스 정보를 수신하는 것을 포함할 수 있다. 만약 패브릭 컨트롤러가 어떠한 이유로(예를 들어 컴퓨팅 디바이스를 패브릭 컨트롤러에 상호접속시키는 네트워크 디바이스의 고장) 특정한 컴퓨팅 디바이스에 도달할 수 없는 경우에, 패브릭 컨트롤러는 하드웨어 인벤토리가 도달가능하지 않음을 나타내는 경고를 할 수 있다.
하드웨어 인벤토리가 도달가능하지 않은 것으로 인식되면, 패브릭 컨트롤러는 오토-힐링(auto-healing) 절차를 개시할 수 있다. 실시예에서, 오토-힐링 절차는 적어도 대피(evacuation) 및 검증의 단계들을 포함하며, 이때 검증은 종종 부트스트랩 프로세스의 하나 이상의 단계 내에서도 실행된다. 대피 단계는 도달가능하지 않은 하드웨어 인벤토리 상에서 리소스를 소비하는 서비스(예로서, 소비자측 소유 애플리케이션 및 시스템 기반 애플리케이션)를 대체 하드웨어 인벤토리에 전송하는 것을 포함할 수 있다. 이렇게, 대피는 서비스에 대한 가시성이 검증 및 유지보수 동안에 영향을 받지 않기 때문에 오토-힐링 절차가 데이터 센터의 고객에게 투명함을 보장한다.
대피가 성공적으로 수행되면, 검증 단계가 호출된다(invoke). 예시적인 실시예에서, 검증 단계는 도달가능하지 않은 하드웨어 인벤토리 내에 존재하는 구성요소들의 구성 설정을 검증하고 도달가능하지 않은 하드웨어 인벤토리의 예상된 물리적 토폴로지(예를 들어, 템플릿 파일 내에 제공)에 대해 도달가능하지 않은 하드웨어 인벤토리의 검출된 물리적 토폴로지(예로서, 구성요소들 간의 링크 및 디바이스들 간의 배선)를 상호참조하는 부트스트랩 프로세스의 워크플로우를 실행하는 것을 포함한다. 이렇게, 검증 단계는 도달가능하지 않은 하드웨어 인벤토리가 패브릭 컨트롤러의 드라이버와 적절하게 상호작용하도록 구성되는지 여부를 결정하며, 이때 드라이버는 특정한 하드웨어 구성과 상호작용하도록 설계된다.
아래에서 더욱 자세하게 기술되는 바와 같이, 검증 단계는 도달가능하지 않은 하드웨어 인벤토리를 오프라인으로 획득하는 것을 포함하며, 이는 대피 단계를 앞서서 수행하는 이유이다. 일반적으로, 도달가능하지 않은 하드웨어 인벤토리의 디바이스 및/또는 데이터 센터의 디바이스 상의 서비스의 실행을 방해할 수 있는 몇몇 파괴적인 동작들이 발생하기 때문에 도달가능하지 않은 인벤토리는 오프라인으로 획득된다. 이러한 파괴적인 동작들은 (PDU를 통해) 선택적으로 전원을 구동하도록 직렬-액세스 디바이스를 요청함으로써 블레이드로의 전원의 흐름을 조작하는 것(예로서, 턴온 및 턴오프); 조작된 블레이드로부터 전송된 트래픽으로부터 정보를 수집하는 것; 트래픽 내에서 전송된 데이터 패킷의 콘텐츠로부터 정보(예로서, 블레이드의 MAC 어드레스)를 추출하는 것; 및 템플릿 파일에 대해 추출된 정보를 평가하고 검증을 수행함으로써 블레이드의 배선 및 위치를 검증하는 것 중 하나 이상을 포함할 수 있다. 직렬-액세스 디바이스는 전형적으로 아웃-오브-밴드(out-of-band) 통신을 위해 사용되는 반면, TOR 스위치는 (예를 들어, 이더넷을 통한) 인-밴드(in-band) 통신을 사용한다.
블레이드로의 전원을 선택적으로 구동하는 예시에서, 패브릭 컨트롤러는 알려지지 않은/유효하지 않은 하드웨어 인벤토리의 블레이드에 공급하는 포트의 범위에 대한 전원을 턴오프할 수 있다. 다음으로, 패브릭 컨트롤러는 대상 블레이드로 연결하는 선택된 포트에 전원을 턴온하도록 PDU에 직접 또는 간접적으로 지시할 수 있다. 그 다음 패브릭 컨트롤러는 현재 트래픽을 전송하는 대상 블레이드로부터 전송되고 있는 데이터 패킷으로부터 MAC 어드레스를 판독할 수 있다. 따라서, 선택된 포트가 템플릿 파일의 예상 포트와 일치할 때 대상 블레이드의 접속성이 검증된다. PDU로부터 전원을 수신하기 위해 선택된 포트를 검증하는 것을 넘어서, 검증 단계는 알려지지 않은 하드웨어 인벤토리의 블레이드들에 할당된 포트들의 범위 내에 있는 어떤 포트가 대상 블레이드에 접속되었는지를 결정할 수 있는 TOR 스위치를 더 포함할 수 있다. 이러한 결정은 대상 블레이드로부터 전달되고 있는 데이터 패킷을 수신하고 있는 포트 범위의 대상 포트를 식별함으로써 이루어진다.
공저 단계( coauthoring phase )를 위한 워크플로우
공저 단계(도 2의 블록(210)을 참고)의 워크플로우는 하드웨어 인벤토리의 오리지널 셋업을 명시하는 것을 용이하게 하며, 그 결과 검증 동안 컨설팅된 템플릿 파일을 생성한다. 처음에, 오리지널 장비 제조자(OEM)가 (예를 들어 제품에 대한 계약의 일부로서) 하드웨어 인벤토리를 배송하기 전에 상호 디바이스 배선을 검증할 것이 예상된다. 이것은 도 2의 블록(210, 220, 230)에 도시된 워크플로우의 처음 3개의 단계를 개별적으로 각각 호출함으로써 수행될 수 있다. 또한, OEM은 하드웨어 인벤토리의 디바이스 내에 설치된 소프트웨어의 속성을 기술하는 명단을 제공하는 툴을 사용할 것으로 예상된다. 배선 검증 및 소프트웨어 속성 명단은 적절한 하드웨어 인벤토리의 선택을 돕기 위해 하드웨어 인벤토리와 연관하여 유지된다. 일부 실시예에서, OEM은 하드웨어 인벤토리를 제로 구성(zero configuration)으로 설정할 수 있다.
공저 단계 워크플로우의 동작에서, 하드웨어 인벤토리에 대한 주문은 스토리지/컴퓨팅 용량 결함을 개선하도록 관리자에 의해 자동으로 또는 수동으로 개시될 수 있다. 일 예시에서, 주문을 개시하는 것은 용량 결함을 충족시키도록 타겟팅된 장비(예를 들어, 디바이스, 랙 및 소프트웨어)의 세트를 둘러싸는 비특이적 데이터를 갖는 형식(예를 들어, XML 문서)을 생성하는 것을 포함한다. 관리자에 의해 자동으로 또는 수동으로 예비 값이 형식에 입력될 수 있으며, 이때 예비 값은 데이터 센터 특정 세부사항(예를 들어, VLAN 범위, 포트 범위 및 IP 어드레스) 또는 고객 정의된 토폴로지 스키마를 반영한다. 토폴로지 스키마는 하드웨어 인벤토리의 하드웨어 및 네트워크 디바이스들의 배선 패턴, 수량 및 타입을 정의하며 디바이스를 구동하기 위해 사용되는 추가적인 정보(예로서, 랙의 수, VLAN 범위, 포트의 수 및 지원 리소스)를 나타낸다.
값을 입력하면, 형식이 심볼 표현으로 변환될 수 있다. 심볼 표현은 장비(예로서, 디바이스)의 하이 레벨의 논리적 청사진 및 그들 사이에서의 라우팅(예로서, 배선)으로서의 역할을 한다. 예를 들어, 심볼 표현은 공동 VLAN 내에서 어떤 장비의 조각들이 그룹화되었는지를 나타낼 수 있다.
심볼 표현은 적절한 하드웨어 인벤토리를 선택하도록 시나리오에 기초하여 OEM, 고객, 또는 관리자에게 전송될 수 있다. 일 예시에서, 적절한 하드웨어 인벤토리의 선택은 OEM에서 하드웨어 인벤토리와 연관하여 유지되는 소프트웨어-속성 명단 및/또는 배선 검증에 대해 심볼 표현을 비교하는 것을 포함한다. 적절한 하드웨어 인벤토리를 선택하면, 선택된 하드웨어 인벤토리가 고객 또는 관리자에 의해 OEM에 제공된 경량 소프트웨어를 이용하여 점검될 수 있다. 실시예에서, 경량 소프트웨어는 또한 OEM 핸드-오프 이전에 발생하는 데이터 센터로의 하드웨어 인벤토리 도달에 따라 전달 도크(dock)에서 구동될 수 있다. 이러한 이른 점검은 수송 동안 하드웨어 인벤토리에 도입되었을 수 있는 임의의 이슈를 검출할 수 있다.
일반적으로, 경량 소프트웨어는 디바이스의 IP 또는 MAC 어드레스에 대해 알지 않고도 하드웨어 인벤토리 디바이스 상에서 구동될 수 있는 태스크들의 세트를 실행한다. 동작시에, 경량 소프트웨어는 배송에 앞서 OEM에서 물리적 배선 온사이트를 검증하며, 이때 검증은 선택이 적절했음을 보장하도록 심볼 표현을 컨설팅한다. 경우에 따라, 경량 소프트웨어 검증은 도 2의 블록(220, 230)에 도시된 단계들의 대안적인 구현으로서 사용될 수 있으며, 글로벌 액세스 가능한 IP 어드레스가 요청되지 않도록 네트워크 점검이 변경된다.
OEM으로부터의 배송 이후에, 관리자는 디바이스 및 디바이스의 배선이 하드웨어 인벤토리의 배달에 따라 심볼 표현을 만족시킴을 시각적으로 검증할 수 있다. 또한, 관리자는 하드웨어 인벤토리의 배선(예로서, 직렬 및 네트워크 케이블 접속)을 시각적으로 검사할 수 있고, 검사에 기초하여 하드웨어 인벤토리의 실제 값(예를 들어, 포트 넘버, IP 어드레스, VLAN 멤버십 및 디바이스 위치)을 결정할 수 있으며, 심볼 표현으로 입력된 예비 값을 실제 값으로 대체/변환할 수 있다. 관리자에 의한 수동 검사 외에도, 만약 네트워크 디바이스에 대한 디바이스 드라이버가 이용가능하다면 검사는 자동화될 수 있으며, 이때 자동화는 심볼 표현 사양마다 네트워크 디바이스를 구성하도록 사용될 수 있다. 배달된 하드웨어 인벤토리로부터 마이닝된(mined) 실제 값으로 대체 또는 변환된 예비 값을 갖는 이러한 심볼 표현은 본 명세서에서 "템플릿 파일"로 지칭된다. 아래에서 더욱 자세하게 기술되는 바와 같이, 템플릿 파일은 사용자 디바이스가 하드웨어 인벤토리에 접속된 방식을 나타내고 하드웨어 인벤토리가 적절하게 구성되었다는 보장을 제공하도록 부트스트랩 프로세스의 후속하는 단계에서 사용된다.
검증 에코시스템( verification ecosystem )의 아키텍처
이제 하드웨어 인벤토리의 하드웨어 디바이스 및 네트워크를 발견, 검증 및 구성하는 검증 에코시스템의 아키텍처가 도 3 및 4를 참고하여 기술될 것이다. 일반적으로, 도 3은 하드웨어 인벤토리(360)의 제 1 타입 위상을 발견, 검증 및 구성하기 위한 검증 에코시스템(300)을 나타낸 그래픽 표현을 도시하는 반면, 도 4는 하드웨어 인벤토리(360)의 제 2 타입 위상을 발견, 검증 및 구성하기 위한 검증 에코시스템(400)을 나타낸 그래픽 표현을 도시한다.
먼저 도 3을 참고하면, 검증 에코시스템(300)은 하드웨어 인벤토리(360)의 구성요소들과 통신가능하게 연결된 사용자 디바이스(310)를 포함한다. 예시적인 실시예에서, 통신 연결은 적어도 네트워크 기반 접속 및 직렬 기반 접속으로 조직화된다. 도 3에 도시된 바와 같이, 직렬 기반 접속은 직렬 집합기(320)를 통해 직렬 액세스 디바이스(361, 362)와 사용자 디바이스(310) 사이의 통신 경로를 포함하며, 이때 직렬 집합기(320)는 (예로서, 사용자 디바이스(310)로부터 스트리밍하는 데이터 패킷 내에서 운반되는 어드레스를 프로세싱함으로써) 사용자 디바이스(310)로부터 적절한 직렬 액세스 디바이스로 명령을 적절하게 분배하는 책임을 가진다. 네트워크 기반 접속은 L3 집합기 스위치(330)를 통해 사용자 디바이스(310)와 TOR(top-of-rack) 스위치(350, 351, 352) 사이의 통신 경로를 포함하며, 이때 L3 집합기 스위치(330)는 액세스 라우터(340)와 반대로 TOR 스위치(350, 351, 352)로부터 사용자 디바이스(310)로 데이터 패킷을 적절하게 전달하는 책임을 갖는다(예로서, 복수의 네트워크 디바이스로부터의 데이터 패킷을 종합). TOR 스위치(350, 351, 352)와의 통신은 직렬 집합기(320)를 통해서도 수행될 수 있음을 인지해야 한다. 동작시에, 액세스 라우터(340)는 하드웨어 인벤토리(360)와 현존하는 인프라구조 사이의 업링크로서 동작한다. 따라서, 도 3에 표시된 것과 같이 상호동작가능하게 제공되었을 때, 액세스 라우터(340)는 인터넷뿐 아니라 현존하는 인프라구조의 나머지로부터 하드웨어 인벤토리(360)를 분리하는 역할을 한다. 아래에서 더욱 자세하게 기술되는 바와 같이, 업링크를 통해 진입하거나 떠나는 방송 트래픽이 존재하지 않는 것을 보장함으로써, 액세스 라우터(340)가 현존하는 인프라구조 상에서 현재 구동중인 외부 서비스에 대한 어떠한 영향도 무효화시키도록 돕는다.
이러한 방식으로, 검증 에코시스템(300)은 구축되고 있는 하드웨어 인벤토리(360)와 현존하는 인프라구조(예로서, 데이터 센터(550)) 사이의 적절한 분리를 보장하도록 사용자 디바이스(310)와 하드웨어 인벤토리(360) 사이의 상호통신을 위한 메시징으로 국한하는 자족하는(self-contained) 방식으로 동작한다. 이러한 분리는 적어도 외부 간섭을 제한함으로써 부트스트랩 프로세스 동안 더 높은 신뢰가능성을 제공하는 것과 현존하는 인프라구조 내의 임의의 현재 하드웨어가 부트스트랩 프로세서에 의해 영향을 받지 않는다는 것을 보장한다는 두 가지 관점에서 유용하다. 실시예에서, 분리는 각각의 단계가 성공할 때까지 신뢰가능한 것으로 고려될 수 없는 하드웨어 인벤토리(360)와 현존하는 인프라구조를 분리하는 가상 층으로서의 역할을 하는 보안 경계로서 구성된다. 따라서, 부트스트랩 프로세스 자체는 (검증 및 공급 단계에 앞서) 보안 크리덴셜/토큰이 셋업되는 부트스트랩 프로세스의 최종 단계 동안 일반적으로 현존하는 인프라구조의 보안 컨텍스트에 의존하지 않는다.
이제 검증 에코시스템(300)의 구성이 기술될 것이다. 먼저 에코시스템(300)은 하드웨어 인벤토리(360) 내에서 랙(301, 302, 303)의 기능을 제어하고 이에 연결하기 위한 사용자 디바이스(310)를 포함한다. 랙(301)(예를 들어, 고밀도 랙)과 관련하여, 하나 이상의 전원 분배 장치(PDU)(381, 382), 컴퓨팅 장치(예로서, 블레이드(371-374) 및 네트워크 디바이스(예로서, TOR 스위치(350), 상위 직렬 액세스 디바이스(361) 및 하위 직렬 액세스 디바이스(362))가 존재한다. 랙마다 추가적인 TOR 스위치가 존재할 수 있음을 인지해야 한다(예로서, 상위 및 하위 TOR 디바이스). 컴퓨팅 디바이스(371-374)는 컴퓨팅/스토리지 태스크를 수행하기 위한 프로세서로서 설계되며 각각 전원을 수신하면 데이터 패킷을 개별적으로 생성하도록 OEM에 의해 구성되는 반면, PDU는 컴퓨팅 디바이스(371-374)에 선택적으로 전원을 공급하도록 설계된다. TOR 스위치(350)는 네트워크 기반 접속 상에서 데이터 패킷을 전송하도록 구성되는 반면, 직렬 액세스 디바이스(361, 362)는 직렬 기반 접속 상에서 명령을 수신하면 데이터 패킷 생성을 호출하도록 구성된다. 실시예에서, 직렬 액세스 디바이스(362)는 랙 내에서 디바이스를 구성하도록 사용될 수 있다(예로서, PDU, TOR 스위치 및 블레이드).
사용자 디바이스(310)는 부트스트랩 프로세스의 적어도 초기 단계를 구동하도록 설계된 구성 소프트웨어(311)를 포함한다. 구성 소프트웨어(311)는 네트워크 기반 접속(인-밴드 채널)을 통해 TOR 스위치(350)로 통신가능하게 연결되고 직렬 기반 접속(아웃-오브-밴드 채널)을 통해 직렬 액세스 디바이스(361, 362)로 통신가능하게 연결된다. 실시예에서, 부트스트랩 프로세스의 초기 단계는: 네트워크 디바이스(TOR 스위치(350) 및 직렬 액세스 디바이스(361, 362)) 및 블레이드들의 세트(컴퓨팅 장치(371-374)를 발견하는 것; 그리고 랙(301)의 물리적 토폴로지를 기술하는 템플릿 파일(312)에 대해 데이터 패킷 내에서 운반되는 정보를 비교함으로써 블레이드들의 세트의 위치를 검증하는 것을 포함한다. 전술된 바와 같이, 하드웨어 인벤토리(360)의 초기 셋업을 명시하는 단계를 완료하면 템플릿 파일(312)이 생성된다. 직렬 액세스 디바이스(361, 362)는 구성 소프트웨어로부터 명령을 수신하고, 명령을 프로세싱함에 따라 각각 PDU(381, 382)를 제어하도록 추가로 구성된다. 일 예시에서, PDU(381, 382)를 제어하는 것은 명령을 전달하는 것을 포함한다. 명령을 수신하여 판독하면, PDU(381, 382)는 컴퓨팅 디바이스(371-374)의 적어도 하나의 선택된 블레이드로 전원을 전달하고 컴퓨팅 디바이스(371-374)의 적어도 하나의 비선택된 블레이드에 전원을 주지 않도록 구성될 수 있다. 이에 응답하여, 선택된 블레이드(들)는 구성 소프트웨어에 라우팅되기 전에 TOR 스위치(350)에서 집합되고 후속하여 L3 집합기 스위치(330)에서 집합된 데이터 패킷의 생성을 시작할 수 있다. 다른 한편으로, 비선택된 블레이드(들)는 데이터 패킷의 전송을 중단할 것이다. 따라서, 구성 소프트웨어는 랙(301) 내에서 생성되는 데이터 패킷들의 시작 어드레스 및 명령에 의해 선택된 블레이드들의 위치 사이의 비교의 기능으로서 네트워크 디바이스(350, 361, 362), 컴퓨팅 디바이스(371-374) 및 PDU(381, 382) 사이의 내부 접속을 컨펌할 수 있다. 추가적으로 컴퓨팅 디바이스(371-374)는 직렬 출력 상에서 블레이드로부터 직렬 경로, 그리고 PDU(381, 382)로의 내부 접속을 검증할 수 있는 직렬 액세스 디바이스(361, 362)로 데이터를 방출하도록 구성될 수 있다.
다양한 서로 다른 구성의 네트워크 디바이스(350, 361, 362)가 기술되었지만, 메시지를 분배 또는 종합하는 다른 타입의 적절한 디바이스 및/또는 머신이 사용될 수 있으며, 본 발명의 실시예가 본 명세서에 기술된 직렬 액세스 디바이스(361, 362) 및 TOR 스위치(350)로 제한되지 않음을 이해해야만 한다. 예를 들어, 단일 직렬 액세스 디바이스가 전체 랙(301)에 대해 제공될 수 있으며, 이때 직렬 액세스 디바이스는 PDU(381, 382)로의 직렬 접속/인터페이스로서 동작하고, 각각의 블레이드로의 직렬 접속/인터페이스로서 동작한다. 다른 예시에서, 직렬 액세스 디바이스 및 PDU가 단일 디바이스에 결합될 수 있다. 또 다른 예시에서, TOR 스위치(350)는 이더넷 인터페이스 성능을 갖는 특수화된 블레이드로 대체될 수 있다. 따라서, 발견 및 검증 단계는 적어도 하나의 네트워크 디바이스가 통신을 위한 인-밴드 성능을 포함하며 적어도 하나의 네트워크 디바이스가 직렬 통신을 위한 아웃-오브-밴드 성능을 포함하도록 임의의 수의 네트워크 디바이스를 사용하여 수행될 수 있다. 또는, 만약 아웃-오브-밴드 성능이 이더넷 상에서 사용된다면, 2차 네트워크 스위치가 직렬 디바이스를 대신해서 사용될 수 있다. 이러한 방식으로, 인-밴드 성능은 아웃-오브-밴드 성능을 칭찬하며 만약 성능들 중 하나가 오프라인으로 떨어지면 컴퓨팅 디바이스(371-374)로의 계속되는 액세스뿐 아니라 네트워크 디바이스의 디버깅 및 진단을 허용한다.
도 3에 도시된 에코시스템(300)이 단지 부트스트랩 프로세스의 단계들을 수행하기 위한 환경의 적절한 일부분의 예시이며 본 발명의 실시예의 기능 또는 이용의 범주에 대한 어떠한 제한도 제안하기 위한 것이 아님을 당업자는 이해할 것이다. 또한 에코시스템(300)은 본 명세서에 설명된 임의의 단일 리소스 또는 리소스들의 조합에 대한 어떠한 종속성 또는 필요조건을 갖는 것으로 해석되어서는 안된다. 또한, 도 3의 다양한 블록들이 명확성을 위해 실선으로 도시되었지만, 실제로는 기술하는 다양한 구성요소들이 그렇게 명확하지 않으며, 은유적으로 라인은 보다 정확하게는 애매하고 경계가 불명확할 것이다.
하드웨어 인벤토리(360)는 직렬 기반 접속 및/또는 네트워크 기반 접속을 통해 사용자 디바이스(310)에 상호접속된 다양한 장비/리소스를 포함한다. 본 명세서에 기술된 바와 같은 이러한 장비/리소스는 랙(301, 302, 303) 및 사용자 디바이스(310)와 같은 실재하는 하드웨어 요소들뿐 아니라 (예로서 네트워크 디바이스 내에 설치된) 소프트웨어 구성요소를 포함할 수 있다. 장비/리소스는 다양한 물리적 리소스에 걸쳐 분산적으로 배치될 수 있으며, 따라서 사용자 디바이스(310)는 그들 사이에서의 통신을 확립하기 위해 발견 및 검증 단계(도 2의 참조번호(220, 230)를 참고)를 통해 장비/리소스의 위치를 인식할 수 있다. 또한, 장비/리소스 및 부트스트랩 프로세스에 의해 요청되는 임의의 다른 요소들을 접속시키는 채널 상의 이러한 통신을 용이하게 하는 (도시되지 않은) 네트워크가 제공될 수 있다. 네트워크는 하나 이상의 로컬 영역 네트워크(LAN) 및/또는 광역 네트워크(WAN)를 포함할 수 있지만, 이것으로 제한되는 것은 아니다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적이다. 따라서, 네트워크는 본 명세서에서 추가로 기술되지 않는다.
에코시스템(300)의 예시적인 시스템 아키텍처는 사용자 디바이스(310) 및 컴퓨팅 디바이스(371-374)를 포함한다. 도 3 및 4에 도시된 각각의 이러한 디바이스(310) 및 디바이스(371-374)는 예를 들어 도 1을 참고하여 위에서 기술된 컴퓨팅 디바이스(100)와 같은 다양한 타입의 컴퓨팅 디바이스의 형태를 취할 수 있다. 예시로서 디바이스(310) 및 디바이스(371-374)는 개인 컴퓨터, 데스크톱 컴퓨터, 랩탑 컴퓨터, 소비자 전자기기 디바이스, 핸드헬드 디바이스(예로서, PDA), 다양한 서버, 블레이드 등일 수 있지만, 이것으로 한정되는 것은 아니다. 그러나, 본 발명이 이러한 컴퓨팅 디바이스 상에서의 구현으로 제한되지 않으며, 본 발명의 실시예의 범주 내에 있는 임의의 다양한 서로 다른 타입의 컴퓨팅 디바이스 상에서 구현될 수 있음을 인지해야 한다.
전형적으로, 각각의 디바이스(310) 및 디바이스(371-374)는 구동중인 구성요소(들)의 동작을 지원하기 위한 (예를 들어, 신호를 수신하거나 전원이 공급됨에 따라 데이터 패킷을 발생) 컴퓨팅 장치(예를 들어, 중앙 처리 장치, 마이크로프로세서 등)의 일부 형태를 포함하거나 또는 이에 링크된다. 본 명세서에서 사용되는 "컴퓨팅 장치"라는 표현은 일반적으로 소프트웨어, 애플리케이션 및 컴퓨터 프로그램의 실행의 기저를 이루는 운영 소프트웨어를 지원하는 프로세싱 전원 및 스토리지 메모리를 갖는 전용 컴퓨팅 디바이스를 지칭한다. 일 예시에서, 컴퓨팅 장치는 각각의 디바이스가 통신 관련 프로세스 및 그외의 동작들을 수행할 수 있게 하도록 디바이스(310) 및 디바이스(371-374)에 통합되거나 또는 동작상 연결되는 실재하는 하드웨어 요소, 또는 머신으로 구성된다. 다른 예시에서, 컴퓨팅 장치는 각각의 디바이스(310) 및 디바이스(371-374)에 의해 수용되는 컴퓨터 판독가능한 매체에 연결된 (도시되지 않은) 프로세서를 포함할 수 있다. 일반적으로, 컴퓨터 판독가능한 매체는 적어도 일시적으로 프로세서에 의해 실행가능한 복수의 컴퓨터 소프트웨어 구성요소를 저장한다. 본 명세서에서 사용되는 "프로세서"라는 용어는 제한을 두는 것이 아니며 계산 용량 내에서 동작하는 컴퓨팅 장치의 임의의 요소를 포함할 수 있다. 이러한 용량 내에서, 프로세서는 명령을 프로세싱하는 실재하는 제품으로서 구성될 수 있다. 예시적인 실시예에서, 프로세싱은 명령을 페칭(fetching), 디코딩/해석, 실행 및 재입력하는 것을 포함할 수 있다(예를 들어, 모션 패턴의 애니메이션을 제시함으로써 물리적 제스처를 재구성).
또한, 프로세싱 명령을 넘어, 프로세서는 디바이스(310) 및 디바이스(371-374)로 통합되거나 또는 배치되는 다른 리소스로 또는 그로부터 정보를 전송할 수 있다. 일반적으로, 리소스는 디바이스(310) 및 디바이스(371-374)로 하여금 특정한 기능을 수행하게 하는 소프트웨어 및 하드웨어 메커니즘을 지칭한다. 단지 예시로서, 리소스는 구성 소프트웨어(311), 템플릿 파일(312) 및 컴퓨팅 디바이스(371-374) 내에 존재하는 구성요소 중 하나 이상의 포함할 수 있다.
이제 에코시스템(300) 내에서 네트워크 디바이스(350, 361, 362) 및 컴퓨팅 디바이스(371-374)(예를 들어, 블레이드1 내지 블레이드4)를 발견하여 검증하기 위한 예시적인 워크플로우가 도 3을 참조하여 기술될 것이다. 먼저, 구성 소프트웨어(311)는 직렬 기반 접속의 직렬 집합기(320)를 통해 하드웨어 인벤토리(360)로의 액세스를 얻고자 시도한다. 액세스가 획득되면, 하드웨어 인벤토리(360)의 직렬 액세스 디바이스(예로서, 직렬 액세스 디바이스(361, 362))로 링크된 직렬 집합기(320) 포트의 식별이 이루어진다. 그 다음 직렬 액세스 디바이스(361, 362)를 발견하기 위해 식별된 포트로부터 직렬 기반 접속을 통해 신호가 전송된다. 발견된 직렬 액세스 디바이스(361, 362)로부터 추출된 정보는 템플릿 파일(312)에 대해 상호참조된다. 아래에서 더욱 자세하게 기술되는 바와 같이, 템플릿 파일(312)은 예상된 디바이스(예로서, 디바이스(350, 361, 362 및 371-374)) 및 그들 사이의 예상된 배선의 청사진을 나타내는 토폴로지 스키마 및 각각의 컴퓨팅 디바이스(371-374) 내에 존재하도록 예상되는 구성요소를 정의하는 하드웨어 스키마를 포함한다.
직렬 집합기(320)를 통해 적절하게 접속된 바와 같은 직렬 액세스 디바이스(361, 362)를 발견하면, 구성 소프트웨어(311)는 직렬 기반 접속 상에서 명령을 직렬 액세스 디바이스(361, 362)에 분배할 수 있다. 분배된 명령이 직렬 액세스 디바이스(361, 362)에 의해 프로세싱되면, 구성 소프트웨어(311)가 랙(301)의 내부 커플링을 통해 TOR 스위치(350) 및 PDU(381, 382)에 액세스하게 한다. PDU(381, 372)에 도달하면, 구성 소프트웨어(311)는 컴퓨팅 디바이스(371-374)로의 전원을 선택적으로 제어하는 명령을 제공할 수 있다. 실시예에서, 직렬 액세스 디바이스(361, 362) 및 PDU(381, 382)를 제어하기에 앞서 구성 소프트웨어(311)가 디바이스를 검증할 수 있고, 이러한 디바이스 상의 소프트웨어를 검증할 수 있으며(예로서, 펌웨어 및 OS가 지원되는 버전임을 보장), 이러한 디바이스를 패브릭에 의해 요청된 사양(들)으로 구성할 수 있음을 인지해야 한다.
예를 들어, 선택적으로 전원을 제어하는 것은 각각의 컴퓨팅 디바이스(371-374)로의 전원을 턴오프하는 것, 템플릿 파일(312) 내에 리스트된 하나 이상의 컴퓨팅 디바이스(371-374)를 타겟팅하는 것, 타겟팅된 컴퓨팅 디바이스(들)로의 전원을 턴온하는 것을 포함할 수 있다. 타겟팅된 컴퓨팅 디바이스(들)에 전원이 공급되면, 데이터 패킷이 타겟팅된 컴퓨팅 디바이스(들)로부터 생성 및 전송될 수 있다. 그 다음 데이터 패킷은 컴퓨팅 디바이스(371-374)로부터 데이터 패킷을 수신하기 위해 할당된 포트들의 범위를 스캔할 수 있으며 실제로 데이터 패킷을 수신하는 포트 범위로부터 포트(들)를 식별할 수 있는 TOR 스위치(350)에서 종합된다. 또한, TOR 스위치(350)는 이전에 할당된 어드레스(예로서, MAC 어드레스 또는 IP 어드레스)를 식별할 수 있다. 이러한 정보를 수집하면, TOR 스위치(350)가 네트워크 기반의 접속 상에서 L3 집합기 스위치(330)를 통해 구성 소프트웨어(311)로 다시 라우팅하기 전에 식별된 어드레스 및/또는 식별된 포트(들)를 데이터 패킷에 첨부할 수 있다.
구성 소프트웨어(311)는 하드웨어 인벤토리(360)로부터 전송되는 트래픽의 흐름으로부터 데이터 패킷을 캡처하도록 설계된다. 또한, 구성 소프트웨어(311)는 컴퓨팅 디바이스(371-374)를 검증하도록 설계된다. 검증은 데이터 패킷 내에서 전달된 정보(예를 들어, 타겟팅된 컴퓨팅 디바이스(들)과 TOR 스위치(350)의 어드레스 및 타겟팅된 컴퓨팅 디바이스(들)에 내부적으로 연결된 것으로 식별되는 직렬 액세스 디바이스(361, 362)와 TOR 스위치(350) 상의 포트)를 추출하는 단계 및 위상 스킴에 부합하는 내부 커플링 및 어드레스를 컨펌하기 위해 추출된 정보를 템플릿 파일(312)에 대해 비교하는 단계 중 하나 이상의 포함할 수 있다.
또한, 데이터 패킷은 현재 타겟화된 컴퓨팅 디바이스(들) 상에 존재하는 구성요소에 적용되는 구성 설정뿐 아니라 구성요소에 대한 통찰을 갖는 구성 소프트웨어(311)를 제공하는 정보를 전달할 수 있다. 이러한 전달된 구성 설정은 템플릿 파일(312)의 하드웨어 스키마 내에서 유지되는 예상된 구성 설정에 대해 비교될 수 있다. 타겟팅된 컴퓨팅 디바이스(들)의 재구성은 전달된 구성 설정이 예상된 구성 설정과 일치하지 않을 때 유도될 수 있다. 이러한 재구성은 TOR 스위치(350)를 통한 네트워크 접속을 통해 또는 직렬 액세스 디바이스(361)를 통해 수행될 수 있다.
컴퓨팅 디바이스(371-374) 및 네트워크 디바이스(361, 362, 350)가 연속적으로 각각의 디바이스(371-374, 361, 362, 350)에 대한 접속 및 위치를 검증하기 위해 순환적으로 타겟팅될 수 있도록 네트워크 및 하드웨어 디바이스를 발견하여 검증하기 위한 전술된 단계들이 반복적으로 실행될 수 있음을 이해해야만 한다. 따라서, 랙(301)의 전체 배선 패턴은 단순히 전술된 단계들을 반복하는 것으로부터 정제될 수 있다.
이제 도 4를 참조하면, 에코시스템(300)의 기저를 이루는 시스템 아키텍처의 변형이 기술될 것이다. 일반적으로, 도 4는 하드웨어 인벤토리(360)의 제 2 타입 위상을 발견, 검증 및 구성하기 위한 예시적인 검증 에코시스템(400)을 도시한 그래픽 표현을 나타내며, 검증 에코시스템은 본 발명의 실시예를 구현하는데에 사용하기에 적절한 것이다. 도시된 바와 같이, 직렬 집합기(320)는 직렬 기반 접속 상에서 통신으로 라우팅하는데에 사용되도록 남아있는 반면, 도 3의 L3 집합기 스위치(330)는 하나 이상의 스파인(spine) 디바이스(411, 412) 및 적어도 하나의 통합 라우터 디바이스(410)로 대체되었다. 이러한 디바이스(410-412)는 일반적으로 트리형 위상으로 조직화되며, 트리를 따라 위로 이동할 때 계속해서 더 적은 접속이 존재한다(예를 들어, 두 개의 스파인 디바이스(411, 412)가 세 개의 TOR 스위치(350-352)의 부모 노드(parent node)이며 하나의 통합 라우터 디바이스(410)의 자식 노드(child node)이다). 동작시에, 이러한 트리형 위상은 랙(301-303)의 컴퓨팅 디바이스(371-374)를 포함하는 복수의 디바이스로부터의 통신을 종합하는 역할을 한다.
이제 도 4의 에코시스템(400)의 디바이스(410-412), 라우터(340) 및 TOR 스위치(350-351)가 아래에서 보다 자세하게 기술될 것이다. 스파인 디바이스(411, 412)는 디바이스들 사이의 더 빠른 통신 속도를 고취하기 위해 하드웨어 인벤토리(360) 내의 사용자 디바이스(310) 메시지 및 다른 내부 트래픽을 전개하도록 구성된다. 일반적으로, 스파인 디바이스(411, 412)와 다른 디바이스 사이의 트래픽은 국부적으로 생성되어 부트스트랩 프로세스의 초기 단계들 동안 국부적으로 분배된다(즉, 아웃바운드 트래픽을 거의 조절하지 않는다). 또한, 스파인 디바이스(411, 412)는 랙(301-303) 사이에서와 하드웨어 인벤토리(360)에 걸친 로컬 트래픽을 확장 및 최적화하도록 복수의 공통적인 랙(301-303)으로 각각 접속될 수 있다. 통합 라우터 디바이스(410)는 로컬 트래픽을 종합하도록 구성되며, 그에 따라 부트스트랩 프로세스 동안 더 큰 대역폭을 허용한다.
실시예에서, TOR 스위치(350-352)는 각각 랙(301-303) 내에서 디바이스로부터 트래픽을 종합하고 디바이스에 트래픽을 분배하도록 구성된다. 일 예시에서, TOR 스위치(350-352)는 부트스트랩 프로세스의 초기 셋업 단계 동안 하드웨어 인벤토리(360) 내에서 확립된 가상 로컬 영역 네트워크(VLAN) 내의 트래픽을 라우팅할 수 있는 L3-타입 네트워크 디바이스를 나타낸다. 그러나, 본 발명의 실시예는 TOR 스위치(350-352)에 의해 지원되는 서로 다른 계층의 통신상에서 트래픽을 전달하는 것을 고려한다.
실시예에서, 액세스 라우터(340)는 사용자 디바이스(310) 외의 임의의 외부 디바이스와 하드웨어 인벤터리(360) 사이의 게이트웨이로서의 역할을 한다. 이러한 방식으로 액세스 라우터(340)에서 인바운드(inbound) 및 아웃바운드(outbound) 통신을 제한함으로써, 하드웨어 인벤토리(360)는 자족적인 배치 단위로서의 기능을 한다. 예를 들어, 하드웨어 인벤토리(360)가 사설 기업 네트워크 내에서의 배치의 단위를 나타낼 때, 하드웨어 인벤토리(360)는 부트스트랩 프로세스 동안 사설 기업 네트워크의 로컬 서버와 일치하게 (예를 들어, 클라우드-컴퓨팅 네트워크의 경우와 같이) 동작하는 것이 불가능하다. 다른 예시에서, 하드웨어 인벤토리(360)가 원거리 데이터 센터 내의 배치 단위를 나타낼 때, 하드웨어 인벤토리(360)는 부트스트랩 프로세스 동안 다른 클라우드 컴퓨팅 스탬프들과 일치하게 (예를 들어, 클라우드-컴퓨팅 스탬프와 같이) 동작하는 것이 불가능하다.
하드웨어 인벤토리의 다양한 서로 다른 구성이 기술되었지만, 스토리지/컴퓨팅 용량을 증가시키는 다른 타입의 적절한 머신 및 머신들 사이의 트래픽을 라우팅하는 적절한 디바이스가 사용될 수 있으며, 본 발명의 실시예가 본 명세서에 기술된 에코시스템(300, 400)의 레이아웃으로 제한되지 않는다는 것을 이해해야만 한다. 즉, 디바이스의 다양한 다른 타입의 물리적 토폴로지가 본 발명의 실시예에 의해 고려되는 하드웨어 인벤토리(360) 내에서 나타날 수 있다. 상호참조 및 검증을 위한 절차가 배선의 수정(네트워크 스키마) 및 디바이스에서의 변경(하드웨어 스키마)에 적응할 수 있도록, 다양한 위상과 함께 템플릿 파일(312)이 그에 따라 달라질 수 있다. 그 결과, 구축될 새로운 하드웨어 인벤토리(360)의 물리적 토폴로지에 대해 수정이 이루어질 때마다 매번 검증 코드를 완전히 재입력하는 것과 반대로, 새로운 템플릿 파일(312)은 새로운 하드웨어 인벤토리(3360)에 기초하여 간단하게 생성되는 반면 네트워크 및 하드웨어 디바이스를 검증하기 위한 부트스트랩 프로세스 단계들은 절차에서 변경되지 않고 남아있다. 따라서, 각각의 단계들의 워크플로우를 점검하지 않고 현재 존재하는 다양한 물리적 토폴로지뿐 아니라 아직 개발되지 않은 물리적 토폴로지에 부트스트랩 프로세스를 호출하는 능력은 구축 및 배선 및 디바이스의 균일한 표준 셋업을 넘어 하드웨어 인벤토리를 배치하는 것을 허용한다.
도 4의 검증 에코시스템(400)의 하드웨어 인벤토리(360)(도 2의 참조번호(220, 230) 참고) 내의 네트워크 및 하드웨어 디바이스를 발견하여 검증하기 위한 부트스트랩 프로세스의 단계들이 이제 기술될 것이다. 먼저, 하드웨어 인벤토리(360)로부터 FCC를 셋업하도록 기능하는 사용자 디바이스(310) 상에서 실행하는 구성 소프트웨어(311)가 사용자 디바이스(310)에 제공된다. 사용자 디바이스(310)는 각각 직렬 기반 접속 및 네트워크 기반 접속을 형성하도록 직렬 집합기(320) 및 통합 라우터 디바이스(410)에 연결되며, 이때 직렬 집합기(320) 및 통합 라우터 디바이스(410)는 하드웨어 인벤토리(360)를 구축하도록 사용자 디바이스(310)에 대한 엔트리 포인트로서의 역할을 한다. 사용자 디바이스(310)로부터의 접속은 통신을 가능하게 하기 위해서 디바이스(310, 320, 330, 340, 410) 사이의 트래픽을 라우팅하도록 직접 또는 추가적인 네트워크 디바이스를 통해 수행될 수 있다.
실시예에서, 직렬 집합기(320) 및 통합 라우터 디바이스(410)는 제로-구성/제로-네트워킹 상태에서 OEM에 의해 셋업된다. 이러한 경우에, 구성 소프트웨어(311)는 디바이스(310)와 디바이스(360) 사이의 통신을 확립할 수 있다. 또는, 직렬 집합기(320)와 통합 라우터 디바이스(410)는 적절한 랙(301-303)에 자동으로 메시지를 라우팅하고 랙(301-303)으로부터 복귀하는 트래픽을 종합하도록 사전구성된다. 따라서, 사용자 디바이스(310)를 연결하는 것은 일반적으로 단지 부트스트랩 프로세스 내에 포함된 수동 셋업이며, 구성 소프트웨어(311)를 시작하는 것은 자동으로 디바이스를 발견하여 자동으로 디바이스가 응답하도록 요구하는 워크플로우를 개시한다.
전술된 바와 같이, 템플릿 파일(312)은 사용자 디바이스(310)에서 제공되거나 또는 사용자 디바이스(310)와 통신하는 데이터 스토어에 유지된다. 일반적으로, 템플릿 파일(312)은 디바이스들 사이의 내부 배선의 패턴뿐 아니라 랙(301-303)에 결합된 디바이스의 신원을 드러낸다. 일 예시에서, 템플릿 파일(312)은 컴퓨팅 디바이스(371-374)를 맵핑하기 위해 예상 위치 및 어드레스(예로서, MAC 어드레스, IP 어드레스, 또는 물리적 네트워크 세그먼트 상의 통신을 지시하기 위한 네트워크 인터페이스에 할당된 다른 고유 식별자)를 정의하는 하드웨어 스키마를 포함한다. 예를 들어, 하드웨어 스키마는 랙(301)이 블레이드1, 블레이드2,블레이드3 및 블레이드4(컴퓨팅 디바이스(371-374))로서 식별된 하드웨어 디바이스를 포함하는 반면, 랙(301-303)에 각각 TOR1, TOR2 및 TOR3(TOR 스위치(350-352))로서 식별된 네트워크 디바이스가 장착되었다고 명시할 수 있다. 코멘트입니다: 도 3에서, 블록(373)은 블레이드3이어야 하며, 블록(373)은 블레이드4이어야만 한다.
또한, 하드웨어 스키마가 직렬 액세스 디바이스(361, 362)로의 초기 액세스를 허용하는 하드웨어 인벤토리(360)의 판매자로부터 크리덴셜의 디폴트 세트로 프로그램될 수 있다. 백그라운드의 방식으로, 하드웨어 인벤토리(360) 내에서 발송된 디바이스들의 판매자 스캐닝 바코드의 하드웨어-수락 테크니션에 따라 하드웨어 스키마에 크리덴셜 및/또는 어드레스가 입력될 수 있다.
다른 경우에서, 템플릿 파일(312)은 TOR 스위치(350), 컴퓨팅 디바이스(371-374), PDU(381, 382) 및 직렬 액세스 디바이스(361, 362) 사이의 내부 배선을 정의하는 토폴로지 스키마를 포함한다. 전형적으로, 토폴로지 스키마는 개별적으로 다양한 기능 타입(예로서, 저장 및 계산)을 위한 배선을 명시한다. 예시적인 실시예에서, 토폴로지 스키마는 직렬 기반 접속을 통한 직렬 액세스 디바이스(361, 362)와의 통신에 할당된 직렬 집합기(320) 내의 포트들의 범위를 포함한다. 또한, 토폴로지 스키마는 네트워크 기반 접속을 통해 TOR 스위치(350-352)와의 통신을 위해 할당된 디바이스(410-412) 내의 포트들의 범위를 포함할 수 있다. 또한 실시예에서, 토폴로지 스키마는 성공적인 검증을 위해 소정의 디바이스로의 링크가 발생해야만 하는 할당된 포트 범위 내에 있는 예상된 슬롯을 명시한다. 예를 들어, 토폴로지 스키마는 스파인 디바이스(412)에서의 포트들의 범위의 슬롯 'A'가 TOR1(TOR 스위치(350))과의 링크로 지정된 반면, TOR1에서의 포트들의 범위의 슬롯 'B'가 블레이드2(컴퓨팅 디바이스(372))와의 링크로 지정됨을 명시할 수 있다. 다른 예시에서, 토폴로지 스키마는 직렬 집합기(320)에서의 포트들의 범위의 슬롯 'C'가 상위 직렬 액세스 디바이스(361)와의 링크로 지정되는 반면, 상위 직렬 액세스 디바이스(361)에서의 포트들의 범위의 슬롯 'D' 및 'E'가 각각 블레이드2 및 PDU2(PDU(381))와의 링크로 지정된다고 명시할 수 있다. 따라서, 하드웨어 및 토폴로지 스키마는 함께 감지된 네트워크 통신으로부터의 하드웨어 및 네트워크 디바이스의 물리적 위치를 식별하기 위한 방법을 제공한다.
이러한 포인트에서, 구성 소프트웨어(311)는 디바이스 위치를 발견 및 검증하여 컴퓨팅 디바이스(371-374)에 전원을 선택적으로 공급하기 위해 PDU(381, 382)를 제어함으로써 배선하는 것을 시작할 수 있다. 먼저, 구성 소프트웨어(311)는 직렬 액세스 디바이스(361, 362)가 제거가능한 방식으로 PDU(381, 382)를 구동할 수 있게 하도록 하나 이상의 직렬 액세스 디바이스(361, 362)로 신호를 전송한다. 설명을 위해서, 이제 블레이드2(컴퓨팅 디바이스(372)), TOR1(TOR 스위치(350)) 및 PDU2(PDU(381))의 발견 및 검증이 부트스트랩 프로세스 단계들의 워크플로우를 설명하도록 논의될 것이다. 이러한 예시적인 경우에서, 구성 소프트웨어(311)는 토폴로지 스키마에 기초하여 상위 직렬 액세스 디바이스(361)와의 링크로 지정된 것으로 알려진 직렬 집합기(320)에서의 포트들의 범위의 슬롯 'C' 상에서 신호를 전송하도록 직렬 집합기(320)에 지시함으로써 상위 직렬 액세스 디바이스(361)로 신호를 포인팅할 수 있다.
예시적인 실시예에서, 신호는 안전하고 액세스 가능하며 법적, 동작상 및 패브릭 요구사항을 준수하도록 상위 직렬 액세스 디바이스(361) 내에서 구성 설정을 설치하는 명령을 포함한다. 상위 직렬 액세스 디바이스(361)에 구성 설정이 셋업되면, TOR1 및 PDU2도 구성된다. 일 사례에서, TOR1는 랙(301) 내의 내부 커플링을 이용하여 구성 설정을 설치하도록 상위 직렬 액세스 디바이스(361)에 지시함으로써 간접적으로 구성된다. 다른 사례에서, TOR1는 구성 소프트웨어(311)가 토폴로지 스키마에 기초하여 TOR1과의 링크로 지정된 것으로 알려진 스파인 디바이스(412)에서의 포트들의 범위의 슬롯 'A'를 통해 스파인 디바이스(412)에 신호를 전송하도록 지시함에 따라 직접 구성된다. 또한, 상위 직렬 액세스 디바이스(361)가 PDU2와의 링크로 지정된 토폴로지 스키마에 의해 알려진 포트들의 범위의 슬롯 'E' 상에서 구성 설정을 설치하도록 신호를 전송함에 따라 PDU2가 구성될 수 있다.
랙(301)의 디바이스를 구성하면, TOR1이 발견되어 검증될 수 있다. 실시예에서, 발견 및 검증은 TOR1이 아웃바운드 데이터 패킷을 전송하도록 호출하기 위한 명령을 포함하는 상위 직렬 액세스 디바이스(361)에 메시지를 전송하는 것을 포함한다. 만약 아웃바운드 데이터 패킷이 하나 이상의 스파인 디바이스(411, 412)를 통해 사용자 디바이스(310)에서 수신되면, 구성 소프트웨어(311)는 템플릿 파일(312)에 대해 상위 직렬 액세스 디바이스(361) 및 TOR1이 토폴로지 스키마에 의해 명시된 예상된 슬롯에서 내부적으로 적절하게 커플링되었음을 컨펌할 수 있다.
PDU2는 아래의 워크플로우를 이용하여 발견 및 검증될 수 있다: 상위 직렬 액세스 디바이스(361)에게 PDU와의 링크로 지정된 포트들의 범위의 예상된 슬롯 'E' 상에서 PDU2와 통신하도록 지시; PDU와의 링크로 할당된 포트 범위 내의 슬롯 'F' 상에서 PDU2와 통신하도록 TOR1에 지시하며, 이때 슬롯 'F'가 토폴로지 스키마에 기초하여 PDU2와의 링크로 예상됨; 각각 상위 직렬 액세스 디바이스(361) 및 TOR1에 의해 호출되는 커맨드를 통해 (PDU2에 의해) 랙(301)의 상위 부분으로의 전원 공급을 제어하도록 시도. 만약 전원 공급이 적절하게 적용되고 있는 구성 소프트웨어(311)에 의해 검출된다면, TOR1과 PDU2 사이의 내부 커플링(네크워크 기반 접속)뿐 아니라 상위 직렬 액세스 디바이스(361)와 PDU2 사이의 내부 커플링(직렬 기반 접속)이 검증된다. 전형적으로, 슬롯 'E' 및 'F'는 개선된 보안 메커니즘으로 공급되고/되거나 각각 상위 직렬 액세스 디바이스(361)와 TOR1 내의 포트 범위의 다른 슬롯에 대한 비교에서 더 높은 우선순위 레벨에 할당된다.
블레이드2는 발견되어 선택적으로 전원을 공급하도록 PDU2를 제어함으로써 검증될 수 있다. 일반적으로 선택적으로 전원을 공급하는 것은, 랙(301)의 상위 부분 내에 존재하는 각각의 컴퓨팅 디바이스(371, 372)에 전원을 주지 않도록 PDU2가 다이렉팅하도록 상위 직렬 액세스 디바이스(361)에 지시; 전원이 제거되었음을 입증하도록 TOR/직렬 디바이스에 대한 직렬 및/또는 네트워크 접속을 통해 출력이 생성되지 않음을 보장; 컴퓨팅 디바이스(371, 372)와의 링크를 위해 지정된 포트 범위 내의 슬롯 'G'를 가로질러 블레이드2에 전원을 공급하도록 PDU2에 지시하며, 이때 토폴로지 스키마가 슬롯 'G'이 내부적으로 PDU2와 블레이드2를 커플링하도록 예상하는 워크플로우를 포함한다. 선택적으로 전원을 공급하는 이러한 워크플로우는 (예로서, PXE 부팅을 이용하여) 블레이드2가 데이터 패킷을 생성하도록 트리거링하는 재부팅을 하게 한다.
이러한 부팅 생성된 데이터 패킷은 데이터 패킷을 수신하는 컴퓨팅 디바이스(371, 372)에 대해 할당된 포트들의 범위 내에 있는 슬롯을 식별하는 TOR1에서 종합된다. 식별된 슬롯의 표시, TOR1의 어드레스 및 다른 적절한 정보가 데이터 패킷의 콘텐츠에 첨부되어 다시 사용자 디바이스(310)에 전달될 수 있다. 사용자 디바이스(310)에서 첨부된 데이터 패킷을 수신하면, 구성 소프트웨어(311)는 블레이드2의 소정의 속성을 검증하도록 템플릿 파일(312)에 대해 첨부된 데이터 패킷으로부터 추출된 상호참조 정보 및 첨부된 데이터 패킷의 콘텐츠를 판독할 수 있다. 예를 들어, 데이터 패킷 내에서 전달된 블레이드2의 어드레스(예로서, MAC 어드레스) 또는 식별자(예로서, 직렬 코드)는 블레이드2의 예상 위치 또는 예상 신원을 각각 검증하기 위해서 하드웨어 스키마에서 예상된 어드레스 또는 식별자에 대해 비교될 수 있다. 다른 경우에서, 단순히 블레이드2로부터 데이터 패킷을 수신하는 것이 상위 직렬 액세스 디바이스(361), 블레이드2 및 PDU2 사이의 내부 커플링을 컨펌하도록 동작한다. 또 다른 경우에서, 데이터 패킷에 첨부된 정보는 하드웨어 스키마에 대해 첨부된 정보를 상호참조함에 따라 TOR1의 위치 또는 신원뿐 아니라 블레이드2와 TOR1 사이의 내부 커플링을 컨펌한다. 또한, 데이터 패킷은 블레이드로의 예상된 직렬 접속 상에서 블레이드로부터의 출력을 검사함으로써 직렬 접속의 검증을 돕는다.
만약 구성 소프트웨어(311)가 PDU2가 블레이드2의 재부팅을 호출하도록 다이렉팅하도록 상위 직렬 액세스 디바이스(361)에 지시함에 따라 사용자 디바이스(310)에 의해 데이터 패킷이 수신되지 않았다면, 구성 소프트웨어(311)는 블레이드2를 손실되거나 또는 반응하지 않는 것으로 기록할 것이다. 전술된 경우에서 불일치성을 찾으면, 부트스트랩 프로세스는 현재 단계 내에서 워크플로우의 다음 단계로 진행할 것인지 또는 하드웨어 인벤토리(360)를 점검하도록 테크니션이 통지하는 알람을 발행하고/하거나 부트스트랩 프로세스를 방해할 것인지 여부를 자동으로 결정하도록 유연성을 가지고 프로그램될 수 있다. 자동 결정은 부트스트랩 프로세스 동안 발생하는 불일치성의 품질 및 양에 기초할 수 있다. 일 예시에서, 만약 검증 동안 검출된 미스와이어링(miswiring)의 수가 사전정의된 문턱값을 넘는다면, 사용자 디바이스(310)는 배선을 수동으로 수리하고 블레이드2에 대한 검증을 반복하도록 테크니션에게 통지할 수 있다. 다른 예시에서, 만약 미스와이어링의 수가 사전정의된 문턱값 아래로 유지된다면, 사용자 디바이스(310)는 잠재적으로 부트스트랩 프로세스 내에서 있는 방향으로 이동할 수 있지만 동시에 불일치성을 기록하도록 경고를 발생한다. 따라서, 자동 결정은 사소한 관심사의 불일치성에 대해 부트스트랩 프로세스를 중단하는 것을 방지하도록 도울 수 있다. 그러나, 상위 직렬 액세스 디바이스(361)와 같이 주요 관심사의 검출된 불일치성은 사전정의된 문턱값 아래로 미스와이어링의 수가 유지될 때에도 부트스트랩 프로세스의 방해를 트리거링할 수 있다. 또한, 구성 소프트웨어(311)는 예상 밖의 디바이스가 하드웨어 스키마에 의해 예상된 디바이스를 대체할 수 있는지 또는 손실된 예상 디바이스가 높은 레벨의 품질로 인해 절대적으로 존재해야만 하는지 여부에 대한 결정을 이루도록 설계된다.
또한, 구성 소프트웨어(311)가 템플릿 파일(312)에 대해 데이터 패킷으로부터 추출된 상호참조 정보 및 데이터 패킷의 콘텐츠를 판독함에 따라 예상하지 못한 포트에서 사용자 디바이스(310)에 의해 데이터 패킷이 수신되면, 구성 소프트웨어(311)는 블레이드2가 자신의 배선 패턴과의 불일치성을 갖는 것으로 기록할 수 있다. 이러한 사례에서, 블레이드2를 둘러싸는 배선 패턴을 검사하고 전체 랙(301)을 재평가하지 않고 독립적으로 블레이드2를 검증하기 위해 워크플로우를 반복하도록 테크니션을 위해 통지가 발행될 수 있다.
검증 동안, 구성 소프트웨어(311)는 데이터 패킷들의 콘텐츠로부터 랙(301) 내의 디바이스들의 구성을 추가로 얻을 수 있다. 예를 들어, 데이터 패킷들 내의 콘텐츠는 블레이드2 내에서 공급되는 소정의 구성요소가 보안의 특정 레벨과 연관되며 특정한 특성을 가지고 프로그램되었음을 드러낼 수 있다. 보안 레벨 및/또는 프로그램된 특성은 블레이드2의 구성이 허용가능한지 여부를 결정하도록 하드웨어 스키마에 대해 상호참조될 수 있다. 예를 들어, 만약 데이터 패킷의 콘텐츠가 블레이드2의 구성요소로부터의 특정한 특성의 부재가 보안 레벨에 대한 원치 않는 타협을 발생시킬 것임을 나타낸다면, 이러한 부재 특성은 블레이드2를 재구성하도록 구성 소프트웨어(311)에 경고 또는 트리거링을 발생시킬 수 있다.
실시예에서, 재구성 절차 또는 처음으로 비어있는 디바이스를 구성하는 것은 부트스트랩 프로세스의 발견 및 검증 단계 동안 또는 그 후에 수행될 수 있다. 먼저, 오리지널 장비 제조자(OEM)가 전달에 앞서 하드웨어 인벤토리(360)의 네트워크 및 하드웨어 디바이스 내에서 드라이버를 구현하도록 사용될 수 있는 네트워크 및 하드웨어 디바이스의 인터페이스를 기술하는 드라이브 성장 키트(DDK)가 제공될 수 있다. 예를 들어, 데이터 센터의 서비스 제공자는 OEM에 DDK를 제공할 수 있으며, OEM은 DDK에 따라 적절한 네트워크 및 하드웨어 디바이스 상에 드라이버를 설치하도록 계약된다. 동작시에, 구현된 드라이버는 네트워크 및 하드웨어 디바이스들 사이의 상호작용을 용이하게 하며 구성 소프트웨어(311)로 하여금 명령을 전송함으로써 직렬 액세스 디바이스(361, 362)를 제어할 수 있게 한다.
네트워크 및 하드웨어 디바이스 내의 이러한 드라이버뿐 아니라 구성요소의 다른 속성들이 검증 발견 단계 동안 점검될 수 있다. 실시예에서, 이미 현재 설치되었다면, 점검은 네트워크 및 하드웨어 디바이스 상에 설치된 운영 시스템(OS) 및/또는 펌웨어의 타입을 식별할 수 있다. 만약 현재 설치된 OS 및/또는 펌웨어의 타입이 템플릿 파일(312)에 대해 부적절하다면, 재구성 절차가 호출된다. 예시적인 실시예에서, 재구성 절차는 현재 설치된 펌웨어 및/또는 OS를 없애는 것; 및 유지보수 OS를 배치하는 워크플로우를 구현함으로써 수행되며, 이때 유지보수 OS는 신속한 설치를 가능하게 하며 검증을 달성하기 위해 네트워크 및 하드웨어 디바이스 상에 적절한 드라이버 및 구성요소가 나타난다는 것을 보장한다. 부트스트랩 워크플로우를 넘어서, 패브릭은 데이터 센터 내에서 구동하는 서비스를 지원하기 위해 유지보수 OS를 운영 OS로 대체하는 것을 담당할 수 있다. 운영 OS는 일반적으로 데이터 센터의 클라우드 컴퓨팅 규정을 만족시키도록 구성되며, 그에 따라 하드웨어 인벤토리(360)가 클라우드 컴퓨팅 네트워크의 특정한 위상 내에 투명하게 통합될 수 있다. 일 실시예에서, 운영 OS의 설치는 하드웨어 인벤토리(360)가 배치되도록 스케줄링되는 데이터 센터 내에서 구동하는 클라우드 컴퓨팅 패브릭의 속성과 일치하는 이미지를 다운로드하는 것을 포함한다.
부트스트랩 에코시스템의 아키텍처
이제 도 5를 참조하여 도 3 및 4의 하드웨어 인벤토리(360)를 배치 및 통합하기 위한 부트스트랩 프로세스 단계 및 아키텍처가 기술될 것이다(도 2의 참조번호(240) 참고). 일반적으로, 도 5는 데이터 센터(550)의 클라우드 컴퓨팅 패브릭 내의 하드웨어 인벤토리를 통합 및 배치하기 위한 예시적인 부트스크랩 에코시스템(500)을 나타내는 그래픽 표현을 도시하며, 부트스크랩 에코시스템(500)은 본 발명의 실시예를 구현하는데에 사용하기에 적합하다.
먼저, 아래에서 더 자세하게 논의되는 바와 같이 네트워크 및 하드웨어 디바이스에 구성 설정 및 운영 OS를 설치하면, 도 3의 하드웨어 인벤토리(360)의 물리적 토폴로지를 검증할 때 수집되는 데이터 패킷의 콘텐츠 내에서 검색된 정보로부터 인프라구조 상태가 준비된다. 본 명세서에서 사용되는 "인프라구조 상태(infrastructure state)"라는 표현은 네트워크 및 하드웨어 디바이스에 의해 현재 보여지는 하드웨어 및/또는 소프트웨어 성질을 기술하는데에 유용한 임의의 데이터를 광범위하게 포함하는 것이다. 일 특정 예시에서, 인프라구조 상태는 하드웨어 인벤토리의 활용성을 저장, 계산, 또는 저장과 계산의 혼합으로서 식별하는 것을 도우며, 이때 이러한 활용성은 물리적 토폴로지(예로서, 하이-프로파일 블레이드가 높은 보안성의 저장 목적을 위한 적절한 승인을 갖는 포트에 링크됨), 구성 설정 및 네트워크와 하드웨어 디바이스의 신원으로서 고려하는 것에 기초한다. 이렇게, 인프라구조 상태는 소프트웨어의 이미지, 구성 설정 및 FCC 스탬프로 구축될 때 하드웨어 인벤토리 내에 설치된 운영 OS로서 표면상의 역할을 한다.
동작시에, 인프라구조 상태는 사용자 디바이스(310)에 의해 클라우드 컴퓨팅 패브릭 내에 하드웨어 인벤토리를 통합할 때 데이터 센터(550)의 하나 이상의 구성요소와 공유된다. 이러한 방식으로, 인프라구조 상태는 패브릭 컨트롤러가 하드웨어 인벤토리를 FCC 인스턴스 또는 클라우드 컴퓨팅 스탬프로서 관리할 수 있게 하는 하드웨어 인벤토리의 세부사항을 포함하는 입력으로서의 역할을 한다. 예를 들어, 세부사항은 MAC 또는 IP 어드레스 및 네트워크와 하드웨어 디바이스의 구성, 특정한 디바이스의 위치, 디바이스와 PDU 사이의 포트 접속 및 FCC 스탬프를 관리하기 위해 필요한 다른 정보를 포함할 수 있다.
일 실시예에서, 사용자 디바이스(310)에는 배치 및 통합 단계를 구현하기 위한 다양한 소프트웨어가 공급된다. 이러한 소프트웨어는 부트스트랩 데이터 센터 관리자(DCM)(510), 구성 엔진(511), 배치 엔진(512) 및 보안 위치 내에 존재하는 비밀 스토어(525)와 통신하는 부트스트랩 비밀 스토어(SS)(520)를 포함한다. 부트스트랩 DCM(510)은 배치 및 통합 단계의 워크플로우를 구동하는 하드웨어 디바이스 및 네트워크를 관리할 수 있는 패브릭 컨트롤러의 일부분을 나타낸다. 일 예시에서, 부트스트랩 DCM(510)은 데이터 센터(550) 내에서 구축 하드웨어 인벤토리 또는 "FCC 인스턴스"의 추가 및 제거를 효율적으로 관리한다. 관리는 전형적으로 하나 이상의 패브릭(예로서, 마스터 및 클라이언트)을 배치/스케일-아웃 하는 것을 포함한다.
FCC 인스턴스의 추가를 관리하는 것은, 데이터 센터(550) 내의 서버(530) 내의 DCM(542)과 사용자 디바이스(310)의 부트스트랩 DCM(510) 사이의 인터페이스를 제공하는 것; 인터페이스를 사용하여 부트스트랩 DCM(510)으로부터 DCM(542)로 FCC 인스턴스의 인프라구조 상태(예로서, 랙 레벨 정보_를 카피하는 것; 및 최근 공유된 인프라구조 상태를 이용하여 FCC 인스턴스를 자체처리하는 능력을 네트워크 관리자(541)에 대해 수여하는 워크플로우를 포함할 수 있다. 마스터 서비스(540)는 복수의 서버 상에 배치될 수 있으며 서버(530)의 단일 디바이스 구현으로 제한되지 않음을 인지해야만 한다. 도 5에 도시된 바와 같이, 네트워크 관리자(541) 및 DCM(542)은 패브릭 컨트롤러, 백업 서비스, 웨어하우스 등과 같은 다른 구성요소와 함께 클라우드 컴퓨팅 패브릭 내의 새로운 FCC 인스턴스를 통합하는 책임을 갖는 마스터 서비스(540)를 포함할 수 있다.
FCC 인스턴스의 인프라구조 상태를 공유하는 것에 더하여, 실시예에서 부트스트랩 에코시스템(500)은 FCC 인스턴스 상에 클라우드 컴퓨팅 패브릭의 서비스를 배치하도록 설계된다. 이러한 서비스는 코어 테넌트, 인프라구조 테넌트 및/또는 플랫폼 테넌트를 포함할 수 있다. 일 인스턴스에서, 코어 테넌트는 클라우드 컴퓨팅 패브릭의 일반적인 기능을 가능하게 하고, 데이터 센터(550) 내에서의 노드간 통신(예로서, DNS(domain name server) 성능)을 지원하며, 저장 동작을 관리하는 중요한 서비스를 나타낸다. 인프라구조 테넌트는 예를 들어 데이터 센터(550) 내에 분배해서 호스팅된 고객의 서비스 애플리케이션을 효율적으로 관리하도록 클라우드 컴퓨팅 스캠프를 가능하게 하는 이용가능하고 입수가능한 서비스를 나타낸다. 인프라구조 테넌트의 예시는 CTM(531-533)과 상호작용하도록 고객에 대한 인터페이스를 제공하는 프론트-엔드 API 및 원거리에 위치된 계정에 대한 고객 데이터를 찾는 것을 지원하는 저장 위치 서비스를 포함한다. 플랫폼 테넌트는 전형적으로 고객에게 옵션으로서 제공되는 서비스를 나타낸다(예를 들어, 데이터 센터(550)와 개인 기업 네트워크 사이를 연결하기 위한 클라우드-투-전제 액세스). 이렇게, 데이터 센터(550)의 데이터 동작이 반드시 요청되지는 않지만 플랫폼 테넌트는 인프라구조 사태의 정의와 일치해야만 한다.
FCC 스탬프 상에 테넌트를 배치하는 동안, 구성 엔진(511) 및 배치 엔진(512)은 그들의 개입을 제공할 수 있다. 먼저, 배치 엔진(512)은 배치를 개시하도록 호출될 수 있다. 일반적으로, 배치 엔진(512)은 단계에 내재하는 워크플로우를 달성하도록 사용되는 메커니즘 및 툴의 실행을 포함하는 부트스트랩 프로세스의 배치 및 통합 단계의 엔드-투-엔드 자동화 구동을 담당한다. 예를 들어, 워크플로우는 FCC 인스턴스로 구축된 다양한 하드웨어 인벤토리의 배치를 스케줄링하고, 현재 비행 중인 배치를 관리하고, 배치의 진행을 보고하며, 발생하는 임의의 간섭 문제에 대응하는 것을 포함할 수 있다. 종종, 배치 엔진(512)은 라이브 클라우드-컴퓨팅 패브릭에 대한 배치를 실행하며, 그에 따라 배치 엔진(512)이 시간에 걸친 배치 향상을 구현하도록 사용될 수 있는 메트릭 수집 및 라이브 패브릭에 대한 문제를 확대시킬 수 있다.
구성 엔진(511)은 배치에 따라 마스터 서비스(540)를 구성 및 업데이트하도록 데이터 센터(550)와 인터페이스하는 것을 담당하며, 그에 따라 클라우드-컴퓨팅 패브릭 내에 FCC 스탬프를 통합시킨다. 통합의 일 예시에서, 구성 엔진(511)은 하드웨어 인벤토리의 초기 구성을 기록하고, FCC 스탬프로 하드웨어 인벤토리를 구축할 때 구성에 대한 변화를 검출하며, FCC 스탬프의 구성에 대한 변화 히스토리를 제공한다. 일반적으로, 이러한 변화의 히스토리는 재구성 절차의 영향을 나타내고 준수 표준이 만족되었다는 대한 보증을 제공하도록 사용된다. 이러한 방식으로, 변화의 히스토리는 FCC 스탬프에 대한 구성 변경 동안 발생된 임의의 충돌 또는 잠재적 손실 파라미터를 노출시킬 수 있다. 따라서, FCC 스탬프는 코어, 인프라구조 및 플랫폼 테넌트의 구성에 대한 저장소로서의 역할을 할 수 있다.
실시예에서, (FCC 스탬프에 의해 만족되는) 추가적인 저장/계산 용량에 대해 요청하는 고객은 또한 고객의 서비스 애플리케이션(들)을 적절하게 구동하도록 FCC 스탬프에 의해 만족되는 기준을 아웃라인하는 종속 스키마를 제공할 수 있다. 동작시에, 종속 스키마는 고객에 의해 명시된 전제조건이 만족되는 방식으로 FCC 인스턴스가 보장됨을 보장하도록 구성 변화의 히스토리 및 인프라구조 상태에 대해 비교될 수 있다. 따라서, 종속 스키마가 FCC 인스턴스의 알려진 속성에 의해 만족될 때, FCC는 고객의 서비스 애플리케이션을 시작하도록 공개될 수 있다.
고객의 종속 스키마에 대한 기능성을 검사하도록 활용되는 FCC 인스턴스의 다양한 서로 다른 속성(예를 들어, 인프라구조 상태 및 구성 변경 히스토리)이 기술되었지만, 다른 타입의 적절한 정보가 배치 동안 부트스트랩 DCM(510)과 DCM(542) 사이에서 통과될 수 있으며, 본 발명의 실시예는 본 명세서에 기술된 정보의 특정한 조항으로 제한되지 않는다. 예를 들어, FCC 인스턴스의 전체 사이즈(예로서, 노드의 수) 및/또는 엔트리 포인트의 위치(예로서, FCC 인스턴스로 접속을 위한 방식)가 부트스트랩 DCM(510)으로부터 DCM(542)로 전달될 수 있다. 기능성 검사의 다른 예시에서, FCC 인스턴스 내의 남아있는 하드웨어의 발견, 검증 및 구성을 실행하도록 마스터 서비스(540)를 배치한 다음 DCM(542)을 레버리지하기 위해 충분한 인벤토리를 식별하기 위한 최소의 발견 및 검증이 수행된다. 기능성 검사의 또 다른 예시에서, 현존하는 DCM 인스턴스가 라이브 인벤토리에 대한 적절한 보안 및 분리를 갖는 하드웨어의 발견, 검증 및 구성을 구동하도록 사용된다.
FCC 스탬프의 배치 동안, 도 3의 하드웨어 인벤토리(360)를 FCC 스탬프에 구축할 때 생성된 기밀 정보를 제공하도록 비밀 스토어(525)가 액세스될 수 있다. 본 명세서에서 사용되는 "비밀 스토어(secret store)"라는 표현은 일반적으로 사용자 디바이스(310) 상에서 전형적으로 구동하는 부트스트랩 SS(520)과 인터페이스하는 독립형 메커니즘을 지칭한다. 이러한 방식으로, 비밀 스토어(525)는 인터넷 또는 다른 공동으로 액세스 가능한 네트워크에 대한 어떠한 종속성도 가지지 않으며, 그에 따라 비밀 스토어(525) 내에 저장된 기밀 정보의 개인적 특징을 보호한다. 일부 실시예에서, 비밀 스토어는 인터넷 상에서 액세스되는 중앙 보안 비밀 저장을 나타낼 수 있다.
FCC 스탬프의 배치에 앞서, 비밀 스토어(525)는 초기 부트스트랩 프로세스 단계 동안 하드웨어 인벤토리를 구축하는 동안 생성된 기밀 정보를 관리하도록 관리 API를 사용한다. 이러한 기밀 정보(예로서, 네트워크 및 하드웨어 디바이스에 대한 크리덴셜, 오리지널 증명서, 비밀 키, 직렬액세스 디바이스에 대한 패스워드 및 그외의 허가)는 발견 및 검증 단계의 완료시까지 비밀 스토어(525)에 연속적으로 기록되며, 필요하다면 재구성 절차를 포함한다. 배치 동안, 비밀 스토어(525)는 마스터 서비스(540)를 수출하기 위해 부트스트랩 SS(520)에 일부 기밀 정보를 자동으로 이동시킬 수 있으며, 데이터 센터(550)의 관리인이 보기 위한 높은 이용가능성 위치로 다른 기밀 정보를 이동시킬 수 있다. 이러한 기밀 정보는 데이터 센터(550) 내에서 통합될 때 문제를 겪음에 따라 FCC 인스턴스를 디버깅하도록 관리자에 의해 후속하여 사용될 수 있다.
성공적으로 배치를 완료하면, 부트스트랩 프로세스의 클러스터-와이드 검증 단계에 앞서 FCC 인스턴스가 데이터 센터(550) 내에서 통합될 수 있다. 또한 마스터 서비스(540)의 검증 및 배치 완료에 따라 도 5 내의 CTM(531-533)의 배치가 시작할 수 있다.
통합은 또한 새로운 보안 크리덴셜로 하드웨어 인벤토리를 구축하는 동안 사용되는 (네트워크 및 하드웨어 디바이스에 액세스하도록 사용되는) 국부적으로 생성된 크리덴셜을 대체하는 것을 포함할 수 있다. 일 예시에서, 크리덴셜의 대체는 현존하는 노드 상의 보안 토큰의 생성, 감사(audit) 및 회전을 위한 현존하는 클라우드-컴퓨팅 패브릭 프로세스를 레버리지함으로써 수행된다. 이러한 방식으로, 하드웨어 인벤토리를 구축하는 동안 다양한 측면(예로서, 테크니션, OEM, 큐레이터, 또는 관리자)과 공유될 수 있는 구축 크리덴셜이 해체되며, 따라서 FCC 스탬프가 보다 안전해진다. 통합에 따라서도 사용자 디바이스(310)는 부트스트랩 프로세스가 완료된 후에 패브릭 인스턴스(예로서, 마스터 및 클라이언트)를 서비스하도록 게이트웨이 디바이스로서 유지될 수 있음을 이해해야만 한다.
클러스터-와이드 검증 단계는 배치 및 통합 단계를 성공적으로 완료함에 따라 시작된다. 실시예에서, 성공적인 완료는 배치 및 통합 단계의 각 전제조건이 배치 및 통합 단계의 결과적인 출력이 다음 단계에 대한 조건에서 어려움 없이 픽업하도록 FCC 인스턴스를 남겨두도록 보장하는 것을 수반한다. 예를 들어, 만약 배치 및 통합 단계의 결과적인 출력이 운영자에 의한 FCC 인스턴스로의 충분한 액세스를 허락하지 않는다면(즉, 배치 및 통합 단계의 전제조건), 다음 단계로 진행하기 전에 교정되어야할 문제가 존재한다. 이러한 방식으로, 배치 및 통합 단계뿐 아니라 다른 부트스트랩 프로세스 단계들이 단계 동안에 실행되는 동작들의 합산으로부터 발생하는 출력(들)을 자가평가하는 각각의 워크플로우 내의 단계를 포함한다. 자가평가는 워크플로우 단계들이 반복될 때 발생할 수 있거나 또는 특정한 단계가 성공적으로 완료된 것으로 지정되었을 때 발생할 수 있으며, 그에 따라 후속하는 단계를 시작하게 한다.
각각의 단계 내의 자가평가를 넘어서, 클러스터-와이드 검증 단계(도 2의 참조번호(250) 참고)가 FCC 인스턴스가 사용할 준비가 되었음을 보장하도록 수행된다. 실시예에서, 클러스터-와이드 검증은 테스트 하니스(harness)를 통해 수동 보로를 포함할 수 있거나 또는 자동으로 구동할 수 있는 테스트 스위트를 실행하는 것을 포함한다. 테스트 스위트는 다양한 위치로부터 다양한 시스템에 대해 수행될 수 있다. 예를 들어, 테스트 스위트는 FCC 인스턴스가 CTM1을 통해 내부적으로 도달가능한지 여부를 검증할 것을 마스터 서비스(540)에 지시하는 것을 포함할 수 있다. 다른 예시에서, 테스트 스위트는 FCC 인스턴스가 외부 엔티티(예로서, 이더넷 상의 기업 네트워크 또는 고객에 의해 요청된 특수화된 엔티티)에 외부적으로 도달가능한지 여부를 검증할 것을 지시하는 것을 포함할 수 있다.
부트스트랩 에코시스템(500)의 예시적인 시스템 아키텍처는 단지 본 발명의 측면을 수행하도록 구현될 수 있는 적절한 환경의 일 예시이며, 본 발명의 용도 또는 기능의 범주에 대한 어떠한 제한도 제안하지 않음을 인지해야만 한다. 또한 도시된 부트스트랩 에코시스템(500)은 도시된 바와 같은 구성요소(510-512, 520, 541, 542, 531-533) 중 하나 또는 이들의 조합에 대한 임의의 종속성 또는 필요조건을 갖는 것으로서 해석되어서는 안된다. 일부 실시예에서, 하나 이상의 구성요소(510-512, 520, 541, 542, 531-533)는 비밀 스토어(525)와 유사한 독립형 디바이스 또는 서비스 또는 익스큐터블(들)로서 구현될 수 있다. 다른 실시예에서, 하나 이상의 구성요소(510-512, 520, 541, 542, 531-533)는 컴퓨팅 서버(530) 및/또는 사용자 디바이스(310)로 직접 통합도리 수 있다. 당업자는 도 5에 도시된 구성요소(510-512, 520, 541, 542, 531-533)의 성질 및 개수가 예시적인 것이며 제한적인 것으로 해석되어서는 안된다는 것을 이해할 것이다. 배치는 전술된 임의의 특정한 구성요소 없이도 수행될 수 있으며, 유사한 기능을 제공하는 대체 프로세스로 수행될 수 있음을 인지해야만 한다.
따라서, 임의의 수의 구성요소가 본 발명의 실시예의 범주 내에서 원하는 기능을 달성하기 위해 사용될 수 있다. 도 5의 다양한 구성요소들이 명확성을 위해 실선으로 도시되었지만, 실제로는 기술하는 다양한 구성요소들은 그렇게 명백한 것이 아니며, 은유적으로 선들은 더 정확히는 애매하고 경계가 불분명하다. 또한, 도 5의 일부 구성요소가 단일 블록으로 도시되었지만, 이러한 표현은 그 특징 및 수에서 단지 예시적인 것이며 제한적인 의미로 해석되어서는 안된다(예를 들어, 오직 하나의 DCM(542)이 도시되었지만, 더 많은 DCM이 다른 하드웨어 인벤토리 상의 부트스트랩 프로세스를 수행하는 다른 사용자 디바이스에 통신가능하게 연결될 수 있다).
또한, 서버(530)는 예를 들어 도 1을 참조하여 전술된 컴퓨팅 디바이스(100)와 같은 임의의 타입의 컴퓨팅 디바이스(들)일 수 있다. 서버(530)는 개인 컴퓨터, 데스크톱 컴퓨터, 랩탑 컴퓨터, 핸드헬드 디바이스, 모바일 핸드셋, 고객 전자기기 디바이스 등일 수 있지만, 이는 단지 예시적인 것이고 이것으로 한정되는 것은 아니다. 실시예에서, 데이터 센터(550)는 임의의 수의 전술된 물리적 리소스를 포함할 수 있으며, 분산된 방식으로 고객의 서비스 애플리케이션을 실행할 수 있는 컴퓨팅 디바이스 또는 다른 머신들의 임의의 집합을 포함할 수 있다.
또한, 전술된 물리적 리소스의 다른 디바이스(들)가 서버(550) 상에 존재하는 것으로 도시된 마스터 서비스(540)를 호스팅할 수 있다. 이러한 다른 디바이스(들)는 데이터 센터(550)를 통한 유선 또는 무선 네트워크 경로를 통해 마스터 서비스(540)의 동작을 관리할 수 있다. 그러나, 본 발명의 실시예는 도 5에 도시된 이러한 물리적 리소스 상의 구현으로 제한되지 않으며, 본 발명의 실시예의 범주 내에 있는 임의의 다양한 다른 타입의 컴퓨팅 디바이스 및 장비 상에서 구현될 수 있음을 인지해야만 한다. 다시 말하면, 데이터 센터(550)의 도시된 리소스는 단지 설명을 위한 예시적인 구성을 도시한 것이며, 따라서 컴퓨팅 산업에서 알려진 리소스의 임의의 적절한 레이아웃이 사용될 수 있고 본 발명에 의해서 고려된다.
프로세스 흐름
이제 도 6을 참조하면, 본 발명의 실시예에 따라 하드웨어 인벤토리를 발견 및 검증하기 위한 전반적인 방법(600)을 나타낸 순서도가 도시되었다. 본 명세서에서 사용되는 방법들의 서로 다른 요소를 의미하도록 "단계" 및/또는 "블록"이라는 용어가 사용될 수 있지만, 이러한 용어는 개별적인 단계들의 순서가 명백하게 기술되었을 경우를 제외하면 본 명세서에 개시된 다양한 단계들 사이의 임의의 특정한 순서를 의미하는 것으로 해석되어서는 안된다. 먼저, 하드웨어 인벤토리는 랙을 나타내며, 이때 랙은 네트워크 디바이스(예로서, 탑 오브 랙 스위치 및 직렬 액세스 디바이스) 및 컴퓨팅 장치의 세트(예로서, 랙으로 삽입되는 블레이드들의 세트)를 포함할 수 있다. 블레이드들의 세트는 전형적으로 직렬 액세스 디바이스와 TOR 스위치 사이에 상호접속된다.
블록(610)에 도시된 바와 같이, 방법(600)은 하드웨어 인벤토리 내에서 사용자 디바이스와 직렬 액세스 디바이스 또는 (만약 아웃 오브 밴드 디바이스가 직렬 디바이스가 아닌 2차 네트워크 스위치라면) 2차 네트워크 액세스 디바이스 사이의 통신을 개시하는 것을 포함할 수 있다. 일 경우에서, 직렬 액세스 디바이스로의 통신은 직렬 기반 접속 상에서 사용자 디바이스에 의해 개시된다. 방법(600)은 블록(620)에 도시된 바와 같이 PDU에 지시를 전송하도록 직렬 액세스 디바이스를 구성하는 것을 더 포함할 수 있다. 위에서 더 상세하게 기술된 바와 같이, PDU는 일반적으로 컴퓨팅 장치들의 세트에 선택적으로 전원을 공급하는 책임을 가진다. 따라서, 직렬 액세스 디바이스로부터 명령을 수신하면, 명령은 PDU로 하여금 컴퓨팅 장치들의 세트 중 적어도 하나의 선택된 컴퓨팅 장치에 전원을 전달하게 하며 컴퓨팅 장치들의 세트 중 적어도 하나의 선택되지 않은 컴퓨팅 장치에 전원을 가지 않게 한다. 결과적으로, 블록(630)에 도시된 바와 같이 선택된 컴퓨팅 장치(들)로부터 적어도 하나의 데이터 패킷이 사용자 디바이스에서 수신될 수 있다. 전형적으로, 데이터 패킷은 선택된 컴퓨팅 장치(들)로부터 발생하는 데이터 패킷을 검출할 수 있는 TOR 스위치와의 네트워크 기반 접속을 통해 사용자 디바이스에서 수신된다. 일 실시예에서, 네트워크 디바이스는 데이터 패킷이 어디에서 검출된 포트를 식별하고 데이터 패킷에 식별된 포트의 표시를 첨부하도록 구성된다. 그 결과, 선택된 컴퓨팅 장치(들)의 위치를 식별하도록 데이터 패킷을 사용할 때, 사용자 디바이스는 데이터 패킷의 페이로드 내에서 운반되는 식별된 포트를 판독 및 기록할 수 있다. 또한, 사용자 디바이스는 데이터 패킷의 헤더 내에서 운반되는 미디어 액세스 제어(MAC) 어드레스 또는 인터넷 프로토콜(IP) 어드레스를 판독 및 기록함으로써 선택된 컴퓨팅 장치(들)의 위치를 식별할 수 있다. 블록(640)에 도시된 바와 같이 선택된 컴퓨팅 장치(들)의 식별된 위치는 부분적으로 하드웨어 인벤토리의 물리적 토폴로지의 배열을 이해하도록 사용될 수 있다.
예시적인 실시예에서, 블록(650)에 도시된 바와 같이 방법(600)은 하드웨어 인벤토리의 물리적 토폴로지가 템플릿 파일에 비교가능함을 검증하도록 템플릿 파일에 대해 선택된 컴퓨팅 장치(들)의 식별된 위치를 상호참조하는 것을 포함할 수 있다. 일반적으로, 템플릿 파일은 토폴로지 스키마 및/또는 하드웨어 스키마를 포함할 수 있다. 일반적으로, 토폴로지 스키마는 선택된 컴퓨팅 장치(들)의 예상 위치를 명시하며 하드웨어 인벤토리가 적절하게 배선되었는지를 검증하도록 사용자 디바이스에 의해 사용된다. 다른 한편으로, 하드웨어 스키마는 일반적으로 어떤 구성요소가 선택된 컴퓨팅 장치(들) 내에 존재하도록 예상되는지를 명시하도록 사용된다. 또한, 하드웨어 스키마는 컴퓨팅 장치(들)의 내부 구성을 검증하도록 사용자 디바이스에 의해 사용될 수 있다.
사용자 디바이스가 선택된 컴퓨팅 장치(들)의 위치가 템플릿 파일과 일치한다고 검증하면, 사용자 디바이스는 선택된 컴퓨팅 장치(들)에 대한 컨펌 설정 설치를 호출하는 직렬 기반 접속 상에서 직렬 액세스 디바이스에 신호를 전송할 수 있다. 또한, 사용자 디바이스는 직렬 접속을 검증하도록 직렬 액세스 디바이스의 출력을 관찰할 수 있다. 또한, 사용자 디바이스가 하드웨어 인벤토리의 물리적 토폴로지를 검증하면, 사용자 디바이스는 부트스트랩 프로세스의 발견 및 검증 단계 동안 수집된 정보로부터 인프라구조 상태를 준비할 수 있다. 부트스트랩 프로세스의 통합 및 배치 단계 동안, 사용자 디바이스는 데이터 센터의 패브릭 내의 하드웨어 인벤토리를 통합하는 것을 용이하게 하도록 클라우드 컴퓨팅 패브릭의 컨트롤러와 인프라 구조 상태를 공유할 수 있다. 또한, 사용자 디바이스는 하드웨어 인벤토리에서 패브릭 상에서 실행하는 서비스의 배치를 트리거링할 수 있으며, 그에 따라 하드웨어 인벤토리를 패브릭의 FCC로서 지정한다. 하드웨어 인벤토리를 FCC로서 지정함으로써, 패브릭 컨트롤러는 데이터 센터의 맥락 내에서 하드웨어 인벤토리를 관리 및 배치하도록 허용된다.
이제 도 7을 참조하면, 본 발명의 실시예에 따라 데이터 센터의 패브릭 컴퓨팅 클러스터(FCC)로 하드웨어 인벤토리를 구축하기 위한 전반적인 방법(700)을 나타내는 순서도가 도시되었다. 방법(700)은 블록(710)에 도시된 바와 같이 사용자 디바이스로부터 직렬 기반 접속을 통한 직렬 액세스 디바이스 및 네트워크 기반 접속을 통한 TOR 스위치로 각각의 신호를 전송함으로써 네트워크 디바이스(들)를 발견하는 것을 포함한다. TOR 스위치와 직렬 액세스 디바이스 사이에서 상호접속된 컴퓨팅 장치들의 세트는 블록(720)에 도시된 바와 같이 컴퓨팅 장치들의 세트에 할당된 각각의 포트들의 범위를 통해 신호를 듣도록 TOR 스위치 및 직렬 액세스 디바이스에 지시함으로써 발견될 수 있다.
방법(700)은 블록(730)에 도시된 바와 같이 TOR 스위치에 재귀적으로 트래픽을 전송할 것을 컴퓨팅 장치들의 세트에 지시하도록 직렬 액세스 디바이스를 구성하는 것을 더 포함할 수 있다. 블록(740)에 도시된 바와 같이, 하드웨어 인벤토리의 물리적 토폴로지를 기술하는 템플릿 파일은 사용자 디바이스의 로컬 메모리로부터 또는 원격 데이터 스토어로부터 액세스될 수 있다. 컴퓨팅 장치들의 세트의 위치는 블록(750)에 도시된 바와 같이 컴퓨팅 장치들의 세트로부터 수신된 트래픽 내에서 운반되는 정보에 대해 템플릿 파일을 비교함으로써 각각 검증될 수 있다. 인프라구조 상태는 블록(760)에 도시된 바와 같이 컴퓨팅 장치들의 세트로부터 트래픽 내에서 수신된 정보를 이용하여 준비될 수 있다. 블록(770)에 도시된 바와 같이, 하드웨어 인벤토리는 클라우드 컴퓨팅 패브릭의 컨트롤러와 인프라구조 상태를 공유함으로써 데이터 센터의 클라우드 컴퓨팅 패브릭 내에서 통합될 수 있다. 통합과 동시에 또는 그 이후의 시점에, 클라우드 컴퓨팅 패브릭 상에서 실행하는 서비스는 하드웨어 인벤토리 상에 배치될 수 있으며(블록(780) 참고), 블록(790)에서 하드웨어 인벤토리는 데이터 센터 내의 FCC로서 지정될 수 있다. 어떠한 경우에서, 하드웨어 인벤토리가 적절하게 배치/구성되었음을 보장하기 위해 하드웨어 인벤토리를 FCC 스탬프로 지정하기에 앞서 검증이 수행된다.
본 발명의 실시예가 특정한 실시예와 관련하여 기술되었지만, 이는 전적으로 제한적이지 않고 예시적인 것이다. 대안적인 실시예가 본 발명의 범주로부터 벗어나지 않고 본 발명의 실시예가 연관된 당업자에게 명백해질 것이다.
전술된 내용으로부터, 본 발명이 시스템 및 방법에 대해 명백하고 고유한 다른 장점과 함께 앞서 기술된 모든 목적과 목표를 이루도록 잘 적응된 것임을 알 수 있을 것이다. 소정의 특성 및 하위조합이 이용될 수 있으며 다른 특성 및 하위조합에 대한 참조 없이 사용될 수 있음이 이해될 것이다. 이는 특허청구범위의 범주에 의해 고려되며 범주 내에 포함된다.

Claims (20)

  1. 실행시에 하드웨어 인벤토리(inventory of hardware)를 발견하고 검증하는 방법을 수행하는 컴퓨터 실행가능한 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 하드웨어 메모리로서,
    상기 방법은,
    검증 에코시스템(verification ecosystem)의 사용자 디바이스를 사용하여- 상기 검증 에코시스템은 템플릿 파일을 갖는 상기 사용자 디바이스 및 상기 하드웨어 인벤토리를 포함함 -, 상기 하드웨어 인벤토리 내의 직렬 액세스 디바이스(serial-access device) 또는 상기 하드웨어 인벤토리 내의 이차 대역 외 네트워크(secondary out-of-band network) 상에 존재하는 네트워크 스위치 디바이스와의 통신을 개시하는 단계- 상기 통신은 상기 사용자 디바이스와 상기 하드웨어 인벤토리 간의 상호통신을 트리거하고, 상기 상호통신은 기존 인프라구조를 배제하며, 상기 하드웨어 인벤토리의 발견 및 검증을 위한 상기 상호통신은 상기 기존 인프라구조를 상기 하드웨어 인벤토리부터 격리하고 안전하게 분리시키는 가상 층으로서 기능을 하는 보안 경계(security boundary)에 적어도 부분적으로 기초하여 수행됨 -와,
    전원 분배 장치(PDU)에 명령어를 전송하도록 상기 직렬 액세스 디바이스를 구성하는 단계- 상기 PDU는 컴퓨팅 장치들의 세트에 전원을 선택적으로 공급하는 역할을 하며, 상기 명령어는 상기 PDU로 하여금 상기 컴퓨팅 장치들의 세트 중 적어도 하나의 선택된 컴퓨팅 장치에 전원을 전달하고 상기 컴퓨팅 장치들의 세트 중 적어도 하나의 선택되지 않은 컴퓨팅 장치에 전원을 공급되지 않게 함- 와,
    상기 적어도 하나의 선택된 컴퓨팅 장치로부터 데이터 패킷을 수신하는 단계와,
    상기 하드웨어 인벤토리의 물리적 토폴로지(physical topology) 내에서 상기 적어도 하나의 선택된 컴퓨팅 장치의 위치를 식별하도록 상기 데이터 패킷을 사용하는 단계와,
    상기 적어도 하나의 선택된 컴퓨팅 장치의 상기 식별된 위치, 주소 및 내부 배선을 예상되는 위치, 주소 및 내부 배선을 갖는 상기 템플릿 파일에 대해 상호 참조(cross-referencing)시켜, 상기 하드웨어 인벤토리의 상기 물리적 토폴로지가 그에 대응함을 검증하는 단계를 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  2. 제1항에 있어서,
    상기 데이터 패킷은 상기 적어도 하나의 선택된 컴퓨팅 장치로부터 유래하는 상기 데이터 패킷을 검출할 수 있도록 인에이블링된 네트워크 디바이스와의 네트워크 기반 접속을 통해 사용자 디바이스에서 수신되며,
    상기 방법은 프로세싱된 트래픽에 관련된 정보를 상기 네트워크 디바이스에게 질문하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  3. 제2항에 있어서,
    상기 직렬 액세스 디바이스로의 상기 통신은 직렬 기반 접속을 통해 상기 사용자 디바이스에 의해 개시되고, 상기 직렬 액세스 디바이스는 초기에 상기 하드웨어 인벤토리의 판매자(vendor)로부터의 크리덴셜의 디폴트 세트에 기초하여 액세스되고, 상기 크리덴셜의 디폴트 세트는 상기 템플릿 파일 내의 하드웨어 스키마 내에 프로그래밍되는
    컴퓨터 판독가능 하드웨어 메모리.
  4. 제2항에 있어서,
    상기 네트워크 디바이스는 상기 데이터 패킷이 검출되는 포트를 식별하고 상기 식별된 포트의 표시자를 상기 데이터 패킷에 첨부하거나, 또는 데이터 패킷들이 송신되는 새로운 활성 위치를 검색하도록 구성되는
    컴퓨터 판독가능 하드웨어 메모리.
  5. 제4항에 있어서,
    상기 적어도 하나의 선택된 컴퓨팅 장치의 위치를 식별하도록 상기 데이터 패킷을 사용하는 단계는 상기 데이터 패킷의 페이로드 내에서 반송되는 상기 식별된 포트를 판독하는 단계를 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  6. 제1항에 있어서,
    상기 방법은
    상기 데이터 패킷 내의 정보에 기초하여 상기 적어도 하나의 선택된 컴퓨팅 장치와 연관된 컴포넌트를 식별하는 단계와,
    상기 정보에 기초하여 상기 컴포넌트에 적용되는 구성 설정을 결정하는 단계와,
    상기 템플릿 파일의 하드웨어 스키마 내에 유지되는 예상 구성 설정에 상기 구성 설정을 비교하는 단계와,
    상기 구성 설정이 상기 예상 구성 설정에 대응하지 않는 경우, 적어도 상기 직렬 액세스 디바이스를 통해 재구성을 수행하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  7. 제1항에 있어서,
    상기 템플릿 파일은 상기 적어도 하나의 선택된 컴퓨팅 장치의 예상 위치를 명시하는 토폴로지 스키마(topology schema)를 포함하고, 상기 토폴로지 스키마는 상기 하드웨어 인벤토리가 올바르게 배선되어 있는지를 검증하도록 사용자 디바이스에 의해 사용되며, 상기 토폴로지 스키마는 배선 규칙(wiring rule), 디바이스 구성, 및 디바이스 위치 중 적어도 하나를 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  8. 제1항에 있어서,
    상기 템플릿 파일은 상기 적어도 하나의 선택된 컴퓨팅 장치 내에 상주하는 것으로 예상되는 컴포넌트를 명시하는 하드웨어 스키마를 포함하고, 상기 하드웨어 스키마는 상기 적어도 하나의 선택된 컴퓨팅 장치의 내부 구성을 검증하기 위해 사용자 디바이스에 의해 이용되는
    컴퓨터 판독가능 하드웨어 메모리.
  9. 제3항에 있어서,
    상기 방법은
    상기 적어도 하나의 선택된 컴퓨팅 장치의 위치가 상기 템플릿 파일과 일치하는 것으로 검증되면, 상기 적어도 하나의 선택된 컴퓨팅 장치에 대한 컨펌(confirmation) 설정의 설치를 호출하는(invoke) 신호를 상기 직렬 기반 접속을 통해 상기 사용자 디바이스로부터 상기 직렬 액세스 디바이스로 전송하는 단계와,
    업데이트하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  10. 제9항에 있어서,
    상기 방법은 상기 하드웨어 인벤토리의 상기 물리적 토폴로지의 검증시 수집된 정보로부터 인프라구조 상태를 준비하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  11. 제10항에 있어서,
    상기 방법은
    상기 인프라구조 상태를 클라우드-컴퓨팅 패브릭의 컨트롤러와 공유하는 단계와,
    상기 하드웨어 인벤토리 상에 클라우드-컴퓨팅 패브릭의 서비스를 배치하는 단계와,
    상기 하드웨어 인벤토리를 패브릭-컴퓨팅 클러스터로서 지정하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  12. 제1항에 있어서,
    상기 방법은
    상기 템플릿 파일 내의 예비 값(preliminary values)을 나타내는 하나 이상의 심볼 표현(symbolic representation)에 대한 실제 값을 결정하는 단계와,
    상기 템플릿 파일 내의 상기 하나 이상의 심볼 표현의 예비 값을 전달된 상기 하드웨어 인벤토리로부터 결정된 실제 값으로 대체하는 단계와,
    상기 실제 값을 갖는 상기 템플릿 파일을 부트스트랩 프로세스의 후속 단계에 제공하는 단계를 더 포함하는
    컴퓨터 판독가능 하드웨어 메모리.
  13. 하드웨어 인벤토리를 데이터 센터의 패브릭-컴퓨팅 클러스터(FCC)에 구축(building out)하는 컴퓨터화된 방법으로서,
    검증 에코시스템의 사용자 디바이스를 사용하여, 상기 사용자 디바이스로부터 각각의 신호를 네트워크 기반 접속을 통해 TOR(top-of-rack) 스위치로 전송하고 또한 직렬 기반 접속을 통해 직렬-액세스 디바이스로 전송함으로써 하나 이상의 네트워크 디바이스를 발견하는 단계- 상기 검증 에코시스템은 템플릿 파일을 갖는 상기 사용자 디바이스 및 상기 하드웨어 인벤토리를 포함하고, 상기 각각의 신호는 상기 사용자 디바이스와 상기 하드웨어 인벤토리 간의 상호통신을 트리거하고, 상기 상호통신은 기존 인프라구조를 배제하며, 상기 하드웨어 인벤토리의 발견 및 검증을 위한 상기 상호통신은 상기 기존 인프라구조를 상기 하드웨어 인벤토리부터 격리하고 안전하게 분리시키는 가상 층으로서 기능을 하는 보안 경계에 적어도 부분적으로 기초하여 수행됨 -와,
    상기 TOR 스위치 및 상기 직렬 액세스 디바이스에게 컴퓨팅 장치들의 세트에 할당된 각각의 포트 범위를 통과하는 신호에 주목(listen)할 것을 지시함으로써 상기 TOR 스위치와 상기 직렬 액세스 디바이스 사이에서 상호접속되는 상기 컴퓨팅 장치들의 세트를 발견하는 단계- 상기 컴퓨팅 장치들의 세트는 상기 직렬 액세스 디바이스로부터 전원 분배 장치(PDU)로의 명령어에 기초하여 선택적으로 전원을 공급받음 -와,
    상기 TOR 스위치로의 트래픽을 재귀적으로(recursively) 전송할 것을 상기 컴퓨팅 장치들의 세트에 지시하도록 상기 직렬 액세스 디바이스를 구성하는 단계와,
    상기 하드웨어 인벤토리의 물리적 토폴로지를 기술하는 상기 템플릿 파일에 액세스하는 단계- 상기 템플릿 파일은 상기 컴퓨팅 장치들의 세트와 연관된 내부 배선 및 상기 컴퓨팅 장치들의 세트에 할당된 포트 범위를 정의하는 토폴로지 스키마를 포함하고, 상기 템플릿 파일은 상기 컴퓨팅 장치들의 세트 내의 컴포넌트 및 상기 컴퓨팅 장치들의 세트의 내부 구성을 정의하는 하드웨어 스키마를 포함함 -와,
    상기 컴퓨팅 장치들의 세트로부터 수신된 상기 트래픽 내에서 반송된 정보에 상기 템플릿 파일을 비교함으로써 상기 컴퓨팅 장치들의 세트의 위치, 주소, 내부 배선, 컴포넌트 및 내부 구성 각각을 검증하는 단계- 상기 정보는 상기 컴퓨팅 장치들의 세트의 위치, 주소, 내부 배선, 컴포넌트 및 내부 구성을 나타냄 -와,
    상기 컴퓨팅 장치들의 세트로부터의 상기 트래픽 내에서 수신된 상기 정보를 이용하여 인프라구조 상태(infrastructure state)를 준비하는 단계와,
    상기 인프라구조 상태를 상기 데이터 센터의 클라우드-컴퓨팅 패브릭의 컨트롤러와 공유함으로써 상기 클라우드-컴퓨팅 패브릭 내에 상기 하드웨어 인벤토리를 통합하는 단계와,
    상기 하드웨어 인벤토리 상에 상기 클라우드-컴퓨팅 패브릭의 서비스를 배치하는 단계와,
    상기 하드웨어 인벤토리를 상기 데이터 센터 내에서 상기 FCC로서 지정하는 단계를 포함하는
    방법.
  14. 데이터 센터의 클라우드-컴퓨팅 패브릭 내에 하나 이상의 컴퓨팅 장치를 자동으로 통합하는 방법을 수행하는 컴퓨터 시스템으로서,
    랙(rack)과,
    상기 랙 내에 존재하며, (a) 네트워크 기반 접속을 통해 데이터 패킷을 전송하는 TOR(top-of-rack) 스위치 및 (b) 직렬 기반 접속을 통해 명령어가 수신되면 상기 데이터 패킷의 생성을 호출하는 직렬 액세스 디바이스를 포함하는, 복수의 네트워크 디바이스와,
    상기 랙 내에 삽입된 블레이드(blade)들의 세트- 상기 블레이드들의 세트는 각각이 전원을 수신하면 개별적으로 데이터 패킷을 생성하도록 구성된 상기 하나 이상의 컴퓨팅 장치를 포함함 -와,
    상기 블레이드들의 세트에 전원을 선택적으로 공급하는 전원 분배 장치(PDU)와,
    검증 에코시스템의 사용자 디바이스- 상기 사용자 디바이스는 템플릿 파일을 구비하고, 상기 사용자 디바이스는 상기 네트워크 기반 접속을 통해 상기 TOR 스위치에 통신가능하게 연결되고 또한 상기 직렬 기반 접속을 통해 상기 직렬 액세스 디바이스에 통신가능하게 연결되며, 상기 사용자 디바이스는 부트스트랩 프로세스를 수행하도록 구성됨 -를 포함하되,
    상기 부트스트랩 프로세스는,
    (a) 상기 네트워크 디바이스 및 상기 블레이드들의 세트를 발견하는 단계와,
    (b) 상기 랙의 물리적 토폴로지를 기술하는 상기 템플릿 파일에 대해 상기 데이터 패킷 내에서 반송되는 정보를 비교함으로써 상기 블레이드들의 세트의 위치, 주소, 내부 배선, 컴포넌트 및 내부 구성을 검증하는 단계- 상기 사용자 디바이스의 발견 및 검증을 위한 상호통신은 기존의 인프라구조를 배제하고, 상기 검증 에코시스템의 하드웨어 인벤토리의 발견 및 검증을 위한 상기 상호통신은 상기 기존 인프라구조를 상기 하드웨어 인벤토리부터 격리하고 안전하게 분리시키는 가상 층으로서 기능을 하는 보안 경계에 적어도 부분적으로 기초하여 수행됨 -
    를 포함하는
    컴퓨터 시스템.
  15. 제14항에 있어서,
    상기 직렬 액세스 디바이스는 상기 사용자 디바이스로부터 명령어를 수신하고 상기 명령어를 상기 PDU에 전달함으로써 상기 PDU를 제어하도록 더 구성되고, 상기 직렬 액세스 디바이스는 초기에 상기 하드웨어 인벤토리의 판매자로부터의 크리덴셜의 디폴트 세트에 기초하여 액세스되고, 상기 크리덴셜의 디폴트 세트는 템플릿 파일 내의 하드웨어 스키마 내에 프로그래밍되는
    컴퓨터 시스템.
  16. 제15항에 있어서,
    상기 PDU는 상기 명령어를 판독하고, 상기 명령어에 기초하여 상기 블레이드들의 세트 중 적어도 하나의 선택된 블레이드에 전원을 전달하고 상기 블레이드들의 세트 중 적어도 하나의 선택되지 않은 블레이드에 전원을 공급되지 않게 하도록 더 구성되는
    컴퓨터 시스템.
  17. 제16항에 있어서,
    상기 사용자 디바이스에 의해 수행되는 상기 부트스트랩 프로세스는
    상기 블레이드들의 세트 각각으로부터 수신된 상기 데이터 패킷 내에서 반송된 상기 정보를 추출하는 단계와,
    상기 정보를 이용하여 인프라구조 상태를 구성하는 단계를 더 포함하는
    컴퓨터 시스템.
  18. 제17항에 있어서,
    상기 인프라구조 상태가 상기 사용자 디바이스로부터 전달되면 상기 인프라구조 상태를 소비하는 서버를 더 포함하되, 하나 이상의 서버가 상기 데이터 센터의 상부에서 실행되는 상기 클라우드 컴퓨팅 패브릭을 관리하도록 구성되는
    컴퓨터 시스템.
  19. 제18항에 있어서,
    상기 서버는 상기 블레이드들의 세트 및 상기 네트워크 디바이스 상에 상기 클라우드-컴퓨팅 패브릭의 서비스를 배치하도록 더 구성되는
    컴퓨터 시스템.
  20. 제19항에 있어서,
    상기 사용자 디바이스는 상기 블레이드들의 세트에 구성 설정을 설치하도록 더 구성되고, 상기 구성 설정의 파라미터는 상기 인프라구조 상태 내에 기술되는
    컴퓨터 시스템.
KR1020147021361A 2012-01-30 2013-01-21 클라우드-컴퓨팅 스탬프의 자동화된 구축 KR101954480B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/360,876 2012-01-30
US13/360,876 US9641394B2 (en) 2012-01-30 2012-01-30 Automated build-out of a cloud-computing stamp
PCT/US2013/022358 WO2013116021A1 (en) 2012-01-30 2013-01-21 Automated build-out of a cloud-computing stamp

Publications (2)

Publication Number Publication Date
KR20140120895A KR20140120895A (ko) 2014-10-14
KR101954480B1 true KR101954480B1 (ko) 2019-03-05

Family

ID=48871281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021361A KR101954480B1 (ko) 2012-01-30 2013-01-21 클라우드-컴퓨팅 스탬프의 자동화된 구축

Country Status (7)

Country Link
US (1) US9641394B2 (ko)
EP (1) EP2810175B1 (ko)
JP (1) JP6174604B2 (ko)
KR (1) KR101954480B1 (ko)
CN (1) CN104081371B (ko)
ES (1) ES2587902T3 (ko)
WO (1) WO2013116021A1 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367360B2 (en) * 2012-01-30 2016-06-14 Microsoft Technology Licensing, Llc Deploying a hardware inventory as a cloud-computing stamp
US9917736B2 (en) 2012-01-30 2018-03-13 Microsoft Technology Licensing, Llc Automated standalone bootstrapping of hardware inventory
US20130204918A1 (en) * 2012-02-08 2013-08-08 International Business Machines Corporation Computing environment configuration and initialization
US8892947B1 (en) * 2012-03-13 2014-11-18 Emc Corporation Method and system for automation framework for multi-node environments
US10120725B2 (en) 2012-06-22 2018-11-06 Microsoft Technology Licensing, Llc Establishing an initial configuration of a hardware inventory
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
JP6035961B2 (ja) * 2012-07-31 2016-11-30 富士通株式会社 情報処理装置、管理プログラムおよび管理方法
US20140047342A1 (en) * 2012-08-07 2014-02-13 Advanced Micro Devices, Inc. System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
US9355055B1 (en) * 2012-09-07 2016-05-31 Amazon Technologies, Inc. Network and power connection management
US20140310039A1 (en) * 2013-04-16 2014-10-16 Centurylink Intellectual Property Llc Automated Cloud Expansion and Ordering System and Method
CN104113443B (zh) * 2013-04-19 2018-10-02 南京中兴新软件有限责任公司 一种网络设备检测方法、装置及云检测系统
US20150026076A1 (en) * 2013-07-18 2015-01-22 Netapp, Inc. System and Method for Providing Customer Guidance in Deploying a Computing System
EP3063661B1 (en) 2013-10-30 2020-05-06 Hewlett-Packard Enterprise Development LP Topology remediation
US10284427B2 (en) 2013-10-30 2019-05-07 Hewlett Packard Enterprise Development Lp Managing the lifecycle of a cloud service modeled as topology decorated by a number of policies
WO2015065382A1 (en) * 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Instantiating a topology-based service using a blueprint as input
EP3063660A4 (en) 2013-10-30 2017-06-14 Hewlett-Packard Enterprise Development LP Execution of a topology
WO2015065374A1 (en) 2013-10-30 2015-05-07 Hewlett-Packard Development Company, L.P. Management of the lifecycle of a cloud service modeled as a topology
US10212051B2 (en) 2013-10-30 2019-02-19 Hewlett Packard Enterprise Development Lp Stitching an application model to an infrastructure template
US10230568B2 (en) 2013-10-30 2019-03-12 Hewlett Packard Enterprise Development Lp Monitoring a cloud service modeled as a topology
US9325688B1 (en) * 2013-12-31 2016-04-26 Vce Company, Llc Methods, systems, and computer readable mediums for performing workflow credential management in a converged infrastructure system
US10282346B1 (en) * 2014-02-05 2019-05-07 Cisco Technology, Inc. Scalable network device self-configuration in large networks
BR112016017361A2 (pt) 2014-02-27 2017-08-08 Intel Corp Técnicas para descoberta e gerenciamento de recurso de computação
US10362375B2 (en) * 2014-07-08 2019-07-23 Hewlett Packard Enterprise Development Lp Discovering connection of passive cables
US10498619B2 (en) 2014-07-08 2019-12-03 Hewlett Packard Enterprise Development Lp Discovering connection of passive cables
US9900391B2 (en) 2014-08-05 2018-02-20 Microsoft Technology Licensing, Llc Automated orchestration of infrastructure service blocks in hosted services
US10320605B2 (en) * 2014-10-15 2019-06-11 Nimbus 9, Inc. Rapid gateway swap
US9923775B2 (en) 2014-12-01 2018-03-20 Microsoft Technology Licensing, Llc Datacenter topology definition schema
GB2533385B (en) * 2014-12-18 2021-05-26 Advanced Risc Mach Ltd Assignment of tenancy to devices
US10437510B2 (en) 2015-02-03 2019-10-08 Netapp Inc. Monitoring storage cluster elements
US10652103B2 (en) * 2015-04-24 2020-05-12 Goldman Sachs & Co. LLC System and method for handling events involving computing systems and networks using fabric monitoring system
US10305731B2 (en) * 2015-07-07 2019-05-28 Oracle International Corporation System and method for provisioning cloud services across heterogeneous environments using partitioned provisioning instructions stored on a configuration management server
US9659081B1 (en) * 2015-08-12 2017-05-23 Databricks Inc. Independent data processing environments within a big data cluster system
US10257031B1 (en) * 2016-02-26 2019-04-09 Amazon Technologies, Inc. Dynamic network capacity augmentation for server rack connectivity
JP6662220B2 (ja) * 2016-06-29 2020-03-11 富士通株式会社 情報処理システム、情報処理装置、位置特定方法及び位置特定プログラム
CN107562553B (zh) 2016-06-30 2021-05-07 伊姆西公司 数据中心管理方法和设备
CN107872814A (zh) * 2016-09-26 2018-04-03 中兴通讯股份有限公司 一种基站信息自管理方法、装置和系统
US10389580B2 (en) * 2016-10-28 2019-08-20 Western Digital Technologies, Inc. Distributed computing system configuration
US10270663B2 (en) 2016-10-28 2019-04-23 Hewlett Packard Enterprise Development Lp Fabric management devices
US10802878B2 (en) * 2017-03-31 2020-10-13 Bmc Software, Inc. Phased start and stop of resources in a mainframe environment
US10489136B2 (en) * 2017-04-27 2019-11-26 Quanta Computer Inc. Automatic firmware and custom setting provision for server device
US10382258B2 (en) * 2017-05-11 2019-08-13 Western Digital Technologies, Inc. Viral system discovery and installation for distributed networks
US10644946B2 (en) * 2017-06-19 2020-05-05 Cisco Technology, Inc. Detection of overlapping subnets in a network
US10567228B2 (en) * 2017-06-19 2020-02-18 Cisco Technology, Inc. Validation of cross logical groups in a network
US10608901B2 (en) * 2017-07-12 2020-03-31 Cisco Technology, Inc. System and method for applying machine learning algorithms to compute health scores for workload scheduling
KR20200106036A (ko) 2017-12-08 2020-09-10 넷-썬더, 엘엘씨 자동 배포되는 정보 기술(it) 시스템 및 방법
US10587463B2 (en) * 2017-12-20 2020-03-10 Hewlett Packard Enterprise Development Lp Distributed lifecycle management for cloud platforms
US10447539B2 (en) * 2017-12-21 2019-10-15 Uber Technologies, Inc. System for provisioning racks autonomously in data centers
US10929261B1 (en) * 2018-06-25 2021-02-23 Amazon Technologies, Inc. Device diagnosis
JP7244061B2 (ja) * 2019-02-25 2023-03-22 Necソリューションイノベータ株式会社 ラック、装置、ネットワーク管理方法、およびプログラム
US10996938B2 (en) * 2019-07-15 2021-05-04 Juniper Networks, Inc. Automated selection of software images for network devices
KR102125966B1 (ko) * 2019-12-05 2020-06-23 엘에스웨어(주) 사설 네트워크 및 가상머신을 이용한 토르 네트워크의 트래픽 및 특징점 수집 시스템
US11962501B2 (en) * 2020-02-25 2024-04-16 Sunder Networks Corporation Extensible control plane for network management in a virtual infrastructure environment
US11671429B1 (en) 2020-02-26 2023-06-06 Equinix, Inc. Authorization automation in procurement of interconnections within a data center
US11520492B1 (en) * 2021-06-11 2022-12-06 EMC IP Holding Company LLC Method and system for migrating data clusters using heterogeneous data cluster infrastructures
US11947433B2 (en) * 2022-01-07 2024-04-02 Dell Products L.P. System and method for subscription based solution management
US11907153B2 (en) 2022-01-07 2024-02-20 Dell Products L.P. System and method for distributed subscription management
US11888690B2 (en) 2022-01-07 2024-01-30 Dell Products L.P. System and method for subscription limitation enforcement in distributed system
US12093102B2 (en) 2022-01-07 2024-09-17 Dell Products L.P. System and method for power state enforced subscription management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259816A1 (en) 2007-04-19 2008-10-23 Archer Charles J Validating a Cabling Topology in a Distributed Computing System
US20090210735A1 (en) 2008-02-19 2009-08-20 Deanna Lynn Quigg Brown Apparatus, system, and method for controlling power sequence in a blade center environment
US20110022245A1 (en) 2008-03-31 2011-01-27 Goodrum Alan L Automated power topology discovery
US20120303767A1 (en) 2011-05-24 2012-11-29 Aleksandr Renzin Automated configuration of new racks and other computing assets in a data center

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0412353A (ja) 1990-05-01 1992-01-16 Mitsubishi Paper Mills Ltd 平版印刷版の処理方法
JPH04123253A (ja) * 1990-09-14 1992-04-23 Fujitsu Ltd 超並列計算機の構成形態検出方式
IL126552A (en) 1998-10-13 2007-06-03 Nds Ltd Remote administration of smart cards for secure access systems
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US7103661B2 (en) * 2000-07-12 2006-09-05 John Raymond Klein Auto configuration of portable computers for use in wireless local area networks
US7027820B2 (en) 2001-01-31 2006-04-11 Hewlett-Packard Development Company, L.P. Location data validation by static entities receiving location data items by short-range communication
US20040119735A1 (en) * 2002-12-20 2004-06-24 Kalpana Subbarao Method and apparatus for determining and displaying the physical configuration of a multi-component system
JP2004252800A (ja) 2003-02-21 2004-09-09 Hitachi Ltd 計算機管理方法
AU2003901152A0 (en) * 2003-03-12 2003-03-27 Intotality Pty Ltd Network service management system and method
US7827248B2 (en) * 2003-06-13 2010-11-02 Randy Oyadomari Discovery and self-organization of topology in multi-chassis systems
US7278273B1 (en) 2003-12-30 2007-10-09 Google Inc. Modular data center
JP2005228167A (ja) * 2004-02-13 2005-08-25 Fujitsu Ltd ラック構成決定支援システム
EP1810522A1 (en) * 2004-11-03 2007-07-25 Panduit Corp. Method and apparatus for patch panel patch cord documentation and revision
US7496059B2 (en) 2004-12-09 2009-02-24 Itt Manufacturing Enterprises, Inc. Energy-efficient medium access control protocol and system for sensor networks
GB2426160A (en) 2005-05-09 2006-11-15 3Com Corp Testing in large networks, using mapping of layer-3 addresses
US7421599B2 (en) * 2005-06-09 2008-09-02 International Business Machines Corporation Power management server and method for managing power consumption
US20060282529A1 (en) * 2005-06-14 2006-12-14 Panduit Corp. Method and apparatus for monitoring physical network topology information
US20070088630A1 (en) * 2005-09-29 2007-04-19 Microsoft Corporation Assessment and/or deployment of computer network component(s)
US7676565B2 (en) * 2006-01-27 2010-03-09 Microsoft Corporation Light weight software and hardware inventory
JP5082252B2 (ja) 2006-02-09 2012-11-28 株式会社日立製作所 サーバ情報収集方法
US20080052437A1 (en) * 2006-08-28 2008-02-28 Dell Products L.P. Hot Plug Power Policy for Modular Chassis
US8700187B2 (en) 2007-08-28 2014-04-15 Consert Inc. Method and apparatus for actively managing consumption of electric power supplied by one or more electric utilities
US8949389B1 (en) 2008-03-31 2015-02-03 Intel Corporation Method and system for configuring virtual fabrics
US20100036903A1 (en) * 2008-08-11 2010-02-11 Microsoft Corporation Distributed load balancer
JP5074351B2 (ja) * 2008-10-30 2012-11-14 株式会社日立製作所 システム構築方法及び管理サーバ
US10025627B2 (en) * 2008-11-26 2018-07-17 Red Hat, Inc. On-demand cloud computing environments
US20100153482A1 (en) * 2008-12-10 2010-06-17 Full Armor Corporation Cloud-Based Automation of Resources
US20100211656A1 (en) * 2009-02-17 2010-08-19 International Business Machines Corporation Configuring A Blade Environment
US8200800B2 (en) * 2009-03-12 2012-06-12 International Business Machines Corporation Remotely administering a server
CN102379070B (zh) * 2009-03-31 2014-01-22 惠普开发有限公司 确定多个计算机系统的功率拓扑结构
WO2010119370A1 (en) 2009-04-15 2010-10-21 Koninklijke Philips Electronics N.V. Energy efficient transmission in a network
US8776053B2 (en) * 2009-09-25 2014-07-08 Oracle International Corporation System and method to reconfigure a virtual machine image suitable for cloud deployment
US8225135B2 (en) 2009-07-07 2012-07-17 Drobo, Inc. System and method for protecting users of data storage systems against known problems
US8332496B2 (en) * 2009-09-23 2012-12-11 International Business Machines Corporation Provisioning of operating environments on a server in a networked environment
US9009294B2 (en) * 2009-12-11 2015-04-14 International Business Machines Corporation Dynamic provisioning of resources within a cloud computing environment
EP2339778A1 (en) 2009-12-28 2011-06-29 Nxp B.V. Configuration of bus transceiver
EP2362578A1 (en) 2010-02-15 2011-08-31 Broadcom Corporation Method and system for managing network power policy and configuration of data center bridging
US9317407B2 (en) * 2010-03-19 2016-04-19 Novell, Inc. Techniques for validating services for deployment in an intelligent workload management system
US20110246793A1 (en) * 2010-04-01 2011-10-06 Xyratex Technology Limited Method of providing out of band monitoring and control of a data storage subsystem
US8352658B2 (en) * 2010-05-27 2013-01-08 Microsoft Corporation Fabric based lock manager service
JP5752788B2 (ja) 2010-06-04 2015-07-22 コーニンクレッカ フィリップス エヌ ヴェ 縦続接続されたパワーオーバーイーサネット(登録商標)システム
WO2011159842A2 (en) 2010-06-15 2011-12-22 Nimbula, Inc. Virtual computing infrastructure
US8625596B1 (en) * 2010-09-28 2014-01-07 Juniper Networks, Inc. Multi-chassis topology discovery using in-band signaling
WO2012047718A1 (en) * 2010-10-04 2012-04-12 Avocent Remote access appliance having mss functionality
US8719402B2 (en) * 2010-10-21 2014-05-06 Microsoft Corporation Goal state communication in computer clusters
US20120151040A1 (en) * 2010-12-13 2012-06-14 Mouravyov Sergei Computer inventory data consolidation
US8798077B2 (en) * 2010-12-29 2014-08-05 Juniper Networks, Inc. Methods and apparatus for standard protocol validation mechanisms deployed over a switch fabric system
EP2673712B1 (en) 2011-02-09 2024-01-17 Vertiv IT Systems, Inc. Infrastructure control fabric system and method
US8433779B2 (en) 2011-05-16 2013-04-30 Hitachi, Ltd. Computer system for allocating IP address to communication apparatus in computer subsystem newly added and method for newly adding computer subsystem to computer system
US20120311111A1 (en) 2011-06-03 2012-12-06 Microsoft Corporation Dynamic reconfiguration of cloud resources
KR101507919B1 (ko) 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
GB201113556D0 (en) 2011-08-05 2011-09-21 Bripco Bvba Data centre
US8924548B2 (en) 2011-08-16 2014-12-30 Panduit Corp. Integrated asset tracking, task manager, and virtual container for data center management
US9367360B2 (en) 2012-01-30 2016-06-14 Microsoft Technology Licensing, Llc Deploying a hardware inventory as a cloud-computing stamp
US9137111B2 (en) 2012-01-30 2015-09-15 Microsoft Technology Licensing, Llc Discovering, validating, and configuring hardware-inventory components
US20140068747A1 (en) 2012-08-31 2014-03-06 International Business Machines Corporation Automatic Completeness Checks of Network Device Infrastructure Configurations During Enterprise Information Technology Transformation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259816A1 (en) 2007-04-19 2008-10-23 Archer Charles J Validating a Cabling Topology in a Distributed Computing System
US20090210735A1 (en) 2008-02-19 2009-08-20 Deanna Lynn Quigg Brown Apparatus, system, and method for controlling power sequence in a blade center environment
US20110022245A1 (en) 2008-03-31 2011-01-27 Goodrum Alan L Automated power topology discovery
US20120303767A1 (en) 2011-05-24 2012-11-29 Aleksandr Renzin Automated configuration of new racks and other computing assets in a data center

Also Published As

Publication number Publication date
WO2013116021A1 (en) 2013-08-08
ES2587902T3 (es) 2016-10-27
EP2810175A4 (en) 2015-07-01
CN104081371B (zh) 2017-03-08
JP6174604B2 (ja) 2017-08-02
US20130198346A1 (en) 2013-08-01
US9641394B2 (en) 2017-05-02
CN104081371A (zh) 2014-10-01
EP2810175B1 (en) 2016-05-25
KR20140120895A (ko) 2014-10-14
EP2810175A1 (en) 2014-12-10
JP2015512079A (ja) 2015-04-23

Similar Documents

Publication Publication Date Title
KR101954480B1 (ko) 클라우드-컴퓨팅 스탬프의 자동화된 구축
US10700932B2 (en) Automated standalone bootstrapping of hardware inventory
EP2932387B1 (en) Deploying a hardware inventory as a cloud-computing stamp
US9137111B2 (en) Discovering, validating, and configuring hardware-inventory components
US11611487B2 (en) Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
EP2864881B1 (en) Establishing an initial configuration of a hardware inventory
CN108141380B (zh) 基于网络的资源配置发现服务
TWI523452B (zh) 超管理器或硬體管理器主機代管虛擬流量管理器之使用中升級
TWI240184B (en) System, method, computer readable storage medium and state engine to automate the management of computer services and programmable devices
EP3198792B1 (en) Automated standalone bootstrapping of hardware inventory
Nogueira et al. Network virtualization system suite: Experimental network virtualization platform
US20240154862A1 (en) Pre-provisioning server hardware for deployment on an edge network

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant