User Tools

This is an old revision of the document!


Storage Setup

The idea is to store your entire media collection on a redundant software RAID-1 array located on a different drive from the one where the Operating System is installed. In this way it will be easier to migrate to a new server in the future and your data will be safe from a disk failure. Now, there are different solutions you can choose from. You could go RAID-5, RAID-0+1, and many more combinations. RAID-1 has a few advantages for me which are:

  • Good balance with wasted disk space (50% usage)
  • Fast enough on read (reads will be balanced on both disks)
  • Solid enough to survive one disk fail (provided you monitor the RAID status and replace failed disks)

If you feel like exploring different setups, go ahead.

As i said earlier, i have been using Linux software RAID implementation for more than one decade and i have never been let down. It's solid, it's simple, it works and it's efficient. If you choose to use a commercial external RAID solution, skip the RAID part ahead. I will assume you have two external drives called /dev/sdb and /dev/sdc (/dev/sda i will assume it's the drive where Gentoo is installed). The size of the two disks is not important (i suggest the biggest ones you can afford) as well as the technology. SSDs are more silent, which is a plus for a home server, and consume less power, but they are still more expensive than traditional drives. Any way, it doesn't matter for the following.0

I will add some speed considerations: you will be streaming your media over your home network, which more than often means WiFi. A good USB-3 SSD is more than capable to keep up any data transfer requirement for any streamed media today, even 4K, so there is not need to worry that external disks or USB-3 might be a bottleneck.

Partitioning

Creating the RAID array

Then it's time to create the raid array:

> mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1

Format and mount

format it, and mount it as /data:

> mkfs.ext4 /dev/md0 > mkdir /data > mount /dev/md0 /data

/data will be the entry point for your media collection. You will also store all the temporary files and executables for the various software stack that we will be using.

Your raid needs to be automatically mounted at every boot, so you need to add a line like this to /etc/fstab:

/dev/md0 /data ext4 noatime 0 0

(the noatime option will reduce USB traffic and wear-and-tear. You might want a different filesystem maybe, do your own research)

Automate RAID at boot

You also want to automate linux raid startup:

> rc-update add mdraid boot

and, maybe, you need to ensure the md0 device doesnt change name upon reboot (it happened to me sometimes), so put this line into your /etc/mdadm.conf:

ARRAY /dev/md0 UUID=1758bcfa:67af3a42:d3df2d83:ecbb0728

where the UUID can be read by the output of the command:

> mdadm -detail /dev/md0

Using the UUID ensures that even if your USB ports get shuffled around (and it happens, specially if you unplug/replug wrong) your arrays will still boot fine.

Prepare the disk for the media collection

You need to create the individual collections entry points like:

> mkdir /data/Films > mkdir /data/Tv > mkdir /data/Music > mkdir /data/Books > mkdir /data/daemons

The last one will not contain actual media, but it will be used to store the installation (or the cache folders) for the various softwares described in this page.

You will need do change the ownership of the folders, but you can do it after you have installed the *Arr's, since that step will also create the associated users. What you can do now is at least change the group ownership to the media group:

 > chgrp media -R /data/*

Ok, all done? Go to networking setup…


Next to: Network setup

Prev to: Hardware selection

This website uses technical cookies only. No information is shared with anybody or used in any way but provide the website in your browser.

More information