Abstract:
A method and system for transmission path optimization in an Internet Small Computer System Interface (iSCSI) storage area network architecture comprises a storage device downloading input/output (I/O) profiles from an SAN Software Defined Network (SDN) application and a host computer connected to the storage device via various transmission paths, to access a first virtual disk. The storage device analyzes iSCSI packets in the first virtual disk, and calculates I/O data of the first virtual disk and updated I/O data (for second I/O profile) at time intervals. The storage device can determine to change the first I/O profile of the first virtual disk as against the second I/O profile and the SAN SDN application can command an SDN controller to optimize the transmission path between the host computer and the first virtual disk by making the change, based on comparisons against the second I/O profile.

Description:
FIELD 
       [0001]    The subject matter herein generally relates to Storage Area Network (SAN) technology. 
       BACKGROUND 
       [0002]    A storage area network (SAN) is a network which provides access to consolidated, block level data storage. SANs are primarily used to enhance storage devices, such as disk arrays, tape libraries, and optical jukeboxes, and are accessible to servers so that the storage devices appear to the operating system as locally attached devices. A SAN typically has its own network of storage devices that are generally not accessible through a local area network (LAN) by other devices. 
         [0003]    An Internet Small Computer System Interface (iSCSI) protocol is a SAN protocol which allows iSCSI initiators to use storage devices on a (remote) iSCSI target using normal ethernet cabling. To the iSCSI initiator, the remote storage looks like a normal, locally-attached hard drive. The initiator, for example, a client computer host, is a client device for transmitting access requests, while a target is, for example, a storage device for providing an access service. 
         [0004]    A traditional iSCSI SAN architecture cannot dynamically adjust a transmission path from the initiator to the target. Three host computers, for example, connect to a local network via identical switches and access different virtual disks of a storage device through the iSCSI protocol. Under the traditional network architecture, transmission paths for iSCSI data streams between each of the three host computers and the storage devices are fixed and unchangeable. However, bandwidth requirements for different host computers or a single host computer at different time slots may be different. Existing network management methods cannot adjust the transmission path in real time according to current bandwidth availabilities and requirements, which is unable to achieve effective network resources utilization. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0005]    Implementations of the present technology will be described, by way of example only, with reference to the attached figures, wherein: 
           [0006]      FIG. 1  illustrates a diagrammatic view of one embodiment of a system for transmission path optimization; 
           [0007]      FIG. 2  illustrates a diagrammatic view of transmission paths; 
           [0008]      FIG. 3  illustrates a diagrammatic view of one embodiment of cumulative cost and associated I/O profiles corresponding to the transmission paths shown in  FIG. 2 ; and 
           [0009]      FIG. 4  illustrates a diagrammatic view of one embodiment of a method for transmission path optimization. 
       
    
    
     DETAILED DESCRIPTION 
       [0010]    It will be appreciated that for simplicity and clarity of illustration, where appropriate, reference numerals have been repeated among the different figures to indicate corresponding or analogous elements. In addition, numerous specific details are set forth in order to provide a thorough understanding of the embodiments described herein. However, it will be understood by those of ordinary skill in the art that the embodiments described herein can be practiced without these specific details. In other instances, methods, procedures, and components have not been described in detail so as not to obscure the related relevant feature being described. Also, the description is not to be considered as limiting the scope of the embodiments described herein. The drawings are not necessarily to scale and the proportions of certain parts may be exaggerated to better illustrate details and features of the present disclosure. 
         [0011]    It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean “at least one.” 
         [0012]    In general, the word “module” as used hereinafter, refers to logic embodied in computing or firmware, or to a collection of software instructions, written in a programming language, such as, Java, C, or assembly. One or more software instructions in the modules may be embedded in firmware, such as in an erasable programmable read only memory (EPROM). The modules described herein may be implemented as either software and/or computing modules and may be stored in any type of non-transitory computer-readable medium or other storage device. Some non-limiting examples of non-transitory computer-readable media include CDs, DVDs, BLU-RAY, flash memory, and hard disk drives. The term “comprising”, when utilized, means “including, but not necessarily limited to”; it specifically indicates open-ended inclusion or membership in a so-described combination, group, series and the like. 
         [0013]      FIG. 1  illustrates one embodiment of a system  2  for transmission path optimization. In the embodiment, the system  2  includes at least a host computer  10 , a switch  20 , a storage device  30 , an SAN Software Defined Networking (SDN) application  40  and an SDN controller  50 . The storage device  30  comprises a plurality of virtual disks  32 . 
         [0014]    The SAN SDN application  40  configures input/output (I/O) profiles for each virtual disk  32  of the storage device  30 . The storage device  30  connects to the SAN SDN application  40 . After validation, the storage device  30  downloads a set of I/O profiles for each virtual disk  32  from the SAN SDN application  40  and uses one of the I/O profiles as the first I/O profile. A profile manager (not shown in  FIG. 1 ) of the storage device  30  manages the set of I/O profiles and periodically downloads latest I/O profiles from the SAN SDN application  40 . 
         [0015]    The host computer  10  connects to the storage device  30  via at least one transmission path which is composed of one or more switches  20  to access a first virtual disk of the virtual disks  32 . For example,  FIG. 2  illustrates transmission paths between the host computer H 1  and the storage device S 1  where the host computer H 1  connects to the switch G 0 , while the storage device S 1  connects to switch XG 3 . There are seven different transmission paths, composed of one or more of the switches G 1 , G 2 , G 3 , XG 0 , XG 1 , and XG 2 , between the switch G 0  and the switch XG 3 . 
         [0016]    The storage device  30  analyzes iSCSI packets transmitted from the host computer  10  to the first virtual disk  32  and calculates I/O data of the first virtual disk  32 . In the embodiment, the I/O data comprises throughput and Input/Output Operations Per Second (IOPS). The storage device  30  determines whether SCSI commands in iSCSI packets are I/O commands, and, when the SCSI commands are I/O commands, accumulates the number of the I/O commands and the amount of the I/O data to calculate the throughput and the IOPS. 
         [0017]    Then, the storage device  30  determines whether to change the first I/O profile of the first virtual disk  32  according to the analysis. Each of the I/O profiles is configured with different ranges of throughput and IOPS corresponding to different I/O levels, such as high, medium and low. In the embodiment, the storage device  30  compares calculated I/O data with I/O data of all the I/O profiles of the first virtual disk  32  at time intervals to find a second I/O profile which matches with the first virtual disk  32 . The storage device  30  can determine to change the first I/O profile of the first virtual disk  32  when the second I/O profile is different from the first I/O profile. 
         [0018]    The storage device  30  commands the SAN SDN application  40  to change the first I/O profile to the second I/O profile. 
         [0019]    The SAN SDN application  40  commands the SDN controller  50  to optimize one of the at least one transmission path between the host computer  10  and the first virtual disk  32  based on the second I/O profile. The SDN controller  50  finds all the transmission paths between the host computer  10  and the first virtual disk  32  and calculates the measurement values (metrics) of each of the transmission paths. In the embodiment, the metrics can be calculated by link state routing protocol. The link state routing protocol is implemented by the Open Shortest Path First (OSPF) algorithm or the Enhanced Interior Gateway Routing Protocol (EIGRP). For example, the OSPF algorithm uses link cost as the metrics. In a network section, a faster speed and a greater bandwidth will reduce the link cost, which may be calculated out. The SDN controller  50  selects a first transmission path from all the transmission paths, which is the optimal transmission path for the second I/O profile, according to path lengths, metrics, and load balances of each of the transmission paths. 
         [0020]    Referring to  FIG. 2 , for example, the switches G 0 ˜G 3  are GbE switches and the switches XG 0 ˜XG 3  are 10 GbE switches. The link cost of the GbE switch is 10 and the link cost of the 10 GbE switch is 1.  FIG. 3  illustrates one embodiment of cumulative cost and associated I/O profiles corresponding to the transmission paths shown in  FIG. 2 . For example, the cumulative cost of the transmission path G 0 -XG 0 -XG 1 -XG 2 -XG 3  is equal to 13(10+1+1+1), the associated I/O profiles include 7, 8, and 9. According to the calculation in  FIG. 3 , the SDN controller  50  can select the first transmission path between the host computer H 1  and the storage device S 1 . 
         [0021]    After the SDN controller  50  optimizes one of the at least one transmission path, the iSCSI packets sent by the host computer  10  are transmitted to the storage device  30  via the first transmission path. 
         [0022]      FIG. 4  illustrates one embodiment of a method for transmission path optimization. 
         [0023]    At block  10 , the storage device  30  connects to the SAN SDN application  40 . After validation, the storage device  30  downloads a set of I/O profiles for each virtual disk  32  from the SAN SDN application  40 . 
         [0024]    At block  12 , the host computer  10  connects to the storage device  30  via at least one transmission path which is composed of one or more switches  20  to access the first virtual disk  32 . 
         [0025]    At block  14 , the storage device  30  analyzes the iSCSI packets transmitted from the host computer to the first virtual disk  32  and calculates I/O data of the first virtual disk  32 . In the embodiment, the I/O data comprises throughput and IOPS. The storage device  30  determines whether SCSI commands in the iSCSI packets are I/O commands, and, when the SCSI commands are the I/O commands, accumulates the number of the I/O commands and the amount of the I/O data to calculate the throughput and the IOPS. 
         [0026]    At block  16 , the storage device  30  can determine to change the first I/O profiles of the first virtual disk  32  according to the analysis. Each of the first I/O profiles is configured with different ranges of throughput and the quantity of the IOPS corresponding to different I/O levels, such as high, medium and low. In the embodiment, the storage device  30  compares calculated I/O data with the I/O data of the first I/O profiles of the first virtual disk  32  at time intervals to find the second I/O profiles. The storage device  30  determines to change the first I/O profiles of the first virtual disk  32  when the second I/O profiles are different from the first I/O profiles. When the first I/O profiles of the virtual disk  32  need to be changed, method proceed to step S 18 . If change not required, method return to step S 14 . 
         [0027]    At block  18 , the storage device  30  commands the SAN SDN application  40  to change the first I/O profiles to the second I/O profiles. 
         [0028]    At block  20 , the SAN SDN application  40  commands the SDN controller  50  to optimize one of the at least one transmission path between the host computer  10  and the first virtual disk  32  based on the second I/O profile. The SDN controller  50  finds all of the transmission paths between the host computer  10  and the first virtual disk  32 , and calculates the metric of each of the transmission paths. In the embodiment, the metrics may be calculated by link state routing protocol. The link state routing protocol is implemented by the OSPF or the EIGRP algorithms. For example, the OSPF algorithm can use link cost as the metrics. In a network section, faster speed and greater bandwidth decrease link cost, which may be calculated. The SDN controller  50  selects the first transmission path from all of the transmission paths for the second I/O profile according to path lengths, metrics and load balances of each of the transmission paths. 
         [0029]    At block  22 , the iSCSI packets sent by the host computer  10  are transmitted to the storage device  30  via the first transmission path. 
         [0030]    It should be emphasized that the above-described embodiments of the present disclosure, including any particular embodiments, are merely possible examples of implementations, set forth for a clear understanding of the principles of the disclosure. Many variations and modifications can be made to the above-described embodiment(s) of the disclosure without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.