JP2008165823A - System and method for streaming data to computer on network - Google Patents

System and method for streaming data to computer on network Download PDF

Info

Publication number
JP2008165823A
JP2008165823A JP2008028207A JP2008028207A JP2008165823A JP 2008165823 A JP2008165823 A JP 2008165823A JP 2008028207 A JP2008028207 A JP 2008028207A JP 2008028207 A JP2008028207 A JP 2008028207A JP 2008165823 A JP2008165823 A JP 2008165823A
Authority
JP
Japan
Prior art keywords
sector
data
network
server
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.)
Pending
Application number
JP2008028207A
Other languages
Japanese (ja)
Inventor
Myron Zimmerman
ジマーマン マイロン
Robert Lusinsky
ルシンスキ ロバート
Gint Burokas
ブロカス ギント
Mike Garelick
ガーリック マイク
Marc Sandusky
サンダスキ マーク
Kenny Bunch
バンチ ケニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ardence Inc
Original Assignee
Ardence Inc
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 Ardence Inc filed Critical Ardence Inc
Priority to JP2008028207A priority Critical patent/JP2008165823A/en
Publication of JP2008165823A publication Critical patent/JP2008165823A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method for booting one or more client computers through a network. <P>SOLUTION: A system and method for quickly streaming data to one or more client devices (2 or 2') such as personal computers (PC) from a server (4) utilizes virtual disk emulation and broadcasting or multicasting of data existing in a network server (38). In several embodiments, data to be streamed include a file required for booting and initializing the one or more client devices (2 or 2'), hibernation, an O/S, and application files. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明はネットワークサーバーからネットワーク上のパソコン(PC)等の1つまたは
複数のクライアント装置への、同時性のデータの伝送に関する。詳細に述べると、本発明
は仮想ディスクエミュレーション及び所望のデータのブロードキャスティングまたはマル
チキャスティングを利用することによってクライアント装置の遠隔操作を促進する。いく
つかの実施例において、前記データはネットワークサーバー上に存在し、1つまたは複数
のクライアント装置をブートまたは初期設定するために使用されるオペレーティングシス
テム(O/S)、ハイバネーション、及びアプリケーションファイルを含む。
The present invention relates to simultaneous data transmission from a network server to one or more client devices such as a personal computer (PC) on a network. Specifically, the present invention facilitates remote operation of client devices by utilizing virtual disk emulation and desired data broadcasting or multicasting. In some embodiments, the data resides on a network server and includes an operating system (O / S), hibernation, and application files that are used to boot or initialize one or more client devices. .

コンピューターネットワークはオフィスや企業の他の環境においてパソコン(PC)を
相互接続するために使用されている。PCの使用の拡大とともに、コンピューターファイ
ルの共有化及びインストール後の各PCの管理の促進に対する要求が増している。多数の
PCから成るネットワークにおいて、組織が、各PCを実際に訪問及びサービスするため
のIT用人員を保有することは非常にコストがかかることである。このようなコストを抑
えるために、ソフトウェア及びコンピューターの製造業者はソフトウェア製品をネットワ
ークサーバーで集中的に維持し、ネットワークを介して各クライアントPCに所望のソフ
トウェアをダウンロードするための技術を開発している。
Computer networks are used to interconnect personal computers (PCs) in office and other corporate environments. As the use of PCs expands, there is an increasing demand for sharing computer files and promoting management of each PC after installation. In a network consisting of a large number of PCs, it is very costly for an organization to have IT personnel to actually visit and service each PC. In order to reduce such costs, software and computer manufacturers maintain software products centrally on a network server and develop techniques for downloading desired software to each client PC via the network. .

ネットワーク中心的(network-centric)コンピューター化はまた、PCアーキテクチ
ャに新しい要求を課している。組み込み型のシステムは通常小型かつ安価で、特定の目的
の装置に専用の物として設計されている。PCはそれらの寿命の異なった時期において、
多様な異なった役割を果たせるような、拡張可能な汎用型のコンピュータープラットフォ
ームである。現在の組み込み型システムの多くの形式は、「通信プロトコル」と呼ばれる
ルールの組に従ってネットワーク上でデータパケットを送信することによって、それらが
他のインテリジェント型装置と相互作用することを可能にする通信メカニズムに接続され
ている。サーバーとクライアント等の、ネットワーク上の2つのコンピューターが互いに
通信するために、各コンピューターは特定のネットワークに対する適当な通信プロトコル
を使用しなければならない。本発明はネットワーク通信のために標準的なTFTP(trivi
al file transport protocol)及びDHCP(Dynamic Host Configuration Protocol)を利
用する。
Network-centric computerization also places new demands on the PC architecture. Embedded systems are usually small and inexpensive and are designed specifically for special purpose devices. PCs at different times of their lifetime
It is an extensible general-purpose computer platform that can play a variety of different roles. Many forms of current embedded systems are communication mechanisms that allow them to interact with other intelligent devices by sending data packets over the network according to a set of rules called "communication protocols" It is connected to the. In order for two computers on a network, such as a server and a client, to communicate with each other, each computer must use an appropriate communication protocol for a particular network. The present invention uses standard TFTP (trivi) for network communications.
al file transport protocol) and DHCP (Dynamic Host Configuration Protocol).

組み込み型のインテリジェント接続された装置の設計者及び製造者はコストを削減し、
管理性及び信頼性を向上させ、展開を促進し、装置内の知的財産を保護するための方法を
模索している。これらを達成する1つの方法はクライアントPCがネットワークからブー
ト(または、起動)される能力を導入することである。PCのブートプロセスの目的は必
要なオペレーティングシステム要素をロードし、ハードウェア装置を初期化し、ユーザー
にアプリケーションを提示すことである。これは長い処理であり、通常の条件下において
、ハードウェアまたはソフトウェアの初期設定の変化及び認可されたユーザーの変化を考
慮する必要がある。ネットワークブートは、PCに関連した(または、PCに直接接続し
た)ハードウェアが固定的であり、クライアントPCの役割がたびたび変化しない状況に
より適している。ネットワークブートはPCのハードディスクの除去を可能にし、ソフト
ウェアコンテントの中央管理を促進する。現状のネットワークの帯域(10/100Mbs及び1Gb
s)はクライアントPCのローカルハードディスクの速度に達していないので、クライア
ントPCのオペレーティングシステム(O/S)の遠隔的な「コールドブート」は効率的
ではなく、非常に時間がかかる。さらに、ネットワークの有効な帯域幅及びネットワーク
サーバーのリソースは多数のクライアント装置を同時にブート(「ブートストーム」)し
ようとしたときにさらに悪化する可能性がある。「コールドブート」のために必要な長い
時間は通常の組み込み型装置の認知及び挙動の魅力を奪う。したがって、ネットワークサ
ーバー等の、中央のリポジトリからネットワーク上の複数のクライアント装置への所望の
データの伝送をスピードアップするスケーラブルな(または、拡張及び縮小が容易な)方
法が要求されている。
Designers and manufacturers of embedded intelligent connected equipment reduce costs,
We are looking for ways to improve manageability and reliability, promote deployment, and protect intellectual property in devices. One way to achieve these is to introduce the ability for the client PC to be booted (or started) from the network. The purpose of the PC boot process is to load the necessary operating system elements, initialize the hardware device, and present the application to the user. This is a long process and under normal conditions it is necessary to take into account changes in hardware or software defaults and changes in authorized users. Network boot is more suitable for situations where the hardware associated with the PC (or directly connected to the PC) is fixed and the role of the client PC does not change frequently. Network boot enables the removal of the PC's hard disk and facilitates central management of software content. Current network bandwidth (10 / 100Mbs and 1Gb
Since s) does not reach the local hard disk speed of the client PC, remote “cold boot” of the client PC operating system (O / S) is not efficient and very time consuming. Furthermore, the effective bandwidth of the network and network server resources can be further exacerbated when attempting to boot a large number of client devices simultaneously ("boot storm"). The long time required for “cold boot” detracts from the perception and behavior of ordinary embedded devices. Therefore, there is a need for a scalable (or easy to expand and contract) method that speeds up the transmission of desired data from a central repository to a plurality of client devices on the network, such as a network server.

従来技術のシステムは、ネットワーク上のブートイメージからクライアント装置を遠隔
的にブートすることに関連した長いブート時間を解決するための手法を提示している(例
えば、特許文献1参照)。しかしながら、この特許は各クライアントPCのローカル格納
媒体に格納されたハイバネーションイメージから再生し、一種のリセットにしたがうこと
を教授している。この手法はクライアントPCがハイバネーションの前にPCの所望の状
態の全ての再設定を実施することを必要とし、サーバーが多数のクライアントPCが接続
されたネットワーク上で、対応する複数のクライアントPCに複数のハイバネーションイ
メージを個々に転送するのでネットワークの衝突を引き起こす可能性がある。
Prior art systems present a technique for solving the long boot time associated with remotely booting a client device from a boot image on a network (see, for example, Patent Document 1). However, this patent teaches playing from a hibernation image stored in the local storage medium of each client PC and following a kind of reset. This approach requires that the client PC perform all reconfiguration of the desired state of the PC prior to hibernation, and the server has multiple corresponding client PCs on a network to which many client PCs are connected. Since each hibernation image is transferred individually, it may cause a network collision.

従来のシステムには、サーバーへのネットワーク接続を介してクライアントコンピュー
ター上の32ビットPCオペレーティングシステム(O/S)をブートするためにディス
クエミュレーションを使用する装置及び方法を使用しているものもある(例えば、特許文
献2参照)。詳細に述べると、この特許はクライアントのO/Sがそれ自体でネットワー
ク処理を実施することができるようになるまで、「ガタピシモード(thunking)」と呼ば
れる、ウィンドウズ(登録商標)9xO/Sの32ビット保護モード処理とBIOSによって使用される16ビットリアルモードとの間での(各ディスクI/Oコールでの)スイッチングの方法を教授している。この方法及び装置はO/Sを含むクライアントPC上で望まれるソフトウェアアプリケーションの完全なイメージのダウンロードによる、サーバーからのウィンドウズ(登録商標)95等のO/Sのブートに特に適している。しかしながら、この特許は特定の好まれる実施例においてハイバネーションファイルを含む、所望のデータの、ネットワーク上の複数のクライアントPCへのブロードキャスティングまたはマルチキャスティングを考えに入れていない。
Some conventional systems use devices and methods that use disk emulation to boot a 32-bit PC operating system (O / S) on a client computer via a network connection to a server ( For example, see Patent Document 2). Specifically, this patent refers to Windows® 9xO / S 32, referred to as “thunking” until the client O / S is able to perform network processing on its own. He teaches how to switch (in each disk I / O call) between bit protection mode processing and the 16-bit real mode used by the BIOS. This method and apparatus is particularly suitable for booting an O / S such as Windows 95 from a server by downloading a complete image of the desired software application on the client PC including the O / S. However, this patent does not allow for the broadcasting or multicasting of desired data, including hibernation files in certain preferred embodiments, to multiple client PCs on the network.

米国特許第6101601号明細書US Pat. No. 6,101,601 米国特許第5974547号明細書US Pat. No. 5,974,547

本発明の目的は、ネットワーク上に接続されたネットワークサーバー及び1つまたは複
数のクライアントコンピューターから成るネットワークシステムにおいて、ネットワーク
サーバーから1つまたは複数のPC上のO/Sを素早くブートするためのシステム及び方
法を提供することによって、上述の問題を解決することである。
An object of the present invention is to provide a system for quickly booting an O / S on one or more PCs from a network server in a network system comprising a network server and one or more client computers connected on a network. It is to solve the above-mentioned problems by providing a method.

本発明はネットワークサーバーから1つまたは複数のクライアントPCへのデータのス
トリーミング(または、データの転送)のための装置及び方法を提供する。データはネッ
トワークサーバーに関連した(または、サーバーに直接接続した)格納装置の複数のセク
ターから予め決められた様式で回復(または、検索)されてもよい。動作中、1つまたは
複数のクライアントPCは複数のセクターのダウンロードに対する対応する数の要求(ま
たは、リクエスト)を発行する。要求は一時的にクライアントPCの各々のローカルディ
スクの動作をエミュレートするサーバーに転送(または、送信)される。サーバーはサー
バーに関連した(または、サーバーに直接接続した)仮想ハードディスクから所望のデー
タを、要求しているクライアントに同時的に(または、同期的に)ブロードキャストまた
はマルチキャストする。サーバーは好まれるものとして、所望のデータへの送信の前の、
予め決められた勧誘期間中(または、インビテーション期間中)にダウンロード要求を受
諾する。
The present invention provides an apparatus and method for streaming data (or transferring data) from a network server to one or more client PCs. Data may be recovered (or retrieved) in a predetermined manner from multiple sectors of the storage device associated with (or directly connected to) the network server. In operation, one or more client PCs issue a corresponding number of requests (or requests) for downloading of multiple sectors. The request is temporarily transferred (or transmitted) to a server emulating the operation of each local disk of the client PC. The server broadcasts or multicasts the desired data from the virtual hard disk associated with the server (or directly connected to the server) to the requesting client simultaneously (or synchronously). The server is preferred, before sending it to the desired data.
Accept the download request during a predetermined solicitation period (or during the invitation period).

特定の実施例において、エミュレーションはクライアントPCの各々に存在するエミュ
レーションコードを実行することによって達成される。好まれるものとして、エミュレー
ションコードは各クライアントPCのネットワークインターフェースカード(NIC)上
に存在する実行時前ブート環境(PXE(pre-execution boot environment))コードで
ある。代替的な実施例において、エミュレーションは実行されたときに割り込み操作プロ
シジャー(Int 13h)によってディスクアクセス制御を引き受け、所望のデータを要求す
る、ネットワークサーバーからダウンロードされた独創的なブートコードの結果である。
もう1つの実施例において、エミュレーションは(好まれるものとして、ウィンドウズ(登録商標)2000、NT、またはXPである)O/Sの一部、及び、同様にクライアントのネットワークインターフェースの制御を引き受け、所望のデータを要求する、ネットワークサーバーからダウンロードされた2つの独創的なドライバーを実行することによって各クライアントPCで達成される。
In a particular embodiment, emulation is accomplished by executing emulation code that resides on each of the client PCs. Preferably, the emulation code is a pre-execution boot environment (PXE) code that resides on the network interface card (NIC) of each client PC. In an alternative embodiment, emulation is the result of an original boot code downloaded from a network server that, when executed, assumes disk access control by an interrupt handling procedure (Int 13h) and requests the desired data. .
In another embodiment, the emulation assumes control of part of the O / S (which is preferably Windows 2000, NT, or XP), and also the client's network interface, as desired. This is accomplished at each client PC by executing two original drivers downloaded from a network server that request the data.

ストリームされるデータ(または、転送されるデータ)はネットワークサーバーからダ
ウンロードを要求しているクライアントPCへの、同時的なバーストモードでのブロード
キャストまたはマルチキャストであってもよい。それゆえ、データは各クライアントPC
に冗長的に送信されるのではなく、ネットワークサーバーから一度だけ送信されればよい
。データセクターは各クライアントで受信されるので、それらは独創的なドライバーによ
って予めアロケートされたデータキャッシュにキュー登録(または、キューイング)され
る。これは各クライアントがO/Sデータストラクチャー、ドライバー、及び(または)
アプリケーションを初期化する等の、他の動作に専念することを可能にする。
The data to be streamed (or data to be transferred) may be broadcast or multicast in simultaneous burst mode from the network server to the client PC requesting download. Therefore, the data is stored on each client PC
Instead of being sent redundantly, it need only be sent once from the network server. As data sectors are received at each client, they are queued (or queued) in a data cache that has been previously allocated by an ingenious driver. This is because each client has an O / S data structure, a driver, and / or
Allows you to concentrate on other operations, such as initializing the application.

特定の実施例において、本発明は仮想ディスクエミュレーション及び、サーバーから1
つまたは複数のクライアントへ予め設定されたディスクイメージの一部をマルチキャスト
またはブロードキャストするためのストリーミング法(または、データ転送法)を利用す
ることによって、ネットワークサーバーから1つまたは複数のクライアントPC上のO/
Sをブートするためのシステム及び方法を提供する。独創的なドライバーは、1つの機能
として、再ブート処理を完了するために必要なO/Sファイルを集合的に(または、共同
的に)構成するディスクイメージの一部(複数のセクター)のブロードキャストまたはマ
ルチキャストを受信(または、受諾)することによって、各クライアントPCが使用可能
な状態に回復(または、再生)することを援助するように動作する。ブート処理の初期段
階でのディスクアクセスに対する要求は最初に、PXEサービスを使用することにより各
クライアントからネットワークサーバーにリダイレクトされる(または、向け直される)
。PXEコードは各クライアントとサーバーとの間の初期仮想接続の確立を援助し、サー
バーがもう1つのクライアントのドライブとして認識されることを可能にするだろう。P
XEコードは付加的なエミュレーションコードのダウンロードを援助し、それ(すなわち
、ダウンロードされたエミュレーションコード)は次に、送信されるディスクイメージの
一部のダウンロードを援助するO/Sコードをダウンロードする。ブート処理の初期段階
中、クライアントO/Sにサポートされたネットワークアクセスを与えるために不十分な
O/S要素がロード及び起動される。結果として、クライアントのハードディスクアクセ
ス要求はInt 13hハンドラー及びダウンロードされたエミュレーションコードを介して操
作される。O/Sのブートの約25%において、O/Sは独創的なドライバーを使用して
サーバーとの通信の制御を引き受け、BIOS Int 13hサービスに対する必要性を効果的
に回避する。
In a particular embodiment, the present invention provides virtual disk emulation and server 1
O on one or more client PCs from a network server by utilizing a streaming method (or data transfer method) to multicast or broadcast a portion of a pre-configured disk image to one or more clients /
Systems and methods for booting S are provided. Ingenious drivers, as one function, broadcast part (sectors) of a disk image that collectively (or jointly) compose the O / S files needed to complete the reboot process Alternatively, it operates to assist each client PC to recover (or replay) to a usable state by receiving (or accepting) the multicast. Requests for disk access in the early stages of the boot process are first redirected (or redirected) from each client to the network server by using the PXE service.
. The PXE code will help establish an initial virtual connection between each client and server, and allow the server to be recognized as another client's drive. P
The XE code assists in downloading additional emulation code, which (ie, downloaded emulation code) then downloads O / S code that assists in downloading a portion of the transmitted disk image. During the initial stages of the boot process, insufficient O / S elements are loaded and activated to provide client O / S supported network access. As a result, client hard disk access requests are handled via an Int 13h handler and downloaded emulation code. In about 25% of the O / S boot, the O / S uses an ingenious driver to take control of communication with the server, effectively avoiding the need for the BIOS Int 13h service.

もう1つの実施例において、本発明のネットワークサーバーから1つまたは複数のPC
上のO/Sを素早くブートするためのシステム及び方法はハイバネーションファイルを使
用する。この実施例において、ストリームされるデータはハイバネーションイメージ及び
複数のO/Sファイルを含むハイバネーションファイルを含む。ストリーミング処理自体
はハイバネーションの機能性に全く依存しないが、この実施例における1つまたは複数の
PCはハイバネーションをサポートするO/Sを動作させる必要がある。そのようなシス
テムはマイクロソフトウィンドウズ(登録商標)2000及びXPを含む。同期性のストリーミング法を利用するネットワークブートのさらなる記述は本出願人の国際公開第03/090109号「System for and Method of Network Booting of an Operating System to a Client Computer Using Hibernation」に記載されており、それの内容全体は本願にも参照として取り込まれる。
In another embodiment, one or more PCs from the network server of the present invention
The system and method for quickly booting the above O / S uses a hibernation file. In this embodiment, the data to be streamed includes a hibernation image including a hibernation image and a plurality of O / S files. Although the streaming process itself does not depend on hibernation functionality at all, one or more PCs in this embodiment need to run an O / S that supports hibernation. Such systems include Microsoft Windows 2000 and XP. A further description of network boot using the synchronous streaming method is described in Applicant's International Publication No. 03/090109 “System for and Method of Network Booting of an Operating System to a Client Computer Using Hibernation” The entire contents thereof are also incorporated herein by reference.

本発明はクライアント装置がハードディスクとともに構成されなくてもよいので、必要
とするハードウェアが少ない。本発明はまた、クライアントPCが同一の所望のデータを
ダウンロードすることを可能にする。これは各クライアントが同一のO/Sやアプリケー
ションの複製を実行する必要がないので、各クライアント装置の維持を容易にする。例え
ば、ソフトウェアのアップグレードはクライアントPCの数にかかわらず、単一のディス
クイメージまたはデータセクターの特定のグループでのみ実施されることを必要とする。
ストリーミングデータは複数のクライアントにブロードキャストまたはマルチキャストさ
れるので、例えば、多数のクライアントが同時にブートしようとしたとき等の、トラフィ
ックのピーク時に、ネットワークのトラフィックが大幅に減少される。したがって本発明
の解決法は増大する数のクライアントPCをブートするために必要なリソースが少ないの
で、非常にスケーラブル(または、拡張及び縮小が容易)である。
The present invention requires less hardware because the client device does not have to be configured with a hard disk. The present invention also allows the client PC to download the same desired data. This facilitates maintenance of each client device since each client does not need to execute the same O / S or application replication. For example, software upgrades need to be performed only on a single disk image or a specific group of data sectors, regardless of the number of client PCs.
Since streaming data is broadcast or multicast to multiple clients, network traffic is greatly reduced during traffic peaks, for example when multiple clients attempt to boot simultaneously. Thus, the solution of the present invention is very scalable (or easy to expand and shrink) because fewer resources are required to boot an increasing number of client PCs.

以下に、本発明の特定の好まれる実施例を図面とともに説明する。
本願で使用される用語「MBR(Master Boot Record)(または、マスターブートレコ
ード)」、「ストレージドライバー(または、格納装置ドライバー)」、及び「ネットワ
ークフィルタードライバー」は出願人によって開発されたブートストラッピングソフトウ
ェアモジュールを意味する。出願人以外の人によって開発されたソフトウェアモジュール
を差別化するために、「O/S」等の従来の慣例的なモジュール名を採用する。また、用
語「仮想ドライブ」、「ブートドライブ」及び「サーバードライブ」は以下の記述におい
て同義的に使用される。
In the following, certain preferred embodiments of the invention will be described with reference to the drawings.
The terms “MBR (Master Boot Record)”, “storage driver (or storage device driver)”, and “network filter driver” as used herein are bootstrappings developed by the applicant. Means a software module. In order to differentiate software modules developed by a person other than the applicant, a conventional conventional module name such as “O / S” is adopted. Further, the terms “virtual drive”, “boot drive”, and “server drive” are used interchangeably in the following description.

図1に示されているネットワークコンピューター環境は企業のネットワークまたはクラ
イアント/サーバーコンフィグレーションであってもよく、そこにおいて、PC2のいず
れかがファイルサーバーまたはネットワークサーバー4として機能してもよい。ネットワ
ークサーバー4は比較的小さいPCから大きなメインフレームを含む、通常のタイプのシ
ステムであってもよい。以下に説明する特定の実施例において、サーバー4は1つまたは
複数のバス16によって接続された1つまたは複数の中央処理ユニット(CPU)6、ハ
ードディスク8、それ自体のBIOS18を備えたリードオンリーメモリー(ROM)1
0、ランダムアクセスメモリー(RAM)12、及びネットワークアダプター14を備え
る中間的なコンピューターである。当業者にとって明白であるだろうが、BIOS18は
ネットワークサーバー内の構成要素間の情報の伝達を援助する基本的なルーチンの組であ
る。以下に説明する特定の実施例において、ネットワークサーバーのハードディスク8は
O/Sローダー(例えば、NTLDR)やユーティリティーファンクションファイル(例
えば、WIN32.SYS)、または、1つまたは複数のハイバネーションファイル20、セクタ
ーシーケンスファイル22、MBR(マスターブートレコード)24等の多様なマイクロ
インストラクションコードの組、ストリーミングモジュール26、及び、少なくともネッ
トワークフィルタードライバー30及びストレージドライバー(または、格納装置ドライ
バー)32を含むO/SMBR28等のO/Sファイルを格納する。
The network computer environment shown in FIG. 1 may be a corporate network or client / server configuration, where any of the PCs 2 may function as a file server or network server 4. The network server 4 may be a normal type system including a relatively small PC and a large mainframe. In the specific embodiment described below, the server 4 is a read-only memory with one or more central processing units (CPUs) 6, a hard disk 8 and its own BIOS 18 connected by one or more buses 16. (ROM) 1
0, an intermediate computer having a random access memory (RAM) 12 and a network adapter 14. As will be apparent to those skilled in the art, the BIOS 18 is a set of basic routines that assist in the communication of information between components within a network server. In the specific embodiment described below, the network server hard disk 8 may be an O / S loader (eg, NTLDR), utility function file (eg, WIN32.SYS), or one or more hibernation files 20, sector sequences. Various microinstruction code sets such as file 22, MBR (Master Boot Record) 24, streaming module 26, and O / SMBR 28 including at least network filter driver 30 and storage driver (or storage device driver) 32 / S file is stored.

選択的に、1つまたは複数の付加的なサーバー34がネットワークに接続され、第1サ
ーバー4及びクライアントPC2と通信してもよい。マルチサーバーネットワークの場合
、クライアントモジュール36(例えば、HPPC)が第1サーバー4内に存在し、クラ
イアント装置2からの要求への応答で、どの付加的なサーバー34がクライアントアドレ
ッシング情報及びダウンロード情報を含むかを指定してもよい。
Optionally, one or more additional servers 34 may be connected to the network and communicate with the first server 4 and the client PC 2. In the case of a multi-server network, a client module 36 (eg, HPPC) exists in the first server 4 and in response to a request from the client device 2, which additional server 34 includes client addressing information and download information. May be specified.

