
- •Cloud Computing
- •Foreword
- •Preface
- •Introduction
- •Expected Audience
- •Book Overview
- •Part 1: Cloud Base
- •Part 2: Cloud Seeding
- •Part 3: Cloud Breaks
- •Part 4: Cloud Feedback
- •Contents
- •1.1 Introduction
- •1.1.1 Cloud Services and Enabling Technologies
- •1.2 Virtualization Technology
- •1.2.1 Virtual Machines
- •1.2.2 Virtualization Platforms
- •1.2.3 Virtual Infrastructure Management
- •1.2.4 Cloud Infrastructure Manager
- •1.3 The MapReduce System
- •1.3.1 Hadoop MapReduce Overview
- •1.4 Web Services
- •1.4.1 RPC (Remote Procedure Call)
- •1.4.2 SOA (Service-Oriented Architecture)
- •1.4.3 REST (Representative State Transfer)
- •1.4.4 Mashup
- •1.4.5 Web Services in Practice
- •1.5 Conclusions
- •References
- •2.1 Introduction
- •2.2 Background and Related Work
- •2.3 Taxonomy of Cloud Computing
- •2.3.1 Cloud Architecture
- •2.3.1.1 Services and Modes of Cloud Computing
- •Software-as-a-Service (SaaS)
- •Platform-as-a-Service (PaaS)
- •Hardware-as-a-Service (HaaS)
- •Infrastructure-as-a-Service (IaaS)
- •2.3.2 Virtualization Management
- •2.3.3 Core Services
- •2.3.3.1 Discovery and Replication
- •2.3.3.2 Load Balancing
- •2.3.3.3 Resource Management
- •2.3.4 Data Governance
- •2.3.4.1 Interoperability
- •2.3.4.2 Data Migration
- •2.3.5 Management Services
- •2.3.5.1 Deployment and Configuration
- •2.3.5.2 Monitoring and Reporting
- •2.3.5.3 Service-Level Agreements (SLAs) Management
- •2.3.5.4 Metering and Billing
- •2.3.5.5 Provisioning
- •2.3.6 Security
- •2.3.6.1 Encryption/Decryption
- •2.3.6.2 Privacy and Federated Identity
- •2.3.6.3 Authorization and Authentication
- •2.3.7 Fault Tolerance
- •2.4 Classification and Comparison between Cloud Computing Ecosystems
- •2.5 Findings
- •2.5.2 Cloud Computing PaaS and SaaS Provider
- •2.5.3 Open Source Based Cloud Computing Services
- •2.6 Comments on Issues and Opportunities
- •2.7 Conclusions
- •References
- •3.1 Introduction
- •3.2 Scientific Workflows and e-Science
- •3.2.1 Scientific Workflows
- •3.2.2 Scientific Workflow Management Systems
- •3.2.3 Important Aspects of In Silico Experiments
- •3.3 A Taxonomy for Cloud Computing
- •3.3.1 Business Model
- •3.3.2 Privacy
- •3.3.3 Pricing
- •3.3.4 Architecture
- •3.3.5 Technology Infrastructure
- •3.3.6 Access
- •3.3.7 Standards
- •3.3.8 Orientation
- •3.5 Taxonomies for Cloud Computing
- •3.6 Conclusions and Final Remarks
- •References
- •4.1 Introduction
- •4.2 Cloud and Grid: A Comparison
- •4.2.1 A Retrospective View
- •4.2.2 Comparison from the Viewpoint of System
- •4.2.3 Comparison from the Viewpoint of Users
- •4.2.4 A Summary
- •4.3 Examining Cloud Computing from the CSCW Perspective
- •4.3.1 CSCW Findings
- •4.3.2 The Anatomy of Cloud Computing
- •4.3.2.1 Security and Privacy
- •4.3.2.2 Data and/or Vendor Lock-In
- •4.3.2.3 Service Availability/Reliability
- •4.4 Conclusions
- •References
- •5.1 Overview – Cloud Standards – What and Why?
- •5.2 Deep Dive: Interoperability Standards
- •5.2.1 Purpose, Expectations and Challenges
- •5.2.2 Initiatives – Focus, Sponsors and Status
- •5.2.3 Market Adoption
- •5.2.4 Gaps/Areas of Improvement
- •5.3 Deep Dive: Security Standards
- •5.3.1 Purpose, Expectations and Challenges
- •5.3.2 Initiatives – Focus, Sponsors and Status
- •5.3.3 Market Adoption
- •5.3.4 Gaps/Areas of Improvement
- •5.4 Deep Dive: Portability Standards
- •5.4.1 Purpose, Expectations and Challenges
- •5.4.2 Initiatives – Focus, Sponsors and Status
- •5.4.3 Market Adoption
- •5.4.4 Gaps/Areas of Improvement
- •5.5.1 Purpose, Expectations and Challenges
- •5.5.2 Initiatives – Focus, Sponsors and Status
- •5.5.3 Market Adoption
- •5.5.4 Gaps/Areas of Improvement
- •5.6 Deep Dive: Other Key Standards
- •5.6.1 Initiatives – Focus, Sponsors and Status
- •5.7 Closing Notes
- •References
- •6.1 Introduction and Motivation
- •6.2 Cloud@Home Overview
- •6.2.1 Issues, Challenges, and Open Problems
- •6.2.2 Basic Architecture
- •6.2.2.1 Software Environment
- •6.2.2.2 Software Infrastructure
- •6.2.2.3 Software Kernel
- •6.2.2.4 Firmware/Hardware
- •6.2.3 Application Scenarios
- •6.3 Cloud@Home Core Structure
- •6.3.1 Management Subsystem
- •6.3.2 Resource Subsystem
- •6.4 Conclusions
- •References
- •7.1 Introduction
- •7.2 MapReduce
- •7.3 P2P-MapReduce
- •7.3.1 Architecture
- •7.3.2 Implementation
- •7.3.2.1 Basic Mechanisms
- •Resource Discovery
- •Network Maintenance
- •Job Submission and Failure Recovery
- •7.3.2.2 State Diagram and Software Modules
- •7.3.3 Evaluation
- •7.4 Conclusions
- •References
- •8.1 Introduction
- •8.2 The Cloud Evolution
- •8.3 Improved Network Support for Cloud Computing
- •8.3.1 Why the Internet is Not Enough?
- •8.3.2 Transparent Optical Networks for Cloud Applications: The Dedicated Bandwidth Paradigm
- •8.4 Architecture and Implementation Details
- •8.4.1 Traffic Management and Control Plane Facilities
- •8.4.2 Service Plane and Interfaces
- •8.4.2.1 Providing Network Services to Cloud-Computing Infrastructures
- •8.4.2.2 The Cloud Operating System–Network Interface
- •8.5.1 The Prototype Details
- •8.5.1.1 The Underlying Network Infrastructure
- •8.5.1.2 The Prototype Cloud Network Control Logic and its Services
- •8.5.2 Performance Evaluation and Results Discussion
- •8.6 Related Work
- •8.7 Conclusions
- •References
- •9.1 Introduction
- •9.2 Overview of YML
- •9.3 Design and Implementation of YML-PC
- •9.3.1 Concept Stack of Cloud Platform
- •9.3.2 Design of YML-PC
- •9.3.3 Core Design and Implementation of YML-PC
- •9.4 Primary Experiments on YML-PC
- •9.4.1 YML-PC Can Be Scaled Up Very Easily
- •9.4.2 Data Persistence in YML-PC
- •9.4.3 Schedule Mechanism in YML-PC
- •9.5 Conclusion and Future Work
- •References
- •10.1 Introduction
- •10.2 Related Work
- •10.2.1 General View of Cloud Computing frameworks
- •10.2.2 Cloud Computing Middleware
- •10.3 Deploying Applications in the Cloud
- •10.3.1 Benchmarking the Cloud
- •10.3.2 The ProActive GCM Deployment
- •10.3.3 Technical Solutions for Deployment over Heterogeneous Infrastructures
- •10.3.3.1 Virtual Private Network (VPN)
- •10.3.3.2 Amazon Virtual Private Cloud (VPC)
- •10.3.3.3 Message Forwarding and Tunneling
- •10.3.4 Conclusion and Motivation for Mixing
- •10.4 Moving HPC Applications from Grids to Clouds
- •10.4.1 HPC on Heterogeneous Multi-Domain Platforms
- •10.4.2 The Hierarchical SPMD Concept and Multi-level Partitioning of Numerical Meshes
- •10.4.3 The GCM/ProActive-Based Lightweight Framework
- •10.4.4 Performance Evaluation
- •10.5 Dynamic Mixing of Clusters, Grids, and Clouds
- •10.5.1 The ProActive Resource Manager
- •10.5.2 Cloud Bursting: Managing Spike Demand
- •10.5.3 Cloud Seeding: Dealing with Heterogeneous Hardware and Private Data
- •10.6 Conclusion
- •References
- •11.1 Introduction
- •11.2 Background
- •11.2.1 ASKALON
- •11.2.2 Cloud Computing
- •11.3 Resource Management Architecture
- •11.3.1 Cloud Management
- •11.3.2 Image Catalog
- •11.3.3 Security
- •11.4 Evaluation
- •11.5 Related Work
- •11.6 Conclusions and Future Work
- •References
- •12.1 Introduction
- •12.2 Layered Peer-to-Peer Cloud Provisioning Architecture
- •12.4.1 Distributed Hash Tables
- •12.4.2 Designing Complex Services over DHTs
- •12.5 Cloud Peer Software Fabric: Design and Implementation
- •12.5.1 Overlay Construction
- •12.5.2 Multidimensional Query Indexing
- •12.5.3 Multidimensional Query Routing
- •12.6 Experiments and Evaluation
- •12.6.1 Cloud Peer Details
- •12.6.3 Test Application
- •12.6.4 Deployment of Test Services on Amazon EC2 Platform
- •12.7 Results and Discussions
- •12.8 Conclusions and Path Forward
- •References
- •13.1 Introduction
- •13.2 High-Throughput Science with the Nimrod Tools
- •13.2.1 The Nimrod Tool Family
- •13.2.2 Nimrod and the Grid
- •13.2.3 Scheduling in Nimrod
- •13.3 Extensions to Support Amazon’s Elastic Compute Cloud
- •13.3.1 The Nimrod Architecture
- •13.3.2 The EC2 Actuator
- •13.3.3 Additions to the Schedulers
- •13.4.1 Introduction and Background
- •13.4.2 Computational Requirements
- •13.4.3 The Experiment
- •13.4.4 Computational and Economic Results
- •13.4.5 Scientific Results
- •13.5 Conclusions
- •References
- •14.1 Using the Cloud
- •14.1.1 Overview
- •14.1.2 Background
- •14.1.3 Requirements and Obligations
- •14.1.3.1 Regional Laws
- •14.1.3.2 Industry Regulations
- •14.2 Cloud Compliance
- •14.2.1 Information Security Organization
- •14.2.2 Data Classification
- •14.2.2.1 Classifying Data and Systems
- •14.2.2.2 Specific Type of Data of Concern
- •14.2.2.3 Labeling
- •14.2.3 Access Control and Connectivity
- •14.2.3.1 Authentication and Authorization
- •14.2.3.2 Accounting and Auditing
- •14.2.3.3 Encrypting Data in Motion
- •14.2.3.4 Encrypting Data at Rest
- •14.2.4 Risk Assessments
- •14.2.4.1 Threat and Risk Assessments
- •14.2.4.2 Business Impact Assessments
- •14.2.4.3 Privacy Impact Assessments
- •14.2.5 Due Diligence and Provider Contract Requirements
- •14.2.5.1 ISO Certification
- •14.2.5.2 SAS 70 Type II
- •14.2.5.3 PCI PA DSS or Service Provider
- •14.2.5.4 Portability and Interoperability
- •14.2.5.5 Right to Audit
- •14.2.5.6 Service Level Agreements
- •14.2.6 Other Considerations
- •14.2.6.1 Disaster Recovery/Business Continuity
- •14.2.6.2 Governance Structure
- •14.2.6.3 Incident Response Plan
- •14.3 Conclusion
- •Bibliography
- •15.1.1 Location of Cloud Data and Applicable Laws
- •15.1.2 Data Concerns Within a European Context
- •15.1.3 Government Data
- •15.1.4 Trust
- •15.1.5 Interoperability and Standardization in Cloud Computing
- •15.1.6 Open Grid Forum’s (OGF) Production Grid Interoperability Working Group (PGI-WG) Charter
- •15.1.7.1 What will OCCI Provide?
- •15.1.7.2 Cloud Data Management Interface (CDMI)
- •15.1.7.3 How it Works
- •15.1.8 SDOs and their Involvement with Clouds
- •15.1.10 A Microsoft Cloud Interoperability Scenario
- •15.1.11 Opportunities for Public Authorities
- •15.1.12 Future Market Drivers and Challenges
- •15.1.13 Priorities Moving Forward
- •15.2 Conclusions
- •References
- •16.1 Introduction
- •16.2 Cloud Computing (‘The Cloud’)
- •16.3 Understanding Risks to Cloud Computing
- •16.3.1 Privacy Issues
- •16.3.2 Data Ownership and Content Disclosure Issues
- •16.3.3 Data Confidentiality
- •16.3.4 Data Location
- •16.3.5 Control Issues
- •16.3.6 Regulatory and Legislative Compliance
- •16.3.7 Forensic Evidence Issues
- •16.3.8 Auditing Issues
- •16.3.9 Business Continuity and Disaster Recovery Issues
- •16.3.10 Trust Issues
- •16.3.11 Security Policy Issues
- •16.3.12 Emerging Threats to Cloud Computing
- •16.4 Cloud Security Relationship Framework
- •16.4.1 Security Requirements in the Clouds
- •16.5 Conclusion
- •References
- •17.1 Introduction
- •17.1.1 What Is Security?
- •17.2 ISO 27002 Gap Analyses
- •17.2.1 Asset Management
- •17.2.2 Communications and Operations Management
- •17.2.4 Information Security Incident Management
- •17.2.5 Compliance
- •17.3 Security Recommendations
- •17.4 Case Studies
- •17.4.1 Private Cloud: Fortune 100 Company
- •17.4.2 Public Cloud: Amazon.com
- •17.5 Summary and Conclusion
- •References
- •18.1 Introduction
- •18.2 Decoupling Policy from Applications
- •18.2.1 Overlap of Concerns Between the PEP and PDP
- •18.2.2 Patterns for Binding PEPs to Services
- •18.2.3 Agents
- •18.2.4 Intermediaries
- •18.3 PEP Deployment Patterns in the Cloud
- •18.3.1 Software-as-a-Service Deployment
- •18.3.2 Platform-as-a-Service Deployment
- •18.3.3 Infrastructure-as-a-Service Deployment
- •18.3.4 Alternative Approaches to IaaS Policy Enforcement
- •18.3.5 Basic Web Application Security
- •18.3.6 VPN-Based Solutions
- •18.4 Challenges to Deploying PEPs in the Cloud
- •18.4.1 Performance Challenges in the Cloud
- •18.4.2 Strategies for Fault Tolerance
- •18.4.3 Strategies for Scalability
- •18.4.4 Clustering
- •18.4.5 Acceleration Strategies
- •18.4.5.1 Accelerating Message Processing
- •18.4.5.2 Acceleration of Cryptographic Operations
- •18.4.6 Transport Content Coding
- •18.4.7 Security Challenges in the Cloud
- •18.4.9 Binding PEPs and Applications
- •18.4.9.1 Intermediary Isolation
- •18.4.9.2 The Protected Application Stack
- •18.4.10 Authentication and Authorization
- •18.4.11 Clock Synchronization
- •18.4.12 Management Challenges in the Cloud
- •18.4.13 Audit, Logging, and Metrics
- •18.4.14 Repositories
- •18.4.15 Provisioning and Distribution
- •18.4.16 Policy Synchronization and Views
- •18.5 Conclusion
- •References
- •19.1 Introduction and Background
- •19.2 A Media Service Cloud for Traditional Broadcasting
- •19.2.1 Gridcast the PRISM Cloud 0.12
- •19.3 An On-demand Digital Media Cloud
- •19.4 PRISM Cloud Implementation
- •19.4.1 Cloud Resources
- •19.4.2 Cloud Service Deployment and Management
- •19.5 The PRISM Deployment
- •19.6 Summary
- •19.7 Content Note
- •References
- •20.1 Cloud Computing Reference Model
- •20.2 Cloud Economics
- •20.2.1 Economic Context
- •20.2.2 Economic Benefits
- •20.2.3 Economic Costs
- •20.2.5 The Economics of Green Clouds
- •20.3 Quality of Experience in the Cloud
- •20.4 Monetization Models in the Cloud
- •20.5 Charging in the Cloud
- •20.5.1 Existing Models of Charging
- •20.5.1.1 On-Demand IaaS Instances
- •20.5.1.2 Reserved IaaS Instances
- •20.5.1.3 PaaS Charging
- •20.5.1.4 Cloud Vendor Pricing Model
- •20.5.1.5 Interprovider Charging
- •20.6 Taxation in the Cloud
- •References
- •21.1 Introduction
- •21.2 Background
- •21.3 Experiment
- •21.3.1 Target Application: Value at Risk
- •21.3.2 Target Systems
- •21.3.2.1 Condor
- •21.3.2.2 Amazon EC2
- •21.3.2.3 Eucalyptus
- •21.3.3 Results
- •21.3.4 Job Completion
- •21.3.5 Cost
- •21.4 Conclusions and Future Work
- •References
- •Index

6 Open and Interoperable Clouds: The Cloud@Home Way |
105 |
6.3 Cloud@Home Core Structure
Once the functional architecture of Cloud@Home has been introduced, it is necessary to characterize the blocks implementing the functions thus identified. These blocks are pictorially depicted in the layered model of Fig. 6.4 that reports the core structure of the overall system implementing the Cloud@Home server-side. As done for the functional architecture, the core structure is also specified by following the Cloud ontology characterized in Fig. 6.1. Moreover, the Cloud@Home core structure is subdivided into two subsystems: management and resource subsystems. Such subsystems are strictly interconnected: the management subsystem implements the upper layer of the functional architecture, while the resource subsystem implements the lower level functionalities.
Figure 6.5 pictorially depicts the deployment of the Cloud@Home core structure into the physical infrastructure. Such implementation highlights the hierarchicaldistributed approach of Cloud@Home. On top of the hierarchy, there are the blocks implementing the management subsystem that can be deployed into different servers/ nodes, one for each block, or can be grouped into the same node. Nevertheless, in order to achieve reliability and availability goals, it is necessary to adequately
Subsystem
Management
Resource Subsystem
User Frontend
Cloud Broker |
Resources Engine |
Policy Manager |
|||
VM Scheduler |
|
|
|
|
|
|
|
|
Storage |
||
|
|
|
|
Master |
|
VM |
|
|
|
|
|
Provider |
VM |
|
|
|
|
|
|
|
|
|
|
|
Resource |
|
|
|
Storage |
|
Monitor |
Chunk |
|
||
|
|
Resource |
|||
|
|
Provider |
|||
|
|
Monitor |
|||
|
|
|
|
|
|
HyperVisor |
|
|
|
|
|
Execution Cloud |
|
Storage Cloud |
OS
SW Kernel Infrastructure SW Environment
SW
Firmware/Hardware
Fig. 6.4 Cloud@Home Core Structure Organisation

