KR101468983B1 - 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체 - Google Patents

동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체 Download PDF

Info

Publication number
KR101468983B1
KR101468983B1 KR1020120083631A KR20120083631A KR101468983B1 KR 101468983 B1 KR101468983 B1 KR 101468983B1 KR 1020120083631 A KR1020120083631 A KR 1020120083631A KR 20120083631 A KR20120083631 A KR 20120083631A KR 101468983 B1 KR101468983 B1 KR 101468983B1
Authority
KR
South Korea
Prior art keywords
user
experiment
node
model
environment
Prior art date
Application number
KR1020120083631A
Other languages
English (en)
Other versions
KR20140027604A (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 KR1020120083631A priority Critical patent/KR101468983B1/ko
Publication of KR20140027604A publication Critical patent/KR20140027604A/ko
Application granted granted Critical
Publication of KR101468983B1 publication Critical patent/KR101468983B1/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
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device 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
    • G06F9/4406Loading of operating system
    • 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
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 일 실시예는, 사용자의 실험모델 수행에 필요한 컴퓨터 시스템의 환경을 설정하기 위한 변수를 입력받고, 상기 변수에 따라 컴퓨터 시스템의 환경 설정을 위한 제어정보 또는 제어명령을 출력하는 제어부; 복수의 컴퓨팅 노드들을 포함하고 상기 제어부가 출력하는 제어정보 또는 제어명령에 따라 상기 복수의 컴퓨팅 노드들 중 상기 실험수행을 위한 컴퓨팅 노드를 상기 사용자에 할당하는 서버자원부; 및 상기 사용자의 권한 설정에 따라 상기 사용자가 접근 가능하도록 제어되고, 상기 서버자원부에 포함된 컴퓨팅 노드가 계산한 결과 데이터를 저장하는 데이터관리부;를 포함하는 동적 계산 환경을 설정하기 위한 장치를 제공한다.

Description

동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체{Apparatus for dynamically configuring a computing environment, and method thereof, and storage medium for storing a program dynamically configuring a computing environment}
본 발명은 동적 계산 환경을 설정하기 위한 장치, 그 방법 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체에 관한 것이다.
네트워크의 글로벌화로 인한 국제간 고에너지물리(HEP), 천체물리(e-VLBI), 바이오 등과 같은 과학기술 실험의 증가로 대용량 데이터의 전송을 요구하는 첨단과학기술 응용들이 늘어나고 있다. 이러한 대용량 데이터 전송을 원활히 진행하기 위해서는 네트워크 백본의 용량과 종단의 사용자 시스템의 성능은 전체적인 시스템 성능에 영향을 많이 미친다.
이를 지원하기 위한 종래의 방법으로는 고대역폭 네트워크에 연동된 고성능 대용량 컴퓨팅 서버를 응용연구자에게 제공하는 형태로 원격 협업 컴퓨팅 환경을 구축해왔다. 이러한 경우 실제 사용자 또는 사용자 그룹들은, 협업 컴퓨터 시스템을 원격으로 연결하여 연결된 협업 컴퓨터 시스템의 환경에 따라 서버 자원을 사용해야 한다. 하지만, 협업 연구 그룹마다 각기 다른 운영체제(Operating System; OS)나 자신들만의 특정 응용 시스템 또는 프로그램을 사용하기 때문에 사용자 또는 사용자 그룹이 협업 컴퓨터 시스템을 원격으로 사용하기에 불편한 문제점이 있었다.
사용자 또는 사용자 그룹이 협업 컴퓨터 시스템을 원격으로 사용하기 위해 그 사용자 또는 사용자 그룹이 사용하는 컴퓨터 시스템의 환경을 변경할 경우에는 원격으로 컴퓨터 시스템의 커널 컴파일이 필요하거나 또는 커널 변수를 변경해야 한다. 그런데 이러한 작업은 관리자 권한(root 권한)이 필요하여 컴퓨터 시스템의 보안 등에 여러 가지 문제가 발생할 수 있다. 또한 사용자 또는 사용자 그룹이 원격으로 협업 연구 컴퓨터 시스템을 사용할 경우 해당 컴퓨터 시스템이 다운되는 경우가 있어 이러한 경우 대처하기 힘든 문제점이 있었다.
이전의 연구 환경을 제공하는 컴퓨팅 시스템은 그 시스템 구성과 정적이고 고정된 형태의 원격 연구 컴퓨팅 환경을 제공했기 때문에 위와 같은 한계와 문제점을 가지고 있다.
본 발명의 목적은 사용자가 원격으로 동적인 컴퓨팅 환경을 구성하거나 설정할 수 있는 동적 계산 환경을 설정하기 위한 장치, 그 방법 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체를 제공하는 것이다.
본 발명의 다른 목적은, 사용자가 설정한 연구 컴퓨팅 시스템에 대해 그 사용자에게 사용 또는 관리 권한을 위임할 수 있고, 수행 시스템의 전원 온/오프와 상관없이 사용자에게 상시적으로 데이터 접근이 가능하도록 하는, 동적 계산 환경을 설정하기 위한 장치, 그 방법 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체를 제공하는 것이다.
본 발명의 일 실시예는, 사용자의 실험모델 수행에 필요한 컴퓨터 시스템의 환경을 설정하기 위한 변수를 입력받고, 상기 변수에 따라 컴퓨터 시스템의 환경 설정을 위한 제어정보 또는 제어명령을 출력하는 제어부; 복수의 컴퓨팅 노드들을 포함하고 상기 제어부가 출력하는 제어정보 또는 제어명령에 따라 상기 복수의 컴퓨팅 노드들 중 상기 실험수행을 위한 컴퓨팅 노드를 상기 사용자에 할당하는 서버자원부; 및 상기 사용자의 권한 설정에 따라 상기 사용자가 접근 가능하도록 제어되고, 상기 서버자원부에 포함된 컴퓨팅 노드가 계산한 결과 데이터를 저장하는 데이터관리부;를 포함하는 동적 계산 환경을 설정하기 위한 장치를 제공한다.
상기 제어부는, 상기 실험모델을 상기 서버자원부에 제출하도록 하는 실험제어부; 상기 할당된 컴퓨팅 노드에 전원을 인가하도록 제어하는 전원제어부; 및 상기 전원이 인가된 컴퓨팅 노드가 상기 사용자가 선택한 운영체제로 부팅되도록 제어하는 원격부팅제어부를 포함할 수 있다.
상기 실험제어부는, 상기 실험모델이 상기 할당된 컴퓨팅 노드에서 수행시작 또는 수행중단 또는 수행종료하도록 하는 제어명령을 상기 서버자원부로 전송할 수 있다.
상기 원격부팅제어부는, 상기 실험모델이 상기 서버자원부에서 중단된 경우 상기 서버자원부가 중단한 상기 실험모델의 중단 시 실험환경 이미지를 수신하여 저장하고, 상기 서버자원부가 상기 실험모델 수행을 재개하는 경우 상기 저장한 실험환경 이미지를 상기 서버자원부로 전송할 수 있다.
상기 데이터관리부는, 상기 서버자원부의 네트워크 파일 시스템으로서 상기 서버자원부와 연결될 수 있다.
상기 데이터관리부는, 상기 사용자의 디렉토리를 생성하고, 상기 생성된 디렉토리에 상기 실험모델의 수행을 위한 입력 데이터 또는 수행 결과 데이터를 저장할 수 있다.
본 발명의 다른 실시예는, 복수의 원격의 컴퓨팅 노드들 중 사용자 실험모델 수행을 위해 사용 가능한 노드를 검색하고, 상기 검색 결과를 전송하는 단계; 상기 검색 결과에 따른 노드 중 선택된 노드에 전원을 인가하도록 제어하고, 상기 전원이 인가된 노드를 원격으로 사용자가 선택한 운영체제(operating system)로 부팅(booting)하는 단계; 및 상기 선택한 운영체제로 부팅한 노드에 실험수행 모델을 제출하는 단계;를 포함하는 동적 계산 환경을 설정하기 위한 방법.
상기 동적 계산 환경을 설정하기 위한 방법은, 상기 사용자가 선택한 운영체제로 상기 선택된 노드가 부팅될 경우, 상기 선택된 노드는 DHCP(dynamic host configuration protocol)을 이용하여 상기 운영체제를 다운로드할 수 있다.
상기 동적 계산 환경을 설정하기 위한 방법은, 상기 사용자가 선택한 운영체제로 상기 선택된 노드가 부팅된 경우, 동적 계산 환경 설정이 완료되었음을 상기 사용자에게 전송하는 단계;를 더 포함할 수 있다.
본 발명의 또 다른 실시예는, 사용자의 실험모델 수행에 필요한 컴퓨터 시스템의 환경을 설정하기 위한 변수를 입력받고; 복수의 원격의 컴퓨팅 노드들 중 상기 사용자 실험모델 수행을 위해 사용 가능한 노드를 검색하고; 상기 검색 결과에 따른 노드 중 선택된 노드에 전원을 인가하도록 제어하고; 상기 전원이 인가된 노드를 원격으로 사용자가 선택한 운영체제(operating system)로 부팅(booting)하도록 제어하고; 상기 선택한 운영체제로 부팅한 노드에 실험수행 모델을 제출하는; 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체를 제공한다.
상기 프로그램은, 상기 실험모델의 수행이 중단된 경우 상기 중단 시 실험환경 이미지를 수신하여 저장하도록 하고, 상기 실험모델 수행이 재개하는 경우 상기 저장한 실험환경 이미지를 전송하도록 제어할 수 있다.
상기 프로그램은, 상기 실험모델이 상기 컴퓨팅 노드에서 수행시작 또는 수행중단 또는 수행종료하도록 하는 제어명령을 전송할 수 있다.
본 발명의 실시예에 따르면 사용자가 원격으로 동적인 연구 컴퓨팅 환경을 구성하거나 설정할 수 있다.
본 발명의 실시예에 따르면 사용자가 설정한 연구 컴퓨팅 시스템에 사용자에게 사용 또는 관리 권한을 위임할 수 있고, 수행 시스템의 전원 온/오프와 상관없이 사용자에게 상시적으로 데이터 접근이 가능하도록 할 수 있다.
본 발명의 실시예에 따르면 사용자는 자신에게 적합한 컴퓨팅 환경을 구축하기 위해 별도의 시스템을 구비하거나 고대역폭 네트워크를 구비 또는 임대할 필요가 없어 비용과 노력을 절감할 수 있다.
도 1은 본 발명에 따른 동적 계산 환경을 설정하는 장치의 일 실시예를 예시한 도면
도 2는 동적 계산 환경을 설정하기 위한 방법의 일 실시예를 예시한 도면
도 3은 본 발명의 실시예에 따라 사용자가 동적 계산 환경을 설정한 경우,할당받은 시스템의 이벤트에 따른 스테이트(state) 천이를 예시한 도면
이하 본 발명의 실시예를 첨부한 도면을 참조하여 설명한다.
도 1은 본 발명에 따른 동적 계산 환경을 설정하는 장치의 일 실시예를 예시한 도면이다. 도 1을 참조하여 본 발명에 따른 동적 계산 환경을 설정하는 장치의 일 실시예를 설명하면 다음과 같다.
본 발명에 따른 동적 계산 환경을 설정하는 장치의 일 실시예는, 제어부(100), 서버자원부(200), 및 데이터관리부(300)를 포함한다.
제어부(100)는 실험제어부(110), 전원제어부(120), 및 원격부팅제어부(130)을 포함할 수 있다.
제어부(100)는 원격으로 동적 계산 환경을 구성하기 위해 서버자원부(200) 등을 제어하기 위한 서버자원부(200) 등에 제어정보 또는 제어명령을 전송하고, 서버자원부(200)의 컴퓨터 시스템들을 제어하는 기능을 수행할 수 있다.
사용자가 클라이언트 컴퓨터 등을 이용하여 적어도 하나 이상의 계산 컴퓨터시스템을 포함하는 서버자원부(200)를 사용하기 위해 원격으로 제어부(100)에 접속을 시도할 수 있다.
제어부(100)는 사용자의 클라이언트 컴퓨터 등으로부터 사용자가 사용하고자 하는 계산 환경에 대한 요구사항정보를 수신할 수 있다. 예를 들어 사용자의 클라이언트 컴퓨터가 원격으로 제어부(100)에 접속한 경우 사용자는 제어부(100)에 서버자원부(200)에 포함되는 적어도 하나의 컴퓨터 시스템에 포함되는 복수의 컴퓨팅 노드들 중 사용자 실험수행에 사용 가능한 노드를 문의할 수 있다. 그리고 제어부(100)는 서버자원부(200)에 포함된 컴퓨팅 노드들 중 가용한 컴퓨팅 노드에 대한 정보 또는 사용자가 문의한 노드 검색 결과를 사용자 컴퓨터에 전송할 수 있다.
서버자원부(200)는 적어도 하나 이상의 계산 컴퓨터 시스템을 포함하고, 계산 컴퓨터 시스템은 복수의 노드를 포함할 수 있다.
서버자원부(200)는 사용자가 실험수행을 위한 모델을 제출한 경우, 그 모델을 컴퓨터 시스템 중 적어도 하나의 노드로 수행할 수 있다. 일반적으로는 사용자 이외에 별도의 관리자가 서버자원부(200)에 포함되는 실험 수행 노드를 포함하는 컴퓨터 시스템을 관리한다.
데이터관리부(300)는 서버자원부(200)에 포함되는 다수의 노드 및 그 노드를 포함하는 시스템들과 연결될 수 있다. 데이터관리부(300)는 네트워크 파일 시스템으로서, 서버자원부(200)에 포함되는 계산 노드 또는 서버과 연결될 수 있다. 데이터관리부(300)는 서버자원부(200)와 별도의 전원시스템을 구비하고 있어서 서버자원부(200)의 계산 노드 또는 서버의 전원 온/오프와 관계없이 사용자가 제공한 데이터 또는 서버자원부(200)가 실험수행 모델을 계산한 결과물인 결과 데이터를 저장하고 관리할 수 있다.
이하에서는 제어부(100)가 사용자 요구사항에 따라 서버자원부(200)에 포함되는 컴퓨터 시스템의 노드를 이용하여 동적 계산 환경을 설정하기 위한 상세한 실시예를 예시한다.
상술한 바와 같이 제어부(100)는, 실험제어부(110), 전원제어부(120), 및 원격부팅제어부(130)를 포함할 수 있다.
실험제어부(110)는, 사용자가 클라이언트 컴퓨터를 통해 서버자원부(200)에 실험수행 모델을 제출할 경우, 해당 모델의 수행시작, 수행중단, 또는 수행종료에 대한 제어명령을 서버자원부(200)에 출력할 수 있다. 또는 서버자원부(200)가 해당 모델을 수행한 경우, 수행 중단한 경우 또는 수행종료한 경우 그 결과를 사용자가 알 수 있도록 사용자에게 전송할 수 있다.
예를 들어 실험제어부(110)는, 서버자원부(200)에 사용자가 요구하는 실험수행 모델을 제출할 수 있다. 사용자가 해당 모델 수행의 중단을 요청한 경우 실험제어부(110)는 서버자원부(200)에 그 실험수행을 위한 계산 중단 절차를 진행하도록 요청할 수 있다. 사용자가 모델 수행 중단을 요청한 경우, 또는 사용자가 제출한 모델 수행이 종료된 경우 실험제어부(110)는 서버자원부(200)에 모델 수행 중단 또는 모델 수행 종료를 요청한다. 그러면 서버자원부(200)는 모델 수행 중단 시 중간 결과 데이터 또는 모델 수행 종료 시 최종 결과 데이터를 데이터관리부(300)로 전송하여 저장할 수 있다. 서버자원부(200)가 모델 수행 종료 등으로 인해 결과 데이터를 데이터관리부(300)에 저장한 경우, 실험제어부(110)는 사용자에게 데이터관리부(300)에 저장된 데이터를 전송하도록 할 수 있다. 실험제어부(110)는 데이터관리부(300)에 저장된 데이터에 대해 삭제요청을 하여 데이터관리부(300)가 저장한 모델 수행 결과 데이터를 삭제하도록 할 수 있다.
전원제어부(120)는, 사용자가 원격으로 모델 수행을 제출하기 위해 노드를 할당받은 경우 할당받은 노드 또는 그 노드를 포함하는 컴퓨터 시스템의 전원을 파워 온으로 하도록 제어할 수 있다. 전원제어부(120)는, 할당받은 노드가 사용자가 제출한 모델을 수행하는 도중 세그멘테이션 폴트(segmentation fault)와 같이 비정상적인 상태에서 중단된 경우 해당 노드에 대한 전원을 파워 오프 후 파워 온 하는 등의 전원을 사이클 시키도록 할 수 있다.
원격부팅제어부(130)는 전원제어부(110)를 통해 전원이 인가된 서버자원부(200) 내의 노드 또는 시스템을 사용자가 원하는 운영체제(OS)로 구동하도록 제어할 수 있다. 원격부팅제어부(130)는 사용자가 할당받은 서버자원부(200)의 노드 또는 컴퓨터 시스템에 사용자가 선택한 운영체제(OS)를 로딩하도록 할 수 있다.
원격부팅제어부(130)는 사용자가 동적으로 할당받은 시스템이 원격으로 부팅될 수 있도록 네트워크 부팅이 가능하도록 하는 PXE 데몬(daemon), DHCP(dynamic host configuration protocol) 프로토콜을 이용하여 원격 부팅을 수행하는 DHCP 데몬 등을 포함하거나 PXE 데몬 또는 DHCP 데몬의 기능을 수행할 수 있다.
원격부팅제어부(130)는 사용자가 제출한 실험수행모델이 서버자원부(200)에서 중단된 경우 서버자원부(200)가 중단한 실험수행모델의 최종 실험환경에 대한 이미지를 서버자원부(200)로부터 수신하여 저장할 수 있다. 따라서, 원격부팅제어부(130)는 백업한 최종 실험환경을 저장한 이미지를 다시 서버자원부(200)로 전송하여 중단된 실험수행모델이 중단 이후 상태부터 재개되도록 할 수 있다.
서버자원부(200)는 적어도 하나 이상의 서버와 복수의 노드를 포함할 수 있는데, 서버자원부(200)의 노드들은 제어부(100)를 통해 제어되거나 별도의 관리자 제어시스템을 통해 제어될 수 있다. 서버자원부(200)는 원격으로 요청된 모델 수행이 가능하도록 유휴 노드 또는 시스템에 해당 모델을 수행할 수 있다. 이 경우 모델 수행에 참여하는 서버자원부(200)의 노드 또는 시스템은 원격부팅이 가능하도록 환경 설정될 수 있고, 고속 데이터 전송 및 결과 데이터를 빠르게 저장할 수 있도록 고대역폭의 네트워크와 연동될 수 있다.
데이터관리부(300)는 사용자별로 또는 사용자게 제출한 실험모델의 수행을 위한 입력데이터 또는 결과데이터를 저장하고 관리할 수 있다. 예를 들어 데이터관리부(300)는 하나의 실험모델의 입력 또는 출력 데이터를 저장할 수 있는 디렉토리를 생성하거나 또는 그 실험모델수행이 시작되기 위한 디렉토리를 생성할 수 있다. 생성된 디렉토리는 해당 실험모델을 수행하도록 하는 사용자 또는 사용자 그룹에 의해서만 접근될 수 있도록 권한이 설정될 수 있다.
데이터관리부(300)는 서버자원부(200)가 실험모델 수행을 종료하기 전까지 관련 실험모델 데이터를 저장 및 관리할 수 있는데, 서버자원부(200)에서 실험모델 수행이 중단되어 할당된 시스템 또는 노드가 서버자원부(200)의 관리자에 반환한 상태에서도 사용자들이 데이터관리부(300)가 해당 실험모델을 위해 생성한 디렉토리에 접근할 수 있도록 할 수 있다. 데이터관리부(300)는 실험모델수행이 종료된 경우 일정 시간 후에 그 실험모델과 관련된 디렉토리는 삭제하도록 할 수 있다.
사용자의 디렉토리 또는 실험모델 수행관련 디렉토리가 서버자원부 뿐만 아니라 데이터관리부(300)에 위치할 수 있어서 서버자원부(200)가 수행하는 실험모델이 중단되거나 페일(fail) 된 경우라도, 사용자는 상시적으로 데이터관리부(300)에 접근하여 데이터관리부(300)로부터 실험모델 수행을 위한 입력 데이터, 중간 데이터 및 결과 데이터를 얻을 수 있다.
데이터관리부(300)는 서버자원부(200)가 수행하는 실험모델 수행이 중단되거나 해당 실험모델 수행을 위해 할당된 노드가 반납되더라도, 해당 노드의 디스크를 로우 레벨 이미지(row level imaging)하여 저장하여 연구 데이터를 연속적으로 보관할 수 있다.
도 2는 동적 계산 환경을 설정하기 위한 방법의 일 실시예를 예시한 도면이다. 이 도면은 특히 동적 계산 환경 설정을 위해 원격부팅을 수행하는 예를 예시한 도면이다.
사용자가 클라이언트 컴퓨터를 이용하여 동적 계산 환경 설정 장치와 원격으로 연결할 수 있다(S10). 사용자는 원격으로 접속한 경우 제어부가 관리하는 웹 시스템을 통해 서버자원부 및 데이터관리부에 접근할 수 있다.
사용자는 제어부의 웹 시스템을 통해 계정을 생성한다(S20).
사용자가 실험모델을 생성하거나 생성한 실험모델을 제출할 준비를 수행하고, 생성된 계정으로 실험모델이 수행되도록 요청할 수 있다(S30).
사용자는 제어부의 웹 시스템을 통해 실험 수행에 필요한 시스템 또는 노드 및 그 개수와, 사용할 운영체제(OS) 타입, 사용기간을 검색하고, 제어부는 그에 따른 각각의 검색 결과를 사용자의 클라이언트 컴퓨터를 통해 표출되도록 할 수 있다(S40). 예를 들어 실험제어부가 서버자원부에 포함된 실험수행 가능 노드를 검색하여 사용자가 요구한 개수만큼의 노드가 확보되었거나 또는 노드를 확보하지 못한 경우 그 결과를 표출하도록 할 수 있다.
서버자원부의 노드들 중 사용자가 원하는 개수의 노드가 확보되고, 확보된 노드가 사용자에게 할당된 경우, 전원제어부는 원격으로 할당된 노드의 파워을 온으로 설정하도록 할 수 있다(S50).
원격부팅제어부는 사용자가 지정한 운영체제의 이미지를 해당 노드에 로딩하고 해당 노드들은 로딩된 운영체제의 이미지로 부팅한다(S60). 해당 노드가 사용자가 선택한 운영체제로 부팅된 경우 해당 노드를 관리하는 사용자 디렉토리는, 네트워크 파일 시스템으로 연결된 데이터관리부의 사용자 디렉토리와 마운트되어 연결된다. 서버자원부의 실험수행에 사용되는 사용자 디렉토리에 대해서는 그 사용자가 관리자의 권한을 갖을 수 있도록 설정될 수 있다.
예를 들어 서버자원부로부터 할당받은 노드가 리눅스 시스템의 운영체제로 부팅된 경우, "sudo list"에 그 사용자의계정을 추가하면, 그 계정의 사용자가 수퍼유저(superuser)로서 해당 노드에 명령을 지시할 수 있다.
위에서 원격부팅제어부는 설명한 예에 따르면 할당된 노드를 PXE 데몬으로 부팅되도록 하고 사용자가 선택한 운영체제를 DHCP 프로토콜 등을 통해 해당 할당 노드가 다운로드하여 수행하도록 한다.
실험수행을 위한 시스템 또는 노드가 사용자가 지정한 운영체제로 부팅되고 부팅이 완료되어 실험수행 환경이 설정된 경우, 제어부는 계산 환경 설정이 완료되었음을 클라이언트 컴퓨터로 전송한다(S70). 이 경우 클라이언트 컴퓨터의 웹 시스템이나 email 등으로 전송할 수도 있고 웹 시스템을 통해 사용자에게 표출되도록 할 수도 있다.
그러면, 사용자는 할당된 시스템에 ssh(secure shell) 등을 이용하여 실험수행모델을 제출하여 원격의 시스템을 로컬 시스템처럼 사용할 수 있다(S80).
사용자가 제어부를 통해 동적 계산 환경을 설정한 경우, 사용자는 설정된 동적 계산 환경을 아래의 설명하는 방식에 따라 실험모델 수행을 중단시켜 반환할 수 있다.
(1) 터미네이트(Terminate)
실험모델의 수행이 모두 종료된 경우, 사용자는 제어부를 통해 "Terminate"의 제어명령을 선택하거나 그 제어명령을 서버자원부로 전송하여 동적 계산 환경 설정에 따라 할당받은 노드를 서버자원부로 다시 반환할 수 있다. 이 경우 동적 계산 환경 설정에 따라 할당받은 노드 해당 실험모델 수행과 관련된 데이터 등을 메모리 또는 데이터관리부에서 삭제한 후 서버자원부로 반환될 수 있다.
(2) 스웹 아웃(Swap out)
사용자가 제어부를 통해 실험모델 수행을 잠시 중단하고 실험모델에 사용된 자원을 서버자원부로 잠시 반납하고자 할 경우, 사용자는 제어부를 통해 “swap out"의 제어명령을 선택하거나 그 제어명령을 서버자원부로 전송할 수 있다.
사용자가 실험모델 수행을 재수행하고자 할 경우 제어부를 통해 “swap in”의 제어명령을 선택하거나 그 제어명령을 서버자원부로 전송할 수 있다. 그러한 경우 다시 할당되는 노드는 종래의 노드이거나 또는 임의의 노드일 수도 있지만, 종래에 설정된 계산 환경은 동일한 환경이 설정되어 이전의 계산 환경이 그대로 유지되도록 할 수 있다.
(3) 익스파이어 아웃(Expire out)
사용자의 계산 환경 설정에 따라 실험모델 수행에 사용된 노드는 환경 설정시 주어진 시간이 경과하면 자동으로 스웹 아웃되어 모델 수행에 참여한 노드는 서버자원부의 프리 풀(free pool)로 반납된다. 최초 계산 환경 설정시 설정된 사용 기간에 의해 계산 환경을 사용하는 시간은 서버자원부에서 자동으로 계산될 수 있다. 위에서 설명한 바와 같이 스웹 인(swap in)을 통해 노드가 다시 할당될 수 있고, 터미네이트(terminate)를 통해 실험모델 수행 완료시 할당되었던 노드가 서버자원부로 반납된다.
위와 같이 실험모델 수행이 중단되는 경우에는 디스크 이미지 기법을 이용하여 설정된 계산 환경의 중단 시 최종 상태를 저장할 수 있다. 그리고 스웹 인(swap in)과 같이 실험이 다시 재개되는 경우 해당 이미지가 다시 할당된 노드에 제공되고, 실험모델은 중단 시 최종 상태부터 수행 결과를 생성할 수 있다. 한편 실험모델 수행이 중단된 경우라도 사용자는 실험모델 중단시 데이터관리부에 저장된 모델 수행 데이터를 접근할 수 있다. 사용자는 실험모델 수행이 재개되거나 실험모델 수행이 종료된 경우라도 해당 실험모델 수행 결과는 데이터관리부에 저장되기 때문에 데이터관리부에 수행된 데이터에 접근할 수 있다.
도 3은 본 발명의 실시예에 따라 사용자가 동적 계산 환경을 설정한 경우,할당받은 시스템의 이벤트에 따른 스테이트(state) 천이를 예시한 도면이다.
동적 계산 환경이 설정된 경우, 설정된 계산 환경에 포함되는 시스템은 4개의 상태(state) 중 어느 하나의 상태에 있을 수 있다.
시스템 오프(Sys. off)는 할당받은 동적 계산 환경 시스템이 전원 오프된 상태로서 디폴트 상태를 의미한다.
시스템 부팅(Sys. booting)은 할당받은 동적 계산 환경 시스템이 부팅되는 상태를 나타낸다.
시스템 액티브(Sys. active)는 할당받은 동적 계산 환경 시스템이 실험모델 수행 등의 계산 수행 작업을 진행하는 상태를 나타낸다.
시스템 아이들(Sys. Idle)은 할당받은 동적 계산 환경 시스템이 어떤 작업도 하지 않는 상태를 나타낸다.
스테이트 천이를 일으키는 이벤트는 다음과 같다.
Start_exp. 이벤트는 실험모델을 수행하기 위해 시스템을 시작하는 이벤트로서, 시스템 오프 상태를 시스템 부팅 상태로 천이하도록 한다.
Swap_in 이벤트는 중단된 실험모델을 수행을 재시작하는 이벤트로서, 시스템 오프 상태를 시스템 부팅 상태로 천이하도록 하는 이벤트이다.
fail_boot 이벤트는 부팅 실패를 나타내는 이벤트로서, 시스템 부팅 상태를 시스템 오프 상태로 천이하도록 할 수 있다.
success_boot 이벤트는 부팅 성공 시 이벤트로서, 시스템 부팅 상태를 시스템 액티브 상태로 천이하도록 할 수 있다.
idle_overTime 이벤트는 일정 시간동안 할당된 시스템 동작 없음을 감지하는 경우 발생하는 이벤트로서 시스템 액티브 상태로부터 시스템 아이들 상태 천이하도록 한다.
do_anything 이벤트는 할당된 시스템이 어떤 동작을 수행하는 경우의 이벤트로서 시스템 아이들 상태를 시스템 액티브 상태로 천이하도록 할 수 있다.
expire_out 이벤트는 사용자가 동적 계산 환경 설정시 설정한 실험 시간 종료를 나타내는 이벤트로 시스템 아이들 상태 또는 시스템 액티브 상태로부터 시스템 오프 상태로 천이하도록 한다.
swap_out 이벤트는 사용자가 제어부를 통해 명시적으로 동적 계산 환경에 할당된 노드의 모델 수행을 잠시 중단하도록 하는 이벤트로서, 시스템 아이들 상태 또는 시스템 액티브 상태로부터 시스템 오프 상태로 천이하도록 한다.
terminate 이벤트는 사용자에 의한 명시적 실험 종료를 나타내는 이벤트로서, 시스템 아이들 상태 또는 시스템 액티브 상태로부터 시스템 오프 상태로 천이하도록 한다.
위에서 동적 계산 환경을 설정하기 위한 장치 또는 방법에 관련된 본 발명의 실시예를 개시하였다. 본 발명의 실시예는 동적으로 계산 환경을 할당하도록 하는 것으로서, 종래의 RISC 컴퓨터 등에서 2개 이상의 운영체제가 공통의 프로그램에 의해 제어되고, 복수의 다른 운영 체제가 동시에 동일 컴퓨터 환경에서 구동되는 것과 기술적으로 차별된다. 예를 들어 본 발명의 실시예는 사용자가 원하는 계산 환경을 할당받고 그 할당받은 계산 환경을 사용자가 선택한 운영체제로 부팅하고 운영되게 하는 특징을 포함하기 때문에 RISC 컴퓨터 등에서 복수의 운영체제를 제어하고 동시에 운영되는 것과 다른 특징을 갖는다.
한편 종래에 물리적 하드웨어에 가상의 운영체제를 실행시키고, 이 가상의 운영체제를 처리할 수 있는 가상의 서버(virtual machine)를 할당하도록 하는 기술도 있다. 하지만, 본 발명의 실시예는 특정 물리적 하드웨어에 대해 원격으로 전원을 온/오프하는 특징을 가지기 때문에 가상의 운영체제 또는 가상의 서버를 할당하는 방식과 다른 특징을 갖는다.
한편 도 1에서 예시한 제어부(100)가 포함하는 실험제어부(110), 전원제어부(120), 및 원격부팅제어부(130)는 각각 별개의 기능 블록으로 구현될 수도 있지만, 위에서 설명한 기능을 수행하는 프로그램 또는 애플리케이션 등으로 구현될 수도 있다. 이러한 경우 프로그램 또는 애플리케이션은 도 1에서 예시한 실험제어부(110), 전원제어부(120), 및 원격부팅제어부(130)의 기능을 구현할 수 있다.
위에서 설명한 바와 같이 예를 들어 제어부(100)는 실험모델을 제출하거나, 실험모델 수행을 제출, 중단 또는 종료시키는 기능을 수행할 수 있고, 사용자가 할당받은 계산 환경 자원에 전원을 인가시키거나 전원을 사이클시키고, 사용자가 원하는 운영체제로 할당받은 계산 환경이 부팅될 수 있도록 하는 프로그램 또는 애플리케이션을 저장하는 저장매체를 포함할 수 있다.
따라서, 본 발명의 실시예에 따르면, 사용자가 원격으로 동적인 연구 컴퓨팅 환경을 구성하거나 설정할 수 있고, 사용자가 설정한 연구 컴퓨팅 시스템에 사용자에게 사용 및 관리 권한을 위임할 수 있고, 수행 시스템의 전원 온/오프와 상관없이 사용자에게 상시적으로 데이터 접근이 가능하도록 할 수 있다.
또한, 본 발명의 실시예에 따르면 사용자는 자신에게 적합한 컴퓨팅 환경을 구축하기 위해 별도의 시스템을 구비하거나 고대역폭 네트워크를 구비 또는 임대할 필요가 없어 비용과 노력을 절감할 수 있다.
100: 제어부
110: 실험제어부
120: 전원제어부
130: 원격부팅제어부
200: 서버자원부
300: 데이터관리부

Claims (12)

  1. 사용자의 실험모델 수행에 필요한 컴퓨터 시스템의 환경을 설정하기 위한 변수를 입력받고, 상기 변수에 따라 컴퓨터 시스템의 환경 설정을 위한 제어정보 또는 제어명령을 출력하는 제어부;
    복수의 컴퓨팅 노드들을 포함하고 상기 제어부가 출력하는 제어정보 또는 제어명령에 따라 상기 복수의 컴퓨팅 노드들 중 상기 실험모델 수행을 위한 컴퓨팅 노드를 상기 사용자에 할당하는 서버자원부; 및
    상기 사용자의 권한 설정에 따라 상기 사용자가 접근 가능하도록 제어되고, 상기 서버자원부에 포함된 컴퓨팅 노드가 계산한 결과 데이터를 저장하는 데이터관리부;를 포함하는 동적 계산 환경을 설정하기 위한 장치로서,
    상기 제어부는,
    상기 컴퓨팅 노드가 상기 사용자가 선택한 운영체제로 부팅되도록 제어하는 원격부팅제어부를 더 포함하고, 상기 원격부팅제어부는 상기 실험모델이 상기 서버자원부에서 중단된 경우 상기 서버자원부가 중단한 상기 실험모델의 중단 시 실험환경 이미지를 수신하여 저장하고, 상기 서버자원부가 상기 실험모델 수행을 재개하는 경우 상기 저장한 실험환경 이미지를 상기 서버자원부로 전송하는 것을 특징으로 하는 동적 계산 환경을 설정하기 위한 장치.
  2. 제 1항에 있어서,
    상기 제어부는,
    상기 실험모델을 상기 서버자원부에 제출하도록 하는 실험제어부; 및
    상기 할당된 컴퓨팅 노드에 전원을 인가하도록 제어하는 전원제어부를 더 포함하는 동적 계산 환경을 설정하기 위한 장치.
  3. 제 2항에 있어서,
    상기 실험제어부는,
    상기 실험모델이 상기 할당된 컴퓨팅 노드에서 수행시작 또는 수행중단 또는 수행종료하도록 하는 제어명령을 상기 서버자원부로 전송하는 것을 특징으로 하는 동적 계산 환경을 설정하기 위한 장치.
  4. 제 1항에 있어서,
    상기 데이터관리부는,
    상기 서버자원부의 네트워크 파일 시스템으로서 상기 서버자원부와 연결되는 동적 계산 환경을 설정하기 위한 장치.
  5. 제 2항에 있어서,
    상기 데이터관리부는,
    상기 사용자의 디렉토리를 생성하고, 상기 생성된 디렉토리에 상기 실험모델의 수행을 위한 입력 데이터 또는 수행 결과 데이터를 저장하는 것을 특징으로 하는 동적 계산 환경을 설정하기 위한 장치.
  6. 제어부가 복수의 원격의 컴퓨팅 노드들 중 사용자 실험모델 수행을 위해 사용 가능한 노드를 검색하고, 상기 검색 결과를 사용자의 클라이언트 컴퓨터로 전송하는 단계;
    상기 제어부는 상기 검색 결과에 따른 노드 중 선택된 노드에 전원을 인가하도록 제어하고, 상기 전원이 인가된 노드를 원격으로 사용자가 선택한 운영체제(operating system)로 부팅(booting)하는 단계;
    상기 제어부는 상기 선택한 운영체제로 부팅된 노드에 상기 실험모델을 제출하는 단계; 및
    상기 사용자가 선택한 운영체제로 상기 선택된 노드가 부팅될 경우,
    상기 선택된 노드는 DHCP(dynamic host configuration protocol)을 이용하여 상기 운영체제를 다운로드하는 단계;를 포함하는 동적 계산 환경을 설정하기 위한 방법.
  7. 제 6항에 있어서,
    상기 동적 계산 환경을 설정하기 위한 방법은,
    상기 사용자가 선택한 운영체제로 상기 선택된 노드가 부팅된 경우, 상기 제어부가 동적 계산 환경 설정이 완료되었음을 상기 사용자에게 전송하는 단계;를 더 포함하는 상기 동적 계산 환경을 설정하기 위한 방법.
  8. 사용자의 실험모델 수행에 필요한 컴퓨터 시스템의 환경을 설정하기 위한 변수를 입력받고, 복수의 원격의 컴퓨팅 노드들 중 상기 사용자의 실험모델 수행을 위해 사용 가능한 노드를 검색하고, 상기 검색 결과에 따른 노드 중 선택된 노드에 전원을 인가하도록 제어하고;
    상기 전원이 인가된 노드를 원격으로 사용자가 선택한 운영체제(operating system)로 부팅(booting)하도록 제어하고, 상기 선택한 운영체제로 부팅한 노드에 상기 실험모델을 제출하고, 상기 선택한 운영체제로 상기 선택된 노드가 부팅될 경우, 상기 선택된 노드는 DHCP(dynamic host configuration protocol)을 이용하여 상기 운영체제를 다운로드하는 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체.
  9. 제 8항에 있어서,
    상기 프로그램은,
    상기 실험모델의 수행이 중단된 경우 상기 중단 시 실험환경 이미지를 수신하여 저장하도록 하고, 상기 실험모델 수행이 재개하는 경우 상기 저장한 실험환경 이미지를 전송하도록 제어하는; 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체.
  10. 제 8항에 있어서,
    상기 프로그램은, 상기 실험모델이 상기 컴퓨팅 노드에서 수행시작 또는 수행중단 또는 수행종료하도록 하는 제어명령을 전송하는; 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체.
  11. 삭제
  12. 삭제
KR1020120083631A 2012-07-31 2012-07-31 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체 KR101468983B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120083631A KR101468983B1 (ko) 2012-07-31 2012-07-31 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120083631A KR101468983B1 (ko) 2012-07-31 2012-07-31 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체

Publications (2)

Publication Number Publication Date
KR20140027604A KR20140027604A (ko) 2014-03-07
KR101468983B1 true KR101468983B1 (ko) 2014-12-03

Family

ID=50641408

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120083631A KR101468983B1 (ko) 2012-07-31 2012-07-31 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체

Country Status (1)

Country Link
KR (1) KR101468983B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102227185B1 (ko) * 2014-10-20 2021-03-11 건국대학교 산학협력단 분산 플랫폼의 자동 구축 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100118357A (ko) * 2009-04-28 2010-11-05 인하대학교 산학협력단 분산 처리를 위한 시멘틱 컴퓨팅 기반의 동적 작업 스케줄링 시스템
KR20110034635A (ko) * 2008-07-17 2011-04-05 엘에스아이 코포레이션 가상화된 서버 플랫폼 상에서 부팅가능한 가상 스토리지 설비를 설치하는 시스템들 및 방법들
JP2011192194A (ja) * 2010-03-16 2011-09-29 Hitachi Solutions Ltd 仮想マシン制御システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110034635A (ko) * 2008-07-17 2011-04-05 엘에스아이 코포레이션 가상화된 서버 플랫폼 상에서 부팅가능한 가상 스토리지 설비를 설치하는 시스템들 및 방법들
KR20110053427A (ko) * 2008-07-17 2011-05-23 엘에스아이 코포레이션 가상화 서버 플랫폼상에 부팅가능한 가상 스토리지 설비를 부팅하기 위한 시스템들 및 방법들
KR20100118357A (ko) * 2009-04-28 2010-11-05 인하대학교 산학협력단 분산 처리를 위한 시멘틱 컴퓨팅 기반의 동적 작업 스케줄링 시스템
JP2011192194A (ja) * 2010-03-16 2011-09-29 Hitachi Solutions Ltd 仮想マシン制御システム

Also Published As

Publication number Publication date
KR20140027604A (ko) 2014-03-07

Similar Documents

Publication Publication Date Title
JP4842210B2 (ja) フェイルオーバ方法、計算機システム、管理サーバ及び予備サーバの設定方法
EP3183650B1 (en) Rapid suspend/resume for virtual machines via resource sharing
US9081612B2 (en) Virtual machine control method and virtual machine
US10193963B2 (en) Container virtual machines for hadoop
US7650490B2 (en) Embedded device for implementing a boot process on a host
US20130174151A1 (en) Information processing apparatus and method of controlling virtual machine
CN108089913B (zh) 一种超融合系统的虚拟机部署方法
US20080201709A1 (en) System and method for automated provisioning of FMware image instances
JP2007506169A (ja) 仮想マシンの始動を含むコンピューティング環境内の管理処理方法、管理システム、およびコンピュータプログラム
JP2012142012A5 (ko)
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP5770284B2 (ja) I/oスイッチの制御方法、仮想計算機の制御方法及び計算機システム
CN113196237A (zh) 计算系统中的容器迁移
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
KR101585160B1 (ko) 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법
CN101820387A (zh) 一种易扩展的快速机群部署方法
US20210200573A1 (en) Virtual Machine Live Migration Method And Communications Device
JP5493976B2 (ja) 情報処理装置、計算機システム及びプログラム
JP2008107966A (ja) 計算機システム
WO2017056310A1 (ja) 計算機および計算機の制御方法
KR101468983B1 (ko) 동적 계산 환경을 설정하기 위한 장치, 동적 계산 환경을 설정하기 위한 방법, 및 동적 계산 환경을 설정하기 위한 프로그램을 저장하는 저장매체
EP1611523B1 (en) Controlling usage of system resources by a network manager
JP5655612B2 (ja) 情報処理システム、情報処理方法、及び制御プログラム
TW201837731A (zh) 儲存實體資源的本地磁碟抹除機制
JP6051798B2 (ja) ファームウェア検証システム、ファームウェア検証方法およびファームウェア検証プログラム

Legal Events

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

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 5