此内容没有您所选择的语言版本。
Chapter 8. vHost User Ports
vHost user ports are DPDK-backed datapaths for instances with two modes:
-
dpdkvhostuser
-
dpdkvhostuserclient
In dpdkvhostuser
mode, Open vSwitch (OVS) acts as a server which creates the vHost user socket. OVS shares the socket with QEMU, the client. In this mode, if OVS is restarted, VM instances connected to it will need to be rebooted to regain connectivity.
As of OVS 2.9, dpdkvhostuserclient
is used instead. In this mode the QEMU creates and shares the vHost socket as a server, and OVS connects as the client. If OVS is restarted in this mode, it will automatically reconnect to all existing VMs.
8.1. Manually changing the vhost user port mode
DPDK vHost user ports are created exclusively with dpdkvhostuserclient
mode since RHOSP 10 maintenance release RHSA-2018:2102, with no option to change this behavior. The usage of dpdkvhostuser
mode for existing instances is still supported, however it is recommended to transition to dpdkvhostuserclient
mode.
Change to the new dpdkvhostuserclient
mode on existing instances by cold migrating them to another host after updating the overcloud to OVS 2.9.
If you have instances configured with CPU pinning, set the cpu_pinning_migration_quick_fail
parameter in nova.conf
to false. This will allow CPU pinning to be recalculated for a higher chance of migration success. Prior to attempting a live migration of instances with CPU pinning, contact Red Hat support.
openstack server migrate <server_id> openstack server resize --confirm <server id>
Prior to RHOSP10 maintenance release RHBA-2019:0074, the cold migration may fail when the NUMATopologyFilter value is included in the NovaSchedulerDefaultFilters parameter in nova.conf. This behavior can be prevented by ensuring you are at the latest maintenance release, which includes the cpu_pinning_migration_quick_fail
option for Nova. See Red Hat OpenStack Platform 10 Release Notes for more information.
You can check that an instance’s vHost user port is in dpdkvhostuserclient
mode. Identify and log in to the hypervisor node where the instance resides.
Run the following:
compute-0# virsh dumpxml <instance name> | less
Identify the interface of type vhostuser and check that mode is set to server.
... <interface type='vhostuser'> <model type='virtio'/> <source type='unix' path='<path-to-socket>' mode='<client|server>'/> </interface> ...