热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

配置Linux环境下多网卡高可用网络端口

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

网络是信息系统的核心关键。目前主流的信息系统结构体系中,数据库存储往往都是在系统的后端,不直接与前端用户相对。同时,在诸如SAN和NAS等基于网络体系的存储环境中,可靠的网络环境是我们必须考虑的因素。

从常见系统运维事故中,意外断电、断网和空调漏水是三个主要故障因素。意外的网络中断,对Oracle而言可能就意味着丢失数据写入、数据归档失败、DG同步失败。面对这些因素,我们能做的其实也就是用软硬件冗余策略,提高系统关键网络点可用性。

在网络层面,目前服务器大都可以配置多余一个网卡设备(一般四个)。通常,我们的配置是一个网卡对应一个IP地址,访问不同的网卡对应不同的IP地址。那么,可否设置一种方法,建立一个虚拟的网卡,对应一个虚拟的IP地址。后台是由多个物理网卡与之对应。这种策略下:一旦一个网卡或者线路出现问题,其他的网络旁路也可以以相同的IP地址对外提供支持。

本篇主要介绍在Linux环境下,如何配置这种高可用公共网络配置。

1、环境说明

笔者使用红帽6.5进行实验。

[root@SimpleLinux ~]# cat /etc/RedHat-release

Red Hat Enterprise Linux Server release 6.5 (Santiago)

[root@SimpleLinux ~]# uname -a

Linux SimpleLinux.localdomain 2.6.32-431.el6.i686 #1 SMP Sun Nov 10 22:20:22 EST 2013 i686 i686 i386 GNU/Linux

当前在服务器上,安装了两个物理网卡,对应名称分别是eth0和eth1。

[root@SimpleLinux network-scripts]# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:91:3F:F7 

          inet addr:192.168.137.88  Bcast:192.168.137.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe91:3ff7/64 Scope:Link

eth1      Link encap:Ethernet  HWaddr 08:00:27:36:30:45 

          inet addr:192.168.137.89  Bcast:192.168.137.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe36:3045/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:93 errors:0 dropped:0 overruns:0 frame:0

当前,两个网卡均可有效,可以从外部使用网络ping通。

C:\Users\admin>ping 192.168.137.88

正在 Ping 192.168.137.88 具有 32 字节的数据:

来自 192.168.137.88 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.137.88 的回复: 字节=32 时间<1ms TTL=64

192.168.137.88 的 Ping 统计信息:

    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

Control-C

^C

C:\Users\admin>ping 192.168.137.89

正在 Ping 192.168.137.89 具有 32 字节的数据:

来自 192.168.137.89 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.137.89 的回复: 字节=32 时间<1ms TTL=64

192.168.137.89 的 Ping 统计信息:

    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

Control-C

^C

2、配置虚拟bond0

配置高可用虚拟网卡,首先需要在操作系统层面关闭Network Manager服务。

[root@SimpleLinux ~]# chkconfig NetworkManager off

[root@SimpleLinux ~]# chkconfig --list | grep Network

NetworkManager  0:off  1:off  2:off  3:off  4:off  5:off  6:off

[root@SimpleLinux ~]# service NetworkManager stop

进入网络配置目录文件夹,将原有的两个网卡配置文件备份好。

[root@SimpleLinux ~]# cd /etc/sysconfig/network-scripts/

[root@SimpleLinux network-scripts]# ls -l | grep ifcfg-eth

-rw-r--r--. 1 root root  281 Sep  5  2014 ifcfg-eth0

-rw-r--r--. 1 root root  108 Oct 20 09:45 ifcfg-eth1

[root@SimpleLinux network-scripts]# mv ifcfg-eth0 /tmp

[root@SimpleLinux network-scripts]# mv ifcfg-eth1 /tmp

生成bond0文件。

[root@SimpleLinux network-scripts]# echo "alias bond0 bonding" > /etc/modprobe.d/bonding.conf

[root@SimpleLinux network-scripts]# cd /etc/modprobe.d/