1つまたは複数のクライアント装置2はネットワーク上のネットワークルーターまたは
ネットワークスイッチ38を介してサーバー4に接続される。物理的な接続はケーブル、
スイッチ式電話線、無線及び赤外線スペクトルで動作するワイヤレス装置、及び他の手段
を含む多様な形式のいずれであってもよい。クライアント装置及びサーバーは標準的な通
信プロトコルを使用して互いにデータを伝送する。O/S40は適当な数のO/Sモジュ
ール及びO/Sドライバーが起動した後、各クライアント装置の物理的な機能または設備
を管理する。各クライアント装置はインテルコーポレイションによって製造されているx
86ファミリーマイクロプロセッサー等の、CPU42を備えている。各クライアントは
また、BIOS48を格納しているROM46及びRAM50を含むローカルメモリー4
4、ローカル格納装置(または、ローカルストレージ)52、及びシステムバス56によ
ってCPUに接続しているネットワークアダプター54を含む。
One or more client apparatuses 2 are connected to the server 4 via a network router or network switch 38 on the network. Physical connection is cable,
It can be any of a variety of types including switched telephone lines, wireless devices operating in the radio and infrared spectrum, and other means. The client device and server transmit data to each other using a standard communication protocol. The O / S 40 manages the physical functions or facilities of each client device after an appropriate number of O / S modules and O / S drivers are activated. Each client device is manufactured by Intel Corporation x
A CPU 42, such as an 86 family microprocessor, is provided. Each client also has a local memory 4 including a ROM 46 and a RAM 50 that store the BIOS 48.
4, a local storage device (or local storage) 52, and a network adapter 54 connected to the CPU by a system bus 56.

図1はまた、適当な数のセクターがダウンロードされ、それらが含むコードが実行され
た後の、クライアントのRAM50の一部を図示している。示されているように、RAM
50はダウンロードされたO/S40、O/Sドライバー76、O/Sローダー78、O
/Sユーティリティーファンクションファイル(例えば、WIN32.SYS)72、ネットワー
クフィルタードライバー30、ストレージドライバー(または、格納装置ドライバー)3
2、及びO/Sネットワークスタック68を含んでもよい。いくつかの実施例において、
RAM50はまた、ハイバネーションファイル20を含んでもよい。
FIG. 1 also illustrates a portion of the client's RAM 50 after the appropriate number of sectors have been downloaded and the code they contain has been executed. RAM as shown
50 is the downloaded O / S 40, O / S driver 76, O / S loader 78, O
/ S utility function file (for example, WIN32.SYS) 72, network filter driver 30, storage driver (or storage device driver) 3
2 and O / S network stack 68 may be included. In some embodiments,
The RAM 50 may also include a hibernation file 20.

図2を参照すると、各クライアントのネットワークアダプター54は好まれるものとし
て、クライアントのハードウェアとネットワークとの間にデータリンクを与えるネットワ
ークインターフェースカード(NIC)である。各NIC54はクライアントシステムバ
ス56に接続するためのバスインターフェース58、ネットワークに接続するための1つ
または複数のネットワークコネクター60を含む。ネットワークコネクター60はLAN
またはWANに対応するものであってもよい。NIC54にはまた、NICの固有デステ
ィネーションアドレスを格納するためのランダムアクセスメモリー(RAM)62及び、
PXEエミュレーションコード66を格納するための選択的ROM(OPROM)64が
備えられている。デスティネーションアドレスは各クライアント2がネットワーク上の他
のコンピューターによって個々にアドレッシングされることを可能にする。
Referring to FIG. 2, each client's network adapter 54 is preferably a network interface card (NIC) that provides a data link between the client's hardware and the network. Each NIC 54 includes a bus interface 58 for connection to a client system bus 56 and one or more network connectors 60 for connection to a network. Network connector 60 is a LAN
Or it may correspond to WAN. The NIC 54 also includes a random access memory (RAM) 62 for storing the NIC's unique destination address, and
An optional ROM (OPROM) 64 for storing the PXE emulation code 66 is provided. The destination address allows each client 2 to be individually addressed by other computers on the network.

複数のクライアントへの所望のデータの同期的ストリーミング
上述したように、本発明は1つまたは複数のクライアント2によって発行されたリード
要求(または、リードリクエスト)への応答で、ローカルディスクを透明(または、透過
的)にエミュレートし(すなわち、クライアントの利用者からその介在が意識されないよ
うにエミュレートし)、サーバーの「仮想ドライブ」8に存在するデータセクターの組の
内容をブロードキャスティングまたはマルチキャスティングすることによって、ネットワ
ークサーバーから1つまたは複数のクライアント2へデータをストリーム(または、デー
タを転送)するためのシステム及び方法を与える。データはネットワークサーバー4に関
連した(または、ネットワークサーバー4に直接接続した)格納装置内の複数のセクター
から予め決められた様式で回復(または、検索)されてもよい。動作中、特定のデータの
ダウンロードが必要な1つまたは複数のクライアント2は所望のデータを集合的に(また
は、共同的に)構成する複数のセクターのダウンロードに対する要求(または、リクエス
ト)を発行する。ここで、異なった組のクライアントが異なったデータのダウンロードを
要求してもよいことに注意しなければならない。要求はサーバーに転送され、サーバーは
各クライアントのローカルディスクの動作を透明にエミュレートする。ネットワークサー
バー4のストリーミングモジュール26は「仮想」格納装置から、要求しているクライア
ントの組に所望のデータをブロードキャストまたはマルチキャストする。ストリーミング
モジュール26は好まれるものとして、所望のデータを送信する前に、予め決められた勧
誘期間(または、インビテーション期間)の間、ダウンロード要求を受諾する。
Synchronous Streaming of Desired Data to Multiple Clients As described above, the present invention provides a transparent (or transparent) local disk in response to a read request (or read request) issued by one or more clients 2. (Transparently) (ie emulated so that the client user is unaware of the intervention) and broadcasting or multicasting the contents of a set of data sectors present in the server's “virtual drive” 8 This provides a system and method for streaming data (or transferring data) from a network server to one or more clients 2. Data may be recovered (or retrieved) in a predetermined manner from multiple sectors within the storage device associated with (or directly connected to) network server 4. In operation, one or more clients 2 that need to download specific data issue requests (or requests) for multiple sector downloads that collectively (or jointly) compose the desired data. . It has to be noted here that different sets of clients may request different data downloads. The request is forwarded to the server, which transparently emulates each client's local disk activity. The streaming module 26 of the network server 4 broadcasts or multicasts the desired data from the “virtual” storage device to the requesting client set. The streaming module 26 preferably accepts the download request for a predetermined solicitation period (or invitation period) before sending the desired data.

図4は本発明に従った同期的データストリーミングに対する処理400を図示している
フローチャートである。ここで、以下の説明は同一のデータのダウンロードを必要として
いるクライアントの単一の組に対して記載されていることに注意しなければならない。こ
れは本発明の理解を容易にするためであり、本発明を制限するためではない。当業者にと
って明白であるだろうが、同期的ストリーミング法はネットワークサーバーから異なった
データのダウンロードを同時に要求しているクライアントの複数の組に対しても応用可能
である。
FIG. 4 is a flowchart illustrating a process 400 for synchronous data streaming in accordance with the present invention. It has to be noted here that the following description is written for a single set of clients that need to download the same data. This is to facilitate understanding of the present invention and not to limit the present invention. As will be apparent to those skilled in the art, the synchronous streaming method is applicable to multiple sets of clients that are simultaneously requesting different data downloads from a network server.

ステップ402において、特定のデータのダウンロードを所望している各クライアント
は初期の要求を発行する。所望のデータはサーバーの仮想ドライブ8に存在する多様なア
プリケーションファイル、O/Sファイル、ブートプログラム、またはハイバネーション
ファイルであってもよい。これらの要求がサーバー4に発行されるとともに、サーバーは
PXEコード66及びダウンロードされたMBR33のコードの実行を介して、または、
ネットワークフィルター及びストレージドライバーと共にO/SMBR28のコードの実
行を介して、ブートアップ(boot up)の多様な段階中に、クライアントのローカルディ
スク52をエミュレートする。
In step 402, each client desiring to download specific data issues an initial request. The desired data may be various application files, O / S files, boot programs, or hibernation files existing in the virtual drive 8 of the server. These requests are issued to the server 4 and the server can either execute the PXE code 66 and the downloaded MBR 33 code, or
The client's local disk 52 is emulated during various stages of boot up through the execution of O / SMBR 28 code along with network filters and storage drivers.

ステップ404において、サーバーのストリーミングモジュール26は予め決められた
勧誘期間中に初期要求を発行している各クライアント2'を登録する。登録された各クラ
イアントはストリーミングモジュール26からのデータパケットを待つ。
In step 404, the server's streaming module 26 registers each client 2 'that has issued an initial request during a predetermined solicitation period. Each registered client waits for a data packet from the streaming module 26.

ステップ406において、ストリーミングモジュールはサーバー4上でセクターシーケ
ンスファイル22を探す。セクターシーケンスファイル22は所望のデータを含んでいる
データセクターへのアクセス及びデータセクターのブロードキャストまたはマルチキャス
トの順序(オーダー)を決定する。セクターシーケンスファイル22が見つからない場合
、プログラムフローは後で説明されるセクターシーケンスファイルを記録するためのラー
ニング処理(または、学習処理)450に進む。
In step 406, the streaming module looks for the sector sequence file 22 on the server 4. The sector sequence file 22 determines the access to the data sector containing the desired data and the broadcast or multicast order of the data sector. If the sector sequence file 22 is not found, the program flow proceeds to a learning process (or learning process) 450 for recording the sector sequence file described later.

ステップ408において、セクターシーケンスファイル22が見つかった場合、ストリ
ーミングモジュール26はバーストモードで所望のデータを登録されたクライアント2'
にブロードキャストまたはマルチキャストする。データパケットは好まれるものとして固
定速度で送信される。
In step 408, if the sector sequence file 22 is found, the streaming module 26 sends the client 2 'registered the desired data in the burst mode.
Broadcast or multicast to. Data packets are transmitted at a fixed rate as preferred.

ステップ410において、登録された各クライアント2'によって受信されたデータパ
ケットは転送レート及びクライアントのブート処理速度の差を補正するために固定長のキ
ューに格納される。ネットワーク及びストレージドライバーは受信したデータを各クライ
アント内に予めアロケートされた、メモリー上の大型の一時的区分(「データキャッシュ
」)にロードする。登録された各クライアントは、それが正常に受信したデータパケット
を追跡する(または、場所を記録する)。これは送信されたデータパケットに連番を付け
ることによって実施されてもよい。
In step 410, the data packets received by each registered client 2 'are stored in a fixed length queue to compensate for the difference in transfer rate and client boot processing speed. The network and storage driver loads the received data into a large temporary partition ("data cache") in memory that is pre-allocated in each client. Each registered client keeps track of (or records the location of) data packets that it has successfully received. This may be done by serializing the transmitted data packets.

ステップ412において、登録された各クライアント2'はサーバーに、最も最近のN
個のパケットが正常に受信されるように試みられたことを示す、アクノリッジメント(ま
たは、受け取り信号)を送信する。クライアントのアクノリッジメントの目的はローカル
クライアントのバッファーがオバーランされていないことを確実にすることである。
In step 412, each registered client 2 'sends the server the latest N
An acknowledgment (or received signal) is transmitted indicating that attempts have been made to successfully receive packets. The purpose of the client acknowledgment is to ensure that the local client buffer is not overrun.

ステップ414において、ストリーミングモジュール26は所望のデータが全てアクセ
スされ、それらのコンテント(または、内容)が送信されたことを確認する。これらの処
理が完了していない場合、ステップ408及びステップ410は完了するまで繰り返され
る。
In step 414, the streaming module 26 confirms that all desired data has been accessed and that their content (or content) has been transmitted. If these processes are not complete, step 408 and step 410 are repeated until completion.

ステップ416において、所望のデータが全て送信されている場合、ストリーミングモ
ジュールは送信が完了したことを示すメッセージを送信する。しかしながら、この時点に
おいて、全てのクライアントが情報の全てのブロックを問題なく受信していなくてもよい
。すなわち、いくつかのパケットがなんらかの理由によって欠落していてもよい。また、
いくつかのクライアントが送信の開始を見逃してもよい。
In step 416, if all the desired data has been transmitted, the streaming module transmits a message indicating that the transmission is complete. However, at this point, not all clients may have received all blocks of information without problems. That is, some packets may be missing for some reason. Also,
Some clients may miss the start of transmission.

ステップ418において、登録されたクライアント2'の各々は所望のデータパケット
の全ての送信が成功したことを示すメッセージ、または、見逃されたパケットの再送信に
対する必要性を示すメッセージによって、ストリーミングモジュール26に応答してもよ
い。
In step 418, each registered client 2 'informs the streaming module 26 by a message indicating that all transmissions of the desired data packet have been successful, or a message indicating the need for retransmission of missed packets. You may respond.

ステップ420において、ストリーミングモジュール26は見逃されたまたは欠落した
送信データパケットに対する必要性を示す、登録されたクライアント2'から受信された
応答に基づいてパケットの再送信のリストを編集し、効果的に順序付ける。あるいは、パ
ケットの再送信のリストは(ステップ414の前に)データパケットの送信中に、決めら
れた数のバイト数ごとに繰り返し編集されてもよい。ステップ422において、ストリー
ミングモジュール26は必要なデータパケットを個々に、登録されたクライアント2'に
再送信してもよい。この時点で、ほとんどのクライアントは受信したデータパケットの処
理をしているので、ネットワークの帯域幅は大きく、それゆえ、個々の再送信はブート時
間またはネットワークのトラフィックに対して認識可能な程度の影響を与えないだろう。
In step 420, the streaming module 26 compiles a list of packet retransmissions based on the response received from the registered client 2 ', indicating the need for missed or missing transmitted data packets, and effectively Order. Alternatively, the list of packet retransmissions (prior to step 414) may be iteratively edited for each determined number of bytes during the transmission of the data packet. In step 422, the streaming module 26 may retransmit the required data packets individually to the registered client 2 '. At this point, most clients are processing received data packets, so the network bandwidth is high, so individual retransmissions have a discernable effect on boot time or network traffic. Would not give.

ステップ424において、ダウンロードされたデータが正常に処理された後、キャッシ
ュのために事前に確保されたメモリーのアロケートが解除される。
In step 424, after the downloaded data has been successfully processed, the memory allocated in advance for the cache is deallocated.

上述したように、ストリーミング処理400の長所は、各クライアントにおいて、クラ
イアントのO/SがO/Sのデータストラクチャー、ドライバー、またはアプリケーショ
ンの初期化に専念している間、O/Sがデータを必要とする前にデータパケットをメモリ
ーに予めロードすることによって将来必要となるO/Sのデータが既に準備されているだ
ろうということである。ストリーミングモジュール26はクライアントがパケットを利用
できる状態になる前に、クライアントにパケットをブロードキャストまたはマルチキャス
トし、ブートアップ時間の依存性をパケットの送信時間からクライアントのブート処理時
間に移す。
As noted above, the advantages of streaming 400 are that each client needs data while the client's O / S is devoted to initializing the O / S data structure, driver, or application. This means that the O / S data that will be required in the future will already be prepared by preloading the data packet into the memory. The streaming module 26 broadcasts or multicasts a packet to the client before the client becomes able to use the packet, and shifts the dependency of the bootup time from the packet transmission time to the client boot processing time.

特定の実施例において、ストリーミングモジュール26は送信されるべき仮想ドライブ
セクターのコンテントの順序を決定するためにセクターシーケンスファイル22を利用す
る。セクターシーケンスファイル22は同期性のストリーミング処理を着手する前に、サ
ーバー4上に格納されることが予期されるが、これが行われない場合、セクターシーケン
スファイル22は以下に説明されるラーニング処理(または、学習処理)450中に生成
されてもよい。
In certain embodiments, the streaming module 26 utilizes the sector sequence file 22 to determine the order of the virtual drive sector content to be transmitted. The sector sequence file 22 is expected to be stored on the server 4 before embarking on a synchronous streaming process, but if this is not done, the sector sequence file 22 is stored in the learning process (or described below) (or , Learning process) 450 may be generated.

ストリーミングモジュール26がセクターシーケンスファイル22を見つけられない場
合、ラーニング処理450が実行される。1つの実施例において、セクターシーケンスフ
ァイルはO/Sがディスクイメージ送信を完了するためにリードしなければならない、セ
クターのリストから成る。もう1つの実施例において、セクターシーケンスファイルはセ
クターのリストだけではなく、リストされたセクター内に含まれる、シーケンシャルに格
納された実際データを含んでもよい。もう1つの実施例において、セクターシーケンスフ
ァイルは、要求を発行しているクライアントの異なった組への異なったデータの組の同時
的な(または、同期的な)ストリーミングがサポートされるように、複数のセクターリス
ト及び対応するセクターデータを含む単一のファイルから構成されてもよい。実際のデー
タを格納することの利点は、シーケンシャルファイルのリードがランダムなリードに比べ
極めて速く、それにより、サーバーのドライブスループットが増大し、複数のクライアン
トへの複数のストリームをより効果的にサポートする能力が増大することである。これの
1つの結果は学習されたデータの全てがクライアントに送信されるまで、学習した実際の
データがセクターシーケンスファイルから独占的にリードできることである。この時点の
後、サーバーは仮想ドライブイメージの使用に戻ることができる。
If the streaming module 26 cannot find the sector sequence file 22, a learning process 450 is performed. In one embodiment, the sector sequence file consists of a list of sectors that the O / S must read to complete the disk image transmission. In another embodiment, the sector sequence file may include not only the list of sectors, but also the actual data stored sequentially, contained within the listed sectors. In another embodiment, the sector sequence file may be multiple to support simultaneous (or synchronous) streaming of different sets of data to different sets of issuing clients. May be composed of a single file containing a sector list and corresponding sector data. The advantage of storing actual data is that sequential file reads are much faster than random reads, which increases server drive throughput and more effectively supports multiple streams to multiple clients. The ability is to increase. One result of this is that the actual data learned can be read exclusively from the sector sequence file until all of the learned data has been sent to the client. After this point, the server can return to using the virtual drive image.

ステップ426において、ストリーミングモジュール26は登録されたクライアント2
'から1つのクライアントを選択する。ステップ428において、選択されたクライアン
トに対して、それ自体に対する慣例的なディスクアクセス要求を発生することが許可され
るとともに、ストリーミングモジュールは新規のセクターシーケンスファイルに、選択さ
れたクライアントがそれの所望のデータのダウンロードを満たすために生成した全てのセ
クターアクセス要求(及び、いくつかの実施例においては、要求されたデータ自体)を記
録する。ステップ430において、選択されたクライアントは、それがダウンロードを完
了したことをストリーミングモジュール26に知らせる。この時点で、新規のセクターシ
ーケンスファイルは仮想ドライブ8に格納され、ステップ408でストリーミング処理が
再開される。以下に、ネットワークのブートアプリケーションにおけるストリーミング処
理の使用を説明する。ネットワークブートとの関連においてセクターシーケンスファイル
22を作成するためにラーニング処理450が要求された場合、選択されたクライアント
に対して、独創的なMBR24及びドライバー(30及び32)を使用して慣例的にブー
トすることが許可されるとともに、ストリーミングモジュール26は新規のセクターシー
ケンスファイルに選択されたクライアントがブート中に生成した全てのセクターアクセス
要求(及び、いくつかの実施例においては、要求されたデータ自体)を記録する。
In step 426, the streaming module 26 registers the registered client 2
Select one client from '. In step 428, the selected client is allowed to generate a conventional disk access request for itself, and the streaming module adds the new client to its desired sector sequence file. Record all sector access requests (and in some embodiments, the requested data itself) generated to satisfy the data download. In step 430, the selected client informs the streaming module 26 that it has completed the download. At this point, the new sector sequence file is stored in the virtual drive 8 and the streaming process is resumed in step 408. The use of streaming processing in a network boot application is described below. When learning process 450 is required to create sector sequence file 22 in the context of network boot, it is customary for selected clients to use original MBR 24 and drivers (30 and 32). While allowed to boot, the streaming module 26 will request all sector access requests generated by the client selected for the new sector sequence file during booting (and in some embodiments, the requested data itself). ).

ブートNIC(BootNIC)基本アーキテクチャ
本発明は、クライアントコンピューターが素早くブートするために必要とされる、ネッ
トワークサーバーの「仮想」ドライブ上のデータセクターからアクセスされる同期的なデ
ータのストリーミングのためのシステム及び方法を与える。特定の実施例において、クラ
イアントコンピューターがダウンロードすることを必要とするデータセクターはブートの
ために必要なブートプログラム及びO/Sファイルを集合的に(または、共同的に)構成
する。他の特定の実施例において、データセクターは付加的に1つまたは複数のハイバネ
ーションファイルを含む。特定のデータのダウンロードを必要とする各クライアントは初
期の要求を発行する。これらの要求はサーバー4に発行され、サーバーはPXEコード6
6及びダウンロードされたMBR33のコードの実行を介して、または、ネットワークフ
ィルター及びストレージドライバーと共にO/SMBR28のコードの実行を介して、ブ
ートアップの多様な段階中に、クライアントのローカルディスク52をエミュレートする
。換言すると、クライアント上のO/Sの完全なネットワークブートとの関連において、
同期的なストリーミング処理400はO/Sドライバーが初期化される前と後で、(いく
つかの意味のある差異とともに)基本的に繰り返される。これは、O/Sブート処理が仮
想ドライブ8からファイルをダウンロードするために、ブート処理の初期の段階中に割り
込みハンドラープロシジャー(または、割り込みハンドラー処理)を使用するのに対し、
その後、それらが初期化された後にストレージドライバー32及びネットワークフィルタ
ードライバー30を使用するためである。これは実質的に同等なタスクを実行するために
2つの解決法を必要とすることを意味する。
Boot NIC Basic Architecture The present invention relates to a system for synchronous data streaming accessed from a data sector on a “virtual” drive of a network server, which is required for a client computer to boot quickly. Give way. In a particular embodiment, the data sectors that the client computer needs to download collectively (or jointly) configure the boot program and O / S files needed for booting. In another particular embodiment, the data sector additionally includes one or more hibernation files. Each client that needs to download specific data issues an initial request. These requests are issued to the server 4, which has a PXE code 6
6 and emulating the client's local disk 52 during various stages of bootup through execution of downloaded MBR33 code or through execution of O / SMBR28 code along with network filters and storage drivers To do. In other words, in the context of a complete network boot of O / S on the client:
The synchronous streaming process 400 is basically repeated (with some meaningful differences) before and after the O / S driver is initialized. This is because the O / S boot process uses an interrupt handler procedure (or interrupt handler process) during the early stages of the boot process to download a file from the virtual drive 8, whereas
Thereafter, the storage driver 32 and the network filter driver 30 are used after they are initialized. This means that two solutions are required to perform substantially equivalent tasks.

各クライアントがブートするとき、それらはPXEサービスを使用して最初にサーバー
4と通信を行う。PXEコード66は各クライアントとサーバーとの間に、初期のエミュ
レートされる「仮想ドライブ」接続を確立する。PXE(実行時前ブート環境)サービス
はMBR(マスターブートレコード)コード33がリード要求をサーバーに送ることを可
能にし、それによって、サーバーに存在するブートファイルまたはハイバネーションファ
イル20が、各クライアントのCPU42によって、ローカルクライアントのハードディ
スク52に格納することができる複数のデータセクターとして認識されることを可能にす
る。ブートストラッピングの初期の段階中、BIOS割り込みハンドラーサービスはリア
ルモードでのみ動作するので、エミュレーションはMBRコード33のリアルモードの実
行によって与えられる。処理の後半は、O/Sのカーネルコード及び(ガタピシモード(
thunking)が発生しない)保護モードでのみ実行されるストレージドライバー32及びネ
ットワークフィルタードライバー30によってエミュレーションが与えられる。
As each client boots, they first communicate with the server 4 using the PXE service. The PXE code 66 establishes an initial emulated “virtual drive” connection between each client and server. The PXE (Pre-Runtime Boot Environment) service allows the MBR (Master Boot Record) code 33 to send a read request to the server, so that the boot file or hibernation file 20 present on the server is sent by the CPU 42 of each client. , Allowing it to be recognized as multiple data sectors that can be stored on the hard disk 52 of the local client. During the early stages of bootstrapping, the BIOS interrupt handler service operates only in real mode, so emulation is provided by execution of the MBR code 33 in real mode. In the second half of the process, the O / S kernel code and (Gatapi mode (
(Thunking does not occur) Emulation is provided by the storage driver 32 and the network filter driver 30 executed only in the protected mode.

図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)直接アドレス指定パケット、特定のクライアント装置だけにアドレッシングされるパケット。本発明に従うシステムはこれらのいずれのデータパケット送信手段を利用してもよい。
FIG. 3 is a block diagram illustrating a portion of the client's local memory 44 after the network filter driver 30 and storage driver (or storage device driver) 32 have been downloaded from the network server and executed. The only role of the network filter driver is to monitor all data packets sent from the network to the O / S network stack 68 via the client NIC 54 in order to identify the data packets that are specific to the boot NIC. Blocking the unique data packets from being sent to the network stack 68 and sending them to the storage driver 32 instead. Next, the storage driver 32 is mounted by a mount manager and a volume manager.
), And various managers 70 of Windows (registered trademark) having a storage role, such as a partition manager. If the network data packet is not specific to Boot NIC (BootNIC specific), the data packet is sent to the O / S network stack 68 without being affected. As will be apparent to those skilled in the art, there are three different types of data packets: (1) Broadcast packet, packet addressed to all computers on the network. (2) A multicast packet, a packet addressed by a computer that is two or more, but not necessarily all computers on the network. (3) Direct addressing packets, packets addressed only to specific client devices. The system according to the present invention may use any of these data packet transmission means.

