JP4199678B2 - ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法 - Google Patents

ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法 Download PDF

Info

Publication number
JP4199678B2
JP4199678B2 JP2003586784A JP2003586784A JP4199678B2 JP 4199678 B2 JP4199678 B2 JP 4199678B2 JP 2003586784 A JP2003586784 A JP 2003586784A JP 2003586784 A JP2003586784 A JP 2003586784A JP 4199678 B2 JP4199678 B2 JP 4199678B2
Authority
JP
Japan
Prior art keywords
server
file
sectors
client
client computers
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
JP2003586784A
Other languages
English (en)
Other versions
JP2005523523A (ja
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 JP2005523523A publication Critical patent/JP2005523523A/ja
Application granted granted Critical
Publication of JP4199678B2 publication Critical patent/JP4199678B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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]
    • 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/4418Suspend and resume; Hibernate and awake

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)

Description

本発明はハイバネーションイメージを利用したパソコン(PC)等の、1つまたは複数のクライアント装置上のオペレーティングシステムO/Sのネットワークブーティング(または、ブート処理)に関する。詳細に述べると、本発明は仮想ディスクエミュレーションを利用することによって、また、特定の実施例において、1つまたは複数のクライアント装置を適切にブートし、初期設定するために必要なネットワークサーバー上に存在するハイバネーション、O/S、及びアプリケーションフィルを含むデータをブロードキャスティングまたはマルチキャスティングすることによってクライアント装置の遠隔ブーティングを促進する。
コンピューターネットワークはオフィスや企業の他の環境においてパソコン(PC)を相互接続するために使用されている。PCの使用の拡大とともに、コンピューターファイルの共有化及びインストール後の各PCの管理の促進に対する要求が増している。多数のPCから成るネットワークにおいて、組織が、各PCを実際に訪問及びサービスするためのIT用人員を保有することは非常にコストがかかることである。このようなコストを抑えるために、ソフトウェア及びコンピューターの製造業者はソフトウェア製品をネットワークサーバーで集中的に維持し、ネットワークを介して各クライアントPCに所望のソフトウェアをダウンロードするための技術を開発している。
組み込み型のインテリジェント接続された装置の設計者及び製造者はコストを削減し、管理性及び信頼性を向上させ、展開を促進し、装置内の知的財産を保護するための方法を模索している。これらを達成する1つの方法はクライアントPCがネットワークからブート(または、起動)される能力を導入することである。PCのブートプロセスの目的は必要なオペレーティングシステム要素をロードし、ハードウェア装置を初期化し、ユーザーにアプリケーションを提示すことである。これは長い処理であり、通常の条件下において、ハードウェアまたはソフトウェアの初期設定の変化及び認可されたユーザーの変化を考慮する必要がある。ネットワークブートは、PCに関連した(または、PCに直接接続した)ハードウェアが固定的であり、クライアントPCの役割がたびたび変化しない状況により適している。ネットワークブートはPCのハードディスクの除去を可能にし、ソフトウェアコンテントの中央管理を促進する。現状のネットワークの帯域(10/100Mbs及び1Gbs)はクライアントPCのローカルハードディスクの速度に達していないので、クライアントPCのオペレーティングシステム(O/S)の遠隔的な「コールドブート」は効率的ではなく、非常に時間がかかる。さらに、ネットワークの有効な帯域幅及びネットワークサーバーのリソースは多数のクライアント装置を同時にブート(「ブートストーム」)しようとしたときにさらに悪化する可能性がある。「コールドブート」のために必要な長い時間は通常の組み込み型装置の認知及び挙動の魅力を奪う。したがって、ネットワーク上のローディングサーバー(または、ロード用サーバー)からの複数のクライアント装置のブーティングをスピードアップするスケーラブルな(または、拡張及び縮小が容易な)方法が要求されている。
基本入出力システム(BIOS)、PC、及びO/Sの製造者は「ハイバネーション」と呼ばれる技術を導入した。ハイバネーションにおいて、全てのPCのメモリー及び状態はディスクにセーブされ、その後、特定の時間後に回復される。ハイバネーションはバッテリーの電力を節約するために、主に、ノート型パソコンで使用されている。例えば、「ハイバーネートモード」に設定されたノート型パソコンは、それの蓋が閉じられたときに、または特定の無活動時間が経過した後に、それの状態をそれのローカルハードディスクにセーブし、電源をオフし、蓋が開けられたときにそれ自体を回復する。ハイバネーションの本来の目的はバッテリーを節約することであるが、それはPCが完全な「コールドブート」を実施したときよりも素早く、ハイバネーション前のPCの状態に戻ることを可能にする。ノート型パソコンに電力が再印加されたとき、パソコンはO/Sの非常に少ない部分だけをロードすればよい。O/Sはハイバネーションイメージが有効であるかをチェックする。ハイバネーションイメージが存在する場合、O/Sはハイバネーションファイルに保存されたメモリーのコンテント(または、内容)をPCのメモリーにコピーし直す。ハイバネーションイメージが存在しない場合は、通常の「コールドブート」処理が開始される。ここでハイバネーションイメージを使用したハイバネーションの「再開(または、回復)」がより少ないデータの初期化を必要とし、それにより、PCが「コールドブート」を実施されるよりも素早く所望の状態に戻れるとうい長所を持つことに注意する必要がある。
従来技術のシステムは、ネットワーク上のブートイメージからクライアント装置を遠隔的にブートすることに関連した長いブート時間を解決するための手法を提示している(例えば、特許文献1参照)。しかしながら、この特許は各クライアントPCのローカル格納媒体に格納されたハイバネーションイメージから再生し、一種のリセットにしたがうことを教授している。この手法はクライアントPCがハイバネーションの前にPCの所望の状態の全ての再設定を実施することを必要とし、サーバーが多数のクライアントPCが接続されたネットワーク上で、対応する複数のクライアントPCに複数のハイバネーションイメージを個々に転送するのでネットワークの衝突を引き起こす可能性がある。
従来のシステムには、サーバーへのネットワーク接続を介してクライアントコンピューター上の32ビットPCオペレーティングシステム(O/S)をブートするためにディスクエミュレーションを使用する装置及び方法を使用しているものもある(例えば、特許文献2参照)。詳細に述べると、この特許はクライアントのO/Sがそれ自体でネットワーク処理を実施することができるようになるまで、「ガタピシモード(thunking)」と呼ばれる、ウィンドウズ9xO/Sの32ビット保護モード処理とBIOSによって使用される16ビットリアルモードとの間での(各ディスクI/Oコールでの)スイッチングの方法を教授している。この方法及び装置はO/Sを含むクライアントPC上で望まれるソフトウェアアプリケーションの完全なイメージのダウンロードによる、サーバーからのウィンドウズ95等のO/Sのブートに特に適している。しかしながら、この特許はMicrosoft Corporationの最近のO/Sのバージョン、すなわち、保護モードで動作するウィンドウズ2000及びウィンドウズXPで有効なハイバネーション機能の長所を考えに入れていない。また、この特許は本発明の特徴の1つである、特定の好まれる実施例においてハイバネーションファイルを含む、所望のデータの、ネットワーク上の複数のクライアントPCへのマルチキャスティングの使用を考えに入れていない。
米国特許第6101601号明細書 米国特許第5974547号明細書
本発明は仮想ディスクエミュレーションを利用してネットワークサーバー上に格納されたハイバネーションイメージからの1つまたは複数のクライアントPC上のO/Sのブーティング(または、ブート処理)のためのシステム及び方法を提供する。
本発明の特定の好まれる実施例において、ハイバネーションイメージ及びいくつかのO/Sファイルを含むハイバネーションファイル等の、ブート処理を進めるために必要なデータは後で説明されるように(また、本出願人のもう1つの特許出願である国際公開第03/090073号「System for and Method of Streaming Data to a Computer in a Network」に説明されているように)、ネットワークサーバーから同期的に(または、同時的に)ストリームされる(または、データ転送される)。(上述の出願の内容はその全体が本願に参照として組み込まれるものとする。)
1つまたは複数のPCは各々マイクロソフトウィンドウズ2000及びXP等の、ハイバネーションをサポートするO/Sを動作させる。独創的なソフトウェアドライバーは少なくとも部分的にネットワークサーバーから、ハイバネーションファイルを集合的に(または、共同的に)構成する複数のセクター(データパケット)を受諾(または、受信)することによって、各クライアントPCを使用可能な状態に回復(または、再開)することを援助するように動作する。ブート処理の初期の段階でのディスクアクセスのための要求(または、リクエスト)は初めに、PXEサービスを使用して各クライアントからネットワークにリダイレクトされる(または、向け直される)。PXEコードは各クライアントとサーバーとの間に初期の仮想接続を確立し、サーバーがクライアントのもう1つのドライブとして認識されることを可能にするだろう。PXEコードは付加的なエミュレーションコードのダウンロードを援助し、それ(すなわち、ダウンロードされたエミュレーションコード)は次に、ハイバネーションファイルのダウンロードを援助するO/Sコードをダウンロードする。ブート処理の初期段階中、クライアントO/Sにサポートされたネットワークアクセスを与えるために不十分なO/S要素がロード及び起動される。結果として、クライアントのハードディスクアクセス要求はInt 13hハンドラー及びダウンロードされたエミュレーションコードを介して操作される。O/Sのブートの約25%において、O/Sは独創的なドライバーを使用してサーバーとの通信の制御を引き受け、BIOSInt 13hサービスに対する必要性を効果的に回避する。
もう1つの実施例において、ネットワークサーバーからダウンロードされたデータはネットワークサーバーに関連した(または、サーバーに直接接続した)格納装置の複数のセクターから予め決められた様式で回復(または、検索)されてもよい。動作中、1つまたは複数のクライアントPCは複数のセクターのダウンロードに対する複数の要求(または、リクエスト)を発行する。要求は一時的にクライアントPCの各々のローカルディスクの動作をエミュレートするサーバーに転送(または、送信)される。1つの実施例において、ネットワークサーバーはサーバーに関連した仮想ハードディスクから所望のデータを、要求を発行しているクライアントの各々にブロードキャストする。もう1つの実施例において、ネットワークサーバーはサーバーに関連した(または、サーバーに直接接続した)仮想ハードディスクから所望のデータを、要求しているクライアントの各々に同時的にマルチキャストする。サーバーは好まれるものとして、マルチキャスティングの前の、予め決められた勧誘期間中(または、インビテーション期間中)にダウンロード要求を受諾(または、受信)する。
特定の実施例において、エミュレーションはクライアントPCの各々に存在するエミュレーションコードを実行することによって達成される。好まれるものとして、エミュレーションコードは各クライアントPCのネットワークインターフェースカード(NIC)上に存在する実行時前ブート環境(PXE(pre-execution boot environment))コードである。代替的な実施例において、エミュレーションは実行されたときに割り込み操作プロシジャー(Int 13h)によってディスクアクセス制御を引き受け、所望のデータを要求する、ネットワークサーバーからダウンロードされた独創的なブートコードの結果である。もう1つの実施例において、エミュレーションは(好まれるものとして、ウィンドウズ2000、NT、またはXPである)O/Sの一部、及び、同様にクライアントのネットワークインターフェースの制御を引き受け、所望のデータを要求する、ネットワークサーバーからダウンロードされた2つの独創的なドライバーを実行することによって各クライアントPCで達成される。ストリームされるデータ(または、転送されるデータ)はネットワークサーバーからダウンロードを要求しているクライアントPCへの、バーストモードでのマルチキャストまたはブロードキャストであってもよい。それゆえ、データは各クライアントPCに冗長的に送信されるのではなく、一度だけ送信されればよい。データセクターは各クライアントで受信されるので、それらは独創的なドライバーによって予めアロケートされたデータキャッシュにキュー登録(または、キューイング)される。これは各クライアントがO/Sデータストラクチャー、ドライバー、及び(または)アプリケーションを初期化する等の、他の動作に専念することを可能にする。
本発明はクライアント装置がハードディスクとともに構成されなくてもよいので、必要とするハードウェアが少ない。本発明はまた、クライアントPCが同一のハイバネーションイメージをブートすることを可能にする。これは各クライアントが同一のO/Sやアプリケーションの複製を実行する必要がないので、各クライアント装置の維持を容易にする。例えば、ソフトウェアのアップグレードはクライアントPCの数にかかわらず、単一のハイバネーションイメージでのみ実施されることを必要とする。ハイバネーションイメージは複数のクライアントにマルチキャストされるので、例えば、多数のクライアントが同時にブートしようとしたとき等の、トラフィックのピーク時に、ネットワークのトラフィックが大幅に減少される。したがって本発明の解決法は増大する数のクライアントPCをブートするために必要なリソースが少ないので、非常にスケーラブル(または、拡張及び縮小が容易)である。
以下に、本発明の特定の好まれる実施例を図面とともに説明する。
本願において用語「ハイバネーション」はPCが「ポーズ(または、休止)」した状態でPCの電力がオフにされることを意味する。PCがオフにされている間、電力はそれの全てまたはほとんどの構成要素から除去される。そして、PCがオンに戻されると、または「再開(または、回復)」されると、PCはそれがオフされたときと同じ状態の通常の動作に戻る。Microsoft Corpの米国特許No.6,209,088等に記載されている「ハイバネーション機能」はPCがオフされる直前に呼び出され、全てのプログラム実行を中断し、PCの全ての状態情報を非揮発性の格納装置に「ハイバネーションイメージ」としてセーブする。「再開機能」は揮発性メモリーから実行され、通常、O/S及び(または)O/Sによって始動されるアプリケーションプログラムによって使用されるのと同じ実行可能アドレス空間から実行されるコードによって実施される。以下に説明する本発明の特定の環境において、「ハイバネーションファイル」はO/Sドライバー等のO/Sファイル及び、ハイバネーション機能の始動の前にPCの揮発性メモリーに読み込まれる初期化ファイルを含む。
本願で使用される用語「MBR(Master Boot Record)(または、マスターブートレコード)」、「ストレージドライバー(または、格納装置ドライバー)」、及び「ネットワークフィルタードライバー」は出願人によって開発されたブートストラッピングソフトウェアモジュールを意味する。出願人以外の人によって開発されたソフトウェアモジュールを差別化するために、「O/S」等の従来の慣例的なモジュール名を採用する。また、用語「仮想ドライブ」、「ブートドライブ」及び「サーバードライブ」は以下の記述において同義的に使用される。
図1に示されているネットワークコンピューター環境は企業のネットワークまたはクライアント/サーバーコンフィグレーションであってもよく、そこにおいて、PC2のいずれかがファイルサーバーまたはネットワークサーバー4として機能してもよい。ネットワークサーバー4は比較的小さいPCから大きなメインフレームを含む、通常のタイプのシステムであってもよい。以下に説明する特定の実施例において、サーバー4は1つまたは複数のバス16によって接続された1つまたは複数の中央処理ユニット(CPU)6、ハードディスク8、それ自体のBIOS18を備えたリードオンリーメモリー(ROM)10、ランダムアクセスメモリー(RAM)12、及びネットワークアダプター14を備える中間的なコンピューターである。当業者にとって明白であるだろうが、BIOS18はネットワークサーバー内の構成要素間の情報の伝達を援助する基本的なルーチンの組である。以下に説明する特定の実施例において、ネットワークサーバーのハードディスク8はハイバネーションイメージ及び特定のO/Sファイル等から成るハイバネーションファイル20、セクターシーケンスファイル22、MBR24等の多様なマイクロインストラクションコード、ストリーミングモジュール26、及び、少なくともネットワークフィルタードライバー30及びストレージドライバー(または、格納装置ドライバー)32を含むO/SMBR28等のO/Sファイルを格納する。
選択的に、1つまたは複数の付加的なサーバー34がネットワークに接続され、第1サーバー4及びクライアントPC2と通信してもよい。マルチサーバーネットワークの場合、クライアントモジュール36(例えば、HPPC)が第1サーバー4内に存在し、クライアント装置からの要求への応答で、どの付加的なサーバー34がクライアントアドレッシング情報及びダウンロード情報を含むかを指定してもよい。
1つまたは複数のクライアント装置2はネットワーク上のネットワークルーターまたはネットワークスイッチ38を介してサーバー4に接続される。物理的な接続はケーブル、スイッチ式電話線、無線及び赤外線スペクトルで動作するワイヤレス装置、及び他の手段を含む多様な形式のいずれであってもよい。クライアント装置及びサーバーは標準的な通信プロトコルを使用して互いにデータを伝送する。マイクロソフトウィンドウズ2000及びウィンドウズXP等のマイクロソフトハイバネーション機能をサポートするO/S40は適当な数のO/Sモジュール及びO/Sドライバーが起動したとき、各クライアント装置の物理的な機能または設備を管理する。各クライアント装置はインテルコーポレイションによって製造されているx86ファミリーマイクロプロセッサー等の、CPU42を備えている。各クライアントはまた、BIOS48を格納しているROM46及びRAM50を含むローカルメモリー44、ローカル格納装置(または、ローカルストレージ)52、及びシステムバス56によってCPUに接続しているネットワークアダプター54を含む。
図1はまた、適当な数のセクターがダウンロードされ、それらが含むコードが実行された後の、クライアントのRAM50の一部を図示している。示されているように、RAM50はダウンロードされたO/S40、O/Sドライバー76、O/Sローダー78、ネットワークフィルタードライバー30、ストレージドライバー(または、格納装置ドライバー)32、及びO/Sネットワークスタック68を含んでもよい。いくつかの実施例において、RAM50はまた、ハイバネーションファイル20及びWIN32.SYS72等の、システムユーティリティー機能を与えるカーネルバイナリー(kernel binary)のコピーを含む。図2を参照すると、各クライアントのネットワークアダプター54は好まれるものとして、クライアントのハードウェアとネットワークとの間にデータリンクを与えるネットワークインターフェースカード(NIC)である。各NIC54はクライアントシステムバス56に接続するためのバスインターフェース58、ネットワークに接続するための1つまたは複数のネットワークコネクター60を含む。ネットワークコネクター60はLANまたはWANに対応するものであってもよい。NIC54にはまた、NICの固有デスティネーションアドレスを格納するためのランダムアクセスメモリー(RAM)62及び、PXEエミュレーションコード66を格納するための選択的ROM(OPROM)64が備えられている。デスティネーションアドレスは各クライアント2がネットワーク上の他のコンピューターによって個々にアドレッシングされることを可能にする。
ブートNIC(BootNIC)基本アーキテクチャ
本発明は1つの側面において、ウィンドウズ2000及びウィンドウズXP等のハイバネーション機能をサポートするO/Sがネットワーク上でブート(または、起動)されることを可能にし、もう1つの側面において、ハイバネーションをサポートする、または、サポートしないO/Sのデータの同期的なストリーミング(または、データ伝送)を可能にする、ここで出願人によってブートNIC技術と呼ばれるシステム及び方法を提供する。ブートする各クライアントは初めに、PXEサービスを使用してサーバー4と通信する。PXEコード66は各クライアントとサーバーとの間に最初にエミュレートされる「仮想ドライブ」を確立する。PXE(実行時前ブート環境)サービスはMBR(マスターブートレコード)コード33がリード要求をサーバーに送ることを可能にし、それによって、サーバーに存在するハイバネーションファイル20が、各クライアントのCPU42によって、ローカルクライアントのハードディスク52に格納することができる複数のデータセクターとして認識されることを可能にする。ブートストラッピングの初期の段階中、BIOS割り込みハンドラーサービスはリアルモードでのみ動作するので、エミュレーションはMBRコード33のリアルモードの実行によって与えられる。処理の後半は、O/Sのカーネルコード及び(ガタピシモード(thunking)が発生しない)保護モードでのみ実行されるストレージドライバー32及びネットワークフィルタードライバー30によってエミュレーションが与えられる。
図3はネットワークフィルタードライバー30及びストレージドライバー(または、格納装置ドライバー)32がネットワークサーバーからダウンロードされ、実行された後の、クライアントのローカルメモリー44の一部をブロック図で図示している。ネットワークフィルタードライバーの唯一の役割はブートNICに特有(BootNIC specific)であるデータパケットを特定するために、クライアントのNIC54を介してネットワークからO/Sネットワークスタック68に送られる全てのデータパケットを監視し、前記特有のデータパケットがネットワークスタック68に送られないように遮断し、代わりにそれらのパケットをストレージドライバー32に送ることである。ストレージドライバー32は次に、マウントマネジャー(Mount manager)、ボリュームマネジャー(Volume manager)、及びパーティションマネジャー(Partition manager)等の、格納のための役割を持つウィンドウズの多様なマネジャー70と通信する。ネットワークデータパケットがブートNIC特有(BootNIC specific)でない場合、データパケットは影響を受けずにO/Sネットワークスタック(Network stack)68に送られる。当業者にとって明白であるだろうが、データパケットには以下の3つの異なった種類がある。(1)ブロードキャストパケット、ネットワーク上の全てのコンピューターにアドレッシングされるパケット。(2)マルチキャストパケット、2つ以上であるが、必ずしもネットワーク上の全てのコンピューターではない、コンピューターにアドレッシングされるパケット。(3)直接アドレス指定パケット、特定のクライアント装置だけにアドレッシングされるパケット。本発明に従うシステムはこれらのいずれのデータパケット伝達手段を利用してもよい。
本発明は、クライアントが(オペレーティングシステムの有無にかかわらず)事前ブート環境(PXE)でネットワークと相互作用するための、予想可能で相互運用可能な方法を作成するための努力の結果である、事前ブート実行環境(PXE(pre-boot execution environment))として知られている、広く利用されているスペックの長所を利用する。PXEの現在のバージョンはWired for Management(WfM)のインテル主導産業イニシアチブとして確立されたものである。PXEはインテルアーキテクチャーベースのシステムのブートファームウェアとともに事前ブート(pre-boot)サービスの共通及び首尾一貫的な組を確立する、以下の3つの技術を包含する。(i)クライアント2がネットワークのIPアドレスのアロケートを要求し、結果的に、ネットワークブートサーバー4からブートストラッププログラム(MBR24及びO/SMBR28)のダウンロードを要求するための一律的なプロトコル。(ii)BIOS48またはブートストラッププログラムによって利用可能なサービスの首尾一貫的な組を構成するクライアント2のファームウェア環境の事前ブートで利用可能なAPIの組。(iii)クライアントPCでPXEプロトコルを実行するための事前ブートファームウェアを始動する標準的な方法。
PXEスペックの使用はクライアントのNIC54がブート装置として働くことを可能にする。それはまた、BIOS48がPOST処理前または処理中にOPROM64上に格納されたNICコードを直接的に使用することを可能にする。本発明は、特定の実施例において、選択的にブートサーバーディスカバリー(boot server discovery)のPXE特徴の長所を利用する。この特徴を使用することにより、ブートクライアント2はリモートブートの初期段階中にクライアント2に与えられる利用可能なブートサーバーのリストから適当なブートサーバー4または34を発見(または、ディスカバリー)することができる。ブートサーバーの種類、または特定のダウンロードされるハイバネーションイメージはクライアントのシステムアーキテクチャーの種類または各クライアントの固有のIDに基づいてインフォメーションテクノロジーアドミニスター(information technology administrator)によって割り当て及び維持されることができる。PXEはサーバー4と通信するために動的ホスト構成プロトコル(DHCP)及びトリビアルファイル転送プロトコル(TFTP)を使用する。PXEがクライアントのブートを可能にしたとき、それはDHCPサーバー4からIPアドレスを取得する。そして、クライアント2はクライアントにブートサーバーのリストを与えるDHCPサーバー4を発見してもよい。図1には、ブートサーバーとして動作してもよい、付加的なサーバー34が示されている。しかしながら、本発明の説明を容易にするために、結果としてハイバネーションファイルからのブーティング及びブロードキャストまたはマルチキャスティングとなる本発明の処理は単一のサーバー4から成るネットワークコンフィグレーションとの関連で説明される。
ハイバネーションイメージからのリモートブーティング
上述したように、本発明はクライアントPCのためのO/Sファイルを有するハイバネーションイメージ20を格納しているサーバー4から1つまたは複数のクライアント2にO/Sをブートするための改善されたシステム及び方法を与える。各クライアントのCPU42はDRAMまたは他の種類の揮発性電子メモリー等の、アドレス可能なメモリーからのインストラクション(または、命令)のみを実行する。このアドレス可能なメモリーを初期化するため、少量のPXEコード66がNIC54上のOPROM64に与えられる。PXEコード66はMBRコード24をリードするために、クライアントのローカルディスクをエミュレートするネットワークサーバー4に要求が発行されることを可能にする。ダウンロードされたMBRコード33はさらなるディスクのエミュレーションを可能にし、O/SMBR28の最初の部分がサーバーからクライアントに送信され、そこで、DRAMにロードされるように要求する。次に、O/SMBR28はO/Sの残りの部分のダウンロード及び初期化を行い、そして、それらの残りの部分はハイバネーションファイル20をダウンロードする。ここで、以下の説明は複数のクライアントにダウンロードされる単一のハイバネーションファイル20のみを含むが、当業者にとって明白であるように、本発明の方法を使用して異なったクライアントの組に多数のハイバネーションファイルをストリームすることもできる。出願人は、本発明の方法はストリーミングがネットワーク上のO/S40のブートに必要な時間を従来の標準的なO/Sのローカルブートに対して50%以上減少させることができることを観測した。
ハイバネーショントランザクションプロトコルは2つの部分から成る。最初の半分はブートドライブ8にハイバネーションイメージを生成することであり、第2の半分はハイバネーションファイルからの実際の再開(または、回復)である。
本発明のブートアップ(boot up)の開始の前に、サーバー4に存在するハイバネーションファイル20は直接的な様式で生成される。クライアントPCが所望の状態に設定された後、ハイバネーションファイル20にハイバネーションイメージを生成するためにハイバネーション機能が利用される。ハイバネーションファイル20は次に、サーバーのブートドライブ8に送信される。あるいは、ハイバネーション処理はハイバネーションファイルがサーバーのブートドライブに直接セーブされるように実行されてもよい。ハイバネーション機能は全てのドライバーに対してパワーダウンするように命令するが、ストレージドライバー32だけはWIN32.SYS72をローカルメモリー50にキャッシュし、メモリーのコンテントをファイルHIBERFIL.SYS(O/Sローダーが再開時に正当性をチェックするファイル)にライトした後に、O/Sの要求によってパワーダウンする。ブート処理を始動する前に実施されることが好まれるもう1つのステップはブートドライブ8にMBR24エミュレーションコードを格納することである。
ウィンドウズのアーキテクチャにおいて、ドライバーは「タイプ」を呈することが要求され、1つのドライバーが同時にストレージドライバーとネットワークドライバーとなることができないので、ウィンドウズのアーキテクチャはサーバーと通信するために1つのドライバーではなく、2つのドライバー、ストレージドライバー32とネットワークフィルタードライバー30とを必要とする。ウィンドウズ2000及びXPのハイバネーションの実行は1つのO/Sドライバーだけがストレージドライバーと通信することが要求されると仮定しており、したがって、ハイバネーション処理が2つ以上のO/Sドライバーをサポートすることを可能にするためのメカニズムを与えていない。現在利用可能な標準的なO/Sドライバーはネットワーク上のファイルから再開するように記述されていないので、それらは上手く動作しないだろう。ローカルドライブからの標準的な再開において、O/Sストレージドライバーはローカルハードディスクとの通信方法だけを知ることが要求される(そして、実際にそうなっている)。
ストレージドライバー32はNICドライバー74の電力ハンドラー(power handler)に対するディスパッチアドレス(dispatch address)をストレージドライバー自体のハンドラーで置き換えることによってNICドライバー74の(ディスパッチルーチンdispatch routine)に「フック(hook)」する。ストレージドライバー32は次に、オリジナルのNICドライバー電力ハンドラールーチンを呼び出してもよい。
ブート処理は多くの処理から成るが、一般的に、1つのプログラムが事前のプログラムに対してより高度なプログラムを開始させることを含む。本発明の独創的な方法の主要なステップはBIOS初期化、PXE初期化、MBRロード及びInt 13hリダイレクション、ハイバネーションイメージのロード、及びO/Sの再開(または、回復)である。ここで、これらの解決法はウィンドウズ2000に特化したものであるが、以下に記載されるステップはこれらの解決法を他のオペレーティングシステムに拡張するための一般的な枠組を要約したものである。
図5を参照すると、パワーアップ直後、クライアント2のBIOS48の初期化はパワーオン/セルフテスト(POST(power-on/self-test))シーケンスの実行(ステップ502)とともに開始される。各クライアントはそれ自体のIPアドレスを確認するためにDHCPディスカバリー要求をブロードキャストする。このプロトコル(及び他のプロトコル)をサポートするサーバーのO/Sは、ネットワークサーバー4であっても、そうでなくてもよい、(クライアントがそこから)ブートされるサーバーのアドレスとともにこれらのパラメーターを戻す。仮想ブートドライブ8はネットワークサーバー4(または、代替的なブートサーバー34)に関連した(または、サーバーに直接接続した)非揮発性の格納装置を備えてもよい。ドライバーの種類はフロッピーディスク、ハードディスク、磁気テープ、DVD、CD−ROM、及びフラッシュROMを含む。仮想ブートドライブ8となるために、装置はO/Sファイルまたは、ダウンロードされることが意図されるマイクロインストラクションコードを含むハイバネーションファイルのコピーを保持しなければならない。
POST中、CPU42はOPROM64がクライアント2に存在するかを決定するためにバス56上でアドレスをチェックする。OPROMが見つかった場合、CPUはOPROM上の全てのハードウェア初期化ルーチンを処理し、NIC54を使用可能な状態に初期化する(ステップ504)。OPROMコードは次に、PXEコードを初期化する(ステップ506)。OPROMコードはまた、ハードディスク52のリード及びライトを制御する割り込み13hハンドラーサービスを介して、BIOSブート処理に「フック(hook)」する。PXEコードを使用して、NIC54の制御を引き受けることにより、OPROM64のコードはサーバー4と通信し、サーバーのハードディスク8がサーバーに対するディスクのリード及びライトのリダイレクションを介して、クライアント2のローカルハードディスク52を透明にエミュレートすることを可能にする。
POSTシーケンスの終了時に、BIOS48はO/Sのブートを開始するだろう。BIOSはサーバーの仮想ドライブ8の最初のセクター(シリンダー0、ヘッド0、セクター1)をリードする(ステップ510)。最初のセクターはO/S40をブートするための付加的なエミュレーションコードを含むMBR(マスターブートレコード)24を格納する。MBR24のコードは慣例的にO/Sの製造者によって供給されるが、以下に説明するハイバネーション再開処理を容易にするために、付加的なエミュレーションコードを開発する必要がある。MBRコードはクライアントのメモリーにロードされた後に実行される(ステップ512)。MBRのコードはネットワークサーバーと通信するためにPXE66を使用し続け、全ての格納装置アクセス要求を取得するために割り込み13hをフックし、ブート処理の初期の段階中にサーバーの仮想ハードディスク8へのライトを防止する(ステップ514)。
リード要求は仮想ドライブから所望のデータをブロードキャスティングすることによって履行されてもよい。しかしながら、特定の好まれる実施例において、リード要求は後で説明される同期的(または、同時的)ストリーミング法を使用することによって履行される。あるいは、リード要求はネットワークサーバーによって個々に処理されてもよい。リード要求はオリジナルのInt 13hBIOSルーチンには送られず、代わりにPXEがネットワークサーバー4からデータを受信するためにMBRによって使用される。リード要求はMBRコードによって履行され、要求はネットワークサーバーからダウンロードされたデータとともに要求の発行元に戻される。ディスクライトは異なった様式で操作される。MBRコードはライトを実施しないが、正常なライトを示す信号をディスクライトの要求の発行元に戻す。ライトはオリジナルのInt 13hBIOSルーチンにも送られない。
MBRコードは次に、図1において「ウィンドウズ2000MBR」として示されているような、O/S製造者によって開発されたO/SMBR28をダウンロードする。各クライアント2のMBRコード33は、OPROM64が要求を調べるための機会を持つ前に、それのInt 13hベクトルのフッキング(hooking)を介してローカルディスクのリードに対する全ての要求を取得する。ダウンロードされたMBR88は次に、O/SMBR28をダウンロードするために、PXE66を使用して要求をネットワークサーバーに転送する(ステップ516)。
ステップ518において、ネットワークサーバー4はサーバーの仮想ドライブ8から、O/SMBR28を集合的に(または、共同的に)構成するデータパケットをO/SMBRのダウンロードを要求している各クライアント2にマルチキャストされるかまたは同期的にストリーム(または、データ転送)する。同期化は後で説明される同期されたストリーミング処理400を使用することによって達成されてもよい。この実施例において、ストリーミングモジュール26は勧誘期間中にO/SMBRのダウンロードの要求を出した、全てのクライアント2へのダウンロードに対する登録を行う。勧誘期間は全てのクライアントに登録の機会を与える、予め決められた時間間隔を持つ。ストリーミングモジュール26は次に、リード要求元として最初のクライアントを指定する。すなわち、そのクライアントだけが、全ての登録されたクライアントに次のデータセクターのコンテントがマルチキャストされるための、ストリーミングモジュール26のリード要求を生成することを許可される。
ストリーミングモジュール26は次に、登録されたクライアント2の全てにアクセスし、リード要求元の識別及びO/SMBR28を集合的に格納する仮想ドライブ8のセクターのグループの第1のセクターのコンテントをマルチキャストする。ストリーミングモジュールは次に、O/SMBRのセクターのグループの全てのセクターがマルチキャストされたかを決定する。さらなるセクターがマルチキャストされることが必要な場合、かつ、2つ以上の登録されたクライアントが存在する場合、ストリーミングモジュールは新規のリード要求元を指定する。次に、ストリーミングモジュールは次のセクターにアクセスし、新規のリード要求元の識別とともに、それのコンテントを登録されたクライアントの全てにマルチキャストする。新規のリード要求元を指定するステップは好まれるものとして、順繰りに実施される。すなわち、各マルチキャストのラウンド後に、登録された1つのクライアントが順番に仮想ドライブのリード要求を生成する役割を引き受け、他の指定されていないクライアントはデータのマルチキャストを単に待つ。ストリーミング処理400はO/SMBR28全体がマルチキャストされ各クライアントにロードされるまで繰り返され、その時点で、ダウンロードされたO/SMBRはネットワークインターフェース54の制御及び要求生成処理を引き受ける。
ここで、各リード要求はどの登録されたクライアントが発行したかにかかわらず、同一であることに注意しなければならない。それゆえ、MBRコードによって実施されるリード要求は密集行進法(lock-step)の様式で進行する。各クライアントは同一の仮想ドライブからリードを要求し、既に仮想ドライブからダウンロードされた同一のMBR28を実行しているので、各リード要求は同一となるだろう。
図5を参照すると、ステップ520において、各登録されたクライアントはブロードキャストまたはマルチキャストされたO/SMBRのセクターを受信及び格納する。受信したデータセクターはRAM50の、拡張されたBIOSデータ領域のあめに確保されたメモリーの一部に格納される。各ブロードキャストセクターまたはマルチキャストセクターは連番とともに送信されてもよい。各クライアントは次に、クライアントが送信されたセクターの全てを正常に受信したかを決定してもよい(ステップ522)。クライアントがデータパケットを見逃している場合、クライアントはネットワークサーバーから見逃したデータセクターを非同期的に要求してもよい。しかしながら、データはそのクライアント単体だけに戻され、全ての登録されたクライアントにはブロードキャストまたはマルチキャストされない。
ステップ524において、O/SMBR28(例えば、ウィンドウズ2000MBR)が各クライアントのメモリー50にロードされ、実行される。次に、O/SMBRは仮想ドライブからO/Sの製造者によって記述されたO/Sローダー74(例えば、NTLDR)をダウンロードする(ステップ526)。ダウンロードされたO/Sローダー78は仮想ドライブ8に有効なハイバネーションイメージが存在するかをチェックしてもよい(ステップ528)。仮想ドライブは事前に有効なハイバネーションイメージ20を含むように設定されている。O/Sローダー78は次に、MBR33が取得かつネットワークサーバー4にリダイレクトする一連のInt 13hリード要求を介して、ハイバネーションイメージのロードを開始する(ステップ530)。ここで、ハイバネーションファイル20を集合的に格納する仮想ドライブ8上の複数のセクターのコンテントにアクセスし、それをブロードキャストまたはマルチキャストするために、ストリーミング処理400が再び利用されてもよい(ステップ532)。
ハイバネーションイメージが各クライアントのローカルメモリー44にコピーされた後、O/Sローダー78はハイバネーションイメージから回復(または、再生)されたO/S40、すなわち、ウィンドウズXPまたは2000に実行を渡す(ステップ534)。ここで、この時点以降、リード要求は同期的な様式で実施されないことに注意しなければならない。すなわち、それらは単体ベースでネットワークサーバーに送信され、ネットワークサーバーによって回答される。
O/S40はこの時点で、ストレージドライバー32等のドライバー76を起こし、システムを使用可能な状態に戻すためにいくつかの初期化を実施する必要がある。各クライアント2が適切な順序でストレージ(または、格納装置)及びネットワークフィルタードライバーをロードするたように構成するために、既存のドライバーに対するいくつかの標準的なドライバーのレジストリは、以下の表に記載されているように、(regedit32レジストリエディターを使用する等により)予め変更しておく必要がある。
Figure 0004199678
ここで発生する1つの難しい問題は、NICドライバー74及びネットワークフィルタードライバー30が初期化されるまで、ストレージドライバー32が全てのリード及びライトを防止しなければならないことである。しかしながら、ネットワークフィルタードライバーは、O/S40が表示及び印刷のための低レベルのルーチン等の、システムユーティリティー機能を与えるファイルWIN32.SYS72及びカーネルバイナリー(kernel binary)をリードするまで初期化されないだろう。この問題はハイバネーションイメージを生成する前にWIN32.SYSの、クライアントのメモリー50への早めのキャッシュを行い、それによって、ファイルをこの時点でローカルメモリー50内にリードされるハイバネーションイメージ自体の一部にすることによって解決される。これにより、ファイルWIN32K.SYSは仮想ドライブ8をアクセスする必要なく、ローカルメモリーからリードすることができる。1つの例外として、ストレージドライバー32は全てのO/Sディスクのライト及びリード要求をハイバネーションイメージの生成中に、事前にアロケートされたキャッシュに、すなわち、この時点でクライアントシステムのメモリー50にキュー登録する。ストレージドライバー32は、要求の処理の許可が安全になるまで、すなわち、NICドライバー74及びネットワークフィルタードライバー30が初期化されるまで、単に要求を格納する(ステップ536)。ファイルWIN32K.SYSはローカルクライアントメモリーからリードされ、データがO/Sに戻される(ステップ538)。
O/S40は次に、NICドライバー及びネットワークフィルタードライバー30を起こす。ステップ542において、ネットワークフィルタードライバー30はストレージドライバー32に、NIC54が初期化され、ネットワークフィルタードライバー30がペンディング中のリード及びライト要求を受諾する準備ができていることを知らせる。あるいは、ストレージドライバー32は(ハイバネーションイメージの生成中に)事前に、NICドライバー74のディスパッチ機能に「フック」し、それの「IRP_MJ_POWER」のためのデータを監視する。これはネットワークドライバーが起きたときにストレージドライバー32に警告を出す。O/S40がIRP_MJ_POWERをNICドライバー74に送信した後、要求は常にフルパワーオン状態(すなわち、NICが完全に使用可能な状態)となる。ストレージドライバー32はNICドライバーがIRP_MJ_POWERの処理を終了するまで、すなわち、ネットワークドライバーが完全に起きるまで待つ。
ステップ544において、ストレージドライバーはO/S40が使用可能な状態に回復し、その後にユーザーが通常の様式でクライアントPCを使用することができるように、全てのキャッシュされたリード及びライト要求のキュー登録を解除する。ここで、この実施例において、ストレージドライバーがリードとライトを僅かに異なった様式で操作することに注意しなければならない。すなわち、ストレージドライバーはライトが仮想ドライブに対して実行されることによって、異なったクライアントが同一の仮想イメージに同時にライトしたときに、それのデータを破壊することを防止するために、全てのライトをローカル的にキャッシュする。逆に、リードは必要なセクターのコピーがクライアント上にキャッシュされないかぎり、仮想ドライブから実際のリードによって行われる。後者の場合、セクターはクライアントのメモリーからキャッシュされ、ネットワークトランザクションは一切行われない。
複数のクライアントへの所望のデータの同期的ストリーミング
特定の好まれる実施例においてブート処理を進めるために必要なデータは、本出願人のもう1つの特許出願である国際公開第03/090073号に説明されているように、サーバー4から1つまたは複数のクライアント2に同期的にストリームされる。この実施例に従った本発明の独創的システムは1つまたは複数のクライアント2によって発行されたリード要求への応答で、透明な(transparent)ローカルディスクエミュレーション及び、サーバーの「仮想」ドライブ8に存在するデータセクターの組のコンテント(または、内容)のブロードキャスティングまたはバーストモードのマルチキャスティングを利用する。
図4のフローチャートは同期的(または、同時的)データストリーミングのための処理400を図示している。ここで、ハイバネーションファイルを使用したクライアント上のO/Sのネットワークブートを完了するために、同期的ストリーミング処理400は(いくつかの意味のある差異とともに)基本的に2回、すなわち、O/Sドライバーが初期化される前と後とに1回ずつ利用される。これは、O/Sブート処理が仮想ドライブ8からファイルをダウンロードするために、ブート処理の初期の段階中に割り込みハンドラープロシジャー(または、割り込みハンドラー処理)を使用するのに対し、その後、それらが初期化された後にストレージドライバー32及びネットワークフィルタードライバー30を使用するためである。これは実質的に同等なタスクを実行するために2つの解決法を必要とすることを意味する。
特定のデータのダウンロードを所望する各クライアントは最初の要求を発行する。所望されるデータはブートプログラム、ハイバネーションファイル、O/Sファイル、または、サーバーの仮想ドライブ8上に存在するアプリケーションファイルを含んでもよい。これらの要求がサーバー4に発行されるとともに、サーバーはPXEコード66及びダウンロードされたMBR33のコードの実行を介して、または、ネットワークフィルター及びストレージドライバーと共にO/SMBR28のコードの実行を介して、ブートアップ(boot up)の多様な段階中に、クライアントのローカルディスク52をエミュレートする。(ステップ402)
ステップ404において、サーバーのストリーミングモジュール26は予め決められた勧誘期間中に初期要求を発行している各クライアントを登録する。登録された各クライアントはストリーミングモジュール26からのデータパケットを待つ。
ステップ406において、ストリーミングモジュールはサーバー4上でセクターシーケンスファイル22を探す。セクターシーケンスファイル22は所望のデータを含んでいるデータセクターへのアクセス及びデータセクターのブロードキャストまたはマルチキャストの順序(オーダー)を決定する。セクターシーケンスファイル22が見つからない場合、プログラムフローは後で説明されるセクターシーケンスファイルを記録するためのラーニング処理(または、学習処理)450に進む。
ステップ408において、セクターシーケンスファイル22が見つかった場合、ストリーミングモジュール26は所望のデータを登録されたクライアントにブロードキャストまたはマルチキャストする。データパケットは好まれるものとして固定速度でブロードキャストまたはマルチキャストされる。
登録された各クライアント2において、受信されたデータパケットはブロードキャストまたはマルチキャストのレート及びクライアントのブート処理速度の差を補正するために固定長のキューに格納される(ステップ410)。ネットワーク及びストレージドライバーは初期のMBR/Int 13hフッキング処理(MBR/Int 13h hooking process)とは異なった様式でストリーミングを操作する。ドライバーはデータを各クライアント内に予めアロケートされた、メモリー上の大型の一時的区分(「データキャッシュ」)にロードする。登録された各クライアントは、それが正常に受信したデータパケットを追跡する(または、場所を記録する)。選択的に、登録された各クライアントはサーバーに、最も最近のN個のパケットが正常に受信されるように試みられたことを示す、アクノリッジメント(または、受け取り信号)を送信する(ステップ412)。クライアントのアクノリッジメントの目的はローカルクライアントのバッファーがオバーランされていないことを確実にすることである。
ステップ414において、ストリーミングモジュール26は所望のデータが全てアクセスされ、それらのコンテント(または、内容)が送信されたことを確認する。これらの処理が完了していない場合、ステップ408及びステップ410は完了するまで繰り返される。所望のデータが全てブロードキャストまたはマルチキャストされている場合、ストリーミングモジュールは送信が完了したことを示すメッセージを送信する(ステップ416)。しかしながら、この時点において、全てのクライアントが情報の全てのブロックを問題なく受信していなくてもよい。すなわち、いくつかのパケットがなんらかの理由によって欠落していてもよい。また、いくつかのクライアントが送信の開始を見逃してもよい。ステップ418において、クライアント2の各々は送信が成功したことを示すメッセージ、または、見逃されたパケットの再送信に対する必要性を示すメッセージによって、ストリーミングモジュール26に応答してもよい。ストリーミングモジュール26はパケットの再送信のリストを編集し、効果的に順序付ける(ステップ420)。あるいは、パケットの再送信のリストは(ステップ414の前に)データパケットの送信中に、決められた数のバイト数ごとに繰り返し編集されてもよい。再送信はストリーミングを行っているモジュールとクライアントとの間で個々に行われてもよい(ステップ422)。この時点で、ほとんどのクライアントは受信したデータパケットの処理をしているので、ネットワークの帯域幅は大きく、それゆえ、個々の再送信はブート時間またはネットワークのトラフィックに対して認識可能な程度の影響を与えないだろう。
ステップ424において、ダウンロードされたデータが正常に処理された後、キャッシュのために事前に確保されたメモリーのアロケートが解除される。
上述したように、ストリーミング処理400の長所は、各クライアントにおいて、クライアントのO/SがO/Sのデータストラクチャー、ドライバー、またはアプリケーションの初期化に専念している間、O/Sがデータを必要とする前にデータパケットをメモリーに予めロードすることによって将来必要となるO/Sのデータが既に準備されているだろうということである。ストリーミングモジュール26はクライアントがパケットを利用できる状態になる前に、クライアントにパケットをブロードキャスト及び(または)マルチキャストし、ブートアップ時間の依存性をパケットの送信時間からクライアントのブート処理時間に移す。特定の実施例において、ストリーミングモジュール26は送信されるべき仮想ドライブセクターのコンテントの順序を決定するためにセクターシーケンスファイル22を利用する。セクターシーケンスファイル22は同期性のストリーミング処理を着手する前に、サーバー4上に格納されることが予期されるが、これが行われない場合、セクターシーケンスファイル22は以下に説明されるラーニング処理(または、学習処理)中に生成されてもよい。
ストリーミングモジュール26がセクターシーケンスファイル22を見つけられない場合、ラーニング処理450が実行される。セクターシーケンスファイルはO/Sがブート処理を完了するためにリードしなければならない、セクターのリストから成る。ステップ426において、ストリーミングモジュール26は1つの登録されたクライアントを選択する。選択されたクライアントが独創的なMBR24及びドライバー(30及び32)を使用して、慣例的にブートすることが許可されるとともに、ストリーミングモジュールは新規のセクターシーケンスファイルに、選択されたクライアントがブート中に生成した全てのセクターアクセス要求を記録する(ステップ428)。ステップ430において、ブートするクライアントは、それがブートを完了したことをストリーミングモジュールに知らせる。この時点で、新規のセクターシーケンスファイルは仮想ドライブ8に格納され、ステップ408でストリーミング処理が再開される。上述の本発明の特徴及び実施から当業者にとっては本発明の他の実施例が明白であるだろう。例えば、いくつかの実施例において、同期的ストリーミング処理400は割り込みハンドラープロシジャー(または、割り込みハンドラー処理)によって要求されたデータのダウンロードのみに使用されたり、サーバーの保護モードアクセスでのみ使用されたりしてもよい。または、同期的ストリーミング処理400はクライアントへのアプリケーションの事前ロードに使用されてもよい。同様に、他の実施例において、データパケットの要求及び受信を同期させるためのMBRコードを使用しない、ハイバネーションイメージのネットワークコピーからのブートも本発明の範囲に含まれる。それゆえ、上述の説明及び実施例は例としてだけのものであり、本発明の本来の範囲及び意図は付随する請求の範囲によって規定される。
本発明が実施されるクライアント/サーバーネットワーク環境を図示しているブロック図である。 本発明の1つの実施例に従ったネットワークアダプターを図示しているブロック図である。 独創的なドライバーがネットワークサーバーからダウンロードされ実行された後の、クライアントのローカルメモリーの一部の実施例を図示しているブロック図である。 本発明によって与えられる同期性ストリーミング処理の1つの実施例を図示しているフローチャートである。 ハイバネーションイメージファイルを利用している遠隔ネットワークブート処理の1つの実施例を図示しているフローチャートである。
符号の説明
2 クライアント
4 第1サーバー
6 CPU
8 ハードディスク(仮想ドライブ)
10 ROM
12 RAM
14 通信インターフェース(ネットワークアダプター)
16 バス
18 BIOS
20 ハイバネーションファイル
22 セクターシーケンスファイル
24 MBR
26 ストリーミングモジュール
28 O/SMBR
30 ネットワークフィルタードライバー
32 ストレージドライバー
33 MBR
34 第2サーバー
36 クライアントモジュール
38 ネットワークルーター/スイッチ
40 O/S
42 CPU
44 メモリー
46 ROM
48 BIOS
50 メモリー(RAM)
52 ハードディスク
54 ネットワークアダプター(NIC)
56 システムバス
58 バスインターフェース
60 ネットワークコネクター
62 RAM
64 OPROM
66 PXE
68 OSネットワークスタック
70 ウィンドウズの多様なマネジャー
72 初期化ファイル
74 NICドライバー
76 OSドライバー
78 OSローダー

