如何确认节点上PORT的数目

在OpenStack云网络的一些验证工作的时候,经常会有一些临界值相关的,对性能影响极大

最近就有这样一种场景,在一个计算节点上,flat网络没有任何PORT,此时重启OpenvSwitch服务,再来创建该网络下的PORT,可以发现其网络使能性能十分缓慢,往往在用户使用的时候容易感知,当FIX了之后,验证需要测试这种场景,那么需要找一个PORT相对较少的计算节点,将它们都清空,然后来进行重启,验证,那么确认节点上PORT数目可以通过下列ovs方法来获取

首先查看流表

~$ sudo ovs-ofctl dump-flows br-wan
NXST_FLOW reply (xid=0x4):
 cookie=0x0, duration=106040.399s, table=0, n_packets=1049448, n_bytes=72689437, idle_age=0, hard_age=65534, priority=1 actions=NORMAL
 cookie=0x0, duration=106040.387s, table=0, n_packets=21204322, n_bytes=1144254528, idle_age=0, hard_age=65534, priority=2,in_port=2 actions=drop
 cookie=0x0, duration=106040.387s, table=0, n_packets=76137, n_bytes=10994149, idle_age=1, hard_age=65534, priority=4,in_port=2,dl_vlan=81 actions=strip_vlan,NORMAL

然后查看tag为81的tap设备,可以列出来

~$ sudo ovs-vsctl find port tag=81
_uuid               : e02ab133-5f48-4175-90ac-e2b995312f86
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
external_ids        : {}
fake_bridge         : false
interfaces          : [c5c0e730-4455-4a3f-8101-17d2106c4beb]
lacp                : []
mac                 : []
name                : "tap15092468-9d"
other_config        : {}
qos                 : []
statistics          : {}
status              : {}
tag                 : 81
trunks              : []
vlan_mode           : []

_uuid               : eb9b79f1-f644-4b9f-9265-f79c45e50dad
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
external_ids        : {}
fake_bridge         : false
interfaces          : [0045e131-ec88-4c9a-bd3a-74cddd79093a]
lacp                : []
mac                 : []
name                : "tapc5effc77-39"
other_config        : {}
qos                 : []
statistics          : {}
status              : {}
tag                 : 81
trunks              : []
vlan_mode           : []

_uuid               : e2f4ded3-3116-4e3c-bc73-c3bf6e9338fe
bond_downdelay      : 0
bond_fake_iface     : false
bond_mode           : []
bond_updelay        : 0
external_ids        : {}
fake_bridge         : false
interfaces          : [c95c2a3b-e062-4215-9863-ca34f1b3aff7]
lacp                : []
mac                 : []
name                : "tap45cb5822-19"
other_config        : {}
qos                 : []
statistics          : {}
status              : {}
tag                 : 81
trunks              : []
vlan_mode           : []

看到这里,其实直接grep tap就可以得到对应的tap设备,即可看到port数目

~$ sudo ovs-vsctl find port tag=81 | grep tap
name                : "tap15092468-9d"
name                : "tapc5effc77-39”
name                : "tap45cb5822-19"

这样就能查到某个计算节点的某个网络PORT的数目,这样在重启服务等,对于规则的刷新时间大概也心中有数

继续,假如查下tap设备

~$ sudo ovs-vsctl list interface tap45cb5822-19
_uuid               : c95c2a3b-e062-4215-9863-ca34f1b3aff7
admin_state         : down
bfd                 : {}
bfd_status          : {}
cfm_fault           : []
cfm_fault_status    : []
cfm_flap_count      : []
cfm_health          : []
cfm_mpid            : []
cfm_remote_mpids    : []
cfm_remote_opstate  : []
duplex              : []
external_ids        : {attached-mac="fa:16:3e:dc:9b:11", iface-id="45cb5822-1950-4548-b4d1-edba53c19326", iface-status=active}
ifindex             : 0
ingress_policing_burst: 0
ingress_policing_rate: 0
lacp_current        : []
link_resets         : 0
link_speed          : []
link_state          : down
mac                 : []
mac_in_use          : []
mtu                 : []
name                : "tap45cb5822-19"
ofport              : 3274
ofport_request      : []
options             : {}
other_config        : {}
statistics          : {collisions=0, rx_bytes=211858, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=2337, tx_bytes=338711484815, tx_dropped=17862, tx_errors=0, tx_packets=1281899341}
status              : {driver_name=openvswitch}
type                : internal

调用neutron接口来查看该PORT

$ neutron port-show 45cb5822-1950-4548-b4d1-edba53c19326
+-----------------------+----------------------------------------------------------------------------------------+
| Field                 | Value                                                                                  |
+-----------------------+----------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                   |
| allowed_address_pairs |                                                                                        |
| binding:capabilities  | {"port_filter": true}                                                                  |
| binding:host_id       | xx-xx-xx-xx                                                                            |
| binding:profile       | {}                                                                                     |
| binding:vif_type      | ovs                                                                                    |
| device_id             | dhcp0911f353-41ef-5c9b-94fd-200156120418-1da481ca-1533-4888-8cf4-73e99696b499          |
| device_owner          | network:dhcp                                                                           |
| extra_dhcp_opts       |                                                                                        |
| filtered_ports        |                                                                                        |
| fixed_ips             | {"subnet_id": "7cc17d73-af73-46a0-880a-9aadcde3bc66", "ip_address": "115.236.127.205"} |
| id                    | 45cb5822-1950-4548-b4d1-edba53c19326                                                   |
| ingress_max_rate      |                                                                                        |
| mac_address           | fa:16:3e:dc:9b:11                                                                      |
| max_rate              |                                                                                        |
| name                  |                                                                                        |
| network_id            | 1da481ca-1533-4888-8cf4-73e99696b499                                                   |
| port_security_enabled |                                                                                        |
| prefer_rate           |                                                                                        |
| status                | ACTIVE                                                                                 |
| support_azs           | yanlian1                                                                               |
| tenant_id             | ef8ac74777e149f3934e575e91197552                                                       |
+-----------------------+----------------------------------------------------------------------------------------+

可以发现这是一个DHCP interface,是无法直接清理掉的,因此需要将所在的网络解绑DHCP Agent,然后才进行删除即可

发表评论