Please use this identifier to cite or link to this item: http://hdl.handle.net/10316/96430
Title: Evaluating and improving cloud computing dependability
Authors: Cerveira, Frederico Manuel Duarte 
Orientador: Barbosa, Raul André Brajczewski
Madeira, Henrique Santos do Carmo
Keywords: Cloud Computing; Virtualization; Dependability; Fault Tolerance; Fault Injection; Availability; Computação em Nuvem; Disponibilidade; Injeção de Falhas; Virtualização; Tolerância a Falhas; Confiabilidade
Issue Date: 29-Sep-2021
Project: SFRH/BD/130601/2017 
Place of publication or event: Coimbra
Abstract: Cloud computing has become the preferred choice by the large majority of organizations to obtain computing resources. Despite the various advantages of cloud computing, it has experienced difficulty in finding adoption by organizations that have mission-critical workloads with strict dependability requirements, as it is at a disadvantage when compared to dedicated infrastructures due to its own ethos. Cloud computing consists in the sharing of computing resources through a network to multiple clients that use the same hosted infrastructure. Resource sharing is usually accomplished using virtualization, however both the practice of sharing the same physical resources and the usage of virtualization increase the impact that a failure may have and the likelihood of failure occurrence. If cloud computing is to be regarded as a trusted platform to support mission-critical workloads, then it must provide similar levels of dependability as those attained by dedicated infrastructures. This thesis addresses the aforementioned issue through the evaluation of the current state of cloud computing dependability and the proposal of contributions that increase its dependability. Both actions are interlinked, since the design of fault tolerance mechanisms that can balance fault coverage and performance overhead requires detailed knowledge about the manner in which cloud computing fails. This information can be extracted from realistic failure data, which is obtained in this thesis using an experimental methodology that employs fault injection for accelerating the data collection process. To support the experimental campaigns, the ucXception framework and the fault injection tools associated with it have been developed from the ground up as part of this thesis. Before the ucXception framework, various fault injection tools had been developed, but few were capable of being used in the context of cloud computing and virtualization, as well as supporting fault models representative of transient hardware faults and software faults. The experimental campaigns yield new findings, from which we highlight the observation that faults in the hypervisor and privileged virtual machine can cause common-mode failures that affect multiple clients at once, and, in some cases, lead to silent data corruption. Faults during the execution of guest virtual machines largely cause failures that lead to downtime of the applications in the virtual machine and which cannot propagate to other virtual machines or to the hypervisor, thus suggesting that mature virtualization solutions provide good isolation. Using this knowledge, we create Romulus, a fault tolerance technique that can tolerate hypervisor failures by migrating virtual machines from the failed hypervisor to a co-located hypervisor. Romulus provides coverage of software and transient hardware faults without requiring redundant hardware and with low downtime, which contributes to its goal of increasing the availability of cloud computing infrastructure. A proof-of-concept implementation is developed and evaluated using fault injection, thereby showing that it can often recover at least part of the virtual machines in a system after a failure. Furthermore, we propose the Availability-as-a-Service framework for promoting the availability of cloud infrastructure at an agreeable performance cost. The framework uses nested virtualization to host a minimal microvisor that contains just the core logic and depends on modules that encompass specific mechanisms that provide fault tolerance and which can be enabled and disabled explicitly by the cloud provider and client.
A computação em nuvem tornou-se na escolha predileta de uma grande maioria de organizações no momento de adquirir recursos computacionais. Apesar das múltiplas vantagens da computação em nuvem, regista-se dificuldade em que esta seja adotada em cenários nos quais existam requisitos estritos de confiabilidade. O próprio ethos da computação em nuvem coloca-a numa posição desfavorável quando comparada com uma infraestrutura dedicada. A computação em nuvem é a partilha de recursos computacionais para vários clientes através de uma rede, sendo normalmente implementada usando virtualização. Todavia tanto a prática de partilhar os mesmos recursos físicos como o uso de virtualização aumentam o impacto que uma avaria pode ter e a probabilidade da sua ocorrência. Para que a computação em nuvem possa ser considerada como uma plataforma adequada e capaz de suportar cargas de trabalho críticas, esta deve providenciar níveis de confiabilidade semelhantes aos de infraestruturas dedicadas. A tese aborda este problema através da avaliação do estado da arte da confiabilidade da computação em nuvem e da criação de propostas para aumentar a sua confiabilidade. Ambos estes aspetos estão relacionados, pois o desenho de mecanismos de tolerância a falhas capazes de obter um bom equilíbrio entre cobertura de falhas e custo de desempenho implica um conhecimento detalhado sobre os vários tipos de avarias que afetam a computação em nuvem. Por sua vez, essa informação pode ser extraída de dados de avarias realísticos, que são obtidos nesta tese com recurso a uma metodologia experimental baseada no uso de injeção de falhas para acelerar o processo de coleção de dados. Para dar suporte às campanhas experimentais, a framework ucXception e as ferramentas de injeção de falhas que lhe estão associadas foram desenvolvidas de raiz durante o decurso deste doutoramento. A framework ucXception é construída a partir de vários anos de estado da arte em ferramentas de injeção de falhas, mas adiciona suporte para modelos de falhas representativos de falhas transitórias de hardware e falhas de software, para além de ser orientada para o uso em contexto de sistemas virtualizados e de computação em nuvem. As campanhas experimentais resultaram em várias descobertas, das quais salientamos a observação de que falhas no hypervisor e na máquina virtual privilegiada podem levar a avarias que afetam vários clientes simultaneamente e com menor frequência podem potenciar a corrupção silenciosa de dados. Em regra, falhas durante a execução das máquinas virtuais hóspedes levam a avarias que causam indisponibilidade das aplicações que executam na própria máquina virtual e que não é propagada para outras máquinas virtuais ou para o hypervisor, o que sugere que soluções de virtualização maduras providenciam bom isolamento. Usando esta informação, criámos a técnica de tolerância a falhas denominada por Romulus, que é capaz de tolerar avarias do hypervisor através da migração das máquinas virtuais do hypervisor avariado para um hypervisor localizado no mesmo sistema físico. O Romulus consegue cobrir falhas de software e falhas transitórias de hardware sem necessitar de hardware redundante e obtendo um baixo tempo de inatividade, factos que contribuem para alcançar o objetivo de melhorar a disponibilidade da infraestrutura que suporta a computação em nuvem. Uma prova de conceito foi desenvolvida e avaliada através da injeção de falhas, assim demonstrando que frequentemente é possível recuperar parte das máquinas virtuais do sistema após avaria. Para além disso, propusemos a framework Availability-as-a-Service, cujo objetivo é melhorar a disponibilidade da infraestrutura de computação em nuvem sem um custo de performance exagerado. A framework usa virtualização nested para alojar um pequeno microvisor que trata apenas da lógica essencial e que depende de módulos que implementam mecanismos de tolerância a falhas e que podem ser ligados e desligados explicitamente pelos provedores e clientes da computação em nuvem.
Description: Tese no âmbito do Programa de Doutoramento em Ciências e Tecnologias da Informação orientada pelo Professor Doutor Raul André Brajczewski Barbosa e pelo Professor Doutor Henrique Santos do Carmo Madeira e apresentada ao Departamento de Engenharia Informática da Faculdade de Ciências e Tecnologia da Universidade de Coimbra.
URI: http://hdl.handle.net/10316/96430
Rights: openAccess
Appears in Collections:FCTUC Eng.Informática - Teses de Doutoramento
UC - Teses de Doutoramento

Files in This Item:
File Description SizeFormat
Tese_Submetida_v2_12Maio2021.pdfTese1.93 MBAdobe PDFView/Open
Capa_TeseDoutoramento_plano.pdfCapa e contra-capa309.54 kBAdobe PDFView/Open
Show full item record

Page view(s)

12
checked on Nov 26, 2021

Download(s)

8
checked on Nov 26, 2021

Google ScholarTM

Check


This item is licensed under a Creative Commons License Creative Commons