Running VTC and VTSR within OpenStack as Tenant Virtual Machines

In certain deployment scenarios, it may be necessary to run VTC and/or VTSR as tenant VMs on OpenStack. This is a deviation from the recommended method of running VTC and VTSR directly on KVM. This appendix provides details on the considerations and steps required in such scenarios.

This appendix has the following section:

Running VTC and VTSR within OpenStack as Tenant VMs


Note

If VTC and/or VTSR are running as tenant VMs, the management and underlay networks which they are attached to must be independent of the tenant networks which they are designed to manage later on.


To run VTC/VTSR as a tenant VM, the following consideration needs to be made:
  • The nova flavor should match VTC/VTSR's requirements.

  • The VTC/VTSR VM should use persistent instead of ephemeral storage. This is achieved by using a cinder volume as the persistent drive.

  • There must be a way to auto-configure VTC parameters using a config drive. This is achieved by using a 2nd cinder volume, mounted as CDROM.


Note

After VTC is launched, its default password needs to be changed from the Web UI before VTSR registers correctly.


Prerequisites:
  • VTC and VTSR software image have been downloaded from cisco.com to OpenStack controller node.

  • Config ISO images for VTC and VTSR have been created.

  • Cinder volume should have at least 130G of space available. For example: VTC requires 48G and VTSR requires 80G based on 2.5.0.

  • Neutron networks for attaching VTC (2x NICs) and VTSR's (6x NICs) have been created.

  • Openstack only allows traffic from the IP address of the VM that OpenStack assigns during the installation.

    VIP address is not something that OpenStack assigns. So the normal behavior for OpenStack is to drop the traffic for VIP IP, due to security reasons.

    If you need to access VIP, you may use the allowed-address-pair option.

    While creating a port allowed-address-pairs can be passed, as an additional parameter, to specify the additional IP that should be allowed. This is the neutron port create API.

For VTC

The following section details the steps specific to VTC.

Procedure


Step 1

Glance VTC image into OpenStack. For example:

glance image-create --file vtc.qcow2 --progress --visibility public --disk-format qcow2 --name vtc250 --container-format bare
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | e195df17122ec8bdaa771b3d148546e4     |
| container_format | bare                                 |
| created_at       | 2017-08-03T13:42:39Z                 |
| disk_format      | qcow2                                |
| id               | 52a10029-91ef-44f6-9f78-159cead8da9c |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | vtc250                               |
| owner            | ea71291e36e94fa1b5745779b1d456cc     |
| protected        | False                                |
| size             | 10529538048                          |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2017-08-03T13:44:10Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+
Step 2

Create a (persistent) cinder volume for booting up VTC, based on VTC image. For example:

openstack volume create --image vtc250 --size 48 vtc_vol
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2017-08-03T13:45:05.573850           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | e4fb13fb-a23a-45ce-a2b4-0a3cfe4916af |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | vtc_vol                              |
| properties          |                                      |
| replication_status  | disabled                             |
| size                | 48                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| user_id             | 3b5684ca7fd2418084090b48904a9237     |
+---------------------+--------------------------------------+
Step 3

Create VTC config image based on VTC config drive (vtc_config_250.iso). For example:

openstack image create vtc_config --file vtc_config_250.iso --disk-format iso --container-format bare
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | c020985f6de566b3b8b6bad02e440f93                     |
| container_format | bare                                                 |
| created_at       | 2017-08-03T13:46:40Z                                 |
| disk_format      | iso                                                  |
| file             | /v2/images/0d74a180-9af4-4dfb-bc81-1f31b11f5a4e/file |
| id               | 0d74a180-9af4-4dfb-bc81-1f31b11f5a4e                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | vtc_config                                           |
| owner            | ea71291e36e94fa1b5745779b1d456cc                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 358400                                               |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-08-03T13:46:41Z                                 |
| virtual_size     | None                                                 |
| visibility       | private                                              |
+------------------+------------------------------------------------------+
Step 4

Set VTC config image properties. For example:

openstack image set --property hw_cdrom_bus=ide --property hw-disk_bus=ide vtc_config
Step 5

Create VTC config cinder volume, based on VTC config image. For example:

openstack volume create vtc_config_vol --image vtc_config --size 1
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2017-08-03T13:48:37.932104           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 32c93acf-0e35-4a67-89b9-44ae190ac76a |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | vtc_config_vol                       |
| properties          |                                      |
| replication_status  | disabled                             |
| size                | 1                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| user_id             | 3b5684ca7fd2418084090b48904a9237     |
+---------------------+--------------------------------------+
Step 6

Boot VTC volume with attached config drive (volume). For Example:

