Hey guys,
TL;DR? First-timer looking for advice on RAID capabilities and partitioning best practices for setting up a media (and general file) server. Have also bolded direct questions to make this wall of text easier to process.
I'm one of those people who ends up with a load of random parts from repairing other people's computers, and so after having a clean out of a bunch of stuff and reorgansing the state of my desktop machine, I've decided to start looking in to setting up a NAS drive for the home network. I've never dabbled in any server-y type stuff before, have almost zero exposure to Linux systems (but am happy to learn, I pick stuff up quickly, generally) and so some of this stuff might be stupid, no-brainer stuff, but I've googled around a lot a things keep leading me back here and the community looks to be a good collaborative group
So. Initially I wanted to look at setting up a simple file server to just store/organise my various files in a central location. After a little bit of thought, I figured that it'd be good to actually set the box up to be a media server so then we could stream media from it too (I have an extensive digital music collection and some movies/series lying around). So that's where I started my google journey...
Hardware
I know the hardware will generally dictate how I go about assessing things. I have an old Windows 10 machine coming my way, but with the old owner being not-so-technical I only know a little bit about it:
- Processor: Intel i5 4460 (3.2 Ghz).
- 8 GB RAM (I assume it's DDR3, possibly 1833 Mhz since it's from a 6-7 gaming-focused build).
Once I've got the machine in hand then I'll be able to give more detail about the motherboard, etc... but for now, this is the info I'm working with. From what I've read, this should be good enough to achieve what I'm after.
In terms of storage, I've got 5 (possibly 6) HDDs at my disposal: 2x 1TB, 500GB, 320GB, 160GB (and possibly another 1TB depending on how things go with this). which is where my first hurdle comes in (I know that part of this is dependent on how many SATA connections I have on the motherboard, but I'm assuming I've got 4 to play with and that I could potentially expand the number of SATA ports).
Storage
Ideally I'd be pooling my storage using RAID 5 to have some redundancy for possible drive failures, but most things I've read point to a hard requirement for all drives in the array to be the same/similar size. A few things I read point to using SnapRAID in conjunction with mergefs, but also read that SnapRAID doesn't deal nicely with smaller sized files. Does anyone have any info on what is considered small? I don't want to go down the garden path on this and have to walk some of this stuff back. I figure that I could always keep smaller files in a drive not in the array, but want to know what my options are here.
Streaming
A lot of the use cases I've seen have people using Plex and while I'm not opposed to using it, I was wondering if there was something else I use/do to serve the media (transcoded on the server end) to client devices? Since I'm dealing with audio and not just video, is there a better solution? A client here could be another computer/laptop, mobile device and possibly a TV (Samsung, a couple of years old, if that matters?).
File Server
Assuming I've got my storage solution worked out, are there any tips you guys have for dealing with serving non-media files in this setup? I was thinking that I might have to separate the storage for media vs files so that I don't get any weirdness, but admittedly I'm out of my depth here - I have no experience with networking, but that's kind of the point of this project.
Webserver
This is more of a nice-to-have and isn't necessary at all, but I thought it might be cool to try and set up something simple to serve simple web apps on the local network - preferably nodejs based, don't necessarily need all of the overhead of PHP and everything it requires. with the outlined set up, do you guys think this is possible to do on the same box? I could live without this, honestly.
I apologise in advance if this would be best placed somewhere else, and thanks in advance. I've had a hard time trying to find answers to some of these specific questions.