Topics in and Computing

Dr Balwinder Singh Sodhi July, 2017

Preface

Virtualization and are vast areas of study. Though there are several excellent reference books on these topics, most of them tend to have a narrow focus. In this book, I have tried to compile those Virtualization and Cloud Computing topics which are necessary to gain an in-depth understanding of the internals of these two important technologies. A majority of the topics in this book have been taken from the content which is freely available on the Web under a permissive license.

Balwinder Singh Sodhi

Ropar PB India 140001

Licensing Notice

This book is released under CC BY-SA License: https://creativecommons.org/licenses/by-sa/3.0/ ​

Contents

1 Virtualization 1

2 Hardware virtualization 7

3 13

4 16

5 18

6 Hardware-assisted virtualization 23

7 Emulator 26

8 Snapshot ( storage) 37

9 Migration (virtualization) 40

10 Operating-system-level virtualization 42

11 Application virtualization 45

12 Portable application 49

13 Memory virtualization 53

14 Storage virtualization 57

15 66

16 Software-defined networking 69

17 Network Functions Virtualization 78

18 Cloud computing 82

19 Elasticity (cloud computing) 98

20 Platform 101

21 105

“”

22 Cloud computing issues 112

23 Cloud computing comparison 121

Chapter 1

Virtualization

Virtualization

1.1 Hardware virtualization

“ “ ” ”

1.1.1 Snapshots

1.1.2 Migration

1.1.3 Failover

1.1.4 Video game console emulation

“” “ ” “” “”

1.1.5 Licensing

1.2

“ ”

1.3 Other types

Software

Memory

Storage

Data

Network

1.4 Nested virtualization

1.5 See also

• • • • • “ ” “ ” • • • •

1.6 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

ʼ “ ”

“ ”

“ ” Chapter 2

Hardware virtualization

hardware virtualization “ ” “ ”

2.1 Concept

“” “ ” “ ”“ ”

2.2 Reasons for virtualization

• “” “”

• •

2.3 Full virtualization

“”

2.4 Hardware-assisted virtualization

2.5 Partial virtualization

Hardware (CPU, Memory, NIC, Disk) Hypervisor (Hyper-V, , ESX Server)

Application Application Application

Guest OS Guest OS Guest OS

Virtual Hardware Virtual Hardware Virtual Hardware

̶ ̶

2.6 Paravirtualization

“” “” “” “ “” “”

2.7 Operating-system-level virtualization

“” “” “”

2.8 Hardware virtualization

Tape backup for software data long-term archival needs Whole-file and application replication

Hardware and software redundancy

2.9 See also

2.10 References

“”

“ ”

“ ”

ʼ

“ ”

ʼ “ ”

“ ”

“ ”

“ ”

2.11 External links

• •

• • Chapter 3

Full virtualization

full virtualization

“ ” “ ”

3.1 See also

3.2 References

“ ”

3.3 External links

• Chapter 4

Paravirtualization

paravirtualization ̶

4.1 History

“ ” “” “” “”

4.2 Linux paravirtualization support

“”

4.3 See also

• •

• •

• •

4.4 References

“ ”

“ ”

“ ”

4.5 External links

• • Chapter 5

Hypervisor

hypervisor monitor VMM

5.1 Classification

“ ”

Type-1: native or bare-metal

Type-2: hosted hypervisors

̶ ̶

5.2 Mainframe origins

“” “” “” “”

5.3 Unix and Linux servers

“ ” “” “”

5.4 x86 systems

“” “ ” “” “ ”

5.5 Embedded systems

5.6 Security implications

5.7 References

“ ” 17

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

5.8 External links

• Chapter 6

Hardware-assisted virtualization

hardware-assisted virtualization accelerated virtualization hardware virtual machine HVM native virtualization

6.1 History

“ ” “

• “ ” “ ” • “”

6.2 Pros

6.3 Cons

“” “ ”

6.4 See also

• •

• •

• •

6.5 References

“ ”

̶

ʼ “

6.6 Further reading

“ ” • • “ • ” 30 “ • ” “ ” • “ ” • Chapter 7

Emulator

emulator

7.1 Emulators in computing

Emulation emulate

hardware emulator

7.2 Emulation in preservation

“ ”

7.2.1 Benefits

7.2.2 Obstacles

7.3 Emulators in new media art

7.4 Emulation in future systems design

7.5 Types of emulators

̶

7.6 Structure of an emulator

7.6.1 Memory subsystem

7.6.2 CPU simulator

“ ”

“ ” “”

7.6.3 I/O

“”

• “ ”

7.7 Emulation versus simulation

“” “ ” “ ” “” “” “” “” “”

7.8 Logic simulators

7.9 Functional simulators

7.10 Video game console emulators

7.11 Terminal emulators

“”

7.12 In literature

“ ” “ ”“ ”“ ” “ ” “ “ ”

7.13 Legal controversy

̶

7.14 See also

• “ ” •

• • • • • •

• • • •

• • •

• • • • •

7.15 Notes

7.16 References

“ ”

“ ”

” ”

“ ”

” ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

7.17 External links

• Chapter 8

Snapshot (computer storage)

snapshot

8.1 Rationale

̶ ̶

8.2 Implementations

8.2.1 Volume managers

̶ “”̶ “”

8.2.2 File systems

“”

8.2.3 In databases

8.2.4 In virtualization

8.2.5 Other applications

8.3 See also

• •

• •

• •

8.4 Notes

8.5 References

“ ”

“ ”

8.6 External links

“ • ” “ ” •

• Chapter 9

Migration (virtualization)

migration teleportation

9.1 Subjective effects

9.2 Objective effects

̶

“ ”

9.3 Relation to failover

9.4 References

“ ” Chapter 10

Operating-system-level virtualization

Operating-system-level virtualization containers

10.1 Uses

10.1.1 Overhead

10.1.2 Flexibility

“” “”

10.1.3 Storage

10.2 Implementations

10.3 See also

10.4 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ʼ

“ ”

− “” “ ”

“ ”

“ ”

10.5 External links

• • Chapter 11

Application virtualization

Application virtualization sandboxed “”

11.1 Description

1. Application in Native Environment 2. Application in Non-Native Environment

Operating System A. B.

Program A. Input Output System Program A. Emulated Input Output System Input Output System

Emulated Graphics Graphics Drivers Graphics Drivers Drivers

Emulated Hardware interfaces Hardware interfaces Hardware interfaces

Emulator or Just In Interface Native Libraries

Linked Libraries Time Recompiler

Recoded Linked Libraries

11.2 Related technologies

• “ ” “”

11.3 Benefits of application virtualization

• •

11.4 Limitations of application virtualization

11.5 See also

11.6 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” Chapter 12

Portable application

portable application portable app standalone

12.1 Portable Windows applications

“” “”

12.2 Portability on Linux and UNIX-like systems

̶ ̶ “ ”

12.3 Portable cross-platform applications

12.4 See also

• • • • • • • • • • • • • • • • •

12.5 References

“ ”

“ ”

“ ”

“”

“ ” ʻ ʼ

“ ” “ ”

“ ”

“”

“ ” Chapter 13

Memory virtualization

memory virtualization

13.1 Description

13.2 Benefits

• • • •

13.3 Products

13.4 Implementations

13.4.1 Application level integration

13.4.2 Operating System Level Integration

13.5 Background

13.6 See also

• •

• • • •

• •

13.7 References

• •

• • Chapter 14

Storage virtualization

storage virtualization

Block virtualization •

File virtualization •

14.1 Block virtualization

14.1.1 Address space remapping

14.1.2 Meta-data

14.1.3 I/O redirection

14.1.4 Capabilities

14.1.5 Replication

• •

14.1.6 Pooling

14.1.7 Disk management

• •

• • •

14.1.8 Benefits

Non-disruptive data migration

migrate data migration

• • • •

Improved utilization

Fewer points of management

14.1.9 Risks

Backing out a failed implementation

Interoperability and vendor support

̶

Complexity

• ̶

Meta-data management

Performance and scalability

14.1.10 Implementation approaches

Host-based

Pros

Cons

Specific examples

• • •

Storage device-based

Concept

Pros

Cons

Network-based

Pros

Cons

Appliance-based vs. switch-based

In-band vs. out-of-band

In-band Out-of-band meta-data servers

14.2 File based virtualization

14.3 See also

• •

14.4 References

“ ”

14.5 External links

• Chapter 15

Network virtualization

network virtualization virtual network external virtualization internal virtualization

15.1 Components

15.2 External virtualization

15.3 Internal virtualization

Internal network virtualization

15.3.1 Examples

“ ” “ ”

15.4 Use in testing

15.5 Wireless network virtualization

15.6 External links

15.7 See also

• •

• •

• •

• •

15.8 Further reading

“ • ” 26 “ ” • 54 “ • ” 17

• “ ”

15.9 References

“ “ ”

Chapter 16

Software-defined networking

Software-defined networking SDN

16.1 History

“ ” “ ” “ ”

” “ ” “”

“ ”

16.2 Concept

• • • •

16.3 Limitations of other networking technologies

ʼ

Complexity that leads to stasis

Inconsistent policies

Inability to scale ̶ ̶

Vendor dependence

16.4 The need for a new network architecture

ʼ

Changing traffic patterns “” “”

The “consumerization of IT”

The rise of cloud services

“Big data”means more bandwidth “ ”

16.5 Architectural components

SDN Application (SDN App)

SDN Controller

SDN Datapath ̶

SDN Control to Data-Plane Interface (CDPI)

SDN Northbound Interfaces (NBI)

16.6 SDN deployment models

* * Proactive vs Reactive [21] [22]

16.7 Applications

“”

Security using SDN paradigm

ʼ

16.8 Access control

16.9 See also

16.10 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ” 62 “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ”

16.11 External links

• • • • • • • • • Chapter 17

Network Functions Virtualization

Network Functions Virtualization

17.1 Background

17.2 History

“ ”

17.3 NFV Framework

Virtualized Network Functions (VNF

NFV Infrastructure (NFVI) Network Functions Virtualization Management and Orchestration Architectural Framework (NFV- MANO Architectural Framework)

17.4 Practical aspects

17.5 Distributed NFV

17.6 NFV modularity benefits

17.7 Relationship to SDN

17.8 Industry impact

17.9 MANO - Management and Orchestration

17.10 See also

• •

17.11 References

“ ”

“ ”

“ ̶ ”

“ ”

“ ”

“ ”

ʼ ʻ ʼ

“ “ ”

“ ”

“ ”

ʼ

“ ”

Chapter 18

Cloud computing

Servers

Laptops Application Desktops

60 50 70 40 80

7 8 30 90 6 F E 5 100 4 20 3 10 110 2 0 120 1 0 12345 NEWS Monitoring Collaboration Finance Content Communication Platform

Identity Queue Object Storage Runtime Database Infrastructure

Compute Network Block Storage Phones Tablets

Cloud Computing

Cloud computing

18.1 Overview

“ ” “ ” “ ”

18.2 History

18.2.1 Origin of the term

18.2.2 The 1950s

18.2.3 The 1990s

18.2.4 Since 2000

“ ” “ ” “ ”

18.3 Similar concepts

“”

̶ • ̶“ • ” ̶ • ̶ “ • ” ̶ •

18.4 Characteristics

Agility • Application programming interface • Cost • Device and location independence • Maintenance • Multitenancy • centralization • peak-load capacity • utilisation and efficiency • Performance •

Productivity • Reliability • Scalability and elasticity “ ” • Security •

̶

18.5 Service models

18.5.1 Infrastructure as a service (IaaS)

18.5.2 (PaaS)

18.5.3 Software as a service (SaaS)

“ ” ̶

18.5.4 Unified Communications as a Service

18.6 Cloud clients

18.7 Deployment models

18.7.1 Private cloud

Hybrid

Private/ Internal Public/ External

The Cloud

On Pr emises / Internal Off Pr emises / Third Party

Cloud Computing Types CC-B Y -S A 3.0 by Sam Johnston

“ ” ”

18.7.2 Public cloud

“ ” “ ” “ ”

18.7.3 Hybrid cloud

ʼ

“”

18.7.4 Others

Community cloud

Distributed cloud

Intercloud

“ ” “ ”

Multicloud

18.8 Architecture

Cloud architecture

Cloud Cloud Service Platform (eg Queue) (eg Web Frontend)

Cloud Infrastructure (eg Billing VMs) (eg Database)

18.8.1 Cloud engineering

Cloud engineering

18.9 Security and privacy

“”

18.10 Cloud Marketplaces

18.11 Other services that require it

“ ” •

18.12 The future

18.13 See also

• • • • • •

18.14 References

“ ” 2011

“ ”

“ ”

“ “ ” ”

“ ”

“ ”

“ ”

“ ”

“ ”

“”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” 53

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ “

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

41

“ ”

18.15 External links Chapter 19

Elasticity (cloud computing)

elasticity “ ”

19.1 Example

t0 t1 t2

19.2 Purpose

Over-provisioning “ ” Under-provisioning

19.3 Problems

19.3.1 Resources provisioning time

19.3.2 Monitoring elastic applications

19.3.3 Elasticity requirements

19.3.4 Multiple levels of control

19.4 See also

19.5 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

19.6 External links

• “ • ” 25 Chapter 20

Platform as a service

Platform as a service PaaS

20.1 Development and uses

“ ”

20.2 Advantages and disadvantages

20.3 Types

20.3.1 Public, private and hybrid

20.3.2 Mobile PaaS

20.3.3 Open PaaS

20.3.4 PaaS for Rapid Development

20.3.5 System types

Add-on development facilities

Stand alone environments

Application delivery-only environments

20.4 Providers

20.5 See also

20.6 References

“ ”

“ ”

“ ”

“ ”

ʼ

“ ʻ ʼ”

“ ʼ ʼ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” Chapter 21

Software as a service

Software as a service SaaS “ ” “ ”

21.1 History

“ ”

21.2 Distribution

21.3 Pricing

21.4 Architecture

“” ̶ ̶ ̶ ̶

21.5 Characteristics

21.5.1 Configuration and customization

̶ ̶

21.5.2 Accelerated feature delivery

• • • •

21.5.3 Open integration protocols

21.5.4 Collaborative (and “social”) functionality

̶ ̶

21.6 Adoption drivers

• “”

21.7 Adoption challenges

ʼ • SaaS •

• ʼ

21.8 Emerging trends

“ ”

21.9 Data escrow

21.10 Criticism

“ ” “ ” “

ʼ ʼ ”

21.11 See also

• • •

21.12 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” ʼ

“ ʼ ”

“ ”

“ ”

“ ”

“ ”

“ ” Chapter 22

Cloud computing issues

22.1 Threats and opportunities of the cloud

22.2 Privacy

̶ ̶

“” “ ”

22.2.1 Sharing information without a warrant

Example of a Privacy Policy that allows this

Previous situation about this

“ ” “ ” “ ” “ “ ” “ ” “ … ”

22.3 Privacy solutions

22.4 Compliance

“ ”

• •

22.5 Legal

“” “”

22.6 Vendor lock-in

22.7 Open source

22.8 Open standards

22.9 Security

“ ”

22.10 Sustainability

“” “ ” ʻ ʼ

“”

22.11 Abuse

22.12 IT governance

22.13 Consumer end storage

22.14 Ambiguity of terminology

“” “ ”

22.15 Performance interference and noisy neighbors

“ ”

22.16 Monopolies and privatization of cyberspace

“ ” “ ” “ “” ”

22.17 See also

22.18 References

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“”

“ ʼ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” 28

“ ”

“ ” 53

“ ” 53

“ ”

“ ”

“ ”

“ ”

“ ʻʼ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ”

“ ” Chapter 23

Cloud computing comparison

23.1 General information

23.2 Supported Hosts

23.3 Supported Clients

23.4 Providers

“”

23.5 Features

23.6 See also

23.7 References

“ ”

“ ”

“ ”

“ ”

“ ”

“”

“ ”

23.8 Text and image sources, contributors, and licenses

23.8.1 Text

Virtualization • Hardware virtualization • Full virtualization • Paravirtualization • Hypervisor • Hardware-assisted virtualization • Emulator •

Snapshot (computer storage) • Migration (virtualization) • Operating-system-level virtualization • Application virtualization • Portable application •

Memory virtualization • Storage virtualization • Network virtualization • Software-defined networking • Network Functions Virtualization • Cloud computing • 先⽣

Elasticity (cloud computing) • Platform as a service • Software as a service •

Cloud computing issues • Cloud computing comparison •

23.8.2 Images

File:Ambox_important.svg • · File:Ambox_question.svg • File:Ambox_scales.svg • File:AppVirtual.svg • File:Basilisk_snapshot9.png • File:Bus_icon.svg • File:CloudComputingSampleArchitecture.svg • File:Cloud_Computing.png • File:Cloud_computing.svg • File:Cloud_computing_icon.svg •

百楽兎 File:Cloud_computing_layers.png • File:Cloud_computing_types.svg • File:Commons-logo.svg • File:Crystal_Clear_app_kedit.svg • File:DOSBox_screenshot.png • File:Edit-clear.svg • “ ” File:Emu_running_emu.jpg • · File:Folder_Hexagonal_Icon.svg • File:Free_Software_Portal_Logo.svg • File:Hardware_Virtualization_(copy).svg • File:Hyperviseur.png • File:Internet_map_1024.jpg • File:Memory_virtualization_addressable_level.png • File:Memory_virtualization_application_level.png • File:Mergefrom.svg • File:Question_book-new.svg • File:SDN-architecture-overview-transparent.png • File:Text_document_with_red_question_mark.svg • File:USB_flash_drive.jpg • File:VirtualBox2.png • File:Wiki_letter_w_cropped.svg • • File:Wiktionary-logo-en.svg • · File:Wzonka-Lad_on_E-UAE_on_Linux.png •

23.8.3 Content license