Chapter 21. Use Tagging for Virtual Device Identification

If an instance is started with multiple network interfaces or block devices, you can use device tagging to communicate the intended role of each device to the instance operating system. Tags are assigned to devices at instance boot time, and are made available to the instance operating system through the metadata API and the config drive (if enabled).

The tags are set using the following parameters:

  • --block-device tag=device metadata
  • --nic tag=device metadata

For example, this command creates an instance using the tag parameters for --block-device and --nic:

$ nova boot test-vm --flavor m1.tiny --image cirros \
--nic net-id=55411ca3-83dd-4036-9158-bf4a6b8fb5ce,tag=nfv1 \
--block-device id=b8c9bef7-aa1d-4bf4-a14d-17674b370e13,bus=virtio,tag=database-server NFVappServer

The resulting tags are added to the existing instance metadata and are made available through both the metadata API, and on the configuration drive. In the above example, the following devices section will appear in the metadata:

  • Sample meta_data.json:
    {
  "devices": [
    {
        "type": "nic",
        "bus": "pci",
        "address": "0030:00:02.0",
        "mac": "aa:00:00:00:01",
        "tags": ["nfv1"]
    },
    {
        "type": "disk",
        "bus": "pci",
        "address": "0030:00:07.0",
        "serial": "disk-vol-227",
        "tags": ["database-server"]
    }
  ]
}

The device tag metadata is available as GET /openstack/latest/meta_data.json from the metadata API. If the configuration drive is enabled, and mounted under /configdrive in the instance operating system, the metadata is also present in /configdrive/openstack/latest/meta_data.json.