WO2017107127A1 - Method and system for optimisation of virtual network functions under network function virtualisation environment - Google Patents
Method and system for optimisation of virtual network functions under network function virtualisation environment Download PDFInfo
- Publication number
- WO2017107127A1 WO2017107127A1 PCT/CN2015/098660 CN2015098660W WO2017107127A1 WO 2017107127 A1 WO2017107127 A1 WO 2017107127A1 CN 2015098660 W CN2015098660 W CN 2015098660W WO 2017107127 A1 WO2017107127 A1 WO 2017107127A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- fitness
- function
- vnf
- population
- configuration
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Definitions
- the present invention relates to the implementation of computer network functionality and, in particular, the implementation of such functionality in software. More particularly still, the invention relates to the implementation of virtual Network Functions (VNFs) under a Network Functions Virtualisation (NVF) environment, and also to the optimisation of such implementations.
- VNFs virtual Network Functions
- NVF Network Functions Virtualisation
- NFV is a means for visualising and implementing software network architectures.
- an end-to-end network service can be defined as a forwarding graph of network functions and end points/terminals.
- FIG. 1 illustrates an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware.
- base stations (BS) 1 can provide certain communications capabilities via software implementations of functions such as LTE virtual bases stations (vBS LTE) 5, 3G virtual base stations (vBS 3G) 7, 2G virtual base stations (vBS 2G) 9 and WiMax virtual base stations (vBS WiMax) 11 that run on hardware devices 13.
- LTE virtual bases stations vBS LTE
- vBS 3G 3G virtual base stations
- vBS 2G 2G virtual base stations
- WiMax WiMax virtual base stations
- CDN content delivery network
- the CDN can communicate with the BS 1 to provide communications with, for example, home and enterprise networks 21, fixed axis networks 23 (for communication with homes 27 and offices 25) and with mobile core networks 19 and mobile IP networking systems 29.
- each of these systems 21, 23, 29, 19 can also be provided via software implementations running on hardware 13.
- this can provide Asymmetric digital subscriber lines ASDL 31, Very-high-bit-rate digital subscriber line (VDSL) 33 and/or communications operating on ITU-T or G standards (ITU-T/G) 35.
- VDSL Very-high-bit-rate digital subscriber line
- ITU-T/G G standards
- RGW residential gateways
- NAT Network address translation
- set-top box functionality 41 can be provided via software implementations running on hardware 13.
- CSCF Call Session Control Function
- SGW signalling gateway
- MME mobility management entity
- DNS domain name server
- DHCP Dynamic Host Configuration Protocol
- firewalls 53 can be provided via software implementations running on hardware 13.
- CSCF 43, MME 47, DHCP 51 can also be provided, as can packet data network gateways (PGW) 55, App servers 57 and load balancing 59.
- PGW packet data network gateways
- the service can be visualised as a forwarding graph that starts at an LTE vBS 5 (represented in the forwarding graph as 63) .
- This communicates with an MME 47 in the core mobile network 19 (represented in the forwarding graph as 65) and then an SGW 45 in the core mobile network 19 (represented in the forwarding graph as 67) .
- the service communicates with a PGW 55 in the mobile IP networking system 29 (represented in the forwarding graph as 69) and an App server in the mobile IP networking system 29 (represented in the forwarding graph as 71) .
- VNF forwarding graphs provide a simple method of visualising services provided via networks. Moreover, such graphs can aid in the provision of networking functionality, for example as an aid to identifying suitable physical locations for the virtual technologies involved in providing the service.
- VNF forwarding graph selected from one service provided by one particular type of networking system.
- Other forwarding graphs representing other services can also be generated, and such graphs need not be merely linear as depicted in figure 1, for example additional branches may occur.
- FIG. 2 illustrates a simple generalised example of a network service implemented using VNFs 102, 104, 106. These can correspond to any of the VNFs listed in respect of figure 1, or indeed any other VNF. As illustrated in figure 2, the VNFs 102, 104, 106 are in communication via infrastructure an network 114. End points 100 and 108 of the architecture represent the service end points, such as for example a user terminal connected to the BS 1 and/or a processing device in a house 27 of figure 1.
- VNF scheduling/deployment and relevant algorithms are important considerations for NFV.
- optimised solution would have the lowest combination of communication/computation costs as defined by some metric (s) .
- the method provides a means by which a configuration of VNFs, that is in some sense optimised with respect to its resource usage, can be derived.
- the computational resources depend on the computational costs related to the number and type of VNFs that are configured to run on each server in a configuration.
- the method can take into account the computation costs associated with implementing each VNF when deriving the optimal solution.
- the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration.
- the method can take into account the costs associated with deploying VNFs across a plurality of communicating servers when deriving the optimal solution.
- the possible configurations are constrained by the maximum computational resource of each of the plurality of servers, such that a configuration is excluded from the set of possible configurations if a maximum resource of any of the plurality of servers is exceeded by that configuration.
- the method can easily eliminate configurations from consideration if the available computing resources could not support such configurations.
- the second population comprises members of the first population that are altered by at least one of a cross-over function and a mutation function.
- the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF.
- the genetic algorithm is applied iteratively and terminated when an exit condition is satisfied, wherein the exit condition comprises one or more of:
- the genetic algorithm can be ended at a suitable point to avoid consuming processing time when little benefit would arise from the processing.
- the fitness function takes the form of:
- I the number of each VNF type, indexed by i;
- M the number of VNF service chains, indexed by m;
- Lm the number of VNF in a service chains, indexed by l;
- N the number of servers in an infrastructure layer, indexed by n;
- ⁇ i is the additional resource cost for VNF type i.
- the possible configurations are constrained by a function of the form:
- C n is the maximum resource of server n, represented by cost
- ⁇ 1 is the workload of the 1 th VNF in service chain m, represented by cost.
- each configuration is represented by a matrix such that:
- a column exists for each server that is available for use in implementing the configuration.
- a simple matrix description of a configuration can be used. Such a description can easily be applied to a genetic algorithm using known methods.
- each element in the matrix is a binary indicator indicating either the presence or absence of a particular VNF on a particular server, and wherein each row in the matrix has one element indicating such a presence.
- the binary indicators can be 1 and 0 and can easily be implemented using computing means.
- the limitation of one entry per row being equal to 1 i.e. indicating the presence of the VNF provides a simple means by which some configurations that are not suitable for application can be eliminated.
- the mutation function is such that each row in the matrix retains a single element indicating a presence of the particular VNF related to that row.
- a processing apparatus for determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:
- a computer program product comprising computer readable instructions which, when implemented on a processor perform all of the steps of the method of the first aspect, and a computer readable medium comprising such a computer program.
- Figure 1 illustrates known an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware;
- Figure 2 illustrates a simplified example of a network forwarding graph
- FIG. 3 illustrates examples of service chains implemented using VNFs
- Figure 4 illustrates a flow chart of a method according to an embodiment
- Figure 5 illustrates an example of a matrix representation of a configuration of VNFs
- Figure 6 illustrates an example of applying a cross-over function to matrices
- Figure 7 illustrates an example of applying a mutation function to a matrix.
- Figure 3 illustrates examples of VNFs being used to implement service chains in a network environment.
- the service chains illustrated in figure 3 are for example purposes only, and indeed illustrate only some possible example of how such service chains can be implemented.
- any service chain can be implemented using different VNFs in different configurations, and there is no particular limitation on the number or type of VNFs employed or in the manner in which such VNFs are connected to one another.
- all of the service chains of figure 1 could be implemented in such a manner.
- VNFs 301, 303, 305 are employed when implementing two different service chains, these are VNF1 301, VNF2 303 and VNF3 305.
- the skilled person will recognise that the functionality of these VNFs is not of importance for the example.
- the VNFs are illustrated as being implemented on two different physical servers 311, 313. Again, the skilled person will understand that this is for illustrative purposes only, and a greater or smaller number of servers can be employed for such purposes.
- the first example in figure 3, on the left of the figure illustrates one possible implementation of two service chains.
- VNF1 301 and VNF3 305 are running on a first server 311, while VNF2 is running on a second server 313.
- a first service chain 307 entails a traversal order from VNF1 301 to VNF2 303, while a second service chain 309 entails a traversal order from VNF1 301 to VNF2 303 and then on to VNF3 305. Since VNF1 301 is located on server1 311, and VNF2 303 is located on server2 313, service chainl 307 entails communications via a network (not illustrated) between these servers, termed here as a communication “hop” .
- service chain2 309 entails two such communication hops, one from VNF1 301 on server1 311 to VNF2 on server2 313, and a second from VNF2 303 on server2 313 to VNF3 305 on server1 311.
- the second example, the middle diagram in figure 3 illustrates a different possible implementation of the same two service chains 307, 309.
- VNF1 301 and VNF2 are both running on server1 311, while VNF3 is running on server2 313.
- VNF1 301 and VNF2 303 are both on the same server, there is no communications hop required in service chainl 307 since all communications are within the same physical server.
- communications between VNF1 301 and VNF2 303 require no communications hop while communications on to VNF3 305 do require such a hop.
- this second example implementation of the two service chains will have different communication ‘costs’ in comparison to the first implementation since the first example requires 3 communications hops in total whereas the second requires only one.
- VNF1 301 and VNF2 are again both running on server1 311. However, on server2 313 in addition to VNF3 305, second instances of VNF1 315 and VNF2 317 are also running. Thus, as with the second example, service chain 1 307 requires no communication hops. In addition, service chain2 309 also requires no communication hops. Thus, in this third example implementation, very low communication costs are incurred.
- the overall ‘cost’ of implementing the service chains 307, 309 in each implementation will be the combination of the communications costs and the computing costs required for the particular implementation.
- Lm the number of VNF in a service chains, indexed by 1.
- S m represents the position (i.e. on which server) of each VNF in the service chain.
- K resource allocation patterns indexed by k, where:
- n1 and n2 represent respectively server1 and server2.
- the communication cost from server1 to server2 equals that from server2 to server1.
- ⁇ can be made to be dependent on the direction of communication.
- ⁇ i is the additional resource cost for VNF type i.
- ⁇ represents the computational cost of running a particular VNF. This is in general composed of two components, a processing cost and a memory cost, with the overall value of ⁇ being the combination of these components.
- VNF1 is shared by service chain 1 and service chain 2.
- VNF1 and VNF2 are shared by service chain 2 and service 2.
- no VNFs are shared by service chains.
- VNF1 and VNF2 are each deployed on both servers, and so the processing costs and memory costs for VNF1 or VNF2 in the right hand example are higher than it in the other examples.
- ⁇ i for the right hand example will be higher than that for the other two examples.
- C n is the maximum resource of server n, represented by cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
- ⁇ 1 is the workload of the 1 th VNF in service chain m, represented by cost.
- the skilled person will understand that the workload in a service chain will tend to vary over time, dependent on current usage, and so, this is workload is actually either a typical workload assigned to a service, or some function of the maximum workload that is assigned.
- equation (1) is representative of the communication costs associated with an implementation (i.e. is dependent on ⁇ ) and the second term is representative of the ‘virtual machine” cost (i.e. is dependent on ⁇ ) .
- the optimisation target is constrained by the following constraint function:
- the presently described embodiment of the invention thus relates to method of determining a solution that provides a minimisation of the optimisation target expression when constrained by the constraint function. This solution is then used to describe VNF deployment in servers for the service (s) in question.
- the described embodiment employs a genetic algorithm, which comprises the following steps:
- VNFs *Servers ⁇ randomly generating matrixes
- the invention optimises the total cost including communication and resource cost of VNFs with the restriction conditions through the genetic algorithm.
- Step S101 obtaining individual fitness expressions
- the individual fitness expression in equation (1) should be converted to be negative, or the reciprocal of the optimisation target.
- the expression for the optimisation target given above can be expressed as either:
- Step S103 generating an initial population
- FIG. 5 An example of a VNF deployment matrix is shown in Figure 5.
- the elements of this matrix each represent the position of one of the VNFs of a service chain on the servers that are available. Thus, the value of each element is either 0 or 1. If the element a ij is 1, then it indicates that the VNF in the i th row is deployed in Server j . Conversely if the element is 0, then this means that the VNF in the i th row is not deployed in Server j .
- the skilled person will recognise that there will in general be a limitation to each matrix in that one row has one element equal to 1.
- the columns of the matrix represent the VNFs in all of the service chains.
- duplicate VNFs in different service chains are allowed, as is illustrated in the examples shown in figure 3.
- the size of the matrices in a particular problem is determined by the number of servers and VNFs, and that there is no particular limit to the size. Rather, a larger matrix size merely indicates that the problem has a greater number of possible solutions and so a higher complexity.
- Each matrix represents one candidate solution of VNF deployment and, in terms of the genetic algorithm, one genome (individual) .
- one genome is composed of N ‘chromosomes’ a nd the length of each chromosome is, in the present embodiment, the total length of all services chains.
- the initial population i.e. the initial set of matrices
- the matrices are generated using techniques other than random techniques. For example, in some embodiments, partial or complete patterns of previously derived or implemented service chains can be input to some members of the initial population. Such embodiments can have an advantage in that a population that is similar to solutions that have previously been seen to be successful can be employed as the initial population, thereby ensuring that members of the initial population are close to a likely solution, and thus potentially limiting the number of iterations of the genetic algorithm that are needed.
- certain possible matrices are excluded from selection in a population. This can, for example, be on the basis of some known problem with these possible matrices.
- the size of initial population is in general related to the scale of the optimisation problem. Generally, the more complex problem needs greater population size.
- the size of initial population can be set to a random number or a constant value with experience, for example 64 or 128. This size is related to the scale of VNF deployment. The skilled person will recognise that there is a trade-off in that a bigger initial population size will result in a greater search space and less iterations before convergence however the calculations required will require a greater computational power. Conversely a smaller initial population size requires less computational power but is more likely to cause the algorithm to converge to a local optimised point rather than the global optimum.
- Step S105 computing individual fitness expression and choosing the population
- the individual fitness expression from equation (3) or (4) is calculated for each member of the population present in the current generation. In the case of the first iteration, this corresponds to each member of the initial population.
- each individual is effectively assigned a slice of a roulette wheel proportional in area to the individual’s particular fitness value.
- the wheel is then ‘spun’a number of times and individuals are selected on the basis of the result i.e. where the roulette ball ‘lands’ .
- the number of time that the roulette wheel is spun is equal to the desired population for the next generation. For this purpose, it is usually (but not necessarily) assumed that an individual is not permitted to be selected more than once for inclusion in a particular generation.
- the selection can be merely a fraction of the previous generation based on their individual fitness (e.g. the top 50%) .
- certain possible matrices are excluded from selection the next generation. This can, for example, be on the basis of some known problem with these possible matrices.
- the size of the population is maintained for each iteration.
- Step S 103 if some individuals are discarded because they don’t meet constraint condition (equation (2) ) , Step 103 and Step 105 will be executed repeatedly in sequence to ensure that the initial size of the population is maintained.
- the population size is allowed to vary between iterations of the algorithm.
- Step S107 verifying the exit condition
- exit conditions can be applied, either in the form of a Boolean OR or AND function.
- choice of exit condition or conditions can be determined by the time taken to execute the algorithm.
- a further exit condition e.g. related to a maximum number of iterations could additionally be applied to ensure that the algorithm stopped within a reasonable time period.
- step S1 13 wherein the optimisation result is output and the algorithm ends. This is described in further detail below. Otherwise, the algorithm continues to execute step S109 and S111, and subsequently back to S 103 to enter the next generation of the algorithm.
- crossover is a genetic operator used to vary the programming of a chromosome or chromosomes from one generation to the next.
- one-point crossover is employed, as illustrated in figure 6.
- the matrices of two parents are selected for the crossover function.
- Each matrix is cut by a line, and the four resulting parts are swapped between the two parent matrices to rebuild two children.
- a first parent formed is cut into two parts, a 1 and a 2 .
- the second parent is cut into two parts b 1 and b 2 .
- the children matrices are generated such that one comprises a 1 and b 2 while the other comprises a 2 and b 1 .
- the skilled person will recognise that in performing this operation it is in generally necessary to form child matrices in the same manner as the parent matrices from which they are formed. Therefore, as illustrated in figure 6 since a 1 forms a top half of a first parent matrix, it must also form a top half of a child matrix.
- the position of the cutting line is determined at random. This kind of crossover operation can help to ensure that the children comply with the limitation to the matrix (i.e. that one row has one element equal to 1) .
- the probability of a parent being selected to be used in the crossover process is set to be a function of the individual fitness value of the parent.
- fitter individuals from one generation will contribute proportionately more to the next generation than will individuals of lower fitness.
- the skilled person will recognise that there many fitness proportionate selection schemes that can be used for such a selection.
- the “roulette wheel” selection is employed in the same manner as for the selection of individuals for inclusion in a subsequent generation.
- the same part of a parent matrix can be used in more than one child matrix and/or child matrices can be formed from more than two parent matrices.
- Mutation is a genetic operator used to maintain genetic diversity from one generation of a population of genetic algorithm chromosomes to the next.
- the probability of mutating an individual can be set to a random number or a constant fraction of the population.
- a constant fraction is employed and this is typically set in the range 0.05-0.07 of the population of a generation.
- the fraction selected will tend to impact on the performance of the algorithm such that, if the mutation rate is too large the genetic algorithm may not converge in a reasonable time period. Conversely, if the probability of mutation is too small, then the genetic algorithm convergence may tend to fall into local (rather than global) optimisation.
- the mutation probability is set to a random fraction of the population.
- either crossover (S109) or mutation (S111) are employed, rather than both as per the currently described embodiment.
- Step S113 outputting the optimisation result
- step S113 the individual (i.e. one VNF deployment matrix) having the highest fitness found over all iterations of the algorithm is output as the final result.
- Embodiments can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which-when loaded in an information processing system-is able to carry out these methods.
- Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language.
- Such a computer program can be stored on a computer or machine readable medium allowing data, instructions, messages or message packets, and other machine readable information to be read from the medium.
- the computer or machine readable medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage.
- a computer or machine readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits.
- the computer or machine readable medium may comprise computer or machine readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a device to read such computer or machine readable information.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
Abstract
A method of determining a suitable configuration of virtual network functions, VNFs (301, 303, 305), for operation on a plurality of servers (311,313), the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising: determining a fitness function for determining a fitness of different configurations of the VNFs (301, 303, 305), wherein the fitness function depends on at least one of the computational and communication resources used by a configuration; generating a set of possible configurations of the VNFs (301, 303, 305) for implementing the desired networking function; determining the fitness of each of the set of generated possible configurations using the fitness function; selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population; generating a second population from the first population by applying a genetic algorithm; and outputting a member of the second population as the suitable configuration on the basis of its fitness function.
Description
The present invention relates to the implementation of computer network functionality and, in particular, the implementation of such functionality in software. More particularly still, the invention relates to the implementation of virtual Network Functions (VNFs) under a Network Functions Virtualisation (NVF) environment, and also to the optimisation of such implementations.
Related art
Computer networking has traditionally been implemented using specialised hardware to provide the required functionality. To improve the pace of improvement in networking technology, software implementations of networking equipment have been developed. NFV is a means for visualising and implementing software network architectures. In NFV, an end-to-end network service can be defined as a forwarding graph of network functions and end points/terminals.
Figure 1 illustrates an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware. As illustrated in figure 1, base stations (BS) 1 can provide certain communications capabilities via software implementations of functions such as LTE virtual bases stations (vBS LTE) 5, 3G virtual base stations (vBS 3G) 7, 2G virtual base stations (vBS 2G) 9 and WiMax virtual base stations (vBS WiMax) 11 that run on hardware devices 13.
The skilled person will recognise that content delivery network (CDN) functionality 15 can be implemented via software implementation 17 on hardware devices 13. The CDN can communicate with the BS 1 to provide communications with, for example, home and enterprise networks 21, fixed axis networks 23 (for communication with homes 27 and
offices 25) and with mobile core networks 19 and mobile IP networking systems 29. In general, each of these systems 21, 23, 29, 19 can also be provided via software implementations running on hardware 13.
Thus, in the case of fixed access networking 23, this can provide Asymmetric digital subscriber lines ASDL 31, Very-high-bit-rate digital subscriber line (VDSL) 33 and/or communications operating on ITU-T or G standards (ITU-T/G) 35. In the case of home/enterprise networking 21, residential gateways (RGW) 37, Network address translation (NAT) 39 and set-top box functionality 41 can be provided via software implementations running on hardware 13.
In the case of core mobile networks 19, technologies such as Call Session Control Function (CSCF) 43, signalling gateway (SGW) 45, mobility management entity (MME) 47, domain name server (DNS) 49, Dynamic Host Configuration Protocol (DHCP) 51 and firewalls 53 can be provided via software implementations running on hardware 13. In the case of mobile IP networking systems 29, CSCF 43, MME 47, DHCP 51 can also be provided, as can packet data network gateways (PGW) 55, App servers 57 and load balancing 59.
To take an example of a service provided by such a networking architecture, consider a networking capability provided using LTE. This is illustrated using the VNF forwarding graph 61 at the top of figure 1. As illustrated, the service can be visualised as a forwarding graph that starts at an LTE vBS 5 (represented in the forwarding graph as 63) . This communicates with an MME 47 in the core mobile network 19 (represented in the forwarding graph as 65) and then an SGW 45 in the core mobile network 19 (represented in the forwarding graph as 67) . Subsequently, the service communicates with a PGW 55 in the mobile IP networking system 29 (represented in the forwarding graph as 69) and an App server in the mobile IP networking system 29 (represented in the forwarding graph as 71) .
Thus, VNF forwarding graphs provide a simple method of visualising services provided via networks. Moreover, such graphs can aid in the provision of networking functionality, for example as an aid to identifying suitable physical locations for the virtual technologies involved in providing the service.
The skilled person will recognise that this is merely one example of a VNF forwarding graph selected from one service provided by one particular type of networking system. Other forwarding graphs representing other services can also be generated, and such graphs need not be merely linear as depicted in figure 1, for example additional branches may occur.
Figure 2 illustrates a simple generalised example of a network service implemented using VNFs 102, 104, 106. These can correspond to any of the VNFs listed in respect of figure 1, or indeed any other VNF. As illustrated in figure 2, the VNFs 102, 104, 106 are in communication via infrastructure an network 114. End points 100 and 108 of the architecture represent the service end points, such as for example a user terminal connected to the BS 1 and/or a processing device in a house 27 of figure 1.
How to schedule and or deploy VNFs among the various hardware infrastructure (servers, storage and network, etc) is a very important consideration for network efficiency. Moreover, the particular manner in which VNFs are deployed will impact service Quality of Service (QoS) directly. Thus different VNF deployments of a particular service chain will, in general, lead to different computation and communication costs for service chain. Therefore, VNF scheduling/deployment and relevant algorithms are important considerations for NFV.
The skilled person will recognise that, since different deployments of the same service chain can have different computational and communications costs associated with them, there exists the possibility of deriving and adopting an optimised solution i.e. an optimised deployment solution. The optimised solution would have the lowest combination of communication/computation costs as defined by some metric (s) .
Document “An Optimisation Case in Support of Next Generation NFV Deployment” , presented at HotCloud ′15,
https://www.usenix.org/system/files/conference/hotcloud 15/hotcloud 15-abbasi.pdf discloses methods of such optimisation. In the disclosed method, the optimisation problem analysis is simplified by using a “Greedy solution” . This includes using a unified communication cost and approximating the server total capability such that it does not include any consideration of the virtual machine work load.
As recognised in the cited document, in general, the problem of optimizing VNF deployment will be very complex, and difficult to solve through a classical analytic methods if a large number of VNFs are deployed. There is therefore a need to provide an algorithm to solve this problem whilst avoiding the drawbacks of the approximate solutions provided by the cited document. Accordingly, it is an aim of the present invention to solve or mitigate at least some of the above-described problems.
Summary
In a first aspect, there is provided a method of determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising:
determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
generating a set of possible configurations of the VNFs for implementing the desired networking function;
determining the fitness of each of the set of generated possible configurations using the fitness function;
selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
generating a second population from the first population by applying a genetic algorithm; and
outputting a member of the second population as the suitable configuration on the basis of its fitness function.
Thus, advantageously, the method provides a means by which a configuration of VNFs, that is in some sense optimised with respect to its resource usage, can be derived.
In some embodiments the computational resources depend on the computational costs related to the number and type of VNFs that are configured to run on each server in a configuration. Thus, advantageously, the method can take into account the computation costs associated with implementing each VNF when deriving the optimal solution.
In some embodiments the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration. Thus, advantageously, the method can take into account the costs associated with deploying VNFs across a plurality of communicating servers when deriving the optimal solution.
In some embodiments the possible configurations are constrained by the maximum computational resource of each of the plurality of servers, such that a configuration is excluded from the set of possible configurations if a maximum resource of any of the plurality of servers is exceeded by that configuration. Thus, advantageously, the method can easily eliminate configurations from consideration if the available computing resources could not support such configurations.
In some embodiments the second population comprises members of the first population that are altered by at least one of a cross-over function and a mutation function. Thus, advantageously simple genetic algorithm functions can be applied to modify proposed configurations during the optimisation process.
In some embodiments if a configuration employs a plurality of instances of a particular VNF in different service chains on a particular server, then the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF. Thus, advantageously, due account can be taken of the situation in which multiple instances of the same software are running on a server.
In some embodiments the genetic algorithm is applied iteratively and terminated when an exit condition is satisfied, wherein the exit condition comprises one or more of:
a measure of the number of iterations of the genetic algorithm that have been completed;
a measure of the change in the maximum fitness measured for members of populations in different iterations of the genetic algorithm; or
a measure of the absolute maximum change of the maximum fitness measured for members of populations in different iterations of the genetic algorithm. Thus, advantageously, the genetic algorithm can be ended at a suitable point to avoid consuming processing time when little benefit would arise from the processing.
In some embodiments the fitness function takes the form of:
or
where:
I=the number of each VNF type, indexed by i;
M=the number of VNF service chains, indexed by m;
Lm=the number of VNF in a service chains, indexed by l;
N=the number of servers in an infrastructure layer, indexed by n;
For a service chain m, Sm represents the position of each VNF in the service chain, for this, there are K resource allocation patterns, indexed by k, where: Sm, k= {sk
1, sk
2, ..., sk
Lm} s∈{1,....., N} ;
β=β (n1, n2) is a communication cost function, which represents the cost for communication between servers 1 and 2;
αi is the additional resource cost for VNF type i; and
xi, n ∈ 1, 0, wherein an entry of 1 represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not. Thus, advantageously, a simple mathematical approximation of the relevant parameters can be generated for use in the algorithm.
In some embodiments the possible configurations are constrained by a function of the form:
where:
Cn is the maximum resource of server n, represented by cost; and
θ1 is the workload of the 1th VNF in service chain m, represented by cost. Thus, advantageously, a simple mathematical approximation of real-life constraints can be employed in the algorithm.
In some embodiments each configuration is represented by a matrix such that:
a row exists in each matrix corresponding to each VNF deployed in each service chain to be implemented by the configuration; and
a column exists for each server that is available for use in implementing the configuration. Thus, advantageously, a simple matrix description of a configuration can be used. Such a description can easily be applied to a genetic algorithm using known methods.
In some embodiments each element in the matrix is a binary indicator indicating either the presence or absence of a particular VNF on a particular server, and wherein each row in the matrix has one element indicating such a presence. Thus, advantageously, the binary indicators can be 1 and 0 and can easily be implemented using computing means. Moreover, the limitation of one entry per row being equal to 1 (i.e. indicating the presence of the VNF) provides a simple means by which some configurations that are not suitable for application can be eliminated.
In some embodiments if a mutation function is applied to a matrix that describes a configuration, then the mutation function is such that each row in the matrix retains a single element indicating a presence of the particular VNF related to that row. Thus, advantageously, the development of some configurations that are not suitable for application can be avoided when applying such a mutation operation.
In a second aspect, there is provided a processing apparatus for determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:
means for determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;
means for generating a set of possible configurations of the VNFs for implementing the desired networking function;
means for determining the fitness of each of the set of generated possible configurations using the fitness function;
means for selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;
means for generating a second population from the first population by applying a genetic algorithm; and
means for outputting a member of the second population as the suitable configuration on the basis of its fitness function.
In further aspects there is provided a computer program product comprising computer readable instructions which, when implemented on a processor perform all of the steps of the method of the first aspect, and a computer readable medium comprising such a computer program.
The invention will now be described with reference to the accompanying Figures of which:
Figure 1 illustrates known an example of a network architecture implementing mobile telecommunications in which NFV is employed to visualise the dependency between network functions and the associated hardware;
Figure 2 illustrates a simplified example of a network forwarding graph;
Figure 3 illustrates examples of service chains implemented using VNFs;
Figure 4 illustrates a flow chart of a method according to an embodiment;
Figure 5 illustrates an example of a matrix representation of a configuration of VNFs;
Figure 6 illustrates an example of applying a cross-over function to matrices; and
Figure 7 illustrates an example of applying a mutation function to a matrix.
There now follows a detailed description of an embodiment of the invention. Figure 3 illustrates examples of VNFs being used to implement service chains in a network environment. The service chains illustrated in figure 3 are for example purposes only, and indeed illustrate only some possible example of how such service chains can be implemented.
The skilled person will recognise that essentially any service chain can be implemented using different VNFs in different configurations, and there is no particular limitation on the number or type of VNFs employed or in the manner in which such VNFs are connected to one another. Thus, for example and as described above, all of the service chains of figure 1 could be implemented in such a manner.
Referring to the examples in figure 3, three different VNFs 301, 303, 305 are employed when implementing two different service chains, these are VNF1 301, VNF2 303 and VNF3 305. The skilled person will recognise that the functionality of these VNFs is not of importance for the example. The VNFs are illustrated as being implemented on two different physical servers 311, 313. Again, the skilled person will understand that this is for illustrative purposes only, and a greater or smaller number of servers can be employed for such purposes.
The first example in figure 3, on the left of the figure illustrates one possible implementation of two service chains. In this example, VNF1 301 and VNF3 305 are running on a first server 311, while VNF2 is running on a second server 313. A first service chain 307 entails a traversal order from VNF1 301 to VNF2 303, while a second service chain 309 entails a traversal order from VNF1 301 to VNF2 303 and then on to VNF3 305. Since VNF1 301 is located on server1 311, and VNF2 303 is located on server2 313, service chainl 307 entails communications via a network (not illustrated) between these servers, termed here as a communication “hop” . Similarly, service chain2 309 entails two such communication hops, one from VNF1 301 on server1 311 to VNF2 on server2 313, and a second from VNF2 303 on server2 313 to VNF3 305 on server1 311.
The second example, the middle diagram in figure 3 illustrates a different possible implementation of the same two service chains 307, 309. However, in this implementation VNF1 301 and VNF2 are both running on server1 311, while VNF3 is running on server2 313. Since VNF1 301 and VNF2 303 are both on the same server, there is no communications hop required in service chainl 307 since all communications are within the same physical server. For service chain2 309, communications between VNF1 301 and VNF2 303 require no communications hop while communications on to VNF3 305 do require such a hop. Thus, the skilled person will recognise that this second example implementation of the two service chains will have different communication ‘costs’ in
comparison to the first implementation since the first example requires 3 communications hops in total whereas the second requires only one.
In the third example implementation on the right hand side of figure 3, VNF1 301 and VNF2 are again both running on server1 311. However, on server2 313 in addition to VNF3 305, second instances of VNF1 315 and VNF2 317 are also running. Thus, as with the second example, service chain 1 307 requires no communication hops. In addition, service chain2 309 also requires no communication hops. Thus, in this third example implementation, very low communication costs are incurred.
The skilled person will also recognise that running software on a processing system, such as a server, will result in some computing ‘costs’ . In other words, some of the processor’s resources are consumed by running an instance of a VNF on it. Such costs can include, for example, utilization of the memory and/or the processor time.
Thus, the overall ‘cost’ of implementing the service chains 307, 309 in each implementation will be the combination of the communications costs and the computing costs required for the particular implementation.
The skilled person will further recognise that, in general, different implementations will result in different overall costs, and so some implementations will in general be better than others wherein the better implementations consume a lower combined computing/communication cost overall. Further, the best implementation will in general be that which entails the lowest overall cost. Thus, the method of the described embodiment is aimed at determining the implementation of a service chain that is in this sense optimal.
As part of this optimisation process, we define:
I=the number of each VNF type, indexed by i. Thus, in other words, I1 would equal the number of type 1 VNFs. In the examples given in figure 3, I=3 since there are three different VNF types, VNF1, VNF2 and VNF3. These would have the indices 1, 2, 3 respectively.
M=the number of VNF service chains, indexed by m. In the examples given in figure 3 M=2 since there are two different service chains illustrated in each example.
Lm=the number of VNF in a service chains, indexed by 1. In the examples given in figure 3 L1=2 and L2=3 since, in the first chain, two VNFs are present, VNF1 and VNF2. In the second chain, three VNFs are present, VNF1, VNF2 and VNF3.
N=the number of servers in an infrastructure layer, indexed by n. In the examples shown in figure 3, there are two serves, thus N=2.
For a service chain m, Sm represents the position (i.e. on which server) of each VNF in the service chain. For this, there are K resource allocation patterns, indexed by k, where:
Sm, k= {sk
1, sk
2,..., sk
Lm} s∈ {1,....., N}
For the examples shown in figure 3:
S1, 1= {1, 2} , S1, 2= {1, 1 } , S1, 3= {1, 1 } .
In other words, for service chain 1 in example 1 (the left-hand example) , which is S1, 1 in this notation, the first VNF is on server 1 while the second is on server 2. In the second example (middle example) for service chain 1, which is S1, 2 in this notation, both VNFs are on server 1. This is also the case for the third example (right hand example) , which is S1, 3 in this notation.
Similarly, for service chain 2 in the examples of figure 3, the values of S would be as follows:
S2, 1= {1, 2, 1} , S2, 2= {1, 1, 2} , S2, 3= {2, 2, 2}
β=β (n1, n2) is a communication cost function, which represents the cost for communication between servers 1 and 2. Here, n1 and n2 represent respectively server1 and server2. We assume for the purpose of the present embodiment that the communication cost from server1 to server2 equals that from server2 to server1. However, the skilled person will recognise that this need not necessarily be the case, and it is envisaged that β can be made to be dependent on the direction of communication.
αi is the additional resource cost for VNF type i. In other words, α represents the computational cost of running a particular VNF. This is in general composed of two components, a processing cost and a memory cost, with the overall value of α being the combination of these components.
In the left hand example shown in figure 3, VNF1 is shared by service chain 1 and service chain 2. In the middle example, VNF1 and VNF2 are shared by service chain 2 and service 2. In the right hand example, no VNFs are shared by service chains. However, VNF1 and VNF2 are each deployed on both servers, and so the processing costs and memory costs for VNF1 or VNF2 in the right hand example are higher than it in the other examples. Thus, αi for the right hand example will be higher than that for the other two examples.
xi, n ∈ 1, 0. Thus, an entry of 1 represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not. Thus, taking the left hand example in figure 3:
X1, 1=1, X1, 2=0 and X1, 3=1.
Cn is the maximum resource of server n, represented by cost. Different servers will in general have different capabilities and so C can in general be dependent on the particular server.
θ1 is the workload of the 1th VNF in service chain m, represented by cost. The skilled person will understand that the workload in a service chain will tend to vary over time, dependent on current usage, and so, this is workload is actually either a typical workload assigned to a service, or some function of the maximum workload that is assigned.
We then define the optimisation target as:
The skilled person will recognise that the first term in equation (1) is representative of the communication costs associated with an implementation (i.e. is dependent on β) and the second term is representative of the ‘virtual machine” cost (i.e. is dependent on α) .
The optimisation target is constrained by the following constraint function:
For each n,
The presently described embodiment of the invention thus relates to method of determining a solution that provides a minimisation of the optimisation target expression when constrained by the constraint function. This solution is then used to describe VNF deployment in servers for the service (s) in question.
To derive a solution, the described embodiment employs a genetic algorithm, which comprises the following steps:
●generating an optimisation target and constraints according to the requirements of desired service chains and the performance of servers;
●combining the optimisation target with constraint conditions to obtain individual fitness expressions;
●randomly generating matrixes (VNFs *Servers) formed by the positions of VNFs deployed on the servers as an initial population;
●carrying out one or more iterations based on the individual fitness expressions;
●testing whether exit conditions are fulfilled;
○if exit conditions are not satisfied at an iteration, entering the next evolution and carrying out Crossover operation and/or Mutation operation on the population; and
○if exit conditions are satisfied at an iteration, outputting the optimisation result.
The invention optimises the total cost including communication and resource cost of VNFs with the restriction conditions through the genetic algorithm.
The flow of this algorithm is shown in Figure 4 and is described in greater detail below:
Step S101, obtaining individual fitness expressions
The goal of a genetic algorithm is, in general, to find the individual from the population with the greatest fitness. However, the optimisation target of this problem is to find the deployment with minimal cost. Thus, in order to apply a genetic algorithm solution to the present invention, the individual fitness expression in equation (1) should be converted to be negative, or the reciprocal of the optimisation target. Thus, the expression for the optimisation target given above can be expressed as either:
Or
Combining the changed optimisation target (equation (3) or (4) ) with the constraint condition (equation (2) ) yields the individual fitness expression.
These individual fitness expressions can then be used to evaluate and choose the individuals from the population.
Step S103, generating an initial population
An example of a VNF deployment matrix is shown in Figure 5. The elements of this matrix each represent the position of one of the VNFs of a service chain on the servers that are available. Thus, the value of each element is either 0 or 1. If the element aij is 1, then it indicates that the VNF in the ith row is deployed in Serverj. Conversely if the element is 0,
then this means that the VNF in the ith row is not deployed in Serverj. The skilled person will recognise that there will in general be a limitation to each matrix in that one row has one element equal to 1.
The columns of the matrix represent the VNFs in all of the service chains. Here, duplicate VNFs in different service chains are allowed, as is illustrated in the examples shown in figure 3.
To continue the examples of figure 3, the equivalent three matrixes related to three deployment scenarios from this figure are as follows:
Server1 Server2
Server1 Server2
Server1 Server2
The skilled person will recognise that the size of the matrices in a particular problem is determined by the number of servers and VNFs, and that there is no particular limit to the
size. Rather, a larger matrix size merely indicates that the problem has a greater number of possible solutions and so a higher complexity.
Each matrix represents one candidate solution of VNF deployment and, in terms of the genetic algorithm, one genome (individual) . The skilled person will recognise that, in the language of genetic algorithms, one genome is composed of N ‘chromosomes’ a nd the length of each chromosome is, in the present embodiment, the total length of all services chains.
In the present embodiment, the initial population (i.e. the initial set of matrices) is composed of such matrices generated randomly. However, the skilled person will recognise that a random generation of matrices need not be used. Thus, in alternative embodiments, the matrices are generated using techniques other than random techniques. For example, in some embodiments, partial or complete patterns of previously derived or implemented service chains can be input to some members of the initial population. Such embodiments can have an advantage in that a population that is similar to solutions that have previously been seen to be successful can be employed as the initial population, thereby ensuring that members of the initial population are close to a likely solution, and thus potentially limiting the number of iterations of the genetic algorithm that are needed.
In further alternative embodiments, certain possible matrices are excluded from selection in a population. This can, for example, be on the basis of some known problem with these possible matrices.
The size of initial population is in general related to the scale of the optimisation problem. Generally, the more complex problem needs greater population size. The size of initial population can be set to a random number or a constant value with experience, for example 64 or 128. This size is related to the scale of VNF deployment. The skilled person will recognise that there is a trade-off in that a bigger initial population size will result in a greater search space and less iterations before convergence however the calculations required will require a greater computational power. Conversely a smaller initial population size requires less computational power but is more likely to cause the algorithm to converge to a local optimised point rather than the global optimum.
Step S105, computing individual fitness expression and choosing the population
In this step the individual fitness expression from equation (3) or (4) is calculated for each member of the population present in the current generation. In the case of the first iteration, this corresponds to each member of the initial population.
Individuals that don’ t meet constraint condition (equation (2) ) are discarded at this stage.
Subsequently, remaining members of the population are selected for entry into the next generation on the basis of their individual fitness expressions such that the probability of being selected for individuals having a higher individual fitness value. The skilled person will recognise that there are many ways of making such a selection, for example via a “roulette wheel” selection. In a roulette wheel selection method, each individual is effectively assigned a slice of a roulette wheel proportional in area to the individual’s particular fitness value. The wheel is then ‘spun’a number of times and individuals are selected on the basis of the result i.e. where the roulette ball ‘lands’ . The number of time that the roulette wheel is spun is equal to the desired population for the next generation. For this purpose, it is usually (but not necessarily) assumed that an individual is not permitted to be selected more than once for inclusion in a particular generation.
The skilled person will recognise that other methods of selection for subsequent generations can equally be employed, for example the selection can be merely a fraction of the previous generation based on their individual fitness (e.g. the top 50%) .
In alternative embodiments, certain possible matrices are excluded from selection the next generation. This can, for example, be on the basis of some known problem with these possible matrices.
In the present embodiment, the size of the population is maintained for each iteration. Thus, for the first computation (coming from step S 103) , if some individuals are discarded because they don’t meet constraint condition (equation (2) ) , Step 103 and Step 105 will be executed repeatedly in sequence to ensure that the initial size of the population is maintained.
In alternative embodiments, the population size is allowed to vary between iterations of the algorithm.
During the computation, and as defined by the matrix, it is possible that there are duplicate VNFs present in different service chains deployed on the same server. Such a situation will result in an additional resource cost for this VNF on this server. Two different scenarios are possible:
●One VNF present in different service chains is deployed on the same server, such as the left hand and middle examples shown in figure 3. Such a situation will result in additional workload for this VNF on this server when computing the fitness from equations (3 or 4) .
●One VNF present in different service chains is deployed in duplicate on different servers, such as the right hand example shown in figure 3. Such a situation will result in additional resource costs for this VNF on each of these servers when computing the fitness from equations (3 or 4) .
The skilled person will recognise that due account can be made for each of these cases by appropriately amending the resource costs αi in equations (3 or 4) .
Step S107, verifying the exit condition
In the next step of the algorithm, it is tested whether the exit condition or conditions are fulfilled. In the presently described embodiment several options are permitted, for example:
●Exit when the evolutionary generation reaches a certain value. In other words when a certain number of iterations of the algorithm have been executed.
●Exit when the maximum fitness has no change (or changes by less than a threshold amount) during certain evolutionary generations. For example, such a condition can be fulfilled if the maximum fitness of individuals in the previous iteration was within a certain magnitude or fraction of the maximum fitness of the current generation.
The skilled person will recognise that one or more of the exit conditions can be applied, either in the form of a Boolean OR or AND function. Moreover, the choice of exit condition or conditions can be determined by the time taken to execute the algorithm. Thus, for example if a condition related to the maximum fitness had not been fulfilled after a predetermined time had elapsed, then a further exit condition e.g. related to a maximum
number of iterations could additionally be applied to ensure that the algorithm stopped within a reasonable time period.
If the particular exit condition (s) is satisfied, then the algorithm jumps to next step S1 13 wherein the optimisation result is output and the algorithm ends. This is described in further detail below. Otherwise, the algorithm continues to execute step S109 and S111, and subsequently back to S 103 to enter the next generation of the algorithm.
Step S109, crossover operation
In genetic algorithms, crossover is a genetic operator used to vary the programming of a chromosome or chromosomes from one generation to the next.
There are several possible methods that can be employed in the crossover operation. For example, in the presently described embodiment, one-point crossover is employed, as illustrated in figure 6. As shown in figure 6, the matrices of two parents are selected for the crossover function. Each matrix is cut by a line, and the four resulting parts are swapped between the two parent matrices to rebuild two children.
Thus, in the example of figure 6 a first parent formed is cut into two parts, a1 and a2. Similarly, the second parent is cut into two parts b1 and b2. Subsequently, the children matrices are generated such that one comprises a1 and b2 while the other comprises a2 and b1. The skilled person will recognise that in performing this operation it is in generally necessary to form child matrices in the same manner as the parent matrices from which they are formed. Therefore, as illustrated in figure 6 since a1 forms a top half of a first parent matrix, it must also form a top half of a child matrix. The skilled person will also recognise that it is not necessary to limit matrix division into halves. Rather, the matrices can be divided into unequally-sized fractions. However, to allow recombination, the division must be performed consistently between the two parent matrices.
In the presently described embodiment, the position of the cutting line is determined at random. This kind of crossover operation can help to ensure that the children comply with the limitation to the matrix (i.e. that one row has one element equal to 1) .
In the presently described embodiment, the probability of a parent being selected to be used in the crossover process is set to be a function of the individual fitness value of the parent. Thus, fitter individuals from one generation will contribute proportionately more to the next generation than will individuals of lower fitness. The skilled person will recognise that there many fitness proportionate selection schemes that can be used for such a selection. However, in the present embodiment, the “roulette wheel” selection is employed in the same manner as for the selection of individuals for inclusion in a subsequent generation.
In further embodiments, the same part of a parent matrix can be used in more than one child matrix and/or child matrices can be formed from more than two parent matrices.
The skilled person will recognise that two-point (or greater than two-point) crossover methods can also be employed.
Step S111, mutation operation
Mutation is a genetic operator used to maintain genetic diversity from one generation of a population of genetic algorithm chromosomes to the next.
The method of mutation operation is illustrated in figure 7. As illustrated in figure 7, after application of the mutation operation, the position of the 1 in one or more rows will be changed. As a result, the limitation to the matrix that one row has one element equal to 1 will be still be complied with.
Thus, as illustrated in figure 7, the zero and one in the second row at elements 2 and 3 respectively are swapped such that there is a 1 at position 2 and a 0 at position 3.
The skilled person will recognise that the probability of mutating an individual can be set to a random number or a constant fraction of the population. In the presently described embodiment, a constant fraction is employed and this is typically set in the range 0.05-0.07 of the population of a generation. The skilled person will recognise that the fraction selected will tend to impact on the performance of the algorithm such that, if the mutation rate is too large the genetic algorithm may not converge in a reasonable time period. Conversely, if the probability of mutation is too small, then the genetic algorithm convergence may tend to fall into local (rather than global) optimisation.
In further embodiments, the mutation probability is set to a random fraction of the population. In still further embodiments, either crossover (S109) or mutation (S111) are employed, rather than both as per the currently described embodiment.
Step S113, outputting the optimisation result
In step S113, the individual (i.e. one VNF deployment matrix) having the highest fitness found over all iterations of the algorithm is output as the final result.
In further embodiments, if more than one individual has the highest fitness, then either all individuals can be output for manual selection of a single individual, or further selection can be performed.
Embodiments can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which-when loaded in an information processing system-is able to carry out these methods. Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after conversion to another language. Such a computer program can be stored on a computer or machine readable medium allowing data, instructions, messages or message packets, and other machine readable information to be read from the medium. The computer or machine
readable medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer or machine readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits. Furthermore, the computer or machine readable medium may comprise computer or machine readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, that allow a device to read such computer or machine readable information.
Expressions such as ″comprise″ , ″include″ , ″incorporate″ , ″contain″ , ″is″ and ″have″ are to be construed in a non-exclusive manner when interpreting the description and its associated claims, namely construed to allow for other items or components which are not explicitly defined also to be present. Reference to the singular is also to be construed in be a reference to the plural and vice versa.
While there has been illustrated and described what are presently considered to be the preferred embodiments of the present invention, it will be understood by those skilled in the art that various other modifications may be made, and equivalents may be substituted, without departing from the true scope of the present invention. Additionally, many modifications may be made to adapt a particular situation to the teachings of the present invention without departing from the central inventive concept described herein. Furthermore, an embodiment of the present invention may not include all of the features described above. Therefore, it is intended that the present invention not be limited to the particular embodiments disclosed, but that the invention include all embodiments falling within the scope of the invention as broadly defined above.
A person skilled in the art will readily appreciate that various parameters disclosed in the description may be modified and that various embodiments disclosed and/or claimed may be combined without departing from the scope of the invention.
Claims (15)
- A method of determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the method comprising:determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;generating a set of possible configurations of the VNFs for implementing the desired networking function;determining the fitness of each of the set of generated possible configurations using the fitness function;selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;generating a second population from the first population by applying a genetic algorithm; andoutputting a member of the second population as the suitable configuration on the basis of its fitness function.
- A method according to claim l, wherein the computational resources depend on the computational costs related to the number and type of VNFs that are configured to run on each server in a configuration.
- A method according to claim 1 or 2, wherein the communication resources depend on the communication costs associated with communications between the plurality of servers arising as a result of the configuration.
- A method according to any preceding claim, wherein the possible configurations are constrained by the maximum computational resource of each of the plurality of servers, such that a configuration is excluded from the set of possible configurations if a maximum resource of any of the plurality of servers is exceeded by that configuration.
- A method according to any preceding claim, wherein the second population comprises members of the first population that are altered by at least one of a cross-over function and a mutation function.
- A method according to claim 2, wherein if a configuration employs a plurality of instances of a particular VNF in different service chains on a particular server, then the computing cost of the instances in the fitness calculation are set to be equal to those of a single instance of the VNF.
- A method according to any preceding claim, wherein the genetic algorithm is applied iteratively and terminated when an exit condition is satisfied, wherein the exit condition comprises one or more of:a measure of the number of iterations of the genetic algorithm that have been completed;a measure of the change in the maximum fitness measured for members of populations in different iterations of the genetic algorithm; ora measure of the absolute maximum change of the maximum fitness measured for members of populations in different iterations of the genetic algorithm.
- A method according to any preceding claim, wherein the fitness function takes the form of:orwhere:I= the number of each VNF type, indexed by i;M= the number of VNF service chains, indexed by m;Lm= the number of VNF in a service chains, indexed by l;N= the number of servers in an infrastructure layer, indexed by n;For a service chain m, Sm represents the position of each VNF in the service chain, for this, there are K resource allocation patterns, indexed by k, where: Sm,k= {sk t,sk 2 , ...sk Lm} s∈ {1, ..., N} ;β =β (n1, n2) is a communication cost function, which represents the cost for communication between servers 1 and 2;αi is the additional resource cost for VNF type i; andxi,n ∈ 1, 0, wherein an entry of 1 represents that there is a VNF type i instance on server n, whilst an entry of 0 indicates that there is not.
- A method according to any preceding claim, wherein each configuration is represented by a matrix such that:a row exists in each matrix corresponding to each VNF deployed in each service chain to be implemented by the configuration; anda column exists for each server that is available for use in implementing the configuration.
- A method according to claim 10, wherein each element in the matrix is a binary indicator indicating either the presence or absence of a particular VNF on a particular server, and wherein each row in the matrix has one element indicating such a presence.
- A method according to claim 11 when dependent from claim 5, wherein, ifa mutation function is applied to a matrix that describes a configuration, then the mutation function is such that each row in the matrix retains a single element indicating a presence of the particular VNF related to that row.
- A processing apparatus for determining a suitable configuration of virtual network functions, VNFs, for operation on a plurality of servers, the suitable configuration being for the provision of a service chain that provides a computer networking function, the processing apparatus comprising:means for determining a fitness function for determining a fitness of different configurations of the VNFs, wherein the fitness function depends on at least one of the computational and communication resources used by a configuration;means for generating a set of possible configurations of the VNFs for implementing the desired networking function;means for determining the fitness of each of the set of generated possible configurations using the fitness function;means for selecting, on the basis of their respective fitness functions, a subset of the possible configurations for inclusion in a first population;means for generating a second population from the first population by applying a genetic algorithm; andmeans for outputting a member of the second population as the suitable configuration on the basis of its fitness function.
- A computer program product comprising computer readable instructions which, when run on a computer system, cause the computer system to perform the method of any of claim 1 to 12.
- A computer readable medium comprising the computer program product according to claim 14.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/098660 WO2017107127A1 (en) | 2015-12-24 | 2015-12-24 | Method and system for optimisation of virtual network functions under network function virtualisation environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/098660 WO2017107127A1 (en) | 2015-12-24 | 2015-12-24 | Method and system for optimisation of virtual network functions under network function virtualisation environment |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017107127A1 true WO2017107127A1 (en) | 2017-06-29 |
Family
ID=59088709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/098660 WO2017107127A1 (en) | 2015-12-24 | 2015-12-24 | Method and system for optimisation of virtual network functions under network function virtualisation environment |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017107127A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112787833A (en) * | 2019-11-07 | 2021-05-11 | 中国电信股份有限公司 | Method and device for deploying CDN (content delivery network) server |
CN113535381A (en) * | 2021-06-08 | 2021-10-22 | 广西综合交通大数据研究院 | Service function chain mapping method, device and equipment based on improved genetic algorithm |
CN114124818A (en) * | 2021-11-11 | 2022-03-01 | 广东工业大学 | Newly-added function node deployment optimization method for multicast transmission in SDN network |
US11463511B2 (en) | 2018-12-17 | 2022-10-04 | At&T Intellectual Property I, L.P. | Model-based load balancing for network data plane |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130110751A1 (en) * | 2011-10-31 | 2013-05-02 | Taif University | Computational device implemented method of solving constrained optimization problems |
CN104202188A (en) * | 2014-09-01 | 2014-12-10 | 北京航空航天大学 | Method for carrying out AFDX network path optimization by genetic algorithm |
CN104468308A (en) * | 2014-10-29 | 2015-03-25 | 北京邮电大学 | Cross-domain virtual network mapping method and system based on particle swarm optimization |
CN104684095A (en) * | 2015-03-10 | 2015-06-03 | 东南大学 | Resource allocation method based on genetic operation in heterogeneous network convergence scenes |
-
2015
- 2015-12-24 WO PCT/CN2015/098660 patent/WO2017107127A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130110751A1 (en) * | 2011-10-31 | 2013-05-02 | Taif University | Computational device implemented method of solving constrained optimization problems |
CN104202188A (en) * | 2014-09-01 | 2014-12-10 | 北京航空航天大学 | Method for carrying out AFDX network path optimization by genetic algorithm |
CN104468308A (en) * | 2014-10-29 | 2015-03-25 | 北京邮电大学 | Cross-domain virtual network mapping method and system based on particle swarm optimization |
CN104684095A (en) * | 2015-03-10 | 2015-06-03 | 东南大学 | Resource allocation method based on genetic operation in heterogeneous network convergence scenes |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11463511B2 (en) | 2018-12-17 | 2022-10-04 | At&T Intellectual Property I, L.P. | Model-based load balancing for network data plane |
CN112787833A (en) * | 2019-11-07 | 2021-05-11 | 中国电信股份有限公司 | Method and device for deploying CDN (content delivery network) server |
CN112787833B (en) * | 2019-11-07 | 2022-08-12 | 中国电信股份有限公司 | Method and device for deploying CDN (content delivery network) server |
CN113535381A (en) * | 2021-06-08 | 2021-10-22 | 广西综合交通大数据研究院 | Service function chain mapping method, device and equipment based on improved genetic algorithm |
CN113535381B (en) * | 2021-06-08 | 2023-09-08 | 广西综合交通大数据研究院 | Service function chain mapping method, device and equipment based on improved genetic algorithm |
CN114124818A (en) * | 2021-11-11 | 2022-03-01 | 广东工业大学 | Newly-added function node deployment optimization method for multicast transmission in SDN network |
CN114124818B (en) * | 2021-11-11 | 2023-07-04 | 广东工业大学 | Newly-added functional node deployment optimization method for multicast transmission in SDN network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018000240A1 (en) | Method and system for the optimisation of deployment of virtual network functions in a communications network that uses software defined networking | |
Liu et al. | On dynamic service function chain deployment and readjustment | |
Alam et al. | Multi-agent and reinforcement learning based code offloading in mobile fog | |
WO2017107127A1 (en) | Method and system for optimisation of virtual network functions under network function virtualisation environment | |
Ali et al. | QoS improvement with an optimum controller selection for software-defined networks | |
KR20170105582A (en) | Systems and methods for SDT for interworking with NFV and SDN | |
US10887172B2 (en) | Network function virtualization | |
Foerster et al. | Improved fast rerouting using postprocessing | |
Islam et al. | A genetic algorithm for virtual machine migration in heterogeneous mobile cloud computing | |
Al-Sadi et al. | Routing algorithm optimization for software defined network WAN | |
CN111953547B (en) | Heterogeneous base station overlapping grouping and resource allocation method and device based on service | |
CN116232982A (en) | Route calculation method and related equipment | |
Shang et al. | Network congestion-aware online service function chain placement and load balancing | |
Lei et al. | Deploying QoS-assured service function chains with stochastic prediction models on VNF latency | |
Datsika et al. | Matching theory for over-the-top service provision in 5G networks | |
Kang et al. | Load balancing of software-defined network controller using genetic algorithm | |
Parham et al. | Traffic engineering with joint link weight and segment optimization | |
CN114298431A (en) | Network path selection method, device, equipment and storage medium | |
Montana et al. | Adaptive reconfiguration of data networks using genetic algorithms | |
CN103825963B (en) | Virtual Service moving method | |
Chen et al. | QMORA: A Q-learning based multi-objective resource allocation scheme for NFV orchestration | |
Antic et al. | Routing with load balancing: increasing the guaranteed node traffics | |
Sharma et al. | High-availability service chain realization theory | |
Punhani et al. | Optimal extra links placement in mesh interconnection network using improved environmental adaptation method | |
Moza et al. | Routing in networks using genetic algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15911126 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15911126 Country of ref document: EP Kind code of ref document: A1 |