Without loss of generality, we define the reliability of a generic SFC as a probability that at least
k≥ 1 sub-flows can successfully traverse
k out of
n =
k +
r sub-SFCs, where
r≥ 0. Since each sub-SFC consists of Ψ different VNF types, at least
k VNFs of each type ψ have to be available during service runtime, i.e., in total
VNFs. As different sub-SFC can belong to different reliability classes, the component-dependent reliability of each shared and unshared component of type
c utilized to accommodate certain VNFs of class ξ are denoted as
and
, respectively. Generally, reliabilities of any data center, any rack, any server, and any VM can differ (heterogeneity). At the same time, only shared components of a certain type
c utilized to host any sub-SFC belonging to a certain class ξ have an equal component-dependent reliability
, where
,
, relates to hierarchy level, i.e., defines component type, utilized for a placement of class ξ.
With
r backup sub-SFCs, any component from any hierarchy level
c and any reliability class ξ is allowed to fail as long as these failures result in a failure of at most
r VNFs of any type. To assess the number of components that can fail without affecting the SFC, we introduce a parameter
Acceptable Component Failures (ACF) for common root components,
for shared and
for unshared components of type
c. ACF defines the amount of failed hardware and software components of any type that do not lead to service interruption. It is obvious that when no backup or other protection is applied, there is no ACF, and all primary components, i.e., DCs, racks, servers, and VNFs, must remain available/reliable during service runtime. The ACF strongly depends on the number of backup components and the placement of VNFs of a certain reliability class inside DCs, racks and servers. Additionally, we introduce a variable
, which describes the
number of remaining available components of a certain type
c and reliability class ξ, which are not affected by failures of other components, but can still fail during service runtime. Using these two parameters, we can derive the placement-independent and placement-dependent SFC reliability. Without loss of generality, when
and
, SFC reliability can be generalized as a probability that at least
out of
components of type
c are available to maintain at least
k sub-SFCs. That can be described by a well known Binomial formula determined as
, where
is a probability mass function of binomial distribution.
3.1 Available Components and Acceptable Component Failures
The acceptable component failure (ACF) of shared
, unshared
, and common root
components generally shows the bound of any summation in Binomial formula used for reliability calculation and is a function of available (
) and failed (
) components of type
c from the same reliability class ξ and the failures of any other components of higher hierarchy level (
,
), which cause
failures of components of the lowest hierarchy level over all reliability classes.
As at most
r VNFs of each type of any reliability class are allowed to fail, we need to define ACF for each reliability class and each component type over all reliability classes. This requires, however, a consideration of failure interdependency between components and reliability classes as, e.g.,
and
, where each previously assumed failure reduces the acceptable failures of component
and the amount of remaining available components of type
c and class ξ, respectively.
Depending on VNF placement strategy, different reliability classes can utilize the same common root components, while a failure of common root will result in complex failure propagation affecting multiple reliability classes, i.e., multiple sub-SFC. A failure of one common root can generally cause a failure of more than
r sub-SFCs and lead to service interruption. Thus, let us first derive ACF
of the common root components of any reliability class from set
, i.e.,
. Since there is only one common root component per
reliability classes, the amount of available roots
and the ACF of the root can be either 0 or 1. Both depend on the number of VNFs of each type, which will fail if a certain root fails, and on a number of the already failed roots. Generally, the root component can only fail if it is available. A specific common root component
is, however, only available when the other roots from the higher hierarchy do not previously fail leading to the failure of
, i.e.,
, where
is a number of failed common root
. Then, the amount of available common roots is defined as
When
, ACF of root
can hypothetically be
. However, to maintain the service, the total amount of failed VNFs due to failure of root
and other root components may not be larger than the number of backup VNFs, i.e.,
r. The amount of VNFs of a certain type belonging to a reliability class
can be calculated as
VNFs, which will fail with failure of the root component type
. Since there are
reliability classes affected by failure of root component of type
, the total number of failed VNFs of certain type of any reliability class
,
is determined as
, where
and
. Since there can be other common roots from the higher hierarchy level that affects the root under consideration as well as other roots, we need to take into account all other VNF failures due to failure of all other
roots. Thus, the amount of failed VNFs of certain type over
root components can be calculated as a function of any
, i.e.,
, where
, iff
, and ensures that the failures of VNFs from the same reliability class are considered only once. The last formulation can take into account any VNF placement strategy, where, for instance, DC and rack inside this DC represent two common roots for the same reliability classes, whereby DC can combine more reliability classes and lead to failure of rack if it fails, as shown in Figure
3. Summarizing all constraints above, the ACF of the common roots is
where
and
, iff
.
Since all components of a certain reliability class are placed separately from components of any other reliability class per definition and only some common root components
can be utilized to combine different classes, we need to additionally consider each reliability class ξ separately. A number of available components and ACF is thereby a function of VNF placement strategy and amount of available and failed components of any type in reliability class ξ. As DCs are the components from the highest hierarchy level and independent of failures of any other component types, the amount of available DCs that are not the common root components is equal to the amount of data centers required to accommodate
sub-SFCs of reliability class ξ, i.e.,
. The failure of
DCs causes a failure of
racks reducing the overall number of available racks as
, where
. Then, the remaining amount of servers after DC and rack failures is
, where
. After failures of
DCs,
racks, and
servers, the remaining amount of VNFs of any type is
, if
. Since some reliability classes have a common root component
, which impact multiple reliability classes, i.e., any ξ,
, we need to consider the availability and failure of common root components from a set Φ as
for any
. Thus, the amount of available primary and backup components
of any component type
of any reliability class ξ, after the failure of any component of higher hierarchy level, i.e., of type 1 to
, is determined as follows
where the first case describes a number of the common root components of a certain type
c and is the same for any reliability class ξ from set
. However, when there is one reliability class only,
H = 1, there are no common root components and the first case in Equation (
3) will be never true. Other two cases describe the amount of available shared and unshared components.
As multiple VNFs of different type of a certain reliability class ξ can share some components, the number of any failed components
of type
can vary as
for these shared components and as
for disjoint (unshared) components in reliability class ξ. Here, any
out of
components of type
of reliability class ξ can fail without interrupting the end-to-end service. Generally, ACF, i.e.,
for component
shared by different VNF types and
for unshared component, is a function of available components
of type
c and a reliability class ξ, the amount of provided backup VNFs
r, and the number of VNFs considered as already failed
after
components of any type
c,
, and any class ξ,
failed. The amount of failed components
of the lowest hierarchy level
and a certain type, e.g., VNFs1, due to failure (
) of any component types
, i.e.,
, caused by failure of component
can be generalized as an iterative function:
where failures of any component from the higher hierarchy level, from 1 to
c, are taken into account. The failure of
components of type
is caused by failure of components of type 1 to
c, i.e.,
, and reduces the amount of available backup VNFs
r, which are generally allowed to fail, i.e., reduces ACF. The failure of any common root
can be taken into account by Equation (
4) with following assumption:
, if
and
.
Then, ACF
of any shared component is either the total number of available VNFs provided by a reliability class ξ and placed inside component
c, i.e.,
or, the total number of available backup VNFs
r reduced by any failures of common roots, and shared components of any type and any reliability class, whichever is lower. The resulting ACF
shows how many components
c of a reliability class ξ may fail and still keep the service reliable. The amount of backup VNFs is reduced by the VNF failures due to failures of the components from the higher hierarchy level, i.e., from 1 to
c-1, and the certain reliability class ξ, which can be calculated with Equation (
4) as
. Additionally, the number of available backup VNFs is reduced by VNF failures due to a failure of any shared component from any other reliability classes from class 1 to class
. These failures can be also determined with Equation (
4) as
, where
defines the lowest hierarchy of a shared component related to the reliability class
l. Thus, to define ACF of component
, we need to take into account
remaining backup VNFs that can fail without service interruption. Thus, the amount of VNFs of class ξ, which may fail, are defined as
. Since we are interested in ACF of component
, which can be from any hierarchy level, i.e.,
, we need to normalize by the amount of VNFs allocated to component
only, i.e., by
. This is also the number of VNFs, which will fail if one component
fails. As a result, ACF for a component type
shared by multiple VNFs of different type and a reliability class ξ can be derived as follows:
where the sum of all
identifies all failures of component types from 1 to
of reliability classes from 1 to
and, finally, all prior failures of shared components. Obviously, if any prior reliability class
have
unshared components, then all Ψ VNFs as well as all related component types of this class
l are disjoint and there are no shared components, i.e.,
.
Similarly, ACF of unshared components of any type
and any reliability class ξ, i.e.,
, is a function of the remaining available components
of type
c from a reliability class ξ, the amount of remaining backup VNFs out of
r reserved VNFs, and the number of VNFs considered as failed due to failure of common roots, shared components, and unshared components of different reliability classes. Thus, there is a need to define the amount of VNFs that may still fail without interrupting the service, i.e., the minimum between the total number of available VNFs provided by the reliability class ξ and placed inside component
, i.e.,
, and the amount of remaining backup VNFs after failures of any other common roots, shared and unshared components from any other reliability classes. Thus, the number of backup VNFs
r is already reduced by possible failures of shared and unshared components from hierarchy level 1 to
of any reliability class
l,
. These failed VNFs from
different reliability classes can be calculated with Equation (
4) as
. Some VNFs of reliability class ξ could fail due to failures of components from a higher hierarchy level belonging to the same class ξ. Their number can also be determined by Equation (
4) as
. Finally, any other reliability class
l,
, can affect ACF of class ξ, if they utilize some shared components that could fail resulting in
additional VNF failures. Thus, the amount of remaining backup VNFs of a certain type is determined as
and defines the maximal number of VNFs that may fail. To calculate the amount of components
, which can fail resulting in allowed VNFs failures calculated above, the required normalization is performed with
similar to Equation (
5). This product determines the number of VNFs placed inside component
. As a result, ACF for a component
utilized for disjoint placement of Ψ different VNFs of a reliability class ξ is given as follows: