GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Grundlagen des Ethernet-Bonding unter Linux

Einführung

Der Linux-Bonding-Treiber bietet eine Methode zum Zusammenfassen mehrerer Netzwerkschnittstellen zu einer einzigen logischen „verbundenen“ Schnittstelle. Das Verhalten der gebundenen Grenzflächen hängt vom Modus ab; Im Allgemeinen bieten Modi entweder Hot-Standby- oder Lastausgleichsdienste. Zusätzlich kann eine Überwachung der Verbindungsintegrität durchgeführt werden.

Die neueste Version des Bonding-Treibers finden Sie in der neuesten Version des Linux-Kernels unter http://kernel.org. Die neueste Version und das vollständige Dokument finden Sie entweder in der neuesten Kernel-Quelle (mit dem Namen Documentation/networking/bonding.txt) oder auf der Bonding-Sourceforge-Site http://www.sourceforge.net/projects/bonding

Konfiguration

In Enterprise Linux lädt das System den Netzwerkadaptertreiber nicht automatisch, es sei denn, das ethX-Gerät ist mit einer IP-Adresse konfiguriert. Aufgrund dieser Einschränkung müssen Benutzer manuell eine Netzwerkskriptdatei für alle physischen Adapter konfigurieren, die Mitglieder eines bondX-Links sein werden. Netzwerkskriptdateien befinden sich im Verzeichnis:

/etc/sysconfig/network-scripts

Dem Dateinamen muss „ifcfg-eth vorangestellt werden “ und mit der physischen Adapternummer des Adapters angehängt. Zum Beispiel das Skript für eth0 würde /etc/sysconfig/network-scripts/ifcfg-eth0 heißen . Fügen Sie den folgenden Text in die Datei ein:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

Die Datei „DEVICE= “ ist für jedes ethX-Gerät unterschiedlich und muss mit dem Namen der Datei übereinstimmen, d. h. ifcfg-eth1 muss eine Gerätezeile von „DEVICE=eth1“ haben. Die Einstellung des „MASTER= ”-Zeile hängt auch von dem endgültigen Bonding-Schnittstellennamen ab, der für Ihren Bond gewählt wurde. Wie bei anderen Netzwerkgeräten beginnen diese normalerweise bei 0 und gehen für jedes Gerät um eins nach oben, d. h. die erste Bindungsinstanz ist bond0, die zweite ist bond1 und so weiter.

Erstellen Sie als Nächstes ein Bond-Netzwerkskript. Der Dateiname für dieses Skript lautet /etc/sysconfig/network-scripts/ifcfg-bondX wo X ist die Nummer der Bindung. Für bond0 heißt die Datei „ifcfg-bond0“, für bond1 heißt sie „ifcfg-bond1“ und so weiter. Platzieren Sie in dieser Datei den folgenden Text:

# vi /etc/sysconfig/network-scripts/ifcfg-bondX
DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no

Stellen Sie sicher, dass Sie die netzwerkspezifischen Zeilen (IPADDR, NETMASK, NETWORK und BROADCAST) entsprechend Ihrer Netzwerkkonfiguration ändern.

Schließlich ist es notwendig, /etc/modules.conf zu bearbeiten um das Bonding-Modul mit Ihren gewünschten Optionen zu laden, wenn die Schnittstelle bond0 aufgerufen wird. Die folgenden Zeilen in /etc/modules.conf (oder modprobe.conf ) lädt das Verbindungsmodul und wählt seine Optionen aus:

# vi /etc/modprobe.conf
alias bond0 bonding
options bond0 mode=balance-alb miimon=100
Für CentOS/RHEL 5 ,Der Bindungsmodus wird in der Datei /etc/sysconfig/network-scripts/ifconfig-bond0 statt in der Datei /etc/modprobe.conf.

festgelegt

Für CentOS/RHEL 6 , erstellen Sie eine neue Datei namens /etc/modprobe.d/bonding.conf im Verzeichnis /etc/modprobe.d/ mit dem Inhalt „alias bond0 bonding“. Stellen Sie den Bonding-Modus auch in der Datei /etc/sysconfig/network-scripts/ifconfig-bond0 statt in /etc/modprobe.d/bonding.conf ein.

Ersetzen Sie für die Datei /etc/sysconfig/network-scripts/ifcfg-bond0 die Beispielparameter durch die entsprechenden Optionen für Ihre Konfiguration. Führen Sie abschließend „/etc/rc.d/init.d/network restart“ oder „service network restart“ als root aus. Dadurch wird das Netzwerk-Subsystem neu gestartet und Ihr Bond-Link sollte jetzt betriebsbereit sein.

Bonding-Konfiguration abfragen

Jedes Bonding-Gerät hat eine schreibgeschützte Datei, die sich im Verzeichnis /proc/net/bonding befindet Verzeichnis. Der Dateiinhalt enthält Informationen über die Bindungskonfiguration, Optionen und den Status jedes Slaves.

Beispielsweise lautet der Inhalt von /proc/net/bonding/bond0 nach dem Laden des Treibers mit den Parametern mode=0 und miimon=1000 im Allgemeinen wie folgt:

# cat /proc/net/bonding
Ethernet Channel Bonding Driver: 2.6.1 (October 29, 2004)
Bonding Mode: load balancing (round-robin)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Link Failure Count: 1

Slave Interface: eth0
MII Status: up
Link Failure Count: 1

Das genaue Format und der Inhalt ändern sich je nach Bonding-Konfiguration, Status und Version des Bonding-Treibers.

Bonding für Hochverfügbarkeit konfigurieren

Hochverfügbarkeit bezieht sich auf Konfigurationen, die maximale Netzwerkverfügbarkeit bieten, indem redundante oder Backup-Geräte, Verbindungen oder Switches zwischen dem Host und dem Rest der Welt vorhanden sind. Das Ziel besteht darin, die maximale Verfügbarkeit der Netzwerkkonnektivität bereitzustellen (d. h. das Netzwerk funktioniert immer), auch wenn andere Konfigurationen einen höheren Durchsatz bieten könnten.

Hohe Verfügbarkeit in einer Single-Switch-Topologie

Wenn zwei Hosts (oder ein Host und ein einzelner Switch) direkt über mehrere physische Links verbunden sind, gibt es keine Verfügbarkeitseinbußen bei der Optimierung für maximale Bandbreite. In diesem Fall gibt es nur einen Switch (oder Peer), sodass bei einem Ausfall kein alternativer Zugriff für ein Failover möglich ist. Darüber hinaus unterstützen die Bonding-Lastausgleichsmodi die Verbindungsüberwachung ihrer Mitglieder, sodass beim Ausfall einzelner Verbindungen die Last auf die verbleibenden Geräte verteilt wird.

Bindungsmodi

Abgesehen von den Active-Backup(1)- und Broadcast(3)-Modi, die für Topologien mit mehreren Switches vorgesehen sind (siehe unten), können Sie die folgenden Modi für Topologien mit einem Switch verwenden:

  • balance-rr(0) :Round-Robin-Richtlinie:Übertragen Sie Pakete in sequenzieller Reihenfolge vom ersten verfügbaren Slave bis zum letzten. Dieser Modus bietet Lastausgleich und Fehlertoleranz. Dies ist der Standardmodus. Wenn also kein Modus in der /etc/modprobe.conf angegeben ist, arbeitet der Bonding-Treiber im balance-rr-Modus. Aber es ist am besten, den Modus wie oben in /etc/modprobe.conf anzugeben.
  • balance-xor(2) :XOR-Richtlinie:Übertragen basierend auf der ausgewählten Übertragungs-Hash-Richtlinie. Dies basiert auf einer Hash-Funktion über die MAC-Adresse unter Verwendung einer XOR-Operation. Dieser Modus bietet Lastausgleich und Fehlertoleranz.
  • 802.3ad (4) :IEEE 802.3ad Dynamische Link-Aggregation. Erstellt Aggregationsgruppen mit denselben Geschwindigkeits- und Duplexeinstellungen. Verwendet alle Slaves im aktiven Aggregator gemäß der 802.3ad-Spezifikation. Voraussetzungen:
    • Ethtool-Unterstützung in den Basistreibern zum Abrufen der Geschwindigkeit und des Duplex von jedem Slave.
    • Ein Switch, der IEEE 802.3ad Dynamic Link Aggregation unterstützt.
    • Die meisten Switches erfordern eine gewisse Konfiguration, um den 802.3ad-Modus zu aktivieren.
  • balance-tlb(5) :Adaptive Sendelastverteilung:Kanalbündelung, die keine spezielle Switch-Unterstützung erfordert. Der ausgehende Datenverkehr wird entsprechend der aktuellen Auslastung (relativ zur Geschwindigkeit berechnet) auf jeden Slave verteilt. Eingehender Datenverkehr wird vom aktuellen Slave empfangen. Fällt der empfangende Slave aus, übernimmt ein anderer Slave die MAC-Adresse des ausgefallenen empfangenden Slaves. Voraussetzung:
    • Ethtool-Unterstützung in den Basistreibern zum Abrufen der Geschwindigkeit jedes Slaves.
  • balance-alb(6) :Adaptives Load-Balancing:beinhaltet balance-tlb plus Receive-Load-Balancing (rlb) für IPV4-Datenverkehr und erfordert keine spezielle Switch-Unterstützung. Der empfangene Datenverkehr von vom Server erstellten Verbindungen wird ebenfalls ausgeglichen. Wenn eine Verbindung wiederhergestellt wird oder ein neuer Slave der Bindung beitritt, wird der Empfangsverkehr unter allen aktiven Slaves in der Bindung neu verteilt. Voraussetzungen:
    • Ethtool-Unterstützung in den Basistreibern zum Abrufen der Geschwindigkeit jedes Slaves.
    • Basistreiberunterstützung zum Festlegen der Hardwareadresse eines Geräts, während es geöffnet ist.

