Je pense que vous pourrez peut-être accomplir ce que vous voulez en utilisant des dispositifs de blocage de réseau (NBD). En regardant la page wikipedia sur le sujet, il est mentionné un outil appelé nbd
. Il est composé d'un composant client et serveur.
Exemple
Dans ce scénario, je configure un CD-ROM sur mon ordinateur portable Fedora 19 et le partage sur un système Ubuntu 12.10 (client).
l'installation
$ 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
partage d'un CD
De retour sur le serveur (Fedodra 19), je fais la même chose en utilisant son gestionnaire de paquets YUM. Une fois terminé, un CD est inséré dans le CD et lance cette commande pour le partager en tant que périphérique bloc:
$ 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.
$
Une vérification rapide pour voir si elle fonctionne:
$ 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
Monter le CD
Maintenant, revenons sur le client Ubuntu, nous devons nous connecter aux nbd-server
utilisateurs nbd-client
comme ceci. REMARQUE: le nom du nbd-server est greeneggs dans cet exemple.
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(Sur certains systèmes - par exemple Fedora - il faut d' modprobe nbd
abord.)
Nous pouvons confirmer qu’il existe maintenant un périphérique bloc sur le système Ubuntu utilisant 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
Et maintenant nous le montons:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
ça a fonctionné?
Le suspense me tue, et nous avons décollé:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Il y a le contenu d'un LiveCD de CentOS que j'ai monté dans l'ordinateur portable Fedora 19 et que je pouvais monter en tant que périphérique bloc du réseau sur Ubuntu.
greeneggs
est le nom d'hôte du serveur.Une alternative à
nbd
(si vous êtes intéressé) utilise iSCSI.tgtd
peut être configuré pour avoir un/dev
périphérique comme stockage de sauvegarde pour un IQN iSCSI particulier.Si vous utilisez un système RHEL, il vous suffit donc de l'installer
scsi-target-utils
puis de le configurer / démarrertgtd
sur le système source. La configuration detgtd
peut être impliquée, mais Red Hat fournit de nombreux exemples différents pour les différents scénarios.Par exemple:
Pour le démarrer sur Fedora / RHEL:
Vous devez installer
iscsi-initiator-utils
sur le système client et utiliseriscsiadm
pour envoyer des cibles, puis pour vous "connecter" aux cibles énumérées. Par exemple:Les LUN iSCSI se présenteront alors au système comme des périphériques de bloc standard. Sur RHEL, vous pouvez vérifier le transport d'un périphérique particulier, vous pouvez simplement
ls -l /dev/disk/by-path | grep iscsi
vérifier le stockage en cours sur iSCSI. Le chemin indiquera également le numéro IQ de la cible à laquelle vous vous êtes connecté ci-dessus.Lorsque le périphérique iscsi n'est plus nécessaire, vous pouvez le supprimer via:
la source
Vous préférez évidemment la solution SAN. Outre les normes iSCSI et NBD déjà mentionnées, vous avez également l'approche AoE (ATA over ethernet).
C'est très facile à faire:
Du côté du service, vous devez
Côté client
Vos appareils sont en
Où
e0.0
est votre/dev/sdc
ete0.0.p1
est/dev/sdc1
dmesg
sur le serveur:dmesg
sortie sur le client:Plutôt facile.
Notes complémentaires
vbladed
fait partie du paquetvblade
sur Fedora & Ubuntu, probablement la même chose dans d’autres distributions.aoe-discover
&aoe-stat
font également partie du paquetaoetools
sur Fedora et Ubuntu.fdisk
tant que périphérique bloc, par exemple/dev/etherd/e0.0
.vblade
disponible dans les référentiels F19 et F20 est assez ancienne, il s'agit de la version 14. La version 21 du projet ATAoE est disponible. Un RPM mis à jour est disponible pour Fedora 19 x86_64 ici .la source
dmesg
?Bien que cette solution fonctionne, elle est présentée uniquement comme une méthode permettant de montrer que TMWTDI.
Pour cette configuration, nous avons besoin d’un système d’inspiration Unix pour héberger le périphérique en mode bloc, ainsi que d’un système doté d’un périphérique de bouclage en boucle. Linux fonctionnera pour les deux.
Ensuite, nous avons besoin d’un système de fichiers réseau muet (comme Samba ou webdav, il ne faut pas optimiser le stockage des données). Plus précisément, NFS et AFS ne fonctionneront pas.
Placez le périphérique de bloc dans un dossier exporté. (
man mknod
aidera.) désactivez la vérification du périphérique de bloc, le cas échéant. montez le système de fichiers exporté sur l'ordinateur client, créez un périphérique de boucle en utilisant le fichier importé en tant que magasin de sauvegarde et montez normalement. (losetup
oumount -o loop
)Comment et pourquoi cela fonctionne-t-il et pourquoi la performance est-elle nulle? L'une des idées fondamentales de Unix est que tout est un fichier, les périphériques ne sont donc que des fichiers un peu spéciaux (c'est pourquoi ils sont appelés fichiers spéciaux). Mknod peut produire plusieurs types de fichiers spéciaux, mais nous allons seulement examiner les périphériques en mode bloc. Les dispositifs de blocage existent dans le système de fichiers comme tout autre fichier et comme tout autre fichier, ils ont des propriétaires, des autorisations, des inodes et des noms; mais ils ont deux différences: ils ne stockent pas leurs données dans le système de fichiers et ils disposent de fonctionnalités supplémentaires leur permettant d'être montés. Si le serveur de fichiers est suffisamment stupide pour ne pas prêter attention à ces différences, vous pouvez les ignorer et les exporter sous forme de fichiers normaux. Ensuite, le périphérique en boucle prend un fichier ordinaire (local ou distant) et ajoute les propriétés et fonctionnalités spéciales de sorte que vous puissiez monter des fichiers normaux comme s'il s'agissait de périphériques en mode bloc. Le gros inconvénient est la performance.
la source