(57)【要約】【課題】ネットワークファイルシステムを通らず、ホストに連結するネットワークに直接に取り付けて使用できると共に、別途のファイルサーバーや特定のスイッチ、又はＩＰアドレスのような付加要素なしに地域ディスクのように認識され使用されえるディスクシステムを提供する。また、ネットワークやサーバー管理上の不具合を引き起こさずに便利にサーバーに連結しえると共に、ディスク容量の需要を合せるため多数のディスクシステムをネットワークポートに簡単にプラグインして使用できる低廉な費用のディスクシステムを提供する。さらに、保存ディバイスがネットワークポートにプラグインされるバスに取付可能であるようにするインターフェースを提供する。【解決手段】ネットワークを通じてホストからのディスク接近命令を受信するためのＮＡＤ（Ｎｅｔｗｏｒｋ−ａｔｔａｃｈｅｄ  ｄｉｓｋ）ディバイスと、ホストでネットワークを通じてＮＡＤ装置を制御するためのディバイスドライバーとを含むネットワーク取付ディスクシステムを通じて達成しえる。前記ホストはＵＮＩＸ、又はＷｉｎｄｏｗｓ系列のシステムをオペレーティングシステムにすることができる。ＮＡＤディバイスはデータを保存するディスクと、ディスクを制御するディスク制御機、及びネットワークポートを通じてホストからのディスク接近命令を受信するネットワークアダプターを含む。【選択図】図１
2004527817.tif 000002
【特許請求の範囲】
【請求項１】
システムバスを有してオペレーティングシステムを作動させるホストが、一定のネットワークプロトコルを使用する他の応用トラフィック及び保存を含む広範囲のネットワークトラフィックを処理するために、ホストと他の装置とを連結するフロントエンドネットワークを通じてディスクを制御しているネットワーク取付（ＮＡＤ）システムにおいて、
凡用のネットワーク接続を提供するためにホストに装着されるネットワークインターフェースカード（ＮＩＣ）と、
データを保存する一つ以上のディスクを有し、ホストからのデータリンクフレーム形態のディスクアクセス命令をネットワークを通じて受信するためのネットワーク取付けディスク（ＮＡＤ）装置と、
前記ＮＩＣを媒介にネットワークを通じてＮＡＤ装置を制御するソフトウェアの仮想ホストバスアダプターを作るためのホストで実行されるディバイスドライバーとを含み、
前記仮想ホストバスアダプターは物理バスアダプター装置が装置を制御する方法と同様の方法でＮＡＤ装置を制御して、ホストがＮＡＤ装置をホストのシステムバスに直接に連結された地域バスがディバイスであるかのように認識するＮＡＤ装置。
【請求項２】
前記ネットワークは、有線のネットワークからなることを特徴とする請求項１記載のＮＡＤシステム。
【請求項３】
前記ネットワークは、無線のネットワークからなることを特徴とする請求項１記載のＮＡＤシステム。
【請求項４】
前記ＮＩＣは、イーザーネットカードからなることを特徴とする請求項１記載のＮＡＤシステム。
【請求項５】
前記オペレーティングシステムは、ＵＮＩＸ系列のものであることを特徴とする請求項１記載のＮＡＤシステム。
【請求項６】
前記ディバイスドライバは、
ディバイスドライバーがホストの前記ディバイスドライバーを登録するためにディバイスファイルとディバイスルーチンファイルとを含むことを特徴とする請求項５記載のＮＡＤシステム。
【請求項７】
ＮＡＤ装置に接近するためにディバイス接近スレードをさらに含むことを特徴とする請求項６記載のＮＡＤシステム。
【請求項８】
ネットワークに取り付けられた装置を探すためにディバイス探索スレードをさらに含むことを特徴とする請求項６記載のＮＡＤシステム。
【請求項９】
ディバイスドライバとＮＡＤディバイスとを連結するためにネットワーク連結セッティングスレードをさらに含むことを特徴とする請求項６記載のＮＡＤシステム。
【請求項１０】
前記ＮＡＤディスクは多数の個別ディスク分割をさらに含むことを特徴とする請求項６記載のＮＡＤシステム。
【請求項１１】
前記ディバイスドライバーは多数の個別ディバイスドライバーを含み、各個別ディバイスドライバーが個別ディスク分割を制御し、個別ディスク分割を制御するための各個別ディスク分割は、独立した地域ディスクにアクセスすることを特徴とする請求項１０記載のＮＡＤシステム。
【請求項１２】
ディバイスドライバーは多数の個別分割を含み、各ドライバーの分割は各個別ディスク分割を制御することを特徴とする請求項１０記載のＮＡＤシステム。
【請求項１３】
二番目のＮＡＤ装置、二番目のディバイスドライバー、及び、前記ディバイスドライバーと前記二番目のディバイスドライバとを結合して、前記ＮＡＤ装置と前記二番目のＮＡＤ装置とが一つの地域装置として認識されるようにする統合ディバイスドライバー、をさらに含むことを特徴とする請求項１記載のＮＡＤシステム。
【請求項１４】
前記ドライバーはホストのシステムバスに直接に連結されている地域装置のように認識されるＮＡＤ装置にアクセスするために仮想のホストアダプターを作るバスドライバー、
ホストからのディスクアクセス命令をネットワークポートを通じて前記ＮＡＤ装置に伝達するポートドライバーを含むことを特徴とする請求項１記載のＮＡＤシステム。
【請求項１５】
前記オペレーティングシステムはＷｉｎｄｏｗｓ系列のものであることを特徴とする請求項１４記載のＮＡＤシステム。
【請求項１６】
前記ＮＡＤ装置は、
ディスクを制御するディスク制御機、及び、
ネットワークを通じてディスクアクセス命令を受信するネットワークアダプターをさらに含むことを特徴とする請求項１記載のＮＡＤシステム。
【請求項１７】
前記ＮＡＤ装置は、前記一つ以上のディスクは地域ディスクにフォーマットされることを特徴とする請求項１６記載のＮＡＤシステム。
【請求項１８】
実用機能を提供するフィルタープログラムをさらに含むことを特徴とする請求項１６記載のＮＡＤシステム。
【請求項１９】
前記実用機能は多端子のホスト間の接近共有を制御する機能を含むことを特徴とする請求項１８記載のＮＡＤシステム。
【請求項２０】
実用機能は一つのホストから他のホストへのアクセス権の伝送を制御する機能を含むことを特徴とする請求項１８記載のＮＡＤシステム。
【請求項２１】
実用機能はＮＡＤ装置の自動バックアップを提供する機能を含むことを特徴とする請求項１８記載のＮＡＤシステム。
【請求項２２】
前記実用機能はＮＡＤ装置へのアクセスを制御する機能を含むことを特徴とする請求項１８記載のＮＡＤシステム。
【請求項２３】
ホストが一定のネットワークプロトコルを使用する他の応用トラフィック並びに保存を含む凡用のネットワークトラフィックを処理するためにホストと他の装置とを連結する前後ネットワークを通じてディスクを有するネットワーク取付ディスク（ＮＡＤ）装置を制御するためのシステムバスを有しかつオペレーティングシステムを作動させるホスト側ディスクインターフェースにおいて、
凡用のネットワーク接続を提供するためホストに装着されるネットワークインターフェースカード（ＮＩＣ）と、
ＮＩＣを媒介にネットワークを通じてＮＡＤ装置を制御するソフトウェアの仮想ホストバスアダプターを生成するためのホストで実行されるディバイスドライバーとを含み、前記仮想ホストバスアダプターが物理バスアダプター装置が装置を制御する方法と同様の方法でＮＡＤ装置を制御して、ホストがＮＡＤ装置をホストのシステムバスに直接に連結された地域ディバイスであるかのように認識することから成るホスト側ディスクインターフェース。
【請求項２４】
前記オペレーティングシステムはＵＮＩＸ系列のものであることを特徴とする請求項２３記載のディスクインターフェース。
【請求項２５】
ディバイスドライバーをホストに登録するためのディバイスドライバーのためにディバイスファイルとディバイスドライバールーチンとを更に含むことを特徴とする請求項２４記載のディスクインターフェース。
【請求項２６】
前記ＮＡＤ装置にアクセスするためのディバイス接近スレードをさらに含むことを特徴とする請求項２５記載のディスクインターフェース。
【請求項２７】
ネットワークに取り付けられた装置を探索するために装置探索スレードをさらに含むことを特徴とする請求項２５記載のディスクインターフェース。
【請求項２８】
ディバイスドライバーとＮＡＤ装置との連結をために連結セッティングスレードをさらに含むことを特徴とする請求項２５記載のディスクインターフェース。
【請求項２９】
ＮＡＤ装置は多数の個別ディスクに分割されたディスクを有していることを特徴とする請求項２５記載のディスクインターフェース。
【請求項３０】
前記ディバイスドライバーは多数の個別ディバイスドライバーを含み、各個別ディバイスドライバーが各個別ディスク分割が独立的な地域ディスクに接近する前記個別ディスク分割を制御することを特徴とする請求項２９記載のディスクインターフェース。
【請求項３１】
ディバイスドライバーは各個別分割を制御する多数の分割を含み、各ドライバー分割が各個別ディスク分割を制御することを特徴とする請求項２９記載のディスクインターフェース。
【請求項３２】
ディバイスドライバーはホストのシステムバスに直接に連結される地域装置のようにＮＡＤ装置にアクセスする仮想のホストバスアダプターを生成するバスドライバー；
ネットワークを通じてディスク接近命令を伝達するポートドライバーを含むことを特徴とする請求項２３記載のディスクインターフェース。
【請求項３３】
オペレーティングシステムはＷｉｎｄｏｗｓ系列のものであることを特徴とする請求項３２記載のディスクインターフェース。
【請求項３４】
システムバスを有するホストにたいしネットワークを介して接続することによってネットワーク取付ディスク（NAD）装置をそれがあたかも前記ホストの前記システムバスに直接に接続されているかのように認識する仮想ホストバスアダプターを前記ホストが有するようになったネットワーク取付ディスク（NAD）装置において、
前記ネットワークを通じてデータリンクフレームのディスク接近命令を受信するネットワークアダプターと、
ディスク接近命令を実行するためにLANアダプターに接続したディスク制御装置と、
データ保存ディスク、及び
前記NAD装置の作動を制御するために前記ネットワークアダプターと前記ディスク制御装置とに接続した制御装置と、から成るネットワーク取付ディスク（NAD）装置。
【請求項３５】
前記ネットワークはイーザーネットで運営されることを特徴とする請求項３４記載のＮＡＤ装置。
【請求項３６】
前記ディスクは地域ディスクにフォーマットされることを特徴とする請求項３４記載のＮＡＤ装置。
【請求項３７】
前記ディスクは地域ディスクに分割されることを特徴とする請求項３４記載のＮＡＤ装置。
【請求項３８】
前記ネットワークアダプターはホストと媒体アクセス制御（ＭＡＣ）装置とからデータを受けるための物理ネットワークインターフェースを含むことを特徴とする請求項３４記載のＮＡＤ装置。
【請求項３９】
前記制御装置はＮＡＤ装置のオペレーションを制御するための状態マシンを有する制御装置を含むことを特徴とする請求項３４記載のＮＡＤ装置。
【請求項４０】
前記制御装置はディスクへのアクセスを制御するためのフィルターを有する制御装置を含むことを特徴とする請求項３４記載のＮＡＤ装置。
【請求項４１】
前記ディスクは多数のディスクに分割されることを特徴とする請求項３４記載のＮＡＤ装置。
【請求項４２】
各ディスク分割は別途のドライバーにより制御されることを特徴とする請求項４１記載のＮＡＤ装置。
【請求項４３】
凡用のネットワーク連結を提供するためにホストに装着されるネットワークインターフェースカード（ＮＩＣ）と、
保存装置がホストのシステムバスに直接に連結された地域ディバイスであるようにネットワークポートを認識する仮想バスアダプターを生成するバスドライバーと、
ネットワークポートを通じて保存命令を伝達するポートドライバーを含む、凡用のネットワークトラフィックを処理するために、ホストと他の装置とを連結するフロントエンドネットワークを通じて保存装置を制御するためのシステムバスを有するホスト側の保存インターフェース。
【請求項４４】
前記保存装置はディスクであることを特徴とする請求項４３記載の保存インターフェース。
【請求項４５】
前記保存装置はテープシステムであることを特徴とする請求項４３記載の保存インターフェース。
【請求項４６】
前記保存装置はメモリシステムであることを特徴とする請求項４３記載の保存インターフェース。
【請求項４７】
前記保存装置はＣＤドライブであることを特徴とする請求項４３記載の保存インターフェース。
【請求項４８】
前記ホストはＵＮＩＸ系のオペレーティングシステムであることを特徴とする請求項４３記載の保存インターフェース。
【請求項４９】
前記ホストはＷｉｎｄｏｗｓ系のオペレーティングシステムであることを特徴とする請求項４３記載の保存インターフェース。
【請求項５０】
システムバスを有するホストにたいしネットワークを介して接続することによってネットワーク取付保存装置をそれがあたかも前記ホストの前記システムバスに直接に接続されているかのように認識する仮想ホストバスアダプターを前記ホストが有するようになったネットワーク取付保存装置において、
保存装置と、
前記ネットワークを介して保存命令を受けるネットワークアダプターと、前記保存命令を実行する保存制御装置とから成るネットワーク取付保存装置。
【請求項５１】
前記保存装置のオペレーションを制御する状態マシンをさらに含むことを特徴とする請求項５０記載のネットワーク取付保存装置。
【請求項５２】
前記保存装置はディスクであることを特徴とする請求項５０記載のネットワーク取付保存装置。
【請求項５３】
前記保存装置はテープ装置であることを特徴とする請求項５０記載のネットワーク取付保存装置。
【請求項５４】
前記保存装置はＣＤドライブであることを特徴とする請求項５０記載のネットワーク取付保存装置。
【請求項５５】
前記保存装置はメモリ装置であることを特徴とする請求項５０記載のネットワーク取付保存装置。
【請求項５６】
プロトコルをディスクアクセス命令からディスクアクセス命令を含むデータリンクフレームに変換するためのホストバスアダプターとしてのプロトコル変換機を含み、ディバイスドライバーは前記ディスク装置をあたかも前記ホストのシステムバスに連結された地域ディスクのように認識することから成るネットワークを通じて前記ディスク装置を制御するためにシステムバスを有してオペレーティングシステムを作動させるホスト側のディスクインターフェース。
【請求項５７】
オペレーティングシステムはＵＮＩＸ系のものであることを特徴とする請求項５６記載のディスクインターフェース。
【請求項５８】
オペレーティングシステムはＷｉｎｄｏｗｓ系のものであることを特徴とする請求項５６記載のディスクインターフェース。
【請求項５９】
データを保存するためのディスクと、
ディスクアクセス命令を行うためのディスク制御機と、
ディスクアクセス命令を含むデータリンクフレームをネットワークを通じて受信し、ネットワークに連結されたネットワークアダプターと、；
前記ネットワークアダプター及び前記ディスク制御機に連結されて、受信データリンクフレームからディスクアクセス命令を検索する逆プロトコル制御装置とを含み、システムバスを有するホストが前記ディスク装置をあたかも前記ホストのシステムバスに直接に連結された地域ディバイスであるかのように認識することから成る前記システムバスを有するホストに前記ネットワークを通じて連結されたＮＡＤ取付ディスク（ＮＡＤ）ディバイス。
【請求項６０】
保存命令をデータリンクフレームに変換して、前記保存装置をネットワークを通じて制御するためのホストバスアダプターとしてのプロトコル変換機と、
前記保存装置をネットワークを通じて制御することで、前記ホストコンピュータが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを生成するためのディバイスドライバーとを含むことから成る、ネットワークに連結された保存装置をネットワークを通じて制御するシステムバスを有するホストの保存インターフェース。
【請求項６１】
前記保存装置はディスクであることを特徴とする請求項６０記載の保存インターフェース。
【請求項６２】
前記保存装置はテープ装置であることを特徴とする請求項６０記載の保存インターフェース。
【請求項６３】
前記保存装置はＣＤドライバーであることを特徴とする請求項６０記載の保存インターフェース。
【請求項６４】
前記保存装置はメモリ装置であることを特徴とする請求項６０記載の保存インターフェース。
【請求項６５】
保存命令を含むデータリンクフレームをネットワークを通じて受信するためのネットワークアダプター；
前記ネットワークアダプターに連結された、前記保存命令を行うための保存制御装置と、
データを保存するための保存装置と、
前記ネットワークアダプター、及び保存制御装置に連結された、前記ネットワークアダプターにより受信されたデータリンクフレームから保存命令を検索するためのカウンター変換装置を含み、前記ホストが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを有する前記システムバスを有するホストにネットワークを通じて連結されるネットワーク取付保存装置。
【請求項６６】
前記保存装置はディスクであることを特徴とする請求項６５記載のネットワーク取付貯蔵装置。
【請求項６７】
前記保存装置はテープ装置であることを特徴とする請求項６５記載のネットワーク取付貯蔵装置 。
【請求項６８】
前記保存装置はＣＤドライブであることを特徴とする請求項６５記載のネットワーク取付貯蔵装置 。
【請求項６９】
前記保存装置はメモリ装置であることを特徴とする請求項６５記載のネットワーク取付貯蔵装置 。
【請求項７０】
ネットワークと、
ネットワーク接続を提供するためのシステムバス、及びネットワークインターフェースカード（ＮＩＣ）を有するホストコンピューターと、
前記ネットワークに取り付けられたマルチメディアコンテンツを再生するための多数のマルチメディア再生機、
前記コンピューターが各マルチメディア再生機をまるで前記コンピューターのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを生成するために、前記ホストで実行されるディバイスドライバーを含むことを特徴とする、マルチメディアコンテンツ再生用コンピュータージュークボックス。
【請求項７１】
前記ネットワークはローカル通信網（ＬＡＮ）であることを特徴とする請求項７０記載のコンピュータージュークボックス。
【請求項７２】
前記ネットワークはイーザーネットで運営されることを特徴とする請求項７０記載のコンピュータージュークボックス。
【請求項７３】
前記マルチメディア再生機はＣＤドライブを含むことを特徴とする請求項７０記載のコンピュータージュークボックス。
【請求項７４】
前記マルチメディア再生機はＤＶＤドライブを含むことを特徴とする請求項７０記載のコンピュータージュークボックス。
【請求項７５】
前記ホストが前記ディスク装置を前記ホストのシステムバスに連結された地域ディバイスのように認識するようにする仮想ホストバスアダプターを生成する段階；
ネットワークを通じて前記ホストからディスクアクセス命令を受信する段階；
前記ディスクディバイス命令を実行する段階；
命令実行の結果を前記ホストに送る段階を備えることを特徴とするシステムバスを有するホストからネットワークを通じてディスク装置にアクセスする方法。
【請求項７６】
仮想ホストバスアダプターを生成する前記段階は、前記ホストに装着されたネットワークインターフェースカードの存在可否を検知する段階を備えることを特徴とする請求項７５記載のディスク装置接近方法。
【請求項７７】
仮想ホストバスアダプターを生成する前記段階は、前記ホストでのネットワークインターフェースカードの除去可否を検知する段階を備えることを特徴とする請求項７５記載のディスク装置接近方法。
【請求項７８】
前記ホストが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識するようにする仮想ホストバスアダプターを生成する段階；
前記ネットワークポートを通じて保存命令を伝達する段階を備えることを特徴とする、システムバスを有するホストにネットワークを通じて連結された保存装置へのアクセス方法。
【請求項７９】
前記保存装置はディスクであることを特徴とする請求項７８記載の保存装置へのアクセス方法。
【請求項８０】
前記保存装置は動的に装着されることを特徴とする請求項７８記載の保存装置へのアクセス方法 。
【請求項８１】
前記ホストはＵＮＩＸ系オペレーティングシステムで運営されることを特徴とする請求項７８記載の保存装置への接近方法 。
【請求項８２】
前記ホストはＷｉｎｄｏｗｓ系オペレーティングシステムで運営されることを特徴とする請求項７８記載の保存装置への接近方法 。
【請求項８３】
保存命令を伝達する前記段階は、前記保存装置により行われるＩ／Ｏトランザクションを含むＩ／Ｏ要求パケット（ＩＲＰ）を送る段階を備えることを特徴とする請求項７８記載の保存装置への接近方法 。
【請求項８４】
保存命令を伝達する前記段階は、保存命令をＩＤＥ保存装置に特有の命令に翻訳する段階を備えることを特徴とする請求項７８記載の保存装置への接近方法 。
【請求項８５】
保存命令を伝達する前記段階は、保存命令をＳＣＳＩ保存装置に特有の命令に転換する段階を備えることを特徴とする請求項７８記載の保存装置への接近方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューターシステムに関し、特にネットワークに直接に取付可能なディスクシステム、又はインターフェースに関する。
【背景技術】
【０００２】
インターネット使用の増加に伴い、保存を必要とするデータの量が急増している。特に、マルチメディアデータを保存するための大容量ディスクドライブに対する需要が多くなった。例えば、各サーバー当りテラバイト以上のディスク容量を備えるディスクシステムに対する需要が増えている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
テープドライブやＣＤドライブを使用して大容量データを保存することもあったが、性能や使用上の便利性を考えると、ハードディスクとは比べものにならない。
【０００４】
しかしながら、通常のサーバーシステムのハードディスクを大容量に増設するには多少の問題点が伴う。
通常、インターネットネットワークに連結して使用するようになっているＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）製品は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）プロトコルやＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）プロトコル、又はインターネットで使用されるＩＰプロトコルに２つのプロトコルを共に使用する統合システム、又は保存管理と共に予め定められた一定量のディスク容量を提供する。前記２つのプロトコルの基本目的は２つのコンピューターの間でファイルを交換することにある。したがって、ファイルへの接近のためにＮＡＳを使用するクライアントは地域ディスクに接近するのとは異なる方式でＮＡＳシステムの保存ディバイスに接近するしかない。
【０００５】
ＮＡＳは基本的にファイルを保存し、情報を検索する機能だけを有する単純化されたファイルサーバーの一種である。したがって、ＮＡＳを通じた容量は、実際にはファイルサーバーを増設したものであり、これには多くの制約が伴う。ＮＡＳのディスクはクライアントには自分の地域ディスクではないので、ＮＡＳディスクの装着、移動、及び諸般管理はＮＡＳのオペレーティングシステムやソフトウェアを使用してのみ可能である。また、ＮＡＳディスクは、ＮＡＳシステムの内部のバス内に装着されるべきなので、装着可能なディスクの数は制限されている。ＮＡＳは自分のオペレーティングシステムの下にディスクを置いており、クライアントがＮＡＳディスクに接近するためには、提供されたファイルシステムの以外の任意のシステムを使用できない。その他にもＮＡＳシステムは、別途のＩＰアドレスを必要とする。結論的に、地域ディスクを使用するのに比べＮＡＳシステムの場合は、ディスク当り装着や管理費用がさらにかかるだけでなく、地域ディスクを使用する場合より使用上不便である。
【０００６】
Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ技術を使用するＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に連結された装置を使用するためには特定のタイプのスイッチが必要である。例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌは、ＦｉｂｒｅＣｈａｎｎｅｌ  Ｈｕｂ、又はＦｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｓｗｉｔｃｈを使用する。ＳＡＮ技術においても短所があって、通常別途のファイルサーバーが使用され、一般に高価の装備と共に、ＳＡＮを運営するための知識を備えた技術人力が必要である。
【０００７】
そのため、ディスクシステムがネットワークに直接に取り付けられ、別途のファイルサーバーや特別な装備を追加せずに、まるで地域ディスクであるように接近するインターフェースが必要である。
【０００８】
そこで、本発明の目的は、ネットワークファイルシステムを通さず、ホストに連結するネットワークに直接に取り付けて使用できるディスクシステムを提供することにある。
【０００９】
本発明の他の目的として、別途のファイルサーバーや特定のスイッチ、又はＩＰアドレスのような付加要素なしに地域ディスクのように認識され、使用されえるディスクシステムを提供する。
【００１０】
本発明のまた他の目的として、ネットワークやサーバー管理上の不具合を引き起こすことなく便利にサーバーに連結しえるディスクシステムを提供する。
【００１１】
本発明のまた他の目的として、ディスク容量の需要を合せるため多数のディスクシステムをネットワークポートに簡単にプラグインして使用できる低廉な費用のディスクシステムを提供する。
【００１２】
本発明のさらに他の目的として、保存ディバイスがネットワークポートにプラグインされるバスに取付可能であるようにするインターフェースを提供する。
【課題を解決するための手段】
【００１３】
上記の目的は、ネットワークを通じてホストからのディスク接近命令を受信するためのＮＡＤ（Ｎｅｔｗｏｒｋ−ａｔｔａｃｈｅｄ  ｄｉｓｋ）ディバイスと、ホストでネットワークを通じてＮＡＤ装置を制御するためのディバイスドライバーとを含むネットワーク取付ディスクシステムを通じて達成しえる。
【００１４】
ホストはＵＮＩＸ、又はＷｉｎｄｏｗｓ系列のシステムをオペレーティングシステムにすることができる。ＮＡＤディバイスはデータを保存するディスクと、ディスクを制御するディスク制御機、及びネットワークポートを通じてホストからのディスク接近命令を受信するネットワークアダプターを含む。
【発明を実施するための最良の形態】
【００１５】
図１は本発明が使用される環境を示す。ホスト１００は、内部のシステムバス１０３に連結されている地域ディスク１０４を制御する地域ディスクディバイスドライバー１０２を含むファイルシステム１０１を有する。地域ディバイスはネットワークに連結されたネットワークディバイスと対照される独立型システムの内部の装置として定義される。地域ディバイスは、ホストが地域ディバイスと異なるネットワークを通らず疎通できるようにするホストバスアダプターを通じてシステムバスに直接に連結される。その反面、ネットワークディバイスはシステムバスに直接に連結されず、システムバスに装着されているネットワークインターフェースカードＮＩＣと呼ばれるインターフェースを通じて連結される。前記地域ディスク１０４は通常のＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）ディスク、又はＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）ディスクと云える。
【００１６】
また、ファイルシステム１０１はネットワークアダプターディバイスドライバー１０６とイザーネットのようなネットワーク１０７を通じて連結されるＮＡＤディバイス１０８を制御する本発明のネットワーク取付ディスクＮＡＤディバイスドライバー１０５を含む。本発明の前記ＮＡＤディバイスドライバー１０８は一つ以上のディスク１０９を含む。前記ネットワーク１０７は他の応用トラフィックだけでなく、保存トラフィックを運搬する汎用ネットワークである。汎用ネットワークトラフィックを運搬するための前位処理ネットワークは、一般的な保存領域ネットワークＳＡＮの構成に使用される保存所などに使用される後位処理ネットワークと区分される。
【００１７】
本発明は２つの主要な構成要所のホストのＮＡＤディバイスドライバー１０５と、ネットワークに取り付けられたＮＡＤディバイス１０８とからなる。
【００１８】
図２は多端子ＮＡＤディバイスがネットワークを通じて多数のホストに接近する例を示す。ディスク（１，１）１２６を有する１番ＮＡＤディバイス１２３、ディスク（２，１）１２７とディスク（２，２）１２８を有する２番ＮＡＤディバイス１２４は、１番ホスト１２０によってネットワーク１２２を通じて接近する。ディスク（３，１）１２９、ディスク（３，２）１３０と、ディスク（３，３）１３１を有する３番ＮＡＤディバイス１２５は、２番ホスト１２１によって上記のようなネットワーク１２２を通じて接近する。
【００１９】
各ディスクはホストのシステムバスに連結された地域ディスクに現れるので、逆動的に装着、又は除去されえる。本発明は、このために、実際にはＮＡＤディバイスに連結されたホストバスアダプターがないにも関わらず、ＮＡＤディバイスがシステムに連結されていると認識する純粋ソフトウェア手段の仮想ホストバスアダプターを作る。これは、ＮＩＣを通じて連結されたＮＡＳディバイスがネットワークに連結された別途のファイルサーバーとして認識される、通常的なネットワーク領域保存（ＮＡＳ）の構成とは区分される。
【００２０】
オープンシステムインターフェース（ＯＳＩ）モデルは、電気的なインターフェースの定義のための物理層、データフレームを使用する通信のためのデータリンク層、一方の先端から他方にパケットを発送するためのネットワーク層、通信期間を規定するセション層、データ表現構成のための表現層、及び応用プログラムのための応用層を含む７層のプロトコルを定義する。本発明は、データリンクフレームで保存命令を含有させるデータリンク層プロトコルを使用する。ＮＡＤディバイスはホストから独立したディバイスとして作用しないので、ＩＰアドレスのようなネットワークアドレスを使用する必要はない。ホストとディスクシステムの特定な配置は動的に変化しえるので、地域ディスクを使用する場合と同様に使用上便利で運搬しやすい。ネットワークに接続することができるディスクシステムの数を仮想的に制限することはない。
【００２１】
図３は多端子ＮＡＤディバイスがネットワークを通じて多数のホストにより接近することを示す他の例である。１番ＮＡＤディバイス１４３と、２番ＮＡＤディバイス１４５、及び５番ＮＡＤディバイス１４７は、ネットワーク１４２を通じて１番ホスト１４０により接近される。２番ＮＡＤディバイス１４４と、４番ＮＡＤディバイス１４６は、同一のネットワーク１４２を介して２番ホスト１４０により接近される。
【００２２】
ＮＡＤに含まれたディスクは別途のディスクとして取り扱われ、各ディスクはホストによって独立的に接近される。図４はＮＡＤ内の各ディスクが別途のディスクとして取り扱われる例を示す。１番ＮＡＤディバイス１６３内のディスク（１，１）１６６、２番ＮＡＤディバイス内のディスク（２，２）１６８、そして、２番ＮＡＤディバイス内のディスク（３，２）１７０は、ネットワーク１２２を通じてホスト１６０により接近される一方、２番ＮＡＤディバイス１６４内のディスク（２，１）１６７と、３番ＮＡＤディバイス１６５内のディスク（３，１）１６９と、ディスク（３，３）１７１は、前記同じネットワーク１６２を通じて２番ホスト１６１により接近される。２番ＮＡＤディバイス１６４内のディスク（２，１）１６７と、ディスク（２，２）１６８とがそれぞれ１番ホスト１６０と２番ホスト１６１によって接近されることに留意する。
【００２３】
（ブロックディバイスドライバー）
Ｗｉｎｄｏｗｓのような他のオペレーティングシステムでも使用されるが、ＵＮＩＸ系列のオペレーティングシステムで作動するＮＡＤシステムの実施形態を説明する。
【００２４】
異なる種類のブロックディバイスの中で区別するための主ディバイス番号と、同じ種類のブロックディバイスの中で区別するための副ディバイス番号とがディスクディバイスのようなブロックデータ保存のための各ブロックディバイスに割り当てられる。ＵＮＩＸでは各ディバイスがリアルディバイスを接近させるためのインターフェースを提供するディバイスファイルを通じて接近される。主ディバイス番号と副ディバイス番号、及びブロックディバイスドライバーに関する情報を有したディバイスファイルは主に先に生成される。
【００２５】
ディバイスファイルの目的は、ディバイスに関係した核心により形成された要求を処理するためのものである。ディスクドライバーは、核心のための一定のインターフェースを提供するためにディバイス特定コードを分離させる。ディバイスドライバーの作動を活性化させるために、ディスクファイルとディバイスドライバールーチンの用意が必要であり、ドライバールーチンの機能が登録され、その有用性をＵＮＩＸのような運営システムが理解するようにすべきであり、大体媒介変数としてディバイスに割り当てられた主番号とドライバールーチンの機能を伝達して行われる。
【００２６】
ブロックディスクドライバーの登録と登録解除
ブロックディスクドライバーが主ディバイス番号とドライバー機能を媒介体として伝達して登録されると、その主番号を伝達することで登録解除が可能である。
【００２７】
表１はディバイスドライバーの登録や登録解除に使用される関数を示すものである。
【００２８】
【表１】
2004527817.tif 000003
【００２９】
表２は地域ドライバーとＮＤＡドライバーにより使用される一般的な関数を示すものである。
【００３０】
【表２】
2004527817.tif 000004
【００３１】
表３はＩＤＥ地域ディスクドライバーとＮＡＤドライバーに関する関数の例を示すものである。
【００３２】
【表３】
2004527817.tif 000005
【００３３】
図５は特別にＮＡＤディバイスドライバのようなブロックディバイスドライバーが登録、又は登録解除される例を示す。最初に、３番メジャードディバイスを有するＩＤＥディバイスドライバー１８１が０番メジャーディバイスと、ｎ番メジャーディバイス１８２のような幾つかのヌールディバイスドライバーと共に生成される。６０番主番号が割り当てられたＮＡＤディバイスドライバーの６０番メジャーディバイス１８３は、ディバイス登録関数ｒｅｇｉｓｔｅｒ_ｂｌｋｄｅｖ（６０，ｆｏｐｓ）１８５を使用して登録される。次に、ＮＡＤディバイスドライバーはヌールディバイスドライバーである６０番メジャーーディバイス１８４に未登録関数ｕｎｒｅｇｉｓｔｅｒ_ｂｌｋｄｅｖ（６０）１８６を使用して登録解除される。図５は本発明のＮＡＤディバイスドライバーが既存のブロックディバイスドライバーと同様な方式で装着されることを示す。
【００３４】
ブロックディバイスの使用
ブロックディバイスドライバーが登録され、ディバイスファイルが生成されると、リアルディバイスに接近するためのリードとライトが行なわれる。しかしながら、ユーザーはディバイスファイルがファイルシステムにマウントされて初めて直接に送信が可能である。ディバイスファイルがファイルシステムにマウントされる前に各ブロックディバイスファイルは特殊ファイルシステムでフォーマットされなければならない。本発明のＮＡＤディバイスドライバーは、通常の地域ディスクと同様な方式で用意されたので、通常の地域ディスクのフォーマット時に使用されるＩ／Ｏ命令のセットがＮＡＤディバイスのディスクのフォーマット時にもまた使用されえる。更に、ＮＡＤディバイスがディバイスレベル内で制御されるので、使用されたファイルシステムと独立した必修形式にフォーマットされえる。
【００３５】
図６はディレクトリ、ディバイスファイル、ディバイスドライバー、そして、ディバイスの間の関係を示す。左側はディレクトリ２００にマウントされたディバイスファイル２０１が地域ディスクディバイスドライバー２０２によって地域ディスク２０３を制御するのに使用される通常の地域ディスクシステムを取り付けたことを示す。右側は本発明のディレクトリ２００にマウントされたディバイスファイル２０４がＮＡＤディバイスドライバー２０５によってイザーネットのような地域領域ネットワーク（ＬＡＮ）２０６を通じてＮＡＤディバイス２０７を制御するに使用された本発明のＮＡＤシステムを示す。
【００３６】
ブロックディバイスドライバーの構造
各ブロックディバイスドライバーは、Ｉ／Ｏ要求をディバイスに保存するためのＩ／Ｏ要求待機の行列を有する。保存された要求は能率を向上させるために予定が変更されえる。Ｉ／Ｏ要求待機の行列を除いて、各ブロックディバイスドライバーは待機行列のＩ／Ｏ要求を実行させるための要求機能を必要とする。
【００３７】
図７は要求関数がブロックディバイスに直接に命令する状態を示す。ディバイス２２２とファイルシステム２２３を使用するＮＡＤディバイスドライバー２２０は、Ｉ／Ｏ要求２２５から２２８まで保存した待機行列２２４を有する。
前記ＮＡＤディバイスドライバー２２０は最近に実行された要求２２５によってＮＡＤディバイス２２１に命令を下る要求関数２２９を有する。
【００３８】
図８は前記要求関数２２９が直接に命令を下る代わりに、ディバイス接近スレード２３０を始動させて、要求待機行列の情報に基づく命令を下る状態を示す。一つのスレードとは複数のユーザーを処理可能なプログラムの一回使用のことを云う。
【００３９】
地域ディスクシステムとＮＡＤシステムの構成
図９は通常的な地域ディスクシステムと、ＵＮＩＸで運営されるＮＡＤシステムの構成を示す。ファイルシステム２６０では地域バス２６３に取り付けられた通常的な地域ディスク２６４が、通常の地域ディスクディバイスドライバー２６１によってバスインターフェース２６２を通じてアクセスされる。上記のようなファイルシステム２６０では、ネットワーク２７１に取り付けられたディスク２７３を有したＮＡＤディバイス２７２がＮＡＤディバイスドライバー２６５によってネットワークプロトコルスタック２６６、ネットワークアダプターディバイスドライバー２６７、バスインターフェース２６８とネットワークアダプター２７０を含むネットワークインターフェースを通じてアクセスされる。
【００４０】
ＮＡＤディバイスは地域ディスクのように使用されるので、通常の地域ディスクシステムと、本発明のＮＡＤシステムとはその基本構造を共有する。相違点として、ＮＡＤシステムは、ネットワークを通じてＮＡＤディバイスと通信されるべきなので、ネットワーク通信のためにプロトコルスタックが加えられる。前記ＮＡＤドライバーは、Ｉ／Ｏ命令をネットワークアダプターを通じてＮＡＤディバイスに伝達し、前記ＮＡＤディバイスから返信を受ける。
【００４１】
ＮＡＤディバイスがアクセスされたとき、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）、又はＰＩＯ（Ｐｒｏｇｒａｍｍｅｄ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）が使用されえる。通常のディスクディバイスドライバーは、ＤＭＡモードで開始バッファアドレスやバイト伝達数と共にＤＭＡＩ／Ｏ命令を地域ディスクにおろすことで作動する。  地域ディスクデータの伝達を受け、ＣＰＵを遮断する。同様に、ＮＡＤディバイスドライバーは、ＮＡＤディバイスドライバーがＩ／Ｏ命令をＮＡＤディバイスに伝達し、データ伝達を完了した後、ＣＰＵを横切るようにしてＤＭＡモードで作動するように実現されえる。
【００４２】
通常的なディスクドライバーは、ディスクディバイスのデータ登録を通じて特定のデータブロックが行われるまでデータを直接に伝達するＣＰＵによってＰＩＯモードで作動する。同様に、ＮＡＤディバイスドライバーがＮＡＤディバイスに命令を伝達し、特定のブロックのデータが行われるまで伝送と輸送を続けることで、データＰＩＯモードで作動するように実現されえる。
【００４３】
本発明で使用されえるネットワークプロトコルは特定のプロトコルに限られない。ＴＣＰ／ＩＰを含む如何なる接続志向プロトコルでも構わない。接続志向プロトコルはパケットを損失せず伝送される順序通りに収容する。仮に、ＴＣＰ／ＩＰが使用された場合、一つのＩＰアドレスは各ＮＡＤディバイスのために使用されるべきである。
【００４４】
地域ディスクドライバーとＮＡＤドライバーの生成
ＵＮＩＸが作動を始め、仮に、ハードウェアスキャンがある一般的な地域ディスクを発見する場合、該当するドライバーが地域ディスク単位やディスク分割単位で生成される。同様の方法で、初期ハードウェアスキャンでＮＡＤディバイスが確認され、仮想のホストバスアダプターで行う該当ドライバーが生成される。前記ドライバーは、ネットワークに取り付けられたＮＡＤディバイスを周期的に確認するディバイス探索スレードを使用して自動的に生成されるか、又はＮＡＤ管理プログラムを使用するシステム管理によって手動的に生成されえる。
【００４５】
図１０は取り付けられたＮＡＤディバイスを確認するか、ＮＡＤディバイス情報をＮＡＤディバイス管理プログラムに提供するためのディバイス探索スレードを示す。スレード２８０は、ホスト２９０で情報２８１をＮＡＤディバイス管理プログラムに提供するための各ＮＡＤのサイズと、ディバイスファイルとを共にＮＡＤディバイス２８５から２８９を確認するためにネットワークプロトコルスタック２８２と、ネットワークアダプター２８３を通じて運営される。ＮＡＤディバイスファイルに関する情報があれば、ユーザーは特定のＮＡＤディバイスを地域ディスクとして使用するために選択されたＮＡＤディバイスファイルをマウントする。
【００４６】
ＮＡＤディバイスドライバーとＮＡＤディバイスとの間のネットワーク接続
通常の地域ディスクにおいてディスクＩ／Ｏは、内部のシステムバスに取り付けられたディスク制御機のＩ／Ｏポートにリードやライトを行うことで実行される。しかしながら、ＮＡＤディバイスドライバーは、ネットワークリンクを通じて該当ＮＡＤディバイスに入／出力を実行する。Ｉ／Ｏポートでリードやライトを行う代わりに、ＵＮＩＸのソケットのようなネットワーク連結部にリードやライトを行うことで入／出力が行われる。したがって、ＵＮＩＸソケットのようなネットワーク連結部は、ＮＡＤディバイスドライバーとＮＡＤディバイスとの間に備えられるべきである。
【００４７】
図１１Ａ及び図１１ＢはＮＡＤディバイスドライバーと連結セッティングスレードを使用する該当ＮＡＤディバイスの間に位置したネットワーク連結部の例を示す。１番ＮＡＤディバイス３０２は、ｉｏｃｔｌ()関数３０４で生成された１番ネットワーク連結部３０３を通じて１番ＮＡＤディバイスドライバー３０１に連結され、２番ＮＡＤディバイス３０７は、ｉｏｃｔｌ()関数３０９により生成された２番ネットワーク連結部３０８を通じて２番ＮＡＤディバイスドライバーに連結される。
【００４８】
ＮＡＤドライバーの実現
図１２及び図１３はＮＡＤディバイスを実現する二つの方法を示しており、前者はディバイスアクセススレードを有して実現するもので、後者はディバイスアクセススレードを有せずに実現するものである。
【００４９】
図１２は１番ＮＡＤディバイス３２３、２番ＮＡＤディバイス３２４、３番ＮＡＤディバイス３２５にアクセスするための"／ｄｅｖ／ｎｄ０"、 "／ｄｅｖ／ｎｄ１"、 "／ｄｅｖ／ｎｄ２"のディバイスファイルを有した三つのＮＡＤドライバー３２０，３２１，３２２を示す。各ディバイスファイルはファイルシステムの"／ｔｍｐ"、 "／ｖａｒ"、 "／"ディレクトリにマウントされる。前記ファイルをアクセスするためのユーザースレード３２７，３２８と３２９は、ファイルシステム３２６を通じてＮＡＤディバイスにリードやライトを行える。連結セッティングスレード３３１は、ＮＡＤディバイス管理プログラム３３０が使用可能なＮＡＤディバイスの目録を提供する。
連結セッティングスレード３３１は、必要であればネットワーク連結部３３２，３３３、３３４をユーザーの入力に基づいて生成する。
【００５０】
図１２を参照すると、ユーザースレードがファイルシステムを通じてファイルを要求した時、前記ファイルシステムは、最初に、要求されたファイルブロックがバッファ内にあるかを確認するためにバッファキャッシュを点検する。ブロックがバッファ内にあれば、前記ユーザースレードはそのブロックを引用する。しかし、ブロックがバッファ内にない場合は、データはＮＡＤディバイスからリードされるべきである。ユーザースレードは要求を要求待機行列におき、ＮＡＤディバイスの制御を管轄するＮＡＤアクセススレード３３５（又は３３６，３３７）を要求関数を通じて実行させると、前記ユーザースレードはそれ自身をブロックする。その後、ブロックされた前記ユーザースレードは、３３５のような該当データーを収容するＮＡＤアクセススレードによって呼び起こされる。
【００５１】
図１３はユーザースレードがデータをＮＡＤアクセススレードを使用せずにＮＡＤディバイスから直接に要求することを除いては図１２と同様である。
例えば、ユーザースレードは要求を要求待機行列におき、ＮＡＤディバイスとホストとの間のブロックデータ伝送を処理するソフトウェアインタラプトを実行してそれ自身をブロックする。データ伝送が完了すると、インタラプトがブロックされたスレードを呼び起こすために実行される。
【００５２】
ホストとＮＡＤディバイスとの間の通信制御手続き
ホストＮＡＤディバイスドライバーがＩ／ＯのためのＮＡＤディバイスをアクセスするとき、一番目のブロックの位置やブロックの番号がＩ／Ｏ命令の媒介変数として与えられる。或いは、ＳＣＳＩの場合、Ｉ／Ｏ命令はＣＤＢ（Ｃｏｍｍａｎｄ  Ｄｅｓｃｒｉｐｔｏｒ  Ｂｌｏｃｋ）形態で可能である。
【００５３】
ＣＤＢやブロック伝送情報を伝送するためには確実な通信制御手続きが必要である。本発明は、ＴＣＰ／ＩＰを含む連結志向制御手続きが使用されていれば、ある特定の種類の連結制御手続きに制限されることはない。連結志向制御手続きとは、パケットを失った場合に再伝送され、収容されたパケットは収容部の終わりから送られた順序通りに整列されることを云う。
【００５４】
ＮＡＤディバイス
図１４は本発明のＮＡＤディバイスの機能中心のブロック図である。
ＮＡＤディバイスの好ましい実施形態は、全体のＮＡＤディバイスを制御するＮＡＤ制御機４０１、メモリ４０２、ディスクアクセス命令を移行するディスク制御機４０３、一つ以上のディスク４０５、４０６と、ネットワークを通じてホストからディスクアクセス命令を受けるＬＡＮアダプター４０３とを含めてなる。前記ＮＡＤ制御機４０１、メモリ４０２、ディスク制御機４０３とＬＡＮアダプター４０４はＮＡＤディバイスの内部のバス４１９に連結されている。
【００５５】
ディスク制御機４０３は内部のディスクチャンネルを通じてディスク４０５と４０６を制御することで、ディスクＩ／Ｏ動作を行うモジュールである。ディスク制御機４０３は、チャンネル制御機４０９により制御される一つ以上のディスクチャンネル４０７、４０８と、バッファ管理器４１０と、幾つかの登録器４１１と、バスインターフェース４１２とをさらに含めてなる。前記バッファ管理器４１０は、ディスクセクター番号と、ディスクアクセス命令を行うチャンネルを獲得するために登録器４１１を調査する。前記バッファ管理器４１０はまたデータをメモリからディスクチャンネル４０７、４０８に伝達するために前記チャンネル制御機４０９に命令するか、又はディスクアクセス命令を行なった結果としてこれと反対に命令する。前記チャンネル制御機４０９は、事実上データをディスクからメモリに、或いはこれと反対に伝達するためにディスクチャンネル４０７、４０８を通じて前記ディスクをアクセスする。
【００５６】
前記ＬＡＮアダプター４０４は、ディスクＩ／Ｏ命令パケットをホストから受け、返信パケットをネットワークを通じて伝達するモジュールである。ＬＡＮアダプター４０４は、ネットワークと接触する物理ネットワークインターフェース４１３、ＭＡＣ（ｍｅｄｉａ  ａｃｃｅｓｓ  ｃｏｎｔｒｏｌ）制御機４１４、伝送されたデータを保存するための伝送バッファ４１５、伝送されたデータを保存するための収容バッファ４１６、登録器４１７とバスインターフェース４１８をさらに含めてなる。
【００５７】
前記バスインターフェース４１８は、バスから前記伝送バッファ４１５、前記収容バッファ４１６、前記登録器４１７に、或いはこれと反対にデータを伝送する。前記ＭＡＣ制御機４１４は物理ネットワークインターフェース３１３にデータを伝送して、前記物理ネットワークインターフェースが前記ホストコンピューターにデータを伝送できるようにする。前記物理ネットワークインターフェース４１３がディスクＩ／Ｏ要求パケットを前記ホストコンピューターから受けると、前記物理ネットワークインターフェース４１３は前記Ｉ／Ｏ要求パケットを前記ＭＡＣ制御機４１４に送り、前記ＭＡＣ制御機は前記パケットから必要なデータを取り出し、そのデータを収容バッファ４１６に送る。
【００５８】
図１５は前記ＮＡＤ制御機４０１がＮＡＤを制御するための主制御機４２０、データをディスク４２１に保存するためのバッファ管理モジュール４２１、メモリ空間の割当を管理するためのメモリ管理モジュール４２２、ディスク制御機と接触するためのディスク制御機ドライバー４２３、ネットワークアダプターと接触するためのネットワークアダプタードライバー４２４、ＮＡＤ内のバスと接触するためのバスインターフェース４２５を含めてなる。
【００５９】
ＮＡＤ制御機４０１は主にホストのＮＡＤディバイスドライバーからのＩ／Ｏ命令を行うが、他の付加機能を行うこともある。例えば、フィルタープログラムはバックアップ演算のようなホストに提供されない役割を提供するためにＮＡＤに装着されえる。他の例として、アクセス制御、アクセス共有、アクセス権利伝送などが含まれる。特に、フィルタープログラムは、ＮＡＤディバイスへのアクセスを特定の期間まで制限するか、幾つかのホストが同時に一つのＮＡＤにアクセスするか、又はあるホストのアクセス権利を他のホストに伝達できるように装着されえる。前記ホストにあるＮＡＤディバイスドライバーはＵＮＩＸオペレーティングシステムでｉｏｃｔｌ()関数を通じてＩ／Ｏ命令実行時にフィルタープログラムを行うように要求できる。
【００６０】
図１６は前記主制御機４２０により使用された状態マシン（state machine）の状態転換を簡単に示す図面である。前記状態機械は'ｉｎｉｔ'状態４４０で前記全てのＮＡＤハードウェアを初期設定し、前記ディスク制御機４０３と前記ＬＡＮアダプター４０４にメモリを割り当てる。初期化設定が終わると、前記状態機械はＮＡＤシステムがホストからネットワークを通じて流入するＩ／Ｏ命令を待つ'ｗａｉｔ−ｃｏｍｍａｎｄ'状態に転換する。上記のようなＩ／Ｏ命令が前記ホストコンピューターから収容されると、前記状態は適切なディスクＩ／Ｏがディスク制御機を介して行われる'ｄｉｓｋ_ａｃｃｅｓｓ'状態４４２となる。ディスクＩ／Ｏが終わると、前記状態はＮＡＤディバイスがその結果をＬＡＮアダプター４０４を介して前記ホストコンピューターに送る'ｔｒａｎｓｍｉｔ_ｒｅｐｌｙ'状態４４３に転換する。従来の技術における通常の知識を有する者であれば前記状態機械がＣＰＵとメモリで容易に実現されえることが理解可能であろう。
【００６１】
ネットワークアダプタードライバーとディスク制御ドライバー
前記ネットワークアダプターとディスク制御ドライバーは、少なくとも二つの方法で実現されえる。一方はＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）を通じた遮断寸法を使用し、他方はＰＩＯ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉ／Ｏ）による投票を使用することである。前者は容易にプログラムが作れるという長所があり、ディスク制御機データの完全な配置がなくても行える。後者は中断による時間の遅延を避けられるという長所がある反面、持続的なリードやライトにかかる時間でプロセッサーが非能率的に使用されるという短所がある。
【００６２】
ＮＡＤドライバーの付加実施例
一般に、ＮＡＤディバイスドライバーは、取り付けられた各ディスク装置のために生成される。しかし、地域ディスクが分割されるように、ＮＡＤディバイス内のディスクは、別途のディバイスドライバーによってアクセスされえる幾つかのディスク区画に分割される。選択的には物理的に独立された幾つかのＮＡＤディバイス内に位置した幾つかのディスクが論理上一つのディスクとして使用されるために結合されえる。
【００６３】
図１７はＮＡＤ内のディスクが全ての上記区画に一つのディスクドライバーが割り当てられた幾つかのディスク区画に分けられる例を示す。ＮＡＤドライバーＡ４６２は、例えば、四つの区画４６３−４６６に割り当てられ、ＮＡＤドライバーＡ４６２がＮＡＤディバイス４６０内のディスク４６１の特定の分割４６８から４７１まで指示されたＩ／Ｏ要求を処理するために分割表を引用する。同様に、ＮＡＤドライバーＢ４７３が二つの区画４７４と４７５に割り当てられ、ＮＡＤドライバーＢ４７３がＮＡＤディバイス４６０内のディスク４７２の二つのディスク区画４７７と４７８を制御するために使用されえる。
【００６４】
図１８は別途のＮＡＤディバイスドライバーが生成され、物理的に一つのディスクが他のファイルシステムにより評価される例を示す。ＮＡＤディバイス４８０内のディスクＡ４８１は、４９０から４９３までの四つの区画に分割され、独立した四つのＮＡＤドライバー（ａ，０）４８２からドライバー（ａ，３）４８５が生成されると、各ＮＡＤドライバーは独立したネットワーク連結４８６（４８７，４８８、又は４８９）を通じて各ディスク分割を制御できる。同様に、ＮＡＤディバイス４８０内のディスクＢ４９４が二つの区画４９９と５００に分けられ、独立した二つのＮＡＤドライバー（ｂ，０）４９５と、ＮＡＤドライバー（ｂ，１）４９６が生成され、各ＮＡＤドライバーを各ディスク区画を独立したネットワーク連結４９７（又は４９８）を通じて制御できる。他のネットワーク連結が使用されるので、かかる構成は物理的に一つのハードディスクが他のファイルシステムにマウントされることを可能とする。
【００６５】
図１９は本発明がどの様にＮＡＤディバイス内の物理的に独立した多端子のディスクを一つのディスクとして認識できるかの例を示す。特に、他のネットワーク連結５２４，５２５、５２６を通じて５ＧＢの１番ＮＡＤディバイス５２７、１０ＧＢの２番ＮＡＤディバイス５２８と、５ＧＢの３番ＮＡＤディバイス５２９を制御する三つの下部面ＮＡＤディバイスドライバー５２１，５２２，５２３が形状５３０に分割された一つの上部面ＮＡＤドライバー５２０に一体化することを示す。ファイルシステムは２０ＧＢの全体空間をアクセスするために"／ｄｅｖ／ｎｄａ"をマウントする。
【００６６】
Ｗｉｎｄｏｗｓ運営システムで作動するＮＡＤシステム
ＵＮＩＸ系列のオペレーティングシステムで作動する例を使用して、以上で説明したシステム及びその方法は、Ｗｉｎｄｏｗｓ系列のオペレーティングシステムで作動するＮＡＤシステムを実現するにおいて同等に応用可能である。例えば、ＮＡＤディバイスは本質的にＷｉｎｄｏｗｓ２０００ホストによって地域ディスクとして取り扱われるので、ホストにより行われるフォーマットや分割を含む全てのディスク演算は地域ディスクを制御し、ＮＡＤディバイスで行われえる。
【００６７】
かかる特徴は、本発明がホストシステムのディバイス面に個別のディスクを直接に付加する代わりに、ファイルシステムの仲裁によってディスク空間を増幅させるＮＡＳ技術により提供されるもののような他の対案から差別化されるという点である。同時に、ＮＡＤディバイスがネットワークを通じてアクセスされるので、本発明は一般的な地域ディスクを使用した場合に、内部のシステムバスに連結されたディスク制御機に伝送されるディスクＩ／Ｏの要求をネットワークインターフェースに向け直して伝送する。
【００６８】
即ち、本発明はホストでドライバーを変更して純粋ソフトウェアを媒介に仮想のホストバスアダプターを生成するので、前記ホストは実際に前記システムバスに連結された物理ホストアダプターが存在しないが、ＮＡＤディバイスが物理ホストアダプターを通じてシステムバスに連結されたことを認識する。ＮＡＤディバイスはホストの内部のバスに連結された地域ディバイスのように接近するので、ホストがＮＡＤディバイスと通信するために必要なＩＰアドレスのようなネットワークアドレスを使用する必要がない。その代わりに保存命令を有したデータリンクフレームがホストとＮＡＤディバイスとの間で交換される。
【００６９】
図２０Ａ及び図２０Ｂは本発明のＮＡＤシステムのディスクドライバーの階層構造を通常のディスクシステムと比較して示す図面である。図２０Ａはディスク分割管理器６０１、ディスククラスドライバー６０２、ポートドライバー６０３、バスドライバー６０４を含む階層構造からなるＷｉｎｄｏｗｓ２０００の通常的なディスクドライバーの階層を示す。
【００７０】
Ｗｉｎｄｏｗｓ２０００オペレーティングシステムで総称的な用語'ｂｕｓ'はディバイスと電気的に連結される単一のハードウェアを言う。前記バスはＰＣＩバスのようなものだけでなく、ＳＣＳＩアダプター、水平ポート、シリアルポート、ＵＳＢハーブのような多端子ディバイスを有するものであればどれにも含まれる。バスドライバーの目的の一つは、バスに取り付けられたディバイスを一つひとつ並べ、それぞれの物理ディバイス客体を生成することであり、これは、それぞれの物理ディバイス客体がＷｉｎｄｏｗｓ２０００で必要であるからである。したがって、バスドライバーは特定のバスに関する情報とポートアドレスとＩＲＱ番号のようなシステム資源をバスに連結されたディバイスに割り当てる機能を有したソフトウェアルーチンの集合である。大部分の実際のディスクＩ／Ｏの演算を行うためのルーチンを有しているものは前記ポートドライバーである。
【００７１】
本発明の主要な特徴として、通常のバスドライバーとポートドライバーを新たなバスドライバーとポートドライバーに代替して、ＮＡＤディバイスを地域ディスクのように認識し、Ｗｉｎｄｏｗｓ２０００ホストのネットワークポートを通じてＮＡＤディバイスに関するＩ／Ｏ演算が行われえる。
【００７２】
図２０Ｂは図２０Ａの該当通常Ｗｉｎｄｏｗｓ２０００ドライバー階層を代替するＮＡＤポートドライバー６１３と、ＮＡＤバスドライバー６１４を有する本発明のドライバー階層を示す。ＮＡＤバスドライバー６１４は仮想のホストバスアダプターを実現し、それによってＮＡＤディバイスの一セットに対する、又はそのセットからのディスクＩ／Ｏ演算が行われる。ＮＡＤポートドライバー６１３は、Ｗｉｎｄｏｗｓ２０００ホストのネットワークを通じてＩ／Ｏ要求をＮＡＤディバイスに向け直して伝達することで、実際にディスク乳出力演算を行なうに必要な一つのセットのルーチンを実現する。
【００７３】
図２１は本発明のＮＡＤディバイスが多端子ホストに実現されたネットワーク環境の一例を示す。前記例は１番ホスト６２１と２番ホスト６２２が１番ネットワーク６２３と２番ネットワーク６２４に連結されたＷｉｎｄｏｗｓ２０００を作動させることを示す。１番ホストは１番ネットワークを通じてディスク（１，１）６３１とディスク（１，３）６３３を使用し、２番ネットワーク６２５を通じてディスク（２，１）６３６とディスク（２，２）６３７を使用する。同様に、２番ホストはディスク（１，２）６３２、ディスク（１，４）６３４と、ディスク（１，５）６３５を使用する。
【００７４】
ＮＡＤバスドライバーとＮＡＤポートドライバーが装着されたＷｉｎｄｏｗｓ２０００システムは、Ｉ／Ｏ要求を行うために、Ｗｉｎｄｏｗｓ２０００で指定したディバイススタックを作る。Ｗｉｎｄｏｗｓ２０００内の各ディバイスは、スタック構造で編成されるディバイス客体に表現される。前記ディバイス客体は、Ｗｉｎｄｏｗｓ２０００システムがソフトウェアのハードウェア管理を助けるために作るデータ構造である。このような多数のデータ構造は、一つの物理ハードウェアのために存在しえる。スタックの下位ディバイス客体は物理ディバイス客体ＰＤＯと呼ばれる。ディバイス客体スタックのＰＤＯ上には機能ディバイス客体ＦＤＯと呼ばれる客体がある。前記ＦＤＯの下や上にはフィルターディバイス客体の集合がある。Ｗｉｎｄｏｗｓ２０００のプラグアンドプレイ（ＰｎＰ）管理構成要素は、ディバイスドライバーの命令でディバイス客体のスタックを建設する。単一のハードウェアのためのスタックを使用する多様なドライバーはそれぞれ異なる役割をはたす。つまり、前記機能ドライバーはディバイスを管理し、前記バスドライバーはディバイスとコンピューターとの連結を管理する。
【００７５】
図２２は本発明を実現するために生成された全てのフィルターディバイス客体が単純化のために省略されたディバイススタックの例を示す。
左側に示すのはＰＣＩバスの上部にある、繰り返して列挙されるＳＣＳＩディバイスの一層であって、ＳＣＳＩディスクがホストのＰＣＩバスに連結された場合の典型的な形態である。第一に、ＰｎＰ管理器は、コンピューターを電気的に自分の存在を知らせないＰＣＩのようなハードウェアバスを含む全てのハードウェアに概念的に連結する、仮想のルートバスのための内装型ドライバーを有する。前記ルートバスドライバー６４０は、ＰＣＩバスのためのＰＤＯのＰＣＩバスＰＤＯ６４１を生成するために、ＰＣＩに関する情報をＷｉｎｄｏｗｓ２０００設定プログラムにより初期化された登録器から得る。
【００７６】
ＰＣＩバスＰＤＯ６４１を生成したＰｎＰ管理器は、機能ドライバーをＰＣＩバスのために積載し、ＰＣＩバスＦＤＯ６４２を作る。図２１で例に挙げたシステムで一セットのＳＣＳＩディバイスを有しているものと見られるＰＣＩバスの機能ドライバーは、ＳＣＳＩポートＰＤＯ６４３を作るためにＰＣＩバスに取り付けられた、それ自体のハードウェアディバイスを列挙する。ＳＣＳＩポートＰＤＯ６４３が作られると、ＰｎＰ管理器はＳＣＳＩポートディバイスのためのディバイスを積載して、ＳＣＳＩポートＦＤＯ６４４を作る。同様に、６４５と６４６のようなＳＣＳＩディスクＰＤＯはＳＣＳＩポートの上部で各個別のＳＣＳＩディスクが作られ、６４７と６４８のようなＳＣＳＩディスクＦＤＯはディスククラスドライバーを積載することで作られる。
【００７７】
図２１の右側に示すのは、ＰＣＩバスドライバーと、ＳＣＳＩポートドライバーを代替するＮＡＤバスドライバーと、ＮＡＤポートドライバーを使用して作られるＮＡＤディバイスのための該当ディバイススタックである。ルートの上部には、ＰＣＩのような通常のハードウェアバスではないＮＡＤバスのＰＤＯであるが、ＮＡＤディバイスのための仮想のバスを提供するためにＷｉｎｄｄｏｗｓ２０００ディバイススタックに合わせて考案されたバスのＮＡＤバスＰＤＯ６５１がある。ＮＡＤバスＰＤＯ６５１の上部ではＰｎＰ管理器がＮＡＤバスドライバーを積載することでＮＡＤバスＦＤＯ６５２を作る。
【００７８】
本発明で一セットのＮＡＤポートは、ホストの一つのＮＩＣに該当するように実現されるので、Ｗｉｎｄｏｗｓ２０００ホストの各個別ネットワークインターフェースカード（ＮＩＣｓ）のための一セットのＮＡＤポートＰＤＯ６５３と６５３４が繰り返して作られる。６５３と６５４のような各ＮＡＤポートＰＤＯの上部には、６５５や６５６のような各ＮＡＤポートＦＤＯがＮＡＤポートドライバーを積載することで作られる。実際にＮＡＤディスクＩ／Ｏ演算を行うものはＮＡＤポートドライバーである。前記ＮＡＤポートドライバーは、特定のＮＩＣを介してＩ／Ｏ演算の要求を前記該当ＮＡＤディバイスに向け直して伝送し、前記ＮＡＤディバイスからＩ／Ｏ演算の返信を得ることで、ＮＡＤディバイスＩ／Ｏ要求を処理する。すると、６５５や６５６のようなＮＡＤポートＦＤＯは、特定のＮＩＣで結合された特定のＮＡＤポートバウンドを通じて接近する個別ＮＡＤディアイスのために６５７，６５８，６５９と６６０のような個別的なＮＡＤディバイスＰＤＯｓを前記特定のＮＡＤポートの上部に作る。
【００７９】
図２２は図２１の例として、１番ホストが二つのＮＩＣを有するため、ＮＡＤポート客体の二つのスタック６５３と６５４が作られたことを示す。また、ＮＡＤディバイス、つまり、ディスク（１，１）６３１、ディスク（１，３）６３３、ディスク（２，１）６３６と、ディスク（２，２）６３７は、ＮＩＣ（１，１）とＮＩＣ（１，２）を通じて接近するので、１番ホストは６５７から６６０まで四つのＮＡＤディバイスを各ＮＡＤディバイス当り二つずつ有する。ＰｎＰ管理器は、６５７、６５８、６５９と６６０のような各個別ＮＡＤディバイスＰＤＯのために、６６１，６６２，６６３と、６６４のようなＮＡＤディバイスＦＤＯを作るディスククラスドライバーを積載する。
【００８０】
雄一のＮＡＤバスドライバーとＮＡＤポートドライバーは、通常的な地域ディスクのためのＮＡＤディバイスを代替するために、通常のバスドライバーとＳＣＳＩポートドライバーを代替することに留意する。ディスククラスドライバーとＷｉｎｄｏｗｓ２０００の他の上位ドライバーは、Ｗｉｎｄｏｗｓ２００システムがＮＡＤディバイスを地域ディバイスのように認識できるようにするために、単一の変化なしに元通りに維持すべきである。
【００８１】
Ｗｉｎｄｏｗｓ２０００でディバイスに影響を与える演算のための各要求は、Ｉ／Ｏ要求パケット（ＩＲＰ）を使用する。ＩＲＰは前記ディバイスのためのスタックの最上部に送られ、前記スタックを他のディバイスに伝えることができる。各段階で、前記ドライバーはＩＲＰで何をするかを決定する。時として、前記ドライバーはＩＲＰを伝達する他に何にもしないこともある。前記ドライバーはＩＲＰを伝達せずに完璧に処理するか、又はＩＲＰを実行して伝達しえる。ディスクＩ／Ｏの場合を例えにすると、図２０Ｂに示すように、ファイルシステムドライバーに送られた一つのファイルＩ／Ｏのための一つのＩＲＰはディスククラス分割管理器のボリューム管理器、分割管理器、そして、ディスククラスドライバーに送られる。
【００８２】
ＳＣＳＩ要求ブロック（ＳＲＢ）が必要であれば、ＩＲＰに含まれるように作られる所が前記ディスククラスドライバーである。一つのＳＲＢはＳＣＳＩディバイスＩ／ＯのためにＷｉｎｄｏｗｓ２０００内で指定された一つのデータ構造である。もしも、ＩＲＰが通常の地域ディスクのためのものであれば、ディスククラスドライバーは新たなＩＲＰを実際のディスクＩ／Ｏ演算を行うＳＣＳＩポートドライバーに伝達する。もしも、ＩＲＰがネットワークに連結されたＮＡＤディバイスのためのものであれば、ディスククラスドライバーはＩＲＰを、ＮＡＤディバイスＩ／Ｏをネットワークインターフェースを通じて完成するＮＡＤポートドライバーに伝達する。
【００８３】
地域ディバイスやＮＡＤディバイスやディスクの特有なディバイスタイプと関係なく、図２０Ａ及び図２０Ｂに示すように、地域ディスク、又はネットワークに取り付けられたディスクのうち、特定のあるディスクのための一つのＩＲＰは結局該当ディスクに送られるが、これは別途のディスク客体スタックが各個別ディスクのために作られるからである。図２２は別途のＳＣＳＩディスクＦＤＯ／ＰＤＯと、ＮＡＤディバイスＦＤＯ／ＰＤＯがそれぞれの個別地域ディスクとＮＡＤディバイスに結合されたことを示す。
【００８４】
本発明は、図２０Ｂに示すように、通常のディスクバスドライバーとポートドライバーを新たなＮＡＤバスディバイスとポートディバイスに代替して、ＷｉｎｄｏｗｓシステムがＮＡＤディバイスを地域ディスクに認識するようにする。
【００８５】
全てのＷｉｎｄｏｗｓ２０００ディバイスドライバーは各ディバイスのためのＦＤＯを作るか除去する機能と、ドライバー層上から伝達されるＩＲＰを処理するためのディスパッチ機能とを有している。ＩＲＰにある主機能番号や副機能番号はどんなディスパッチ機能を発動させるかを決める。
【００８６】
次は、Ｗｉｎｄｏｗｓ２０００のＮＡＤシステムを実現するために本発明のＮＡＤバスドライバーとポートドライバーに実現された実際のソフトウェアモジュールを説明する。
【００８７】
ＮＡＤバスドライバー
ＮＡＤバスドライバーはＮＡＤポートが取り付けられ、一つのホストの個別ＮＩＣがＮＡＤポートとして認識される仮想のホストバスアダプターを実現する一セットのソフトウェアモジュールである。ＮＡＤバスドライバーの機能は、基本的にＷｉｎｄｏｗｓ２０００の通常のＰＣＩバスドライバーの機能と同一である。ＮＡＤバスドライバーは、ホストコンピューターに装着されたＮＩＣの数を調べ、存在するそれぞれのＮＩＣのためのＮＡＤポートＰＤＯを作るために、前記ＮＩＣを一つひとつ列挙する機能を行う。また、一つのＮＡＤポートを製作、開始、停止、除去する機能を行う。前記ＮＡＤシステムでは個別ＮＩＣが独立的なＮＡＤポートとして見なされ、ＮＡＤディバイスのためのＮＡＤディスクポートが独立的に運営されるネットワーク装置の数によって作られる。図２２に示す見本の構成を見れば分かる。
【００８８】
ＮＡＤバスドライバーと通常のＰＣＩバスドライバーとの相違点は、ＮＡＤバスドライバーがホストのシステムバスから物理的には独立しているが、ネットワークポートを通じて連結されているＮＡＤディバイスのためのものであるという点でる。ハードウェアの遮断によってディバイスをハードウェアバスに連結または除去する通常のＷｉｎｄｏｗｓ２０００システムと異なり、ＮＡＤバスドライバーはＮＡＤバスにＮＡＤポートを装着または除去するためにカネルスレードを作って実現される。ＮＡＤバスドライバーにより作られた前記カネルスレードは主関数番号ＩＲＰ_ＭＪ_ＰＮＰと、副関数番号ＩＲＰ_ＭＮ_ＳＴＡＲＴ_ＤＥＶＩＣＥを有したＩＲＰがＰｎＰ管理器からＮＡＤバスＦＤＯに伝達されるときに作動し始める。前記スレードはＮＡＤバスＦＤＯが除去されたときに終了する。前記スレードは周期的にＮＩＣの存在を探索する。仮に、新たなＮＩＣが探索された場合、前記スレードは前記ＮＩＣのための新たなＮＡＤポートＰＤＯを作り、新たに作られたＮＡＤポートＰＤＯを自体のＮＡＤポートＰＤＯリストに含ませる。すると、前記スレードはシステムにより認識されるＮＡＤポートＰＤＯを有するためにＰｎＰ管理器を発動させる。前記スレードが前に作られたＮＡＤポートＰＤＯが該当ＮＩＣなしに前記リストから発見されるＮＩＣの不在を探知可能であるので、ＮＩＣの削除もスレードにより探知される。仮に、ＮＩＣがホストで削除されたことが見つけられると、スレードは該当ＮＡＤポートＰＤＯをリストで削除し、ＮＡＤポートをＷｉｎｄｏｗｓシステムで削除するためにＰｎＰ管理器を発動させる。
【００８９】
ＮＡＤバスドライバーに実現されたソフトウェアルーチンは５つの種類に分けられる。下の表はＮＡＤバスドライバーで実現される幾つかのルーチンの目録を作成したものである。
【００９０】
【表４】
2004527817.tif 000006
【００９１】
【表５】
2004527817.tif 000007
【００９２】
【表６】
2004527817.tif 000008
【００９３】
【表７】
2004527817.tif 000009
【００９４】
【表８】
2004527817.tif 000010
【００９５】
ＮＡＤポートドライバー
ポートドライバーはシステム決定ディバイス制御要求、又は該当クラスドライバーからのドライバー決定ディバイスＩ／Ｏ制御要求に対応する下位ドライバーである。ＮＡＤポートドライバーはドライバーを初期に設定し、ＮＡＤポートＦＤＯを作る基本関数機能と、ディスククラスドライバー層から伝達されるＩＲＰを処理するためのディスパーチ関数機能が可能である。ディスククラスドライバー層から伝えられるＩＲＰは実際のＩ／Ｏ命令がＳＣＳＩディバイスで行われ得るように指定するＳＣＳＩ要求ブロック（ＳＲＢ）を含む。
【００９６】
表９及び表１０はその基本的な役割が前記説明されたＮＡＤバスドライバーのそれと同一な基本関数と、幾つかのディスパッチ関数を詳細な説明と共にリストで作成したものである。
【００９７】
【表９】
2004527817.tif 000011
【００９８】
【表１０】
2004527817.tif 000012
【００９９】
Ｗｉｎｄｏｗｓ２０００ではディバイスＩ／Ｏ制御命令がＩＲＰにディバイスＩ／Ｏ制御番号に含まれ、ディバイスＩ／Ｏ制御関数が該当ディバイスＩ／Ｏ制御番号を取り扱うためのポートドライバーで実現される。
【０１００】
Ｗｉｎｄｏｗｓ２０００の通常のディバイスＩ／Ｏ関数を除いて、付加ディバイスＩ／Ｏ制御関数がＮＡＤポートドライバーで実現されるので、前記ＮＡＤはＷｉｎｄｏｗｓシステムの作動を止めず、逆動的に付加、又は除去される。地域ディスクは物理ハードウェアバスに物理的に連結されているので、通常の地域ディスクを有した地域ディスクの付加や制御はシステムを始動するときにＷｉｎｄｏｗｓシステムによって直接に探知される。したがって、地域ディスクのためのディスクPDOはシステムの始動時にハードウェアを遮断することで生成される。それで、通常的なポートドライバーは、システムの運営中にディスクディバイスのＰＤＯを付加、又は除去するための機能を有する必要がない。
【０１０１】
しかし、ＮＡＤシステムではＷｉｎｄｏｗｓ２０００システムの運営中にＮＡＤディバイスの付加や除去が起こりえる。したがって、新たに取り付け、又は除去されたディスクのためのディスクＰＤＯを生成または除去できる手段が必要である。
【０１０２】
本発明で実現されたディバイスＩ／Ｏ制御関数は、機動的なＮＡＤの付加や除去を次のように処理する。仮に、新たなＮＡＤハードウェアディバイスがネットワークに連結されていることを教えるディバイス制御ＩＲＰがＮＡＤポートＦＤＯに伝達されると、ＮＡＤポートＦＤＯはシステムがディスクを認識できるように新たなＮＡＤのためのＮＡＤディバイスＰＤＯを作る。ＮＡＤディバイスの除去のためにディスクを除去するディバイス制御ＩＲＰは、ＮＡＤポートＦＤＯに送られ、ＮＡＤポートＦＤＯによって進行される。
【０１０３】
ディバイスＩ／Ｏ制御ＩＲＰを処理するディスパッチ関数は次の表のように要約される。ディバイスＩ／Ｏ制御関数のNASPortFDoDeviceControl()、NADPortPluInDevice()とNADPortUnpluDevice()は、ＮＡＤの動的な付加や除去の目的のための本発明の特徴的な関数であることに留意する。
【０１０４】
【表１１】
2004527817.tif 000013
【０１０５】
図２３ＡはＷｉｎｄｏｗｓシステム２０００のＰＣＩバスのような通常のハードウェアバスに連結されたＳＣＳＩディスクに関するＩＲＰとＳＲＢ、及びＣＤＢの流れを示す。ディスククラスドライバー６８１はＳＣＳＩポートドライバー６８２にＳＲＢを有したＩＲＰを伝える。前記ＳＲＢは要求されたＩ／Ｏに関する情報やＳＣＳＩ−２標準命令を含む命令記述者ブロックを含む資料構造体である。ディスククラスドライバーからＳＲＢを有したＩＲＰを受けると、ＳＣＳＩポートドライバー６８２とＳＣＳＩバスドライバー６８３は、ＳＣＳＩディスク６８５への実際のディバイスＩ／Ｏをやりとげるために、ＳＲＢから取り出されたＣＤＢをＳＣＳＩホストアダプターに伝達する。
【０１０６】
通常の地域ディスクにおいてディスクＩ／Ｏ命令はＳＲＢ資料構造体を用いてホストアダプターにあるディスク制御機に伝達される。しかし、本発明のＮＡＤシステムではディスクＩ／Ｏ命令がホストのＮＩＣに伝達される。
【０１０７】
図２３ＢはＮＡＤシステムのＩＲＰとＳＲＢ、及びＣＤＢ（又は、他の形態のＩ／Ｏ命令）の流れを示す。ディスククラスドライバー６９１がＩＲＰをＳＲＢと共にＮＡＤポートドライバー６９２と、ＮＡＤバスドライバー６９３とに伝達すると、ＮＡＤバスドライバー６９３は、ＳＲＢから取り出されたＣＤＢをネットワーク６９６を通じてＮＡＤディバイスで実際の装置Ｉ／Ｏを完遂するためのＮＩＣ６９４に伝達する。
【０１０８】
本発明でＮＡＤシステムはＳＣＳＩとＩＤＥを含む多様な形態のディスクを支援する。仮に、ＮＡＤディバイスがＳＣＳＩディスクのみで構成されていれば、ＣＤＢはホストＮＩＣに伝達され、ネットワーク取り付けのＳＣＳＩディスクは要求されたディスクＩ／Ｏを行う。
【０１０９】
仮に、ＮＡＤディバイスがＩＤＥのようなＳＣＳＩと異なる形態のディスクディバイスで構成されていれば、ＣＤＢは特定の装置で処理されえる命令に転換されるべきである。このような場合のＣＤＢの転換は前記ＮＡＤポートドライバ、又は前記ＮＡＤディバイスで行われる。仮に、転換がＮＡＤで行われると、Ｗｉｎｄｏｗｓ２０００ホストは単にＣＤＢをＳＣＳＩに送るようにホストＮＩＣに伝達する。仮に、ＮＡＤポートドライバーで転換が行われると、ＮＡＤポートドライバー関数はＣＤＢを特定のハードウェアディスク形態に適した一つのセットのディスクＩ／Ｏ命令に転換すべきである。
【０１１０】
本発明のＮＡＤシステムは二つの場合を共に支援し、ＣＤＢやハードウェア採択命令のような命令形態は特定のＮＡＤを設置するときに決定される。必修ＣＤＢ運営コードを有してＳＲＢを処理する幾つかのディスパッチ関数が与えられた表１２では、本発明の前記ＮＡＤポートドライバー関数がＳＲＢとＣＤＢを処理するためにどの様な方法で実現されているかを示す。仮に、ＮＡＤポートドライバーがＣＤＢを一つのセットのハードウェア採択Ｉ／Ｏ命令に転換すべきであればＳＲＢのような処理関数が必要である。
【０１１１】
【表１２】
2004527817.tif 000014
【０１１２】
ホストとＮＡＤとの間の通信
Ｉ／Ｏがバスではないネットワークを通じて行われるべきであるので、ＮＡＤシステム内のディスクＩ／Ｏ命令は地域ディスクホストアダプターの代わりにホストＮＩＣに伝達される。Ｗｉｎｄｏｗｓシステムは、ＮＤＩＳ（ｎｅｔｗｏｒｋ  ｄｒｉｖｅｒ  ｉｎｔｅｒｆａｃｅ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）を提供するが、ＮＤＩＳはネットワークドライバーインターフェースを規定する一種のタイプである。
【０１１３】
図２４はＷｉｎｄｏｗｓに定義されているＮＤＩＳドライバー階層で使用される高位プロトコルを指定するＮＤＩＳプロトコルドライバー７０１、ＮＤＩＳ仲裁ドライバー７０２、ハードウェアの指定のためのＮＤＩＳ小型ポート７０３、及びネットワークインターフェースカード（ＮＩＣ）７０４を含めてなる。
【０１１４】
本発明ではＮＡＤディバイスにＩ／Ｏ命令を伝達する全てのＮＡＤポートドライバー関数が前記命令をネットワークを通じてＮＡＤ装置に伝達するＮＤＩＳプロトコルドライバー階層に伝達するように実現される。
【０１１５】
ディスクＩ／Ｏ演算のためにＳＲＢを含むＩＲＰ、又は特定のディスクＩ／Ｏ演算のためのＩ／Ｏ制御命令をディスククラスドライバーから受けると、ＮＡＤポートドライバーは該当ＣＤＢを含む新たなＩＲＰをプロトコルドライバーに伝達する。その後、プロトコルドライバーはＳＣＳＩ−２標準Ｉ／Ｏ命令のＣＤＢをＮＡＤ装置に送り、ＮＡＤ装置からの返信を受けてＩ／Ｏ命令を処理する。ホストコンピューターがＣＤＢではない特定のハードウェアＩ／Ｏ命令を送るべき場合には、図２３Ｂに示すように、ＮＡＤポートドライバーはハードウェア指定命令を入れたＩＲＰをＣＤＢの代わりにＮＩＤＳプロトコルドライバーに送ることに留意する。
【０１１６】
ＮＤＩＳはネットワーク製造業者に伝送の透明性を提供するが、これはネットワークを通じた通信が要求される全てのドライバーはネットワークに接近するためのＮＤＩＳインターフェースを呼出さなければならないように作られているからである。したがって、本発明のＮＡＤ装置とホストコンピューターとの間での通信もこのような方式で行われることにより、ＮＤＩＳプロトコルドライバーを提供することで、ＮＡＤポートドライバーは通信に関しては別途の働きが必要ない。
【０１１７】
ＮＤＩＳプロトコルドライバーに実現される通信プロトコルは標準プロトコル、又は非標準プロトコルを採択することができる。ＩＰのような標準プロトコルはオーバーヘッドが伴うので、性能や保安上非標準プロトコルを使用することが好ましい。Ｗｉｎｄｏｗｓ２０００ホストとＮＡＤ装置との間で安定的にＮＡＤＩ／Ｏ命令を処理するための通信プロトコルを提供するために、本発明はＷｉｎｄｏｗｓ専売特許通信プロトコルを実現できる２０００ネットワークシステムのＮＤＩＳ指定に従う。
【０１１８】
ＮＡＤ装置
Ｗｉｎｄｏｗｓ系列の運営システムで作動するＮＡＤディバイスの技術的な構成は、図１４に示すＵＮＩＸ系列の運営システムで作動するＮＡＤディバイスの構成と同様である。
【０１１９】
ＮＡＳとＳＡＮに比べたＮＡＤシステムの長所
ＵＮＩＸやＷｉｎｄｏｗｓ系列の運営システムのうち一つを作動させる本発明のＮＡＤシステムは、ＮＡＳシステムとＳＡＮシステムに比べて多くの長所がある。ファイルサーバーを付加する方法としてファイル保存サービスを提供するＮＡＳシステムとは異なり、ＮＡＤ装置はホストのシステムバスに連結された地域ディスクのようにホストコンピューターに取り付けられる。ＳＡＮシステムと異なり、本発明のＮＡＤ装置は、ある特別なスイッチやネットワーク装置が付加されず、単にネットワークポートに刺して使用される。
したがって、ＮＡＤシステムはユーザーの便宜性、システムの有用性、範囲性、経済性、及び優れた性能を有する。
【０１２０】
フォーメッティング、分割、共有、マウンティングのような演算を含むディスクに関連した全てのディスク演算は、地域ディスクで行われるのと同様にＮＡＤ装置で行われえる。ＮＡＤ装置は、地域ディスクのようにホストで直ぐに使用可能であるので、管理が容易で使用上便利である。ＮＡＳシステムで追加、除去、及びディスク構成上の全ての変化は、人、又はソフトウェアを使用してＮＡＳオペレーティングシステムを通じてのみ可能である。ＮＡＤシステムは、更にディスクを装着し、除去するにおいて、ホストコンピューターのケースを開閉する必要がない優れた便宜性を提供する。
【０１２１】
ＮＡＤシステムはほぼ無制限の範囲性をディスク空間に提供する。ネットワークに取り付けられえるＮＡＤ装置の数は事実上無制限である。その反面、ＮＡＳシステムを通じるディスクの数は、経済的な理由や多数のＮＡＳサーバーを管理するのに伴う不具合のため相当に制限的である。
【０１２２】
ＮＡＳシステムは本質的にファイルサーバーソフトウェアや他の付加的な特定のハードウェア装備を使用しないため、ＮＡＳシステムやＳＡＮシステムに比べてさらに経済的である。
【０１２３】
媒体交換ＮＡＤシステム
本発明のＮＡＤシステムは媒介交換保存装置として代理実現されえる。
媒体交換保存装置は物理的に二つの部分に分けられた特別な保存装置だが、一方はデータを入れたメディアで、他方は媒体に関するＩ／Ｏ演算を行うドライバーである。フロピディスクドライバーとＣＤロームドライバーは媒体交換保存装置の例である。媒体の装着可否に関わらず、媒体交換保存装置はホストコンピューターに登録されることができ、ディスケットのような媒体がドライバーに逆動的に挿入されえる。
【０１２４】
ＮＡＤ装置が逆動的にネットワークポートにプラグインされるかネットワークポートから除去されえるので、ＮＡＤを媒介に使用する仮想ドライバーは媒体交換保存装置の形態で実現される。Ｗｉｎｄｏｗｓ２０００は媒体交換保存装置を実現するために交換機クラスドライバーモデルを提供する。媒体交換ＮＡＤシステムを実現するためにＮＡＤシステムのためのクラスドライバーがＷｉｎｄｏｗｓ２０００の交換機クラスドライバーのモデルに従って実現される。二つの下位ドライバー、つまり、ＮＡＤポートドライバーとＮＡＤバスドライバーはそのような媒体交換ＮＡＤシステムを実現するために使用される。
【０１２５】
変換機とカウンター変換機を使用する実施例
ネットワークインターフェースカード（ＮＩＣ）と新たなホストバスアダプターを使用する代わりに、本発明のネットワーク取付ディスクは、保存命令を入れたデータリンクフレームに変えて、フレームがネットワークを通じて伝達されるようにするプロトコル変換機をホスト面に提供し、装置面にはネットワークを通じて受けた保存命令を含むデータリンクフレームを保存命令に変換するカウンター変換機を設置することで実現されえる。
【０１２６】
変換機は専門的なネットワークインターフェースであるので、一般的な通信プロトコルを行うオーバーヘッドなしにネットワークを通じてＩ／Ｏ装置に伝送するためにＩ／Ｏ命令とデータをデータリンクフレームに要約する。
【０１２７】
テープシステムとＣＤジュークボックス
本発明のインターフェースを使用してネットワークに直接に連結される保存装置の種類はディスクシステムに限定されない。テープシステムとＣＤドライブは、ディスクシステムのようなバスインターフェースのＩＤＥ、又はＳＣＳＩインターフェースを使用する。例えば、本発明はＣＤジュークボックスの効果的な支出実現を可能にする多端子のＣＤドライブをネットワークに直接に連結するように使用されえる。
【０１２８】
当発明は、上記実施の形態に記載されたものであるが、それらの実施の形態を限定するものではない。発明の思想及び範囲から引き出されることのない上記実施の形態の構成、形態に対して多くの変更を行うことが可能であることが、当分野の通常の知識を有する者により理解される。
【図面の簡単な説明】
【０１２９】
【図１】本発明のネットワークが取り付けられたディスクシステムが使用されるネットワーク環境を示すブロック図である。
【図２】本発明の多端子ＮＡＤディバイスがネットワークを通じての多数のホストに接近する方法を示す図面である。
【図３】多端子ＮＡＤディバイスが多数のホストに接近する方法の一例を示す図面である。
【図４】ＮＡＤ内部の各ディスクがそれぞれ別途のディスクとして取り扱われる他の一例を示す図面である。
【図５】ブロックディバイスドライバー、特にＮＡＤディバイスドライバーがＵＮＩＸオペレーティングシステム下で登録、又は非登録される方法を示す図面である。
【図６】ディレクトリ、ディバイスファイル、ディバイスドライバーとディバイスとの関係を示す図面である。
【図７】要求機能が命令を直接にディバイスに伝達する方法を示す図面である。
【図８】要求機能がオペレーティングシステムを接近させる装置を作動させる図面である。
【図９】地域ディスクシステムと、ＵＮＩＸで運営されるＮＡＤディバイスのブロック図である。
【図１０】取り付けられたＮＡＤ装置を区別し、ＮＡＤ情報をＮＡＤ装置管理プログラムに提供するためにスレードを探す装置を示す図面である。
【図１１Ａ】ＮＡＤディバイスドライバーとＮＡＤ装置との間で連結セッティングスレードを用いて成されるネットワークの例を示す図面である。
【図１１Ｂ】ＮＡＤディバイスドライバーとＮＡＤ装置との間で連結セッティングスレードを用いて成されるネットワークの例を示す図面である。
【図１２】スレードを接近させる装置を用いてＮＡＤディバイスドライバーを実行させる手段を示す図面である。
【図１３】スレードを接近させる装置を用いずにＮＡＤディバイスドライバーを実行させる手段を示す図面である。
【図１４】ＮＡＤ装置構造の一例を示す図面である。
【図１５】ＮＡＤ制御装置の機能中心のブロック図である。
【図１６】ＮＡＤ制御装置の主制御機能によって状態機械の状態変化を簡単に示す図面である。
【図１７】ＮＡＤ装置内のディスクがディバイスドライバーが割り当てられるディスク区画に分けられる方法を示す図面である。
【図１８】独立したＮＡＤディバイスドライバーが作動して、実質的に一つのディスクが他のファイルシステムにより付加される方法を示す図面である。
【図１９】ＮＡＤシステムが実質的に独立している幾つかのＮＡＤディスクを論理的に一つのディスクとして認識することを示す図面である。
【図２０Ａ】一般的なディスクシステムと、Ｗｉｎｄｏｗｓ２０００オペレーティングシステムのＮＡＤシステムのディスクドライバーの階層を示す図面である。
【図２０Ｂ】一般的なディスクシステムと、Ｗｉｎｄｏｗｓ２０００オペレーティングシステムのＮＡＤシステムのディスクドライバーの階層を示す図面である。
【図２１】本発明のＮＡＤシステムがＷｉｎｄｏｗｓ２０００オペレーティングシステムで使用される環境を示す図面である。
【図２２】Ｗｉｎｄｏｗｓ２０００オペレーティングシステムでディバイススタックが生成される例を示す図面である。
【図２３Ａ】一般的なＷｉｎｄｏｗｓ２０００オペレーティングシステムディスクシステムのＩＲＰ、ＳＲＢとＣＤＢの流動を示す図面である。
【図２３Ｂ】Ｗｉｎｄｏｗｓ２０００オペレーティングシステムディスクシステムのＮＡＤシステムにおけるＩＲＰ、ＳＲＢとＣＤＢの流動を示す図面である。
【図２４】Ｗｉｎｄｏｗｓ２０００オペレーティングシステムのＮＤＩＳ（Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）を示す図面である。
【図１】
2004527817.tif 000015
【図２】
2004527817.tif 000016
【図３】
2004527817.tif 000017
【図４】
2004527817.tif 000018
【図５】
2004527817.tif 000019
【図６】
2004527817.tif 000020
【図７】
2004527817.tif 000021
【図８】
2004527817.tif 000022
【図９】
2004527817.tif 000023
【図１０】
2004527817.tif 000024
【図１１Ａ】
2004527817.tif 000025
【図１１Ｂ】
2004527817.tif 000026
【図１２】
2004527817.tif 000027
【図１３】
2004527817.tif 000028
【図１４】
2004527817.tif 000029
【図１５】
2004527817.tif 000030
【図１６】
2004527817.tif 000031
【図１７】
2004527817.tif 000032
【図１８】
2004527817.tif 000033
【図１９】
2004527817.tif 000034
【図２０Ａ】
2004527817.tif 000035
【図２０Ｂ】
2004527817.tif 000036
【図２１】
2004527817.tif 000037
【図２２】
2004527817.tif 000038
【図２３Ａ】
2004527817.tif 000039
【図２３Ｂ】
2004527817.tif 000040
【図２４】
2004527817.tif 000041
【国際公開パンフレット】
2004527817.tif 000042
2004527817.tif 000043
2004527817.tif 000044
2004527817.tif 000045
2004527817.tif 000046
2004527817.tif 000047
2004527817.tif 000048
2004527817.tif 000049
2004527817.tif 000050
2004527817.tif 000051
2004527817.tif 000052
2004527817.tif 000053
2004527817.tif 000054
2004527817.tif 000055
2004527817.tif 000056
2004527817.tif 000057
2004527817.tif 000058
2004527817.tif 000059
2004527817.tif 000060
2004527817.tif 000061
2004527817.tif 000062
2004527817.tif 000063
2004527817.tif 000064
2004527817.tif 000065
2004527817.tif 000066
2004527817.tif 000067
2004527817.tif 000068
2004527817.tif 000069
2004527817.tif 000070
2004527817.tif 000071
2004527817.tif 000072
2004527817.tif 000073
2004527817.tif 000074
2004527817.tif 000075
2004527817.tif 000076
2004527817.tif 000077
2004527817.tif 000078
2004527817.tif 000079
2004527817.tif 000080
2004527817.tif 000081
2004527817.tif 000082
2004527817.tif 000083
2004527817.tif 000084
2004527817.tif 000085
2004527817.tif 000086
2004527817.tif 000087
2004527817.tif 000088
2004527817.tif 000089
2004527817.tif 000090
2004527817.tif 000091
2004527817.tif 000092
2004527817.tif 000093
2004527817.tif 000094
2004527817.tif 000095
2004527817.tif 000096
2004527817.tif 000097
2004527817.tif 000098
2004527817.tif 000099
2004527817.tif 000100
2004527817.tif 000101
2004527817.tif 000102
2004527817.tif 000103
2004527817.tif 000104
2004527817.tif 000105
2004527817.tif 000106
2004527817.tif 000107
2004527817.tif 000108
2004527817.tif 000109
2004527817.tif 000110
2004527817.tif 000111
2004527817.tif 000112
2004527817.tif 000113
2004527817.tif 000114
2004527817.tif 000115
【国際調査報告】
2004527817.tif 000116