RAC安装之网卡MTU

作者:八神 | 分类: 大话技术 | 标签: | 日期:2008-04-11

RAC的clusterware和oracle db软件都安装好了,今天在准备做ASM的时候遇到问题,配置好了ASM initfile,启动
instance的时候报错

oracle@hack3 dbs]$ sqlplus “/ as sysdba”
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Apr 11 15:11:15 2008
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup;
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:unsupp_mtu failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgxpvaddr10
ORA-27303: additional information: requested interface eth1 mtu not supported. Check output from ifconfig command
SQL>     exit

alert日志就记录下一点信息:
USER: terminating instance due to error 27504
Instance terminated by USER, pid = 13685

在metalink和google上找了一通,不知所云,从最后的错误看出,eth1网卡存在问题,他是我配置的private IP,走的刀片的高速背板,
各个接点间走private都是可以ping通的,通过ifconfig也看到各个网卡的MTU都是设定的,MTU:16896,我是个网络盲,一时也找不到方法了

回家的路上和sa涛哥聊了下MTU的问题,他一听说我机器网卡的MTU值是16896,就感觉好笑,说从来没有设置这么大的,建议我弄成1500,
太大了发送网络包就会造成数据包被拆分,影响效率,丢包率也严重

后来经过调整,立杆见影
eth0      Link encap:Ethernet  HWaddr D2:94:27:00:01:15 
          inet addr:10.0.38.164  Bcast:10.0.38.255  Mask:255.255.255.0
          inet6 addr: fe80::d094:27ff:fe00:115/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17761 errors:0 dropped:0 overruns:0 frame:0
          TX packets:832 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:2000
          RX bytes:1642243 (1.5 MiB)  TX bytes:102676 (100.2 KiB)

eth0:1    Link encap:Ethernet  HWaddr D2:94:27:00:01:15 
          inet addr:10.0.38.174  Bcast:10.0.38.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth1      Link encap:Ethernet  HWaddr D2:94:27:00:01:16 
          inet addr:192.168.0.3  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::d094:27ff:fe00:116/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17522 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15782 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:2000
          RX bytes:1674655 (1.5 MiB)  TX bytes:3784944 (3.6 MiB)

         
SQL> startup nomount;
ASM instance started

Total System Global Area  130023424 bytes
Fixed Size                  2019032 bytes
Variable Size             102838568 bytes
ASM Cache                  25165824 bytes

看来没有不可能发生的事情

3人发表了评论  ↓发表评论↓
  • mtu 一般在 1450左右

    unsupp_mtu failed with status 这句也很明显的了,当然,经验总是要慢慢积累的。

    转一个帖子:
    http://xxzx.rxzq.com.cn/dispbbs.asp?boardID=21&ID=1012&page=2

    MTU是什么?如何查看它的大小?如何修改它的值?MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。

    如何检测网关的MTU? 在本机打开dos窗口,执行: ping -f -l 1472 192.168.0.1 其中192.168.0.1是网关IP地址,1472是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现: Packet needs to be fragmented but DF set. 表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。

    如何修改本机的MTU? 修改方法如下: (1)、运行regedit (2)、浏览到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 如图2 (3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡: (a)确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19; (b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项; (c)如果IPAddress的键值与(a)中的IP相同,即192.168.0.19,则该子项就是要找的网卡。 (4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口: 如图3: 填入MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效

    fcp @ April 12, 2008 |

  • 我也是个网络忙,还真不知道。

    jacky @ April 12, 2008 |

  • 呵呵,之前处理过这一个问题,两边不一致也会引两节点故障

    阿风 @ April 14, 2008 |

表情:<( ̄︶ ̄)> | (⊙ˍ⊙) | >﹏< | b( ̄▽ ̄)d | (─.─||) | (^_-)

[ Ctrl+Enter提交 ]

阿里巴巴DBA出品