Eu acho que você pode conseguir o que deseja usando dispositivos de bloco de rede (NBD). Olhando para a página da Wikipedia sobre o assunto, há menção de uma ferramenta chamada nbd
. É composto de um componente de cliente e servidor.
Exemplo
Nesse cenário, estou configurando um CD-ROM no meu laptop Fedora 19 (servidor) e compartilhando-o com um 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
compartilhando um CD
Agora, de volta ao servidor (Fedodra 19), faço uma coisa semelhante usando o gerenciador de pacotes YUM. Depois de concluído, coloco um CD e executo este comando para compartilhá-lo como um dispositivo de bloco:
$ 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.
$
Uma verificação rápida para ver se está em execução:
$ 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
Montando o CD
Agora, de volta ao cliente Ubuntu, precisamos nos conectar ao nbd-server
uso nbd-client
assim. NOTA: o nome do servidor nbd é greeneggs neste exemplo.
$ sudo nbd-client greeneggs 2000 /dev/nbd0
Negotiation: ..size = 643MB
bs=1024, sz=674983936 bytes
(Em alguns sistemas - por exemplo, Fedora - é preciso modprobe nbd
primeiro.)
Podemos confirmar que agora existe um dispositivo de bloco no 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
E agora montamos:
$ sudo mount /dev/nbd0p1 /mnt/
mount: block device /dev/nbd0p1 is write-protected, mounting read-only
$
funcionou?
O suspense está me matando e temos decolagem:
$ sudo ls /mnt/
EFI GPL isolinux LiveOS
Há o conteúdo de um LiveCD do CentOS que eu montei no laptop Fedora 19 e consegui montá-lo como um dispositivo de bloco da rede no Ubuntu.
greeneggs
é o nome do host do servidor.Uma alternativa para
nbd
(se você estiver interessado) é usar o iSCSI.tgtd
pode ser configurado para ter um/dev
dispositivo como armazenamento de backup para um IQN iSCSI específico.Se você estiver em um sistema RHEL, precisará instalar
scsi-target-utils
e configurar / iniciartgtd
no sistema de origem. A configuração detgtd
pode se envolver, mas a Red Hat fornece vários exemplos diferentes para os vários cenários.Por exemplo:
Para iniciá-lo no Fedora / RHEL:
Você instalaria
iscsi-initiator-utils
no sistema do cliente e usariaiscsiadm
para enviar destinos e depois "efetuar login" nos destinos enumerados. Por exemplo:Os LUNs do iSCSI serão apresentados ao sistema como dispositivos de bloco regulares. No RHEL, você pode verificar o transporte que um determinado dispositivo está chegando, basta fazer um
ls -l /dev/disk/by-path | grep iscsi
para ver qual armazenamento está chegando pelo iSCSI. O caminho também listará o IQN do destino no qual você efetuou login acima.Quando o dispositivo iscsi não é mais necessário, é possível removê-lo via:
fonte
Você obviamente prefere a solução SAN. Além do já mencionado iSCSI e NBD, você também tem a abordagem AoE (ATA over ethernet).
Isso é muito fácil de fazer:
No lado da porção, você precisa
No lado do cliente
Seus dispositivos estão em
Onde
e0.0
está o seu/dev/sdc
ee0.0.p1
está/dev/sdc1
dmesg
no servidor:dmesg
saída no cliente:Bem fácil.
Notas Adicionais
vbladed
faz parte do pacotevblade
no Fedora e Ubuntu, provavelmente o mesmo em outras distros também.aoe-discover
e tambémaoe-stat
fazem parte do pacoteaoetools
no Fedora e Ubuntu.fdisk
como um dispositivo de bloco, por exemplo/dev/etherd/e0.0
,.vblade
disponível nos repositórios F19 e F20 é bastante antiga, é a versão 14. A página do projeto ATAoE tem a versão 21 disponível. Há um RPM atualizado disponível para o Fedora 19 x86_64 aqui .fonte
dmesg
?Embora essa solução funcione, ela é apresentada apenas como um método para mostrar esse TMWTDI.
Para esta configuração, precisamos de um sistema inspirado em unix para hospedar o dispositivo de bloco e um sistema com um dispositivo de loop back block para que o sistema o visualize. O Linux funcionará para ambos.
Em seguida, precisamos de um sistema de arquivos de rede idiota (ele não deve fazer otimizações do armazenamento de dados), como samba ou webdav. Especificamente, NFS e AFS não funcionarão.
Coloque o dispositivo de bloco em uma pasta que é exportada. (
man mknod
ajudará.) desative a verificação do dispositivo de bloco, se aplicável. monte o sistema de arquivos exportado no computador-cliente, crie um dispositivo de loop usando o arquivo importado como backup e monte-o normalmente. (losetup
oumount -o loop
)Como e por que funciona e por que o desempenho é péssimo: Uma das idéias principais por trás do unix é que tudo é um arquivo; portanto, os dispositivos são arquivos, apenas são um pouco especiais (é por isso que são chamados arquivos especiais). Existem vários tipos de arquivos especiais que o mknod pode produzir, mas apenas examinaremos os dispositivos de bloco. os dispositivos de bloco existem no sistema de arquivos como qualquer outro arquivo e como qualquer outro arquivo com proprietários, permissões, inodes e nomes; mas eles têm duas diferenças: eles não armazenam seus dados no sistema de arquivos e possuem recursos extras para poderem ser montados. Se o servidor de arquivos for burro o suficiente para não prestar atenção a essas diferenças, você poderá ignorá-las e exportá-las como arquivos regulares. Em seguida, o dispositivo de loop pega um arquivo comum (local ou remoto) e adiciona propriedades e recursos especiais para que você possa montar arquivos regulares como se fossem dispositivos de bloco. A grande desvantagem é o desempenho.
fonte