NFS Server mit NIC Bonding

Um einen NFS Server mit NIC Bonding (HP: NIC Teaming) aufzusetzen benötigt man folgendes:

Hardware:
PC mit freien PCI- und PCIe-Steckplätzen
mind. 2 Gigabit Ethernet Karten
1x HDD oder RAID als Systemplatte
1x Größtmögliche(s) HDD o. RAID5 (empfohlen)
RAM: mind. 1GB
CPU: ab 2GHz (mit 64bit Unterstützung)

OS: Debian 6.0.5 x64
Pakete:
ifenslave-2.6
nfs-kernel-server
nfs-common
portmap

(optional: openssh-server, samba)

Für das Beispiel wird das Ganze in einer VM als Demo laufen, die einzelnen Schritte sind aber auf das reale System übertragbar.

Beispiel:
ISO-Datei des Debian Systems (debian-6.0.5-amd64-netinst.iso) herunterladen und auf CD-brennen. (Für die VM reicht die ISO)

VM mit 3 Festplatten und 2 Netzwerkkarten erstellen
1. Festplatte (System) 8GB
2. & 3. Festplatte 0.5GB

Das Debian System ohne die Grafische Desktop-Umgebung installieren.
Nach dem Neustart sich als root anmelden.

Jetzt die oben genannten Pakete installieren.
apt-get install ifenslave-2.6 nfs-kernel-server nfs-common portmap

Konfigurieren des NIC Bondings

Netzwerkschnittstellen herunterfahren
ifconfig eth0 down
ifconfig eth1 down

mit nano die Datei /etc/network/interfaces öffnen und die folgenden Zeilen mit einer # auskommentieren.
# allow-hotplug eth0
# iface eth0 inet dhcp

Folgendes der Datei /etc/network/interfaces hinzufügen
auto bond0
iface bond0 inet dhcp
slaves eth0 eth1
# Wenn alle Netzwerkschnittstellen verwendet werden sollen.
# slaves all

# Modes
#
# mode=0 (balance-rr)
# Round-robin policy: Transmit packets in sequential order from the first
# available slave through the last. This mode provides load balancing and
# fault tolerance.
#
# mode=1 (active-backup)
# One slave interface is active at any time. If one interface fails,
# another interface takes over the MAC address and becomes the active
# interface. Provides fault tolerance only. Doesn’t require special switch # support
#
# mode=2 (balance-xor)
# Tranmissions are balanced across the slave interfaces based on ((source
# MAC) XOR (dest MAC)) modula slave count. The same slave is selected for
# each destination MAC. Provides load balancing and fault tolerance.
#
# mode=3 (broadcast)
# Transmits everything on all slave interfaces. Provides fault tolerance.
#
# mode=4 (802.3ad)
# This is classic IEEE 802.3ad Dynamic link aggregation. This requires
# 802.3ad support in the switch and driver support for retrieving the speed # and duplex of each slave.
#
# mode=5 (balance-tlb)
# Adaptive Transmit Load Balancing. Incoming traffic is received on the
# active slave only, outgoing traffic is distributed according to the
# current load on each slave. Doesn’t require special switch support
#
# mode=6 (balance-alb)
# Adaptive Load Balancing - provides both transmit load balancing (TLB) and
# receive load balancing for IPv4 via ARP negotiation. Doesn’t require
# special switch support, but does require the ability to change the MAC
# address of a device while it is open.
bond-mode 0
bond-miimon 100

Speichern der Datei mit [Ctrl]+[O].

NFS freigaben einrichten

Als root anmelden.

Einhängepunkte erstellen:
mkdir /media/DATA1
mkdir /media/DATA2

Gerätenamen der Datenfestplatten ermitteln:
fdisk –l

Für das VM Beispiel:
Disk /dev/sdb: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 536 MB, 536870912 bytes
64 heads, 32 sectors/track, 512 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc doesn't contain a valid partition table

Partitionen und Dateisystem auf den Datenfestplatten erstellen:
fdisk /dev/sdb
n
p
1
[Return]
[Return]
w

mkfs.ext3 /dev/sdb1
das gleiche für /dev/sdc

Automatisches Einhängen beim Bootvorgang:
Die Datei /etc/fstab mit nano öffnen und die folgenden Zeilen hinzufügen

/dev/sdb1 /media/DATA1 ext3 rw,user,auto 0 0
/dev/sdc1 /media/DATA2 ext3 rw,user,auto 0 0

NFS freigaben bekanntgeben
Die Datei /etc/exports mit nano öffnen und folgendes Zeilen einfügen:

/media/DATA1 *(rw,no_root_squash,no_subtree_check)
/media/DATA2 *(rw,no_root_squash,no_subtree_check)

Speichern der Datei mit [Ctrl]+[O].

Jetzt das System neustarten und der NFS-Server ist soweit eingerichtet.