nova boot --flavor m1.large \
--nic net-id=f12b2a45-aa80-42b3-8007-57730a1325fd \
--nic net-id=ec6e25c2-48e5-4f1a-9f09-774cc4ae0750 \
--block-device id=e4fb13fb-a23a-45ce-a2b4-0a3cfe4916af,source=volume,dest=volume,device=/dev/vda,bootindex=0  \
--block-device id=32c93acf-0e35-4a67-89b9-44ae190ac76a,source=volume,dest=volume,bus=ide,device=/dev/vdb,type=cdrom \
vtc
+--------------------------------------+--------------------------------------------------------------------------------------------------+
| Property                             | Value                                                                                            |
+--------------------------------------+--------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                                                           |
| OS-EXT-AZ:availability_zone          |                                                                                                  |
| OS-EXT-SRV-ATTR:host                 | -                                                                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                                                                                |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000096                                                                                |
| OS-EXT-STS:power_state               | 0                                                                                                |
| OS-EXT-STS:task_state                | scheduling                                                                                       |
| OS-EXT-STS:vm_state                  | building                                                                                         |
| OS-SRV-USG:launched_at               | -                                                                                                |
| OS-SRV-USG:terminated_at             | -                                                                                                |
| accessIPv4                           |                                                                                                  |
| accessIPv6                           |                                                                                                  |
| adminPass                            | KCvjE9aZQ7Td                                                                                     |
| config_drive                         |                                                                                                  |
| created                              | 2017-08-03T13:52:01Z                                                                             |
| flavor                               | m1.large (4)                                                                                     |
| hostId                               |                                                                                                  |
| id                                   | dd38f88b-95a8-40c7-8670-538be76e91ce                                                             |
| image                                | Attempt to boot from volume - no image supplied                                                  |
| key_name                             | -                                                                                                |
| metadata                             | {}                                                                                               |
| name                                 | vtc                                                                                              |
| os-extended-volumes:volumes_attached | [{"id": "e4fb13fb-a23a-45ce-a2b4-0a3cfe4916af"}, {"id": "32c93acf-0e35-4a67-89b9-44ae190ac76a"}] |
| progress                             | 0                                                                                                |
| security_groups                      | default                                                                                          |
| status                               | BUILD                                                                                            |
| tenant_id                            | ea71291e36e94fa1b5745779b1d456cc                                                                 |
| updated                              | 2017-08-03T13:52:02Z                                                                             |
| user_id                              | 3b5684ca7fd2418084090b48904a9237                                                                 |
+--------------------------------------+--------------------------------------------------------------------------------------------------+

For VTSR

The following section details the steps specific to VTSR:

Procedure


Step 1

Glance VTSR Image into OpenStack. For Example:

glance image-create --file vtsr.qcow2 --progress --visibility public --disk-format qcow2 --name vtsr250 --container-format bare
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 0e44a2f2d5266670e1f0664928d6f726     |
| container_format | bare                                 |
| created_at       | 2017-08-03T13:58:47Z                 |
| disk_format      | qcow2                                |
| id               | c6a80651-686f-485c-9336-1176f8338387 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | vtsr250                              |
| owner            | ea71291e36e94fa1b5745779b1d456cc     |
| protected        | False                                |
| size             | 2921594880                           |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2017-08-03T13:59:13Z                 |
| virtual_size     | None                                 |
| visibility       | public                               |
+------------------+--------------------------------------+
Step 2

Create Cinder Volume based on VTSR Image. For Example:

openstack volume create --image vtsr250 --size 80 vtsr_vol
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2017-08-03T14:00:14.317952           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 53b919b7-56a2-4a05-93bd-5f81ba762dc1 |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | vtsr_vol                             |
| properties          |                                      |
| replication_status  | disabled                             |
| size                | 80                                   |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| user_id             | 3b5684ca7fd2418084090b48904a9237     |
+---------------------+--------------------------------------+
Step 3

Create VTSR Config Image based on VTSR Config ISO (vtsr_node1_cfg.iso). For Example:

openstack image create vtsr_config --file vtsr_node1_cfg.iso --disk-format iso --container-format bare
+------------------+------------------------------------------------------+
| Field            | Value                                                |
+------------------+------------------------------------------------------+
| checksum         | 960a23f61e73cdcf24295e3182f4f663                     |
| container_format | bare                                                 |
| created_at       | 2017-08-03T14:01:26Z                                 |
| disk_format      | iso                                                  |
| file             | /v2/images/7e5cbbb8-e092-4ebc-9249-8a13ab0a7335/file |
| id               | 7e5cbbb8-e092-4ebc-9249-8a13ab0a7335                 |
| min_disk         | 0                                                    |
| min_ram          | 0                                                    |
| name             | vtsr_config                                          |
| owner            | ea71291e36e94fa1b5745779b1d456cc                     |
| protected        | False                                                |
| schema           | /v2/schemas/image                                    |
| size             | 360448                                               |
| status           | active                                               |
| tags             |                                                      |
| updated_at       | 2017-08-03T14:01:26Z                                 |
| virtual_size     | None                                                 |
| visibility       | private                                              |
+------------------+------------------------------------------------------+
Step 4

