Opsætning ATA over Ethernet (AoE) på Debian 8 (Initiator og Target)

Opsætning ATA over Ethernet (AoE) på Debian 8 (Initiator og Target)

Denne vejledning viser dig, hvordan du konfigurerer en AoE-klient (initiator) og server (mål) på Debian 8 / Jessie). Begrebet AOE står for "ATA over Ethernet", som er en SAN-protokol (storage area network), som gør det muligt for AoE-klienter at bruge lagerenheder på (fjern) AoE-serveren over et normalt ethernetnetværk. "Remote" betyder i dette tilfælde "inden for samme LAN", fordi AoE ikke kan routeres uden for et LAN (dette er en væsentlig forskel i forhold til iSCSI). Til AoE-klienten (initiativtager) ligner fjernstyringen en normal, lokalt fastgjort harddisk.

1 Preliminary Note

Jeg bruger to Debian 8 servere her:

  • server1.example.com (Initiator): IP-adresse 192.168.1.100
  • server2.example.com (Target): IP-adresse 192.168.1.101

2 Indlæs AoE Kernel-modulet på begge systemer

server1 / server2:

Som et første skridt skal vi sikre, at kernen på vores servere understøtter ATA Over Ethernet. Kør følgende kommando som root-bruger.

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

Dette skal vise noget som dette:

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

Det betyder, at AoE blev bygget som et kernemodul. Nu skal vi kontrollere om modulet er indlæst:

lsmod | grep aoe

Hvis du ikke får noget tilbage, betyder det, at det ikke er indlæst. I dette tilfælde kan vi indlæse det som følger:

modprobe aoe

Lad os tjekke igen, om modulet er indlæst:

lsmod | grep aoe

[email protected]: / tmp # lsmod | grep aoe
aoe 51917 0
[email protected]: / tmp #

For at få modulet indlæst automatisk, når systemet starter, tilføjer vi aoe-modulet til / etc / modules:

nano / etc / moduler

# / etc / moduler: Kernemoduler til indlæsning ved opstartstid. # # Denne fil indeholder navnene på kernemoduler, der skal indlæses # ved opstartstid, en pr. Linje. Linjer der begynder med "#" ignoreres. # Parametre kan angives efter modulets navn. AOE

3 Opsætning af målet (server2)

server2:

Først opretter vi AoE-målet (server2):

apt-get install vblade

Vi kan bruge ubrugte logiske volumener, billedfiler, harddiske (fx / dev / sdb), harddiskpartitioner (f.eks. / Dev / sdb1) eller RAID-enheder (f.eks. / Dev / md0) til lagringen. I dette eksempel bruger jeg en billedfil af 20GB, der er gemt i mappen / lageret.

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

Dette skaber billedfilen /storage/storage1.img med en størrelse på 20GB.

Hvis du i stedet vil bruge logisk lydstyrke, kan du oprette en med en størrelse på 20GB med navnet storage1 i volumengruppen vg0 som denne:

lvcreate -L20G -n storage1 vg0

Nu eksporterer vi vores lagerenhed som følger:

vbladed 0 1 eth0 /storage/storage1.img

Det første nummer (0) er hyldenummeret (større), det andet (1) slotnummeret (mindre), skift disse tal til din smag. Hver AoE-enhed identificeres af et par større / mindre, som skal være unikt (hvis du eksporterer flere enheder), med større mellem 0-65535 og mindre mellem 0-255. Eth0-delen fortæller vbladed hvilken ethernet-enhed der skal bruges (hvis din ethernet-enhed er eth1, brug derefter eth1 - du kan finde ud af dine ethernet-enheder ved at køre

ifconfig

).

For at starte eksporten automatisk, når du starter målet, skal du åbne /etc/rc.local...

nano /etc/rc.local

... og tilføj følgende linje til den (før exit 0-linjen):

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

4 Opsætning af AoE Client / Initiator (server1)

server1:

På server1 installerer vi initiativtager:

apt-get installer aoetools

Nu kontrollerer vi, hvilke AoE-lagerenheder der er tilgængelige:

AOE-opdage

Bare rolig, kommandoen viser ingen output. Kommandoen:

AOE-stat

skal nu vise lagerenhederne:

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

