背景介绍:
需求:部署3节点oracle RAC时, 要求4网口中,公网网口使用2个并用 ipmp 绑定, 私网网口使用 HAIP 并支持巨型帧 (Jumbo Frame)
主机:3节点主机均为 SUN T3 Server 中 ldom 中的zones。 简单介绍两个概念:zone虚拟化技术中宿主机叫 global zone,ldom虚拟化技术中宿主机叫 primary。 本例中RAC节点是SUN T3 server 中 Ldom 的一个zone,即虚拟机中的虚拟机,
版本:Solaris 11, Oracle RAC 11gr2
关键字: solaris11, Jumbo frame, MTU zones, ldom
修改MTU=9000 即支持Jumbo Frame的步骤:
在Solaris 11非虚拟环境中,如果修改系统MTU值,主要步骤:
1. 查看当前MTU取值范围,当前为60-9216证明系统已经支持Jumbo Frame。 如果发现范围的上限为1500,可以继续步骤2修改
点击(此处)折叠或打开
root@deepalley:~# dladm show-linkprop -p mtu
LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE
net1 mtu rw 1500 1500 1500 60-9216
net3 mtu rw 1500 1500 1500 60-9216
net0 mtu rw 1500 1500 1500 60-9216
net2 mtu rw 1500 1500 1500 60-9216
root@deepalley:~# dladm set-linkprop -t -p mtu=9000 net2
root@deepalley:~# dladm show-linkprop -p mtu
LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE
net1 mtu rw 1500 1500 1500 60-9216
net3 mtu rw 1500 1500 1500 60-9216
net0 mtu rw 1500 1500 1500 60-9216
net2 mtu rw 9000 9000 1500 60-9216
2. 确定网卡类型:
点击(此处)折叠或打开
root@deepalley:~# dladm show-phys
LINK MEDIA STATE SPEED DUPLEX DEVICE
net1 Ethernet unknown 1000 full igb1
net3 Ethernet unknown 1000 full igb3
net0 Ethernet up 1000 full igb0
net2 Ethernet unknown 1000 full igb2
3. 查看/修改驱动配置信息:
vi /kernel/drv/igb.conf 修改 default_mtu (本例中网卡类型为igb,所以用igb.conf,如果为其它类型,请在同目录下寻找对应配置文件),这个配置文件中也有为具体某个网口设置属性的选项,描述很详细,这里不详细展开,我们直接修改default_mtu项
点击(此处)折叠或打开
...
# -------------------- Jumbo Frame --------------------
# default_mtu
# The size of the default MTU (payload without the ethernet header)
# Allowed values: 1500 - 9216
# Default value: 1500
#
# default_mtu = 9216; 修改此项
...
...
4. 重启系统,使用 dladm set-linkprop -t -p mtu=9000 igb[n] 修改生效
在 solaris11虚拟环境更改步骤:
思路是如果想让虚拟机支持巨型帧,那么宿主机必须支持该特性。按照上述步骤直接在虚拟机中修改会报错:
点击(此处)折叠或打开
root@deepalley:~# dladm set-linkprop -t -p mtu=9000 net2
dladm: warning: cannot set link property 'mtu' on 'net2': link busy
我们从顶层的宿主机一层一层向下修改:
终极宿主机层: Primary
1. 如果dladm show-linkprop -p mtu 显示 Jumbo Frame未开启, 按照上面非虚拟化修改方法步骤1修改:
2. 修改它的虚拟机的网卡配置信息 ldm 命令:
这个Primary有三个guest,ld1是我们AC节点1的宿主机
点击(此处)折叠或打开
root@Primary:~# ldm list
NAME STATE FLAGS CONS VCPU MEMORY UTIL NORM UPTIME
primary active -n-cv- UART 200 23G 0.1% 0.1% 4d 2h 11m
ld1 active -n---- 5001 18 32G 0.2% 0.1% 1h 19m
ld2 active -n---- 5002 28 56G 1.9% 1.5% 3d 6h 51m
ld3 active -n---- 5003 10 16G 7.4% 5.7% 7h 31m
3. 查看网口信息
点击(此处)折叠或打开
root@Primary:~# ldm list -o physio ld1
NAME
ld1
IO
DEVICE PSEUDONYM OPTIONS
pci@500/pci@1/pci@0/pci@5/network@0,80 /SYS/MB/NET2/IOVNET.PF0.VF0
pci@500/pci@1/pci@0/pci@5/network@0,81 /SYS/MB/NET2/IOVNET.PF1.VF0
pci@400/pci@1/pci@0/pci@4/network@0,80 /SYS/MB/NET0/IOVNET.PF0.VF0
pci@400/pci@1/pci@0/pci@4/network@0,81 /SYS/MB/NET0/IOVNET.PF1.VF0
4. 设置网口mtu值
点击(此处)折叠或打开
root@Primary:~# ldm set-io mtu=9216 /SYS/MB/NET2/IOVNET.PF0.VF0
root@Primary:~# ldm set-io mtu=9216 /SYS/MB/NET2/IOVNET.PF1.VF0
(NOTE: 这个网口是怎么对应呢,如何知道/SYS/MB/NET2/IOVNET.PF0.VF0 和 /SYS/MB/NET2/IOVNET.PF1.VF0 就是我们想要修改的两个私网网口呢,这个信息是通过 /etc/path_to_inst 文件得来的, 可以通过 cat /etc/path_to_inst | grep igb 得到 上面命令的DEVICE信息,然后就对应上了。)
5. 最后重启这个ldom guest,当然最底层的我们的rac节点也跟着重启
点击(此处)折叠或打开
root@Primary:~# ldm stop ld1
root@Primary:~# ldm start ld1
在最终节点上查看结果:
点击(此处)折叠或打开
root@zone1:~# dladm show-linkprop -p mtu
LINK PROPERTY PERM VALUE EFFECTIVE DEFAULT POSSIBLE
z1net0 mtu rw 1500 1500 1500 60-1500
z1net1 mtu rw 1500 1500 1500 60-1500
z1net2 mtu rw 9000 9000 1500 60-9000
z1net3 mtu rw 9000 9000 1500 60-9000
搞定!
小结: 在虚拟机中配置不通,问题就出在宿主机。配置一个小小的MTU 巨型帧特性,涉及 solaris zone虚拟化管理, ldom虚拟话管理, 驱动配置文件等的相关知识点,收获不小。最后期待Jumbo Frame 在RAC 11g 中会带来什么样的表现。