Cloud Computing This page is intentionally left blank Cloud Computing Theory and Practice Dan C Marinescu AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Morgan Kaufmann is an imprint of Elsevier Acquiring Editor: Steve Elliot Editorial Project Manager: Lindsay Lawrence Project Manager: Anitha Kittusamy Ramasamy Cover Designer: Russell Purdy Morgan Kaufmann is an imprint of Elsevier 225 Wyman Street, Waltham, 02451, USA Copyright © 2013 Elsevier Inc All rights reserved No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein) Notices Knowledge and best practice in this field are constantly changing As new research and experience broaden our understanding, changes in research methods, or professional practices, or medical treatment may become necessary Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds, or experiments described herein In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein Library of Congress Cataloging-in-Publication Data Application submitted British Library Cataloguing in Publication Data A catalogue record for this book is available from the British Library ISBN: 978-0-12404-627-6 For information on all MK publications visit our website at www.mkp.com Printed in the United States of America 13 14 15 16 17 10 9 8 7 6 5 4 3 2 To Vera Rae and Luke Bell This page is intentionally left blank Contents Preface������������������������������������������������������������������������������������������������������������������������������������������������� xiii Foreword�������������������������������������������������������������������������������������������������������������������������������������������� xvii CHAPTER Introduction���������������������������������������������������������������������������������1 1.1 Network-Centric Computing and Network-Centric Content���������������������������������������3 1.2 Peer-to-Peer Systems���������������������������������������������������������������������������������������������������7 1.3 Cloud Computing: An Old Idea Whose Time has Come���������������������������������������������9 1.4 Cloud Computing Delivery Models and Services�����������������������������������������������������11 1.5 Ethical Issues in Cloud Computing���������������������������������������������������������������������������14 1.6 Cloud Vulnerabilities�������������������������������������������������������������������������������������������������15 1.7 Major Challenges Faced by Cloud Computing���������������������������������������������������������16 1.8 Further Reading���������������������������������������������������������������������������������������������������������17 1.9 History Notes�������������������������������������������������������������������������������������������������������������18 1.10 Exercises and Problems���������������������������������������������������������������������������������������������18 CHAPTER Parallel and Distributed Systems�������������������������������������������������21 2.1 Parallel Computing����������������������������������������������������������������������������������������������������21 2.2 Parallel Computer Architecture���������������������������������������������������������������������������������25 2.3 Distributed Systems���������������������������������������������������������������������������������������������������27 2.4 Global State of a Process Group��������������������������������������������������������������������������������28 2.5 Communication Protocols and Process Coordination�����������������������������������������������32 2.6 Logical Clocks�����������������������������������������������������������������������������������������������������������34 2.7 Message Delivery Rules; Causal Delivery�����������������������������������������������������������������35 2.8 Runs and Cuts; Causal History����������������������������������������������������������������������������������38 2.9 Concurrency���������������������������������������������������������������������������������������������������������������41 2.10 Atomic Actions����������������������������������������������������������������������������������������������������������44 2.11 Consensus Protocols��������������������������������������������������������������������������������������������������48 2.12 Modeling Concurrency with Petri Nets���������������������������������������������������������������������51 2.13 Enforced Modularity: The Client-Server Paradigm���������������������������������������������������57 2.14 Further Reading���������������������������������������������������������������������������������������������������������62 2.15 History Notes�������������������������������������������������������������������������������������������������������������62 2.16 Exercises and Problems���������������������������������������������������������������������������������������������64 CHAPTER Cloud Infrastructure��������������������������������������������������������������������67 3.1 Cloud Computing at Amazon������������������������������������������������������������������������������������67 3.2 Cloud Computing: The Google Perspective��������������������������������������������������������������77 vii viii Contents 3.3 Microsoft Windows Azure and Online Services���������������������������������������������������������79 3.4 Open-Source Software Platforms for Private Clouds������������������������������������������������80 3.5 Cloud Storage Diversity and Vendor Lock-in������������������������������������������������������������84 3.6 Cloud Computing Interoperability: The Intercloud���������������������������������������������������86 3.7 Energy Use and Ecological Impact of Large-Scale Data Centers�����������������������������88 3.8 Service- and Compliance-Level Agreements������������������������������������������������������������91 3.9 Responsibility Sharing Between User and Cloud Service Provider��������������������������92 3.10 User Experience���������������������������������������������������������������������������������������������������������93 3.11 Software Licensing����������������������������������������������������������������������������������������������������95 3.12 Further Reading���������������������������������������������������������������������������������������������������������96 3.13 History Notes�������������������������������������������������������������������������������������������������������������97 3.14 Exercises and Problems���������������������������������������������������������������������������������������������97 CHAPTER Cloud Computing: Applications and Paradigms�����������������������������99 4.1 Challenges for Cloud Computing����������������������������������������������������������������������������100 4.2 Existing Cloud Applications and New Application Opportunities��������������������������101 4.3 Architectural Styles for Cloud Applications������������������������������������������������������������102 4.4 Workflows: Coordination of Multiple Activities�����������������������������������������������������104 4.5 Coordination Based on a State Machine Model: The ZooKeeper���������������������������112 4.6 The MapReduce Programming Model���������������������������������������������������������������������115 4.7 A Case Study: The GrepTheWeb Application����������������������������������������������������������118 4.8 Clouds for Science and Engineering������������������������������������������������������������������������120 4.9 High-Performance Computing on a Cloud��������������������������������������������������������������121 4.10 Cloud Computing for Biology Research�����������������������������������������������������������������125 4.11 Social Computing, Digital Content, and Cloud Computing������������������������������������128 4.12 Further Reading�������������������������������������������������������������������������������������������������������130 4.13 Exercises and Problems�������������������������������������������������������������������������������������������130 CHAPTER Cloud Resource Virtualization���������������������������������������������������131 5.1 Virtualization�����������������������������������������������������������������������������������������������������������132 5.2 Layering and Virtualization�������������������������������������������������������������������������������������133 5.3 Virtual Machine Monitors����������������������������������������������������������������������������������������136 5.4 Virtual Machines������������������������������������������������������������������������������������������������������136 5.5 Performance and Security Isolation�������������������������������������������������������������������������139 5.6 Full Virtualization and Paravirtualization����������������������������������������������������������������140 5.7 Hardware Support for Virtualization�����������������������������������������������������������������������142 5.8 Case Study: Xen, a VMM Based on Paravirtualization�������������������������������������������144 5.9 Optimization of Network Virtualization in Xen 2.0�������������������������������������������������149 5.10 vBlades: Paravirtualization Targeting an x86-64 Itanium Processor�����������������������152 5.11 A Performance Comparison of Virtual Machines����������������������������������������������������154 5.12 The Darker Side of Virtualization����������������������������������������������������������������������������156 5.13 Software Fault Isolation�������������������������������������������������������������������������������������������158 Contents ix 5.14 Further Reading�������������������������������������������������������������������������������������������������������159 5.15 History Notes�����������������������������������������������������������������������������������������������������������159 5.16 Exercises and Problems�������������������������������������������������������������������������������������������160 CHAPTER Cloud Resource Management and Scheduling����������������������������163 6.1 Policies and Mechanisms for Resource Management���������������������������������������������164 6.2 Applications of Control Theory to Task Scheduling on a Cloud�����������������������������166 6.3 Stability of a Two-Level Resource Allocation Architecture������������������������������������169 6.4 Feedback Control Based on Dynamic Thresholds���������������������������������������������������171 6.5 Coordination of Specialized Autonomic Performance Managers���������������������������172 6.6 A Utility-Based Model for Cloud-Based Web Services������������������������������������������174 6.7 Resource Bundling: Combinatorial Auctions for Cloud Resources������������������������178 6.8 Scheduling Algorithms for Computing Clouds�������������������������������������������������������182 6.9 Fair Queuing������������������������������������������������������������������������������������������������������������184 6.10 Start-Time Fair Queuing������������������������������������������������������������������������������������������185 6.11 Borrowed Virtual Time��������������������������������������������������������������������������������������������190 6.12 Cloud Scheduling Subject to Deadlines������������������������������������������������������������������194 6.13 Scheduling MapReduce Applications Subject to Deadlines������������������������������������199 6.14 Resource Management and Dynamic Application Scaling�������������������������������������201 6.15 Further Reading�������������������������������������������������������������������������������������������������������202 6.16 Exercises and Problems�������������������������������������������������������������������������������������������203 CHAPTER Networking Support������������������������������������������������������������������205 7.1 Packet-Switched Networks��������������������������������������������������������������������������������������205 7.2 The Internet��������������������������������������������������������������������������������������������������������������207 7.3 Internet Migration to IPv6���������������������������������������������������������������������������������������210 7.4 The Transformation of the Internet��������������������������������������������������������������������������211 7.5 Web Access and the TCP Congestion Control Window������������������������������������������214 7.6 Network Resource Management������������������������������������������������������������������������������217 7.7 Interconnection Networks for Computer Clouds�����������������������������������������������������219 7.8 Storage Area Networks��������������������������������������������������������������������������������������������222 7.9 Content-Delivery Networks�������������������������������������������������������������������������������������226 7.10 Overlay Networks and Small-World Networks�������������������������������������������������������228 7.11 Scale-Free Networks������������������������������������������������������������������������������������������������230 7.12 Epidemic Algorithms�����������������������������������������������������������������������������������������������236 7.13 Further Reading�������������������������������������������������������������������������������������������������������238 7.14 History Notes�����������������������������������������������������������������������������������������������������������238 7.15 Exercises and Problems�������������������������������������������������������������������������������������������239 CHAPTER Storage Systems�����������������������������������������������������������������������241 8.1 The Evolution of Storage Technology���������������������������������������������������������������������242 8.2 Storage Models, File Systems, and Databases���������������������������������������������������������243 .. .Cloud Computing This page is intentionally left blank Cloud Computing Theory and Practice Dan C Marinescu AMSTERDAM • BOSTON • HEIDELBERG • LONDON... of computing clouds and use cloud services explicitly, whereas a very large segment of the population will benefit from services supported by computing clouds without knowing the role the clouds... acceptance of the two new computing models and led to the grid computing movement in the early 1990s and, since 2005, to utility computing and cloud computing In utility computing the hardware and