På dette tidspunkt har vi en ny blok enhed tilgængelig på klientboksen hedder / dev / etherd / e0.1. Hvis vi ser på / dev træet, vises en ny node:

ls-la / dev / etherd /

[email protected]: / tmp # ls -la / dev / etherd /
Total 0
drwxr-xr-x 2 rod rod 160 Mar 22 08: 46.
drwxr-xr-x 19 rod rod 3160 Mar 22 08: 34 ..
cw-w-- 1 roddisk 152, 3 Mar 22 08: 34 opdager
brw-rw-- 1 root disk 152, 0 Mar 22 08: 46 e0.1
cr-r-- 1 root disk 152, 2 Mar 22 08: 34 fejl
cw-w-- 1 roddisk 152, 6 Mar 22 08: 34 flush
cw-w-- 1 root disk 152, 4 Mar 22 08: 34-grænseflader
cw-w-- 1 roddisk 152, 5 Mar 22 08: 34 fornyes
[email protected]: / tmp #

For at bruge denne / dev / etherd / e0.1 enhed skal vi formatere det:

fdisk / dev / etherd / e0.1

[email protected]: / tmp # fdisk / dev / etherd / e0.1

Velkommen til fdisk (util-linux 2.25.2).
Ændringer forbliver kun i hukommelsen, indtil du beslutter dig for at skrive dem.
Pas på, inden du bruger skrive-kommandoen.

Enheden indeholder ikke en anerkendt partitionstabel.
Oprettet en ny DOS disklabel med diskidentifikator 0x2922f0be.

Kommando (m for hjælp): <- n
Partition type
p primær (0 primær, 0 forlænget, 4 fri)
e udvidet (beholder til logiske partitioner)
Vælg (standard p): <- s
Partition nummer (1-4, standard 1): <- 1
Første sektor (2048-40959999, standard 2048): <- ENTER
Sidste sektor, + sektorer eller + størrelse {K, M, G, T, P} (2048-40959999, standard 40959999): <- ENTER

Oprettet en ny partition 1 af typen 'Linux' og af størrelse 19.5 GiB.

Kommando (m for hjælp): <- w

Partitionstabellen er ændret.
Ringer ioctl () for at genlæse partitionstabellen.
Synkroniser diske.

Nu opretter vi et filsystem på / dev / etherd / e0.1p1 ...

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

[email protected]: / tmp # mkfs.ext4 / dev / etherd / e0.1p1
mke2fs 1.42.12 (29-Aug-2014)
Oprettelse af filsystem med 5119744 4k-blokke og 1281120-inoder
Filesystem UUID: 2342cd83-bd45-4975-96c0-b0f366b73778
Superblock backups gemt på blokke:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000

Fordeling af gruppebord: færdig
Skrive inode tabeller: færdig
Oprettelse af journal (32768-blokke): færdig
Skrive superblocks og filsystem regnskabsoplysninger: færdig

... og monter det til test formål:

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

Du skal nu se den nye enhed i udgange af ...

montere

