URL
https://opencores.org/ocsvn/test_project/test_project/trunk
Subversion Repositories test_project
[/] [test_project/] [trunk/] [linux_sd_driver/] [Documentation/] [nbd.txt] - Rev 62
Compare with Previous | Blame | View Log
Network Block Device (TCP version)What is it: With this compiled in the kernel (or as a module), Linuxcan use a remote server as one of its block devices. So every timethe client computer wants to read, e.g., /dev/nb0, it sends arequest over TCP to the server, which will reply with the data read.This can be used for stations with low disk space (or even diskless -if you boot from floppy) to borrow disk space from another computer.Unlike NFS, it is possible to put any filesystem on it, etc. It shouldeven be possible to use NBD as a root filesystem (I've never tried),but it requires a user-level program to be in the initrd to start.It also allows you to run block-device in user land (making serverand client physically the same computer, communicating using loopback).Current state: It currently works. Network block device is stable.I originally thought that it was impossible to swap over TCP. Itturned out not to be true - swapping over TCP now works and seemsto be deadlock-free, but it requires heavy patches into Linux'snetwork layer.For more information, or to download the nbd-client and nbd-servertools, go to http://nbd.sf.net/.Howto: To setup nbd, you can simply do the following:First, serve a device or file from a remote server:nbd-server <port-number> <device-or-file-to-serve-to-client>e.g.,root@server1 # nbd-server 1234 /dev/sdb1(serves sdb1 partition on TCP port 1234)Then, on the local (client) system:nbd-client <server-name-or-IP> <server-port-number> /dev/nb[0-n]e.g.,root@client1 # nbd-client server1 1234 /dev/nb0(creates the nb0 device on client1)The nbd kernel module need only be installed on the clientsystem, as the nbd-server is completely in userspace. In fact,the nbd-server has been successfully ported to other operatingsystems, including Windows.
