You can create tenant 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.

Important: This feature is offered in VMware Integrated OpenStack Carrier Edition only. For more information, see VMware Integrated OpenStack Licensing.

Project quotas limit OpenStack resources across multiple compute nodes or availability zones, but they do not guarantee resource availability. By creating a tenant virtual data center to allocate CPU and memory for an OpenStack project on compute node, you provide a resource guarantee for tenants and avoid noisy neighbor scenarios in a multi-tenant environment.

The tenant virtual data center allocates resources at the compute node level. You can also allocate resources on the virtual network function (VNF) level using the same flavor. For instructions, see Configure Resource QoS.

You can manage tenant virtual data centers using the viocli utility, vAPI, or Data Center Command-Line Interface (DCLI). This procedure uses the viocli utility as an example. For information about vAPI or DCLI usage, see Using the Tenant Virtual Data Center vAPIs.

Prerequisites

  • Enable VMware Integrated OpenStack Carrier Edition features. See Enable Carrier Edition Features.
  • Determine the UUID of the project under which you want to create the tenant VDC. You can find the project UUID by running the openstack project list command.
  • Determine the name of the compute node on which you want to create the tenant VDC. You can find the names of compute nodes by running the openstack compute service list command.
  • Make sure vSphere DRS is Turned ON for the compute node on which you want to create the tenant VDC.

Procedure

  1. Log in to the Integrated OpenStack Manager as the root user.
    ssh root@mgmt-server-ip
  2. Create a tenant virtual data center.
    viocli create tenant-vdc --name display-name --project-id project-uuid --compute compute-node [-–cpu-limit max-cpu-mhz] [--cpu-reserve min-cpu-mhz] [--mem-limit max-memory-mb] [-–mem-reserve min-memory-mb]
    Option Description

    --compute compute-node

    Enter the compute node on which to create the tenant VDC.

    You can find the names of compute nodes by running the openstack compute service list command.

    --name vdc-name

    Enter the name of the tenant VDC.

    --project-id project-uuid

    Enter the UUID of the project under which to create the tenant VDC.

    --cpu-reserve cpu-min

    Enter the CPU cycles in megahertz to reserve for the VDC.

    If you do not include this parameter, 0 is used by default.

    --cpu-limit cpu-max

    Enter the maximum limit for CPU usage on the VDC (in megahertz).

    If you do not include this parameter, CPU usage is not limited.

    --mem-reserve memory-min

    Enter the memory in megabytes to reserve for the VDC.

    If you do not include this parameter, 0 is used by default.

    --mem-limit memory-max

    Enter the maximum limit for memory consumption on the VDC (in megabytes).

    If you do not include this parameter, memory consumption is not limited.

  3. Log in to the VMware Integrated OpenStack dashboard as a cloud administrator.
  4. Select the admin project from the drop-down menu in the title bar.
  5. Configure a flavor to use the tenant virtual data center.
    1. Select Admin > Compute > Flavors.
    2. Create a new flavor or choose an existing flavor to use the tenant virtual data center.
    3. Select Update Metadata next to the flavor that you want to use.
    4. In the Available Metadata pane, expand VMware Policies and click the Add (plus sign) icon next to Tenant Virtual Datacenter.
    5. Set the value of vmware:tenant_vdc to the UUID of the tenant virtual data center and click Save.
      You can run the viocli get tenant-vdcs command on the Integrated OpenStack Manager to find the UUID of all tenant virtual data centers.
    Live migrate vmotion between same vDCs from different compute
    To live migrate vmotion between same vDCs from different compute, perform the following steps:
    • Create tenant-vdc1 in compute-1.
      viocli create tenant-vdc --name tvdc-01 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
    • Create a flavor and update the flavor property.
      openstack flavor set --property vmware:tenant_vdc='746146ea-a8f2-4be2-8bef-1dabe1249de7' 70841a4c-1332-4474-abd2-3fa07de3ab8e
    • Create instance with the created flavor which you must put under tvdc1 as follows:
      openstack server create --flavor 70841a4c-1332-4474-abd2-3fa07de3ab8e --network 39f32be5-7079-4110-8f38-8c3948d3079d --image "Photon 3.0" tvdc-001
    • Extend tvdc1 to compute-2.
      viocli update tenant-vdc --compute compute-c05c9c49-c3101 --id 746146ea-a8f2-4be2-8bef-1dabe1249de7
    • For live migration, run the following commands:
      export OS_COMPUTE_API_VERSION=2.67
      nova --os-compute-api-version 2.67 live-migration --force d155cbf9-3c1d-4732-9d08-9e28cb141ca0 compute-c05c9c49-c3101

    Live resize instances in, out, and across Tenant VDCs

    To live resize instances in, out, and across Tenant VDCs, perform the following steps:
    • Configure the image for live resize as described in Instance Live Resize.
    • Create tenant-vdc1 in compute-1.
      viocli create tenant-vdc --name tvdc-01 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
    • Create a flavor and update the flavor property.
      openstack flavor set --property vmware:tenant_vdc='746146ea-a8f2-4be2-8bef-1dabe1249de7' m1.tvdc-01
    • Create instance with the created flavor which you can put under tvdc1 as follows:
      openstack server create --flavor m1.small --network 39f32be5-7079-4110-8f38-8c3948d3079d --image "Photon 3.0" resize-01
    • Create tenant-vdc1 in compute-1.
      viocli create tenant-vdc --name tvdc-02 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
      • Move instance outside tenant VDC into tvdc-01.
        openstack server resize resize-01 --flavor m1.tvdc-01
        openstack server resize confirm resize-01
      • Move instance from tvdc-01 to tvdc-02.
        openstack server resize resize-01 --flavor m1.tvdc-02
        openstack server resize confirm resize-01
      • Move instance out of tvdc-02.
        openstack server resize resize-01 --flavor m1.small
        openstack server resize confirm resize-01

Results

The tenant virtual data center is created. You can now launch instances in the tenant virtual data center by configuring them with the flavor that you modified in this procedure.

What to do next

You can display the resource pools in a tenant virtual data center by running the viocli get tenant-vdcs tvdc-uuid command. Each resource pool is listed with its provider ID, project ID, status, minimum and maximum CPU, minimum and maximum memory, and compute node information. If a tenant virtual data center includes multiple resource pools, the first row displays aggregate information for all pools.

You can update a tenant virtual data center by running the viocli update tenant-vdc command or delete a tenant virtual data center by running the viocli delete tenant-vdc command..