背景介绍:
需求: 部署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] 修改生效
思路是如果想让虚拟机支持巨型帧,那么宿主机必须支持该特性。按照上述步骤直接在虚拟机中修改会报错:
-
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 中会带来什么样的表现。
阅读(3993) | 评论(0) | 转发(0) |