JP4786354B2 - iSCSI communication control method and a storage system using the same - Google Patents

iSCSI communication control method and a storage system using the same Download PDF

Info

Publication number
JP4786354B2
JP4786354B2 JP2006018369A JP2006018369A JP4786354B2 JP 4786354 B2 JP4786354 B2 JP 4786354B2 JP 2006018369 A JP2006018369 A JP 2006018369A JP 2006018369 A JP2006018369 A JP 2006018369A JP 4786354 B2 JP4786354 B2 JP 4786354B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
data
host computer
step
storage system
delayed ack
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006018369A
Other languages
Japanese (ja)
Other versions
JP2007200055A (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
Grant date

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1097Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for distributed storage of data in a network, e.g. network file system [NFS], transport mechanisms for storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. van Duuren system ; ARQ protocols
    • H04L1/1867Arrangements specific to the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements

Abstract

During iSCSI communication, according to the contents of commands issued by a host computer, the command response time is increased due to the influence of the TCP Delayed ACK. Thus, a command issued by the host computer is analyzed, the number of TCP/IP packets required for transmitting the data requested by this command is calculated, and a precedence packet is transmitted, so that no influence is experienced due to the Delayed ACK.

Description

本発明は、ネットワークに接続可能な複数の入出力ポートを備えた記憶システムと、前記入出力ポートに接続する計算機間の通信において、特にiSCSIプロトコルを用いた通信における応答時間を短縮させる制御方法に関する。 The present invention comprises a storage system having a plurality of input and output ports that can be connected to a network, the communication between the computer to be connected to the input and output ports, a control method for shortening the response time in particular communication using the iSCSI protocol .

iSCSI(internet SCSI)は、TCP/IP(Transmission Control Protocol/Internet Protocol)ネットワーク上でSCSI(Small Computer System Interface)通信を行うためのプロトコルである。 iSCSI (internet SCSI) is a TCP / IP (Transmission Control Protocol / Internet Protocol) SCSI over a network (Small Computer System Interface) protocol for communication.

iSCSIではiSCSI PDU(Protocol Data Unit)という単位でコマンドやデータを送受信する。 Send and receive commands and data by the unit of the iSCSI iSCSI PDU (Protocol Data Unit). PDUは、通信プロトコルで扱うことの出来るデータの単位であって、例えばTCP/IPではパケット、イーサネット(登録商標)ではフレームに相当する。 PDU is a unit of data that can be handled by the communication protocol, for example TCP / IP in the packet corresponds to a frame in the Ethernet (registered trademark). iSCSIにおいて、例えばリードコマンドはRead Command PDU、リードコマンドに対するデータはData−In PDUと呼ばれる。 In iSCSI, data, for example, the read command a Read Command PDU, for the read command is referred to as Data-In PDU. なお、iSCSI PDUは、ネットワーク上ではTCP/IPパケットに包まれた形で送受信される。 Incidentally, iSCSI PDU, the on the network are transmitted and received in a form wrapped in TCP / IP packets. 即ち、Read Command PDUやData−In PDU等は、実際はTCP/IPパケットとして送受信される。 That, a Read Command PDU and Data-an In PDU and the like is actually being transmitted and received as a TCP / IP packet.

図13に、iSCSIプロトコルによるリードコマンド処理の流れを示す。 Figure 13 shows a flow of read command processing by the iSCSI protocol. 以降、リードコマンドを単にコマンド、リードコマンドに対するデータを単にデータと表す。 Hereinafter simply command, simply represented as data of data for the read command a read command.

計算機は、コマンドを記憶システムへ送信(1300)する。 Computer, sends a command to the storage system (1300). 記憶システムは、計算機から送信されたコマンドを解析し、その結果、リードコマンドであることを確認する。 Storage system analyzes the command transmitted from the computer, as a result, to ensure that a read command.

記憶システムは、該コマンドで要求するデータを記憶システム内の所定の場所から読み出し、計算機へ送信する(1305)。 Storage system reads the data requested by the command from a predetermined location in the storage system, and transmits to the computer (1305). このとき、データは、TCP/IPネットワーク上で通信を行うため複数のパケットに分割されて送信する。 At this time, data is transmits divided into a plurality of packets for communicating on TCP / IP networks.

計算機は、記憶システムから送信されたデータを含むTCP/IPパケットを受信したことを示す受領応答を送信する(1310)。 Computer sends a acknowledgment indicating that it has received the TCP / IP packet including the data transmitted from the storage system (1310).

記憶システムは、計算機からの受領応答をもって正常にデータを含むパケットが送信できたことを確認する。 Storage system, packets containing data normally with acknowledgment from the computer to verify that can be sent. そして、記憶システムは、コマンドの処理が完了したことを示す応答を計算機へ送信する(1315)。 The storage system sends a response indicating that processing of the command is completed to the computer (1315).

ところで、TCPでは、主にネットワーク負荷の軽減を目的として、受信したパケットに対する受領応答を敢えて遅らせることが出来る遅延確認応答(以下、Delayed ACKと呼ぶ)という応答が規定されている。 Incidentally, in the TCP, for the purpose of reduction of predominantly network load, delayed acknowledgment that can delay the acknowledgment dare to the received packet (hereinafter, referred to as the Delayed ACK) is defined responses that. このDelayed ACKでは、受領応答は、0.5秒以内、もしくは2パケット受領するまで遅延させる、と規定している(非特許文献1の4.2.5節)。 The In the Delayed ACK, acknowledgment is within 0.5 seconds, or until the two packets received delaying defines a (non-patent 4.2.5 literature 1). しかし、図13において、記憶システム内のデータを計算機へ送信する際、記憶システムが送信するパケット数が1つの場合であっても、遅延確認応答に従って、計算機は最大0.5秒後に受領応答を記憶システムへ送信する。 However, in FIG. 13, when transmitting data in the storage system to the computer, even when the number of packets stored system sends is one, according to delayed acknowledgment, the computer acknowledgment to a maximum of 0.5 seconds to send to the storage system. そして、その間、計算機、記憶システム間では通信が発生しないため、Delayed ACKはコマンド応答時間を増大させ、性能劣化を招くという問題があった。 Then, during, for computer, communications does not occur between storage systems, the Delayed ACK increases the command response time, there is a problem that leads to performance degradation.

この問題を解決するためには、Delayed ACKを無効にする方法が考えられるが、現在ではDelayed ACKは、多くの機器、オペレーティングシステムに実装されているため、不用意にDelayed ACKを無効にすると他の機器、オペレーティングシステム上のアプリケーションに悪影響を及ぼすという問題がある。 Other To solve this problem, it is considered how to disable Delayed ACK, Delayed ACK is now, many devices, because it is implemented in the operating system, Unintentional Disable Delayed ACK some of the equipment, is a problem that adversely affect the application on the operating system.

そこで、このDelayed ACKの影響を回避する方法として、例えば特許文献1に記載の技術が提案されている。 As a method to avoid the influence of this the Delayed ACK, for example the technique described in Patent Document 1 has been proposed.

特開2005−174097号公報 JP 2005-174097 JP

特許文献1では、Delayed ACKを有する周辺装置へ必要なコマンドを送信した後に、「何らかのコマンド」を周辺装置へ送信することでDelayed ACKを回避することが示されている。 In Patent Document 1, after sending the necessary commands to the peripheral device having a Delayed ACK, avoiding the Delayed ACK by sending a "some command" to peripheral devices are shown. 具体的には、周辺装置へ送信したコマンド数を計測し、そのコマンド数が所定数に達したときに「何らかのコマンド」を送信する。 Specifically, it measures the number of commands transmitted to the peripheral device, sends a "some command" when the number of the command has reached a predetermined number.

しかしながら、周辺装置間の接続環境次第で、「何らかのコマンド」がDelayed ACKの影響によって遅延した受領応答の到着後に周辺装置へ到着する場合があり、この場合、Delayed ACKの影響を完全に受けるという問題が生じる。 However, depending on the connection environment between peripheral devices, may arrive to the peripheral device after the arrival of the acknowledgment delay due to the effect of "some command" is Delayed ACK, a problem that in this case, fully affected Delayed ACK It occurs. 例えば、TCP/IPはベストエフォート型の通信が前提であるため、上述した問題は容易に起こりうる。 Eg, TCP / IP is for best-effort communication is premised, above problem can occur easily.

上記問題を解決するため、記憶システムの一実施態様として、次のような構成を採用する。 To solve the above problems, according to a mode of the storage system, to adopt the following configuration.

ホストコンピュータとのインタフェースを備えるホストIF制御部と、ディスクとのインタフェースを備えるディスクIF制御部と、ホストコンピュータとの送受信データやディスクに格納されたデータを一時的に格納する領域や記憶システム内の制御情報、ディレクトリ情報などを格納する領域を持つメモリと、ホストIF制御部、ディスクIF制御部、メモリを相互に接続するスイッチ、データを格納するディスクを備え、前記ホストIF制御部は、ホストコンピュータとの通信で用いられるプロトコルを処理するIF処理部と、前記IF処理部がプロトコル処理のために一時データ格納領域として用いるバッファと、ホストコンピュータと記憶システム内部間でデータ転送を制御するデータ転送制御部と、前記IF処理部や前記データ A host IF control unit with an interface with the host computer, a disk IF control unit with an interface with the disk, temporarily storing the data stored in the reception data and the disk with the host computer area and in the storage system control information, a memory having an area for storing directory information etc., the host IF control unit includes a disk IF control unit, a switch for connecting the memory to each other, the disk for storing data, said host IF control unit, the host computer and IF processing unit for processing the protocol used for communication with the buffer used as a temporary data storage area for the IF processing unit protocol processing, the data transfer control for controlling data transfer between the internal host computer and the storage system and parts, the IF processing unit and the data 送制御部を制御するプロセッサと、前記プロセッサが実行するためのプログラム等を格納するためのメモリで構成する記憶システムにおいて、前記記憶システムは、前記ホストコンピュータから受信したコマンドから少なくとも要求されたデータ量を取得するコマンド解析手段と、前記プロトコルで1度に送信出来るデータ量から、前記コマンドに対して必要となるデータ送信回数の算出手段と、前記データ送信回数がDelayed ACKの影響を受けるか否かを判定する第1の判定手段を備え、前記第1の判定手段が、Delayed ACKの影響を受けると判定した場合に、最初のデータを前記ホストコンピュータへ送信する前に、該コマンドとは直接関係のないPDUを先行的に送信する「先行パケットモード」を有する。 A processor for controlling the transmission control unit, in a storage system comprising a memory for storing a program for said processor to execute, the storage system, at least the requested amount of data from the command received from the host computer a command analyzing means for obtaining, from the amount of data that can be transmitted at a time in the protocol, the calculation means of the data transmission times required to the command, the data transmission times whether affected Delayed ACK comprising a first determining means for determining, said first determining means, when it is determined that the influence of the Delayed ACK, before sending the first data to the host computer, directly related to the command sending a free PDU prior to having to "the previous packet mode".

更に、上記を解決するための記憶システムの一実施態様として、前記第1の判定手段が、Delayed ACKの影響を受けると判定した場合に、前記データ送信回数をDelayed ACKの影響を受けないように調節する「データ分割モード」を有する。 As another mode of the storage system to solve the above, the first determining means, when it is determined that the affected Delayed ACK, the data transmission times to avoid the influence of Delayed ACK adjust with a "data-division mode".

更に、上記を解決するための記憶システムの一実施態様として、前記第1の判定手段がDelayed ACKの影響を受けると判定した場合に、該コマンドに対してDelayed ACKの影響を受けないように、データに制御情報であるヘッダが付加されたパケットを送信する際に、データとヘッダとをそれぞれ別パケットとして送信することでデータ送信回数を調整する「データ分離モード」を備える。 As another mode of the storage system to solve the above-mentioned, when the first determination means determines that the influence of Delayed ACK, so as not to be affected by the Delayed ACK with respect to the command, when transmitting data to a control information header is added packet comprises a "data separation mode" for adjusting the number of data transmissions by sending the data and the header as separate packets, respectively.

更に、上記を解決するための記憶システムの一実施態様として、記憶システムとDelayed ACKの影響を受けて通信するホストコンピュータであるか否かを管理するテーブルを備え、前記ホストコンピュータの識別子を元に前記テーブルを参照し、Delayed ACKの影響を受けて通信するホストコンピュータであるか否かを判定する第2の判定手段を備え、前記第2の判定手段は、Delayed ACKの影響を受けるホストコンピュータであると判定した場合に、「先行パケットモード」を選択することでDelayed ACKの影響を回避する。 As another mode of the storage system to solve the above-mentioned, comprises a table for managing whether the host computer that communicates under the influence of the storage system and the Delayed ACK, based on the identifier of the host computer Referring to the table, a second determining means for determining whether a host computer that communicates under the influence of Delayed ACK, the second determination means is a host computer affected by the Delayed ACK If it is determined that, to avoid the influence of the Delayed ACK by selecting the "previous packet mode".

更に、上記を解決するための記憶システムの一実施態様として、前記第1の判定手段、第2の判定手段によってDelayed ACKの影響を受けると判定した場合に、「データ分割モード」を選択することでDelayed ACKの影響を回避する。 As another mode of the storage system to solve the above, the first determination means, when it is determined that affected Delayed ACK by the second determination means, selecting the "data division mode" in to avoid the influence of the Delayed ACK.

更に、上記を解決するための記憶システムの一実施態様として、前記第1の判定手段、第2の判定手段によってDelayed ACKの影響を受けると判定した場合に、「データ分離モード」を選択することでDelayed ACKの影響を回避する。 As another mode of the storage system to solve the above, the first determination means, when it is determined that affected Delayed ACK by the second determination means, selecting the "data separation mode" in to avoid the influence of the Delayed ACK.
更に、上記を解決するための記憶システムの一実施態様として、前記第1の判定手段、及び第2の判定手段でDelayed ACKの影響を受けないと判定した場合に、通常通りにデータを送信する「通常モード」を選択する。 As another mode of the storage system to solve the above, the first judging means and when it is determined not affected Delayed ACK in the second determination means, and transmits the data as usual to select the "normal mode".

本発明によれば、ホストコンピュータと記憶システム間の通信において、Delayed ACKの影響を回避することが出来る。 According to the present invention, in communication between the host computer and the storage system, it is possible to avoid the influence of the Delayed ACK.

以下に、本発明の実施例について図面を用いて説明する。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

本発明の第1の実施例について、以下に説明する。 A first embodiment of the present invention will be described below.

図1は、記憶システムの構成を示す概略図である。 Figure 1 is a schematic diagram showing the configuration of a storage system.
記憶システム100は、ホストコンピュータ105と接続する。 Storage system 100 connects the host computer 105. 一般的にSAN(Storage Area Netowrk)では、記憶システム100とホストコンピュータ105間はスイッチ等で構成するネットワーク(図示せず)を介して、ファイバチャネルやイーサネット(イーサネットは登録商標)などで接続する。 In general, SAN (Storage Area Netowrk), while the storage system 100 and the host computer 105 via a network (not shown) for a switch or the like, a fiber channel or Ethernet (Ethernet is a registered trademark) is connected via a.

記憶システム100は、ホストIF制御部110、スイッチ135、メモリ140、ディスクIF制御部145、ディスク装置150で構成する。 Storage system 100 includes a host IF control unit 110, switches 135, memory 140, disk IF control unit 145 is composed of a disk device 150.

ホストIF制御部110は、ホストコンピュータとのインタフェースを備え、ホストIF部115、データ転送制御部120、CPU125、メモリ130で構成する。 The host IF control unit 110 includes an interface with the host computer, the host IF unit 115, the data transfer control unit 120, CPU 125, constituting the memory 130.

ディスクIF制御部145は、ディスク装置150とのインタフェースを備える。 Disk IF control unit 145 includes an interface with the disk device 150.

スイッチ135は、ホストIF制御部110、ディスクIF制御部145、及び後述するメモリ140間を接続する機構を備え、各構成要素110、145、140間の通信を中継する。 Switch 135, the host IF control unit 110, a mechanism for connecting the memory 140 to the disk IF control unit 145, and will be described later, relays communication between the components 110,145,140.

メモリ140は、ホストコンピュータ105と送受信するデータの一時格納領域であるキャッシュメモリ(図示せず)と記憶システム100内の制御情報や構成情報を格納する共有メモリ(図示せず)領域を持つ。 Memory 140 (not shown) shared memory for storing control information and configuration information of the cache memory (not shown) and the storage system 100 as a temporary storage area for data exchanged with the host computer 105 has an area.

ホストIF制御部110の構成要素について説明する。 Illustrating the components of the host IF control unit 110.
ホストIF部115は、ホストコンピュータとのインタフェースを処理する部分であり、IF処理部119とバッファ117で構成する。 Host IF unit 115 is a part for processing an interface with the host computer, configured with IF processing unit 119 and a buffer 117.

IF処理部119は、ホストコンピュータ105との通信で用いるプロトコルを処理する。 IF processing unit 119 processes the protocol used in the communication with the host computer 105. バッファ117は、IF処理部119がプロトコル処理を行うために、ホストコンピュータと送受信するパケットの一時格納に用いる。 Buffer 117, IF processor 119 to perform protocol processing, used for temporary storage of packets to the host computer and the transceiver.

ホストIF処理部115は、ホストコンピュータ105から受信したパケットのプロトコル処理を施し、ディスク装置における格納場所やデータの長さ、コマンド、ディスク装置に格納するデータの形にする。 Host IF processing unit 115 performs protocol processing of packets received from the host computer 105, in the form of data stored length of storage location and the data in the disk device, the command, the disk device. また、ディスク装置150やメモリ140のキャッシュメモリ上のデータをホストコンピュータ105に送信する際には、該データをホストコンピュータ105との通信に用いるプロトコルに従って、ホストコンピュータ105の識別情報や該コマンドに関連する制御情報などが付加されたパケットを生成する。 Further, when transmitting the data in the cache memory of the disk device 150 or memory 140 to the host computer 105, according to the protocol using said data to the communication with the host computer 105, associated with the identification information and the command of the host computer 105 such control information to generate an additional packet.

データ転送制御部120は、ホストコンピュータ105との送受信データについて、ホストIF部115とメモリ140のキャッシュメモリ、ディスク装置150間のデータ転送を制御する。 The data transfer control unit 120 for transmitting and receiving data between the host computer 105, the cache memory of the host IF unit 115 and the memory 140, and controls data transfer between the disk device 150.

CPU125は、ホストIF部115やデータ転送制御部120を制御し、主に各部のパラメータ設定や障害監視・処理などを行う。 CPU125 controls the host IF unit 115 and the data transfer control unit 120, performs mainly to each part of the parameter setting and fault monitoring and treatment. メモリ130は、CPU125が読み出して実行するプログラムやデータを格納するための領域である。 Memory 130 is an area for storing programs and data to be executed by reading CPU 125. なお、メモリ130に格納するCPU125が実行するプログラムについては図2で詳細に説明する。 Note that the program that CPU125 to be stored in the memory 130 is executed will be described in more detail in FIG.

図2は、メモリ130に格納するCPUが実行するプログラムの一例を示した図である。 Figure 2 is a diagram showing an example of a program which the CPU to be stored in the memory 130 is executed.

メモリ130には、コマンド解析モジュール201、データ転送モジュール203、動作モード判定モジュール205、先行パケット送信モジュール215、データ分割モジュール220、データ分離モジュール222、適用判定モジュール225と、適用要否テーブル230が格納されている。 The memory 130, the command analysis module 201, the data transfer module 203, the operation mode determination module 205, the previous packet transmission module 215, a data splitting module 220, the data separation module 222, the application determining module 225, stores application necessity table 230 It is.

コマンド解析モジュール201は、ホストコンピュータ105から受信したコマンドを解析する機能を持つ。 Command analysis module 201 has a function of analyzing the command received from the host computer 105.

データ転送モジュール203は、ホストコンピュータ105が要求するディスク装置内のデータをキャッシュメモリに準備するためにデータ転送制御部120へ指示する機能を持つ。 Data transfer module 203 has a function of instructing the data transfer control unit 120 to prepare the data in the disk device by the host computer 105 requests the cache memory.

動作モード判定モジュール205は、ホストコンピュータが送信したコマンドで要求するデータの大きさから、Delayed ACKの影響を受けるか否かを判定する機能を持つ。 Operation mode determination module 205, the size of the data requested by the command that the host computer has sent has the function of determining whether affected by the Delayed ACK. 具体的には、要求するデータ全てをホストコンピュータへ送信するのに必要なパケット数が、ホストコンピュータによる受領確認が遅延なく送信するために必要なパケット数の倍数であるかを確認する。 Specifically, the number of packets required to send all data to be requested to the host computer, the acknowledgment by the host computer to check whether a multiple of the number of packets required to transmit without delay. ここで、ホストコンピュータによる受領確認が遅延なく送信するために必要なパケット数の倍数ではない場合、Delayed ACKの影響を受けることになる。 Here, if the acknowledgment by the host computer is not a multiple of the number of packets required to transmit without delay, it will be affected by the Delayed ACK.

先行パケット送信モジュール215は、上述の影響を回避するため、実際にデータを送信する前にパケット(以降、先行パケットと称する)の送信をホストIF部115に指示する先行パケット送信モジュール215を設ける。 Prior packet transmission module 215 to avoid the influence of the above, actually the packet (hereinafter, referred to as the previous packet) before sending the data transmission to provide a preceding packet transmission module 215 to instruct the host IF unit 115. 一方、ホストコンピュータによる受領確認が遅延なく送信するために必要なパケット数の倍数である場合、Delayed ACKの影響を受けないため、先行パケット送信モジュール215によって先行パケットの送信をホストIF部115に指示する必要がない。 On the other hand, if the acknowledgment by the host computer is a multiple of the number of packets required to transmit without delay, because it is not affected by the Delayed ACK, instructs the transmission of the previous packet to the host IF section 115 by the previous packet transmission module 215 there is no need to. なお、先行パケットを送信する状態を「先行パケットモード」、そうではない場合を「通常モード」と呼ぶ。 It should be noted that, "the preceding packet mode" the state to send the preceding packet, the case is not so referred to as a "normal mode".

なお、先行パケットは、少なくともホストコンピュータと記憶システムとの通信に用いられるプロトコルで認識可能な情報であればよく、例えばデータ転送に用いられるiSCSIにおけるNOP−In PDUを用いる。 Incidentally, the prior packet may be any recognizable information protocol used for communication with at least the host computer and the storage system, using a NOP-an In PDU in iSCSI used for example for data transfer. 更に、先行パケットは、ホストコンピュータからの応答を期待しないようなコマンドが望ましい。 Furthermore, the previous packet is a command that does not expect a response from the host computer is desirable. また、先行パケットは、データ転送とは異なる階層で転送される情報であってもよく、例えば、TCP層で認識可能な情報でも構わない。 Further, the prior packet may the data transfer is information that is transferred at different hierarchy, for example, it may be a recognizable information at the TCP layer. 例えば、先行パケットはSCSIレイヤで転送し、DATA−in−PDUはTCP/IPレイヤで転送してもよい。 For example, previous packet is transferred in SCSI layer, DATA-in-PDU may be transferred in TCP / IP layer.

図3は、第1の実施例におけるデータ送受信処理のフローチャートを示す図である。 Figure 3 is a diagram showing a flowchart of a data transmission and reception processing in the first embodiment. 最初のステップ315では、記憶システム100のCPU125が、ホストコンピュータ100からのコマンド受領待ちの状態である。 In a first step 315, CPU 125 of the storage system 100, a command reception standby state from the host computer 100. そして、ホストコンピュータ100からコマンドやデータなどを含むパケットを受領し、ホストIF部115が適切なプロトコル処理によって、コマンドやデータなどが取り出され、その内容はCPU125のメモリ130に書き込まれる。 Then, receiving a packet including commands and data from the host computer 100, the host IF unit 115 is an appropriate protocol process, such as a command or data is retrieved, the contents of which are written into the memory 130 of the CPU 125.

次に、CPU125は、先のステップで書き込まれたコマンドをメモリ130から読み出し、コマンド解析モジュール201が解析する(ステップ320)。 Next, CPU 125 reads the commands written in the previous step from the memory 130, the command analysis module 201 analyzes (step 320). コマンド解析モジュール201によるコマンド解析の結果、ホストコンピュータ105が要求する処理の内容、ディスク装置150内のデータ格納場所とその長さ(A)などが判明する。 Result of the command analysis by the command analysis module 201, the contents of processing by the host computer 105 requests, such as data storage location and its length in the disk device 0.99 (A) is found.

ステップ320で判明したデータの長さの情報を用いて、動作モードを判定する(ステップ325)。 Using the information of the length of the stand the data in step 320, it determines the operation mode (step 325). なお、ステップ325の詳細については後述する。 It will be described later in detail step 325.

ステップ330では、CPU125が、ステップ325によって判明したこれらの情報に従って処理し、必要に応じて先行パケットを送信する。 In step 330, CPU 125 is processed according to the information that was found in step 325, and transmits the leading packet as necessary. なお、ステップ330の詳細については後述する。 Will be described in detail later step 330.
そして、ステップ330の処理が終了すると、コマンドに対する応答をホストコンピュータへ送信し(ステップ340)、再びホストコンピュータ105からのコマンド受領待ちとなる。 When the process in step 330 is completed, transmits a response to the command to the host computer (step 340), it becomes again a command reception waiting from the host computer 105. そうではない場合はステップ330、335を繰り返す。 Otherwise If not, repeat the step 330, 335.

図4は、第1の実施例における動作モード判定処理325のフローチャートを示す図である。 Figure 4 is a diagram illustrating a flowchart of operation mode determination processing 325 in the first embodiment.

ここで、1つのパケットで送信可能なデータの長さ(B)について説明する。 The following describes the length of data that can be sent in one packet (B). 第1の実施例では、ホストコンピュータ105と記憶システム100間はイーサネット(登録商標)で接続されているものとする。 In the first embodiment, between the host computer 105 storage system 100 is assumed to be connected by the Ethernet (registered trademark).

なお、イーサネットで1つのパケットで送信可能な一般的なデータの長さはMTU(Maximum Transmission Unit)として1500バイトである。 The length of a typical data that can be transmitted in one packet in Ethernet is 1500 bytes MTU (Maximum Transmission Unit). しかし、実際にはパケットの制御情報として付加されるヘッダの長さを考慮すると、実際に送信可能なデータの長さは1460バイト程度となる。 However, when actually taking into account the length of the header to be added as the control information of the packet, the length of which can be actually transmitted data is about 1460 bytes.
最初のステップ410では、図3のステップ320で判明したホストコンピュータ105が要求するデータの長さ(A)と1つのパケットで送信可能なデータの長さ(B)から、必要なパケット数を計算する。 In a first step 410, the length of the data by the host computer 105 which has been found in step 320 of FIG. 3 requires (A) and the length of data that can be sent in one packet from (B), calculate the required number of packets to. 具体的には、(A)を(B)で割って求めた商の小数点以下を切り上げ、これを送信パケット数(C)とする。 Specifically, the (A) is the decimal portion of the quotient obtained by dividing by (B), which the number of transmission packets (C).

ところで、Delayed ACKは通信相手から2パケット受領するまで受領応答を遅らせることが出来る。 Incidentally, the Delayed ACK may be delayed acknowledgment until 2 packet received from the communication partner. 従って、先ほど計算した(C)が奇数であるか否かを見ることでDelayed ACKの影響を受けるか否かを判定することができる(ステップ415)。 Therefore, it is possible to have just calculated (C) to determine whether affected Delayed ACK by looking at whether or not an odd number (step 415). 本実施例では、2パケットとしているが、それに限定されるものではない。 In this embodiment, although the two packets, but is not limited thereto. さらに、2パケットとしているため奇数であるか否かを判別しているが、当然ながら、これに限定されるものではない。 Furthermore, although discrimination between odd because you are two packets, of course, not limited thereto.

例えば、3パケットとすれば、(C)では、3の倍数か否かを判定し、3の倍数でなければDelayed ACKの影響を受けるものと判定する。 For example, 3 if packet, determines that the affected Delayed ACK if not in (C), determines whether a multiple of 3, a multiple of 3. 詳細については、後述する。 For more information, which will be described later. また、この設定(2パケットor3パケット・・・etc)の変更は、CPU125が、データ通信中ではない、任意のタイミングでホストIF部115に指示する。 Also, change of the setting (2 packets or3 packet · · · etc) is, CPU 125 is not in communication, instructs the host IF unit 115 at an arbitrary timing. ステップ415において、(C)が奇数、即ちホストコンピュータ105が受領確認を遅延なく送信するために必要なパケット数の倍数ではない場合は、Delayed ACKの影響を受けるため、先行パケットを送信する先行パケットモードを選択する(ステップ420)。 In step 415, if the (C) odd, i.e. not a multiple of the number of packets required for the host computer 105 sends without delay acknowledgment is influenced by the Delayed ACK, it transmits the previous packet previous packet selecting a mode (step 420).

(C)が偶数、即ち、ホストコンピュータによる受領確認が遅延なく送信するために必要なパケット数の倍数である場合は、Delayed ACKの影響を受けないため、通常モードを選択する(ステップ425)。 (C) is an even number, i.e., if acknowledgment by the host computer is a multiple number of packets required to transmit without delay, because it is not affected by the Delayed ACK, the normal mode is selected (step 425).
例えば、(A)が4096バイトとすると、(B)は1460バイトであるので、ステップ410において、必要なパケット数(C)は3パケットと計算される。 For example, (A) is when the 4096 bytes, since in (B) is 1460 bytes, in step 410, the required number of packets (C) is calculated to be 3 packet. 従って、ステップ415では、(C)を奇数と判定し、Delyed ACKの影響を受ける、と判定する。 Therefore, in step 415, it determines an odd number (C), affected by Delyed ACK, and judges. そして、最後に図3のステップ330へ戻る。 Finally, the flow returns to step 330 of FIG.

図14は、コマンド処理330のフローチャートを示す図である。 Figure 14 is a diagram showing a flowchart of command processing 330.

ステップ1410では、ホストコンピュータ105へ送信するデータを準備する。 In step 1410, it prepares the data to be transmitted to the host computer 105. 具体的には、CPU125が、ホストIF部115から得たデータの格納場所やデータの長さの情報、共有メモリ(図示せず)に格納された制御情報、構成情報を用いて、適切なディスク装置150内の場所からデータを読み出すようにディスクIF制御部145に指示する。 Specifically, CPU 125 may store location and data length information of the data obtained from the host IF unit 115, the shared memory control information stored in the (not shown), using the configuration information, appropriate disk to read data from a location in the device 150 instructs the disk IF control unit 145.

次に、ディスクIF制御部145が、ディスク装置150の適切な場所からデータを読み出し、キャッシュメモリ(図示せず)に格納する。 Then, the disk IF control unit 145 reads the data from the appropriate location in the disk device 150, is stored in the cache memory (not shown). なお、この処理はデータが既にキャッシュ(図示せず)に存在する場合には省略できる。 This process can be omitted, if present in the data is already cached (not shown). CPU125は、ホストコンピュータ105へ送信するデータの準備の完了を待ち(ステップ1415)、準備が完了すると、現在の動作モードが先行パケットモードかどうかを確認する(ステップ1420)。 CPU125 waits for completion of preparation of the data to be transmitted to the host computer 105 (step 1415), the preparation is complete, the current operation mode to determine whether the previous packet mode (step 1420).

もし、先行パケットモードではない場合は、ステップ1425へ進む。 If not the previous packet mode, the process proceeds to step 1425.
先行パケットモードの場合、CPU125は、ホストコンピュータ105にデータを送信する前に先行パケットを送信するようにホストIF部115に指示する(ステップ1440)。 In the prior packet mode, CPU 125 instructs the host IF section 115 to transmit the previous packet before sending the data to the host computer 105 (step 1440). これらの処理は、データの長さに応じて繰り返し、全てのデータ送信の指示が完了すると図3のステップ335に戻る。 These processes are repeated according to the length of data, to instruct all of the data transmission is completed the flow returns to step 335 of FIG.

図5は、第1の実施例におけるホストIF部のデータ送信におけるフローチャートを示す図である。 Figure 5 is a diagram showing a flowchart of data transmission of the host IF unit in the first embodiment.

ステップ510では、ホストIF部115は、CPUからの指示を待つ。 In step 510, the host IF unit 115 waits for an instruction from the CPU. ホストIF部115は、CPU125から指示を受けると、それがどのような指示か確認する。 Host IF unit 115 receives an instruction from the CPU 125, to check how it an indication. もし、ホストコンピュータへのデータ転送の指示であれば(ステップ515)、現在の動作モードを確認する。 If any indication of the data transfer to the host computer (step 515) to check the current operating mode. 先行パケットモードの場合(ステップ520)、ホストIF部115は、ホストコンピュータ105へ先行パケットを送信し(ステップ525)、これに続けてデータを送信する(ステップ530)。 In the prior packet mode (step 520), the host IF section 115 transmits the leading packet to the host computer 105 (step 525), transmits the data following the (step 530). 具体的には、まず、ホストIF部115が、例えば、iSCSIにおけるNOP−In PDUを生成、そしてパケットを生成しホストコンピュータ105に送信する。 Specifically, first, the host IF unit 115, for example, transmits a NOP-an In PDU in iSCSI generation and packet generated in the host computer 105. 次に、ホストIF部115は、データ転送制御部120に対して、キャッシュメモリから読み出したデータをホストIF部115へ転送するように指示する。 The host IF unit 115 to the data transfer control unit 120 commands the transfer of the data read from the cache memory to the host IF section 115. そして、ホストIF部115は、データ転送制御部120から転送されたデータからData−In PDUを生成、そしてパケットを生成し、ホストコンピュータ105に送信する。 The host IF unit 115 generates a Data-an In PDU from data transferred from the data transfer control unit 120, and generates a packet to send to the host computer 105.
ホストコンピュータ105へのデータ送信が完了すると(ステップ535)、ホストIF部115は、CPU125へ送信完了を報告する(ステップ540)。 When the data transmission to the host computer 105 is completed (step 535), the host IF unit 115 reports the completion of transmission to the CPU 125 (step 540).

なお、データ転送以外の指示の場合は、ホストIF部115は、その指示に従って適切に処理し(ステップ545)、完了するまで繰り返し(ステップ550)、最後にCPU125へ完了を報告する(ステップ555)。 In the case of an instruction other than the data transfer, the host IF unit 115, suitably treated according to the instruction (step 545) is repeated until completed (step 550), reports the last completed to CPU 125 (step 555) . データ転送以外のその他の指示とは、例えばホストコンピュータ105へのデータ送信が完了した後、コマンド応答を送信する処理などがある。 The other instructions other than the data transfer, for example, after the data transmission to the host computer 105 is completed, and the like processing for transmitting the command response.

図15は、本実施形態におけるホストコンピュータ105と記憶システム100間の通信の様子を示した図である。 Figure 15 is a diagram showing a state of communication between the host computer 105 and the storage system 100 in this embodiment.

まず、ホストコンピュータ105が記憶システム100にコマンドを送信し(1300)、記憶システム100は受信したコマンドを解析し、このコマンドによる通信がDelayed ACKの影響を受けるか判定する。 First, it is determined whether the host computer 105 sends a command to the storage system 100 (1300), the storage system 100 analyzes the received command, communication by this command affected the Delayed ACK. 記憶システム100によってDelayed ACKの影響を受けると判定されると、これを回避するために図3、図4で示したように先行パケットを送信し(1505)、続いてホストコンピュータが要求するデータを送信する(1305)。 If it is determined that the affected Delayed ACK by the storage system 100, FIG. 3 in order to avoid this, transmits a previous packet as shown in FIG. 4 (1505), the data subsequently host computer requests sending (1305). ホストコンピュータ105は、記憶システム100からパケットを2つ(1505、1305)受領したので、これに対する受領応答を遅延なく記憶システム100に送信する(1310)。 The host computer 105 includes two packets from the storage system 100 (1505,1305) so received, transmits an acknowledgment without delay to the storage system 100 for this (1310).

記憶システム100は、ホストコンピュータからの受領応答を受けて、コマンドに対する応答を送信する(1315)。 Storage system 100 receives the acknowledgment from the host computer, and transmits a response to the command (1315).
ホストコンピュータ105は、1315の応答に対する受領応答を送信し(1320)、次のコマンドを記憶システム100に送信する(1325)。 The host computer 105 transmits the acknowledgment to the response of 1315 (1320), it transmits the next command to the storage system 100 (1325).

第1の実施例によれば、記憶システムは、先行パケットの送信をコントロールするために、ホストコンピュータが要求するデータの長さからDelayed ACKの影響を受けるか否かを判断する。 According to the first embodiment, the storage system, in order to control the transmission of the preceding packet, it is determined whether the length of data to the host computer requests affected the Delayed ACK. 更に、Delayed ACKの影響を受ける場合には、記憶システムは、データを送信する前にホストコンピュータから受領確認を必要としない先行パケットを送信することで、単にDelayed ACKの影響を回避できるだけではなく、データ送信に対するホストコンピュータの確認応答時間、更にはコマンド応答時間の更なる短縮をもたらす。 Furthermore, if effects of the Delayed ACK, the storage system by sending a previous packet which does not require acknowledgment from the host computer before transmitting the data, not only can avoid the influence of Delayed ACK, acknowledgment time of the host computer for data transmission, even provides additional reduction of the command response time. これは、ホストコンピュータと記憶システム間の接続距離が長い場合に特に顕著となる。 This is particularly remarkable when the connection distance between the host computer and the storage system is long.

本発明の第2の実施例について、以下に説明する。 A second embodiment of the present invention will be described below.

第1の実施例と異なるのは、動作モード判定モジュール205がDelayed ACKの影響を受けると判定した場合、先行パケットモードの代りにデータ分割モードに従って、Delayed ACKの影響を回避する点である。 It differs from the first embodiment, if the operation mode determination module 205 determines that influence of the Delayed ACK, according to the data division mode instead of the previous packet mode, in that to avoid the influence of the Delayed ACK. データ分割モードとは、記憶システム100がホストコンピュータ105の要求するデータを送信するとき、Delayed ACKの影響を受けないように送信するパケット数を調整するために、データを分割するモードである。 The data division mode, when the storage system 100 transmits the data requested by the host computer 105, in order to adjust the number of packets to be transmitted so as not to be affected by the Delayed ACK, is a mode to divide the data. なお、データ分割モードではないモードは通常モードである。 It should be noted, is not a data division mode mode is the normal mode.

記憶システム100は、図1に示す構成と同じであるが、第2の実施例におけるデータ分割モードを実現するために図2中にはデータ分割モジュール220が格納されている。 Storage system 100 is the same as that shown in FIG. 1, in the figure 2 in order to realize the data division mode in the second embodiment are stored data splitting module 220.

データ分割モジュール220は、動作モード判定モジュール205によって、Delayed ACKの影響を受けると判定した場合に、要求されたデータの送信に必要なパケット数を、Delayed ACKの影響を受けないパケット数となるように、1パケットで送信するデータの長さを計算し、それをホストIF部115に指示する機能を持つ。 Data splitting module 220, the operation mode determination module 205, when it is determined that the affected Delayed ACK, the number of packets required for transmission of the requested data, so that the number of packets not affected by the Delayed ACK a, the length of the data to be transmitted in one packet is calculated, with the ability to direct it to the host IF section 115.

図6は、第2の実施例における動作モード判定処理のフローチャートを示す図である。 Figure 6 is a diagram illustrating a flowchart of operation mode determination processing in the second embodiment.

ステップ610、615で動作モード判定モジュール205は、ホストコンピュータ105にデータを送信するために必要なパケット数を計算し、それが奇数であるか判定する。 Step operation mode determination module 205 in 610 and 615, calculates the number of packets required to transmit the data to the host computer 105, determines whether it is an odd number. ここで、奇数か否かを判定するのは、本実施例でも第1の実施例と同様に、Delayed ACKは通信相手から2パケット受領するまで受領応答を遅らせることが出来るよう設定されているためである。 Here, to determine odd or not, as in the well first embodiment in the present embodiment, since the Delayed ACK is set so that it is possible to delay the acknowledgment until 2 packet received from the communication partner it is. なお、本実施例においても、2パケットに限定されるものではない。 Also in this embodiment, it is not limited to two packets. 例えば、3パケットとすれば、3の倍数か否かを判定することとなる。 For example, if three packets, and to determine whether a multiple of 3. 詳細については、後述する。 For more information, which will be described later. パケット数が奇数である場合、データ分割モードが選択される(ステップ620)。 If the number of packets is an odd number, data segmentation mode is selected (step 620).

例えば、ホストコンピュータ105に送信するデータが4096バイトで、1パケットで送信可能なデータ長が1460バイトの場合、必要となるパケット数は3パケットとなる。 For example, the data to be transmitted to the host computer 105 is 4096 bytes, the data length which can be transmitted in one packet is 1460 bytes, the number of packets needed is three packets. この場合、Delayed ACKの影響をうけるため、例えば、本来1パケットで1460バイト送信可能であるところをその半分のデータ長とすることで2パケットに分割する。 In this case, since the influence of the the Delayed ACK, for example, is divided into two packets by the where possible 1460 bytes transmitted at the original one packet and the data length of the half. これによって、必要となるパケット数は6パケットとなり、Delayed ACKの影響を回避することが出来る。 Thus, the number of packets required becomes 6 packets, it is possible to avoid the influence of the Delayed ACK.
パケット数が奇数ではない場合、通常モードが選択される(ステップ625)。 If the number of packets is not an odd number, the normal mode is selected (step 625).
そして、図3のステップ330に戻る。 Then, the flow returns to step 330 of FIG.

次に、第2の実施例におけるコマンド処理を、図14を用いて説明すると、以下の流れとなる。 Then, the command processing in the second embodiment is explained with reference to FIG. 14, the following procedures.
データ転送モジュール203によって、ホストコンピュータ105へデータの送信準備が完了すると(ステップ1410、1415)、CPU125は、動作モードを確認する。 By the data transfer module 203, the preparation for transmitting data to the host computer 105 is completed (step 1410,1415), CPU125 confirms the operation mode.

本実施例ではデータ分割モードであるので、先行パケットモードによる処理(ステップ1420:Yes、ステップ1440)は考慮せず、ステップ1425へ進む。 In this embodiment, since there the data split mode, the process according to the prior packet mode (step 1420: Yes, step 1440) is not considered, the process proceeds to step 1425. CPU125は、ホストIF部115に送信するデータのデータ長を指示し(ステップ1450)、データ送信を指示する(ステップ1470)。 CPU125 instructs the data length of data to be transmitted to the host IF unit 115 (step 1450), and instructs the data transmission (step 1470). CPU125は、全てのデータ送信の指示を完了するまでステップ1470を繰り返し、完了すると(ステップ1475)、図3のステップ335へ戻る。 CPU125 repeats steps 1470 to complete indication of all the data transmission completes (step 1475), the flow returns to step 335 of FIG.

図7は、第2の実施例におけるホストIF部のデータ送信処理のフローチャートを示す図である。 Figure 7 is a diagram showing a flowchart of a data transmission processing of the host IF unit according to the second embodiment.

ステップ710は、CPU125からの指示を待っている。 Step 710, waiting for instructions from the CPU125. CPU125から指示を受けると、現在の動作モードを確認する(ステップ715)。 Upon receiving an instruction from the CPU125, to check the current mode of operation (step 715). データ分割モードである場合、CPU125から予め指定されたデータの長さでホストコンピュータ105へ送信し(ステップ720)、全てのデータを送信するまでステップ720を繰り返す(ステップ725)。 If the data division mode, and sends to the host computer 105 by the length of the pre-specified data from the CPU 125 (step 720) and repeats steps 720 to send all of the data (step 725). 最後に、ホストIF部115は、データ送信が完了すると、ホストコンピュータ105へその完了報告を行う(ステップ750)。 Finally, the host IF unit 115, once the data is sent, reports the completion of the host computer 105 navel (step 750).

一方、ステップ715で、データ分割モードではない、即ち通常モードの場合、ホストコンピュータ105へ、通常のデータ長でデータを送信する(ステップ740)。 On the other hand, in step 715, not the data split mode, i.e. in the normal mode, the host computer 105, transmits the data in the normal data length (step 740). そして、ホストIF部が、ホストコンピュータ105へのデータ送信が完了するまでステップ740を繰り返す。 The host IF unit repeats step 740 until the data transmission to the host computer 105 is completed. 最後に、ホストIF部115は、データ送信が完了すると、ホストコンピュータ105へその完了報告を送信する(ステップ750)。 Finally, the host IF unit 115, once the data is sent, sends a completion report of the host computer 105 navel (step 750).

なお、データ転送以外のその他の指示を受けた場合は、ホストIF部115は、その指示に従って適切に処理し(ステップ755)、完了するまで繰り返し(ステップ760)、最後にCPU125へ完了を報告する(ステップ765)。 In addition, when receiving the additional instructions other than the data transfer, the host IF unit 115, suitably treated according to the instruction (step 755) is repeated until completed (step 760), reports the last completed the CPU125 (step 765). データ転送以外のその他の指示とは、例えばホストコンピュータ105へのデータ送信が完了した後、コマンド応答を送信する処理などがある。 The other instructions other than the data transfer, for example, after the data transmission to the host computer 105 is completed, and the like processing for transmitting the command response.

なお、図15に示すホストコンピュータ105と記憶システム100間の通信の流れは、第1の実施例における“先行パケット送信(1505)”が、“データ送信”に変わるが他は同様である。 The communication flow between the host computer 105 and the storage system 100 shown in FIG. 15, "the previous packet transmission (1505)" in the first embodiment, other varies the "data transmission" is the same.

第2の実施例によれば、記憶システムは、ホストコンピュータが要求するデータの長さからDelayed ACKの影響を受けるか否かを判断し、更に、Delayed ACKの影響を受ける場合には、送信するデータを分割することで、図15に示すような通信が可能となるため、ホストコンピュータと記憶システム間の接続環境などに左右されずに、コマンド応答時間を短縮することが出来る。 According to the second embodiment, the storage system determines whether affected Delayed ACK from the length of the data by the host computer requests, further, if effects of the Delayed ACK transmits by splitting the data, since it becomes possible to perform communication as shown in FIG. 15, without being affected like connection environment between the host computer and the storage system, it is possible to shorten the command response time.

本発明の第3の実施例について、以下に説明する。 A third embodiment of the present invention will be described below.

第2の実施例と異なるのは、動作モード判定モジュール205がDelayed ACKの影響を受けると判定した場合、データ分割モードの代りにデータ分離モードに従って、Delayed ACKの影響を回避する点である。 Differs from the second embodiment, if the operation mode determination module 205 determines that influence of the Delayed ACK, according to data separation mode instead of the data division mode is that to avoid the influence of the Delayed ACK. データ分離モードとは、記憶システム100がホストコンピュータ105の要求するデータを送信するとき、データに付加されるヘッダとデータをそれぞれ別パケットとして送信するモードである。 Data separation mode, when the storage system 100 transmits the data requested by the host computer 105, a mode for transmitting the header and data added to the data as separate packets, respectively. データ分離モードのどちらでもないモードは通常モードである。 Neither mode of data isolation mode is the normal mode. 記憶システム100は、図1に示す構成と同じであるが、データ分離モードを実現するために図2にデータ分離モジュール222が格納される。 Storage system 100 is the same as that shown in FIG. 1, the data separation module 222 in FIG. 2 in order to realize the data separation mode is stored.

図8は、第3の実施例における動作モード判定処理のフローチャートを示す図である。 Figure 8 is a diagram showing a flow chart of the operation mode determination process in the third embodiment.

ステップ810、815で動作モード判定モジュール205は、ホストコンピュータ105にデータを送信するために必要なパケット数を計算し、それが奇数であるか判定する。 Step operation mode determination module 205 in 810, 815 calculates the number of packets required to transmit the data to the host computer 105, determines whether it is an odd number. ここで、奇数か否かを判定するのは、本実施例でも第1の実施例と同様に、Delayed ACKは通信相手から2パケット受領するまで受領応答を遅らせることが出来るよう設定されているためである。 Here, to determine odd or not, as in the well first embodiment in the present embodiment, since the Delayed ACK is set so that it is possible to delay the acknowledgment until 2 packet received from the communication partner it is. なお、本実施例においても、2パケットに限定されるものではない。 Also in this embodiment, it is not limited to two packets. 例えば、3パケットとすれば、3の倍数か否かを判定することとなる。 For example, if three packets, and to determine whether a multiple of 3. 詳細については、後述する。 For more information, which will be described later.

パケット数が奇数である場合、データ分離モードが選択される(ステップ820)。 If the number of packets is an odd number, data separation mode is selected (step 820).

例えば、ホストコンピュータ105に送信するデータが4096バイトで、1パケットで送信可能なデータ長が1460バイトの場合、必要となるパケット数は3パケットとなる。 For example, the data to be transmitted to the host computer 105 is 4096 bytes, the data length which can be transmitted in one packet is 1460 bytes, the number of packets needed is three packets. この場合、Delayed ACKの影響をうけるため、送信データに付加されるヘッダをデータとは分離して別パケットで送信する。 In this case, since the influence of the the Delayed ACK, and transmits the separated by another packet and a header added to the transmission data the data. ヘッダは最初に送信するデータを含むパケットに含まれる。 It header included in the packet that contains the data to be transmitted first. つまり、ホストコンピュータ105に送信する最初の1パケットは、ヘッダとデータを含む。 That is, the first 1 packet to be transmitted to the host computer 105 includes a header and data. 従って、このヘッダとデータをそれぞれ別パケットで送信することで合計4パケットとなり、Delayed ACKの影響を回避することが出来る。 Therefore, the header and data for a total of 4 packets by sending a different packet respectively, it is possible to avoid the influence of the Delayed ACK.
パケット数が奇数ではない場合、通常モードが選択される(ステップ825)。 If the number of packets is not an odd number, the normal mode is selected (step 825).
そして、図3のステップ330に戻る。 Then, the flow returns to step 330 of FIG.

第3の実施例におけるコマンド処理を、図14を用いて説明すると、以下の流れとなる。 The command processing in the third embodiment, will be described with reference to FIG. 14, the following procedures.
CPU125は、ホストコンピュータ105へデータの送信準備が完了すると(ステップ1410、1415)、動作モードを確認する。 CPU125, when preparation for transmitting data to the host computer 105 is completed (step 1410,1415), to confirm the operating mode.

本実施例ではデータ分離モードであるので、先行パケットモード、及びデータ分割モードによる処理(ステップ1420:Yes、ステップ1440、ステップ1425:Yes、ステップ1450)は考慮せずに、ステップ1430へ進む。 In this embodiment, since there the data separation mode, the previous packet mode, and processing by the data dividing mode (step 1420: Yes, step 1440, step 1425: Yes, step 1450) in without considering, the process proceeds to step 1430. CPU125は、ホストIF部115にホストコンピュータ105に送信するパケットについて、ヘッダとデータを含むパケットをそれぞれ別パケットで送信するように指示し(ステップ1460)、そして、データ送信を指示する(ステップ1470)。 CPU125, for packets to be transmitted to the host IF unit 115 to the host computer 105 instructs to transmit a packet including a header and data in different packets, respectively (step 1460), and instructs the data transmission (step 1470) . CPU125は、全てのデータ送信の指示を完了するまでステップ1470を繰り返し、完了すると(ステップ1475)、図3のステップ335へ戻る。 CPU125 repeats steps 1470 to complete indication of all the data transmission completes (step 1475), the flow returns to step 335 of FIG.

図9は、第3の実施例におけるホストIF部のデータ送信処理のフローチャートを示す図である。 Figure 9 is a diagram showing a flowchart of a data transmission processing of the host IF section in the third embodiment.

ステップ910は、CPU125からの指示を待っている。 Step 910, waiting for instructions from the CPU125. CPU125から指示を受けると、現在の動作モードを確認する(ステップ915)。 Upon receiving an instruction from the CPU125, to check the current mode of operation (step 915). データ分離モードである場合、まず、ホストIF部115は、ヘッダを含むパケットをホストコンピュータ105へ送信する(ステップ932)。 If the data separation mode, first, the host IF unit 115 transmits a packet including a header to the host computer 105 (step 932). 具体的には、ホストIF部115は、Data−In PDUのヘッダを含むパケットを生成しホストコンピュータ105へ送信する。 Specifically, the host IF unit 115 transmits to the host computer 105 generates a packet containing the header of Data-In PDU. 続いて、ホストIF部115は、ホストコンピュータ105へデータ送信を開始し(ステップ934)、全てのデータを送信するまでステップ934を繰り返す。 Subsequently, the host IF unit 115 starts sending data to the host computer 105 (step 934) and repeats steps 934 to send all the data. ホストIF部115は、ホストコンピュータ105へのデータ送信が完了すると(ステップ936)、CPU125に対して完了報告を行う(ステップ950)。 Host IF unit 115, the data transmission to the host computer 105 is completed (step 936), performs a completion report to CPU 125 (step 950).

一方、ステップ915で、データ分離モードではない、即ち通常モードの場合、ホストコンピュータ105へ、ヘッダとデータを分離せずに通常通りデータを送信する(ステップ940)。 On the other hand, in step 915, not the data separation mode, i.e. in the normal mode, the host computer 105, transmits the data as usual without separating a header and data (step 940). そして、ホストIF部が、ホストコンピュータ105へのデータ送信が完了するまでステップ940を繰り返す。 The host IF unit repeats step 940 until the data transmission to the host computer 105 is completed. 最後に、ホストIF部115は、データ送信が完了すると(ステップ945)、ホストコンピュータ105へその完了報告を送信する(ステップ950)。 Finally, the host IF unit 115, once the data is sent (step 945), the host computer 105 transmits a navel completion report (step 950).

なお、データ転送以外のその他の指示を受けた場合は、ホストIF部115は、その指示に従って適切に処理し(ステップ955)、完了するまで繰り返し(ステップ960)、最後にCPU125へ完了を報告する(ステップ965)。 In addition, when receiving the additional instructions other than the data transfer, the host IF unit 115, suitably treated according to the instruction (step 955) is repeated until completed (step 960), reports the last completed the CPU125 (step 965).

なお、図15に示すホストコンピュータ105と記憶システム100間の通信の流れは、第1の実施例における“先行パケット送信(1505)”が、“ヘッダ送信”に変わるだけで他は同様となる。 The communication flow between the host computer 105 and the storage system 100 shown in FIG. 15, "the previous packet transmission (1505)" in the first embodiment, other just changed to "header transmission" is the same.

第3の実施例によれば、記憶システムは、ホストコンピュータが要求するデータの長さからDelayed ACKの影響を受けるか否かを判断し、更に、Delayed ACKの影響を受ける場合には、ヘッダとデータを分離しそれぞれ別パケットとして送信することで、図15に示す通信が可能となるため、ホストコンピュータと記憶システム間の接続環境などに左右されずに、コマンド応答時間を短縮することが出来る。 According to the third embodiment, the storage system, if it is determined whether affected Delayed ACK from the length of the data by the host computer requests further affected by the Delayed ACK includes a header and by sending another packet each separated data, since it becomes possible communication shown in FIG. 15, without being affected like connection environment between the host computer and the storage system, it is possible to shorten the command response time.

本発明の第4の実施例について、以下に説明する。 A fourth embodiment of the present invention will be described below.

これまでの実施例と異なるのは、動作モード判定処理のタイミングである。 It differs from the previous embodiment, a timing of the operation mode determination process. 具体的には、これまでの実施例では、動作モード判定処理はホストコンピュータからコマンドを受領した後であったが、第4の実施例では、そのコマンドを受領する前に動作モード判定処理を実施する点である。 Specifically, in the previous Examples, but the operation mode determination processing was after receiving a command from the host computer, in the fourth embodiment, performed the operation mode determination processing before receiving the command in that it is.

iSCSIでは、イニシエータ(本発明ではホストコンピュータに相当する)は、ターゲット(本発明では記憶システムに相当する)と通信するためにログインを行う。 In iSCSI, (corresponding to the host computer in the present invention) initiator, performs login in order to communicate with (corresponding to the storage system in the present invention) target. このときに、交換される情報は、イニシエータ、ターゲットの識別情報や、通信パラメータなどである。 In this case, information to be exchanged, the initiator, and the target's identity, and the like communication parameters. 第4の実施例では、ログイン時に交換される情報の中で、イニシエータ、即ちホストコンピュータの識別情報に着目する。 In the fourth embodiment, in the information exchanged during login, the initiator, that is, focused on the identification information of the host computer. つまり、ホストコンピュータの識別情報に応じてDelayed ACK適用判定を行う。 In other words, it performs Delayed ACK application determination in accordance with the identification information of the host computer. これを実現するため、図2に示したメモリ130に、新たに適用判定モジュール225、適用要否テーブル230をメモリに格納する。 To achieve this, the memory 130 shown in FIG. 2, and stores new application determination module 225, the application necessity table 230 in the memory.

適用判定モジュール225は、記憶システムと通信するホストコンピュータの識別情報によって、その通信がDelayed ACKの影響を受けるか否かを判定する機能を持つ。 Application determination module 225, the identification information of the host computer that communicates with the storage system, having the function of determining whether the communication is affected by the Delayed ACK. 識別情報とは、例えばiSCSIにおけるiSCSIネーム、TCPにおけるポート番号、IPにおけるIPアドレスなど、ホストコンピュータ、もしくはホストコンピュータ上のアプリケーションを一意に識別することが出来る情報のことである。 And identification information, for example, an iSCSI name in iSCSI, the port in the TCP number, IP address in the IP, is that the host computer or information the application on the host computer uniquely capable of identifying.

また、予めホストコンピュータとの通信の特性に着目する。 Also, attention is paid to the characteristics of the communication with the pre host computer. 例えば、記憶システムの状態監視などを行う管理アプリケーションなどが実行されるホストコンピュータは、比較的要求するデータ長が短いコマンドを実行する。 For example, a host computer such as a management application to perform such condition monitoring of the storage system is executed, the data length to be relatively request to execute a short command. このようなホストコンピュータとの通信において、Delayed ACKの影響を受ける可能性がある。 In communication with such a host computer, it may be affected in the Delayed ACK. このようなホストコンピュータの識別情報は、後述する適用要否テーブル230に登録され、適用判定モジュール225が、このテーブルを参照することによって、Delayed ACKの影響の有無を調査することが出来る。 Identification information of the host computer is registered in the application necessity table 230 to be described later, application determining module 225, by referring to this table, it is possible to investigate whether the influence of the Delayed ACK.

図12に、適用要否テーブル230を示す。 Figure 12 shows an application necessity table 230. この適用要否テーブル230は、適用判定モジュール225によって参照されるテーブルである。 This application necessity table 230 is a table referenced by the application determination module 225. 適用要否テーブル230は、少なくともホストコンピュータ識別情報フィールド1210とDelayed ACKフィールド1220で構成される。 Related necessity table 230 is composed of at least the host computer identification information field 1210 and the Delayed ACK field 1220. ホストコンピュータ識別情報フィールド1210は、例えば、iSCSIではiSCSIネーム、TCPではポート番号、IPではIPアドレスなどの情報を格納するフィールドである。 Host computer identification information field 1210, for example, a field for storing iSCSI with iSCSI names, TCP on port number, information such as IP in IP address. 図12では、一例としてiSCSIネーム「iqn.2004-05.com.xyz:host1」「iqn.2004-05.com.xyz:host2」「iqn.2004-05.com.xyz:host3」が格納されている。 In Figure 12, iSCSI name "Iqn.2004-05.Com.Xyz:Host1'`iqn.2004-05.Com.Xyz:Host2'`iqn.2004-05.Com.Xyz:Host3" is stored as an example ing.

Delayed ACKフィールド1220は、ホストコンピュータとの通信でDelayed ACKの影響を受けるか否かを示すフィールドである。 Delayed ACK field 1220 is a field indicating whether affected Delayed ACK in communication with the host computer. 図12では、識別情報「iqn.2004-05.com.xyz:host1」との通信ではDelayed ACKの影響「有り」、「iqn.2004-05.com.xyz:host2」との通信ではDelayed ACKの影響「無し」、「iqn.2004-05.com.xyz:host3」との通信ではDelayed ACKの影響「無し」となっている。 In Figure 12, "yes" Effect of Delayed ACK in communication with identification information "iqn.2004-05.com.xyz:host1", the Delayed Communication with "iqn.2004-05.com.xyz:host2" ACK of influence "no", and has a influence "no" in the Delayed ACK is in communication with the "iqn.2004-05.com.xyz:host3". これらのホストコンピュータの識別情報に応じてDelayed ACK適用判定が行われる。 Delayed ACK application determination is made in accordance with the identification information of the host computer.
図10は、第4の実施例におけるデータ送受信処理のフローチャートを示す図である。 Figure 10 is a diagram showing a flowchart of a data transmission and reception process in the fourth embodiment.

ステップ1010で、ホストコンピュータ105からのログインを受信するまで待つ。 In step 1010, and waits until it receives a login from the host computer 105. ホストコンピュータ105からログインを受信すると、ログイン処理を行う(ステップ1015)。 Upon receiving the log from the host computer 105, it performs a login process (step 1015). ログイン処理とは、ホストIF部115によるホストコンピュータ105の認証や、ホストコンピュータ105と通信するための転送パラメータの決定、CPU125によるディスク装置150内の記憶領域の割り当てなどである。 The login process, authentication and the host computer 105 by the host IF unit 115, the determination of transfer parameters for communicating with the host computer 105, and the like allocation of the storage area in the disk device 150 by CPU 125.

次に、CPU125は、動作モードを判定する(ステップ1020)。 Next, CPU 125 determines the operation mode (step 1020). 動作モード判定処理の詳細については後述する。 Details will be described later of the operation mode determination process. ホストIF部115は、ログイン処理、動作モード判定処理の結果を踏まえて、ホストコンピュータ105へログイン応答を送信する(ステップ1025)。 Host IF unit 115, the login processing, based on the results of the operation mode determination processing, and transmits a login response to the host computer 105 (step 1025). 次のステップ1030では、ログインしたホストコンピュータからのコマンド受領を待つ。 In the next step 1030, it waits for a command received from the host computer you are logged in. ステップ1030は、図3のステップ315の処理と同じである。 Step 1030 is the same as the processing at step 315 of FIG.

ホストコンピュータからコマンドやデータを含むパケットを受領すると、ホストIF部115によってコマンドやデータなどがメモリ130に書き込まれ、CPU125はメモリ130に書き込まれたコマンドを解析する(ステップ1035)。 Upon receipt of a packet including a command and data from the host computer, such as commands and data by the host IF unit 115 is written into the memory 130, CPU 125 analyzes the command written in the memory 130 (step 1035). ステップ1035は、図3のステップ320の処理と同じである。 Step 1035 is the same as the processing at step 320 of FIG. 以降、ステップ1020によって設定された動作モードに従って、コマンド処理が行われ(ステップ1040)、終了するまでステップ1040を繰り返す。 Since, in accordance with the operation mode set by the step 1020, the command processing is performed (step 1040) and repeats steps 1040 to complete. コマンド処理が終了すると(ステップ1045)、CPU125は、ホストコンピュータへコマンド応答の送信をホストIF部115に指示し(ステップ1050)、コマンド受領待ちになる。 When the command processing is completed (step 1045), CPU 125 instructs the transmission of the command response to the host computer to the host IF unit 115 (step 1050), the command reception wait.

図11は、第4の実施例における動作モード判定処理のフローチャートを示す図である。 Figure 11 is a diagram illustrating a flowchart of the operation mode determination processing in the fourth embodiment. なお、第4の実施例では、記憶システム105は動作モードとして先行パケットモードを備えることとするが、第5の実施例あるいは第6の実施例で後述するようにデータ分割モードあるいはデータ分離モードも適宜選択可能である。 In the fourth embodiment, the storage system 105 is a further comprising a preceding packet mode as the operation mode, the fifth embodiment or the sixth data division mode or a data separation mode, as described later in the examples of It can be appropriately selected.

最初のステップ1105は、CPU125は、ログインを要求したホストコンピュータが、Delayed ACKの影響を受ける通信相手か否かを判定する。 The first step 1105, CPU 125 is a host computer that requested the login determines whether the communication partner affected by the Delayed ACK. この判定を行うため、CPU125は、適用要否テーブル230を参照する。 To make this determination, CPU 125 refers to the application necessity table 230. CPU125は、先行パケットの送信が必要である、即ちDelayed ACKの影響を受けると判定した場合、先行パケットモードが選択される(ステップ1110)。 CPU125 requires the transmission of the previous packet, i.e. when it is determined that the influence of the Delayed ACK, the previous packet mode is selected (step 1110). 例えば、ステップ1105で、CPU125は、適用要否テーブル230を参照し、ログインを要求したホストコンピュータの識別情報が、“iqn.2004-05.com.xyz:host1“であればDelayed ACKの影響を受ける通信となるため先行パケットモードが選択される。 For example, in step 1105, CPU 125 refers to the application necessity table 230, identification information of the host computer that requested the login, the influence of the Delayed ACK if "iqn.2004-05.com.xyz:host1" previous packet mode is selected to receive the communication.

先行パケットの送信が不要、即ちDelayed ACKの影響を受けないと判定した場合、通常モードが選択される(ステップ1115)。 Unnecessary transmission of the previous packet, i.e. if it is determined not affected by the Delayed ACK, the normal mode is selected (step 1115). 例えば、ステップ1105で、CPU125は、適用要否テーブル230を参照し、ログインを要求したホストコンピュータの識別情報が、”iqn.2004-05.com.xyz:host2“であれば、Delayed ACKの影響を受けない通信となるため通常モードが選択される。 For example, in step 1105, CPU 125 refers to the application necessity table 230, identification information of the host computer that requested the login, if "iqn.2004-05.com.xyz:host2", the influence of the Delayed ACK normal mode since the communication is not subjected to is selected.

そして、図10のステップ1025へ進む。 Then, the process proceeds to step 1025 in FIG. 10.

先行パケットモード、及び通常モード時のコマンド処理は、第1の実施例における図14と同様の処理でよい。 Previous packet mode, and the command processing of the normal mode may be the same processing as FIG. 14 in the first embodiment.

第4の実施例によれば、記憶システムは、ホストコンピュータの識別情報を元に、Delayed ACKの影響を受けるか否かを判定し、更に、Delayed ACKの影響を受ける場合には、データを送信する前に該コマンドとは直接関係のないパケットを先行的に送信することによって、ホストコンピュータと記憶システム間の接続環境などに左右されずに、コマンド応答時間を短縮することが出来る。 According to the fourth embodiment, the storage system, based on the identification information of the host computer determines whether affected Delayed ACK, further, if effects of the Delayed ACK, the transmission data by sending packets without directly related to the command prior to prior to, without being affected like connection environment between the host computer and the storage system, it is possible to shorten the command response time.

本発明の第5の実施例について、以下に説明する。 A fifth embodiment of the present invention will be described below.

第4の実施例と異なるのは、動作モードとしてデータ分割モードを備えている点である。 It differs from the fourth embodiment in that it includes a data division mode as the operation mode.

図16は、第5の実施例における動作モード判定処理のフローチャートを示す図である。 Figure 16 is a diagram illustrating a flowchart of the operation mode determination processing in the fifth embodiment.

最初のステップ1610では、CPU125は、ログインを要求したホストコンピュータが、Delayed ACKの影響を受ける通信相手か否かを判定する。 In a first step 1610, CPU 125 is a host computer that requested the login determines whether the communication partner affected by the Delayed ACK. この判定を行うため、CPU125は適用要否テーブル230を参照する。 To make this determination, CPU 125 refers to the application necessity table 230. CPU125が、データの分割が必要である、即ちDelayed ACKの影響を受けると判定した場合、データ分割モードが選択される(ステップ1615)。 CPU125 is required division of the data, i.e., if it is determined that affected the Delayed ACK, data segmentation mode is selected (step 1615). データの分割が不要である、即ちDelayed ACKの影響を受けないと判定した場合、通常モードが選択される(ステップ1620)。 Division of the data is unnecessary, i.e. if it is determined not affected by the Delayed ACK, the normal mode is selected (step 1620).

具体的には、ログインを要求したホストコンピュータの識別情報が、“iqn.2004-05.com.xyz:host1“であればDelayed ACKの影響を受ける通信となるためデータ分割モードが選択される。 Specifically, identification information of the host computer that requested the login, the Delayed ACK data split mode for the communication affected are selected if "iqn.2004-05.com.xyz:host1". ” iqn.2004-05.com.xyz:host2“であれば、Delayed ACKの影響を受けない通信となるため通常モードが選択される。 If "iqn.2004-05.com.xyz:host2", the normal mode since the communication is not affected by the Delayed ACK is selected. データ分割モード、及び通常モード時のコマンド処理は、第1の実施例における図14と同様の処理でよい。 Data split mode, and the command processing of the normal mode may be the same processing as FIG. 14 in the first embodiment. そして、図10のステップ1025へ進む。 Then, the process proceeds to step 1025 in FIG. 10.

第5の実施例によれば、記憶システムは、ホストコンピュータの識別情報を元にDelayed ACKの影響を受けるか否かを判断し、更に、Delayed ACKの影響を受ける場合には、送信するデータを分割することで、図15に示すような通信が可能となるため、ホストコンピュータと記憶システム間の接続環境などに左右されずに、コマンド応答時間を短縮することが出来る。 According to the fifth embodiment, the storage system determines whether based on the identification information of the host computer affected Delayed ACK, further, to be affected by the Delayed ACK is data to be transmitted by dividing, since it becomes possible to perform communication as shown in FIG. 15, without being affected like connection environment between the host computer and the storage system, it is possible to shorten the command response time.

本発明の第6の実施例について、以下に説明する。 The sixth embodiment of the present invention will be described below.

第4の実施例や第5の実施例と異なるのは、動作モードとしてデータ分離モードを備えている点である。 Is different from the fourth embodiment and the fifth embodiment is that it includes a data separation mode as the operation mode.

図17は、第6の実施例における動作モード判定処理のフローチャートを示す図である。 Figure 17 is a diagram illustrating a flowchart of operation mode determination processing in the sixth embodiment.

最初のステップ1710では、CPU125は、ログインを要求したホストコンピュータが、Delayed ACKの影響を受ける通信相手か否かを判定する。 In a first step 1710, CPU 125 is a host computer that requested the login determines whether the communication partner affected by the Delayed ACK. この判定を行うため、CPU125は適用要否テーブル230を参照する。 To make this determination, CPU 125 refers to the application necessity table 230. CPU125が、ヘッダとデータの分離が必要である、即ちDelayed ACKの影響を受けると判定した場合、データ分割モードが選択される(ステップ1715)。 CPU125 is needed to separate the header and the data, that is, when it is determined that the influence of the Delayed ACK, data segmentation mode is selected (step 1715). ヘッダとデータの分離は不要である、即ちDelayed ACKの影響を受けないと判定した場合、通常モードが選択される(ステップ1720)。 Header and the separation of the data is unnecessary, i.e. if it is determined not affected by the Delayed ACK, the normal mode is selected (step 1720).
具体的には、ログインを要求したホストコンピュータの識別情報が、“iqn.2004-05.com.xyz:host1“であればDelayed ACKの影響を受ける通信となるためデータ分離モードが選択される。 Specifically, identification information of the host computer that requested the login, the Delayed ACK communication, and therefore data separation mode affected by are selected if "iqn.2004-05.com.xyz:host1". ” iqn.2004-05.com.xyz:host2“であれば、Delayed ACKの影響を受けない通信となるため通常モードが選択される。 If "iqn.2004-05.com.xyz:host2", the normal mode since the communication is not affected by the Delayed ACK is selected. データ分離モード、及び通常モード時のコマンド処理は、第1の実施例における図14と同様の処理でよい。 Data separation mode, and the command processing of the normal mode may be the same processing as FIG. 14 in the first embodiment. そして、図10のステップ1025へ進む。 Then, the process proceeds to step 1025 in FIG. 10.

第6の実施例によれば、記憶システムは、ホストコンピュータの識別情報を元にDelayed ACKの影響を受けるか否かを判断し、更に、Delayed ACKの影響を受ける場合には、ヘッダとデータを分離しそれぞれ別パケットとして送信することで、図15に示すような通信が可能となるため、ホストコンピュータと記憶システム間の接続環境などに左右されずに、コマンド応答時間を短縮することが出来る。 According to the sixth embodiment, the storage system determines whether based on the identification information of the host computer affected Delayed ACK, further, if effects of the Delayed ACK has a header and data by sending separate as separate packets each, since it becomes possible communication as shown in FIG. 15, without being affected like connection environment between the host computer and the storage system, it is possible to shorten the command response time.

なお、本発明は、上記の実施例に限定されるものではなく、例えば以下のような応用も可能である。 The present invention is not limited to the above embodiments, for example the following applications are possible.

(1)上述した第1の実施例から第3の実施例では、CPU125がDelayed ACKの影響を受けるか否かを判定する際に、ホストコンピュータ105へ送信するパケット数が奇数であるかで判定したが、別の判定基準を使ってもよい。 (1) In the third embodiment from the first embodiment described above, the determination in CPU125 to determine whether affected by the Delayed ACK, on ​​whether the number of packets to be transmitted to the host computer 105 is an odd number but it was, may be using a different criteria. Delayed ACKは2パケット受信するまでその受領応答を遅延させることが出来る、とされている。 Delayed ACK can delaying the acknowledgment until it receives two packets, that is. これを、仮に任意のパケット数を受信するまでその受領応答を遅延させることが出来る、となった場合、例えば動作モードが先行パケットモードにおいて、図4のステップ415を以下のようにすればよい。 This, if when it becomes its acknowledgment to can be delayed until receiving any number of packets, for example in the operation mode is previous packet mode, the step 415 of FIG. 4 may be performed as follows. ここで、Delayed ACK適用パケット数を(D)とする。 Here, the Delayed ACK number applicable packets (D). Delayed ACK適用パケット数は任意の値を指定可能とする。 Delayed ACK application packet number allows any value.

ステップ415では、(C)を(D)で割った余りを(E)とすると、余りがない場合は、Delayed ACKの影響を受けないと判定し通常モードが選択すればよい。 In step 415, when the (C) the remainder divided by (D) (E), if there is no remainder, it is determined to be immune to Delayed ACK may be selected normal mode. 余りが発生した場合、Delayed ACKの影響を受けると判定し先行パケットモードが選択すればよい。 If the remainder is generated, may be subjected judged selected previous packet mode the influence of the Delayed ACK. Delayed ACK適用パケット数からステップ415で計算した余りを差し引いた((D)−(E))数だけ先行パケットを送信すればDelayed ACKの影響を回避することが出来る。 Delayed ACK from the application packet number minus the remainder calculated in step 415 ((D) - (E)) number only previous packet can avoid the influence of the Delayed ACK be transmitted to.

そして、図5に示すホストIF部のデータ送信処理のステップ520を先ほど計算した((D)−(E))の回数分だけ繰り返せばよい。 Then, a step 520 of the data transmission processing of the host IF section shown in FIG. 5 and previously calculated - may be repeated as many times of ((D) (E)). なお、他の動作モード(データ分割モード、データ分離モード)であってもよい。 It may be another operating mode (data division mode, data separation mode).

(2)上述した第4の実施例から第6の実施例では、ホストコンピュータからログインしたタイミングで、Delayed ACKの適用判定を行っているが、ホストコンピュータを識別情報が取得できる任意のタイミングでも構わない。 (2) from the fourth embodiment described above in the sixth embodiment, at the timing when logging in from a host computer, is performed the application determination of the Delayed ACK, may be at any timing can be acquired host computer identification information Absent. 例えば、ホストコンピュータが記憶システムとTCPコネクションを確立するタイミングでもよい。 For example, it may be a timing when the host computer establishes a storage system and TCP connections. このとき、少なくともホストコンピュータの識別情報として、MACアドレス、IPアドレス、TCPポート番号が取得出来るため、いずれかの識別情報を使ってDelayed ACKの適用判定が可能である。 At this time, as the identification information of at least the host computer, because the MAC address, IP addresses, TCP port numbers can be acquired, it is possible to apply the determination of the Delayed ACK using one of the identification information.

(3)上述した各実施例において、プロトコル処理は、ホストIF部のIF処理部119で実施しているが、これらプロトコル処理の実装形態はこれに限定されるものではない。 (3) In each embodiment described above, protocol processing, although carried out in IF processing unit 119 of the host IF section, implementation of these protocol processing is not limited thereto. 例えば、CPU125がiSCSIやTCPなどのプロトコル処理を実施してもよい。 For example, CPU 125 may be implemented a protocol processing such as iSCSI and TCP. その場合、CPU125は、iSCSI PDUなどの生成や、ホストコンピュータ105と記憶システム100間で行われる通信に必要な制御情報の管理、状態監視や障害処理などを行うことになる。 In that case, CPU 125 may generate and the like iSCSI PDU, the management of the control information necessary for communication performed between the host computer 105 and the storage system 100, will perform such condition monitoring and fault processing. また、プロトコル処理の過程で一時的に使用されるバッファ117は、メモリ130となる。 The buffer 117 temporarily used in the course of the protocol processing, a memory 130.

更に、図5などに示すホストIF部のデータ送信処理は、CPU125で実施すればよい。 Furthermore, the data transmission processing of the host IF section shown in such FIG. 5 may be performed in CPU 125. その場合、CPU125自身でデータ送信処理を行うため、ホストIF部115は、CPU125が生成したパケットを単にホストコンピュータ105に送信するだけでよく、例えばステップ510は省略可能である。 In that case, in order to perform data transmission processing in the CPU125 itself, the host IF unit 115 need only simply transmitted to the host computer 105 packets CPU125 is generated, for example, step 510 can be omitted. 更に、ステップ525、555については、完了報告ではなく、完了を確認すればよい。 Moreover, steps 525,555, rather than the completion report may be confirmed completion.

(4)上述した各実施例において、プログラムによって実現されていた機能の一部をハードウェアで実現してもよく、その逆で、ハードウェアで実現されていた機能の一部をソフトウェアで実現出来るようにしてもよい。 (4) In each embodiment described above, a part of the function that is realized by the program may be implemented in hardware, and vice versa, can be realized part of the functionality is implemented in hardware in software it may be so. なお、記憶システム100は、ホストコンピュータ105から要求されたデータの格納、または提供が出来る構成であれば図1に示した構成に限定されるものではない。 The storage system 100 stores the data requested from the host computer 105, or provided is not limited as long as the configuration to the configuration shown in FIG. 1 as possible.

(5)上述した各実施例において、記憶システム100の各構成要素110、145、140間をスイッチ135で接続する例を示したが、各構成要素間でデータや制御情報等が転送されればよく、例えばバスによる接続であってもよい。 (5) In each embodiment described above, between the components 110,145,140 of the storage system 100 showing an example of connecting the switch 135, if in is such as data and control information transfer between components well, for example it may be connected by a bus.

(6)上述した各実施例において、ホストコンピュータ105とディスク装置150のインタフェースを備える制御部を、ホストIF制御部110、ディスクIF制御部145として別々に備える構成を示したが、記憶システム100内で双方のインタフェースを備えていればよく、例えばホストIF制御部110とディスクIF制御部145の機能を兼ね備える制御部としてもよい。 (6) In each embodiment described above, the control unit comprising an interface of the host computer 105 and the disk device 150, the host IF control unit 110, a configuration has been shown with separately as disk IF control unit 145, storage system 100 in sufficient that includes both interfaces, or as a control unit having both example functions of the host iF control unit 110 and the disk iF control unit 145.

(7)上述した各実施例において、メモリ140をキャッシュメモリ(図示せず)、共有メモリ(図示せず)と領域を分けた例を示したが、記憶システム100内のいずれかの場所で管理されていればよく、例えば、ホストIF制御部110のメモリ130で管理してもよい。 (7) In each of the foregoing embodiments, (not shown) cache memory memory 140, an example of dividing an area between the shared memory (not shown), management anywhere in the storage system 100 only to be, for example, may be managed in the memory 130 of the host iF control unit 110.

記憶システムの構成を示す概略図である It is a schematic diagram of a storage system メモリ130に格納するCPUが実行するプログラムの一例を示した図である。 Is a diagram illustrating an example of a program which the CPU to be stored in the memory 130 is executed. 第1の実施例におけるデータ送受信処理のフローチャートを示す図である。 It is a diagram showing a flowchart of a data transmission and reception processing in the first embodiment. 第1の実施例における動作モード判定処理325のフローチャートを示す図である。 It shows a flowchart of operation mode determination processing 325 in the first embodiment. 第1の実施例におけるホストIF部のデータ送信におけるフローチャートを示す図である。 Shows a flow chart of data transmission of the host IF unit in the first embodiment. 第2の実施例における動作モード判定処理のフローチャートを示す図である。 It shows a flowchart of operation mode determination processing in the second embodiment. 第2の実施例におけるホストIF部のデータ送信処理のフローチャートを示す図である。 Is a diagram showing a flowchart of a data transmission processing of the host IF unit according to the second embodiment. 第3の実施例における動作モード判定処理のフローチャートを示す図である。 It shows a flowchart of the operation mode determination process in the third embodiment. 第3の実施例におけるホストIF部のデータ送信処理のフローチャートを示す図である。 Is a diagram showing a flowchart of a data transmission processing of the host IF section in the third embodiment. 第4の実施例におけるデータ送受信処理のフローチャートを示す図である。 It is a diagram showing a flowchart of a data transmission and reception process in the fourth embodiment. 第4の実施例における動作モード判定処理のフローチャートを示す図である。 It shows a flowchart of the operation mode determination processing in the fourth embodiment. 適用要否テーブル230の一例を示す図である。 Applied is a diagram showing an example of a necessity table 230. iSCSIプロトコルによるリードコマンド処理の流れを示す。 It shows the flow of the read command processing by the iSCSI protocol. 本発明におけるコマンド処理330のフローチャートを示す図である。 It is a diagram showing a flowchart of command processing 330 in the present invention. 本発明におけるホストコンピュータ105と記憶システム100間の通信の様子を示した図である Is a diagram showing a state of communication between the host computer 105 and the storage system 100 of the present invention 第5の実施例における動作モード判定処理のフローチャートを示す図である。 It shows a flowchart of the operation mode determination processing in the fifth embodiment. 第6の実施例における動作モード判定処理のフローチャートを示す図である。 It shows a flowchart of operation mode determination processing in the sixth embodiment.

符号の説明 DESCRIPTION OF SYMBOLS

100…記憶システム、105…ホスト、110…ホストIF制御部、115…ホストIF部、117…BUF、119…IF処理部、120…データ転送制御部、125…CPU、130…メモリ、135…スイッチ、140…メモリ、145…ディスクIF制御部、150…ディスク装置、201…コマンド解析モジュール、203…データ転送モジュール、205…動作モード判定モジュール、215…先行パケット送信モジュール、220…データ分割モジュール、222…データ分離モジュール、225…適用判定モジュール、230…適用要否テーブル 100 ... storage system, 105 ... host, 110 ... host IF control unit, 115 ... host IF section, 117 ... BUF, 119 ... IF processing section, 120 ... data transfer control unit, 125 ... CPU, 130 ... memory, 135 ... switch , 140 ... memory, 145 ... disk IF control unit, 150 ... disc apparatus, 201 ... command analysis module, 203 ... data transfer module, 205 ... operation mode determination module, 215 ... previous packet transmission module, 220 ... data splitting module, 222 ... data separation module, 225 ... application determining module, 230 ... application necessity table

Claims (2)

  1. ホストコンピュータに接続され、データを格納する記憶部を有する記憶システムであって、 Is connected to a host computer, a storage system having a storage unit for storing data,
    当該記憶システムのデータ処理の動作モードを判定する動作モード判定部と、 An operation mode determining section determines the operation mode of the data processing of the storage system,
    前記動作モードに従って所定のデータ処理を行うデータ処理部と、 A data processing unit for performing predetermined data processing according to said operation mode,
    前記ホストコンピュータからのログインを受領してログイン処理を行う際に前記ホストコンピュータの識別情報を取得する識別情報取得部と、 An identification information acquisition unit for acquiring identification information of the host computer when performing a login process receives a login from the host computer,
    前記識別情報と、前記ホストコンピュータと前記記憶システム間の通信で遅延確認応答の影響の有無との対応関係を予め記憶したテーブルと、を有し、 Wherein a identification information, and a previously stored table the correspondence between the presence or absence of the influence of delayed acknowledgment communication between said host computer said storage system,
    前記動作モード判定部は、 The operation mode determination section,
    前記ホストコンピュータからデータが要求される前に、記識別情報取得部が取得した前記識別情報と前記テーブルとを参照して前記遅延応答の影響の有無を判定し、 Wherein before the data from the host computer is required to determine the presence or absence of the influence of the previous SL reference the delayed response and the said identification information identifying information acquiring unit acquires the table,
    前記遅延応答の影響有りと判定した場合は、先行パケットモードを選択し、 If it is judged influence of the delayed response, select a previous packet mode,
    前記遅延応答の影響が無いと判定した場合は通常モードを選択し、 Selects the normal mode when it is determined that there is no influence of the delayed response,
    前記データ処理部は、 Wherein the data processing unit,
    前記先行パケットモードが選択された場合、前記ホストコンピュータが当該記憶システムとの通信で用いるプロトコルで認識可能な情報であって、かつ、前記ホストコンピュータが前記情報を受領したことを確認する確認応答を送信する必要のない情報を有する先行パケットを前記ホストコンピュータから要求された前記データを返信する前に前記ホストコンピュータに送信し、その後に前記データを前記ホストコンピュータに送信し、 If the previous packet mode is selected, the host computer is a recognizable information protocol used in communication with the storage system, and an acknowledgment to confirm that the host computer has received the information the previous packet having information need not be sent and sends to the host computer before returning the data requested from the host computer, and then transmit the data to the host computer,
    前記通常モードが選択された場合、前記先行パケットを前記ホストコンピュータに送信せずに、前記データを前記ホストコンピュータに送信する ことを特徴とする記憶システム。 Storage system when said normal mode is selected, that without sending the previous packet to the host computer, and transmits the data to the host computer.
  2. 請求項1記載の記憶システムであって、 A storage system according to claim 1,
    前記先行パケットは、前記データ転送とは異なる階層で転送される記憶システム。 It said previous packet are the remembers system that will be transferred at a different hierarchy with the data transfer.
JP2006018369A 2006-01-27 2006-01-27 iSCSI communication control method and a storage system using the same Expired - Fee Related JP4786354B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006018369A JP4786354B2 (en) 2006-01-27 2006-01-27 iSCSI communication control method and a storage system using the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006018369A JP4786354B2 (en) 2006-01-27 2006-01-27 iSCSI communication control method and a storage system using the same
US11400104 US7565439B2 (en) 2006-01-27 2006-04-07 Communication control for storage system

Publications (2)

Publication Number Publication Date
JP2007200055A true JP2007200055A (en) 2007-08-09
JP4786354B2 true JP4786354B2 (en) 2011-10-05

Family

ID=38323476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006018369A Expired - Fee Related JP4786354B2 (en) 2006-01-27 2006-01-27 iSCSI communication control method and a storage system using the same

Country Status (2)

Country Link
US (1) US7565439B2 (en)
JP (1) JP4786354B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010226455A (en) * 2009-03-24 2010-10-07 Sony Corp Network communication apparatus
US8576711B1 (en) * 2010-09-28 2013-11-05 Google Inc. System and method for reducing latency via client side dynamic acknowledgements
WO2012049760A1 (en) * 2010-10-14 2012-04-19 富士通株式会社 Reference time setting method for storage control device
US9606863B2 (en) * 2010-10-25 2017-03-28 SMART High Reliability Solutions, LLC Fabric-based solid state drive architecture
JP6102220B2 (en) * 2012-11-28 2017-03-29 株式会社リコー The image processing system and information processing method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0212429A (en) * 1988-06-30 1990-01-17 Toshiba Corp Information processor with function coping with delayed jump
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
JP2002351658A (en) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd Arithmetic processor
JP3763142B2 (en) * 2002-01-30 2006-04-05 ソニー株式会社 Privileged instruction execution control device, privileged instruction execution control method, and a privileged instruction execution control program
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
JP2004030765A (en) * 2002-06-25 2004-01-29 Fujitsu Ltd Semiconductor storage device incorporated with self-diagnostic function
JP4337538B2 (en) * 2003-12-12 2009-09-30 日本電気株式会社 Host interface control apparatus and a control method and control program
JP4337675B2 (en) * 2004-07-23 2009-09-30 ソニー株式会社 Cryptographic processing apparatus and cryptographic processing method
US7676614B2 (en) * 2005-01-13 2010-03-09 Infortrend Technology, Inc. Redundant storage virtualization computer system

Also Published As

Publication number Publication date Type
US20070180169A1 (en) 2007-08-02 application
US7565439B2 (en) 2009-07-21 grant
JP2007200055A (en) 2007-08-09 application

Similar Documents

Publication Publication Date Title
US7194550B1 (en) Providing a single hop communication path between a storage device and a network switch
US7721150B2 (en) Failover and load balancing
US6308238B1 (en) System and method for managing connections between clients and a server with independent connection and data buffers
US7107348B2 (en) Packet relay processing apparatus
US20020138614A1 (en) Method and apparatus to manage network addresses
US20050175003A1 (en) Protocol stack that offloads a TCP connection from a host computer to a network interface device
US20020174208A1 (en) Network communications management system and method
US7055028B2 (en) HTTP multiplexor/demultiplexor system for use in secure transactions
US6912588B1 (en) System and method for managing client requests in client-server networks
US20020129165A1 (en) Network address translation and port mapping
US20060235977A1 (en) Offloading data path functions
US6775693B1 (en) Network DMA method
US20060230119A1 (en) Apparatus and method for packet transmission over a high speed network supporting remote direct memory access operations
US20020052931A1 (en) HTTP multiplexor/demultiplexor
US7596144B2 (en) System-on-a-chip (SoC) device with integrated support for ethernet, TCP, iSCSI, RDMA, and network application acceleration
US20070208820A1 (en) Apparatus and method for out-of-order placement and in-order completion reporting of remote direct memory access operations
US6389550B1 (en) High availability protocol computing and method
US20060221946A1 (en) Connection establishment on a tcp offload engine
US7801978B1 (en) Apparatus, method and computer program product for efficiently pooling connections between clients and servers
US7200641B1 (en) Method and system for encoding SCSI requests for transmission using TCP/IP
US20030152036A1 (en) Apparatus and method of splitting a data stream over multiple transport control protocol/internet protocol (TCP/IP) connections
US20040044798A1 (en) System and method for network interfacing in a multiple network environment
US20040117496A1 (en) Networked application request servicing offloaded from host
US20040054996A1 (en) Dynamic TCP partitioning
US6874147B1 (en) Apparatus and method for networking driver protocol enhancement

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081021

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090127

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110323

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110520

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110712

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110713

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140722

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees