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

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

Dieses Tutorial zeigt Ihnen, wie Sie einen AoE-Client (Initiator) und -Server (Ziel) unter Debian 8 /Jessie einrichten. Der Begriff AoE steht für „ATA over Ethernet“, ein Storage Area Network (SAN)-Protokoll, das es AoE-Clients ermöglicht, Speichergeräte auf dem (Remote-) AoE-Server über ein normales Ethernet-Netzwerk 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-Client (Initiator) sieht der Remotespeicher wie eine normale, lokal angeschlossene Festplatte aus.

1 Vorbemerkung

Ich verwende hier zwei Debian 8-Server:

  • server1.example.com (Initiator):IP-Adresse 192.168.1.100
  • server2.example.com (Ziel):IP-Adresse 192.168.1.101

2 Laden Sie das AoE-Kernel-Modul auf beiden Systemen

server1/server2:

Als ersten Schritt müssen wir sicherstellen, dass der Kernel auf unseren Servern ATA Over Ethernet unterstützt. Führen Sie den folgenden Befehl als Root-Benutzer aus.

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

Dies sollte etwa so aussehen:

[E-Mail-geschützt]:/tmp# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[E-Mail-geschützt]:/tmp#

Das bedeutet, dass AoE als Kernel-Modul eingebaut wurde. Jetzt prüfen wir, ob das Modul 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]:/tmp# lsmod | grep aoe
aoe 51917 0
[email protected]:/tmp#

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

hinzu
nano /etc/modules
# /etc/modules:beim Booten zu ladende Kernel-Module.## Diese Datei enthält die Namen der Kernel-Module, die beim Booten# geladen werden sollen, eines pro Zeile. Zeilen, die mit "#" beginnen, werden ignoriert. # Parameter können nach dem Modulnamen angegeben werden.aoe

3 Einrichten des Ziels (server2)

server2:

Zuerst richten wir das AoE-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 verwende ich eine Bilddatei von 20 GB, die im Ordner /storage gespeichert ist.

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.

Wenn Sie stattdessen ein logisches Volume verwenden möchten, können Sie eines mit einer Größe von 20 GB namens „storage1“ in der Volume-Gruppe „vg0“ wie folgt erstellen:

lvcreate -L20G -n storage1 vg0

Jetzt exportieren wir unser Speichergerät wie folgt:

vbladed 0 1 eth0 /storage/storage1.img

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...

nano /etc/rc.local

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

[...]/usr/sbin/vbladed 0 1 eth0 /storage/storage1.img[...]

4 Einrichten des AoE-Clients/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

Keine Sorge, der Befehl zeigt keine Ausgabe an. Der Befehl:

aoe-stat

sollte nun die Speichergeräte anzeigen:

[email protected]:/tmp# aoe-stat
e0.1 20.971GB eth0 1024 up
[email protected]:/tmp#

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]:/tmp# ls -la /dev/etherd/
insgesamt 0
drwxr-xr-x 2 root root 160 Mar 22 08:46 .
drwxr- xr-x 19 root root 3160 Mar 22 08:34 ..
c-w--w---- 1 root disk 152, 3 Mar 22 08:34 Discover
brw-rw---- 1 root disk 152, 0 Mär 22 08:46 e0.1
cr--r----- 1 root disk 152, 2 Mär 22 08:34 err
c-w--w---- 1 Root-Festplatte 152, 6. März 22 08:34 Flush
c-w--w---- 1 Root-Festplatte 152, 4. März 22 08:34 Schnittstellen
c-w--w---- 1 Root Disk 152, 5. März 22 08:34 Revalidieren
[email protected]:/tmp#

Um dieses /dev/etherd/e0.1-Gerät zu verwenden, müssen wir es formatieren:

fdisk /dev/etherd/e0.1
[E-Mail-geschützt]:/tmp# fdisk /dev/etherd/e0.1
Willkommen bei fdisk (util-linux 2.25.2).
Änderungen bleiben nur im Arbeitsspeicher, bis Sie sich entscheiden, sie zu schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl verwenden.
Gerät enthält keine erkannte Partitionstabelle.
Neues DOS-Disklabel mit Disk-ID 0x2922f0be erstellt.
Befehl (m für Hilfe):<-- n
Partitionstyp
p primär (0 primär, 0 erweitert, 4 frei)
e erweitert (Container für logische Partitionen)
/>Auswählen (Standard p):<-- p
Partitionsnummer (1-4, Standard 1):<-- 1
Erster Sektor (2048-40959999, Standard 2048):<-- ENTER
Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (2048-40959999, Standard 40959999): <-- ENTER
Erstellte eine neue Partition 1 des Typs „Linux“ und der Größe 19,5 GiB.
Befehl (m für Hilfe):<-- w
Die Partitionstabelle wurde geändert.
Aufruf von ioctl() zum erneuten Lesen der Partitionstabelle.
Synchronisieren von Datenträgern.

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

