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

Verwenden von ATA über Ethernet (AoE) auf Debian Squeeze (Initiator und Ziel)

Diese Anleitung erklärt, wie Sie ein AoE-Ziel und einen AoE-Initiator (Client) einrichten können, die beide Debian Squeeze ausführen. AoE steht für „ATA over Ethernet“ und ist ein Storage Area Network (SAN)-Protokoll, das es AoE-Initiatoren ermöglicht, Speichergeräte auf dem (entfernten) AoE-Ziel mit normaler Ethernet-Verkabelung zu verwenden. „Remote“ bedeutet in diesem Fall „innerhalb desselben LANs“, da AoE außerhalb eines LANs nicht geroutet werden kann (dies ist ein wesentlicher Unterschied zu iSCSI). Für den AoE-Initiator sieht der Remote-Speicher wie eine normale, lokal angeschlossene Festplatte aus.

1 Vorbemerkung

Ich verwende hier zwei Debian Squeeze-Server:

  • server1.example.com (Initiator):IP-Adresse 192.168.0.100
  • server2.example.com (Ziel):IP-Adresse 192.168.0.101

2 Laden des aoe-kernel-moduls auf beiden systemen

server1/server2:

Bevor wir beginnen, müssen wir sicherstellen, dass der Kernel AoE unterstützt:

grep ATA_OVER /boot/config-`uname -r`

Dies sollte etwa so aussehen:

[email protected]:~# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[email protected]:~#

Das bedeutet, dass AoE als Kernel-Modul gebaut wurde. Prüfen wir, ob das Modul bereits geladen ist:

lsmod | grep aoe

Wenn Sie nichts zurückbekommen, bedeutet dies, dass es nicht geladen ist. In diesem Fall können wir es wie folgt laden:

modprobe aoe

Lassen Sie uns noch einmal prüfen, ob das Modul geladen ist:

lsmod | grep aoe
[email protected]:~# lsmod | grep aoe
aoe                    21380  0
[email protected]:~#

Damit das Modul beim Booten des Systems automatisch geladen wird, fügen wir das aoe-Modul zu /etc/modules:

hinzu
vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

aoe
loop

3 Einrichten des Ziels (server2)

server2:

Zuerst richten wir das Ziel (server2) ein:

apt-get install vblade

Wir können ungenutzte logische Volumes, Image-Dateien, Festplatten (z. B. /dev/sdb), Festplattenpartitionen (z. B. /dev/sdb1) oder RAID-Geräte (z. B. /dev/md0) für die Speicherung verwenden. In diesem Beispiel erstelle ich ein logisches Volume mit 20 GB namens storage1 in der Volume-Gruppe vg0:

lvcreate -L20G -n storage1 vg0

(Wenn Sie eine Bilddatei verwenden möchten, können Sie diese wie folgt erstellen:

mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=20000

Dadurch wird die Image-Datei /storage/storage1.img mit einer Größe von 20 GB erstellt.

)

Jetzt exportieren wir unser Speichergerät wie folgt:

vbladed 0 1 eth0 /dev/vg0/storage1

Die erste Zahl (0) ist die Regalnummer (groß), die zweite (1) die Fachnummer (klein), ändern Sie diese Nummern nach Ihren Wünschen. Jedes AoE-Gerät wird durch ein Paar Major/Minor identifiziert, das eindeutig sein muss (wenn Sie mehrere Geräte exportieren), wobei Major zwischen 0-65535 und Minor zwischen 0-255 liegt. Der eth0-Teil teilt vbladed mit, welches Ethernet-Gerät verwendet werden soll (wenn Ihr Ethernet-Gerät eth1 ist, verwenden Sie eth1 - Sie können Ihre Ethernet-Geräte herausfinden, indem Sie

ausführen
ifconfig

).

Um den Export automatisch zu starten, wenn Sie das Ziel booten, öffnen Sie /etc/rc.local...

vi /etc/rc.local

... und fügen Sie die folgende Zeile hinzu (vor der Zeile exit 0):

[...]
/usr/sbin/vbladed 0 1 eth0 /dev/vg0/storage1
[...]

4 Einrichten des Initiators (server1)

server1:

Auf server1 installieren wir den Initiator:

apt-get install aoetools

Jetzt prüfen wir, welche AoE-Speichergeräte verfügbar sind:

aoe-discover

Der Befehl

aoe-stat

sollte nun die Speichergeräte anzeigen:

[email protected]:~# aoe-stat
      e0.1        21.474GB   eth0 up
[email protected]:~#

An diesem Punkt haben wir ein neues Blockgerät mit dem Namen /dev/etherd/e0.1 auf der Client-Box verfügbar. Wenn wir uns den /dev-Baum ansehen, erscheint ein neuer Knoten:

ls -la /dev/etherd/
[email protected]:~# ls -la /dev/etherd/
total 0
drwxr-xr-x  2 root root     160 Mar 16 13:34 .
drwxr-xr-x 14 root root    3000 Mar 16 13:33 ..
c-w--w----  1 root disk 152,  3 Mar 16 13:33 discover
brw-rw----  1 root disk 152, 16 Mar 16 13:34 e0.1
cr--r-----  1 root disk 152,  2 Mar 16 13:33 err
c-w--w----  1 root disk 152,  6 Mar 16 13:33 flush
c-w--w----  1 root disk 152,  4 Mar 16 13:33 interfaces
c-w--w----  1 root disk 152,  5 Mar 16 13:33 revalidate
[email protected]:~#

In der Ausgabe von

fdisk -l

