Using the Tenant Virtual Data Center available with VMware Integrated OpenStack Carrier Edition, you can create virtual data centers to enable secure multi-tenancy and resource allocation. These data centers can be created on different compute nodes that offer specific service level agreements for each telecommunication workload.

While quotas on projects set limits on the OpenStack resources across multiple compute nodes or availability zones, they do not guarantee resource reservation. By using the Tenant Virtual Data Center to allocate CPU and memory for an OpenStack project or tenant on a compute node, you provide a resource guarantee for tenants and avoid noisy neighbor scenarios in a multi-tenant environment.

To manage the Tenant Virtual Data Center, you use the VMware Integrated OpenStack command line utility. The viocli inventory-admin command includes parameters to create, list, and delete a tenant virtual data center. For more information, see viocli inventory-admin Command.

You use the Tenant Virtual Data Center to allocate resources at the compute node level. To allocate resources for Virtual Network Functions (VNF), see Configure QoS Resource Allocation for Instances Using Flavor Metadata.

Prerequisites

Verify that you have assigned a Carrier Edition license for VMware Integrated OpenStack.

Procedure

  1. Using SSH, log in to the VMware Integrated OpenStack manager.
  2. Create the Tenant Virtual Data Center.
    viocli inventory-admin create-tenant-vdc 
       --project-id <project-id> 
       --compute <compute-node> 
       --name <name> 
       -–cpu-limit <cpu-limit>
       --cpu-reserve <cpu-reserve> 
       --mem-limit <mem-limit>
       -–mem-reserve <mem-reserve>

    Parameter

    Description

    project-id

    OpenStack project ID

    compute-node

    Compute node on VMware Integrated OpenStack

    name

    Name of the Tenant Virtual Data Center

    cpu-limit

    Upper limit for CPU in MHz within the compute node

    cpu-reserve

    Minimum guaranteed or reserved value for CPU in MHz within the compute node

    mem-limit

    Upper limit for memory in MB within the compute node

    mem-reserve

    Minimum guaranteed or reserved value for memory in MB within the compute node

    The following example includes typical values.

    viocli inventory-admin create-tenant-vdc 
       --project-id 908909ca3db4460faaa0f765757470ac 
       --compute compute01 
       --name computeA_gold 
       -–cpu-limit 10000 
       --cpu-reserve 8000  
       --mem-limit 20000
       -–mem-reserve 10000
  3. Get the UUID for the Tenant Virtual Data Center.
    viocli inventory-admin list-tenant-vdcs

    The result lists the Tenant Virtual Data Center name and its UUID.

    +-----------------------------------------+----------------------------------+
    
    | name                                             | id                               |
    
    +--------------------------------------------------+----------------------------------+
    
    | computeA_gold (4c238c45dbcb433fb6105420c3b05b63) | 4c238c45dbcb433fb6105420c3b05b63 |
    
    +--------------------------------------------------+----------------------------------+
  4. (Optional) You can update an existing Tenant Virtual Data Center.
    viocli inventory-admin update-tenant-vdc 
       --id <id> 
       --compute <compute-node>  
       --mem-limit <mem-limit>
       -–mem-reserve <mem-reserve>
       --cpu-limit <cpu-limit>
       -–cpu-reserve <cpu-reserve>
    

    Parameter

    Description

    id

    UUID of the Tenant Virtual Data Center

    compute-node

    Compute node on VMware Integrated OpenStack

    cpu-limit

    Upper limit for CPU in MHz within the compute node

    cpu-reserve

    Minimum guaranteed or reserved value for CPU in MHz within the compute node

    mem-limit

    Upper limit for memory in MB within the compute node

    mem-reserve

    Minimum guaranteed or reserved value for memory in MB within the compute node

    The following example includes typical values.

    viocli inventory-admin update-tenant-vdc 
       --id 502c8053-8a93-4d51-a0a4-242f8d77e3b2 
       --compute compute02 
       --mem-limit 2000
       -–mem-reserve 1000
  5. (Optional) You can show resource pools in a Tenant Virtual Data Center.
    viocli inventory-admin show-tenant-vdc --id <id> 
    

    Where id is the UUID of the Tenant Virtual Data Center.

    The following example includes typical values.

    viocli inventory-admin show-tenant-vdc --id 6623e08e-ad29-479a-8442-382a4ae549e2 
    

    Results appear in a table listing each resource pool with its provider ID, project ID, status, CPU limit, CPU reserve, memory limit, memory reserve, and compute node information. For a Tenant Virtual Data Center with multiple resource pools, the first row displays aggregate information for all pools.

  6. Create the flavor.
    openstack flavor create 
       --disk <disk-size-gb> 
       --ram <memory-in-mb> 
       --vcpus <vcpu-count> 
       --private
       --project <project>
       <flavor-name>

    Parameter

    Description

    disk-size-gb

    Disk size in GB (default 0G)

    memory-in-mb

    Memory size in MB (default 256M)

    vcpu-count

    Number of vcpus (default 1)

    project

    Project allowed to access private flavor specified as name or ID. Must be used with --private option.

    flavor-name

    New flavor name

    The following example includes typical values.

    openstack flavor create 
       --disk 10 
       --ram 2048 
       --vcpus 1 
       --private
       --project 908909ca3db4460faaa0f765757470ac
       companyA_gold

    The result lists the flavor name and its UUID.

    +----------------------------+--------------------------------------+
    | Field                      | Value                                |
    +----------------------------+--------------------------------------+
    | OS-FLV-DISABLED:disabled   | False                                |
    | OS-FLV-EXT-DATA:ephemeral  | 0                                    |
    | disk                       | 10                                   |
    | id                         | 7796b6ea-17b1-4dec-868c-12e4a7196efd |
    | name                       | companyA_gold                        |
    | os-flavor-access:is_public | False                                |
    | properties                 |                                      |
    | ram                        | 2048                                 |
    | rxtx_factor                | 1.0                                  |
    | swap                       |                                      |
    | vcpus                      | 1                                    |
    +----------------------------+--------------------------------------+
    
  7. Use the OpenStack flavor extra specs to expose the Tenant Virtual Data Center.
    openstack flavor set 
       --property vmware:tenant_vdc=<UUID-TvDC> <UUID-flavor>

    The following example includes values for the Tenant Virtual Data Center and flavor UUIDs.

    openstack flavor set 
       --property vmware:tenant_vdc=4c238c45dbcb433fb6105420c3b05b63 7796b6ea-17b1-4dec-868c-12e4a7196efd
  8. (optional) You can use the following command to expose the VNF level resource allocation with the Tenant Virtual Data Center.
    openstack flavor set 
       --property vmware:tenant_vdc=<UUID-TvDC> 
       --property quota:memory_reservation_percent <memory-percent> 
       --property quota:cpu_reservation_percent <cpu-percent> <UUID-flavor>

    The following example includes typical values.

    openstack flavor set 
       --property vmware:tenant_vdc=4c238c45dbcb433fb6105420c3b05b63 
       --property quota:memory_reservation_percent 100 
       --property quota:cpu_reservation_percent 100 7796b6ea-17b1-4dec-868c-12e4a7196efd

What to do next

When the Tenant Virtual Data Center is no longer needed, delete it.

viocli inventory-admin delete-tenant-vdc --id <UUID-TvDC>