本発明は、クライアントが(オペレーティングシステムの有無にかかわらず)事前ブー
ト環境(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プロト
コルを実行するための事前ブートファームウェアを始動する標準的な方法。
The present invention is the result of an effort to create a predictable and interoperable way for clients to interact with the network in a pre-boot environment (PXE) (with or without an operating system) Boot execution environment (PXE (pre-boot execution
Take advantage of widely used specifications known as environment)).
The current version of PXE was established as an Intel-led industry initiative of Wired for Management (WfM). PXE encompasses the following three technologies that establish a common and coherent set of pre-boot services with the boot firmware of Intel architecture-based systems: (I) A uniform protocol for the client 2 to request the allocation of the IP address of the network and consequently to request the download of the bootstrap program (MBR 24 and O / SMBR 28) from the network boot server 4. (Ii) A set of APIs available for pre-booting the client 2 firmware environment that constitutes a consistent set of services available by the BIOS 48 or bootstrap program. (Iii) A standard method of starting pre-boot firmware for executing the PXE protocol on the client PC.

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のネットワークの実施例との関連で説明されている。
The use of the PXE spec allows the client NIC 54 to act as a boot device. It also allows BIOS 48 to directly use the NIC code stored on OPROM 64 before or during POST processing. The present invention, in certain embodiments, selectively PXE boot server discovery.
Take advantage of features. By using this feature, the boot client 2 can discover (or discover) an appropriate boot server 4 or 34 from the list of available boot servers provided to the client 2 during the initial stage of remote boot. . The boot server type depends on the type of client system architecture or the unique ID of each client.
can be assigned and maintained by an information technology administrator. PXE uses Dynamic Host Configuration Protocol (DHCP) and Trivial File Transfer Protocol (TFTP) to communicate with server 4. When PXE enables the client to boot, it obtains an IP address from the DHCP server 4. The client 2 may then discover a DHCP server 4 that gives the client a list of boot servers. FIG. 1 shows an additional server 34 that may act as a boot server.
It is shown. However, to facilitate the description of the present invention, the simultaneous streaming processing embodiment of the present invention implements a single server 4 network where a single client set requires the same data download. Explained in connection with examples.

あるいは、DHCP及びPXE法の代わりに、(フレキシビリティー及びコンフィグレ
ーションの容易性が減少するが)静的なIPアドレスを有する、BOOTP可能なクライ
アントを使用することもできる。
Alternatively, a BOOTP-capable client with a static IP address can be used (although flexibility and configuration ease are reduced) instead of the DHCP and PXE methods.

ネットワークハイバネーションイメージからのストリーミングブート
本願において用語「ハイバネーション」はPCが「ポーズ(または、休止)」した状態
でPCの電力がオフにされることを意味する。PCがオフにされている間、電力はそれの
全てまたはほとんどの構成要素から除去される。そして、PCがオンに戻されると、また
は「再開」されると、PCはそれがオフされたときと同じ状態の通常の動作に戻る。Micr
osoft Corpの米国特許No.6,209,088等に記載されている「ハイバネーション機能」はPC
がオフされる直前に呼び出され、全てのプログラム実行を中断し、PCの全ての状態情報
を非揮発性の格納装置に「ハイバネーションイメージ」としてセーブする。「再開機能」
は揮発性メモリーから実行され、通常、O/S及び(または)O/Sによって始動される
アプリケーションプログラムによって使用されるのと同じ実行可能アドレス空間から実行
されるコードによって実施される。以下に説明する本発明の特定の環境において、「ハイ
バネーションファイル」はO/Sドライバー等のO/Sファイル及び、ハイバネーション
機能の始動の前にPCの揮発性メモリーに読み込まれる初期化ファイルを含む。
Streaming Boot from Network Hibernation Image In this application, the term “hibernation” means that the PC is powered off while the PC is “paused”. While the PC is turned off, power is removed from all or most of its components. And when the PC is turned back on or "restarted", the PC returns to normal operation in the same state as when it was turned off. Micr
The “hibernation function” described in US Patent No. 6,209,088 of osoft Corp is a PC
Called immediately before turning off, interrupts execution of all programs and saves all state information of the PC as a “hibernation image” in a non-volatile storage device. "Resume function"
Is executed from volatile memory and is typically implemented by code executed from the same executable address space used by O / S and / or application programs started by O / S. In the specific environment of the present invention described below, the “hibernation file” includes an O / S file such as an O / S driver and an initialization file that is read into the volatile memory of the PC before the hibernation function is started.

本発明は、もう1つの側面において、クライアント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をダウンロードする。ここで、本発明の範囲のシステムのいくつかに
おいては、異なった組のクライアントがハイバネーションファイルの異なったブートファ
イルのダウンロードを要求してもよいことに注意しなければならない。出願人は本発明の
同期性ストリーミングがネットワーク上のO/S40のブートに必要な時間を従来の標準
的なO/Sのローカルブートに対して50%以上減少させることができることを観測した
The present invention, in another aspect, is improved for booting an O / S from a server 4 storing a hibernation image 20 having an O / S file for a client PC to one or more clients 2. Systems and methods are provided. Each client's CPU 42 executes only instructions (or instructions) from addressable memory, such as DRAM or other types of volatile electronic memory. To initialize this addressable memory, a small amount of PXE code 66 is sent to OPROM 64 on NIC 54.
Given to. The PXE code 66 allows a request to be issued to the network server 4 emulating the client's local disk to read the MBR code 24. The downloaded MBR code 33 allows further disk emulation, requiring that the first part of the O / SMBR 28 be sent from the server to the client, where it is loaded into the DRAM. Next, the O / SMBR 28 downloads and initializes the remaining portions of the O / S, and those remaining portions download the hibernation file 20. It has to be noted here that in some of the systems within the scope of the invention, different sets of clients may request different boot file downloads of the hibernation file. Applicants have observed that the synchronous streaming of the present invention can reduce the time required to boot O / S 40 over the network by more than 50% over traditional standard O / S local boot.

ハイバネーショントランザクションプロトコルは2つの部分から成る。最初の半分はブ
ートドライブ8にハイバネーションイメージを生成することであり、第2の半分はハイバ
ネーションファイルからの実際の再開(または、回復)である。
The hibernation transaction protocol consists of two parts. The first half is to create a hibernation image on the boot drive 8 and the second half is the actual resume (or recovery) from the hibernation file.

本発明のブートアップ(boot up)の開始の前に、サーバー4に存在するハイバネーシ
ョンファイル20は直接的な様式で生成される。クライアントPCが所望の状態に設定さ
れた後、ハイバネーションファイル20にハイバネーションイメージを生成するためにハ
イバネーション機能が利用される。ハイバネーションファイル20は次に、サーバーのブ
ートドライブ8に送信される。あるいは、ハイバネーション処理はハイバネーションファ
イルがサーバーのブートドライブに直接セーブされるように実行されてもよい。ハイバネ
ーション機能は全てのドライバーに対してパワーダウンするように命令するが、ストレー
ジドライバー32だけはWIN32.SYS72をローカルメモリー50にキャッシュし、メモリ
ーのコンテントをファイルHIBERFIL.SYS(O/Sローダーが再開時に正当性をチェックす
るファイル)にライトした後に、O/Sの要求によってパワーダウンする。ブート処理を
始動する前に実施されることが好まれるもう1つのステップはブートドライブ8にMBR
24エミュレーションコードを格納することである。
Prior to the start of the boot up of the present invention, the hibernation file 20 present on the server 4 is generated in a direct manner. After the client PC is set in a desired state, a hibernation function is used to generate a hibernation image in the hibernation file 20. The hibernation file 20 is then sent to the boot drive 8 of the server. Alternatively, the hibernation process may be performed such that the hibernation file is saved directly to the server boot drive. The hibernation function instructs all drivers to power down, but only the storage driver 32 caches WIN32.SYS 72 in the local memory 50, and the memory content is saved to the file HIBERFIL.SYS (when the O / S loader resumes). Is written down to a file to be checked for validity, and then powered down by an O / S request. Another step that is preferably performed before starting the boot process is to install MBR on the boot drive 8
24 emulation codes are stored.

ウィンドウズ(登録商標)のアーキテクチャにおいて、ドライバーは「タイプ」を呈することが要求され、1つのドライバーが同時にストレージドライバーとネットワークドライバーとなることができないので、ウィンドウズ(登録商標)のアーキテクチャはサーバーと通信するために1つのドライバーではなく、2つのドライバー、ストレージドライバー32とネットワークフィルタードライバー30とを必要とする。ウィンドウズ(登録商標)2000及びXPのハイバネーションの実行は1つのO/Sドライバーだけがストレージドライバーと通信することが要求されると仮定しており、したがって、ハイバネーション処理が2つ以上のO/Sドライバーをサポートすることを可能にするためのメカニズムを与えていない。現在利用可能な標準的なO/Sドライバーはネットワーク上のファイルから再開するように記述されていないので、それらは上手く動作しないだろう。ローカルドライブからの標準的な再開において、O/Sストレージドライバーはローカルハードディスクとの通信方法だけを知ることが要求される(そして、実際にそうなっている)。   In the Windows® architecture, the Windows® architecture communicates with the server because the driver is required to exhibit a “type” and one driver cannot simultaneously be a storage driver and a network driver. Therefore, two drivers, a storage driver 32 and a network filter driver 30, are required instead of one driver. The execution of hibernation in Windows 2000 and XP assumes that only one O / S driver is required to communicate with the storage driver, and therefore the hibernation process is more than one O / S driver. Does not give a mechanism to allow to support. Since standard O / S drivers currently available are not written to resume from a file on the network, they will not work well. In a standard restart from a local drive, the O / S storage driver is required to know only (and indeed is) how to communicate with the local hard disk.

ストレージドライバー32はNICドライバー74の電力ハンドラー(power handler
)に対するディスパッチアドレス(dispatch address)をストレージドライバー自体のハ
ンドラーで置き換えることによってNICドライバー74の(ディスパッチルーチンdisp
atch routine)に「フック(hook)」する。ストレージドライバー32は次に、オリジナ
ルのNICドライバー電力ハンドラールーチンを呼び出してもよい。
The storage driver 32 is a power handler of the NIC driver 74 (power handler).
) By replacing the dispatch address with the handler of the storage driver itself (dispatch routine disp).
atch routine). The storage driver 32 may then call the original NIC driver power handler routine.

ブート処理は多くの処理から成るが、一般的に、1つのプログラムが事前のプログラム
に対してより高度なプログラムを開始させることを含む。本発明の独創的な方法の主要な
ステップはBIOS初期化、PXE初期化、MBRロード及びInt 13hリダイレクション
、ハイバネーションイメージのロード、及びO/Sの再開(または、回復)である。ここ
で、これらの解決法はウィンドウズ(登録商標)2000に特化したものであるが、以下に記載されるステップはこれらの解決法を他のオペレーティングシステムに拡張するための一般的な枠組を要約したものである。
The boot process consists of many processes, but generally involves one program starting a more advanced program with respect to the prior program. The main steps of the inventive method are BIOS initialization, PXE initialization, MBR loading and Int 13h redirection, hibernation image loading, and O / S resumption (or recovery). Here, these solutions are specific to Windows 2000, but the steps described below summarize the general framework for extending these solutions to other operating systems. It is a thing.

図5を参照すると、パワーアップ直後、クライアント2のBIOS48の初期化はパワ
ーオン/セルフテスト(POST(power-on/self-test))シーケンスの実行(ステップ
502)とともに開始される。各クライアントはそれ自体のIPアドレスを確認するため
にDHCPディスカバリー要求をブロードキャストする。このプロトコル(及び他のプロ
トコル)をサポートするサーバーのO/Sは、ネットワークサーバー4であっても、そう
でなくてもよい、(クライアントがそこから)ブートされるサーバーのアドレスとともに
これらのパラメーターを戻す。仮想ブートドライブ8はネットワークサーバー4(または
、代替的なブートサーバー34)に関連した(または、サーバーに直接接続した)非揮発
性の格納装置を備えてもよい。ドライバーの種類はフロッピー(登録商標)ディスク、ハードディスク、磁気テープ、DVD、CD−ROM、及びフラッシュROMを含む。仮想ブートドライブ8となるために、装置はO/Sファイルまたは、ダウンロードされることが意図されるマイクロインストラクションコードを含むハイバネーションファイルのコピーを保持しなければならない。
Referring to FIG. 5, immediately after power-up, initialization of the BIOS 48 of the client 2 is started together with execution of a power-on / self-test (POST) sequence (step 502). Each client broadcasts a DHCP discovery request to confirm its own IP address. Server O / S that supports this protocol (and other protocols) may or may not be network server 4 and these parameters along with the address of the server from which the client is booted (from there) return. The virtual boot drive 8 may comprise a non-volatile storage device associated with (or directly connected to) the network server 4 (or alternative boot server 34). Types of drivers include floppy (registered trademark) disks, hard disks, magnetic tapes, DVDs, CD-ROMs, and flash ROMs. In order to become a virtual boot drive 8, the device must keep a copy of the O / S file or the hibernation file containing the microinstruction code that is intended to be downloaded.