Hohe Verfügbarkeit in einer Topologie mit mehreren Switches

Bei mehreren Switches ändert sich die Konfiguration des Bondings und des Netzwerks dramatisch. In Topologien mit mehreren Switches gibt es einen Kompromiss zwischen Netzwerkverfügbarkeit und nutzbarer Bandbreite.

Unten sehen Sie ein Beispielnetzwerk, das so konfiguriert ist, dass es die Verfügbarkeit des Netzwerks maximiert:

In dieser Konfiguration gibt es eine Verbindung zwischen den beiden Switches (ISL oder Inter-Switch-Link) und mehrere Ports, die mit der Außenwelt verbunden sind („Port3“ auf jedem Switch). Es gibt keinen technischen Grund, dass dies nicht auf einen dritten Switch erweitert werden könnte.

Bindungsmodi

In einer Topologie wie dem obigen Beispiel sind die aktiven Backup- und Broadcast-Modi die einzigen nützlichen Bonding-Modi bei der Optimierung der Verfügbarkeit; die anderen Modi erfordern, dass alle Links auf demselben Peer enden, damit sie sich vernünftig verhalten.

  • active-backup (oder 1) :Dies ist im Allgemeinen der bevorzugte Modus, insbesondere wenn die Switches eine ISL haben und gut zusammenspielen. Wenn die Netzwerkkonfiguration so ist, dass ein Switch speziell ein Backup-Switch ist (z. B. geringere Kapazität, höhere Kosten usw.), kann die primäre Option verwendet werden, um sicherzustellen, dass die bevorzugte Verbindung immer verwendet wird, wenn sie verfügbar ist.
  • Sendung (oder 3) :Dieser Modus ist eigentlich ein Spezialmodus und eignet sich nur für sehr spezielle Anforderungen. Zum Beispiel, wenn die beiden Switches nicht verbunden sind (kein ISL) und die Netzwerke dahinter völlig unabhängig sind. Wenn es in diesem Fall erforderlich ist, dass ein gewisser Datenverkehr in eine Richtung beide unabhängigen Netzwerke erreicht, kann der Broadcast-Modus geeignet sein.


Linux
  1. So verschieben Sie eine Datei unter Linux

  2. Grundlagen der Linux-Dateiberechtigungen

  3. Linux – Alles ist eine Datei?

  4. Wie benenne ich eine Datei unter Linux um?

  5. UNIX/Linux :Grundlagen der Zugriffssteuerungslisten (ACLs).

Gunzip-Befehl unter Linux

Stat-Befehl unter Linux

Was ist umask unter Linux?

So verknüpfen Sie eine Datei unter Linux per Symlink

Extrahieren Sie die tar.gz-Datei unter Linux

Was ist eine .bashrc-Datei unter Linux?