2. RAC集群硬件与网络规划
RAC集群的高可用能力,首先取决于底层硬件与网络是否具备“无单点、可冗余、可预期”的基础条件。软件层面的Cache Fusion、OCR/Voting Disk、SCAN VIP、TAF等机制,都建立在服务器、存储链路和网络路径的稳定与冗余之上。本节从服务器选型、存储多路径、公网/私网/心跳网络划分、冗余交换机与网卡绑定五个方面,给出可落地的规划方法与示例参数。
一、服务器选型:先定规模,再定冗余
RAC节点服务器选型不是简单堆配置,而是先根据业务峰值确定单节点资源,再按“N-1”冗余原则校验。假设某业务峰值需要8核CPU、64GB内存、2TB可用存储,规划2节点RAC,则单节点至少应能承载全部峰值负载,即单节点配置不低于16核、128GB内存,这样任一节点故障时,剩余节点仍可独立支撑业务。若采用3节点,单节点可降至12核、96GB,但需注意Oracle RAC的Cache Fusion会带来额外私网流量,节点数越多,私网带宽和延迟要求越高。
服务器选型还需关注:CPU主频与NUMA架构(影响Oracle进程调度)、内存通道数与容量(影响SGA和PGA)、本地磁盘(用于安装Grid Infrastructure和Oracle Home,建议RAID 1)、HBA卡数量(建议双口HBA,分别接入不同SAN交换机)、网卡数量(至少4个万兆端口,分别用于公网、私网、心跳和管理)。以某主流2U机架服务器为例,可配置2颗16核CPU、256GB内存、2块480GB SSD RAID 1、2块双口16Gb HBA、4块双口10GbE网卡,满足中小型RAC集群需求。
二、存储多路径:让每条I/O都有备选路径
RAC共享存储必须通过多路径软件实现链路冗余与负载均衡。以Linux平台为例,常用multipathd配合device-mapper-multipath。规划时,每台节点通过两块HBA卡分别连接两台SAN交换机,存储阵列双控制器各提供两个前端端口,形成“服务器HBA—SAN交换机—存储控制器”的4条物理路径。多路径软件将这4条路径聚合为1个逻辑设备,如/dev/mapper/mpatha,再在其上创建ASM磁盘组。
关键配置示例(/etc/multipath.conf):
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry 5
}
multipaths {
multipath {
wwid 3600a098038304445552b4a4d4e4f4e4f
alias asm_data01
}
}
其中path_grouping_policy multibus表示所有路径同属一个优先级组,实现负载均衡;failback immediate表示路径恢复后立即切回;no_path_retry 5表示所有路径失效后重试5次再标记设备不可用。验证时可用multipath -ll查看路径状态,正常应显示4条active ready路径。若某条路径显示failed,需检查HBA、光纤、SAN交换机端口或存储控制器端口。
三、公网、私网与心跳网络设计
RAC网络分为三类:公网(Public Network)承载客户端连接、SCAN VIP和节点VIP;私网(Private Network)承载Cache Fusion、GES/GCS等节点间通信;心跳网络(Heartbeat)用于节点间健康检查,通常与私网合并或独立部署。规划原则是:公网和私网必须物理隔离,私网建议使用独立交换机或VLAN,心跳网络应低延迟、无阻塞。
以2节点RAC为例,网络规划如下表:
| 网络类型 | 网段示例 | 用途 | 带宽建议 |
|---|---|---|---|
| 公网 | 192.168.10.0/24 | 客户端连接、SCAN VIP、节点VIP | 10GbE |
| 私网 | 10.10.10.0/24 | Cache Fusion、GES/GCS | 10GbE或25GbE |
| 心跳 | 10.10.20.0/24 | 节点健康检查、CSS心跳 | 10GbE |
| 管理 | 192.168.20.0/24 | ILOM/IPMI、SSH管理 | 1GbE |
私网和心跳网络建议使用独立物理网卡或VLAN,避免与公网共享。若条件允许,私网采用双网卡绑定(bonding)或双交换机冗余,心跳网络可单独使用一条低延迟链路。Oracle Grid Infrastructure安装时,需在gridSetup.sh中指定公网和私网接口,私网接口应选择绑定后的bond设备,而非单个物理网卡。
四、冗余交换机与网卡绑定实践
冗余交换机是消除网络单点的关键。公网和私网各配置两台交换机,服务器双网卡分别接入两台交换机,交换机之间通过堆叠或Trunk互联。网卡绑定模式推荐mode=1(active-backup)用于心跳和私网,mode=4(802.3ad LACP)用于公网和存储网络。以Linux bonding为例:
# 创建bond0,模式active-backup
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup
nmcli con add type bond-slave ifname ens1f0 master bond0
nmcli con add type bond-slave ifname ens1f1 master bond0
nmcli con mod bond0 ipv4.addresses 10.10.10.11/24
nmcli con mod bond0 ipv4.method manual
nmcli con up bond0
绑定后,用cat /proc/net/bonding/bond0查看状态,正常应显示“Currently Active Slave”和“MII Status: up”。若主网卡故障,备网卡应在毫秒级切换。对于私网,建议同时配置miimon=100和arp_interval=200,以兼顾链路层和网络层检测。
五、规划检查清单与常见误区
完成上述规划后,建议用以下清单逐项核对:
- 单节点资源是否满足N-1冗余?CPU、内存、HBA、网卡是否均有冗余?
- 公网、私网、心跳是否物理或VLAN隔离?私网是否使用独立交换机?
- 多路径是否已聚合为单一逻辑设备?
multipath -ll是否显示所有路径active ready? - 网卡绑定模式是否与交换机配置匹配?LACP需交换机侧配置端口聚合。
- 心跳网络是否低延迟?建议RTT小于1ms,避免与备份、迁移流量共享。
- 是否预留管理网络用于ILOM/IPMI和SSH?管理网络不应与公网混用。
硬件与网络规划是RAC集群的“地基”。服务器选型决定单节点承载能力,存储多路径决定I/O可靠性,公网/私网/心跳分离决定集群通信质量,冗余交换机与网卡绑定决定网络无单点。只有这些基础条件全部满足,后续Grid Infrastructure安装、ASM磁盘组创建、数据库实例部署才能稳定运行。