[root@SimpleLinux modprobe.d]# cat bonding.conf

alias bond0 bonding

在/etc/sysconfig/network-scripts目录下,创建单独的ifcfg-bond0文件。

[root@SimpleLinux modprobe.d]# cd /etc/sysconfig/network-scripts/

[root@SimpleLinux network-scripts]# cat ifcfg-bond0

DEVICE="bond0"

BONDING_OPTS="mode=1 miimon=100 primary=em1"

NM_COnTROLLED="no"

IPADDR="192.168.137.90"  --新的IP地址,虚拟IP

NETMASK="255.255.255.0"

GATEWAY="192.168.137.1"

OnBOOT="yes"

修改原有的eth0和eth1文件。

[root@SimpleLinux network-scripts]# cat ifcfg-eth0

DEVICE=eth0

OnBOOT=yes

NAME="System eth0"

SLAVE=yes

MASTER=bond0

[root@SimpleLinux network-scripts]# cat ifcfg-eth1

DEVICE=eth1

OnBOOT=yes

NAME="System eth1"

SLAVE=yes

MASTER=bond0

重新启动网络服务service network,让应用生效。

此时ifconfig状态如下:

[root@SimpleLinux network-scripts]# ifconfig

bond0    Link encap:Ethernet  HWaddr 08:00:27:91:3F:F7 

          inet addr:192.168.137.90  Bcast:192.168.137.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe91:3ff7/64 Scope:Link

          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

          RX packets:3000 errors:0 dropped:0 overruns:0 frame:0

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

          collisions:0 txqueuelen:0

          RX bytes:274055 (267.6 KiB)  TX bytes:275545 (269.0 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:91:3F:F7 

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:2433 errors:0 dropped:0 overruns:0 frame:0

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

          collisions:0 txqueuelen:1000

          RX bytes:220864 (215.6 KiB)  TX bytes:225329 (220.0 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:91:3F:F7 

          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

          RX packets:568 errors:0 dropped:0 overruns:0 frame:0

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

          collisions:0 txqueuelen:1000

          RX bytes:53251 (52.0 KiB)  TX bytes:50450 (49.2 KiB)

此时,新的IP地址90已经可以使用了。

C:\Users\admin>ping 192.168.137.90

正在 Ping 192.168.137.90 具有 32 字节的数据:

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

192.168.137.90 的 Ping 统计信息:

    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

Control-C

^C

3、高可用测试

下面进行高可用性测试,两个网卡如果被关闭一个,看是否虚拟IP还可以连接。

[root@SimpleLinux ~]# ifconfig eth0 down –关闭了eth0,查看状态。

C:\Users\admin>ping 192.168.137.90

正在 Ping 192.168.137.90 具有 32 字节的数据:

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

192.168.137.90 的 Ping 统计信息:

    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

Control-C

启动eth0,关闭eth1。

[root@SimpleLinux network-scripts]# ifconfig eth1 down

C:\Users\admin>ping 192.168.137.90

正在 Ping 192.168.137.90 具有 32 字节的数据:

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.137.90 的回复: 字节=32 时间<1ms TTL=64

192.168.137.90 的 Ping 统计信息:

    数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

    最短 = 0ms,最长 = 0ms,平均 = 0ms

Control-C

^C

测试成功。

4、结论

高可用网络bond,在Oracle标准配置RAC的过程中,是一个必要过程。主要是针对公共网络和私有网络的高可用配置。RAC架构中,各个节点node之间,节点node和存储之间有非常复杂的数据交换和信息传递。所以,网络保障至关重要。


推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文由编程笔记小编整理,主要介绍了使用Junit和黄瓜进行自动化测试中步骤缺失的问题。文章首先介绍了使用cucumber和Junit创建Runner类的代码,然后详细说明了黄瓜功能中的步骤和Steps类的实现。本文对于需要使用Junit和黄瓜进行自动化测试的开发者具有一定的参考价值。摘要长度:187字。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
戒得掉既烟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有