I’m looking to build a server for my footage. I’m planning to edit off the server as well to a group of editors and compositors. Which of the above do people recommend?
What you expect the server to do? If it is just act as a ZFS file store - use FreeNAS (IMHO).
ZFS on CentOS will be more screwing around (it’s not installed by default, etc.) and to be honest the native ZFS in FreeNAS/FreeBSD is probably more mature and performant. It also sets up scheduled scrubs, has email alerts for disk issues, etc, etc. all pre-canned out of the box.
I would probably agree with @thro - Freenas. I think for an end user its pretty much ready to go (with some research), has a nice gui, and has a decent amount of documentation.
The only caveat I have is if you have a background with centos or RHEL , and your happy to roll your own then that’s probably going to be option. I think through if this was the case we wouldn’t be having this discussion.
Worth noting that if want to do other server type stuff, FreeNAS also has jails or VMs available, so you could even spin up a Centos VM on it if you wanted to.
And still get the FreeNAS sane zfs defaults, alarms, detailed reporting, friendly gui for setting up the array, pools, etc. Plus full snapshot/roll back of your CentOS VM, Freenas already has rollback for boot environment, etc.
Honestly, if you’re setting it up primarily as a storage appliance type device, there’s no way in hell i’d recommend doing it on CentOS as the base platform. It will just be a lot more screwing around for a harder to manage and maintain end result that probably performs worse.
If you already had CentOS and were doing other things primarily on the server that might be different…
Definitely FreeNAS and I would consider Synology depending on your level of expertise. FreeNAS has a somewhat steeper learning curve, especially if you’re managing the hardware yourself (as opposed to buying a prebuilt from iXsystems).
If you plan on using it like a NAS, FreeNAS is great. Even for advanced usage.
If you actually plan a Server (other uses than file storage like, Webserver, Mail, Virtualisation, etc) I’d go with Linux myself. FreeNAS can do most of it, but i’m personally more familiar with running Linux Servers for such stuff.
I wouldn’t choose CentOS though. We have to run it on several Servers and i’m not a huge fan. My personal choice would be Debian or Ubuntu Server depending on usecase and expected lifetime.
CentOS has always been a tad to old and clumsy for my taste. I’ll give it stability though. If it does what you need, most of our CentOS Servers have no hiccups what so ever. They do their job without major maintenance needed for years on end.
proxmox… it has ZFS included.
I haven’t dabbled in ZFS yet, as i don’t have the money to build a “test system” with the hardware requirements ZFS recommends. But on a Server that does a particular job (Webserver etc.) i’m not sure i’d need ZFS anyways. But i could be wrong.
I’m personally just not a huge fan of servers that are only configured with a webinterface. It might be a tad oldschool, but i like to configure my servers through the shell. I think any graphical configuration tool or Desktop for that matter is unnecessary overhead on a server But that’s just me.
Yeah… well Microsoft is making a Terminal again. They call it ‘terminal’ and made a marketing video for it as if they released a new iPhone. Cant be that old-school… ^^
The beauty of doing Linux or other VMs on FreeNAS though as opposed to bare metal is that you get full snapshot support on the entire OS. Essentially a single FreeNAS box with VMs on it can act like a poor-mans virtualisation cluster (compute+storage).
package manager or OS upgrade fucks up? roll back the VM/jail to the ZFS auto-snapshot you took an hour ago…
need to test? clone the VM or snapshot the thing and go nuts. all VM server upgrades or play-time become essentially risk free.
FreeNAS itself does boot environment snapshots before upgrades so they are almost risk free as well.
Thanks for the input. FYI, I went with FreeNAS in the end because it was just so much easier to setup than CentOS. However, now I’m trying to saturate my 10Gbe LAN. I want to still use RAIDZ2 for the vdev and I’m currently using 6x 12TB drives. Is that enough?
Also, I’m still trying to wrap my head around multiple vdevs in a pool. Will adding a second 6x 12TB (non-mirrored) into the pool speed up transfer?
Let me know.
OK the short version on VDEVS vs. pools.
VDEV RAID levels are for resiliency. You want to pick the level of redundancy you need via the raid level for your VDEV. This is a trade-off vs. number of VDEVs in your pool. More redundancy = less disks for making more VDEVs with.
The number of VDEVS determines how many IOPs you will get out of your pool. Because IO is striped across all VDEVs in a pool. However, IOPS wise, each individual VDEV is worth a single drive worth of IOPs (because all drives in a VDEV are ‘in sync’. Sum total of sequential read speed will be based on total number of data drives.
So, yes, a second 6x12TB VDEV will speed up your pool by about double in terms of IOPS and also double in terms of throughput.
VDEV wise - mirrors are neat, because with say 12 drives you could have 6 mirrors and thus 6 VDEVs to stripe across for high random IO rates. But you lose a lot of capacity.
2x RAID6 (err RAIDZ2) will be good for streaming IO (and capacity), but vs. a heap of mirrors will suck for random. Its a trade-off.
I’m not sure how fast 12 TB drives are at sequential IO, but if you multiply X drives by Y sequential read/write speed for the non-parity drives it will give you an idea of how many you need to stream that fast.
Obviously random io will be less.
Thanks for that explanation. Since I have a 60Bay, I plan on making just one pool with 10 vdevs in RAIDZ2 of 6x 12TB. Based on your explanation, this should provide the redundancy I need with the speed I want.
Now I just have to understand how datasets relate to folders so that I can manage the shares correctly. Yes, I’m that green a newbie.
Basically, datasets are a security or ZFS options boundary. But from the filesystem end user view they look just like a folder.
In general, use datasets if it is to allocate storage for a particular purpose:
- a specific app
- a specific user
- a specific data type
- a specific network share
You can have as many datasets as you want. In general, if you’re administratively creating a “folder” it may well be better off being a data-set. Consider whether you will need or want different ZFS options, security privileges or maybe to snapshot/replicate it individually - if any of those are “yes” or “maybe yes” - make it a dataset.
Leave folders under the dataset to the end user or application.
So yes, you may end up with a lot of data-sets.
If you already made them folders no big deal, but yeah - it threw me for a bit too, but the above are why you may want it to be a dataset.
You can control security settings via FreeNAS web-GUI at the data-set level. Doing it at the folder level will require you to drop to the CLI - so that’s yet another reason to make it a data-set.
Ah ok. I got confused because when I made my zPool, the first a dataset that automatically gets created is the same name as the pool, which is what showed up in my SMB share. Is there a way for the first dataset to not follow the zPool name?
Based on your explanation, I will make a new dataset for each use case. I will leave the folders to the user. But at least, I know what “folder” shows up in the share.
Not that i am aware of.
But if you want to create a share, i’d create a new dataset called the share name and share out from that point (don’t share or store files directly off the top level). Sounds like you’ve got the idea as per above…
Another tip, and an example why you want different data-sets…
If you’re using a dataset as a VM backing store (i.e., you are storing VMDK or virtual disk files on it) you will want to turn off access time tracking on it to improve performance. I think the zfs option is “atime”. Otherwise every read causes a write to update the last accessed time for the file on that dataset, and for virtual disk images that is particularly bad for performance.
It’s (atime tracking) not too bad for normal file share stuff performance hit wise, and probably actually useful in that instance to know when a file was last looked at. But for VMs it is mostly pointless.
So far, my needs are strictly for sharing media to multiple video editors. However, I know if I wanted to collaborate on DaVinci Resolve, I have to have the database in a phpserver. Do I need a VM to have phpserver or is there a plugin?
Not sure if there is a plugin. However you can maybe do it without a VM by using a Jail.
If you spin up a new jail, you can basically get a freebsd server wthout the full overhead of virtualisation (shares the same kernel but gets its own network address, etc.). May want to take a look at the manual and also the freebsd handbook. Essentially if you were to create a jail, you can then use the pkg commands to install the relevant packages into that jail (from the Jail’s CLI).
Basically thats all FreeNAS plugins are - a pre-packaged jail with an application already set up in them (and some FreeNAS gui glue to make it easy to administer.
Got it. Will start reading. Thanks again.
So, I’m actually up and running on FreeNAS and it’s all good. However, I’ve been reading people setting up CentOS using ZFS for their NAS. I’m guessing it’s because they want to customize the interface for their needs. Is FreeNAS interface customizable?