1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
|
#let title = [
Unit 4: Virtual Layer
]
#let proverb = [
Knowledge not shared, remains unknown.
]
#set text(12pt)
#set page(
header: [
#box()[#proverb]
#h(1fr)
#box()[#title]
],
)
#align(center, text(20pt)[
*#title*
])
#show table.cell.where(y: 0): strong
#outline()
#pagebreak()
= Basics
- Deployed on the physical layer.
- Specifies entities like virtualization software, resource poolsm and virtual resources.
- Abstracts the physical resources (compute, storage, network).
- Executing requests from control layer and forwarding them to the physical layer for execution.
= Introduction
_*Virtualization refers to the logical abstraction of physical resources such as compute, network and storage that enables a single hardware resource to support multiple concurrent instances of systems ot multiple hardware resources to support single instance of system.*_
- Allows us to make resources look larger or smaller than they actually are.
- Enables multitenant environment improving utilization of physical resources.
= Benefits of virtualization
1. Optimizes and consolidates utilization of IT resources.
2. Reduces cost and management complexity.
3. Reduces number of people required to maintain the system.
4. Reduces deployment time.
5. Increases flexibility.
= Overview
This layer is formed from virtualized compute, virtualized network, and virtualized storage. This enables 2 characteristics of cloud software:
1. Resource Pooling
2. Rapid elasticity
This layer also specifies the entities that operate in this layer:
1. Virtualization software
2. Resource Pools
3. Virtual resources
= Process and Operations
The key steps involved in making resources available to consumers are:
1. Deploying virtualization software.
- Compute systems.
- Network devices.
- Storage devices.
2. Creating resource pools.
- Processing power and memory
- Network bandwidth
- Storage
3. Creating virtual resources.
- Virtual machines
- Virtual Networks
- LUNs
== Virtualization Software
The virtualization software performs the abstraction of the physical resources that ard deployed on computer systems, network devices, and storage devices.\
The key functions of virtualization software is:
1. Create resource pools
2. Create virtual resources.
== Resource Pools
A resource pool is an aggregation of computing resources such as processing power, memory, storage, and network bandwidth which provices an aggregated view of these resources to the control layer.
== Virtual resources
Virtualization software in collaboration with control layer creates virtual resources. Created by allocating physical resources from the resource pool. Share the pooled physical resources.
= Compute Virtualization
== Hypervisor
_*Hypervisor is a piece of software that is installed on a compute system and enables multiple OSs to run concurrently on a physical compute system.*_\
- The hypervisor along with the hypervisor management software (HMS) is the fundamental component for deploying software defined compute environments.\
- Abstracts the physical compute hardware to create multiple *virtual machines*.\
- The hypervisor provides standardized hardware resources, such as processor, memory, network, and disk to all virtual machines.\
Hypervisor has two main components:
1. Kernel
- Acts as kernel of any normal OS.
- Performs process creation, file system management, and process scheduling.
- Optimized for running multiple VMs concurrently.
2. Virtual Machine Manager (VMM)
- Anstracts hardware and appears as a physical compute system with all components required for running OSs and applications.
- Each VM is assigned a VMM that gets a share of the physical resources.
== Types of hypervisors
Categorized into two types:
#table(
columns: 2,
table.header[Bare Metal Hypervisor][Hosted Hypervisor],
[Installed directly on hardware.], [Installed as an application on host system.],
[Direct access to hardware resources.], [No direct access. All access through host OS.],
[More efficient.], [Less efficient.],
[Limited device drivers.], [Compatible with all devices supported by host OS.],
[Designed for data centers and cloud infrastructure.], [Used for development, testing and training.],
)
= Network Virtualization Software
_Network Virtualization Software abstracts physical network resources to create virtual resources like virtual LANs or virtual SANs._\
Built into the network device operating environment, installed on independent compute or built into the hypervisor.
1. *Operating Environment*
- Can abstract physical resources.
- It can divide the physical network into multiple virtual networks.
2. *External compute*
- Fundamental component for deploying software defined network environment.
- It provides a single control point to the entire network.
- Enables automated policy based network management.
3. *Hypervisor*
- Emulates network connectivity among VMs on a physical compute system.
- Allows the creation of virtual switches that appear to the VM as physical switches.
= Storage Virtualization Software
_The storage virtualization software abstracts physical storage resources into virtual resources like virtual volumes and virtual arrays._\
Built into the network device operating environment, installed on independent compute or built into the hypervisor.
1. *Operating Environment*
- Can pool and abstract physical storage drives and present it as local storage.
2. *External compute*
- Fundamental component for deploying software defined storage environment.
- Can pool and abstract existing physical storage and present it as open storage platform.
- Performs tasks such as virtual volume creation apart from creating virtual arrays.
- Provides single control point for entire storage infrastructure.
- Enables automated policy based storage management.
3. *Hypervisor*
- Enables creating virtual disk that appears to the operating system as physical disk.
= Resource Pools
#figure(
image("./assets/resourcepool.png")
)
_A Resource Pool is a logical abstraction of the aggregated computing resources, such as processing power, memory capacity, storage, network bandwidth that are managed collectivly._\
- Cloud services obtain resources from resource pools.
- Resources are dynamically allocated according to consumer demand.
- The allocated resources are returned to the pool when released by the consumers.
- They are designed and sized according to service requirements.
- Cloud administrators can create, remove, exapand, contract resource pools as needed.
- Different pools can be created to provide high-end, low-end, etc. type of service.
== Examples of resource pooling
=== Pooling processing power and memory capacity
#figure(
image("./assets/pppmc.png")
)
- VMs use processing power and memory capacity from processor and memory pools.
- Processor pool aggregates processing power of multiple machines.
- Memory pool aggregates the memory capacity of multiple machines.
- Each VM is allocated a small amount of both.
- After allocation of resources a certain amount is left in the pool.
=== Pooling storage in a block-based storage system
#figure(
image("./assets/psbbss.png")
)
- Comprised of aggregated storage space of a set of physical drives.
- Storage space is allocated from the storage pool to logical unit number (LUN).
- LUNs are then provisioned to consumers upon recieving their storage requests.
- Storage of multiple drives is aggregated into a single pool.
- LUNs of smaller amount of storage created and assigned to consumers.
=== Pooling storage across block based storage systems
#figure(
image("./assets/psabbss.png")
)
- More complex form of strage pooling.
- Higher level storage pool created by pooling multiple storage pools.
- LUNs allocated from these higher level storage pools.
=== Pooling network bandwidth of NICs
#figure(image("./assets/pnbn.png"))
- VMs obtain network bandwidth from network pools.
- VMs allocated appropriate resources to meet required service level.
== Identity pools
#figure(image("./assets/identitypool.png"))
_An identity pool, unlike a resource pool, specifies a range of network identifiers such as virtual network IDs and MAC addresses. These IDs are allocated from the identity pools to the elements of cloud services._\
- May map or allocate IDs to a particular service or to a group of service.
- If it runs out of IDs, then administrators may create an additional pool or add more identities to the existing pool.
- 1-to-1 mapping between identity pool and service simplifies the tracking and use of IDs by a particular service.
- Increases management complexity as multiple identity pools must be created and managed.
= Virtual Resources
== Virtual Machine
_A logical compute system that, like a physical compute system, runs an OS and applications._\
- Created by hosted or bare-metal hypervisor installed on physical compute.
- Has self-contained OS, applications, virtual hardware.
- 'Guest' OS is installed on a VM the same way it is installed on physical compute.
- From 'guest' perspective, VM appears to be a physical compute.
- Virtual Machine Monitor (VMM) is responsible for execution of VM.
- Each VM has dedicated VMM and configuration for hardware, software, network, etc.
- Does not have direct access to host OS or hardware.
- Hypervisor translates virtual VM requests and maps virtual hardware to physical hardware.
- Compute virtualization software enables creating and managing several VMs on a physical compute or compute cluster.
- Providers provision VMs to consumers to deploy applications.
- VM hardware and software are configured to meet requirements.
- Consumer VMs are isolated from each other so there is no interference.
- Isolation also provides fault tolerance.
== VM Hardware
_When a VM is created, it is presented with virtual hardware components that appear as physical hardware components to the guest OS._\
- Within vendor's environment, each VM has standardized hardware components, so they are portable.
- Based on requirements, virtual components can be added or removed.
- However some components are part of the virtual motherboard and cannot be removed.
- Can be configured with one more virtual processors. This number can later be changed.
- When a VM starts, it's virtual processors are scheduled by the hypervisor kernal to run on physical processors.
- Each VM is assigned a virtual motherboard with standardized devices necessary for compute to function.
1. *Virtual RAM* is the amount of physical memory allocated to the VM.
2. *Virtual Disk* is a large physical file, or a set of files.
3. *Virtual Network Adapter* provides connectivity to VMs running on same or different compute or VM and compute.
4. *Virtual optical or floppy drives* can be configured to connect to physical drives or to image files.
5. *SCSI/IDE virtual controllers* provide a way for VMs to connect to storage devices.
6. *Virtual USB controller* is used to connect to a physical USB controller to access storage and devices.
== VM Files
#table(
columns: (auto, auto),
table.header([ File ], [ Description ]),
[ Configuration File ], [ Stores information such as VM name, BIOS information, guest OS type, memory size. ],
[ Virtual Disk File ], [ Stores contents of VM's disk drive. ],
[ Memory State File ], [ Stores the memory contents of a VM in a suspended state. ],
[ Snapshot File ], [ Stores the VM settings and virtual disk of a VM. ],
[ Log File ], [ Keeps log of the VM's activity and is used for troubleshooting. ]
)
== File system to manage VM Files
// Start with slide 25
|