106 |
V.D. Cunsolo et al. |
replicate such nodes, in particular if all the management subsystem blocks are deployed into the same unique node.
VM schedulers and storage masters manage smaller groups (grid, clusters, multicore nodes, etc.) of resources. They can be designated both globally by the management subsystem and/or locally by applying self-organizing/autonomic algorithms such as election mechanisms. A VM scheduler and a storage master can be deployed into the same node/server, while, obviously, two or more VM schedulers/storage masters cannot coexist in the same node. For reliability/availability purpose, they can also be replicated and/or hierarchically organized.
At the bottom of the hierarchy, there are the contributing hosts. Each contains the software for supporting the specific service for what was enrolled into the Cloud. Thus, a node contributing to the execution Cloud has a hypervisor, a VM provider, and a VM resource monitor, while a storage Cloud contributing host has a chunk provider and a storage resource monitor. As shown in Fig. 6.4 and also stated earlier, it is possible that the same host contributes to both execution and storage Clouds, and therefore, has both execution and storage components.
6.3.1 Management Subsystem
In order to enroll and manage the distributed resources and services of a Cloud, providing a unique point of access for them, it is necessary to adopt a centralized approach that is implemented by the management subsystem. It is composed of four parts: the user frontend, the Cloud broker, the resource engine, and the policy manager.
C@H User Frontend
|
|
|
|
Policy |
|
Resource |
Cloud |
|
|
|
||
|
|
|
|
Manager |
|
Engine |
Broker |
|
|
|
||
|
|
VM |
|
VM |
|
Storage |
|
Storage |
|
|
||
|
|
Scheduler |
Scheduler |
Master |
|
Master |
|
|
||||
VM |
|
|
VM |
VM |
|
Chunk |
C@H |
Chunk |
C@H |
Chunk |
C@H |
|
Provider |
Provider |
Provider |
|
Provider |
FS |
Provider |
FS |
Provider |
FS |
|||
VM |
HV |
VM |
HV |
VM |
HV |
|
Host |
SRM |
Host |
SRM |
Host |
SRM |
RM |
RM |
RM |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
Host |
Host |
Host |
|
|
|
|
|
|
|
|||
|
|
|
|
|
VM |
Chunk C@H |
|
|
|
|
||
|
|
|
|
|
Provider |
Provider |
FS |
|
|
|
|
|
|
|
|
|
|
VM |
HV |
SRM |
|
|
|
|
|
|
|
|
|
|
RM |
|
|
|
|
|
||
|
|
|
|
|
|
Host |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cloud@Home
Fig. 6.5 Cloud@Home Core Structure Infrastructure Deployment.
6 Open and Interoperable Clouds: The Cloud@Home Way |
107 |
The user frontend provides tools for Cloud@Home-user interactions. It collects and manages the users’ requests issued by the Cloud@Home clients. All such requests are transferred to the blocks composing the underlying layer (resource engine, Cloud broker, and policy manager) for processing.
An important task carried out by the user frontend is the Clouds interoperability, implemented point-to-point, connecting the interface of the Clouds wishing to interoperate. If one of the Clouds does not have the Cloud@Home core structure of Fig. 6.3, it is necessary to translate the requests between Cloud@Home and foreign Clouds formats, a task delegated by the user frontend to the Cloud broker. The Cloud broker collects and manages information about the available Clouds and the services they provide (both functional and non-functional parameters, such as QoS, costs, and reliability, request formats’ specifications for Cloud@Home-foreign Cloud translations, etc.).
The policy manager provides and implements the Cloud’s access facilities. This task falls into the security scope of identification, authentication, authorization, and permissions management. To achieve this target, the policy manager uses an infrastructure based on PKI, smartcard devices, Certification Authority, and SSO. The policy manager also manages the information about users’ QoS policies and requirements.
The resource engine is the heart of Cloud@Home. It is responsible for the resources’ management, the equivalent of a Grid resource broker in a broader Cloud environment. To meet this goal, the resource engine applies a hierarchical policy. It operates at a higher level, in a centralized way, indexing all the resources of the Cloud. Incoming requests are delegated to VM schedulers or storage masters that, in a distributed fashion, manage the computing or storage resources, respectively, coordinated by the resource engine.
The management subsystem is implemented as a centralized subsystem managing the whole infrastructure. Although this solution introduces a single point of failure into the architecture, this is the only possible way to manage resource QoS, SLA, dynamic provisioning, and monitoring because there has to be a subsystem that aggregates information and has to know the condition of the whole infrastructure, there needs to be a coordinator. Reliability, availability, and fault-tolerance issues can be achieved by replicating the management subsystem and its components, adequately managing the consistency of redundant replicas.
6.3.2 Resource Subsystem
The resource subsystem contains all the blocks implementing the local and distributed management functionalities of Cloud@Home. This subsystem can be logically split into two parts offering different software infrastructure services: the execution Cloud and the storage Cloud. The management subsystem is also able to merge them, providing a unique Cloud that can offer both execution and/or storage services.
108 |
V.D. Cunsolo et al. |
The execution Cloud provides tools for managing virtual machines according to users’ requests and requirements coming from the management subsystem. It is composed of four blocks: VM scheduler, VM provider, VM resource monitor, and hypervisor.
The VM Scheduler is a peripheral resource broker of the Cloud@Home infrastructure, to which the resource engine delegates the management of computing/ execution resources and services of the Cloud. It establishes which, what, where, and when to allocate a VM; moreover, it is responsible for moving and managing VM services. From the end user’s point of view, a VM is allocated somewhere on the Cloud; therefore, its migration is transparent for the end user that is not aware of any VM migration mechanism. However, some problems can affect VM migrations into the Cloud@Home environment. As the nodes implementing the Cloud are, generally, widely distributed across the Internet, for migrating a VM with its entire context from one node to another (remote) node, great transfer delays are introduced. In a highly dynamic environment, where VM migrations could be highly frequent, this could become a serious problem.
A possible solution to such a problem is the introduction of technique-based difference algorithms, similar to the one implemented in the union file system (UnionFS) [27]. In each node contributing to the execution Cloud of the Cloud@ Home infrastructure, redundant basic VM images must be available (if possible). Thus, in case of migration, starting from the selected data/files comparison algorithm (diff), instead of transferring the whole VM with its context, a lighter (diff) file only containing the differences between a new VM and the one to migrate is sent to the destination host, which recomposes the original VM starting from a new VM instance and runs it. This technique can considerably reduce the amount of data to transfer, and consequently the corresponding transfer times.
Differentiation techniques might be appropriate for moving VM disk images (although they would require some fundamental restrictions to be placed on the images that could be used), but they do not address the problem of migrating VM memory state. Such a problem could be addressed by exploiting specific and advanced live migration techniques implementing reduced bandwidth usage, just-in-time live migration behavior, and live migration across WAN, mainly based on compression algorithms [11,12].
The VM provider, the VM resource monitor, and the hypervisor are responsible for managing a VM locally to a physical resource. A VM provider exports functions for allocating, managing, migrating, and destroying a virtual machine on the corresponding host. The VM resource monitor allows taking the local computing resources under control, according to requirements and constraints negotiated in the setup phase with the contributing user. If during a virtual machine execution, the local resources crash or become insufficient to keep the virtual machine running, the VM resource monitor asks the scheduler to migrate the VM elsewhere.
In order to implement the storage Cloud, we specify the Cloud@Home file system (FS), adopting an approach similar to the Google FS [10]. The Cloud@Home FS splits data and files into chunks of fixed or variable size, depending on the storage resources available. The architecture of the storage file system is hierarchical: data chunks are