How to set up Ubuntu Server as a NAS?

I am looking to set up Ubuntu Server as a headless NAS for my home. I would like to have file storage there, as well as a central hub for my MP3s and pictures.

What are the best packages out there to handle this? Can someone post a link to a good tutorial or post some tips?

One constraint I have is that it has to be Windows 7 friendly. By that I mean the shares and streaming should work for a Windows machine.


Solution 1:

I just finished doing this myself and I did it using Samba. I'm able to mount the samba shares from my windows & ubuntu computers

Here are some links that helped me get started:

https://help.ubuntu.com/community/SettingUpSamba

http://ubuntuforums.org/showthread.php?t=280473

Solution 2:

Simples:

  1. Install Ubuntu Server. Really helps if you can have the server with a keyboard and monitor for this bit... Although you can script a CD to auto-install if you want. More trouble than it's worth if you ask me.

  2. Create a user, set up ssh (sudo apt-get install openssh-server), etc. Put your server in its final resting place and ssh in from your desktop.

  3. Install & configure samba (see the manual configuration section)

  4. Optionally install NFS for linux clients (faster, less taxing on the server CPU in my experience)

  5. Relax. You're done.

Solution 3:

For the filesystem, I have software RAID 5 across my drives, and encrypt the resulting filesystem. This way, I can use this system as a backup server as well.

Once the system is up, I use plain ol' NFS and Samba for the file level access. (apt-get install nfs-kernel-server samba). I also have a PS3 that I like to stream media to, so I use mediatomb for that (apt-get install mediatomb), and my wife uses iTunes on her Mac and netbook, so I also install mt-daapd (apt-get install mt-daapd) to share my music over the daap protocol, which rhythmbox can also use.