POST中、CPU42はOPROM64がクライアント2に存在するかを決定するた
めにバス56上でアドレスをチェックする。OPROMが見つかった場合、CPUはOP
ROM上の全てのハードウェア初期化ルーチンを処理し、NIC54を使用可能な状態に
初期化する(ステップ504)。OPROMコードは次に、PXEコードを初期化する(
ステップ506)。OPROMコードはまた、ハードディスク52のリード及びライトを
制御する割り込み13hハンドラーサービスを介して、BIOSブート処理に「フック(hoo
k)」する。PXEコードを使用して、NIC54の制御を引き受けることにより、OP
ROM64のコードはサーバー4と通信し、サーバーのハードディスク8がサーバーに対
するディスクのリード及びライトのリダイレクションを介して、クライアント2のローカ
ルハードディスク52を透明にエミュレートすることを可能にする。
During POST, CPU 42 checks the address on bus 56 to determine if OPROM 64 is present on client 2. If OPROM is found, the CPU
All the hardware initialization routines on the ROM are processed to initialize the NIC 54 to a usable state (step 504). The OPROM code then initializes the PXE code (
Step 506). The OPROM code also “hooks” to the BIOS boot process via an interrupt 13h handler service that controls the reading and writing of the hard disk 52.
k) ". By using the PXE code to assume control of the NIC 54, the OP
The ROM 64 code communicates with the server 4 and allows the server hard disk 8 to transparently emulate the client 2 local hard disk 52 via disk read and write redirection to the server.

POSTシーケンスの終了時に、BIOS48はO/Sのブートを開始するだろう。B
IOSはサーバーの仮想ドライブ8の最初のセクター(シリンダー0、ヘッド0、セクタ
ー1)をリードする(ステップ510)。最初のセクターはO/S40をブートするため
の付加的なエミュレーションコードを含むMBR(マスターブートレコード)24を格納
する。MBR24のコードは慣例的にO/Sの製造者によって供給されるが、以下に説明
するハイバネーション再開処理を容易にするために、付加的なエミュレーションコードを
開発する必要がある。MBRコードはクライアントのメモリーにロードされた後に実行さ
れる(ステップ512)。MBRのコードはネットワークサーバーと通信するためにPX
E66を使用し続け、全ての格納装置アクセス要求を取得するために割り込み13hをフッ
クし、ブート処理の初期の段階中にサーバーの仮想ハードディスク8へのライトを防止す
る(ステップ514)。リード要求は好まれるものとして、上述された同期的ストリーミ
ング法400を使用して処理される。リード要求はオリジナルのInt 13hBIOSルーチ
ンには送られず、代わりにPXEがネットワークサーバー4からデータを受信するために
MBRによって使用される。リード要求はMBRコードによって履行され、要求はネット
ワークサーバーからダウンロードされたデータとともに要求の発行元に戻される。ディス
クライトは異なった様式で操作される。MBRコードはライトを実施しないが、正常なラ
イトを示す信号をディスクライトの要求の発行元に戻す。ライトはオリジナルのInt 13h
BIOSルーチンにも送られない。
At the end of the POST sequence, BIOS 48 will begin booting the O / S. B
The IOS reads the first sector (cylinder 0, head 0, sector 1) of the virtual drive 8 of the server (step 510). The first sector stores an MBR (Master Boot Record) 24 containing additional emulation code for booting the O / S 40. The MBR 24 code is conventionally supplied by the O / S manufacturer, but additional emulation code needs to be developed to facilitate the hibernation resume process described below. The MBR code is executed after being loaded into the client's memory (step 512). The MBR code is PX to communicate with the network server
Continue to use E66, hook interrupt 13h to get all storage device access requests, and prevent writing to the server's virtual hard disk 8 during the early stages of the boot process (step 514). Read requests are favorably processed using the synchronous streaming method 400 described above. The read request is not sent to the original Int 13h BIOS routine, but is instead used by the MBR for the PXE to receive data from the network server 4. The read request is fulfilled by the MBR code, and the request is returned to the request issuer along with the data downloaded from the network server. Disc lights are operated in different styles. The MBR code does not perform writing, but returns a signal indicating normal writing to the disk write request issuer. Light is the original Int 13h
Also not sent to the BIOS routine.

MBRコードは次に、図1において「ウィンドウズ(登録商標)2000MBR」として示されているような、O/S製造者によって開発されたO/SMBR28をダウンロードする。各クライアント2のMBRコード33は、OPROM64が要求を調べるための機会を持つ前に、それのInt 13hベクトルのフッキング(hooking)を介してローカルディスクのリードに対する全ての要求を取得する。ダウンロードされたMBR88は次に、O/SMBR28をダウンロードするために、PXE66を使用して要求をネットワークサーバーに転送する(ステップ516)。   The MBR code then downloads an O / SMBR 28 developed by the O / S manufacturer, as shown in FIG. 1 as “Windows 2000 MBR”. The MBR code 33 of each client 2 gets all requests for local disk reads via its Int 13h vector hooking before OPROM 64 has the opportunity to examine the request. The downloaded MBR 88 then forwards the request to the network server using PXE 66 to download O / SMBR 28 (step 516).

ステップ518において、ネットワークサーバー4はサーバーの仮想ドライブ8から、
O/SMBR28を集合的に(または、共同的に)構成するデータパケットをO/SMB
Rのダウンロードを要求している各クライアント2に同期的にストリーム(または、デー
タ転送)する。ストリーミングモジュール26は勧誘期間中にO/SMBRのダウンロー
ドの要求を出した、全てのクライアント2へのダウンロードに対する登録を行う。勧誘期
間は全てのクライアントに登録の機会を与える、予め決められた時間間隔を持つ。ストリ
ーミングモジュール26は次に、リード要求元として最初のクライアントを指定する。す
なわち、そのクライアントだけが、全ての登録されたクライアント2'に次のデータセク
ターのコンテントが転送されるための、ストリーミングモジュール26のリード要求を生
成することを許可される。ストリーミングモジュール26は次に、登録されたクライアン
ト2'の全てにアクセスし、リード要求元の識別及びO/SMBR28を集合的に格納す
る仮想ドライブ8のセクターのグループの第1のセクターのコンテントを同時的に送信す
る。ストリーミングモジュールは次に、O/SMBRのセクターのグループの全てのセク
ターが送信されたかを決定する。さらなるセクターが送信されることが必要な場合、かつ
、2つ以上の登録されたクライアントが存在する場合、ストリーミングモジュールは新規
のリード要求元を指定する。次に、ストリーミングモジュールは次のセクターにアクセス
し、新規のリード要求元の識別とともに、それのコンテントを登録されたクライアント2
'の全てに同時的に送信する。新規のリード要求元を指定するステップは好まれるものと
して、順繰りに実施される。すなわち、各送信ラウンド後に、登録された1つのクライア
ントが順番に仮想ドライブのリード要求を生成する役割を引き受け、他の指定されていな
いクライアントはデータの送信を単に待つ。ストリーミング処理400はO/SMBR2
8全体が送信され各クライアントにロードされるまで繰り返され、その時点で、ダウンロ
ードされたO/SMBRはネットワークインターフェース54の制御及び要求生成処理を
引き受ける。
In step 518, the network server 4 starts from the virtual drive 8 of the server,
Data packets that collectively (or jointly) configure O / SMBR 28 are O / SMB
Stream (or transfer data) synchronously to each client 2 requesting R download. The streaming module 26 registers for download to all the clients 2 that issued a request for O / SMBR download during the solicitation period. The solicitation period has a predetermined time interval that gives all clients the opportunity to register. The streaming module 26 then designates the first client as the read request source. That is, only that client is allowed to generate a read request for the streaming module 26 to transfer the content of the next data sector to all registered clients 2 '. The streaming module 26 then accesses all of the registered clients 2 'and simultaneously identifies the identity of the read request source and the content of the first sector of the group of sectors of the virtual drive 8 that collectively stores the O / SMBR 28. To send. The streaming module then determines whether all sectors of the group of O / SMBR sectors have been transmitted. If more sectors need to be transmitted and there are more than one registered clients, the streaming module specifies a new read request source. Next, the streaming module accesses the next sector and identifies the new read requester and the client 2 that has registered its content.
Send to all of 'simultaneously. The step of designating a new read request source is preferred and is performed in order. That is, after each transmission round, one registered client takes on the role of generating virtual drive read requests in turn, and other unspecified clients simply wait for data transmission. Streaming processing 400 is O / SMBR2
8 is repeated until it is transmitted and loaded to each client, at which point the downloaded O / SMBR assumes control of the network interface 54 and request generation processing.

ここで、各リード要求はどの登録されたクライアントが発行したかにかかわらず、同一
であることに注意しなければならない。それゆえ、MBRコードによって実施されるリー
ド要求は密集行進法(lock-step)の様式で進行する。各クライアントは同一の仮想ドラ
イブからリードを要求し、既に仮想ドライブからダウンロードされた同一のMBR28を
実行しているので、各リード要求は同一となるだろう。
Note that each read request is the same regardless of which registered client issued it. Therefore, read requests performed by the MBR code proceed in a lock-step manner. Since each client requests a read from the same virtual drive and is already executing the same MBR 28 downloaded from the virtual drive, each read request will be the same.

図5を参照すると、ステップ520において、各登録されたクライアント2'は送信さ
れたO/SMBRのセクターを受信及び格納する。受信したデータセクターはRAM50
に格納される。各セクターは連番とともに送信されてもよい。各クライアントは次に、ク
ライアントが送信されたセクターの全てを正常に受信したかを決定してもよい(ステップ
522)。クライアントがデータパケットを見逃している場合、クライアントはネットワ
ークサーバーから見逃したデータセクターを非同期的に要求してもよい。しかしながら、
データはそのクライアント単体だけに戻され、全ての登録されたクライアントにはブロー
ドキャストまたはマルチキャストされない。
Referring to FIG. 5, in step 520, each registered client 2 ′ receives and stores the transmitted O / SMBR sector. The received data sector is RAM 50
Stored in Each sector may be transmitted with a serial number. Each client may then determine whether the client has successfully received all of the transmitted sectors (step 522). If the client misses a data packet, the client may request the missed data sector from the network server asynchronously. However,
Data is returned to that single client only and is not broadcast or multicast to all registered clients.

ステップ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)。   In step 524, O / SMBR 28 (eg, Windows 2000 MBR) is loaded into each client's memory 50 and executed. Next, the O / SMBR downloads the O / S loader 74 (eg, NTLDR) described by the O / S manufacturer from the virtual drive (step 526). The downloaded O / S loader 78 may check whether a valid hibernation image exists in the virtual drive 8 (step 528). The virtual drive is set to include a valid hibernation image 20 in advance. The O / S loader 78 then starts loading the hibernation image via a series of Int 13h read requests that the MBR 33 acquires and redirects to the network server 4 (step 530). Here, the streaming process 400 may be utilized again to access and transmit the content of multiple sectors on the virtual drive 8 that collectively store the hibernation file 20 (step 532).

ハイバネーションイメージが各クライアントのローカルメモリー44にコピーされた後
、O/Sローダー78はハイバネーションイメージから回復(または、再生)されたO/
S40、すなわち、ウィンドウズ(登録商標)XPまたは2000に実行を渡す(ステップ534)。ここで、この時点以降、リード要求は同期的な様式で実施されないことに注意しなければならない。すなわち、それらは単体ベースでネットワークサーバーに送信され、ネットワークサーバーによって回答される。
After the hibernation image is copied to the local memory 44 of each client, the O / S loader 78 recovers (or replays) the O / S recovered from the hibernation image.
In S40, that is, execution is passed to Windows XP or 2000 (step 534). Note that after this point, read requests are not performed in a synchronous fashion. That is, they are sent to the network server on a stand-alone basis and answered by the network server.

O/S40はこの時点で、ストレージドライバー32等のドライバーを起こし、システ
ムを使用可能な状態に戻すためにいくつかの初期化を実施する必要がある。ここで発生す
る1つの難しい問題は、NICドライバー74及びネットワークフィルタードライバー3
0が初期化されるまで、ストレージドライバー32が全てのリード及びライトを防止しな
ければならないことである。しかしながら、ネットワークフィルタードライバーはO/S
40がシステムにユーティリティー機能を与えるファイル(例えば、WIN32.SYS)をリー
ドするまで初期化されないだろう。この問題はハイバネーションイメージを生成する前に
WIN32.SYSの、クライアントのメモリー50への早めのキャッシュを行い、それによって
、ファイルをこの時点でローカルメモリー50内にリードされるハイバネーションイメー
ジ自体の一部にすることによって解決される。これにより、ファイルWIN32K.SYSは仮想ド
ライブ8をアクセスする必要なく、ローカルメモリーからリードすることができる。1つ
の例外として、ストレージドライバー32は全てのO/Sディスクのライト及びリード要
求をハイバネーションイメージの生成中に、事前にアロケートされたキャッシュに、すな
わち、この時点でクライアントシステムのメモリー50にキュー登録する。ストレージド
ライバー32は、要求の処理の許可が安全になるまで、すなわち、NICドライバー74
及びネットワークフィルタードライバー30が初期化されるまで、単に要求を格納する(
ステップ536)。ファイルWIN32K.SYSはローカルクライアントメモリーからリードされ
、データがO/Sに戻される(ステップ538)。
At this point, the O / S 40 needs to perform some initialization to wake up a driver, such as the storage driver 32, and return the system to a usable state. One difficult problem that occurs here is the NIC driver 74 and the network filter driver 3
The storage driver 32 must prevent all reads and writes until 0 is initialized. However, the network filter driver is O / S
It will not be initialized until 40 reads a file that gives the system utility functions (eg WIN32.SYS). The problem is that before generating the hibernation image
The solution is to do an early caching of WIN32.SYS in the client's memory 50, thereby making the file part of the hibernation image itself read into the local memory 50 at this point. As a result, the file WIN32K.SYS can be read from the local memory without having to access the virtual drive 8. With one exception, the storage driver 32 queues all O / S disk write and read requests into the pre-allocated cache during the generation of the hibernation image, ie, at this point in the client system memory 50. . The storage driver 32 waits until the permission for processing the request is secure, that is, the NIC driver 74
And simply store the request until the network filter driver 30 is initialized (
Step 536). The file WIN32K.SYS is read from the local client memory, and the data is returned to the O / S (step 538).

O/S40は次に、NICドライバー74及びネットワークフィルタードライバー30
を起こす(ステップ540)。ステップ542において、ネットワークフィルタードライ
バー30はストレージドライバー32に、NIC54が初期化され、ネットワークフィル
タードライバー30がペンディング中のリード及びライト要求を受諾する準備ができてい
ることを知らせる。あるいは、ストレージドライバー32は(ハイバネーションイメージ
の生成中に)事前に、NICドライバー74のディスパッチ機能に「フック」し、それの
「IRP_MJ_POWER」のためのデータを監視する。これはネットワークドライバーが起きたと
きにストレージドライバー32に警告を出す。O/S40がIRP_MJ_POWERをNICドライ
バー74に送信した後、要求は常にフルパワーオン状態となる。ストレージドライバー3
2はNICドライバーがIRP_MJ_POWERの処理を終了するまで、すなわち、ネットワークド
ライバーが完全に起きるまで待つ。
Next, the O / S 40 is connected to the NIC driver 74 and the network filter driver 30.
(Step 540). In step 542, the network filter driver 30 informs the storage driver 32 that the NIC 54 has been initialized and the network filter driver 30 is ready to accept pending read and write requests. Alternatively, the storage driver 32 “hooks” to the dispatch function of the NIC driver 74 in advance (during generation of the hibernation image) and monitors the data for its “IRP_MJ_POWER”. This alerts the storage driver 32 when a network driver wakes up. After the O / S 40 transmits IRP_MJ_POWER to the NIC driver 74, the request is always in the full power on state. Storage driver 3
2 waits until the NIC driver finishes the processing of IRP_MJ_POWER, that is, until the network driver completely occurs.

ステップ544において、ストレージドライバーはO/S40が使用可能な状態に回復
し、その後にユーザーが通常の様式でクライアントPCを使用することができるように、
全てのキャッシュされたリード及びライト要求のキュー登録を解除する。ここで、この実
施例において、ストレージドライバーがリードとライトを僅かに異なった様式で操作する
ことに注意しなければならない。すなわち、ストレージドライバーはライトが仮想ドライ
ブに対して実行されることによって、異なったクライアントが同一の仮想イメージに同時
にライトしたときに、それのデータを破壊することを防止するために、全てのライトをロ
ーカル的にキャッシュする。逆に、リードは必要なセクターのコピーがクライアント上に
キャッシュされないかぎり、仮想ドライブから実際のリードによって行われる。後者の場
合、セクターはクライアントのメモリーからキャッシュされ、ネットワークトランザクシ
ョンは一切行われない。
In step 544, the storage driver restores the O / S 40 to a usable state, after which the user can use the client PC in the normal manner.
Dequeue all cached read and write requests. It should be noted here that in this embodiment, the storage driver manipulates reads and writes in slightly different ways. That is, the storage driver writes all writes to the virtual drive in order to prevent destroying its data when different clients write to the same virtual image at the same time. Cache locally. Conversely, reads are made by actual reads from the virtual drive, unless a copy of the required sector is cached on the client. In the latter case, the sector is cached from the client's memory and no network transaction takes place.

上述の本発明の特徴及び実施から当業者にとっては本発明の他の実施例が明白であるだ
ろう。例えば、いくつかの実施例において、同期的ストリーミング処理400は割り込み
ハンドラープロシジャー(または、割り込みハンドラー処理)によって要求されたデータ
のダウンロードのみに使用されたり、サーバーの保護モードアクセスでのみ使用されたり
してもよい。または、同期的ストリーミング処理400はクライアントへのアプリケーシ
ョンの事前ロードに使用されてもよい。同様に、他の実施例において、データパケットの
要求及び受信を同期させるためのMBRコードを使用しない、ハイバネーションイメージ
のネットワークコピーからのブートも本発明の範囲に含まれる。それゆえ、上述の説明及
び実施例は例としてだけのものであり、本発明の本来の範囲及び意図は付随する請求の範
囲によって規定される。
From the above features and implementation of the invention, other embodiments of the invention will be apparent to persons skilled in the art. For example, in some embodiments, the synchronous streaming process 400 may be used only for downloading data requested by an interrupt handler procedure (or interrupt handler process), or only for server protected mode access. Also good. Alternatively, the synchronous streaming process 400 may be used for preloading applications to clients. Similarly, in other embodiments, booting from a network copy of a hibernation image that does not use an MBR code to synchronize request and reception of data packets is within the scope of the present invention. Therefore, the foregoing description and examples are illustrative only and the true scope and spirit of the invention is defined by the appended claims.

本発明が実施されるクライアント/サーバーネットワーク環境を図示しているブロック図である。1 is a block diagram illustrating a client / server network environment in which the present invention is implemented. FIG. 本発明の1つの実施例に従ったネットワークアダプターを図示しているブロック図である。FIG. 2 is a block diagram illustrating a network adapter according to one embodiment of the present invention. 独創的なドライバーがネットワークサーバーからダウンロードされ実行された後の、クライアントのローカルメモリーの一部の実施例を図示しているブロック図である。FIG. 4 is a block diagram illustrating an example of a portion of a client's local memory after an ingenious driver has been downloaded from a network server and executed. 本発明によって与えられる同期性ストリーミング処理の1つの実施例を図示しているフローチャートである。Figure 6 is a flowchart illustrating one embodiment of a synchronous streaming process provided by the present invention. ハイバネーションイメージファイルを利用しているネットワークブート処理の1つの実施例を図示しているフローチャートである。6 is a flowchart illustrating one embodiment of a network boot process using a hibernation image file.

符号の説明Explanation of symbols

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ローダー
2 Client 4 1st server 6 CPU
8 Hard disk (virtual drive)
10 ROM
12 RAM
14 Communication interface (network adapter)
16 bus 18 BIOS
20 Hibernation file 22 Sector sequence file 24 MBR
26 Streaming module 28 O / SMBR
30 Network filter driver 32 Storage driver 33 MBR
34 Second server 36 Client module 38 Network router / switch 40 O / S
42 CPU
44 memory 46 ROM
48 BIOS
50 memory (RAM)
52 Hard disk 54 Network adapter (NIC)
56 System bus 58 Bus interface 60 Network connector 62 RAM
64 OPROM
66 PXE
68 OS network stack 70 Various managers of Windows (registered trademark) 72 Initialization file 74 NIC driver 76 OS driver 78 OS loader

Claims (20)

