JP2004527817A - Disk system that can be mounted directly on the network - Google Patents

Disk system that can be mounted directly on the network Download PDF

Info

Publication number
JP2004527817A
JP2004527817A JP2002555298A JP2002555298A JP2004527817A JP 2004527817 A JP2004527817 A JP 2004527817A JP 2002555298 A JP2002555298 A JP 2002555298A JP 2002555298 A JP2002555298 A JP 2002555298A JP 2004527817 A JP2004527817 A JP 2004527817A
Authority
JP
Japan
Prior art keywords
disk
network
nad
host
driver
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
JP2002555298A
Other languages
Japanese (ja)
Other versions
JP2004527817A5 (en
Inventor
ハン ギュ キム
Original Assignee
ハン ギュ キム
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ハン ギュ キム filed Critical ハン ギュ キム
Publication of JP2004527817A publication Critical patent/JP2004527817A/en
Publication of JP2004527817A5 publication Critical patent/JP2004527817A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ネットワークファイルシステムを通らず、ホストに連結するネットワークに直接に取り付けて使用できると共に、別途のファイルサーバーや特定のスイッチ、又はIPアドレスのような付加要素なしに地域ディスクのように認識され使用されえるディスクシステムを提供する。
また、ネットワークやサーバー管理上の不具合を引き起こさずに便利にサーバーに連結しえると共に、ディスク容量の需要を合せるため多数のディスクシステムをネットワークポートに簡単にプラグインして使用できる低廉な費用のディスクシステムを提供する。
さらに、保存ディバイスがネットワークポートにプラグインされるバスに取付可能であるようにするインターフェースを提供する。
【解決手段】ネットワークを通じてホストからのディスク接近命令を受信するためのNAD(Network−attached disk)ディバイスと、ホストでネットワークを通じてNAD装置を制御するためのディバイスドライバーとを含むネットワーク取付ディスクシステムを通じて達成しえる。
前記ホストはUNIX、又はWindows系列のシステムをオペレーティングシステムにすることができる。NADディバイスはデータを保存するディスクと、ディスクを制御するディスク制御機、及びネットワークポートを通じてホストからのディスク接近命令を受信するネットワークアダプターを含む。
【選択図】図1
The present invention can be used by being directly attached to a network connected to a host without using a network file system, and can be recognized as a local disk without an additional element such as a separate file server, a specific switch, or an IP address. Provide a disk system that can be used.
In addition, a low-cost disk that can be easily connected to a server without causing problems in network and server management, and that can easily be used by plugging a number of disk systems into a network port to meet the demand for disk capacity. Provide system.
Further, it provides an interface that allows the storage device to be attachable to a bus that plugs into a network port.
A network-attached disk system including a network-attached disk (NAD) device for receiving a disk access command from a host through a network, and a device driver for controlling the NAD device through the network at the host. I can.
The host can use a UNIX or Windows-based system as an operating system. The NAD device includes a disk for storing data, a disk controller for controlling the disk, and a network adapter for receiving a disk access command from a host through a network port.
[Selection diagram] Fig. 1

Description

【技術分野】
【0001】
本発明はコンピューターシステムに関し、特にネットワークに直接に取付可能なディスクシステム、又はインターフェースに関する。
【背景技術】
【0002】
インターネット使用の増加に伴い、保存を必要とするデータの量が急増している。特に、マルチメディアデータを保存するための大容量ディスクドライブに対する需要が多くなった。例えば、各サーバー当りテラバイト以上のディスク容量を備えるディスクシステムに対する需要が増えている。
【発明の開示】
【発明が解決しようとする課題】
【0003】
テープドライブやCDドライブを使用して大容量データを保存することもあったが、性能や使用上の便利性を考えると、ハードディスクとは比べものにならない。
【0004】
しかしながら、通常のサーバーシステムのハードディスクを大容量に増設するには多少の問題点が伴う。
通常、インターネットネットワークに連結して使用するようになっているNAS(Network Attached Storage)製品は、NFS(Network File System)プロトコルやCIFS(Common Internet File System)プロトコル、又はインターネットで使用されるIPプロトコルに2つのプロトコルを共に使用する統合システム、又は保存管理と共に予め定められた一定量のディスク容量を提供する。前記2つのプロトコルの基本目的は2つのコンピューターの間でファイルを交換することにある。したがって、ファイルへの接近のためにNASを使用するクライアントは地域ディスクに接近するのとは異なる方式でNASシステムの保存ディバイスに接近するしかない。
【0005】
NASは基本的にファイルを保存し、情報を検索する機能だけを有する単純化されたファイルサーバーの一種である。したがって、NASを通じた容量は、実際にはファイルサーバーを増設したものであり、これには多くの制約が伴う。NASのディスクはクライアントには自分の地域ディスクではないので、NASディスクの装着、移動、及び諸般管理はNASのオペレーティングシステムやソフトウェアを使用してのみ可能である。また、NASディスクは、NASシステムの内部のバス内に装着されるべきなので、装着可能なディスクの数は制限されている。NASは自分のオペレーティングシステムの下にディスクを置いており、クライアントがNASディスクに接近するためには、提供されたファイルシステムの以外の任意のシステムを使用できない。その他にもNASシステムは、別途のIPアドレスを必要とする。結論的に、地域ディスクを使用するのに比べNASシステムの場合は、ディスク当り装着や管理費用がさらにかかるだけでなく、地域ディスクを使用する場合より使用上不便である。
【0006】
Fibre Channel技術を使用するSAN(Storage Area Network)に連結された装置を使用するためには特定のタイプのスイッチが必要である。例えば、Fibre Channelは、FibreChannel Hub、又はFibre Channel Switchを使用する。SAN技術においても短所があって、通常別途のファイルサーバーが使用され、一般に高価の装備と共に、SANを運営するための知識を備えた技術人力が必要である。
【0007】
そのため、ディスクシステムがネットワークに直接に取り付けられ、別途のファイルサーバーや特別な装備を追加せずに、まるで地域ディスクであるように接近するインターフェースが必要である。
【0008】
そこで、本発明の目的は、ネットワークファイルシステムを通さず、ホストに連結するネットワークに直接に取り付けて使用できるディスクシステムを提供することにある。
【0009】
本発明の他の目的として、別途のファイルサーバーや特定のスイッチ、又はIPアドレスのような付加要素なしに地域ディスクのように認識され、使用されえるディスクシステムを提供する。
【0010】
本発明のまた他の目的として、ネットワークやサーバー管理上の不具合を引き起こすことなく便利にサーバーに連結しえるディスクシステムを提供する。
【0011】
本発明のまた他の目的として、ディスク容量の需要を合せるため多数のディスクシステムをネットワークポートに簡単にプラグインして使用できる低廉な費用のディスクシステムを提供する。
【0012】
本発明のさらに他の目的として、保存ディバイスがネットワークポートにプラグインされるバスに取付可能であるようにするインターフェースを提供する。
【課題を解決するための手段】
【0013】
上記の目的は、ネットワークを通じてホストからのディスク接近命令を受信するためのNAD(Network−attached disk)ディバイスと、ホストでネットワークを通じてNAD装置を制御するためのディバイスドライバーとを含むネットワーク取付ディスクシステムを通じて達成しえる。
【0014】
ホストはUNIX、又はWindows系列のシステムをオペレーティングシステムにすることができる。NADディバイスはデータを保存するディスクと、ディスクを制御するディスク制御機、及びネットワークポートを通じてホストからのディスク接近命令を受信するネットワークアダプターを含む。
【発明を実施するための最良の形態】
【0015】
図1は本発明が使用される環境を示す。ホスト100は、内部のシステムバス103に連結されている地域ディスク104を制御する地域ディスクディバイスドライバー102を含むファイルシステム101を有する。地域ディバイスはネットワークに連結されたネットワークディバイスと対照される独立型システムの内部の装置として定義される。地域ディバイスは、ホストが地域ディバイスと異なるネットワークを通らず疎通できるようにするホストバスアダプターを通じてシステムバスに直接に連結される。その反面、ネットワークディバイスはシステムバスに直接に連結されず、システムバスに装着されているネットワークインターフェースカードNICと呼ばれるインターフェースを通じて連結される。前記地域ディスク104は通常のIDE(Integrated Drive Electronics)ディスク、又はSCSI(Small Computer System Interface)ディスクと云える。
【0016】
また、ファイルシステム101はネットワークアダプターディバイスドライバー106とイザーネットのようなネットワーク107を通じて連結されるNADディバイス108を制御する本発明のネットワーク取付ディスクNADディバイスドライバー105を含む。本発明の前記NADディバイスドライバー108は一つ以上のディスク109を含む。前記ネットワーク107は他の応用トラフィックだけでなく、保存トラフィックを運搬する汎用ネットワークである。汎用ネットワークトラフィックを運搬するための前位処理ネットワークは、一般的な保存領域ネットワークSANの構成に使用される保存所などに使用される後位処理ネットワークと区分される。
【0017】
本発明は2つの主要な構成要所のホストのNADディバイスドライバー105と、ネットワークに取り付けられたNADディバイス108とからなる。
【0018】
図2は多端子NADディバイスがネットワークを通じて多数のホストに接近する例を示す。ディスク(1,1)126を有する1番NADディバイス123、ディスク(2,1)127とディスク(2,2)128を有する2番NADディバイス124は、1番ホスト120によってネットワーク122を通じて接近する。ディスク(3,1)129、ディスク(3,2)130と、ディスク(3,3)131を有する3番NADディバイス125は、2番ホスト121によって上記のようなネットワーク122を通じて接近する。
【0019】
各ディスクはホストのシステムバスに連結された地域ディスクに現れるので、逆動的に装着、又は除去されえる。本発明は、このために、実際にはNADディバイスに連結されたホストバスアダプターがないにも関わらず、NADディバイスがシステムに連結されていると認識する純粋ソフトウェア手段の仮想ホストバスアダプターを作る。これは、NICを通じて連結されたNASディバイスがネットワークに連結された別途のファイルサーバーとして認識される、通常的なネットワーク領域保存(NAS)の構成とは区分される。
【0020】
オープンシステムインターフェース(OSI)モデルは、電気的なインターフェースの定義のための物理層、データフレームを使用する通信のためのデータリンク層、一方の先端から他方にパケットを発送するためのネットワーク層、通信期間を規定するセション層、データ表現構成のための表現層、及び応用プログラムのための応用層を含む7層のプロトコルを定義する。本発明は、データリンクフレームで保存命令を含有させるデータリンク層プロトコルを使用する。NADディバイスはホストから独立したディバイスとして作用しないので、IPアドレスのようなネットワークアドレスを使用する必要はない。ホストとディスクシステムの特定な配置は動的に変化しえるので、地域ディスクを使用する場合と同様に使用上便利で運搬しやすい。ネットワークに接続することができるディスクシステムの数を仮想的に制限することはない。
【0021】
図3は多端子NADディバイスがネットワークを通じて多数のホストにより接近することを示す他の例である。1番NADディバイス143と、2番NADディバイス145、及び5番NADディバイス147は、ネットワーク142を通じて1番ホスト140により接近される。2番NADディバイス144と、4番NADディバイス146は、同一のネットワーク142を介して2番ホスト140により接近される。
【0022】
NADに含まれたディスクは別途のディスクとして取り扱われ、各ディスクはホストによって独立的に接近される。図4はNAD内の各ディスクが別途のディスクとして取り扱われる例を示す。1番NADディバイス163内のディスク(1,1)166、2番NADディバイス内のディスク(2,2)168、そして、2番NADディバイス内のディスク(3,2)170は、ネットワーク122を通じてホスト160により接近される一方、2番NADディバイス164内のディスク(2,1)167と、3番NADディバイス165内のディスク(3,1)169と、ディスク(3,3)171は、前記同じネットワーク162を通じて2番ホスト161により接近される。2番NADディバイス164内のディスク(2,1)167と、ディスク(2,2)168とがそれぞれ1番ホスト160と2番ホスト161によって接近されることに留意する。
【0023】
(ブロックディバイスドライバー)
Windowsのような他のオペレーティングシステムでも使用されるが、UNIX系列のオペレーティングシステムで作動するNADシステムの実施形態を説明する。
【0024】
異なる種類のブロックディバイスの中で区別するための主ディバイス番号と、同じ種類のブロックディバイスの中で区別するための副ディバイス番号とがディスクディバイスのようなブロックデータ保存のための各ブロックディバイスに割り当てられる。UNIXでは各ディバイスがリアルディバイスを接近させるためのインターフェースを提供するディバイスファイルを通じて接近される。主ディバイス番号と副ディバイス番号、及びブロックディバイスドライバーに関する情報を有したディバイスファイルは主に先に生成される。
【0025】
ディバイスファイルの目的は、ディバイスに関係した核心により形成された要求を処理するためのものである。ディスクドライバーは、核心のための一定のインターフェースを提供するためにディバイス特定コードを分離させる。ディバイスドライバーの作動を活性化させるために、ディスクファイルとディバイスドライバールーチンの用意が必要であり、ドライバールーチンの機能が登録され、その有用性をUNIXのような運営システムが理解するようにすべきであり、大体媒介変数としてディバイスに割り当てられた主番号とドライバールーチンの機能を伝達して行われる。
【0026】
ブロックディスクドライバーの登録と登録解除
ブロックディスクドライバーが主ディバイス番号とドライバー機能を媒介体として伝達して登録されると、その主番号を伝達することで登録解除が可能である。
【0027】
表1はディバイスドライバーの登録や登録解除に使用される関数を示すものである。
【0028】
【表1】

Figure 2004527817
【0029】
表2は地域ドライバーとNDAドライバーにより使用される一般的な関数を示すものである。
【0030】
【表2】
Figure 2004527817
【0031】
表3はIDE地域ディスクドライバーとNADドライバーに関する関数の例を示すものである。
【0032】
【表3】
Figure 2004527817
【0033】
図5は特別にNADディバイスドライバのようなブロックディバイスドライバーが登録、又は登録解除される例を示す。最初に、3番メジャードディバイスを有するIDEディバイスドライバー181が0番メジャーディバイスと、n番メジャーディバイス182のような幾つかのヌールディバイスドライバーと共に生成される。60番主番号が割り当てられたNADディバイスドライバーの60番メジャーディバイス183は、ディバイス登録関数register_blkdev(60,fops)185を使用して登録される。次に、NADディバイスドライバーはヌールディバイスドライバーである60番メジャーーディバイス184に未登録関数unregister_blkdev(60)186を使用して登録解除される。図5は本発明のNADディバイスドライバーが既存のブロックディバイスドライバーと同様な方式で装着されることを示す。
【0034】
ブロックディバイスの使用
ブロックディバイスドライバーが登録され、ディバイスファイルが生成されると、リアルディバイスに接近するためのリードとライトが行なわれる。しかしながら、ユーザーはディバイスファイルがファイルシステムにマウントされて初めて直接に送信が可能である。ディバイスファイルがファイルシステムにマウントされる前に各ブロックディバイスファイルは特殊ファイルシステムでフォーマットされなければならない。本発明のNADディバイスドライバーは、通常の地域ディスクと同様な方式で用意されたので、通常の地域ディスクのフォーマット時に使用されるI/O命令のセットがNADディバイスのディスクのフォーマット時にもまた使用されえる。更に、NADディバイスがディバイスレベル内で制御されるので、使用されたファイルシステムと独立した必修形式にフォーマットされえる。
【0035】
図6はディレクトリ、ディバイスファイル、ディバイスドライバー、そして、ディバイスの間の関係を示す。左側はディレクトリ200にマウントされたディバイスファイル201が地域ディスクディバイスドライバー202によって地域ディスク203を制御するのに使用される通常の地域ディスクシステムを取り付けたことを示す。右側は本発明のディレクトリ200にマウントされたディバイスファイル204がNADディバイスドライバー205によってイザーネットのような地域領域ネットワーク(LAN)206を通じてNADディバイス207を制御するに使用された本発明のNADシステムを示す。
【0036】
ブロックディバイスドライバーの構造
各ブロックディバイスドライバーは、I/O要求をディバイスに保存するためのI/O要求待機の行列を有する。保存された要求は能率を向上させるために予定が変更されえる。I/O要求待機の行列を除いて、各ブロックディバイスドライバーは待機行列のI/O要求を実行させるための要求機能を必要とする。
【0037】
図7は要求関数がブロックディバイスに直接に命令する状態を示す。ディバイス222とファイルシステム223を使用するNADディバイスドライバー220は、I/O要求225から228まで保存した待機行列224を有する。
前記NADディバイスドライバー220は最近に実行された要求225によってNADディバイス221に命令を下る要求関数229を有する。
【0038】
図8は前記要求関数229が直接に命令を下る代わりに、ディバイス接近スレード230を始動させて、要求待機行列の情報に基づく命令を下る状態を示す。一つのスレードとは複数のユーザーを処理可能なプログラムの一回使用のことを云う。
【0039】
地域ディスクシステムとNADシステムの構成
図9は通常的な地域ディスクシステムと、UNIXで運営されるNADシステムの構成を示す。ファイルシステム260では地域バス263に取り付けられた通常的な地域ディスク264が、通常の地域ディスクディバイスドライバー261によってバスインターフェース262を通じてアクセスされる。上記のようなファイルシステム260では、ネットワーク271に取り付けられたディスク273を有したNADディバイス272がNADディバイスドライバー265によってネットワークプロトコルスタック266、ネットワークアダプターディバイスドライバー267、バスインターフェース268とネットワークアダプター270を含むネットワークインターフェースを通じてアクセスされる。
【0040】
NADディバイスは地域ディスクのように使用されるので、通常の地域ディスクシステムと、本発明のNADシステムとはその基本構造を共有する。相違点として、NADシステムは、ネットワークを通じてNADディバイスと通信されるべきなので、ネットワーク通信のためにプロトコルスタックが加えられる。前記NADドライバーは、I/O命令をネットワークアダプターを通じてNADディバイスに伝達し、前記NADディバイスから返信を受ける。
【0041】
NADディバイスがアクセスされたとき、DMA(Direct Memory Access)、又はPIO(Programmed Input/Output)が使用されえる。通常のディスクディバイスドライバーは、DMAモードで開始バッファアドレスやバイト伝達数と共にDMAI/O命令を地域ディスクにおろすことで作動する。 地域ディスクデータの伝達を受け、CPUを遮断する。同様に、NADディバイスドライバーは、NADディバイスドライバーがI/O命令をNADディバイスに伝達し、データ伝達を完了した後、CPUを横切るようにしてDMAモードで作動するように実現されえる。
【0042】
通常的なディスクドライバーは、ディスクディバイスのデータ登録を通じて特定のデータブロックが行われるまでデータを直接に伝達するCPUによってPIOモードで作動する。同様に、NADディバイスドライバーがNADディバイスに命令を伝達し、特定のブロックのデータが行われるまで伝送と輸送を続けることで、データPIOモードで作動するように実現されえる。
【0043】
本発明で使用されえるネットワークプロトコルは特定のプロトコルに限られない。TCP/IPを含む如何なる接続志向プロトコルでも構わない。接続志向プロトコルはパケットを損失せず伝送される順序通りに収容する。仮に、TCP/IPが使用された場合、一つのIPアドレスは各NADディバイスのために使用されるべきである。
【0044】
地域ディスクドライバーとNADドライバーの生成
UNIXが作動を始め、仮に、ハードウェアスキャンがある一般的な地域ディスクを発見する場合、該当するドライバーが地域ディスク単位やディスク分割単位で生成される。同様の方法で、初期ハードウェアスキャンでNADディバイスが確認され、仮想のホストバスアダプターで行う該当ドライバーが生成される。前記ドライバーは、ネットワークに取り付けられたNADディバイスを周期的に確認するディバイス探索スレードを使用して自動的に生成されるか、又はNAD管理プログラムを使用するシステム管理によって手動的に生成されえる。
【0045】
図10は取り付けられたNADディバイスを確認するか、NADディバイス情報をNADディバイス管理プログラムに提供するためのディバイス探索スレードを示す。スレード280は、ホスト290で情報281をNADディバイス管理プログラムに提供するための各NADのサイズと、ディバイスファイルとを共にNADディバイス285から289を確認するためにネットワークプロトコルスタック282と、ネットワークアダプター283を通じて運営される。NADディバイスファイルに関する情報があれば、ユーザーは特定のNADディバイスを地域ディスクとして使用するために選択されたNADディバイスファイルをマウントする。
【0046】
NADディバイスドライバーとNADディバイスとの間のネットワーク接続
通常の地域ディスクにおいてディスクI/Oは、内部のシステムバスに取り付けられたディスク制御機のI/Oポートにリードやライトを行うことで実行される。しかしながら、NADディバイスドライバーは、ネットワークリンクを通じて該当NADディバイスに入/出力を実行する。I/Oポートでリードやライトを行う代わりに、UNIXのソケットのようなネットワーク連結部にリードやライトを行うことで入/出力が行われる。したがって、UNIXソケットのようなネットワーク連結部は、NADディバイスドライバーとNADディバイスとの間に備えられるべきである。
【0047】
図11A及び図11BはNADディバイスドライバーと連結セッティングスレードを使用する該当NADディバイスの間に位置したネットワーク連結部の例を示す。1番NADディバイス302は、ioctl()関数304で生成された1番ネットワーク連結部303を通じて1番NADディバイスドライバー301に連結され、2番NADディバイス307は、ioctl()関数309により生成された2番ネットワーク連結部308を通じて2番NADディバイスドライバーに連結される。
【0048】
NADドライバーの実現
図12及び図13はNADディバイスを実現する二つの方法を示しており、前者はディバイスアクセススレードを有して実現するもので、後者はディバイスアクセススレードを有せずに実現するものである。
【0049】
図12は1番NADディバイス323、2番NADディバイス324、3番NADディバイス325にアクセスするための"/dev/nd0"、 "/dev/nd1"、 "/dev/nd2"のディバイスファイルを有した三つのNADドライバー320,321,322を示す。各ディバイスファイルはファイルシステムの"/tmp"、 "/var"、 "/"ディレクトリにマウントされる。前記ファイルをアクセスするためのユーザースレード327,328と329は、ファイルシステム326を通じてNADディバイスにリードやライトを行える。連結セッティングスレード331は、NADディバイス管理プログラム330が使用可能なNADディバイスの目録を提供する。
連結セッティングスレード331は、必要であればネットワーク連結部332,333、334をユーザーの入力に基づいて生成する。
【0050】
図12を参照すると、ユーザースレードがファイルシステムを通じてファイルを要求した時、前記ファイルシステムは、最初に、要求されたファイルブロックがバッファ内にあるかを確認するためにバッファキャッシュを点検する。ブロックがバッファ内にあれば、前記ユーザースレードはそのブロックを引用する。しかし、ブロックがバッファ内にない場合は、データはNADディバイスからリードされるべきである。ユーザースレードは要求を要求待機行列におき、NADディバイスの制御を管轄するNADアクセススレード335(又は336,337)を要求関数を通じて実行させると、前記ユーザースレードはそれ自身をブロックする。その後、ブロックされた前記ユーザースレードは、335のような該当データーを収容するNADアクセススレードによって呼び起こされる。
【0051】
図13はユーザースレードがデータをNADアクセススレードを使用せずにNADディバイスから直接に要求することを除いては図12と同様である。
例えば、ユーザースレードは要求を要求待機行列におき、NADディバイスとホストとの間のブロックデータ伝送を処理するソフトウェアインタラプトを実行してそれ自身をブロックする。データ伝送が完了すると、インタラプトがブロックされたスレードを呼び起こすために実行される。
【0052】
ホストとNADディバイスとの間の通信制御手続き
ホストNADディバイスドライバーがI/OのためのNADディバイスをアクセスするとき、一番目のブロックの位置やブロックの番号がI/O命令の媒介変数として与えられる。或いは、SCSIの場合、I/O命令はCDB(Command Descriptor Block)形態で可能である。
【0053】
CDBやブロック伝送情報を伝送するためには確実な通信制御手続きが必要である。本発明は、TCP/IPを含む連結志向制御手続きが使用されていれば、ある特定の種類の連結制御手続きに制限されることはない。連結志向制御手続きとは、パケットを失った場合に再伝送され、収容されたパケットは収容部の終わりから送られた順序通りに整列されることを云う。
【0054】
NADディバイス
図14は本発明のNADディバイスの機能中心のブロック図である。
NADディバイスの好ましい実施形態は、全体のNADディバイスを制御するNAD制御機401、メモリ402、ディスクアクセス命令を移行するディスク制御機403、一つ以上のディスク405、406と、ネットワークを通じてホストからディスクアクセス命令を受けるLANアダプター403とを含めてなる。前記NAD制御機401、メモリ402、ディスク制御機403とLANアダプター404はNADディバイスの内部のバス419に連結されている。
【0055】
ディスク制御機403は内部のディスクチャンネルを通じてディスク405と406を制御することで、ディスクI/O動作を行うモジュールである。ディスク制御機403は、チャンネル制御機409により制御される一つ以上のディスクチャンネル407、408と、バッファ管理器410と、幾つかの登録器411と、バスインターフェース412とをさらに含めてなる。前記バッファ管理器410は、ディスクセクター番号と、ディスクアクセス命令を行うチャンネルを獲得するために登録器411を調査する。前記バッファ管理器410はまたデータをメモリからディスクチャンネル407、408に伝達するために前記チャンネル制御機409に命令するか、又はディスクアクセス命令を行なった結果としてこれと反対に命令する。前記チャンネル制御機409は、事実上データをディスクからメモリに、或いはこれと反対に伝達するためにディスクチャンネル407、408を通じて前記ディスクをアクセスする。
【0056】
前記LANアダプター404は、ディスクI/O命令パケットをホストから受け、返信パケットをネットワークを通じて伝達するモジュールである。LANアダプター404は、ネットワークと接触する物理ネットワークインターフェース413、MAC(media access control)制御機414、伝送されたデータを保存するための伝送バッファ415、伝送されたデータを保存するための収容バッファ416、登録器417とバスインターフェース418をさらに含めてなる。
【0057】
前記バスインターフェース418は、バスから前記伝送バッファ415、前記収容バッファ416、前記登録器417に、或いはこれと反対にデータを伝送する。前記MAC制御機414は物理ネットワークインターフェース313にデータを伝送して、前記物理ネットワークインターフェースが前記ホストコンピューターにデータを伝送できるようにする。前記物理ネットワークインターフェース413がディスクI/O要求パケットを前記ホストコンピューターから受けると、前記物理ネットワークインターフェース413は前記I/O要求パケットを前記MAC制御機414に送り、前記MAC制御機は前記パケットから必要なデータを取り出し、そのデータを収容バッファ416に送る。
【0058】
図15は前記NAD制御機401がNADを制御するための主制御機420、データをディスク421に保存するためのバッファ管理モジュール421、メモリ空間の割当を管理するためのメモリ管理モジュール422、ディスク制御機と接触するためのディスク制御機ドライバー423、ネットワークアダプターと接触するためのネットワークアダプタードライバー424、NAD内のバスと接触するためのバスインターフェース425を含めてなる。
【0059】
NAD制御機401は主にホストのNADディバイスドライバーからのI/O命令を行うが、他の付加機能を行うこともある。例えば、フィルタープログラムはバックアップ演算のようなホストに提供されない役割を提供するためにNADに装着されえる。他の例として、アクセス制御、アクセス共有、アクセス権利伝送などが含まれる。特に、フィルタープログラムは、NADディバイスへのアクセスを特定の期間まで制限するか、幾つかのホストが同時に一つのNADにアクセスするか、又はあるホストのアクセス権利を他のホストに伝達できるように装着されえる。前記ホストにあるNADディバイスドライバーはUNIXオペレーティングシステムでioctl()関数を通じてI/O命令実行時にフィルタープログラムを行うように要求できる。
【0060】
図16は前記主制御機420により使用された状態マシン(state machine)の状態転換を簡単に示す図面である。前記状態機械は'init'状態440で前記全てのNADハードウェアを初期設定し、前記ディスク制御機403と前記LANアダプター404にメモリを割り当てる。初期化設定が終わると、前記状態機械はNADシステムがホストからネットワークを通じて流入するI/O命令を待つ'wait−command'状態に転換する。上記のようなI/O命令が前記ホストコンピューターから収容されると、前記状態は適切なディスクI/Oがディスク制御機を介して行われる'disk_access'状態442となる。ディスクI/Oが終わると、前記状態はNADディバイスがその結果をLANアダプター404を介して前記ホストコンピューターに送る'transmit_reply'状態443に転換する。従来の技術における通常の知識を有する者であれば前記状態機械がCPUとメモリで容易に実現されえることが理解可能であろう。
【0061】
ネットワークアダプタードライバーとディスク制御ドライバー
前記ネットワークアダプターとディスク制御ドライバーは、少なくとも二つの方法で実現されえる。一方はDMA(Direct Memory Access)を通じた遮断寸法を使用し、他方はPIO(Programmable I/O)による投票を使用することである。前者は容易にプログラムが作れるという長所があり、ディスク制御機データの完全な配置がなくても行える。後者は中断による時間の遅延を避けられるという長所がある反面、持続的なリードやライトにかかる時間でプロセッサーが非能率的に使用されるという短所がある。
【0062】
NADドライバーの付加実施例
一般に、NADディバイスドライバーは、取り付けられた各ディスク装置のために生成される。しかし、地域ディスクが分割されるように、NADディバイス内のディスクは、別途のディバイスドライバーによってアクセスされえる幾つかのディスク区画に分割される。選択的には物理的に独立された幾つかのNADディバイス内に位置した幾つかのディスクが論理上一つのディスクとして使用されるために結合されえる。
【0063】
図17はNAD内のディスクが全ての上記区画に一つのディスクドライバーが割り当てられた幾つかのディスク区画に分けられる例を示す。NADドライバーA462は、例えば、四つの区画463−466に割り当てられ、NADドライバーA462がNADディバイス460内のディスク461の特定の分割468から471まで指示されたI/O要求を処理するために分割表を引用する。同様に、NADドライバーB473が二つの区画474と475に割り当てられ、NADドライバーB473がNADディバイス460内のディスク472の二つのディスク区画477と478を制御するために使用されえる。
【0064】
図18は別途のNADディバイスドライバーが生成され、物理的に一つのディスクが他のファイルシステムにより評価される例を示す。NADディバイス480内のディスクA481は、490から493までの四つの区画に分割され、独立した四つのNADドライバー(a,0)482からドライバー(a,3)485が生成されると、各NADドライバーは独立したネットワーク連結486(487,488、又は489)を通じて各ディスク分割を制御できる。同様に、NADディバイス480内のディスクB494が二つの区画499と500に分けられ、独立した二つのNADドライバー(b,0)495と、NADドライバー(b,1)496が生成され、各NADドライバーを各ディスク区画を独立したネットワーク連結497(又は498)を通じて制御できる。他のネットワーク連結が使用されるので、かかる構成は物理的に一つのハードディスクが他のファイルシステムにマウントされることを可能とする。
【0065】
図19は本発明がどの様にNADディバイス内の物理的に独立した多端子のディスクを一つのディスクとして認識できるかの例を示す。特に、他のネットワーク連結524,525、526を通じて5GBの1番NADディバイス527、10GBの2番NADディバイス528と、5GBの3番NADディバイス529を制御する三つの下部面NADディバイスドライバー521,522,523が形状530に分割された一つの上部面NADドライバー520に一体化することを示す。ファイルシステムは20GBの全体空間をアクセスするために"/dev/nda"をマウントする。
【0066】
Windows運営システムで作動するNADシステム
UNIX系列のオペレーティングシステムで作動する例を使用して、以上で説明したシステム及びその方法は、Windows系列のオペレーティングシステムで作動するNADシステムを実現するにおいて同等に応用可能である。例えば、NADディバイスは本質的にWindows2000ホストによって地域ディスクとして取り扱われるので、ホストにより行われるフォーマットや分割を含む全てのディスク演算は地域ディスクを制御し、NADディバイスで行われえる。
【0067】
かかる特徴は、本発明がホストシステムのディバイス面に個別のディスクを直接に付加する代わりに、ファイルシステムの仲裁によってディスク空間を増幅させるNAS技術により提供されるもののような他の対案から差別化されるという点である。同時に、NADディバイスがネットワークを通じてアクセスされるので、本発明は一般的な地域ディスクを使用した場合に、内部のシステムバスに連結されたディスク制御機に伝送されるディスクI/Oの要求をネットワークインターフェースに向け直して伝送する。
【0068】
即ち、本発明はホストでドライバーを変更して純粋ソフトウェアを媒介に仮想のホストバスアダプターを生成するので、前記ホストは実際に前記システムバスに連結された物理ホストアダプターが存在しないが、NADディバイスが物理ホストアダプターを通じてシステムバスに連結されたことを認識する。NADディバイスはホストの内部のバスに連結された地域ディバイスのように接近するので、ホストがNADディバイスと通信するために必要なIPアドレスのようなネットワークアドレスを使用する必要がない。その代わりに保存命令を有したデータリンクフレームがホストとNADディバイスとの間で交換される。
【0069】
図20A及び図20Bは本発明のNADシステムのディスクドライバーの階層構造を通常のディスクシステムと比較して示す図面である。図20Aはディスク分割管理器601、ディスククラスドライバー602、ポートドライバー603、バスドライバー604を含む階層構造からなるWindows2000の通常的なディスクドライバーの階層を示す。
【0070】
Windows2000オペレーティングシステムで総称的な用語'bus'はディバイスと電気的に連結される単一のハードウェアを言う。前記バスはPCIバスのようなものだけでなく、SCSIアダプター、水平ポート、シリアルポート、USBハーブのような多端子ディバイスを有するものであればどれにも含まれる。バスドライバーの目的の一つは、バスに取り付けられたディバイスを一つひとつ並べ、それぞれの物理ディバイス客体を生成することであり、これは、それぞれの物理ディバイス客体がWindows2000で必要であるからである。したがって、バスドライバーは特定のバスに関する情報とポートアドレスとIRQ番号のようなシステム資源をバスに連結されたディバイスに割り当てる機能を有したソフトウェアルーチンの集合である。大部分の実際のディスクI/Oの演算を行うためのルーチンを有しているものは前記ポートドライバーである。
【0071】
本発明の主要な特徴として、通常のバスドライバーとポートドライバーを新たなバスドライバーとポートドライバーに代替して、NADディバイスを地域ディスクのように認識し、Windows2000ホストのネットワークポートを通じてNADディバイスに関するI/O演算が行われえる。
【0072】
図20Bは図20Aの該当通常Windows2000ドライバー階層を代替するNADポートドライバー613と、NADバスドライバー614を有する本発明のドライバー階層を示す。NADバスドライバー614は仮想のホストバスアダプターを実現し、それによってNADディバイスの一セットに対する、又はそのセットからのディスクI/O演算が行われる。NADポートドライバー613は、Windows2000ホストのネットワークを通じてI/O要求をNADディバイスに向け直して伝達することで、実際にディスク乳出力演算を行なうに必要な一つのセットのルーチンを実現する。
【0073】
図21は本発明のNADディバイスが多端子ホストに実現されたネットワーク環境の一例を示す。前記例は1番ホスト621と2番ホスト622が1番ネットワーク623と2番ネットワーク624に連結されたWindows2000を作動させることを示す。1番ホストは1番ネットワークを通じてディスク(1,1)631とディスク(1,3)633を使用し、2番ネットワーク625を通じてディスク(2,1)636とディスク(2,2)637を使用する。同様に、2番ホストはディスク(1,2)632、ディスク(1,4)634と、ディスク(1,5)635を使用する。
【0074】
NADバスドライバーとNADポートドライバーが装着されたWindows2000システムは、I/O要求を行うために、Windows2000で指定したディバイススタックを作る。Windows2000内の各ディバイスは、スタック構造で編成されるディバイス客体に表現される。前記ディバイス客体は、Windows2000システムがソフトウェアのハードウェア管理を助けるために作るデータ構造である。このような多数のデータ構造は、一つの物理ハードウェアのために存在しえる。スタックの下位ディバイス客体は物理ディバイス客体PDOと呼ばれる。ディバイス客体スタックのPDO上には機能ディバイス客体FDOと呼ばれる客体がある。前記FDOの下や上にはフィルターディバイス客体の集合がある。Windows2000のプラグアンドプレイ(PnP)管理構成要素は、ディバイスドライバーの命令でディバイス客体のスタックを建設する。単一のハードウェアのためのスタックを使用する多様なドライバーはそれぞれ異なる役割をはたす。つまり、前記機能ドライバーはディバイスを管理し、前記バスドライバーはディバイスとコンピューターとの連結を管理する。
【0075】
図22は本発明を実現するために生成された全てのフィルターディバイス客体が単純化のために省略されたディバイススタックの例を示す。
左側に示すのはPCIバスの上部にある、繰り返して列挙されるSCSIディバイスの一層であって、SCSIディスクがホストのPCIバスに連結された場合の典型的な形態である。第一に、PnP管理器は、コンピューターを電気的に自分の存在を知らせないPCIのようなハードウェアバスを含む全てのハードウェアに概念的に連結する、仮想のルートバスのための内装型ドライバーを有する。前記ルートバスドライバー640は、PCIバスのためのPDOのPCIバスPDO641を生成するために、PCIに関する情報をWindows2000設定プログラムにより初期化された登録器から得る。
【0076】
PCIバスPDO641を生成したPnP管理器は、機能ドライバーをPCIバスのために積載し、PCIバスFDO642を作る。図21で例に挙げたシステムで一セットのSCSIディバイスを有しているものと見られるPCIバスの機能ドライバーは、SCSIポートPDO643を作るためにPCIバスに取り付けられた、それ自体のハードウェアディバイスを列挙する。SCSIポートPDO643が作られると、PnP管理器はSCSIポートディバイスのためのディバイスを積載して、SCSIポートFDO644を作る。同様に、645と646のようなSCSIディスクPDOはSCSIポートの上部で各個別のSCSIディスクが作られ、647と648のようなSCSIディスクFDOはディスククラスドライバーを積載することで作られる。
【0077】
図21の右側に示すのは、PCIバスドライバーと、SCSIポートドライバーを代替するNADバスドライバーと、NADポートドライバーを使用して作られるNADディバイスのための該当ディバイススタックである。ルートの上部には、PCIのような通常のハードウェアバスではないNADバスのPDOであるが、NADディバイスのための仮想のバスを提供するためにWinddows2000ディバイススタックに合わせて考案されたバスのNADバスPDO651がある。NADバスPDO651の上部ではPnP管理器がNADバスドライバーを積載することでNADバスFDO652を作る。
【0078】
本発明で一セットのNADポートは、ホストの一つのNICに該当するように実現されるので、Windows2000ホストの各個別ネットワークインターフェースカード(NICs)のための一セットのNADポートPDO653と6534が繰り返して作られる。653と654のような各NADポートPDOの上部には、655や656のような各NADポートFDOがNADポートドライバーを積載することで作られる。実際にNADディスクI/O演算を行うものはNADポートドライバーである。前記NADポートドライバーは、特定のNICを介してI/O演算の要求を前記該当NADディバイスに向け直して伝送し、前記NADディバイスからI/O演算の返信を得ることで、NADディバイスI/O要求を処理する。すると、655や656のようなNADポートFDOは、特定のNICで結合された特定のNADポートバウンドを通じて接近する個別NADディアイスのために657,658,659と660のような個別的なNADディバイスPDOsを前記特定のNADポートの上部に作る。
【0079】
図22は図21の例として、1番ホストが二つのNICを有するため、NADポート客体の二つのスタック653と654が作られたことを示す。また、NADディバイス、つまり、ディスク(1,1)631、ディスク(1,3)633、ディスク(2,1)636と、ディスク(2,2)637は、NIC(1,1)とNIC(1,2)を通じて接近するので、1番ホストは657から660まで四つのNADディバイスを各NADディバイス当り二つずつ有する。PnP管理器は、657、658、659と660のような各個別NADディバイスPDOのために、661,662,663と、664のようなNADディバイスFDOを作るディスククラスドライバーを積載する。
【0080】
雄一のNADバスドライバーとNADポートドライバーは、通常的な地域ディスクのためのNADディバイスを代替するために、通常のバスドライバーとSCSIポートドライバーを代替することに留意する。ディスククラスドライバーとWindows2000の他の上位ドライバーは、Windows200システムがNADディバイスを地域ディバイスのように認識できるようにするために、単一の変化なしに元通りに維持すべきである。
【0081】
Windows2000でディバイスに影響を与える演算のための各要求は、I/O要求パケット(IRP)を使用する。IRPは前記ディバイスのためのスタックの最上部に送られ、前記スタックを他のディバイスに伝えることができる。各段階で、前記ドライバーはIRPで何をするかを決定する。時として、前記ドライバーはIRPを伝達する他に何にもしないこともある。前記ドライバーはIRPを伝達せずに完璧に処理するか、又はIRPを実行して伝達しえる。ディスクI/Oの場合を例えにすると、図20Bに示すように、ファイルシステムドライバーに送られた一つのファイルI/Oのための一つのIRPはディスククラス分割管理器のボリューム管理器、分割管理器、そして、ディスククラスドライバーに送られる。
【0082】
SCSI要求ブロック(SRB)が必要であれば、IRPに含まれるように作られる所が前記ディスククラスドライバーである。一つのSRBはSCSIディバイスI/OのためにWindows2000内で指定された一つのデータ構造である。もしも、IRPが通常の地域ディスクのためのものであれば、ディスククラスドライバーは新たなIRPを実際のディスクI/O演算を行うSCSIポートドライバーに伝達する。もしも、IRPがネットワークに連結されたNADディバイスのためのものであれば、ディスククラスドライバーはIRPを、NADディバイスI/Oをネットワークインターフェースを通じて完成するNADポートドライバーに伝達する。
【0083】
地域ディバイスやNADディバイスやディスクの特有なディバイスタイプと関係なく、図20A及び図20Bに示すように、地域ディスク、又はネットワークに取り付けられたディスクのうち、特定のあるディスクのための一つのIRPは結局該当ディスクに送られるが、これは別途のディスク客体スタックが各個別ディスクのために作られるからである。図22は別途のSCSIディスクFDO/PDOと、NADディバイスFDO/PDOがそれぞれの個別地域ディスクとNADディバイスに結合されたことを示す。
【0084】
本発明は、図20Bに示すように、通常のディスクバスドライバーとポートドライバーを新たなNADバスディバイスとポートディバイスに代替して、WindowsシステムがNADディバイスを地域ディスクに認識するようにする。
【0085】
全てのWindows2000ディバイスドライバーは各ディバイスのためのFDOを作るか除去する機能と、ドライバー層上から伝達されるIRPを処理するためのディスパッチ機能とを有している。IRPにある主機能番号や副機能番号はどんなディスパッチ機能を発動させるかを決める。
【0086】
次は、Windows2000のNADシステムを実現するために本発明のNADバスドライバーとポートドライバーに実現された実際のソフトウェアモジュールを説明する。
【0087】
NADバスドライバー
NADバスドライバーはNADポートが取り付けられ、一つのホストの個別NICがNADポートとして認識される仮想のホストバスアダプターを実現する一セットのソフトウェアモジュールである。NADバスドライバーの機能は、基本的にWindows2000の通常のPCIバスドライバーの機能と同一である。NADバスドライバーは、ホストコンピューターに装着されたNICの数を調べ、存在するそれぞれのNICのためのNADポートPDOを作るために、前記NICを一つひとつ列挙する機能を行う。また、一つのNADポートを製作、開始、停止、除去する機能を行う。前記NADシステムでは個別NICが独立的なNADポートとして見なされ、NADディバイスのためのNADディスクポートが独立的に運営されるネットワーク装置の数によって作られる。図22に示す見本の構成を見れば分かる。
【0088】
NADバスドライバーと通常のPCIバスドライバーとの相違点は、NADバスドライバーがホストのシステムバスから物理的には独立しているが、ネットワークポートを通じて連結されているNADディバイスのためのものであるという点でる。ハードウェアの遮断によってディバイスをハードウェアバスに連結または除去する通常のWindows2000システムと異なり、NADバスドライバーはNADバスにNADポートを装着または除去するためにカネルスレードを作って実現される。NADバスドライバーにより作られた前記カネルスレードは主関数番号IRP_MJ_PNPと、副関数番号IRP_MN_START_DEVICEを有したIRPがPnP管理器からNADバスFDOに伝達されるときに作動し始める。前記スレードはNADバスFDOが除去されたときに終了する。前記スレードは周期的にNICの存在を探索する。仮に、新たなNICが探索された場合、前記スレードは前記NICのための新たなNADポートPDOを作り、新たに作られたNADポートPDOを自体のNADポートPDOリストに含ませる。すると、前記スレードはシステムにより認識されるNADポートPDOを有するためにPnP管理器を発動させる。前記スレードが前に作られたNADポートPDOが該当NICなしに前記リストから発見されるNICの不在を探知可能であるので、NICの削除もスレードにより探知される。仮に、NICがホストで削除されたことが見つけられると、スレードは該当NADポートPDOをリストで削除し、NADポートをWindowsシステムで削除するためにPnP管理器を発動させる。
【0089】
NADバスドライバーに実現されたソフトウェアルーチンは5つの種類に分けられる。下の表はNADバスドライバーで実現される幾つかのルーチンの目録を作成したものである。
【0090】
【表4】
Figure 2004527817
【0091】
【表5】
Figure 2004527817
【0092】
【表6】
Figure 2004527817
【0093】
【表7】
Figure 2004527817
【0094】
【表8】
Figure 2004527817
【0095】
NADポートドライバー
ポートドライバーはシステム決定ディバイス制御要求、又は該当クラスドライバーからのドライバー決定ディバイスI/O制御要求に対応する下位ドライバーである。NADポートドライバーはドライバーを初期に設定し、NADポートFDOを作る基本関数機能と、ディスククラスドライバー層から伝達されるIRPを処理するためのディスパーチ関数機能が可能である。ディスククラスドライバー層から伝えられるIRPは実際のI/O命令がSCSIディバイスで行われ得るように指定するSCSI要求ブロック(SRB)を含む。
【0096】
表9及び表10はその基本的な役割が前記説明されたNADバスドライバーのそれと同一な基本関数と、幾つかのディスパッチ関数を詳細な説明と共にリストで作成したものである。
【0097】
【表9】
Figure 2004527817
【0098】
【表10】
Figure 2004527817
【0099】
Windows2000ではディバイスI/O制御命令がIRPにディバイスI/O制御番号に含まれ、ディバイスI/O制御関数が該当ディバイスI/O制御番号を取り扱うためのポートドライバーで実現される。
【0100】
Windows2000の通常のディバイスI/O関数を除いて、付加ディバイスI/O制御関数がNADポートドライバーで実現されるので、前記NADはWindowsシステムの作動を止めず、逆動的に付加、又は除去される。地域ディスクは物理ハードウェアバスに物理的に連結されているので、通常の地域ディスクを有した地域ディスクの付加や制御はシステムを始動するときにWindowsシステムによって直接に探知される。したがって、地域ディスクのためのディスクPDOはシステムの始動時にハードウェアを遮断することで生成される。それで、通常的なポートドライバーは、システムの運営中にディスクディバイスのPDOを付加、又は除去するための機能を有する必要がない。
【0101】
しかし、NADシステムではWindows2000システムの運営中にNADディバイスの付加や除去が起こりえる。したがって、新たに取り付け、又は除去されたディスクのためのディスクPDOを生成または除去できる手段が必要である。
【0102】
本発明で実現されたディバイスI/O制御関数は、機動的なNADの付加や除去を次のように処理する。仮に、新たなNADハードウェアディバイスがネットワークに連結されていることを教えるディバイス制御IRPがNADポートFDOに伝達されると、NADポートFDOはシステムがディスクを認識できるように新たなNADのためのNADディバイスPDOを作る。NADディバイスの除去のためにディスクを除去するディバイス制御IRPは、NADポートFDOに送られ、NADポートFDOによって進行される。
【0103】
ディバイスI/O制御IRPを処理するディスパッチ関数は次の表のように要約される。ディバイスI/O制御関数のNASPortFDoDeviceControl()、NADPortPluInDevice()とNADPortUnpluDevice()は、NADの動的な付加や除去の目的のための本発明の特徴的な関数であることに留意する。
【0104】
【表11】
Figure 2004527817
【0105】
図23AはWindowsシステム2000のPCIバスのような通常のハードウェアバスに連結されたSCSIディスクに関するIRPとSRB、及びCDBの流れを示す。ディスククラスドライバー681はSCSIポートドライバー682にSRBを有したIRPを伝える。前記SRBは要求されたI/Oに関する情報やSCSI−2標準命令を含む命令記述者ブロックを含む資料構造体である。ディスククラスドライバーからSRBを有したIRPを受けると、SCSIポートドライバー682とSCSIバスドライバー683は、SCSIディスク685への実際のディバイスI/Oをやりとげるために、SRBから取り出されたCDBをSCSIホストアダプターに伝達する。
【0106】
通常の地域ディスクにおいてディスクI/O命令はSRB資料構造体を用いてホストアダプターにあるディスク制御機に伝達される。しかし、本発明のNADシステムではディスクI/O命令がホストのNICに伝達される。
【0107】
図23BはNADシステムのIRPとSRB、及びCDB(又は、他の形態のI/O命令)の流れを示す。ディスククラスドライバー691がIRPをSRBと共にNADポートドライバー692と、NADバスドライバー693とに伝達すると、NADバスドライバー693は、SRBから取り出されたCDBをネットワーク696を通じてNADディバイスで実際の装置I/Oを完遂するためのNIC694に伝達する。
【0108】
本発明でNADシステムはSCSIとIDEを含む多様な形態のディスクを支援する。仮に、NADディバイスがSCSIディスクのみで構成されていれば、CDBはホストNICに伝達され、ネットワーク取り付けのSCSIディスクは要求されたディスクI/Oを行う。
【0109】
仮に、NADディバイスがIDEのようなSCSIと異なる形態のディスクディバイスで構成されていれば、CDBは特定の装置で処理されえる命令に転換されるべきである。このような場合のCDBの転換は前記NADポートドライバ、又は前記NADディバイスで行われる。仮に、転換がNADで行われると、Windows2000ホストは単にCDBをSCSIに送るようにホストNICに伝達する。仮に、NADポートドライバーで転換が行われると、NADポートドライバー関数はCDBを特定のハードウェアディスク形態に適した一つのセットのディスクI/O命令に転換すべきである。
【0110】
本発明のNADシステムは二つの場合を共に支援し、CDBやハードウェア採択命令のような命令形態は特定のNADを設置するときに決定される。必修CDB運営コードを有してSRBを処理する幾つかのディスパッチ関数が与えられた表12では、本発明の前記NADポートドライバー関数がSRBとCDBを処理するためにどの様な方法で実現されているかを示す。仮に、NADポートドライバーがCDBを一つのセットのハードウェア採択I/O命令に転換すべきであればSRBのような処理関数が必要である。
【0111】
【表12】
Figure 2004527817
【0112】
ホストとNADとの間の通信
I/Oがバスではないネットワークを通じて行われるべきであるので、NADシステム内のディスクI/O命令は地域ディスクホストアダプターの代わりにホストNICに伝達される。Windowsシステムは、NDIS(network driver interface specification)を提供するが、NDISはネットワークドライバーインターフェースを規定する一種のタイプである。
【0113】
図24はWindowsに定義されているNDISドライバー階層で使用される高位プロトコルを指定するNDISプロトコルドライバー701、NDIS仲裁ドライバー702、ハードウェアの指定のためのNDIS小型ポート703、及びネットワークインターフェースカード(NIC)704を含めてなる。
【0114】
本発明ではNADディバイスにI/O命令を伝達する全てのNADポートドライバー関数が前記命令をネットワークを通じてNAD装置に伝達するNDISプロトコルドライバー階層に伝達するように実現される。
【0115】
ディスクI/O演算のためにSRBを含むIRP、又は特定のディスクI/O演算のためのI/O制御命令をディスククラスドライバーから受けると、NADポートドライバーは該当CDBを含む新たなIRPをプロトコルドライバーに伝達する。その後、プロトコルドライバーはSCSI−2標準I/O命令のCDBをNAD装置に送り、NAD装置からの返信を受けてI/O命令を処理する。ホストコンピューターがCDBではない特定のハードウェアI/O命令を送るべき場合には、図23Bに示すように、NADポートドライバーはハードウェア指定命令を入れたIRPをCDBの代わりにNIDSプロトコルドライバーに送ることに留意する。
【0116】
NDISはネットワーク製造業者に伝送の透明性を提供するが、これはネットワークを通じた通信が要求される全てのドライバーはネットワークに接近するためのNDISインターフェースを呼出さなければならないように作られているからである。したがって、本発明のNAD装置とホストコンピューターとの間での通信もこのような方式で行われることにより、NDISプロトコルドライバーを提供することで、NADポートドライバーは通信に関しては別途の働きが必要ない。
【0117】
NDISプロトコルドライバーに実現される通信プロトコルは標準プロトコル、又は非標準プロトコルを採択することができる。IPのような標準プロトコルはオーバーヘッドが伴うので、性能や保安上非標準プロトコルを使用することが好ましい。Windows2000ホストとNAD装置との間で安定的にNADI/O命令を処理するための通信プロトコルを提供するために、本発明はWindows専売特許通信プロトコルを実現できる2000ネットワークシステムのNDIS指定に従う。
【0118】
NAD装置
Windows系列の運営システムで作動するNADディバイスの技術的な構成は、図14に示すUNIX系列の運営システムで作動するNADディバイスの構成と同様である。
【0119】
NASとSANに比べたNADシステムの長所
UNIXやWindows系列の運営システムのうち一つを作動させる本発明のNADシステムは、NASシステムとSANシステムに比べて多くの長所がある。ファイルサーバーを付加する方法としてファイル保存サービスを提供するNASシステムとは異なり、NAD装置はホストのシステムバスに連結された地域ディスクのようにホストコンピューターに取り付けられる。SANシステムと異なり、本発明のNAD装置は、ある特別なスイッチやネットワーク装置が付加されず、単にネットワークポートに刺して使用される。
したがって、NADシステムはユーザーの便宜性、システムの有用性、範囲性、経済性、及び優れた性能を有する。
【0120】
フォーメッティング、分割、共有、マウンティングのような演算を含むディスクに関連した全てのディスク演算は、地域ディスクで行われるのと同様にNAD装置で行われえる。NAD装置は、地域ディスクのようにホストで直ぐに使用可能であるので、管理が容易で使用上便利である。NASシステムで追加、除去、及びディスク構成上の全ての変化は、人、又はソフトウェアを使用してNASオペレーティングシステムを通じてのみ可能である。NADシステムは、更にディスクを装着し、除去するにおいて、ホストコンピューターのケースを開閉する必要がない優れた便宜性を提供する。
【0121】
NADシステムはほぼ無制限の範囲性をディスク空間に提供する。ネットワークに取り付けられえるNAD装置の数は事実上無制限である。その反面、NASシステムを通じるディスクの数は、経済的な理由や多数のNASサーバーを管理するのに伴う不具合のため相当に制限的である。
【0122】
NASシステムは本質的にファイルサーバーソフトウェアや他の付加的な特定のハードウェア装備を使用しないため、NASシステムやSANシステムに比べてさらに経済的である。
【0123】
媒体交換NADシステム
本発明のNADシステムは媒介交換保存装置として代理実現されえる。
媒体交換保存装置は物理的に二つの部分に分けられた特別な保存装置だが、一方はデータを入れたメディアで、他方は媒体に関するI/O演算を行うドライバーである。フロピディスクドライバーとCDロームドライバーは媒体交換保存装置の例である。媒体の装着可否に関わらず、媒体交換保存装置はホストコンピューターに登録されることができ、ディスケットのような媒体がドライバーに逆動的に挿入されえる。
【0124】
NAD装置が逆動的にネットワークポートにプラグインされるかネットワークポートから除去されえるので、NADを媒介に使用する仮想ドライバーは媒体交換保存装置の形態で実現される。Windows2000は媒体交換保存装置を実現するために交換機クラスドライバーモデルを提供する。媒体交換NADシステムを実現するためにNADシステムのためのクラスドライバーがWindows2000の交換機クラスドライバーのモデルに従って実現される。二つの下位ドライバー、つまり、NADポートドライバーとNADバスドライバーはそのような媒体交換NADシステムを実現するために使用される。
【0125】
変換機とカウンター変換機を使用する実施例
ネットワークインターフェースカード(NIC)と新たなホストバスアダプターを使用する代わりに、本発明のネットワーク取付ディスクは、保存命令を入れたデータリンクフレームに変えて、フレームがネットワークを通じて伝達されるようにするプロトコル変換機をホスト面に提供し、装置面にはネットワークを通じて受けた保存命令を含むデータリンクフレームを保存命令に変換するカウンター変換機を設置することで実現されえる。
【0126】
変換機は専門的なネットワークインターフェースであるので、一般的な通信プロトコルを行うオーバーヘッドなしにネットワークを通じてI/O装置に伝送するためにI/O命令とデータをデータリンクフレームに要約する。
【0127】
テープシステムとCDジュークボックス
本発明のインターフェースを使用してネットワークに直接に連結される保存装置の種類はディスクシステムに限定されない。テープシステムとCDドライブは、ディスクシステムのようなバスインターフェースのIDE、又はSCSIインターフェースを使用する。例えば、本発明はCDジュークボックスの効果的な支出実現を可能にする多端子のCDドライブをネットワークに直接に連結するように使用されえる。
【0128】
当発明は、上記実施の形態に記載されたものであるが、それらの実施の形態を限定するものではない。発明の思想及び範囲から引き出されることのない上記実施の形態の構成、形態に対して多くの変更を行うことが可能であることが、当分野の通常の知識を有する者により理解される。
【図面の簡単な説明】
【0129】
【図1】本発明のネットワークが取り付けられたディスクシステムが使用されるネットワーク環境を示すブロック図である。
【図2】本発明の多端子NADディバイスがネットワークを通じての多数のホストに接近する方法を示す図面である。
【図3】多端子NADディバイスが多数のホストに接近する方法の一例を示す図面である。
【図4】NAD内部の各ディスクがそれぞれ別途のディスクとして取り扱われる他の一例を示す図面である。
【図5】ブロックディバイスドライバー、特にNADディバイスドライバーがUNIXオペレーティングシステム下で登録、又は非登録される方法を示す図面である。
【図6】ディレクトリ、ディバイスファイル、ディバイスドライバーとディバイスとの関係を示す図面である。
【図7】要求機能が命令を直接にディバイスに伝達する方法を示す図面である。
【図8】要求機能がオペレーティングシステムを接近させる装置を作動させる図面である。
【図9】地域ディスクシステムと、UNIXで運営されるNADディバイスのブロック図である。
【図10】取り付けられたNAD装置を区別し、NAD情報をNAD装置管理プログラムに提供するためにスレードを探す装置を示す図面である。
【図11A】NADディバイスドライバーとNAD装置との間で連結セッティングスレードを用いて成されるネットワークの例を示す図面である。
【図11B】NADディバイスドライバーとNAD装置との間で連結セッティングスレードを用いて成されるネットワークの例を示す図面である。
【図12】スレードを接近させる装置を用いてNADディバイスドライバーを実行させる手段を示す図面である。
【図13】スレードを接近させる装置を用いずにNADディバイスドライバーを実行させる手段を示す図面である。
【図14】NAD装置構造の一例を示す図面である。
【図15】NAD制御装置の機能中心のブロック図である。
【図16】NAD制御装置の主制御機能によって状態機械の状態変化を簡単に示す図面である。
【図17】NAD装置内のディスクがディバイスドライバーが割り当てられるディスク区画に分けられる方法を示す図面である。
【図18】独立したNADディバイスドライバーが作動して、実質的に一つのディスクが他のファイルシステムにより付加される方法を示す図面である。
【図19】NADシステムが実質的に独立している幾つかのNADディスクを論理的に一つのディスクとして認識することを示す図面である。
【図20A】一般的なディスクシステムと、Windows2000オペレーティングシステムのNADシステムのディスクドライバーの階層を示す図面である。
【図20B】一般的なディスクシステムと、Windows2000オペレーティングシステムのNADシステムのディスクドライバーの階層を示す図面である。
【図21】本発明のNADシステムがWindows2000オペレーティングシステムで使用される環境を示す図面である。
【図22】Windows2000オペレーティングシステムでディバイススタックが生成される例を示す図面である。
【図23A】一般的なWindows2000オペレーティングシステムディスクシステムのIRP、SRBとCDBの流動を示す図面である。
【図23B】Windows2000オペレーティングシステムディスクシステムのNADシステムにおけるIRP、SRBとCDBの流動を示す図面である。
【図24】Windows2000オペレーティングシステムのNDIS(Network Device Interface Specification)を示す図面である。【Technical field】
[0001]
The present invention relates to a computer system, and more particularly, to a disk system or interface that can be directly attached to a network.
[Background Art]
[0002]
With the increasing use of the Internet, the amount of data that needs to be stored is increasing rapidly. In particular, the demand for large capacity disk drives for storing multimedia data has increased. For example, there is an increasing demand for disk systems having terabytes or more of disk capacity per server.
DISCLOSURE OF THE INVENTION
[Problems to be solved by the invention]
[0003]
In some cases, large-capacity data is stored using a tape drive or a CD drive, but it is inferior to a hard disk in terms of performance and convenience in use.
[0004]
However, increasing the hard disk capacity of a normal server system to a large capacity involves some problems.
In general, NAS (Network Attached Storage) products that are used by connecting to an Internet network are based on NFS (Network File System) protocol, CIFS (Common Internet File System) protocol, or IP protocol used on the Internet. An integrated system that uses the two protocols together, or provides a predetermined amount of disk space with storage management. The basic purpose of the two protocols is to exchange files between two computers. Therefore, a client using the NAS for accessing a file has no choice but to access the storage device of the NAS system in a different manner than to access the local disk.
[0005]
NAS is basically a kind of simplified file server that only has the function of storing files and searching for information. Therefore, the capacity through the NAS is actually the number of additional file servers, and this has many restrictions. Since the NAS disk is not a local disk for the client, mounting, moving, and general management of the NAS disk can be performed only by using the NAS operating system and software. Further, since the NAS disk should be mounted in a bus inside the NAS system, the number of disks that can be mounted is limited. The NAS has the disk under its operating system and the client cannot use any system other than the provided file system to access the NAS disk. In addition, the NAS system requires a separate IP address. As a result, in the case of the NAS system as compared with the use of the regional disk, the mounting and management cost per disk are further increased, and the use is more inconvenient than the case of using the regional disk.
[0006]
In order to use a device connected to a storage area network (SAN) using a fiber channel technology, a certain type of switch is required. For example, Fiber Channel uses Fiber Channel Hub or Fiber Channel Switch. The SAN technology also has disadvantages, such that a separate file server is usually used, and generally requires expensive equipment and technical personnel with knowledge to operate the SAN.
[0007]
Therefore, there is a need for an interface in which the disk system is directly attached to the network and approaches as if it were a local disk without adding a separate file server or special equipment.
[0008]
SUMMARY OF THE INVENTION An object of the present invention is to provide a disk system which can be directly attached to a network connected to a host without using a network file system.
[0009]
It is another object of the present invention to provide a disk system that can be recognized and used as a local disk without a separate file server, a specific switch, or an additional element such as an IP address.
[0010]
Still another object of the present invention is to provide a disk system which can be conveniently connected to a server without causing troubles in network and server management.
[0011]
Still another object of the present invention is to provide a low-cost disk system in which a large number of disk systems can be easily plugged into a network port and used in order to meet the demand for disk capacity.
[0012]
Yet another object of the present invention is to provide an interface that allows a storage device to be attached to a bus that plugs into a network port.
[Means for Solving the Problems]
[0013]
The above object is achieved through a network-attached disk system including a network-attached disk (NAD) device for receiving a disk access command from a host through a network, and a device driver for controlling the NAD device through the network at the host. I can do it.
[0014]
The host can use a UNIX or Windows-based system as the operating system. The NAD device includes a disk for storing data, a disk controller for controlling the disk, and a network adapter for receiving a disk access command from a host through a network port.
BEST MODE FOR CARRYING OUT THE INVENTION
[0015]
FIG. 1 shows the environment in which the invention is used. The host 100 has a file system 101 including a local disk device driver 102 for controlling a local disk 104 connected to an internal system bus 103. A regional device is defined as a device inside a standalone system as opposed to a network device connected to a network. The regional device is directly connected to the system bus through a host bus adapter that allows the host to communicate without passing through a different network than the regional device. On the other hand, the network device is not directly connected to the system bus, but is connected through an interface called a network interface card NIC mounted on the system bus. The regional disk 104 may be a normal IDE (Integrated Drive Electronics) disk or a SCSI (Small Computer System Interface) disk.
[0016]
In addition, the file system 101 includes a network adapter disk driver 106 according to the present invention which controls a network adapter device driver 106 and a NAD device 108 connected through a network 107 such as an Ethernet. The NAD device driver 108 of the present invention includes one or more disks 109. The network 107 is a general-purpose network that carries stored traffic as well as other application traffic. The pre-processing network for carrying the general-purpose network traffic is separated from the post-processing network used for the storage used in the configuration of the general storage area network SAN.
[0017]
The present invention consists of a host NAD device driver 105 at two key points and a NAD device 108 attached to the network.
[0018]
FIG. 2 shows an example in which a multi-terminal NAD device approaches many hosts through a network. The first NAD device 123 having the disk (1,1) 126 and the second NAD device 124 having the disk (2,1) 127 and the disk (2,2) 128 are approached through the network 122 by the first host 120. The third NAD device 125 having the disk (3, 1) 129, the disk (3, 2) 130, and the disk (3, 3) 131 is approached by the second host 121 through the network 122 as described above.
[0019]
Since each disk appears on a regional disk connected to the host system bus, it can be dynamically mounted or removed. The present invention, for this purpose, creates a pure software means virtual host bus adapter that recognizes that the NAD device is connected to the system, even though there is actually no host bus adapter connected to the NAD device. This is different from a conventional NAS configuration in which the NAS device connected through the NIC is recognized as a separate file server connected to the network.
[0020]
The Open System Interface (OSI) model is a physical layer for defining electrical interfaces, a data link layer for communication using data frames, a network layer for sending packets from one end to the other, A seven-layer protocol is defined that includes a session layer that defines the time period, an expression layer for data expression configuration, and an application layer for application programs. The present invention uses a data link layer protocol that includes a save instruction in a data link frame. Since NAD devices do not act as host-independent devices, there is no need to use network addresses such as IP addresses. Because the specific placement of the host and disk system can change dynamically, it is as convenient and portable to use as with regional disks. There is no virtual limit on the number of disk systems that can be connected to the network.
[0021]
FIG. 3 is another example showing that a multi-terminal NAD device is approached by multiple hosts through a network. The first NAD device 143, the second NAD device 145, and the fifth NAD device 147 are approached by the first host 140 via the network 142. The second NAD device 144 and the fourth NAD device 146 are approached by the second host 140 via the same network 142.
[0022]
The disks included in the NAD are treated as separate disks, and each disk is independently approached by the host. FIG. 4 shows an example in which each disk in the NAD is handled as a separate disk. The disk (1,1) 166 in the first NAD device 163, the disk (2,2) 168 in the second NAD device, and the disk (3,2) 170 in the second NAD device are connected to the host via the network 122. The disk (2,1) 167 in the second NAD device 164, the disk (3,1) 169 in the third NAD device 165, and the disk (3,3) 171 while being approached by the 160 It is approached by the second host 161 through the network 162. Note that disk (2,1) 167 and disk (2,2) 168 in second NAD device 164 are approached by first host 160 and second host 161 respectively.
[0023]
(Block device driver)
An embodiment of a NAD system that operates on a UNIX-like operating system, although used with other operating systems such as Windows, is described.
[0024]
A main device number for distinguishing among different types of block devices and a sub device number for distinguishing among the same types of block devices are assigned to each block device for storing block data such as a disk device. Can be In UNIX, each device is accessed through a device file that provides an interface for approaching real devices. A device file having information on the main device number, the sub device number, and the block device driver is mainly generated first.
[0025]
The purpose of the device file is to handle requests made by the device-related core. The disk driver separates the device specific code to provide a certain interface for the core. In order to activate the operation of the device driver, it is necessary to prepare a disk file and a device driver routine, and the function of the driver routine is registered, and the operating system such as UNIX should understand its usefulness. Yes, it is performed by transmitting the main number assigned to the device as a parameter and the function of the driver routine.
[0026]
Register and unregister block disk driver
When the block disk driver is registered by transmitting the main device number and the driver function as an intermediary, the registration can be released by transmitting the main number.
[0027]
Table 1 shows functions used for registering and deregistering device drivers.
[0028]
[Table 1]
Figure 2004527817
[0029]
Table 2 shows the general functions used by regional and NDA drivers.
[0030]
[Table 2]
Figure 2004527817
[0031]
Table 3 shows examples of functions related to the IDE area disk driver and the NAD driver.
[0032]
[Table 3]
Figure 2004527817
[0033]
FIG. 5 shows an example in which a block device driver such as a NAD device driver is registered or unregistered. First, an IDE device driver 181 having a third major device is created with a zero major device and some null device drivers, such as an nth major device 182. The No. 60 major device 183 of the NAD device driver to which the No. 60 main number is assigned is registered using the device registration function register_blkdev (60, fops) 185. Next, the NAD device driver is deregistered using the unregistered function unregister_blkdev (60) 186 with the No. 60 major device 184, which is a null device driver. FIG. 5 shows that the NAD device driver of the present invention is mounted in the same manner as the existing block device driver.
[0034]
Using block devices
When a block device driver is registered and a device file is generated, reading and writing for approaching a real device are performed. However, a user can directly send a device file only after the device file is mounted on the file system. Each block device file must be formatted with a special file system before the device file can be mounted on the file system. Since the NAD device driver of the present invention is prepared in the same manner as a normal regional disk, a set of I / O instructions used when formatting a normal regional disk is also used when formatting a NAD device disk. I can. In addition, since the NAD devices are controlled within the device level, they can be formatted into a required format independent of the file system used.
[0035]
FIG. 6 illustrates the relationship between directories, device files, device drivers, and devices. The left side shows that the device file 201 mounted on the directory 200 has mounted the usual regional disk system used to control the regional disk 203 by the regional disk device driver 202. The right side shows the NAD system of the present invention in which the device file 204 mounted on the directory 200 of the present invention is used by the NAD device driver 205 to control the NAD device 207 through a local area network (LAN) 206 such as Ethernet. .
[0036]
Block device driver structure
Each block device driver has a queue of I / O requests waiting to store I / O requests in the device. Saved requests can be rescheduled to improve efficiency. Except for the I / O request waiting queue, each block device driver requires a request function to execute the queued I / O request.
[0037]
FIG. 7 shows a state in which the request function directly instructs the block device. The NAD device driver 220 using the device 222 and the file system 223 has a queue 224 storing I / O requests 225 to 228.
The NAD device driver 220 has a request function 229 for issuing a command to the NAD device 221 according to a recently executed request 225.
[0038]
FIG. 8 shows a situation in which the request function 229 activates the device approach thread 230 instead of directly issuing a command, and issues a command based on information in the request queue. One sled is a single use of a program that can handle multiple users.
[0039]
Configuration of regional disk system and NAD system
FIG. 9 shows a configuration of a general regional disk system and a configuration of a NAD system operated by UNIX. In the file system 260, an ordinary regional disk 264 attached to the regional bus 263 is accessed by the ordinary regional disk device driver 261 through the bus interface 262. In the file system 260 as described above, the NAD device 272 having the disk 273 attached to the network 271 is connected to the network including the network protocol stack 266, the network adapter device driver 267, the bus interface 268 and the network adapter 270 by the NAD device driver 265. Accessed through the interface.
[0040]
Since the NAD device is used like a regional disk, the ordinary regional disk system shares the basic structure with the NAD system of the present invention. The difference is that the NAD system should be communicated with the NAD device over the network, so a protocol stack is added for network communication. The NAD driver transmits an I / O command to a NAD device through a network adapter, and receives a reply from the NAD device.
[0041]
When a NAD device is accessed, DMA (Direct Memory Access) or PIO (Programmed Input / Output) can be used. A typical disk device driver operates by dropping a DMA I / O command along with the starting buffer address and the number of bytes transmitted to the regional disk in DMA mode. Upon receiving the regional disk data, the CPU is shut off. Similarly, the NAD device driver may be implemented to operate in a DMA mode across the CPU after the NAD device driver transmits an I / O command to the NAD device and completes data transmission.
[0042]
A typical disk driver operates in a PIO mode by a CPU that directly transmits data until a specific data block is performed through data registration of the disk device. Similarly, the NAD device driver can be realized to operate in the data PIO mode by transmitting a command to the NAD device and continuing transmission and transportation until a specific block of data is performed.
[0043]
The network protocol that can be used in the present invention is not limited to a specific protocol. Any connection-oriented protocol including TCP / IP may be used. The connection-oriented protocol accommodates packets in the order in which they are transmitted without loss. If TCP / IP was used, one IP address should be used for each NAD device.
[0044]
Generation of regional disk drivers and NAD drivers
When UNIX starts to operate and a hardware scan finds a general regional disk, a corresponding driver is generated for each regional disk or disk partition. In the same manner, the NAD device is confirmed by the initial hardware scan, and the corresponding driver to be executed by the virtual host bus adapter is generated. The driver may be automatically generated using a device search thread that periodically checks for NAD devices attached to the network, or may be manually generated by system management using a NAD management program.
[0045]
FIG. 10 illustrates a device search thread for verifying attached NAD devices or providing NAD device information to a NAD device management program. The sled 280 is used by the host 290 to provide information 281 to the NAD device management program, through the network protocol stack 282 and the network adapter 283 to check the size of each NAD and the device file together with the NAD devices 285 to 289. Will be operated. With information about the NAD device file, the user mounts the selected NAD device file to use the particular NAD device as a regional disk.
[0046]
Network connection between NAD device driver and NAD device
In a typical regional disk, disk I / O is executed by reading or writing to an I / O port of a disk controller attached to an internal system bus. However, the NAD device driver performs input / output to / from the corresponding NAD device through a network link. Input / output is performed by reading or writing to a network connection unit such as a UNIX socket instead of reading or writing at the I / O port. Therefore, a network connection such as a UNIX socket should be provided between the NAD device driver and the NAD device.
[0047]
FIGS. 11A and 11B show an example of a network connection unit located between a NAD device driver and a corresponding NAD device using a connection setting thread. The first NAD device 302 is connected to the first NAD device driver 301 through the first network connection unit 303 generated by the ioctl () function 304, and the second NAD device 307 is generated by the ioctl () function 309. The second NAD device driver is connected to the second NAD device driver through a No. network connection unit 308.
[0048]
Realization of NAD driver
12 and 13 show two methods for realizing the NAD device, the former being realized with a device access thread, and the latter being realized without a device access thread.
[0049]
FIG. 12 has device files “/ dev / nd0”, “/ dev / nd1”, and “/ dev / nd2” for accessing the first NAD device 323, the second NAD device 324, and the third NAD device 325. Three NAD drivers 320, 321 and 322 are shown. Each device file is mounted in the "/ tmp", "/ var", and "/" directories of the file system. User threads 327, 328 and 329 for accessing the file can read or write to the NAD device through the file system 326. The connection setting thread 331 provides a list of NAD devices that can be used by the NAD device management program 330.
The connection setting thread 331 generates network connection units 332, 333, and 334, if necessary, based on user input.
[0050]
Referring to FIG. 12, when a user thread requests a file through the file system, the file system first checks the buffer cache to see if the requested file block is in the buffer. If the block is in the buffer, the user thread refers to the block. However, if the block is not in the buffer, the data should be read from the NAD device. The user thread places the request in a request queue and causes the NAD access thread 335 (or 336, 337) responsible for controlling the NAD device to execute through a request function, which blocks itself. Thereafter, the blocked user sled is awakened by a NAD access sled containing the corresponding data, such as 335.
[0051]
FIG. 13 is similar to FIG. 12 except that the user thread requests data directly from the NAD device without using the NAD access thread.
For example, a user thread places a request in a request queue and blocks itself by executing a software interrupt that handles block data transmission between the NAD device and the host. Upon completion of the data transmission, an interrupt is performed to wake up the blocked sled.
[0052]
Communication control procedure between host and NAD device
When the host NAD device driver accesses the NAD device for I / O, the position of the first block and the block number are given as parameters of the I / O command. Alternatively, in the case of SCSI, the I / O instruction can be in the form of a CDB (Command Descriptor Block).
[0053]
In order to transmit CDB and block transmission information, a reliable communication control procedure is required. The present invention is not limited to a particular type of connection control procedure as long as a connection-oriented control procedure including TCP / IP is used. The connection-oriented control procedure means that when a packet is lost, it is retransmitted, and the accommodated packets are arranged in the order sent from the end of the accommodation unit.
[0054]
NAD Devices
FIG. 14 is a functional block diagram of the NAD device of the present invention.
A preferred embodiment of the NAD device includes a NAD controller 401 for controlling the entire NAD device, a memory 402, a disk controller 403 for transferring disk access commands, one or more disks 405 and 406, and disk access from a host through a network. And a LAN adapter 403 for receiving commands. The NAD controller 401, the memory 402, the disk controller 403, and the LAN adapter 404 are connected to a bus 419 inside the NAD device.
[0055]
The disk controller 403 is a module that performs disk I / O operations by controlling the disks 405 and 406 through an internal disk channel. The disk controller 403 further includes one or more disk channels 407 and 408 controlled by the channel controller 409, a buffer manager 410, some registrants 411, and a bus interface 412. The buffer manager 410 checks the register 411 to obtain a disk sector number and a channel for performing a disk access command. The buffer manager 410 also commands the channel controller 409 to transfer data from the memory to the disk channels 407, 408, or vice versa as a result of performing a disk access command. The channel controller 409 accesses the disk through the disk channels 407 and 408 in order to transfer data from the disk to the memory or vice versa.
[0056]
The LAN adapter 404 is a module that receives a disk I / O command packet from a host and transmits a return packet through a network. The LAN adapter 404 includes a physical network interface 413 that contacts a network, a media access control (MAC) controller 414, a transmission buffer 415 for storing transmitted data, a storage buffer 416 for storing transmitted data, It further includes a register 417 and a bus interface 418.
[0057]
The bus interface 418 transmits data from the bus to the transmission buffer 415, the storage buffer 416, the register 417, or vice versa. The MAC controller 414 transmits data to the physical network interface 313 so that the physical network interface can transmit data to the host computer. When the physical network interface 413 receives a disk I / O request packet from the host computer, the physical network interface 413 sends the I / O request packet to the MAC controller 414, and the MAC controller receives the disk I / O request packet from the packet. The data is extracted and sent to the accommodation buffer 416.
[0058]
FIG. 15 shows a main controller 420 for controlling the NAD by the NAD controller 401, a buffer management module 421 for storing data on the disk 421, a memory management module 422 for managing allocation of memory space, and a disk control. It includes a disk controller driver 423 for contacting a device, a network adapter driver 424 for contacting a network adapter, and a bus interface 425 for contacting a bus in the NAD.
[0059]
The NAD controller 401 mainly performs an I / O command from the host NAD device driver, but may perform other additional functions. For example, a filter program can be attached to the NAD to provide a role not provided to the host, such as a backup operation. Other examples include access control, access sharing, access right transmission, and the like. In particular, filter programs can be installed to limit access to NAD devices for a specific period of time, to allow several hosts to access one NAD at the same time, or to transfer the access rights of one host to another. Can be done. The NAD device driver in the host can request to execute a filter program when executing an I / O command through an ioctl () function in the UNIX operating system.
[0060]
FIG. 16 is a diagram schematically illustrating a state transition of a state machine used by the main controller 420. The state machine initializes all the NAD hardware in an 'init' state 440 and allocates memory to the disk controller 403 and the LAN adapter 404. When initialization is completed, the state machine changes to a "wait-command" state in which the NAD system waits for an I / O command flowing from the host through the network. When such an I / O command is received from the host computer, the state becomes a 'disk_access' state 442 where the appropriate disk I / O is performed via the disk controller. At the end of the disk I / O, the state changes to a 'transmit_reply' state 443 where the NAD device sends the result to the host computer via the LAN adapter 404. Those of ordinary skill in the art will understand that the state machine can be readily implemented with a CPU and a memory.
[0061]
Network adapter driver and disk control driver
The network adapter and the disk control driver can be implemented in at least two ways. One is to use the cutoff dimension through DMA (Direct Memory Access), and the other is to use PIO (Programmable I / O) voting. The former has an advantage that a program can be easily created, and can be performed without a complete arrangement of disk controller data. The latter has the advantage that time delay due to interruption can be avoided, but has the disadvantage that the processor is inefficiently used in the time required for continuous reading and writing.
[0062]
Additional example of NAD driver
Generally, a NAD device driver is created for each attached disk drive. However, just as a regional disk is split, the disks in the NAD device are split into several disk partitions that can be accessed by separate device drivers. Alternatively, several disks located in several physically independent NAD devices may be combined to be used logically as one disk.
[0063]
FIG. 17 shows an example in which a disk in the NAD is divided into several disk partitions in which one disk driver is assigned to all the partitions. The NAD driver A 462 is assigned to, for example, four partitions 463-466, and the NAD driver A 462 uses the partition table to process the specified I / O requests from the specific partitions 468 to 471 of the disk 461 in the NAD device 460. To quote. Similarly, NAD driver B473 is assigned to two partitions 474 and 475, and NAD driver B473 can be used to control two disk partitions 477 and 478 of disk 472 in NAD device 460.
[0064]
FIG. 18 shows an example in which a separate NAD device driver is generated and one disk is physically evaluated by another file system. The disk A 481 in the NAD device 480 is divided into four sections from 490 to 493, and the driver (a, 3) 485 is generated from four independent NAD drivers (a, 0) 482. Can control each disk partition through an independent network connection 486 (487, 488, or 489). Similarly, the disk B494 in the NAD device 480 is divided into two sections 499 and 500, and two independent NAD drivers (b, 0) 495 and NAD drivers (b, 1) 496 are generated. Can be controlled through an independent network connection 497 (or 498). Such an arrangement allows one hard disk to be physically mounted on another file system, as other network connections are used.
[0065]
FIG. 19 shows an example of how the present invention can recognize a physically independent multi-terminal disk in a NAD device as one disk. In particular, three lower surface NAD device drivers 521, 522 that control the 5 GB first NAD device 527 and the 10 GB second NAD device 528 and the 5 GB third NAD device 529 through other network connections 524, 525, and 526. 523 is integrated into one upper surface NAD driver 520 divided into shapes 530. The file system mounts "/ dev / nda" to access the entire 20 GB space.
[0066]
NAD system operating on Windows operating system
Using the example operating on a UNIX-based operating system, the system and method described above are equally applicable in implementing a NAD system operating on a Windows-based operating system. For example, since a NAD device is essentially treated as a regional disk by a Windows 2000 host, all disk operations performed by the host, including formatting and splitting, control the regional disk and can be performed on the NAD device.
[0067]
Such features are distinguished from other alternatives, such as those provided by NAS technology, in which the present invention amplifies disk space through file system arbitration, instead of adding individual disks directly to the device surface of the host system. Is that At the same time, since the NAD device is accessed through a network, the present invention uses a general regional disk to transmit a disk I / O request transmitted to a disk controller connected to an internal system bus to a network interface. Redirect to and transmit.
[0068]
That is, according to the present invention, a virtual host bus adapter is generated through pure software by changing a driver in a host. Therefore, the host does not have a physical host adapter actually connected to the system bus, but the NAD device is not. It recognizes that it has been connected to the system bus through the physical host adapter. Since the NAD device is as close as a local device connected to a bus inside the host, there is no need for the host to use a network address such as an IP address required to communicate with the NAD device. Instead, a data link frame with a save instruction is exchanged between the host and the NAD device.
[0069]
FIGS. 20A and 20B are views showing a hierarchical structure of a disk driver of the NAD system of the present invention in comparison with a normal disk system. FIG. 20A shows a normal Windows 2000 disk driver hierarchy having a hierarchical structure including a disk division manager 601, a disk class driver 602, a port driver 603, and a bus driver 604.
[0070]
In the Windows 2000 operating system, the generic term 'bus' refers to a single piece of hardware that is electrically connected to a device. The bus includes not only a bus such as a PCI bus but also any bus having a multi-terminal device such as a SCSI adapter, a horizontal port, a serial port, and a USB herb. One of the purposes of the bus driver is to arrange the devices attached to the bus one by one and generate each physical device object, because each physical device object is required in Windows2000. Thus, a bus driver is a set of software routines that have the function of allocating information about a particular bus, system addresses such as port addresses and IRQ numbers to devices connected to the bus. It is the port driver that has routines for performing most of the actual disk I / O operations.
[0071]
The main feature of the present invention is to replace the normal bus driver and port driver with a new bus driver and port driver, recognize the NAD device as a local disk, and connect the I / O related to the NAD device through the network port of the Windows 2000 host. An O operation can be performed.
[0072]
FIG. 20B illustrates a driver hierarchy of the present invention including a NAD port driver 613 and a NAD bus driver 614 that replace the corresponding normal Windows 2000 driver hierarchy of FIG. 20A. The NAD bus driver 614 implements a virtual host bus adapter to perform disk I / O operations on or from a set of NAD devices. The NAD port driver 613 implements one set of routines necessary for actually performing a disk milk output operation by redirecting and transmitting an I / O request to the NAD device through a Windows 2000 host network.
[0073]
FIG. 21 shows an example of a network environment in which the NAD device of the present invention is implemented in a multi-terminal host. The above example shows that the first host 621 and the second host 622 operate Windows 2000 connected to the first network 623 and the second network 624. The first host uses the disk (1,1) 631 and the disk (1,3) 633 through the first network, and uses the disk (2,1) 636 and the disk (2,2) 637 through the second network 625. . Similarly, the second host uses disk (1,2) 632, disk (1,4) 634, and disk (1,5) 635.
[0074]
The Windows 2000 system in which the NAD bus driver and the NAD port driver are mounted creates a device stack specified by Windows 2000 in order to make an I / O request. Each device in Windows 2000 is represented by a device object organized in a stack structure. The device object is a data structure created by the Windows 2000 system to help manage software hardware. Many such data structures may exist for one piece of physical hardware. The lower device object of the stack is called a physical device object PDO. On the PDO of the device object stack, there is an object called a functional device object FDO. Below and above the FDO is a collection of filter device objects. The Windows 2000 plug and play (PnP) management component builds a stack of device objects at the command of a device driver. The various drivers that use the stack for a single piece of hardware play different roles. That is, the function driver manages the device, and the bus driver manages the connection between the device and the computer.
[0075]
FIG. 22 illustrates an example of a device stack in which all filter device objects generated to implement the present invention have been omitted for simplicity.
Shown on the left is a layer of SCSI devices enumerated repeatedly at the top of the PCI bus, typical of a SCSI disk connected to a host PCI bus. First, the PnP manager is a self-contained driver for a virtual root bus that conceptually connects the computer to all hardware, including hardware buses such as PCI, that do not electronically announce their presence. Having. The root bus driver 640 obtains information about the PCI from the register initialized by the Windows 2000 setting program to generate the PCI bus PDO 641 of the PDO for the PCI bus.
[0076]
The PnP manager that has generated the PCI bus PDO641 loads the function driver for the PCI bus, and creates the PCI bus FDO642. The PCI bus function driver, which appears to have a set of SCSI devices in the example system of FIG. 21, is its own hardware device attached to the PCI bus to create a SCSI port PDO643. Are listed. When the SCSI port PDO 643 is created, the PnP manager loads the device for the SCSI port device and creates the SCSI port FDO 644. Similarly, SCSI disk PDOs such as 645 and 646 are created with each individual SCSI disk above the SCSI port, and SCSI disks FDO such as 647 and 648 are created by loading a disk class driver.
[0077]
The right side of FIG. 21 shows a PCI bus driver, a NAD bus driver which replaces a SCSI port driver, and a corresponding device stack for a NAD device which is created using the NAD port driver. At the top of the route is a NAD bus PDO that is not a regular hardware bus such as PCI, but a bus NAD designed for the Windows 2000 device stack to provide a virtual bus for NAD devices. There is a bus PDO651. Above the NAD bus PDO651, the PnP manager loads the NAD bus driver to create the NAD bus FDO652.
[0078]
In the present invention, since one set of NAD ports is realized to correspond to one NIC of the host, one set of NAD ports PDO 653 and 6534 for each individual network interface card (NICs) of the Windows 2000 host are repeated. Made. Above each NAD port PDO, such as 653 and 654, each NAD port FDO, such as 655 or 656, is made by loading a NAD port driver. What actually performs the NAD disk I / O operation is the NAD port driver. The NAD port driver redirects an I / O operation request to the corresponding NAD device via a specific NIC, transmits the request, and obtains a response of the I / O operation from the NAD device, thereby obtaining the NAD device I / O. Handle the request. Then, NAD port FDOs, such as 655 and 656, can be individually NAD device PDOs, such as 657, 658, 659, and 660, for individual NAD deices approached through a particular NAD port bound by a particular NIC. On top of the specific NAD port.
[0079]
FIG. 22 shows, as an example of FIG. 21, that two stacks 653 and 654 of NAD port objects were created because the first host has two NICs. The NAD devices, that is, the disk (1,1) 631, the disk (1,3) 633, the disk (2,1) 636, and the disk (2,2) 637 are composed of NIC (1,1) and NIC ( The host # 1 has four NAD devices from 657 to 660, two for each NAD device, as approached through 1,2). The PnP manager loads disk class drivers that create NAD device FDOs, such as 661, 662, 663, and 664, for each individual NAD device PDO, such as 657, 658, 659, and 660.
[0080]
Note that Yuichi's NAD bus driver and NAD port driver replace the regular bus driver and SCSI port driver to replace the NAD device for regular regional disks. Disk class drivers and other higher-level drivers in Windows 2000 should be kept intact without a single change in order for Windows 200 systems to recognize NAD devices like regional devices.
[0081]
Each request for an operation affecting a device in Windows 2000 uses an I / O request packet (IRP). The IRP is sent to the top of the stack for the device, and can propagate the stack to other devices. At each stage, the driver decides what to do with the IRP. At times, the driver does nothing other than transmitting the IRP. The driver may process the IRP completely without transmitting it, or execute and transmit the IRP. Taking the case of disk I / O as an example, as shown in FIG. 20B, one IRP for one file I / O sent to the file system driver is a volume manager of a disk class division manager, a division manager. And then sent to the disc class driver.
[0082]
If a SCSI request block (SRB) is required, the place where it is made to be included in the IRP is the disk class driver. One SRB is one data structure specified in Windows 2000 for SCSI device I / O. If the IRP is for a regular regional disk, the disk class driver passes the new IRP to the SCSI port driver which performs the actual disk I / O operations. If the IRP is for a NAD device connected to the network, the disk class driver transmits the IRP to the NAD port driver which completes the NAD device I / O through the network interface.
[0083]
Regardless of the specific device type of the regional device, the NAD device, and the disk, as shown in FIGS. 20A and 20B, one of the regional disks or the disks attached to the network, one IRP for a specific disk is Eventually, the disc is sent to the corresponding disc because a separate disc object stack is created for each individual disc. FIG. 22 shows that a separate SCSI disk FDO / PDO and a NAD device FDO / PDO are coupled to respective individual regional disks and NAD devices.
[0084]
The present invention replaces the normal disk bus driver and port driver with a new NAD bus device and port device as shown in FIG. 20B so that the Windows system recognizes the NAD device as a local disk.
[0085]
All Windows 2000 device drivers have the ability to create or remove FDO for each device, and the dispatch function to handle IRPs transmitted over the driver layer. The main function number and the sub function number in the IRP determine what dispatch function is activated.
[0086]
Next, an actual software module realized by the NAD bus driver and the port driver of the present invention to realize the Windows 2000 NAD system will be described.
[0087]
NAD bus driver
The NAD bus driver is a set of software modules that implements a virtual host bus adapter to which an NAD port is attached and an individual NIC of one host is recognized as a NAD port. The function of the NAD bus driver is basically the same as the function of a normal PCI bus driver of Windows 2000. The NAD bus driver performs a function of checking the number of NICs installed in the host computer and listing the NICs one by one in order to create a NAD port PDO for each existing NIC. In addition, a function of manufacturing, starting, stopping, and removing one NAD port is performed. In the NAD system, individual NICs are regarded as independent NAD ports, and NAD disk ports for NAD devices are created by the number of independently operated network devices. This can be understood from the sample configuration shown in FIG.
[0088]
The difference between the NAD bus driver and the normal PCI bus driver is that the NAD bus driver is for a NAD device that is physically independent of the host system bus but is connected through a network port. I get a point. Unlike a conventional Windows 2000 system in which a device is connected to or removed from a hardware bus by shutting down hardware, a NAD bus driver is realized by creating a cannel thread to attach or remove a NAD port to or from a NAD bus. The kernel sled created by the NAD bus driver starts operating when the IRP having the main function number IRP_MJ_PNP and the sub-function number IRP_MN_START_DEVICE is transmitted from the PnP manager to the NAD bus FDO. The thread ends when the NAD bus FDO is removed. The sled periodically searches for the presence of the NIC. If a new NIC is found, the thread creates a new NAD port PDO for the NIC and includes the newly created NAD port PDO in its own NAD port PDO list. The sled then activates the PnP manager to have the NAD port PDO recognized by the system. The deletion of the NIC is also detected by the sled since the NAD port PDO where the sled was created before can detect the absence of the NIC found from the list without the corresponding NIC. If it is found that the NIC has been deleted at the host, the sled deletes the corresponding NAD port PDO in the list, and activates the PnP manager to delete the NAD port in the Windows system.
[0089]
Software routines implemented in the NAD bus driver can be divided into five types. The table below lists some of the routines implemented in the NAD bus driver.
[0090]
[Table 4]
Figure 2004527817
[0091]
[Table 5]
Figure 2004527817
[0092]
[Table 6]
Figure 2004527817
[0093]
[Table 7]
Figure 2004527817
[0094]
[Table 8]
Figure 2004527817
[0095]
NAD port driver
The port driver is a lower-level driver corresponding to a system-determined device control request or a driver-determined device I / O control request from a corresponding class driver. The NAD port driver can set a driver at an initial stage and have a basic function function for creating a NAD port FDO and a dispatch function function for processing an IRP transmitted from a disk class driver layer. The IRP transmitted from the disk class driver layer includes a SCSI request block (SRB) that specifies that the actual I / O instruction can be performed on a SCSI device.
[0096]
Tables 9 and 10 list the basic functions whose basic role is the same as that of the NAD bus driver described above, and some dispatch functions with detailed descriptions.
[0097]
[Table 9]
Figure 2004527817
[0098]
[Table 10]
Figure 2004527817
[0099]
In Windows 2000, a device I / O control instruction is included in a device I / O control number in an IRP, and a device I / O control function is realized by a port driver for handling the corresponding device I / O control number.
[0100]
Except for the normal device I / O function of Windows 2000, since the additional device I / O control function is realized by the NAD port driver, the NAD is added or removed dynamically without stopping the operation of the Windows system. You. Since the regional disk is physically connected to the physical hardware bus, the addition and control of the regional disk with the normal regional disk is detected directly by the Windows system when starting up the system. Therefore, the disk PDO for the regional disk is created by shutting down the hardware at system startup. Therefore, a normal port driver does not need to have a function for adding or removing a PDO of a disk device during operation of the system.
[0101]
However, in the NAD system, addition or removal of the NAD device may occur during the operation of the Windows 2000 system. Therefore, there is a need for a means that can create or remove a disk PDO for a newly mounted or removed disk.
[0102]
The device I / O control function implemented in the present invention handles the agile addition and removal of NADs as follows. If a device control IRP indicating that the new NAD hardware device is connected to the network is transmitted to the NAD port FDO, the NAD port FDO will use the NAD for the new NAD so that the system can recognize the disk. Make a device PDO. A device control IRP for removing the disk for removal of the NAD device is sent to the NAD port FDO and is advanced by the NAD port FDO.
[0103]
The dispatch functions that handle the device I / O control IRP are summarized in the following table. Note that the device I / O control functions NASPortFDoDeviceControl (), NADPortPluInDevice () and NADPortUnpluDevice () are characteristic functions of the present invention for the purpose of dynamically adding and removing NADs.
[0104]
[Table 11]
Figure 2004527817
[0105]
FIG. 23A shows the flow of the IRP, SRB, and CDB for a SCSI disk connected to a normal hardware bus such as the PCI bus of the Windows system 2000. The disk class driver 681 transmits the IRP having the SRB to the SCSI port driver 682. The SRB is a data structure including an instruction writer block including information on a requested I / O and a SCSI-2 standard instruction. Upon receiving the IRP having the SRB from the disk class driver, the SCSI port driver 682 and the SCSI bus driver 683 send the CDB extracted from the SRB to the SCSI host adapter in order to perform the actual device I / O to the SCSI disk 685. To communicate.
[0106]
In a normal regional disk, a disk I / O command is transmitted to a disk controller in a host adapter using an SRB data structure. However, in the NAD system of the present invention, the disk I / O command is transmitted to the NIC of the host.
[0107]
FIG. 23B shows the flow of IRP, SRB, and CDB (or other forms of I / O instructions) in a NAD system. When the disk class driver 691 transmits the IRP together with the SRB to the NAD port driver 692 and the NAD bus driver 693, the NAD bus driver 693 transfers the actual device I / O to the NAD device via the network 696 from the CDB extracted from the SRB. Communicate to NIC 694 to complete.
[0108]
In the present invention, the NAD system supports various types of disks including SCSI and IDE. If the NAD device is composed of only SCSI disks, the CDB is transmitted to the host NIC, and the SCSI disks attached to the network perform the required disk I / O.
[0109]
If the NAD device is composed of a disk device of a different form from SCSI such as IDE, the CDB should be converted into instructions that can be processed by a specific device. The conversion of the CDB in such a case is performed by the NAD port driver or the NAD device. If the conversion occurs at the NAD, the Windows 2000 host will simply tell the host NIC to send the CDB to SCSI. If the conversion is performed by the NAD port driver, the NAD port driver function should convert the CDB into a set of disk I / O instructions suitable for the specific hardware disk type.
[0110]
The NAD system of the present invention supports both cases, and the command format such as CDB and hardware adoption command is determined when a specific NAD is installed. Given Table 12, given some dispatch functions to process SRBs with required CDB operating code, the NAD port driver function of the present invention is implemented in any way to process SRB and CDB. To indicate If the NAD port driver is to convert the CDB into a set of hardware adopted I / O instructions, a processing function like SRB is needed.
[0111]
[Table 12]
Figure 2004527817
[0112]
Communication between host and NAD
Disk I / O commands in the NAD system are communicated to the host NIC instead of the regional disk host adapter, since the I / O should be done over a non-bus network. The Windows system provides a network driver interface (NDIS), which is a type of network driver interface.
[0113]
FIG. 24 shows an NDIS protocol driver 701, an NDIS arbitration driver 702 for specifying a higher-level protocol used in the NDIS driver hierarchy defined in Windows, an NDIS small port 703 for hardware specification, and a network interface card (NIC). 704.
[0114]
In the present invention, all NAD port driver functions for transmitting an I / O command to a NAD device are implemented to transmit the command to an NDIS protocol driver layer for transmitting the command to a NAD device through a network.
[0115]
Upon receiving an IRP including an SRB for a disk I / O operation or an I / O control command for a specific disk I / O operation from a disk class driver, the NAD port driver transmits a new IRP including the corresponding CDB as a protocol. Communicate to the driver. Thereafter, the protocol driver sends the CDB of the SCSI-2 standard I / O command to the NAD device, and receives the reply from the NAD device to process the I / O command. If the host computer should send a specific hardware I / O command that is not a CDB, the NAD port driver sends an IRP containing the hardware-specific instructions to the NIDS protocol driver instead of the CDB, as shown in FIG. 23B. Note that
[0116]
NDIS provides network manufacturers with transmission transparency, since all drivers required to communicate over the network must be made to call the NDIS interface to gain access to the network. It is. Therefore, the communication between the NAD device of the present invention and the host computer is also performed in such a manner, so that the NDIS protocol driver is provided, so that the NAD port driver does not need a separate function for communication.
[0117]
The communication protocol implemented in the NDIS protocol driver can adopt a standard protocol or a non-standard protocol. Since a standard protocol such as IP involves overhead, it is preferable to use a non-standard protocol for performance and security. In order to provide a communication protocol for stably processing NADI / O commands between a Windows 2000 host and a NAD device, the present invention complies with the NDIS designation of a 2000 network system that can implement a Windows proprietary communication protocol.
[0118]
NAD equipment
The technical configuration of the NAD device operating in the Windows-based operation system is the same as that of the NAD device operating in the UNIX-based operation system shown in FIG.
[0119]
Advantages of NAD system compared to NAS and SAN
The NAD system of the present invention, which operates one of UNIX and Windows operation systems, has many advantages over the NAS system and the SAN system. Unlike a NAS system that provides a file storage service as a method of adding a file server, a NAD device is attached to a host computer like a regional disk connected to a host system bus. Unlike the SAN system, the NAD device of the present invention is used by simply piercing a network port without adding any special switch or network device.
Therefore, the NAD system has user convenience, system availability, range, economy, and excellent performance.
[0120]
All disk operations related to the disk, including operations such as forming, splitting, sharing, mounting, etc., can be performed on the NAD device as well as on the regional disk. Since the NAD device can be used immediately by the host like a regional disk, it is easy to manage and convenient to use. All additions, removals, and changes in disk configuration in the NAS system are possible only through the NAS operating system using people or software. The NAD system also provides excellent convenience without having to open and close the case of the host computer when loading and removing a disk.
[0121]
NAD systems provide nearly unlimited range of disk space. The number of NAD devices that can be attached to a network is virtually unlimited. On the other hand, the number of disks through the NAS system is considerably limited due to economic reasons and problems associated with managing a large number of NAS servers.
[0122]
NAS systems are more economical than NAS systems and SAN systems because they do not inherently use file server software or other additional specific hardware equipment.
[0123]
Media exchange NAD system
The NAD system of the present invention can be realized by proxy as an intermediate exchange storage device.
The medium exchange storage device is a special storage device physically divided into two parts, one is a medium storing data, and the other is a driver for performing I / O operations on the medium. A floppy disk driver and a CD roam driver are examples of medium exchange storage devices. Regardless of whether the medium is loaded or not, the medium exchange storage device can be registered in the host computer, and a medium such as a diskette can be inserted into the driver in a dynamic manner.
[0124]
Since the NAD device can be dynamically plugged into or removed from the network port, the virtual driver using the NAD is implemented in the form of a media exchange storage device. Windows 2000 provides an exchange class driver model to implement a medium exchange storage device. In order to implement a medium exchange NAD system, a class driver for the NAD system is implemented according to the model of the Windows 2000 exchange class driver. Two sub-drivers, a NAD port driver and a NAD bus driver, are used to implement such a media exchange NAD system.
[0125]
Example using converter and counter converter
Instead of using a network interface card (NIC) and a new host bus adapter, the network mounted disk of the present invention converts the data link frame containing the save command into a protocol conversion that allows the frame to be transmitted over the network. This can be realized by providing a device to a host surface and installing a counter converter for converting a data link frame including a storage command received through a network into a storage command on the device surface.
[0126]
Since the converter is a specialized network interface, it summarizes I / O commands and data into data link frames for transmission to I / O devices over a network without the overhead of performing a general communication protocol.
[0127]
Tape system and CD jukebox
The type of storage device directly connected to the network using the interface of the present invention is not limited to a disk system. The tape system and the CD drive use the IDE of the bus interface like the disk system, or the SCSI interface. For example, the present invention can be used to connect a multi-terminal CD drive directly to the network, which allows for effective expenditure realization of a CD jukebox.
[0128]
The present invention has been described in the above embodiments, but does not limit the embodiments. It will be understood by those having ordinary skill in the art that many changes can be made to the configuration and form of the above-described embodiment without departing from the spirit and scope of the invention.
[Brief description of the drawings]
[0129]
FIG. 1 is a block diagram showing a network environment in which a disk system equipped with a network according to the present invention is used.
FIG. 2 is a diagram illustrating a method of accessing a plurality of hosts through a network by a multi-terminal NAD device according to the present invention.
FIG. 3 is a diagram illustrating an example of a method in which a multi-terminal NAD device approaches a plurality of hosts.
FIG. 4 is a diagram showing another example in which each disk in the NAD is handled as a separate disk.
FIG. 5 illustrates how a block device driver, in particular, a NAD device driver, is registered or unregistered under a UNIX operating system.
FIG. 6 is a diagram showing a relationship between a directory, a device file, and a device driver and a device.
FIG. 7 is a diagram illustrating a method in which a request function directly transmits a command to a device.
FIG. 8 is a diagram illustrating a request function for operating a device for accessing an operating system.
FIG. 9 is a block diagram of a regional disk system and a NAD device operated by UNIX.
FIG. 10 is a diagram illustrating a device for distinguishing attached NAD devices and searching for a sled to provide NAD information to a NAD device management program.
FIG. 11A is a diagram illustrating an example of a network formed by using a connection setting thread between a NAD device driver and a NAD device.
FIG. 11B is a diagram illustrating an example of a network formed by using a connection setting thread between a NAD device driver and a NAD device.
FIG. 12 is a diagram illustrating a means for executing a NAD device driver using an apparatus for approaching a sled.
FIG. 13 is a diagram illustrating a means for executing a NAD device driver without using a device for approaching a sled.
FIG. 14 is a drawing showing an example of the structure of a NAD device.
FIG. 15 is a functional block diagram of the NAD control device.
FIG. 16 is a diagram simply showing a state change of a state machine by a main control function of a NAD control device.
FIG. 17 is a diagram illustrating a method of dividing a disk in a NAD device into disk partitions to which a device driver is assigned.
FIG. 18 is a diagram illustrating a method in which an independent NAD device driver operates and substantially one disk is added by another file system.
FIG. 19 illustrates that the NAD system logically recognizes several independent NAD disks as one disk.
FIG. 20A is a diagram illustrating a hierarchy of a general disk system and a disk driver of an NAD system of the Windows 2000 operating system.
FIG. 20B is a diagram illustrating a hierarchy of a general disk system and a disk driver of an NAD system of the Windows 2000 operating system.
FIG. 21 illustrates an environment in which the NAD system of the present invention is used in the Windows 2000 operating system.
FIG. 22 is a diagram illustrating an example in which a device stack is generated in the Windows 2000 operating system.
FIG. 23A is a diagram illustrating the flow of IRP, SRB, and CDB in a typical Windows 2000 operating system disk system.
FIG. 23B is a diagram showing the flow of IRP, SRB, and CDB in the NAD system of the Windows 2000 operating system disk system.
FIG. 24 illustrates an NDIS (Network Device Interface Specification) of the Windows 2000 operating system.

Claims (85)

システムバスを有してオペレーティングシステムを作動させるホストが、一定のネットワークプロトコルを使用する他の応用トラフィック及び保存を含む広範囲のネットワークトラフィックを処理するために、ホストと他の装置とを連結するフロントエンドネットワークを通じてディスクを制御しているネットワーク取付(NAD)システムにおいて、
凡用のネットワーク接続を提供するためにホストに装着されるネットワークインターフェースカード(NIC)と、
データを保存する一つ以上のディスクを有し、ホストからのデータリンクフレーム形態のディスクアクセス命令をネットワークを通じて受信するためのネットワーク取付けディスク(NAD)装置と、
前記NICを媒介にネットワークを通じてNAD装置を制御するソフトウェアの仮想ホストバスアダプターを作るためのホストで実行されるディバイスドライバーとを含み、
前記仮想ホストバスアダプターは物理バスアダプター装置が装置を制御する方法と同様の方法でNAD装置を制御して、ホストがNAD装置をホストのシステムバスに直接に連結された地域バスがディバイスであるかのように認識するNAD装置。
A host having a system bus and running an operating system, a front end for linking the host with other devices to handle a wide range of network traffic including storage and other application traffic using certain network protocols. In a network mounting (NAD) system controlling disks through a network,
A network interface card (NIC) attached to the host to provide a general network connection;
A network attached disk (NAD) device having one or more disks for storing data and receiving a disk access command in the form of a data link frame from a host through a network;
A device driver executed on a host for creating a virtual host bus adapter of software for controlling the NAD device through the network via the NIC;
The virtual host bus adapter controls the NAD device in the same manner as the physical bus adapter device controls the device, and determines whether the local bus in which the host directly connects the NAD device to the host system bus is a device. NAD device that recognizes as follows.
前記ネットワークは、有線のネットワークからなることを特徴とする請求項1記載のNADシステム。The NAD system according to claim 1, wherein the network is a wired network. 前記ネットワークは、無線のネットワークからなることを特徴とする請求項1記載のNADシステム。The NAD system according to claim 1, wherein the network comprises a wireless network. 前記NICは、イーザーネットカードからなることを特徴とする請求項1記載のNADシステム。The NAD system according to claim 1, wherein the NIC comprises an Ethernet card. 前記オペレーティングシステムは、UNIX系列のものであることを特徴とする請求項1記載のNADシステム。2. The NAD system according to claim 1, wherein the operating system is of a UNIX type. 前記ディバイスドライバは、
ディバイスドライバーがホストの前記ディバイスドライバーを登録するためにディバイスファイルとディバイスルーチンファイルとを含むことを特徴とする請求項5記載のNADシステム。
The device driver comprises:
6. The NAD system according to claim 5, wherein the device driver includes a device file and a device routine file for registering the device driver of the host.
NAD装置に接近するためにディバイス接近スレードをさらに含むことを特徴とする請求項6記載のNADシステム。7. The NAD system of claim 6, further comprising a device access sled for accessing the NAD device. ネットワークに取り付けられた装置を探すためにディバイス探索スレードをさらに含むことを特徴とする請求項6記載のNADシステム。7. The NAD system of claim 6, further comprising a device search thread for searching for devices attached to the network. ディバイスドライバとNADディバイスとを連結するためにネットワーク連結セッティングスレードをさらに含むことを特徴とする請求項6記載のNADシステム。7. The NAD system according to claim 6, further comprising a network connection setting thread for connecting the device driver and the NAD device. 前記NADディスクは多数の個別ディスク分割をさらに含むことを特徴とする請求項6記載のNADシステム。The NAD system according to claim 6, wherein the NAD disk further includes a number of individual disk partitions. 前記ディバイスドライバーは多数の個別ディバイスドライバーを含み、各個別ディバイスドライバーが個別ディスク分割を制御し、個別ディスク分割を制御するための各個別ディスク分割は、独立した地域ディスクにアクセスすることを特徴とする請求項10記載のNADシステム。The device driver includes a plurality of individual device drivers, each individual device driver controls an individual disk partition, and each individual disk partition for controlling the individual disk partition accesses an independent regional disk. The NAD system according to claim 10. ディバイスドライバーは多数の個別分割を含み、各ドライバーの分割は各個別ディスク分割を制御することを特徴とする請求項10記載のNADシステム。11. The NAD system of claim 10, wherein the device driver includes a number of individual partitions, and each driver partition controls each individual disk partition. 二番目のNAD装置、二番目のディバイスドライバー、及び、前記ディバイスドライバーと前記二番目のディバイスドライバとを結合して、前記NAD装置と前記二番目のNAD装置とが一つの地域装置として認識されるようにする統合ディバイスドライバー、をさらに含むことを特徴とする請求項1記載のNADシステム。A second NAD device, a second device driver, and combining the device driver with the second device driver, so that the NAD device and the second NAD device are recognized as one local device The NAD system according to claim 1, further comprising an integrated device driver configured to perform the operation. 前記ドライバーはホストのシステムバスに直接に連結されている地域装置のように認識されるNAD装置にアクセスするために仮想のホストアダプターを作るバスドライバー、
ホストからのディスクアクセス命令をネットワークポートを通じて前記NAD装置に伝達するポートドライバーを含むことを特徴とする請求項1記載のNADシステム。
A bus driver that creates a virtual host adapter to access a NAD device recognized as a local device directly connected to a host system bus;
The NAD system according to claim 1, further comprising a port driver for transmitting a disk access command from a host to the NAD device through a network port.
前記オペレーティングシステムはWindows系列のものであることを特徴とする請求項14記載のNADシステム。The NAD system according to claim 14, wherein the operating system is a Windows-based operating system. 前記NAD装置は、
ディスクを制御するディスク制御機、及び、
ネットワークを通じてディスクアクセス命令を受信するネットワークアダプターをさらに含むことを特徴とする請求項1記載のNADシステム。
The NAD device comprises:
A disk controller for controlling the disk, and
The NAD system according to claim 1, further comprising a network adapter that receives a disk access command through a network.
前記NAD装置は、前記一つ以上のディスクは地域ディスクにフォーマットされることを特徴とする請求項16記載のNADシステム。17. The NAD system of claim 16, wherein the one or more disks are formatted as regional disks. 実用機能を提供するフィルタープログラムをさらに含むことを特徴とする請求項16記載のNADシステム。17. The NAD system according to claim 16, further comprising a filter program for providing a practical function. 前記実用機能は多端子のホスト間の接近共有を制御する機能を含むことを特徴とする請求項18記載のNADシステム。19. The NAD system according to claim 18, wherein the practical functions include a function of controlling access sharing between multiple terminals of the host. 実用機能は一つのホストから他のホストへのアクセス権の伝送を制御する機能を含むことを特徴とする請求項18記載のNADシステム。19. The NAD system according to claim 18, wherein the practical functions include a function of controlling transmission of an access right from one host to another host. 実用機能はNAD装置の自動バックアップを提供する機能を含むことを特徴とする請求項18記載のNADシステム。19. The NAD system according to claim 18, wherein the practical functions include a function of providing automatic backup of the NAD device. 前記実用機能はNAD装置へのアクセスを制御する機能を含むことを特徴とする請求項18記載のNADシステム。19. The NAD system according to claim 18, wherein the practical functions include a function of controlling access to a NAD device. ホストが一定のネットワークプロトコルを使用する他の応用トラフィック並びに保存を含む凡用のネットワークトラフィックを処理するためにホストと他の装置とを連結する前後ネットワークを通じてディスクを有するネットワーク取付ディスク(NAD)装置を制御するためのシステムバスを有しかつオペレーティングシステムを作動させるホスト側ディスクインターフェースにおいて、
凡用のネットワーク接続を提供するためホストに装着されるネットワークインターフェースカード(NIC)と、
NICを媒介にネットワークを通じてNAD装置を制御するソフトウェアの仮想ホストバスアダプターを生成するためのホストで実行されるディバイスドライバーとを含み、前記仮想ホストバスアダプターが物理バスアダプター装置が装置を制御する方法と同様の方法でNAD装置を制御して、ホストがNAD装置をホストのシステムバスに直接に連結された地域ディバイスであるかのように認識することから成るホスト側ディスクインターフェース。
A network-attached disk (NAD) device having a disk through a network before and after connecting the host and other devices to handle general application traffic including storage and other application traffic using a certain network protocol. In a host-side disk interface having a system bus for controlling and operating an operating system,
A network interface card (NIC) attached to the host to provide a general network connection;
A device driver executed on a host for generating a virtual host bus adapter of software for controlling the NAD device through the network via the NIC, wherein the virtual host bus adapter controls the physical bus adapter device to control the device; and A host-side disk interface comprising controlling the NAD device in a similar manner so that the host recognizes the NAD device as if it were a local device directly connected to the host's system bus.
前記オペレーティングシステムはUNIX系列のものであることを特徴とする請求項23記載のディスクインターフェース。24. The disk interface according to claim 23, wherein the operating system is of a UNIX series. ディバイスドライバーをホストに登録するためのディバイスドライバーのためにディバイスファイルとディバイスドライバールーチンとを更に含むことを特徴とする請求項24記載のディスクインターフェース。The disk interface according to claim 24, further comprising a device file and a device driver routine for a device driver for registering the device driver with the host. 前記NAD装置にアクセスするためのディバイス接近スレードをさらに含むことを特徴とする請求項25記載のディスクインターフェース。26. The disk interface of claim 25, further comprising a device access sled for accessing the NAD device. ネットワークに取り付けられた装置を探索するために装置探索スレードをさらに含むことを特徴とする請求項25記載のディスクインターフェース。The disk interface according to claim 25, further comprising a device search thread for searching for devices attached to the network. ディバイスドライバーとNAD装置との連結をために連結セッティングスレードをさらに含むことを特徴とする請求項25記載のディスクインターフェース。The disk interface of claim 25, further comprising a connection setting thread for connecting the device driver to the NAD device. NAD装置は多数の個別ディスクに分割されたディスクを有していることを特徴とする請求項25記載のディスクインターフェース。26. The disk interface according to claim 25, wherein the NAD device has a disk divided into a number of individual disks. 前記ディバイスドライバーは多数の個別ディバイスドライバーを含み、各個別ディバイスドライバーが各個別ディスク分割が独立的な地域ディスクに接近する前記個別ディスク分割を制御することを特徴とする請求項29記載のディスクインターフェース。30. The disk interface of claim 29, wherein the device driver includes a number of individual device drivers, each individual device driver controlling the individual disk partitioning where each individual disk partition approaches an independent regional disk. ディバイスドライバーは各個別分割を制御する多数の分割を含み、各ドライバー分割が各個別ディスク分割を制御することを特徴とする請求項29記載のディスクインターフェース。30. The disk interface of claim 29, wherein the device driver includes a number of partitions for controlling each individual partition, and each driver partition controls each individual disk partition. ディバイスドライバーはホストのシステムバスに直接に連結される地域装置のようにNAD装置にアクセスする仮想のホストバスアダプターを生成するバスドライバー;
ネットワークを通じてディスク接近命令を伝達するポートドライバーを含むことを特徴とする請求項23記載のディスクインターフェース。
A device driver for generating a virtual host bus adapter for accessing a NAD device such as a local device directly connected to a host system bus;
The disk interface according to claim 23, further comprising a port driver for transmitting a disk access command through a network.
オペレーティングシステムはWindows系列のものであることを特徴とする請求項32記載のディスクインターフェース。33. The disk interface according to claim 32, wherein the operating system is of the Windows family. システムバスを有するホストにたいしネットワークを介して接続することによってネットワーク取付ディスク(NAD)装置をそれがあたかも前記ホストの前記システムバスに直接に接続されているかのように認識する仮想ホストバスアダプターを前記ホストが有するようになったネットワーク取付ディスク(NAD)装置において、
前記ネットワークを通じてデータリンクフレームのディスク接近命令を受信するネットワークアダプターと、
ディスク接近命令を実行するためにLANアダプターに接続したディスク制御装置と、
データ保存ディスク、及び
前記NAD装置の作動を制御するために前記ネットワークアダプターと前記ディスク制御装置とに接続した制御装置と、から成るネットワーク取付ディスク(NAD)装置。
A virtual host bus adapter that recognizes a network-attached disk (NAD) device as if it were directly connected to the system bus of the host by connecting to the host having a system bus over the network. In a network-attached disk (NAD) device that the host has,
A network adapter for receiving a disk access command of a data link frame through the network;
A disk controller connected to a LAN adapter to execute the disk approach command;
A network-attached disk (NAD) device comprising a data storage disk and a controller connected to the network adapter and the disk controller for controlling operation of the NAD device.
前記ネットワークはイーザーネットで運営されることを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the network is operated by an Ethernet network. 前記ディスクは地域ディスクにフォーマットされることを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the disk is formatted as a regional disk. 前記ディスクは地域ディスクに分割されることを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the disk is divided into regional disks. 前記ネットワークアダプターはホストと媒体アクセス制御(MAC)装置とからデータを受けるための物理ネットワークインターフェースを含むことを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the network adapter includes a physical network interface for receiving data from a host and a medium access control (MAC) device. 前記制御装置はNAD装置のオペレーションを制御するための状態マシンを有する制御装置を含むことを特徴とする請求項34記載のNAD装置。35. The NAD device of claim 34, wherein the control device comprises a controller having a state machine for controlling operation of the NAD device. 前記制御装置はディスクへのアクセスを制御するためのフィルターを有する制御装置を含むことを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the control device includes a control device having a filter for controlling access to a disk. 前記ディスクは多数のディスクに分割されることを特徴とする請求項34記載のNAD装置。The NAD device according to claim 34, wherein the disk is divided into a number of disks. 各ディスク分割は別途のドライバーにより制御されることを特徴とする請求項41記載のNAD装置。The NAD device according to claim 41, wherein each disk division is controlled by a separate driver. 凡用のネットワーク連結を提供するためにホストに装着されるネットワークインターフェースカード(NIC)と、
保存装置がホストのシステムバスに直接に連結された地域ディバイスであるようにネットワークポートを認識する仮想バスアダプターを生成するバスドライバーと、
ネットワークポートを通じて保存命令を伝達するポートドライバーを含む、凡用のネットワークトラフィックを処理するために、ホストと他の装置とを連結するフロントエンドネットワークを通じて保存装置を制御するためのシステムバスを有するホスト側の保存インターフェース。
A network interface card (NIC) attached to the host to provide a general network connection;
A bus driver that creates a virtual bus adapter that recognizes the network port as if the storage device is a regional device directly connected to the host system bus;
A host having a system bus for controlling the storage device through a front-end network connecting the host and other devices to process general network traffic, including a port driver for transmitting a storage command through a network port. Save interface.
前記保存装置はディスクであることを特徴とする請求項43記載の保存インターフェース。The storage interface according to claim 43, wherein the storage device is a disk. 前記保存装置はテープシステムであることを特徴とする請求項43記載の保存インターフェース。The storage interface according to claim 43, wherein the storage device is a tape system. 前記保存装置はメモリシステムであることを特徴とする請求項43記載の保存インターフェース。The storage interface of claim 43, wherein the storage device is a memory system. 前記保存装置はCDドライブであることを特徴とする請求項43記載の保存インターフェース。The storage interface according to claim 43, wherein the storage device is a CD drive. 前記ホストはUNIX系のオペレーティングシステムであることを特徴とする請求項43記載の保存インターフェース。The storage interface according to claim 43, wherein the host is a UNIX-based operating system. 前記ホストはWindows系のオペレーティングシステムであることを特徴とする請求項43記載の保存インターフェース。The storage interface according to claim 43, wherein the host is a Windows-based operating system. システムバスを有するホストにたいしネットワークを介して接続することによってネットワーク取付保存装置をそれがあたかも前記ホストの前記システムバスに直接に接続されているかのように認識する仮想ホストバスアダプターを前記ホストが有するようになったネットワーク取付保存装置において、
保存装置と、
前記ネットワークを介して保存命令を受けるネットワークアダプターと、前記保存命令を実行する保存制御装置とから成るネットワーク取付保存装置。
By connecting to a host having a system bus over a network, the host recognizes a network attached storage device as if it were directly connected to the system bus of the host. In the network attached storage device which came to have,
Storage device,
A network-attached storage device, comprising: a network adapter that receives a storage command via the network; and a storage control device that executes the storage command.
前記保存装置のオペレーションを制御する状態マシンをさらに含むことを特徴とする請求項50記載のネットワーク取付保存装置。The network attached storage device of claim 50, further comprising a state machine controlling operation of the storage device. 前記保存装置はディスクであることを特徴とする請求項50記載のネットワーク取付保存装置。The storage device according to claim 50, wherein the storage device is a disk. 前記保存装置はテープ装置であることを特徴とする請求項50記載のネットワーク取付保存装置。The storage device according to claim 50, wherein the storage device is a tape device. 前記保存装置はCDドライブであることを特徴とする請求項50記載のネットワーク取付保存装置。The storage device according to claim 50, wherein the storage device is a CD drive. 前記保存装置はメモリ装置であることを特徴とする請求項50記載のネットワーク取付保存装置。The storage device of claim 50, wherein the storage device is a memory device. プロトコルをディスクアクセス命令からディスクアクセス命令を含むデータリンクフレームに変換するためのホストバスアダプターとしてのプロトコル変換機を含み、ディバイスドライバーは前記ディスク装置をあたかも前記ホストのシステムバスに連結された地域ディスクのように認識することから成るネットワークを通じて前記ディスク装置を制御するためにシステムバスを有してオペレーティングシステムを作動させるホスト側のディスクインターフェース。A protocol converter as a host bus adapter for converting a protocol from a disk access command to a data link frame including a disk access command, wherein a device driver connects the disk device to a local disk connected to the host system bus A disk interface on a host side having a system bus for operating an operating system to control the disk device through a network comprising: オペレーティングシステムはUNIX系のものであることを特徴とする請求項56記載のディスクインターフェース。57. The disk interface according to claim 56, wherein the operating system is of a UNIX type. オペレーティングシステムはWindows系のものであることを特徴とする請求項56記載のディスクインターフェース。57. The disk interface according to claim 56, wherein the operating system is of a Windows type. データを保存するためのディスクと、
ディスクアクセス命令を行うためのディスク制御機と、
ディスクアクセス命令を含むデータリンクフレームをネットワークを通じて受信し、ネットワークに連結されたネットワークアダプターと、;
前記ネットワークアダプター及び前記ディスク制御機に連結されて、受信データリンクフレームからディスクアクセス命令を検索する逆プロトコル制御装置とを含み、システムバスを有するホストが前記ディスク装置をあたかも前記ホストのシステムバスに直接に連結された地域ディバイスであるかのように認識することから成る前記システムバスを有するホストに前記ネットワークを通じて連結されたNAD取付ディスク(NAD)ディバイス。
A disk for storing data,
A disk controller for performing a disk access instruction;
Receiving a data link frame including a disk access command through a network, and a network adapter connected to the network;
A reverse protocol controller connected to the network adapter and the disk controller for retrieving a disk access command from a received data link frame, wherein a host having a system bus connects the disk device directly to the system bus of the host. An NAD-attached disk (NAD) device connected through the network to a host having the system bus, comprising recognizing the device as if it were a regional device.
保存命令をデータリンクフレームに変換して、前記保存装置をネットワークを通じて制御するためのホストバスアダプターとしてのプロトコル変換機と、
前記保存装置をネットワークを通じて制御することで、前記ホストコンピュータが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを生成するためのディバイスドライバーとを含むことから成る、ネットワークに連結された保存装置をネットワークを通じて制御するシステムバスを有するホストの保存インターフェース。
A protocol converter as a host bus adapter for converting the storage command into a data link frame and controlling the storage device through a network;
A device driver for generating a virtual host bus adapter that controls the storage device through a network so that the host computer recognizes the storage device as if it were a local device directly connected to the host system bus. A storage interface of a host having a system bus for controlling a storage device connected to the network through the network, the storage interface comprising:
前記保存装置はディスクであることを特徴とする請求項60記載の保存インターフェース。The storage interface of claim 60, wherein the storage device is a disk. 前記保存装置はテープ装置であることを特徴とする請求項60記載の保存インターフェース。The storage interface according to claim 60, wherein the storage device is a tape device. 前記保存装置はCDドライバーであることを特徴とする請求項60記載の保存インターフェース。The storage interface of claim 60, wherein the storage device is a CD driver. 前記保存装置はメモリ装置であることを特徴とする請求項60記載の保存インターフェース。The storage interface of claim 60, wherein the storage device is a memory device. 保存命令を含むデータリンクフレームをネットワークを通じて受信するためのネットワークアダプター;
前記ネットワークアダプターに連結された、前記保存命令を行うための保存制御装置と、
データを保存するための保存装置と、
前記ネットワークアダプター、及び保存制御装置に連結された、前記ネットワークアダプターにより受信されたデータリンクフレームから保存命令を検索するためのカウンター変換装置を含み、前記ホストが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを有する前記システムバスを有するホストにネットワークを通じて連結されるネットワーク取付保存装置。
A network adapter for receiving a data link frame including a save command through a network;
A storage controller connected to the network adapter for performing the storage command;
A storage device for storing data,
A counter converter connected to the network adapter and a storage controller for retrieving a storage command from a data link frame received by the network adapter, wherein the host connects the storage device to a system bus of the host. A network-attached storage device connected through a network to a host having the system bus having a virtual host bus adapter recognizable as a local device directly connected to a network device.
前記保存装置はディスクであることを特徴とする請求項65記載のネットワーク取付貯蔵装置。66. The network-attached storage device according to claim 65, wherein the storage device is a disk. 前記保存装置はテープ装置であることを特徴とする請求項65記載のネットワーク取付貯蔵装置 。67. The network-attached storage device according to claim 65, wherein the storage device is a tape device. 前記保存装置はCDドライブであることを特徴とする請求項65記載のネットワーク取付貯蔵装置 。The network storage device according to claim 65, wherein the storage device is a CD drive. 前記保存装置はメモリ装置であることを特徴とする請求項65記載のネットワーク取付貯蔵装置 。66. The network-attached storage device according to claim 65, wherein the storage device is a memory device. ネットワークと、
ネットワーク接続を提供するためのシステムバス、及びネットワークインターフェースカード(NIC)を有するホストコンピューターと、
前記ネットワークに取り付けられたマルチメディアコンテンツを再生するための多数のマルチメディア再生機、
前記コンピューターが各マルチメディア再生機をまるで前記コンピューターのシステムバスに直接に連結された地域ディバイスのように認識する仮想ホストバスアダプターを生成するために、前記ホストで実行されるディバイスドライバーを含むことを特徴とする、マルチメディアコンテンツ再生用コンピュータージュークボックス。
Network and
A host computer having a system bus for providing a network connection, and a network interface card (NIC);
A number of multimedia players for playing multimedia content attached to the network,
The computer includes a device driver executed on the host to generate a virtual host bus adapter that recognizes each multimedia player as a local device directly connected to a system bus of the computer. Features a computer jukebox for multimedia content playback.
前記ネットワークはローカル通信網(LAN)であることを特徴とする請求項70記載のコンピュータージュークボックス。71. The computer jukebox of claim 70, wherein said network is a local communication network (LAN). 前記ネットワークはイーザーネットで運営されることを特徴とする請求項70記載のコンピュータージュークボックス。71. The computer jukebox of claim 70, wherein said network is operated on an EtherNet. 前記マルチメディア再生機はCDドライブを含むことを特徴とする請求項70記載のコンピュータージュークボックス。71. The computer jukebox of claim 70, wherein said multimedia player includes a CD drive. 前記マルチメディア再生機はDVDドライブを含むことを特徴とする請求項70記載のコンピュータージュークボックス。71. The computer jukebox of claim 70, wherein said multimedia player comprises a DVD drive. 前記ホストが前記ディスク装置を前記ホストのシステムバスに連結された地域ディバイスのように認識するようにする仮想ホストバスアダプターを生成する段階;
ネットワークを通じて前記ホストからディスクアクセス命令を受信する段階;
前記ディスクディバイス命令を実行する段階;
命令実行の結果を前記ホストに送る段階を備えることを特徴とするシステムバスを有するホストからネットワークを通じてディスク装置にアクセスする方法。
Creating a virtual host bus adapter that allows the host to recognize the disk device as a local device connected to the host system bus;
Receiving a disk access command from the host via a network;
Executing the disk device instruction;
A method for accessing a disk device from a host having a system bus via a network, comprising sending a result of the instruction execution to the host.
仮想ホストバスアダプターを生成する前記段階は、前記ホストに装着されたネットワークインターフェースカードの存在可否を検知する段階を備えることを特徴とする請求項75記載のディスク装置接近方法。The method of claim 75, wherein the step of generating a virtual host bus adapter comprises the step of detecting whether a network interface card mounted on the host exists. 仮想ホストバスアダプターを生成する前記段階は、前記ホストでのネットワークインターフェースカードの除去可否を検知する段階を備えることを特徴とする請求項75記載のディスク装置接近方法。The method of claim 75, wherein the step of creating a virtual host bus adapter comprises the step of detecting whether a network interface card can be removed from the host. 前記ホストが前記保存装置をまるで前記ホストのシステムバスに直接に連結された地域ディバイスのように認識するようにする仮想ホストバスアダプターを生成する段階;
前記ネットワークポートを通じて保存命令を伝達する段階を備えることを特徴とする、システムバスを有するホストにネットワークを通じて連結された保存装置へのアクセス方法。
Creating a virtual host bus adapter that allows the host to recognize the storage device as if it were a local device directly connected to the host system bus;
A method for accessing a storage device connected to a host having a system bus through a network, comprising transmitting a storage command through the network port.
前記保存装置はディスクであることを特徴とする請求項78記載の保存装置へのアクセス方法。The method for accessing a storage device according to claim 78, wherein the storage device is a disk. 前記保存装置は動的に装着されることを特徴とする請求項78記載の保存装置へのアクセス方法 。The method of claim 78, wherein the storage device is dynamically mounted. 前記ホストはUNIX系オペレーティングシステムで運営されることを特徴とする請求項78記載の保存装置への接近方法 。The method for accessing a storage device according to claim 78, wherein the host is operated by a UNIX-based operating system. 前記ホストはWindows系オペレーティングシステムで運営されることを特徴とする請求項78記載の保存装置への接近方法 。The method of claim 78, wherein the host is operated by a Windows operating system. 保存命令を伝達する前記段階は、前記保存装置により行われるI/Oトランザクションを含むI/O要求パケット(IRP)を送る段階を備えることを特徴とする請求項78記載の保存装置への接近方法 。The method of claim 78, wherein the step of transmitting a save command comprises sending an I / O request packet (IRP) including an I / O transaction performed by the storage device. . 保存命令を伝達する前記段階は、保存命令をIDE保存装置に特有の命令に翻訳する段階を備えることを特徴とする請求項78記載の保存装置への接近方法 。The method of claim 78, wherein the step of transmitting the storage command comprises the step of translating the storage command into a command specific to the IDE storage device. 保存命令を伝達する前記段階は、保存命令をSCSI保存装置に特有の命令に転換する段階を備えることを特徴とする請求項78記載の保存装置への接近方法。The method of claim 78, wherein transmitting the storage command comprises converting the storage command into a command specific to a SCSI storage device.
JP2002555298A 2001-01-02 2001-11-19 Disk system that can be mounted directly on the network Pending JP2004527817A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2001-0000086A KR100372915B1 (en) 2001-01-02 2001-01-02 Network-attached disk system
PCT/KR2001/001976 WO2002054266A1 (en) 2001-01-02 2001-11-19 Disk system adapted to be directly attached to network

Publications (2)

Publication Number Publication Date
JP2004527817A true JP2004527817A (en) 2004-09-09
JP2004527817A5 JP2004527817A5 (en) 2007-08-09

Family

ID=19704210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002555298A Pending JP2004527817A (en) 2001-01-02 2001-11-19 Disk system that can be mounted directly on the network

Country Status (4)

Country Link
EP (1) EP1348164A4 (en)
JP (1) JP2004527817A (en)
KR (1) KR100372915B1 (en)
WO (1) WO2002054266A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005302026A (en) * 2004-04-14 2005-10-27 Hewlett-Packard Development Co Lp Computer-readable medium, method, and computer system for accessing to networked peripheral device
JP2006195981A (en) * 2005-01-14 2006-07-27 Microsoft Corp Usb device in application server environment
JP2006524864A (en) * 2003-04-04 2006-11-02 ブルアーク ユーケー リミテッド Network-attached storage system, device, and method supporting multiple storage device types
JP2009508212A (en) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション Plug and play device redirection for remote systems
JP2010113707A (en) * 2008-11-10 2010-05-20 Internatl Business Mach Corp <Ibm> Method, device, system, and program for dynamically managing physical and virtual multipath input/output
JP2013156877A (en) * 2012-01-31 2013-08-15 Unitex:Kk Information processing device, information processing system, information processing method, program, and recording medium
US9858126B2 (en) 2010-12-16 2018-01-02 Microsoft Technology Licensing, Llc Device redirection for remote systems

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100662256B1 (en) 2004-12-20 2006-12-28 한국전자통신연구원 Object-based Storage Device and its control method for having low process load
GB0608085D0 (en) 2006-04-25 2006-05-31 Intesym Ltd Network interface and router
CN101398822B (en) * 2007-09-26 2012-05-09 新奥特硅谷视频技术有限责任公司 Method for dynamically extending network memory space by virtual file systems technology
EP2189893A1 (en) 2008-11-21 2010-05-26 Thomson Licensing Data storage system and method of operation
TWI426385B (en) * 2010-06-29 2014-02-11 Genesys Logic Inc Method and system for accessing a storage drive with a large capacity
KR101526471B1 (en) * 2013-11-22 2015-06-09 유넷시스템주식회사 Host security device
KR20200109547A (en) 2019-03-13 2020-09-23 김한규 Method and network attached storage apparatus for sharing files between computers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117404A (en) * 1997-06-17 1999-01-12 Toshiba Corp Network connection scsi device and file system using the device
WO1999034297A1 (en) * 1997-12-31 1999-07-08 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JPH11296466A (en) * 1998-04-06 1999-10-29 Canon Inc Device and method for managing network device and recording medium
JP2000207345A (en) * 1999-01-13 2000-07-28 Nec Corp Information processing system, peripheral device retrieval processing method for the system and storage medium recording its control program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US6167490A (en) * 1996-09-20 2000-12-26 University Of Washington Using global memory information to manage memory in a computer network
US6128690A (en) * 1998-03-24 2000-10-03 Compaq Computer Corporation System for remote memory allocation in a computer having a verification table contains information identifying remote computers which are authorized to allocate memory in said computer
US6470397B1 (en) 1998-11-16 2002-10-22 Qlogic Corporation Systems and methods for network and I/O device drivers
KR20000072493A (en) * 2000-09-06 2000-12-05 임동희 The method for using a PDA as a controling terminal for a PC on wireless internet.
KR20010088528A (en) * 2001-08-02 2001-09-28 전대식 A portable storage device and Method for using a remote storage device in the network as auxiliary memory of the local computer system by using the same device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117404A (en) * 1997-06-17 1999-01-12 Toshiba Corp Network connection scsi device and file system using the device
WO1999034297A1 (en) * 1997-12-31 1999-07-08 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JPH11296466A (en) * 1998-04-06 1999-10-29 Canon Inc Device and method for managing network device and recording medium
JP2000207345A (en) * 1999-01-13 2000-07-28 Nec Corp Information processing system, peripheral device retrieval processing method for the system and storage medium recording its control program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
菊池隆裕: "ストレージをIPネットに直結 Ethernet高速化が追い風に", 日経エレクトロニクス, vol. 第782巻, CSND200300096001, 6 November 2000 (2000-11-06), JP, pages 58 - 59, ISSN: 0000806661 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006524864A (en) * 2003-04-04 2006-11-02 ブルアーク ユーケー リミテッド Network-attached storage system, device, and method supporting multiple storage device types
JP2005302026A (en) * 2004-04-14 2005-10-27 Hewlett-Packard Development Co Lp Computer-readable medium, method, and computer system for accessing to networked peripheral device
JP2006195981A (en) * 2005-01-14 2006-07-27 Microsoft Corp Usb device in application server environment
US8412800B2 (en) 2005-01-14 2013-04-02 Microsoft Corporation USB devices in application server environments
JP2009508212A (en) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション Plug and play device redirection for remote systems
US8892758B2 (en) 2005-09-09 2014-11-18 Microsoft Corporation Plug and play device redirection for remote systems
US8918530B2 (en) 2005-09-09 2014-12-23 Microsoft Corporation Plug and play device redirection for remote systems
JP2010113707A (en) * 2008-11-10 2010-05-20 Internatl Business Mach Corp <Ibm> Method, device, system, and program for dynamically managing physical and virtual multipath input/output
US9858126B2 (en) 2010-12-16 2018-01-02 Microsoft Technology Licensing, Llc Device redirection for remote systems
US10331501B2 (en) 2010-12-16 2019-06-25 Microsoft Technology Licensing, Llc USB device redirection for remote systems
JP2013156877A (en) * 2012-01-31 2013-08-15 Unitex:Kk Information processing device, information processing system, information processing method, program, and recording medium

Also Published As

Publication number Publication date
KR100372915B1 (en) 2003-02-19
EP1348164A4 (en) 2007-12-05
EP1348164A1 (en) 2003-10-01
KR20020059139A (en) 2002-07-12
WO2002054266A1 (en) 2002-07-11

Similar Documents

Publication Publication Date Title
US7849153B2 (en) Disk system adapted to be directly attached
RU2302034C2 (en) Multi-protocol data storage device realizing integrated support of file access and block access protocols
US6209023B1 (en) Supporting a SCSI device on a non-SCSI transport medium of a network
US7409521B2 (en) Method of managing storage capacity, server and recording medium therefor
JP3683867B2 (en) A library of hard disk drives with a transparent emulating interface
JP4252301B2 (en) Storage system and data backup method thereof
US7272687B2 (en) Cache redundancy for LSI raid controllers
US7779201B1 (en) System and method for determining disk ownership model
JP2004527817A (en) Disk system that can be mounted directly on the network
JP4410557B2 (en) Method and system for accessing a tape device in a computer system
US7424529B2 (en) System using host bus adapter connection tables and server tables to generate connection topology of servers and controllers
JP2003022246A (en) Direct access storage system
JP2003241903A5 (en)
JP2001075872A (en) Data backup method, mainframe system storage system, and mainframe host computer
US7117228B2 (en) Method for transforming data formats between different database systems, an apparatus for executing the method and the program of the method
JP2004527817A5 (en)
JP2000148651A (en) Shared disk device
US7003553B2 (en) Storage control system with channel control device having data storage memory and transfer destination circuit which transfers data for accessing target cache area without passing through data storage memory
US20070245060A1 (en) Method and system for handling data by file-system offloading
JP3768707B2 (en) Network-connected multiple disk drive
WO2007077514A2 (en) Transparent intellectual network storage device
US20100017189A1 (en) Transparent Intellectual Network Storage Device
JP2003058487A (en) Data access control system
JP2005293603A6 (en) A library of hard disk drives with a transparent emulating interface
JP2004259045A (en) Storage device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051130

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070109

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070409

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070509

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070516

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070611

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070618

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20070620

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080408