Sie sollten jetzt auch die neue Festplatte finden:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/etherd/e0.1 doesn't contain a valid partition table
[email protected]:~#

Um dieses Gerät zu verwenden, müssen wir es formatieren:

fdisk /dev/etherd/e0.1

[email protected]:~# fdisk /dev/etherd/e0.1
Das Gerät enthält weder eine gültige DOS-Partitionstabelle, noch Sun, SGI oder OSF-Disklabel
Erstellen eines neuen DOS-Disklabels mit Festplattenkennung 0xa00b110d.
Änderungen bleiben nur im Speicher, bis Sie sich entscheiden, sie zu schreiben.
Danach können die vorherigen Inhalte natürlich nicht mehr wiederhergestellt werden.


Die Anzahl der Zylinder für diese Festplatte ist auf 2610 festgelegt.
Daran ist nichts falsch , aber dieser Wert ist größer als 1024,
und könnte in bestimmten Setups Probleme verursachen mit:
1) Software, die läuft beim Booten (z. B. alte Versionen von LILO)
2) Booten und Partitionieren von Software von anderen Betriebssystemen
   (z. B. DOS FDISK, OS/2 FDISK)
Warnung: ungültiges Flag 0x0000 von Partitionstabelle 4 wird durch w(rite) korrigiert

Befehl (m für Hilfe): <-- n
Befehl Aktion
   e   erweitert
   p   primäre Partition ( 1-4)
<-- p
Partitionsnummer (1-4): <-- 1
Erster Zylinder (1-2610, Standard 1):<-- E NTER
Unter Verwendung des Standardwerts 1
Letzter Zylinder oder +Größe oder +GrößeM oder +GrößeK (1-2610, Standard 2610):<-- ENTER
Unter Verwendung des Standardwerts 2610

Befehl (m für Hilfe): <-- t
Ausgewählte Partition 1
Hex-Code (geben Sie L ein, um Codes aufzulisten): <-- 83

Befehl (m für Hilfe): <-- w
Die Partitionstabelle wurde geändert!

Aufruf von ioctl() um die Partitionstabelle neu zu lesen.
Synchronisieren von Datenträgern.
[ E-Mail-geschützt]:~#

Danach die Ausgabe von

fdisk -l

sollte wie folgt aussehen:

[email protected]:~# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00029d5c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        3793    30461952   83  Linux
/dev/sda2            3793        3917      992257    5  Extended
/dev/sda5            3793        3917      992256   82  Linux swap / Solaris

Disk /dev/etherd/e0.1: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0cf58b15

            Device Boot      Start         End      Blocks   Id  System
/dev/etherd/e0.1p1               1        2610    20964793+  83  Linux
[email protected]:~#

Jetzt erstellen wir ein Dateisystem auf /dev/etherd/e0.1p1...

mkfs.ext4 /dev/etherd/e0.1p1

... und zu Testzwecken mounten:

mount /dev/etherd/e0.1p1 /mnt

Sie sollten nun das neue Gerät in den Ausgaben von...

sehen
mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /mnt type ext4 (rw)
[email protected]:~#

... und

df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /mnt
[email protected]:~#

Sie können es wie folgt aushängen:

umount /mnt

Damit das Gerät beim Booten automatisch gemountet wird, z. im Verzeichnis /storage erstellen wir dieses Verzeichnis...

mkdir /storage

... und fügen Sie die folgende Zeile zu /etc/fstab hinzu:

vi /etc/fstab
[...]
/dev/etherd/e0.1p1       /storage        ext4    defaults,auto,_netdev 0 0

Dies allein reicht nicht aus, um das Gerät beim Booten gemountet zu haben, da das AoE-Zeug geladen wird, nachdem /etc/fstab gelesen wurde. Dazu öffnen wir /etc/rc.local...

vi /etc/rc.local

... und fügen Sie die folgenden Zeilen hinzu (vor der Zeile exit 0):

[...]
aoe-discover
sleep 5
mount -a
[...]

Zu Testzwecken können Sie nun das System neu starten:

reboot

Nach dem Neustart sollte das Gerät gemountet sein:

mount
[email protected]:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/etherd/e0.1p1 on /storage type ext4 (rw,_netdev)
[email protected]:~#
df -h
[email protected]:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              29G  806M   27G   3% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  108K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/etherd/e0.1p1     20G  172M   19G   1% /storage
[email protected]:~#

  • AoE-Protokolldefinition:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
  • Debian:http://www.debian.org/

Debian
  1. So installieren und konfigurieren Sie ZFS unter Linux mit Debian Jessie 8.1

  2. Verwenden von ATA Over Ethernet (AoE) auf CentOS 7 (Initiator und Ziel)

  3. Verwenden von ATA über Ethernet (AoE) auf Debian Squeeze (Initiator und Ziel)

  4. Upgrade von Debian 6 Squeeze mit ISPConfig und Courier/Postfix auf Debian 7 Wheezy

  5. Verwenden von ATA über Ethernet (AoE) auf CentOS 6.3 (Initiator und Ziel)

Installieren von Apache2 mit PHP5- und MySQL-Unterstützung auf Debian Squeeze (LAMP)

Verwendung von mod_spdy mit Apache2 auf Debian Squeeze

Virtuelles Hosting mit vsftpd und MySQL auf Debian Squeeze

ATA over Ethernet (AoE) auf Debian 8 einrichten (Initiator und Target)

So löschen Sie Dateien und Verzeichnisse mit dem Terminal in Debian 10

So richten Sie einen einfachen, aber dennoch leistungsstarken Mailserver mit Postfix, Dovecot und Sasl in Debian 6 (Squeeze) ein