Creo que podría lograr lo que desea utilizando dispositivos de bloqueo de red (NBD). Al mirar la página de wikipedia sobre el tema , se menciona una herramienta llamada nbd
. Está compuesto por un componente de cliente y servidor.
Ejemplo
En este escenario, estoy configurando un CDROM en mi computadora portátil Fedora 19 (servidor) y la comparto con un sistema Ubuntu 12.10 (cliente).
instalando
$ 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
compartir un CD
Ahora de vuelta en el servidor (Fedodra 19) hago algo similar usando su administrador de paquetes YUM. Una vez completado, introduzco un CD y ejecuto este comando para compartirlo como un dispositivo de bloque:
$ 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.
$
Una comprobación rápida para ver si se está ejecutando:
$ 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
Montaje del CD
Ahora, de vuelta en el cliente de Ubuntu, necesitamos conectarnos al nbd-server
uso de esta nbd-client
manera. NOTA: el nombre del servidor nbd es greeneggs en este ejemplo.
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(En algunos sistemas, por ejemplo, Fedora, uno tiene que hacerlo modprobe nbd
primero).
Podemos confirmar que ahora hay un dispositivo de bloque en el sistema Ubuntu usando 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
Y ahora lo montamos:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
¿funcionó?
El suspenso me está matando, y tenemos despegue:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Existe el contenido de un LiveCD de CentOS que monté en la computadora portátil Fedora 19 y pude montar como un dispositivo de bloque de la red en Ubuntu.
greeneggs
es el nombre de host del servidor.Una alternativa a
nbd
(si está interesado) es usar iSCSI.tgtd
se puede configurar para tener un/dev
dispositivo como almacenamiento de respaldo para un iSCSI IQN particular.Si está en un sistema RHEL, entonces solo necesita instalar
scsi-target-utils
y luego configurar / iniciartgtd
en el sistema fuente. La configuración detgtd
puede involucrarse, pero Red Hat proporciona muchos ejemplos diferentes para los diversos escenarios.Por ejemplo:
Para iniciarlo en Fedora / RHEL:
Instalaría
iscsi-initiator-utils
en el sistema cliente y lo usaríaiscsiadm
para enviar destinos y luego "iniciar sesión" en los destinos enumerados. Por ejemplo:Los iSCSI LUN se presentarán al sistema como dispositivos de bloque normales. En RHEL, puede verificar el transporte al que se dirige un dispositivo en particular, simplemente puede hacer un recorrido
ls -l /dev/disk/by-path | grep iscsi
para ver qué almacenamiento está llegando a través de iSCSI. La ruta también enumerará el IQN del objetivo en el que inició sesión anteriormente.Cuando ya no se necesita el dispositivo iscsi, se puede quitar a través de:
fuente
Obviamente, prefiere la solución SAN. Además de los ya mencionados iSCSI y NBD, también tiene el enfoque AoE (ATA sobre ethernet).
Esto es muy fácil de hacer:
En el lado de la porción necesitas
Del lado del cliente
Tus dispositivos están en
¿Dónde
e0.0
está tu/dev/sdc
ye0.0.p1
es/dev/sdc1
dmesg
en el servidor:dmesg
salida en el cliente:Muy fácil.
Notas adicionales
vbladed
es parte del paquetevblade
en Fedora y Ubuntu, probablemente lo mismo en otras distribuciones también.aoe-discover
yaoe-stat
son parte del paqueteaoetools
en Fedora y Ubuntu también.fdisk
como un dispositivo de bloque, por ejemplo/dev/etherd/e0.0
,.vblade
que está disponible en los repositorios F19 y F20 está bastante anticuada, es la versión 14. La página del proyecto ATAoE tiene la versión 21 disponible. Hay un RPM actualizado disponible para Fedora 19 x86_64 aquí .fuente
dmesg
?Aunque esta solución funciona, se presenta solo como un método para mostrar ese TMWTDI.
Para esta configuración, necesitamos un sistema inspirado en Unix para alojar el dispositivo de bloqueo, y un sistema con un dispositivo de bloqueo de bucle para que el sistema lo vea. Linux funcionará para ambos.
A continuación, necesitamos un sistema de archivos de red tonto (no debe hacer optimizaciones del almacenamiento de datos), como samba o webdav. Específicamente, NFS y AFS no funcionarán.
Coloque el dispositivo de bloque en una carpeta que se exporta. (
man mknod
ayudará). deshabilite la comprobación de bloqueo de dispositivo si corresponde monte el sistema de archivos exportado en la computadora cliente, cree un dispositivo de bucle utilizando el archivo importado como almacén de respaldo y móntelo normalmente. (losetup
omount -o loop
)Cómo y por qué funciona, y por qué el rendimiento apesta: una de las ideas centrales detrás de Unix es que todo es un archivo, por lo que los dispositivos son archivos solo que son un poco especiales (es por eso que se llaman archivos especiales). Hay varios tipos de archivos especiales que mknod puede producir, pero solo vamos a ver los dispositivos de bloque. existen dispositivos de bloque en el sistema de archivos como cualquier otro archivo y, como cualquier otro archivo, tienen propietarios, permisos, inodes y nombres; pero tienen dos diferencias: no almacenan sus datos en el sistema de archivos y tienen capacidades adicionales para que puedan montarse. Si el servidor de archivos es lo suficientemente tonto como para no prestar atención a estas diferencias, puede ignorarlas y exportarlas como archivos normales. A continuación, el dispositivo de bucle toma un archivo ordinario (local o remoto) y agrega las propiedades y capacidades especiales para que pueda montar archivos normales como si fueran dispositivos de bloque. El gran inconveniente es el rendimiento.
fuente