# Modeling and Evaluation of Power-Aware Software Rejuvenation in Cloud Systems

^{1}

^{2}

^{*}

## Abstract

**:**

## 1. Introduction

## 2. Related Work

## 3. Overview of SANs

- P is a finite set of places. Places are similar to places in PNs and are represented by circles.
- IA is a finite set of instantaneous activities that represent system activities that are completed almost instantly compared to the corresponding performance variables. Each instantaneous activity is assigned to a case probability function, which returns a value between zero and one, that allows us to express uncertainty. Instantaneous activities are represented by thin lines.
- TA is a finite set of timed activities that represent system activities whose running time affects the system’s functionality and evaluation results. A timed activity is exhibited with X inputs and Y outputs, where X + Y > 0. Each input can be a place or an input gate, and each output can be a place or an output gate. Each timed activity is assigned to an activity time distribution function and an enabling function. Timed activities are represented by thick lines.
- IG is a finite set of input gates. Each input gate has a finite number of inputs. Each G ∈ IG with m inputs is associated with a function ${f}_{G}\text{}:\text{}{N}^{m}\to \text{}{N}^{m}$, called the function of G; and a predicate ${g}_{G}\text{}:\text{}{N}^{m}\to \left\{true,\text{}false\right\}$, called the enabling predicate of G. Input gates provide more flexibility in defining activity enabling and completion rules. Input gates are represented by triangles.
- OG is a finite set of output gates. Each output gate has a finite number of outputs. Each G ∈ OG with m outputs is associated with a function ${f}_{G}\text{}:\text{}{N}^{m}\to \text{}{N}^{m}$, called the function of G. Like input gates, output gates are represented by triangles.
- IR⊆ P × {1, ..., |P|} × IG × (IA∪ TA) is the input relation. IR satisfies the following conditions:
- ○
- For any (P
_{1}, i, G, a) ∈ IR such that G has m inputs, i ≤ m, - ○
- For any G ∈ IG with m inputs and i ∈ N, i ≤ m, there exists a ∈ (IA ∪ T A) and P
_{1}∈ P, such that (P_{1}, i, G, a) ∈ IR, - ○
- For any (P
_{1}, i, G_{1}, a), (P_{1}, j, G_{2}, a) ∈ IR, i = j and G_{1}= G_{2},

- OR⊆ (IA∪ TA) × OG × {1, ..., |P|} × P is the output relation. OR satisfies the following conditions:
- ○
- For any (a, G, i, P
_{1}) ∈ OR, such that G has m outputs, i ≤ m, - ○
- For any G ∈ OG with m outputs and i ∈ N, i ≤ m, there exists a ∈ (IA ∪ T A) and P
_{1}∈ P. such that (a, G, i, P_{1}) ∈ OR, - ○
- For any (a, G
_{1}, i, P_{1}), (a, G_{2}, j, P_{1}) ∈ OR, i = j and G_{1}= G_{2}.

## 4. System Description

## 5. The Proposed Model

_{i}is chosen by this activity, one of the output gates $O{G}_{In{i}_{{S}_{i}}}$ or $O{G}_{In{i}_{{B}_{i}}}$ is selected. If the requested VM is small, the output gate $O{G}_{In{i}_{{S}_{i}}}$ is enabled; otherwise, the output gate $O{G}_{In{i}_{{B}_{i}}}$ is enabled. Here, we assumed that the chance of arrival of a small VM is twice as large as that of a big VM. In the output gate $O{G}_{In{i}_{{S}_{i}}}$, the number of active VMs running on VMM

_{i}and the age of that VMM are both increased by one. However, in the output gate $O{G}_{In{i}_{{B}_{i}}}$, the number of active VMs running on VMM

_{i}increases by one and the related age increases by two. The completion rate of activity $T{A}_{Ini}$ depends on the number of VMs that can be assigned to all available VMMs and the number of VM requests waiting in place ${P}_{Ini}\u2014$whichever is smaller—and the initiation rate of a VM is ${\lambda}_{vi}$. The rate of activity $T{A}_{Ini}$ is demonstrated in Table 1. The predicates and functions corresponding to the input gates of the insertion sub-model are presented in rows 1 and 2 of Table 2, and the functions corresponding to the output gates of the insertion sub-model are presented in rows 1 and 2 of Table 3. In these tables, the ${P}_{i}\to Mark()$ function returns the number of tokens inside place ${P}_{i}$. Notably, though places, activities, and gates of the proposed sub-models are not explicitly connected to each other, these sub-models are implicitly interconnected. The actual connections can be considered by reviewing the predicates and functions of the gates of these sub-models presented in Table 2 and Table 3. As an example, the predicate of $I{G}_{Arr}$ shown in Table 2 indicates that the activation of this input gate of insertion sub-model is dependent on the markings of places ${P}_{CurrentVM{s}_{i}}$ and ${P}_{Mig}$, which are elements of service and green computing sub-model and migration sub-model, respectively.

