New feature request: Installer changes for NG-UI.
[osm/Features.git] / Release6 / support_additional_epa_capabilities.md
1 # Support for additional EPA capabilities #
2
3 ## Proposer ##
4 - Syed Anwar (VMware)
5 - Ravindran Ganapathi (VMware)
6
7 ## Type ##
8 **Feature**
9
10 ## Target MDG/TF ##
11 IM,RO
12
13 ## Description ##
14
15 Goal of the feature is to enable additional EPA capibilities for at VDU level related to:
16
17 - Resource Allocation
18 - Resource Placement
19
20 ------------------------------------------------------------------------------------------------
21
22
23 More description on Resource Allocation primitives:
24
25 Resource Allocation Limit
26 -------------------------
27
28 Limit specifies an upper bound for CPU, memory, or storage I/O resources that can be allocated to a virtual machine.
29 A server can allocate more than the reservation to a virtual machine, but never allocates more than the limit, even if there are unused resources on the system.
30 The limit is expressed in concrete units (megahertzĒ° megabytes, or I/O operations per second). CPU, memory, and storage I/O resource limits default to unlimited.
31
32 When the memory limit is unlimited, the amount of memory configured for the virtual machine when it was created becomes its effective limit.
33 In most cases, it is not necessary to specify a limit.
34
35 There are benefits and drawbacks:
36
37     Benefits
38     Assigning a limit is useful if you start with a small number of virtual machines and want to manage user expectations.
39     Performance deteriorates as you add more virtual machines. You can simulate having fewer resources available by specifying a limit.
40
41     Drawbacks
42     You might waste idle resources if you specify a limit.
43     The system does not allow virtual machines to use more resources than the limit, even when the system is underutilized and idle resources are available.
44     Specify the limit only if you have good reasons for doing so.
45
46
47 Resource Allocation Reservation
48 -------------------------------
49
50 A reservation specifies the guaranteed minimum allocation for a virtual machine.
51
52 vCenter Server or ESXi allows you to power on a virtual machine only if there are enough unreserved resources to satisfy the reservation of the virtual machine.
53
54 The server guarantees that amount even when the physical server is heavily loaded.
55 The reservation is expressed in concrete units (megahertz or megabytes).
56
57 For example, assume you have 2GHz available and specify a reservation of 1GHz for VM1 and 1GHz for VM2.
58 Now each virtual machine is guaranteed to get 1GHz if it needs it. However, if VM1 is using only 500MHz, VM2 can use 1.5GHz.
59
60 Reservation defaults to 0.
61 You can specify a reservation if you need to guarantee that the minimum required amounts of CPU or memory are always available for the virtual machine.
62
63
64 Resource Allocation Shares
65 -------------------------
66
67 Shares specify the relative importance of a virtual machine (or resource pool).
68
69 If a virtual machine has twice as many shares of a resource as another virtual machine,
70 it is entitled to consume twice as much of that resource when these two virtual machines are competing for resources.
71
72 You can assign a specific number of shares (which expresses a proportional weight) to each virtual machine.
73 Specifying shares makes sense only with regard to sibling virtual machines or resource pools, that is,
74 virtual machines or resource pools with the same parent in the resource pool hierarchy.
75
76 Siblings share resources according to their relative share values, bounded by the reservation and limit.
77
78 When you assign shares to a virtual machine,
79 you always specify the priority for that virtual machine relative to other powered-on virtual machines.
80
81
82 For more references
83 -------------------
84
85     https://docs.vmware.com/en/VMware-vSphere/6.5/vsphere-esxi-vcenter-server-65-resource-management-guide.pdf
86     https://docs.openstack.org/nova/queens/user/flavors.html
87     https://docs.vmware.com/en/VMware-Integrated-OpenStack/5.0/com.vmware.openstack.admin.doc/GUID-286DAE9A-A267-4A87-8636-AAC465A071DC.html
88
89 ------------------------------------------------------------------------------------------------
90
91
92 Properties to support related to Resource Allocation
93 ------------------------------------------------
94
95 CPU Allocation:
96
97     -----------------------------
98
99     quota:cpu_limit
100
101     Description   :
102     - Specify the maximum CPU allocation in MHz. The value 0 indicates that CPU usage is not limited.
103     - This parameter ensures that the instance never uses more than the defined amount of CPU allocation.
104
105     -----------------------------
106
107     quota:cpu_reservation
108
109     Description   :
110     - Specifies the guaranteed minimum CPU reservation in MHz.
111     - This means that if needed, the machine will definitely get allocated the reserved amount of CPU cycles.
112
113     -----------------------------
114
115     quota:cpu_shares_share
116
117     Description   :
118     - Specifies the number of CPU shares allocated.
119     - Specifies the proportional weighted share for the domain. If this element is omitted, the service defaults to the OS provided defaults.
120     - There is no unit for the value; it is a relative measure based on the setting of other VMs.
121     - For example, a VM configured with value 2048 gets twice as much CPU time as a VM configured with value 1024.
122     - When you assign CPU shares to a project, your primary concern is not the number of shares the project has.
123       Knowing how many shares the project has in comparison with other projects is more important.
124
125     -----------------------------
126
127
128 Memory Allocation:
129
130     -----------------------------
131
132     quota:memory_limit
133
134     Description   :
135     - Specify the maximum memory allocation in MB. The value 0 indicates that memory usage is not limited.
136     - The memory utilization of a virtual machine will not exceed this limit, even if there are available resources.
137     - This is typically used to ensure a consistent performance of virtual machines independent of available resources.
138
139     -----------------------------
140
141     quota:memory_reservation
142
143     Description   :
144     - Specifies the guaranteed minimum memory reservation in MB .
145     - This means the specified amount of memory will definitely be allocated to the machine.
146
147     -----------------------------
148
149     quota:memory_shares_share
150
151     Description   :
152     - Specifies the number of memory shares allocated.
153     - When there is resource contention, this value is used to determine the resource allocation.
154
155     -----------------------------
156
157
158 Disk I/O Allocation:
159
160     -----------------------------
161
162     quota:disk_io_limit
163
164     Description   :
165     - Specify the maximum disk transaction allocation in IOPS. The value 0 indicates that disk transactions are not limited.
166     - Specifies the upper limit for disk utilization in I/O per second.
167     - The utilization of a virtual machine will not exceed this limit, even if there are available resources.
168
169     -----------------------------
170
171     quota:disk_io_reservation
172
173     Description   :
174     - Specifies the guaranteed minimum disk allocation in terms of Input/output Operations Per Second (IOPS).
175
176     -----------------------------
177
178     quota:disk_io_shares_share
179
180     Description   :
181     - Specifies the number of disk transaction shares allocated.
182     - When there is resource contention, this value is used to determine the resource allocation.
183
184     -----------------------------
185
186
187 Bandwidth Alocation:
188
189     -----------------------------
190
191     quota:vif_limit
192
193     Description   :
194     - Specify the maximum virtual interface bandwidth allocation in Mbps. The value 0 indicates that virtual interface bandwidth is not limited.
195     - This parameter ensures that the VIF never uses more than the defined amount of bandwidth.
196
197     -----------------------------
198
199     quota:vif_reservation
200
201     Description   :
202     - Specify the guaranteed virtual interface bandwidth allocation in Mbps.
203     - This parameter ensures that the virtual adapter on the instance gets the reserved amount of bandwidth during resource contention.
204     - If the instance uses less than the reserved amount, the remainder is available to other virtual adapters.
205
206     -----------------------------
207
208     quota:vif_shares_share
209
210     Description   :
211     - Specifies the number of virtual interface bandwidth shares allocated.
212     - When there is resource contention, this value is used to determine the resource allocation.
213
214     -----------------------------
215
216
217 -------------------------------------------------------------------------------------------------
218
219
220 Properties to support related to Resource Placement
221 ---------------------------------------------------
222
223     vmware:hw_version
224
225     Description   :
226     - Specify the hardware version used to create images.
227     - In an environment with different host versions, you can use this key to place instances on the correct hosts.
228     - Example of hardware version: hw14
229
230   -----------------------------
231
232     vmware:storage_policy
233
234     Description   :
235     - Virtual machine storage policies are essential to virtual machine provisioning.
236     - The policies control which type of storage is provided for the virtual machine, how the virtual machine is placed within the storage, and which data services are offered for the virtual machine.
237     - vSphere includes default storage policies. However, you can define and assign new policies. You use the VM Storage Policies interface to create a storage policy.
238     - When you define the policy, you specify various storage requirements for applications that run on virtual machines.
239     - You can also use storage policies to request specific data services, such as caching or replication, for virtual disks.
240     - You apply the storage policy when you create, clone, or migrate the virtual machine.
241     - After you apply the storage policy, the Storage Policy Based Management (SPBM) mechanism places the virtual machine in a matching datastore and, in certain storage environments,
242       determines how the virtual machine storage objects are provisioned and allocated within the storage resource to guarantee the required level of service.
243     - The SPBM also enables requested data services for the virtual machine. vCenter Server monitors policy compliance and sends an alert if the virtual machine is in breach of the assigned storage policy.
244
245     -----------------------------
246
247 ## Design ##
248
249 Design pad: https://osm.etsi.org/pad/p/feature7106
250
251 ## Demo or definition of done ##
252
253 We should be able to define the cpu/memory/disk-iops/vif-bandwidth allocation parameters in the vnfd IM descriptior.
254
255 While instantianiting the NS package for Openstack the above properties should be processed by the openstack connector,
256 and set at flavor level as flavor extra specs for vm instantianation.