Patent Publication Number: US-10333837-B2

Title: Virtual network switch system and method of constructing the same

Description:
FIELD 
     The subject matter herein generally relates to virtual network switch system. 
     BACKGROUND 
     In order to meet different network environments, IEEE 802.3 working group published several standards relating to 10 GbE, 40 GbE, and 100 GbE that lead the network interface card (NIC) interface connectors to be redesigned according to a variety of connectivity specifications. Most of switches only support one or two kinds of NIC interface connectors. Put multiple NIC interface connectors together can be difficult if the NIC interface connectors relate to more than two different connectivity specifications. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Implementations of the present technology will now be described, by way of example only, with reference to the attached figures. 
         FIG. 1  is a diagram of an exemplary embodiment of a virtual network switch system. 
         FIG. 2  is a diagram of an another exemplary embodiment of the virtual network switch system. 
         FIG. 3  is a block diagram of an exemplary embodiment of the virtual network switch system of  FIG. 1 . 
         FIG. 4  is a flow diagram of an exemplary embodiment of a method for building the virtual network switch system of  FIG. 1 . 
     
    
    
     DETAILED DESCRIPTION 
     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. 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”. 
     Several definitions that apply throughout this disclosure will now be presented. 
     The term “coupled” is defined as connected, whether directly or indirectly through intervening components, and is not necessarily limited to physical connections. The connection can be such that the objects are permanently connected or releasably connected. The term “comprising,” when utilized, means “including, but not necessarily limited to”; it specifically indicates open-ended inclusion or membership in the so-described combination, group, series, and the like. 
       FIG. 1 - FIG. 3  illustrate a virtual network switch system  100  in accordance with the exemplary embodiments in the present disclosure. 
     Referring to  FIG. 3 , the virtual network switch system  100  can comprise at least one storage unit  11  and at least one processor  12 . The virtual network switch system  100  can further include a plurality of modules, such as a building module  13 , a mapping module  14 , a determining module  15 , and a control module  16 . The modules  13 - 16  can include one or more software programs in the form of computerized codes stored in the storage unit  11 . The computerized codes can include instructions that can be executed by the processor  12  to provide functions for the modules  13 - 16 . 
     In one exemplary embodiment, the virtual network switch system  100  can operate in a server  1  as shown in  FIG. 1 . The server  1  is coupled to a plurality of physical network interface cards (NICs). 
     The building module  13 , in  FIG. 3 , is configured to receive a command and build a virtual switch  40  as shown in  FIG. 2 , a plurality of virtual servers, and a plurality of virtual NICs in the server  1  according to the command. The plurality of virtual NICs can communicate with the plurality of physical NICs through the virtual switch  40 . 
     In one exemplary embodiment, as shown in  FIG. 2 , the plurality of physical NICs in this exemplary embodiment comprises four physical NICs,  2   a  to  2   d.  The physical NICs  2   a  to  2   d  can comprise one or more connectivity specifications and one or more transmission rates. The plurality of virtual servers in this exemplary embodiment comprises four virtual servers  50   a  to  50   d.  The plurality of virtual NICs in this exemplary embodiment comprises four virtual NICs,  60   a  to  60   d.    
     The virtual network switch system  100  is coupled to a plurality of network devices. The plurality of network devices in this exemplary embodiment comprises four network devices,  3   a  to  3   d  as shown in  FIG. 1 . The virtual network switch system  100  can operate as a network switch to communicate with the network devices  3   a  to  3   d.  The virtual network switch system  100  can supply network services to over more than two different NIC connectivity specifications. 
     For example, where the virtual NICs  60   a  to  60   d  comprise four different NIC connectivity specifications, the virtual network switch system  100  can operate to serve four different NIC connectivity specifications. 
     In one exemplary embodiment, the network devices  3   a  to  3   d  can comprise switches, computers, or servers &lt;not shown&gt;. One or more physical NICs can be installed in each of the network devices  3   a  to  3   d.  The physical NIC  2   a  can be installed in the network device  3   a,  the physical NIC  2   b  can be installed in the network device  3   b,  the physical NIC  2   c  can be installed in the network device  3   c,  and the physical NIC  2   d  can be installed in the network device  3   d.    
     For example, a transmission rate of the physical NIC  2   a  can be 1 GB/s. A transmission rate of the physical NIC  2   b  can be 10 GB/s. A transmission rate of the physical NIC  2   c  can be 40 GB/s. A transmission rate of the physical NIC  2   d  can be 100 GB/s. 
     In one exemplary embodiment, the building module  13  can build the virtual servers  50   a  to  50   d  and the virtual NICs  60   a  to  60   d  in the server  1  according to a kernel virtual machine (KVM) technology. 
     When the building module  13  builds the virtual servers  50   a  to  50   d  in the server  1 , the server  1  distributes available CPU core and available memory to each of the virtual servers  50   a  to  50   d.  The building module  13  can build the virtual switch  40  in the server  1  according to an open flow protocol. 
     In one exemplary embodiment, the building module  13  is further configured to analyze a network service requirement of the command and build the virtual switch  40 , the virtual servers  50   a  to  50   d,  and the virtual NICs  60   a  to  60   d  in the server  1  according to the network service requirement. 
     For example, the building module  13  analyzes the network service requirement for a file transfer protocol (FTP) service, a pre-boot execution environment (PXE) service, a file service, and a domain name server (DNS) service. Then, the building module  13  needs to build an FTP virtual server ( 50   a ), a PXE virtual server ( 50   b ), a file virtual server ( 50   c ), and a virtual DNS ( 50   d ). 
     The mapping module  14  is configured to build a mapping relation between the virtual server  1   a  and at least one virtual NIC according to network requirement of the virtual server  1   a.  For example, the mapping module  14  builds a mapping relation between the virtual server  1   a  and the virtual NIC  60   a  according to the network requirement of the virtual server  1   a,  and transmits an access request of the virtual NIC  60   a  to the physical NIC  2   a  through the virtual switch  40 . 
     In one exemplary embodiment, the physical NIC  2   a  is matched with the virtual NIC  60   a,  the physical NIC  2   b  is matched with the virtual NIC  60   b,  the physical NIC  2   c  is matched with the virtual NIC  60   c,  and the physical NIC  2   d  is matched with the virtual NIC  60   d.    
     In one exemplary embodiment, the mapping module  14  also can build a mapping relation between the virtual server  1   b  and at least one virtual NIC according to network requirement of the virtual server  1   b.    
     The virtual server  50   a  may need two physical NICs  2   a  and  2   b  to transmit or receive data according to the network requirement of the virtual server  50   a.  The mapping module  14  builds mapping relations between the virtual server  50   a  and the two virtual NICs  60   a  and  60   b.  The mapping module  14  transmits a first access request of the virtual NIC  60   a  to the physical NIC  2   a  and a second access request of the virtual NIC  60   b  to the physical NIC  2   b  through the virtual switch  40 . When the virtual NIC  60   a  accesses the physical NIC  2   a  and the virtual NIC  60   b  accesses the physical NIC  2   b,  the virtual server  50   a  can communicate with the physical NICs  2   a  and  2   b.    
     In one exemplary embodiment, the number of the virtual NICs is greater than the number of the virtual servers. 
     In one exemplary embodiment, the mapping module  14  is further configured to calculate a network transmission rate of each of the virtual servers  50   a  to  50   d  according to the network requirement of each of the virtual servers  50   a  to  50   d.  The mapping module  14  selects a physical NIC from the physical NICs  2   a  to  2   d  to match each of the virtual servers  50   a  to  50   d  according to the network transmission rate of each of the virtual servers  50   a  to  50   d.    
     For example, the mapping module  14  builds a mapping relation between the virtual server  50   a  and the virtual NIC  60   a  and calculates a network transmission rate of the virtual server  50   a  according to the network requirement of the virtual server  50   a.  When the network transmission rate of the virtual server  50   a  is less than 1 GB/s, the physical NIC  2   a  (1 GB/s) can meet the network requirement of the virtual servers  50   a.  The mapping module  14  transmits the access request of the virtual NIC  60   a  to the physical NIC  2   a  through the virtual switch  40 . When the network transmission rate of the virtual server  50   a  is greater than 10 GB/s and less than 40 GB/s, the physical NIC  2   c  (40 GB/s) can meet the network requirement of the virtual server  50   a.  The mapping module  14  transmits the access request of the virtual NIC  60   a  to the physical NIC  2   c  through the virtual switch  40 . 
     For example, the mapping module  14  builds a first mapping relation between the virtual server  50   a  and the virtual NIC  60   a  and a second mapping relation between the virtual server  50   a  and the virtual NIC  60   b.  When the network transmission rate of the virtual server  50   a  is greater than 100 GB/s and less than 110 GB/s, the physical NIC  2   b  (10 GB/s) and the physical NIC  2   d  (100 GB/s) together meet the network requirement of the virtual servers  50   a.  The mapping module  14  transmits a first access request of the virtual NIC  60   a  to the physical NIC  2   b  and a second access request of the virtual NIC  60   b  to the physical NIC  2   d  through the virtual switch  40 . 
     When the physical NIC  2   a  receives an access request outputted by the virtual NIC  60   a,  the determining module  15  is configured to determine whether an available resource of the physical NIC  2   a  is less than a predetermined value. When the available resource of the physical NIC  2   a  is greater than the predetermined value, the control module  16  is configured to control the physical NIC  2   a  to allow access by the virtual NIC  60   a.  Then, the physical NIC  2   a  can communicate with the virtual NIC  60   a.    
     When the available resource of the physical NIC  2   a  is less than the predetermined value, the control module  16  is configured to control the physical NIC  2   a  to not allow access by the virtual NIC  60   a  and outputs an alarm. That is, the control module  16  is configured to control the physical NIC  2   a  to reject access by the virtual NIC  60   a.  An administrator can add a new physical NIC  2   a  into the virtual network switch system  100  to meet a requirement of the virtual NIC  60   a  according to the alarm. 
     In one exemplary embodiment, when the available resource of the physical NIC  2   a  is less than the predetermined value, the mapping module  30  is further configured to transmit the access request of the virtual NIC  60   a  to the physical NIC  2   b  through the virtual switch  40 . When the available resource of the physical NIC  2   b  is greater than the predetermined value, the control module  16  controls the physical NIC  2   b  to allow access by the virtual NIC  60   a.  When the available resource of the physical NIC  2   b  is less than the predetermined value, the control module  16  controls the physical NIC  2   b  to not allow access by the virtual NIC  60   a  and outputs the alarm. Then, if the transmission rate of the physical NIC  2   a  is insufficient, the virtual NIC  60   a  can try to access other physical NICs  2   b  to  2   d.    
     In one exemplary embodiment, when the physical NIC  2   b  receives an access request transmitted by the virtual NIC  60   a,  the determining module  15  also can determine whether an available resource of the physical NIC  2   b  is less than a predetermined value. When the available resource of the physical NIC  2   b  is greater than the predetermined value, the control module  16  controls the physical NIC  2   b  to allow access by the virtual NIC  60   a.    
     In one exemplary embodiment, the predetermined value can be twenty percent of a total resource of the physical NIC. When the available resource of the physical NIC  2   a  is less than the predetermined value, the physical NIC  2   a  is operating in a congested state. 
     In one exemplary embodiment, access by the virtual NIC  60   a  to the physical NIC  2   a  is according to a single root I/O virtualization (SR-IOV). 
     In one exemplary embodiment, each of the physical NICs  2   a  to  2   d  can allow one or more virtual NICs to access at the same time. For example, when the physical NIC  2   a  is matched to the virtual NICs  60   a  and  60   b  and the physical NIC  2   a  has enough available resource, the physical NIC  2   a  allows the virtual NICs  60   a  and  60   b  to access at the same time. 
     In one exemplary embodiment, when the network requirement of each of the virtual servers  50   a  to  50   d  is changed, each of the virtual servers  50   a  to  50   d  can communicate with different physical NICs. 
     For example, the virtual server  50   a  comprises three operating states, each operating state corresponds to different network requirements. When the virtual server  50   a  operates in a first operating state, the virtual server  50   a  communicates with the physical NIC  2   a.  When the virtual server  50   a  operates in a second operating state, the virtual server  50   a  communicates with the physical NIC  2   b.  When the virtual server  50   a  operates in a third operating state, the virtual server  50   a  communicates with the physical NIC  2   d.    
       FIG. 4  illustrates one exemplary embodiment of a method for building the virtual network switch system  100 . The flowchart presents an example embodiment of the method. The example method is provided by way of example, as there are a variety of ways to carry out the method. The method described below can be carried out using the configurations illustrated in  FIG. 3 , for example, and various elements of these figures are referenced in explaining the example method. Each step shown in  FIG. 4  represents one or more processes, methods, or subroutines, carried out in the example method. Furthermore, the illustrated order of steps is illustrative only and the order of the steps can change. Additional steps can be added or fewer steps may be utilized, without departing from this disclosure. The example method can begin at step  400 . 
     In step  400 , the building module  13  receives a command and builds the virtual switch  40 , the plurality of virtual servers  50   a  to  50   d,  and the plurality of virtual NICs  60   a  to  60   d  in the server  1  according to the command. 
     In step  402 , the mapping module  14  builds a mapping relation between the virtual server  50   a  and at least one virtual NIC (virtual NIC  60   a  for example) according to network requirement of the virtual server  50   a.    
     In step  404 , the mapping module  14  transmits an access request of the virtual NIC  60   a  to the physical NIC  2   a  through the virtual switch  40 . The physical NIC  2   a  is matched with the virtual NIC  60   a.    
     In step  406 , the determining module  15  determines whether an available resource of the physical NIC  2   a  is less than a predetermined value. 
     In step  408 , the control module  16  controls the physical NIC  2   a  to allow access by the virtual NIC  60   a  in response to the available resource of the physical NIC  2   a  being greater than the predetermined value. 
     In step  410 , the control module  16  controls the physical NIC  2   a  to not allow access by the virtual NIC  60   a  and outputs an alarm in response to the available resource of the physical NIC  2   a  being less than the predetermined value. 
     Detailed descriptions and configurations of the virtual server  50   b,  the virtual server  50   c,  and the virtual server  50   d,  being substantially the same as for those of the virtual server  50   a,  are omitted. 
     In one exemplary embodiment, the building module  13  further analyzes a network service requirement of the command and builds the virtual switch  40 , the virtual servers  50   a  to  50   d,  and the virtual NICs  60   a  to  60   d  in the server  1  according to the network service requirement. 
     In one exemplary embodiment, the mapping module  14  further calculates a network transmission rate of the virtual server  50   a  according to the network requirement of the virtual server  50   a.  The mapping module  14  selects a physical NIC from the physical NICs  2   a  to  2   d  to match the virtual server  50   a  according to the network transmission rate of the virtual server  50 . 
     In one exemplary embodiment, the physical NICs  2   a  to  2   d  can comprise one or more connectivity specifications and one or more transmission rates. 
     In one exemplary embodiment, when the available resource of the physical NIC  2   a  is less than the predetermined value, the mapping module  30  is further configured to transmit the access request of the virtual NIC  60   a  to the physical NIC  2   b  through the virtual switch  40 . When the available resource of the physical NIC  2   b  is greater than the predetermined value, the control module  16  controls the physical NIC  2   b  to allow access by the virtual NIC  60   a.  A transmission rate of the physical NIC  2   a  is less than a transmission rate of the physical NIC  2   b.  Then, if the transmission rate of the physical NIC  2   a  is insufficient, the virtual NIC  60   a  can try to access other physical NICs  2   b  to  2   d.    
     The exemplary embodiments shown and described above are only examples. Many such details are neither shown nor described. Even though numerous characteristics and advantages of the present technology have been set forth in the foregoing description, together with details of the structure and function of the present disclosure, the disclosure is illustrative only, and changes may be made in the detail, including in matters of shape, size, and arrangement of the parts within the principles of the present disclosure, up to and including the full extent established by the broad general meaning of the terms used in the claims. It will therefore be appreciated that the exemplary embodiments described above may be modified within the scope of the claims.