# A Systematic Literature Review of Reliable Provisioning for Virtual Network Function Chaining
## 2 Background  
The reliable provisioning begins with the service allocation to the NFV infrastructure and continues while the service is alive. For example, Figure 1 shows a SFC that includes three different VNFs from the assigned source and destination. In Figure 2, the SFC in Figure 1 is mapped in a network through \(N_{1},N_{3},N_{4},N_{5}\), and \(N_{6}\). The network should ensure that the survivability of this SFC by either providing a failure recovery mechanism in the case of any failure or that reliable provisioning can be provided by a comprehensive algorithm that maps the VNFs to ensure service availability while reducing resource usage. In this section, we review the existing techniques that are providing reliable provisioning for virtual network function chaining. Most of the previous research has focused on failure recovery for non-distributed networks. Examples in the literature have addressed these failures by adding backup VNFs and paths [17]. Adding backups causes the network to be more resilient and less prone to failure. However, using backups in the network adds resource overhead and, consequently, costs. In [18], the authors propose a Joint-Path-VNF (JPV) backup model, including both path and VNF backup. To mitigate resource consumption, they propose an Affinity-Based Algorithm (ABA) to group physical machines with the same communication overhead, allowing for reduced resource consumption. A joint selective diversity and redundancy mechanism to provide resiliency is also proposed in [19]. Their solution for diversity is to split a VNF into a group of smaller VNF instances called replicas. A failure of a replica does not mean that the VNF is nonoperational since there are still other replicas. They also propose to provision backup VNFs in an inactive state to provide redundancy while at the same time reducing resource costs. Another approach is using multi-path protection to handle survivable VNF placement [20]. If a failure occurs in this approach, the connection will not be lost since the data can still be transmitted using other paths. The results shown in [20] confirms that multi-path protection performs better in blocking probability and spectrum efficiency compared to single-path protection. On the other hand, in [21], the K-node disjoint shortest path algorithm is used to handle the survivability of VNFs against multiple failures. K-node is a modified Dijkstra algorithm that aims to decrease the failure rate while minimizing computing and network resource usage. Another research proposes three methods of providing protection (Virtual-Node protection, Virtual-Link protection, and End-to-End protection) against failures [22]. Virtual-Node protection instantiates VNFs in two different physical nodes. Virtual-Link protection uses the same VNFs in the same physical node. However, the backup path cannot use the same physical links as the primary path. Finally, for End-to-End protection, both VNFs and paths must be different. The results in [22] show that End-to-End protection provides the protection level but costs up to 10% more OPEX. Virtual-Link protection consumed the least amount of network resources while decreasing the OPEX. In [23], an efficient algorithm called Optimal Fog-supported Energy-aware SFC (OFES) is introduced to minimize the fault probability and recover failure. The OFES optimizes the Fog nodes' energy consumption but the computational complexity limits the scalability of the algorithm. Therefore, a heuristic algorithm called Heuristic OFES (HFES) is proposed to be applicable to real-world networks. Both algorithms can keep the fault probability under the predefined threshold, while HFES is superior in the utilization of the link and Fog node. However, network devices' energy consumption, queuing delay, and VNF sequences are yet to be addressed. Other examples in the literature propose using machine learning to handle failures.