Claims (15)

  1. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを有し
    前記方法は、
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップであって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化するステップと、
    前記クライアントコンピューターをローカルにブートするステップと、
    1つまたは複数の初期化ファイルを前記クライアントコンピューターのメモリーに保存するステップと、
    前記クライアントコンピューターを所望の状態に初期設定するステップと、
    前記初期設定されたクライアントコンピューターをハイバネートすることにより、ハイバネーションファイルを生成するステップと、
    前記ハイバネーションファイルを前記サーバーに格納するステップと
    を介して行われる、方法。
  2. 前記エミュレーションコードが各クライアントコンピューターのネットワークインターフェースに存在するPXEコードである、請求項1に記載の方法。
  3. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを有し
    前記方法は、
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップであって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化するステップ
    を介して行われ、
    前記O/Sブートファイルを集合的に格納する前記セクターの第3の組を送信するステップは、
    勧誘期間中に、前記O/Sブートファイルのダウンロードを要求している1つまたは複数のクライアントコンピューターを登録するステップと、
    前記セクターの第3の組の全てのセクターがマルチキャストされるまで、前記サーバーが受け取る要求を発行する、前記登録されたクライアントコンピューターの異なった1つを順に選択しながら、1つまたは複数の前記登録されたクライアントコンピューターの全てにセクターベースでセクターをマルチキャストするステップと
    をさらに含む方法。
  4. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを有し
    前記方法は、
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューターに存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップで あって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化すること
    を介して行われ、
    前記O/Sブートファイルを集合的に格納する前記セクターの第3の組を送信するステップは、
    勧誘期間中に、前記O/Sブートファイルのダウンロードを要求している1つまたは複数のクライアントコンピューターを登録するステップと、
    前記セクターの第3の組の全てのセクターがブロードキャストされるまで、前記サーバーが受け取る要求を発行する、前記登録されたクライアントコンピューターの異なった1つを順に選択しながら、1つまたは複数の前記登録されたクライアントコンピューターの全てにセクターベースでセクターをブロードキャストするステップと
    をさらに含む方法。
  5. 各クライアントコンピューターが、セクターの第3の組受信されなかった全てのセクターの再送信を個々に要求する、請求項3に記載の方法。
  6. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを有し
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラーフロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップであって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化するステップと
    を介して行われ、
    前記ハイバネーションファイルを集合的に格納する前記セクターの第1の組を送信するステップは、
    勧誘期間中にハイバネーションファイルのダウンロードを要求している1つまたは複数のクライアントコンピューターを登録するステップと、
    前記セクターの第1の組の全てのセクターがマルチキャストされるまで、前記サーバーが受け取る要求を発行する、前記登録されたクライアントコンピューターの異なった1つを順に選択しながら、1つまたは複数の前記登録されたクライアントコンピューターの全てにセクターベースでセクターをマルチキャストするステップと
    をさらに含む方法。
  7. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを有し
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップであって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化するステップ
    を介して行われ、
    前記ハイバネーションファイルを集合的に格納する前記セクターの第1の組を送信するステップは、
    勧誘期間中にハイバネーションファイルのダウンロードを要求している1つまたは複数のクライアントコンピューターを登録するステップと、
    前記セクターの第1の組の全てのセクターがブロードキャストされるまで、前記サーバーが受け取る要求を発行する、前記登録されたクライアントコンピューターの異なった1つを順に選択しながら、1つまたは複数の前記登録されたクライアントコンピューターの全てにセクターベースでセクターをブロードキャストするステップと
    をさらに含む方法。
  8. 各クライアントコンピューターが前記ハイバネーションファイルに集合的に格納された前記セクターの各々の受信をアクノリッジするステップ、または、セクターの第1の組受信されなかった全てのセクターの再送信を個々に要求するステップをさらに含む、請求項6に記載の方法。
  9. 前記サーバーセクターシーケンスファイルが記録されている場合、記録された前記セクターシーケンスファイルに従って前記登録されたクライアントコンピューターに前記セクターがマルチキャストされ
    前記サーバーに前記セクターシーケンスファイルが存在しない場合、前記サーバーは、単一の登録されたクライアントコンピューターを選択し、前記選択されたクライアントコンピューターをブートするともに、前記ブート中に前記選択されたクライアントコンピューターによって要求されたセクターの順序付けられたリストを前記セクターシーケンスファイルに記録することによって前記セクターシーケンスファイルを学習し、選択されていない登録されたクライアントコンピューターに複数のセクターをマルチキャストするために前記学習したセクターシーケンスファイルを使用する、請求項3に記載の方法。
  10. 前記サーバーセクターシーケンスファイルが記録されている場合、記録された前記セクターシーケンスファイルに従って前記登録されたクライアントコンピューターに前記セクターがブロードキャストされ
    前記サーバーに前記セクターシーケンスファイルが存在しない場合、前記サーバーは、単一の登録されたクライアントコンピューターを選択し、前記選択されたクライアントコンピューターをブートするともに、前記ブート中に前記選択されたクライアントコンピューターによって要求されたセクターの順序付けられたリストを前記セクターシーケンスファイルに記録することによって前記セクターシーケンスファイルを学習し、選択されていない登録されたクライアントコンピューターに複数のセクターをブロードキャストするために前記学習したセクターシーケンスファイルを使用する、請求項4に記載の方法。
  11. 前記O/Sドライバーがネットワークフィルタードライバー及びストレージドライバーを含む、請求項1に記載の方法。
  12. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするための方法であって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを含み
    前記1つまたは複数のクライアントコンピューターが前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行するステップであって前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記ハイバネーションファイルの個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記要求の第1の組を発行するステップの処理中に
    前記1つまたは複数のクライアントコンピューターが、前記サーバーからブートファイルを取得するために、前記ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行するステップと、
    前記1つまたは複数のクライアントコンピューターがO/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行するステップであって、前記サーバーが前記セクターの第3の組の個々のセクターのコンテントを予め決められた様式で前記サーバーに接続したディスクドライブからアクセスし、前記ネットワークを介してダウンロードの要求を発行している前記1つまたは複数のクライアントコンピューターに送信するように前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートする、ステップと、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求発行するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記サーバーから受信した前記セクターの各々の前記コンテントを前記1つまたは複数のクライアントコンピューター上に格納するステップと、
    前記1つまたは複数のクライアントコンピューターが、前記1つまたは複数のクライアントコンピューターの前記O/Sの動作を使用可能な状態に再開するステップ
    を含み、
    前記再開するステップは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復するステップと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化するステップ
    を介して行われ、
    前記O/Sドライバーが、前記サーバーのエミュレーションを可能にするネットワークフィルタードライバー及びストレージドライバーを含み、
    前記初期化するステップは、
    前記ストレージドライバーによってクライアントコンピューターの全てのリード及びライト要求を予めアロケートされたメモリーにキュー登録するステップと、
    クライアントコンピューターのメモリーから前記ハイバネーションファイルに含まれている1つまたは複数の初期化ファイルまたはシステムファイルをリードするステップと、
    クライアントコンピューターのリード及びライト要求を受諾するためにネットワークフィルタードライバーまたは他の必要なドライバーを初期化するステップと、
    前記ストレージドライバーによってクライアントコンピューターの全てのリード及びライト要求をキュー解除するステップと
    をさらに含む方法。
  13. ネットワーク上のサーバーから1つまたは複数のクライアントコンピューターのオペレーティングシステム(O/S)をブートするためのシステムであって、前記サーバーがハイバネーションイメージを格納し、前記サーバーが、1つまたは複数のクライアントコンピューターインターフェースを介して前記1つまたは複数のクライアントコンピューターと通信し、前記ハイバネーションイメージが前記クライアントコンピューターのためのO/Sファイルを含み
    前記システムは、
    1つまたは複数のクライアントコンピューターとサーバーとを含み、
    前記1つまたは複数のクライアントコンピューターのそれぞれは、
    プロセッサーと、
    前記プロセッサーと通信可能なメモリーであって、実行可能なインストラクションを格納するためメモリー
    を含み、
    前記プロセッサーが前記インストラクション応答して前記サーバー上に存在するセクターの第1の組のコンテントをダウンロードするために1つまたは複数の要求の第1の組を前記サーバーに発行し、前記セクターの第1の組がハイバネーションイメージを含むハイバネーションファイルを集合的に格納しさらに、前記サーバーが前記1つまたは複数の要求の第1の組応答して、前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートし、
    前記要求の第1の組を発行するステップの処理中に
    前記プロセッサーが、ブートファイルを集合的に構成するセクターの第2の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在するエミュレーションコード及びクライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第2の組を前記サーバーに発行
    前記プロセッサーが、O/Sドライバーを含むO/Sブートファイルを集合的に格納しているセクターの第3の組をダウンロードするために、前記1つまたは複数のクライアントコンピューター上に存在する前記ブートファイル及び前記クライアントコンピューターディスクアクセス割り込みハンドラープロシジャーを実行することによって1つまたは複数の要求の第3の組を前記サーバーに発行
    前記サーバーが前記1つまたは複数のクライアントコンピューターのディスクドライブの挙動をエミュレートしさらに、
    前記O/Sブートファイルがダウンロードされた後、前記1つまたは複数のクライアントコンピューターがハイバネーションファイルを集合的に構成する前記セクターの第1の組のコンテントを前記サーバーからセクターベースで取得するために、前記プロセッサーが、前記O/Sブートファイルを実行することによって前記1つまたは複数の要求の第1の組の残りの要求を前記サーバーに発行し、
    前記プロセッサーが、前記サーバーから受信した前記セクターの各々の前記コンテントを格納し
    前記プロセッサーが、前記O/Sの動作を使用可能な状態に再開することを行い、
    前記再開することは、
    前記ハイバネーションイメージを前記クライアントコンピューターのメモリー内に回復することと、
    前記O/Sに関連したドライバーデータストラクチャーアプリケーションを初期化することと、
    前記クライアントコンピューターをローカルにブートすることと、
    1つまたは複数の初期化ファイルを前記クライアントコンピューターのメモリーに保存することと、
    前記クライアントコンピューターを所望の状態に初期設定することと、
    前記初期設定されたクライアントコンピューターをハイバネートすることにより、ハイバネーションファイルを生成することと、
    前記ハイバネーションファイルを前記サーバーに格納することと
    を介して行われ、
    前記サーバーは、
    サーバープロセッサーと、
    前記サーバープロセッサーと通信可能なサーバーメモリーであって、実行可能なインストラクションを格納するためサーバーメモリー
    を含み、
    前記サーバープロセッサーは、前記インストラクション応答して、
    前記サーバーに接続されたディスクドライブから予め決められた様式でセクターの第1の組にアクセスし
    セクターの実際のソースが前記1つまたは複数のクライアントコンピューターの前記エミュレートされたディスクドライブとして認識されるように、予め決められた勧誘期間の後、前記ネットワークを介して、セクターの第1の組のダウンロードを要求している前記1つまたは複数のクライアントコンピューターに前記セクターの第1の組を送信し
    前記サーバーに接続されたディスクドライブから予め決められた様式でセクターの第2の組にアクセスし
    前記ネットワークを介して、セクターの第2の組のダウンロードを要求している前記1つまたは複数のクライアントコンピューターに前記セクターの第2の組を送信し、
    前記サーバーに接続されたディスクドライブから予め決められた様式でセクターの第3の組にアクセスしさらに、
    セクターの実際のソースが前記1つまたは複数のクライアントコンピューターの前記エミュレートされたディスクドライブとして認識されるように、予め決められた勧誘期間の後、前記ネットワークを介して、セクターの第3の組のダウンロードを要求している前記1つまたは複数のクライアントコンピューターに前記セクターの第3の組を送信する、システム
  14. 前記サーバーにセクターシーケンスファイルが記録されている場合、記録された前記セクターシーケンスファイルに従って前記登録されたクライアントコンピューターに前記セクターがマルチキャストされ
    前記サーバーに前記セクターシーケンスファイルが存在しない場合、前記サーバーは、単一の登録されたクライアントコンピューターを選択し、前記選択されたクライアントコンピューターをブートするともに、前記ブート中に前記選択されたクライアントコンピューターによって要求されたセクターの順序付けられたリストを前記セクターシーケンスファイルに記録することによって前記セクターシーケンスファイルを学習し、選択されていない登録されたクライアントコンピューターに複数のセクターをマルチキャストするために前記学習したセクターシーケンスファイルを使用する請求項6に記載の方法。
  15. 前記サーバーにセクターシーケンスファイルが記録されている場合、記録された前記セクターシーケンスファイルに従って前記登録されたクライアントコンピューターに前記セクターがブロードキャストされ
    前記サーバーに前記セクターシーケンスファイルが存在しない場合、前記サーバーは、単一の登録されたクライアントコンピューターを選択し、前記選択されたクライアントコンピューターをブートするともに、前記ブート中に前記選択されたクライアントコンピューターによって要求されたセクターの順序付けられたリストを前記セクターシーケンスファイルに記録することによって前記セクターシーケンスファイルを学習し、選択されていない登録されたクライアントコンピューターに複数のセクターをブロードキャストするために前記学習したセクターシーケンスファイルを使用する、請求項7に記載の方法。
