Tento tutoriál vám ukáže, jak nastavit AoE klienta (iniciátor) a server (cíl) na Debianu 8 /Jessie). Termín AoE znamená „ATA over Ethernet“, což je protokol SAN (Storage Area Network), který klientům AoE umožňuje používat úložná zařízení na (vzdáleném) serveru AoE přes běžnou ethernetovou síť. "Vzdálené" v tomto případě znamená "uvnitř stejné LAN", protože AoE není směrovatelné mimo LAN (to je zásadní rozdíl oproti iSCSI). Pro klienta AoE (iniciátor) vypadá vzdálené úložiště jako normální lokálně připojený pevný disk.
1 předběžná poznámka
Zde používám dva servery Debian 8:
- server1.example.com (iniciátor):IP adresa 192.168.1.100
- server2.example.com (cíl):IP adresa 192.168.1.101
2 Načtení modulu jádra AoE na oba systémy
server1/server2:
Jako první krok musíme zajistit, aby jádro na našich serverech podporovalo ATA přes Ethernet. Spusťte následující příkaz jako uživatel root.
grep ATA_OVER /boot/config-`uname -r`
Mělo by se zobrazit něco takového:
[e-mail chráněn]:/tmp# grep ATA_OVER /boot/config-`uname -r`
CONFIG_ATA_OVER_ETH=m
[e-mail chráněn]:/tmp#
To znamená, že AoE byl zabudován jako modul jádra. Nyní zkontrolujeme, zda je modul načten:
lsmod | grep aoe
Pokud nic nedostanete zpět, znamená to, že není načteno. V tomto případě jej můžeme načíst následovně:
modprobe aoe
Znovu zkontrolujeme, zda je modul načten:
lsmod | grep aoe
[e-mail chráněn]:/tmp# lsmod | grep aoe
aoe 51917 0
[e-mail chráněný]:/tmp#
Aby se modul načetl automaticky při startu systému, přidáme modul aoe do /etc/modules:
nano /etc/modules
# /etc/modules:moduly jádra k načtení při zavádění.## Tento soubor obsahuje názvy modulů jádra, které by se měly načíst# při zavádění, jeden na řádek. Řádky začínající „#“ jsou ignorovány.# Parametry lze zadat za názvem modulu.aoe
3 Nastavení cíle (server2)
server2:
Nejprve nastavíme cíl AoE (server2):
apt-get install vblade
Pro úložiště můžeme použít nepoužívané logické svazky, soubory s obrazy, pevné disky (např. /dev/sdb), oddíly pevného disku (např. /dev/sdb1) nebo zařízení RAID (např. /dev/md0). V tomto příkladu použiji obrazový soubor o velikosti 20 GB, který je uložen ve složce /storage.
mkdir /storage
dd if=/dev/zero of=/storage/storage1.img bs=1024k count=20000
Tím se vytvoří obrazový soubor /storage/storage1.img o velikosti 20 GB.
Pokud chcete místo toho použít logický svazek, můžete vytvořit jeden o velikosti 20 GB s názvem storage1 ve skupině svazků vg0 takto:
lvcreate -L20G -n storage1 vg0
Nyní exportujeme naše úložné zařízení následovně:
vbladed 0 1 eth0 /storage/storage1.img
První číslo (0) je číslo police (hlavní), druhé (1) číslo slotu (vedlejší), změňte tato čísla podle svého. Každé zařízení AoE je identifikováno dvojicí hlavních/vedlejších, které musí být jedinečné (pokud exportujete více zařízení), s hlavními mezi 0-65535 a vedlejšími mezi 0-255. Část eth0 říká vbladed, které ethernetové zařízení má použít (pokud je vaše ethernetové zařízení eth1, použijte eth1 – o svých ethernetových zařízeních můžete zjistit spuštěním
ifconfig
).
Chcete-li export spustit automaticky při každém spuštění cíle, otevřete /etc/rc.local...
nano /etc/rc.local
... a přidejte k němu následující řádek (před řádek exit 0):
[...]/usr/sbin/vbladed 0 1 eth0 /storage/storage1.img[...]
4 Nastavení klienta / iniciátoru AoE (server1)
server1:
Na server1 nainstalujeme iniciátor:
apt-get install aoetools
Nyní zkontrolujeme, jaká úložná zařízení AoE jsou k dispozici:
aoe-discover
Nebojte se, příkaz neukáže žádný výstup. Příkaz:
aoe-stat
by měl nyní zobrazovat úložná zařízení:
[e-mail chráněný]:/tmp# aoe-stat
e0.1 20,971 GB eth0 1024 up
[e-mail chráněný]:/tmp#
V tuto chvíli máme na klientské schránce k dispozici nové blokové zařízení s názvem /dev/etherd/e0.1. Pokud se podíváme na strom /dev, objeví se nový uzel:
ls -la /dev/etherd/
[e-mail chráněný]:/tmp# ls -la /dev/etherd/
celkem 0
drwxr-xr-x 2 kořenový adresář 160 22. března 08:46 .
drwxr- xr-x 19 root root 3160 22. března 08:34 ..
c-w--w---- 1 kořenový disk 152, 3. března 22 08:34 discover
brw-rw---- 1 kořenový disk 152, 0. března 22 08:46 e0.1
cr--r----- 1 kořenový disk 152, 22. března 08:34 err
c-w--w---- 1 kořenový disk 152, 6. března 22 08:34 flush
c-w--w---- 1 kořenový disk 152, 4. března 22 08:34 rozhraní
c-w--w---- 1 root disk 152, 5. března 22 08:34 revalidate
[e-mail chráněn]:/tmp#
Aby bylo možné používat toto zařízení /dev/etherd/e0.1, musíme jej naformátovat:
fdisk /dev/etherd/e0.1
[e-mail chráněný]:/tmp# fdisk /dev/etherd/e0.1
Vítá vás fdisk (util-linux 2.25.2).
Změny zůstanou pouze v paměti, dokud se nerozhodnete je zapsat.
Před použitím příkazu write buďte opatrní.
Zařízení neobsahuje rozpoznanou tabulku oddílů.
Vytvořeno nové označení disku DOS s identifikátorem disku 0x2922f0be.
Příkaz (m pro nápovědu):<-- n
Typ oddílu
p primární (0 primární, 0 rozšířené, 4 volné)
e rozšířené (kontejner pro logické oddíly)
Vybrat (výchozí p):<-- p
Číslo oddílu (1-4, výchozí 1):<-- 1
První sektor (2048-40959999, výchozí 2048):<-- ENTER
Poslední sektor, +sektory nebo +velikost{K,M,G,T,P} (2048-40959999, výchozí 40959999): <-- ENTER
Vytvořen nový oddíl 1 typu 'Linux' a velikosti 19,5 GiB.
Příkaz (m pro nápovědu):<-- w
Tabulka oddílů byla změněna.
Volání ioctl() pro opětovné načtení tabulky oddílů.
Synchronizace disků.
Nyní vytvoříme souborový systém na /dev/etherd/e0.1p1...
mkfs.ext4 /dev/etherd/e0.1p1
[chráněno e-mailem]:/tmp# mkfs.ext4 /dev/etherd/e0.1p1
mke2fs 1.42.12 (29. srpna 2014)
Vytváření souborového systému s 5119744 bloky 4k a 1281120
UUID souborového systému:2342cd83-bd45-4975-96c0-b0f366b73778
Zálohy superbloku uložené v blocích:
32768, 98304, 163840, 22949176, 22949186, 22093856, 22949856, 220949856,606 /> 4096000
Alokace skupinových tabulek:hotovo
Zápis tabulek inodů:hotovo
Vytváření žurnálu (32768 bloků):hotovo
Zápis superbloků a účetních informací souborového systému:hotovo
... a připojte jej pro testovací účely:
připojit /dev/etherd/e0.1p1 /mnt
Nyní byste měli vidět nové zařízení ve výstupech...
mount
[e-mail chráněný]:/tmp# mount
sysfs na /sys typu sysfs (rw,nosuid,nodev,noexec,relatime)
proc na /proc typu proc (rw,nosuid,nodev, noexec,relatime)
udev na /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=125556,mode=755)
devpts na /dev/pts typu 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 na /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs na /dev/ shm typ tmpfs (rw,nosuid,nodev)
tmpfs na /run/lock typ tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs na /sys/fs/cgroup typu tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup na /sys/fs/cgroup/systemd typ cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/ systemd-cgroups-agent,name=systemd)
pstore na /sys/fs/pstore typu pstore (rw,nosuid,nodev,noexec, relatime)
cgroup na /sys/fs/cgroup/cpuset typu cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup na /sys/fs/cgroup/cpu,cpuacct typu cgroup ( rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup na /sys/fs/cgroup/devices typu cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup na / cgroup typu sys/fs/cgroup/freezer (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup na /sys/fs/cgroup/net_cls,net_prio typ cgroup (rw,nosuid,nodev,noexec,relatime ,net_cls,net_prio)
cgroup na /sys/fs/cgroup/blkio typu cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup na /sys/fs/cgroup/perf_event typ cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
systemd-1 na /proc/sys/fs/binfmt_misc typu autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue na /dev/mqueue typu mqueue (rw,relatime)
debugfs na /sys/kernel/debug typu debugfs (rw,relatime)
hugetlbfs na /dev/hugepages typ hugetlbfs (rw,relatime)
rpc_pipefs na /r un/rpc_pipefs typ rpc_pipefs (rw,relatime)
/dev/etherd/e0.1p1 na /mnt typ ext4 (rw,relatime,data=ordered)
[e-mail chráněný]:/tmp#... a
df -h[chráněno e-mailem]:/tmp# df -h
Velikost souborového systému Použitá dostupnost Dostupnost % Namontováno na
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0 % /dev
tmpfs 200M 4,6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 499 mil. 0 499 mil. 0 % /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1 % /mnt
[e-mail chráněný]:/tmp#Můžete jej odpojit takto:
umount /mntAby bylo zařízení připojeno automaticky při bootování, např. v adresáři /storage vytvoříme tento adresář...
mkdir /storage... a přidejte následující řádek do /etc/fstab:
nano /etc/fstab[...]/dev/etherd/e0.1p1 /storage ext4 defaults,auto,_netdev 0 0To samo o sobě nestačí k tomu, aby bylo zařízení připojeno při bootování, protože věci AoE se načtou po přečtení /etc/fstab. Proto otevřeme /etc/rc.local...
nano /etc/rc.local... a přidejte k němu následující řádky (před řádek exit 0):
[...]aoe-discoversleep 5mount -a[...]Pro testovací účely můžete nyní restartovat systém:
restartovatPo restartu by mělo být zařízení připojeno:
mount[e-mail chráněno]:/tmp# mount
[...snip...]
/dev/etherd/e0.1p1 na /typ úložiště ext4 (rw,relatime,data=ordered )
[...snip...]df -h[chráněno e-mailem]:/tmp# df -h
Velikost souborového systému Použitá dostupnost Dostupnost % Namontováno na
/dev/sda1 57G 1.1G 54G 2% /
udev 10M 0 10M 0 % /dev
tmpfs 200M 4,6M 195M 3% /run
tmpfs 499M 0 499M 0% /dev/shm
tmpfs 5,0M 0 5,0M 0% /run/lock
tmpfs 499M 0 499M 0% /sys/fs/cgroup
/dev/etherd/e0.1p1 20G 44M 19G 1% /úložištěNyní můžeme provést zkušební zápis na připojený oddíl:
klepněte na /storage/test.txtPříkazem ls zkontrolujte, zda byl soubor zapsán:
ls -la /storage[e-mail chráněný]:/tmp# ls -la /storage
celkem 24
drwxr-xr-x 3 root root 4096 22. března 09:06 .
drwxr-xr-x 23 kořenový kořen 4096 22. března 09:05 ..
drwx------ 2 kořenový kořen 16384 22. března 09:00 ztraceno+nalezeno
-rw-r--r-- 1 kořenový kořen 0 22. března 09:06 test.txt
[e-mail chráněný]:/tmp#Soubor test.txt byl úspěšně zapsán na svazek, který jsme připojili ze serveru2.
5 odkazů
- Definice protokolu AoE:http://www.coraid.com/RESOURCES/AoE-Protocol-Definition
- Debian:http://www.debian.org/