KR100947136B1 - 소프트웨어의 증분 프로비져닝 - Google Patents

소프트웨어의 증분 프로비져닝 Download PDF

Info

Publication number
KR100947136B1
KR100947136B1 KR1020077007395A KR20077007395A KR100947136B1 KR 100947136 B1 KR100947136 B1 KR 100947136B1 KR 1020077007395 A KR1020077007395 A KR 1020077007395A KR 20077007395 A KR20077007395 A KR 20077007395A KR 100947136 B1 KR100947136 B1 KR 100947136B1
Authority
KR
South Korea
Prior art keywords
processing system
block
storage device
data
disk image
Prior art date
Application number
KR1020077007395A
Other languages
English (en)
Other versions
KR20070049237A (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 KR1020077007395A priority Critical patent/KR100947136B1/ko
Publication of KR20070049237A publication Critical patent/KR20070049237A/ko
Application granted granted Critical
Publication of KR100947136B1 publication Critical patent/KR100947136B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 프로세싱 시스템에 대한 소프트웨어의 증분 프로비져닝에 대한 방법 장치이다. 예를 들어, 프로세싱 시스템은 머신 액세스가능 매체와 통신하는데 있어 머신 액세스가능 매체 및 프로세서를 포함할 수 있다. 또한, 머신 액세스가능 매체에 인코딩된 명령어는 프로세싱 시스템으로 하여금, 프로세싱 시스템에서 사용자 세션동안 변경된 블록을 식별하는 쓰기 로그 파일에 적어도 부분적으로 기초하여, 프로세싱 시스템의 기억장치가 변경된 블록을 포함하는지를 자동으로 판단하도록 한다. 기억장치에서 적어도 하나의 변경된 블록을 식별하는 것에 대응하여, 프로세싱 시스템은 변경된 블록의 데이터를 다른 기억 장치로부터의 백업 데이터로 자동으로 교체할 수 있다. 다른 실시예가 기술되고 청구된다.
증분 프로비져닝(incremental provisioning), 쓰기 로그(write log), 원격 관리 시스템

Description

소프트웨어의 증분 프로비져닝{INCREMENTAL PROVISIONING OF SOFTWARE}
본 발명은 일반적으로 데이터 프로세싱 분야에 관한 것이며, 특히 프로세싱 시스템에 대한 소프트웨어의 증분 프로비져닝(incremental provisioning)에 관한 것이다.
데이터 프로세싱 시스템을 수동으로 설정하는 것은 시간이 많이 소모되는 일이다. 예를 들어, 특정 퍼스널 컴퓨터(PC)에 필요한 오퍼레이팅 시스템(OS), 드라이버, 및 사용자 어플리케이션을 인스톨하고 구성하는 것은 시간이 많이 걸린다.
특정 경우에서, 프로세스를 촉진시키기 위해 자동화(automation)가 사용될 수 있다. 예를 들어, 동일한 하드웨어를 가진 여러 개의 프로세싱 시스템이 동일한 소프트웨어 구성요소 및 구성을 수신한다면, 모델이 되는 하나의 시스템은 수동으로 원하는 소프트웨어로 로딩되고, 구성될 수 있다. 그리고 나서 모델 시스템의 디스크 이미지는, 다른 시스템에 모델 시스템과 동일한 소프트웨어 및 구성을 제공하기 위해, 이들 각각 시스템에 복사될 수 있다. 제공받는 프로세싱 시스템은 관리되는 시스템(managed system) 또는 관리되는 플랫폼(managed platform)으로 불리운다. 모델 이미지는 서버로서 동작하는 프로세싱 시스템에 저장될 수 있다. 각 관리되는 시스템은, 프리부트 실행 환경(preboot execution environment, PXE)에서 동작하고, 서버로부터 모델 이미지를 추출하여, 모델 이미지를 로컬 하드 디스크 드라이브에 로드하는 펌웨어를 포함할 수 있다. 그리고 관리되는 시스템은 로컬 하드 디스크 드라이브로부터 OS를 기동할 수 있다.
그러나, 이러한 모델 디스크 이미지는 쉽게 10기가바이트(GB)를 넘을 수 있다. 결과적으로, 개별적인 소프트웨어 구성요소를 수동으로 인스톨하고 구성하는 것이 불필요할지라도, 모델 디스크 이미지로부터 시스템을 프로비젼(provision)하는데에 엄청난 양의 시간이 필요하다.
한번 모델 이미지가 로딩되면, 이 이미지는 관리되는 시스템의 계속적인 사용에 의해 변경될 수 있다. 예를 들어, 사용자는 의도적으로 또는 우연히 구성 세팅을 변경하거나, 새로운 소프트웨어를 인스톨하거나, 시스템이 바이러스에 걸리게 할 수 있게 할 수 있거나, 아니면 원본 이미지를 변경할 수 있다. 이러한 변경은, 추후의 이용자를 위한 프로세싱 시스템의 기능에 역효과를 주거나, 또는 원하지 않는 결과를 가져올 수 있다.
하드 드라이브(HD) 보호 카드 또는 HD 복구 카드로 알려진, 두 유형의 어댑터 카드는, 하드 디스크 드라이버 상의 데이터가 변경되는 것을 막도록 설계된다. 제1 유형의 HD 보호 카드는 하드 디스크 드라이브를 비져블 파티션(visible partition) 및 히든 파티션(hidden partition)으로 나눈다. HD 보호 카드는 비져블 파티션으로 지정된 모든 IDE 쓰기 커맨드를 인터셉트(intercept)하고, 이 쓰기를 히든 파티션에 재지정한다. 히든 파티션에 쓰여진 데이터를 수반하는 계속적인 읽기도 역시 히든 파티션으로 재지정된다. 이와 달리, HD 보호 카드는 원본 데이 터를 비져블 파티션에서 히든 파티션으로 복사한 후에만, 쓰기 커맨드로 하여금 비져블 파티션 내의 데이터를 변경하도록 할 수도 있다.
HD 복구 카드가 이상과 같이 쓰기 트랜잭션(transation)을 처리하고 난 후, 사용자는 이 변경을 영구히 받아들일 것인지를 결정할 수 있다. 이와 달리, HD 복구 카드는, 프로세싱 시스템이 리부팅 될 때마다 원본 데이터로 복구하도록 하는 방침 세팅을 받아들일 수 있다. 예를 들어, 쓰기가 히든 파티션으로 재지정되면, HD 복구 카드는 리부팅 후에 히든 파티션 내의 데이터를 버리거나 무시할 수 있다. 만약, 원본 데이터를 히든 파티션에 복사한 후에 쓰기가 원본 파티션에 적용된다면, HD 복구 카드는 원본 데이터를 히든 파티션으로부터 비져블 파티션으로 복사한다.
난징 하드소프트(Nanjing HardSoft)로 알려진 중국 회사는 제2 유형 HD 보호 카드를 광고한다. 제1 유형 카드와 마찬가지로, 제2 유형 역시 원본 데이터 및 변경된 데이터 모두를 저장하기 위해 하드 드라이브 상의 공간을 이용한다. 그러나, 제2 유형의 카드는 이 디스크 드라이브 상의 히든 파티션을 필요로 하지 않을 수 있다. 대신에, 제2 유형의 카드는 단지 비져블 파티션의 이용되지 않은 블록을 활용할 수 있다.
두 유형의 카드는 변경 로그(log) 내의 변화를 추적할 수 있다. 변경 로그는 하드 드라이브 자체, 또는 HD 보호 카드에 탑재된 플래시 메모리 또는 다른 유형의 저장소에 저장될 수 있다.
두 가지 HD 보호 카드 유형 모두는 프로세싱 시스템의 실행시간 성능을 약 20% 감소시킬 수 있다. 예를 들어, 제1 위치의 원본 데이터를 변경하기 위한 쓰기가 허용되기 전에 원본 데이터가 하드 디스크 상의 제2 위치에 복사되는 경우, 및 읽기 및 쓰기가 재지정되는 경우에, 시스템 성능은 현저히 감소한다. 또한, 원본 데이터 및 변경된 데이터에 대해 하드 드라이브 상의 공간이 필요하므로, 사용자가 이용할 수 있는 하드 디스크 용량은 하드 디스크 실제 용량의 약 50%로 감소될 수 있다.
본 발명의 특징 및 장점은 첨부된 청구항 및 다음의 하나 이상의 실시예의 상세한 설명으로부터 명확해 질 것이며, 여기서
도 1은 본 발명의 특정 면이 구현된 적당한 데이터 프로세싱 환경의 일 실시예를 묘사하는 블록 다이어그램.
도 2는 본 발명의 일 실시예에 따라 증분 프로비져닝을 구현하는 프로세스를 도시한 흐름도.
도 3은 본 발명의 일 실시예에 따라 수행된 증분 프로비져닝 동작을 묘사하는 블록 다이어그램.
본 명세서는 소프트트웨의 증분 프로비져닝을 지원하는 방법 및 장치에 대한 하나 이상의 실시예를 설명한다. 이러한 방법 및 장치는, 종래 수단을 이용하여 가능한 것보다 더 빨리, 데이터 프로세싱 시스템, 또는 데이터 프로세싱 시스템 집합을 프로비젼하거나 리프로비젼(reprovision)하는데 사용될 수 있다.
도 1 및 다음의 논의는 본 발명의 특정 면이 구현될 수 있는 적당한 환경의 일반 설명을 제공하기 위한 것이다. 여기서 사용된 바와 같이, "프로세싱 시스템(processing system)" 및 "데이터 프로세싱 시스템(data processing system)" 용어는, 단일 머신, 또는 함께 동작하는 통신적으로 결합된 머신 또는 장치들의 시스템을 넓게 포함하도록 되어 있다. 예시적인 프로세싱 시스템은 제한없이, 분산 컴퓨팅(distributed computing) 시스템, 슈퍼컴퓨터, 컴퓨팅 클러스터, 메인프레임 컴퓨터, 미니-컴퓨터, 클라이언트-서버 시스템, 퍼스널 컴퓨터, 워크스테이션, 서버, 포터블(portable) 컴퓨터, 노트북, 태블릿(tablet) 프로세싱 시스템, 전화기, 개인용 디지털 보조기(PDA), 휴대용 장치, 오디오 및/또는 비디오 장치와 같은 오락장치, 및 정보를 프로세싱 또는 전송하기 위한 다른 장치를 포함한다.
도 1의 데이터 프로세싱 환경은, 예를 들어, 하나 이상의 버스(28) 또는 다른 통신 콘딧(conduit) 또는 통로를 통해 수많은 다른 구성요소에 통신적으로 결합된 중앙 처리 장치(CPU, 22) 또는 하나 이상의 프로세서를 포함하는 프로세싱 시스템(20)을 포함할 수 있다. 이러한 구성요소는 하나 이상의 휘발성 또는 비-휘발성 데이터 기억 장치, 이를 테면 랜덤 액세스 메모리(RAM, 24), 및 리드-온니 메모리(ROM, 25)를 포함할 수 있다. 본 명세서에서, "ROM" 용어는 소거 가능 프로그램 가능 ROM(EPROM), 전기적으로 소거 가능 프로그램 가능(programmable) ROM(EEPROM), 플래시 ROM, 플래시 메모리, 등과 같은 비-휘발성 메모리 장치를 언급하는데 일반적으로 사용될 수 있다. CPU(22)는 또한 대용량 기억 장치, 이를 테면 하나 이상의 집적화 드라이브 일렉트로닉스(IDE), 스몰 컴퓨터 시스템 인터페이스(SCSI) 또는 다른 유형의 하드 디스크 드라이브(40)에 통신적으로 결합될 수 있다. 프로세싱 시스템(20)에 의해 사용될 수 있는 다른 유형의 대용량 기억 장치 및 기억 매체는 플로피-디스크, 광 기억장치, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, 생물학적(biological) 기억장치 등을 포함한다.
프로세서(22)에 연결되는 구성요소는 하나 이상의 PCI 루트 브리지 및 하나 이상의 PCI-to-PCI 브리지를 포함할 수 있다. 상기 브릿지 및 버스의 하나 이상은, 프로세서(22)를 직접 또는 간접적으로 기억장치와 접속시키고, 추가적인 구성요소, 이를 테면 하나 이상의 입/출력(I/O) 장치, 포트 또는 컨트롤러(26)와 접속시키는데 사용될 수 있다. 이러한 장치는 비디오 컨트롤러, SCSI 컨트롤러, 네트워크 컨트롤러, 유니버설 시리얼 버스(USB) 컨트롤러, 키보드 컨트롤러 등을 포함할 수 있다. 일 실시예에서, 하나 이상의 장치는, 프로그램 가능 또는 프로그램 불가능 로직 장치 또는 어레이, 어플리케이션-특정 집적화 회로(ASIC), 임베디드 컴퓨터, 스마트 카드 등과 같은 구성요소를 사용하여 임베디드 컨트롤러로 구현될 수 있다. 예를 들어, PCI 루트 브리지는 시스템 뒤판(backplane) 또는 마더보드 상에 놓이는 임베디드 장치로 구현될 수 있다.
프로세싱 시스템(20)은, 적어도 부분적으로, 키보드(32), 마우스 등과 같은 기존의 입력 장치의 입력에 의해, 및/또는 하나 이상의 원격 데이터 프로세싱 시스템(50), 가상 실제(virtual reality, VR) 환경과의 상호작용, 바이오메트릭 피드백, 또는 다른 입력 소스나 신호로부터 수신한 지시(directive)에 의해 제어될 수 있다. 프로세싱 시스템(20)은, 디스플레이 장치(30), 원격 데이터 프로세싱 시스템(50) 등과 같은 구성요소에 출력을 보낼 수 있다. 원격 데이터 프로세싱 시스템(50)과의 통신은 임의의 적합한 통신 매체를 통해 이루어진다. 프로세싱 시스템들은 물리적 및/또는 로직 네트워크(36), 이를테면 로컬 영역 네트워크(LAN), 와이드 영역 네트워크(WAN), 인트라넷, 인터넷 등을 경유하여 상호접속될 수 있다. 네트워크(36) 수반 통신은, 무선 주파수(RF), 위성, 마이크로웨이브, 전기전자 기술자 협회(IEEE) 802.11, 블루투스(Bluetooth), 광, 적외선, 케이블, 레이져 등을 포함하는, 다양한 유선 및/또는 무선 단거리 또는 장거리 캐리어 및 프로토콜을 활용할 수 있다.
본 발명은, 머신에 의해 액세스되어, 머신이 작업을 수행하거나, 추상적인 데이터 유형 또는 로우-레벨 하드웨어 컨텍스트(context)를 정의하도록 하는 명령어, 기능, 절차, 데이터 구조, 어플리케이션 프로그램 등을 포함하는 관련 데이터로서도 기술될 수 있다. 이러한, 데이터는 일반적으로 소프트웨어로 불리우고, 이는 휘발성 및/또는 비-휘발성 데이터 저장소에 저장될 수 있다.
예를 들어, ROM(25)은, 프로세싱 시스템(20)이 부팅되었을 때 펌웨어 환경(44)을 구축하기 위한 펌웨어 명령어(70)를 포함할 수 있다. 다른 대안으로서, 펌웨어 명령어의 일부 또는 전부는 하나 이상의 원격 소스, 이를 테면 원격 데이터 프로세싱 시스템(50)으로부터 추출될 수 있다.
플랫폼 펌웨어 및 오퍼레이팅 시스템과 같은 상위-레벨 소프트웨어 간의 인터페이스 모델은 최근에 발표되었다. 이 모델은 확장가능 펌웨어 인터페이스(EFI)로 알려져 있다. 2002년 12월 1일의 EFI 사양(specification) 버전 1.10은 www.intel.com/technology/efi/main_specification.htm으로부터 얻을 수 있다. EFI 사양은 추가적인 펌웨어를 로딩하고 OS를 부팅하는데 사용하기 위해, 로우-레벨 플랫폼 펌웨어에 의해 제공되는 표준 인터페이스 및 구조 세트를 정의한다. EFI 모델에 기초한 플랫폼 프레임워크, 이를 테면 EFI에 대한 Intel® Platform Innovation Framework는 향후 수년 내에, 베이직 입/출력 시스템(BIOS)에 기초한 프레임워크를 대신하여, 데이터 프로세싱 시스템을 설계, 구축, 및 동작시키는 것에 대한 정선된 프레임워크가 될 것으로 예상된다. EFI에 대한 Intel® Platform Innovation Framework는, 오퍼레이팅 시스템 및 이의 로더(loader)에 대해 이용가능한 실행시간 서비스 콜 및 부트를 제공하는 로우-레벨 펌웨어를 포함한다. 본 발명의 일 실시예에서, 펌웨어 명령어(70)는 EFI 사양에 따라 동작한다.
펌웨어 명령어(70)는 OS(62)가 기동되기 전 부트 프로세스 동안 RAM(24)에 로딩되는 수많은 모듈을 포함할 수 있다. 이 펌웨어 모듈은 프로비져닝 모듈 또는 에이전트(agent, 58)를 포함할 수 있다. 프로비져닝 에이전트(58)는 증분 프로비져닝 에이전트(58)로 불릴 수 있다. 프로세싱 시스템(20)은 또한 쓰기 모니터링 모듈(46)을 포함할 수 있다. 일 실시예에서, 쓰기 모니터링 모듈(46)은 OS(62)의 부분, 예컨대 하드 디스크 드라이브와 같은 장치에 대한 읽기, 쓰기를 관리하기 위한 장치 드라이버(64)의 일부로서 구현된다. 이와 다른 실시예에서, 쓰기 모니터링 모듈(46)은 OS(62) 외부의 소프트웨어, 또는 하드웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있는바, 예컨대 도 1의 중심 부근의 점선 박스로 표시된 것처럼, 하드 디스크 드라이브(40)와 관련된 디스크 드라이브 컨트롤러(56)의 일부로서 구현될 수 있다. 프로비져닝 에이전트(58) 및 쓰기 모니터링 모듈(46)에 관한 추가적인 세부설명은 아래에서 기술된다.
도 2는 본 발명의 일 실시예에 따라, 증분 프로비져닝을 구현하기 위한 프로세스를 도시한 흐름도이다. 도시된 프로세스는 예를 들어 전원이 켜지거나 리셋된 후에 부트 프로세스를 시작하는 프로세싱 시스템(20)으로 시작할 수 있다. 부트 프로세스의 최초 단계는 단계(202)에 묘사된 바와 같이, 프리부트 실행 환경(PXE)을 수립하기 위해 펌웨어 명령어(70)를 로딩하고 실행하는 것을 포함할 수 있다. 단계(204)에서 표시된 바와 같이, 프로세싱 시스템은 프로비져닝 에이전트(58)를 RAM(24)에 로딩한다. 일 실시예에서, 프로세싱 시스템(20)은 원격 데이터 프로세싱 시스템(50)으로부터 프로비져닝 에이전트(58)를 얻는다. 프로비져닝 에이전트(58)는 프리부트 실행 환경에서 동작하도록 설계될 수 있다. 전송 제어 프로토콜(TCP) 드라이버와 같은 추가적인 구성요소 또한 로컬 또는 원격 소스로부터 얻어질 수 있다. 프로세싱 시스템(20)은 단계(206)에 표시된 바와 같이, 프로비져닝 에이전트(58)를 기동 또는 시작시킨다.
단계(210)에 표시된 바와 같이, 프로비져닝 에이전트(58)는 프로세싱 시스템(20)에 대한 디스크 쓰기 로그 파일(48)이 존재하는지를 결정한다. 디스크 쓰기 로그 파일(48)은 쓰기 로그(48) 또는 로그 파일(48)로도 불려진다. 아래에서 자세하게 기재된 것처럼, 쓰기 로그(48)가 존재한다면, 이는 하드 디스크 드라이브(40) 내의 어떤 블록이 변경되었는지를 식별하는 정보를 포함할 수 있다. 그러나, 쓰기 로그(48)가 존재하지 않으면, 프로비져닝 에이전트(58)는 프로세싱 시스템(20)이 아직 증분 프로비져닝을 지원하도록 구성되지 않았다고 결론지을 수 있고, 따라서 프로비져닝 에이전트(58)는 프로세싱 시스템(20)의 최초 프로비져닝을 수행할 수 있다. 예를 들어, 프로비져닝 에이전트(58)는 원격 프로세싱 시스템(50)으로부터 디스크 이미지를 얻을 수 있고, 단계(212)에 묘사된 바와 같이, 프로비져닝 에이전트(58)는 이 이미지를 프로세싱 시스템(20) 내의 하드 디스크 드라이브(40)에 로딩할 수 있다.
본 명세서에서, "디스크 이미지(disk image)" 용어는 서브젝트 드라이브(즉, 이미지가 도출되는 드라이브) 상의 데이터의 정확한, 바이트-포-바이트(byte-for-byte) 복사를 포함하거나 제공하는 데이터 이미지를 말한다. 예를 들어, 디스크 이미지는, NORTON GHOST 상표의 Symantec Corporation이 배포한 디스크 이미징 유틸리티와 같은 툴을 이용하여 만들어질 수 있다. 예를 들어, 디스크 이미지는 전체 물리적 하드 디스크 드라이브의 복사본, 로직 드라이브의 복사본, 또는 드라이브 파티션의 복사본을 제공하거나 구성할 수 있다.
도 1에 도시된 바와 같이, 실시예에서, 원격 프로세싱 시스템(50)은, 프로세싱 시스템(20)과 같은 플랫폼을 프로비젼하는데 사용되어야 하는 디스크 이미지의 복사본을 가지는 하나 이상의 기억장치를 포함할 수 있다. 이러한 이미지는 일반적으로 프로비젼가능한(provisionable) 소프트웨어(52)로 불리울 수 있다.
프로세싱 시스템(50)은 원격 관리 장치 또는 원격 관리 시스템 중 하나의 가능한 실시예로 고려될 수 있다. 프로비젼가능한 소프트웨어(52)의 내용은 프로세싱 시스템(20)에서의 동작에 의해 영향을 받지 않을 것이기 때문에, 프로비젼가능한 소프트웨어(52)는 프로세싱 시스템(20)의 최초 소프트웨어 내용의 백업 또는 아카이브 복사본으로 간주될 수 있다. 프로비젼가능한 소프트웨어(52)가 프로세싱 시스템(20)에 복사되면, 하드 디스크 드라이브(40)의 복사본은 프로비젼된(provisioned) 소프트웨어(42)로 불리울 수 있다. 따라서, 프로세싱 시스템(20)은 타깃 프로세싱 시스템(20), 관리되는 프로세싱 시스템(20), 또는 로컬 프로세싱 시스템(20)으로 불리울 수 있다. 예를 들어, 프로비젼된 소프트웨어(42)는 OS(62), 하나 이상의 사용자 어플리케이션(66)(예를 들어, 웹 브라우져 프로그램, 워드 프로세싱 어플리케이션, 등), 프로세싱 시스템(20) 내의 소프트웨어 및/또는 하드웨어에 대한 구성 세팅에 관한 정보, 및 다른 데이터를 포함할 수 있다.
도 2로 돌아가서, 원본 디스크 이미지를 가지는 프로비져닝 프로세싱 시스템과 함께, 프로비져닝 에이전트(58)는 단계(214)에 나타난 바와 같이 쓰기 로그(48)를 만들 수 있다. 일 실시예에서, 쓰기 로그(48)는 프로세싱 시스템(20)에 존재한다. 쓰기 로그(48)는 하드 디스크(40)나 EEPROM 또는 플래시 메모리와 같은 다른 비-휘발성 저장소에 존재할 수 있다. 다른 실시예에서, 도 1의 아래쪽에 점선으로 된 박스로 표시된 바와 같이, 쓰기 로그(48)는 프로세싱 시스템(20)의 바깥쪽 예컨대 원격 프로세싱 시스템(50)에 존재할 수 있다.
도 2의 단계(220)에서 묘사된 바와 같이, 쓰기 로그(48)를 만들거나 쓰기 로그(48)가 이미 실재한다는 것을 판단한 후에, 프로비져닝 에이전트(58)는, 쓰기 로그(48)가, 프로세싱 시스템(20)이 프로비젼된 마지막 시간 이래로, 하드 디스크 드라이브(40)의 임의의 블록이 변경되었다고 식별하는지 여부를 판단한다. 변경되었다고 식별된 블록은 오염 블록으로 불리울 수 있다. 만약 쓰기 로그(48)가 오염 블록을 하나도 식별하지 않으면, 프로비져닝 에이전트(58)는 프로비젼된 소프트웨어(42)가 프로비젼가능한 소프트웨어(52)와 매치한다고 결론지을 수 있고, 따라서 단계(226)에 표시된 바와 같이 프로세싱 시스템(20)으로 하여금 OS(62)를 부팅하게 한다. 일 실시예에서, OS(62)는 프로비젼된 소프트웨어(42)의 일 부분이다.
그러나, 만약 쓰기 로그(48)가 하나 이상의 오염 블록들을 식별하는 하나 이상의 항목(entry)를 포함하면, 단계(222)에 나타난 바와 같이 프로비져닝 에이전트(58)는 원격 프로세싱 시스템(50) 내의 프로비젼가능한 소프트웨어(52)로부터 상기 블록들 중 하나의 깨끗한 복사본을 얻고, 하드 디스크 드라이브(40) 내의 오염 블록을 깨끗한 블록으로 덮어쓴다. 단계(224)에서 프로비져닝 에이전트(58)는 쓰기 로그(48)를 업데이트해서, 쓰기 로그(48)는 더 이상 이 문제되는 블록이 오염되었다고 식별하지 않는다. 단계(224)에서 단계(220)으로 돌아가는 화살표에 의해 표시된 바와 같이, 프로비져닝 에이전트(58)는 원격 프로세싱 시스템(50)으로부터 깨끗한 블록을 계속 얻을 수 있고, 원본 내용이 각 오염 블록에 반환될 때까지 이 깨끗한 블록을 하드 디스크 드라이브(40) 내의 오염 블록에 복사한다.
일 실시예에서, 프로비져닝 에이전트(58)는, 원시적(original) 프로비져닝 동작 및 계속적인 증분 프로비져닝 동작을 손쉽게 하기 위해 EFI-컴플라이언트(compliant) 펌웨어 환경 내의 자체(native) 프로비져닝 기초구조를 활용한다. 다른 실시예에서, 다른 자원(resources)이 관리되는 프로세싱 시스템을 프로비젼 및/또는 점차적으로 재프로비젼하는데 사용될 수 있다.
프로비젼된 소프트웨어(42)가 원래 조건으로 복구되거나 깨끗하다고 판단되면, 단계(226)에 표시된 바와 같이, 프로비져닝 에이전트(58)는 프로세싱 시스템(20)으로 하여금 OS(62)를 부팅시키도록 한다. 프로세싱 시스템(20)이 OS(62)를
부팅시키면, 쓰기 모니터링 모듈(46)은 하드 디스크 드라이브(40)에 어드레스된 모든 쓰기 커맨드를 모니터링하기 시작할 수 있다. 단계(230 및 232)에서 표시된 바와 같이, 쓰기 모니터링 모듈(46)이 하드 디스크 드라이브(40)에 어드레스된 쓰기 커맨드를 탐지할 때마다, 쓰기 모니터링 모듈(46)은, 변경되거나 쓰여지는 블록을 식별하기 위해 쓰기 로그(48)가 엔트리를 포함하도록 한다.
예를 들어, 쓰기 모니터링 모듈(46)이 각각의 블록이 오염된 것으로 기록되는지를 적절히 표시하도록 비트를 설정하여, 쓰기 모니터링 모듈(46)이 하드 디스크 드라이브(40) 내의 블록에 대응하는 비트 맵(bit map)을 유지할 수 있다. 따라서, 쓰기 모니터링 모듈(46)은, 어드레스된 블록이 비트맵에서 오염된 것으로 플래그되지 않을 때에만 쓰기 로그(48)를 업데이트 할 수 있다. 성능을 높이기 위해, 비트맵은 RAM(24)에 위치할 수 있다. 임의의 변경을 놓치지 않기 위해, 쓰기 동작이 실행되기 전 및/또는 비트맵이 업데이트 되기 전에 로깅(logging) 동작이 완료될 수 있다. 로깅 동작을 완성하는데 필요한 시간을 최소화하기 위해, 로그는 더 빠른 기억 매체, 이를 테면 일부 전용 하드웨어 장치 상의 레지스터에 저장될 수 있다. 다른 대안으로서, 원격 프로세싱 시스템에 유지되는 쓰기 로그에 대해, 원격 시스템으로의 고속의 신뢰성 있는 접속이 로그 업데이트를 전송하기 위해 사용될 수 있다.
도 1에 대해, 화살표(80 및 82)는, 프로비져닝 에이전트(58)가 원격 프로세싱 시스템(50)으로부터 프로세싱 시스템(20) 내의 프로비젼된 소프트웨어(42)를 로딩하고 복구(restore)하기 위해 필요한 데이터를 추출하는 것을 도시한다. 프로비져닝 및 리프로비져닝(reprovisioning) 동작은 따라서 펌웨어 환경(44) 내에서 완전히 또는 주로 관리될 수 있다. 더욱이, 프로비져닝 및 리프로비져닝 동작은, 이 동작이 로컬 또는 원격 쓰기 로그(48)에 따라 관리됨으로써 완전히 자동화될 수 있다. 화살표(84 및 86)는 쓰기 모니터링 모듈(46)이 OS(62)에 의해 변경된 하드 디스크 드라이브(40) 내의 블록을 식별하기 위해 쓰기 로그(48)를 업데이트하는 것을 도시한다.
도 3은 본 발명의 일 실시예에 따라 수행된 증분 프로비져닝 동작을 묘사하는 블록 다이어그램이다. 본 명세서에서, 도 3은 하드 디스크 드라이브(40) 내의 10개의 개별 블록, 및 원격 프로세싱 시스템(50)에서 모델 이미지(52) 내의 10개의 대응하는 블록을 묘사한다. 프로세싱 시스템(20)에서 블록 A 및 B내의 빗금은, 이 두 블록이 쓰기 로그(48)에서 오염된 것으로 식별되었다는 것을 의미한다. 원격 프로세싱 시스템(50)에서, 대응하는 블록 A 및 B에 도시된 점들은, 이 블록들이 타깃 프로세싱 시스템(20)의 블록 A 및 B에 원시적으로(originally) 프로비젼된 내용의 백업 복사본을 가진다는 것을 표시한다. 화살표(110A 및 110B)는, 프로비져닝 에이전트(58)가 프로세싱 시스템(20)에서 실행할 때, 프로비져닝 에이전트(58)가 오염 블록 A 및 B의 변경된 내용을 원격 프로세싱 시스템(50) 내의 기억 장치(54)의 깨끗한 내용으로 바꿀 것이라는 것을 표시한다.
또한, 도 3에서, 빗금쳐져 있지 않은 하드 디스크 드라이브(40) 내의 블록은 프로비젼 되고, 여전히 깨끗한 블록을 나타낸다. 결과적으로, 도시된 실시예에서, 프로비져닝 에이전트(58)는 하드 디스크 드라이브(40)의 블록 A 및 B만을 덮어쓴다. 따라서 프로세싱 시스템(20)은, 전체 디스크 이미지를 프로비젼하는데 필요한 시간의 일부에서 리프로비젼될 수 있다. EFI-컴플라이언트 플랫폼에서 구현된 경우, 본 발명은 네트워크된 환경에서 EFI-기반 증분 프로비져닝을 제공할 수 있다. 예를 들어, 본 발명은 증분 데이터 집단(collection) 및 회복을 제공할 수 있다.
일 실시예에서, OS(62)는 블록 또는 블록 주소의 참조에 의해 하드 디스크 드라이브(40)를 어드레스한다. 예를 들어, 하드 디스크 드라이브(40) 내의 각 블록은 고유한 로직 블록 주소(LBA)에 의해 식별될 수 있다. OS(62)는 이 LBA를 하드 디스크 드라이브(40)를 지정하는 쓰기 커맨드에 사용할 수 있고, 쓰기 모니터링 모듈(46)은 쓰기 로그(48)에서 오염 블록을 식별하기 위해, 이 LBA, 또는 이 LBA에 기초한 값을 사용할 수 있다. 다른 실시예에서, 관리되는 프로세싱 시스템의 소프트웨어 구성을 가지고 있는 대용량 기억 장치는 다른 유형의 저장소 서브디비전(subdivision)을 사용할 수 있고, 관리되는 프로세싱 시스템의 오퍼레이팅 시스템은 다른 유형의 주소 또는 색인의 참조에 의해 기억장치를 어드레스할 수 있으며, 쓰기 모니터링 모듈은 어느 블록 또는 서브디비전이 변경되었는지를 추적하기 위해 다른 유형의 색인 또는 주소를 사용할 수 있다.
일 실시예에서, 플랫폼 펌웨어는 파일 시스템 드라이버를 필요로 하지 않는다. 또한, 본 명세서의 교시 내용은, 제한없이, 임의의 적합한 파일 시스템, 파일 할당 테이블(FAT) 파일 시스템, NT 파일 시스템(NTFSs), 및 미래 파일 시스템들을 사용하는 기억장치를 관리하는데 사용될 수 있다. 이러한 파일 시스템은 플랫폼 펌웨어의 파일 시스템 드라이버를 필요로 하지 않고도 지원될 수 있다. 교시 내용은 관리되는 프로세싱 시스템의 임의의 추가적인 하드웨어 구성요소 없이도 구현될 수 있다.
본 명세서의 교시내용은, 원본 소프트웨어 구성으로 복구되어야 하는 프로세싱 시스템을 포함하는 임의의 환경에서 이득을 얻는데 사용될 수 있다. 예를 들어, 사적 또는 공적 주체 또는 조직은 각 사용자가 활용하도록 수많은 프로세싱 시스템들을 배치하고 싶어할 수 있다. 이러한 프로세싱 시스템들 모두는 동일하거나 실질적으로 유사한 하드웨어 구성을 가질 수 있으며, 상기 프로세스는 이 시스템들 각각에 중앙 서버 또는 서버 그룹으로부터 동일한 소프트웨어 구성을 제공하는데 사용될 수 있다.
최초 소프트웨어 구성이 로딩된 후에, 복수의 사용자들은 관리되는 프로세싱 시스템들을 활용할 수 있다. 예를 들어, 제1 사용자는 시스템들 중 하나를 사용할 수 있고, 제2 사용자는 이와 동일한 시스템을 사용할 수 있다. 본 명세서에서, 사용자에 의해 프로세싱 시스템과 상호작용하는데 소요되는 시간은 사용자 세션, 또는 상호작용 세션으로 불리울 수 있다. 사용자 세션은 프로세싱 시스템을 리셋 또는 리부팅하여 종료되거나, 임의의 다른 적합한 이벤트에 의해 종료될 수 있다. 제1 사용자가 시스템과 상호작용하고 있을 때 소프트웨어 구성에 임의의 변화가 일어나는 경우, 제1 사용자가 자신의 상호작용 세션을 끝낸 후 및 제2 사용자가 자신의 세션을 시작하기 전에 시스템은 리부팅될 수 있다. 본 명세서의 교시 내용에 따라, 리부팅 프로세스 동안 원본 내용은 시스템의 임의의 변경된 저장소 블록에 자동적으로 저장될 수 있다. 예를 들어, 변경된 블록은 OS가 하나의 사용자 세션에 대해 종료한 후 및 OS가 다음 사용자 세션에 대해 다시 시작되기 전에 저장될 수 있다. 따라서 원하는 소프트웨어 구성은 다음 세션의 사용자와의 상호작용에 대비하여 빠르게 시스템에 저장될 수 있다.
예를 들어, 만약 조직이 프로세싱 시스템이 일반 대중에 의해 사용되는 수많은 인터넷 카페를 준비하고자 한다면, 각 사용자 세션 사이의 각 프로세싱 시스템을 단지 리부팅함으로써 각 프로세싱 시스템을 원본 소프트웨어 구성으로 빠르게 복구하는데 본 교시 내용이 사용될 수 있다. 일 실시예에 따라, 증분 프로비져닝을 이용하여, 한 사용자가 체크 아웃한 후 다음 사용자가 체크 인하기 전까지 2분 이내로 디스크 이미지를 복구하는 것이 가능할 수 있다. 동일한 방법 모델이 교육 분야 및 다른 공공 및 민간 조직에 사용될 수 있다.
본 명세서에 기술되고 설명된 원리 및 실시예에 비추어, 설명된 실시예는 이 원리를 벗어나지 않는 한도 내에서 자세하고 정돈되게 변경될 수 있다. 예를 들어, 설명을 목적으로 하나 이상의 실시예가 기술되어 있지만, 하드 디스크 드라이브에 증분적으로 프로비젼되어야 하는 소프트웨어에 관하여, 이와 다른 실시예는, 타깃 플랫폼 상의 특정 환경을 구축하는 것과 관련된 소프트웨어, 구성데이터, 또는 다른 정보가 임의의 적합한 유형의 대용량 기억장치에 증분적으로 프로비젼되는 실시예를 포함한다.
또한, 다른 대안의 실시예는 관리 서버의 모델 디스크 이미지를, 소프트웨어 또는 구성 세팅에 대한 업데이트와 같은 변화를 통합하는 새로운 모델 이미징으로 교체하는 것을 수반할 수 있다. 관리 서버는 새로운 모델 이미지, 또는 이 이미지의 변경된 부분을 관리되는 클라이언트에 밀어 넣는다. 그리고 업데이트된 이미지를 유지하기 위해, 도 2에 관하여 상기 기술된 것과 같이 클라이언트가 백업 데이터의 전송을 개시하는 프로세스를 이용하여, 클라이언트는 증분 리-프로비져닝을 활용할 수 있다.
상기의 논의가 특정 실시예에 초점을 맞추었지만, 다른 구성도 고려할 수 있다. 특히, "일 실시예에서," "다른 실시예에서" 또는 이와 유사한 것과 같은 표현이 사용되지만, 이러한 구문은 일반적으로 참조 실시예 가능성을 의미하는 것이고, 측정 실시예 구성에 발명을 한정시키려는 것이 아니다. 본 명세서에서 사용된 바와 같이, 이러한 용어는 다른 실시예와 결합할 수 있는 동일 또는 다른 실시예를 인용할 수 있다.
마찬가지로, 특정 순서로 수행되는 특정 동작과 관하여 예시 프로세스들이 기술되어 있지만, 당업자라면 프로세스에 수많은 변경을 가하여 본 발명의 수많은 대안 실시예를 끌어낼 수 있다. 예를 들어, 대안 실시예는 기재된 동작 모두보다 더 적은 것을 이용하는 프로세스, 추가적인 동작을 이용하는 프로세스, 다른 순서로 동일한 동작을 이용하는 프로세스, 및 기재된 개별 동작이 조합되거나, 나누어지거나, 또는 변경된 프로세스를 포함할 수 있다.
본 발명의 대안 실시예는 또한 본 발명의 동작을 수행하기 위한 머신 액세스가능 매체 인코딩 명령어를 포함할 수 있다. 이러한 실시예는 프로그램 제품으로 불리울 수 있다. 이러한 머신 액세스가능 매체는, 제한 없이, 플로피 디스크, 하드 디스크, CD-ROM, ROM, 및 RAM과 같은 기억 매체 뿐만 아니라 안테나, 와이어, 광섬유, 마이크로웨이브, 라디오 웨이브, 및 다른 전자기 또는 광 캐리어와 같은 통신 매체를 포함할 수 있다. 따라서, 명령어 및 다른 데이터는 전송 환경 또는 네트워크를 통해 패킷, 시리얼 데이터, 패러랠(parallel) 데이터, 전파된 신호, 등의 형태로 전달될 수 있고, 분포된 환경에 사용되고 단일 또는 멀티-프로세서 머신에 의한 액세스에 대해 지역적으로 및/또는 원격으로 저장될 수 있다.
본 명세서에 기재된 하드웨어 및 소프트웨어 구성요소는 합리적으로 독립적인 기능 요소들을 의미하므로, 각각은 다른 것들과 실질적으로 관계없이 설계되거나, 구성되거나, 업데이트될 수 있다. 대안 실시예로, 많은 구성요소들을 본 명세서에 기재되고 설명된 기능성을 제공하기 위해 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현될 수 있다.
본 명세서의 실시예로부터 쉽게 이끌어낼 수 있는 수많은 유용한 치환에 비추어, 본 명세서는 예시적인 것에 불구하고, 본 발명의 범위를 제한하는 것으로 고려되어서는 안된다. 따라서 발명으로서 청구되는 것은 다음의 청구항의 범위 및 사상 내에서 나오는 모든 구현이고 이러한 구현과 균등한 모든 것들이다.

Claims (29)

  1. 디스크 이미지를, 원격 관리 시스템(remote management system)의 기억장치에 저장된 모델 디스크 이미지로부터, 관리되는 플랫폼(managed platform)의 하드 디스크 드라이브로 복사하는 단계;
    상기 관리되는 플랫폼의 사용자 세션(session) 동안, 상기 관리되는 플랫폼의 오퍼레이팅 시스템으로부터의 쓰기 커맨드(write command)를 모니터링하는 단계;
    상기 하드 디스크 드라이브의 임의의 블록을 어드레스하는 상기 오퍼레이팅 시스템으로부터의 쓰기 커맨드를 검출하는 것에 응답하여, 상기 쓰기 커맨드에 의해 어드레스되는 상기 블록을 식별하기 위해 쓰기 로그(write log)를 자동으로 업데이트하는 단계;
    상기 사용자 세션의 완료 후에, 적어도 상기 쓰기 로그에 부분적으로 기초하여, 상기 하드 디스크 드라이브의 하나 이상의 블록이 변경되었는지를 자동으로 판단하는 단계; 및
    상기 하드 디스크 드라이브의 적어도 하나의 블록이 변경되었다는 판단에 응답하여, 상기 모델 디스크 이미지를 저장하는 상기 기억장치의 대응되는 블록을 식별하는 단계; 및 상기 변경된 블록을 상기 모델 디스크 이미지를 저장하는 상기 기억 장치의 상기 대응되는 블록으로부터의 대응하는 백업 데이터로 덮어씀으로써, 상기 관리되는 플랫폼의 부트(boot) 프로세스 동안 상기 변경된 블록에 대한 원본 내용을 자동으로 복구(restore)하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    관리되는 플랫폼의 하드 디스크 드라이브에 디스크 이미지를 복사하는 상기 단계는
    상기 관리되는 시스템의 부트 프로세스 동안 상기 원격 관리 시스템으로부터 상기 디스크 이미지를 상기 관리되는 플랫폼에 자동으로 로딩함으로써, 관리되는 플랫폼에 소프트웨어를 프로비져닝(provisioning)하는 단계
    를 포함하는 방법.
  3. 제1항에 있어서,
    상기 디스크 이미지는 디스크 파티션의 이미지를 포함하는 방법.
  4. 제1항에 있어서,
    상기 원격 관리 시스템으로부터 상기 변경된 블록의 원본 내용을 복구하기 전에 상기 관리되는 플랫폼의 오퍼레이팅 시스템을 종료하는 단계
    를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 모델 디스크 이미지로부터 상기 변경된 블록의 원본 내용을 복구한 후 에, 상기 관리되는 플랫폼의 오퍼레이팅 시스템을 기동하는 단계
    를 더 포함하는 방법.
  6. 플랫폼의 사용자 세션 중에, 상기 플랫폼내의 기억장치의 블록을 어드레스하는 쓰기 커맨드에 응답하여, 상기 쓰기 커맨드에 의해 어드레스된 상기 블록을 식별하기 위해 쓰기 로그를 자동으로 업데이트하는 단계;
    상기 사용자 세션의 완료 후에, 상기 쓰기 로그에 적어도 부분적으로 기초하여, 상기 기억장치의 하나 이상의 변경된 블록을 자동으로 식별하는 단계; 및
    상기 기억장치에서 적어도 하나의 변경된 블록을 식별한 것에 응답하여, 다른 기억장치의 대응되는 블록을 식별하는 단계; 및 상기 변경된 블록의 데이터를 상기 다른 기억장치의 상기 대응되는 블록으로부터의 백업데이터로 자동으로 교체하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서,
    상기 사용자 세션에 앞서, 상기 다른 기억장치에 저장된 모델 디스크 이미지로부터 상기 플랫폼의 기억장치에 디스크 이미지를 복사함으로써 상기 플랫폼에 소프트웨어를 프로비져닝하는 단계
    를 더 포함하는 방법.
  8. 제7항에 있어서,
    상기 디스크 이미지를 복사하는 단계는, 원격 데이터 프로세싱 시스템으로부터 상기 디스크 이미지를 복사하는 단계를 포함하는 방법.
  9. 제6항에 있어서,
    상기 플랫폼의 기억장치는 하드 디스크 드라이브를 포함하는 방법.
  10. 제6항에 있어서,
    상기 변경된 블록의 데이터를 다른 기억장치로부터의 백업 데이터로 자동으로 교체하는 상기 단계는,
    상기 변경된 블록을 모델 디스크 이미지로부터의 대응하는 백업 데이터로 덮어씀으로써, 상기 플랫폼의 부트 프로세스 동안 상기 변경된 블록을 자동으로 복구(restore)하는 단계
    를 포함하는 방법.
  11. 제6항에 있어서,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체하기 전에 상기 플랫폼의 오퍼레이팅 시스템을 종료하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체한 후에 상기 플랫폼의 오퍼레이팅 시스템을 기동하는 단계
    를 더 포함하는 방법.
  13. 머신 액세스가능(machine accessible) 매체; 및
    상기 머신 액세스가능 매체 내에 인코딩된 명령어를 포함하는 장치로서, 상기 명령어는, 프로세싱 시스템에 의해 실행되는 경우,
    상기 프로세싱 시스템의 사용자 세션 동안, 상기 프로세싱 시스템의 기억장치의 블록을 어드레스하는 쓰기 커맨드에 응답하여, 상기 쓰기 커맨드에 의해 어드레스된 블록을 식별하기 위해 쓰기 로그를 자동으로 업데이트하는 단계;
    상기 사용자 세션의 완료 후, 상기 쓰기 로그에 적어도 부분적으로 기초하여, 상기 기억장치의 하나 이상의 변경된 블록을 자동으로 식별하는 단계; 및
    상기 기억장치의 적어도 하나의 변경된 블록을 식별한 것에 응답하여, 다른 기억장치의 대응되는 블록을 식별하는 단계; 및 상기 변경된 블록의 데이터를 상기 다른 기억장치의 상기 대응되는 블록으로부터의 백업 데이터로 자동으로 교체하는 단계
    를 포함하는 동작을 수행하는 장치.
  14. 제13항에 있어서,
    상기 명령어는, 상기 프로세싱 시스템이 오퍼레이팅 시스템으로 부팅되기 전에 실행되는 펌웨어 명령어를 포함하는 장치.
  15. 제13항에 있어서,
    상기 명령어는,
    상기 사용자 세션에 앞서, 상기 다른 기억장치에 저장된 모델 디스크 이미지로부터 상기 프로세싱 시스템의 기억장치에 디스크 이미지를 복사함으로써 상기 프로세싱 시스템에 소프트웨어를 프로비져닝하는 단계
    를 포함하는 추가적인 동작을 수행하는 장치.
  16. 제15항에 있어서,
    상기 명령어는 상기 프로세싱 시스템으로 하여금 원격 데이터 프로세싱 시스템으로부터 상기 디스크 이미지를 복사하도록 하는 장치.
  17. 제13항에 있어서,
    상기 프로세싱 시스템의 기억 장치는 하드 디스크 드라이브를 포함하는 장치.
  18. 제13항에 있어서,
    상기 변경된 블록의 데이터를 다른 기억 장치로부터의 백업 데이터로 자동으로 교체하는 상기 동작은,
    상기 변경된 블록을 모델 디스크 이미지로부터의 대응하는 백업 데이터로 덮 어씀으로써, 상기 프로세싱 시스템의 부트 프로세스 동안 상기 변경된 블록을 자동으로 복구하는 단계
    를 포함하는 장치.
  19. 제13항에 있어서,
    상기 명령어는,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체하기 전에 상기 프로세싱 시스템의 오퍼레이팅 시스템을 종료하는 단계
    를 포함하는 추가적인 동작을 수행하는 장치.
  20. 제19항에 있어서,
    상기 명령어는,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체한 후에 상기 프로세싱 시스템의 오퍼레이팅 시스템을 기동하는 단계
    를 포함하는 추가적인 동작을 수행하는 장치.
  21. 프로세싱 시스템으로서,
    머신 액세스가능 매체;
    기억장치;
    프로세서;
    상기 프로세서를 상기 머신 액세스가능 매체 및 상기 기억장치와 연결시키기 위한 하나 이상의 통신 경로; 및
    상기 머신 액세스가능 매체 내에 인코딩된 명령어를 포함하는 프로세싱 시스템으로서, 상기 명령어는, 상기 프로세서에 의해 실행되는 경우,
    상기 프로세싱 시스템의 사용자 세션 동안, 기억장치의 블록을 어드레스하는 쓰기 커맨드에 응답하여, 상기 쓰기 커맨드에 의해 어드레스된 블록을 식별하기 위해 쓰기 로그를 자동으로 업데이트하는 단계;
    상기 사용자 세션의 완료 후, 상기 쓰기 로그에 적어도 부분적으로 기초하여, 상기 기억장치의 하나 이상의 변경된 블록을 자동으로 식별하는 단계; 및
    상기 기억장치의 적어도 하나의 변경된 블록을 식별한 것에 응답하여, 다른 기억장치의 대응되는 블록을 식별하는 단계; 및 상기 변경된 블록의 데이터를 상기 다른 기억장치의 상기 대응되는 블록으로부터의 백업 데이터로 자동으로 교체하는 단계
    를 포함하는 동작을 수행하는 프로세싱 시스템.
  22. 제21항에 있어서,
    상기 명령어는, 상기 프로세싱 시스템이 오퍼레이팅 시스템으로 부팅되기 전에 실행되는 펌웨어 명령어를 포함하는 프로세싱 시스템.
  23. 제21항에 있어서,
    상기 명령어는,
    상기 사용자 세션에 앞서, 상기 다른 기억장치에 저장된 모델 디스크 이미지로부터 상기 프로세싱 시스템의 기억장치에 디스크 이미지를 복사함으로써 상기 프로세싱 시스템에 소프트웨어를 프로비져닝하는 단계
    를 포함하는 추가적인 동작을 수행하는 프로세싱 시스템.
  24. 제23항에 있어서,
    상기 명령어는 상기 프로세싱 시스템으로 하여금 원격 데이터 프로세싱 시스템으로부터 상기 디스크 이미지를 복사하도록 하는 프로세싱 시스템.
  25. 제24항에 있어서,
    상기 원격 데이터 프로세싱 시스템을 더 포함하는 프로세싱 시스템.
  26. 제21항에 있어서,
    상기 프로세싱 시스템의 기억 장치는 하드 디스크 드라이브를 포함하는 프로세싱 시스템.
  27. 제21항에 있어서,
    상기 변경된 블록의 데이터를 다른 기억 장치로부터의 백업 데이터로 자동으로 교체하는 상기 동작은,
    상기 변경된 블록을 모델 디스크 이미지로부터의 대응하는 백업 데이터로 덮 어씀으로써, 상기 프로세싱 시스템의 부트 프로세스 동안 상기 변경된 블록을 자동으로 복구하는 단계
    를 포함하는 프로세싱 시스템.
  28. 제21항에 있어서,
    상기 명령어는,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체하기 전에 상기 프로세싱 시스템의 오퍼레이팅 시스템을 종료하는 단계
    를 포함하는 추가적인 동작을 수행하는 프로세싱 시스템.
  29. 제28항에 있어서
    상기 명령어는,
    상기 변경된 블록의 데이터를 상기 다른 기억장치로부터의 백업 데이터로 교체한 후에 상기 프로세싱 시스템의 오퍼레이팅 시스템을 기동하는 단계
    를 포함하는 추가적인 동작을 수행하는 프로세싱 시스템.
KR1020077007395A 2004-10-28 2004-10-28 소프트웨어의 증분 프로비져닝 KR100947136B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020077007395A KR100947136B1 (ko) 2004-10-28 2004-10-28 소프트웨어의 증분 프로비져닝

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077007395A KR100947136B1 (ko) 2004-10-28 2004-10-28 소프트웨어의 증분 프로비져닝

Publications (2)

Publication Number Publication Date
KR20070049237A KR20070049237A (ko) 2007-05-10
KR100947136B1 true KR100947136B1 (ko) 2010-03-12

Family

ID=38273254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077007395A KR100947136B1 (ko) 2004-10-28 2004-10-28 소프트웨어의 증분 프로비져닝

Country Status (1)

Country Link
KR (1) KR100947136B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102084661B1 (ko) * 2016-07-06 2020-03-04 주식회사 케이티 디스크 관리 방법 및 이를 수행하는 컴퓨터 장치
CN114860293A (zh) * 2021-02-04 2022-08-05 华为技术有限公司 电子设备及其系统升级方法和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001040944A2 (en) * 1999-11-30 2001-06-07 Microsoft Corporation Method and system for recovery infrastructure for computer systems
US20020120791A1 (en) * 2001-02-28 2002-08-29 Mobiliti, Inc. Application independent write monitoring method for fast backup and synchronization of open files
US6594781B1 (en) * 1999-03-31 2003-07-15 Fujitsu Limited Method of restoring memory to a previous state by storing previous data whenever new data is stored
JP2004118291A (ja) * 2002-09-24 2004-04-15 Hitachi Kokusai Electric Inc ソフトウェア管理システム及び障害管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594781B1 (en) * 1999-03-31 2003-07-15 Fujitsu Limited Method of restoring memory to a previous state by storing previous data whenever new data is stored
WO2001040944A2 (en) * 1999-11-30 2001-06-07 Microsoft Corporation Method and system for recovery infrastructure for computer systems
US20020120791A1 (en) * 2001-02-28 2002-08-29 Mobiliti, Inc. Application independent write monitoring method for fast backup and synchronization of open files
JP2004118291A (ja) * 2002-09-24 2004-04-15 Hitachi Kokusai Electric Inc ソフトウェア管理システム及び障害管理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 06594781 B1,

Also Published As

Publication number Publication date
KR20070049237A (ko) 2007-05-10

Similar Documents

Publication Publication Date Title
US10261800B2 (en) Intelligent boot device selection and recovery
US8533304B2 (en) Remotely deploying and automatically customizing workstation images
US8645748B1 (en) System and method for bare metal restore of a computer over a network
US7313685B2 (en) Unattended BIOS recovery
CN102591675B (zh) 使用共享存储块管理多软件镜像的方法和系统
US20070180206A1 (en) Method of updating a duplicate copy of an operating system on the same disk
US7797526B2 (en) Service processor host flash update over LPC
US20120079474A1 (en) Reimaging a multi-node storage system
US20040139308A1 (en) System and apparatus for eliminating user interaction during hardware configuration at system boot
EP3769224B1 (en) Configurable recovery states
JP2000222178A (ja) リカバ―可能なソフトウェアインストレ―ションプロセスおよびコンピュ―タシステム用の装置
US20060036832A1 (en) Virtual computer system and firmware updating method in virtual computer system
US11030047B2 (en) Information handling system and method to restore system firmware to a selected restore point
US7506115B2 (en) Incremental provisioning of software
US20060047927A1 (en) Incremental provisioning of software
US8549545B2 (en) Abstraction of computer disk image cloning capabilities from bootable media
US10564894B2 (en) Free space pass-through
KR100947136B1 (ko) 소프트웨어의 증분 프로비져닝
TW202338602A (zh) 計算系統、電腦實施方法及電腦程式產品
KR102423056B1 (ko) 부팅 디스크 변경 방법 및 시스템
KR20150134704A (ko) 네트워크를 이용한 클라이언트 피씨 구동 시스템 및 제어 방법
KR20190065650A (ko) 공용 컴퓨터의 운영체계 초기화 방법 및 이를 적용한 컴퓨팅 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee