KR101250574B1 - 네트워크 부트 시스템 - Google Patents

네트워크 부트 시스템 Download PDF

Info

Publication number
KR101250574B1
KR101250574B1 KR1020107025847A KR20107025847A KR101250574B1 KR 101250574 B1 KR101250574 B1 KR 101250574B1 KR 1020107025847 A KR1020107025847 A KR 1020107025847A KR 20107025847 A KR20107025847 A KR 20107025847A KR 101250574 B1 KR101250574 B1 KR 101250574B1
Authority
KR
South Korea
Prior art keywords
cache
data
read
revision
client terminal
Prior art date
Application number
KR1020107025847A
Other languages
English (en)
Other versions
KR20110021786A (ko
Inventor
신 마루야마
마사히로 고즈카
Original Assignee
가부시키가이샤 씨오-콘브
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 씨오-콘브 filed Critical 가부시키가이샤 씨오-콘브
Publication of KR20110021786A publication Critical patent/KR20110021786A/ko
Application granted granted Critical
Publication of KR101250574B1 publication Critical patent/KR101250574B1/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

네트워크 부트 시스템에 있어서, 클라이언트 단말에 가상 디스크의 개정을 검지시켜, 리드 캐시 드라이버의 동작을 결정한다. 클라이언트 단말은 물리적인 기억 장치를 구비한다. 클라이언트 단말 상에서 동작하는 오퍼레이팅 시스템은, 클라이언트 단말의 로컬 버스에 대한 액세스를 네트워크에 대한 액세스로 변환하기 위한 필터 드라이버 (46) 와, 기억 장치를 구동시키기 위한 리드 캐시 드라이버 (50) 를 구비하고, 부트 서버로부터 판독 출력된 데이터를 판독 출력 캐시하는 리드 캐시 기구를 구비한다. 가상 디스크 (22a) 의 데이터와 리드 캐시 데이터의 리비전을 비교하고, 그 결과에 기초하여 리드 캐시 드라이버의 동작을 결정한다.

Description

네트워크 부트 시스템{NETWORK BOOT SYSTEM}
본 발명은, 네트워크를 통해 오퍼레이팅 시스템을 기동시키는 네트워크 부트 시스템에 관한 것이다.
최근, 네트워크를 통해 오퍼레이팅 시스템 (이하, 「OS」라고 한다) 을 기동시키는 시스템 (이하, 「네트워크 부트 시스템」이라고 한다) 이 주목받고 있다. 이 시스템은, 적어도 1 대의 네트워크 부트 서버 (I/O 서버) 와 복수 대의 클라이언트 단말이 네트워크를 통해 접속된 것이다. 시스템 구성에는 몇 가지 종류가 있는데, 가장 일반적인 구성은, 클라이언트 단말에서 동작하는 OS 나 어플리케이션 소프트 등의 모든 프로그램 및 데이터를 서버측의 기억 장치 (하드 디스크 등) 에 이미지 데이터 (가상 디스크) 로서 보존하고, 클라이언트 단말을 기동시키면 네트워크를 통해 클라이언트 단말 상에 OS 가 판독 입력된다는 것이다.
특허문헌 1 에는, 네트워크 부트 시스템에 있어서, 최종 사용자가 사용하는 PC (클라이언트 단말) 에 가상 머신을 이용한 시스템이 개시되어 있다.
네트워크 부트 시스템은, 클라이언트 단말 상에서 동작하는 오퍼레이팅 시스템을 제공하는 네트워크 부트 서버와, 클라이언트 단말이 네트워크를 통해 접속되고, 클라이언트 단말은, 적어도 오퍼레이팅 시스템 기동 중에 필요한 데이터를 일시적으로 보존할 수 있는 물리 메모리와, 상기 네트워크를 통해 서버에 액세스하기 위한 네트워크 인터페이스를 구비하고 있음과 함께, 오퍼레이팅 시스템은, 네트워크 인터페이스를 구동시키기 위한 네트워크 드라이버와, 클라이언트 단말의 로컬 버스에 대한 액세스를 네트워크에 대한 액세스로 변환하기 위한 필터 드라이버 등을 구비하고 있다.
네트워크 부트 시스템은 네트워크를 통해 OS 를 포함하는 디스크 이미지를 복수의 클라이언트 단말에서 공유하는 구조를 가짐으로써, 클라이언트 단말이 디스크리스 (diskless) 즉 하드 디스크를 가질 필요가 없어져, 클라이언트 단말의 OS 를 포함하는 모든 데이터를 서버측에서 집중 관리할 수 있는 이점이 있다. 그 때문에, 많은 클라이언트 단말이 가동되는 시스템에 적합하다.
또, OS 나 어플리케이션 소프트를 각 클라이언트 단말측의 CPU 와 물리 메모리로 실행하기 때문에, 클라이언트 단말의 성능을 최대한 발휘하여 서버의 부하가 최소한으로 억제되는 이점도 있다.
일본 공개특허공보 2007-323354호
본건 발명자들은, 클라이언트 단말측의 물리적인 기억 장치의 일부에, 판독 출력 전용 캐시 (이하, 「리드 캐시 기구」라고 한다) 를 구비한 구성을 포함하는 새로운 네트워크 부트 시스템을 제안하고 있다. 이 시스템에서는, 클라이언트 단말측이 네트워크를 통해 네트워크 부트 서버로부터 판독 출력한 클라이언트 단말의 OS 기동용 가상 디스크의 데이터를 클라이언트 단말측의 캐시 영역에 카피하여, 아직 기록이 행해지지 않은 데이터만을 리드 캐시 데이터로서 이용하는 「판독 출력에 특화시킨 캐시 시스템」을 구비하는 것을 특징으로 하는 것이다. 이 시스템에 의하면, 1 회째의 기동시에 판독 출력한 가상 디스크의 데이터를 로컬 디스크에 캐시함으로써 클라이언트 단말의 2 회째 이후의 기동 처리시에 서버에 대한 네트워크 액세스가 거의 발생하지 않게 되기 때문에, 1 대의 서버에 접속할 수 있는 클라이언트 단말을 종래보다 비약적으로 증대시킬 수 있거나 한 이점이 있다.
그런데, 상기 네트워크 부트 시스템은, 클라이언트 단말측이 판독 출력하는 가상 디스크의 데이터는 항상 동일한 것이 기본적인 전제로서, 클라이언트 단말측에 있어서, 가상 디스크의 데이터가 개정된 것을 검지하는 구조도 분명하지 않았다. 가상 디스크의 데이터가 개정된 경우, 리드 캐시 데이터를 그대로 이용하면 데이터의 부정합이 일어나 클라이언트 단말의 기동에 장해를 초래할 우려가 있다. 그러나, 가상 디스크 전체의 데이터를 네트워크를 통해 리드 캐시 데이터와 비교하는 것은 매우 비효율적이다.
본 발명은, 상기를 감안하여 이루어진 것으로서, 리드 캐시 데이터를 유지하는 클라이언트 단말을 포함하는 네트워크 부트 시스템에 있어서, 가상 디스크의 데이터가 개정된 경우에, 클라이언트 단말측이 그 개정 정보를 효율적으로 검지하는 새로운 구조를 제공하는 것 등을 주된 기술적 과제로 한다.
본 발명에 관련된 네트워크 부트 시스템은, 클라이언트 단말 상에서 동작하는 오퍼레이팅 시스템을 포함하는 디스크 이미지를 가상 디스크로서 제공하는 네트워크 부트 서버와, 물리적인 기억 장치를 구비한 클라이언트 단말이 네트워크를 통해 접속되고,
상기 클라이언트 단말은, 상기 오퍼레이팅 시스템 기동 중에 필요한 데이터를 일시적으로 보존할 수 있는 물리 메모리와, 상기 네트워크를 통해 상기 서버에 액세스하기 위한 네트워크 인터페이스를 구비하고 있음과 함께,
상기 오퍼레이팅 시스템은,
상기 클라이언트 단말의 로컬 버스에 대한 액세스를 상기 네트워크에 대한 액세스로 변환하기 위한 필터 드라이버와, 상기 기억 장치를 구동시키기 위한 리드 캐시 드라이버를 구비하고 있고,
상기 리드 캐시 드라이버가, 상기 필터 드라이버에 의해 상기 네트워크 부트 서버로부터 판독 출력된 데이터를 상기 기억 장치에 판독 출력 캐시하는 리드 캐시 기구를 구비한 네트워크 부트 시스템으로서,
상기 리드 캐시 기구는, 상기 서버로부터 수취한 데이터를 유지하기 위한 판독 출력 캐시 영역과 함께 상기 물리 메모리에 유지되어 있는 상기 리드 캐시 드라이버가 상기 서버로부터 판독 출력된 데이터가 기록이 완료되었는지의 여부를 판별하기 위한 관리 플래그 중 적어도 일부를 재기록하기 위한 캐시 관리 영역을 구비하고,
상기 가상 디스크의 데이터의 리비전을 기억하는 제 1 기억 수단과, 상기 판독 출력 캐시된 리드 캐시 데이터의 리비전을 기억하는 제 2 기억 수단과, 제 1 및 제 2 리비전을 비교하는 수단과, 상기 비교 결과에 기초하여 상기 리드 캐시 드라이버의 동작을 결정하는 결정 수단을 구비하는 것을 특징으로 한다.
이 시스템에서는, 가상 디스크의 데이터의 리비전과 리드 캐시 데이터의 리비전을 비교함으로써, 가상 디스크의 데이터와 리드 캐시 데이터를 전체 섹터에 걸쳐 조합 (照合) 하지 않고, 내용의 동일성을 판단할 수 있으며, 이로써 리드 캐시 데이터에 보존되어 있는 캐시 데이터를 이용하면 되는지의 여부를 결정할 수 있다. 만일, 리비전이 일치하고 있을 때에는 리드 캐시 데이터를 그대로 이용할 수 있고, 리비전이 일치하고 있지 않을 때에는 리드 캐시 데이터를 그대로는 이용할 수 없는 것을 알 수 있다. 만일 그대로 이용하면, 가상 디스크의 데이터가 개정되어 있음에도 불구하고, 리드 캐시되어 있는 개정 전의 데이터를 판독 입력하게 되어, 개정이 반영되지 않기 때문이다. 이 때문에, 클라이언트 단말의 동작이 불안정해지거나, 최악의 경우 기동할 수 없게 되거나 하는 것이 우려된다.
또한, 리드 캐시 데이터를 그대로는 이용할 수 없는 경우, 가장 안전한 방법은, 리드 캐시 드라이버가 모든 리드 캐시 데이터를 파기하는 것이다. 이 경우, 데이터의 부정합 문제는 발생하지 않게 되는 이점이 있지만, 반면, 개정되어 있지 않은 섹터 내의 데이터까지 파기해 버리기 때문에, 다시 네트워크를 통해 판독 입력을 행해야 하여, 네트워크의 부하가 증대되는 원인이 되는 결점도 있다.
상기 네트워크 부트 시스템에 있어서, 상기 제 1 리비전은, 상기 가상 디스크의 일부로서 또는 상기 가상 디스크에 관련되어 유지되는 것이 바람직하다. 기동시에 액세스할 수 있고, 게다가 가상 디스크에 대한 기록 작업시에 기록을 남길 수 있는 장소일 필요가 있기 때문이다. 또한, 「관련되어」라는 것은, 클라이언트 단말이 기동시에 가상 디스크를 통해 액세스할 수 있는 것을 의미한다.
상기 네트워크 부트 시스템에 있어서, 상기 제 2 리비전은, 상기 기억 장치의 일부에 유지되는 것이 바람직하다. 「상기 기억 장치」란, 클라이언트 단말이 구비하는 물리적인 기억 장치로서, 구체적으로는 로컬 디스크 등을 가리킨다. 또한, 제 2 리비전은, 리드 캐시 데이터의 리비전이기 때문에, 로컬 디스크 내의 어느 영역, 예를 들어 캐시 관리 영역 (P3) 에 보존할 수 있다.
상기 네트워크 부트 시스템은, 상기 클라이언트 단말로부터의 기록 정보를 캐시하기 위한 기록 라이트 캐시 영역을 추가로 구비함과 함께,
상기 가상 디스크의 일부에, 적어도 1 비트의 플래그 보존 영역을 구비해도 된다. 클라이언트 단말은 기동시에 이 2 개의 플래그 관리 영역 중 적어도 어느 일방에 반드시 동작시킴으로써, 가상 디스크의 데이터에 변경이 가해졌는지의 여부를 조사할 수 있기 때문이다.
상기 네트워크 부트 시스템에 있어서, 복수의 클라이언트 단말에서 서버 상의 가상 디스크를 공유하여 사용하는 쉐어 모드로 상기 클라이언트 단말을 기동시켰을 때에는, 상기 라이트 캐시 영역에 형성한 플래그 관리 영역에 1 을 기록하고, 서버 상의 가상 디스크에 클라이언트가 직접 기록할 수 있는 프라이빗 (private) 모드로 상기 클라이언트 단말을 기동시켰을 때에는, 상기 가상 디스크의 보존 영역에 형성한 플래그 관리 영역에 1 을 기록하고,
상기 클라이언트 단말은, 기동시에 상기 가상 디스크의 보존 영역에 형성한 플래그 관리 영역의 기억된 값에 기초하여, 상기 판독 출력 캐시 기구를 기동 또는 정지시키도록 구성해도 된다. 이와 같이 하면, 플래그 관리 영역에 기록된 정보를 OS 가 재기동 후에도 유지하기 때문에, 재기동시에 가상 디스크의 일부에 형성한 플래그 관리 영역에 기억되어 있는 관리 플래그의 값을 조사하는 것만으로, 가상 디스크에 기록이 행해지고, 그 후 갱신 작업이 종료되었는지의 여부를 알 수 있기 때문이다.
상기 네트워크 부트 시스템에 있어서, 상기 제 1 리비전 중, 상이한 2 개의 리비전 사이에서 상기 가상 디스크 내의 어느 영역의 데이터가 변경되었는지를 나타내는 변경 영역 맵과, 상기 변경 영역 맵을 개정 전의 리비전에 있어서의 리드 캐시 데이터의 상태를 나타내는 캐시 관리 테이블에 적용함으로써, 개정 후의 캐시 관리 테이블을 생성하는 것이 바람직하다. 변경 영역 맵이란, 리비전 사이에서 가상 디스크의 데이터 중 어느 영역의 데이터가 개정되었는지를 기록하여 관련짓는 개정 이력의 관리 정보로서, 1 비트의 정보 (0 또는 1) 로 나타낸다. 섹터 단위로 변경 유무를 기록한 것으로, 「변경 있음」인 섹터에 대응하는 리드 캐시 데이터의 캐시 관리 테이블에 0 을 기록하였을 때에는, 그 섹터에 리드 캐시되어 있는 데이터를 파기하여 다시 가상 디스크로부터 판독 출력을 실시한다. 한편, 「변경 없음」인 섹터에 대응하는 리드 캐시 데이터의 캐시 관리 테이블은, 리드 캐시 데이터를 파기하지 않고 이용할 수 있기 때문에 파기할 필요가 없다. 이와 같이, 변경 영역 맵을 캐시 관리 테이블에 적용하면, 가상 디스크의 데이터가 개정된 경우에도, 파기하는 데이터를 최소한으로 억제할 수 있다.
상기 네트워크 부트 시스템에 있어서, 상기 변경 영역 맵은 상기 가상 디스크의 일부에 기억되어 있는 것이 바람직하다. 변경 영역 맵의 보존 장소는 특별히 제한이 없으나, 리드 캐시 데이터를 갖는 모든 클라이언트 단말이 가상 디스크의 데이터 변경 정보를 알 필요가 있으므로, 가상 디스크의 일부에 형성하는 것이 합리적이기 때문이다.
상기 네트워크 부트 시스템에 있어서, 상기 제 1 리비전 중, 연속하는 리비전 사이의 변경 영역 맵의 논리합을 구함으로써, 집약된 연속하는 변경 영역 맵을 생성하는 변경 영역 맵 집약 수단을 구비하는 것이 바람직하다. 변경 영역 맵은 0 과 1 로 이루어지는 비트열로서, 변경된 섹터에 대응하는 비트에 1 을 할당하면, 논리합을 구함으로써 용이하게 집약할 수 있기 때문이다.
본 발명에서는, 가상 디스크의 데이터가 변경된 경우에도 가상 디스크의 리비전과 리드 캐시 데이터의 리비전을 비교함으로써, 가상 디스크 전체를 검사하지 않아도 내용의 동일성을 판단할 수 있다.
또한, 클라이언트 단말의 리드 캐시 데이터의 상태를 관리하는 「캐시 관리 테이블」에 가상 디스크의 개정 정보를 나타내는 「변경 영역 맵」을 적용하는 구성을 구비하고 있는 경우에는, 리드 캐시 데이터를 파기하는 섹터를 최소한으로 할 수 있다. 그 때문에, 가상 디스크의 데이터가 변경된 경우에도, 네트워크의 부하를 억제하여 데이터 변경 후의 가상 디스크의 데이터를 클라이언트 단말 상의 판독 출력 캐시에 반영시켜, 클라이언트 단말 상에서 이용할 수 있다.
도 1 은 제 1 실시형태의 네트워크 부트 시스템의 기본 구성을 설명하기 위한 개념도이다.
도 2 는 제 1 실시형태의 네트워크 부트 시스템에 있어서의 디스크 액세스의 관계를 설명하는 도면이다.
도 3 은 제 1 실시형태의 네트워크 부트 시스템에 있어서의 클라이언트 단말측의 디스크 구성예이다.
도 4(a) 는 네트워크 상에 있는 가상 디스크의 실체가 되는 물리 디스크 (11) 에 포함되는 가상 디스크의 디스크 이미지와 그 개정 번호 (리비전) 의 변천도이고, 도 4(b) 는 시스템 내에 존재하는 복수의 클라이언트 단말을 나타내는 도면이다.
도 5 는 제 2 실시형태에 관련된 네트워크 부트 시스템에 있어서의 동작 모드의 설명도이다.
도 6 은 더티 플래그에 관한 룰을 설명하는 일람표이다.
도 7 은 본 발명의 클라이언트 단말 상의 리드 캐시 드라이버의 동작 순서를 설명하는 도면이다.
도 8(a) 는 리비전 12 로부터 리비전 13 으로의 변경 영역 맵의 예이고, 도 8(b) 는 리비전 12 의 캐시 관리 테이블 (70a) 의 예이고, 도 8(c) 는 도 8(b) 에 나타내는 리비전 12 의 「캐시 관리 테이블」에 대해 도 8(a) 에 나타내는 리비전 12 로부터 13 으로의 「변경 영역 맵」을 적용하여 생성된 리비전 13 의 캐시 관리 테이블이다.
도 9(a) 는 변경 영역 맵군 (61) 이고, 도 9(b) 는 도 9(a) 에 나타내는 변경 영역 맵군 (61) 을 순차적으로 적용함으로써, 클라이언트 단말 상의 리드 캐시 드라이버가 관리하는 캐시 관리 테이블이, 리비전 18 의 캐시 관리 테이블로부터 최신 리비전인 리비전 20 으로 순차적으로 천이되어 가는 모습을 나타낸 도면이다.
도 10(a) 는 2 개의 변경 영역 맵으로 이루어지는 변경 영역 맵군 (62) 과, 양자를 집약한 1 개의 변경 영역 맵 (63) 의 예이고, 도 10(b) 는 도 10(a) 에 나타내는 집약된 변경 영역 맵 (63) 을 리비전 18 의 캐시 관리 테이블에 적용한 경우에 있어서의 캐시 관리 테이블 (72) 의 천이도이다.
도 11(a) 는 복수의 집약된 변경 영역 맵군 (64) 의 예이고, 도 11(b) 는 리비전 16 의 캐시 관리 테이블을 가지는 클라이언트 단말을 최신인 리비전 20 으로 천이시킬 때의 캐시 관리 테이블 (73) 의 천이 상태의 예이고, 도 11(c) 는 리비전 12 의 캐시 관리 테이블로부터 리비전 20 의 캐시 관리 테이블로 갱신시킨 경우의 캐시 관리 테이블의 천이도이다.
도 12(a) 및 도 12(b) 는 컴퓨터 시스템에 있어서의 디스크 액세스의 관계를 설명하기 위한 도면이다.
도 13(a) 는 캐시 관리 테이블의 예이고, 도 13(b) 는 캐시 관리 테이블의 상태와 그 동작을 정리한 일람표를 나타내는 도면이다.
도 14 는 기록 캐시 (라이트 캐시) 를 형성한 경우의 디스크 액세스의 관계를 설명한 도면이다.
도 15 는 제 1 실시형태의 변형예를 설명한 도면이다.
발명을 실시하기 위한 최선의 형태
본 명세서에 있어서의 용어의 해석은 이하와 같이 한다. 단, 여기서 정의하지 않는 것에 대해서는 적절히 문중에서 지적한다. 또한, 여기서의 정의는 실시형태 (실시예) 에 한정되지 않는다.
·「서버」란, 클라이언트 단말 상에서 동작하는 오퍼레이팅 시스템을 제공하는 적어도 1 대의 컴퓨터를 가리키는 것으로 한다. 서버는 클라이언트 단말이 사용하는 OS, 어플리케이션 소프트 그 밖의 데이터를 포함하는 가상 디스크를 이미지 데이터로서 보존하고 있는데, 이미지 데이터는 네트워크 상에 있는 파일 서버 등, 다른 서버의 물리 디스크 내에 실체가 있는 경우를 포함한다.
·「가상 디스크」란, 클라이언트 단말 상의 OS 로부터 네트워크를 통해 보이는 디스크 이미지 (이것을 「vDisk」라고 표기하는 경우가 있다) 를 가리키고, 그 실체는 네트워크를 통해 접속되는 물리 디스크에 보존되어 있는 데이터의 일부를 가리키는 것이다.
·「로컬」이란, LAN 등의 외부 네트워크를 통하지 않고 클라이언트 단말의 내부 버스에 접속된 디바이스를 의미한다.
·「물리 디스크」란, 로컬 버스에 접속된 실체를 수반하는 하드 디스크 그 밖의 기억 수단을 가리키고, 「로컬 디스크」라고 하는 경우도 있다. 단, OS 를 인식할 수 있는 한, 하드 디스크의 종류 (예를 들어, SCSI 디스크나 IDE 디스크나 SATA 등) 는 불문한다. 또, 디스크상(狀)인지를 문제로 하지 않고, 예를 들어 반도체 메모리 기타 하드 디스크로 대체하는 실현 가능한 기억 수단을 모두 포함하는 것으로 한다.
·「사용자 데이터 등」이라고 할 때에는, 사용자가 클라이언트 단말을 조작함으로써 클라이언트 단말의 OS 또는 그 OS 상에서 동작하는 어플리케이션 소프트가 보존하는 모든 데이터를 말하는 것으로 한다.
·특히 명시하지 않고 간단히 「OS」라고 하는 경우에는, 클라이언트 단말에서 동작하는 OS 를 의미하는 것으로 한다. 또, 「OS 측으로부터의 기록 (또는 판독 출력) 요구 신호」라고 하는 경우도, OS 측에서 동작하는 어플리케이션 소프트가 필터 드라이버를 향하여 발하는 요구 신호를 포함하는 것으로 한다.
(네트워크 부트 시스템의 기본 원리)
여기서, 일반적인 네트워크 부트 시스템의 기본 원리에 대해 간단하게 설명한다. 도 12(a) 및 도 12(b) 는 컴퓨터 시스템에 있어서의 디스크 액세스의 관계를 설명하기 위한 도면이다.
도 12(a) 는 일반적인 컴퓨터 시스템이 로컬 디스크에 데이터의 판독 출력 및 기록을 실시하는 구조를 설명한 도면이다. 클라이언트 단말 상의 OS 또는 어플리케이션 소프트 (101) 가 로컬 디스크 (103) 에 대해 판독 출력 및 기록 요구 신호를 보내면 디스크 드라이버 (102) 가 이 요구 신호에 따라 로컬 디스크 (103) 에 대한 데이터의 판독 출력 및 기록을 제어한다.
도 12(b) 는 네트워크 부트 시스템이 가상 디스크 (vDisk) 에 데이터의 판독 출력 및 기록을 실시하는 구조를 설명한 도면이다. OS 또는 어플리케이션 소프트 (104) 가 가상 디스크 (105) 에 대해 판독 출력 및 기록 요구 신호를 보내면 디스크 드라이버 대신에 필터 드라이버 (106) 가 최초로 이 요구 신호를 수취하고, 이것을 네트워크 드라이버 (107) 에 전송하고, 도시되지 않은 네트워크 인터페이스를 통해 네트워크 너머의 서버 등에 실체가 있는 디스크 이미지 (가상 디스크 (105)) 에 대한 데이터의 판독 출력 및 기록을 제어한다.
이와 같이, 각 클라이언트 단말의 필터 드라이버 (106) 가 로컬 디스크에 대한 액세스를 네트워크 액세스로 변환함으로써, 클라이언트 단말의 CPU 는, 로컬 디스크에 액세스하는 대신, 네트워크를 통해 접속되는 서버 상의 디스크 이미지에 액세스한다.
여기서, 「필터 드라이버」란, 클라이언트 단말측의 OS 에서 동작하는 디바이스 드라이버의 일종으로서, 그 후단 (後段) 에 네트워크 드라이버가 형성된다. 네트워크 드라이버는 네트워크 인터페이스 (이더넷 카드 등) 를 통해 서버측의 가상 디스크 (vDisk) 와 통신하고, 수취한 디스크 액세스를 위한 요구 신호에 기초하여 데이터의 수수 (授受) 실시한다. 즉, 가상 디스크가 판독 출력 요구 신호를 받은 경우에는 클라이언트 단말측에 데이터를 되돌리고, 기록 요구 신호를 받은 경우에는 가상 디스크에 대해 데이터의 기록을 실시한다.
(제 1 실시형태) -리비전 관리-
이하, 본 발명에 네트워크 부트 시스템의 제 1 실시형태에 대해 도면을 참조하여 상세히 서술한다. 또한, [1] ∼ [4] 에서는, 본 발명이 전제로 하는 리드 캐시 기구를 구비한 네트워크 부트 시스템의 일 실시형태를 예시하고, [5] 에서는, 이와 같은 시스템을 전제로 한 리비전 관리 (개정 정보의 관리 방법) 에 대해 설명한다.
[1] 시스템의 전체 구성
도 1(a) 및 도 1(b) 는 제 1 실시형태의 네트워크 부트 시스템의 기본 구성을 설명하기 위한 개념도이다. 도 1(a) 에 나타내는 바와 같이, 이 시스템은 적어도 1 대의 서버 (네트워크 부트 서버) (10) 와, 복수 대의 클라이언트 단말 (20) (20a, 20b, ···) 이 네트워크를 통해 접속되어 있다. 또, 도 1(b) 에 나타내는 바와 같이, 서버 (10) 는 물리 디스크 (예를 들어 하드 디스크) (11) 를 구비하고 있다. 그 외에, 서버 (10) 는 도시되지 않은 CPU 나 메모리 등 서버로서의 기본적인 구성을 구비하고 있다. 또한, 어느 클라이언트 단말 (20a, 20b) 은, 로컬 디스크 (21a) 를 구비하고 있다. 단, 시스템 전체 중의 일부에 「로컬 디스크를 가지지 않는 클라이언트 단말」이 포함되어 있어도 상관없다.
서버 (10) 의 물리 디스크 (11) 에는, 각 클라이언트 단말 (20) (20a, 20b, ···) 이 최초의 기동시에 판독 입력하는 공통된 OS 의 디스크 이미지 (vDisk) (22a) 가 보존되어 있다. 즉, 이 시스템에서는, 서버 (10) 의 물리 디스크 (11) 에 보존되어 있는 OS 의 디스크 이미지를 복수의 클라이언트 단말이 공유하는 것을 전제로 하고 있다.
또한, 물리 디스크 (11) 내의 상이한 영역에, 제 1 OS, 제 2 OS, 제 3 OS, ··· 와 같이, 종류가 상이한 복수의 OS 이미지를 보존해 두고, 클라이언트 단말측에 있어서, 기동시에 어느 OS 를 기동시킬지를 선택하는 구성으로 해도 된다. 단, 설명을 간단하게 하기 위해, 복수의 OS 를 선택적으로 기동시키는 양태에 대해서는 제 4 실시형태에서 상세히 서술하기로 한다.
도 2 는 이 시스템에 있어서의 디스크 액세스의 관계를 설명한 도면이다. 상기 서술한 바와 같이, 이 시스템의 클라이언트 단말은 로컬 디스크 (21a) 와 가상 디스크 (22a) 를 가진다. 이 때문에, 기본적인 동작으로는, 로컬 디스크 (21a) 에 대한 액세스는 디스크 드라이버에 의해 도시되지 않은 내부 버스 (예를 들어, SCSI 버스 혹은 IDE 버스 등) 를 경유하여 행해지는 반면, 가상 디스크 (22a) 에 대한 액세스는 필터 드라이버 (46) 및 네트워크 드라이버 (48) 를 통해 네트워크를 통해 행해진다. 즉, 서버 상의 디스크 이미지는 네트워크를 통해 클라이언트 단말 상의 OS 에 탑재되고, 클라이언트 단말 상으로부터는 가상 디스크 (22a) 가 네트워크를 통해 접속되어 있는 것처럼 보인다 (도 1(b) 참조).
이 시스템은, 필터 드라이버 (46) 의 전단 (前段) 에, 판독 출력 전용의 「리드 캐시 드라이버 (50)」를 구비하고 있는 것이 전제가 된다. 리드 캐시 드라이버 (50) 는 로컬 디스크 (21a) 에 있어서의 특정한 파티션에 할당된 판독 출력 캐시 영역 (후술하는 도 3(a) 에 있어서의 파티션 (P2)) 에 대한 데이터의 액세스 (기록 및 판독 출력) 를 실시한다. 리드 캐시 드라이버 (50) 는 필터 드라이버 (46) 에 의해 서버로부터 판독 출력된 데이터를 로컬 디스크 내에 카피하여 판독 출력 캐시시키는 기능을 한다.
단, 서버 상으로부터 네트워크를 통해 이미 판독 출력된 데이터라도, 그 후 한 번이라도 기록이 행해진 적이 있는 섹터의 데이터에 대해서는, 데이터의 내용이 고쳐 써져 있기 때문에 이용하지 않는다. 이것을 실현하기 위해, 클라이언트 단말은 캐시 관리 테이블로 불리는 2 비트의 플래그를 섹터마다 유지하는데, 이 구조에 대해서는 [4] 시스템의 동작에서 상세히 서술한다.
[2] 클라이언트 단말측 디스크 구성
도 3(a) 및 도 3(b) 는 클라이언트 단말측의 디스크 구성을 예시한 도면이다. 이 도면에 나타내는 바와 같이, 클라이언트 단말은, 로컬 디스크 (21a) 와 가상 디스크 (vDisk) (22a) 로 구성된다.
상기 서술한 바와 같이, 가상 디스크는, 클라이언트 단말로부터 보면 네트워크 너머로 보이는 논리 드라이브 (OS 에 따라서는 이것을 「네트워크 드라이브」라고 하는 경우도 있다) 로 취급되고, OS 의 시스템이나 사용자 데이터 등을 마치 사용자의 로컬 디스크에 보존하는 것처럼, 네트워크를 통해 서버측의 디스크 이미지에 보존할 수 있다. 한편, 클라이언트 단말이 가지는 물리적인 하드 디스크 (이것을 「로컬 디스크」라고 한다) 는 내부 버스에 직접 접속되어 있다.
(1) 물리 디스크의 구성
도 3(a) 은 물리 디스크의 구성을 설명하기 위한 도면이다. 물리 디스크는, 클라이언트 단말측에 직접 접속된 로컬 디스크로서, 이 실시형태에 있어서는, 적어도 3 개의 영역 (파티션) 으로 나누어져 있다.
도 3(c) 는 제 1 파티션 (P1) 에 할당하는 기능의 일례를 설명하기 위한 도면으로서, 이하의 (i) ∼ (iii) 의 각 설명에 대응하는 것이다. 또한, 제 1 파티션 (P1) 은 클라이언트 단말측의 OS 에 있어서 논리 드라이브 혹은 파일이나 디렉토리로서 인식되는 반면, 제 2 및 제 3 파티션 (P2 및 P3) 은 논리 드라이브 혹은 파일이나 디렉토리와 같은 어플리케이션의 레벨로 인식되는 것이 아니라, 로컬 디스크 내의 섹터 혹은 클러스터와 같은 물리적인 레벨로 인식되는 것에 그친다.
(i) 제 1 파티션 (P1)
물리 디스크의 제 1 파티션 (P1) 에는, 필요에 따라 클라이언트 단말측 OS 의 「스왑 영역」이나, 「기록 캐시」나 「클라이언트 단말측에서 동작하는 어플리케이션 소프트의 작업 영역 (work area)」등을 할당할 수 있다. 또한, 제 1 파티션 (P1) 은, 본 발명 (제 1 실시형태) 에 있어서는 필수적인 것은 아니지만, 이것을 형성하면 전부 클라이언트 단말의 처리 능력이 향상되는 이점이 있다.
a. 스왑 영역
「스왑」이란 클라이언트 단말의 물리 메모리의 부족분을 보충하기 위해 로컬 하드 디스크의 일부를 메모리처럼 사용하는 OS 의 기능의 하나이다. 스왑 동작이란, 하드 디스크 내에 「스왑 영역」을 준비하여, 메모리 용량이 부족해지면 사용되지 않은 메모리 영역의 내용을 일시적으로 하드 디스크에 퇴피시켜, 필요에 따라 메모리에 재기록하는 동작을 말한다. 그러한 기능을 이용하여 확보된 실제 메모리 용량 이상의 메모리 영역을 「가상 메모리」라고 한다. 클라이언트 단말이 디스크리스인 경우, 클라이언트 단말측에 스왑 영역을 형성할 수 없기 때문에, 메모리로부터 넘친 데이터는 모두 서버측의 스왑 영역으로 보내지게 되어, 서버의 리소스를 소비함과 함께 네트워크의 부하가 가해지는 원인도 되고 있었다. 그러나, 본 발명에 관련된 네트워크 부트 시스템의 클라이언트 단말은 로컬 디스크를 구비하고 있기 때문에, 물리 영역의 일부에 스왑 영역을 확보할 수 있게 된다. 이와 같이 네트워크를 통해 서버측에서 스왑 동작하는 것을 회피할 수 있는 이점은 크다.
b. 기록 캐시
클라이언트 단말측의 OS 등 (40) 으로부터 기록 요구 신호가 필터 드라이버 (46) 에 보내진 경우, 그 기록 데이터를 로컬 디스크의 물리 영역에 캐시하는, 이른바 「기록 캐시」로서 사용할 수 있다. 또한, 「기록 캐시」는 「판독 출력 캐시」로도 사용할 수 있다 (단, 「판독 출력 캐시」로서 판독 출력되는 캐시 데이터에는, 사용자 데이터 등의 기록이 행해진 후의 데이터가 포함된다). 이로써, 클라이언트 단말의 갱신 정보 (사용자 데이터 등) 를 클라이언트 단말측에 보존할 수 있기 때문에, 네트워크 부하를 경감시키는 이점이 있다.
c. 어플리케이션 소프트의 작업 영역
클라이언트 단말측에서 동작하는 어플리케이션 소프트의 작업 영역을 할당함으로써, 네트워크 부하를 경감시키는 이점이 있다.
(ii) 제 2 파티션 (P2)
물리 디스크의 제 2 파티션 (P2) 에는, 「판독 출력 캐시」동작을 시키기 위한 전용 영역 (「판독 출력 캐시 영역」) 이 할당된다. 이 영역에는 기록이 행해진 후의 데이터를 일절 보존하지 않는다. 이 의미에 있어서 「(i) b. 기록 캐시」에서 설명한 것과는 기술적 의의가 전혀 상이한 것이다.
제 2 파티션 (P2) 에 보존되는 리드 캐시 데이터는, 네트워크를 통해 판독 출력된 데이터의 카피 모두를 이용하지 않고, 한 번도 기록이 행해지지 않은 섹터 내의 데이터만을 이용한다. 또, 가상 디스크에 보존되어 있는 데이터가 변경된 경우에는, 데이터의 부정합이 발생할 수 있는 위험성이 있기 때문에, 리드 캐시 데이터는 리드 캐시한 디스크 이미지의 리비전 (이것을 「리드 캐시 데이터의 리비전」이라고 한다) 을 제 2 파티션 내에 유지한다.
이 동작을 간단하게 설명하면, 어느 리드 캐시 영역 내에 유지되어 있는, 어느 특정한 섹터 내에 있어서의 리드 캐시 데이터의 유무 (「유」또는 「무」) 와, 당해 섹터에 기록이 완료되었는지의 여부 (「기록 완료」또는 「미기록」) 라는 4 가지 상태 (2 비트의 플래그) 를 섹터마다 유지함으로써, 「리드 캐시 데이터 있음」또한 「미기록」의 경우에만 리드 캐시 데이터를 이용하고, 그 밖의 경우에는, 리드 캐시 데이터를 이용하지 않도록 동작시킨다.
이와 같은 의미에서, 또한, 본 명세서에 있어서의 상기 「판독 출력 캐시 기구」는 「기록 캐시」를 포함하지 않는 개념이다. 단, 별도 기록 상태도 유지하는 「판독 출력 및 기록 캐시」를, 상기 「판독 출력 캐시」와는 상이한 영역에 가지고 있는 것은 지장이 없다. 상기 서술한 바와 같이, 「판독 출력 및 기록 캐시」를 클라이언트 단말측의 로컬 디스크 내에 형성하면 네트워크 부하가 경감된다. 또, 각 클라이언트 단말마다의 기록 정보를 서버 상에 보존해도 된다.
(iii) 제 3 파티션 (P3)
클라이언트 단말측의 물리 디스크는, 판독 출력 캐시 영역 (P2) 을 가짐과 함께, 「캐시 관리 영역 (P3)」을 갖는다. 리드 캐시 드라이버는, 캐시 관리 영역을 물리 메모리 내의 비페이지 영역 (스왑되지 않는 영역) 에 확보된 「캐시 관리 테이블」로 판독 입력하고, 정기적으로 「캐시 관리 테이블」을 캐시 관리 영역으로 재기록한다. 캐시 관리 영역은, 「가상 디스크의 어느 섹터에 있는 데이터가 캐시되어 있는가」라는 정보와, 「그 섹터에는, 기록이 행해졌는가」라는 정보를 섹터 단위로 보존함으로써, 판독 출력 캐시에 데이터가 존재하고 있어도, 그 섹터에 기록이 행해져 있으면 판독 출력 캐시의 대상으로부터 제외하여, 다시 판독 출력 캐시를 이용하지 않고 데이터의 판독 출력을 실시한다. 이와 같은 구조에 의해, 기록이 행해지지 않은 데이터만을 판독 출력 캐시의 대상으로 하면서 OS 의 재기동 후에도 클라이언트 단말측의 로컬 디스크 내에 캐시 데이터를 보존한다.
(2) 가상 디스크의 구성
도 3(b) 는 가상 디스크의 구성을 나타낸 도면이다. 가상 디스크는 클라이언트 단말 상의 OS 로부터 인식되는 것인데, 그 실체는 네트워크 상의 서버의 하드 디스크의 일부로서, 이 실시형태에 있어서는, 전체가 적어도 2 개의 영역 (파티션) 으로 나누어져 있다. 제 1 파티션 (이것을 「V1」이라고 한다) 은, 클라이언트 단말측의 OS 에 의해 인식되는 논리 드라이브 (예를 들어, 「C 드라이브」) 가 되는데, 제 2 파티션 (이것을 「V2」라고 한다) 은, 클라이언트 단말측의 OS 에 의해 인식되지 않는 영역이 된다. 제 2 파티션 (V2) 에는, 가상 디스크의 개정 정보 (후술하는 「[4] 리비전의 관리」에서 설명하는 리비전 등) 가 기억되고, 디스크 이미지의 개정마다 서버측의 프로그램에 의해 개정 정보 등이 기록된다.
또한, 각 클라이언트 단말은 이미지 데이터 단위로 가상 디스크로서 탑재하기 때문에, 가상 디스크의 실체인 네트워크 상의 어느 물리 디스크 내에 복수의 OS 이미지를 유지하고, 클라이언트 단말측에 있어서 기동시에 OS 를 선택하거나, 하나의 클라이언트 단말에서 상이한 동작 환경을 구별하여 사용시키거나 할 수도 있다.
또한, 개정 정보는 매우 데이터량이 적기 때문에, 제 2 파티션 (V2) 의 용량은, 제 1 파티션 (V1) 의 용량과 비교하여 매우 적으면 된다. 예를 들어, 제 1 파티션이 15 ∼ 30 GB 일 때, 제 2 파티션은 10 MB 정도 확보하면 충분하다.
이상을 정리하면, 이 실시형태에 있어서 클라이언트 단말의 사용자가 OS 상에서 그 존재를 확인할 수 있는 것은, 가상 디스크의 제 1 파티션 (V1) 에 대응하는 논리 드라이브 (예를 들어, C 드라이브) 와, 물리 디스크의 제 1 파티션 (P1) 에 대응하는 일부의 논리 드라이브가 된다.
[4] 시스템의 동작
(1) 「리드 캐시 드라이버」의 기본 동작
먼저 「리드 캐시 드라이버」의 기본 동작에 대해 설명한다. 도 2 에 있어서, 「클라이언트 OS (어플리케이션)」(40) 를 기점으로, 로컬 디스크 (21a) 및 가상 디스크 (22a) 를 향하는 실선 화살표는, 판독 출력 또는 기록 요구 신호 (리퀘스트 신호) 를 의미하고 있다. 이 신호를 받은 후, 디바이스 드라이버는 각각의 디스크와 통신하여 데이터의 수수를 실시한다. 요구 신호에 인접한 1 점 쇄선의 양 화살표는 데이터 수수를 나타내고 있다. 예를 들어, 판독 출력 요구 신호이면 그 후 디스크측으로부터 데이터가 판독 출력되어 OS 측으로 송출되고, 반대로 기록 요구 신호이면 그 후 OS 측으로부터 디스크측으로 데이터가 송출되어 디스크에 기록된다.
리드 캐시 드라이버란, 로컬 디스크의 판독 출력 캐시 영역 (P2) 에 대해 「판독 출력 캐시」를 행하기 위한 프로그램으로서, 그 동작은 이하와 같다.
(i) 판독 출력 요구 신호의 처리
클라이언트 단말측의 OS (또는 어플리케이션 소프트) (40) 가 「판독 출력 요구 신호」를 송출한 경우, 리드 캐시 드라이버 (50) 는 필터 드라이버 (46) 보다 먼저 이 「판독 출력 요구 신호」를 수취하게 된다. 이 경우에는, 「캐시 관리 테이블」을 이용하여 물리 디스크의 제 2 파티션 (P2) 에 할당되어 있는 「판독 출력 캐시 영역」에 기억되어 있는 데이터가 존재하고 있는지의 여부 및 존재하고 있는 경우에는 그 데이터가 기록이 완료되었는지의 여부를 판단하여, 만일 판독 입력이 완료되었고, 또한 기록이 완료되지 않은 경우에는, 즉시 그 판독 출력 캐시 데이터를 OS 로 되돌린다. 그러나, 판독 출력 캐시 데이터가 기록이 완료된 경우 또는 판독 출력 캐시 데이터가 존재하지 않는 경우에는, 리드 캐시 드라이버 (50) 는 수취한 「판독 출력 요구 신호」를 그대로 후단의 필터 드라이버 (46) 에 보낸다. 또한, 필터 드라이버 (46) 가 「판독 출력 요구 신호」를 수취한 경우에는 통상대로 네트워크 드라이버 (48) 를 통해 서버측으로부터 데이터의 판독 출력을 실시한다.
(ii) 판독 출력 캐시 데이터의 갱신
상기 (i) 의 경우, 최종적으로는 서버측으로부터 판독 출력한 데이터가 필터 드라이버 (46) 및 리드 캐시 드라이버 (50) 를 이 순서로 통과하여 OS 측 (40) 에 송출되게 된다. 그 때, 리드 캐시 드라이버 (50) 는 물리 디스크의 제 2 파티션 (P2) 에 할당되어 있는 「판독 출력 캐시 영역」에 필터 드라이버 (46) 가 판독한 데이터를 카피함과 함께, 물리 메모리 상의 캐시 관리 테이블의 플래그를 변경하여 판독 출력 캐시 데이터가 판독 출력이 완료된 상태인 것을 기억한다.
(iii) 기록 요구 신호의 처리
클라이언트 단말의 OS (또는 어플리케이션 소프트) (40) 가 「기록 요구 신호」를 송출한 경우, 리드 캐시 드라이버 (50) 는 필터 드라이버 (46) 보다 먼저 이 「기록 요구 신호」를 수취한다. 그러나, 「기록 요구 신호」를 리드 캐시 드라이버 (50) 가 수취한 경우에는, 리드 캐시 드라이버는 특별히 아무것도 하지 않고 이 「기록 요구 신호」를 그대로 후단의 필터 드라이버 (46) 에 보낸다. 또한, 필터 드라이버 (46) 가 「기록 요구 신호」를 수취한 경우에는 통상대로 네트워크 드라이버 (48) 를 통해 서버측의 소정 기록 영역에 데이터의 기록을 실시한다.
(2) 「캐시 관리 테이블」의 구조
도 13(a) 는 「캐시 관리 테이블」을 나타내고 있다. 캐시 관리 테이블은, 로컬 디스크 (물리 디스크) 의 판독 단위마다 2 비트의 관리 플래그를 할당하고, 이하에 설명하는 2 개의 값 (상태) 을 유지한다. 또, 이 관리 플래그는 물리 메모리 상의 비페이지 영역 (스왑 영역으로 퇴피되지 않는 영역) 에 확보한다.
(i) 관리 플래그
「캐시 관리 테이블」은 2 개의 관리 플래그를 이용하여 판독 출력 캐시 데이터의 상태를 기억한다. 이들 플래그의 초기 상태는 모두 0 으로 한다.
a. 판독 출력 관리 플래그 (0 또는 1)
b. 기록 관리 플래그 (0 또는 1)
(ii) 판독 출력 캐시 데이터가 없는 상태에서, OS 로부터의 판독 출력 신호에 대한 응답으로서 필터 드라이버가 수취한 데이터를 카피한 경우, 판독 출력이 완료된 것을 기억하기 위해, 판독 출력 관리 플래그의 데이터를 0 에서 1 로 변경한다. 즉, 판독 출력 관리 플래그가 1 이면, 판독 출력 캐시 데이터가 존재하는 것을 나타낸다. 그러나, 이것만으로는, 판독 출력 캐시 데이터가 그 후 기록이 행해져 내용이 갱신되었는지의 여부를 판별할 수 없다.
(iii) 상기 서술한 바와 같이 필터 드라이버가 OS 로부터 「기록 요구 신호」를 수취한 경우에는, 리드 캐시 드라이버는 특별히 아무것도 하지 않고 필터 드라이버에 데이터를 보내고, 네트워크 인터페이스를 통해 서버측의 가상 디스크에 기록을 실시한다. 이 때, 기록 관리 플래그의 상태를 0 에서 1 로 변경한다. 즉, 판독 출력 관리 플래그가 1 이어도, 기록 관리 플래그가 1 일 때에는, 그 후에 기록 처리가 행해지고 있기 때문에 판독 출력 캐시 데이터의 내용이 초기 상태로부터 변경되어 있으므로, 그 섹터에 대한 판독 출력 요구 신호에 대해서는, 이후 판독 출력 캐시 데이터를 일절 이용해서는 안되는 것을 의미한다. 기록 관리 플래그가 1 이 된 후에는, 클라이언트 단말측의 OS 를 셧다운할 때까지 그 상태가 유지된다. 바꾸어 말하면, 「기록 요구 신호」를 한 번이라도 수취했는지의 여부를 조사함으로써, 「어느 섹터 내의 데이터가 기록이 완료되었는지의 여부」를 판별할 수 있다.
도 13(b) 는 캐시 관리 테이블의 상태와 그 동작을 정리한 일람표를 나타내는 도면이다. 상태 I 은, 판독 출력 캐시 데이터가 존재하지 않는 경우이기 때문에, 데이터의 판독 출력에 대해서는 필터 드라이버 (46) 에 위임하게 되는데, 필터 드라이버 (46) 가 수취한 데이터를 OS 측 (40) 에 전달할 때에 판독 출력 캐시 데이터를 카피함과 함께 판독 출력 관리 플래그의 값을 1 로 변경하여 캐시 관리 테이블을 상태 II 로 천이시킨다. 상태 II 는 판독 출력 캐시를 이용할 수 있는 상태로서, 판독 출력 요구 신호에 대해 즉시 판독 출력 캐시 데이터의 내용을 응답한다. 상태 III 은, 기록 관리 플래그에 1 이 유지되어 있기 때문에, 캐시 데이터의 상태가 기록이 완료된 것을 나타내고 있다. 따라서, 이 섹터 내에 유지되어 있는 캐시 데이터를 이후 이용해서는 안된다. 상태 IV 는 OS 기동 후 판독 입력 처리가 한 번도 행해지지 않은 동안에 기록 요구 신호가 보내진 경우를 나타낸다. 이 경우에도 기록 관리 플래그에 1 이 유지되어 있기 때문에 이 섹터 내에 유지되어 있는 캐시 데이터를 이후 이용해서는 안된다. 또한, 후술하는 바와 같이, 관리 플래그의 상태는 항상 상태 I → 상태 II → 상태 III 또는 상태 I → 상태 IV 로 천이한다.
또한 「(2) (i) b.」에 있어서 설명한 바와 같이, 물리 디스크의 제 1 파티션 (P1) 에 기록 캐시를 할당함으로써, 클라이언트 단말측의 로컬 디스크의 일부에 기록이 완료된 데이터의 유지를 허용하는 캐시 영역을 추가로 형성하고, 이것을 기록 캐시로서 이용하여 네트워크 부하를 경감시켜도 된다. 단, 이 기록 캐시 영역 (P1) 은, 상기 서술한 「판독 출력 캐시 영역 (P2)」과는 상이한 영역에 별도로 형성해야 한다.
도 14 는 기록 캐시 (라이트 캐시) 를 형성한 경우의 디스크 액세스의 관계를 설명한 도면이다.
(iv) 캐시 관리 테이블의 백업
관리 플래그는 물리 메모리의 비페이지 영역 (스왑 영역으로 퇴피되지 않는 영역) 에 판독 입력되기 때문에, OS 를 재기동시키면 그 내용은 전부 소거된다. 그러나, 판독 출력 캐시 데이터를 OS 재기동 후에도 이용하기 위해서는, OS 재기동 전의 판독 출력 관리 플래그의 상태를 유지해 둘 필요가 있다. 그래서, 판독 출력 관리 플래그의 상태를 물리 디스크의 제 3 파티션 (P3) 의 「캐시 관리 영역」에 정기적으로 백업한다. 이 백업 동작은 필터 드라이버에 대한 데이터의 판독 출력이나 기록 처리와는 비동기로 행하면 된다. 단, 동기 누설 (동기 간격 사이에 갱신되는 것) 이 있어도, 그 섹터에 대해서는 판독 출력 캐시 데이터의 이용을 단념하고, 후단의 필터 드라이버에 처리를 위임한다. 이것은, 판독 출력 캐시이기 때문에, 상태 I 로 천이하여 다시 서버측 디스크 이미지로부터 판독 출력을 실시하면 데이터의 부정합은 발생하지 않기 때문이다.
캐시 관리 테이블은, OS 기동 중에는, 판독 출력 단위 (섹터) 마다 「판독 출력 관리 플래그」와「기록 관리 플래그」의 합계 2 비트 필요하다. 예를 들어, SCSI 디스크의 경우 1 섹터가 512 바이트이기 때문에, 512 바이트당 2 비트의 물리 메모리가 필요하다. 그러나, 기록 관리 플래그에 대해서는 재기동 후에는 모두 0 으로 하기 때문에, 캐시 관리 테이블의 상태를 기억하는 「캐시 관리 영역 (P3)」은, 판독 출력 관리 플래그의 상태만 보존하면 되므로, 512 바이트당 1 비트의 디스크 용량, 요컨대 판독 출력 캐시 데이터 1 GB (기가바이트) 당, 0.25 MB (메가바이트) 의 캐시 관리 영역이 최저한 필요하다.
단, 실제의 운용에서는, 판독 출력 캐시 데이터의 이용 효율을 높이기 위해, 「판독 출력 관리 플래그」의 데이터를 적어도 캐시 관리 영역의 상이한 2 지점 이상의 장소에 교대로 또한 정기적으로 기록함으로써, 신뢰성을 높이는 것이 바람직하다. 2 개의 복제를 백업하는 운용을 채용한 경우, 필요한 캐시 관리 영역의 용량은, 판독 출력 캐시 데이터 1 GB (기가바이트) 당, 0.5 MB (메가바이트), 예를 들어 판독 출력 캐시 데이터 영역이 30 GB (기가바이트) 이면, 15 MB (메가바이트) 가 된다.
(v) 정리
a. 기록 관리 플래그 및 판독 출력 관리 플래그가 모두 0 인 경우에는, 판독 출력 캐시 데이터가 존재하지 않기 때문에, 리드 캐시 드라이버 (50) 는 OS 측 (40) 으로부터의 판독 출력 요구 신호의 처리를 후단의 필터 드라이버 (46) 에 위임함과 함께, 필터 드라이버 (46) 가 수취한 데이터를 판독 출력 캐시 파티션 (P2) 에 카피하여 판독 출력 관리 플래그를 0 에서 1 로 변경한다 (상태 I → 상태 II).
b. 기록 관리 플래그가 0 이고, 판독 출력 관리 플래그가 1 인 경우 (상태 II) 에는, 리드 캐시 드라이버 (50) 는 OS 등 (40) 으로부터의 판독 출력 요구 신호에 대해 판독 출력 캐시 데이터로부터 판독 출력한 데이터를 응답한다.
c. 기록 요구 신호를 수취한 경우에는, 판독 출력 캐시 데이터를 이용하지 않고, 리드 캐시 드라이버 (50) 는 항상 후단의 필터 드라이버 (46) 에 판독 출력 요구 신호를 통과시키고, 이후의 처리는 후단의 필터 드라이버 (46) 에 위임함과 함께 기록 관리 플래그를 0 에서 1 로 변경한다 (상태 II → 상태 III). 또, OS 기동 후, 한 번도 판독 입력이 행해지지 않은 영역에, 기록이 행해진 경우에는, 판독 출력 관리 플래그 및 기록 관리 플래그가 모두 0 인 상태로부터, 기록 관리 플래그만을 1 로 변경한다 (상태 I → 상태 IV). 기록 관리 플래그에 1 이 유지되어 있을 때 (상태 III 및 상태 IV) 에는, 판독 출력 캐시 데이터를 이용해서는 안된다.
d. 서버측의 이미지 데이터가 갱신되어 있는 경우나 캐시 데이터가 파손된 경우 등은, 판독 출력 관리 플래그와 기록 관리 플래그의 양방을 0 으로 변경한다.
이상과 같은 구성에 의해, 네트워크 부트를 한 번 행한 클라이언트 단말이 다수 존재하고 있는 경우에는, 두 번째 이후의 기동은 네트워크를 통하지 않고 로컬 디스크의 캐시 데이터를 이용하여 기동시킬 수 있기 때문에, 네트워크 부하를 극적으로 경감시킬 수 있다.
특히, 캐시 데이터를 가지는 다수의 클라이언트가 일제히 기동해도, 네트워크 액세스가 실질상 제로가 되어, 모든 클라이언트가 로컬 디스크와 동등한 속도로 기동할 수 있게 된다. 그 결과, 서버 1 대당에 접속할 수 있는 클라이언트 단말 수를 대폭 증대시킬 수 있다. 또한, 기록 처리가 행해진 섹터를 캐시의 대상에서 제외하면서 판독 출력 캐시 데이터를 OS 의 재기동 후에도 보존해 나가기 때문에, 클라이언트 단말을 사용하면 할수록 네트워크 부하가 경감되어 간다.
게다가, 판독 출력 전용의 캐시이기 때문에, 하드 디스크 장해시 등, 만일 데이터의 판독 출력에 실패한 경우에는 가상 디스크 이미지로부터 네트워크 부트에 의해 기동하기 때문에, 종래대로의 디스크리스 단말로서 동작시킬 수도 있다.
또, 판독 출력 캐시 영역에 추가로, 스왑 영역이나 어플리케이션 소프트의 작업 영역이나 기록 캐시 영역을 별도 확보하면, 클라이언트 단말이 한층 쾌적하게 동작한다.
[5] 리비전 (개정 정보) 의 관리
네트워크 부트 시스템에서는, 가장 먼저, 클라이언트 단말의 OS 의 기동 이미지를 서버측에서 작성하는 것이 필요하다. 클라이언트 단말측은 이 기동 이미지를 네트워크를 통해 가상 디스크로서 탑재하여, 기동시킨다. 그 때, 클라이언트 단말측에서는 상기 서술한 리드 캐시 드라이버가 네트워크를 통해 판독 출력한 데이터를 순차적으로 유지해 감으로써, 한 번 판독 출력한 데이터 (보다 정확하게는 그 후 한 번도 기록이 행해지지 않은 것) 에 대해, 다시 판독 출력 요구가 있었을 때에는, 두 번째 이후에는 리드 캐시 데이터를 이용하게 된다. 즉, 리드 캐시 데이터가 있으면 2 회째 이후의 기동 속도가 극적으로 고속화된다.
그러나, 가상 디스크의 데이터가 개정 (리비전) 된 경우, 그대로는 리비전된 데이터를 리드 캐시 데이터에 반영시킬 수 없다. 또한, 가상 디스크의 데이터 개정을 실시하는 요인으로는, 예를 들어, OS 혹은 바이러스 패턴의 업데이트·프로그램의 신규 인스톨·OS 상의 여러가지 설정 변경 등이 상정된다.
도 4(a) 는 네트워크 상에 있는 가상 디스크의 실체가 되는 물리 디스크 (11) 에 포함되는 가상 디스크의 디스크 이미지와 그 개정 번호 (리비전) 의 변천을 나타내고 있다. 리비전은 시간적인 전후 관계를 나타내는 것으로, 순차적으로 증가하도록 부여하면, 대소 관계의 비교에 의해 전후 관계를 용이하게 비교할 수 있다. 이 예에서는, 현재의 가상 디스크의 데이터의 리비전이, 리비전 1 에서 리비전 5 까지 천이하고, 최신 리비전이 리비전 5 인 것을 나타내고 있다.
도 4(b) 는 시스템 내에 존재하는 복수의 클라이언트 단말 (20a ∼ 20c) 을 나타내고 있다. 이 클라이언트 단말측은 로컬 디스크 내에 리드 캐시 파티션 (P2) 을 가지고 있는데, 유지되어 있는 리드 캐시 데이터의 리비전은 각각 상이하다. 예를 들어, 클라이언트 단말 A 는, 리비전 1 의 캐시 데이터를 가지고 있고, 클라이언트 단말 B 는 리비전 3 의 캐시 데이터를 가지고 있고, 클라이언트 단말 C 는 리비전 5 의 캐시 데이터를 가지고 있다.
클라이언트 단말 C 는, 리드 캐시 데이터가 최신 리비전인 리비전 5 와 일치하기 때문에, 리드 캐시 데이터를 그대로 이용해도 데이터의 부정합을 발생시키는 경우는 없어, 안전하다.
이에 대해, 클라이언트 단말 A 및 B 는, 리드 캐시 데이터가 최신 리비전 (리비전 5) 보다 오래되었기 때문에, 로컬 디스크 내에 유지되어 있는 리드 캐시 데이터를 그대로 이용한 경우에는, 데이터의 부정합을 발생시킨다. 즉, 리드 캐시되어 있는, 어느 섹터 내의 데이터가 vDisk 에 있어서의 동일 섹터 내의 데이터와 불일치가 되어, 본래 판독 입력해야 할 데이터와는 상이한 데이터를 클라이언트 단말이 판독하게 된다. 이와 같은 상황은, 클라이언트 단말측의 동작을 불안정하게 하는 것이 우려되고, 최악의 경우, 그 클라이언트 단말에 있어서 OS 가 기동이 동작하지 않게 될 위험이 있다.
그래서, 가상 디스크의 데이터와 리드 캐시 데이터의 현재의 리비전을 각각 보존하는 영역을 형성하여, 양자가 일치하고 있는지의 여부를 판정함으로써 리드 캐시 데이터를 이용해도 되는지의 여부를 판단할 수 있다.
그리고, 일치하고 있는 경우에는 리드 캐시 데이터를 그대로 이용하고, 불일치이면, 리드 캐시 데이터를 모두 파기하고, 다시 리드 캐시를 실시함으로써, 안전하게 리드 캐시를 동작시킬 수 있다.
또한, 리비전은 시간적인 전후 관계를 나타내는 것이면 된다. 따라서, 시각 정보 그 자체를 리비전으로서 이용해도 된다.
(제 1 실시형태의 변형예)
도 15 에 나타내는 바와 같이, 클라이언트 단말로부터 독립된 장소에 로컬 디스크를 가지는 클라이언트 프록시 (대리 단말) (30) 를 설치해도 된다. 클라이언트 단말 (20) (20a, 20b, ···) 과 클라이언트 프록시 (30) 를 동일한 LAN 내에 두거나 하여 양자 사이에 고속 통신을 확보해 두면, 서버 (10) 와의 데이터 교환은 클라이언트 프록시 (30) 가 대리하기 때문에, 서버-프록시 사이의 네트워크는 「저속」혹은 「고지연」이어도 된다. 본 명세서에 있어서의 「클라이언트 단말이 물리적인 기억 장치를 구비하는 경우」에는, 로컬 디스크를 구비한 클라이언트 프록시 (30) 를 이용하는 대신에 클라이언트 단말측이 물리적인 기억 장치 (로컬 디스크) 를 구비하고 있지 않은 경우가 포함되는 것으로 풀이한다.
(제 2 실시형태) -더티 플래그 (기록 완료 플래그)-
네트워크 부트 시스템은, 통상 「쉐어 모드」와「프라이빗 모드」라는 2 가지의 동작 모드를 가지고 있다. 쉐어 모드란, 복수의 클라이언트 단말에서 서버 상의 가상 디스크를 공유하여 사용하는 모드로서, 시스템을 통상적인 운용 환경에서 동작시키기 위한 모드이다. 한편, 프라이빗 모드란, 서버 상의 가상 디스크에 클라이언트가 직접 기록할 수 있는 모드로서, 시스템을 보수 (메인터넌스) 환경에서 동작시키기 위한 모드이다. 프라이빗 모드로 설정된 상태에서 클라이언트 단말을 기동시킴으로써, OS 나 프로그램의 업데이트나 신규 인스톨 혹은 설정 변경을 실시하는 등, 가상 디스크의 데이터에 변경을 가할 수 있다.
동작 모드의 설정은, 서버 상에서 행해진다. 클라이언트 단말은, 현재의 모드가 쉐어 모드인지 프라이빗 모드인지를 알 수 없는 것이 통상적이다.
쉐어 모드로 기동시킨 경우, 클라이언트 단말은 가상 디스크에 직접 기록 데이터를 보낼 수 없기 때문에, 각 클라이언트마다 형성된 소정 기록 캐시에 기록 데이터를 보존한다. 이 기록 캐시의 보존 영역은, 시스템에 따라 여러가지이고, 예를 들어 클라이언트측의 로컬 디스크의 기록 캐시 영역 (예를 들어 도 3(a) 의 물리 파티션 (P1)), 혹은 서버측의 물리 디스크, 네트워크 상에 형성된 파일 서버 등, 모두 OS 의 기동 이미지가 보존되어 있는 가상 디스크와는 상이한, 클라이언트 단말마다 형성된 소정 데이터 보존 영역이다.
프라이빗 모드로 기동시킨 경우, 클라이언트 단말은 가상 디스크에 직접 기록 데이터를 보낼 수 있어 가상 디스크의 데이터에 변경을 가할 수 있다.
즉, 클라이언트 단말이 기록 데이터를 보존하는 경우, 쉐어 모드로 기동되었을 때에는 소정 기록 캐시에, 프라이빗 모드로 기동되었을 때에는 가상 디스크에 기록 데이터를 보존하게 되는데, 클라이언트 단말 자신은, 기록 데이터의 보존처를 선택하는 것은 물론, 현재의 보존처가 기록 캐시와 가상 디스크의 어느 쪽인지를 의식하는 것조차 불가능한 것이 통상적이다.
가상 디스크의 데이터에 변경을 가할 때의 종래의 순서는, 시스템 관리자가 먼저 쉐어 모드로부터 프라이빗 모드로 설정 변경한 후, 특정한 클라이언트 단말 1 대를 기동시키고, 그 곳에서 가상 디스크의 데이터의 갱신을 실시하고, 마지막에 프라이빗 모드를 쉐어 모드로 설정을 되돌리고, 마지막에 가상 디스크의 리비전을 수동으로 갱신한다는 것이다.
판독 출력 캐시 기구를 구비한 네트워크 부트 시스템에 있어서, 가상 디스크의 리비전이 갱신되어 가는 경우에, 클라이언트 단말측에 요구되는 조건은, 「리비전이 상이할 때에는, 리드 캐시 데이터를 그대로 이용하여 기동해서는 안된다」는 것이다. 만일, 가상 디스크의 데이터의 리비전과 리드 캐시 데이터의 리비전이 형식적으로는 동일함에도 불구하고, 데이터의 불일치가 있는 경우, 예를 들어, 시스템 관리자가 프라이빗 모드로 가상 디스크의 데이터를 개정한 후, 쉐어 모드로 설정을 되돌렸을 때에, 리비전을 갱신하는 것을 잊은 경우에, 리드 캐시 데이터를 그대로 이용하여 클라이언트 단말을 기동시키면, OS 가 기동하지 않거나 이상 정지되는 등 중대한 트러블의 원인이 된다.
그런데, 이와 같은 문제가 일어나는 직접적인 원인은, 클라이언트 단말이 리비전 개정 전의 리드 캐시 데이터를 사용하는 것에 있고, 발상을 전환하여,
『가상 디스크의 데이터에 변경이 가해졌을 때에는, 특별한 조건을 만족하지 않는 한, 리비전의 일치 불일치에 관계없이 판독 출력 캐시를 정지시킴』으로써, 모든 문제가 해결된다.
이 발상을 실현하기 위해 필요한 것은, 「가상 디스크의 데이터가 개정된 것을 나타내는 마크를 가상 디스크 내에 형성하는 것」이다. 이하, 도면을 참조하여 그 구체적인 방법에 대해 상세히 서술한다.
시스템 구성으로서, 기록 캐시 파티션 (예를 들어 도 3 에 있어서의 파티션 (V1)) 과, 가상 디스크의 일부 (예를 들어 도 3 에 있어서의 파티션 (V2)) 에 1 비트의 플래그 보존 영역을 형성한다. 또한, 디스크 액세스의 관계도는 도 14 를 원용한다. 이 중, 가상 디스크의 플래그 보존 영역에 유지되는 플래그를 특히 「더티 플래그」라고 정의한다. 더티 플래그는, 가상 디스크의 데이터에 변경이 가해진 것을 모든 클라이언트에게 전하는 수단으로서 기능한다. 클라이언트 단말은, 기동시에 리비전이 아니라 더티 플래그의 값에 기초하여 판독 출력 캐시를 기동시킬지, 정지시킬지를 판단한다.
(더티 플래그에 관한 룰)
도 6 은 더티 플래그에 관한 룰을 설명하는 일람표이다. 이하, 구체적으로 설명한다.
룰 1. 클라이언트 단말의 CPU 는, 기동시에 「가상 디스크의 더티 플래그」에 「1」이 기록되어 있는지의 여부를 조사하여, 가상 디스크의 더티 플래그의 값에 따라 이하와 같이 동작을 전환한다.
룰 1-1 더티 플래그가 0 일 때에는, 판독 출력 캐시를 개시한다 (통상 동작).
룰 1-2 더티 플래그가 1 일 때에는, 판독 출력 캐시를 정지시킨다.
룰 2. 클라이언트 단말을 기동시켰을 때, 항상 현재의 플래그 보존 영역에 「1」을 기록한다.
룰 3. 프라이빗 모드로 기동시켜, 가상 디스크의 데이터 개정에 성공한 후, 리비전을 안전하게 갱신하였을 때에는 「더티 플래그」를 클리어하기 위해 더티 플래그에 「0」을 기록한다.
룰 2 에 있어서, 쉐어 모드로 기동시켰을 때의 「현재의 플래그 보존 영역」은 기록 캐시이고, 프라이빗 모드일 때에는 가상 디스크이다. 요컨대, 쉐어 모드로 몇 회 기동시켜도 가상 디스크에 기록이 행해지는 경우는 없으므로, 더티 플래그의 값은 변경되지 않지만, 프라이빗 모드로 기동시킨 경우에는, 가상 디스크의 데이터 변경의 유무에 상관없이, 기동시킨 시점에서 더티 플래그의 값이 1 이 된다. 「현재의 플래그 보존 영역」은, 동작 모드에 의해 상대적으로 변동된다.
또, 룰 3 이 실행되지 않고, 만일, 더티 플래그가 0 으로 설정되지 않은 경우, 더티 플래그가 1 인 상태 그대로이다. 이 경우, 룰 1-2 에 의해 판독 출력 캐시가 정지되어 있기 때문에, 프라이빗 모드이면 개정 작업을 계속할 수 있고, 쉐어 모드이면 캐시 데이터와의 부정합에 의한 시스템의 장해는 회피된다.
도 5(a) 는 클라이언트 단말을 쉐어 모드로 기동시켰을 때의 클라이언트 단말의 동작을 나타내고, 도 5(b) 는 클라이언트 단말을 프라이빗 모드로 기동시켰을 때의 클라이언트 단말의 동작을 나타내고 있다.
만일, 도 5(a) 와 같이, 쉐어 모드로 기동되고 있다고 하면, 기동시에 기록되는 1 비트의 기록 데이터의 보존처는, 「기록 캐시」의 일부에 형성된 플래그 보존 영역이기 때문에, 가상 디스크의 더티 플래그에 기록되는 경우는 없다. 따라서, 더티 플래그의 값은 변화하지 않고, 기동 전의 상태, 즉, 기동 전의 플래그 상태가 0 이라면 기동 후에도 0 인 상태 그대로가 된다.
그런데, 도 5(b) 와 같이, 프라이빗 모드로 기동되고 있다고 하면, 기동시에 기록되는 1 비트의 기록 데이터의 보존처는, 「기록 캐시」의 일부에 형성된 플래그 보존 영역이 아니라, 가상 디스크의 더티 플래그이다. 따라서, 더티 플래그의 값은 기동 전의 상태에 관계없이 1 이 된다.
즉, 클라이언트 단말이 기동시에 더티 플래그의 값을 조사함으로써, 리드 캐시 데이터를 이용하면 되는지의 여부를 판단할 수 있다. 더티 플래그의 값이 1 이면, 리비전의 값에 관계없이 가상 디스크의 데이터에 변경이 가해졌을 가능성이 있고, 더티 플래그의 값이 0 이면, 리비전의 값에 관계없이 가상 디스크의 데이터의 버전은 리드 캐시 데이터의 버전과 동등할 것이라고 판단할 수 있다. 이와 같이, 리비전의 비교가 아니라 더티 플래그의 값에 의해 판독 출력 캐시의 동작을 결정하는 것이다. 더티 플래그의 값은 모든 클라이언트가 공유하는 「가상 디스크의 일부」이기 때문에, 모든 클라이언트 단말이 기동시에 알 수 있다. 그리고, 더티 플래그의 값이 1 이면, 어느 클라이언트 단말이 가상 디스크의 데이터에 변경을 가한 것을 의미하므로, 그 클라이언트 단말은, 판독 출력 캐시를 정지시킨다 (룰 1-2).
도 7 은 가상 디스크의 데이터 개정 순서를 설명하는 플로우 차트이다. 가상 디스크의 데이터를 개정할 때에는, 처음에 서버의 설정을 「프라이빗 모드」로 설정하여 클라이언트 단말을 기동시킨다 (Start). 클라이언트 단말의 CPU 는, 더티 플래그의 값을 확인한다 (Sa1).
더티 플래그가 1 인 경우, 가상 디스크의 데이터가, 이미 다른 클라이언트 단말에 의해 개정되었거나 혹은 개정 중일 가능성이 있기 때문에, 판독 출력 캐시를 정지시킨다 (룰 1-2). 이로써, 예를 들어,
1. 프라이빗 모드로 클라이언트 단말 A 를 기동시키고, 개정 작업 후, 클라이언트 단말 A 를 정지시킨다.
2. 또한, 리비전 갱신하지 않고, 프라이빗 모드인 채로 단말 B 를 기동시키고, 개정 작업을 계속 실시하여, 클라이언트 단말 B 를 정지시킨다.
3. 그 후, 가상 디스크의 「리비전을 갱신」하여 「기록 플래그를 클리어」한다.
라는 일련의 작업을 문제없이 실시할 수 있어, 서버의 메인터넌스가 용이해진다.
단, 이 때, 「프라이빗 모드로 처음 기동시킨 클라이언트 단말 A 에 의한 갱신 작업시」에는 판독 출력 캐시가 동작하고 있어도 문제가 없는 반면, 프라이빗 모드에서의 2 회째의 기동이 되는 클라이언트 단말 B 에서의 갱신 작업시」에는, 판독 출력 캐시는 반드시 정지되어 있어야 한다. 이 이유에 의해, 단말의 기동시에는, 매회 반드시 「기록 완료 플래그를 유지시킨다」라는 동작을 실시하고 있는 것이다. 그 동작의 결과로서, 프라이빗으로 기동시켰을 때에는, 안전하게 리비전의 갱신 작업을 끝내고 더티 플래그를 클리어하지 않는 한, 그 다음으로 기동시켰을 때에 더티 플래그가 1 이 되어 있다는, 기대한 대로의 결과가 된다.
더티 플래그가 0 인 경우, 가상 디스크의 데이터는 변경되어 있지 않기 때문에, 지금부터 개정 작업을 실시하는 것을 다른 클라이언트 단말에 알리기 위해, 플래그에 1 을 기록한다 (룰 2). 지금, 서버는 프라이빗 모드로 기동하고 있으므로, 가상 디스크의 일부에 형성한 「더티 플래그」에 1 이 기록된다 (Sa2). 이로써, 예기치 않은 클라이언트 단말이 기동해도, 더티 플래그가 1 이므로 기동시에 판독 출력 캐시가 정지된다 (룰 1-2).
다음으로, 가상 디스크의 데이터에 변경을 가한다 (Sa3). 예를 들어, OS 의 업데이트, 어플리케이션의 인스톨이나 갱신·삭제, 각종 설정 변경 등을 실시한다. 또한, 가상 디스크는 모든 클라이언트 단말이 공유하기 때문에, 데이터의 변경은 모든 클라이언트의 동작에 영향을 미친다. 단, 리드 캐시 데이터가 있는 경우에는, 리드 캐시 데이터를 그대로 이용할 수 없기 때문에, 모든 리드 캐시 데이터를 파기하거나 (제 1 실시형태), 또는 변경이 가해진 섹터에 대응하는 리드 캐시 데이터만을 파기한다 (제 3 실시형태). 이로써, 데이터의 부정합에 의한 심각한 시스템 장해라는 문제를 회피할 수 있다.
데이터의 개정이 종료된 후, 가상 디스크의 리비전을 갱신하고, 마지막으로 더티 플래그를 0 으로 설정한다 (룰 3).
이상과 같이, 본 실시형태에 관련된 발명은, 「판독 출력 캐시가 동작해서는 안되는 상태」가 어떠한 상태일 때인가라는 점에 대한 상세한 검토에 기초하고 있다. 일견, 「프라이빗 모드로 기동시키고 있을 때」가 조건처럼도 생각되지만, 상세하게 검토하면, 「프라이빗 모드로 처음 기동된 후, 2 회째 이후에 프라이빗 모드로 기동된 경우」인 것을 알 수 있다. 그래서, 가상 디스크 내에 「더티 플래그」라는 1 비트의 영역을 확보하고, 각 클라이언트 단말의 프라이빗 모드에서의 기동시에는 반드시 이 플래그를 유지시킨다는 운용으로 하면, 「기록 허가 모드로 변경된 후, 2 회째 이후에 기동된 경우」에만 이 플래그의 값이 1 이 된 상태에서 프라이빗 단말이 기동되게 된다. 이후에는, 「더티 플래그의 값이 1 이 되어 있을 때에는 판독 출력 캐시의 동작을 하지 않는다」라는 판단을 넣음으로써, 안전하게 리드 캐시 데이터를 이용할 수 있다. 또한, 이 「기록 완료 플래그」는 「리비전 갱신 작업」시에 동시에 실시하는 설계로 함으로써, 보다 안전하게 운용할 수 있다.
(제 3 실시형태) -리드 캐시 데이터의 리비전 갱신-
제 3 실시형태에서는, 쉐어 모드에 있어서, 클라이언트 단말이, 자신이 보존하고 있는 리드 캐시 데이터의 리비전보다 가상 디스크의 리비전이 큰 것을 검지한 경우의 동작에 대해 설명한다. 이 경우, 가장 안전한 동작은 제 2 실시형태에서 설명한 바와 같이, 과거의 캐시 데이터를 모두 파기하고, 새롭게 판독 출력 캐시 데이터를 재구성하는 것이다.
그러나, 이 방법에서는, 리비전이 갱신될 때마다 축적된 리드 캐시 데이터 전부가 소용없게 되어, 네트워크 부하를 증대시키는 원인도 된다. 그 한편으로, 리비전이 상이한 2 개의 vDisk 의 데이터를 비교하였을 때, 리비전의 번호가 가까우면 가까울수록 데이터의 차분은 작기 때문에, 대부분의 데이터가 변경되지 않고 유지되어 있을 것이다. 따라서, 이와 같은 경우에 모든 리드 캐시 데이터를 파기해 버리는 것은 매우 비효율적이며, 가능한 한 이와 같은 사태를 피하는 것이 바람직하다. 그래서, 이미 판독 출력된 캐시 데이터를 최대한 이용하도록, 즉, 리비전의 갱신 결과, 변경이 행해진 섹터 내의 데이터만 데이터를 파기하여 가상 디스크로부터 다시 판독 입력하고, 변경되지 않은 섹터 내의 리드 캐시 데이터는 파기하지 않고 유지한다.
본 발명에 관련된 네트워크 부트 시스템에서는, 상이한 리비전 사이에서 가상 디스크 내의 어느 영역의 데이터가 변경되었는지를 나타내는 「변경 영역 맵」을 작성하고, 그 변경 영역 맵을 개정 전의 리비전의 「캐시 관리 테이블」에 적용함으로써 개정 후의 캐시 관리 테이블을 생성하고, 이로써, 파기하는 데이터를 필요 최소한으로 한정시키고 있다. 이하, 도 8 을 참조하여, 구체예를 설명한다.
도 8(a) 는 리비전 12 로부터 리비전 13 으로의 변경 영역 맵을 예시한 것이다. 리비전의 갱신에 의해, 섹터 내의 데이터에 변경이 가해진 영역 (변경 영역) 을 1, 리비전의 갱신에 의해, 섹터 내의 데이터에 변경이 가해지지 않는 영역 (미변경 영역) 을 0 으로 하여, 모든 섹터에 대한 변경의 유무를 나타내고 있다. 도 8(a) 에 나타내는 변경 영역 맵은, 섹터 A 와 섹터 B 에 1 이 기록되고, 그 외에는 모두 0 이 기록되어 있다. 이것은, 리비전 12 로부터 리비전 13 으로 변경됨으로써, 섹터 A 와 섹터 B 의 데이터에 변경이 가해지고, 그 밖의 섹터에는 일절 변경이 가해지지 않은 것을 나타내고 있다. 즉, 변경 영역 맵 (60) 이란, 리비전 사이에서 가상 디스크의 데이터 중 어느 영역의 데이터가 개정되었는지를 기록하여 관련짓는 개정 이력의 관리 정보로서, 1 비트의 정보 (0 또는 1) 로 나타내는 비트열이고, 예를 들어 초기 상태를 0 으로 하고, 변경이 행해진 영역은 1, 미변경 영역은 0 을 할당한다.
변경 영역 맵은 변경된 데이터 영역 (섹터) 을 나타내는 것만으로 그 영역 내의 데이터 내용에 대해서는 일절 정보를 유지하지 않는다. 이 때문에, 변경 영역 맵의 용량 사이즈를 가상 디스크 (vDisk) 의 사이즈보다 훨씬 작게 할 수 있다. 예를 들어, 현상황의 하드 디스크 등의 기록 단위를 예로 하여, 1 섹터에 512 바이트의 데이터가 보존되어 있다고 하면, 512 바이트 (= 4096 비트) 당 1 비트가 되기 때문에, 가상 디스크 용량의 1/4096 (= 1 비트/512 바이트) 사이즈이면 되는 것을 알 수 있다.
도 8(b) 는 리비전 12 의 캐시 관리 테이블 (70a) 을 예시한 도면이다. 이 예에서는, 가상 디스크의 섹터 A 의 데이터가 이미 리드 캐시 데이터로서 클라이언트 단말의 로컬 디스크 내에 보존되어 있는 것, 및 가상 디스크의 섹터 B 의 데이터는 리드 캐시 데이터가 없는 것을 나타내고 있다.
도 8(c) 는, 도 8(a) 에 나타내는 리비전 12 에서 13 으로의 「변경 영역 맵」을 도 8(b) 에 나타내는 리비전 12 의 「캐시 관리 테이블」에 적용함으로써 생성된, 리비전 13 의 캐시 관리 테이블을 나타내고 있다. 상기 서술한 바와 같이, 가상 디스크에 있어서의 섹터 A 내의 데이터는, 클라이언트 단말에 있어서 판독 출력 완료이고, 이미 리드 캐시 데이터를 유지하고 있다. 그러나, 도 8(a) 의 변경 영역 맵에 의하면, 섹터 A 내의 데이터는 개정되어 있기 때문에, 로컬 디스크 내에 유지되어 있는 섹터 A 의 리드 캐시 데이터는 파기되어야 한다. 한편, 섹터 B 의 리드 캐시 데이터는, 원래 리드 캐시 데이터가 없기 때문에, 캐시 관리 플래그를 0 으로 하여 네트워크를 통해 판독 출력할 수 있다.
이와 같이, 리비전 사이의 변경 영역 맵에 의해, 클라이언트측에 리드 캐시되어 있는 데이터를 최대한 살리면서 안전하게 리비전을 갱신시킬 수 있어, 네트워크 부하를 경감시킬 수 있다.
따라서, 리비전이 얼마만큼 오래되어도, 현재의 리비전의 캐시 관리 테이블과, 최신 리비전 사이에 이르는 모든 변경 영역 맵만 있으면, 각 리비전 사이의 변경 영역 맵을 순차적으로 적용함으로써, 리드 캐시 데이터의 파기를 최소한의 섹터에 한정시켜, 최신 리비전에 대응시킬 수 있는 것을 알 수 있다.
도 9(a) 는 변경 영역 맵군 (61) 을 나타내고 있다. 이 변경 영역 맵군은, 리비전 1 로부터 리비전 2, 리비전 2 로부터 리비전 3, ···, 리비전 19 로부터 최신인 리비전 20 으로, 인접하는 모든 리비전 사이의 변경 영역 맵을 모은 것이다.
도 9(b) 는, 도 9(a) 에 나타내는 변경 영역 맵군 (61) 을 순차적으로 적용함으로써, 클라이언트 단말 상의 리드 캐시 드라이버가 관리하는 캐시 관리 테이블이, 리비전 18 의 캐시 관리 테이블로부터 최신 리비전인 리비전 20 으로 순차적으로 천이되어 가는 모습을 나타내고 있다.
즉, 도 9 에 나타내는 예에서는, 클라이언트 단말 상의 리드 캐시 드라이버가 관리하는 캐시 관리 테이블의 리비전 (리드 캐시 데이터의 리비전) 이 리비전 18 인 경우, 이 리비전 18 의 캐시 관리 테이블에 리비전 18 로부터 리비전 19 로의 변경 영역 맵 및 리비전 19 로부터 리비전 20 으로의 변경 영역 맵을 순차적으로 적용하면, 변경 영역 맵의 값이 1 인 섹터 (변경 영역) 에 대응하는 캐시 관리 테이블이 순차적으로 0 으로 갱신되고, 최신 리비전 20 의 캐시 관리 테이블이 생성된다.
도 10(a) 는 2 개의 변경 영역 맵으로 이루어지는 변경 영역 맵군 (62) 과, 양자를 집약한 1 개의 변경 영역 맵 (63) 을 예시하고 있다. 변경 영역 맵군 (62) 은, 리비전 18 로부터 리비전 19 로의 변경 영역 맵 (62a) 과, 리비전 19 로부터 리비전 20 으로의 변경 영역 맵 (62b) 으로 구성된다. 또, 변경 영역 맵군 (62) 의 하단에 나타낸 변경 영역 맵 (63) 은, 리비전 18 로부터 리비전 20 으로의 변경 영역 맵인데, 변경 영역 맵 (63) 의 비트열은, 변경 영역 맵 (62a) 과 변경 영역 맵 (62b) 의 논리합 (or) 과 일치하고 있다. 이 예로부터 분명한 바와 같이, 집약된 하나의 변경 영역 맵을 작성하기 위해서는, 단순히, 집약되는 복수의 리비전 사이의 변경 영역 맵군의 논리합을 구하면 되는 것을 알 수 있다. 또한, 변경 영역의 섹터를 직접 기록하는 방법의 경우, 상기 서술한 바와 같은 변경 영역 맵의 집약은 불가능하다.
도 10(b) 는, 도 10(a) 에 나타내는 집약된 변경 영역 맵 (63) 을 리비전 18 의 캐시 관리 테이블에 적용한 경우에 있어서의 캐시 관리 테이블 (72) 의 천이 상태를 나타내고 있다. 클라이언트 단말 상의 리드 캐시 드라이버가 관리하는 리비전 18 의 캐시 관리 테이블 (72a) 에 대해, 집약된 변경 영역 맵 (63) 을 적용하면, 도 9(b) 에 나타내는 리비전 20 의 캐시 관리 테이블과 동일한 캐시 관리 테이블 (72b) 이 얻어지는 것을 알 수 있다.
도 11(a) 는 복수의 집약된 변경 영역 맵군 (64) 을 예시하고 있다. 여기에 나타내는 변경 영역 맵군 (64) 은, 리비전 13 으로부터 리비전 15 로의 변경 영역 맵 (64a) 과, 리비전 15 로부터 리비전 18 로의 변경 영역 맵 (64b) 과, 리비전 18 로부터 리비전 20 (단, 리비전 20 은 최신 리비전이라고 한다) 으로의 변경 영역 맵 (64c) 으로 구성된다.
도 11(b) 는, 리비전 16 의 캐시 관리 테이블을 가지는 클라이언트 단말을 최신인 리비전 20 으로 천이시킬 때의 캐시 관리 테이블 (73) 의 천이 상태를 예시하고 있다. 리비전 16 을 리비전 18 로 천이시키는 경우, 도 11(a) 에서 나타낸 리비전 15 로부터 리비전 18 의 변경 영역 맵 (64b) 을 적용할 수 있다. 왜냐하면, 리비전 16 은, 15 내지 18 사이에 포함되기 때문이다. 이로부터 또한, 리비전 18 로부터 리비전 20 으로의 변경 영역 맵 (64c) 을 리비전 16 의 캐시 관리 테이블에 적용하면 된다. 즉, 집약된 변경 영역 맵은, 집약된 범위에 포함되는 모든 리비전의 캐시 관리 테이블에 적용할 수 있다.
도 11(c) 는, 리비전 12 의 캐시 관리 테이블로부터 리비전 20 의 캐시 관리 테이블로 갱신시킨 경우의 캐시 관리 테이블의 천이를 나타내고 있다. 이 예와 같이, 클라이언트 단말의 리드 캐시 데이터의 리비전이, 복수의 집약된 변경 영역 맵군에 포함되는 어느 리비전의 범위 내에도 존재하지 않는, 오래된 리비전 (즉, 도 11(a) 의 예에서는 리비전 12 이전) 의 캐시 관리 테이블에 대해서는, 리비전 12 의 캐시 관리 테이블을 리비전 20 의 캐시 관리 테이블로 갱신할 수 없다.
이와 같은 경우, 클라이언트 단말 상의 리드 캐시 드라이버는, 클라이언트 단말 상의 리드 캐시의 데이터를 모두 파기하여, 다시 신규로 데이터를 판독 입력하는 것이 필요한데, 이와 같이 하면, 최신 리비전 20 의 캐시 관리 테이블에서 캐시되는 데이터와 동일한 데이터를 캐시할 수 있게 된다.
또, 변경 영역 맵은 리비전이 올라갈수록 수가 증가하기 때문에, 충분한 보존 영역을 확보할 수 없는 경우를 생각할 수 있다. 그러나, 이와 같은 경우에는, 복수의 변경 영역 맵을 집약함으로써, 변경 영역 맵의 수를 줄이거나, 또는 이미 남아 있지 않을 오래된 리비전의 변경 영역 맵을 삭제함으로써 대처할 수 있다. 만일, 리비전의 갱신이 불가능한 경우가 있어도, 그 경우에는 도 11(c) 에서 설명한 바와 같이, 클라이언트 단말 상의 리드 캐시의 데이터를 모두 파기하여, 다시 신규로 데이터를 판독 입력함으로써 대처할 수 있다.
변경 영역 맵은, 가상 디스크와의 데이터의 정합성과 변경 영역 맵의 축적 및 집약에 의한 클라이언트 단말 상의 캐시 관리 테이블의 데이터 갱신의 편리성으로부터, 프라이빗 모드로 가상 디스크의 데이터를 개정할 때마다 작성하는 것이 바람직하다. 이 경우, 먼저 변경 영역 맵을 작성하고, 이어서 데이터의 기록을 실시해야 한다. 또, 변경 영역 맵은, 클라이언트가 기동시에 액세스할 수 있는 장소로서, 기록 작업시에 기록을 남길 수 있는 장소에 유지하는 것이 바람직하다. 따라서, 변경 영역 맵을 유지하기 위한 기억 영역은, 가상 디스크 내에 확보하는 것이 합리적이다. 가상 디스크 내에 변경 영역 맵을 확보하면, 어느 클라이언트 단말로부터라도 개정 작업이 가능하게 되는 등의 이점이 있다.
(제 4 실시형태) -복수의 가상 디스크의 공유-
제 4 실시형태에서는, 가상 디스크가 복수 존재하고 있는 경우에 대해 설명한다. 클라이언트 단말이 기동시에 어느 가상 디스크에서 기동할지를 선택할 수 있도록 구성되어 있을 때에는, 각각의 가상 디스크에 대해 리비전의 갱신이 행해진다. 따라서, 그 경우, 각각의 가상 디스크에 타이틀이나 식별 기호 등을 부여하여, 어느 가상 디스크에 대한 리비전인지를 구별하는 것이 필요하다.
어느 하나의 가상 디스크에 주목하였을 때, 그 가상 디스크의 리비전이 갱신되어 데이터의 내용이 조금씩 변경되었다고 해도, 당해 가상 디스크가 OS 로서의 동일성을 잃지 않는 것은 말할 필요도 없다. 이와 같은 의미에서, 하나의 가상 디스크와 변경 영역 맵에 의한 개정 이력 정보를 포함하는 일체성이 있는 계열을 「OS 그룹」으로 정의한다.
리비전은 동일한 OS 그룹에 속하는 가상 디스크의 갱신 정보로서, OS 그룹이 동일하면, 가상 디스크의 용량은 동일하고, 또한 캐시 영역도 동일한 것을 사용한다. OS 그룹에 관한 정보 (OS 의 이름이나 식별 기호 등) 는 변경 영역 맵 등과 함께, 가상 디스크 자체 또는 가상 디스크에 관련된 장소에 보존하는 것이 바람직하다. 가상 디스크의 일부에 정보를 매립하거나, 또는, 네트워크를 통해 정보를 취득할 수 있도록 하면 네트워크 상의 어디에 보존해도 지장이 없다.
따라서, 복수의 OS 그룹이 존재하는, 즉 가상 디스크가 복수 존재하는 경우에는, 가상 디스크의 데이터와 리드 캐시 데이터의 각각의 리비전을 대비할 뿐만 아니라, OS 그룹이 동일한지의 여부에 대해서도 판단하는 것이 필요하다.
그 때문에, 클라이언트 단말 상의 리드 캐시 드라이버는, 클라이언트 단말 상의 리드 캐시 데이터의 OS 그룹 및 그 리비전과, 가상 디스크의 OS 그룹 및 그 리비전을 비교하여 이하의 처리를 실시한다.
(1) OS 그룹 및 리비전 쌍방이 일치하는 경우, 리드 캐시 데이터를 그대로 이용한다.
(2) OS 그룹이 동일하고 가상 디스크의 리비전이 새로운 경우, 리드 캐시 데이터를 갱신하여, 갱신된 리드 캐시 데이터를 이용한다.
(3) OS 그룹이 동일하고 가상 디스크의 리비전이 오래된 경우, 리드 캐시 데이터를 이용하지 않는다.
(4) OS 그룹이 상이한 경우, 리드 캐시 데이터의 데이터를 모두 파기하고 새롭게 판독 출력 캐시를 구성하거나 또는 판독 출력 캐시를 이용하지 않는다.
이와 같이, 리비전은 OS 그룹이 일치하는 것끼리 관리된다. 따라서, OS 그룹이 복수 존재할 때에는 OS 그룹이 일치하는지의 여부에 대해서도 고려하여, 리드 캐시 데이터를 이용할 수 있는지의 여부를 판단하고, 이용할 수 있을 때만 이용할 필요가 있다.
클라이언트 단말측은 OS 그룹을 기동시에 선택함으로써, 상이한 OS 를 기동시키거나, 설정이 상이한 상태에서 기동시키거나 할 수 있다. 리드 캐시 데이터를 이용할 수 있는 경우에는 네트워크 부하를 경감시킬 수 있고, 기동 속도도 향상된다.
산업상 이용가능성
본 발명에 관련된 변경 영역 맵은, 네트워크 부트 시스템에 있어서, 클라이언트 단말 상의 캐시의 데이터를 갱신할 때에 가해지는 네트워크 부하를 경감시킬 수 있다. 이와 같이, 본 발명을 실시한 경우의 산업상 이용가능성은 매우 크다.

Claims (8)

  1. 클라이언트 단말 상에서 동작하는 오퍼레이팅 시스템을 포함하는 디스크 이미지를 가상 디스크로서 제공하는 네트워크 부트 서버와, 물리적인 기억 장치를 구비한 클라이언트 단말이 네트워크를 통해 접속되고,
    상기 클라이언트 단말은, 상기 오퍼레이팅 시스템 기동 중에 필요한 데이터를 일시적으로 보존할 수 있는 물리 메모리와, 상기 네트워크를 통해 상기 서버에 액세스하기 위한 네트워크 인터페이스를 구비하고 있음과 함께,
    상기 오퍼레이팅 시스템은,
    상기 클라이언트 단말의 로컬 버스에 대한 액세스를 상기 네트워크에 대한 액세스로 변환하기 위한 필터 드라이버와, 상기 기억 장치를 구동시키기 위한 리드 캐시 드라이버를 구비하고 있고,
    상기 리드 캐시 드라이버가, 상기 필터 드라이버에 의해 상기 네트워크 부트 서버로부터 판독 출력된 데이터를 상기 기억 장치에 판독 출력 캐시하는 리드 캐시 기구를 구비한 네트워크 부트 시스템으로서,
    상기 리드 캐시 기구는, 상기 서버로부터 수취한 데이터를 유지하기 위한 판독 출력 캐시 영역과 함께 상기 물리 메모리에 유지되어 있는 상기 리드 캐시 드라이버가 상기 서버로부터 판독 출력된 데이터가 기록이 완료되었는지의 여부를 판별하기 위한 관리 플래그 중 적어도 일부를 재기록하기 위한 캐시 관리 영역을 구비하고,
    상기 가상 디스크의 데이터의 리비전을 기억하는 제 1 기억 수단과, 상기 판독 출력 캐시된 리드 캐시 데이터의 리비전을 기억하는 제 2 기억 수단과, 제 1 리비전 및 제 2 리비전을 비교하는 수단과, 상기 비교 결과에 기초하여 상기 리드 캐시 드라이버의 동작을 결정하는 결정 수단을 구비하는 것을 특징으로 하는 네트워크 부트 시스템.
  2. 제 1 항에 있어서,
    상기 제 1 리비전은, 상기 가상 디스크의 일부로서 또는 상기 가상 디스크에 관련되어 유지되는 것을 특징으로 하는 네트워크 부트 시스템.
  3. 제 1 항에 있어서,
    상기 제 2 리비전은, 상기 기억 장치의 일부에 유지되는 것을 특징으로 하는 네트워크 부트 시스템.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 클라이언트 단말로부터의 기록 정보를 캐시하기 위한 기록 라이트 캐시 영역을 추가로 구비함과 함께,
    상기 가상 디스크의 일부에, 적어도 1 비트의 플래그 보존 영역을 구비하는 것을 특징으로 하는 네트워크 부트 시스템.
  5. 제 4 항에 있어서,
    복수의 클라이언트 단말에서 서버 상의 가상 디스크를 공유하여 사용하는 쉐어 모드로 상기 클라이언트 단말을 기동시켰을 때에는, 상기 기록 라이트 캐시 영역에 형성한 플래그 관리 영역에 1 을 기록하고, 서버 상의 가상 디스크에 클라이언트가 직접 기록할 수 있는 프라이빗 모드로 상기 클라이언트 단말을 기동시켰을 때에는, 상기 가상 디스크의 보존 영역에 형성한 플래그 관리 영역에 1 을 기록하고,
    상기 클라이언트 단말은, 기동시에 상기 가상 디스크의 보존 영역에 형성한 플래그 관리 영역의 기억된 값에 기초하여, 상기 리드 캐시 기구를 기동 또는 정지시키는 것을 특징으로 하는 네트워크 부트 시스템.
  6. 제 2 항 또는 제 3 항에 있어서,
    상기 제 1 리비전 중, 상이한 2 개의 리비전 사이에서 상기 가상 디스크 내의 어느 영역의 데이터가 변경되었는지를 나타내는 변경 영역 맵과, 상기 변경 영역 맵을 개정 전의 리비전에 있어서의 리드 캐시 데이터의 상태를 나타내는 캐시 관리 테이블에 적용함으로써, 개정 후의 캐시 관리 테이블을 생성하는 것을 특징으로 하는 네트워크 부트 시스템.
  7. 제 6 항에 있어서,
    상기 변경 영역 맵은 상기 가상 디스크의 일부, 기타 상기 클라이언트 단말이 기동시에 판독 입력할 수 있고 또한 상기 클라이언트 단말로부터 기록 가능한 영역에 기억되어 있는 것을 특징으로 하는 네트워크 부트 시스템.
  8. 제 6 항에 있어서,
    상기 제 1 리비전 중, 연속하는 리비전 사이의 변경 영역 맵의 논리합을 구함으로써, 집약된 연속하는 변경 영역 맵을 생성하는 변경 영역 맵 집약 수단을 구비하는 것을 특징으로 하는 네트워크 부트 시스템.
KR1020107025847A 2008-05-29 2009-05-28 네트워크 부트 시스템 KR101250574B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2008-140739 2008-05-29
JP2008140739 2008-05-29
PCT/JP2009/059808 WO2009145274A1 (ja) 2008-05-29 2009-05-28 ネットワークブートシステム

Publications (2)

Publication Number Publication Date
KR20110021786A KR20110021786A (ko) 2011-03-04
KR101250574B1 true KR101250574B1 (ko) 2013-07-18

Family

ID=41377144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025847A KR101250574B1 (ko) 2008-05-29 2009-05-28 네트워크 부트 시스템

Country Status (4)

Country Link
US (1) US8843602B2 (ko)
JP (1) JP5290287B2 (ko)
KR (1) KR101250574B1 (ko)
WO (1) WO2009145274A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874891B2 (en) * 2010-05-20 2014-10-28 Hewlett-Packard Development Company, L.P. Systems and methods for activation of applications using client-specific data
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8417672B2 (en) * 2010-10-11 2013-04-09 Microsoft Corporation Item level recovery
GB2499963B (en) 2010-12-09 2014-03-26 Ibm Computer-readable storage mediums for encrypting and decrypting a virtual disc
JP5911504B2 (ja) * 2010-12-13 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミング技術に基づくソフトウェア・イメージのアップグレード
CN102567042B (zh) * 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
JP5290446B2 (ja) * 2012-02-28 2013-09-18 株式会社シー・オー・コンヴ ネットワークブートシステム
US10152334B2 (en) 2012-07-09 2018-12-11 Co-Conv, Corp. Network boot system
JP5660557B2 (ja) * 2012-09-18 2015-01-28 株式会社シー・オー・コンヴ ネットワークブートシステム
JP5927134B2 (ja) * 2013-03-21 2016-05-25 株式会社エヌ・ティ・ティ・データ サーバ装置、ネットワークブートシステム、ネットワークブート方法、及びプログラム
US10754660B2 (en) * 2018-10-10 2020-08-25 International Business Machines Corporation Rack level server boot
US11243781B2 (en) * 2020-03-04 2022-02-08 Citrix Systems, Inc. Provisioning services (PVS) cloud streaming with read cache file storing preboot data including a network driver

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452454A (en) * 1991-12-10 1995-09-19 Digital Equipment Corporation Generic remote boot for networked workstations by creating local bootable code image
JP3260923B2 (ja) * 1993-09-20 2002-02-25 富士通株式会社 データ処理システムのバックアップ制御装置及び方法
US5802297A (en) 1995-07-03 1998-09-01 Sun Microsystems, Inc. Client-server computer system and method utilizing a local client disk drive as a data cache
JP2000076152A (ja) * 1998-08-28 2000-03-14 Toshiba Corp 分散ファイルシステムならびに同システムにおけるファイル共有方法及び同方法がプログラムされ記録される記録媒体
US6477624B1 (en) * 1999-11-08 2002-11-05 Ondotek, Inc. Data image management via emulation of non-volatile storage device
JP2001325140A (ja) 2000-05-17 2001-11-22 Mitsubishi Electric Corp ファイル転送装置
EP1548601A1 (fr) * 2003-12-23 2005-06-29 Stmicroelectronics SA Contrôle d'accès mémoire dans un appareil électronique
US7249227B1 (en) * 2003-12-29 2007-07-24 Network Appliance, Inc. System and method for zero copy block protocol write operations
JP4604543B2 (ja) 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
JP2006252124A (ja) 2005-03-10 2006-09-21 Nippon Telegr & Teleph Corp <Ntt> ネットワークシステム、ファイルアクセス方法およびプログラム
JP2007084728A (ja) 2005-09-22 2007-04-05 Hitachi Plant Technologies Ltd バイオマス燃料の製造方法及び製造システム
JP2007199992A (ja) 2006-01-26 2007-08-09 Masato Fujino 計算機システム
US8332370B2 (en) * 2006-05-09 2012-12-11 Hewlett-Packard Development Company, L.P. Maintaining commonly named client-specific file content in hard disk drive emulation
JP2007323354A (ja) 2006-05-31 2007-12-13 Hitachi Software Eng Co Ltd マシン管理システム
JP2009034825A (ja) 2007-07-31 2009-02-19 Seiko Epson Corp 液体吐出装置および液体吐出装置におけるフラッシング制御方法
US8875240B2 (en) * 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
JP5684170B2 (ja) * 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dinah McNutt, Peter Galvin, Auto Clientの導入, UINX MAGAZINE, 1997. 04. 01, 第12卷,第4號, pages 59~61. *

Also Published As

Publication number Publication date
KR20110021786A (ko) 2011-03-04
US20110083006A1 (en) 2011-04-07
WO2009145274A1 (ja) 2009-12-03
JP5290287B2 (ja) 2013-09-18
JPWO2009145274A1 (ja) 2011-10-13
US8843602B2 (en) 2014-09-23

Similar Documents

Publication Publication Date Title
KR101250574B1 (ko) 네트워크 부트 시스템
JP4808275B2 (ja) ネットワークブートシステム
US6594744B1 (en) Managing a snapshot volume or one or more checkpoint volumes with multiple point-in-time images in a single repository
US7076622B2 (en) System and method for detecting and sharing common blocks in an object storage system
US7865772B2 (en) Management device and management method
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
US7694105B2 (en) Data storage systems that implement sector sets
US6694413B1 (en) Computer system and snapshot data management method thereof
US7895394B2 (en) Storage system
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US6678809B1 (en) Write-ahead log in directory management for concurrent I/O access for block storage
EP2333653A1 (en) Information backup/restoring apparatus and information backup/restoring system
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN107329704B (zh) 一种缓存镜像方法及控制器
US10387275B2 (en) Resume host access based on transaction logs
JP6013626B2 (ja) 不揮発性メモリ書込み機構
KR20120090965A (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
JP2007133471A (ja) ストレージ装置及びスナップショットのリストア方法
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
JP2006331100A (ja) 差分ビットマップ管理方法、ストレージ装置及び情報処理システム
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
KR102123701B1 (ko) 네트워크 부트 시스템
WO2022151856A1 (zh) 一种异构存储卷在线接管的方法、系统、设备及介质
US20070271311A1 (en) Disk array device and data management method for managing master data and replication data replicated from master data

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: 20160203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180112

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190207

Year of fee payment: 7