The present invention relates to a computer system and a method of frame transfer bandwidth optimization and is suited for use in, for example, a computer system for which an FCoE (Fibre Channel over Ethernet (registered trademark)) technique is adopted.
In recent years, a communication protocol called the FCoE has been drawing public attention as one of data transfer methods. The FCoE is a data transfer method for encapsulating a frame according to the Fibre Channel standards (hereinafter referred to as the FC [Fibre Channel] frame) and transferring it via the Converged Enhanced Ethernet (CEE) (registered trademark).
According to the Fibre Channel standards, unlike a best effort type such as an IP (Internet Protocol) network, a flow control mechanism that will not cause frame loss is provided and a high-speed and low-delay “lossless” network environment is realized.
The FCoE adopts a communication method called CEE (Converged Enhanced Ethernet) in order to realize such a “lossless” environment on the Ethernet (registered trademark). The CEE is a next-generation network that expands the existing Ethernet (registered trademark) by particularly imagining the use at a data center. And some new technologies such as PFC (Priority-based Flow Control), ETS (Enhanced Transmission Selection), CN (Congestion Notification), DCBX (Data Center Bridging eXchange), and TRILL (TRansparent Interconnection of Lots of Links) are adopted for this CEE.
Meanwhile, for example, data of various protocols such as IP-based iSCSI (internet Small Computer System Interface), VoIP (Voice over Internet Protocol), and NFS (Network File System) are transferred over a physical network and part of such data is read from, and/or written to, a storage apparatus at a data center where fabric is constructed.
On the other hand, in some case, data stored in the storage apparatus is controlled so that the data is appropriately placed in storage tiers which are classified by performance and cost in accordance with, for example, the importance and access frequency of the data. Examples of the storage tiers in descending order starting from a high-level tier include a tier composed of a group of semiconductor disk devices (SSDs [Solid State Drives]), a tier composed of a group of high-speed SAS (Serial Attached SCSI) disk devices, and a tier composed of a group of low-speed, but large-capacity SATA (Serial ATA) disk devices or NL SAS (Near-Line SAS) disk devices. In addition, a tier composed of tape media for the backup or archival use may be sometimes provided.
With the storage apparatus to which the storage tiers are applied in this manner, high-speed and expensive storage media are placed in the high-level tiers and low-speed and inexpensive storage media are placed in the low-level tiers. Such placement of the storage media has a great advantage of enabling an owner of the storage apparatus to minimize deployment cost. Furthermore, data in the high-level tiers needs a broadband for data transfer, but data in the low-level tiers does not need such wide bandwidth.
Since the above-mentioned ETS and PFC only have protocol-based granularity at minimum, the same bandwidth will be allocated to data of logical volumes for high transactions, and data of logical volumes for archival use. That is because both of data access use the same FCoE protocol. As a result, excessive resources (e.g. high bandwidth) are assigned to the logical units for the archival use.
Furthermore, as a result of integration of an IP-SAN according to iSCSI and an FC-SAN, which have conventionally been different networks, by means of the CEE, the data transfer bandwidth will be shared. Regarding the ETS, a maximum of 8+1 (=9) priority groups (PG) can be defined (priority group IDs 0 to 7 and a priority group ID 15 are for exclusive use for the IPC).
However, the absolute number of priority groups for the ETS is small as mentioned above, it is assumed that protocols for the SAN, which are block-access protocols like iSCSI and FCoE, are put together in the same priority group in the actual operation. If both frames have the same weight in the vicinity of an upper limit of a physical bandwidth, they will be sent cyclically (alternately) by a weighted round robin method.
Conventionally, regarding the iSCSI, the size of a packet (for example, 9 [Kbytes]) can be expanded by using a jumbo frame. On the other hand, regarding the FCoE, the size of an FC frame is only 2140 [Bytes] at maximum (2112 [Bytes] excluding, for example, a frame header). So, if the frames are sent alternately, the iSCSI can use the bandwidth four times as wide as the bandwidth for the FCoE. Such unbalance of consumption bandwidth will cause difficulties in system designing.
As a result of the integration of the two SANs, which have been conventionally different, into one new network as described above, a new problem that has not occurred conventionally occurs.
The present invention was devised in consideration of the above-described circumstances and aims at suggesting a computer system and frame transfer bandwidth optimization method capable of data transfer bandwidth control on a logical unit basis and according to the relevant storage tier.
In order to solve the above-described problem, a computer system with first and second nodes connected via a network, for sending and/or receiving data to be read and/or written to a logical unit in a storage apparatus between the first and second nodes is provided according to the present invention. The first and second nodes include: an encapsulation unit for encapsulating a first frame, in which transfer target data is stored, in accordance with a first protocol in a second frame in accordance with a second protocol; a transmitter for sending the second frame, in which the first frame is encapsulated by the encapsulation unit, to the second or first node, which is the other end of a communication link, by a communication method in accordance with the second protocol; and a de-encapsulation unit for extracting the first frame from the second frame sent from the second or first node which is the other end of the communication link. The number of frames, that is, the number of multiple first frames, which should be comprised in one second frame, is determined in advance for each storage tier or logical unit defined in the storage apparatus. The encapsulation unit encapsulates the multiple first frames as many as the number of frames set in advance to the logical unit, which is a write destination or read destination of the data, or the storage tier to which the logical unit belongs, in the second frame. The de-encapsulation unit extracts all the multiple stored first frames from the second frame when the plurality of the first frames are comprised in the received second frame.
Furthermore, a method of frame transfer bandwidth optimization for a computer system with first and second nodes connected via a network, for sending and/or receiving data to be read and/or written to a logical unit in a storage apparatus between the first and second nodes is provided according to the present invention. The frame transfer bandwidth optimization method includes: a first step executed at the first or second node encapsulating a first frame, in which transfer target data is stored, in accordance with a first protocol in a second frame in accordance with a second protocol; a second step executed at the first or second node sending the second frame, in which the first frame is encapsulated, to the second or first node, which is the other end of a communication link, by a communication method in accordance with the second protocol; and a third step executed at the first or second node extracting the first frame from the second frame sent from the second or first node which is the other end of the communication link. The number of frames, that is, the number of multiple first frames, which should be comprised in one second frame, is determined in advance for each storage tier or logical unit defined in the storage apparatus. In the first step, the first or second node encapsulates the multiple first frames as many as the number of frames set in advance to the logical unit, which is a write destination or read destination of the data, or the storage tier to which the logical unit belongs, in the second frame. In the third step, the first or second node extracts all the multiple encapsulated first frames from the second frame when the plurality of the first frames are comprised in the second frame.
Since a multiplicity of first frames as many as the number of frames, which is determined in advance for each storage tier or logical unit, are encapsulated and sent in one second frame according to the present invention, the data transfer bandwidth control on a logical unit basis or according to the relevant storage tier can be performed.
One embodiment of the present invention will be explained in detail with reference to the attached drawings.
Referring to
The host system 2 is composed of, for example, a computer device such as a personal computer, workstation, or mainframe and is equipped with information resources such as a CPU (Central Processing Unit) 10, a memory 11, and a CNA (Converged Network Adapter) 12 as shown in
The CPU 10 is a processor for controlling the operation of the entire host system 2. Furthermore, the memory 11 is composed of, for example, a volatile or nonvolatile memory such as a DDR SDRAM (Double-Data-Rate Synchronous Dynamic Random Access Memory) and is used to retain programs and data and is also used as a work memory for the CPU 10. Various processing described later is executed as the entire host system 2 by the CPU 10 executing the programs stored in the memory 11.
The CNA 12 is a network adapter in conformity with the CEE adopted as the communication method between the host systems 2 and the storage apparatus 4. The CNA 12 includes, as shown in
Each protocol processing unit 21A to 21C has a function communicating with a corresponding device driver among device drives such as a network driver 25, a SCSI driver 26, and an FC driver 27, which are mounted in an OS (Operating System) 24, via the PCIe interface 23 and performing protocol control when communicating with the storage apparatus 4 via the optical transceiver 20 in response to requests from these device drivers.
Furthermore, the FCM protocol processing unit 21D has a multiple frame encapsulation function encapsulating/de-encapsulating not only one FC frame, but also a plurality of FC frames as one FCoE frame as the need arises. Multiple frame encapsulation processing described later is executed by the multiple frame encapsulation function of the FCM protocol processing unit 21D as the CNA controller 21 as a whole.
The storage apparatus 4 is configured as shown in
Each basic chassis 31A or each additional chassis 31B is configured as shown in
Each storage device unit 33 is a unit in which a plurality of expensive storage devices such as SSD or SAS disks or inexpensive storage disks 33A such as SATA (Serial AT Attachment) disks are mounted; and a second connector (not shown) of the storage device unit 33 provided on its back side can be made to engage with the first connector of the midplane board in the chassis frame 32 by fitting the storage device unit 33 into the chassis frame 32 from its front side, so that the storage device unit 33 can be electrically and physically integrated with the midplane board.
Furthermore, the AC/DC power supply unit 34 converts input AC power into DC power of a specified voltage and supplies it via the midplane board to each storage device unit 33, the I/O port card 35, and the controller module 36 (basic chassis 31A) or the I/O module 37 (additional chassis 31B).
The I/O port card 35 is an interface card for providing physical front-end and back-end ports (ports of respective channel adapters 42A, 42B and disk adapters 48A, 48B for controllers 40A, 40B described later). Each port provided by this I/O port card 35 is connected via a cable to an FCoE switch 38 (
The controller module 36 has a function controlling input/output of data to/from the storage devices 33A in each storage device unit 33 connected via the midplane board. Each basic chassis 31A contains one controller module 36. With each of these controller modules 36, a system-0 controller 40A or system-1 controller 40B described later with reference to
Incidentally, the FCoE switch 38 is also placed in the frame 30 (
The storage devices 33A are composed of expensive disk devices such as SSD or SAS disks or inexpensive disk devices such as SATA disks as mentioned earlier. These storage devices 33A are operated by each of the system-0 controller 40A and system-1 controller 40B according to a RAID (Redundant Arrays of Inexpensive Disks) method. One or more storage devices 33A of the same type are managed as one parity group and one or more logical volumes (hereinafter referred to as the logical unit(s)) are set in a physical storage area provided by each storage device 33A constituting one parity group. Data is stored in units of blocks, each of which is of a specified size (hereinafter referred to as the logical block(s)) in this logical unit.
Each logical unit is assigned its unique identifier (hereinafter referred to as the LUN [Logical Unit Number]). In the case of this embodiment, data input/output is performed by designating an address that is a combination of this LUN and a unique logical block number assigned to each logical block (hereinafter referred to as the LBA [Logical Block Address]).
Each of the system-0 controller 40A and system-1 controller 40B is configured by including channel adapters 42A, 42B, a CPU 43A, 43B, a data controller 44A, 44B, a local memory 45A, 45B, a cache memory 46A, 46B, a shared memory 47A, 47B, disk adapters 48A, 48B, and a management terminal 49A, 49B.
The channel adapter 42A, 42B is an interface with the network 3 (
The CPU 43A, 43B is a processor for controlling data input/output processing on the storage devices 33A in response to write commands and read commands from the host system 2 and controls the channel adapter 42A, 42B, the data controller 44A, 44B, and the disk adapter 48A, 48B based on microprograms read from the storage devices 33A.
The data controller 44A, 44B has a function switching a data transfer source and a transfer destination between the channel adapter 42A, 42B, the cache memory 46A, 46B, and the disk adapter 48A, 48B and a function, for example, generating/adding/verifying/deleting parity, check codes, and so on and is composed of, for example, ASIC.
Furthermore, the data controller 44A, 44B is connected to the data controller 44B, 44A of the other system (system 1 or system 0) via a bus 50, so that the data controller 44A, 44B can send/receive commands and data to/from the data controller 44B, 44A of the other system via this bus 50.
The local memory 45A, 45B is used as a work memory for the CPU 43A, 43B. This local memory 45A, 45B stores the aforementioned micrograms read from a specified storage device 33A at the time of activation of the storage apparatus 4, as well as system information.
The cache memory 46A, 46B is used to temporarily store data transferred between the channel adapter 42A, 42B and the disk adapter 48A, 48B. Furthermore, the shared memory 47A, 47B is used to store configuration information of the storage apparatus 4. Incidentally, the configuration information stored and retained in the shared memory 47A, 47B includes various information necessary for the multiple frames encapsulation processing described later.
The disk adapter 48A, 48B is an interface with the storage devices 33A. This disk adapter 48A, 48B controls the corresponding storage device 33A via the SAS expander 41 in response to a write command or read command, which is given by the channel adapter 42A, 42B, from the host system 2, thereby writing write data or reading read data at an address position designated by the write command or the read command in a logical unit designated by the write command or the read command.
The management terminal 49A, 49B is composed of, for example, a notebook personal computer device. The management terminal 49A, 49B is connected via a LAN (not shown in the drawing) to each channel adapter 42A, 42B, the CPU 43A, 43B, the data controller 44A, 44B, the cache memory 46A, 46B, the shared memory 47A, 47B, and each disk adapter 48A, 48B, obtains necessary information from the CPU 43A, 43B, the data controller 44A, 44B, the cache memory 46A, 46B, the shared memory 47A, 47B, and each disk adapter 48A, 48B and displays it, and makes necessary settings to the CPU 43A, 43B, the data controller 44A, 44B, the cache memory 46A, 46B, the shared memory 47A, 47B, and each disk adapter 48A, 48B.
Two SAS expanders 41 are provided in each of the basic chassis 31A and the additional chassis 31B so that they correspond to the system-0 controller 40A and system-1 controller 40B, respectively; and each of the two SAS expanders 41 in each basic chassis 31A or additional chassis 31B is connected in series with the disk adapter 48A, 48B of its corresponding system-0 controller 40A or system-1 controller 40B. This SAS expander 41 is connected to all the storage devices 33A within the same basic chassis 31A or additional chassis 31B, transfers various commands and write target data, which are output from the disk adapter 48A, 48B for the controller 40A, 40B, to their transmission destination storage device 33A, and sends read data and status information, which are output from the storage devices 33A, to the disk adapter 48A, 48B.
Incidentally, for example, some storage devices 33A such as SATA disks are provided with a switch 51 having a protocol conversion function; and as this switch 51 performs protocol conversion between the SAS protocol and a protocol which the relevant storage devices 33A comply with (SATA protocol), the disk adapter 48A, 48B can read or write data to the storage devices 33A (SATA disks) which comply with the protocol other than the SAS protocol.
Next, the multiple frame encapsulation function of the host system 2 and the storage apparatus 4 will be explained. Firstly, an ETS function of a conventional FCoE switch will be explained.
The ETS which is adopted by the CEE is a protocol that enables bandwidth control for each priority based on priority defined for each traffic. According to the ETS, as shown in
Under this circumstance, an available bandwidth rate is defined for each priority group PG. Therefore, the FCoE switch controls the traffic of the individual priorities with respect to each priority group to use only the bandwidth of a rate assigned to that priority group among the available bandwidth at that time (the remaining bandwidth other than the bandwidth used by the specific priority). Incidentally, the ETS is designed so that if the bandwidth assigned to a certain priority group PG is not used, other priority groups PG can use the unused bandwidth and, therefore, a link shared by the plurality of priority groups PG can be used efficiently.
For example, in an example shown in
Therefore, in the example shown in
Now, referring to the example shown in
In this case, the traffic of both the protocols is assigned to the priority group PG whose priority group number is “0.” So, if accesses according to the FCoE protocol and the iSCSI protocol to the same port (port whose port number is “1 (Port1)”) 53 are made at the same time, the FCoE switch 54 connected to the storage apparatus 4 output FCoE frames (“LU0 Fr1,” “LU2 Fr1,” “LU0 Fr2,” “LU2 Fr2,” and so on) and iSCSI frames (“LU1i Fr1,” “LU3i Fr1,” and so on) alternately.
This is because their priority number is different and a buffer 54A for the priority whose priority number is “2” is different from a buffer 54B for the priority whose priority number is “3,” so that frames are sequentially and alternately output from the buffers 54A, 54B for the respective priorities by means of the ETS function. Incidentally, there is no need to consider other priority groups PG in this situation.
If there are two accesses to a logical unit called “LU0” of a first tier (Tier1) with the traffic of the FCoE protocol and a logical unit called “LU2” of a third tier (Tier3) in this case, since the FCoE frames are stored in the same buffer 54A, the frames are output from the port 53 of the FCoE switch 54 in the order received by that port 53.
As a result, for example, assuming that data stored in one FCoE frame is 2 [KB] and data stored in one jumbo frame of the iSCSI protocol is 4 [KB], a transfer amount of write data to the logical unit called “LU0” belonging to the highest-level storage tier (Tier 1) becomes the same (on 2 [KB] basis) as a transfer amount of write data to the logical unit LU2 called “LU2” belonging to the lowest-level storage tier (Tier 3) as shown in
So, in the case of this computer system 1, the CNA 12 (
In fact, when sending write data to the high-level tier logical unit, the CNA 12 for the host system 2 divides the write data into a size according to the FC protocol as necessary and sequentially stores the divided pieces of the write data into FC frames respectively. Furthermore, that CNA 12 stores the thus-obtained FC frames as many as the maximum number of frames that can be comprised as one FCoE frame and are determined in advance for a storage tier to which a logical unit, a write destination, belongs (hereinafter referred to as the number of stacking frames), in an FCoE frame and sends it to the storage apparatus 4.
Incidentally, when the FCoE frame (hereinafter referred to as the stacked FCoE frame) in which a plurality of FC frames are comprised is sent to the CEE network, the FCoE switch on the path interprets a CEE header and header information of the FC frames comprised at the top and transfers the frame to a target node. Since the format of the top part of a stacked FCoE frame is the same as that of a normal FCoE frame (including an FC frame header), that will not have any effect on processing of the FCoE switch. Furthermore, since the destinations of the remaining stacked FC frames are the same, there will be no problem in frame delivery.
Furthermore, when the channel adapter 42A, 42B of the storage apparatus 4 receives the relevant (stacked) FCoE frame, it extracts all the FC frames comprised in this FCoE frame. Then, the channel adapter 42A stores write data, which is comprised in the thus-obtained FC frames, in a logical block designated by a write command, which was sent from the host system 2 before the relevant write data, in a logical unit designated by that write command.
On the other hand, when the channel adapter 42A, 42B of the storage apparatus 4 receives a read command from the host system 2, it reads corresponding data (read data) from a logical block designated by the read command in a logical unit designated by that read command. Then, the channel adapter 42A, 42B divides the thus-obtained read data into a size according to the FC protocol as necessary and sequentially sets the divided pieces of the read data in the FC frames. Also, the channel adapter 42A, 42B stores a multiplicity of the thus-obtained FC frames as many as the number of stacking frames determined in advance for a storage tier, to which a read destination logical unit belongs, in the stacked FCoE frame and sends them to the host system 2.
Then, when the CNA 12 for the host system 2 receives that stacked FCoE frame, it extracts all the FC frames comprised in this FCoE frame and also extracts the read data comprised in these FC frames.
In this case, the number of stacking frames is set to a larger value for a higher-level storage tier. As a result, as shown in
For example,
With this computer system 1, a wide bandwidth can be secured as a data transfer bandwidth as described above by encapsulating a plurality of FC frames in one FCoE frame and sending them to the logical unit in the high-level tier. Furthermore, the bandwidth can be controlled on a storage tier basis by setting a different number of stacking frames for each storage tier.
Next, the frame format used when encapsulating a plurality of FC frames in one FCoE frame by means of the multiple frame encapsulation function will be explained. Firstly, the frame format of a conventional FCoE frame will be explained.
Then, the FCoE frame 61 is formed as shown in
On the other hand,
Under this circumstance, an SOF 62D and an EOF 62E are added immediately before or immediately after each FC frame 60, respectively. Furthermore, within a word (reserved field) including the EOF 62E, part of that word is defined as a frame counter field 62F; and a counter value representing how many more FC frames 60 are encapsulated in the relevant FCoE frame 62 (hereinafter referred to as the remaining frame counter value) is stored in this frame counter field 62F.
For example, since three FC frames 60 are stored in one stacked FCoE frame 62 in the example shown in
Now, the frame size of the FC frame 60 which is encapsulated in the conventional FCoE frame 61 (
Therefore, the maximum frame length FCoEMaxLen(B) of a stacked FCoE frame by means of this multiple frame encapsulation function can be represented by the following formula, where FCLen represents the frame length of one FC frame 60, SOFEOF represents a total data amount of the SOF 62D and the EOF 62E, MaxFrameN represents a maximum value of the number of frames which is the number of the FC frames 60 stored in one multiple storage FCoE frame 62, HeaderFCS represents a total data amount of the FCoE frame header 62A and the FCS 62C, and PADLen represents the data length of two pieces of pad data 62B:
[Math.1]
FCoEMaxLen={FCLen+(SOFEOF)}×MaxFrameN+HeaderFCS+PADLen×(Max.FrameN−1) (1)
Incidentally, regarding Formula (1), the maximum value of the frame length FClen of the FC frame 60 is 2140 [Bytes] as described above; the total data amount SOFEOF of the SOF 62D and the EOF 62E is 8 [Bytes]; the maximum value MaxFrameN of the number of frames which is the number of the FC frames 60 stored in one multiple storage FCoE frame 62 is 4 to 7 frames; the total data amount HeaderFCS of the FCoE frame header 62A and the FCS 62C is 32 [Bytes]; and the data length PADLen of two pieces of pad data 62B is 8 [Bytes].
Incidentally, a jumbo frame which is already used for the IP network can be extended to the degree of 9 [KBytes] to 15 [KBytes].
Next, the processing content of various processing executed by the host system 2 in relation to the multiple frame encapsulation function according to this embodiment will be explained.
In order to implement the multiple frame encapsulation function according to this embodiment as described above, it is necessary for the CNA 12 for the host system 2 to obtain in advance information about which storage tier each logical unit belongs to, and information about how many FC frames should be encapsulated in one FCoE frame at the time of read/write processing targeted at a logical unit belonging to which storage tier (these pieces of information will be hereinafter collectively referred to as the logical unit and tier association information).
Now, regarding a method for enabling the CNAs 12 for the host systems 2 to obtain the logical unit and tier association information, there is a possible method of letting a user or system administrator set the logical unit and tier association information to the CNAs 12 for the individual host systems 2. However, if this method is used, there is a problem of complicated work to be done in order to make such settings to the CNAs 12 for all the host systems 2.
So, the computer system 1 according to this embodiment has one characteristic that the host system 2 obtains configuration information of the relevant storage apparatus 4, including the logical unit and tier association information, from each storage apparatus 4, creates a logical unit and tier association management table 70 shown in
The logical unit and tier association management table 70 is a table used to manage various information obtained from each storage apparatus 4 and is constituted from an entry number column 70A, a WWN column 70B, a MAC address column 70C, a number-of-tiers column 70D, a number-of-LUNs column 70E, an LUN list column 70F, a MAX LBA list column 70G, a status column 70H, a tier list column 70I, and a number-of-FC-frames column 70J as shown in
Then, the entry number column 70A stores the entry number assigned to each storage apparatus 4 recognized by the host system 2 retained in the logical unit and tier association management table 70; the WWN column 70B stores the WWN of the relevant storage apparatus 4; and the MAC address column 70C stores the MAC address of the relevant storage apparatus 4.
Furthermore, the number-of-tiers column 70D stores the number of storage tiers set to the relevant storage apparatus 4 (the number of storage tiers); and the number-of-LUNs column 70E stores the number of logical units created in the relevant storage apparatus 4 (the number of logical units). Furthermore, the LUN list column 70F stores an LUN list in which LUNs of each logical unit created in the relevant storage apparatus 4 are listed; and the MAX LBA list column 70G stores a MAX LBA list, that is, a list of maximum LBA values of the individual logical units whose LUNs are registered in the LUN list.
Furthermore, the status column 70H stores the current status of the individual logical units registered in the LUN list; and the tier list column 70I stores a list of tiers, that is, the storage tiers to which the individual logical units belong. Furthermore, the number-of-FC-frames column 70J stores the aforementioned number of stacking frames at the time of read/write processing targeted at the individual logical units.
Therefore, for example, in the case of the example shown in
When the storage apparatus is powered on, the CPU 10 starts the management table creation processing shown in
Subsequently, the CPU 10 issues a SCSI command to each storage apparatus 4 and thereby collects necessary information to create the logical unit and tier association management table 70 from these storage apparatuses 4 (SP3).
Specifically speaking, the CPU 10 issues an INQUIRY command to each storage apparatus 4 detected in step SP2 and thereby obtains information such as a device type/model name of the relevant storage apparatus 4. Furthermore, the CPU 10 issues a REPORT LUNS command to that storage apparatus 4 and thereby obtains the number of logical units created in the storage apparatus 4 (the number of logical units) and a logical unit list in which those logical units are listed.
Furthermore, the CPU 10 issues an INQUIRY command to each logical unit based on the logical unit list obtained by issuance of the above-mentioned REPORT LUNS command and thereby obtains unique information (page-designating INQUIRY data) of each logical unit whose LUN is listed in the logical unit list. Under this circumstance, the storage apparatus 4 according to this embodiment replies tier information of each logical unit, about which the inquiry was made (information indicating a tier to which the relevant logical unit belongs), and the number of stacking frames which is set in advance to the relevant logical unit or each storage tier.
Furthermore, the CPU 10 issues a READ CAPACITY command to each logical unit, whose LUN is listed in the logical unit list, and thereby obtains a storage capacity (maximum LBA) of these logical units.
Then, the CPU 10 creates the logical unit and tier association management table 70 based on the information collected in step SP3 (SP4). Subsequently, the CPU 10 judges whether the execution of the processing on all the logical units in all the storage apparatuses 4 detected in step SP1 has been completed or not (SP5).
Then, if the CPU 10 obtains a negative judgment result for this judgment, it returns to step SP3 and then repeats the processing from step SP3 to step SP5. Subsequently, if the CPU 10 eventually obtains an affirmative judgment result in step SP5 by completing the processing of step SP3 and step SP4 on all the logical units in all the storage apparatuses 4 detected in step SP1, it terminates this management table creation processing.
Incidentally, when receiving an instruction from management software (not shown) to update the logical unit and tier association management table 70, the CPU 10 updates the content of the logical unit and tier association management table 70 to latest information by executing the processing in step SP3 and subsequent steps.
Among the above-mentioned drawings,
Next, the SCSI driver 26 sends write target data (write data) to the FC driver 27 (SP11) and then waits for the execution result (SCSI status) of the write command to be sent from the FC driver 27 (SP12).
Then, when receiving the execution result of the write command from the FC driver 27 (see step SP26 in
On the other hand,
Subsequently, the FC driver 27 refers to the logical unit and tier association management table 70 (
Then, if the FC driver 27 obtains a negative judgment result for this judgment, it proceeds to step SP23. On the other hand, if the FC driver 27 obtains an affirmative judgment result for this judgment, it obtains the number of stacking frames, which is set for the relevant logical unit, from the logical unit and tier association management table 70 and reports the obtained number of stacking frames to the CNA 12 (SP22).
Subsequently, after receiving the write data sent from the SCSI driver 26 in step SP11 in
Furthermore, the FC driver 27 then judges whether set of all the pieces of the write data in the FCP data frames and transfer of such FCP data frames to the CNA 12 have been completed or not (SP24). Then, if the FC driver obtains a negative judgment result for this judgment, it returns to step SP23 and then repeats a loop from step SP23 to step SP24 and back to step SP23.
If the FC driver 27 eventually obtains an affirmative judgment result in step SP24 by storing all the pieces of the write data given from the SCSI driver 26 in the FCP data frames and finishing transferring these FCP data frames to the CNA 12, it waits for receiving an FCP response frame (FCP RSP frame), in which the SCSI status indicating the result of the write processing is comprised, to be sent from the CNA 12 (SP25).
Then, after receiving such an FCP response frame from the CNA 12 (see step SP38 in
Meanwhile,
Then, the CEE protocol processing unit 21A for the CNA controller 21 sends the FCoE frame in the normal format, which was obtained by means of encapsulation, to the storage apparatus 4 via the optical transceiver 20 according to the protocol in conformity with the CEE standards (SP31).
Furthermore, the CNA controller 21 then waits to receive the number of stacking frames described earlier with respect to step SP22 in
If the CNA controller 21 obtains an affirmative judgment result for this judgment, it generates a stacked (multiple FC frames encapsulated) FCoE frame (see
Subsequently, the CEE protocol processing unit 21A of the CNA controller 21 sends the stacked FCoE frame or the normal FCoE frame, which was obtained by the processing of step SP33 or step SP34, to the storage apparatus 4 via the optical transceiver 20 according to the protocol in conformity with the CEE standards.
Then, the CNA controller 21 judges whether transfer of all pieces of the write data to the storage apparatus 4 has been completed or not (SP36). If the CNA controller 21 obtains a negative judgment result for this judgment, it returns to step SP32 and then repeats the processing from step SP32 to step SP36.
Then, if the CNA controller 21 eventually obtains an affirmative judgment result in step SP36 by encapsulating all the FCP data frames, which were sent from the FC driver 27, in the FCoE frame and finishing sending them to the storage apparatus 4, it waits for receiving the FCoE frame in which the SCSI status indicating the result of the write processing is comprised (FCP RSP frame) to be sent from the storage apparatus 4 (SP37).
After the CEE protocol processing unit 21A for the CNA controller 21 receives the FCoE frame, in which the SCSI status is comprised, via the optical transceiver 20, the FCM protocol processing unit 21A for the CNA controller 21 extracts the FCP response frame, in which the SCSI status is comprised, from that FCoE frame and transfers the extracted FC frame to the FC driver 27 (SP38). Then, the CNA controller 21 terminates this CNA-side write processing.
Incidentally, regarding the aforementioned processing, the FC driver or the SCSI driver is the device for directly sending data; however, such data transmission may be realized by, for example, delivering/receiving the address in the memory 11 for the host system 2 where commands and data are stored. Also, for example, the FC frame generation processing may be executed by the FC protocol processing unit 21C in the CNA controller 21.
Among the above-mentioned drawings,
Then, when receiving the read data, which has been read from the storage apparatus 4, and the SCSI status indicating the result of the read processing from the FC driver 27 (see step SP54 and step SP55 in
On the other hand,
Then, when the FCP data frames in which the read data sent from the storage apparatus 4 are comprised are transferred from the CNA 12, the FC driver 27 extracts the read data from the FCP data frames (SP52) and then judges whether the reception of all pieces of the read data has been completed or not (SP53).
If the FC driver 27 obtains a negative judgment result for this judgment, it returns to step SP51 and then repeats the processing from step SP51 to step SP53. If the FC driver 27 eventually obtains an affirmative judgment result in step SP53 by finishing receiving all the pieces of the read data, it sends the received read data to the SCSI driver 26 (SP54).
Subsequently, the FC driver 27 waits for receiving an FCP response frame, in which the SCSI status indicating the result of the read processing is comprised, to be sent from the CNA 12 (see step SP69 in
Meanwhile,
Subsequently, the CEE protocol processing unit 21A for the CNA controller 21 sends the FCoE frame in the normal format, which was obtained by means of encapsulation, to the storage apparatus 4 via the optical transceiver 20 according to the protocol in conformity with the CEE standards (SP61). Furthermore, the CNA controller 21 then waits for receiving the FCoE frame(s), in which the read data is comprised, to be sent from the storage apparatus 4 (SP62).
After the CEE protocol processing unit 21A receives that FCoE frame via the optical transceiver 20, the CNA controller 21 extracts one FC frame from this FCoE frame and sends the extracted FC frame to the FC driver 27 (SP63). Incidentally, the processing of this step SP63 is executed by the FCM protocol processing unit 21D in the CNA controller 21 by using the memory 22 (
Next, the CNA controller 21 judges whether the received FCoE frame is a stacked (multiple FC frames encapsulated) FCoE frame or not (SP64). Regarding that FCoE frame, the frame counter field 62F (
If the CNA controller 21 obtains a negative judgment result for this judgment, it proceeds to step SP67; and if the CNA controller 21 obtains an affirmative judgment result for this judgment, it extracts the next FC frame from the relevant FCoE frame and sends the extracted FC frame to the FC driver 27 (SP65). Incidentally, the processing of this step SP65 is executed by the FCM protocol processing unit 21D in the CNA controller 21 by using the memory 22 (
Subsequently, the CNA controller 21 judges whether extraction of all the FC frames stored in the relevant FCoE frame has been completed or not (SP66). This judgment is performed by judging whether the remaining frame counter value stored in the frame counter field 62F corresponding to the FC frame extracted in step SP63 is a value other than “0” or not.
If the CNA controller 21 obtains a negative judgment result for this judgment, it returns to step SP65 and then repeats a loop from step SP65 to step SP66 and then back to step SP65. Then, if the CNA controller 21 eventually obtains an affirmative judgment result in step SP66 by finishing extracting all the FC frames comprised in the relevant FCoE frame, it judges whether the reception of all the pieces of the read data has been completed or not (SP67).
If the CNA controller 21 obtains a negative judgment result for this judgment, it returns to step SP62 and then repeats the processing from step SP62 to step SP67. Then, if the CNA controller 21 eventually obtains an affirmative judgment result in step SP67 by finishing receiving all the pieces of the read data, it waits for receiving the FCoE frame, in which the SCSI status indicating the result of the read processing is comprised (FCP RSP frame), to be sent from the storage apparatus 4 (SP68).
Then, after the CEE protocol processing unit 21A for the CNA controller 21 receives that FCoE frame via the optical transceiver 20, the FCM protocol processing unit 21D for the CNA controller 21 extracts the FCP response frame, in which the SCSI status is comprised, from the FCoE frame and transfers the extracted FCP response frame to the FC driver 27 (SP69). Then, the CNA controller 21 terminates this CNA-side read processing.
Next, the processing content of the storage apparatus 4 relating to the multiple frame encapsulation function will be explained. Firstly, for example, the setting content of various settings that should be set to the storage apparatus 4 in relation to the multiple frame encapsulation function will be explained.
After the activation of the storage apparatus 4, the channel adapter 42A, 42B of the storage apparatus 4 (
With the storage apparatus 4 according to this embodiment, the DCB parameters and other information collected by the channel adapter 42A, 42B as described above can be displayed on, for example, a display screen (hereinafter referred to as the DCBX parameter display screen) 80 as shown in
This DCBX parameter display screen 80 is a GUI (Graphical User Interface) screen used to view various settings, which are set to each port in the system-0 controller 40A and system-1 controller 40B with respect to the ETS, or to update such settings. As is apparent from
Furthermore, the parameter display field 82 displays, for example, the DCB parameters which the storage apparatus 4 exchanged with the FCoE switch 38. In fact, the parameter display field 82 is provided with a port number display field 90, a MAC address display field 92, a virtual WWN (World Wide Name) display field 93, and a DCBX-PFC parameter list 94.
A pull-down button 91 is provided to the right of the port number display field 90; and a pull-down menu (not shown) in which all the port numbers of the respective ports of each channel adapter 42A, 42B and each disk adapter 48A, 48B are listed is displayed by clicking this pull-down button 91.
Thus, the system administrator can select the port number by clicking the port number of a desired port among the port numbers listed in this pull-down menu. The port number then selected is displayed in the port number display field 90 and the MAC address assigned to the port with that port number is displayed in the MAC address display field 92. Furthermore, the virtual WWN (World Wide Name) which is set to the port with that port number is displayed in the virtual WWN display field 93; and the rate of maximum bandwidth (“BW %”) for each priority group (“PG#”), which is set in advance for the relevant port, and the priority number (“Priority_#”) of each priority belonging to the relevant priority group are displayed in the DCBX-PFC parameter list 94. Incidentally,
The operation field 83 displays a “SET” button 95, a “GET” button 96, cursor movement buttons 97A, 97B, and a back button 98. Among these buttons, the “GET” button 96 is a button to make the DCBX-PFC parameters set to the port, whose port number is displayed in the port number display field 90, displayed in the DCBX-PFC parameter list 94. The maximum bandwidth of each priority group which is set to the relevant port and the priority number of each priority belonging to the relevant priority group can be displayed in the DCBX-PFC parameter list 94 by clicking this “GET” button 96.
Furthermore, the “SET” button 95 is a button to update and set the parameters displayed in the DCBX-PFC parameter list 94. The maximum bandwidth of each priority group displayed in the DCBX-PFC parameter list 94 and the priority number of each priority belonging to the relevant priority group can be freely changed by using, for example, a keyboard; and after making such a change, each DCBX-PFC parameter can be updated and set to the changed value by clicking the “SET” button 95.
The cursor movement button 97A, 97B is a button to move a cursor (not shown in the drawing) displayed on the DCBX-PFC parameter list 94 in an upward direction or a downward direction. When updating and setting the parameters displayed in the DCBX-PFC parameter list 94 as described above, this cursor movement button 97A, 97B is operated to position the cursor on the DCBX-PFC parameter list 94 to an update target line, so that the PFC parameter on that line can be freely changed by using, for example, the keyboard. Furthermore, the back button 98 is a button to switch the current display screen to the previous screen (not shown).
On the other hand,
This number-of-stacking-frames-setting screen 100 is a GUI screen that can be displayed on the management terminal 49A, 49B by operating the management terminal 49A, 49B (
Then, the storage tier selection field 101 displays a conceptual diagram schematically showing each storage tier defined in the storage apparatus 4 (a first tier (Tier 1) to a third tier (Tier 3) in the example in
Furthermore, the tier information setting field 102 displays various setting values for each storage tier related to the multiple frame encapsulation function. In fact, the tier information setting field 102 is constituted from a storage tier information list 110, a storage tier—external storage mapping setting field 111, and a frame transmission order priority control setting field 112.
Then, the storage tier information list 110 may configures, for each storage tier, the types of the storage devices 33A (
Therefore,
Furthermore, the storage tier-external storage mapping setting field 111 is a setting field to set which storage tier a logical unit provided by a connected external storage apparatus (hereinafter referred to as the external logical unit) should be placed; and is constituted from a setting tier display area 111A, a pull-down button 111B, and an external storage device type name display area 111C.
Then, with the storage tier-external storage mapping setting field 111, a pull-down menu (not shown) in which the storage tier numbers of all storage tiers then defined in the storage apparatus 4 can be displayed by clicking the pull-down button 111B.
Thus, the system administrator can select the storage tier to which the external logical unit should belong, by clicking the storage tier number of a desired storage tier from among the storage tier numbers listed in the pull-down menu. Then, the then selected storage tier number is displayed in the setting tier display area 111A.
Furthermore, the external storage device type name display area 111C displays the device name of the external storage apparatus obtained by discovery processing executed in advance.
A frame transmission order priority control setting field 112 is a setting field for setting a mode for frame transmission order priority control described later with reference to
Then, the frame transmission order priority control setting field 112 can display a pull-down menu (not shown), in which character strings “ON,” “OFF,” and “Auto” are displayed, by clicking the pull-down button 112B. Among these character strings, “ON” is an option for a case where the setting is made to execute the frame transmission order priority control; and “OFF” is an option for a case where the setting is made to not execute the frame transmission order priority control. Furthermore, “Auto” is an option for a case where the setting is made to execute the frame transmission order priority control if the used bandwidth of the port is equal to or more than a threshold value.
Thus, the system administrator can select the option by clicking a desired option from among the options listed in this pull-down menu. Then, the then selected option is set as a priority control mode and that option is displayed in the mode display area 112A.
Meanwhile, the operation field 103 displays a “SET” button 113, a “GET” button 114, cursor movement buttons 115A, 115B, and a back button 116. Among these buttons, the “GET” button 114 is a button to make the above-mentioned various information relating to each storage tier, which is then defined in that storage apparatus 4, displayed in the tier information setting field 102. By clicking this “GET” button 114, the corresponding information can be read from the configuration information of the storage apparatus 4 stored in the shared memory 47A, 47B and can be displayed in each of the storage tier information list 110, the storage tier-external storage mapping setting field 111, and the frame transmission order priority control setting field 112.
Furthermore, the “SET” button 113 is a button to update and set the parameters displayed in each of the storage tier information list 110, the storage tier-external storage mapping setting field 111, and the frame transmission order priority control setting field 112 in the tier information setting field 102. On the number-of-stacking-frames-setting screen 100, the various settings displayed in the storage tier information list 110 can be freely changed by using, for example, a keyboard. Furthermore, the storage tier, to which the external logical unit displayed in the storage tier-external storage mapping setting field 111 belongs, and the settings of the frame transmission order priority control displayed in the frame transmission order priority control setting field 112 can be freely changed by using, for example, a mouse. Then, after making such a change, each of the aforementioned various settings can be updated and set to the changed value by clicking the “SET” button 113. When this happens, the corresponding information among the configuration information of the storage apparatus 4 stored in the shared memory 47A, 47B will be updated in the same manner.
The cursor movement button 115A, 115B is a button to move a cursor (not shown in the drawing) displayed on the storage tier information list 110 in an upward direction or a downward direction. When updating and setting the settings displayed in the storage tier information list 110 as described above, this cursor movement button 115A, 115B is operated to position the cursor to an update target line in the storage tier information list 110, so that the setting on that line can be freely changed by using, for example, the keyboard. Furthermore, the back button 116 is a button to switch the current display screen to the previous screen.
Specifically speaking, after receiving the FCoE frame, the channel adapter 42A, 42B starts the write processing shown in
Subsequently, the channel adapter 42A, 42B judges whether the relevant FCoE frame is a stacked (multiple FC frames encapsulated) FCoE frame or not (SP72). This judgment is performed by referring to a word included in the EOF 62E (
If the channel adapter 42A, 42B obtains an affirmative judgment result for this judgment, it extracts the next FCP data frame from that FCoE frame (SP73) and further extracts the write data from that FCP data frame (SP74).
Subsequently, the channel adapter 42A, 42B judges whether the extraction of all the FCP data frames stored in the relevant FCoE frame has been completed or not (SP75). This judgment is performed by referring to a word included in the EOF 62E added immediately after the FCP data frame extracted from the FCoE frame in step SP 73 and judging whether the remaining frame counter value stored in that frame counter field 62F provided in that word is a value other “0” or not.
If the channel adapter 42A, 42B obtains a negative judgment result for this judgment, it returns to step SP73 and then repeats the processing from step SP73 to step SP75. Then, if the channel adapter 42A, 42B eventually obtains an affirmative judgment result in step SP75 by finishing extracting all the FCP data frames stored in the relevant FCoE frame, it judges whether the reception of all pieces of the write data has been completed or not (SP76).
If the channel adapter 42A, 42B obtains a negative judgment result for this judgment, it returns to step SP70 and then repeats the processing from step SP70 to step SP76. Then, if the channel adapter 42A, 42B eventually obtains an affirmative judgment result in step SP76 by finishing receiving all the pieces of the write data, it waits to receive an FCoE frame in which an FCP response frame storing the SCSI status, that is, the result of the write processing sent from the host system 2, is stored (SP77).
Then, after receiving that FCoE frame, the channel adapter 42A, 42B extracts the FCP response frame from the FCoE frame (SP78), further extracts the aforementioned SCSI status comprised in that FC frame (SP79), and then judges whether or not the extracted SCSI status is the status indicating normal end (SP80).
If the channel adapter 42A, 42B obtains an affirmative judgment result for this judgment, it stores the write data received by the processing from step SP70 to step SP76 in the cache memory 46A, 46B (SP81) and then terminates this write processing. Furthermore, if the channel adapter 42A, 42B obtains a negative judgment result in step SP80, it executes specified error processing (SP82) and then terminates this write processing.
Incidentally, the write data stored in the cache memory is written by the disk adapter 48A, 48B to the corresponding storage device 33A at later appropriate timing.
On the other hand,
Specifically speaking, after receiving that FCoE frame, the channel adapter 42A, 42B starts the read processing shown in
Subsequently, the channel adapter 42A, 42B judges, based on the configuration information of the storage apparatus 4 stored in the shared memory 47A, 47B, whether or not the logical unit from which the data was read in step SP90 is a logical unit belonging to a storage tier to which the read data should be transferred using a stacked (multiple FC frames encapsulated) FCoE frame (SP91).
If the channel adapter 42A, 42B obtains an affirmative judgment result for this judgment, it generates FCP data frames, in which the read data read in step SP90 is stored, as many as the number of stacking frames which is set in advance for the storage tier to which the relevant logical unit belongs; and creates a stacked FCoE frame in which all those generated FCP data frames are comprised (SP72).
On the other hand, if the channel adapter 42A, 42B obtains a negative judgment result in step SP91, it generates one FCP data frame, in which the read data read in step SP90 is comprised, and creates an FCoE frame in the normal format, in which the one generated FCP data frame is stored, described earlier with reference to
Next, while executing frame transmission order priority control as necessary (SP94), the channel adapter 42A, 42B sends the stacked FCoE frame created in step SP92 or the normal FCoE frame created in step SP93 to the host system 2 which is a transmission source of the read command.
Subsequently, the channel adapter 42A, 42B judges whether the transmission of all pieces of the read data read in step SP90 to the host system 2 has been completed or not (SP96). If the channel adapter 42A, 42B obtains a negative judgment result, it returns to step SP91. Then, the channel adapter 42A, 42B repeats the processing from step SP91 to step SP96.
Then, if the channel adapter 42A, 42B eventually obtains an affirmative judgment result in step SP96 by finishing sending all the pieces of the read data read in step SP90 to the host system 2, it creates an FCP response frame (FCP RSP), in which the SCSI status indicating the termination of transmission of the read data is comprised, creates an FCoE frame which encapsulates only this FCP response frame, and sends the created FCoE frame to the host system 2 (SP97). Then, the channel adapter 42A, 42B terminates this read processing.
Next, the aforementioned frame transmission order priority control will be explained with reference to
If such arbitration is not performed, the number of frames transferred per unit time with respect to the normal FCoE frames becomes larger than that of the stacked FCoE frames. In a worst-case situation as shown in
So, in the case of the computer system 1 according to this embodiment, the channel adapter 42A, 42B of the storage apparatus 4 controls the transmission order of the stacked FCoE frames and the normal FCoE frames according to the following algorithm. The CNA controller 21 (to be specific, the CEE protocol processing unit 21A (
Specifically speaking, if the CEE protocol processing unit 21A and the channel adapter 42A, 42B receive an FC frame 60-10, which should be encapsulated in a normal FCoE frame 61-10, while receiving a first FC frame 60-1 among stacking target FC frames 60-1 to 60-3 as shown in
If the above-described frame transmission order priority control is performed in this case, for example, a plurality of normal FCoE frames 61-3, 61-4 may sometimes be sent while sending two stacked FCoE frames 62-11, 62-12, depending on the timing, as shown in
Incidentally, if a plurality of FC frames whose transmission destinations are different exist on a pipeline for creating normal FCoE frames, the frame transmission may be controlled to mitigate transmission inhibiting conditions by, for example, inhibiting transmission of the normal FCoE frames only during processing of the last FC frame which should be encapsulated in the stacked FCoE frame as shown in
When executing the multiple frame encapsulation processing described above, it is necessary to consider the relationship with a buffer capacity that is set on a PFC (Priority-based Flow Control) priority basis.
The PFC operation is designed to send a PAUSE primitive, for example, when the buffer with the priority number assigned to the FCoE does not have a buffer capacity enabling processing of frames including frames currently in a state of “in-flight.” However, if too many FC frame are comprised in one FCoE frame, there is a possibility that the buffer may be saturated even if the other end of the link seems to have a sufficient buffer capacity.
Therefore, when executing the multiple frame encapsulation processing according to this embodiment, it is necessary to set the size of the entire FCoE frame (stacked FCoE frame), in which multiple FC frames are encapsulated, to become equal to or smaller than the MTU (Maximum Transmission Unit) size of network equipment such as the FCoE switch. Furthermore, as other indications, the size of the entire FCoE frame may be set in the same manner by a method of setting a maximum value (Data Segment Length) of transmission units (segments) of iSCSI parameters for transferring jumbo frames as an upper limit or be calculated to find out what fraction of a PDU (Protocol Data Unit) size, which is a data unit handled by protocols, the size of the entire FCoE frame would be.
Besides the above-mentioned case where the storage tiers and the logical units can be associated with each other, there may be a case as shown in
Even if the same virtual logical unit VLU is accessed from the storage apparatus 4 in the above-described case, multiple FC frames as many as the number of stacking frames corresponding to the storage tier where the data is stored can be encapsulated and sent in one FCoE frame. However, it is difficult for the CNA 12 for the host system 2 and the FCoE switch 38 (
With the computer system 1 according to this embodiment described above, a plurality of FC frames as many as the number of frames determined in advance for each storage tier are encapsulated in one FCoE frame. So, the data transfer amount of data read from, or written to, a logical unit belonging to the relevant storage tier can be controlled on a storage tier basis. As a result, a computer system capable of data transfer bandwidth control on the logical unit basis or according to the relevant storage tier in the storage apparatus 4 can be realized.
Incidentally, the aforementioned first embodiment has described the case where the host system 2 retains and manages the configuration information of the storage apparatus 4 including the obtained logical unit-storage tier association information by using the logical unit and tier association management table 70 explained earlier with reference to
Among these two management tables 130, 131, the management table (hereinafter referred to as the target logical unit management table) 130 shown in
Then, the entry number column 130A, the WWN column 130B, the MAC address column 130C, the LUN column 130E, the LUN list column 130F, the MAX LBA list column 130G, and the status column 130H store the same information which are stored respectively in the entry number column 70A, the WWN column 70B, the MAC address column 70C, the LUN column 70E, the LUN list column 70F, the MAX LBA list column 70G, and the status column 70H of the logical unit and storage tier association management table 70 described earlier with reference to
Meanwhile, the management table (hereinafter referred to as the logical unit group management table) 131 shown in
Then, the entry number column 131A stores the entry number assigned to the corresponding storage apparatus 4. Incidentally, regarding the same storage apparatus 4, the same entry number stored in the corresponding entry number column 130A in the target logical unit management table 130 in
Furthermore, each logical unit group column 131B is provided corresponding to each logical unit group that will be set in each storage apparatus 4. The logical unit group herein used is a set of logical units, whose number of FC frames to be encapsulated in one FCoE frame is the same, when transferring data, which has been read from a logical unit belonging the relevant logical unit group, to the host system 2. For example, in the example shown in
Then, each logical unit group column 131B stores the LUNs of logical units belonging to the relevant logical unit group. For example, in the case of the example shown in
Incidentally, “N/A” in
Furthermore, the aforementioned first embodiment has described the case where the FCM protocol processing unit 21D (
Furthermore, the aforementioned first embodiment has described the case where the host system 2 obtains the number of stacking frames for each logical unit of each storage apparatus 4 by issuing a SCSI command such as an INQUIRY command to each storage apparatus 4; however, for example, when read data is sent from the storage apparatus 4, the host system 2 may obtain the number of stacking frames by learning how many FC frames are encapsulated in one FCoE frame with respect to each logical unit.
Furthermore, the aforementioned first embodiment has described the case where the number of FC frames to be encapsulated in an FCoE frame (the number of stacking frames) is variable; however, for example, also regarding the iSCSI, the data segment size of the PDU may be changed according to the storage tier to which an access target logical unit belongs as shown in
The network 141 is composed of, for example, DCE (Data Center Ethernet) fabric and includes a plurality of FCoE switches 145, 146 as shown in
Furthermore, the FCoE switch (corresponding to the FCoE switch 38 in
The management device 144 is a computer device equipped with information processing resources such as a CPU and a memory and is composed of, for example, a personal computer, a workstation, or a mainframe. The management device 144 is equipped with management software for managing the storage apparatus 142 and collect various information about logical units and storage tiers for each storage apparatus 142 by using this management software. Furthermore, the management device 144 displays the collected various information in response to a request from the system administrator.
The storage apparatus 142 is configured in the same manner as the storage apparatus 4 according to the first embodiment, except that a channel adapter 148A, 148B for each system-0 controller 147A or system-1 controller 147B is composed of an FC interface as shown in
The CNA controller 150 is connected to the integrated memory 152, the buffer memory 154, and the path arbiter 155 via a first bus 159A. This CNA controller 150 includes a plurality of protocol processing units 150A to 150C, each of which processes a main protocol such as CEE, IP, or FC, and an FCM protocol processing unit 150D for encapsulating/de-encapsulating FC frames in/from an FCoE frame. Since each protocol processing unit 150A to 150C has the same configuration and function as those of the corresponding protocol processing unit 21A to 21C of the CNA 12 described earlier with reference to
The processor core 151 is connected to the integrated memory 152, the external interface 157, the backup memory 153, the CNA controller 150, the buffer memory 154, and the crossbar switch 156 via a second bus 159B and controls these devices in accordance with various programs stored in the integrated memory 152.
The integrated memory 152 is composed of a volatile memory and used to retain various parameters and a routing table 160. Furthermore, the integrated memory 152 also stores: a logical unit group management table 161 (
The backup memory 153 is composed of a nonvolatile memory and is used to back up the aforementioned logical unit group management table 161 and storage configuration information 162 stored in the integrated memory 152. Furthermore, the buffer memory 154 temporarily stores routing target FCoE frames, which are externally provided, and is also used when the CNA controller 150 encapsulates or decapsulates FC frames in/from an FCoE frame.
The path arbiter 155 performs, for example, arbitration and crossbar switch switching when there are competing frame data read/write requests for the buffer memory 154. Furthermore, the crossbar switch 156 is a switch for switching connections between the ports and the buffer memory 154 when the FCoE interface ports 158A or the FC interface ports 158B and the buffer memory 154 exchange the FC frames and the FCoE frames.
The external interface 157 is an interface for direct access to set the storage-side FCoE switch 140.
The FCoE interface port 158A is a physical port in conformity with the CEE standards and is connected to other FCoE switches 145, 146 constituting the network 141 (
Next, the characteristics of this computer system 140 will be explained. This computer system 140 is characterized in that the storage-side FCoE switch 146 has a multiple frame encapsulation function encapsulating a plurality of FC frames in a stacked FCoE frame and decapsulating the plurality of FC frames from the stacked FCoE frame.
In fact, in the case of this embodiment, when the storage-side FCoE switch 146 receives an FCoE frame which is sent from the host system 2 and whose transmission destination is a storage apparatus to which the storage-side FCoE switch 146 itself is connected (hereinafter referred to as the connection destination storage apparatus as appropriate) 142, it extracts an FC frame from the FCoE frame and sends the extracted FC frame to the connection destination storage apparatus 142. Under this circumstance, if a plurality of FC frames are encapsulated in the FCoE frame, the storage-side FCoE switch 146 extracts all the FC frames from that FCoE frame and sends all the extracted FC frames to the connection destination storage apparatus 142.
Furthermore, when the storage-side FCoE switch 146 receives an FC frame sent from the connection destination storage apparatus 142, it encapsulates the FC frame in the FCoE frame and sends it to the corresponding host system 2. Under this circumstance, if the storage-side FCoE switch 146 is to encapsulate a plurality of FC frames in one FCoE frame (if read data stored in the FC frames has been read from a frame-stacking-target logical unit), it executes the multiple frame encapsulation processing, thereby storing the multiple FC frames as many as the number of stacking frames, which is determined in advance, in one FCoE frame and sending the thus-obtained stacked FCoE frame to the FCoE switch 145 existing on a transmission path to the host system 2 which is the transmission destination.
In this case, when the storage-side FCoE switch 146 generates the stacked FCoE frame by the multiple frame encapsulation processing as described above, it is necessary for the storage-side FCoE switch 146 to recognize which and how many FC frames should be encapsulated for multiple frames encapsulation processing. So, in the case of this embodiment, the storage-side FCoE switch 146 retains the logical unit group management table 161, in which such information is stored, in the integrated memory 152 (
This logical unit group management table 161 is a table for managing logical unit groups, each of which is set in association with each storage tier to be defined in the connection destination storage apparatus 142; and is constituted from an FC port number column 161A and a host WWN column 161B as shown in
Then, the FC port number column 161A stores the port number of each FC interface port 158B (
Furthermore, the logical unit group management table 161 is provided with a plurality of logical unit group columns 161C associated with the plurality of logical unit groups, respectively. The logical unit group is a set of logical units, whose number of stacking frames to be encapsulated in one FCoE frame is the same, when transferring data, which has been read from a logical unit belonging to the relevant logical unit group, to the host system 2. For example, in the example shown in
Then, each logical unit group column 161C stores the LUN of logical units belonging to the relevant logical unit group. For example, in the case of the example shown in
Incidentally, “N/A” in
The content of this logical unit group management table 161 can be set by using a specified GUI screen (hereinafter referred to as the management table setting screen) displayed on the management device 144 (
Furthermore, the parameter setting field 172 displays various information relating to the multiple frame encapsulation function for each port of the storage apparatus 142. In fact, the parameter setting field 172 is provided with a port number display field 180, a WWN display field 182, a host WWN or nickname display field 183, a configuration switch name field 185 indicating the name of a setting target switch connected to the relevant port, and a logical unit-frame parameter table field 187.
A pull-down button 181 is provided to the right of the port number display field 180; and a pull-down menu (not shown) in which all the port numbers of the respective ports of the storage apparatus 142 are listed is displayed by clicking this pull-down button 181.
Thus, the system administrator can select the port number by clicking the port number of a desired port among the port numbers displayed in this pull-down menu. The port number then selected is displayed in the port number display field 180. Furthermore, when this happens, the WWN display field 182 displays the WWN assigned to that port and the host WWN or nickname display field 183 displays, a nickname or the like assigned to a group of host systems 2 (hereinafter referred to as the host group) to which the relevant host system 2 belongs. Specifically speaking, the host group is to remove the burden of setting every detail of LUN mapping information set for each individual host system 2 and the corresponding status of the storage tiers; and by grouping the host systems 2 for which the same number of stacking frames is set to each storage tier, batched settings can be made to entries of all the host systems belonging to the relevant group in the logical unit group management table 161 based on the configuration information from the storage apparatus (the settings are made for each entry of the individual host systems 2 to the logical unit group management table 161 in the setting target switch).
Furthermore, a pull-down button 186 is provided to the right of the configuration switch name field 185; and a pull-down menu (not shown), in which all names of the storage-side FCoE switches 146 connected along the path to the port with the port number displayed in the port number display field 180 are listed, is displayed by clicking this pull-down button 186.
Thus, the system administrator can select the storage connection FCoE 146, whose settings are to be changed at that time, by clicking the name of a desired storage-side FCoE switch 146 among the names listed in this pull-down menu. Then, the name of the then-selected storage connection FCoE 146 is displayed in the configuration switch name field 185.
Furthermore, the logical unit—frame parameter table field 187 displays information about, for example, the LUNs of logical units belonging to each storage tier among logical units in the storage apparatus 142 connected to the port whose port number is displayed in the port number display field 180. In fact, the logical unit-frame parameter table field 187 may configures, for each storage tier, the tier number of the relevant storage tier, the type of storage devices providing storage areas of logical units belonging to the relevant storage tier, the number of FC frames to be encapsulated in one FCoE frame, and the LUN of each logical unit belonging to the relevant storage tier.
Therefore, for example, the example in
Furthermore, the example in this
Furthermore, the example in this
The operation field 173 displays a “SET” button 188, a “GET” button 189, cursor movement buttons 190A, 190B, and a back button 191. Among these buttons, the “GET” button 189 is a button to make various information collected and internally retained by the management device 144 from the storage apparatus 142 with respect the port, whose port number is then displayed in the port number display field 180, displayed in the logical unit-frame parameter table field 187 in the parameter setting field 172.
Furthermore, the “SET” button 188 is a button to update and set various parameters displayed in, for example, the logical unit-frame parameter table field 187 in the parameter setting field 172. Specifically speaking, in the case of this embodiment, the various parameters displayed in the logical unit-frame parameter table field 187 in the parameter setting field 172 can be freely changed by using, for example, a mouse and a keyboard; and by clicking the “SET” button 188 after making such a change, these parameters can be sent as the aforementioned table setting information to the storage-side FCoE switch 146 and the content of the logical unit group management table 161, which is stored in the integrated memory 152 in that storage-side FCoE switch 146, can be updated and set to the changed content based on the relevant table setting information.
The cursor movement button 190A, 190B is a button to move a cursor (not shown in the drawing) displayed on the logical unit—frame parameter table field 187 in an upward direction or a downward direction. When updating and setting the parameters displayed in the logical unit—frame parameter table field 187 as described above, this cursor movement button 190A, 190B is operated to position the cursor in the logical unit-frame parameter table field 187 to an update target line, so that the parameter on that line can be freely changed by using, for example, the keyboard. Furthermore, the back button 191 is a button to switch the current display screen to the previous screen (not shown).
Next, the processing content of various processing executed by the storage-side FCoE switch 146 with respect to the multiple frame encapsulation function will be explained. When doing so, firstly, the configuration of a frame header of a general FC frame (hereinafter referred to as the FC frame header as appropriate) and the configuration of payload of a general FCP command frame (hereinafter referred to as the FCP command frame payload as appropriate) will be explained.
Among these pieces of information, the routing control information (R_CTL) 201 is information indicating the type of that frame and attributes of data in relation to other fields. Furthermore, the transmission destination address (D_ID) 202 indicates the address of a transmission destination of the relevant FC frame; and the transmission source address (S_ID) 204 indicates the address of a transmission source of the relevant FC frame.
Furthermore, the type (TYPE) 205 is information indicating the type of a data structure showing what type of data is to be transmitted in relation to the routing control information (R_CTL) 201; and the frame control information (F_CTL) 206 is information indicating attributes of a sequence and exchange.
Furthermore, the sequence number (SEQ_ID) 207 indicates a unique number assigned to the sequence; and the data field control information (DF_CTL) 208 indicates the data length of an optional header when the optional header is used.
Furthermore, the sequence count information (SEQ_CNT) 209 is information indicating the order of the relevant FC frame in one sequence; and the first exchange number (OX_ID) 210 and the second exchange number (RX_ID) 211 indicate an exchange number issued by an originator and an exchange number issued by a responder, respectively.
Furthermore,
Among these pieces of information, the LUN (LUN) 221 indicates the LUN of an access target logical unit; and the task attribute information (Task Attribute) 222 indicates the designation of a queue type of a command queue management request.
Furthermore, the task termination information (Term Task) 223 indicates a forced task termination instruction; and the clear ACA (Clear ACA) 224 indicates a clear instruction in an ACA (Auto Contingent Allegiance) state. Furthermore, the target reset information (Target Reset) 225 indicates a target reset instruction; and the clear task set information (Clear Task Set) 226 indicates an instruction to clear all queued commands. Furthermore, the abort task set information (Abort Task Set) 227 indicates an instruction to clear a queued specific command.
Moreover, the Read Data 227 and the Write Data 229 are used to specify a data transfer direction; and, for example, if the Read Data 227 is set, it means that the data will be transferred from the target to the initiator; and if the Write Data 229 is set, it means that the data will be transferred in an opposite direction.
Furthermore, the CDB (Command Descriptor Block) 230 is a body of a SCSI command (e.g. READ command or WRITE command) stored in the relevant FCP command frame; and the data length (DL) 231 indicates the data length of read data or write data to be transferred by read processing or write processing in accordance with such a SCSI command.
When transferring FC frames comprised in an FCoE frame, which has been sent from the host system 2, to the connection destination storage apparatus 142 based on the above-described premise, the storage-side FCoE switch 146 continually monitors the routing control information (R_CTL) 201 of the FC frame header 200 of the relevant FC frame.
Then, if the routing control information (R_CTL) 201 is a value (06h) indicating an FCP command frame and the transmission source address (S_ID) 204 of the FC frame header 200 exists in any of the WWN column 161B (
Furthermore, the storage-side FCoE switch 146 judges, based on the LUN obtained from the FCP command frame payload 220 obtained above and the logical unit group management table 161 described earlier with reference to
Then, if the logical unit is a frame-stacking-target logical unit, the storage-side FCoE switch 146 judges whether or not the SCSI command at that time is a read command and the data length of read data exceeds one payload length (2112 [Bytes]). If the storage-side FCoE switch 146 obtains an affirmative judgment result for this judgment, it monitors the FC frame header 200 (
Then, if the value of the routing control information (R_CTL) 201 of the FC frame header 200 is a value (01h) indicating an FCP data frame and the relevant transmission destination address (D_ID) 202 is identical to the transmission source address (S_ID) 204 of the previous FCP command frame and the first exchange number (OX_ID) 210 is determined to be a response for the previous FCP command frame which is the target of the multiple frame encapsulation processing, the storage-side FCoE switch 146 executes the multiple frame encapsulation processing for encapsulating those multiple FC frames as many as a specified number of frames in one FCoE frame and sends the obtained stacked FCoE frame to the corresponding host system 2.
Specifically speaking, for example, when the need arises to read data stored in the storage apparatus 142 in response to the operation by the user or a request from applications, the host system 2 starts this host-side read processing shown in
Subsequently, the host system 2 waits for the corresponding read data to be sent from the storage apparatus 142 as a response result of the read command stored in the aforementioned FCP command frame (SP101). When eventually receiving the FCoE frame comprising the read data, the host system 2 extracts the FC frames (FCP DATA frames) form the relevant FCoE frame and extracts the read data from the FC frames (SP102).
Subsequently, the host system 2 judges whether the reception of all pieces of the read data has been completed or not (SP103); and if it obtains a negative judgment result, it returns to step SP101. Furthermore, the host system 2 then repeats a loop from step SP101 to step SP103 and back to step SP101 until it finishes receiving the read data.
Then, if the host system 2 obtains an affirmative judgment result in step SP103 by finishing receiving all the pieces of the read data, it waits for an FCoE frame, in which an FCP response frame (FCP RSP frame) storing the SCSI status indicating the completion of the read processing is encapsulated, to be sent from the storage apparatus 142 (SP104). Then, when the host system 2 eventually receives the SCSI status, it terminates this host-side read processing.
Now,
After receiving the FCoE frame sent from the host system 2, the FCM protocol processing unit 150D starts this frame reception processing and firstly judges whether the transmission destination of the received FCoE frame is the connection destination storage apparatus 142 or not, based on the destination of the FCoE frame (SP110).
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it outputs the relevant FCoE frame from the corresponding FCoE interface port 158A toward the transmission destination of the relevant FCoE frame (SP111) and then terminates this frame reception processing.
On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP110, it extracts an FC frame from the received FCoE frame (SP112) and analyzes the FC frame header 200 (
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it transfers the FC frame extracted from the FCoE frame in step SP112 to the connection destination storage apparatus 142 (SP120) and then terminates this frame reception processing.
On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP114, it judges whether the SCSI command is a read-related command requiring data transfer from the storage apparatus 142. (SP115). Then, If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it transfers the FC frame extracted from the FCoE frame in step SP112 to the connection destination storage apparatus 142 (SP120) and then terminates this frame reception processing.
On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP115, it judges whether the data length of the read data to be transferred from the connection destination storage apparatus 142 to the host system 2 is larger than the data length that can be stored in one normal FC frame or not (SP116). This judgment is performed based on the data length (DL) 231 (
A negative judgment result for this judgment means that subsequently the read data to be sent from the connection destination storage apparatus 142 to the host system 2 can be transferred in one FC frame and it is unnecessary to stack a plurality of FC frames in one FCoE frame by means of the multiple frame encapsulation processing. Thus, when such a negative judgment is returned, the FCM protocol processing unit 150D transfers the FC frame, which was extracted from the FCoE frame in step SP112, to the connection destination storage apparatus 142 (SP120) and then terminates this frame reception processing.
On the other hand, an affirmative judgment result in step SP116 means that subsequently, the data to be transferred from the connection destination storage apparatus 142 to the host system 2 cannot be transferred in one FC frame and, therefore, a plurality of FC frames need to be encapsulated in one FCoE frame by means of the multiple frame encapsulation processing as the need arises. Thus, when such an affirmative judgment is returned, the FCM protocol processing unit 150D refers to the logical unit group management table 161 (
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it transfers the relevant FC frame to the connection destination storage apparatus 142, which is the transmission destination (SP120), and then terminates this frame reception processing.
On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP118, it transfers the relevant FC frame to the connection destination storage apparatus 142, which is the transmission destination (SP119), then sets a mode to execute reception port monitoring processing for monitoring the FC interface port 158B (
The FCM protocol processing unit 150D firstly waits for the FC frame (FCP DATA frame) comprising the read data to be delivered to the FC interface port (hereinafter referred to as the monitoring target port) 158B which is a monitoring target connected to the relevant storage apparatus 142 (SP130).
Then, when the FC frame is delivered from the connection destination storage apparatus 142 to the monitoring target port, the FCM protocol processing unit 150D judges whether the relevant FC frame is an FCP data frame or not (SP131). Then, if the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it encapsulates the relevant FC frame in an FCoE frame (SP132), sends the relevant FCoE frame (SP133), and returns to step SP130.
On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP131, it judges whether or not the then received FCP data frame is an FCP data frame which is a response for a read command whose read destination is a farme-stacking-target logical unit (SP134).
Specifically speaking, the FCM protocol processing unit 150D judges in this step SP134 whether or not the first exchange number (OX_ID) 210 indicated in the FC header in
Thus, if the FCM protocol processing unit 150D obtains a negative judgment result in step SP134, it encapsulates the relevant FC frame in an FCoE frame (SP135) and then proceeds to step SP137. Furthermore, if the FCM protocol processing unit 150D obtains an affirmative judgment result in step SP134, it refers to the logical unit group management table 161, encapsulates the FC frames as many as the predefined number of frames in one FCoE frame (SP136) and then proceeds to step SP137.
Subsequently, the FCM protocol processing unit 150D sends the FCoE frame created in step SP135 or step SP136 to the corresponding host system 2 (SP137) and judges whether the transmission of all pieces of the read data to the relevant host system 2 has been completed or not (SP138).
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it returns to step SP130 and then repeats the processing from step SP130 to step SP138. Then, if the FCM protocol processing unit 150D eventually obtains an affirmative judgment result in step SP136 by finishing sending all the pieces of the read data to the host system 2, it waits for an FCP response frame (FCP RSP frame) comprising the SCSI status indicating the read processing to be sent from the connection destination storage apparatus 142 (SP139).
Then, when the FCM protocol processing unit 150D eventually receives such an FC frame (FCP RSP frame), it encapsulates the received FC frame in an FCoE frame (SP140), sends this FCoE frame to the corresponding host system 2 (SP141), and then terminates this reception port monitoring processing (returns to the normal mode).
On the other hand,
When the channel adapter 148A, 148B receives such an FCP command frame, it starts this storage-apparatus-side read processing and firstly reads data from a storage area corresponding to the logical block designated in the CDB 230 of the relevant FCP command frame payload 220 in the logical unit designated in the FCP command frame payload 220 (
Subsequently, the channel adapter 148A, 148B judges whether the transmission of all pieces of the read target data designated in the CDB 230 of the FCP command frame payload 220 to the host system 2 has been completed or not (SP147). Then, if the channel adapter 148A, 148B obtains a negative judgment result for this judgment, it returns to step SP146 and then repeats a loop from step SP146 to step SP147 and back to step SP146.
Then, when the channel adapter 148A, 148B eventually finishes sending all the pieces of the designated read target data to the host system 2, it sets the SCSI status indicating the result of the relevant read processing in an FCP response frame (FCP RSP frame) and sends it to the host system 2 (SP148), and then terminates this storage-apparatus-side read processing.
Since a processing sequence for write processing at the host system 2 is the same as the first embodiment described earlier with reference to
On the other hand,
Then, when the FCoE frame comprising the write data is eventually delivered from the host system 2, the FCM protocol processing unit 150D extracts an FC frame (FCP data frame) from the relevant FCoE frame and sends the extracted FC frame to its transmission destination, that is, the connection destination storage apparatus 142 (SP151).
Subsequently, the FCM protocol processing unit 150D judges whether or not a plurality of FC frames are encapsulated in that FCoE frame (SP152). This judgment is performed by judging whether or not a value (other than “0”) is set to the frame counter field 62F (
Then, if the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it proceeds to step SP155. On the other hand, if the FCM protocol processing unit 150D obtains an affirmative judgment result for this judgment, it extracts the next FC frame from the relevant FCoE frame and sends the extracted FC frame to its transmission destination, that is, the connection destination storage apparatus 142 (SP153).
Subsequently, the FCM protocol processing unit 150D judges whether the extraction of all the FC frames comprised in the relevant FCoE frame has been completed or not (SP154). This judgment is performed by judging whether the remaining frame counter value stored in the frame counter field 62F corresponding to the FC frame extracted in step SP153 is “0” or not.
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it returns to step SP153 and then repeats a loop from step SP153 to step SP154. Then, if the FCM protocol processing unit 150D eventually obtains an affirmative judgment result in step SP154 by finishing extracting and sending all the FC frames comprised in the relevant FCoE frame, it judges whether the reception of all pieces of the write data has been completed or not (SP155).
If the FCM protocol processing unit 150D obtains a negative judgment result for this judgment, it returns to step SP150 and then repeats the processing from step SP150 to step SP155. Then, if the FCM protocol processing unit 150 eventually obtains an affirmative judgment result in step SP155 by finishing sending all the pieces of the received write data, it waits for receiving an FCP response frame (FCP RSP frame) comprising the SCSI status indicating the result of the write processing to be sent from the connection destination storage apparatus 4 (SP156).
Then, when the FCM protocol processing unit 150D eventually receives such an FCP response frame, it encapsulates the relevant FC frame and thus sends the obtained FCoE frame to the corresponding host system 2, and then terminates this switch-side write processing.
As shown in
Then, the storage-side FCoE switch 146 refers to the logical unit group management table 161 (
Because of the above-described configuration, efficiency in the encapsulation of the FC frames in the FCoE frame at the storage-side FCoE switch 146 can be increased and it is also possible to prevent complication of hardware logic for the storage-side FCoE switch 146.
With the computer system 140 according to this embodiment as described above, the storage-side FCoE switch 146 is equipped with the multiple frame encapsulation function. So, the data transfer amount of data to be read from, or written to, a logical unit belonging to the relevant storage tier can be controlled on a logical unit basis. As a result, a computer system capable of data transfer bandwidth control on a logical unit basis or according to a storage tier of the storage apparatus 142 can be realized.
Specifically speaking, if the configuration to have the storage-side FCoE switch 146 execute the multiple frame encapsulation processing as necessary is adopted as in the second embodiment and if an access-target logical unit is a substantial logical unit, the storage-side FCoE switch 146 can easily recognize the number of stacking frames for each logical unit by setting logical unit groups and the number of stacking frames for each logical unit group to the storage-side FCoE switch 146 in advance as described above.
However, if the access-target logical unit is a virtual logical unit that is unsubstantial, and if the storage apparatus adopts a tier control method executed as necessary by the storage apparatus for internally switching a storage tier, where data stored in the relevant virtual logical unit is to be stored, according to, for example, access frequency of the relevant data, the sequence of the multiple frame encapsulation processing can be executed only once on the read data which has been read from the relevant virtual logical unit. For example, if the aforementioned second embodiment is set so that the multiple frame encapsulation processing will be executed for the relevant virtual logical unit corresponding to a storage area of the highest-level tier, even if the relevant data is actually stored in a lower-level storage tier, the storage-side FCoE switch 146 cannot recognize it. As a result, the problem is that excessive bandwidth is assigned to access to data which has been migrated to a lower-level storage tier than the level of the storage tier for which the setting is made, or that the intended bandwidth cannot be used for access to data which has been migrated to a higher-level storage tier.
Furthermore, with the computer system 140 according to the second embodiment, the storage-side FCoE switch needs to retain the logical unit group management table 161 described earlier with reference to
One of possible methods for solving the above-described problems is, for example, a method of associating ports of a storage apparatus 245 with storage tiers in the relevant storage apparatus 245 as shown in
If this method is used, the storage-side FCoE switch 246 does not have to retain the aforementioned logical unit group management table 161 and the method has the advantage that the storage-side FCoE switch 246 can be constructed at less expensive cost. However, this method has a problem of the possibility to easily cause a waste of resources on the storage apparatus 245 side.
So, one of characteristics of the computer system 240 according to this embodiment is that the storage-side FCoE switch 242 executes the multiple frame encapsulation processing as in the second embodiment, but under this circumstance, the storage apparatus 241 sequentially issues an instruction to the storage-side FCoE switch 242 to designate the number of stacking frames.
Specifically speaking, the storage apparatus 241 (to be specific, a channel adapter for the storage apparatus 241) manipulates, for example, a 4th byte of an FC frame header of an FC frame (FCP data frame), in which read data is comprised, thereby issuing a stacking frame instruction to the storage-side FCoE switch 242.
More specifically, as shown in
This countdownvalue of the number of stacking frames is decremented for each FC frame (FCP data frame); and when the countdown value of the number of stacking frames becomes “0,” the value is wrap around from the next FC frame (FCP data frame).
For example, if three multiple FC frames are to be stored in one FCoE frame, the 4-th byte reserved field 203 of the first FC frame (FCP data frame) stores “2 (02h)” as the countdown value of the number frames of stacking frames; the 4-th byte reserved field 203 of the next FC frame (FCP data frame) stores “1 (01h)” as the countdown value of the number of stacking frames; and the 4-th byte reserved field 203 of the last FC frame (FCP data frame) stores “0 (00h)” as the countdown value of the number of stacking frames. Furthermore, the same pattern is repeated for every three FC frames with respect to any subsequent FC frames (FCP data frames).
Therefore, in the case of this example, the countdown value of the number of stacking frames stored in the 4-th byte reserved field 203 of the FC frame (FCP data frame) changes in three-frame cycles for each FC frame (FCP data frame) like “02,” “01,” “00,” “02,” “01,” and so on.
In this case, if the number of frames, that is, the number of the remaining FC frames at the end of the read data, does not satisfy the corresponding number of stacking frames, the channel adapter for the storage apparatus 241 stores the countdown value of the number of stacking frames corresponding to the number of frames, that is, the number of the remaining FC frames, in the 4-th byte reserved field 203 of these remaining FC frames.
Incidentally, in the case of this embodiment, if the channel adapter for the storage apparatus 241 is to send an FC frame (FCP data frame) comprising data, to which multiple frames encapsulation does not have to be applied, to the storage-side FCoE switch 242, it does not perform the operation with respect to the 4-th byte reserved field 203 as described above.
Furthermore, when sending the FC frame to the storage-side FCoE switch 242, the channel adapter for the storage apparatus 241 executes the frame transmission order priority control processing described earlier with reference to
On the other hand, as shown in
Then, when the FCM protocol processing unit 247A of the CNA controller 247 for the storage-side FCoE switch 242 receives an FC frame (FCP data frame) sent from the storage apparatus 241 and stores it in the buffer memory 154, it reads the 4-th byte reserved field 203 of the relevant FC frame; and if the relevant reserved field 203 stores a value other than “0” as the countdown value of the number of stacking frames, the FCM protocol processing unit 247A executes the multiple frame encapsulation processing for storing all FC frames, starting from the relevant FC frame and including its subsequent FC frames until an FC frame whose countdown value of the number of stacking frames stored in the 4-th byte reserved field 203 is “0,” in the same FCoE frame (stacked FCoE frame).
Under this circumstance, the FCM protocol processing unit 247A rewrites the countdown value of the number of stacking frames, which is stored in the 4-th byte reserved field 203 of each of all the multiple FC frames encapsulated in one FCoE frame, to “0” and stores each countdown value of the number of stacking frames, which is stored in the 4-th byte reserved field 203 of the relevant FC frame, in the corresponding frame counter field 62F in the stacked FCoE frame 62 described earlier with reference to
Furthermore, after encapsulating the FC frames as many as the designated number of stacking frames as explained earlier in the same FCoE frame, the FCM protocol processing unit 247A sends the relevant FCoE frame via the FCoE interface port 158A to the corresponding host system 2.
After the FCM protocol processing unit 247A obtains an FC frame (FCP command frame), in which a read command is stored, by decapsulating an FCoE frame, in which the FC frame is encapsulated, from the host system 2, and transfers the FC frame to the connection destination storage apparatus 241, it starts this multiple frame encapsulation processing and firstly waits for receiving a first FC frame (FCP data frame), in which read data is comprised in response to the relevant read command, to be sent from the connection destination storage apparatus 241 (SP160).
Then, when the FCM protocol processing unit 247A eventually receives the first FC frame and stores this first FC frame in the buffer memory 154 (
If the FCM protocol processing unit 247A obtains a negative judgment result for this judgment, it executes encapsulation processing for encapsulating only the relevant FC frame in an FCoE frame normally (SP167). Furthermore, the FCM protocol processing unit 247A sends the FCoE frame generated by the encapsulation processing to the corresponding host system 2 (SP168) and then terminates this multiple frame encapsulation processing.
On the other hand, if the FCM protocol processing unit 247A obtains an affirmative judgment result in step SP161, it calculates the maximum frame length FCoEMaxLen(B) of the relevant FCoE frame according to the aforementioned formula (I) and secures a buffer area of the same size as the calculated maximum frame length FCoEMaxLen(B), in the buffer memory 154 (
Subsequently, the FCM protocol processing unit 247A stores the FC frame (FCP data frame) received in step SP160 in the corresponding area in the buffer area secured in step SP162. At the same time, the FCM protocol processing unit 247A further stores the countdown value of number of the stacking frames, which is stored in the 4-th byte reserved field 203 of the FC frame header of the FC frame stored in the buffer area, in the frame counter field 62F (
Next, the FCM protocol processing unit 247A judges whether an FC frame which should be encapsulated in the same FCoE frame as the FC frame stored in the buffer area in step SP162 (hereinafter referred to as the subsequent FC frame to be stored as appropriate) exists or not (SP164). This judgment is performed by judging whether the countdown value of the number of stacking frames stored in the aforementioned frame counter field 62F in step SP163 is “0” or not. Specifically speaking, when the countdown value of the number of stacking frames is “0,” the FCM protocol processing unit 247A determines that no subsequent FC frame to be stored exists; and when the countdown value of the number of stacking frames is a value other than “0,” the FCM protocol processing unit 247A determines that a subsequent FC frame to be stored exists.
If the FCM protocol processing unit 247A obtains an affirmative judgment result for this judgment, it waits to receive the next subsequent FC frame to be stored (SP165). Then, when the FCM protocol processing unit 247A eventually receives the subsequent FC frame to be stored, it returns to step SP163 and repeats the processing from step SP163 to step SP165.
Then, if the FCM protocol processing unit 247A eventually obtains a negative judgment result in step SP164 by finishing encapsulating the FC frames as many as the number of stacking frames in one FCoE frame, it calculates the FCS 62C (
The storage apparatus 241 performs flow control in accordance with a BB credit exchanged with the storage-side FCoE switch 242 (corresponding to the FCoE switch 38 in
Incidentally, the storage apparatus 241 measures a reception interval of a reception ready notification (R_RDY), which will increase the BB credit, in order to prevent the above-mentioned state of inhibiting the transmission of the stacking target FC frames from continuing for long time. If the reception interval of the reception ready notification (R_RDY) is longer than an issuance interval of a normal FC frame sent by the storage apparatus 241 or is equal to or more than a designated threshold value (for example, 80[%]), the storage apparatus 241 also suspends transmitting normal FC frames, which are not stacked FCoE frame targets, and inhibits transmission of the normal FC frames until the BB credit reaches a value capable of generating/sending the stacked FCoE frames.
In this way, the storage apparatus 241 in this computer system 240 performs frame transmission control to use the bandwidth as efficiently as possible.
The computer system 240 according to this embodiment is designed as described above so that the number of stacking frames during the multiple frame encapsulation processing is reported from the storage apparatus 241 to the storage-side FCoE switch 242. So, in addition to the same advantageous effects as those obtained by the second embodiment, it is possible to obtain the advantageous effects that the storage-side FCoE switch 242 does not have to retain, for example, the logical unit group management table 161 explained earlier with reference to
Incidentally, the aforementioned third embodiment has described the case where the storage-side FCoE switch 242 executes the multiple frame encapsulation processing only when sending FC frames in which read data is comprised (FCP data frames); however, the FC frame comprising the read data and an FCP response frame comprising the SCSI status (FCP RSP frame) may be encapsulated in the same one FCoE frame and besides this, FC frames of different types may be comprised in one FCoE frame.
Furthermore, the aforementioned third embodiment has described the case where if the number of frames, that is, the number of the remaining FC frames at the end of the read data does not satisfies the corresponding number of stacking frames, the countdown value of the number of stacking frames according to the number of frames, that is, the number of the remaining FC frames is stored in the 4-th byte reserved field 203 of those remaining FC frames; however, in order to avoid changing the number of frames, that is, the number of multiple FC frames to be encapsulated in one FCoE frame, dummy frames generated on the storage apparatus 241 side or the storage-side FCoE switch 242 side may be encapsulated in the last FCoE frame or an FCP response frame comprising the SCSI status (FCP RSP frame) may be encapsulated in the same FCoE frame as the FC frames comprising the data are stored.
For example, if the dummy frames are comprised in the FCoE frame in the above-described case, a redundancy code (ECC set) or the like may be included in the dummy frames in order to enhance reliability.
Furthermore, if it is unnecessary to encapsulate a multiplicity of dummy frames in the FCoE frame, only one data guarantee FC frame 62-0, which will be described later with reference to
If the data guarantee FC frame 62-0 is sent to the host system 2 as described above, the CNA 12 for the host system 2 (
Furthermore, besides the above, the FCoE switch 145 (
Furthermore, the aforementioned embodiment has described the case where the countdown value of the number of stacking frames is set to the 4-th byte reserved field 203 of the FC frame header 200 of the relevant FC frame; however, the countdown value of the number of stacking frames may be set to a position other than the reserved field 203.
Specifically speaking, with the computer system 250 according to this embodiment, the host-side FCoE switch 252 extracts an FC frame from a normal FCoE frame output from the host system 251, encapsulates the extracted FC frame in a stacked FCoE frame again, separates and extracts each FC frame encapsulated in the stacked FCoE frame, encapsulates the separated and extracted FC frame in a normal FCoE frame, and sends it to the host system 251.
Now, in order for the host-side FCoE switch 252 to execute the multiple frame encapsulation processing as described above, the host-side FCoE switch 252 needs to recognize the number of stacking frames for each logical unit in the storage apparatus 241.
As possible examples of a method for having the host-side FCoE switch 252 recognize the number of stacking frames for each logical unit in the storage apparatus 241, there are: a first method of having the host-side FCoE switch 252 retain the logical unit group management table 161 described earlier with reference to
The first method of these methods does not require any change of the processing on the host system 251 side. On the other hand, regarding the second method, the host system 251 needs to add processing for storing the countdown value of the number of stacking frames in the 4-th byte reserved field 203 (
However, as stated earlier with respect to the third embodiment, this second method has the advantage of superiority in terms of cost for the FCoE switch 252 and a high degree of freedom of bandwidth control on the host system 251 side. So, according to this embodiment, the second method is adopted as the method for having the host-side FCoE switch 252 recognize the number of stacking frames for each logical unit in the storage apparatus 241.
Specifically speaking, at the time of write processing, the FC driver 262 sets write data in an FC frame and sends the obtained FC frame to the FC protocol processing unit 261A. Furthermore, under this circumstance, the FC driver 262 refers to a logical unit and tier association management table 290 described later with reference to
After the FC protocol processing unit 261A is notified by the FC driver 262 of the write data and the number of stacking frames, it stores the relevant countdown value of the number of stacking frames in the 4-th byte reserved field 203 (
The FCM protocol processing unit 261B is a conventional FCM protocol processing unit that does not have the multiple frame encapsulation function; and it encapsulates FC frames received from the FC protocol processing unit 261A one frame by one frame in one FCoE frame and sequentially sends the obtained FCoE frame to the CEE protocol processing unit 21A. Thus, these FCoE frames are then sent by the CEE protocol processing unit 21A via the optical transceiver 20 to the host-side FCoE switch 252 according to the CEE (FCoE) protocol.
The host-side FCoE switch 252 is constituted from a CNA controller 270, a processor core 271, an integrated memory 272, a backup memory 273, a buffer memory 274, a path arbiter 275, a crossbar switch 276, an external interface 277, and a plurality of FCoE interface ports 278A and FC interface ports 278B as shown in
Then, the CNA controller 270 is connected via a first bus 279A to the integrated memory 272, the buffer memory 274, and the path arbiter 275; and the processor core 271 is connected via a second bus 279B to the integrated memory 272, the external interface 277, the backup memory 273, the CNA controller 270, the buffer memory 274, and the crossbar switch 276. Furthermore, the integrated memory 272 stores a routing table 280.
Among these components of the host-side FCoE switch 252, the processor core 271, the integrated memory 272, the backup memory 273, the buffer memory 274, the path arbiter 275, the crossbar switch 276, the external interface 277, the plurality of FCoE interface ports 278A and FC interface ports 278B, the first and second buses 279A, 279B, and the routing table 280 have the same configurations and functions as those of the corresponding parts of the storage-side FCoE switch 242 (
On the other hand, the CNA controller 270 includes a plurality of protocol processing units 270A to 270C, each of which processes the main protocol such as CEE, IP, or FC, and an FCM protocol processing unit 270D for encapsulating/decapsulating an FC frame in/from an FCoE frame. Since each protocol processing unit 270A to 270C has the same configurations and functions as those of the corresponding parts 150A to 150C of the storage-side FCoE switch 242 (
The difference between the FCM protocol processing unit 270D and the FCM protocol processing unit 150D (
In fact, after the FCoE frame sent from the host system 251 is stored in the buffer memory 274, the FCM protocol processing unit 270D sequentially extracts the FC frame from the FCoE frame. Furthermore, the FCM protocol processing unit 270 encapsulates one or more FC frames, which it has obtained by the above-described processing, in one FCoE frame. Then, the FCM protocol processing unit 270D sends the thus-obtained FCoE frame to the storage apparatus 241.
Furthermore, after the stacked FCoE frame from the storage-side FCoE switch 242 is stored in the buffer memory 274, the FCM protocol processing unit 270D extracts all the FC frames comprised in the relevant stacked FCoE frame. Then, the FCM protocol processing unit 270D re-encapsulates each extracted FC frame one by one in a normal FCoE frame, and send the thus-obtained FCoE frames to the corresponding host system 251.
When the FCM protocol processing unit 270D receives an FCoE frame, in which an FC frame comprising a write command (FCP command frame) is encapsulated, from the host system 2 and transfers it to the corresponding storage apparatus 241, it starts this multiple frame encapsulation processing and firstly waits for receiving a first FCoE frame, in which write data according to the relevant write command is comprised, to be sent from the host system 251 (SP170).
Then, when the FCM protocol processing unit 270D eventually receives the first FCoE frame, it extracts an FCP data frame encapsulated in the relevant FCoE frame (SP171). Furthermore, the FCM protocol processing unit 270D reads the countdown value of the number of stacking frames, which is stored in the 4-th byte reserved field 203 (
If the FCM protocol processing unit 270D obtains a negative judgment result for this judgment, it sends the (original) FCoE frame received in step SP170 to the corresponding storage apparatus 241 (SP179) and then terminates this multiple frame encapsulation processing.
On the other hand, if the FCM protocol processing unit 270D obtains an affirmative judgment result in step SP172, it calculates the maximum frame length FCoEMaxLen(B) of the relevant FCoE frame according to the aforementioned formula (I) and secures a buffer area of the same size as the calculated maximum frame length FCoEMaxLen(B), in the buffer memory 274 (
Subsequently, the FCM protocol processing unit 270D stores the FC frame extracted from the FCoE frame in step SP171 in the corresponding area in the buffer area secured in step SP173. At the same time, the FCM protocol processing unit 270D further stores the countdown value of the number of stacking frames, which is stored in the 4-th byte reserved field 203 of the FC frame header of the FC frame stored in the buffer area, in the frame counter field 62F (
Next, the FCM protocol processing unit 270D judges whether a subsequent FC frame to be stored which should be encapsulated in the same FCoE frame as the FC frame stored in the buffer area in step SP174 exists or not (SP175). This judgment is performed by judging whether the countdown value of the number of stacking frames stored in the aforementioned frame counter field 62F in step SP174 is “0” or not. Specifically speaking, when the countdown value of the number of stacking frames is “0,” the FCM protocol processing unit 270D determines that no subsequent FC frame to be stored exists; and when the countdown value of the number of stacking frames is a value other than “0,” the FCM protocol processing unit 270D determines that a subsequent FC frame to be stored exists.
If the FCM protocol processing unit 270D obtains an affirmative judgment result for this judgment, it waits to receive the next subsequent FC frame to be stored (SP176). Then, when the FCM protocol processing unit 270D eventually receives an FCoE frame comprising the subsequent FC frame to be stored, it extracts the subsequent FC frame to be stored from the relevant FCoE frame and then returns to step SP174 and repeats the processing from step SP174 to step SP177.
Then, if the FCM protocol processing unit 270D eventually obtains a negative judgment result in step SP175 by finishing storing the FC frames as many as the number of stacking frames in one FCoE frame, it calculates the FCS 62C (
Meanwhile, the multiple frame encapsulation processing by the FCM protocol processing unit 270D as described above is effective as the operation of the relevant host-side FCoE switch 252 when the host-side FCoE switch 252 receives congestion notification (CN: Congestion Notification). In this case, the host-side FCoE switch 252 also executes the frame transmission order priority control describe earlier with reference to
Now, a conventional congestion suppression method executed on the FCoE network will be briefly explained below in order to understand the congestion suppression method according to this embodiment.
By the conventional congestion suppression method, a reception port (Congestion Point) monitors a reception queue; and when congestion occurs, this is reported to a transmission port (Reaction Point). Then, traffic shaping is performed with respect to the transmission port which has received such notification (hereinafter referred to as the congestion notification (CN: Congestion Notification)), thereby adjusting a frame transmission amount to avoid the occurrence of frame loss.
There are three examples of the above-described congestion suppression method: BCN (Backward Congestion Notification) for sending the congestion notification in a direction opposite to the traffic travelling direction; QCN (Quantized Congestion Notification) for sending the congestion notification in the traffic travelling direction; and ECN (Explicit Congestion Notification) for transferring the frames by adding information indicating that the congestion has occurred, to the frames.
For example, by the BCN method among the above-listed methods, a frame transmission source (host system) which has received the congestion notification controls and reduces the transmission amount to a specified transmission rate. Specifically speaking, the host system controls to extend a frame issuance interval as shown in
In this case according to this embodiment, a plurality of specified transmission rates are set as the settings upon reception of the congestion notification so that an issuance interval becomes longer for data transmission to a logical unit in a lower-level tier as shown in
Furthermore, in the case of this embodiment, the host system 251 executes control to reduce the number of frames, that is, the number of FC frames to be encapsulated in one staked FCoE frame (the number of stacking frames) in addition to the method for extending the frame issuance interval as the means of reducing the transmission amount as describe above during transmission of stacking frames. On the contrary, the host system 251 executes control to increase the number of stacking frames, thereby much more extending the issuance interval shown in
With this computer system 250 as described above, the data transmission amount can be suppressed sensitively by a combination of extension of the frame issuance interval and changes of the number of stacking frames with respect to the stacked FCoE frames.
As a means for realizing the congestion suppression method according this embodiment as described above, the shared memories 47A, 47B (
The frame control management table 290 is a table in which the number of stacking frames for each logical unit group in normal time and at the time of the occurrence of congestion as well as various information about transmission control of FCoE frames such as transmission rates of FCoE frames are stored, and is created for each storage apparatus 241.
This frame control management table 290 is constituted from a logical unit group number column 290A, a number-of-stacking-FC-frames (in normal time) column 290B, a number-of-stacking-FC-frames (upon CN reception) column 290C, an FCoE frame transmission rate (in normal time) column 290D, an FCoE frame transmission rate (upon CN reception) column 290E, a bandwidth recovery interval time column 290F, a transmission rate recovery unit column 290G, and a restoration start time column 290H.
Then, the logical unit group number column 290A stores the logical unit group number assigned to each logical unit group defined in the corresponding storage apparatus 241. Furthermore, the number-of-stacking-FC-frames (in normal time) column 290B stores the number of stacking frames defined for the corresponding logical unit group in normal time; and the number-of-stacking-FC-frames (upon CN reception) column 290C stores the number of stacking frames set for the corresponding logical unit group at the time of reception of the congestion notification.
Furthermore, the FCoE frame transmission rate (in normal time) column 290D stores a ratio of an FCoE frame transmission rate (transmission rate of FCoE frames output from the host system 251) in normal time to the maximum value of the then applicable transmission rate that is set for the corresponding logical unit group (transmission rate of FCoE frames output from the host system 251). Since the FCoE frame transmission rate in normal time is the maximum value of the then applicable transmission rate according to this embodiment, each FCoE frame transmission rate (in normal time) column 290D stores “100%.”
On the other hand, the FCoE frame transmission rate (upon CN reception) column 290E stores a ratio of an FCoE frame transmission rate (transmission rate of FCoE frames output from the host system 251) at the time of the reception of the congestion notification to the maximum value of the then applicable transmission rate that is set for the corresponding logical unit group (transmission rate of FCoE frames output from the host system 251).
Furthermore, according to this embodiment, if the host system 251 receives the congestion notification and changes the transmission rate of the FCoE frames output from the host system 251 from the transmission rate in normal time to the transmission rate at the time of the reception of the congestion notification, the host system 251 controls to increase the FCoE frame transmission rate to make it return to the transmission rate in normal time at a constant issuance interval between the FCoE frames output from the host system 251 (hereinafter referred to as the bandwidth recovery interval time) by a constant rate (hereinafter referred to as the transmission rate recovery unit). When this control is performed, the bandwidth recovery interval time and the transmission rate recovery unit are stored in the bandwidth recovery interval time column 290F and the transmission rate recovery unit column 290G, respectively.
Furthermore, according to this embodiment, if the host system 251 receives the congestion notification and changes the transmission rate of the FCoE frames output from the host system 251 from the transmission rate in normal time to the transmission rate at the time of the reception of the congestion notification, the host system 251 controls to firstly make the FCoE frame transmission rate return to the transmission rate in normal time and then make the number of stacking frames return to the number of stacking frames in normal time; and when the above-described control is performed, time required to make the number of stacking frames return to the number of stacking frames in normal time after making the transmission rate return to the transmission rate in normal time is stored in the restoration start time column 290H.
Therefore, the example in
After the CNA controller 261 receives the congestion notification, it starts first frame processing shown in this
Subsequently, the CNA controller 261 extends the FCoE frame issuance interval in step SP190 or recovers the FCoE frame issuance interval by the transmission rate recovery unit in step SP192 described later, and then judges whether the bandwidth recovery interval time 290F specified in the frame control management table 290 has elapsed or not (SP191).
If the CNA controller 261 obtains a negative judgment result for this judgment, it waits for the bandwidth recovery interval time to elapse for the corresponding logical unit group; and if the CNA controller 261 eventually obtains an affirmative judgment result in step SP191 as the bandwidth recovery interval time has elapsed from any of the logical unit groups, it shortens the FCoE frame issuance interval for the relevant logical unit group by the amount corresponding to the transmission rate recovery unit 290G specified in the frame control management table 290 (SP192).
The CNA controller 261 then judges whether the FCoE frame issuance interval for the relevant logical unit group has recovered to the issuance interval in normal time or not (SP193); and if the CNA controller 261 obtains a negative judgment result, it returns to step SP191 and then repeats the processing from step SP191 to step SP193.
Then, if the CNA controller 261 obtains an affirmative judgment result in step SP193 when the FCoE frame issuance interval eventually recovers to the issuance interval in normal time, it terminates this first frame control processing.
On the other hand,
Specifically speaking, after receiving the notification from the CNA controller 261, the FC driver 262 starts the second frame control processing shown in this
Then, if the FC driver 262 obtains a negative judgment result for this judgment, it proceeds to step SP202. On the other hand, if the FC driver 262 obtains an affirmative judgment result in step SP200, it continues FC frame creation processing until it becomes possible to generate one stacked FCoE frame which was being generated when receiving the congestion notification (until the number of stacking frames reaches the number of frames constituting one set) (SP201).
Then, after the host-side FCoE switch 252 confirms that generation of one set of FC frames which makes it possible to generate the relevant stacked FCoE frame has been completed, the FC driver 262 refers to the frame control management table 290 (
Subsequently, the FC driver 262 waits for the issuance interval for the FCoE frames output from the host system 251 to recover to the issuance interval in normal time (SP203). Then, when the FCoE frame issuance interval has recovered to the issuance interval in normal time, the FC driver 262 further waits for the aforementioned restoration start time 290H specified in the frame control management table 290 to elapse (SP204). Incidentally, while the FC driver 262 waits in step SP203 and step SP204, the FC frames are generated and transmitted to the CNA 260.
Then, when the restoration start time has elapsed, the FC driver 262 refers to the frame control management table 290 and switches the countdown value of the number of stacking frames to be stored in the 4-th byte reserved field 203 of the FC frame header 200 of the relevant FC frame to a value according to the number of stacking frames in normal time (SP205) and then terminates this second frame control processing.
Incidentally,
With the computer system 250 according to this embodiment as described above, the host-side FCoE switch 252 is equipped with the multiple frame encapsulation function. So, like the third embodiment, this embodiment has the special advantageous effect of being capable of data transfer bandwidth control on a logical unit basis or according to the relevant storage tier. Furthermore, the data transfer bandwidth control on the logical unit basis or according to the storage tier can be performed depending on the situation, for example, where congestion has occurred.
Incidentally, the aforementioned fourth embodiment has described the case where the countdown value of the number of stacking frames is set to the 4-th byte reserved field 203 of the FC frame header 200 of the relevant FC frame in the same manner as in the third embodiment; however, the countdown value of the number of stacking frames may be set at a position other than the reserved field 203.
Furthermore, the aforementioned fourth embodiment has described the case where the congestion suppression method according to this embodiment described with reference to
In addition to the first to fourth embodiments described above, this embodiment will describe an additional function to the stacked FCoE frames (frame protection function) to enhance the strength against frame and data loss. Incidentally, a case where the computer system 1 according to the first embodiment is equipped with the frame protection function is taken as an example in the following explanation.
Firstly, the frame protection function described earlier with reference to
For example, if the frame protection function is set to “ON” on the number-of-stacking-frames-setting screen 100 described earlier with reference to, for example,
Then, the channel adapter 42A, 42B stores each parity, which has been thus generated, in FC frames (such FC frames will be hereinafter referred to as the FCP parity frames) PFR1 to PFR3 and generates a data guarantee frame 62-0 in which each of these FCP parity frames PFR1 to PFR3 is stored at the same position as the corresponding read data in one FCoE frame. Then, the channel adapter 42A, 42B sends the thus-generated data guarantee frame 62-0 to the host system 2 before sending each stacked FCoE frame 62-1 to 62-3 of the corresponding frame group FG.
For example, if the three stacked FCoE frames 62-1 to 62-3 are formed into one frame group FG as shown in
Similarly, the channel adapter 42A, 42B generates parity “p2” based on read data “b” stored in the next FCP data frame in the first stacked FCoE frame 62-1, read data “e” stored in the next FCP data frame in the second stacked FCoE frame 62-2, and read data “h” stored in the next FCP data frame in the third stacked FCoE frame 62-3. An exclusive OR of this parity and two pieces of the read data among “b,” “e,” and “h” is sequentially calculated, thereby making it possible to restore the remaining one piece of data.
Furthermore, the channel adapter 42A, 42B generates parity “p3” based on read data “c” stored in the last FCP data frame in the first stacked FCoE frame 62-1, read data “f” stored in the last FCP data frame in the second stacked FCoE frame 62-2, and read data “i” stored in the last FCP data frame in the third stacked FCoE frame 62-3. An exclusive OR of this parity and two pieces of the read data among “c,” “f,” and “i” is sequentially calculated, thereby making it possible to restore the remaining one piece of data.
Then, the channel adapter 42A, 42B stores the thus-generated three pieces of parity “p1” to “p3” in FC frames, respectively, and stores the thus-obtained three FCP parity frames PFR1 to PFR3 in one FCoE frame in this order, thereby generating the data guarantee frame 62-0. Furthermore, the channel adapter 42A, 42B sends the thus-generated data guarantee frame 62-0 to the host system 2 before sending the first to third stacked FCoE frames 62-1 to 62-3.
Under this circumstance, the channel adapter 42A, 42B stores specified information (hereinafter referred to as the frame protection information) 300 in a two-word field where the first pad data 62B is stored in the data guarantee frame 62-0 and each stacked FCoE frame 62-1 to 62-3 (hereinafter referred to as the pad data field) as shown in
This frame protection information 300 is constituted from: a frame type flag 300A indicating that the relevant FCoE frame is any one type of the data guarantee frame 62-0 or the stacked FCoE frames 62-1 to 62-3; an identifier (frame group ID) 300B assigned to a frame group FG to which the relevant data guarantee frame 62-0 or the relevant stacked FCoE frame 62-1 to 62-3 belongs; the number of member frames 300C that is set to the stacked FCoE frames 62-1 to 62-3 constituting the relevant frame group FG; and a current frame number 300D indicating the rank order of the relevant stacked FCoE frame MFG1 to MFG3 in the relevant frame group FG. Incidentally, the current frame number 300D of the data guarantee frame 62-0 is set and fixed to “0.”
Therefore, if the frame group ID of the frame group FG is “100” in the example shown in
On the other hand, when the CNA controller 21 (
On the other hand, if the frame protection information described above with reference to
Then, if the CNA controller 21 detects the data guarantee frame 62-0 as a result of the search, it waits to receive the first stacked FCoE frame 62-1 belonging to the same frame group FG among the stacked FCoE frames 62-1 to 62-3 to receive following the relevant data guarantee frame 62-0. Incidentally, whether the then received stacked FCoE frame 62-1 to 62-3 belongs to the same frame group FG as the aforementioned data guarantee frame 62-0 is judged based on the frame group ID 300B of the frame protection information 300 stored in the relevant stacked FCoE frame 62-1 to 62-3; and what number of stacked FCoE frames the relevant stacked FCoE frame 62-1 to 62-3 is in the relevant frame group FG is judged based on the current frame number 300D of the frame protection information 300.
Then, when the CNA controller 21 receives the first stacked FCoE frame 62-1 belonging to the same frame group FG as the data guarantee frame 62-0, it extracts each FCP data frame stored in the relevant stacked FCoE frame 62-1 as shown in
Furthermore, the CNA controller 21 then waits to receive the next stacked FCoE frame 62-2 which belongs to the same frame group FG as the data guarantee frame 62-0. When the CNA controller 21 receives the stacked FCoE frame 62-2, it extracts each FCP data frame stored in the relevant stacked FCoE frame 62-2 and sends each read data (“d,” “e,” and “f” in
Then, the CNA controller 21 repeats the same processing on another stacked FCoE frame 62-3 belonging to the same frame group FG as the data guarantee frame 62-0 in the ascending order of the current frame number 300D of the frame protection information 300.
For example, in the example shown in
As a result, if no discrepancy such as data loss has occurred during data transfer from the storage apparatus 4 to the host system 2, each calculation result of the exclusive OR of each parity and each corresponding read data becomes “0” as shown in the bottom row of the central column in
On the other hand, for example, if at least one stacked FCoE frame 62-1 to 62-3 (the stacked FCoE frame 62-2 in
Then, the CNA controller 21 terminates the reception processing on the relevant frame group FG without executing any error processing.
Incidentally, the CNA controller 21 (
Furthermore, the host system 2 or the storage apparatus 4 may also apply the above-described frame protection function to normal FCoE frames; and if inconsistency of continuity is detected by monitoring the sequence count information (SEQ_CNT) of the encapsulated FC frames, the same processing as described above may be executed or information about the frame group to which the relevant FCoE frame belongs may be stored in any of the reserved fields of the FCoE frame header and such information may be monitored. In this case, only the frame group in which the inconsistency of continuity was detected should be sent again and it is unnecessary to send the data guarantee frame 62-0, so that there is the advantage of not producing load, which would be caused by such transmission, on the bandwidth.
Furthermore, instead of sending the data guarantee frame 62-0, for example, the field where the pad data 62B (
The present invention can be applied to not only computer systems, which adopt the CEE method as a frame transfer method, but also a wide variety of computer systems which adopt other frame transfer methods.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2012/001745 | 3/13/2012 | WO | 00 | 3/21/2012 |