日常工作問題解決:rhel7下使用teamd配置雙網卡綁定


1、情景描述

因為業務發展,需要部署一套ORACLE 11g RAC實現高可用,所以公司新分配兩台物理機,每台物理機配置4張網卡,2張千兆,2張萬兆

現規划如下:

2張千兆網卡,做雙網卡綁定使用主備模式,作為心跳
2張萬兆網卡,做雙網卡綁定使用負載均衡模式,作為業務

使用rhel7下的NetworkManager服務組中的team服務來實現雙網卡綁定鏈路聚合。

2、准備工作

2.1 確認網卡信息

使用ifconfig命令查看確認網卡信息


[root@db1 ~]$ ifconfig 

enp2s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 32:6e:d8:f5:d7:32  txqueuelen 1000  (Ethernet)
        RX packets 5924926  bytes 5114985550 (4.7 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4857883  bytes 3559876055 (3.3 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0x96d00000-96dfffff  

enp2s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 32:6e:d8:f5:d7:32  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device memory 0x96c00000-96cfffff  

enp5s0f0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 46:be:3b:ac:2c:2e  txqueuelen 1000  (Ethernet)
        RX packets 1098  bytes 120567 (117.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp5s0f1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 46:be:3b:ac:2c:2e  txqueuelen 1000  (Ethernet)
        RX packets 49209  bytes 17138608 (16.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 55533  bytes 20284230 (19.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 606440  bytes 534199950 (509.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 606440  bytes 534199950 (509.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

發現4張網卡enp2s0f0、enp2s0f01、enp5s0f0、enp5s0f1

使用ethtool確認網卡信息:


[root@db1 ~]$ ethtool enp2s0f0
Settings for enp2s0f0:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: Symmetric
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s  # 速度為1000mb/s,確認為千兆網卡
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

[root@db1 ~]$ ethtool enp5s0f0
Settings for enp5s0f0:
	Supported ports: [ FIBRE ]
	Supported link modes:   10000baseT/Full 
	Supported pause frame use: Symmetric
	Supports auto-negotiation: No
	Advertised link modes:  10000baseT/Full 
	Advertised pause frame use: Symmetric
	Advertised auto-negotiation: No
	Speed: 10000Mb/s # 速度為10000mb/s,確認為萬兆網卡
	Duplex: Full
	Port: FIBRE
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
Cannot get wake-on-lan settings: Operation not permitted
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

2.2 刪除原有網卡配置信息

[root@db1 ~]$ nmcli connection show
名稱                UUID                                  類型            設備         
beatteam0           0445cabf-c120-453a-a747-2aca7e8618a0  team            beatteam0    
beatteam0-port0     851acd5f-8b5b-46be-a507-a70319074085  802-3-ethernet  enp2s0f0     
beatteam0-port1     775ff22d-cee7-4f3b-add3-dc4ad56f5c6f  802-3-ethernet  enp2s0f1     
serviceteam0        00f01df1-0185-4e31-bd6d-42e4e18d771f  team            serviceteam0 
serviceteam0-port0  65d46a63-4c94-4482-b2ee-39d39e0cbdb4  802-3-ethernet  enp5s0f0     
serviceteam0-port0  41a55302-5c94-4a17-a0fc-d6b9c12f4624  802-3-ethernet  enp5s0f1     
virbr0              1c4011cb-4d0a-4880-9a4a-05284536fbcb  bridge          virbr0  
[root@db1 ~]$ nmcli connection delete 41a55302-5c94-4a17-a0fc-d6b9c12f4624 
# nmcli connection delete 設備UUID 刪除UUID對應的網卡配置

確認所有將要使用的四張網卡信息已經全部刪除以后,准備工作完成

3、配置網卡綁定

3.1 配置千兆網卡雙網卡熱備用作心跳


[root@db1 ~]$nmcli connection add type team con-name beatteam0 ifname beatteam0 config '{"runner":{"name":"activebackup"}}'
# 創建雙網卡聚合team,team名為beatteam0,虛擬網卡名為beatteam0,方式為activebackup--熱備
[root@db1 ~]$nmcli connection modify beatteam0 ipv4.addresses 192.168.10.21/24 # 配置IPV4地址和掩碼
[root@db1 ~]$nmcli connection modify beatteam0 ipv4.gateway “192.168.10.1” # 配置IPV4網關
[root@db1 ~]$nmcli connection modify beatteam0 ipv4.dns '192.168.10.21 8.8.8.8' # 配置IPV4DNS
[root@db1 ~]$nmcli connection modify beatteam0 ipv4.method manual # 配置IPV4協議
[root@db1 ~]$nmcli connection add type team-slave con-name beatteam0-port0 ifname enp2s0f0 master beatteam0  
# 將enp2s0f0加入beatteam0,命名為beatteam0-port0
[root@db1 ~]$nmcli connection add type team-slave con-name beatteam0-port1 ifname enp2s0f1 master beatteam0
# 將enp2s0f1加入beatteam0,命名為beatteam0-port1
[root@db1 ~]$systemctl restart network # 重啟網絡服務
[root@db1 ~]$ nmcli connection show # 查看網絡連接信息,發現已經添加成功
名稱                UUID                                  類型            設備         
beatteam0           0445cabf-c120-453a-a747-2aca7e8618a0  team            beatteam0    
beatteam0-port0     851acd5f-8b5b-46be-a507-a70319074085  802-3-ethernet  enp2s0f0     
beatteam0-port1     775ff22d-cee7-4f3b-add3-dc4ad56f5c6f  802-3-ethernet  enp2s0f1  
[root@db1 ~]# teamdctl beatteam0 state # 查看team狀態,發現爭產
setup:
  runner: activebackup # 熱備狀態
ports:
  enp2s0f0
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up # 啟動狀態
        down count: 0
  enp2s0f1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up # 啟動狀態
        down count: 0
runner:
  active port: enp2s0f0 # enp2s0f0為激活網卡

3.2 配置網兆網卡雙網卡負載均衡用作業務


[root@db1 ~]$nmcli connection add type team con-name serviceteam0 ifname serviceteam0 config '{"runner":{"name":"loadbalance"}}'
# 創建雙網卡聚合team,team名為serviceteam0,虛擬網卡名為serviceteam0,方式為activebackup--熱備
[root@db1 ~]$nmcli connection modify serviceteam0 ipv4.addresses 192.168.20.51/24 # 配置IPV4地址和掩碼
[root@db1 ~]$nmcli connection modify serviceteam0 ipv4.gateway “192.168.20.1” # 配置IPV4網關
[root@db1 ~]$nmcli connection modify serviceteam0 ipv4.dns '192.168.20.51 8.8.8.8' # 配置IPV4DNS
[root@db1 ~]$nmcli connection modify serviceteam0 ipv4.method manual # 配置IPV4協議
[root@db1 ~]$nmcli connection add type team-slave con-name serviceteam0-port0 ifname enp5s0f0 master serviceteam0  
# 將enp5s0f0加入serviceteam0,命名為serviceteam0-port0
[root@db1 ~]$nmcli connection add type team-slave con-name serviceteam0-port1 ifname enp5s0f1 master serviceteam0
# 將enp5s0f1加入serviceteam0,命名為serviceteam0-port1
[root@db1 ~]$systemctl restart network # 重啟網絡服務
[root@db1 ~]$ nmcli connection show # 查看網絡連接,發現已經添加成功
名稱                UUID                                  類型            設備         
beatteam0           0445cabf-c120-453a-a747-2aca7e8618a0  team            beatteam0    
beatteam0-port0     851acd5f-8b5b-46be-a507-a70319074085  802-3-ethernet  enp2s0f0     
beatteam0-port1     775ff22d-cee7-4f3b-add3-dc4ad56f5c6f  802-3-ethernet  enp2s0f1     
serviceteam0        00f01df1-0185-4e31-bd6d-42e4e18d771f  team            serviceteam0 
serviceteam0-port0  65d46a63-4c94-4482-b2ee-39d39e0cbdb4  802-3-ethernet  enp5s0f0     
serviceteam0-port0  41a55302-5c94-4a17-a0fc-d6b9c12f4624  802-3-ethernet  enp5s0f1     
virbr0              1c4011cb-4d0a-4880-9a4a-05284536fbcb  bridge          virbr0   
[root@db1 ~]# teamdctl serviceteam0 state # 查看serviceteam0的team狀態,
setup:
  runner: loadbalance # 運行模式為loadbalance,負載均衡
ports:
  enp5s0f0
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up # 連接啟動,狀態正常
        down count: 0
  enp5s0f1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up # 連接啟動,狀態正常
        down count: 0

按此辦法配置另一台主機,配置完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM