Microservices

Total Page:16

File Type:pdf, Size:1020Kb

Microservices Implementing DevOps with Ansible 2 Build, develop, test, deploy, and monitor in seconds Jonathan McAllister BIRMINGHAM - MUMBAI Implementing DevOps with Ansible 2 Copyright © 2017 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. First published: July 2017 Production reference: 1200717 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78712-053-2 www.packtpub.com Credits Author Copy Editors Jonathan McAllister Madhusudan Uchil Stuti Srivastava Reviewer Project Coordinator Matthew Fisher Virginia Dias Acquisition Editor Proofreader Meeta Rajani Safis Editing Content Development Editor Indexer Sharon Raj Aishwarya Gangawane Technical Editor Graphics Vishal Kamal Mewada Kirk D'Penha Production Coordinator Aparna Bhagat About the Author Jonathan McAllister has been creating software and automations since he was a child. As an avid computer technologist, he has had 13 years of professional experience in software development, testing, and delivery practices. During his career, he has architected and implemented software build, testing, and delivery solutions for cutting-edge technology organizations across diverse technology stacks. Jonathan has most recently been focusing on build pipelines, Continuous Integration, Continuous Delivery, microservice architecture, standardized processes, Agile and Kanban, and the implementation of highly scalable automation solutions. He has worked and consulted for some of the industry's most notable companies, including Microsoft, Merck, Logitech, and Oracle. His focus is entirely on designing scalable software build, delivery, and testing pipelines in an effort to streamline releases through standardization and help develop strategies that can elevate revenue through modern continuous practices. Acknowledgments This book wouldn't have been possible if it hadn't been for the support of my family, friends, previous managers and co-workers. I'd like to thank the following people for their love and support in writing this: Family and friends: Stephanie Kellogg – My wife and best friend. Renae Pittman – My sister and one of the only people I let yell at me. Adrian McAllister – My son. Richard Vasquez – My father. Caden McAllister – My son. Trisiann Vasquez – My aunt. Devin McAllister – My son. Toni Null – My mother. Kailey McAllister – My dearest princess. Carla Muniz – My Tia. Bryce McAllister – My son. Lauren Jones – She's stuck by me for I don't know how many years. Amazing mother and friend. Co-workers and management: Chris Hemphill – First taught me the constructs of SCM and Continuous Delivery. David Mueller – One of the best working leaders I've ever met. Shane McDougal – The sharpest Agile guru on the planet. Arsalan Baig – The most amazing designer I've ever met. Jonathan Krautter – Security excellence and overall security GOD! Charles Williams – One of the first people to mentor me and amazing human. "Let's work to make the world a better place to be. A unified world where we can see that love is the magic that sets us free" – Jonathan McAllister About the Reviewer Matthew Fisher has worked as a software developer for over 17 years in roles ranging from the Unix kernel to mobile phone development to DevOps. Matt has a passion for IT transformation projects—especially automation, self-service infrastructure, and the cloud. Matt was a contributing author on Common OpenStack Deployments: Real-World Examples for Systems Administrators and Engineers and has given many presentations on automating IT and deploying OpenStack. When not doing cool DevOps stuff, Matt enjoys hiking, camping, skiing, craft beer, and spending time with his family in Fort Collins, Colorado. www.PacktPub.com For support files and downloads related to your book, please visit www.PacktPub.com. Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.comand as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details. At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks. h t t p s ://w w w . p a c k t p u b . c o m /m a p t Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career. Why subscribe? Fully searchable across every book published by Packt Copy and paste, print, and bookmark content On demand and accessible via a web browser Customer Feedback Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at h t t p s ://w w w . a m a z o n . c o m /d p /1787120538. If you'd like to join our team of regular reviewers, you can e-mail us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products! Table of Contents Preface 1 Chapter 1: DevOps Fundamentals 7 DevOps 101 8 Culture 9 Automation 9 Measurement 9 Sharing 10 The History of DevOps 10 Strides toward the future 13 DevOps in the Modern Software Organization 14 The DevOps assembly line 15 Correlations between a DevOps assembly line and manufacturing 16 DevOps architectures and practices 16 Encapsulated software development 17 Microservices 17 Continuous Integration and Continuous Delivery 19 Modularity 23 Horizontal scalability 24 Blue-green deployments 24 Artifact management and versioning 25 Symmetrical environments 26 Summary 26 Chapter 2: Configuration Management Essentials 28 Understanding Configuration Management 29 Origins of Configuration Management 31 The Aims of Configuration Management 32 Scenario 1 33 Scenario 2 33 Scenario 3 33 Scenario 4 33 Basic Principles of Configuration Management 34 Configuration Management Best Practices 35 How Ansible Simplifies DevOps Implementations 37 Binary Artifact Management and Ansible 40 Summary 42 Chapter 3: Installing, Configuring, and Running Ansible 43 Installing Ansible 44 Red Hat Enterprise Linux via Configuration Management 44 Apt for Debian/Apt for Ubuntu 45 Porting Ansible to Gentoo 45 PKG for FreeBSD 45 Pip for macOS 45 OpenCSW for Solaris/SunOS 46 Via Python pip 46 Once Ansible has been installed 46 Setting up authentication between the control server and hosts 47 The Ansible Architecture 47 Open source 48 Module-based 48 Agentless 49 Pluggable 49 Local automation execution using Ansible 49 Remote automation execution using Ansible 52 Container-oriented automation 55 The Ansible Command-Line Interface 57 Usage: ansible [options] 58 Ansible command-line examples 59 Configuring Ansible 60 Common base configuration items 61 The Ansible Inventory 62 Defined inventory groups 62 Loose inventory items/hosts/devices 63 Executing playbook's and targeting specific inventory files and groups 64 Summary 64 Chapter 4: Playbooks and Inventory Files 65 Ansible Playbook Constructs 66 The programming languages that make up a playbook 67 YAML 67 Jinja2 – a brief introduction 68 Constructing an Ansible playbook 69 Hosts 69 Variables (vars/vars_files) 70 Tasks/plays 70 [ ii ] Ansible Play's and Task's 70 Ansible plays 70 Ansible tasks 71 Multiline task parameters 72 Variables and Variable Files 74 Basic variable syntax 74 Variable files 75 Hosts and Inventory 77 Targeting Infrastructure 78 Ansible Modules 80 Managing packages in Ansible 83 Yum 83 The apt-get and dpkg 84 Managing users in Ansible 87 File and directory management in Ansible 87 Managing services in Ansible 88 Transferring files in Ansible 90 Summary 91 Chapter 5: Playbooks – Beyond the Fundamentals 92 playbook's and Conditional Logic 93 Iterators and Loops 96 Basic loops using with_items 97 Nested loops using with_nested 98 Looping over hashes using with_dict 99 Iterating over files using with_file 102 Iterating over sequential numbers 103 The do until iterator 104 Iterating over inventory hosts using play_hosts 105 Includes 106 Play-level includes 107 Task-level includes 108 Dynamic includes 109 Ansible Roles 110 Ansible Register Variables 113 Simple Ansible registers 114 Accessing registers 114 Additional conditional logic with registers 115 Null or empty comparisons 115 Vars and Ansible registers 115 Iterating over register contents 116 [ iii ] Ansible Handlers 116 Summary 118 Chapter 6: Jinja in Ansible 119 Introducing Jinja 120 Jinja2 Programming Constructs
Recommended publications
  • Solaris 10 End of Life
    Solaris 10 end of life Continue Oracle Solaris 10 has had an amazing OS update, including ground features such as zones (Solaris containers), FSS, Services, Dynamic Tracking (against live production operating systems without impact), and logical domains. These features have been imitated in the market (imitation is the best form of flattery!) like all good things, they have to come to an end. Sun Microsystems was acquired by Oracle and eventually, the largest OS known to the industry, needs to be updated. Oracle has set a retirement date of January 2021. Oracle indicated that Solaris 10 systems would need to raise support costs. Oracle has never provided migratory tools to facilitate migration from Solaris 10 to Solaris 11, so migration to Solaris has been slow. In September 2019, Oracle decided that extended support for Solaris 10 without an additional financial penalty would be delayed until 2024! Well its March 1 is just a reminder that Oracle Solaris 10 is getting the end of life regarding support if you accept extended support from Oracle. Combined with the fact gdpR should take effect on May 25, 2018 you want to make sure that you are either upgraded to Solaris 11.3 or have taken extended support to obtain any patches for security issues. For more information on tanningix releases and support dates of old and new follow this link ×Sestive to abort the Unix Error Operating System originally developed by Sun Microsystems SolarisDeveloperSun Microsystems (acquired by Oracle Corporation in 2009)Written inC, C'OSUnixWorking StateCurrentSource ModelMixedInitial release1992; 28 years ago (1992-06)Last release11.4 / August 28, 2018; 2 years ago (2018-08-28)Marketing targetServer, PlatformsCurrent: SPARC, x86-64 Former: IA-32, PowerPCKernel typeMonolithic with dynamically downloadable modulesDefault user interface GNOME-2-LicenseVariousOfficial websitewww.oracle.com/solaris Solaris is the own operating system Of Unix, originally developed by Sunsystems.
    [Show full text]
  • Salt Documentation Release 2014.7.6
    Salt Documentation Release 2014.7.6 SaltStack, Inc. May 19, 2015 Contents 1 Introduction to Salt 1 1.1 e 30 second summary ........................................... 1 1.2 Simplicity ................................................... 1 1.3 Parallel execution ............................................... 1 1.4 Building on proven technology ....................................... 2 1.5 Python client interface ............................................ 2 1.6 Fast, flexible, scalable ............................................. 2 1.7 Open ...................................................... 2 1.8 Salt Community ................................................ 2 1.9 Mailing List .................................................. 2 1.10 IRC ....................................................... 3 1.11 Follow on Github ............................................... 3 1.12 Blogs ...................................................... 3 1.13 Example Salt States .............................................. 3 1.14 Follow on ohloh ................................................ 3 1.15 Other community links ............................................ 4 1.16 Hack the Source ................................................ 4 2 Installation 5 2.1 ick Install .................................................. 5 2.2 Platform-specific Installation Instructions ................................. 5 2.3 Dependencies ................................................. 26 2.4 Optional Dependencies ............................................ 27 2.5 Upgrading
    [Show full text]
  • Nagios Plugins - Installing Nagios Plugins from Source
    Nagios Plugins - Installing Nagios Plugins From Source Article Number: 569 | Rating: 2.4/5 from 7 votes | Last Updated: Mon, Feb 15, 2021 at 1:24 PM O ve r vie w This KB article provides instructions on installing Nagios Plugins from source. You will have observed that most of the existing documentation already includes steps on installing the plugins. However there are some plugins that require other libraries which are not included in those instructions. The goal of this documentation is to provide the instructions to install every possible plugin that exists. Nagios Plugins 2.3.3 is what this guide instructs you to install, however future versions should also work fine with these steps. Some considerations: It is assumed that you are logged onto the machine you are installing Nagios Plugins as the ro o t user, or a user with sufficient privileges. All of the steps below were tested on the operating systems (OS) listed after a clean install of the OS. Some OS's like Ubuntu and SUSE have stricter user permissions, in those cases the listed commands have sudo in front of them to ensure you are able to complete the steps. A best effort has been made to ensure if you follow all the relevant steps you will end up with a working installation of Nagios Plugins. The KB article is broken up into the following steps: Install Prerequisites - Common Install Prerequisites - Package XYZ Some plugins (MySQL for example) require addtional libraries and have their own section. They are also in their own section as not everyone requires to monitor that specific item.
    [Show full text]
  • Admin Guide 3.9.6 Solaris Revision:2037 Generated:02/10/2020 14:30 | Contents | Ii
    High-Speed Endpoint Admin Guide 3.9.6 Solaris Revision:2037 Generated:02/10/2020 14:30 | Contents | ii Contents Introduction............................................................................................................... 6 Installation and Upgrades........................................................................................8 Before Upgrading or Downgrading......................................................................................................................8 Installing HST Endpoint.....................................................................................................................................10 Upgrade Follow up.................................................................................................................................11 Configuring the Firewall.................................................................................................................................... 12 Securing Your SSH Server.................................................................................................................................14 Changing and Securing the TCP Port....................................................................................................14 Configuring Transfer Server Authentication With the Host-Key Fingerprint........................................16 Testing a Locally Initiated Transfer................................................................................................................... 17 Updating the Product License...........................................................................................................................
    [Show full text]
  • Ansible Cheat Sheet
    ANSIBLE Environment Setup Ad- hoc Commands P l a y b o o k s Types of machines: • General syntax of ad-hoc command: • It is the place where all YAML files are stored and CHEAT SHEET • Control machine : manages other machines Command hostngroup module/options[arguments] executed. Acts like a to-do list • Remote machine: controlled by other machines • YAML- yet another markup language Multiple remote systems can be handled by one machine. • A playbook can have more than one plays. Plays map the A n s i b l e • Remote machine managing is done by ansible by default. FUNCTION COMMANDS instructions defined against a particular host • Ansible doesn’t leave any software running on them. Therefore • Typically written in a text editor like notepad or • It is an open source engine that automates deployment, there is no need of an upgrade when moving to a newer notepad++ orchestration, cloud provisioning and other tools. Check connectivity of hosts #ansible <group> -m ping version. Sample playbook/YAML file; • It uses a playbook to describe jobs and uses YAML which is human • Install it through apt, yumpkg, pip, OpenCSW name: install and configure DB readable • installing it through apt : Rebooting hosts #ansible <group> -a “/bin/reboot” hosts: testServer • It is designed for multi- tier deployment. It is agentless and works by $ sudo apt-get update become: yes connecting nodes through ssh. $ sudo apt-get install software-properties-common Check host system’s info #ansible<group> -m steup | less vars: oracle_db_port_value : 1521 $ sudo apt-add-repository ppa: ansible/ansible $ sudo apt-get tasks: update -name: Install the Oracle DB How Does it Work? #ansible <group> -m copy -a $ sudo apt-get install ansible Transfering files yum: <code to install the DB> • Run ansible version to make sure it was installed properly.
    [Show full text]
  • Remotebox Version 1.5 Documentation
    RemoteBox Version 1.5 Open Source VirtualBox Client with Remote Management Documentation Table of Contents 1 Introduction.................................................................................................................................4 2 RemoteBox Requirements.........................................................................................................4 2.1 Fedora.................................................................................................................................4 2.2 Mandriva / Mageia...............................................................................................................5 2.3 OpenSUSE..........................................................................................................................5 2.4 Ubuntu / Mint.......................................................................................................................5 2.5 Mac OS X............................................................................................................................5 2.6 NetBSD................................................................................................................................5 2.7 FreeBSD..............................................................................................................................6 2.8 Solaris / OpenSolaris / OpenIndiana.................................................................................6 3 RemoteBox Installation...............................................................................................................6
    [Show full text]
  • Ansible 2.2 Documentation Release 2.4
    Ansible 2.2 Documentation Release 2.4 Ansible, Inc October 06, 2017 Contents 1 About Ansible 1 i ii CHAPTER 1 About Ansible Welcome to the Ansible documentation! Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability, featuring a minimum of moving parts, usage of OpenSSH for transport (with other transports and pull modes as alternatives), and a language that is designed around auditability by humans–even those not familiar with the program. We believe simplicity is relevant to all sizes of environments, so we design for busy users of all types: developers, sysadmins, release engineers, IT managers, and everyone in between. Ansible is appropriate for managing all envi- ronments, from small setups with a handful of instances to enterprise environments with many thousands of instances. Ansible manages machines in an agent-less manner. There is never a question of how to upgrade remote daemons or the problem of not being able to manage systems because daemons are uninstalled. Because OpenSSH is one of the most peer-reviewed open source components, security exposure is greatly reduced. Ansible is decentralized–it relies on your existing OS credentials to control access to remote machines. If needed, Ansible can easily connect with Kerberos, LDAP, and other centralized authentication management systems. This documentation covers the current released version of Ansible (2.3) and also some development version features (2.4).
    [Show full text]
  • Writing R Extensions
    Writing R Extensions Version 4.2.0 Under development (2021-09-27) R Core Team This manual is for R, version 4.2.0 Under development (2021-09-27). Copyright c 1999{2021 R Core Team Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into an- other language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the R Core Team. i Table of Contents Acknowledgements ::::::::::::::::::::::::::::::::::::::::::::::::: 1 1 Creating R packages ::::::::::::::::::::::::::::::::::::::::::: 2 1.1 Package structure :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 1.1.1 The DESCRIPTION file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 1.1.2 Licensing ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 1.1.3 Package Dependencies::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 9 1.1.3.1 Suggested packages:::::::::::::::::::::::::::::::::::::::::::::::::::::: 12 1.1.4 The INDEX file ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 13 1.1.5 Package subdirectories :::::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Solaris X86 FAQ
    Solaris x86 FAQ Dan E. Anderson Solaris x86 FAQ Table of Contents r r r r Solaris x86 FAQr r...................................................................................................................................1 r r r Detailed Contentsr r..........................................................................................................................2 r r r r Solaris x86 FAQr r...............................................................................................................................116 r r r Detailed Contentsr r......................................................................................................................117 i r r r r r Solaris x86 FAQr r r r r r r r ENGLISH r r r / r r r r [IPv6-only r r r r r r r / r Japaneser mirrorr RUSSIANr r r (below)rr [Translation]r [Another FAQ]r of this FAQ]r r r r r r r Search Solaris x86 FAQ:r r r r r r r r r r r r r r r r r r r r 9. Interoperability With Other r r r r r Operating Systemsr r r r r r r r r r r r 2. Introductionr r r r r r r r r Complete FAQ:r r r r r r r 3. Resourcesr r r r r r r r r r r 4. Pre-installationr r r r r r ♦ HTML Formatr r r r r r 5. Installationr r r r r ♦ Plain Text Formatr r ♦ Gzip-compressed Text r r r r r 6. Post-installation (Customization)r Formatr ♦ Translation:r r r r r r r r r r 7. Troubleshootingr r r r r r RUSSKAYA / RUSSIAN r r r r Versionr by Dubna r r r r r 8. X Windowsr International Universityr (Version 2.4, 10/1999)r r r r r r r r r r r r Solaris x86 FAQr r 1 Solaris x86 FAQ r r r r r r r Detailed Contentsr r r r r r Read the FAQ as an ebook.r r Upload Palm DOC, Plucker, Text,r r PDF & HTML formats.r r See "Ebook formats" for links.r r r r r r r r r NEXT -> r r r r r r r r r r r r r r r r r r r r r r r r r This web page is not associated with Sun Microsystems.r Copyright © 1997-2010 Dan Anderson.
    [Show full text]
  • List of Applications Updated in ARL #2581
    List of Applications Updated in ARL #2581 Application Name Publisher .NET Core Runtime 3.0 Preview Microsoft .NET Core Toolset 3.1 Preview Microsoft .NET Framework 4.5 Microsoft .NET Framework 4.6 Microsoft .NET Framework Developer Pack 4.7 Microsoft .NET Framework Multi-Targeting Pack for Windows Store Apps 4.5 RC Microsoft .NET Framework SDK 4.8 Microsoft _connect.BRAIN 4.8 Bizerba 2200 TapeStation Software 3.1 Agilent Technologies 2200 TapeStation Software 3.2 Agilent Technologies 24x7 Automation Suite 3.6 SoftTree Technologies 3500 Rack Configuration Software 6.0 Bently Nevada 365 16.0 Microsoft 3D Sprint 2.10 3D Systems 3D Sprint 2.11 3D Systems 3D Sprint 2.12 3D Systems 3D Viewer Microsoft 3PAR Host Explorer VMware 4.0 HP 4059 Extended Edition Attendant Console 2.1 ALE International 4uKey 1.4 Tenorshare 4uKey 1.6 Tenorshare 4uKey 2.2 Tenorshare 50 Accounts 21.0 Sage Group 50 Accounts 25.1 Sage Group 793 Controller Software 5.8 MTS Systems 793 Controller Software 5.9 MTS Systems 793 Controller Software 6.1 MTS Systems 7-Zip 19.00 Igor Pavlov ABAQUS 2018 Student Dassault Systemes ABAQUS 2019 Student Dassault Systemes Abstract 73.0 Elastic Projects ABU Service 14.10 Teradata Access Client 3.5 Barracuda Networks Access Client 3.7 Barracuda Networks Access Client 4.1 Barracuda Networks Access Module for Azure 15.1 Teradata Access Security Gateway (ASG) Soft Key Avaya AccuNest 10.3 Gerber Technology AccuNest 11.0 Gerber Technology ACDSee 2.3 Free ACD Systems ACDSee 2.4 Free ACD Systems ACDSee Photo Studio 2019 Professional ACD Systems
    [Show full text]
  • Ansible Documentation Release 1.7
    Ansible Documentation Release 1.7 Ansible July 14, 2014 CONTENTS i ii CHAPTER ONE ABOUT ANSIBLE Welcome to the Ansible documentation! Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates. Ansible’s goals are foremost those of simplicity and maximum ease of use. It also has a strong focus on security and reliability, featuring a minimum of moving parts, usage of OpenSSH for transport (with an accelerated socket mode and pull modes as alternatives), and a language that is designed around auditability by humans – even those not familiar with the program. We believe simplicity is relevant to all sizes of environments and design for busy users of all types – whether this means developers, sysadmins, release engineers, IT managers, and everywhere in between. Ansible is appropriate for managing small setups with a handful of instances as well as enterprise environments with many thousands. Ansible manages machines in an agentless manner. There is never a question of how to upgrade remote daemons or the problem of not being able to manage systems because daemons are uninstalled. As OpenSSH is one of the most peer reviewed open source components, the security exposure of using the tool is greatly reduced. Ansible is decentralized – it relies on your existing OS credentials to control access to remote machines; if needed it can easily connect with Kerberos, LDAP, and other centralized authentication management systems. This documentation covers the current released version of Ansible (1.5.3) and also some development version features (1.6).
    [Show full text]
  • ZFS on Linux Performance Evaluation
    ZFS on Linux Performance Evaluation Norbert Schramm 6146299 Masterprojekt Fachbereich Informatik Universität Hamburg 30. März 2016 1 Inhaltsverzeichnis 1. Einleitung 3 1.1. ZFS Entwicklung und Geschichte . 3 1.2. Funktionen von ZFS . 4 2. ZFS im Vergleich 6 2.1. verwendete Komponenten . 6 2.1.1. Hardware . 6 2.1.2. Betriebssysteme . 7 2.1.3. Benchmarks . 8 2.2. Messergebnisse . 10 3. ZFS on Linux 16 3.1. Messaufbau . 16 3.2. Messergebnisse . 17 3.3. Kompression und Deduplikation in der Praxis . 23 4. Lustre on ZFS 25 4.1. Lustre . 25 4.2. Messaufbau . 26 4.2.1. verwendete Benchmarks . 27 4.3. Ergebnisse . 28 5. Zusammenfassung 31 A. Scripte 33 A.1. Installation von ZFS unter Linux mit modifiziertem Kernel . 33 A.2. Benchmark-scripte für Bonnie++ . 34 2 1. Einleitung Zur Speicherung von Daten auf einem Computer ist ein Dateisystem notwendig, dass die Daten korrekt speichert, verwaltet und das wieder abrufen ermöglicht. Hierbei kann man in die verfügbaren Dateisysteme in zwei Gruppen unterteilen, die klassischen und die modernen Dateisysteme. Zu den Klassischen zählen bekannte und weit verbreitete Dateisysteme, wie ext4 unter Linux oder NTFS unter Windows. Sie sind seit Jahren etabliert und ermöglichen es, Daten zuverlässig zu speichern. Darüber hinaus sind in der jüngeren Zeit allerdings neue Herausforderungen hinzugekommen, die ein modernes Dateisystem erfüllen muss. Unter Linux gibt es hier zum Beispiel im Zusammenhang mit RAID-Verbünden Probleme, wie etwa das langsame wiederherstellen größerer Platten- verbünde oder das Write-Hole-Problem, welches zur Dateninkonsistenz führen kann. Moderne Dateisysteme, wie ZFS besitzen einen erweiterten Funktionsumfang, um die Möglichkeiten des Dateisystems zu erweitern oder die Datensicherheit zu erhöhen (siehe Kapitel 1.2.
    [Show full text]