1 # Support for additional EPA capabilities #
5 - Ravindran Ganapathi (VMware)
15 Goal of the feature is to enable additional EPA capibilities for at VDU level related to:
20 ------------------------------------------------------------------------------------------------
23 More description on Resource Allocation primitives:
25 Resource Allocation Limit
26 -------------------------
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.
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.
35 There are benefits and drawbacks:
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.
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.
47 Resource Allocation Reservation
48 -------------------------------
50 A reservation specifies the guaranteed minimum allocation for a virtual machine.
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.
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).
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.
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.
64 Resource Allocation Shares
65 -------------------------
67 Shares specify the relative importance of a virtual machine (or resource pool).
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.
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.
76 Siblings share resources according to their relative share values, bounded by the reservation and limit.
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.
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
89 ------------------------------------------------------------------------------------------------
92 Properties to support related to Resource Allocation
93 ------------------------------------------------
97 -----------------------------
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.
105 -----------------------------
107 quota:cpu_reservation
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.
113 -----------------------------
115 quota:cpu_shares_share
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.
125 -----------------------------
130 -----------------------------
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.
139 -----------------------------
141 quota:memory_reservation
144 - Specifies the guaranteed minimum memory reservation in MB .
145 - This means the specified amount of memory will definitely be allocated to the machine.
147 -----------------------------
149 quota:memory_shares_share
152 - Specifies the number of memory shares allocated.
153 - When there is resource contention, this value is used to determine the resource allocation.
155 -----------------------------
160 -----------------------------
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.
169 -----------------------------
171 quota:disk_io_reservation
174 - Specifies the guaranteed minimum disk allocation in terms of Input/output Operations Per Second (IOPS).
176 -----------------------------
178 quota:disk_io_shares_share
181 - Specifies the number of disk transaction shares allocated.
182 - When there is resource contention, this value is used to determine the resource allocation.
184 -----------------------------
189 -----------------------------
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.
197 -----------------------------
199 quota:vif_reservation
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.
206 -----------------------------
208 quota:vif_shares_share
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.
214 -----------------------------
217 -------------------------------------------------------------------------------------------------
220 Properties to support related to Resource Placement
221 ---------------------------------------------------
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
230 -----------------------------
232 vmware:storage_policy
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.
245 -----------------------------
249 Design pad: https://osm.etsi.org/pad/p/feature7106
251 ## Demo or definition of done ##
253 We should be able to define the cpu/memory/disk-iops/vif-bandwidth allocation parameters in the vnfd IM descriptior.
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.