mkfs.ext4 /dev/etherd/e0.1p1
[email protected]:/tmp# mkfs.ext4 /dev/etherd/e0.1p1
mke2fs 1.42.12 (29. August 2014)
Dateisystem mit 5119744 4k-Blöcken und 1281120 Inodes erstellen
Dateisystem-UUID:2342cd83-bd45-4975-96c0-b0f366b73778
Superblock-Backups gespeichert in Blöcken:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605642, 8,26532, 8,26532, 8,0 /> 4096000
Gruppentabellen zuweisen:fertig
Inode-Tabellen schreiben:fertig
Journal erstellen (32768 Blöcke):fertig
Superblocks und Dateisystem-Accounting-Informationen schreiben:fertig

... und zu Testzwecken mounten:

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

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

sehen
einhängen
[email protected]:/tmp# mount
sysfs auf /sys geben Sie sysfs (rw,nosuid,nodev,noexec,relatime) ein
proc auf /proc geben Sie proc (rw,nosuid,nodev, noexec,relatime)
udev auf /dev geben Sie devtmpfs (rw,relatime,size=10240k,nr_inodes=125556,mode=755)
devpts auf /dev/pts geben Sie devpts (rw,nosuid,noexec, relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=204220k,mode=755)
/dev/sda1 on /type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs auf /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs auf /dev/ shm tippe tmpfs (rw,nosuid,nodev)
tmpfs auf /run/lock tippe tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs auf /sys/fs/cgroup tippe tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup auf /sys/fs/cgroup/systemd geben Sie cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/ systemd-cgroups-agent,name=systemd)
pstore auf /sys/fs/pstore geben Sie pstore (rw,nosuid,nodev,noexec, relatime)
cgroup auf /sys/fs/cgroup/cpuset Typ cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup auf /sys/fs/cgroup/cpu,cpuacct Typ cgroup ( rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup auf /sys/fs/cgroup/devices Typ cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup auf / sys/fs/cgroup/freezer gib cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup auf /sys/fs/cgroup/net_cls,net_prio gib cgroup (rw,nosuid,nodev,noexec,relatime ,net_cls,net_prio)
cgroup auf /sys/fs/cgroup/blkio geben Sie cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup auf /sys/fs/cgroup/perf_event geben Sie cgroup ein (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 auf /proc/sys/fs/binfmt_misc geben Sie autofs ein (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages geben Sie hugetlbfs (rw,relatime)
rpc_pipefs auf /r ein un/rpc_pipefs tippe rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 auf /mnt tippe ext4 (rw,relatime,data=ordered)
[email protected]:/tmp#

... und

df -h
[email protected]:/tmp# df -h
Verwendete Dateisystemgröße Avail Use% Mounted on
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0 % /dev
tmpfs 200 Mio. 4,6 Mio. 195 Mio. 3 % /run
tmpfs 499 Mio. 0 499 Mio. 0 % /dev/shm
tmpfs 5,0 Mio. 0 5,0 Mio. 0 % /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /mnt
[email protected]:/tmp#

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:

nano /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...

nano /etc/rc.local

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

[...]aoe-discoversleep 5mount -a[...]

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

Neustart

Nach dem Neustart sollte das Gerät gemountet sein:

einhängen
[email protected]:/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 on /storage type ext4 (rw,relatime,data=ordered )
[...schnipsen...]
df -h
[email protected]:/tmp# df -h
Verwendete Dateisystemgröße Avail Use% Mounted on
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0 % /dev
tmpfs 200 Mio. 4,6 Mio. 195 Mio. 3 % /run
tmpfs 499 Mio. 0 499 Mio. 0 % /dev/shm
tmpfs 5,0 Mio. 0 5,0 Mio. 0 % /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /storage

Jetzt können wir einen Testschreibvorgang auf der gemounteten Partition durchführen:

berühre /storage/test.txt

Prüfen Sie mit dem Befehl ls, ob die Datei geschrieben wurde:

ls -la /storage
[email protected]:/tmp# ls -la /storage
insgesamt 24
drwxr-xr-x 3 root root 4096 Mar 22 09:06 .
drwxr-xr-x 23 root root 4096 Mar 22 09:05 ..
drwx------ 2 root root 16384 Mar 22 09:00 lost+found
-rw-r--r-- 1 root root 0 Mär 22 09:06 test.txt
[email protected]:/tmp#

Die Datei test.txt wurde erfolgreich auf das Volume geschrieben, das wir von Server2 gemountet haben.

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

Debian
  1. So richten Sie virtuelle Container mit LXC- und Quota-Unterstützung unter Debian 8 ein

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

  3. So richten Sie den Rsyslog-Server unter Debian 11 ein

  4. ISPConfig Perfect Multiserver-Setup auf Ubuntu 20.04 und Debian 10

  5. Wie man einen Mailserver mit Exim4 und DBMail auf einem Debian 7 VPS einrichtet

Wie man vsftpd unter Debian einrichtet

Wie man Symfony 4 auf Debian 9 Server einrichtet

So richten Sie einen Cron-Job in Debian 10 ein

So installieren Sie den Thunderbird-E-Mail-Client unter Debian und richten Ihr GMail-Konto in Thunderbird ein

So installieren und konfigurieren Sie Apache Spark unter Ubuntu/Debian

So installieren und konfigurieren Sie Sendmail unter Debian 10