Remove outdated content from OVS plugin README, point to website instead.
bug 943810 Change-Id: I12c801a83789a2c3f3b0adac4b44f2febf32c523
This commit is contained in:
parent
d9699fe563
commit
6bb707b596
@ -1,175 +1,6 @@
|
|||||||
# -- Background
|
The Open vSwitch (OVS) Quantum plugin is a simple plugin to manage OVS features using a
|
||||||
|
local agent running on each hypervisor.
|
||||||
|
|
||||||
The quantum openvswitch plugin is a plugin that allows you to manage
|
For details on how to configure and use the plugin, see:
|
||||||
connectivity between VMs on hypervisors running openvswitch.
|
|
||||||
|
|
||||||
The quantum openvswitch plugin consists of three components:
|
|
||||||
|
|
||||||
1) The plugin itself: The plugin uses a database backend (mysql for
|
|
||||||
now) to store configuration and mappings that are used by the
|
|
||||||
agent. The mysql server runs on a central server (often the same
|
|
||||||
host as nova itself).
|
|
||||||
|
|
||||||
2) The quantum service host which will be running quantum. This can
|
|
||||||
be run on the server running nova.
|
|
||||||
|
|
||||||
3) An agent which runs on the hypervisor (dom0) and communicates with
|
|
||||||
openvswitch. The agent gathers the configuration and mappings from
|
|
||||||
the mysql database running on the quantum host.
|
|
||||||
|
|
||||||
The sections below describe how to configure and run the quantum
|
|
||||||
service with the openvswitch plugin.
|
|
||||||
|
|
||||||
# -- Nova configuration (controller node)
|
|
||||||
|
|
||||||
1) Make sure to set up nova using the quantum network manager in the
|
|
||||||
nova.conf on the node that will be running nova-network.
|
|
||||||
|
|
||||||
--network_manager=nova.network.quantum.manager.QuantumManager
|
|
||||||
|
|
||||||
# -- Nova configuration (compute node(s))
|
|
||||||
|
|
||||||
1a) (If you're using xen) Configure the integration bridge and vif driver
|
|
||||||
# Note that the integration bridge could be different on each compute node so
|
|
||||||
# be careful to specify the right one in each nova.conf
|
|
||||||
--xenapi_ovs_integration_bridge=xapi1
|
|
||||||
--linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
|
|
||||||
|
|
||||||
1b) (If you're using qemu/kvm) Configure the bridge, vif driver, and
|
|
||||||
libvirt/vif type
|
|
||||||
|
|
||||||
--libvirt_ovs_integration_bridge=br-int
|
|
||||||
--libvirt_type=qemu
|
|
||||||
--libvirt_vif_type=ethernet
|
|
||||||
--libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver
|
|
||||||
# This last one isn't actually required yet as DHCP isn't integrated
|
|
||||||
with the QuantumManager yet.
|
|
||||||
--linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver
|
|
||||||
|
|
||||||
# -- Quantum configuration
|
|
||||||
|
|
||||||
Make the openvswitch plugin the current quantum plugin
|
|
||||||
|
|
||||||
- edit ../../plugins.ini and change the provider line to be:
|
|
||||||
provider = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPlugin
|
|
||||||
|
|
||||||
# -- Database config.
|
|
||||||
|
|
||||||
The Open vSwitch quantum service requires access to a mysql database or any
|
|
||||||
other database engine supported by sqlalchemy in order to store configuration
|
|
||||||
and mappings that will be used by the agent.
|
|
||||||
|
|
||||||
A new database, "ovs_quantum", should be created, and servers running the
|
|
||||||
ovs quantum agent must be able to communicate with the host running the
|
|
||||||
quantum service.
|
|
||||||
|
|
||||||
Here is how to set up the database using MySQL on the host that you will be
|
|
||||||
running the quantum service on.
|
|
||||||
|
|
||||||
MySQL should be installed on the host, and all plugins and clients
|
|
||||||
must be configured with access to the database.
|
|
||||||
|
|
||||||
To prep mysql, run:
|
|
||||||
|
|
||||||
$ mysql -u root -p -e "create database ovs_quantum"
|
|
||||||
|
|
||||||
Make sure any xenserver running the ovs quantum agent will be able to
|
|
||||||
communicate with the host running the quantum service:
|
|
||||||
|
|
||||||
# log in to mysql service
|
|
||||||
$ mysql -u root -p
|
|
||||||
# The Open vSwitch Quantum agent running on each compute node must be able to
|
|
||||||
# make a mysql connection back to the main database server.
|
|
||||||
mysql> GRANT USAGE ON *.* to root@'yourremotehost' IDENTIFIED BY 'newpassword';
|
|
||||||
# force update of authorization changes
|
|
||||||
mysql> FLUSH PRIVILEGES;
|
|
||||||
|
|
||||||
# -- Plugin configuration
|
|
||||||
|
|
||||||
- Edit the configuration file (ovs_quantum_plugin.ini). Make sure it
|
|
||||||
matches your mysql configuration. This file must be updated with
|
|
||||||
the addresses and credentials to access the database. This file
|
|
||||||
will be included in the agent distribution tarball (see below) and
|
|
||||||
the agent will use the credentials here to access the database.
|
|
||||||
|
|
||||||
The credentials must be specified using sqlalchemy url as
|
|
||||||
sql_connection = mysql://user:pass@127.0.0.1/ovs_quantum
|
|
||||||
|
|
||||||
# -- XenServer Agent configuration
|
|
||||||
|
|
||||||
- Create the agent distribution tarball
|
|
||||||
|
|
||||||
$ make agent-dist
|
|
||||||
|
|
||||||
- Copy the resulting tarball to your xenserver(s) (copy to dom0, not
|
|
||||||
the nova compute node)
|
|
||||||
|
|
||||||
- Unpack the tarball and run xenserver_install.sh. This will install
|
|
||||||
all of the necessary pieces into /etc/xapi.d/plugins. It will also
|
|
||||||
output the name of the integration bridge that you'll need for your nova
|
|
||||||
configuration. Make sure to specify this in your nova flagfile as
|
|
||||||
--xenapi_ovs_integration_bridge.
|
|
||||||
|
|
||||||
NOTE: Make sure the integration bridge that the script emits is the
|
|
||||||
same as the one in your ovs_quantum_plugin.ini file.
|
|
||||||
|
|
||||||
- Run the agent [on your hypervisor (dom0)]:
|
|
||||||
|
|
||||||
$ /etc/xapi.d/plugins/ovs_quantum_agent.py /etc/xapi.d/plugins/ovs_quantum_plugin.ini
|
|
||||||
|
|
||||||
# -- KVM Agent configuration
|
|
||||||
|
|
||||||
- Edit ovs_quantum_plugin.ini and make sure the integration bridge is set to
|
|
||||||
br-int.
|
|
||||||
|
|
||||||
- Copy ovs_quantum_agent.py and ovs_quantum_plugin.ini to the compute
|
|
||||||
node and run:
|
|
||||||
$ python ovs_quantum_agent.py ovs_quantum_plugin.ini
|
|
||||||
|
|
||||||
# -- Getting quantum up and running
|
|
||||||
|
|
||||||
- Start quantum [on the quantum service host]:
|
|
||||||
~/src/quantum $ python bin/quantum etc/quantum.conf
|
|
||||||
- Run ovs_quantum_plugin.py via the quantum plugin framework cli [on the
|
|
||||||
quantum service host]
|
|
||||||
~/src/quantum$ python bin/cli
|
|
||||||
|
|
||||||
This will show help all of the available commands.
|
|
||||||
|
|
||||||
An example session (to attach a vm interface with id 'foo') looks like
|
|
||||||
this:
|
|
||||||
|
|
||||||
$ export TENANT=t1
|
|
||||||
$ export VIF_UUID=foo # This should be the uuid of the virtual interface
|
|
||||||
$ python bin/cli create_net $TENANT network1
|
|
||||||
Created a new Virtual Network with ID:e754e7c0-a8eb-40e5-861a-b182d30c3441
|
|
||||||
$ export NETWORK=e754e7c0-a8eb-40e5-861a-b182d30c3441
|
|
||||||
$ python bin/cli create_port $TENANT $NETWORK
|
|
||||||
Created Virtual Port:5a1e121b-ccc8-471d-9445-24f15f9f854c on Virtual Network:e754e7c0-a8eb-40e5-861a-b182d30c3441
|
|
||||||
$ export PORT=5a1e121b-ccc8-471d-9445-24f15f9f854c
|
|
||||||
$ python bin/cli plug_iface $TENANT $NETWORK $PORT $VIF_UUID
|
|
||||||
Plugged interface "foo" to port:5a1e121b-ccc8-471d-9445-24f15f9f854c on network:e754e7c0-a8eb-40e5-861a-b182d30c3441
|
|
||||||
|
|
||||||
(.. repeat for more ports and interface combinations..)
|
|
||||||
|
|
||||||
See the main quantum documentation for more details on the commands.
|
|
||||||
|
|
||||||
# -- Using the OVS plugin in multiple hosts
|
|
||||||
|
|
||||||
The integration bridge specified must have a port that is a VLAN trunk
|
|
||||||
connecting the the bridge to the outside world. The physical network
|
|
||||||
connecting all servers must also be configured to trunk VLANs.
|
|
||||||
|
|
||||||
If the NIC (e.g., eth0) connecting to the physical network is not
|
|
||||||
attached to a bridge, it can be added directly as a port on the
|
|
||||||
integration bridge. For example:
|
|
||||||
|
|
||||||
ovs-vsctl add-port br-int eth0
|
|
||||||
|
|
||||||
However, if the NIC is already attached to bridge (e.g., br0), then we must
|
|
||||||
create a "patch" port to link the integration bridge with that existing bridge.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
ovs-vsctl add-port br0 patch-outside -- set Interface patch-outside type=patch options:peer=patch-inside
|
|
||||||
ovs-vsctl add-port br-int patch-inside -- set Interface patch-outside type=patch options:peer=patch-outside
|
|
||||||
|
|
||||||
|
http://openvswitch.org/openstack/documentation/
|
||||||
|
Loading…
Reference in New Issue
Block a user