_{i}is selected to serve the migrating VM, if the VM is small, output gate $O{G}_{Mi{g}_{{S}_{i}}}$ is enabled, and the number of active VMs and the age of that VMM increases by one. If the migrating VM is large, output gate $O{G}_{Mi{g}_{{B}_{i}}}$ is enabled, the number of active VMs running on VMM

_{i}increases by one, and the age of the corresponding VMM increases by two. The completion rate of activity $T{A}_{Mig}$ depends on the number of VMs that can be assigned to all available VMMs and the number of VMs waiting for migration in place ${P}_{Mig}$, whichever is smaller, and the migration rate of a VM is called ${\lambda}_{vmg}$ [40]. The rate of activity $T{A}_{Mig}$ is demonstrated in Table 1. We also assumed a constant number for probability of failure of a VM migration task. Therefore, we assumed that output gate $O{G}_{Mig}{}_{Failed}$ is enabled with probability ${p}_{vmf}$. In this output gate, the removed token from place ${P}_{Mig}$ turns back to place ${P}_{Mig}$. Using this mechanism, the migration of a VM fails and should be retried. The predicate and function corresponding to the input gate of the migration sub-model are presented in row 3 of Table 2, and the output functions of the output gates of this sub-model are presented in rows 3–5 of Table 3.

_{i}. Upon completion of activity $T{A}_{VMTurnOff}{}_{i}$, the number of tokens in place ${P}_{CurrentV{M}_{{S}_{i}}}$ decreases by one. The tokens in place ${P}_{CurrentV{M}_{{S}_{i}}}$ represent the number of active VMs on the VMM

_{i}. When there is no token in place ${P}_{CurrentV{M}_{{S}_{i}}}$, input gate $I{G}_{TurnOff}{}_{i}$ disables time activity $T{A}_{VMTurnOff}{}_{i}$. Serving individual VMs occurs at rate ${\lambda}_{vt}$, so the actual service rate of all VMs running on a VMM during the execution of timed activity $T{A}_{VMTurnOff}{}_{i}$ is equal to ${\lambda}_{vt}\ast Mark\left({P}_{CurrentV{M}_{{S}_{i}}}\right)$, where $Mark({P}_{CurrentV{M}_{{S}_{i}}})$ indicates the number of tokens inside place ${P}_{CurrentV{M}_{{S}_{i}}}$. In other words, the actual service rate of VMs running on a VMM is the product of the ${\lambda}_{vt}$ and the number of active VMs running on that VMM.

_{i}is activated by enabling output gate $O{G}_{WakeUp}{}_{i}$ and becomes ready for accepting VMs.

_{i}that is lightly loaded or has no workload. When other active VMMs have enough free capacity to accept all VMs running on top of VMM

_{i}, the VMs are placed into the migration queue, and then VMM

_{i}and its hosting PM are switched off. Upon completion of instantaneous activity $I{A}_{Idle}{}_{i}$, the number of tokens in place ${P}_{Idle}$ increases by one, and the number of tokens in place ${P}_{CurrentV{M}_{{S}_{i}}}$ is set to zero. If the tokens in place ${P}_{CurrentV{M}_{{S}_{i}}}$ cannot be moved to places ${P}_{CurrentV{M}_{{S}_{j}}}$ (i ≠ j), input gate $I{G}_{Idle}{}_{i}$ prevents instantaneous activity $I{A}_{Idle}{}_{i}$ from completion because other VMMs are unable to accept VMs running on VMM

_{i}. The predicates and functions corresponding to the input gates of the service and green computing sub-model are presented in rows 4–6 of Table 2, and the function corresponding to the output gate of this sub-model is presented in row 6 of Table 3.

_{i}. Therefore, the number of tokens in place ${P}_{Total}{}_{i}$ is set to zero just after rejuvenation or reboot of VMM

_{i}. When the number of tokens in place ${P}_{Total}{}_{i}$ reaches threshold ${T}_{2}$, the input gate $I{G}_{Rej}$ is enabled and moves tokens from place ${P}_{CurrentV{M}_{{S}_{i}}}$ to place ${P}_{Mig}$. By applying this mechanism, the migration of VMs from VMM

_{i}to other VMMs of the data center is modeled when a VMM has to be rejuvenated. Timed activity $T{A}_{Re{j}_{i}}$ models the rejuvenation process of a VMM with rate ${\lambda}_{hrj}$. Upon completion of this activity, the number of tokens in place ${P}_{Total}{}_{i}$ is set to zero by output gate $O{G}_{Re{j}_{i}}$, which represents the age of the newly rejuvenated VMM

_{i}. A rejuvenated VMM is active and can accept and serve VMs. However, if there is no VM to be hosted by the rejuvenated VMM, the VMM is switched off by input gate $I{G}_{Idle}{}_{i}$ modeled in the service and green computing sub-model.

