4.2. 执行高级测试
您可以在部署 OpenDaylight 后测试 OpenDaylight 配置和部署的多个组件。要测试安装的特定部分,您必须按照以下步骤执行操作。每个步骤都单独描述。
您必须在 overcloud 节点上执行相关的流程。
4.2.1. 连接到 overcloud 节点 复制链接链接已复制到粘贴板!
要连接到 overcloud 节点并确保它们可以正常工作,请完成以下步骤:
流程
- 登录 undercloud。
输入以下命令启动进程:
source /home/stack/stackrc
$ source /home/stack/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出所有实例:
openstack server list
$ openstack server listCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 选择所需的实例,再记下列表中的实例 IP 地址。
使用您在上一步中获得的列表中的 IP 地址连接到机器:
ssh heat-admin@<IP from step 4>
$ ssh heat-admin@<IP from step 4>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到超级用户:
sudo -i
$ sudo -iCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.2. 测试 OpenDaylight 复制链接链接已复制到粘贴板!
要测试 OpenDaylight 是否正确运行,您必须验证服务是否正常运行,并且是否正确加载了指定的功能。
流程
- 以超级用户或自定义角色中运行的 OpenDaylight 节点,登录运行 OpenDaylight 的 overcloud 节点。
验证 OpenDaylight Controller 是否在所有 Controller 节点上运行:
docker ps | grep opendaylight 2363a99d514a 192.168.24.1:8787/rhosp13/openstack-opendaylight:latest "kolla_start" 4 hours ago Up 4 hours (healthy) opendaylight_api
# docker ps | grep opendaylight 2363a99d514a 192.168.24.1:8787/rhosp13/openstack-opendaylight:latest "kolla_start" 4 hours ago Up 4 hours (healthy) opendaylight_apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 HAProxy 是否已正确配置为侦听端口 8081:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 HAproxy IP 连接 karaf 帐户。karaf 密码为
karaf:ssh -p 8101 karaf@localhost
# ssh -p 8101 karaf@localhostCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出安装的功能。
feature:list -i | grep odl-netvirt-openstack
# feature:list -i | grep odl-netvirt-openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果列表的第三列中有
x,如流程生成的,则功能会被正确安装。验证 API 正常运行。
web:list | grep neutron
# web:list | grep neutronCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此 API 端点在
/etc/neutron/plugins/ml2/ml2_conf.ini中设置,供 neutron 用于与 OpenDaylight 通信。验证节点之间的 VXLAN 隧道是否已启动。
vxlan:show
# vxlan:showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要测试 REST API 是否已正确响应,请列出正在使用它的模块。
curl -u "admin:admin" http://localhost:8081/restconf/modules
# curl -u "admin:admin" http://localhost:8081/restconf/modulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出结果将类似(示例已缩短)。
{"modules":{"module":[{"name":"netty-event-executor","revision":"2013-11-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor"},{"name" ...{"modules":{"module":[{"name":"netty-event-executor","revision":"2013-11-12","namespace":"urn:opendaylight:params:xml:ns:yang:controller:netty:eventexecutor"},{"name" ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出使用主机 internal_API IP 的 REST 流。
curl -u "admin:admin" http://localhost:8081/restconf/streams
# curl -u "admin:admin" http://localhost:8081/restconf/streamsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您获得类似的输出:
{"streams":{}}{"streams":{}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用主机 internal_API IP 运行以下命令,以验证 NetVirt 是否正常工作:
curl -u "admin:admin" http://localhost:8081/restconf/operational/network-topology:network-topology/topology/netvirt:1
# curl -u "admin:admin" http://localhost:8081/restconf/operational/network-topology:network-topology/topology/netvirt:1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,以下输出确认 NetVirt 正常运行。
{"topology":[{"topology-id":"netvirt:1"}]}{"topology":[{"topology-id":"netvirt:1"}]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2.3. 测试 Open vSwitch 复制链接链接已复制到粘贴板!
若要验证 Open vSwitch,可连接到其中一个计算节点,并验证它已正确配置并连接到 OpenDaylight。
流程
- 以超级用户身份连接到 overcloud 中的其中一个 Compute 节点。
列出 Open vSwitch 设置。
ovs-vsctl show
# ovs-vsctl showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意输出中的多个管理器。在这个示例中,行 2 和 3 显示多个管理器。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
tcp管理器是否指向运行 OpenDaylight 的节点 IP。 -
验证 Managers 显示
is_connected: true,以确保建立了 OVS 到 OpenDaylight 的连接并使用 OVSDB 协议。 - 验证每个网桥(不是 br-int)是否存在,并对应于用于部署的 Compute 角色的 NIC 模板。
- 验证 tcp 连接是否与运行 OpenDaylight 服务的 IP 对应。
-
验证网桥 br-int 显示
is_connected: true,并且已建立与 OpenDaylight 的 OpenFlow 协议连接。
更多信息
- OpenDaylight 自动创建 br-int 网桥。
4.2.4. 验证 Compute 节点上的 Open vSwitch 配置。 复制链接链接已复制到粘贴板!
- 以超级用户身份连接到 Compute 节点。
列出 Open vSwitch 配置设置。
ovs-vsctl list open_vswitch
# ovs-vsctl list open_vswitchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 读取输出。它与此示例类似。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
验证
other_config选项的值是否为本地接口设置了正确的local_ip,该接口通过 VXLAN 隧道连接到租户网络。 -
验证
other_config选项下的provider_mappings值是否与 OpenDaylightProviderMappings heat 模板参数中的值匹配。此配置将 neutron 逻辑网络映射到对应的物理接口。
4.2.5. 验证 neutron 配置 复制链接链接已复制到粘贴板!
流程
- 在其中一个 Controller 角色节点上连接到超级用户帐户。
-
确保
/etc/neutron/neutron.conf文件包含service_plugins=odl-router_v2,trunk。 确保
/etc/neutron/plugin.ini文件包含以下 ml2 配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在其中一个 overcloud 控制器上,验证 neutron 代理是否在正确运行。
openstack network agent list
# openstack network agent listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证元数据和 DHCP 代理的
admin_state_up值是否为True:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更多信息
-
plugin.ini中的 IP (在第 3 步中提到)应该是 InternalAPI Virtual IP Address (VIP)。 - 第 5 步列出了第 5 步中列出的 Open vSwitch 代理或 L3 代理,它们是所需状态,因为它们现在都由 OpenDaylight 进行管理。