RHEL 6.4 : 모드 1 채널 본드 페일 오버


11

두 개의 온보드 Broadcom NetXtreme II BCM5708 1000Base-T NIC가있는 HP ML 350 G5에서 RHEL 6.4, kernel-2.6.32-358.el6.i686을 실행하고 있습니다. 내 목표는 두 인터페이스를 mode=1페일 오버 쌍 으로 채널 본딩하는 것 입니다.

내 문제는 본드가 설정되고 수락되었다는 모든 증거에도 불구하고 기본 NIC에서 케이블을 빼 내면 모든 통신이 중단된다는 것입니다.

ifcfg-etho 및 ifcfg-eth1

먼저 ifcfg-eth0 :

DEVICE=eth0
HWADDR=00:22:64:F8:EF:60
TYPE=Ethernet
UUID=99ea681d-831b-42a7-81be-02f71d1f7aa0
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

다음으로 ifcfg-eth1 :

DEVICE=eth1
HWADDR=00:22:64:F8:EF:62
TYPE=Ethernet
UUID=92d46872-eb4a-4eef-bea5-825e914a5ad6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

ifcfg-bond0

내 채권의 구성 파일 :

DEVICE=bond0
IPADDR=192.168.11.222
GATEWAY=192.168.11.1
NETMASK=255.255.255.0
DNS1=192.168.11.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimmon=100"

/etc/modprobe.d/bonding.conf

나는이 /etc/modprobe.d/bonding.confthusly 히 채워집니다 파일 :

alias bond0 bonding

ip addr 출력

본드가 시작되었고 본드의 IP 주소를 통해 서버의 공용 서비스에 액세스 할 수 있습니다.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
    link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
    link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:22:64:f8:ef:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.222/24 brd 192.168.11.255 scope global bond0
    inet6 fe80::222:64ff:fef8:ef60/64 scope link 
       valid_lft forever preferred_lft forever

본딩 커널 모듈

...로드

# cat /proc/modules | grep bond
bonding 111135 0 - Live 0xf9cdc000

/ sys / class / net

/sys/class/net파일 시스템을 보여줍니다 좋은 것들 :

cat /sys/class/net/bonding_masters 
bond0
cat /sys/class/net/bond0/operstate 
up
cat /sys/class/net/bond0/slave_eth0/operstate 
up
cat /sys/class/net/bond0/slave_eth1/operstate 
up
cat /sys/class/net/bond0/type 
1

/ var / log / messages

로그 파일에는 문제가 없습니다. 실제로 모든 것이 다소 행복해 보입니다.

Jun 15 15:47:28 rhsandbox2 kernel: Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: setting mode to active-backup (1).
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth0.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: making interface eth0 the new active one.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: first active interface up!
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth0 as an active interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: Adding slave eth1.
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: using MSI
Jun 15 15:47:28 rhsandbox2 kernel: bonding: bond0: enslaving eth1 as a backup interface with an up link.
Jun 15 15:47:28 rhsandbox2 kernel: 8021q: adding VLAN 0 to HW filter on device bond0
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex
Jun 15 15:47:28 rhsandbox2 kernel: bnx2 0000:05:00.0: eth1: NIC Copper Link is Up, 1000 Mbps full duplex

그래서 무엇이 문제입니까?!

eth0에서 네트워크 케이블을 연결하면 모든 통신이 어두워집니다. 문제점은 무엇이고 문제점을 해결하기 위해 어떤 추가 단계를 수행해야합니까?

편집하다:

추가 문제 해결 :

네트워크는 ProCurve 1800-8G 스위치가 제공하는 단일 서브넷, 단일 VLAN입니다. 내가 추가 한 primary=eth0ifcfg-bond0다시 시작 네트워킹 서비스,하지만 어떤 행동을 변경되지 않았습니다. /sys/class/net/bond0/bonding/primary추가 전후 에 모두 확인 primary=eth1했으며 null 값을 가지고 있는지 확실하지 않습니다.

케이블을 제거 /var/log/messages했을 때의 광미 eth1는 다음을 보여줍니다.

Jun 15 16:51:16 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Down
Jun 15 16:51:24 rhsandbox2 kernel: bnx2 0000:03:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex

나는 추가 use_carrier=0ifcfg-bond0BONDING_OPTSMII / ethtool을의의 ioctl의 사용을 가능하게에 절을 참조하십시오. 네트워크 서비스를 다시 시작한 후에는 증상에 변화가 없었습니다. 케이블을 eth0뽑으면 모든 네트워크 통신이 중단됩니다. 다시 한 번, /var/log/messages해당 포트의 링크가 끊 겼음을 알리는 오류가 저장 되지 않습니다 .


1
eth0에 대한 케이블이 분리 된 후 make / model 스위치 연결, 스위치의 VLAN 설정, 본드 슬레이브 상태 및 / var / log / 메시지 등의 추가 정보를 추가 할 수 있습니까?
Andy Shinn

@AndyShinn 직접 연결된 스위치는 ProCurve 1800-8G입니다. 네트워크에 VLAN이 없습니다. 단순한 단일 서브넷, 단일 VLAN 네트워크입니다.
웨슬리

@AndyShinn Ah 및 채권 노예 상태는 모두로보고됩니다 up. /var/log/messageseth0을 뽑을 때의 테일링 은 구리 링크가 뽑 혔음 을 보여줍니다. 본딩 모듈에서 메시지가 없습니다.
웨슬리

답변:


21

읽다. 너의. 구성.

그리고 그것이 실패하면 ...

읽다. 모두. 출력.

당신은 무엇을 봅 ifcfg-bond0니까? 아니, 당신 무엇 을 이해ifcfg-bond0 합니까?
미끄러운 펭귄의 세계에서 무엇입니까 miimmon=100?
아 죄송합니다 miimon=100.

그래, 난 당신이 miimon아니라고 생각합니다 miimmon.

또한 네트워크 서비스를 다시 시작하면 다음과 같은 결과가 나타납니다.

service network restart
Shutting down interface bond0:                             [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface bond0:  ./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
./network-functions: line 446: /sys/class/net/bond0/bonding/miimmon: No such file or directory
                                                           [  OK  ]

입력하는 모든 내용에주의를 기울이고 피할 수없는 타이핑 실수를 할 때 표시되는 모든 출력에주의를 기울이십시오.

당신은 나쁜 사람이며 기분이 좋지 않습니다.


8
나쁜 고양이! 호스 스프레이
voretaq7

2

NICS 중 하나를 기본 슬레이브로 지정하십시오.

DEVICE=bond0
IPADDR=192.168.11.222
GATEWAY=192.168.11.1
NETMASK=255.255.255.0
DNS1=192.168.11.1
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=1 miimmon=100 primary=eth0"

RH의 추가 문서 :

primary = 기본 장치의 인터페이스 이름 (예 : eth0)을 지정합니다. 기본 장치는 사용되는 첫 번째 본딩 인터페이스이며 실패하지 않는 한 포기되지 않습니다. 이 설정은 본딩 인터페이스에서 하나의 NIC가 더 빠르므로 더 큰 부하를 처리 할 수있을 때 특히 유용합니다. 이 설정은 본딩 인터페이스가 활성 백업 모드 인 경우에만 유효합니다. 자세한 내용은 /usr/share/doc/kernel-doc-/Documentation/networking/bonding.txt를 참조하십시오.


편집하기 전에 ifcfg-bond0확인 /sys/class/net/bond0/bonding/primary했고 응답이 비어 있습니다. 나는 추가 primary=eth0ifcfg-bond0네트워크 서비스를 다시 시작합니다. 증상에는 변화가 없으며 /sys/class/net/bond0/bonding/primary제안 에 감사드립니다.
웨슬리

use_carrier = 0을 추가해보십시오. 자세한 내용은 위의 RH 문서를 참조하십시오
dmourati

완료-질문에 정보를 추가했습니다. 행동에는 변화가 없었지만 알고있는 것이 좋습니다.
웨슬리

2

실패로 감지 된 후 eth에 실패한 다음 결합 옵션 downdelay = xxxx를 milisec에 추가하고 기본 슬레이브를 나머지로 설정하십시오. 이 매개 변수가 bonding_opt에 없으면 본드가 실패를 감지하지만 (miimom = yyyy를 포함하므로) eth0에 실패하지 않습니다. / proc / net / bonding / bondX 파일을 보면 이런 일이 발생합니다.

어쨌든 RHEL 6.3 (거의 버전과 거의 동일한 버전)에서는 스위치에서 볼 수있는 중복 된 Mac addr의 장애 복구와 관련된 본딩에 몇 가지 다른 문제가 있습니다.

행운을 빕니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.