Chapter 8. Updating an instance You can add and remove additional resources from running instances, such as persistent volume storage, a network interface, or a public IP address. You can also update instance metadata and the security groups that the instance belongs to. 8.1. Attaching a network to an instance You can attach a network to a running instance. When you attach a network to the instance, the Compute service creates the port on the network for the instance. Use a network to attach the network interface to an instance when you want to use the default security group and there is only one subnet on the network. Procedure Identify the available networks and note the name or ID of the network that you want to attach to your instance: If the network that you need is not available, create a new network: Attach the network to your instance: Optional: Include the --tag option and replace <tag_name> with the name of a tag for your virtual NIC device. Replace <instance> with the name or ID of the instance that you want to attach the network to. Replace <network> with the name or ID of the network that you want to attach to the instance. Tip To tag a virtual device at server creation time, see Tagging virtual devices . Additional resources openstack network create command in the Command line interface reference . Creating a network in the Configuring Red Hat OpenStack Platform networking guide. 8.2. Detaching a network from an instance You can detach a network from an instance. Note Detaching the network detaches all network ports. If the instance has multiple ports on a network and you want to detach only one of those ports, follow the Detaching a port from an instance procedure to detach the port. Procedure Identify the network that is attached to the instance: Detach the network from the instance: Replace <instance> with the name or ID of the instance that you want to remove the network from. Replace <network> with the name or ID of the network that you want to remove from the instance. 8.3. Attaching a port to an instance You can attach a network interface to a running instance by using a port. You can attach a port to only one instance at a time. Use a port to attach the network interface to an instance when you want to use a custom security group, or when there are multiple subnets on the network. Tip If you attach the network interface by using a network, the port is created automatically. For more information, see Attaching a network to an instance . Note Red Hat OpenStack Platform (RHOSP) provides up to 24 interfaces for each instance. By default, you can add up to 16 PCIe devices to an instance before you must reboot the instance to add more. The RHOSP administrator can use the NovaLibvirtNumPciePorts parameter to configure the number of PCIe devices that can be added to an instance, before a reboot of the instance is required to add more devices. Prerequisites If attaching a port with an SR-IOV vNIC to an instance, there must be a free SR-IOV device on the host on the appropriate physical network, and the instance must have a free PCIe slot. Procedure Create the port that you want to attach to your instance: Replace <network> with the name or ID of the network to create the port on. Optional: To create an SR-IOV port, replace <vnic-type> with one of the following values: direct : Creates a direct mode SR-IOV virtual function (VF) port. direct-physical : Creates a direct mode SR-IOV physical function (PF) port. macvtap : Creates an SR-IOV port that is attached to the instance through a MacVTap device. Replace <port> with the name or ID of the port that you want to attach to the instance. Attach the port to your instance: Replace <instance> with the name or ID of the instance that you want to attach the port to. Replace <port> with the name or ID of the port that you want to attach to the instance. Verify that the port is attached to your instance: Replace <instance_UUID> with the UUID of the instance that you attached the port to. Additional resources openstack port create command in the Command line interface reference . 8.4. Detaching a port from an instance You can detach a port from an instance. Procedure Identify the port that is attached to the instance: Detach the port from the instance: Replace <instance> with the name or ID of the instance that you want to remove the port from. Replace <port> with the name or ID of the port that you want to remove from the instance. 8.5. Attaching a volume to an instance You can attach a volume to an instance for persistent storage. You can attach a volume to only one instance at a time, unless the volume has been configured as a multi-attach volume. For more information about creating multi-attach volumes, see Volumes that can be attached to multiple instances . Prerequisites To attach a multi-attach volume, the environment variable OS_COMPUTE_API_VERSION is set to 2.60 or later. The instance is fully operational, or fully stopped. You cannot attach a volume to an instance when the instance is in the process of booting up or shutting down. To attach more than 26 volumes to your instance, the image you used to create the instance must have the following properties: hw_scsi_model=virtio-scsi hw_disk_bus=scsi Procedure Identify the available volumes and note the name or ID of the volume that you want to attach to your instance: Attach the volume to your instance: Optional: Include the --tag option and replace <tag_name> with the name of a tag for your virtual storage device. Replace <instance> with the name or ID of the instance that you want to attach the volume to. Replace <volume> with the name or ID of the volume that you want to attach to the instance. Note To tag a virtual device at server creation time, see Tagging virtual devices . Note If the command returns the following error, the volume you chose to attach to the instance is a multi-attach volume, therefore you must use Compute API version 2.60 or later: You can either set the environment variable OS_COMPUTE_API_VERSION=2.72 , or include the --os-compute-api-version argument when adding the volume to the instance: Tip Specify --os-compute-api-version 2.20 or higher to add a volume to an instance with status SHELVED or SHELVED_OFFLOADED . Confirm that the volume is attached to the instance or instances: Replace <volume> with the name or ID of the volume to display. Example output: 8.6. Viewing the volumes attached to an instance You can view the volumes attached to a particular instance. Prerequisites You are using python-openstackclient 5.5.0 . Procedure List the volumes attached to an instance: 8.7. Detaching a volume from an instance You can detach a volume from an instance. Note Detaching the network detaches all network ports. If the instance has multiple ports on a network and you want to detach only one of those ports, follow the Detaching a port from an instance procedure to detach the port. Prerequisites The instance is fully operational, or fully stopped. You cannot detach a volume from an instance when the instance is in the process of booting up or shutting down. Procedure Identify the volume that is attached to the instance: Detach the volume from the instance: Replace <instance> with the name or ID of the instance that you want to remove the volume from. Replace <volume> with the name or ID of the volume that you want to remove from the instance. Note Specify --os-compute-api-version 2.20 or higher to remove a volume from an instance with status SHELVED or SHELVED_OFFLOADED .

Commands:
(overcloud)USD openstack network list
(overcloud)USD openstack network create <network>
openstack server add network [--tag <tag_name>] <instance> <network>
(overcloud)USD openstack server show <instance>
openstack server remove network <instance> <network>
openstack port create --network <network> [--vnic-type <vnic-type>] <port>
openstack server add port <instance> <port>
openstack port list --device-id <instance_UUID>
(overcloud)USD openstack server show <instance>
openstack server remove port <instance> <port>
(overcloud)USD openstack volume list
openstack server add volume [--tag <tag_name>] <instance> <volume>
Multiattach volumes are only supported starting with compute API version 2.60. (HTTP 400) (Request-ID: req-3a969c31-e360-4c79-a403-75cc6053c9e5)
openstack --os-compute-api-version 2.72 server add volume <instance> <volume>
openstack volume show <volume>
+-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+ | ID | Name | Status | Size| Attached to +-----------------------------------------------------+---------------------+---------+------+---------------------------------------------------------------------------------------------+ | f3fb92f6-c77b-429f-871d-65b1e3afa750 | volMultiattach | in-use | 50 | Attached to instance1 on /dev/vdb Attached to instance2 on /dev/vdb | +-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+
openstack server volume list <instance> +---------------------+----------+---------------------+-----------------------+ | ID | Device | Server ID | Volume ID | +---------------------+----------+---------------------+-----------------------+ | 1f9dcb02-9a20-4a4b- | /dev/vda | ab96b635-1e63-4487- | 1f9dcb02-9a20-4a4b-9f | | 9f25-c7846a1ce9e8 | | a85c-854197cd537b | 25-c7846a1ce9e8 | +---------------------+----------+---------------------+-----------------------+
(overcloud)USD openstack server show <instance>
openstack server remove volume <instance> <volume>