Ich denke, Sie könnten mit Network Block Devices (NBD) das erreichen, was Sie wollen. Wenn man sich die Wikipedia-Seite zum Thema ansieht, wird ein Tool namens erwähnt nbd
. Es besteht aus einer Client- und einer Serverkomponente.
Beispiel
In diesem Szenario richte ich eine CD-ROM auf meinem Fedora 19-Laptop (Server) ein und teile sie auf ein Ubuntu 12.10-System (Client) aus.
installieren
$ 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
Teilen einer CD
Zurück auf dem Server (Fedodra 19) mache ich eine ähnliche Sache mit seinem Paketmanager YUM. Nach Abschluss lege ich eine CD ein und führe diesen Befehl aus, um sie als Blockgerät freizugeben:
$ 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.
$
Eine kurze Überprüfung, ob es läuft:
$ 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
Einhängen der CD
Nun zurück auf dem Ubuntu-Client müssen wir uns mit dem nbd-server
using nbd-client
so verbinden. HINWEIS: der Name des NBD-Servers ist greeneggs in diesem Beispiel.
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(Auf einigen Systemen - zB Fedora - muss man modprobe nbd
zuerst.)
Wir können bestätigen, dass auf dem Ubuntu-System jetzt ein Block-Gerät vorhanden ist, indem wir Folgendes verwenden 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
Und jetzt montieren wir es:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
hat es funktioniert?
Die Spannung bringt mich um und wir haben Absprung:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Es gibt den Inhalt einer Live-CD von CentOS, die ich in den Fedora 19-Laptop eingehängt habe und die ich unter Ubuntu als Block-Gerät des Netzwerks einhängen konnte.
greeneggs
Ist der Hostname des Servers.Eine Alternative zu
nbd
(falls Sie interessiert sind) ist die Verwendung von iSCSI.tgtd
kann so konfiguriert werden, dass ein/dev
Gerät als Sicherungsspeicher für einen bestimmten iSCSI-IQN verwendet wird.Wenn Sie sich auf einem RHEL-System befinden, müssen Sie nur das Quellsystem installieren
scsi-target-utils
und anschließend konfigurieren / startentgtd
. Die Konfiguration vontgtd
kann mitmachen, aber Red Hat bietet viele verschiedene Beispiele für die verschiedenen Szenarien.Zum Beispiel:
So starten Sie Fedora / RHEL:
Sie würden
iscsi-initiator-utils
auf dem Client-System installieren und verwendeniscsiadm
, um Ziele zu senden und sich dann bei den aufgelisteten Zielen anzumelden. Zum Beispiel:Die iSCSI-LUNs werden dann dem System als reguläre Blockgeräte angezeigt. Unter RHEL können Sie überprüfen, über
ls -l /dev/disk/by-path | grep iscsi
welchen Transport ein bestimmtes Gerät übertragen wird. Sie können lediglich überprüfen , welcher Speicher über iSCSI übertragen wird. Der Pfad listet auch die IQN des Ziels auf, bei dem Sie sich oben angemeldet haben.Wenn das iscsi-Gerät nicht mehr benötigt wird, kann es entfernt werden über:
quelle
Sie bevorzugen offensichtlich die SAN-Lösung. Neben dem bereits erwähnten iSCSI und NBD haben Sie auch den AoE (ATA over Ethernet) -Ansatz.
Das geht ganz einfach:
Auf der Servierseite müssen Sie
Auf der Client-Seite
Ihre Geräte sind in
Wo
e0.0
ist dein/dev/sdc
unde0.0.p1
ist/dev/sdc1
dmesg
auf dem Server:dmesg
Ausgabe auf Client:Ziemlich einfach.
Zusätzliche Bemerkungen
vbladed
ist Teil des Paketsvblade
auf Fedora & Ubuntu, wahrscheinlich auch in anderen Distributionen.aoe-discover
&aoe-stat
sind ebenfalls Teil des Paketsaoetools
auf Fedora & Ubuntu.fdisk
beispielsweise als Blockgerät angezeigt/dev/etherd/e0.0
.vblade
, die in den Repositorys F19 und F20 verfügbar ist, ist ziemlich veraltet, es ist Version 14. Auf der ATAoE-Projektseite ist Version 21 verfügbar. Für Fedora 19 x86_64 ist hier ein aktualisiertes RPM verfügbar .quelle
dmesg
?Obwohl diese Lösung funktioniert, wird sie nur als Methode vorgestellt, um TMWTDI zu veranschaulichen.
Für dieses Setup benötigen wir ein von Unix inspiriertes System zum Hosten des Blockgeräts und ein System mit einem Loopback-Blockgerät, damit das System es anzeigen kann. Linux wird für beide funktionieren.
Als nächstes brauchen wir ein dummes Netzwerk-Dateisystem (es darf keine Optimierungen des Datenspeichers vornehmen), wie Samba oder Webdav. Insbesondere NFS und AFS funktionieren nicht.
Platzieren Sie das Blockiergerät in einem Ordner, der exportiert wird. (
man mknod
Hilft.) Deaktivieren Sie ggf. die Block-Geräteprüfung. Mounten Sie das exportierte Dateisystem auf dem Client-Computer, erstellen Sie ein Loop-Gerät, indem Sie die importierte Datei als Backup-Speicher verwenden und mounten Sie sie wie gewohnt. (losetup
odermount -o loop
)Wie und warum es funktioniert und warum die Leistung schlecht ist: Eine der Kernideen von Unix ist, dass alles eine Datei ist, daher sind Geräte nur Dateien, die etwas Besonderes sind (daher werden sie auch Spezialdateien genannt). Es gibt verschiedene Arten von speziellen Dateien, die mknod erzeugen kann, aber wir werden uns nur mit Blockgeräten befassen. Blockgeräte existieren im Dateisystem wie jede andere Datei und wie jede andere Datei besitzen sie Eigentümer, Berechtigungen, Inodes und Namen. Sie haben jedoch zwei Unterschiede: Sie speichern ihre Daten nicht im Dateisystem und sie verfügen über zusätzliche Funktionen, damit sie eingehängt werden können. Wenn der Dateiserver dumm genug ist, diese Unterschiede nicht zu berücksichtigen, können Sie sie ignorieren und als reguläre Dateien exportieren. Als Nächstes nimmt das Loop-Gerät eine normale Datei (lokal oder remote) und fügt die speziellen Eigenschaften und Funktionen hinzu, so dass Sie reguläre Dateien bereitstellen können, als wären sie Blockgeräte. Der große Nachteil ist die Leistung.
quelle