1 Network Block Device (TCP version) 2 3 What is it: With this compiled in the kernel (or as a module), Linux 4 can use a remote server as one of its block devices. So every time 5 the client computer wants to read, e.g., /dev/nb0, it sends a 6 request over TCP to the server, which will reply with the data read. 7 This can be used for stations with low disk space (or even diskless - 8 if you boot from floppy) to borrow disk space from another computer. 9 Unlike NFS, it is possible to put any filesystem on it, etc. It should 10 even be possible to use NBD as a root filesystem (I've never tried), 11 but it requires a user-level program to be in the initrd to start. 12 It also allows you to run block-device in user land (making server 13 and client physically the same computer, communicating using loopback). 14 15 Current state: It currently works. Network block device is stable. 16 I originally thought that it was impossible to swap over TCP. It 17 turned out not to be true - swapping over TCP now works and seems 18 to be deadlock-free, but it requires heavy patches into Linux's 19 network layer. 20 21 For more information, or to download the nbd-client and nbd-server 22 tools, go to http://nbd.sf.net/. 23 24 Howto: To setup nbd, you can simply do the following: 25 26 First, serve a device or file from a remote server: 27 28 nbd-server <port-number> <device-or-file-to-serve-to-client> 29 30 e.g., 31 root@server1 # nbd-server 1234 /dev/sdb1 32 33 (serves sdb1 partition on TCP port 1234) 34 35 Then, on the local (client) system: 36 37 nbd-client <server-name-or-IP> <server-port-number> /dev/nb[0-n] 38 39 e.g., 40 root@client1 # nbd-client server1 1234 /dev/nb0 41 42 (creates the nb0 device on client1) 43 44 The nbd kernel module need only be installed on the client 45 system, as the nbd-server is completely in userspace. In fact, 46 the nbd-server has been successfully ported to other operating 47 systems, including Windows. 48