Using the Tenant Virtual Data Center available with the VMware Integrated OpenStack Carrier Edition, you can create virtual datacenters for tenants under different compute nodes that offer specific service level agreements for each telecommunication workload.

About this task

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.

Yo 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 VMware Integrated OpenStack version 4.0 or later is deployed and running.

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 <vdc-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

    vdc-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-vds

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

    +-----------------------------------------+----------------------------------+
    
    | name                                             | id                               |
    
    +--------------------------------------------------+----------------------------------+
    
    | computeA_gold (4c238c45dbcb433fb6105420c3b05b63) | 4c238c45dbcb433fb6105420c3b05b63 |
    
    +--------------------------------------------------+----------------------------------+
  4. 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                                    |
    +----------------------------+--------------------------------------+
    
  5. 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
  6. (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>