JP2003586784A 2002-04-18 2002-04-18 ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法 Expired - Lifetime JP4199678B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2002/012275 WO2003090109A1 (en) 2002-04-18 2002-04-18 System for and method of network booting of an operating system to a client computer using hibernation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008031140A Division JP2008198210A (ja) 2008-02-12 2008-02-12 ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法

Publications (2)

Publication Number Publication Date
JP2005523523A JP2005523523A (ja) 2005-08-04
JP4199678B2 true JP4199678B2 (ja) 2008-12-17

Family

ID=29247992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003586784A Expired - Lifetime JP4199678B2 (ja) 2002-04-18 2002-04-18 ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法

Country Status (4)

Country Link
EP (1) EP1495418B1 (ja)
JP (1) JP4199678B2 (ja)
AU (1) AU2002367880A1 (ja)
WO (1) WO2003090109A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352624B2 (en) 2002-04-18 2013-01-08 Citrix Systems, Inc. System for and method of streaming data to a computer in a network
US6954852B2 (en) 2002-04-18 2005-10-11 Ardence, Inc. System for and method of network booting of an operating system to a client computer using hibernation
JP4604543B2 (ja) 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
JP4290605B2 (ja) * 2004-05-26 2009-07-08 日本電信電話株式会社 共同利用パソコンシステム及び共同利用パソコンシステムの管理方法
JP4759941B2 (ja) * 2004-06-22 2011-08-31 日本電気株式会社 起動イメージ提供システム及び方法、ブートノード装置、ブートサーバ装置並びにプログラム
JP2006099234A (ja) 2004-09-28 2006-04-13 Aruze Corp ネットワーク端末装置、配信サーバ、並びにクライアント/サーバシステム
JP4704043B2 (ja) * 2005-01-07 2011-06-15 富士通株式会社 移動処理プログラム、情報処理装置、コンピュータシステム及び移動処理プログラムを格納したコンピュータ読み取り可能な記録媒体
JP4778247B2 (ja) 2005-03-17 2011-09-21 富士通株式会社 リモートブート方法、機構及びプログラム
JP4863154B2 (ja) * 2005-03-29 2012-01-25 日本電気株式会社 起動イメージ提供システム及びその動作方法、ブートノード装置、ブートサーバ装置並びにその動作プログラム
JP2009176096A (ja) * 2008-01-25 2009-08-06 Jade Quantum Technologies Inc 固定ディスク装置有しないコンピュータよりオペレーティングシステムを遠隔端のデータ保存サーバーに導入するシステムとその方法
KR101562973B1 (ko) 2009-05-22 2015-10-26 삼성전자 주식회사 메모리 장치 및 메모리 장치의 동작 방법
FR2957700B1 (fr) * 2010-03-22 2012-04-13 Bull Sas Procede, programme d'ordinateur et dispositif d'optimisation de chargement et de demarrage d'un systeme d'exploitation dans un systeme informatique via un reseau de communication
CN101916172B (zh) * 2010-08-17 2011-08-24 中国人民解放军国防科学技术大学 一种基于虚拟磁盘映像逻辑分割的按需软件分发方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146568A (en) * 1988-09-06 1992-09-08 Digital Equipment Corporation Remote bootstrapping a node over communication link by initially requesting remote storage access program which emulates local disk to load other programs
US5404527A (en) * 1992-12-31 1995-04-04 Unisys Corporation System and method for remote program load
DE69801320T2 (de) * 1997-10-06 2002-05-29 Powerquest Corp System und verfahren für punkt-zu mehrpunkt bildübertragung zwischen rechnern in einem netzwerk
US5974547A (en) * 1998-03-20 1999-10-26 3Com Corporation Technique for reliable network booting of an operating system to a client computer
US6101601A (en) * 1998-04-20 2000-08-08 International Business Machines Corporation Method and apparatus for hibernation within a distributed data processing system
US6226667B1 (en) * 1998-05-26 2001-05-01 International Business Machines Corporation Method and apparatus for preloading data in a distributed data processing system
US6209088B1 (en) * 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system

Also Published As

Publication number Publication date
JP2005523523A (ja) 2005-08-04
EP1495418A4 (en) 2008-04-16
AU2002367880A1 (en) 2003-11-03
EP1495418B1 (en) 2019-04-10
WO2003090109A1 (en) 2003-10-30
EP1495418A1 (en) 2005-01-12

Similar Documents

Publication Publication Date Title
US6954852B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
US7321936B2 (en) System for and method of streaming data to a computer in a network
US8352624B2 (en) System for and method of streaming data to a computer in a network
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
US7246200B1 (en) Provisioning and snapshotting using copy on read/write and transient virtual machine technology
EP1769375B1 (en) System and method for integrated on-demand delivery of operating system and applications
US5974547A (en) Technique for reliable network booting of an operating system to a client computer
US5872968A (en) Data processing network with boot process using multiple servers
TWI547875B (zh) 將機器轉換至虛擬機器的方法及電腦程式產品
US20040153694A1 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
JP4199678B2 (ja) ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法
US20030200428A1 (en) Method and system for booting a client computer system over a network
US7174451B2 (en) System and method for saving and/or restoring system state information over a network
JP4199677B2 (ja) データをネットワーク上のコンピューターにストリームするためのシステム及び方法
JP2009230433A (ja) ネットワークブート装置、プログラム及び方法
US20040243385A1 (en) Emulation of hardware devices in a pre-boot environment
JP2008198210A (ja) ハイバネーションを使用したクライアントコンピューターのオペレーティングシステムのネットワークブーティングのためのシステム及び方法
JP2008165823A (ja) データをネットワーク上のコンピューターにストリームするためのシステム及び方法
NZ536066A (en) System for and method of streaming data to a computer in a network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070305

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070809

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080212

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080212

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080215

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080912

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081003

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4199678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111010

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121010

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131010

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term