_{i}. When the number of tokens in place ${P}_{Total}{}_{i}$ reaches the threshold ${T}_{1}$, where ${T}_{1}$ < ${T}_{2}$, and there are less tokens in place ${P}_{CurrentV{M}_{{S}_{i}}}$ than free capacity on other active VMMs, the input gate $I{G}_{PreRe{j}_{i}}$ is enabled. In this situation, input gate $I{G}_{PreRe{j}_{i}}$ moves all tokens of place ${P}_{CurrentV{M}_{{S}_{i}}}$ to place ${P}_{Mig}$. The completion rate of timed activity $T{A}_{PreRe{j}_{i}}$ is ${\lambda}_{hrj}$. The output gate $O{G}_{PreRe{j}_{i}}$ sets the number of tokens in place ${P}_{Total}{}_{i}$ to zero right after the rejuvenation process. The predicates and functions corresponding to the input gates of the rejuvenation sub-model are presented in rows 7 and 8 of Table 2, and the functions corresponding to the output gates of this sub-model are presented in rows 7 and 8 of Table 3.

_{i}fails, a token is put in place ${P}_{Failed}{}_{i}$. After failure detection and during the repair of VMM

_{i}, a token is put into place ${P}_{Repair}{}_{i}$. Timed activity $T{A}_{Failed}{}_{i}$ models the failure event of VMM

_{i}. If there is a token in place ${P}_{Failed}{}_{i}$ or there are as many tokens in place ${P}_{Total}{}_{i}$ as in ${T}_{2}$, the input gate $I{G}_{Faile{d}_{i}}$ disables activity $T{A}_{Failed}{}_{i}$. Upon completion of activity $\text{}T{A}_{Failed}{}_{i}$, the number of tokens in place ${P}_{Total}{}_{i}$ is set to zero by output gate $O{G}_{Failed}{}_{i}$, and the number of tokens in place ${P}_{Repair}{}_{i}$ increases by one. Once VMM

_{i}is repaired, the numbers of tokens in places ${P}_{Repair}{}_{i}$ and ${P}_{Failed}{}_{i}$ become zero, and the VMM is reactivated. The completion rate of timed activity $T{A}_{Failed}{}_{i}$ is the product of the number of tokens in place ${P}_{Total}{}_{i}$ and the failure rate of an active VMM called ${\lambda}_{hf}$. The greater the age of a VMM, the greater the failure probability of that VMM.

_{i}. When there is a token in place ${P}_{Repair}{}_{i}$, timed activity $T{A}_{Repair}{}_{i}$ is enabled and can complete the activity. Then, the number of tokens in places ${P}_{Total}{}_{i}$ and ${P}_{Failed}{}_{i}$ is set to zero by the output gate $O{G}_{Repair}{}_{i}$. The completion rate of timed activity $T{A}_{Repair}{}_{i}$ is ${\lambda}_{hrp}$. The predicate and function corresponding to the input gate of failure sub-model are presented in row 9 of Table 2, and the functions corresponding to the output gates of this sub-model are presented in rows 9 and 10 of Table 3.

## 6. Performance Evaluation

## 7. Conclusions and Future Work

## Author Contributions

## Funding

## Acknowledgments

## Conflicts of Interest

## References

- Armbrust, M.; Fox, A.; Griffith, R.; Joseph, A.; Katz, R. A View of cloud computing. Commun. ACM
**2010**, 53, 50–58. [Google Scholar] [CrossRef] - Mell, P.; Grance, T. The NIST Definition of Cloud Computing; National Institute of Standards and Technology (NIST): Gaithersburg, MD, USA, 2011. [Google Scholar]
- Han, Y.; Chan, J.; Alpcan, T.; Leckie, C. Using virtual machine allocation policies to defend against co-resident attacks in cloud computing. IEEE Trans. Dependable Secur.
**2017**, 14, 95–108. [Google Scholar] [CrossRef] - Zhu, W.; Zhuang, Y.; Zhang, L. A three-dimensional virtual resource scheduling method for energy saving in cloud computing. Future Gener. Comput. Syst.
**2017**, 69, 66–74. [Google Scholar] [CrossRef] - Abbasi, A.A.; Jin, H. v-Mapper: An Application-Aware Resource Consolidation Scheme for Cloud Data Centers. Future Internet
**2018**, 10, 90. [Google Scholar] [CrossRef] - Ever, E. Performability analysis of cloud computing centers with large numbers of servers. J. Supercomput.
**2016**, 73, 2130–2156. [Google Scholar] [CrossRef] - Hasan, M.; Goraya, M.S. Fault tolerance in cloud computing environment: A systematic survey. Comput. Ind.
**2018**, 99, 156–172. [Google Scholar] [CrossRef] - Nguyen, T.A.; Kim, D.S.; Park, J.S. A comprehensive availability modeling and analysis of a virtualized servers system using stochastic reward nets. Sci. World J.
**2014**, 2014, 165316. [Google Scholar] [CrossRef] [PubMed] - Colman-Meixner, C.; Develder, C.; Tornatore, M.; Mukherjee, B. A survey on resiliency techniques in cloud computing infrastructures and applications. IEEE Commun. Surv. Tutor.
**2016**, 18, 2244–2281. [Google Scholar] [CrossRef] - Melo, M.; Araujo, J.; Matos, R.; Menezes, J.; Maciel, P. Comparative analysis of migration based rejuvenation schedules on cloud availability. In Proceedings of the IEEE International Conference on Systems, Man, and Cybernetics (SMC), Manchester, UK, 13–16 October 2013. [Google Scholar]
- Machida, F.; Seong Kim, D.; Trividi, K.S. Modeling and analysis of software rejuvenation in a server virtualized system with live VM migration. Perform. Eval.
**2013**, 70, 212–230. [Google Scholar] [CrossRef] - Xia, Y.; Han, Y.; Zhou, M.; Li, J. A stochastic model for performance and energy consumption analysis of rejuvenation and migration-enabled cloud. In Proceedings of the International Conference on Advanced Mechatronic Systems, Kumamoto, Japan, 10–12 August 2014. [Google Scholar]
- Zheng, J.; Okamura, H.; Li, L.; Dohi, T. A Comprehensive Evaluation of Software Rejuvenation Policies for Transaction Systems with Markovian Arrivals. IEEE Trans. Reliab.
**2017**, 66, 1157–1177. [Google Scholar] [CrossRef] - Sharma, S.; Singh, S.; Singh, A.; Kaur, R. Virtualization in Cloud Computing. Int. J. Sci. Res. Sci. Eng. Technol.
**2016**, 2, 181–186. [Google Scholar] - Bruneo, D.; Pulionio, A. Workload based software rejuvenation in cloud systems. IEEE Trans. Comput.
**2013**, 62, 1072–1085. [Google Scholar] [CrossRef] - Liu, J.; Zhou, J.; Buyya, R. Software rejuvenation based fault tolerance scheme for cloud application. In Proceedings of the IEEE 8th International Conference on Cloud Computing, New York, NY, USA, 27 June–2 July 2015. [Google Scholar]
- Valentim, N.A.; Macedo, A.; Matias, R. A systematic mapping review of the first 20 years of software aging and rejuvenation research. In Proceedings of the IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW), Ottawa, ON, Canada, 23–27 October 2016; pp. 57–63. [Google Scholar]
- Alshathri, S.; Ghita, B.; Clarke, N. Sharing with Live Migration Energy Optimization Scheduler for Cloud Computing Data Centers. Future Internet
**2018**, 10, 86. [Google Scholar] [CrossRef] - Bawden, T. Global Warming: Data Centres to Consume Three Times as Much Energy in Next Decade, Experts Warn, Independent. Available online: http://www.independent.co.uk/environment/global-warming-data-centres-to-consume-three-times-as-much-energy-in-next-decade-experts-warn-a6830086.html (accessed on 10 July 2018).
- Uchechukwu, A.; Li, K.; Shen, Y. Energy Consumption in Cloud Computing Data Centers. Int. J. Cloud Comput. Serv. Sci.
**2014**, 3, 31–48. [Google Scholar] - Cotroneo, D.; Natella, R.; Pietrantuono, R.; Russo, S. A survey of software aging and rejuvenation studies. ACM J. Emerg. Technol. Comput.
**2014**, 10, 8. [Google Scholar] [CrossRef] - Roohitavaf, M.; Entezari-maleki, R.; Movaghar, A. Availability modeling and evaluation of cloud virtual data centers. In Proceedings of the International Conference on Parallel and Distributed Systems (ICPADS), Seoul, Korea, 15–18 December 2013. [Google Scholar]
- SAN Atomic Formalism, Mӧbius Wiki. Available online: https://www.mobius.illinois.edu/wiki/index.php/SAN_Atomic_Formalism (accessed on 10 July 2018).
- Sanders, W.H. Mobius Manual; University of Illinois: Chicago, IL, USA, 2012. [Google Scholar]
- Sanders, W.H.; Meyer, J.F. Stochastic activity networks: Formal definitions and concepts. In Lectures on Formal Methods and Performance Analysis; Brinksma, E., Hermanns, H., Katoen, J.-P., Eds.; Springer: Berlin, Germany, 2001; pp. 315–343. [Google Scholar]
- Movaghar, A. Stochastic activity networks: A new definition and some properties. Sci. Iran.
**2001**, 8, 303–311. [Google Scholar] - Movaghar, A.; Meyer, J.F. Performability modeling with stochastic activity networks. In Proceedings of the 1984 Real-Time Systems Symposium, Austin, TX, USA, 6–8 August 1984. [Google Scholar]
- Meyer, J.F.; Movaghar, A.; Sanders, W.H. Stochastic activity networks: Structure, behavior, and application. In Proceedings of the International Workshop on Timed Petri Nets, Torino, Italy, 1–3 July 1985. [Google Scholar]
- Melo, M.; Maciel, P.; Araujo, J.; Matos, R.; Araujo, C. Availability Study on Cloud Computing Environments: Live Migration as a Rejuvenation Mechanism. In Proceedings of the 43rd IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), Budapest, Hungary, 24–27 June 2013. [Google Scholar]
- Kourai, K.; Ooba, H. Zero-copy migration for lightweight software rejuvenation of virtualized systems. In Proceedings of the ACM 6th Asia-Pacific Workshop on Systems, Tokyo, Japan, 27–28 July 2015. [Google Scholar]
- Sudhakar, C.; Shah, I.; Ramesh, T. Software rejuvenation in cloud systems using neural networks. In Proceedings of the IEEE International Conference on Parallel, Distributed and Grid Computing (PDGC), Solan, India, 11–13 December 2014; pp. 230–233. [Google Scholar]
- Araujo, J.; Matos, R.; Alves, V.; Maciel, P.; Souza, F.; Trivedi, K.S. Software aging in the eucalyptus cloud computing infrastructure: Characterization and rejuvenation. ACM J. Emerg. Technol. Commun.
**2014**, 10, 11. [Google Scholar] [CrossRef] - Daly, D.; Deavours, D.D.; Doyle, J.M.; Webster, P.G.; Sanders, W.H. Mobius: An extensible tool for performance and dependability modeling. In Proceedings of the 11th International Conference on Computer Performance Evaluation: Modelling Techniques and Tools, Schaumburg, IL, USA, 25–31 March 2000; pp. 332–336. [Google Scholar]
- Sanders, W.H.; Oballl, W.D.; Qureshi, M.A.; Widjanarko, F.K. The UltraSAN modeling environment. Perform. Eval.
**1995**, 24, 89–115. [Google Scholar][Green Version] - Sanders, W.H.; Meyer, J.F. METASAN: A performability evaluation tool based on stochastic activity networks. In Proceedings of the 1986 ACM Fall Joint Computer Conference, Dallas, TX, USA, 2–6 November 1986. [Google Scholar]
- Ataie, E.; Entezari-Maleki, R.; Rashidi, L.; Trivedi, K.; Ardagna, D.; Movaghar, A. Hierarchical stochastic models for performance, availability, and power consumption analysis of IaaS clouds. IEEE Trans. Cloud Comput.
**2017**, in press. [Google Scholar] [CrossRef] - Bruneo, D.; Lhoas, A.; Longo, F.; Puliafito, A. Modeling and evaluation of energy policies in green clouds. IEEE Trans. Parall. Distrib.
**2015**, 26, 3052–3065. [Google Scholar] [CrossRef] - Entezari-Maleki, R.; Sousa, L.; Movaghar, A. Performance and power modeling and evaluation of virtualized servers in IaaS clouds. Inf. Sci.
**2017**, 394–395, 106–122. [Google Scholar] [CrossRef] - Ataie, E.; Entezari-Maleki, R.; Etesami, E.; Egger, B.; Ardagna, D.; Movaghar, A. Power-aware Performance Analysis of Self-adaptive Resource Management in IaaS Clouds. Future Gener. Comput. Syst.
**2018**, 86, 134–144. [Google Scholar] [CrossRef] - Hlaing, P.P.; Thein, T. Availability Enhancement for Cloud Services by Migration based Rejuvenation: Analytical Modeling. In Proceedings of the 3rd International Conference on Computational Techniques and Artificial Intelligence, Singapore, 11–12 February 2014. [Google Scholar]
- Ciardo, G.; Blakemore, A.; Chimento, P.F.; Muppala, J.K.; Trivedi, K.S. Automated generation and analysis of markov reward models using stochastic reward nets. In Linear Algebra, Markov Chains, and Queueing Models; The IMA Volumes in Mathematics and Its Application; Meyer, C.D., Plemmons, R.J., Eds.; Springer: New York, NY, USA, 1993; pp. 145–191. [Google Scholar]
- Ataie, E.; Gianniti, E.; Ardagna, D.; Movaghar, A. A Combined Analytical Modeling Machine Learning Approach for Performance Prediction of MapReduce Jobs in Cloud Environment. In Proceedings of the 18th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC), Timisoara, Romania, 24–27 September 2016. [Google Scholar]