ネットワークを介して1つ以上のクライアントコンピュータをブートする方法であって、
該方法は、
1つ以上のクライアントコンピュータによって、該ネットワーク上に格納されている1つ以上のデータのセクタをサーバから要求することであって、該データのセクタは、該1つ以上のクライアントコンピュータをブートするためのリソースを提供する、ことと、
該ネットワーク上に常駐するセクタシーケンスファイルのコンテントの一部を該サーバから受信することであって、該セクタシーケンスファイルは、該要求された1つ以上のデータのセクタの少なくとも一部を含む、ことと、
該1つ以上のクライアントコンピュータのそれぞれにおいて、該1つ以上のクライアントコンピュータの割り当てられたメモリキャッシュ内に該セクタファイルシーケンスの一部をキャッシュすることと、
該1つ以上のクライアントコンピュータのブート処理中に、該キャッシュされたセクタシーケンスファイルの一部を読み出すことと
を包含する、方法。
A method of booting one or more client computers over a network, comprising:
The method
Requesting one or more sectors of data stored on the network from a server by one or more client computers, the sectors of data for booting the one or more client computers; Providing resources, and
Receiving from the server a portion of the content of a sector sequence file residing on the network, the sector sequence file including at least a portion of the sector of the requested one or more data. When,
Caching a portion of the sector file sequence in each of the one or more client computers in an allocated memory cache of the one or more client computers;
Reading a portion of the cached sector sequence file during a boot process of the one or more client computers.
実行時前ブート環境プロトコルを用いて前記サーバと通信を開始することと、
利用可能なブートサーバのリストからブートサーバを発見することであって、該利用可能なブートサーバのリストは、第1のサーバと第2のサーバとを少なくとも含む、ことと
をさらに包含する、請求項1に記載の方法。
Initiating communication with the server using a pre-runtime boot environment protocol;
Discovering a boot server from a list of available boot servers, the list of available boot servers further comprising: at least a first server and a second server; Item 2. The method according to Item 1.
前記受信することは、ストリーミングモジュールによって送信された前記データのセクタを受信することをさらに包含し、
該ストリーミングモジュールは、該ネットワーク上で前記セクタシーケンスファイルを見つけ出し、該セクタファイルシーケンスによって記述されている命令に従って該データのセクタにアクセスする、請求項1に記載の方法。
The receiving further comprises receiving a sector of the data transmitted by a streaming module;
The method of claim 1, wherein the streaming module locates the sector sequence file on the network and accesses sectors of the data according to instructions described by the sector file sequence.
前記要求されたデータのセクタの一部であって、前記受信されなかった一部を識別することと、
該要求されたデータのセクタの一部であって、前記送信されなかった一部の再送信をサーバから要求することと
をさらに包含する、請求項3に記載の方法。
Identifying a portion of the requested sector of data that was not received;
4. The method of claim 3, further comprising: requesting from the server a retransmission of a portion of the requested sector of data that was not transmitted.
前記セクタシーケンスファイルが前記ネットワーク上に存在するか否かを決定することと、
前記ストリーミングモジュールから前記要求されたデータのセクタを受信することと
をさらに包含し、
該ストリーミングモジュールは、該データのセクタがアクセスされた順序を記録することにより、セクタシーケンスファイルを作成する、請求項1に記載の方法。
Determining whether the sector sequence file exists on the network;
Receiving the sector of the requested data from the streaming module;
The method of claim 1, wherein the streaming module creates a sector sequence file by recording the order in which the sectors of data were accessed.
ネットワーク上に配置されている仮想ドライブと通信することであって、該仮想ドライバは、該サーバが前記要求している1つ以上のクライアントコンピュータに常駐するローカルディスクとしてエミュレートするものを作成する、ことと、
該1つ以上のクライアントコンピュータによって実行される割り込みハンドラを用いて、該仮想ドライブから前記データのセクタをダウンロードすることと
をさらに包含する、請求項1に記載の方法。
Communicating with a virtual drive located on a network, the virtual driver creating what emulates a local disk that resides on the requesting one or more client computers; And
The method of claim 1, further comprising: downloading a sector of the data from the virtual drive using an interrupt handler executed by the one or more client computers.
ネットワークを介して1つ以上のクライアントコンピュータをブートする方法であって、
該方法は、
サーバによって、該ネットワーク上に格納されている1つ以上のデータのセクタに対する要求を該1つ以上のクライアントコンピュータから受信することであって、該データのセクタは、該1つ以上のクライアントコンピュータをブートするために用いられる、ことと、
該サーバ上のストリーミングモジュールによって、該リクエストされたデータのセクタを含むセクタシーケンスファイルを見つけ出すことであって、該セクタシーケンスファイルは、該要求されたデータのセクタにアクセスする順序を記述することと、
該ストリーミングモジュールによって、該記述された順序に従って該要求されたデータのセクタにアクセスすることと、
該ストリーミングモジュールによって、該記述された順序に従って該要求されたデータのセクタを該1つ以上にクライアントコンピュータに送信することと
を包含する、方法。
A method of booting one or more client computers over a network, comprising:
The method
Receiving by a server a request for one or more sectors of data stored on the network from the one or more client computers, wherein the sectors of data identify the one or more client computers; Used to boot, and
Locating a sector sequence file containing sectors of the requested data by a streaming module on the server, the sector sequence file describing the order in which the sectors of the requested data are accessed;
Accessing the requested sector of data according to the described order by the streaming module;
Sending, by the streaming module, the requested sectors of data to the one or more client computers according to the described order.
前記ストリーミングモジュールによって、前記要求している1つ以上のクライアントコンピュータに常駐するローカルディスクをエミュレートすることにより、仮想ドライブを作成することをさらに包含する、請求項7に記載の方法。   8. The method of claim 7, further comprising creating a virtual drive by the streaming module by emulating a local disk that resides on the requesting one or more client computers. 前記セクタシーケンスファイルが前記ネットワーク上に存在するか否かを決定することと、
該セクタシーケンスファイルが該ネットワーク上に存在しない場合には、前記ストリーミングモジュールによって、該ストリーミングモジュールがアクセスし、送信する前記データのセクタの順序を記録することにより、セクタファイルシーケンスを作成することと
をさらに包含する、請求項7に記載の方法。
Determining whether the sector sequence file exists on the network;
If the sector sequence file does not exist on the network, the streaming module accesses the streaming module and records the sector order of the data to be transmitted, thereby creating a sector file sequence; The method of claim 7 further comprising.
ネットワークを介して1つ以上のクライアントコンピュータをブートするシステムであて、
該システムは、
ネットワークを介してサーバと通信する1つ以上のクライアントコンピュータと、
該1つ以上のクライアントコンピュータ上の実行時前ブート環境フレームワークであって、該サーバから1つ以上のデータのセクタを要求する実行時前ブート環境フレームワークと、
該ネットワーク上に配置されているセクタシーケンスファイルであって、該1つ以上のデータのセクタにアクセスする順序を有するセクタシーケンスファイルと、
該サーバ上に配置されているストリーミングモジュールと、
該1つ以上のクライアントコンピュータのそれぞれに配置されているメモリキャッシュであって、該送信された1つ以上のデータのセクタが該1つ以上のクライアントコンピュータによって受信された場合には、該送信された1つ以上のデータのセクタを格納するキャッシュメモリと
を備え、
該ストリーミングモジュールは、
該セクタシーケンスファイルを見つけ出し、
該順序に従って、該セクタシーケンスファイル内の該1つ以上のデータのセクタにアクセスし、
該1つ以上のデータのセクタを該1つ以上のクライアントコンピュータに送信するように構成されている、システム。
A system for booting one or more client computers over a network,
The system
One or more client computers that communicate with the server over a network;
A pre-runtime boot environment framework on the one or more client computers, the pre-runtime boot environment framework requesting one or more sectors of data from the server;
A sector sequence file located on the network, the sector sequence file having an order of accessing sectors of the one or more data;
A streaming module located on the server;
A memory cache located in each of the one or more client computers, wherein the transmitted one or more sectors of data are received when the one or more client computers receive the sector; A cache memory for storing one or more sectors of data,
The streaming module
Find the sector sequence file,
Accessing the one or more sectors of data in the sector sequence file according to the order;
A system configured to transmit the one or more sectors of data to the one or more client computers.
前記サーバは、利用可能なブートサーバのリスト内の前記1つ以上のクライアントコンピュータによって発見されるブートサーバである、請求項10に記載のシステム。   The system of claim 10, wherein the server is a boot server discovered by the one or more client computers in a list of available boot servers. ネットワークを介して1つ以上のクライアントコンピュータをブートするシステムであって、
該システムは、
1つ以上のクライアントコンピュータによって、サーバから該ネットワーク上に格納されている1つ以上のデータのセクタを要求する手段であって、該データのセクタは、該1つ以上のクライアントコンピュータをブートするためのリソースを提供する、手段と、
該ネットワーク上に常駐するセクタシーケンスファイルのコンテントの一部を該サーバから受信する手段であって、該セクタシーケンスファイルは、該要求された1つ以上のデータのセクタの少なくとも一部を含む、手段と、
該1つ以上のクライアントコンピュータのそれぞれにおいて、該1つ以上のクライアントコンピュータの割り当てられたメモリキャッシュ内に該セクタファイルシーケンスの一部をキャッシュする手段と、
該1つ以上のクライアントコンピュータのブート処理中に、該キャッシュされたセクタシーケンスファイルの一部を読み出す手段と
を含む、システム。
A system for booting one or more client computers over a network,
The system
Means for requesting one or more sectors of data stored on the network from a server by one or more client computers for booting the one or more client computers; Providing means of resources, and
Means for receiving from the server a portion of the content of a sector sequence file residing on the network, the sector sequence file comprising at least a portion of the sector of the requested one or more data When,
Means for caching a portion of the sector file sequence in each of the one or more client computers in an allocated memory cache of the one or more client computers;
Means for reading a portion of the cached sector sequence file during a boot process of the one or more client computers.
実行時前ブート環境プロトコルを用いて前記サーバと通信を開始する手段と、
利用可能なブートサーバのリストからブートサーバを発見する手段であって、該利用可能なブートサーバのリストは、第1のサーバと第2のサーバとを少なくとも含む、手段と
をさらに含む、請求項12に記載のシステム。
Means for initiating communication with the server using a pre-runtime boot environment protocol;
Means for discovering a boot server from a list of available boot servers, the list of available boot servers further comprising: means comprising at least a first server and a second server. 12. The system according to 12.
前記受信する手段は、ストリーミングモジュールによって送信された前記データのセクタを受信する手段をさらに含み、
該ストリーミングモジュールは、該ネットワーク上で前記セクタシーケンスファイルを見つけ出し、該セクタファイルシーケンスによって記述されている命令に従って該データのセクタにアクセスする、請求項12に記載のシステム。
The means for receiving further comprises means for receiving a sector of the data transmitted by a streaming module;
13. The system of claim 12, wherein the streaming module locates the sector sequence file on the network and accesses the sector of data according to instructions described by the sector file sequence.
前記要求されたデータのセクタの一部であって、前記受信されなかった一部を識別する手段と、
該要求されたデータのセクタの一部であって、前記送信されなかった一部の再送信をサーバから要求する手段と
をさらに含む、請求項14に記載のシステム。
Means for identifying a portion of the sector of the requested data that was not received;
15. The system of claim 14, further comprising: means for requesting a retransmission of a portion of the requested sector of data that was not transmitted from a server.
前記セクタシーケンスファイルが前記ネットワーク上に存在するか否かを決定する手段と、
前記ストリーミングモジュールから前記要求されたデータのセクタを受信する手段と
をさらに含み、
該セクタシーケンスファイルが該ネットワーク上に存在しない場合には、該ストリーミングモジュールは、該データのセクタがアクセスされた順序を記録することにより、セクタシーケンスファイルを作成する、請求項12に記載のシステム。
Means for determining whether the sector sequence file exists on the network;
Means for receiving a sector of the requested data from the streaming module;
13. The system of claim 12, wherein if the sector sequence file does not exist on the network, the streaming module creates a sector sequence file by recording the order in which the sectors of data were accessed.
ネットワーク上に配置されている仮想ドライブと通信する手段であって、該仮想ドライバは、該サーバが前記要求している1つ以上のクライアントコンピュータに常駐するローカルディスクとしてエミュレートするものを作成する、手段と、
該1つ以上のクライアントコンピュータによって実行される割り込みハンドラを用いて、該仮想ドライブから前記データのセクタをダウンロードする手段と
をさらに含む、請求項12に記載のシステム。
Means for communicating with a virtual drive located on a network, the virtual driver creating what emulates a local disk residing on the requesting one or more client computers; Means,
13. The system of claim 12, further comprising: means for downloading the sector of data from the virtual drive using an interrupt handler executed by the one or more client computers.
ネットワークを介して1つ以上のクライアントコンピュータをブートするシステムであって、
該システムは、
サーバによって、該ネットワーク上に格納されている1つ以上のデータのセクタに対する要求を該1つ以上のクライアントコンピュータから受信する手段であって、該データのセクタは、該1つ以上のクライアントコンピュータをブートするために用いられる、手段と、
該サーバ上のストリーミングモジュールによって、該リクエストされたデータのセクタを含むセクタシーケンスファイルを見つけ出す手段であって、該セクタシーケンスファイルは、該要求されたデータのセクタにアクセスする順序を記述する手段と、
該ストリーミングモジュールによって、該記述された順序に従って該要求されたデータのセクタにアクセスする手段と、
該ストリーミングモジュールによって、該記述された順序に従って該要求されたデータのセクタを該1つ以上にクライアントコンピュータに送信する手段と
を含む、システム。
A system for booting one or more client computers over a network,
The system
Means for receiving, by a server, a request for one or more sectors of data stored on the network from the one or more client computers, wherein the sectors of data identify the one or more client computers; Means used to boot; and
Means for locating a sector sequence file including a sector of the requested data by a streaming module on the server, the sector sequence file describing a sequence of accessing sectors of the requested data;
Means for accessing, by the streaming module, the sectors of the requested data according to the described order;
Means for transmitting, by the streaming module, the requested sector of data to the one or more client computers according to the described order.
前記ストリーミングモジュールによって、前記要求している1つ以上のクライアントコンピュータに常駐するローカルディスクをエミュレートすることにより、仮想ドライブを作成する手段をさらに含む、請求項18に記載のシステム。   19. The system of claim 18, further comprising means for creating a virtual drive by the streaming module by emulating a local disk that resides on the requesting one or more client computers. 前記セクタシーケンスファイルが前記ネットワーク上に存在するか否かを決定する手段と、
該セクタシーケンスファイルが該ネットワーク上に存在しない場合には、前記ストリーミングモジュールによって、該ストリーミングモジュールがアクセスし、送信する前記データのセクタの順序を記録することにより、セクタファイルシーケンスを作成する手段と
をさらに含む、請求項18に記載のシステム。
Means for determining whether the sector sequence file exists on the network;
Means for creating a sector file sequence by recording the order of sectors of the data to be transmitted and transmitted by the streaming module by the streaming module if the sector sequence file does not exist on the network; The system of claim 18 further comprising:
JP2008028207A 2008-02-07 2008-02-07 System and method for streaming data to computer on network Pending JP2008165823A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008028207A JP2008165823A (en) 2008-02-07 2008-02-07 System and method for streaming data to computer on network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008028207A JP2008165823A (en) 2008-02-07 2008-02-07 System and method for streaming data to computer on network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003586749A Division JP4199677B2 (en) 2002-04-18 2002-04-18 System and method for streaming data to a computer on a network

Publications (1)

Publication Number Publication Date
JP2008165823A true JP2008165823A (en) 2008-07-17

Family

ID=39695112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008028207A Pending JP2008165823A (en) 2008-02-07 2008-02-07 System and method for streaming data to computer on network

Country Status (1)

Country Link
JP (1) JP2008165823A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191948A (en) * 2010-03-12 2011-09-29 Hitachi Information Systems Ltd Network boot device and network boot method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011191948A (en) * 2010-03-12 2011-09-29 Hitachi Information Systems Ltd Network boot device and network boot method

Similar Documents

Publication Publication Date Title
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
US6954852B2 (en) System for and method of network booting of an operating system to a client computer using hibernation
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
JP5026509B2 (en) Converting a machine to a virtual machine
US7246200B1 (en) Provisioning and snapshotting using copy on read/write and transient virtual machine technology
US9229732B2 (en) System and method for on-demand delivery of operating system and/or applications
US7275152B2 (en) Firmware interfacing with network protocol offload engines to provide fast network booting, system repurposing, system provisioning, system manageability, and disaster recovery
US8245022B2 (en) Method and system to support ISCSI boot through management controllers
US10341180B2 (en) Disk distribution system
JP4199678B2 (en) System and method for network booting of client computer operating system using hibernation
JP4199677B2 (en) System and method for streaming data to a computer on a network
JP2009230433A (en) Network booting device, program and method
WO2006045217A1 (en) Incremental provisioning of software
JP2008165823A (en) System and method for streaming data to computer on network
JP2008198210A (en) System and method for network booting of operating system of client computer using hibernation
JP2011523752A (en) Diskless client using hypervisor
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: 20110607

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110906

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110907

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110909

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110912

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120312

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120315

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120628