KR102607127B1 - 클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스 - Google Patents

클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스 Download PDF

Info

Publication number
KR102607127B1
KR102607127B1 KR1020207023442A KR20207023442A KR102607127B1 KR 102607127 B1 KR102607127 B1 KR 102607127B1 KR 1020207023442 A KR1020207023442 A KR 1020207023442A KR 20207023442 A KR20207023442 A KR 20207023442A KR 102607127 B1 KR102607127 B1 KR 102607127B1
Authority
KR
South Korea
Prior art keywords
bare metal
untrusted
trusted
resource
clearance
Prior art date
Application number
KR1020207023442A
Other languages
English (en)
Other versions
KR20200119814A (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 KR20200119814A publication Critical patent/KR20200119814A/ko
Application granted granted Critical
Publication of KR102607127B1 publication Critical patent/KR102607127B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Emergency Alarm Devices (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)

Abstract

베어 메탈 리소스는 신뢰 부분 및 비신뢰 부분을 포함한다. 신뢰 부분은 신뢰 하드웨어, 이미지 저장소, 및 클리어런스 관리자를 포함한다. 클리어런스 관리자는 비신뢰 부분에 대한 클리어런스 프로세스를 수행하도록 베어 메탈 리소스의 부팅 동안 실행될 수 있는데, 클리어런스 프로세스는, 베어 메탈 리소스를 신뢰 상태에 두기 위해, 비신뢰 부분의 BIOS를 삭제하는 것과 비신뢰 하드웨어 상에 이미지 저장소로부터의 신뢰 BIOS를 로딩하는 것을 포함한다. 베어 메탈 리소스는 신뢰 상태에 놓인 후 클라우드 공급자의 테넌트에 프로비저닝될 수 있다

Description

클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스
클라우드 컴퓨팅은 전형적으로, 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 소프트웨어 등을 관련시킬 수 있는 컴퓨팅 서비스의 전달을 수반한다. 이러한 컴퓨팅 서비스를 제공하는 회사는 클라우드 공급자라 불리고, 전형적으로 사용량에 기초하여 클라우드 컴퓨팅 서비스에 대해 과금한다.
종종, 클라우드 공급자는 서로 다른 테넌트에 할당될 수 있는 재사용 가능한 컴퓨팅 리소스 풀을 구현하기 위해 가상화를 사용한다. 가상화는, 동일한 서버 상에서 서로 다른 운영 체제 및 애플리케이션 인스턴스를 실행할 수 있는 가상 머신(VM)과 같은 다양한 전용 리소스를 생성하기 위해 물리적 인프라스트럭처를 분리하는 기술이다. 서버 가상화를 사용하면, 클라우드 공급자는 서버 리소스의 사용을 최대화하고 필요한 서버 수를 줄일 수 있다. 또한, VM은 별도의 격리된 유닛으로서 실행될 수 있으므로 고장 및 보안 격리를 제공한다. 클라우드 공급자는 펌웨어 멀웨어로 인한 공격, 바이오스-레벨 하이퍼바이저 공격, BIOS(basic input/output system)/펌웨어 덮어쓰기 및 서비스 거부 공격과 같은 다양한 침입 공격으로부터 하드웨어를 보호하기 위해 가상화 기술에 의존할 수 있다. 일반적으로, 시스템 보드 상의 비휘발성 메모리 모듈이 이러한 공격의 대상이 되는데, 이는 비휘발성 메모리를 대상으로 하면 시스템 전력 사이클에 걸쳐 공격이 지속될 수 있기 때문이다. 가상화는 이러한 공격으로부터 비휘발성 메모리 모듈을 격리시키는 데 도움이 될 수 있다.
성능 향상을 위해, 클라우드 컴퓨팅 테넌트는, 클라우드에서 인공 지능 또는 머신 학습 작업부하와 같은 작업부하를 위해 최신 고성능 하드웨어 및/또는 가속기에 대한 베어 메탈 액세스(bare-metal access)를 점점 더 많이 요구하고 있다. 베어 메탈 액세스는, VM 대신 단일 테넌트 물리적 서버에 대한 액세스를 테넌트에게 제공하는 것을 포함할 수 있다. 베어 메탈 액세스는 테넌트가 베어 메탈 서버 상의 하드웨어에 액세스하는 것(예컨대, 커스텀 드라이버 또는 펌웨어를 설치하는 것)을 가능하게 한다.
클라우드 공급자가 서버의 베어 메탈 액세스를 테넌트에게 제공하는 것은 어려울 수 있다. 예를 들어, 하드웨어를 공격으로부터 격리시키는 가상화 계층을 갖지 않는 베어 메탈 서버의 보안을 유지하는 데 어려움이 있을 수 있다. 또한, 테넌트에 의한 사용이 완료된 후 하이퍼바이저에 의해 종료될 수 있는 VM과 달리, 테넌트에 의한 사용이 완료된 후 베어 메탈 서버를 지우는 효율적이고 자동화된 메커니즘은 존재하지 않는다.
실시예 및 예는 다음의 도면을 참조하여 다음의 설명에서 상세하게 설명된다. 실시예는 유사한 도면 부호가 유사한 요소를 나타내는 첨부 도면에 제시된 예에 의해 도시된다.
도 1은 일 실시예에 따른, 베어 메탈 리소스 및 신뢰 인프라스트럭처 디바이스를 포함하는 시스템을 도시한다.
도 2는 일 실시예에 따른, 클리어런스 프로세스를 시작하고 실행하는 방법을 도시한다.
도 3은 일 실시예에 따른, 본 명세서에 설명된 원리가 이용될 수 있는 클라우드 환경을 도시한다.
도 4는 일 실시예에 따른, 본 명세서에 설명된 원리가 이용될 수 있는 데이터 센터를 도시한다.
도 5는 일 실시예에 따른, 베어 메탈 리소스가 테넌트에 프로비저닝되는 클라우드 환경을 도시한다.
도 6은 일 실시예에 따른, 본 명세서에 설명된 원리가 이용될 수 있는 컴퓨팅 시스템을 도시한다.
단순성 및 예시를 위해, 본 개시의 원리는 주로 그 실시예 및 예를 참조하여 설명된다. 이하의 설명에서는, 실시예 및 예의 이해를 제공하기 위해 다수의 특정 세부사항이 제시된다. 그러나, 이들 특정 세부사항으로 제한되지 않고 실시예 및 예가 실시될 수 있음이 당업자에게는 명백할 것이다. 일부 예에서, 공지된 방법 및/또는 구조는 실시예 및 예의 설명을 불필요하게 모호하게 하지 않기 위해 상세히 설명되지 않았다. 또한, 실시예 및 예는 다양한 조합으로 함께 사용될 수 있다.
본 개시의 실시예에 따르면, 재할당 가능한 베어 메탈 컴퓨터 리소스를 프로비저닝하는 것을 가능하게 하는 하드웨어 및 방법이 설명된다. 프로비저닝은 클라우드 컴퓨팅 테넌트를 위해 클라우드 공급자에 의해 클라우드 컴퓨팅 환경에서 수행될 수 있다. 도 1은 일 실시예에 따른, 베어 메탈 리소스(110) 및 신뢰 인프라스트럭처 디바이스(150)를 포함하는 시스템(100)을 도시한다. 베어 메탈 리소스(110)는 베어 메탈 서버 또는 베어 메탈 머신으로도 지칭될 수 있다. 베어 메탈 리소스(110)는 가상 서버가 아닌 물리적 서버를 포함한다. 일 예에서, 베어 메탈 리소스(110)는 클라우드 컴퓨팅 환경에서 단일 테넌트에 할당되고(예컨대, 단일 테넌트에만 전용됨), 테넌트는 필요에 따라 베어 메탈 리소스(110)를 구성할 수 있다.
베어 메탈 리소스(110)는 하드웨어 디바이스(111)를 포함하는 마더보드를 갖는다. 하드웨어 디바이스(111)는 CPU(112), 저장 디바이스(113) 및 도시되지 않은 다른 하드웨어를 포함할 수 있다. 예를 들어, 하드웨어 디바이스(111)는, FPGA(field-programmable gate array), GPU(graphics processing unit), HBA(host bus adapter), NVMe(non-volatile memory express) 플래시 메모리, SSD(solid state devices), HDD(hard disk drives), CPU(central processing unit), DRAM(dynamic random- access memory) 등 중에서 하나 이상을 포함할 수 있다. 일 예에서, 베어 메탈 리소스(110)는 x86 플랫폼(예컨대, 단일 또는 이중 소켓 CPU 보드를 가짐) 및 FPGA(field programmable array), NIC(network interface controller), 이더넷 NIC, 클럭 및 전력 회로와 같은 PCI(Peripheral Component Interconnect Express) 부착 디바이스(들)를 포함하는 서버 마더보드를 포함할 수 있다. 베어 메탈 리소스(110)는, 데이터 센터에 제공될 수 있는 랙(rack)에 배치될 수 있다. 베어 메탈 리소스(110)는 데이터 센터 요건을 준수할 수 있다. 일 예는, 베어 메탈 리소스가 블레이드 섀시 설계(섀시 높이는 4U이고 4-6 개의 수직으로 삽입된 블레이드를 수용함)인 것이다. 베어 메탈 리소스(110)는, IaaS(Infrastructure as a Service) 또는 클라우드 공급자에 의해 클라우드 컴퓨팅 테넌트에 이용 가능하게 되는 다른 유형의 서비스의 일부와 같은, 클라우드 공급자의 베어 메탈 오퍼링의 일부로서 제공될 수 있다.
베어 메탈 리소스(110)는 신뢰 부분(120) 및 비신뢰 부분(130)을 포함할 수 있다. 예를 들어, 신뢰 부분(120)은 테넌트에 의해 액세스될 수 없고 테넌트에 의해 구성될 수 없는 베어 메탈 리소스(110)의 하드웨어 및 소프트웨어를 지칭한다. 비신뢰 부분(130)은, 예를 들어, 베어 메탈 리소스(110)가 테넌트에 프로비저닝되는 경우와 같이, 테넌트에 의해 액세스될 수 있고 테넌트에 의해 구성될 수 있는 하드웨어 및 소프트웨어를 지칭한다.
신뢰 부분(120)은 베어 메탈 리소스(110)을 신뢰 상태에 두기 위해 베어 메탈 리소스(110)에 대한 클리어런스 프로세스를 수행하는 하드웨어 및 소프트웨어를 포함할 수 있다. 신뢰 상태는 올바르게 동작하는 것으로 알려진 베어 메탈 리소스(110)의 구성일 수 있다. 예를 들어, 신뢰 상태에서의 베어 메탈 리소스(110)의 구성은 구현 전에 테스트되어 고장 없이 동작한다고 판정된 것이다. 클리어런스 프로세스는, 예컨대, 보안 위반의 경우, 또는 베어 메탈 리소스(110)를 다른 테넌트로 재할당하거나, 또는 베어 메탈 리소스(110)가 작동이 안되는(fail) 경우(이는 테넌트에 의해 로딩된 결함 있는 소프트웨어로 인해 유발될 수 있음), 베어 메탈 리소스를 신뢰 상태로 되돌리는 데 사용될 수 있다.
신뢰 부분(120)은 하드웨어 디바이스를 포함한다. 예를 들어, 신뢰 부분(120)은 처리 회로(125) 및 메모리(126)를 포함한다. 처리 회로(125)는, 클리어런스 프로세스를 수행하는 클리어런스 관리자(122)와 같은 펌웨어를 실행하는 마이크로제어기, CPU, FPGA, ASIC(Application-Specific Integrated Circuit) 등을 포함할 수 있다. 클리어런스 관리자(122)는 후술되는 클리어런스 프로세스의 동작을 수행하는 초기화 루틴(124)을 포함할 수 있다. 일 예에서, 클리어런스 관리자(122)는 특수 하드 부팅(special hard boot)에 응답하여 초기화 루틴(124)을 포함하는 POST(power-on self-test)를 실행하여 클리어런스 프로세스를 실행할 수 있다.
신뢰 부분(120)은 신뢰 이미지(123)를 저장하는 이미지 저장소(121)를 포함한다. 이미지 저장소(121)는 비휘발성 메모리를 포함할 수 있는 신뢰 부분(120) 상의 저장 디바이스에 저장될 수 있다. 신뢰 이미지(123)는 클리어런스 프로세스 동안 비신뢰 부분(130) 상으로 로딩될 수 있다.
이미지 저장소(121)의 신뢰 이미지(123)는, 드라이버, 펌웨어, BIOS, OS에 대한 신뢰 이미지, BMC(baseboard management controller), NIC 및 기본 입/출력(I/O) 디바이스 등을 포함하는 주요 부팅 핵심 컴포넌트에 대한 이미지와 같은, 펌웨어 또는 다른 유형의 소프트웨어의 알려진 양호한 이미지를 포함한다. 알려진 양호한 이미지는 로딩된 플랫폼 상에서 결함 없이 작동하는 것으로 알려진 이미지일 수 있다. 이미지 저장소(121)는 여러 버전의 이미지를 저장할 수 있다. 예를 들어, 신뢰 이미지 저장소(121)는, 테넌트가 대면하는 전체 읽기 및 쓰기 액세스 작업 이미지(tenant-facing, full read-and-write-access working image), LKG(Last-known-Good) 이미지, 및 주요 부팅 핵심 컴포넌트에 대한 이미지를 저장한다. 이들 이미지는 예를 들어 알려진 양호한 이미지이며, 이들 이미지 중 하나 이상은 후술되는 바와 같이 클리어런스 프로세스 동안 비신뢰 부분(130)에 로딩된다.
신뢰 부분(120) 및 비신뢰 부분(130)은 베어 메탈 리소스(110)의 동일한 마더보드 상에 존재할 수 있다. 예를 들어, 신뢰 부분(120)은 마더보드 상의 칩 또는 칩셋일 수 있거나, 신뢰 부분(120)은 마더보드의 슬롯에 꽂을 수 있는 카드일 수 있다. 신뢰 부분(120)은 베어 메탈 리소스(110)를 임대하는 테넌트에 의해 액세스될 수 없으며, 예컨대, 클리어런스 프로세스가 수행되고 베어 메탈 리소스(110)가 테넌트에 프로비저닝된 이후에, 비신뢰 부분(130)이 테넌트에 의해 사용될 때, 신뢰 부분(120)은 비신뢰 부분(130)에 보이지 않는다.
비신뢰 부분(130)은 비신뢰 소프트웨어(140) 및 하드웨어 디바이스(111)를 포함할 수 있다. 비신뢰 소프트웨어(140)는 펌웨어(131), BIOS(132), 드라이버(133), 운영 체제(OS)(134), 애플리케이션(135) 등을 포함할 수 있는데, 이들은 테넌트가 액세스, 제거, 추가 또는 수정할 수 있다. 펌웨어(131) 및 드라이버(133)는 베어 메탈 리소스(110) 상의 디바이스에 의해 사용되는 펌웨어 및 드라이버를 포함할 수 있다. 예를 들어, 펌웨어(131)는 베어 메탈 리소스(110) 상의 베이스보드 관리 제어기의 펌웨어를 포함할 수 있다. 드라이버(133)는 베어 메탈 리소스(110) 상의 비디오 카드 또는 네트워크 인터페이스 제어기(NIC)를 위한 드라이버를 포함할 수 있다. 예를 들어, 베어 메탈 리소스(110)가 테넌트에 프로비저닝된 후, 테넌트는 베어 메탈 리소스(110) 상에 커스텀 애플리케이션을 설치하고 실행할 수 있다. 또한, 테넌트는, 컴퓨팅 요구를 가장 잘 처리할 수 있도록 베어 메탈 리소스를 구성하기 위해, 베어 메탈 리소스(110) 상에 새로운 OS, 또는 새로운 BIOS 또는 새로운 드라이버를 설치할 수 있다. 비신뢰 소프트웨어(140)는 하드웨어 디바이스(111)의 저장 디바이스(113)에 저장될 수 있다. 또한, 비신뢰 소프트웨어(140)는 CPU(112) 또는 하드웨어 디바이스(111)의 다른 처리 회로에 의해 실행될 수 있다. 일반적으로, 하드웨어 디바이스(111) 및 비신뢰 소프트웨어(140)는 클리어런스 프로세스가 수행된 후에 그리고 베어 메탈 리소스(110)가 테넌트에 프로비저닝된 후에 테넌트에 의해 액세스 및 구성될 수 있다.
베어 메탈 리소스(110)는 하나 이상의 통신 인터페이스를 포함할 수 있다. 예를 들어, 하드웨어 디바이스(111)는 대역 내 네트워크를 통해 통신하는 NIC를 포함할 수 있다. 또한, 베어 메탈 리소스(110)는 대역 외 채널(160)을 통해 클라우드 공급자의 제어 평면(151)과 통신하는 통신 인터페이스(128)를 포함할 수 있다. 통신 인터페이스(128)는 대역 내 네트워크를 통해 통신하는 NIC와는 별개의 NIC일 수 있거나, 다중화되는 동일한 NIC일 수 있다. 다른 예에서, 통신 인터페이스(128)는, 대역 외 채널(160)을 통해 제어 평면(151)의 신뢰 인프라스트럭처 디바이스(150)에 와이어를 통해 접속되는, DIP(Dual-ln-Line Plug) 커넥터 및/또는 GPIO(general-purpose input/output)를 포함할 수 있는 시스템 보드 인터페이스를 포함할 수 있다.
신뢰 인프라스트럭처 디바이스(150)는 클라우드 컴퓨팅 환경의 제어 평면(151)의 일부일 수 있으며, 클리어런스 프로세스를 실행하고 다른 기능을 수행하도록 베어 메탈 리소스(110)에 명령어 또는 신호를 전송하도록 동작 가능하다. 제어 평면(151)은 테넌트 데이터를 운반하기보다는 트래픽을 관리하고 리소스를 테넌트에 프로비저닝하기 위해 사용될 수 있다. 신뢰 인프라스트럭처 디바이스(150)는 클리어런스 프로세스를 호출하고 베어 메탈 리소스(110)에 대한 고장으로부터 프로비저닝 및 복구를 시작할 수 있다. 또한, 신뢰 인프라스트럭처 디바이스(150)는 베어 메탈 리소스(110)에 액세스하여, 리소스 관리, 지속적인 건전성 모니터링, 청구 등과 같은 다른 관리 기능을 수행할 수 있다. 일 예에서, 신뢰 인프라스트럭처 디바이스(150)는 클리어런스 프로세스 및 다른 관리 기능을 수행하기 위해 랙의 베어 메탈 리소스에 액세스할 수 있는 랙 제어기의 일부이다. 다른 예에서, 신뢰 인프라스트럭처 디바이스(150)는, 클리어런스 프로세스를 실행하고 베어 메탈 리소스를 개별 테넌트에 프로비저닝하기 위해, 대역 외 채널(160)을 포함하는 대역 외 네트워크(유선 및/또는 무선)를 통해 클라우드 내의 베어 메탈 리소스와 통신하는, 제어 평면(151) 내의 네트워크 관리 디바이스일 수 있다.
전술한 바와 같이, 신뢰 인프라스트럭처 디바이스(150)는 예를 들어 대역 외 채널(160)을 통해 베어 메탈 리소스(110)와 통신 가능하게 결합된다. 대역 외 채널(160)은 테넌트 데이터를 저장 및 운반하는 클라우드의 네트워크들에 대해 대역 외이며, 대역 외 채널(160)은 테넌트가 액세스할 수 없다. 대역 외 채널(160)은, 이더넷과 같은 통신 매체를 통하거나 GPIO(General-purpose Input/Output)와 같은 보안/개인 상호접속을 통하거나 또는 다른 통신 매체를 통하는 보안 접속일 수 있다.
일 예에서, 신뢰 인프라스트럭처 디바이스(150)는 GPIO 및/또는 DIP(dual in-line package) 스위치를 통해 신뢰 부분(120)에 접속된다. 필요한 경우 DIP 스위치는 특정 GPIO를 활성화 또는 비활성화할 수 있다. 클리어런스 프로세스를 호출하기 위해, 신뢰 인프라스트럭처 디바이스(150)는 베어 메탈 리소스(110)가 비신뢰 부분(130) 대신에 신뢰 부분(120)으로부터 부팅되도록 적절한 GPIO 핀을 제어할 수 있다. 그 후, 클리어런스 프로세스가 완료된 후, 신뢰 인프라스트럭처 디바이스(150)는 베어 메탈 리소스(110)가 비신뢰 부분(130)으로부터 부팅되도록 적절한 GPIO 핀을 제어할 수 있고, 베어 메탈 리소스(110)는 테넌트 사용을 위한 준비를 갖춘다.
일 예에서, 클라우드 공급자의 테넌트는 클라우드 공급자의 베어 메탈 IaaS 오퍼링에 가입하고 베어 메탈 리소스를 임대할 수 있다. 클라우드 공급자는 IaaS의 일부로서 베어 메탈 리소스(110)에 대한 액세스를 제공할 수 있다. 테넌트에게 베어 메탈 리소스(110)에 대한 액세스를 제공하기 전에, 베어 메탈 리소스(110)에 대해 클리어런스 프로세스가 수행된다. 클리어런스 프로세스는 비신뢰 부분(130)에서 하드웨어 디바이스(111)의 지속적 상태(persistent state)를 지울 수 있다. 이것은 비신뢰 부분(130)에서 테넌트(또는 이전 테넌트)에 의해 남겨진 임의의 데이터 또는 머신 판독가능 명령어를 삭제하는 것을 포함할 수 있고, 하드웨어 디바이스(111)를 지속적인 알려진 양호한 상태(즉, 신뢰 상태)로 복원하는 것을 포함할 수 있다. 이것은, 저장 디바이스(113)에서 테넌트 데이터, 펌웨어, 애플리케이션 등을 삭제하는 것과 같이, 모든 저장 디바이스를 지우는 것을 포함할 수 있다. 이것은 하드웨어 디바이스(111)(예컨대, 네트워크 카드, NVMe 드라이브, 또는 펌웨어를 가질 수 있는 마더보드에 부착된 임의의 다른 디바이스) 상의 펌웨어를 신뢰 상태로 복원하는 것과, 베어 메탈 리소스(110)의 마더보드 상의 지속적 상태를 신뢰 상태로 복원하는 것(예컨대, 마더보드 내의 CMOS(complementary metal-oxide-semiconductor) 실시간 클록은, 사용자가 데이터를 기록할 수 있는 배터리 백업 RAM(random-access memory)과 같은 일부 영구 메모리를 사용할 수 있는데, 이를 소거하지 않으면 남겨져 있는 상태로 간주될 수 있어서, 이전에 해당 머신에 존재했다면 공격자가 이를 식별하는 등의 작업을 수행할 수 있음)과, BIOS가 변경된 경우 BIOS를 신뢰 상태로 복원하는 것을 더 포함할 수 있다. 클리어런스 프로세스는 알려진 양호한 이미지를 신뢰 부분(120)의 이미지 저장소(121)로부터 비신뢰 부분(130)으로 로딩하는 것을 포함할 수 있다. 일반적으로, 신뢰 상태로 복원하기 위해, 시스템(100)은 테넌트에 의해 액세스될 수 있는 하드웨어 디바이스(111)의 지속적 상태를 점검하고, 변경이 검출되면, 상태는 알려진 양호한 값과 같은 유효 상태로 설정된다. 또한, 데이터 및 소프트웨어는 지워지고, 알려진 양호한 이미지가 비신뢰 부분(130)에 로딩된다. 클리어런스 프로세스가 완료된 후, 베어 메탈 리소스(110)는 테넌트에 할당되고, 테넌트는 예컨대 대역 내 네트워크의 보안 네트워크 채널을 통해 베어 메탈 리소스(110)에 대한 액세스를 제공받는다. 그런 다음, 테넌트는, 예컨대 비신뢰 부분(130)의 하드웨어 디바이스(111) 상에 새로운 BIOS, 펌웨어, OS, 드라이버, 애플리케이션 등을 로딩함으로써, 필요에 따라 비신뢰 부분(130)을 구성할 수 있다. 테넌트는 언제나 베어 메탈 리소스(110)의 신뢰 부분(120)에는 액세스할 수 없다.
클리어런스 프로세스는 하드웨어 복원 후 임대 및 테넌트 복구 지원 시나리오를 포함하여 다양한 상황에서 수행될 수 있다. 예를 들어, 베어 메탈 리소스(110)가 버그 또는 악의적 사용자로 인해 부팅되지 않으면 클리어런스 프로세스가 트리거될 수 있다. 베어 메탈 리소스(110)가 테넌트 사용에 이용될 수 있도록 베어 메탈 리소스의 풀로 복귀되어야 할 경우, 클리어런스 프로세스가 트리거될 수 있다. 예를 들어, 테넌트가 베어 메탈 리소스(110)를 다음 테넌트로 넘겨주기 전에 베어 메탈 리소스(110)를 비우는 경우, 클리어런스 프로세스가 시작될 수 있다.
도 2는 일 실시예에 따른 클리어런스 프로세스를 시작하고 실행하는 방법(200)을 도시한다. 201에서 베어 메탈 리소스(110)는 클라우드 공급자의 제어 평면(151)으로부터 신호를 수신하고, 202에서 수신된 신호에 응답하여 신뢰 부분(120)으로부터의 베어 메탈 리소스(110)의 재부팅이 트리거된다. 일 예에서, 베어 메탈 리소스(110)의 재부팅은, 신뢰 부분(120)으로부터 재부팅을 실행하도록 대역 외 네트워크를 통해 신호를 전송하는 제어 평면(151)에 의해 시작된다. 신호는 신뢰 부분(120)로부터의 재부팅을 실행하도록 대역 외 채널(160)을 통해 베어 메탈 리소스(110) 상에 생성된 인터럽트일 수 있다. 예를 들어, 신뢰 인프라스트럭처 디바이스(150)는, 신뢰 인프라스트럭처 디바이스(150)에 접속된 베어 메탈 리소스(110)의 적절한 GPIO 핀으로 신호를 전송할 수 있다. 신호는 재부팅을 시작하기 위해 특정 시퀀스로 전송될 수 있다. GPIO 핀은 베어 메탈 리소스(110)의 마더보드 상에 존재할 수 있다. 일 구성에서, 시그널링은, 비신뢰 부분(130) 내의 CPU로 하여금 신뢰 부분(120)으로부터 재부팅을 실행하게 하는 특수 하드 부팅에 대한 인터럽트를 전송하는 것을 포함할 수 있다. 다른 구성에서는, 신뢰 부분(120)으로부터의 재부팅을 야기하는 서버 전력 사이클이 시작될 수 있다.
베어 메탈 리소스는 신뢰 부분(120)으로부터의 재부팅을 야기하는 특수 모드에서 재부팅될 수 있다. 예를 들어, 신뢰 부분(120)의 CPU는 클리어런스 관리자(122)의 위치를 저장하고, 특수 모드 재부팅을 위해 메모리(126)로부터 클리어런스 관리자(122)를 호출한다. 클리어런스 관리자(122)는 신뢰 인프라스트럭처 디바이스(150)에 의해 야기된 하드 리부팅에 응답하여 POST를 실행할 수 있다. POST는 이하에서 더 설명되는 클리어런스 프로세스의 동작을 수행하기 위한 초기화 루틴(124)의 실행을 포함할 수 있다. 일 예에서, 클리어런스 관리자(122)는 메모리(126)에 저장된 저-레벨 펌웨어를 포함할 수 있다. 메모리(126)는 비휘발성 메모리일 수 있다.
또한, 202에서, 신뢰 부분(120)으로부터의 재부팅은 클리어런스 프로세스를 시작시킨다. 예를 들어, 재부팅은 비신뢰 부분(130)이 아니라 신뢰 부분(120)으로부터 시작된다. 클리어런스 관리자(122)는 초기화 루틴(124)을 실행하여 클리어런스 동작들 중 하나 이상을 수행한다.
이제, 클리어런스 프로세스 동안 수행되는 클리어런스 동작의 예가 설명된다. 예를 들어, 203에서, 비신뢰 부분(130)의 비신뢰 디바이스(111b)는 지속적 상태에 놓인다. 다른 예로서, 클리어런스 프로세스는 신뢰 부분(120)의 메모리(126) 내의 클리어런스 관리자(122)를 통해 수행되는 증분(incremental) 부팅 프로세스를 포함할 수 있다. 증분 부팅 프로세스는 비신뢰 부분(130)의 비신뢰 디바이스(111b)를 지속적 상태에 둔다. 예를 들어, 증분 부팅 프로세스는 비휘발성 메모리에 저장된 비신뢰 디바이스(111b)의 비휘발성 상태를 소거한다. 이것은 비신뢰 디바이스(111b)에 대한 저장된 상태 값을 유효 디폴트 값으로 설정하는 것을 포함할 수 있다. 예를 들어 RTC(Real-Time Clock) 상태는 유효 디폴트 상태 값이다. 또한, 비신뢰 부분(130)의 휘발성 또는 비휘발성 저장 디바이스에 저장된 모든 테넌트 데이터가 지워지고, 임의의 다른 디바이스의 모든 지속적 데이터는 알려진 양호한 상태로 설정된다. 또한, 비신뢰 부분(130)의 비신뢰 소프트웨어가 지워진다. 예를 들어, 비신뢰 부분(130)에 저장되는 BIOS(132), 펌웨어(131), 드라이버(133), OS(134), 애플리케이션(135) 등은 지워진다. 이러한 동작은 BIOS에 의해 실행되는 전원 공급 자가 테스트(power-on self-test)의 일부일 수 있다.
204에서, 클리어런스 관리자(122)는 알려진 양호한 이미지를 이미지 저장소(121)로부터 비신뢰 부분(130)으로 로딩하여 비신뢰 부분(130) 상에서 작업 이미지로서 작동하게 한다. 펌웨어(131), BIOS(132), 드라이버(133) 및 OS(134)에 대한 이미지를 포함하는 알려진 양호한 이미지는 이미지 저장소(121)로부터 비신뢰 부분(130)으로 로딩될 수 있다. 신뢰 부분(120)은 펌웨어 또는 소프트웨어의 알려진 양호한 이미지를 포함하는 신뢰 이미지(123)를 저장하는 신뢰 이미지 저장소(121)를 포함할 수 있다. 알려진 양호한 이미지는 로딩되는 플랫폼에서 결함없이 작동하는 것으로 알려진 이미지일 수 있다. 예를 들어, 신뢰 이미지 저장소(121)는 고객이 대면하는 전체 읽기 및 쓰기 액세스 작업 이미지, LKG(Last-known-Good) 이미지, 및 주요 부팅 핵심 컴포넌트(BIOS, BMC(baseboard management controller), NIC, 및 고객이 쓰기 액세스를 갖지 않을 기본 I/O(input/output) 디바이스를 포함함)에 대한 골든 이미지를 저장한다. 이들 이미지는 예를 들어 알려진 양호한 이미지이며, 이들 이미지 중 하나 이상은 후술되는 바와 같이 클리어런스 프로세스 동안 비신뢰 부분(130)에 로딩된다.
205에서, 신뢰 인프라스트럭처 디바이스(150)는 클리어런스 프로세스가 성공적으로 완료되어 베어 메탈 리소스(110)가 동작 가능한지를 검증한다. 이것은 POST 동안 메모리 테스트를 실행하고 하드웨어 디바이스(111)의 다른 디바이스에 대해 다른 테스트를 수행하는 것을 포함할 수 있다. 임의의 검증 테스트가 실패하면 에러 코드가 생성될 수 있고, 에러 코드는 메모리(126)의 미리 결정된 위치에 저장될 수 있다. 검증이 실패하면, 206에서 하나 이상의 치료 조치가 수행될 수 있다. 예를 들어, 시스템 감독자에게 통지될 수 있고/있거나 클리어런스 관리자(122)가 클리어런스 프로세스를 다시 실행할 수 있지만, 고장 안전 이미지(fail-safe images)가 이미지 저장소(121)로부터 하드웨어 디바이스(111)로 로딩될 수도 있다. 고장 안전 이미지는 기본 부팅 이미지를 포함할 수 있으며, 고장 안전 이미지가 로딩된 후, 신뢰 인프라스트럭처 디바이스(150)는 베어 메탈 리소스(110)가 동작 가능한지를 검증한다. 베어 메탈 리소스(110)가 여전히 동작 가능하지 않으면, 감독자에게 통지될 수 있다.
클리어런스 프로세스의 완료를 검증하는 또 다른 예에서, 신뢰 인프라스트럭처 디바이스(150)는 신뢰 부분(120)으로부터의 재부팅 동안 부팅 시퀀스의 순방향 진행(또는 그 부족)을 검출한다. 부팅 시퀀스의 진행을 결정하는 것은 부팅 시퀀스에 대해 미리 결정된 동작 시퀀스를 저장하고 어떤 동작이 완료되었는지를 결정함으로써 수행될 수 있다. 일 예에서, 클리어런스 관리자(122)는 동작의 수행을 나타내는 값을 메모리(126)의 미리 결정된 레지스터에 기록할 수 있다. 신뢰 인프라스트럭처 디바이스(150)는 또한 프로세스가 중단(stall)되는지 여부를 판정하기 위해 시퀀스가 시작된 이후 클리어런스 프로세스의 경과 시간을 측정할 수 있다. 경과 시간은 클리어런스 프로세스의 상이한 동작의 실행을 측정하는 타이머 또는 복수의 타이머에 의해 측정될 수 있다. 신뢰 인프라스트럭처 디바이스(150)는 베어 메탈 리소스(110)가 클리어런스 프로세스에서 순방향으로 진행하고 있지 않음을 검출하면 경고를 전송할 수 있다. 또한, 신뢰 인프라스트럭처 디바이스(150) 및/또는 클리어런스 관리자(122)는 사고(crashing) 전에 클리어런스 프로세스가 완료된 정도를 결정할 수 있고, 클리어런스가 완료된 정도에 기초하여 동작을 호출할 수 있다. 예를 들어, 클리어런스 프로세스가 다시 시작될 때, 클리어런스 프로세스가 실패하기 전에 성공적으로 완료된 클리어런스 프로세스의 단계는 건너뛸 수 있다.
207에서, 클리어런스 프로세스가 완료되고 베어 메탈 리소스(110)가 동작 가능하다는 것을 신뢰 인프라스트럭처 디바이스(150)가 검증한 후에, 신뢰 인프라스트럭처 디바이스(150)는 비신뢰 부분(130)으로부터의 재부팅을 호출한다. 예를 들어, 신뢰 인프라스트럭처 디바이스(150)는 대역 외 채널(160)을 통해 비신뢰 부분(130)으로부터의 재부팅을 야기하는 신호를 전송한다. 일 예에서, 207에서 전송된 신호는, 201에서 전송된 신뢰된 부분(120)으로부터의 재부팅을 야기하는 인터럽트와 다른 인터럽트일 수 있다. 신호를 수신하는 것에 응답하여, 베어 메탈 리소스(110)는 비신뢰 부분(130) 내의 BIOS(132)(이 시점에서는 이미지 저장소(121)로부터 로딩된 신뢰 BIOS임)로부터 부팅된다. 예를 들어, 신뢰 인프라스트럭처 디바이스(150)는, 이미지 저장소(121)로부터 비신뢰 부분(130)으로 복사된 BIOS(132)로부터 비신뢰 부분(130)의 CPU가 부팅되게 하는 인터럽트를 생성하도록 시퀀스에서 특정 GPIO 핀을 설정할 수 있다.
클리어런스 프로세스는 사람의 입력 없이 자동화된 방식으로 시작되고 실행될 수 있다. 예를 들어, 어떠한 수동 조작도 호출되지 않으므로 베어 메탈 리소스(110)를 알려진 양호한 상태로 만들기 위해 데이터 센터 기술자가 물리적으로 존재할 필요가 없다. 그러나, 수동 유지 보수를 위해, 예컨대 베어 메탈 리소스(110)의 보드 상에 수동으로 뒤집을 수 있는 점퍼 핀을 사용함으로써, 추가적인 수동 복구 트리거 메커니즘이 제공될 수 있다.
클리어런스 프로세스는, 마이크로제어기, FPGA, 또는 클리어런스 관리자(122)(기본 플랫폼 파워 업을 담당하는 POST 로더를 포함함)를 실행하는 CPLD(complex programmable logic device)와 같은 프로세싱 회로(125)에 의해 수행될 수 있다. 예를 들어, 신뢰 부분(120)은 비신뢰 부분(130) 상의 칩과는 별개인 칩 또는 칩셋(예컨대, FPGA, 메모리를 포함함)을 포함할 수 있다. 신뢰 부분(120)은 저-레벨 펌웨어 및 하드웨어를 포함할 수 있다.
비신뢰 부분(130)과 신뢰 부분(120)은 동시에 동작 가능하지 않을 수 있다. 예를 들어, 신뢰 부분(120)은 클리어런스 프로세스 동안 동작 가능하고, 비신뢰 부분(130)는 클리어런스 프로세스 동안 동작 불가능하며 테넌트에 의해 액세스 불가능하다. 클리어런스 프로세스가 완료된 후에, 비신뢰 부분(130)이 동작 가능하고 테넌트에 의해 액세스될 수 있을 때, 신뢰 부분(120)은 동작 불가능하게 된다. 신뢰 부분(120)은 비신뢰 부분(130)에서 실행되는 OS(134)에게는 보이지 않을 수 있다. 예를 들어, 어떤 형태의 판독 전용 메모리일 수 있는 신뢰 부분(120)의 메모리(126)는 비신뢰 부분(130)의 BIOS(132)에 의해 수행되는 부팅 프로세스 동안 맵핑되지 않을 수 있고, 비신뢰 부분(130)이 동작 가능할 때 신뢰 부분(120)은 비신뢰 부분(130)에게 보이지 않는다.
전술된 바와 같이, 클리어런스 프로세스는 클라우드 컴퓨팅 환경으로도 지칭되는 클라우드 환경에서 수행될 수 있는데, 이는 아래에서 추가로 설명되는 클라우드 공급자에 의해 관리된다. 그러나, 클리어런스 프로세스는, 베어 메탈 리소스가 지워져야 하거나 동작 가능하게 되어야 할 다른 시나리오에서 실행될 수 있다.
도 3은 본 명세서에 설명된 원리가 이용될 수 있는 클라우드 환경을 포함할 수 있는 환경(300)을 도시한다. 환경(300)은 인터페이스(303)를 사용하여 시스템(310)과 상호작용하는 다수의 클라이언트(301)를 포함한다. 환경(300)은 3개의 클라이언트(301A, 301B 및 301C)를 갖는 것으로 도시되어 있지만, 여기에 설명된 원리는 인터페이스(303)를 통해 시스템(310)과 인터페이스하는 클라이언트의 이 수에 제한되지 않는다. 시스템(310)은 요구가 있을 때 클라이언트(301)에 서비스를 제공할 수 있고, 따라서 시스템(310)으로부터 서비스를 수신하는 클라이언트(301)의 수는 시간에 따라 변할 수 있다.
각각의 클라이언트(301)는, 인터페이스(302)를 통해 시스템(310)과 인터페이스하는 컴퓨터, 애플리케이션 및/또는 다른 소프트웨어 모듈을 포함할 수 있다. 인터페이스(302)는, 애플리케이션 프로그램 인터페이스를 사용할 수 있는 임의의 컴퓨팅 시스템 또는 소프트웨어 엔티티가 시스템(310)과 통신할 수 있는 방식으로 정의되는 애플리케이션 프로그램 인터페이스일 수 있다.
시스템(310)은 분산 시스템일 수 있으며, 일 예에서는 클라우드 컴퓨팅 환경이다. 클라우드 컴퓨팅 환경은 필수적인 것은 아니지만 분산될 수 있으며, 심지어 국제적으로 분산되고/되거나 여러 조직에 걸쳐 소유되는 컴포넌트를 가질 수도 있다.
이 설명 및 다음의 청구범위에서, "클라우드 컴퓨팅"은 구성 가능한 컴퓨팅 리소스(예컨대, 네트워크, 서버, 스토리지, 애플리케이션 및 서비스)의 공유 풀에 대한 온-디맨드 네트워크 액세스를 가능하게 하는 모델로서 정의된다. "클라우드 컴퓨팅"의 정의는 적절하게 배포될 때 이러한 모델로부터 획득될 수 있는 상이한 여러가지 장점들 중 임의의 것으로 제한되지 않는다.
예를 들어, 클라우드 컴퓨팅은, 구성 가능한 컴퓨팅 리소스의 공유 풀에 대한 편리한 온-디맨드 유비쿼터스 액세스를 제공하기 위해 현재 시장에서 사용된다. 또한 구성 가능한 컴퓨팅 리소스의 공유 풀은 가상화를 통해 신속하게 프로비저닝되고 낮은 관리 노력이나 서비스 공급자 상호작용을 사용하여 배포된 다음, 적절하게 확장될 수 있다. 또한, 구성 가능한 컴퓨팅 리소스의 공유 풀은 도 1에 도시된 베어 메탈 리소스(110)와 같은 베어 메탈 리소스를 포함할 수 있다.
클라우드 컴퓨팅 모델은, 온-디맨드 셀프 서비스, 광범위한 네트워크 액세스, 리소스 풀링, 빠른 탄력성, 측정 서비스(measured service) 등과 같은 다양한 특성으로 구성될 수 있다. 클라우드 컴퓨팅 모델은 또한, 예를 들어, SaaS(Software as a Service), PaaS(Platform as a Service) 및 IaaS(Infrastructure as a Service)와 같은 다양한 서비스 모델 형태로 제공될 수 있다. 클라우드 컴퓨팅 모델은 또한, 프라이빗 클라우드, 커뮤니티 클라우드, 퍼블릭 클라우드, 하이브리드 클라우드 등과 같은 다양한 배포 모델을 사용하여 배포될 수 있다. 이 설명 및 청구범위에서, "클라우드 컴퓨팅 환경"은 클라우드 컴퓨팅이 사용되는 환경이다.
시스템(310)은 다수의 데이터 센터(311)를 포함할 수 있다. 시스템(310)은 임의의 수의 데이터 센터(311)를 포함할 수 있지만, 도 3에는 3개의 데이터 센터(311A, 311B 및 311C)가 도시되어 있다. 데이터 센터는 하나만 존재할 수도 있으며, 상한은 없다. 또한, 데이터 센터의 수는 고정적일 수 있거나, 시간이 경과하면서 새로운 데이터 센터가 시스템(310)에 추가되거나 데이터 센터가 시스템(310)으로부터 삭제됨에 따라 동적으로 변할 수 있다.
각각의 데이터 센터(311)는 처리, 메모리, 스토리지, 대역폭 등과 같은 대응하는 컴퓨팅 리소스를 제공하는 다수의 호스트를 포함한다. 데이터 센터(311)는 또한 네트워크 스위치, 로드 밸런서, 스토리지 어레이 등과 같은 물리적 인프라스트럭처를 포함할 수 있다.
도 3에 도시된 바와 같이, 데이터 센터(311A)는 호스트(314A, 314B, 314C)를 포함하고, 데이터 센터(311B)는 호스트(314E, 314F, 314G)를 포함하며, 데이터 센터(311C)는 호스트(3141, 314J, 314K)를 포함한다. 본 명세서에 설명된 원리는 정확한 수의 호스트(314)로 제한되지 않는다. 큰 데이터 센터(311)는 수백 또는 수천 개의 호스트(314)를 포함하는 반면, 작은 데이터 센터는 훨씬 적은 수의 호스트(314)를 가질 것이다. 데이터 센터에 포함된 호스트(314)의 수는 고정적일 수 있거나, 시간이 경과하면서 새로운 호스트가 데이터 센터(311)에 추가되거나 호스트가 데이터 센터(311)에서 제거됨에 따라 동적으로 변할 수 있다.
일 예에서, 호스트는 하나 이상의(어쩌면 다수의) 가상 머신을 실행할 수 있다. 동작 동안, 가상 머신은 적어도 운영 체제 및 아마도 하나 이상의 다른 애플리케이션을 포함하는 완전하게 동작 가능한 컴퓨팅 시스템을 에뮬레이션한다. 각 가상 머신은 특정 클라이언트 또는 클라이언트 그룹에 할당되며, 해당 클라이언트 또는 클라이언트 그룹을 위한 데스크톱 환경을 지원하고 해당 클라이언트 또는 클라이언트 그룹에서 실행중인 애플리케이션을 지원할 책임이 있다. 일 예에서, 가상 머신은 데스크톱의 현재 상태를 나타내는 데스크톱 이미지 또는 다른 렌더링 명령어를 생성한 다음, 데스크톱의 렌더링을 위해 이미지 또는 명령어를 클라이언트에 전송한다. 사용자가 클라이언트에서 데스크톱과 상호작용할 때, 사용자 입력은 클라이언트로부터 가상 머신으로 전송된다.
일 예에서, 호스트(314)는, 클리어런스 프로세스를 실행함으로써 신뢰 상태에 놓인 후에 테넌트에 프로비저닝되는 베어 메탈 리소스를 포함할 수 있다. 이 때, 테넌트는, 도 1에 도시된 것과 같은 베어 메탈 리소스의 신뢰 부분 상의 애플리케이션, OS, BIOS 등과 같은 소프트웨어를 로딩함으로써, 베어 메탈 리소스를 구성할 수 있다. 필요에 따라, 테넌트는 VM을 실행하도록 베어 메탈 리소스를 구성하거나, 베어 메탈 리소스를 가상화없이 물리적 서버로서 동작시킬 수 있다.
시스템(310)은 또한 서비스(312)를 포함한다. 도시된 예에서, 서비스(312)는 5개의 개별 서비스(312A, 312B, 312C, 312D 및 312E)를 포함하지만, 여기에 설명된 원리는 시스템(310)의 서비스의 수에 제한되지는 않는다. 서비스 조정 시스템(313)은 호스트(314) 및 서비스(312)와 통신하여, 클라이언트(301)에 의해 요청된 서비스, 및 요청된 서비스의 전제 조건이 될 수 있는 다른 서비스(예컨대, 인증, 청구 등)를 제공한다.
도 4는 일 실시예에 따른, 본 명세서에 설명된 원리가 이용될 수 있는 데이터 센터(400)를 도시한다. 데이터 센터(400)는 전술된 데이터 센터들(311) 중 어느 하나에 대응할 수 있다. 도시된 바와 같이, 데이터 센터(400)는 테넌트(410A 및 410B)(이하, "테넌트(410)"로도 지칭됨)를 포함하지만, 임의의 수의 추가 테넌트가 존재할 수 있다. 각각의 테넌트(410)는, 데이터 센터(400)의 컴퓨팅 리소스의 일부를 사용하거나 사용을 할당받은 엔티티(또는 엔티티 그룹)를 나타낸다.
데이터 센터(400)는 또한 컴퓨팅 리소스(420A 및 420B)(이하, "컴퓨팅 리소스(420)"로도 지칭됨)를 포함하지만, 임의의 수의 추가 컴퓨팅 리소스가 존재할 수 있다. 컴퓨팅 리소스(420)는 베어 메탈 리소스 및 데이터 센터(400)의 가상 컴퓨팅 리소스를 포함하는 모든 물리적 리소스를 나타내고, 호스트(314)에 대응할 수 있다. 예는, 서버 또는 호스트, 네트워크 스위치, 프로세서, 스토리지 어레이 및 다른 저장 디바이스, 소프트웨어 컴포넌트, 가상 머신 및 베어 메탈 리소스를 포함한다.
데이터 센터(400)는 시스템 관리자(430)를 더 포함한다. 시스템 관리자(430)는 테넌트(410)와 컴퓨팅 리소스(420) 사이의 상호작용을 관리한다. 시스템 관리자(430)는 분산 방식으로 구현되거나 단일 컴퓨터 시스템 상에서 구현될 수 있다. 시스템 관리자(430)는 필요에 따라 데이터 센터(400)의 다양한 처리, 저장 및 다른 컴퓨팅 리소스에 액세스할 수 있음이 이해될 것이다.
시스템 관리자(430)의 동작은 다음에 보다 상세하게 설명될 것이다. 설명될 시스템 관리자(430)의 다양한 컴포넌트 및 모듈은 또한 다수의 호스트(214)에 걸쳐 분산될 수 있음이 이해될 것이다. 또한, 시스템 관리자(430)는 도시된 것보다 많거나 적은 컴포넌트 및 모듈을 포함할 수 있으며, 컴포넌트 및 모듈은 상황에 따라 결합될 수도 있다.
시스템 관리자(430)는 테넌트(410)에 의해 사용되도록 관련 컴퓨팅 리소스(420)를 구성할 수 있다. 예를 들어, 호스트 또는 서버의 경우, 사전 정의된 리소스 구성은, 운영 체제 이미지 및 커스터마이제이션 정보, 애플리케이션 패키지 및 커스터마이제이션 정보, IP(Internet Protocol) 주소, MAC(Media Access Control) 주소, 월드와이드 네임, 및 스토리지, 네트워킹 및 컴퓨팅을 위한 하드웨어 전제 조건을 포함할 수 있다. 미리 정의된 리소스 구성은 추가 또는 상이한 리소스 구성을 포함할 수 있다는 것이 이해될 것이다. 일 예에서, 베어 메탈 리소스의 경우, 구성은 신뢰 이미지를 신뢰 부분의 이미지 저장소에 저장하는 것과 클리어런스 관리자를 설치하는 것을 포함할 수 있다.
시스템 관리자(430)는 이벤트 모듈(433)을 포함할 수 있다. 동작 시에, 이벤트 모듈(433)은 감독자(440)로 하여금 다양한 이벤트 조건(433A)을 정의할 수 있게 하는데, 이는 데이터 센터(400)의 컴퓨팅 리소스가 시스템 관리자(430)에게 베어 메탈 리소스에서 리소스 구성을 적용하거나 클리어런스 프로세스를 실행하는 것과 같은 조치를 수행할 것을 요구할 수 있는 이벤트를 생성하는 것을 가능하게 하여, 이벤트를 유발하는 조건을 개선(remediate)할 것이다. 이벤트 조건(433A)의 예는, 컴퓨팅 리소스(420)에 추가된 새로운 서버로부터 DHCP(Dynamic Host Configuration Protocol) 요청을 수신하는 것, 리소스 소진(재활성화) 또는 예측된 리소스 활용률 증가(선제적)에 기초한 온-디맨드 용량 확장, 용량 초과 할당에 기초한 스케일-인(scale-in), 베어 메탈 리소스의 프로비저닝, 및 작동이 안되는 베어 메탈 리소스를 포함하는 작동이 안되는 컴포넌트의 리-프로비저닝을 포함할 수 있지만, 이에 제한되지는 않는다. 이벤트 조건(433A)은 단일 이벤트 일뿐만 아니라 다수의 이벤트의 시퀀스일 수도 있다는 것이 이해될 것이다.
시스템 관리자(430)는 또한 이벤트 모니터(434)를 포함할 수 있다. 동작 시에, 이벤트 모니터(434)는 시스템 관리자(430)로 하여금 어떤 행동을 취하게 할 수 있는 이벤트 조건(433A)에 대해 테넌트(410) 및 컴퓨팅 리소스(420)를 모니터링하도록 구성된다. 이벤트 모니터(434)는 이벤트 조건이 발생했는지를 판정하기 위해 컴퓨팅 리소스(420)의 성능 카운터 및 이벤트 로그를 모니터링하거나 분석할 수 있다. 일 실시예에서, 이벤트 모니터(434)가 설치될 수 있고, 시스템 관리자(430)는 제어 평면을 통해 모니터링되고 있는 컴퓨팅 리소스(420)와 통신할 수 있다. 다른 실시예에서는, 이벤트 모니터(434)가 컴퓨팅 리소스를 직접 모니터링할 필요없이, 컴퓨팅 리소스(420) 또는 테넌트(410)가 이벤트 조건(433A)이 발생했음을 자발적으로 이벤트 모니터(434)에 통지할 수 있다.
시스템 관리자(430)는 또한 프로비저닝 관리자(435)를 포함한다. 동작 시에, 프로비저닝 관리자(435)는 구성 또는 다른 조치를 특정 이벤트 조건 및 관련 정책과 연관시킬 수 있다. 이는 프로비저닝 관리자(435)로 하여금 특정 이벤트에 대한 적절한 조치를 결정 및 수행할 수 있게 하고, 그 조치를 취하는 것을 알 수 있게 한다. 또한, 프로비저닝 관리자(435)는, 예컨대 테넌트가 베어 메탈 리소스를 사용하기 위해 처음 임대할 때, 새로운 컴퓨팅 리소스를 테넌트에 프로비저닝하는 동작을 수행한다.
도 5는 일 실시예에 따른, 베어 메탈 리소스가 테넌트에 프로비저닝되는 클라우드 환경을 도시한다. 예를 들어, 베어 메탈 리소스(500a)를 포함하는 베어 메탈 리소스(500)는 데이터 센터(400)와 같은 데이터 센터에서 랙(501a)을 포함하는 랙(501)에 수용될 수 있다. 베어 메탈 리소스(500)는 컴퓨팅 리소스(420)의 일부이다. 베어 메탈 리소스(500)은 도 1에 도시된 베어 메탈 리소스(110)의 컴포넌트를 가질 수 있고, 랙 장착형 베어 메탈 서버일 수 있다. 예를 들어, 도 1의 신뢰 인프라스트럭처 디바이스(150)는 랙 제어기이고, 베어 메탈 리소스의 GPIO 핀과의 유선 접속을 포함할 수 있는 도 1에 도시된 대역 외 채널(160)을 통해 랙 내의 베어 메탈 리소스와 통신한다. 예를 들어, 랙(501a) 상의 랙 제어기(503a)를 포함하는 랙 제어기들(503)은 각각 신뢰 인프라스트럭처 디바이스(150)를 포함한다. 다른 예에서, 신뢰 인프라스트럭처 디바이스(150)는 시스템 관리자(430)의 일부일 수 있고, 시스템 관리자(430)는 베어 메탈 리소스(500)와 통신하여 클리어런스 프로세스를 수행한다. 본 명세서에 설명된 원리는 도 5에 도시된 랙 및 베어 메탈 리소스 수에 제한되지 않는다. 또한, 데이터 센터는 테넌트에 프로비저닝될 수 있는 베어 메탈 리소스 및/또는 다른 유형의 컴퓨팅 리소스를 포함할 수 있다.
도 1 및 도 2와 관련하여 전술된 바와 같이, 랙 제어기(503a)의 일부일 수 있는 신뢰 인프라스트럭처 디바이스(150)는, 대역 외 채널을 통해 베어 메탈 리소스(500a)와 통신하여 베어 메탈 리소스(500a)에 대해 클리어런스 프로세스를 수행하여 이를 신뢰 상태에 둔다. 시스템 관리자(430)는 클리어런스 프로세스를 트리거하는 이벤트에 응답하여 랙 제어기(503a)와 통신할 수 있다. 예를 들어, 이벤트는 새로운 베어 메탈 리소스를 임대하기 위한 테넌트로부터의 요청일 수 있거나, 베어 메탈 리소스(500a)가 동작 불가능하게 되었다는 표시일 수 있다.
도 6에 도시된 바와 같이, 가장 기본적인 구성에서, 컴퓨팅 시스템(600)은 전형적으로 적어도 하나의 처리 유닛(602) 및 메모리(604)를 포함한다. 메모리(604)는 물리적 시스템 메모리일 수 있으며, 이는 휘발성, 비휘발성 또는 이 둘의 어떤 조합일 수 있다. "메모리"라는 용어는 본 명세서에서 물리적 저장 매체와 같은 비휘발성 대용량 스토리지를 지칭하기 위해 사용될 수도 있다. 컴퓨팅 시스템이 분산되면, 처리, 메모리 및/또는 저장 능력도 분산될 수 있다. 본 명세서에 사용될 때, "모듈" 또는 "컴포넌트"라는 용어는 컴퓨팅 시스템에서 실행되는 소프트웨어 객체 또는 루틴을 지칭할 수 있다. 본 명세서에 설명된 상이한 컴포넌트, 모듈, 엔진 및 서비스는 컴퓨팅 시스템에서 (예컨대, 별개의 스레드로서) 실행되는 객체 또는 프로세스로서 구현될 수 있다.
위의 설명에서, 실시예 및 예는 하나 이상의 컴퓨팅 시스템에 의해 수행되는 동작을 참조하여 설명된다. 그러한 동작이 소프트웨어로 구현되면, 동작을 수행하는 관련 컴퓨팅 시스템의 하나 이상의 프로세서는 컴퓨터 실행가능 명령어가 실행 되게 하는 것에 응답하여 컴퓨팅 시스템의 동작을 지시한다. 예를 들어, 머신 판독가능 명령어로도 지칭되는 이러한 컴퓨터 실행가능 명령어는, 컴퓨터 프로그램 제품을 형성하는 하나 이상의 컴퓨터 판독가능 매체 상에 구현될 수 있다. 이러한 동작의 예는 데이터 조작을 포함한다. 컴퓨터 실행가능 명령어(및 조작된 데이터)는 컴퓨팅 시스템(600)의 메모리(604)에 저장될 수 있다. 컴퓨팅 시스템(600)은 또한, 컴퓨팅 시스템(600)으로 하여금 예를 들어 네트워크를 통해 다른 메시지 프로세서와 통신할 수 있게 하는 통신 채널을 포함할 수 있다. 컴퓨팅 시스템(600)은 시스템 관리자(430) 또는 신뢰 인프라스트럭처 디바이스(150)를 호스팅할 수 있는 컴퓨터의 아키텍처를 나타낼 수 있다. 본 명세서에 설명된 실시예는 또한 컴퓨터 실행가능 명령어 및/또는 데이터 구조를 운반 또는 저장하기 위한 물리적 및 다른 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 실행가능 명령어를 저장하는 컴퓨터 판독가능 매체는 물리적 저장 매체이다. 컴퓨터 실행가능 명령어를 운반하는 컴퓨터 판독가능 매체는 전송 매체이다. 따라서, 제한이 아닌 예로서, 본 발명의 실시예는 적어도 2개의 상이한 종류의 컴퓨터 판독가능 매체, 즉, 컴퓨터 저장 매체 및 전송 매체를 포함할 수 있다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, CD-ROM, 또는 다른 광 디스크 저장 디바이스, 자기 디스크 저장 디바이스 또는 다른 자기 저장 디바이스, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함한다. 또한, 위에서 설명된 방법의 특정 단계들 및 위에서 설명된 다양한 동작들은, 프로세서, 마이크로제어기, 또는 비일시적 컴퓨터 판독가능 매체에 저장된 머신 판독가능 명령어를 실행할 수 있는 다른 하드웨어에 의해 수행될 수 있다. 실시예 및 예는 위에서 설명되며, 당업자는 실시예 및 예의 범위를 벗어나지 않으면서 설명된 실시예 및 예를 다양하게 수정할 수 있을 것이다.

Claims (20)

  1. 베어 메탈 리소스(bare metal resource)로서,
    제 1 처리 회로, 클리어런스 관리자(clearance manager), 및 알려진 양호한(known good) 기본 입출력 시스템(basic input/output system: BIOS)을 저장하는 이미지 저장소를 포함하는 신뢰 부분과,
    제 2 처리 회로, 및 액세스 가능한 BIOS를 포함하는 비신뢰 소프트웨어를 저장하는 저장 디바이스들을 포함하는 비신뢰 부분을 포함하되,
    상기 베어 메탈 리소스가 재할당되어야 함을 나타내거나 상기 베어 메탈 리소스가 고장인(fail) 것을 나타내는 신호에 응답하여, 상기 신뢰 부분의 상기 제 1 처리 회로는 상기 신호에 의해 트리거되어 상기 신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하고, 상기 신뢰 부분의 상기 클리어런스 관리자로 하여금 상기 베어 메탈 리소스에 대한 액세스를 제공하기 전에 상기 베어 메탈 리소스를 알려진 양호한 상태(known good state)에 두도록 상기 비신뢰 부분에 대한 클리어런스 프로세스를 수행하게 하고, 상기 클리어런스 프로세스는 상기 비신뢰 부분의 상기 저장 디바이스들에 저장된 데이터를 삭제하는 것과, 상기 비신뢰 부분의 상기 액세스 가능한 BIOS를 상기 신뢰 부분의 상기 이미지 저장소로부터의 상기 알려진 양호한 BIOS로 교체함으로써 상기 비신뢰 부분의 상기 액세스 가능한 BIOS를 복원하는 것을 포함하고,
    상기 클리어런스 프로세스가 완료되었음을 검증하는 것에 응답하여, 상기 비신뢰 부분의 상기 제 2 처리 회로는 상기 비신뢰 부분의 상기 복원된 액세스 가능한 BIOS를 사용하여 상기 비신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하는,
    베어 메탈 리소스.
  2. 제 1 항에 있어서,
    상기 클리어런스 프로세스는 상기 비신뢰 부분에 미리 저장된 상기 액세스 가능한 BIOS를 포함하는 상기 비신뢰 소프트웨어를 삭제하는 것을 더 포함하는,
    베어 메탈 리소스.
  3. 제 1 항에 있어서,
    상기 클리어런스 프로세스는 상기 신뢰 부분의 상기 이미지 저장소로부터 상기 비신뢰 부분의 상기 저장 디바이스들 중 한 저장 디바이스로 펌웨어를 로딩하는 것을 더 포함하는,
    베어 메탈 리소스.
  4. 제 1 항에 있어서,
    상기 클리어런스 프로세스는 실시간 클록의 상태를 유효한 디폴트 값으로 설정하는 것을 더 포함하는,
    베어 메탈 리소스.
  5. 제 1 항에 있어서,
    상기 비신뢰 부분은, 상기 베어 메탈 리소스가 상기 비신뢰 부분으로부터 재부팅된 후에 네트워크를 통해 새로운 테넌트에 의해 액세스될 수 있는,
    베어 메탈 리소스.
  6. 제 1 항에 있어서,
    상기 신뢰 부분과 상기 비신뢰 부분은 동시에 동작하지 않는,
    베어 메탈 리소스.
  7. 제 5 항에 있어서,
    상기 베어 메탈 리소스는 대역 외 채널을 통해 클라우드 공급자의 제어 평면 내의 신뢰 인프라스트럭처 디바이스에 통신 가능하게 결합되고,
    상기 베어 메탈 리소스는 상기 베어 메탈 리소스가 재할당되어야 함을 나타내거나 상기 베어 메탈 리소스가 고장인 것을 나타내는 상기 신호를 상기 신뢰 인프라스트럭처 다비이스로부터 수신하여 상기 클리어런스 프로세스를 호출하도록 구성되는,
    베어 메탈 리소스.
  8. 제 7 항에 있어서,
    상기 베어 메탈 리소스로 하여금 상기 비신뢰 부분으로부터 재부팅되게 하기 위해, 상기 클리어런스 프로세스가 완료되고 상기 베어 메탈 리소스가 상기 알려진 양호한 상태에 있음을 상기 신뢰 인프라스트럭처 디바이스가 검증한 후, 상기 베어 메탈 리소스는 상기 대역 외 채널을 통해 상기 신뢰 인프라스트럭처 디바이스로부터 상기 클리어런스 프로세스가 완료되었음을 나타내는 검증을 수신하도록 구성되는,
    베어 메탈 리소스.
  9. 제 7 항에 있어서,
    상기 신뢰 인프라스트럭처 디바이스는 상기 클리어런스 프로세스가 완료되었는지 또는 중단(stall)되는지를 판정하기 위해 상기 클리어런스 프로세스가 시작될 때 타이머를 실행하는,
    베어 메탈 리소스.
  10. 제 7 항에 있어서,
    상기 신뢰 인프라스트럭처 디바이스는 랙 제어기(rack controller)이고, 상기 대역 외 채널은 상기 랙 제어기와 상기 베어 메탈 리소스의 시스템 보드 상의 커넥터 사이의 유선 접속을 포함하는,
    베어 메탈 리소스.
  11. 컴퓨팅 리소스 풀 내의 베어 메탈 리소스로서,
    클리어런스 관리자를 저장하는 메모리, 알려진 양호한 기본 입출력 시스템(BIOS)을 저장하는 이미지 저장소, 및 상기 클리어런스 관리자를 실행하는 제 1 처리 회로를 포함하는 신뢰 부분 - 상기 신뢰 부분은 새로운 테넌트가 액세스할 수 없음 - 과,
    상기 베어 메탈 리소스가 상기 새로운 테넌트에 할당될 때 상기 새로운 테넌트가 액세스할 수 있으며, 액세스 가능한 BIOS를 포함하는 비신뢰 소프트웨어를 저장하는 저장 디바이스 및 제 2 처리 회로를 포함하는 비신뢰 부분과,
    외부 디바이스에 통신 가능하게 결합된 통신 인터페이스를 포함하되,
    상기 베어 메탈 리소스가 상기 새로운 테넌트에 재할당되어야 함을 나타내거나 상기 베어 메탈 리소스가 고장인 것을 나타내는 제 1 신호를 상기 외부 디바이스로부터 수신하는 것에 응답하여, 상기 신뢰 부분의 상기 제 1 처리 회로는 상기 제 1 신호에 의해 트리거되어 상기 신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하고, 상기 신뢰 부분의 상기 클리어런스 관리자로 하여금 상기 베어 메탈 리소스에 대한 액세스를 제공하기 전에 상기 베어 메탈 리소스를 알려진 양호한 상태에 두도록 상기 비신뢰 부분에 대한 클리어런스 프로세스를 수행하게 하고, 상기 클리어런스 프로세스는 이전 테넌트에 의해 상기 비신뢰 부분의 상기 저장 디바이스에 저장된 데이터를 삭제하는 것과, 상기 비신뢰 부분의 상기 액세스 가능한 BIOS를 상기 신뢰 부분의 상기 이미지 저장소로부터의 상기 알려진 양호한 BIOS로 교체함으로써 상기 비신뢰 부분의 상기 액세스 가능한 BIOS를 복원하는 것을 포함하고,
    상기 클리어런스 프로세스가 완료되었음을 검증하는 것에 응답하여, 상기 비신뢰 부분의 상기 제 2 처리 회로는 상기 비신뢰 부분의 상기 복원된 액세스 가능한 BIOS를 사용하여 상기 비신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하는,
    베어 메탈 리소스.
  12. 제 11 항에 있어서,
    상기 외부 디바이스는 클라우드 서비스 공급자의 신뢰 인프라스트럭처 디바이스인,
    베어 메탈 리소스.
  13. 제 11 항에 있어서,
    상기 클리어런스 프로세스는 상기 비신뢰 부분에 미리 저장된 상기 액세스 가능한 BIOS를 포함하는 상기 비신뢰 소프트웨어를 삭제하는 것을 더 포함하는,
    베어 메탈 리소스.
  14. 제 11 항에 있어서,
    상기 외부 디바이스는 클리어런스 프로세스가 완료되었는지 또는 중단되는지를 판정하기 위해 타이머를 실행하는,
    베어 메탈 리소스.
  15. 제 11 항에 있어서,
    상기 외부 디바이스는 대역 외 채널을 통해 상기 베어 메탈 리소스에 통신 가능하게 결합된 랙 제어기이고, 상기 대역 외 채널은 상기 랙 제어기와 상기 베어 메탈 리소스의 시스템 보드 상의 커넥터 사이의 유선 접속을 포함하는,
    베어 메탈 리소스.
  16. 제 11 항에 있어서,
    상기 신뢰 부분과 상기 비신뢰 부분은 동시에 동작하지 않는,
    베어 메탈 리소스.
  17. 제 11 항에 있어서,
    상기 신뢰 부분 및 상기 비신뢰 부분은 상기 베어 메탈 리소스의 마더보드 상에 있는,
    베어 메탈 리소스.
  18. 베어 메탈 리소스의 클리어런스 방법으로서,
    베어 메탈 리소스가 재할당되어야 함을 나타내거나 상기 베어 메탈 리소스가 고장인 것을 나타내는 제 1 신호를 신뢰 인프라스트럭처 디바이스로부터 수신하는 단계와,
    상기 베어 메탈 리소스가 재할당되어야 함을 나타내거나 상기 베어 메탈 리소스가 고장인 것을 나타내는 상기 제 1 신호에 응답하여, 상기 베어 메탈 리소스의 신뢰 부분의 제 1 프로세서로 하여금 상기 신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하게 하고, 상기 신뢰 부분의 클리어런스 관리자로 하여금 상기 베어 메탈 리소스에 대한 액세스를 제공하기 전에 상기 베어 메탈 리소스를 알려진 양호한 상태(known good state)에 두도록 상기 베어 메탈 리소스의 비신뢰 부분에 대한 클리어런스 프로세스를 수행하게 하는 단계 ― 상기 클리어런스 프로세스는 이전 테넌트에 의해 상기 비신뢰 부분의 저장 디바이스에 저장된 데이터를 삭제하는 것과, 상기 비신뢰 부분의 액세스 가능한 기본 입출력 시스템(BIOS)을 상기 베어 메탈 리소스의 상기 신뢰 부분의 이미지 저장소로부터의 알려진 양호한 BIOS로 교체함으로써 상기 비신뢰 부분의 상기 액세스 가능한 BIOS를 복원하는 것을 포함함 ― 와,
    상기 클리어런스 프로세스가 완료되었음을 검증하는 것에 응답하여, 상기 베어 메탈 리소스의 상기 비신뢰 부분의 제 2 프로세서로 하여금 상기 비신뢰 부분의 상기 복원된 액세스 가능한 BIOS를 사용하여 상기 비신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅히게 하는 단계를 포함하는,
    베어 메탈 리소스의 클리어런스 방법.
  19. 제 18 항에 있어서,
    상기 신뢰 인프라스트럭처 디바이스는, 상기 제 2 프로세서로 하여금 상기 비신뢰 부분으로부터 상기 베어 메탈 리소스를 재부팅하도록 하기 위해 상기 클리어런스 프로세스가 완료된 것으로 검증되었음을 나타내는 제 2 신호를 상기 베어 메탈 리소스에 전송하는,
    베어 메탈 리소스의 클리어런스 방법.
  20. 제 18 항에 있어서,
    상기 신뢰 인프라스트럭처 디바이스는 상기 클리어런스 프로세스가 완료되었는지 여부를 판정하기 위해 타이머를 실행하는,
    베어 메탈 리소스의 클리어런스 방법.
KR1020207023442A 2018-02-14 2019-01-04 클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스 KR102607127B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862630534P 2018-02-14 2018-02-14
US62/630,534 2018-02-14
US16/235,771 US11163887B2 (en) 2018-02-14 2018-12-28 Clearance of bare metal resource to trusted state usable in cloud computing
US16/235,771 2018-12-28
PCT/US2019/012412 WO2019160618A1 (en) 2018-02-14 2019-01-04 Clearance of bare metal resource to trusted state usable in cloud computing

Publications (2)

Publication Number Publication Date
KR20200119814A KR20200119814A (ko) 2020-10-20
KR102607127B1 true KR102607127B1 (ko) 2023-11-27

Family

ID=67541707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207023442A KR102607127B1 (ko) 2018-02-14 2019-01-04 클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스

Country Status (15)

Country Link
US (1) US11163887B2 (ko)
EP (1) EP3752951B1 (ko)
JP (1) JP7299903B2 (ko)
KR (1) KR102607127B1 (ko)
CN (1) CN111742317B (ko)
AU (1) AU2019220460B2 (ko)
BR (1) BR112020013998A2 (ko)
CA (1) CA3088634A1 (ko)
IL (1) IL276465B2 (ko)
MX (1) MX2020008426A (ko)
PH (1) PH12020551245A1 (ko)
RU (1) RU2020129947A (ko)
SG (1) SG11202007308SA (ko)
WO (1) WO2019160618A1 (ko)
ZA (1) ZA202004081B (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829478B2 (en) * 2019-01-08 2023-11-28 Oracle International Corporation Full server recovery architecture for cloud bare metal instances
CN113614723A (zh) * 2019-05-15 2021-11-05 惠普发展公司,有限责任合伙企业 更新信号
CN110795738B (zh) 2019-09-19 2022-05-13 超聚变数字技术有限公司 一种计算机的启动方法和控制器、存储介质以及系统
CN113965530B (zh) * 2020-07-01 2023-10-13 中移(苏州)软件技术有限公司 一种服务启动方法、装置和存储介质
CN112036828B (zh) * 2020-08-28 2022-06-07 北京浪潮数据技术有限公司 一种裸金属的管理方法、装置、设备及介质
CN112434278A (zh) * 2020-11-20 2021-03-02 北京浪潮数据技术有限公司 一种裸机认证方法、装置、设备及介质
US11593490B2 (en) * 2021-07-28 2023-02-28 Dell Products, L.P. System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel
CN113986358B (zh) * 2021-09-26 2023-12-26 阿里巴巴(中国)有限公司 裸金属实例装机方法、装置及设备
CN114024853B (zh) * 2021-10-27 2024-05-28 广东浪潮智慧计算技术有限公司 一种裸金属节点的硬件信息收集方法、系统及相关组件
US20230325534A1 (en) * 2022-04-06 2023-10-12 Dell Products L.P. Secure wipe of data processing unit using firmware capsule

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005535003A (ja) * 2001-11-19 2005-11-17 セルフ リペアリング コンピューターズ インコーポレイテッド 複数の独立コンピューティング環境をサポートすることができるコンピュータシステム
US20160180099A1 (en) * 2013-02-13 2016-06-23 Amazon Technologies, Inc. Updating processor microcode
US20160328300A1 (en) * 2015-05-07 2016-11-10 Dell Products, Lp System and Method for Self-Healing Basic Input/Output System Boot Image and Secure Recovery

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002073438A1 (en) 2001-03-13 2002-09-19 Izorch Systems Method and system for management of remote devices
EP2477114B1 (en) 2005-06-24 2014-01-15 Syncsort Incorporated System and method for high performance enterprise data protection
US20080147555A1 (en) * 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US8621460B2 (en) 2009-11-02 2013-12-31 International Business Machines Corporation Endpoint-hosted hypervisor management
US8381021B2 (en) 2010-08-25 2013-02-19 Itron, Inc. System and method for automated unattended recovery for remotely deployed intelligent communication devices
US9015455B2 (en) * 2011-07-07 2015-04-21 Intel Corporation Processsor integral technologies for BIOS flash attack protection and notification
US9292312B2 (en) * 2012-03-22 2016-03-22 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Simulated network boot environment for bootstrap redirection
US8925066B2 (en) * 2012-11-15 2014-12-30 Red Hat Israel, Ltd. Provisioning proxy for provisioning data on hardware resources
US9230112B1 (en) 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
CN104079434A (zh) * 2014-07-07 2014-10-01 用友软件股份有限公司 云计算系统中物理设备管理的装置及方法
EP3227789A4 (en) * 2014-12-04 2018-07-25 Hewlett-Packard Development Company, L.P. Access to network-based storage resource based on hardware identifier
US9424389B2 (en) * 2014-12-18 2016-08-23 International Business Machines Corporation Implementing enhanced performance dynamic evaluation circuit by combining precharge and delayed keeper
CN107003864B (zh) 2015-01-29 2021-08-20 惠普发展公司,有限责任合伙企业 恢复片上系统设备
CN107025223B (zh) * 2016-01-29 2019-11-22 华为技术有限公司 一种面向多租户的缓冲区管理方法及服务器
US20170310700A1 (en) 2016-04-20 2017-10-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. System failure event-based approach to addressing security breaches
US10171445B2 (en) * 2016-06-30 2019-01-01 International Business Machines Corporation Secure virtualized servers
US10395039B2 (en) * 2016-09-12 2019-08-27 Dell Products, L.P. Customer-owned trust of device firmware
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
CN107391260A (zh) * 2017-07-27 2017-11-24 郑州云海信息技术有限公司 一种交付裸机资源的方法和装置
US11050635B2 (en) * 2019-02-05 2021-06-29 International Business Machines Corporation Managing bare metal networking in a cloud computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005535003A (ja) * 2001-11-19 2005-11-17 セルフ リペアリング コンピューターズ インコーポレイテッド 複数の独立コンピューティング環境をサポートすることができるコンピュータシステム
US20160180099A1 (en) * 2013-02-13 2016-06-23 Amazon Technologies, Inc. Updating processor microcode
US20160328300A1 (en) * 2015-05-07 2016-11-10 Dell Products, Lp System and Method for Self-Healing Basic Input/Output System Boot Image and Secure Recovery

Also Published As

Publication number Publication date
WO2019160618A1 (en) 2019-08-22
IL276465A (en) 2020-09-30
JP2021513711A (ja) 2021-05-27
CN111742317B (zh) 2023-07-21
CN111742317A (zh) 2020-10-02
JP7299903B2 (ja) 2023-06-28
IL276465B1 (en) 2023-10-01
IL276465B2 (en) 2024-02-01
KR20200119814A (ko) 2020-10-20
AU2019220460B2 (en) 2023-07-27
EP3752951A1 (en) 2020-12-23
ZA202004081B (en) 2021-09-29
SG11202007308SA (en) 2020-08-28
US20190251266A1 (en) 2019-08-15
US11163887B2 (en) 2021-11-02
MX2020008426A (es) 2020-09-21
RU2020129947A (ru) 2022-03-14
EP3752951B1 (en) 2023-08-23
BR112020013998A2 (pt) 2020-12-01
PH12020551245A1 (en) 2021-05-17
AU2019220460A1 (en) 2020-07-23
CA3088634A1 (en) 2019-08-22

Similar Documents

Publication Publication Date Title
KR102607127B1 (ko) 클라우드 컴퓨팅에 사용 가능한 신뢰 상태로의 베어 메탈 리소스의 클리어런스
CN109154849B (zh) 包括核心层、用户接口和配备有基于容器的用户空间的服务层的超融合系统
US11126420B2 (en) Component firmware update from baseboard management controller
US10102170B2 (en) System and method for providing input/output functionality by an I/O complex switch
EP2981892B1 (en) Update management for a distributed computing system
US9507566B2 (en) Entropy generation for a distributed computing system
US8707301B2 (en) Insertion of management agents during machine deployment
JP4579298B2 (ja) 仮想サーバー・ブレードを提供する方法および装置
US10796035B1 (en) Computing system with simulated hardware infrastructure to support development and testing of management and orchestration software
US10353727B2 (en) Extending trusted hypervisor functions with existing device drivers
US20200218545A1 (en) Information handling system adaptive component reset
US11625338B1 (en) Extending supervisory services into trusted cloud operator domains
JP2023544001A (ja) アクセラレータカードのセキュリティモードの静的構成
US11847015B2 (en) Mechanism for integrating I/O hypervisor with a combined DPU and server solution
EP4195021A1 (en) Online migration method and system for bare metal server

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant