User Tools

Site Tools


What NAS4Free is, and is not

NAS4Free is many things.

First and foremost, NAS4Free is a storage system. In order to be a storage system that is useful (what good is storage if you can't get it to store or retrieve things?), it must include file transfer protocols (some of which are referred to as “streaming”, which is a fairly useless designation, in general). This carves out a giant area that NAS4Free does. And it does those things expertly. ZFS creates a very stable storage platform. UFS can be used if you don't care about the integrity of your data, because it doesn't checksum the data, and it will gleefully return corrupted data to you as if it were 100% healthy. Then the list of available protocols for reading, writing, and moving files is quite comprehensive. NFS, SSH/SSHFS/rsync, SMB and HTTP make up a very comprehensive and useful block. Bittorrent, as a long-running, random availability protocol adds some very useful flexibility. AFP and novelty protocols like UPnP or iTunes add some misguided but commonly requested stuff and round out the protocol set pretty completely.

That being said, there are a good number of things that NAS4Free is not. Further, the list of things that NAS4Free is not are things that are unlikely to ever be supported. So pestering anyone about adding them, or how to install them will fall on deaf ears and only cause annoyance to others by asking. Worse, asking how to install ANYTHING will likely red-flag you as someone that is probably beyond help.

Hint: NAS4Free is based on FreeBSD. It is NOT based on Linux. So, while some knowledge gained from learning to administrate a Linux system may apply, A LOT of how Linux works is completely invalid in dealing with NAS4Free. For almost every action in NAS4Free, using the CLI (SSH or connected screen/keyboard) is entirely the wrong method since the WebGUI is where configuration changes should be made. Furthermore, the “sudo” command, that many Linux people have grown accustomed to, does not exist. Asking why it isn't “installed by default” or why it “can't be installed” is likely to be met with groans and facepalms.

Among the things that NAS4Free is not, and should not ever be are the following items, which make up a non-complete list.

  • Usenet downloader - You should be using some other machine to do that. Using the NAS to store the results, through a mounted share, great. But NAS4Free isn't that. There are many low-cost, low-power solutions for little headless tasks like that. Pushing the NAS to do them is not wise.
  • Database server - Again, using another machine to run a database server, and storing the database data on the NAS, great. But NAS4Free is not intended to handle database serving duties. Again, many low-cost, low-power solutions exist to do this. Hey, it could even be your usenet downloader box…
  • Media transcoder - This includes the (misguidedly included) transcoding in UPnP. The processing power and ram of the NAS are supposed to be used for moving hard drive data to/from the network, and not mangling that data along the way for “compatibility” with woefully incompetent devices. If your device isn't compatible with your media, then either fix the media or fix the device. Transcode the data yourself, or get a media player that works right. And no, game consoles are not a good choice for playing media. Anyone that tells you otherwise is lying to you, possibly because they've been lied to them-self. Programs like Handbrake make it really easy to transcode your videos into a format that competent devices can play. But it will require another machine to chug away at the video for a while, depending on the quality level you're demanding of it. But demanding transcoding from the NAS will only slow things down and make responsiveness worse.

Just for the sake of completion, here's the following:

NAS4Free is not windows. Where windows has some things supported out of the box, and then has boatloads of things that require you to install drivers because MS is lazy, FreeBSD (like Linux) builds support for most hardware into the kernel or as kernel modules that are loaded automatically when/if the hardware is needed. What NAS4Free supports is what FreeBSD supports, and what FreeBSD doesn't support is just unsupported. Unlike the MS design, installing drivers (which are often binary blobs of black magic that nobody should trust in the first place) is not something any user should be doing. If the hardware is not supported, you should probably just swap it out for something that is supported and that works. Then wait for FreeBSD development to catch up to the hardware you want to use, and it is supported.

Yes, it may seem frustrating that your shiny new NIC or drive controller, or whatever won't work. But, installing drivers, especially closed-source-binary-blob-of-black-magic type drivers is entirely the wrong solution to the problem.

Common nonsense

To address some grumbling I can already hear forming, here's some retorts to what I know people are probably about to ask:

  • “But, bittorrent is included. Why not have [X]?” – Transmission is an annoying double-edged sword. It uses the bittorrent protocol to help move files to and from the NAS. Just like NFS, SSH, or SMB. This makes it a valid and useful protocol. In particular, this is a question most commonly asked by people wanting usenet downloading or other file-leeching mechanisms. Neither of these is a server-like function, which is pretty essential to how a NAS works. If the determination had to be made to either add these other non-server functions or to remove transmission to shut up the “what about” crowd, I'd willingly vote to jettison bittorrent as a supported protocol.
  • “But my media player uses UPnP and/or Plex and needs things to be transcoded on the fly.” – Get a media player that isn't crap. TV and game console manufacturers have gotten really lazy and bought into the lie and simplicity (stupidity) of adding a broken protocol that then permits them to slap on the “media ready” sticker to their product. Consider this: Scenario 1, I transcode my media once on a client machine and store it on the NAS to play to my media player using SMB. I spend the CPU time ONCE ONLY. I'm also doing it on a machine that isn't the NAS, so the network isn't suffering from a slowed NAS while the encode occurs. And I'm left with a nice pretty file as the result of that spent CPU time. Two, three, 10, even 100 devices can all play video via SMB with no problem provided there's enough network bandwidth. Scenario 2, some fool uses UPnP to stream files to some broken thing, like PS3/4 or Xbox-something. Every friggin' time a file gets played, CPU time must be wasted (more energy usage and cost, duh) to reencode it on the fly. Worse, all this wasted CPU time leaves no result for having been wasted. Further, because the NAS (and not some other machine) is wasting CPU time encoding, every other task on the NAS has less CPU time available. Simultaneous encodes because of simultaneous viewers can seriously waste CPU time and kneecap NAS performance.
  • “But other NAS units do it.” – Just because other projects or commercial solutions do something doesn't make it a good idea. When something that is supposed to be storage starts to have “jack of all trades” included in the design and implementation, it also tends to suffer from the “master of none” flip side to that coin. When something has to be a storage machine, and a database server, and a usenet downloaded, and a media transcoder, and a virtual machine host, storage starts to take a back seat and it will very quickly become a sub-standard device for storage. Some people are OK with storage being sub-standard to gain those other “features”, and for those people NAS4Free may not be the best solution because those people care about the other “features” more than the storage. If you're serious about storage being the priority, you don't want those other “features” on your NAS. (regardless what kind of illusions of success or growth other projects or solutions appear to be having using the jack-of-all-trades concept)
what_nas4free_is_and_is_not.txt · Last modified: 2017/06/15 22:36 by zoon01