常见问题汇总(1)

1.Neutron的问题

openvswitch卡死导致主机所有网络中断

问题:L3 agent down了,所有的网络连接不上,L3所在的物理机点的公网IP地址访问不了

dhcpagent 服务器down了,导致所有的云主机获取不到地址,所有云主机的公网IP访问不到

现象:

网络中断,所有的公网IP地址访问不到

排查过程:

1、查看openvswitch运行状态

2、查看数据流量的流向:

查看所有ovs桥

ovs-vsctl show

查看ovs数据流

ovs-ofctl dump-flows br-int 出现卡住的现象,没有任何相应,

由于ovs-vsctl show是从ovsdb取的数据,其正常显示表示ovsdb-server进程正常运行。ovs-ofctl是与ovs-vswitchd进程通信,命令卡住应该是ovs-vswitchd进程没有响应客户端请求导致。

3、查看日志

vim /var/log/openvswitch/ovsdb-server.log 日志

WARN|unix: send error: Broken pipe

2015-09-07T19:43:59.058Z|00010|reconnect|WARN|unix:connection dropped (Broken pipe)  //出现隧道破坏的警告

查看/var/log/openvswitch/ovsdb-server.log

出现类似下面的行

|WARN|Unreasonably long 16518ms pollinterval

表明ovs-vswitchd可能因为某个线程死锁或导致不响应。

4、查看进程卡在那一步:

strace -p pid

pid是指进程的ID 在这里也就是ovs-vswitchd的PID

解决办法:

重启openvswitch服务

使用cron 任务检测

cat /etc/cron.d/monitor_vswitchd

* * * * * root timeout -s SIGKILL 2sovs-ofctl show br-mgmt || (date>>/var/log/mon_openvswitch.log;serviceopenvswitch restart >>   /var/log/mon_openvswitch.log 2>&1 )

升级内核

长期来说还是不要用cron来做,而是升级内核比较好。升级到2.6.32-504.16.2.el6.x86_64后问题解决。

Nentron DHCP Agent重启和漂移时,部分虚拟机断网

现象:

DHCP Agent重启或漂移时,部分虚拟机断网

问题原因:

在虚拟交换机比较多时,qdhcp的netns也比较多。漂移或者重启Neutron DHCP agent后,需要重建这些资源,时间会比较长,有时长达3-5分钟。如果在这个周期里正好有虚拟机需要续租,向DHCP服务器发送的请求就没有响应,最后超时续租失败,就算DHCP服务回复后,也不会重新尝试获取IP地址。这时进入虚拟机命令行,ifup一下eth0就好了。

对于CentOS,我们建议修改dhclient的配置文件,调长续租失败时重试的超时时间,以等待DHCP服务器的恢复。

解决方法:

修改配置文件/etc/dhcp/dhclient.conf

timeout 300;

这样CentOS虚拟机续租的请求会持续重试5分钟,以等待DHCP服务恢复。

调整网卡RX ring buffer长度,解决网卡丢包问题

问题:公有云平台:compute1和compute4两台计算节点的存储网络,不能互通。

解决过程:

1.compute1节点ping compute4节点,在compute1和compute4两台节点上使用tcpdump抓包发现,compute4上有ICMP request和ICMP reply。但compute1节点并没有接收到ICMP reply消息,并且有xxxpackets dropped by interface的提示。

2.登录到pica8交换机,检查两台机器的物理连接和链路层连接,正常。

3.查看compute1的物理网卡,发现在RX上有大量的丢包:

[[email protected] ~]# ifconfig bond2

bond2    Link encap:Ethernet  HWaddr00:0A:F7:5D:4A:E2

inet addr:172.16.3.51 Bcast:172.16.3.255 Mask:255.255.255.0

inet6 addr: fe80::20a:f7ff:fe5d:4ae2/64 Scope:Link

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500  Metric:1

RX packets:5974542045 errors:8394 dropped:1892018 overruns:8394frame:0

TX packets:30430136566 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:5387974623010 (4.9 TiB) TX bytes:28489033161925 (25.9 TiB)

4.使用ethtool --show-ring 或者ethtool -g 命令查看bond2上真实物理网卡的RX/TX ringbuffer:

[[email protected] ~]# ethtool --show-ring p6p2

Ring parameters for p6p2:

Pre-set maximums:

RX:    4078

RX Mini:   0

RX Jumbo:  0

TX:    4078

Current hardware settings:

RX:    453

RX Mini:   0

RX Jumbo:  0

TX:    4078

5.怀疑是网卡上的ring buffer参数设置过小,无法处理从网卡上接受到的以太网数据帧。

6.调整RX ring buffer的大小,通过ethtool--set-ring或者ethtoo -G

[email protected] ~]# ethtool --set-ring p6p2rx 4078

Cannot set device ring parameters:Input/output error

[[email protected] ~]# ethtool --show-ring p6p2

Ring parameters for p6p2:

Pre-set maximums:

RX:    4078

RX Mini:   0

RX Jumbo:  0

TX:    4078

Current hardware settings:

RX:    4078

RX Mini:   0

RX Jumbo:  0

TX:    4078

7.这样的修改,在机器reboot会回到原来的配置,建议在写入到/etc/rc.local下

ethtool -G p6p2rx 4078

ethtool -G p7p2rx 4078

网卡驱动缺陷导致的问题

现象:网卡驱动缺陷导致offload后ping正常但TCP连接慢或断的问题诊断与解决

常见的原因有:

1.MTU问题

确认物理服务器网卡和上联交换机MTU是否有问题;一般硬件厂商的MTU默认是1500,当然也有例外,像Pica8的SDN交换机,MTU值在小于1512会丢包。

2.物理网卡offload

Fuel部署时,默认开启了物理网卡offload属性。由于开启了offload属性,有可能会出现TCP或者UDP检验和不一致导致的丢包或重传。

解决方法:

TCP校验和会确保整个报文在传输过程中不会发生变化,如果校验和不一致,TCP会丢弃这个报文或者触发超时重传。TCP的校验和是必须的,UDP的校验和是非必须的。此时,建议将rx和tx关闭。

RX Checksum:

在开启此功能后,物理网卡收到一个数据包时,网卡会代替内核协议栈计算传输层校验和,并且只在校验和正确的情况下将数据包交由内核处理,以节约系统CPU资源。

关闭此feature:ethtool -KDEVNAME rx on|off

TX Checksum:

这个是在数据包发送之前,由网卡计算校验和;开启此选项,内核会随机填充TCP或UDP的检验和字段,正确的填充会由物理网卡来完成。

关闭此feature:ethtool -K DEVNAME tx on|off

   持久化offload设置

可以编辑/etc/rc.local加入ethtool命令。或者利用CentOS的ifcfg-脚本。譬如要关闭eth0的tx和rx的checksum offload,可以编辑下面的文件/etc/sysconfig/ network-scripts/ ifcfg-eth0加入一行 ETHTOOL_OPTS="-Keth0 rx off;-K eth0 tx off"然后ifup eth0,设置便生效。

如何访问虚拟机的多个IP地址

如果虚拟机只有1块网卡,但网卡上存在多个IP地址,由于neutron Security Group的防arp欺骗功能,导致只能访问一个IP地址。

2种办法可以解决这个问题:

1.通过在虚拟机所在的计算节点上添加iptables规则:

通过neutronport-list命令,找到port的id

在虚拟机所在的计算节点找到neutron-linuxbri-s+port_id前10位的chain,添加以下规则:

iptables -Ineutron-linuxbri-sa18af29b-f -s 10.20.30.194 -m mac --mac-sourcefa:16:3e:d3:b2:90 -j RETURN

-s后面加的是你想访问的ip地址,mac地址为虚拟机网卡的mac。

2.使用neutron port的allow addresspairs属性,本质上也是使用iptables规则:

使用neutornport-update命令,更新虚拟机的port属性:

neutronport-update 08ccf4de-d6e2-4d4d-bcdf-55532e93f32f  --allowed-address-pairs type=dict list=trueip_address=10.20.30.194

也可以通过api来设置

最终在计算节点上看iptables规则就是这样子:

# iptables -nvLneutron-linuxbri-sa18af29b-f

Chainneutron-linuxbri-sa18af29b-f (1 references)

pkts bytestarget prot opt in out source destination

3 252 RETURN all-- * * 10.20.30.194 0.0.0.0/0 MAC FA:16:3E:D3:B2:90

10 776 RETURNall -- * * 10.20.30.193 0.0.0.0/0 MAC FA:16:3E:D3:B2:90

758 63672 DROPall -- * * 0.0.0.0/0 0.0.0.0/0

如何测试带宽限速

在控制台页面,总带宽这一项可以看到路由器公网IP对应的总带宽,默认为1Mbps。

通过wget的方式可以测试带宽限速的情况。

1.首先通过dd命令新建一个文件。

如在我们的测试环境上,建一个10G的文件。这里将测试文件放在了http服务器目录下,方便http方式访问。

#dd if=/dev/zeroof=/var/www/html/test.zip bs=1M count=10000

2.在虚拟机上,通过wget命令来获取test.zip这个文件。(路由器的总带宽设置成10Mbps)

可以看到它的速率,大概在1.14M/s左右。

以上测试的只是下行带宽,测试上行带宽的方法大致类似。

1.在虚机里搭一个http服务器。

yum install  httpd

2.同样在/var/www/html/目录下使用dd命令建一个文件。