[email protected]: / tmp # mount
sysfs on / sys type sysfs (rw, nosuid, nodev, noexec, relatime)
proc on / proc type proc (rw, nosuid, nodev, noexec, relatime)
udev on / dev type devtmpfs (rw, relatime, size = 10240k, nr_inodes = 125556, mode = 755)
devpts på / dev / pts type devpts (rw, nosuid, noexec, relatime, gid = 5, mode = 620, ptmxmode = 000)
tmpfs on / run type tmpfs (rw, nosuid, relatime, størrelse = 204220k, mode = 755)
/ dev / sda1 på / type ext4 (rw, relatime, fejl = remount-ro, data = bestilt)
securityfs on / sys / kernel / sikkerhedstype securityfs (rw, nosuid, nodev, noexec, relatime)
tmpfs på / dev / shm type tmpfs (rw, nosuid, nodev)
tmpfs on / run / lås type tmpfs (rw, nosuid, nodev, noexec, relatime, size = 5120k)
tmpfs på / sys / fs / cgroup type tmpfs (ro, nosuid, nodev, noexec, mode = 755)
cgroup på / sys / fs / cgroup / systemd type cgroup (rw, nosuid, nodev, noexec, relatime, xattr, release_agent = / lib / systemd / systemd-cgroups-agent, navn = systemd)
pstore på / sys / fs / pstore type pstore (rw, nosuid, nodev, noexec, relatime)
cgroup på / sys / fs / cgroup / cpuset type cgroup (rw, nosuid, nodev, noexec, relatime, cpuset)
cgroup på / sys / fs / cgroup / cpu, cpuacct type cgroup (rw, nosuid, nodev, noexec, relatime, cpu, cpuacct)
cgroup på / sys / fs / cgroup / enheder type cgroup (rw, nosuid, nodev, noexec, relatime, enheder)
cgroup på / sys / fs / cgroup / fryser type cgroup (rw, nosuid, nodev, noexec, relatime, fryser)
cgroup på / sys / fs / cgroup / net_cls, net_prio type cgroup (rw, nosuid, nodev, noexec, relatime, net_cls, net_prio)
cgroup på / sys / fs / cgroup / blkio type cgroup (rw, nosuid, nodev, noexec, relatime, blkio)
cgroup på / sys / fs / cgroup / perf_event type cgroup (rw, nosuid, nodev, noexec, relatime, perf_event)
systemd-1 på / proc / sys / fs / binfmt_misc type autofs (rw, relatime, fd = 23, pgrp = 1, timeout = 300, minproto = 5, maxproto = 5, direkte)
mqueue på / dev / mqueue type mqueue (rw, relatime)
debugfs on / sys / kernel / debug type debugfs (rw, relatime)
hugetlbfs på / dev / hugepages type hugetlbfs (rw, relatime)
rpc_pipefs on / run / rpc_pipefs type rpc_pipefs (rw, relatime)
/ dev / etherd / e0.1p1 på / mnt type ext4 (rw, relatime, data = bestilt)
[email protected]: / tmp #

... og

df -h

[email protected]: / tmp # df -h
Filsystemstørrelse Anvendt Tilgængelig Brug% Monteret på
/ dev / sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% / dev
tmpfs 200M 4.6M 195M 3% / runde
tmpfs 499M 0 499M 0% / dev / shm
tmpfs 5.0M 0 5.0M 0% / run / lås
tmpfs 499M 0 499M 0% / sys / fs / cgroup
/ dev / etherd / e0.1p1 20G 44M 19G 1% / mnt
[email protected]: / tmp #

Du kan afmontere det sådan:

umount / mnt

For at få enheden installeret automatisk ved opstartstid, f.eks. I mappen / opbevaring, opretter vi den pågældende mappe ...

mkdir / opbevaring

... og tilføj følgende linje til / etc / fstab:

nano / etc / fstab

[...] / dev / etherd / e0.1p1 / storage ext4 standard, auto, _netdev 0 0

Dette alene er ikke nok til at have enheden monteret ved opstartstidspunktet, fordi AoE-stuffene bliver indlæst, efter at / etc / fstab er læst. Derfor åbner vi /etc/rc.local...

nano /etc/rc.local

... og tilføj følgende linjer til det (før exit 0-linjen):

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

Til testformål kan du nu genstarte systemet:

genstarte

Efter genstart skal enheden monteres:

montere

[email protected]: / tmp # mount
[... klip ...]
/ dev / etherd / e0.1p1 on / storage type ext4 (rw, relatime, data = bestilt)
[... klip ...]

df -h

[email protected]: / tmp # df -h
Filsystemstørrelse Anvendt Tilgængelig Brug% Monteret på
/ dev / sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0% / dev
tmpfs 200M 4.6M 195M 3% / runde
tmpfs 499M 0 499M 0% / dev / shm
tmpfs 5.0M 0 5.0M 0% / run / lås
tmpfs 499M 0 499M 0% / sys / fs / cgroup
/ dev / etherd / e0.1p1 20G 44M 19G 1% / opbevaring

Nu kan vi lave en testskriv på den monterede partition:

touch /storage/test.txt

Kontrollen med ls kommandoen, hvis filen er skrevet:

ls -la / storage

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

Test.txt-filen er skrevet succesfuldt på det volumen, som vi monterede fra server2.

5 Links

Giv en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.