What hardware for a file server with collaborative features?
-
So, due to Corona we're kind of being forced to do more online stuff in regards to lessons. One focal point our school has decided on is NextCloud with various add-ons and collaborative tools.
Currently, that instance of NextCloud is running on the same server as everything else. So, to at least get rid of one bottleneck (while also reducing the number of single point of failures) my superior has agreed to move that service to its own server.
However, I'm not quite sure what we should aim for - we've got about 1,900 users but they aren't all online at the same time, of course.
Can anyone give me some clues on what specs to aim for and how to arrive at those specs using what numbers? I'd also like to have it rack-able.
-
@Rhywden their documentation on hardware planning is pretty rubbish.
Unless someone here is familiar with the software I would probably suggest you seek out their own forums, and hope those forums aren't overrun with asshats.
Another consideration: Would you be running this on a VM in a virtualization environment where you could easily change the hardware allocation if needed, and possibly dynamically as loads and needs change? Or will this be a bare metal install for just this usage where you are going to have to go through the process of getting funding allocated and order special hardware just for this purpose and you need to get it right to begin with or you will be unlikely to get upgrades or replacements if needed?
If it is the first, you don't have to worry as much. If it is the second then take whatever requirements those in the know give you and add 50-200% because spending a large chunk of money and something working right the first time is easily forgotten but if you spend a chunk of money and everything goes tits up and crashes that stigma will stick with you forever.
-
@Polygeekery It will most likely be bare metal - we usually don't have much discretionary funds.
-
@Rhywden due to tight budgets you may be inclined to save as much money as possible. But I would suggest you not. If you spend $X and everything goes fine that expense will soon be forgotten. If you spend $X * 0.5 and everything goes poorly you will be stuck holding the bag.
Godspeed my friend.
-
@Polygeekery said in What hardware for a file server with collaborative features?:
@Rhywden due to tight budgets you may be inclined to save as much money as possible. But I would suggest you not. If you spend $X and everything goes fine that expense will soon be forgotten. If you spend $X * 0.5 and everything goes poorly you will be stuck holding the bag.
Godspeed my friend.
Naw, currently we're quite flush which is why I was able to convince my superior so easily. He's also of the same opinion as you and would like to have a solution which remains usable even some years down the line.
-
@Rhywden said in What hardware for a file server with collaborative features?:
He's also of the same opinion as you and would like to have a solution which remains usable even some years down the line.
How morally flexible is your hardware vendor's salesperson? If you've been given a fairly blank check have him throw in a machine for you and bury it in the cost of the server.
-
@Polygeekery said in What hardware for a file server with collaborative features?:
@Rhywden said in What hardware for a file server with collaborative features?:
He's also of the same opinion as you and would like to have a solution which remains usable even some years down the line.
How morally flexible is your hardware vendor's salesperson? If you've been given a fairly blank check have him throw in a machine for you and bury it in the cost of the server.
That's, sadly enough, completely impossible. We have to bid for tenders (as that thing will be more than 1,000€) and those tenders get processed in another department outside my school.
-
@Rhywden I forgot about my private sector privilege.
"I like your proposal, but anything over $X has to go to board approval and that is a whole process that takes forever. Could we split it up in to Y number of phases to keep it under $X and just avoid the bureaucracy?"
-
@Rhywden said in What hardware for a file server with collaborative features?:
Can anyone give me some clues on what specs to aim for and how to arrive at those specs using what numbers? I'd also like to have it rack-able.
For NextCloud (which is a PHP+MySQL app), the requirements are rather small, you'll probably want to focus on RAM and CPU for the database because that's really where most of your bottleneck for the system will be.
I'd expect a 4-core 3+GHz machine with 16 GB of RAM, gig connection, and decent drive would probably more than suffice.
Having recently done this with Docker, it's pretty cut-and-dry, make sure your storage is in order and pretty much Bob's your uncle.
-
@Rhywden said in What hardware for a file server with collaborative features?:
while also reducing the number of single point of failures
Splitting the services by service onto two servers won't do that. You'll just increase the number of single point of failures around. OTOH, you'll reduce the load, which may help. Provided the provider doesn't cram them both into the same VM host…
SPOF reduction requires replication at multiple locations. And much worrying over whether the replication mechanism itself becomes a SPOF…
-
@dkf said in What hardware for a file server with collaborative features?:
@Rhywden said in What hardware for a file server with collaborative features?:
while also reducing the number of single point of failures
Splitting the services by service onto two servers won't do that. You'll just increase the number of single point of failures around. OTOH, you'll reduce the load, which may help. Provided the provider doesn't cram them both into the same VM host…
SPOF reduction requires replication at multiple locations. And much worrying over whether the replication mechanism itself becomes a SPOF…
I think what was meant for SPOF was something bringing down an unrelated service won't kill his server since it's running seperately. Tiny difference I know...
-
@Rhywden said in What hardware for a file server with collaborative features?:
It will most likely be bare metal - we usually don't have much discretionary funds.
If you find some spare time due to the school being closed, you might want to play around with Proxmox. When you want to quickly set up a virtualization environment without spending any money on software, it's your best option. And it supports everything from simple VMs running on a single host, with their files on the local hard disk to complex high-availability cluster setups with automatic failover, so you could introduce nice technology gradually.
-
@dfdub Nice. Since NextCloud consists of a web server and a database it would probably be worthwhile to put the two on different VMs?
Should at least make it easier to get a sense for their respective hardware demands and adjust them if needed.
-
@Rhywden said in What hardware for a file server with collaborative features?:
it would probably be worthwhile to put the two on different VMs?
maybe. The database is primarily to track metadata, permissions, etc. So, having it on a separate host may improve many users listing files and the like?
Would have to try it and monitor.
-
@Rhywden said in What hardware for a file server with collaborative features?:
Since NextCloud consists of a web server and a database it would probably be worthwhile to put the two on different VMs?
Seems like unecessary overhead if you mean on the same host.
-
@Rhywden said in What hardware for a file server with collaborative features?:
Since NextCloud consists of a web server and a database it would probably be worthwhile to put the two on different VMs?
If they're going to run on the same host anyway and if the database is only used by NextCloud for now, then you should probably deploy them in the same VM for the time being, to avoid wasting any resources. But what you could do to future-proof your setup is put both parts of the application into different containers, which would make it trivial to move the database to a different VM later.
You'd add one more layer of indirection (docker / podman / lxc / whatever you choose), but also gain additional flexibility and automatically document your configuration as code (Dockerfile / ansible-bender playbook / whatever you choose). Just make sure you don't fall victim to analysis paralysis when you see all the options for building and running containers these days.