dd if=/dev/zeroof=/var/www/html/test.zip bs=1M count=5000

3.在测试环境上,wget获取此文件。(

时间: 2024-10-18 22:58:49

常见问题汇总(1)的相关文章

Google AdMob 常见问题汇总

AdMob 常见问题汇总 五 09 **** 客服相关 **** 1. 请问 AdMob 有没有客服可以提供如帐号被封.付款信息.申诉渠道等的咨询? 有的:有关 AdMob 的问题,可以访问我们的帮助中心: http://support.google.com/admob/?hl=zh-Hans&hlrm=en. 如果没有找到相应解答,也可以通过 @AdMob开发者官方微博 与我们进行互动: http://www.weibo.com/googleAdMob. **** 使用 AdMob *****

destoon入门实例与常见问题汇总

destoon入门实例与常见问题 收集了一些destoon入门实例与常见问题,大家做个参考.转自:http://blog.csdn.net/vip_linux/article/details/37833963 链接如下: destoon忘记后台密码怎么办?destoon找回管理员密码 忘记destoon管理员后台账号密码怎么办?解决方法 destoon如何实现调用自增数字从1开始 destoon底部添加你是第几位访问者 destoon调用热门关键字的例子 destoon首页怎么调用求购供应信息的

IDE常见问题汇总

1.Oracle10gForVistaX64下载地址:http://download.oracle.com/otn/nt/oracle10g/10204/10204_vista_w2k8_x64_production_db.zip 2.Oracle 10g x64 for Vista 在Win7x64下安装需要修改三个文件:(1).\10204_vista_w2k8_x64_production_db\database\stage\prereq\db\refhost.xml (2).\10204

[转]H5项目常见问题汇总及解决方案

html { line-height: 1.6 } body { font-family: -apple-system-font, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; background-color: #f3f3f3; line-height: inherit } body.rich_media

CentOS安装Oracle数据库详细介绍及常见问题汇总

一.安装前准备 1.软件硬件要求 操作系统:CentOS 6.4(32bit)Oracle数据库版本:Oracle 10g(10201_database_linux32.zip)最小内存:1G(检查命令:#grep MemTotal /proc/meminfo)最小Swap:2G(检查命令:#grep SwapTotal /proc/meminfo) 2.安装依赖包 # rpm -q binutils compat-libstdc++-33 compat-libstdc++-33.i686 el

mysql几个常见问题汇总

mysql几个常见问题汇总 一. mysql下的清屏命令 \! clear:Ctrl+shift+L:Ctrl+L Linux下的清屏命令 Clear ; Ctrl+L; Shift+ctrl+L 二. 查看mysql版本的四种方法 1:在终端下:mysql -V. 以下是代码片段: [[email protected] ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-linux-gnu (i686) 2:在mysql中:mysql

SVN集中式版本控制器的安装、使用与常见问题汇总

SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客户端收费,我们使用TortoiseSVN替代他即可 TortoiseSVN:TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录.文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器.你可以将文件恢复到过去

Altera的FPGA_常见问题汇总65

常见问题汇总:1.alt2gxb模块的每个发送端都需要一个高速:通常情况下一定要从FPGA外面引进来,首选是GX:2.如果我一个FPGA里面有多个alt2gxb模:3.gxb模块里面的Calibrationclk:校准内部匹配电阻用:4.用到gxb模块的bank的参考电压是否必须接:gxb用1.5V或1.2V,推荐客户用1.5V.:5.gxb模块的输入端如果 常见问题汇总 1. alt2gxb模块的每个发送端都需要一个高速的pll_inclk时钟(至少100M以上),请问这个时钟一定要从FPGA

Installshield脚本拷贝文件常见问题汇总

原文:Installshield脚本拷贝文件常见问题汇总 很多朋友经常来问:为什么我用CopyFile/XCopyFile函数拷贝文件无效?引起这种情况的原因有很多,今天略微总结了一下,欢迎各位朋友跟帖补充不完善的地方1:文件路径错误,比如将CopyFile/XCopyFile脚本放在OnFirstUIBefore里,但是引用的文件路径却是INSTALLDIR/TARGETDIR的,而这时候,安装程序还未将安装文件拷贝至用户安装路径,当然是找不到可拷贝的文件的调试和解决办法:在任何拷贝之前,用F

J2EE进阶(十一)SSH框架整合常见问题汇总(二)

J2EE进阶(十一)SSH框架整合常见问题汇总(二) 问题8 java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean      解决 数据库中userdetail表的映射文件如下,可见xb字段数据类型为boolean类型,而自己在userdetail模型类中定义的类型为String类型.为此可以得出这样的结论.模型类中的数据及类型必须与数据表映射文件中的字段信息保持一致.应该可以同时生成