Maximizing Error Injection Realism for Chaos Engineering with System Calls

Total Page:16

File Type:pdf, Size:1020Kb

Maximizing Error Injection Realism for Chaos Engineering with System Calls Maximizing Error Injection Realism for Chaos Engineering with System Calls Long Zhang1, Brice Morin2, Benoit Baudry1, and Martin Monperrus1 1KTH Royal Institute of Technology, Sweden 2Tellu, Norway Abstract—In this paper, we present a novel fault injection number of invocations to system calls that naturally fail in framework for system call invocation errors, called PHOEBE. production. We propose a novel fault injection framework PHOEBE is unique as follows; First, PHOEBE enables developers called PHOEBE, for doing realistic error injection at the system to have full observability of system call invocations. Second, HOEBE PHOEBE generates error models that are realistic in the sense call level. To define realistic errors, P first observes that they mimic errors that naturally happen in production. the natural system call invocation errors which happen in a Third, PHOEBE is able to automatically conduct experiments to production system. Then it analyzes those previously observed systematically assess the reliability of applications with respect errors to synthesize a series of realistic error injection models to system call invocation errors in production. We evaluate the that systematically amplify natural errors. The injection of effectiveness and runtime overhead of PHOEBE on two real-world applications in a production environment for a single software such realistic errors brings valuable insights into the error stack: Java. The results show that PHOEBE successfully generates handling capabilities of an application with respect to realistic realistic error models and is able to detect important reliability system call invocation errors. To our knowledge, the synthesis weaknesses with respect to system call invocation errors. To our of those realistic error models is the key novelty of PHOEBE. knowledge, this novel concept of “realistic error injection”, which We evaluate PHOEBE with two real-world applications: consists of grounding fault injection on production errors, has never been studied before. Hedwig, an email server that uses the SMTP and IMAP protocols, and TTorrent, a file downloading client based on the Index Terms—fault injection, system call, chaos engineering BitTorrent protocol. During the experiments in a production environment, PHOEBE observes that 84 million invocations to I. INTRODUCTION 23 unique system calls naturally fail. Based on these errors, In cloud-based software systems, one cannot fully control PHOEBE synthesizes 32 and 33 realistic error injection models the production execution environment and many unexpected for HedWig and TTorrent respectively. The generated error events keep happening: hardware issues, network fluctuations, models are then used to perform a series of chaos engineering and unanticipated user behavior [36], [61]. In order to assess experiments, which reveal important reliability shortcomings and improve the reliability of software systems in such a in both applications. The results of these experiments demon- changing and imperfect environment, different kinds of tech- strate the feasibility, applicability and added value of PHOEBE niques are being researched, in particular fault injection [45], for analyzing reliability against system call invocation errors. [58]. Fault injection evaluates software reliability by actively To sum up, our contributions are the following. injecting errors into the software system under study [34], • The concept of synthesizing realistic error injection mod- arXiv:2006.04444v7 [cs.SE] 2 Apr 2021 [64]. A recent trend in fault injection consists of injecting els for system calls, based on the amplification of errors faults in production directly [3], [8], [63], this is known in the that are naturally observed in production. industry as “chaos engineering”. In this paper, we use “chaos • PHOEBE, a fault injection framework that implements engineering” for referring to fault injection in production. this concept. PHOEBE monitors a production system, It is known that the space of all possible error injection is generates realistic error models, conducts chaos engineer- large [4]. In other words, it is potentially intractable to explore ing fault injection experiments, and outputs a reliability all possible error scenarios. When doing fault injection in assessment with respect to system call invocation errors. production, one does not want to impact users with unrealistic PHOEBE is publicly available for future research in this errors. In this paper, we address the problem of defining a area1. tractable error injection space, by exclusively focusing on • An empirical evaluation of PHOEBE with two real-world realistic errors. Our novel definition of realistic errors is that applications, an email server and a file downloading the injected errors resemble the ones that naturally happen in client, under a production workload. The results show that production. By injecting realistic errors, we identify reliability PHOEBE can inject realistic errors at runtime, in produc- issues that are more relevant for developers. tion, with low overhead, in order to detect error handling In this paper, we realize this idea in the realm of system call weaknesses with respect to system call invocation errors. errors. This focus is motivated by the essential role of system calls to analyze software behavior [21], and by the significant 1https://github.com/KTH/royal-chaos/tree/master/phoebe 1 The rest of the paper is organized as follows: Section II resources such as hardware devices and process scheduling are introduces the background. Section III and Section IV present usually managed by the kernel. When a user application needs the design and evaluation of PHOEBE. Section V discusses the to interact with a given critical resource, the corresponding runtime overhead of PHOEBE and the threats to the validity of system call is invoked. For example, in Linux, the open this research work. Section VI presents the related work, and system call is invoked when an application needs to open Section VII summarizes the paper. or create a file. Linux defines and implements more than 300 unique system calls, as well as over 100 error codes to II. BACKGROUND precisely report on errors upon invocation of those system calls A. Observability in Software Systems [55]. A software system is said to be observable if it is possible As discussed in Section II-B, an application may be per- to analyze the system’s internal state on the basis of its turbed by both hardware errors and software errors. Sometimes external behavior [40]. For example, by observing an HTTP such errors can not be handled by the operating system on its 500 response code instead of 200, developers are able to know own. Thus it propagates the error to the application, by failing that there are some errors in the system when handling an a system call invocation with an error code. HTTP request. In the context of errors, observability relates to the ability of detecting when an error naturally occurs in a III. DESIGN &IMPLEMENTATION OF PHOEBE software system. In this case, observability helps developers to Now we describe PHOEBE, a system for defining and in- evaluate the system’s error detection and handling capabilities. jecting realistic system call perturbations in software systems. There are mainly three categories of observability tech- niques [53]: 1) logging the system’s internal state. For ex- A. Objective of PHOEBE ample, using Exception.printStackTrace() method in Java to log stack information when an exception occurs. Applications contain a large amount of code for handling 2) monitoring metrics exposed by a system. For example, system call invocation errors [49]. Some system call invocation monitoring the memory usage of an application in order to de- errors happening in production do not have an visible impact tect memory leak issues. and 3) tracing externally observable on the application’s behavior, because the resilience mecha- events. For example, tracing an HTTP request that propagates nisms embedded in the application handle them properly [41]. through micro-services for timeout-related bug analysis. However, it is not possible for developers to know whether these fault-tolerance mechanisms behave properly if these errors were to occur more frequently. B. Chaos Engineering If a given type of system call invocation error rarely Chaos engineering is a recent fault injection technique, happens, it may take a long time to observe the corresponding which consists of injecting faults in production in order to abnormal behavior. Similarly, even if a type of system call verify actual reliability [8]. Different from traditional fault error happens very frequently, it is not clear whether there injection techniques, chaos engineering focuses on evaluating is a threshold on the error rate below which the application systems while they are deployed into production. This is nec- can handle the errors and beyond which it starts to behave essary for large-scale software systems because they are practi- abnormally. The key problem addressed by PHOEBE is to cally impossible to set up realistically in a testing environment. evaluate whether system call errors can have a severe impact Chaos engineering usually builds the fault injection model on the application’s behavior if the error rate is higher than based on real events (such as server crashes). Since faults are usual. injected in production, special techniques are employed so as In order to bring insights about how an application behaves to keep side effects acceptable.
Recommended publications
  • 24 Bringing Order to Chaos: Barrier-Enabled I/O Stack for Flash Storage
    Bringing Order to Chaos: Barrier-Enabled I/O Stack for Flash Storage YOUJIP WON and JOONTAEK OH, Hanyang University, Korea JAEMIN JUNG, Texas A&M University, USA GYEONGYEOL CHOI and SEONGBAE SON, Hanyang University, Korea JOOYOUNG HWANG and SANGYEUN CHO, Samsung Electronics, Korea This work is dedicated to eliminating the overhead required for guaranteeing the storage order in the modern IO stack. The existing block device adopts a prohibitively expensive approach in ensuring the storage order among write requests: interleaving the write requests with Transfer-and-Flush. For exploiting the cache bar- rier command for flash storage, we overhaul the IO scheduler, the dispatch module, and the filesystem sothat these layers are orchestrated to preserve the ordering condition imposed by the application with which the associated data blocks are made durable. The key ingredients of Barrier-Enabled IO stack are Epoch-based IO scheduling, Order-Preserving Dispatch,andDual-Mode Journaling. Barrier-enabled IO stack can control the storage order without Transfer-and-Flush overhead. We implement the barrier-enabled IO stack in server as well as in mobile platforms. SQLite performance increases by 270% and 75%, in server and in smartphone, respectively. In a server storage, BarrierFS brings as much as by 43× andby73× performance gain in MySQL and SQLite, respectively, against EXT4 via relaxing the durability of a transaction. CCS Concepts: • Software and its engineering → File systems management; Additional Key Words and Phrases: Filesystem, storage, block device, linux ACM Reference format: Youjip Won, Joontaek Oh, Jaemin Jung, Gyeongyeol Choi, Seongbae Son, Jooyoung Hwang, and Sangyeun Cho. 2018. Bringing Order to Chaos: Barrier-Enabled I/O Stack for Flash Storage.
    [Show full text]
  • Ein Wilder Ritt Distributionen
    09/2016 Besichtigungstour zu den skurrilsten Linux-Distributionen Titelthema Ein wilder Ritt Distributionen 28 Seit den frühen 90ern schießen die Linux-Distributionen wie Pilze aus dem Boden. Das Linux-Magazin blickt zurück auf ein paar besonders erstaunliche oder schräge Exemplare. Kristian Kißling www.linux-magazin.de © Antonio Oquias, 123RF Oquias, © Antonio Auch wenn die Syntax anderes vermu- samer Linux-Distributionen aufzustellen, Basis für Evil Entity denkt (Grün!), liegt ten lässt, steht der Name des klassischen denn in den zweieinhalb Jahrzehnten falsch. Tatsächlich basierte Evil Entity auf Linux-Tools »awk« nicht für Awkward kreuzte eine Menge von ihnen unseren Slackware und setzte auf einen eher düs- (zu Deutsch etwa „tolpatschig“), sondern Weg. Während einige davon noch putz- ter anmutenden Enlightenment-Desktop für die Namen seiner Autoren, nämlich munter in die Zukunft blicken, ist bei an- (Abbildung 3). Alfred Aho, Peter Weinberger und Brian deren nicht recht klar, welche Zielgruppe Als näher am Leben erwies sich der Fo- Kernighan. Kryptische Namen zu geben sie anpeilen oder ob sie überhaupt noch kus der Distribution, der auf dem Ab- sei eine lange etablierte Unix-Tradition, am Leben sind. spielen von Multimedia-Dateien lag – sie heißt es auf einer Seite des Debian-Wiki wollten doch nur Filme schauen. [1], die sich mit den Namen traditioneller Linux für Zombies Linux-Tools beschäftigt. Je kaputter, desto besser Denn, steht dort weiter, häufig halten Apropos untot: Die passende Linux- Entwickler die Namen ihrer Tools für Distribution für Zombies ließ sich recht Auch Void Linux [4], der Name steht selbsterklärend oder sie glauben, dass einfach ermitteln. Sie heißt Undead Linux je nach Übersetzung für „gleichgültig“ sie die User ohnehin nicht interessieren.
    [Show full text]
  • Using Fault Injection to Increase Software Test Coverage 
    Using Fault Injection to Increase Software Test Coverage James M. Bieman Daniel Dreilinger Lijun Lin Computer Science Department Colorado State University Fort Collins, Colorado 80523 [email protected] To appear in Proc. International Symposium on Software Reliability (ISSRE'96) Abstract must be recompiled and then tested. This process can be too labor and time intensive for practical use in the general test- During testing, it is nearly impossible to run all statments ing of commercial software. or branches of a program. It is especially dif®cult to test Our hypothesis is that fault injection can be effective the code used to respond to exceptional conditions. This when it is directed towards solving speci®c testing prob- untested code, often the error recovery code, will tend to be lems. In particular, we use fault injection to force the exe- an error prone part of a system. We show that test cover- cution of dif®cult to reach program paths. To avoid the need age can be increased through an ªassertion violationº tech- for recompilation, we mutate program state rather than pro- nique for injecting software faults during execution. Using gram text. our prototype tool, Visual C-Patrol (VCP), we were able to To be practical, any fault injection mechanism must be substantially increase test branch coverage in four software inexpensive and be able to model a wide variety of fault systems studied. types. Much of the fault injection should be automated. Al- though a practical approach requires a limited fault model, Keywords: software testing, software test coverage, fault we want to simulate as many faults as possible.
    [Show full text]
  • Enabling Virtualization Technologies for Enhanced Cloud Computing
    New Jersey Institute of Technology Digital Commons @ NJIT Dissertations Electronic Theses and Dissertations Fall 1-31-2015 Enabling virtualization technologies for enhanced cloud computing Kashifuddin Qazi New Jersey Institute of Technology Follow this and additional works at: https://digitalcommons.njit.edu/dissertations Part of the Computer Sciences Commons Recommended Citation Qazi, Kashifuddin, "Enabling virtualization technologies for enhanced cloud computing" (2015). Dissertations. 106. https://digitalcommons.njit.edu/dissertations/106 This Dissertation is brought to you for free and open access by the Electronic Theses and Dissertations at Digital Commons @ NJIT. It has been accepted for inclusion in Dissertations by an authorized administrator of Digital Commons @ NJIT. For more information, please contact [email protected]. Copyright Warning & Restrictions The copyright law of the United States (Title 17, United States Code) governs the making of photocopies or other reproductions of copyrighted material. Under certain conditions specified in the law, libraries and archives are authorized to furnish a photocopy or other reproduction. One of these specified conditions is that the photocopy or reproduction is not to be “used for any purpose other than private study, scholarship, or research.” If a, user makes a request for, or later uses, a photocopy or reproduction for purposes in excess of “fair use” that user may be liable for copyright infringement, This institution reserves the right to refuse to accept a copying order
    [Show full text]
  • Heterogeneous Clusters.Pdf
    HowTo Heterogeneous Clusters Running ClusterKnoppix as a master node to a CHAOS drone army HowTo Heterogeneous Clusters Running ClusterKnoppix as a master node to a CHAOS drone army CONTROL PAGE Document Approvals Approved for Publication: Author Name: Ian Latter 12 December 2003 Document Control Document Name: Heterogeneous Clusters; Running ClusterKnoppix as a master node to a CHAOS drone army Document ID: howto - heterogenous clusters.doc-Release-1.1(467) Distribution: Unrestricted Distribution Status: Release Disk File: C:\Documents and Settings\_.NULL\Desktop\whitepaper\HowTo - Heterogenous Clusters.doc Copyright: Copyright 2003, Macquarie University Version Date Release Information Author/s 1.1 12-Dec-03 Release / Unrestricted Distribution Ian Latter 1.0 11-Dec-03 Draft / Uncontrolled Ian Latter Distribution Version Release to 1.1 Public Release 1.0 Macquarie University, Moshe Bar, Bruce Knox, Wim Vandersmissen Unrestricted Distribution Copyright 2003, Macquarie University Page 2 of 13 HowTo Heterogeneous Clusters Running ClusterKnoppix as a master node to a CHAOS drone army Table of Contents 1 OVERVIEW..................................................................................................................................4 2 WHY YOU WANT A HETEROGENEOUS CLUSTER ..........................................................5 2.1 WHERE APPLICATIONS LIVE ...................................................................................................5 2.2 OPTIMIZING CLUSTER ADMINISTRATION ................................................................................5
    [Show full text]
  • Improving Software Fault Injection
    Improving Software Fault Injection Ph.D. Thesis Erik van der Kouwe Vrije Universiteit Amsterdam, 2016 This work was funded in part by European Research Council under ERC Advanced Grant 227874. Copyright © 2016 by Erik van der Kouwe. ISBN XXX-XX-XXXX-XXX-X Printed by XXX. VRIJE UNIVERSITEIT IMPROVING SOFTWARE FAULT INJECTION ACADEMISCH PROEFSCHRIFT ter verkrijging van de graad Doctor aan de Vrije Universiteit Amsterdam, op gezag van de rector magnificus prof. dr. Vinod Subramaniam, in het openbaar te verdedigen ten overstaan van de promotiecommissie van de Faculteit der Exacte Wetenschappen op X XXX 2016 om X.XX uur in de aula van de universiteit, De Boelelaan 1105 door ERIK VAN DER KOUWE geboren te Leidschendam, Nederland promotor: prof.dr. A.S. Tanenbaum “TODO add quote.” TODO add quote source. Contents Contents vii List of Figures xi List of Tables xiii Publications xv 1 Introduction 1 2 Finding fault with fault injection An Empirical Exploration of Distortion in Fault Injection Experiments 7 2.1 Introduction . 7 2.2 Related work . 12 2.3 Fidelity . 14 2.4 Approach . 16 2.5 Programs and workloads . 17 2.6 Results . 19 2.6.1 Coverage . 19 2.6.2 Execution count . 26 2.6.3 Relationship between execution count and coverage . 30 2.6.4 Relationship between faults and execution . 31 2.7 Threats to validity . 33 2.8 Recommendations . 35 2.9 Conclusion . 36 vii viii 3 On the Soundness of Silence Investigating Silent Failures Using Fault Injection Experiments 39 3.1 Introduction . 39 3.2 Approach . 41 3.2.1 Fault injection .
    [Show full text]
  • Evaluating Software Systems Via Runtime Fault-Injection and Reliability, Availability and Serviceability (RAS) Metrics and Models
    The 7U Evaluation Method: Evaluating Software Systems via Runtime Fault-Injection and Reliability, Availability and Serviceability (RAS) Metrics and Models Rean Griffith Submitted in partial fulfillment of the Requirements for the degree of Doctor of Philosophy in the Graduate School of Arts and Sciences COLUMBIA UNIVERSITY 2008 c 2008 Rean Griffith All Rights Reserved Abstract The 7U Evaluation Method: Evaluating Software Systems via Runtime Fault-Injection and Reliability, Availability and Serviceability (RAS) Metrics and Models Rean Griffith Renewed interest in developing computing systems that meet additional non-functional requirements such as reliability, high availability and ease-of-management/self-management (serviceability) has fueled research into developing systems that exhibit enhanced reliability, availability and serviceability (RAS) capabilities. This research focus on enhancing the RAS capabilities of computing systems impacts not only the legacy/existing systems we have today, but also has implications for the design and development of next generation (self- managing/self-*) systems, which are expected to meet these non-functional requirements with minimal human intervention. To reason about the RAS capabilities of the systems of today or the self-* systems of tomorrow, there are three evaluation-related challenges to address. First, developing (or identifying) practical fault-injection tools that can be used to study the failure behavior of computing systems and exercise any (remediation) mechanisms the system has available for mitigating or resolving problems. Second, identifying techniques that can be used to quantify RAS deficiencies in computing systems and reason about the efficacy of individual or combined RAS-enhancing mechanisms (at design-time or after system deployment). Third, developing an evaluation methodology that can be used to objectively compare systems based on the (expected or actual) benefits of RAS-enhancing mechanisms.
    [Show full text]
  • Linux Installation and Getting Started
    Linux Installation and Getting Started Copyright c 1992–1996 Matt Welsh Version 2.3, 22 February 1996. This book is an installation and new-user guide for the Linux system, meant for UNIX novices and gurus alike. Contained herein is information on how to obtain Linux, installation of the software, a beginning tutorial for new UNIX users, and an introduction to system administration. It is meant to be general enough to be applicable to any distribution of the Linux software. This book is freely distributable; you may copy and redistribute it under certain conditions. Please see the copyright and distribution statement on page xiii. Contents Preface ix Audience ............................................... ix Organization.............................................. x Acknowledgments . x CreditsandLegalese ......................................... xii Documentation Conventions . xiv 1 Introduction to Linux 1 1.1 About This Book ........................................ 1 1.2 A Brief History of Linux .................................... 2 1.3 System Features ......................................... 4 1.4 Software Features ........................................ 5 1.4.1 Basic commands and utilities ............................. 6 1.4.2 Text processing and word processing ......................... 7 1.4.3 Programming languages and utilities .......................... 9 1.4.4 The X Window System ................................. 10 1.4.5 Networking ....................................... 11 1.4.6 Telecommunications and BBS software .......................
    [Show full text]
  • Formal Fault Injection Vulnerability Detection in Binaries: a Software
    Formal fault injection vulnerability detection in binaries : a software process and hardware validation Nisrine Jafri To cite this version: Nisrine Jafri. Formal fault injection vulnerability detection in binaries : a software process and hard- ware validation. Cryptography and Security [cs.CR]. Université Rennes 1, 2019. English. NNT : 2019REN1S014. tel-02385208 HAL Id: tel-02385208 https://tel.archives-ouvertes.fr/tel-02385208 Submitted on 28 Nov 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. T HÈSE DE DOCTORAT DE L’UNIVERSITE DE RENNES 1 COMUE UNIVERSITE BRETAGNE LOIRE Ecole Doctorale N°601 Mathèmatique et Sciences et Technologies de l’Information et de la Communication Spécialité : Informatique Par « Nisrine JAFRI » « Formal Fault Injection Vulnerability Detection in Binaries » «A Software Process and Hardware Validation» Thèse présentée et soutenue à RENNES , le 25 mars 2019 Unité de recherche : Inria, TAMIS team Thèse N°: Rapporteurs avant soutenance : Marie-Laure POTET, Professeur des Universités, ENSIMAG Jean-Yves MARION, Professeur des Universités, Université de Lorraine Composition du jury : Président : Pierre-Alain FOUQUE, Professeur des Universités, Université Rennes 1 Examinateurs : Leijla BATINA, Professeur des Université s, Université Radboud de Nimegue Shivam BHASIN, Chercheur, Université technologique de Singapour Sylvain GUILLEY, Professeur des Universités, Télécom ParisTech Annelie HEUSER, Chercheur, CNRS Dir.
    [Show full text]
  • HPC with Openmosix
    HPC with openMosix Ninan Sajeeth Philip St. Thomas College Kozhencheri IMSc -Jan 2005 [email protected] Acknowledgements ● This document uses slides and image clippings available on the web and in books on HPC. Credit is due to their original designers! IMSc -Jan 2005 [email protected] Overview ● Mosix to openMosix ● Why openMosix? ● Design Concepts ● Advantages ● Limitations IMSc -Jan 2005 [email protected] The Scenario ● We have MPI and it's pretty cool, then why we need another solution? ● Well, MPI is a specification for cluster communication and is not a solution. ● Two types of bottlenecks exists in HPC - hardware and software (OS) level. IMSc -Jan 2005 [email protected] Hardware limitations for HPC IMSc -Jan 2005 [email protected] The Scenario ● We are approaching the speed and size limits of the electronics ● Major share of possible optimization remains with software part - OS level IMSc -Jan 2005 [email protected] Hardware limitations for HPC IMSc -Jan 2005 [email protected] How Clusters Work? Conventional supe rcomputers achieve their speed using extremely optimized hardware that operates at very high speed. Then, how do the clusters out-perform them? Simple, they cheat. While the supercomputer is optimized in hardware, the cluster is so in software. The cluster breaks down a problem in a special way so that it can distribute all the little pieces to its constituents. That way the overall problem gets solved very efficiently. - A Brief Introduction To Commodity Clustering Ryan Kaulakis IMSc -Jan 2005 [email protected] What is MOSIX? ● MOSIX is a software solution to minimise OS level bottlenecks - originally designed to improve performance of MPI and PVM on cluster systems http://www.mosix.org Not open source Free for personal and academic use IMSc -Jan 2005 [email protected] MOSIX More Technically speaking: ● MOSIX is a Single System Image (SSI) cluster that allows Automated Load Balancing across nodes through preemptive process migrations.
    [Show full text]
  • Full Circle Magazine N° 85 1 Full Ciircle Magaziine N''est Affiiliié En Aucune Maniière À Canoniical Ltd
    Full Circle LE MAGAZINE INDÉPENDANT DE LA COMMUNAUTÉ UBUNTU LINUX Numéro 85 -Mai 2014 UUBBUUNNTTUU 11 44..0044 MIS SUR LA SELLETTE full circle magazine n° 85 1 Full Ciircle Magaziine n''est affiiliié en aucune maniière à Canoniical Ltd.. sommaire ^ Tutoriels Full Circle LE MAGAZINE INDÉPENDANT DE LA COMMUNAUTÉ UBUNTU LINUX Python p.1 1 ActusLinux p.04 LibreOffice p.1 4 Command&Conquer p.09 Arduino p.25 Demandez au petitnouveau p.29 GRUB2etMultibooting p.17 LaboLinux p.33 Critique:Ubuntu14.04 p.37 Monnaievirtuelle p.39 Blender p.19 Courriers p.42 Tuxidermy p.43 Q&R p.44 Inkscape p.21 Sécurité p.46 Conception Open Source p.47 JeuxUbuntu p.49 Graphismes Les articles contenus dans ce magazine sont publiés sous la licence Creative Commons Attribution-Share Alike 3.0 Unported license. Cela signifie que vous pouvez adapter, copier, distribuer et transmettre les articles mais uniquement sous les conditions suivantes : vous devez citer le nom de l'auteur d'une certaine manière (au moins un nom, une adresse e-mail ou une URL) et le nom du magazine (« Full Circle Magazine ») ainsi que l'URL www.fullcirclemagazine.org (sans pour autant suggérer qu'ils approuvent votre utilisation de l'œuvre). Si vous modifiez, transformez ou adaptez cette création, vous devez distribuerla création qui en résulte sous la même licence ou une similaire. Full Circle Magazine est entièrement indépendantfull de circle Canonical, magazine le sponsor n° 85 des projets2 Ubuntu. Vous ne devez en aucun cas présumer que les avis et les opinions exprimés ici ont reçu l'approbation de Canonical.
    [Show full text]
  • Experimental Assessment of Cloud Software Dependability Using Fault Injection
    Experimental Assessment of Cloud Software Dependability Using Fault Injection Lena Herscheid(), Daniel Richter, and Andreas Polze Hasso Plattner Institute, Potsdom, Germany {lena.herscheid,daniel.richter,andreas.polze}@hpi.de Abstract. In modern cloud software systems, the complexity arising from fea- ture interaction, geographical distribution, security and configurability require- ments increases the likelihood of faults. Additional influencing factors are the impact of different execution environments as well as human operation or con- figuration errors. Assuming that any non-trivial cloud software system contains faults, robustness testing is needed to ensure that such faults are discovered as early as possible, and that the overall service is resilient and fault tolerant. To this end, fault injection is a means for disrupting the software in ways that un- cover bugs and test the fault tolerance mechanisms. In this paper, we discuss how to experimentally assess software dependability in two steps. First, a model of the software is constructed from different runtime observations and configu- ration information. Second, this model is used to orchestrate fault injection ex- periments with the running software system in order to quantify dependability attributes such as service availability. We propose the architecture of a fault in- jection service within the OpenStack project. Keywords: Fault injection · Dependability · Distributed systems · Cloud sys- tems · Availability 1 Introduction Fault tolerance is an essential dependability requirement especially in distributed and cloud software systems, where components can fail in arbitrary ways, but a high availability or reliability of the service is nevertheless required. To evaluate the dependability of complex software systems, a sufficiently realistic dependability model of the system needs to be built.
    [Show full text]