KR101356223B1 - 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법 - Google Patents

클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법 Download PDF

Info

Publication number
KR101356223B1
KR101356223B1 KR1020120005645A KR20120005645A KR101356223B1 KR 101356223 B1 KR101356223 B1 KR 101356223B1 KR 1020120005645 A KR1020120005645 A KR 1020120005645A KR 20120005645 A KR20120005645 A KR 20120005645A KR 101356223 B1 KR101356223 B1 KR 101356223B1
Authority
KR
South Korea
Prior art keywords
virtual machine
resource
cloud computing
request
user
Prior art date
Application number
KR1020120005645A
Other languages
English (en)
Other versions
KR20130084796A (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 한국과학기술원
Priority to KR1020120005645A priority Critical patent/KR101356223B1/ko
Publication of KR20130084796A publication Critical patent/KR20130084796A/ko
Application granted granted Critical
Publication of KR101356223B1 publication Critical patent/KR101356223B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Abstract

클라우드 환경에서 사용자에게 제공되는 가상 머신에게 요청된 컴퓨팅 자원이 할당되었는지 여부를 검증하기 위한 장치 및 방법이 제공된다. 공증 서버는 사용자로부터의 자원 할당 요청 및 자원 할당에 대한 검증 요청을 각각 수신한다. 클라우딩 컴퓨터 서버는 사용자에게 클라우드 서비스를 제공하는 가상 머신을 실행하고, 자원 할당 요청에 의해 요청된 자원을 가상 머신에게 할당한다. 클라우드 컴퓨팅 서버는 자원 할당 요청에 의해 요청된 자원이 가상 머신에게 할당되었는지를 검증하는 검증 모듈을 실행한다. 검증 모듈은 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드에서 실행된다.

Description

클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법{APPARATUS AND METHOD FOR GUARANTEEING COMPUTING RESOURCE IN CLOUD COMPUTING ENVIRONMENT FOR CLOUD CUSTOMER}
클라우드 환경에서 사용자에게 제공되는 가상 머신에게 요청된 컴퓨팅 자원이 할당되었는지 여부를 검증하기 위한 장치 및 방법에 관한 것이다.
클라우드(cloud) 컴퓨팅(computing)은 한곳에 모인 비교적 큰 컴퓨팅 자원을 효율적으로 활용함으로써 비용을 절감할 수 있는 컴퓨팅 모델을 의미한다. 클라우드 서비스 제공자(Cloud Service Provider; CSP)는 컴퓨팅 자원을 클라우드 사용자(Cloud Customer)들의 요구에 맞게 제공함으로써 자신의 컴퓨팅 자원을 효율적으로 사용한다.
클라우드 사용자는 클라우드 컴퓨팅을 통해 자신의 컴퓨팅 환경을 구축할 필요 없이 원하는 만큼의 컴퓨팅 자원을 사용할 수 있고, 사용량에 따라 클라우드 제공자에게 비용을 지불할 수 있다.
클라우드 컴퓨팅은 여러가지로 구분될 수 있다. 서비스로서의 인프라스트럭처(Infrastructure as a Service; IaaS) 모델은 물리적인 하드웨어 상에서 가상 머신(virtual machine)을 제공해주는 서비스를 나타낸다. IaaS 모델을 통해, 사용자는 클라우드 서비스 제공자가 할당 해준 가상 머신을 자신의 머신과 같이 자유롭게 사용할 수 있다.
IaaS 모델은 가상화 기법을 사용함으로써 사용자에게 가상 머신을 제공한다. 가상화 기법은 하나의 물리 머신 위에 복수의 가상 머신들이 수행되게 함으로써, 효율성을 극대화하고, 비용을 절감할 수 있다. 가상화 기법에서는, 하이퍼바이저 (hypervisor)가 핵심적인 역할을 수행한다. 하이퍼바이저는 하나의 물리 머신의 자원을 균등하게 분배하고, 균등하게 분배된 자원을 가상 머신들 각각에게 제공한다. 또한, 하이퍼바이저는 가상 머신들 간의 격리(isolation)을 제공함으로써 가상 머신들 사이의 침범이 발생하지 않게 한다.
클라우드 컴퓨팅은 매우 유망한 컴퓨팅 모델로서, 전세계 클라우드 시장 규모가 2009년에 약 800억 달러에 이르렀으며, 2010년에는 1095억 달러로 성장할 만큼, 앞으로 대부분의 컴퓨팅 모델은 클라우드 컴퓨팅 모델로 변경될 것으로 예측되고 있다.
국내 공개특허 제10-2001-0012058호(발명의 명칭: '공개 키 기반의 프로토콜을 이용한 과금 시스템 및 그 방법')(이하, '제1 선행 특허'라 한다)는, 공개 키를 이용하여 과금을 보장하는 방법을 개시한다. 제1 선행 특허는 외부로부터의 자원 요청이 있는 경우 요청된 자원의 과금에 대한 마이크로 계약서를 생성하고, 상기의 마이크로 계약서에 기반하여 유저 단말 장치 및 클라우드 컴퓨팅 서버 간의 과금을 검증할 수 있는 시스템을 개시한다. 시스템은 공개 키(public) 기반의 프로토콜을 이용함으로써 사용자가 실제로 과금을 요청하였는지 여부를 검증할 수 있다. 클라우드 서비스 제공자 또한 시스템을 통해 사용자가 실제로 과금을 요청하였는지 여부를 쉽게 확인할 수 있다. 제1 선행 특허는 과금에 대한 검증을 다루고 있을 뿐, 제1 선행 특허의 기술에 의해서는 실제 사용자가 요청한 만큼의 컴퓨팅 자원이 실제 클라우드 컴퓨팅에 의해 할당되는지 여부가 검증될 수 없다. 가령, 마이크로 계약서는 클라우드 서비스의 사용자 및 제공자 간에 서로 일치 하지만, 클라우드 서비스 제공자가 악의적으로 또는 이득을 취하고자 하는 목적으로 사용자에게 실제 요청된 컴퓨팅 자원의 1/2만큼의 컴퓨팅 자원을 할당한 경우, 제1 선행 특허의 기술에 의해서는 사용자는 상기의 부족한 할당을 알아낼 수 없다.
국내 공개특허 제10-2010-0043672호(발명의 명칭: '클라우드 컴퓨팅 과금 공증 장치, 과금 시스템 및 과금 방법')(이하, '제2 선행 특허'라 한다)은 제 3의 과금 공증 장치가 과금 처리를 검증하는 시스템을 개시한다. 제2 선행 특허는 클라우드 환경에서 제 3의 인증된 과금 공증장치에 의한 정확한 과금 처리 및 상호 검증되는 과금 처리를 제공한다. 즉, 제2 선행 특허는 과금 요청 및 결제에 대한 검증을 수행하는 장치, 방법 및 시스템에 대한 것으로서, 상호 부인 방지 기능을 추가함으로써 클라우드 서비스 제공자 또는 클라우드 사용자가 거짓으로 잘못된 계약을 주장하는 것을 원천적으로 차단할 수 있다. 제2 선행 특허에서, 자원 매니저는 자원 사용을 모니터링을 한다. 하지만, 자원 매니저의 무결성은 단순히 로딩 타임(loading time) 시에만 검증 되므로, 자원 매니저는 자원 매니저의 자체의 취약점 또는 하위의 운영체제의 취약점에 기인하여 잘못된 정보를 제공할 수 있다. 즉, 클라우드 서비스 제공자는 악의적인 목적 또는 이득을 취하고자하는 목적으로 클라우드 사용자의 가상 머신에 할당된 자원을 감소시키거나 변경할 수 있다.
하기에서 설명될 본 발명의 실시예는, 상술된 감소 또는 변경을 막기 위하여, 하이퍼바이저(hypervisor)가 접근할 수 없는 모드인 시스템 매니지먼트 모드(System Management Mode; SMM)를 활용함으로써 컴퓨팅 자원이 정확하게 할당되었는지 여부를 검증할 수 있다.
일 실시예는 컴퓨팅 자원 중에서, 프로세싱 자원, 메모리 자원, I/O 자원 등과 같은 중요한 자원에 대한 검증을 제공하는 장치 및 방법을 제공할 수 있다.
일 실시예는 계약된 만큼의 프로세싱 자원이 실제로 분배되는지 여부를 검증하는 장치 및 방법을 제공할 수 있다.
일 측에 있어서, 사용자로부터의 자원 할당 요청 및 상기 자원 할당에 대한 검증 요청을 각각 수신하는 공증 서버 및 상기 공증 서버로부터 상기 자원 할당 요청 및 상기 검증 요청을 각각 수신하고, 상기 사용자에게 클라우드 서비스를 제공하는 가상 머신을 실행하고, 상기 자원 할당 요청에 의해 요청된 자원을 상기 가상 머신에게 할당하는 클라우드 컴퓨팅 서버를 포함하고, 상기 클라우드 컴퓨팅 서버는, 상기 자원 할당 요청에 의해 요청된 자원이 상기 가상 머신에게 할당되었는지를 검증하는 검증 모듈을 실행하고, 상기 검증 모듈은 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 서비스 시스템이 제공된다.
상기 공증 서버는 상기 사용자로부터의 클라우드 서비스 요청을 수신할 수 있다.
상기 클라우딩 컴퓨터 서버는 상기 클라우드 서비스 요청에 의해 요청된 클라우드 서비스를 제공하는 상기 가상 머신을 생성하는 하이퍼바이저를 실행할 수 있다.
상기 검증 모듈은 상기 SMM에서 발생한 시스템 매니지먼트 인터럽트(System Management Interrupt; SMI)를 처리하는 SMM 핸들러로서 구현될 수 있다.
상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버의 바이오스에 포함될 수 있다.
상기 클라우드 컴퓨팅 서버는 상기 수신된 검증 요청에 대한 상기 SMI를 발생시킬 수 있다.
상기 SMM 핸들러는 상기 SMI를 처리함으로써 상기 요청된 자원이 상기 가상 머신에게 할당되었는지 여부를 검증할 수 있다.
상기 SMM 핸들러는 상기 클라우딩 컴퓨터 서버의 레지스터 내에 저장된 정보를 확인함으로써 상기 요청된 자원이 상기 가상 머신에게 할당되었는지 여부를 검증할 수 있는, 클라우드 서비스 시스템.
상기 클라우드 컴퓨팅 서버는 메모리를 더 포함할 수 있다.
상기 클라우드 컴퓨팅 서버는 상기 SMI가 발생하면 현재 실행 중인 가상 머신에 대한 정보인 컨텍스트를 하이퍼바이저가 접근할 수 없는 메모리 내에 저장할 수 있고, 실행 중이던 하이퍼바이저 가상 머신은 실행 중단 상태에 놓일 수 있다.
상기 컨텍스트는 상기 레지스터에 저장된 정보를 포함할 수 있다.
상기 SMM 핸들러는 상기 가상 머신을 위해 사용되는 주소 공간을 나타내는 레지스터를 사용하여 상기 클라우드 컴퓨팅 서버에서 수행되는 하나 이상의 가상 머신들 중 상기 사용자의 상기 가상 머신을 식별할 수 있다.
상기 SMM 핸들러는 상기 하나 이상의 가상 머신들 각각에 대응하는 하나 이상의 가상 머신 제어 블록(Virtual Machine Control Block; VMCB) 구조체들에 대해, 상기 VMCB 구조체의 상기 주소 공간을 나타내는 레지스터에 저장된 정보를 상기 가상 머신에 대한 정보와 매칭함으로써 상기 가상 머신을 식별할 수 있다.
상기 요청된 자원은 프로세싱 자원일 수 있다.
상기 SMM 핸들러는 상기 하나 이상의 가상 머신들 각각에 대응하는 하나 이상의 가상 머신 제어 블록(Virtual Machine Control Block; VMCB) 구조체 또는 시스템 관리 램(System Management RAM) 내에 저장된 상기 가상 머신을 위해 사용되는 주소 공간을 나타내는 레지스터에 저장된 정보에 기반하여 상기 하나 이상의 가상 머신들 중 어떤 가상 머신들이 수행 중인지를 주기적으로 확인할 수 있고, 상기 사용자의 상기 가상 머신이 수행 중이었던 것으로 확인된 횟수에 기반하여 상기 가상 머신에게 프로세싱 자원이 얼마나 할당되었는지를 검증할 수 있다.
상기 요청된 자원은 메모리 자원일 수 있다.
상기 SMM 핸들러는 상기 가상 머신의 운영 체제에 의해 사용되는 가상 주소를 상기 하이퍼바이저에 의해 사용되는 게스트 물리 주소로 변환할 수 있고, 상기 게스트 물리 주소를 상기 메모리를 접근하기 위해 사용되는 머신 주소로 변환함으로써 상기 메모리에 접근하고, 상기 SMM 핸들러는 상기 메모리 내에 저장된 정보를 검증함으로써 메모리 자원이 상기 가상 머신에게 얼마나 실제로 할당되었는지를 검증할 수 있다.
상기 요청된 자원은 입출력(Input/Output; I/O) 자원일 수 있다.
상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버가 제공하는 단일 루트 입출력 가상화(Single Root - Input/Output Virtualization; SR-IOV)를 이용함으로써 상기 I/O 자원이 상기 가상 머신에게 할당되었는지 여부를 검증할 수 있다.
다른 일 측에 따르면, 공증 서버가 사용자로부터의 자원 할당 요청을 수신하는 단계, 클라우드 컴퓨팅 서버가 상기 공증 서버로부터 상기 자원 할당 요청을 수신하는 단계, 상기 클라우드 컴퓨팅 서버가 상기 사용자에게 제공되는 가상 머신에게 상기 자원 할당 요청에 의해 요청된 자원을 할당하는 단계, 상기 공증 서버가 상기 자원 할당에 대한 검증 요청을 수신하는 단계, 상기 클라우드 컴퓨팅 서버가 상기 공증 서버로부터 상기 검증 요청을 수신하는 단계, 상기 클라우드 컴퓨팅 서버에 의해 실행되는 검증 모듈이 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 상기 자원 할당에 대한 검증을 수행하는 단계, 상기 검증 모듈이 상기 검증 요청에 대한 결과를 상기 공증 서버에게 전송하는 단계 및 상기 공증 서버가 상기 검증 요청에 대한 결과를 상기 사용자에게 전송하는 단계를 포함하는, 클라우드 서비스 제공 방법이 제공된다.
또 다른 일 측에 따르면, 클라우드 컴퓨팅 서버에 있어서, 프로세서 및 자원 할당 요청 및 자원 할당에 대한 검증 요청을 각각 수신하는 네트워킹 유닛을 포함하고, 상기 프로세서는 사용자에게 제공되는 가상 머신을 실행하고, 상기 자원 할당 요청에 의해 요청된 자원을 상기 가상 머신에게 할당하고, 상기 자원 할당 요청에 의해 요청된 자원이 상기 가상 머신에게 할당되었는지를 검증하는 검증 모듈을 실행하고, 상기 검증 모듈은 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 컴퓨팅 서버가 제공된다.
또 다른 일 측에 따르면, 클라우드 컴퓨팅 서버가 클라우드 서비스를 제공하는 방법에 있어서, 사용자로부터의 자원 할당 요청을 수신하는 단계, 상기 사용자에게 제공되는 가상 머신에게 상기 자원 할당 요청에 의해 요청된 자원을 할당하는 단계, 상기 자원 할당에 대한 검증 요청을 수신하는 단계, 검증 모듈에 의해 상기 자원 할당에 대한 검증이 수행되는 단계 및 상기 검증 요청에 대한 결과가 상기 검증 모듈로부터 상기 사용자에게로 전송되는 단계를 포함하고, 상기 검증 모듈은 상기 클라우드 컴퓨팅 서버에 의해 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 서비스 제공 방법이 제공된다.
또 다른 일 측에 따르면, 클라우드 컴퓨팅 서버에서 실행되는 가상 머신에게 사용자가 요청한 자원이 할당되었는지를 검증하는 방법에 있어서, 상기 자원의 할당에 대한 검증 요청에 의해 시스템 메니지먼트 인터럽트(System Management Interrupt; SMI)가 발생하는 단계, 중앙 처리 유닛(Control Processing Unit; CPU)에 의해 실행되고 있던 프로세스들이 중지되고, 상기 프로세스들이 중지되는 시점에서의 상기 CPU의 레지스터 정보를 저장하는 단계 - 상기 프로세스들은 상기 가상 머신을 포함함 - 및 상기 SMI를 처리하는 시스템 매니지먼트 모드(System Management Mode; SMM) 핸들러가 상기 레지스터 정보에 기반하여 상기 가상 머신에게 상기 자원이 할당되었는지를 검증하는 단계를 포함하고, 상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 자원 할당 검증 방법이 제공된다.
컴퓨팅 자원 중에서, 프로세싱 자원, 메모리 자원, I/O 자원 등과 같은 중요한 자원에 대한 검증을 제공하는 장치 및 방법이 제공된다.
계약된 만큼의 프로세싱 자원이 실제로 분배되는지 여부를 검증하는 장치 및 방법이 제공된다.
도 1은 일 실시예에 따른 클라우드 서비스 시스템을 도시한다.
도 2는 일 실시예에 따른 클라우드 컴퓨팅 서버의 구조도이다.
도 3은 일 실시예에 따른 클라우드 컴퓨팅 서버가 실행하는 개체를 나타낸다.
도 4는 일 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.
도 5는 일 실시예에 따른 자원 할당을 검증하는 방법의 흐름도이다.
도 6은 가상 머신 실행 및 호스트 실행 간의 차이를 설명한다.
도 7은 일 예에 따른 물리적 메모리 내에 네스트된 페이지 테이블을 참조하는 방법을 도시한다.
도 8은 일 예에 따른 메모리 자원의 검증 방법을 설명한다.
도 9는 일 예에 따른 I/O 자원을 검증하는 방법을 설명한다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
클라우드 컴퓨팅 도입 시에 예상되는 여러 가지 문제점들 중 하나는 클라우드 서비스 제공자의 신뢰성의 문제이다.
클라우드 서비스 제공자는 클라우드 컴퓨팅 자원을 관리하고 있으므로, 클라우드 사용자의 데이터나 클라우드 사용자에게 제공되는 컴퓨팅 자원을 임의로 변경할 수 있다. 또한, 클라우드 서비스 제공자는 컴퓨팅 자원을 최대한 효율적으로 사용하여 비용을 줄일려고 할 수 있다.
클라우드 서비스 제공자가 악의적인 목적으로 클라우드 사용자에게 제대로 된 컴퓨팅 자원이 아닌, 계약보다 더 적은 양의 컴퓨팅 자원을 할당함으로써 부당한 이득을 취하는 경우를 가정할 수 있다. 이러한 경우에, 클라우드 사용자는 제대로 된 컴퓨팅 자원이 할당되었는지 여부를 검증할 수 있어야 한다. 그러나, 현재의 클라우드 컴퓨팅의 한계 상, 클라우드 사용자에 의해서는 상기의 검증이 수행될 수 없다. 검증이 가능하기 위해서는, 클라우드 사용자에게 클라우드 서비스를 제공하는 서버의 컴퓨팅 자원에 대한 제한 없는 접근 권한이 부여되어야 한다. 그러나, 클라우드 환경에 있어서, 클라우드 사용자는 단순히 컴퓨팅 자원을 빌려 쓰는 자이기 때문에 때문에, 클라우드 사용자는 자신에게 할당된 자원일지라도 상기의 할당된 자원에 대한 모든 권한을 가질 수는 없다.
하기의 실시예들은, 컴퓨팅 자원에 대한 검증을 제공할 수 있다. 특히, 하기의 실시예들은 컴퓨팅 자원들 중 가장 중요한 자원 중 하나로서 간주될 수 있는 프로세싱(processing) 자원, 메모리(memory) 자원 및 입출력(Input/Output; I/O) 자원에 대한 검증을 제공할 수 있다.
프로세싱 자원은 실제의 컴퓨팅을 처리하는 자원일 수 있다. 클라우드 서비스 제공자는 각 사용자의 가상 머신에게 상기의 프로세싱 자원을 사용자와의 계약만큼 분배할 수 있다. 이때, 클라우드 서비스 제공자는 모든 프로세싱 자원을 특정한 사용자에게 모두 할당하는 방식 또는 정해진 시간만큼만 프로세싱 자원을 특정한 사용자에게 할당하는 방식을 취할 수 있다. 하기의 실시예에서, 실제 계약만큼의 프로세싱 자원을 분배되는지 여부는 사용자의 가상 머신이 프로세싱 자원에 대응하는 중앙 처리 유닛(Control Processing Unit; CPU)에서 수행 중인지를 검증함으로써 확인될 수 있다.
메모리 자원은 정보를 저장하기 위해 사용되는 자원일 수 있다. 클라우드 서비스 제공자는 상기의 메모리 자원을 각 사용자와의 계약만큼 사용자의 가상 머신에게 할당할 수 있다. 하기의 실시예에서, 계약에 따른 메모리 영역이 실제로 사용자의 가상 머신에게 할당되었는지 여부를 검증함으로써 사용자와의 계약이 준수되었는지 여부가 확인될 수 있다.
I/O 자원은 네트워크(network) 및 디스크(disk) 등의 자원을 의미할 수 있다. 하기의 실시예에서, 계약만큼의 I/O 자원이 사용자에게 할당되었는지 여부가 검증될 수 있다.
도 1은 일 실시예에 따른 클라우드 서비스 시스템을 도시한다.
클라우드 서비스 시스템(100)은 공증 서버(110) 및 클라우드 컴퓨팅 서버(120)를 포함할 수 있다. 여기서, 공증 서버(110)는 공증을 수행하는 복수 개의 서버들을 포함하는 공증 시스템일 수 있다. 클라우드 컴퓨팅 서버(120)는 클라우드 서비스를 제공하는 복수 개의 서버들을 포함하는 클라우드 컴퓨팅 시스템일 수 있다.
공증 서버(110)는 사용자로부터의 요청을 수신할 수 있다. 여기서, '요청'은 클라우드 컴퓨팅의 자원을 할당해줄 것을 요청하는 자원 할당 요청일 수 있으며, 상기의 자원 할당 요청에 따른 자원 할당에 대한 검증 요청일 수 있다. '자원 할당에 대한 검증' 또는 '검증'은 요청에 따른 자원 할당이 실제로 이루어졌는지 여부를 검증하는 것을 의미할 수 있다. 또한, '요청'은 자원 할당 요청 중 하나로서 클라우드 서비스 요청을 포함할 수 있다. '자원'은 클라우드 서비스를 사용자에게 제공하는 가상 머신을 포함할 수 있다.
공증 서버(110)는 각 요청에 대해 사용자를 인증할 수 있다. 전송된 요청은 사용자를 인증하기 위해 필요한 정보(예컨대, 사용자의 식별자(identifier; ID) 또는 암호(password) 등)을 포함할 수 있다.
공증 서버(110)는 상기의 요청을 클라우드 컴퓨팅 서버(120)로 전송할 수 있다.
클라우드 컴퓨팅 서버(120)는 후술될 가상 머신을 실행하는 물리적인 서버일 수 있다. 클라우드 컴퓨팅 서버(120)는 상기의 요청을 처리할 수 있고, 상기의 요청에 대응하는 응답을 공증 서버(110)로 전송할 수 있다. 여기서, 요청에 대응하는 응답은 요청에 대한 결과를 의미할 수 있다.
공증 서버(110)는 상기의 응답을 사용에게 전송할 수 있다.
도 2는 일 실시예에 따른 클라우드 컴퓨팅 서버의 구조도이다.
클라우드 컴퓨팅 서버(120)는 CPU(210), 네트워킹(networking) 유닛(220) 및 메모리(230)를 포함할 수 있다.
CPU(210)는 복수 개일 수 있다. CPU(210)는 적어도 하나의 코어(core)를 포함할 수 있다. CPU(210)는 SMM을 지원하는 x86 계열의 CPU일 수 있다.
네트워킹 유닛(220)은, 예컨대 공증 서버(110)와, 데이터를 송수신할 수 있다. 네트워킹 유닛(220)은 네트워킹을 위한 인터페이스(interface), 칩(chip) 및 카드(card) 등을 나타낼 수 있다.
메모리(230)는 클라우드 컴퓨팅 서버(120)가 사용하는 데이터를 저장할 수 있다.
도 3은 일 실시예에 따른 클라우드 컴퓨팅 서버가 실행하는 개체를 나타낸다.
개체들(300)은 클라우드 컴퓨팅 서버(120)가 포함하는 구성 요소 또는 CPU(210)의해 실행되는 작업(task) 또는 프로세스(process)를 나타낼 수 있다.
개체들(300)은 네트워킹 모듈(module)(310), 검증 모듈(320), 하이퍼바이저(hypervisor)(330) 및 가상 머신(340)을 포함할 수 있다. 가상 머신(340)은 복수 개일 수 있다.
네트워킹 모듈(310)은 도 2를 참조하여 전술된 네트워킹 유닛(220)는 상기의 네트워킹 유닛(220)을 위한 디바이스 드라이버(device driver)일 수 있다. 따라서, 하기에서 설명되는 네트워킹 유닛(220)의 기능 또는 동작은 네트워킹 모듈(310)의 기능 또는 동작으로 간주될 수 있다.
검증 모듈(320)은 자원 할당에 대한 검증 요청을 수행하는 모듈일 수 있다. 검증 모듈(320)은 검증 요청을 수행하기 위해 하이퍼바이저(330)에 접근할 수 있다.
하이퍼바이저(330)는 클라우드 컴퓨팅 서버(120)에서 적어도 하나의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼일 수 있다. 하이퍼바이저(330)는 사용자에게 가상 머신(340)을 제공할 수 있다. 가상 머신(340)은 복수 개일 수 있으며, 복수 개의 가상 머신들은 각각 서로 상이한 사용자들에게 제공될 수 있다. 복수 개의 가상 머신들 중 하나는 관리 가상 머신일 수 있다. 관리 가상 머신에 대하여 도 9를 참조하여 하기에서 상세히 설명된다.
가상 머신(340)은 운영 체제(Operating System; OS)(342) 및 운영 체제 상에서 실행되는 어플리케이션(344)을 포함할 수 있다. 즉, 가상 머신(340) 내에서 OS(342)가 실행될 수 있고, OS(342)에서 적어도 하나의 어플리케이션(344)이 실행될 수 있다.
네트워킹 모듈(310)은 공증 서버(110) 또는 네트워킹 유닛(220)으로부터 요청을 수신할 수 있고, 요청에 대응하는 응답을 공증 서버(110) 또는 네트워킹 유닛(220)으로 전송할 수 있다.
예컨대, 공증 서버(110)는 사용자로부터의 클라우드 서비스 요청을 수신할 수 있다. 공증 서버(110)는, 클라우드 서비스 요청을 수신함에 따라, 하이퍼바이저(330)에게 사용자에게 제공될 가상 머신(340)의 생성 요청을 전송할 수 있다. 상기의 생성 요청은 공증 서버(110)로부터 네트워킹 유닛(220) 또는 네트워킹 모듈(310)을 경유하여 하이퍼바이저(330)로 전송될 수 있다. 하이퍼바이저(330)는 가상 머신을 생성할 수 있다. 가상 머신(340)은 상기의 클라우드 서비스 요청에 의해 요청된 클라우드 서비스를 제공할 수 있다. 하이퍼바이저(330)는 가상 머신(340)의 생성 요청에 대응하는 완료 응답을 공증 서버(110)로 전송할 수 있다. 상기의 완료 응답은 하이퍼바이저(330)로부터 네트워킹 유닛(220) 또는 네트워킹 모듈(310)을 경유하여 공증 서버(110)로 전송될 수 있다.
도 4는 일 실시예에 따른 클라우드 서비스 제공 방법의 흐름도이다.
단계(410)에서, 공증 서버(110)는 사용자로부터의 자원 할당 요청을 수신할 수 있다.
단계(412)에서, 공증 서버(110)는 자원 할당 요청에 대해 사용자를 인증할 수 있다.
단계(415)에서, 공증 서버(110)는 수신된 자원 할당 요청을 클라우드 컴퓨팅 서버(120)로 전송할 수 있다. 클라우드 컴퓨팅 서버(120)의 네트워킹 유닛(220)은 공증 서버(110)로부터 자원 할당 요청을 수신할 수 있다.
단계(420)에서, 클라우드 컴퓨팅 서버(120)의 CPU(210)는 사용자에게 클라우드 서비스를 제공하는 가상 머신(340)에게 자원 할당 요청에 의해 요청된 자원을 할당할 수 있다. CPU(210)는 사용자에게 제공되는 가상 머신(340)을 실행할 수 있다. 여기서, 요청된 자원은, 프로세싱 자원, 메모리 자원 및 I/O 자원 중 하나 이상을 포함할 수 있다.
단계(430)에서, 네트워킹 유닛(220)은 자원 할당 요청에 대응하는 응답을 공증 서버(110)로 전송할 수 있다.
단계(435)에서, 공증 서버(110)는 자원 할당 요청에 대응하는 응답을 사용자에게로 전송할 수 있다.
단계(440)에서, 공증 서버(110)는 사용자로부터의 자원 할당에 대한 검증 요청을 수신할 수 있다. 여기서, 검증 요청은 가상 머신이 CPU에서 수행 중인지 여부, 메모리 영역이 가상 머신에게 할당되었는지 여부 및 I/O 자원이 사용자에게 할당되었는지 여부 중 하나 이상을 포함할 수 있다.
단계(445)에서, 공증 서버(110)는 수신된 검증 요청을 클라우드 컴퓨팅 서버(120)로 전송할 수 있다. 네트워킹 유닛(220)은 공증 서버(110)로부터 검증 요청을 수신할 수 있다. 공증 서버(110)는 검증 요청을 검증 모듈(320)에게 전송할 수 있다.
단계(450)에서, CPU(210)는 자원 할당 요청에 의해 요청된 자원이 가상 머신(340)에게 할당되었는지를 검증하는 검증 모듈(320)을 실행할 수 있다.
검증 모듈(320)는 클라우드 컴퓨팅 서버(120)의 모든 컴퓨팅 자원에 접근할 수 있는 SMM에서 실행될 수 있다.
SMM을 사용함으로써, 검증 모듈(320)은, 가상 머신(340)의 운영 체제(342) 또는 하이퍼바이저(330)가 인지할 수 없는 상태에서, 자원 할당 요청에 의해 요청된 자원이 실제로 가상 머신(340)에게 할당되었는지를 검증할 수 있다. 여기서, 자원은 프로세싱(processing) 자원, 메모리 자원 및 I/O 자원을 포함할 수 있다.
SMM은 x86 계열의 CPU들이 지원하는 특별한 모드일 수 있다. SMM 모드로 실행 중인 테스트(task)는 클라우드 컴퓨팅 서버(120)의 모든 컴퓨팅 자원에 접근할 수 있다.
SMM에서는, 시스템 메니지먼트 인터럽트(System Management Interrupt; SMI)가 발생한 경우, 운영 체제(342) 또는 하이퍼바이저(330)가 아닌, 바이오스(bios)에 포함된 SMM 핸들러(handler)가 상기의 SMI를 처리할 수 있다. 여기서, 메모리(230)는 바이오스를 포함할 수 있다.
검증 모듈(320)은 SMM에서 발생한 SMI를 처리하는 SMM 핸들러로서 구현될 수 있다. SMM 핸들러는 소프트웨어로 제작된 모듈일 수 있다. SMM 핸들러는 CPU(210)의 레지스터(register) 내에 저장된 정보를 확인함으로써 요청된 자원이 가상 머신에게 할당되었는지 여부를 검증할 수 있다.
요청된 자원이 실제로 할당되었는지 여부가 검증되기 위해서, 동작 중인 CPU(210)의 레지스터 내에 저장된 정보가 확인될 수 있다. 레지스터 내에는 자원 할당에 관련된 정보가 저장되어 있을 수 있으므로, 레지스터 내에 저장된 정보를 통해 가상 머신이 CPU에서 실행 중인지 여부 및 메모리 영역이 가상 머신(340)에게 할당되었는지 여부 등이 확인될 수 있다. SMM 핸들러는 레지스터를 분석할 수 있고, 필요한 경우 물리적인 메모리(230)에 접근하여 메모리 내에 저장된 정보(특히, 요청된 자원이 실제로 할당되었는지 여부와 관련된 모든 내용)를 검증할 수 있다.
SMI가 발생했을 때, SMM 핸들러가 컴퓨팅 자원이 가상 머신(340)에 할당되었는지 여부를 검증하므로, SMM 핸들러에 의해 하이퍼바이저(330)의 개입 없이 자원 할당 여부가 검증될 수 있다. 이하, SMM 핸들러는 검증 모듈(320)의 일 예를 나타낼 수 있다.
단계(460)에서, 검증 모듈(320)은 검증 요청에 대한 결과를 공증 서버(110)로 전송할 수 있다. 검증 요청에 대한 결과는 네트워킹 유닛(220)을 경유하여 검증 모듈(320)로부터 공증 서버(110)로 전송될 수 있다.
단계(465)에서, 공증 서버(110)는 검증 요청에 대한 결과를 사용자에게 전송할 수 있다.
여기서, 단계(410)에서의 자원 할당 요청은 클라우드 서비스 자체를 요청하는 클라우드 서비스 요청일 수 있다. 하기에서, 클라우드 서비스 요청에 대한 단계(410) 내지 단계(435)를 설명한다.
단계(410)에서, 공증 서버(110)는 사용자로부터의 클라우드 서비스 요청을 수신할 수 있다. 단계(415)에서, 공증 서버(110)는 사용자에게 제공될 가상 머신(340)의 생성 요청을 하이퍼바이저(330)에게 전송할 수 있다. 가상 머신(340)은 클라우드 서비스 요청에 의해 요청된 클라우드 서비스를 제공할 수 있다. 상기의 생성 요청은 공증 서버(110)로부터 네트워킹 유닛(220) 또는 네트워킹 모듈(310)을 경유하여 하이퍼바이저(330)로 전송될 수 있다. 단계(420)에서, CPU(210)는 하이퍼바이저(330)를 실행할 수 있고, 하이퍼바이저(330)는 가상 머신(340)을 생성할 수 있다. 단계(430)에서, 하이퍼바이저(330)는 가상 머신(340)의 생성 요청에 대응하는 완료 응답을 공증 서버(110)로 전송할 수 있다. 상기의 완료 응답은 하이퍼바이저(330)로부터 네트워킹 유닛(220)(또는, 네트워킹 모듈(310))을 경유하여 공증 서버(110)로 전송될 수 있다. 단계(435)에서, 공증 서버(110)는 완료 응답에 기반하여 클라우드 서비스 요청에 대응하는 응답을 사용자에게로 전송할 수 있다.
클라우드 서비스의 제공자가 자원 할당 및 자원 할당에 대한 검증에 관련된 모든 권한을 갖는 클라우드 서비스 환경에서는, 클라우드 서비스의 제공자에게 독립적으로 자원 할당 여부를 확인하는 것이 불가능할 수 있다. 따라서, 이러한 환경에서는 전적으로 클라우드 서비스의 제공자를 신뢰할 수 밖에 없다. 그러나, 본 실시예에서는, SMM에서 실행되는 검증 모듈(320)이 자원 할당에 대한 검증을 수행하기 때문에, 클라우드 서비스의 제공자가 가상 머신(340)에게 할당되는 컴퓨팅 자원을 임의적으로 변경하더라도, 이러한 임의적인 변경이 발견될 수 있으며, 클라우드 서비스의 제공자의 신뢰성이 확보될 수 있다. 또한, 클라우드 서비스의 사용자가 자원 할당 여부를 직접 검증할 수 있으므로, 상기의 사용자는 보다 높은 신뢰를 바탕으로 클라우드 서비스를 사용할 수 있다.
도 5는 일 실시예에 따른 자원 할당을 검증하는 방법의 흐름도이다.
도 4를 참조하여 전술된 단계(450)는 하기의 단계들(510 내지 560)을 포함할 수 있다. 하기에서, 가상 머신(340)은 클라우딩 컴퓨터 서버(120)의 CPU(210)에 의해 수행되는 하나 이상의 가상 머신들 중 자원 할당에 대한 검증 요청을 전송한 사용자에게 클라우드 서비스를 제공하는 가상 머신일 수 있다.
단계(510)에서, 네트워킹 유닛(220)은 수신된 검증 요청에 대한 SMI를 발생시킨다.
단계(520)에서, SMI가 발생하면 클라우드 컴퓨팅 서버(120) 또는 CPU(210)는 현재 실행 중인 가상 머신들(예컨대, 사용자에게 제공되는 가상 머신(340))에 대한 정보인 컨텍스트(context)를 메모리(230) 내에 저장할 수 있다. 컨텍스트가 저장되는 메모리(230)의 영역은 하이퍼바이저(330)에 의해 접근될 수 없는 영역일 수 있다. 컨택스트는 레지스터 내에 저장된 정보를 포함할 수 있다. 상기의 저장은 하드웨어 적으로 수행될 수 있다. SMM 핸들러가 실행될 때에는 CPU(210)에 의해 실행되고 있던 SMM 핸들러 외의 작업(즉, 프로세스)들은 중지될 수 있으며, 다른 작업들이 중지되는 시점에서의 CPU(210)의 레지스터 정보가 메모리(230) 내에 저장될 수 있다. 여기서, 다른 작업은 하이퍼바이저(330)를 포함할 수 있다. 즉, CPU(210)에 의해 실행 중이던 하이퍼바이저(330)는 실행 중단 상태에 놓일 수 있다.
단계들(530 내지 560)에서, SMM 핸들러는 SMI를 처리함으로써 요청된 자원이 가상 머신(340)에게 할당되었는지 여부를 검증할 수 있다.
단계(530)에서, SMI가 발생하면 CPU(210)는 SMI를 처리하기 위한 SMM 핸들러를 실행할 수 있다.
단계들(540 내지 550)은 SMM 핸들러가 자원 할당에 대한 검증을 하기 위한 선결 작업으로 간주될 수 있다.
단계(540)에서, SMM 핸들러는 실행 모드를 확인할 수 있다. 실행 모드는 단계(520)에서 컨텍스트가 메모리(230) 내에 저장되는 시점에서의 실행 모드일 수 있다. SMM 핸들러는 특정한 레지스터 내에 저장된 정보에 기반하여 실행 모드를 확인할 수 있다. 확인된 실행 모드가 가상 머신 모드이면 단계(550)가 실행될 수 있다. 확인된 실행 모드가 호스트 모드이면 단계(530)(또는, 단계(520))이 다시 반복될 수 있다. 여기서, 가상 머신 모드는 SMM 핸들러가 실행되는 시점에서 CPU(210)가 하나 이상의 가상 머신들 중 하나의 가상 머신을 실행하고 있었음을 의미할 수 있다. 또한, 호스트 모드는 SMM 핸들러가 실행되는 시점에서 CPU(210)가 하이퍼바이저(330)를 실행하고 있었음을 의미할 수 있다.
단계(550)에서, SMM 핸들러는 클라우드 컴퓨팅 서버에서 수행되는 하나 이상의 가상 머신들 중 자원 할당에 대한 검증 요청을 전송한 사용자의 가상 머신(340)을 식별할 수 있다.
SMM 핸들러는 CPU(210)에 의해 수행되는 하나 이상의 가상 머신들에 대한 정보 및 레지스터에 저장된 정보를 매칭함으로써 상기의 하나 이상의 가상 머신들 중 사용자의 가상 머신(340)을 식별할 수 있다. 매칭을 위해, CPU(210)의 레지스터들 중 사용자의 가상 머신(340)을 식별할 수 있는 레지스터가 선정되어야 한다. 즉, SMM 핸들러는 특정한 레지스터를 사용하여 클라우드 컴퓨팅 서버(120)에서 수행되는 하나 이상의 가상 머신들 중 사용자의 가상 머신(340)을 식별할 수 있다.
사용자의 가상 머신(340)을 식별하기 위해, SMM 핸들러는 가상 머신이 사용하는 주소 공간(address space)를 나타내는 네스트된 씨알3(Nested CR3; nCR3) 레지스터를 사용할 수 있다.
사용자의 가상 머신(340)을 식별하기 위해서는, 가상 머신(340)이 생성되었는지 여부가 확인될 수 있어야 한다. SMM 핸들러는 새로운 가상 머신(340)이 생성되었는지를 확인하기 위해 하이퍼바이저(330)가 관리하는 데이터를 조사할 수 있다. 데이터는 가상 머신 제어 블록(Virtual Machine Control Block; VMCB) 구조체를 포함할 수 있다.
VMCB 구조체는 클라우드 컴퓨팅 서버(120)의 하드웨어에 의해 지원되는 구조체로서 클라우드 컴퓨팅 서버(120)에서 수행되는 하나 이상의 가상 머신들에 대한 정보를 포함한다. 또한, 새로운 가상 머신(340)이 생성되면 생성된 새로운 가상 머신(340)에 대응하는 VMCB 구조체가 새롭게 생성될 수 있다. 따라서, SMM 핸들러는 하나 이상의 가상 머신들 각각에 대응하는 하나 이상의 VMCB 구조체들에 대해, VMCB 구조체의 특정 레지스터(예컨대, nCR3 레지스터)에 저장된 정보를 사용자의 가상 머신(340)에 대한 정보와 매칭함으로써 사용자의 가상 머신(340)을 식별할 수 있다.
가상 머신(340)을 생성하는 작업은 다른 작업과는 병렬적으로는 수행되지 못할 수 있다. 즉, CPU(210)에 의해 수행되는 하이퍼바이저(330)가 가상 머신(340)을 생성할 때, CPU(210)가 다른 작업을 수행하는 것이 불가능할 수 있다. 따라서, 상술된 단계만으로도 하나 이상의 가상 머신들이 nCR3 레지스터에 의해 구분될 수 있다.
단계(560)에서, SMM 핸들러는 식별된 사용자의 가상 머신(340)에 대해 자원이 할당되었는지 여부를 검증할 수 있다. SMM 핸들러는 저장된 레지스터 정보에 기반하여 가상 머신(340)에게 자우너이 할당되었는지를 검증할 수 있다.
할당이 요청된 자원의 종류에 따라, 사용되는 검증 방법(예컨대, 검증을 위해 사용되는 레지스터 정보)이 상이할 수 있다. 요청된 자원이 프로세싱 자원, 메모리 자원 및 I/O 자원인 경우에 있어서의 검증 방법이 각각 도 6, 도 7 및 도 9를 참조하여 하기에서 상세히 설명된다.
도 6은 가상 머신 실행 및 호스트 실행 간의 차이를 설명한다.
요청된 자원이 프로세싱 자원인 경우, SMM 핸들러는 하드웨어적으로 저장된 레지스터들을 확인함으로써 요청된 자원이 가상 머신(340)에게 할당되었는지 여부를 확인할 수 있다. 여기서, 하드웨어적으로 저장된 레지스터들은, nCR3 레지스터를 포함하여, 가상 머신(340)이 수행될 때 사용되었던 모든 레지스터들을 포함할 수 있다.
단계(530)의 SMM 핸들러가 실행되는 시점에서는, 가상 머신 모드에서 가상 머신(340)이 실행되고 있을 수 있고, 호스트 모드에서 하이퍼바이저가 실행되고 있을 수 있다. 제1 그래프(610)는 가상 머신이 실행 중일 때의 메모리(230)를 나타낼 수 있고, 제2 그래프(620)는 호스트(즉, 하이퍼바이저)가 실행 중일 때의 메모리(230)를 나타낼 수 있다.
도 5를 참조하여 전술된 단계(530)의 SMM 핸들러가 실행되는 시점에서, 가상 머신이 실행 중이었던 경우, 제1 그래프(610)에서 도시된 것처럼, 물리적 메모리 내의 VMCB 내에 nCR3이 저장될 수 있다. SMM 핸들러가 실행되는 시점에서 호스트(즉, 하이퍼바이저(330))가 실행 중이었던 경우(예컨대, 단계(520)), 제2 그래프(620)에서 도시된 것처럼, 시스템 관리 램(System Management RAM)의 영역 내에 가상 머신의 실행 중에 사용되던 레지스터들을 포함하는 호스트 상태(host state)가 저장(save)될 수 있다. 상기의 저장된 레지스터들은 nCR3을 포함할 수 있다. SMM 핸들러는 상기의 물리적 메모리 내의 VMCB 구조체 및 SMRAM에 각각 접근할 수 있다.
SMM 핸들러는 VMCB 구조체 또는 SMRAM 내에 저장된 nCR3 레지스터에 접근할 수 있고, 상기의 nCR3 레지스터에 저장된 정보에 기반하여 어떤 가상 머신들이 수행 중인지를 검증할 수 있다. 클라우드 컴퓨팅 서버에서 수행되는 하나 이상의 가상 머신들은 각각 고유한 주소를 가질 수 있다. nCR3 레지스터는 가상 머신의 주소 공간을 나타내므로, 하나 이상의 가상 머신들 각각에 대응하는 nCR3 레지스터는 각각 고유한 값을 가질 수 있다. SMM 핸들러는 nCR3 레지스터에 저장된 정보에 기반하여 클라우드 컴퓨팅 서버에서 수행되는 하나 이상의 가상 머신들 중 어떤 가상 머신들이 CPU(210)에 의해 수행되고 있는 중인지를 주기적으로 확인할 수 있고, 사용자의 가상 머신(340)이 CPU(210)에 의해 수행 중이었던 것으로 확인된 횟수 또는 빈도에 기반하여 가상 머신(340)에게 프로세싱 자원이 얼마나 할당되었는지를 검증할 수 있다.
도 5를 참조하여 전술된 단계들(520 내지 540)는 전술된 주기적인 확인의 과정을 나타낼 수 있다.
만약, 호스트 모드에서 호스트(즉, 하이퍼바이저(330))만 계속해서 실행되는 경우, 가상 머신(340)에게 프로세싱 자원이 자원 할당 요청에 맞게 할당되지 않은 것으로 간주될 수 있다. 따라서, SMM 핸들러는 호스트(즉, 하이퍼바이저(330))만 계속해서 실행된다는 것(또는, 가상 머신(340)에게 프로세싱 자원이 자원 할당 요청에 맞게 할당되지 않은 것)을 도 4를 참조하여 전술된 단계(460)의 응답을 통해 사용자에게 알려줄 수 있다.
가상 머신(340)이 하이퍼바이저(330)에게 프리빌리지 연산(privileged operation)을 요청한 경우, 상기의 요청이 하이퍼바이저(330)에게 전달된 후 짧은 시간 동안에 하이퍼바이저(330)가 실행될 가능성이 있다. 만약, SMM 핸들러가 이러한 짧은 시간 내의 시점만을 포착하는 경우에는, 잘못된 정보(즉, 잘못된-부정(false-negative))가 사용자에게 전달할 수 있다. SMM 핸들러가 아주 짧은 시간 간격에서 연속적으로 호출되고, 호출된 SMM 핸들러가 가상 머신(340)에게 프로세싱 자원이 자원 할당 요청에 맞게 할당되었는지 여부를 검증함으로써 이러한 문제가 해결될 수 있다.
또한, 문재 해결의 다른 한 방법으로서, SMM 핸들러는 하이퍼바이저(330)가 관리하는 데이터에 직접적으로 접근할 수 있고, 상기의 데이터 중 가상 머신(340)에 대한 정보를 확인할 수 있다. 즉, SMM 핸들러는 실제 페이지 테이블(page table)에 대한 정보를 재구성함으로써 하이퍼바이저(330)의 메모리 영역에 접근하여, 하이퍼바이저(330)가 관리하는 가상 머신(340)에 대한 정보 및 가상 머신(340)에 대한 스케쥴링 정보를 획득할 수 있고, 상기의 정보 및 상기의 스케쥴링 정보에 기반하여 가상 머신(340)의 실행 여부 또는 가상 머신(340)에게 프로세싱 자원이 얼마다 할당되었는지를 검증할 수 있다.
도 7은 일 예에 따른 물리적 메모리 내에 네스트된 페이지 테이블을 참조하는 방법을 도시한다.
요청된 자원이 메모리 자원인 경우, SMM 핸들러는 실제의 물리 메모리(Physical Memory)가 얼마나 가상 머신에게 할당되었는지를 검증할 수 있다.
하드웨어 지원 가상화 방식은 2단계 페이지 테이블 변환 계층을 통한 메모리 가상화를 지원할 수 있다.
도 7에서 도시된 것과 같이, 가상 머신(340)이 사용하는 게스트 페이지 테이블(Guest Page Table; GPT)은 가상 주소(virtual address)로부터 게스트 물리 주소(guest physical memory)로의 변환을 담당할 수 있다. GPT는 게스트 OS(즉, 가상 머신(340)의 OS(342))에 의해 관리될 수 있다. 게스트 씨알3(Guest CR3; gCR3) 레지스터는 GPT를 가리킬 수 있으며, 게스트 가상 메모리의 특정한 주소는 GPT 내에서의 특정한 게스트 물리 프레임 번호(Guest Physical Frame Number; GPFN)에 대응할 수 있다.
또한, 하이퍼바이저(330)에 의해 관리되는 네스트된 페이지 테이블(Nested Page Table; NPT)은 게스트 물리 주소로부터 머신 주소(Machine Address)로의 변환을 담당할 수 있다. 여기서, 머신 주소는 메모리(230)를 접근하기 위해 사용되는 주소일 수 있다. nCR3 레지스터는 NPT를 가리킬 수 있다. gPFN은 게스트 물리 메모리의 특정한 주소를 가리킬 수 있다. 따라서, 게스트 가상 메모리의 특정한 주소는 gCR, GPT 및 gPFN를 통해 게스트 물리 메모리의 특정한 주소에 대응할 수 있다. 게스트 물리 메모리의 특정한 주소는 NPT 내에서의 특정한 머신 프레임 번호(Machine Frame Number; MFN)에 대응할 수 있다.
즉, SMM 핸들러는 가상 머신(340)의 운영 체제(342)에 의해 사용되는 가상 주소를 하이퍼바이저(330)에 의해 사용되는 게스트 물리 주소로 변환하고, 게스트 물리 주소를 메모리(230)를 접근하기 위해 사용되는 머신 주소로 변환함으로써 메모리(230)에 접근할 수 있다. SMM 핸들러는 메모리(230) 내에 저장된 정보를 검증함으로써 메모리 자원(즉, 물리 메모리(Physical Memory))이 가상 머신(340)에게 얼마나 실제로 할당되었는지를 검증할 수 있다.
도 8은 일 예에 따른 메모리 자원의 검증 방법을 설명한다.
전술된 것과 같이, SMM 핸들러는 SMRAM 내의 호스트 상태 내에서 nCR3 레지스터를 찾을 수 있고, nCR3를 사용하여 물리적 메모리 내의 NPT에 접근할 수 있다.
SMM 핸들러는, 메모리 자원을 검증하기 위해, NPT의 테이블 구조를 한 단계씩 직접 검색 및 확인하는 방식을 사용할 수 있다. NPT의 구조는 1 기가 바이트(Giga Byte; GB)의 슈퍼 페이지(super page)를 사용하는 구조 또는 4 킬로 바이트(Kilo Byte; KB)의 페이지를 할당하는 구조를 가질 수 있다.
전술된 것과 같이, SMM 핸들러가 실행될 때에는 CPU(210)에 의해 실행되고 있던 다른 작업들은 중지될 수 있으며, 중지되는 시점에서의 다른 작업들의 레지스터 정보가 메모리(230) 내에 저장될 수 있다. 따라서, 도 8에서 도시된 것과 같이, SMM 핸들러는 우선 SMRAM 내에서 nCR3 레지스터를 찾을 수 있고, nCR3에 저장된 정보를 통해 NPT의 위치에 대한 정보를 확인할 수 있다. 다음으로, SMM 핸들러는, 예컨대 도 7을 참조하여 전술된 3 레벨(예컨대, 가상 주소 레벨, 게스트 물리 주소 레벨 및 머신 주소 레벨)을 거치면서, NPT를 조사할 수 있다. 즉, SMM 핸들러는 NPT 내의 각 하위 페이지 디렉토리(directory) 및 각 페이지 테이블을 확인할 수 있다. 최종적인 페이지 테이블 내에는 고유의 머신 주소가 기록되어 있을 수 있다. SMM 핸들러는 기록된 고유의 머신 주소들을 카운트함으로써 메모리 자원(즉, 물리 메모리(Physical Memory))이 가상 머신(340)에게 얼마나 실제로 할당되었는지를 알 수 있다.
도 9는 일 예에 따른 I/O 자원을 검증하는 방법을 설명한다.
도 9에서, SMM 핸들러 및 하이퍼바이저(330)가 도시되었다. 또한, 관리 가상 머신(910)이 도시되었고, 관리 가상 머신(910)을 위한 도메인0(Domain0; Dom0)(912) 및 물리적 기능(Physical Function; PF)(914)가 도시되었다. 또한, 일반의 가상 머신(920)이 도시되었고, 일반의 가상 머신(920)을 위한 운영 체제(Operating System; OS)(922) 및 가상 기능(Virtual Function; VF)(924)이 도시되었다.
Dom0(912)는 하이퍼바이저(330)를 직접 제어할 수 있는 특수한 게스트 운영 체제일 수 있다. PF(914)는 입출력 가상화(Input/Output Virtualization; IOV)에서의 주 역할(main role)를 나타낼 수 있다. OS(922)는 게스트 OS일 수 있다. VF(924)는 OS(922)에게 가상 디바이스를 제공할 수 있다.
요청된 자원이 I/O 자원인 경우, SMM 핸들러는 클라우드 컴퓨팅 서버(120)가 제공하는 단일 루트 입출력 가상화(Single Root - Input/Output Virtualization; SR-IOV)를 이용하여 요청된 I/O 자원이 가상 머신(340)에게 할당되었는지 여부를 검증할 수 있다.
SR-IOV 방식은 클라우드 컴퓨터 서버(120)의 CPU(210)에 의해 수행되는 하나 이상의 가상 머신들 각각에게 가상의 디바이스를 할당하여 주는 방식일 수 있다. SR_IOV 방식이 사용되기 위해서는, 예컨대 네트워킹 유닛(220)과 같은, 실제의 물리 디바이스가 SR-IOV 방식을 지원해야할 수 있다. 물리 디바이스의 실제 드라이버는 관리 가상 머신(910) 또는 하이퍼바이저(330)에 의해 관리될 수 있다. 가상의 디바이스의 드라이버는 일반의 가상 머신(920) 내에 존재할 수 있다. 요청된 I/O 자원이 실제로 가상 머신(340)에게 할당되었는지 여부를 확인함에 있어서 중요한 것은, 가상의 디바이스가 실제로 가상 머신(340)에 할당되었는지 여부를 확인하는 것이다. 상기의 확인을 위해, SMM 핸들러는 실제 물리 디바이스에 접근하여 자원 할당 여부를 검증할 수 있다.
도 5를 참조하여 전술된 단계(530)의 SMM 핸들러가 실행되는 시점에서는, CPU(210)에 의해 실행되고 있던 다른 작업들(예컨대, 프로세스들)은 중지될 수 있다. 이때, SMM 핸들러는 메모리(230)에 접근하여 가상 머신(340)에서 가상 디바이스 드라이버가 생성되었는지 여부를 확인함으로써 요청된 I/O 자원이 가상 머신(340)에게 할당되었는지 여부를 검증할 수 있다.
SR-IOV에 의해 가상 머신(340)에게 가상 디바이스가 할당되고, 가상 머신(340)이 입출력 메모리 관리 유닛(Input/Output Memory Management Unit; IOMMU)의 기능을 이용할 수 있는 경우, 가상 머신(340)은, 하이퍼바이저(330)의 개입없이, 직접 디바이스에 접근할 수 있다. 따라서, 가상 머신(340)은 디바이스로의 직접 접근을 통해 요청된 I/O 자원이 가상 머신(340)에게 할당되었는지 여부를 검증할 수 있다. 만약 하이퍼바이저(330)가 가상 머신(340)의 I/O 접근에 대해서 개입할 수 있는 경우, 가상 머신(340)이 I/O 자원을 사용할 때 사용 속도를 조절하는 방식으로 가상 머신(330)에게 할당된 I/O 자원을 남용할 수 있다. 그러나, I/O 자원이 가상 머신(340)에게 할당되었는지 여부 및 사용 속도가 하이퍼바이저(330)에 의해 조절될 수 있는지 여부는 SMM 핸들러에 의해 검증될 수 있다. 따라서, I/O 자원의 할당이 보장될 수 있다.
앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예를 통해 설명된 기술적 내용은 다양한 수정 및 변형이 가능하다. 그러므로, 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 공증 서버
120: 클라우드 컴퓨팅 서버
310: 네트워킹 모듈
320: 검증 모듈
330: 하이퍼바이저
340: 가상 머신

Claims (15)

  1. 사용자로부터의 자원 할당 요청 및 상기 자원 할당에 대한 검증 요청을 각각 수신하는 공증 서버; 및
    상기 공증 서버로부터 상기 자원 할당 요청 및 상기 검증 요청을 각각 수신하고, 상기 사용자에게 클라우드 서비스를 제공하는 가상 머신을 실행하고, 상기 자원 할당 요청에 의해 요청된 자원을 상기 가상 머신에게 할당하는 클라우드 컴퓨팅 서버
    를 포함하고,
    상기 클라우드 컴퓨팅 서버는,
    상기 자원 할당 요청에 의해 요청된 자원이 상기 가상 머신에게 할당되었는지를 검증하는 검증 모듈
    을 실행하고,
    상기 검증 모듈은 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 서비스 시스템.
  2. 제1항에 있어서,
    상기 공증 서버는 상기 사용자로부터의 클라우드 서비스 요청을 수신하고,
    상기 클라우드 컴퓨팅 서버는,
    상기 클라우드 서비스 요청에 의해 요청된 클라우드 서비스를 제공하는 상기 가상 머신을 생성하는 하이퍼바이저
    를 실행하는, 클라우드 서비스 시스템.
  3. 제1항에 있어서,
    상기 검증 모듈은 상기 SMM에서 발생한 시스템 매니지먼트 인터럽트(System Management Interrupt; SMI)를 처리하는 SMM 핸들러로서 구현되고,
    상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버의 바이오스에 포함된, 클라우드 서비스 시스템.
  4. 제3항에 있어서,
    상기 클라우드 컴퓨팅 서버는 상기 수신된 검증 요청에 대한 상기 SMI를 발생시키고,
    상기 SMM 핸들러는 상기 SMI를 처리함으로써 상기 요청된 자원이 상기 가상 머신에게 할당되었는지 여부를 검증하는, 클라우드 서비스 시스템.
  5. 제3항에 있어서,
    상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버의 레지스터 내에 저장된 정보를 확인함으로써 상기 요청된 자원이 상기 가상 머신에게 할당되었는지 여부를 검증하는, 클라우드 서비스 시스템.
  6. 제5항에 있어서,
    상기 클라우드 컴퓨팅 서버는
    메모리
    를 더 포함하고,
    상기 사용자에게 상기 가상 머신을 제공하는 하이퍼바이저
    를 실행하고,
    상기 SMI가 발생하면 상기 가상 머신에 대한 정보인 컨텍스트를 상기 메모리 내에 저장하고,
    상기 컨텍스트는 상기 레지스터에 저장된 정보를 포함하는, 클라우드 서비스 시스템.
  7. 제4항에 있어서,
    상기 SMM 핸들러는 상기 가상 머신을 위해 사용되는 주소 공간을 나타내는 레지스터를 사용하여 상기 클라우드 컴퓨팅 서버에서 수행되는 하나 이상의 가상 머신들 중 상기 사용자의 상기 가상 머신을 식별하는, 클라우드 서비스 시스템.
  8. 제7항에 있어서,
    상기 SMM 핸들러는 상기 하나 이상의 가상 머신들 각각에 대응하는 하나 이상의 가상 머신 제어 블록(Virtual Machine Control Block; VMCB) 구조체들에 대해, 상기 VMCB 구조체의 상기 주소 공간을 나타내는 레지스터에 저장된 정보를 상기 가상 머신에 대한 정보와 매칭함으로써 상기 가상 머신을 식별하는, 클라우드 서비스 시스템.
  9. 제7항에 있어서,
    상기 요청된 자원은 프로세싱 자원이고,
    상기 SMM 핸들러는 상기 하나 이상의 가상 머신들 각각에 대응하는 하나 이상의 가상 머신 제어 블록(Virtual Machine Control Block; VMCB) 구조체 또는 시스템 관리 램(System Management RAM) 내에 저장된 상기 가상 머신을 위해 사용되는 주소 공간을 나타내는 레지스터에 저장된 정보에 기반하여 상기 하나 이상의 가상 머신들 중 어떤 가상 머신들이 수행 중인지를 주기적으로 확인하고, 상기 사용자의 상기 가상 머신이 수행 중이었던 것으로 확인된 횟수에 기반하여 상기 가상 머신에게 프로세싱 자원이 얼마나 할당되었는지를 검증하는, 클라우드 서비스 시스템.
  10. 제4항에 있어서,
    상기 클라우드 서비스 서버는
    메모리
    를 더 포함하고,
    상기 요청된 자원은 메모리 자원이고,
    상기 클라우드 컴퓨팅 서버는 상기 클라우드 서비스 요청에 의해 요청된 클라우드 서비스를 제공하는 상기 가상 머신을 생성하는 하이퍼바이저를 실행하고,
    상기 SMM 핸들러는 상기 가상 머신의 운영 체제에 의해 사용되는 가상 주소를 상기 하이퍼바이저에 의해 사용되는 게스트 물리 주소로 변환하고, 상기 게스트 물리 주소를 상기 메모리를 접근하기 위해 사용되는 머신 주소로 변환함으로써 상기 메모리에 접근하고, 상기 SMM 핸들러는 상기 메모리 내에 저장된 정보를 검증함으로써 메모리 자원이 상기 가상 머신에게 얼마나 실제로 할당되었는지를 검증하는, 클라우드 서비스 시스템.
  11. 제4항에 있어서,
    상기 요청된 자원은 입출력(Input/Output; I/O) 자원이고,
    상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버가 제공하는 단일 루트 입출력 가상화(Single Root - Input/Output Virtualization; SR-IOV)를 이용함으로써 상기 I/O 자원이 상기 가상 머신에게 할당되었는지 여부를 검증하는, 클라우드 서비스 시스템.
  12. 공증 서버가 사용자로부터의 자원 할당 요청을 수신하는 단계;
    클라우드 컴퓨팅 서버가 상기 공증 서버로부터 상기 자원 할당 요청을 수신하는 단계;
    상기 클라우드 컴퓨팅 서버가 상기 사용자에게 제공되는 가상 머신에게 상기 자원 할당 요청에 의해 요청된 자원을 할당하는 단계;
    상기 공증 서버가 상기 자원 할당에 대한 검증 요청을 수신하는 단계;
    상기 클라우드 컴퓨팅 서버가 상기 공증 서버로부터 상기 검증 요청을 수신하는 단계;
    상기 클라우드 컴퓨팅 서버에 의해 실행되는 검증 모듈이 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 상기 자원 할당에 대한 검증을 수행하는 단계;
    상기 검증 모듈이 상기 검증 요청에 대한 결과를 상기 공증 서버에게 전송하는 단계; 및
    상기 공증 서버가 상기 검증 요청에 대한 결과를 상기 사용자에게 전송하는 단계
    를 포함하는, 클라우드 서비스 제공 방법.
  13. 클라우드 컴퓨팅 서버에 있어서,
    프로세서; 및
    자원 할당 요청 및 자원 할당에 대한 검증 요청을 각각 수신하는 네트워킹 유닛
    을 포함하고,
    상기 프로세서는,
    사용자에게 제공되는 가상 머신을 실행하고, 상기 자원 할당 요청에 의해 요청된 자원을 상기 가상 머신에게 할당하고,
    상기 자원 할당 요청에 의해 요청된 자원이 상기 가상 머신에게 할당되었는지를 검증하는 검증 모듈
    을 실행하고,
    상기 검증 모듈은 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 컴퓨팅 서버.
  14. 클라우드 컴퓨팅 서버가 클라우드 서비스를 제공하는 방법에 있어서,
    사용자로부터의 자원 할당 요청을 수신하는 단계;
    상기 사용자에게 제공되는 가상 머신에게 상기 자원 할당 요청에 의해 요청된 자원을 할당하는 단계;
    상기 자원 할당에 대한 검증 요청을 수신하는 단계;
    검증 모듈에 의해 상기 자원 할당에 대한 검증이 수행되는 단계; 및
    상기 검증 요청에 대한 결과가 상기 검증 모듈로부터 상기 사용자에게로 전송되는 단계
    를 포함하고,
    상기 검증 모듈은 상기 클라우드 컴퓨팅 서버에 의해 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 클라우드 서비스 제공 방법.
  15. 클라우드 컴퓨팅 서버에서 실행되는 가상 머신에게 사용자가 요청한 자원이 할당되었는지를 검증하는 방법에 있어서,
    상기 자원의 할당에 대한 검증 요청에 의해 시스템 메니지먼트 인터럽트(System Management Interrupt; SMI)가 발생하는 단계;
    중앙 처리 유닛(Control Processing Unit; CPU)에 의해 실행되고 있던 프로세스들이 중지되고, 상기 프로세스들이 중지되는 시점에서의 상기 CPU의 레지스터 정보를 저장하는 단계 - 상기 프로세스들은 상기 가상 머신을 포함함 -; 및
    상기 SMI를 처리하는 시스템 매니지먼트 모드(System Management Mode; SMM) 핸들러가 상기 레지스터 정보에 기반하여 상기 가상 머신에게 상기 자원이 할당되었는지를 검증하는 단계
    를 포함하고, 상기 SMM 핸들러는 상기 클라우드 컴퓨팅 서버의 모든 컴퓨팅 자원에 접근할 수 있는 시스템 매니지먼트 모드(System Management Mode; SMM)에서 실행되는, 자원 할당 검증 방법.
KR1020120005645A 2012-01-18 2012-01-18 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법 KR101356223B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120005645A KR101356223B1 (ko) 2012-01-18 2012-01-18 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120005645A KR101356223B1 (ko) 2012-01-18 2012-01-18 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130084796A KR20130084796A (ko) 2013-07-26
KR101356223B1 true KR101356223B1 (ko) 2014-01-29

Family

ID=48995254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120005645A KR101356223B1 (ko) 2012-01-18 2012-01-18 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101356223B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102165763B1 (ko) * 2017-03-06 2020-10-14 한국전자통신연구원 서비스 제어 완료 상태 확인 장치 및 방법
KR102263366B1 (ko) 2017-06-15 2021-06-11 한국전자통신연구원 다중 클라우드 기반의 클라우드 브로커리지를 이용한 클라우드 서비스 제공 장치 및 그 방법
KR102263361B1 (ko) 2017-06-15 2021-06-11 한국전자통신연구원 다중 클라우드 기반의 클라우드 브로커리지 서비스 제공 장치 및 그 방법
KR102297850B1 (ko) 2017-10-27 2021-09-06 한국전자통신연구원 클라우드 서비스 브로커리지에 기반한 클라우드 서비스 제공 방법 및 장치 및 그 방법
KR20190070251A (ko) 2017-12-12 2019-06-20 한국전자통신연구원 스냅샷 기반의 학습 지연을 이용한 스케줄링 방법 및 이를 위한 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272669A (ja) 2003-03-10 2004-09-30 Hitachi Ltd グリッドコンピューティングにおける課金管理方法及び課金管理装置
JP2009507427A (ja) 2005-09-02 2009-02-19 ジョーンズ,エイドリアン ネットワークリソース使用記録を検証する方法及びシステム
KR101063354B1 (ko) 2009-07-29 2011-09-07 한국과학기술원 공개 키 기반의 프로토콜을 이용한 과금 시스템 및 그 방법
KR20110124088A (ko) * 2010-05-10 2011-11-16 한국과학기술원 클라우드 컴퓨팅 과금 공증장치, 과금 시스템 및 과금방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004272669A (ja) 2003-03-10 2004-09-30 Hitachi Ltd グリッドコンピューティングにおける課金管理方法及び課金管理装置
JP2009507427A (ja) 2005-09-02 2009-02-19 ジョーンズ,エイドリアン ネットワークリソース使用記録を検証する方法及びシステム
KR101063354B1 (ko) 2009-07-29 2011-09-07 한국과학기술원 공개 키 기반의 프로토콜을 이용한 과금 시스템 및 그 방법
KR20110124088A (ko) * 2010-05-10 2011-11-16 한국과학기술원 클라우드 컴퓨팅 과금 공증장치, 과금 시스템 및 과금방법

Also Published As

Publication number Publication date
KR20130084796A (ko) 2013-07-26

Similar Documents

Publication Publication Date Title
EP3629540B1 (en) Apparatus and method for secure memory access using trust domains
US9614875B2 (en) Scaling a trusted computing model in a globally distributed cloud environment
US10726120B2 (en) System, apparatus and method for providing locality assertion between a security processor and an enclave
US9734336B2 (en) Process security validation
US10831889B2 (en) Secure memory implementation for secure execution of virtual machines
US9922045B2 (en) Data management in a multi-tenant distributive environment
US20140040889A1 (en) Facilitating Customer-Initiated Virtual Machine Migration and Swapping
US9270703B1 (en) Enhanced control-plane security for network-accessible services
KR101356223B1 (ko) 클라우드 환경에서의 클라우드 사용자를 위한 컴퓨팅 자원 할당 검증 장치 및 방법
EP3842973B1 (en) Security schemes for multiple trusted-execution-environments (tees) and multiple rich-execution-environments (rees)
JP7379512B2 (ja) セキュア・ドメインと非セキュア・エンティティとの間のストレージ共用
JP7379516B2 (ja) セキュア・インターフェース制御ストレージのためのホスト仮想アドレス空間使用方法、システム、プログラム
CN108073823B (zh) 数据处理方法、装置及系统
JP7461694B2 (ja) ページのインポート/エクスポートのためのプログラム割り込み
WO2014059575A1 (zh) 输入输出操作的处理方法和装置
US20220053001A1 (en) Methods and apparatus for automatic configuration of a containerized computing namespace
TWI801714B (zh) 用於安全儲存隔離之電腦實施方法、系統及程式產品
JP2022522664A (ja) ページ変更検出によるセキュアなページング
CN105677481B (zh) 一种数据处理方法、系统及电子设备
US20200110879A1 (en) Trusted computing attestation of system validation state
Dai et al. Design and verification of a lightweight reliable virtual machine monitor for a many-core architecture
US10223284B2 (en) Flexible I/O DMA address allocation in virtualized systems
US11709750B2 (en) Dynamically mapping software infrastructure utilization
TWI838460B (zh) 用於安全介面控制件之通信介面之電腦實施的方法、電腦系統及電腦程式產品
US20240095338A1 (en) Isolated runtime environments for securing secrets used to access remote resources from compute instances

Legal Events

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

Payment date: 20161227

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190107

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 7