**Figure 2.**The proposed Stochastic Activity Network (SAN) for (

**a**) insertion sub-model, (

**b**) migration sub-model, (

**c**) service and green computing sub-model, (

**d**) rejuvenation sub-model, and (

**e**) failure sub-model.

**Figure 3.**Results obtained by solving the proposed SAN model representing (

**a**) probability of VMM failure, (

**b**) ratio of serving VMs to accepted VMs, (

**c**) mean number of failed VMs and (

**d**) total power consumption.

Timed Activity | Rate |
---|---|

$\mathit{T}{\mathit{A}}_{\mathit{I}\mathit{n}\mathit{i}}$ | possibleIni =$\sum _{i=1}^{N}(P\_tota{l}_{i}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left(P\_Faile{d}_{i}\to Mark()==1\text{}\right)?$ M: (M – ${P}_{CurrentVM{s}_{i}}$ $\to Mark$()); possibleIni ⎼ = ${P}_{Mig}\to Mark()$; minimum = (possibleIni <= ${P}_{Ini}\to Mark$())? possibleIni: ${P}_{Ini}\to Mark$(); return minimum * ${\lambda}_{vi}$; |

$\mathit{T}{\mathit{A}}_{\mathit{M}\mathit{i}\mathit{g}}$ | possibleIni =$\sum _{i=1}^{N}(P\_tota{l}_{i}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left(P\_Faile{d}_{i}\to Mark()==1\text{}\right)?$ M: (M – ${P}_{CurrentVM{s}_{i}}$ $\to Mark$()); possibleIni ⎼ = ${P}_{Mig}\to Mark()$; minimum = (possibleIni <= ${P}_{Mig}\to Mark$())? possibleIni: ${P}_{Mig}\to Mark$(); return minimum * ${\lambda}_{vmg}$; |

Gate | Predicate | Function |
---|---|---|

$\mathit{I}{\mathit{G}}_{\mathit{A}\mathit{r}\mathit{r}}$ | systemLoad =$\sum _{i=1}^{N}\text{}{P}_{CurrentVM{s}_{i}}\to Mark()+{P}_{Ini}\to Mark()+{P}_{Mig}\to Mark()$; (${Q}_{in}$> systemLoad)? return 1: 0; | ; |

$\mathit{I}{\mathit{G}}_{\mathit{I}\mathit{n}\mathit{i}}$ | availCapacity = $\sum _{i=1}^{N}(P\_tota{l}_{i}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left(P\_Faile{d}_{i}\to Mark()==1\right)\text{}?$ M : (M – ${P}_{CurrentVM{s}_{i}}$ $\to Mark$()); availCapacity ⎼ = ${P}_{Mig}\to Mark()$; (${P}_{Ini}\to Mark$() > 0) && (availCapacity > 0)? return 1: 0; | ${\mathit{P}}_{\mathit{I}\mathit{n}\mathit{i}}$$\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()--;$ |

$\mathit{I}{\mathit{G}}_{\mathit{M}\mathit{i}\mathit{g}}$ | availCapacity = $\sum _{i=1}^{N}({P}_{Tota{l}_{i}}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left({P}_{Faile{d}_{i}}\to Mark()==1\right)\text{}?$ M : (M ⎼ ${P}_{CurrentVM{s}_{i}}$ $\to Mark$()); (${P}_{Mig}\to Mark$() > 0) && (availCapacity > 0)? return 1 : 0; | ${\mathit{P}}_{\mathit{M}\mathit{i}\mathit{g}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()--;$ |

$\mathit{I}{\mathit{G}}_{\mathit{W}\mathit{a}\mathit{k}\mathit{e}\mathit{u}\mathit{p}}$ | availCapacity = (N –$\sum _{i=1}^{N}{P}_{Failed}{}_{i}\to Mark()$) * M; systemLoad =$\sum _{i=1}^{N}\text{}{P}_{CurrentVM{s}_{i}}\to Mark()$; (availCapacity < systemLoad +${P}_{Ini}\to Mark()+{P}_{Mig}\to Mark()$) && (${P}_{Idle}$⟶Mark() > 0)? return 1: 0; | ${\mathit{P}}_{\mathit{I}\mathit{d}\mathit{l}\mathit{e}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()--;$ |

$\mathit{I}{\mathit{G}}_{\mathit{I}\mathit{d}\mathit{l}{\mathit{e}}_{\mathit{i}}}$ | availCapacity = $\sum _{j=1\text{}.i\text{}\ne j\text{}}^{N}({P}_{Tota{l}_{j}}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left({P}_{Faile{d}_{j}}\to Mark()==1\right)\text{}?$ 0 : (M ⎼$\text{}{P}_{CurrentVM{s}_{i}}$ $\to Mark$ ()); (${P}_{Faile{d}_{i}}\to Mark$() < 1) && (availCapacity > ${P}_{CurrentVM{s}_{i}}$ $\to Mark$() + ${P}_{Ini}\to Mark()+{P}_{Mig}\to Mark()$)? return 1: 0; | ${\mathit{P}}_{\mathit{M}\mathit{i}\mathit{g}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()\text{}+={\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}$$\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}();$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}$$\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=\mathbf{0};$ ${\mathit{P}}_{\mathit{T}\mathit{o}\mathit{t}\mathit{a}{\mathit{l}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=\mathbf{0};$ |

$\mathit{I}{\mathit{G}}_{\mathit{T}\mathit{u}\mathit{r}\mathit{n}\mathit{O}\mathit{f}{\mathit{f}}_{\mathit{i}}}$ | ${P}_{CurrentVM{s}_{i}}$$\to Mark$() > 0 | ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}$$\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()--;$ |

$\mathit{I}{\mathit{G}}_{\mathit{R}\mathit{e}{\mathit{j}}_{\mathit{i}}}$ | (${P}_{Tota{l}_{i}}\to Mark$() == ${T}_{2}$) && (${P}_{Faile{d}_{i}}\to Mark$() < 1) | ${\mathit{P}}_{\mathit{M}\mathit{i}\mathit{g}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()\text{}+=$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}();$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=0;$ |

$\mathit{I}{\mathit{G}}_{\mathit{P}\mathit{r}\mathit{e}\mathit{R}\mathit{e}{\mathit{j}}_{\mathit{i}}}$ | availCapacity = $\sum _{j=1\text{}.i\text{}\ne j\text{}}^{N}({P}_{Tota{l}_{j}}\to Mark()\text{}==\text{}{T}_{2})$ &&$\text{}\left({P}_{Faile{d}_{j}}\to Mark()==1\right)\text{}?$ 0: (M – ${P}_{CurrentVM{s}_{i}}$ $\to Mark$ ()); (availCapacity > ${P}_{CurrentVM{s}_{i}}$ $\to Mark()$ + ${P}_{Ini}\to Mark()+{P}_{Mig}\to Mark()$) && (${P}_{Faile{d}_{i}}\to Mark$() < 1) && (${P}_{Tota{l}_{i}}\to Mark$() == ${T}_{1}$)? return 1: 0; | ${\mathit{P}}_{\mathit{T}\mathit{o}\mathit{t}\mathit{a}{\mathit{l}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=$${\mathit{T}}_{\mathbf{2}}$; ${\mathit{P}}_{\mathit{M}\mathit{i}\mathit{g}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()\text{}+=$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}$$\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}();$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=\mathbf{0}$ |

$\mathit{I}{\mathit{G}}_{\mathit{F}\mathit{a}\mathit{i}\mathit{l}\mathit{e}{\mathit{d}}_{\mathit{i}}}$ | $VMM\_loa{d}_{i}$ = (${P}_{Faile{d}_{i}}\text{}\to Mark$() < 1)? ${P}_{CurrentVM{s}_{i}}$ $\to Mark$(): M+1; ((${P}_{Faile{d}_{i}}\to Mark$() == 0) && ($VMM\_loa{d}_{i}$ < M + 1))? return 1: 0; | ${\mathit{P}}_{\mathit{F}\mathit{a}\mathit{i}\mathit{l}\mathit{e}{\mathit{d}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()++;$ ${\mathit{P}}_{\mathit{C}\mathit{u}\mathit{r}\mathit{r}\mathit{e}\mathit{n}\mathit{t}\mathit{V}\mathit{M}{\mathit{s}}_{\mathit{i}}}\to \mathit{M}\mathit{a}\mathit{r}\mathit{k}()=\mathbf{0};$ |

Gate | Function |
---|---|

$\mathit{O}{\mathit{G}}_{\mathit{I}\mathit{n}{\mathit{i}}_{{\mathit{S}}_{\mathit{i}}}}$ | $VMM\_Loa{d}_{i}$= ((${P}_{Faile{d}_{i}}\to Mark()<1$) && (${P}_{Tota{l}_{i}}\to Mark$() < ${T}_{2}$))? ${P}_{CurrentVM{s}_{i}}\to Mark()\text{}$: M; ($VMM\_Loa{d}_{i}<M$)? {${P}_{currentVM{s}_{i}}\to Mark$() ++; ${P}_{Tota{l}_{i}}\to Mark$() ++;}: ${P}_{Ini}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{I}\mathit{n}{\mathit{i}}_{{\mathit{B}}_{\mathit{i}}}}$ | $VMM\_Loa{d}_{i}$= ((${P}_{Faile{d}_{i}}\to Mark()<1$) && (${P}_{Tota{l}_{i}}\to Mark$() < ${T}_{2}$ – 2))? ${P}_{CurrentVM{s}_{i}}\to Mark()$ : M; ($VMM\_Loa{d}_{i}<M$)? {${P}_{CurrentVM{s}_{i}}\to Mark$() ++; ${P}_{Tota{l}_{i}}\to Mark$ () += 2;}: ${P}_{Ini}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{M}\mathit{i}{\mathit{g}}_{{\mathit{S}}_{\mathit{i}}}}$ | $VMM\_Loa{d}_{i}$= ((${P}_{Faile{d}_{i}}\to Mark()<1$) && (${P}_{Tota{l}_{i}}\to Mark$() < ${T}_{2}$)) ? ${P}_{CurrentVM{s}_{i}}\to Mark()$ : M; ($VMM\_Loa{d}_{i}<M$)? {${P}_{CurrentVM{s}_{i}}\to Mark$() ++; ${P}_{Tota{l}_{i}}\to Mark$() ++;}: ${P}_{Mig}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{M}\mathit{i}{\mathit{g}}_{{\mathit{B}}_{\mathit{i}}}}$ | $VMM\_Loa{d}_{i}$= ((${P}_{Faile{d}_{i}}\to Mark()<1$) && (${P}_{Tota{l}_{i}}\to Mark$() < ${T}_{2}$ - 2))? ${P}_{CurrentVM{s}_{i}}\to Mark()$ : M; ($VMM\_Loa{d}_{i}<M$)? {${P}_{CurrentVM{s}_{i}}\to Mark$() ++; ${P}_{Tota{l}_{i}}\to Mark$() += 2;}: ${P}_{Mig}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{M}\mathit{i}{\mathit{g}}_{\mathit{F}\mathit{a}\mathit{i}\mathit{l}\mathit{e}\mathit{d}}}$ | ${P}_{Mig}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{W}\mathit{a}\mathit{k}\mathit{u}{\mathit{p}}_{\mathit{i}}}$ | ${P}_{CurrentVM{s}_{i}}\to Mark$() = 0; |

$\mathit{O}{\mathit{G}}_{\mathit{R}\mathit{e}{\mathit{j}}_{\mathit{i}}}$ | ${P}_{Tota{l}_{i}}\to Mark$() = 0; |

$\mathit{O}{\mathit{G}}_{\mathit{P}\mathit{r}\mathit{e}\mathit{R}\mathit{e}{\mathit{j}}_{\mathit{i}}}$ | ${P}_{Tota{l}_{i}}\to Mark$() = 0; |

$\mathit{O}{\mathit{G}}_{\mathit{F}\mathit{a}\mathit{i}\mathit{l}\mathit{e}{\mathit{d}}_{\mathit{i}}}$ | ${P}_{Tota{l}_{i}}\to Mark$() = 0; ${P}_{Repai{r}_{i}}\to Mark$() ++; |

$\mathit{O}{\mathit{G}}_{\mathit{R}\mathit{e}\mathit{p}\mathit{a}\mathit{i}\mathit{r}}{}_{\mathit{i}}$ | ${P}_{Faile{d}_{i}}\text{}\to Mark$ () ⎼ ⎼; ${P}_{CurrentVM{s}_{i}}\to Mark$() = 0; |

Parameter | Description | Value/Range | Unit |
---|---|---|---|

${\lambda}_{hf}$ | VMM failure rate | 0.00139 | VMM/h |

${\lambda}_{hrj}$ | VMM rejuvenation rate | 30 | VMM/h |

${\lambda}_{hrp}$ | VMM repair rate | 2 | VMM/h |

${\lambda}_{pw}$ | PM wakeup rate | 1440 | PM/h |

${\lambda}_{va}$ | VM requests arrival rate | [5 … 20] | VM/h |

${\lambda}_{vt}$ | VM switch off rate | 0.5 | VM/h |

${\lambda}_{vmg}$ | VM migration rate | 1200 | VM/h |

${\lambda}_{vi}$ | VM initiation rate | 120 | VM/h |

${p}_{vmf}$ | Probability of VM migration failure | 0.01 | - |

$N$ | Number of PMs | 3 | - |

$M$ | Number of VMs per PM | 3 | - |

${Q}_{c}$ | Size of input queue | 5 | - |

${Q}_{m}$ | Size of migration queue | 6 | - |

${\rho}_{b}$ | Power consumption of a PM running a VMM | 100 | W |

${\rho}_{v}$ | Power consumption of a VM | 10 | W |

© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).

## Share and Cite

**MDPI and ACS Style**

Fakhrolmobasheri, S.; Ataie, E.; Movaghar, A.
Modeling and Evaluation of Power-Aware Software Rejuvenation in Cloud Systems. *Algorithms* **2018**, *11*, 160.
https://doi.org/10.3390/a11100160

**AMA Style**

Fakhrolmobasheri S, Ataie E, Movaghar A.
Modeling and Evaluation of Power-Aware Software Rejuvenation in Cloud Systems. *Algorithms*. 2018; 11(10):160.
https://doi.org/10.3390/a11100160

**Chicago/Turabian Style**

Fakhrolmobasheri, Sharifeh, Ehsan Ataie, and Ali Movaghar.
2018. "Modeling and Evaluation of Power-Aware Software Rejuvenation in Cloud Systems" *Algorithms* 11, no. 10: 160.
https://doi.org/10.3390/a11100160