Myslím, že byste mohli být schopni dosáhnout toho, co chcete, pomocí síťových blokových zařízení (NBD). Při pohledu na stránku wikipedie na toto téma je zmínka o nástroji s názvem nbd
. Skládá se z klientské a serverové komponenty.
Příklad
V tomto scénáři nastavuji CDROM na svém notebooku Fedora 19 (server) a sdílím jej se systémem Ubuntu 12.10 (klient).
instalace$ apt-cache search ^nbd-
nbd-client - Network Block Device protocol - client
nbd-server - Network Block Device protocol - server
$ sudo apt-get install nbd-server nbd-client
sdílení disku CD Nyní zpět na serveru (Fedodra 19) dělám podobnou věc pomocí jeho správce balíčků YUM. Po dokončení vložím CD a spustím tento příkaz, abych jej nasdílel jako blokové zařízení:
$ sudo nbd-server 2000 /dev/sr0
** (process:29516): WARNING **: Specifying an export on the command line is deprecated.
** (process:29516): WARNING **: Please use a configuration file instead.
$
Rychlá kontrola, zda běží:
$ ps -eaf | grep nbd
root 29517 1 0 12:02 ? 00:00:00 nbd-server 2000 /dev/sr0
root 29519 29071 0 12:02 pts/6 00:00:00 grep --color=auto nbd
Připojení disku CD
Nyní zpět na klientovi Ubuntu se musíme připojit k nbd-server
pomocí nbd-client
jako tak. POZNÁMKA: název nbd-serveru je v tomto příkladu greeneggs.
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(Na některých systémech – např. Fedora – musí být modprobe nbd
první.)
Můžeme potvrdit, že v systému Ubuntu je nyní blokové zařízení pomocí lsblk
:
$ sudo lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
sda1 8:1 0 243M 0 part /boot
sda2 8:2 0 1K 0 part
sda5 8:5 0 465.5G 0 part
ubuntu-root (dm-0) 252:0 0 461.7G 0 lvm /
ubuntu-swap_1 (dm-1) 252:1 0 3.8G 0 lvm [SWAP]
sr0 11:0 1 654.8M 0 rom
nbd0 43:0 0 643M 1 disk
nbd0p1 43:1 0 643M 1 part
A teď to připojíme:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
fungovalo to? To napětí mě zabíjí a máme start:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Je tam obsah LiveCD CentOS, který jsem připojil do notebooku Fedora 19 a byl jsem schopen jej připojit jako blokové zařízení sítě na Ubuntu.
Jedna alternativa k nbd
(pokud máte zájem) používá iSCSI. tgtd
lze nakonfigurovat tak, aby měl /dev
zařízení jako jeho záložní úložiště pro konkrétní iSCSI IQN.
Pokud používáte systém RHEL, stačí nainstalovat scsi-target-utils
a poté nakonfigurujte/spusťte tgtd
na zdrojovém systému. Konfigurace tgtd
může se zapojit, ale Red Hat poskytuje spoustu různých příkladů pro různé scénáře.
Například:
<target iqn.2008-09.com.example:server.target4>
direct-store /dev/sdb # Becomes LUN 1
direct-store /dev/sdc # Becomes LUN 2
direct-store /dev/sdd # Becomes LUN 3
write-cache off
vendor_id MyCompany Inc.
</target>
Chcete-li jej spustit na Fedoře/RHEL:
# systemctl start tgtd.service
# firewall-cmd --add-service iscsi-target
Nainstalovali byste iscsi-initiator-utils
na klientském systému a použijte iscsiadm
odeslat cíle a poté se "přihlásit" do vyjmenovaných cílů. Například:
# iscsiadm -m discovery -t sendtargets -p <remoteHost>
# iscsiadm -m node -T <Complete Target IQN> -l -p <remoteHost>
Jednotky iSCSI LUN se pak systému představí jako běžná bloková zařízení. Na RHEL můžete zkontrolovat přepravu konkrétního zařízení, stačí provést ls -l /dev/disk/by-path | grep iscsi
abyste viděli, jaké úložiště přichází přes iSCSI. V cestě bude také uvedeno IQN cíle, ke kterému jste se přihlásili výše.
Když již zařízení iscsi není potřeba, můžete jej odebrat pomocí:
# iscsiadm -m node -T <Complete Target IQN> -u -p <remoteHost>
Zjevně preferujete řešení SAN. Kromě již zmíněných iSCSI a NBD máte také přístup AoE (ATA over ethernet).
To je velmi snadné:
Na straně podávání musíte
modprobe aoe
vbladed 0 0 eth0 /dev/sdc
Na straně klienta
modprobe aoe
aoe-discover
aoe-stat
e0.0 1000.204GB eth0 1024 up
Vaše zařízení jsou v
ls -l /dev/etherd/
c-w--w---- 1 root disk 152, 3 Mar 12 22:47 discover
brw-rw---- 1 root disk 152, 0 Mar 12 22:47 e0.0
brw-rw---- 1 root disk 152, 1 Mar 12 22:47 e0.0p1
cr--r----- 1 root disk 152, 2 Mar 12 22:47 err
c-w--w---- 1 root disk 152, 6 Mar 12 22:47 flush
c-w--w---- 1 root disk 152, 4 Mar 12 22:47 interfaces
c-w--w---- 1 root disk 152, 5 Mar 12 22:47 revalidate
Kde e0.0
je vaše /dev/sdc
a e0.0.p1
je /dev/sdc1
dmesg
na serveru:
[221384.454447] aoe: AoE v85 initialised.
dmesg
výstup na klientovi:
[ 1923.225832] aoe: AoE v85 initialised.
[ 1923.226379] aoe: e0.0: setting 1024 byte data frames
[ 1923.226910] aoe: 38607725d8b1 e0.0 v4014 has 1953525168 sectors
[ 1923.653820] etherd/e0.0: p1
Docela snadné.
Další poznámky
vbladed
je součástí balíčkuvblade
na Fedoře a Ubuntu, pravděpodobně to samé i v jiných distribucích.aoe-discover
&aoe-stat
jsou součástí balíčkuaoetools
také na Fedoře a Ubuntu.- Zařízení se zobrazí v
fdisk
jako blokové zařízení, například/dev/etherd/e0.0
. - Verze
vblade
který je dostupný v repozitářích F19 a F20, je dost zastaralý, je to verze 14. Stránka projektu ATAoE má k dispozici verzi 21. Zde je k dispozici aktualizované RPM pro Fedoru 19 x86_64.