Set VTSR Config Image properties. For Example:

openstack image set --property hw_cdrom_bus=ide --property hw-disk_bus=ide vtsr_config
Step 5

Create VTSR Config Image cinder volume, based on VTSR Config Image. For Example:

openstack volume create vtsr_config_vol --image vtsr_config --size 1
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| attachments         | []                                   |
| availability_zone   | nova                                 |
| bootable            | false                                |
| consistencygroup_id | None                                 |
| created_at          | 2017-08-03T14:02:56.332067           |
| description         | None                                 |
| encrypted           | False                                |
| id                  | 3813f48c-10ce-4d03-9587-09d3cb6b1af1 |
| migration_status    | None                                 |
| multiattach         | False                                |
| name                | vtsr_config_vol                      |
| properties          |                                      |
| replication_status  | disabled                             |
| size                | 1                                    |
| snapshot_id         | None                                 |
| source_volid        | None                                 |
| status              | creating                             |
| type                | None                                 |
| user_id             | 3b5684ca7fd2418084090b48904a9237     |
+---------------------+--------------------------------------+
Step 6

Boot VTSR volume with attached config drive (volume). For Example:

nova boot --flavor m1.xlarge  \
--nic net-id=29ddb641-aa7a-4473-a0bd-b6d6bd029240 \
--nic net-id=6c13f4a0-2871-41da-a20a-9063c2535269 \
--nic net-id=51b2c511-0341-4921-abb6-9b9f9f5d345a \
--nic net-id=ec6e25c2-48e5-4f1a-9f09-774cc4ae0750 \
--nic net-id=f12b2a45-aa80-42b3-8007-57730a1325fd \
--nic net-id=b1d841d4-257b-4dd7-bda8-fed5f3c8bef4 \
--block-device id=53b919b7-56a2-4a05-93bd-5f81ba762dc1,source=volume,dest=volume,device=/dev/vda,bootindex=0  \
--block-device id=3813f48c-10ce-4d03-9587-09d3cb6b1af1,source=volume,dest=volume,bus=ide,device=/dev/vdb,type=cdrom \
vtsr
+--------------------------------------+--------------------------------------------------------------------------------------------------+
| Property                             | Value                                                                                            |
+--------------------------------------+--------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                                                                           |
| OS-EXT-AZ:availability_zone          |                                                                                                  |
| OS-EXT-SRV-ATTR:host                 | -                                                                                                |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                                                                                |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000097                                                                                |
| OS-EXT-STS:power_state               | 0                                                                                                |
| OS-EXT-STS:task_state                | scheduling                                                                                       |
| OS-EXT-STS:vm_state                  | building                                                                                         |
| OS-SRV-USG:launched_at               | -                                                                                                |
| OS-SRV-USG:terminated_at             | -                                                                                                |
| accessIPv4                           |                                                                                                  |
| accessIPv6                           |                                                                                                  |
| adminPass                            | A52TRbkcQyrn                                                                                     |
| config_drive                         |                                                                                                  |
| created                              | 2017-08-03T14:06:42Z                                                                             |
| flavor                               | m1.xlarge (5)                                                                                    |
| hostId                               |                                                                                                  |
| id                                   | a3bd937a-78ab-47c4-91ca-d0f106b31f2a                                                             |
| image                                | Attempt to boot from volume - no image supplied                                                  |
| key_name                             | -                                                                                                |
| metadata                             | {}                                                                                               |
| name                                 | vtsr                                                                                             |
| os-extended-volumes:volumes_attached | [{"id": "53b919b7-56a2-4a05-93bd-5f81ba762dc1"}, {"id": "3813f48c-10ce-4d03-9587-09d3cb6b1af1"}] |
| progress                             | 0                                                                                                |
| security_groups                      | default                                                                                          |
| status                               | BUILD                                                                                            |
| tenant_id                            | ea71291e36e94fa1b5745779b1d456cc                                                                 |
| updated                              | 2017-08-03T14:06:42Z                                                                             |
| user_id                              | 3b5684ca7fd2418084090b48904a9237                                                                 |
+--------------------------------------+--------------------------------------------------------------------------------------------------+