I am planning to build a server that will act as a file and backup server. And I might need to run virtual machines on it in the future, but I am not sure of this yet, so I will be composing two possible hardware configurations, one with and one without the need to run virtual machines. However while figuring this out, I stumbled upon multiple questions regarding the hardware components.

Some context:

  • In both cases I will be trying to keep the power consumption low.
  • I will be using either ZFS or BTRFS on the backup server, so that I can create snapshots of the backups.
  • The VMs will not be running GUIs.
  • The VMs will be running on their own SSD separate from the file and backup drives.
  • The CPU for the with VMs hardware configuration, will have either Intel VT-d and Intel VT-x or AMD-V and AMD-Vi.
  • QEMU/KVM will be used as hypervisor.

Will it only require more CPU cores and RAM to run the virtual machines comfortably?

Even though the server will not be business critical, I consider the backups to be of critical importance. I am not the only user and I can see it happen that the backup server will be the only location for some files. Is this, ore are they any other compelling reasons, to use ECC memory? This question is rather important, because it has a big impact of what hardware configurations are allowed.

Is it better to use SAS 2.0 or regular SATA 600 HHDs? And if SAS 2.0 is recommmended, does it matter much which hardware controller I choose, or are most OK?

If I assume the need for ECC memory there are only two CPU options to consider as far as I know, which would be to buy a second hand Intel Xeon processor or a AMD Ryzen processor. Are there any other ECC multi-core processor alternatives?

Considering these two options, and keeping in mind the aim for low power consumption, my preference right now is to go for a Ryzen 7 1700 (TDP of 65).

The only ECC DDR4 memory kits I can find are either 2133Mhz or 2666Mhz. Given the offical supported memory speeds:

  • Dual-Rank w/ 4 DIMM: Up to 1866 MHz
  • Dual-Rank w/ 2 DIMM: Up to 2400 MHz
  • Single-Rank w/ 4 DIMM: Up to 2133 MHz
  • Single-Rank w/ 2 DIMM: Up to 2667 MHz

I will start with 2 DIMMs, but might upgrade to 4 DIMMs when the need arises. Is there any point in buying dual-rank 2666Mhz memory if you do not plan to overclock the processor? If not, why does it seem that DDR4-3200 is most often recommended for Ryzen CPUs?

  • Not that I have any particular opinion about them, but I recently discovered that QNAP sells NAS devices that support running a virtualized OS on them and that can backup to expansion units. – Ignacio Vazquez-Abrams Nov 7 '17 at 19:46
  • I have looked at QNAP before, but I did not know about this release yet, thank you. Nice to see that it too uses a AMD Ryzen processor. However I prefer a DIY approach, because it gives me a lot less limitations, e.g. if some feature is not available or not to my liking, I will have less control to mediate it compared to self built server. – Ottid Mes Nov 7 '17 at 20:14

I recently did a fairly similar build to what you are planning, and it works swimmingly. (I even use KVM). Based on my recent research/experience/solution -

If you go with ECC memory, reaching slightly higher to run VM's is virtually no-cost. A server specced with a CPU designed with a low TDP cost about as much as a better one with a high TDP - but uses a similar amount of power. The rule-of-thumb minimum of 8 gigs ram for a ZFS system was more then enough to allow me to carve out 2 gigs for a VM.

While you can get away without ECC memory, it is definitely a best practice when using ZFS. Like me, you seem to be slightly on the paranoid side of data integrity which means ECC is probably the single most desirable part of the build. The thing with ZFS is that it makes a lot more use of memory then other file systems, and if data gets corrupted in memory (which can happen because of slightly faulty RAM or cosmic radiation), ECC will allow the system to transparently fix a 1 bit error, or advise the OS of a larger error.) The flipside is that ZFS prevents bitrot more effectively by the use of checksumming, and avoids the "write hole".

I'm running a small (2 gig) VM for Owncloud, DNLA and SAMBA for my home - its a VM to isolate it from my business stuff + the underlying ZFS server (which also does other fairly lightweight bits and pieces like DRBD, SSH backups), and 8 gigs of memory in the host has been more then adequate. (I've not enabled swap, and my free command shows:

              total        used        free      shared  buff/cache   available
Mem:        8120320     2612412      447236       17556     5060672      467468
Swap:             0           0           0

The uptime on my system is close to 0 (Its not doing heavy IO at the moment though).

I got an absolute steal on a "demo model" upright server with hotswap bays and an E3-1240v3 processor - my research on this site showed that getting a more powerful CPU in the same line should use a similar amount or power when idling. This CPU seems to be fairly power efficient (but no doubt new ones are slightly better), and more then up to powering a few VMs in addition to ZFS.

While the TDP of a system is a good indicator of performance per watt, it can be misleading because faster processors will have a much higher TDP, but will use about the same amount of power at idle as a system with a low TDP - except the power is there when you need them. I guess the idea would be to focus more on the line of processors and the age.

With respect of SAS hard drives, I'd suggest that they are largely a waste of money. They are not significantly more reliable then good quality hard drives (meaning you need RAID anyway), and are slightly faster, but are way more expensive, and difficult to replace. Save your money and use SSD caching.

As far as controller goes, if you are using ZFS you want something simple and reliable but not supporting RAID (or disabling fake raid) - ZFS does its own RAID equivalent, and fancy RAID disk controllers get in the way of it picking up errors and doing its thing. I actually pulled the "Fake RAID" controller out of my build and used the onboard Intel controller.

With respect of other systems which do ECC memory, a very few i3 processors support ECC memory (but not i5's or i7s - its perverse). Really though, the premium on a low end server board is not that significant. I note that a few Atom processors support ECC as well - , but I would not use them for VM's)

Assuming you are not trying to extract the last ounce of performance from the VM's (which would not make sense in this configuration), faster RAM will not make a significant difference in performance, because your system is IO bound. Rather buy more cheaper memory.

Almost as an aside - While I dislike Intel and Like AMD - Historically Intel processors have been more reliable - the Ryzen processor lineup is pretty new and targetted at gamers (ie not high reliability) - if reliability is key I'd prefer Intel over Ryzen - especially if you can get away with a slightly older server - in which case AMD servers are way more power hungry.

With respect of your questions about VM's - yes, you will only require more CPU and RAM to run VMs - but even a fairly entry level new server should allow you to run quite a few VMs.

  • Note that even a server with ZFS and snapshots is not an absolute guarantee of reliability. For a start, the server could get stolen or hacked. You could also have a highly-unlikely multi-disk failure or corruption. You should still do periodic OFFSITE backups of your system. – davidgo Nov 7 '17 at 20:24
  • This was exactly the kind of answer I was hoping for, thank you! My server will also run a mixture of work and home. After reading about the problems of RAID5 and large disks (> 1TB), I planned to just buy a second simple low-powered server instead. And instead of setting them both up using some RAID configuration, to just sync the data between them. That would solve the corruption, fire or theft problem. Or would you recommend to still use some RAID setup on both of them? – Ottid Mes Nov 7 '17 at 20:28
  • Personally, I'd get RAID1 or RAID10 on any system I use with hard disks. Harddrive failures are painfully high (highly variable, but between 2 and 8% per annum overall) and to rebuild an entire system because of a disk failure is a lot of downtime and stress compared to simply replacing the failed disk. Also, ZFS does its own RAID. If you have 2 remove systems with adequate bandwidth, you can use ZFS streaming replication to make a mirror - but the key is it needs to be off-site. How much storage are you talking about? – davidgo Nov 7 '17 at 20:36
  • Note that getting data off a failed ZFS drive can apparently be very hard. I do note though that SSDs are in the order of 10 times more reliable, but when they fail they do so catestrophically - unlike HDDs which often give some kind of warning. – davidgo Nov 7 '17 at 20:37
  • In my case, most of my data is in 2 places - its a backup from offsite servers to my ZFS box, but in case of my home stuff, the ZFS (which is a mirror) is backed up onto a non-RAIDED ZFS volume offsite - although the base of the offsite server is RAIDED, so I can simply rebuild it. – davidgo Nov 7 '17 at 20:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.