Faster network sharing than NFS

Q I've been using NFS between two boxes but have noticed that it's not the fastest transport in the world. Is there anything else you can recommend?

A Indeed, there's a great project that has developed something called the Network Block Device (http://nbd.sourceforge.net). It's something that has been compiled into the kernel for some time now and essentially presents a remote filesystem as a local device. The only downside is that you can only have it mounted read/write by one machine. Assuming that this wouldn't cause you any problems, I'd suggest you give Network Block Device a go - it's much faster than NFS and is really straightforward to configure. First of all, because NBD uses a file rather than a directory as its device you need to create a file to the size you require. To create a 1GB NBD you can do the following on the server:

Dd if=/dev/zero of=/mnt/nbd-drive bs=1gb count=1

This will create a 1GB file as /mnt/remote. Next up you need to tell the NBD server to start up, listen to a certain port and use the file we just created. In this example we are using port 1077:

nbd-server 1077 /mnt/ndb-drive

Once this is done, ensure the nbd-client module is loaded on the client machine:

modprobe nbd.o
nbd=client 192.168.1.2 1077 /dev/nd0

Obviously you need to replace the IP given here with that of your server. You can use any filesystem you want to with NBD - because this is the first time we have accessed it, we'll format it ext2:

mke2fs /dev/nd0

And finally we can mount it:

mount -text2 /dev/nd0 /mnt/nbd-drive

If your server has multiple network cards you can start NBD on multiple ports to provide extra capacity or resilience:

nbd-server 1077 1078 1079 1080 /mnt/ndb-drive

And then on the client you can specify multiple IPs and ports:

nbd-client 192.168.1.2 1077 1078 192.168.2.2 1079 1080 /dev/nda

Back to the list