User Tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sailing:storagesetup [2023/11/28 19:58] – created willysailing:storagesetup [2024/02/06 15:25] (current) – removed willy
Line 1: Line 1:
-===== Storage Setup ===== 
- 
-Storage 
- 
-As for storage, i don't like low-cost commercial external RAID solutions and i dont want to spend for a high-end commercial RAID option, i prefer to leverage Linux built-in software raid tools which have worked like a charm for me in the last 15/20 years: rock solid, never lost data and quite fast. So i have purchased an external USB-3 hard-drive enclosure that support JBOD mode (just a Bunch Of Disks) to avoid being tied to some random RAID implementation, you will be using Linux mdraid inerface anyway. I have populated them with big enough hard drives (in fact, SSDs, the biggest i could afford by saving on the rest) that will become a RAID-1 array (now, i am over-simplyfiing here, you can go RAID-10, RAID-0+1, more than one RAID-1... even RAID-5 i guess). I go with RAID-1 because it is the simplest option that will preserve the media collection when (and it will!) one hard drive fail. I will add a speed consideration: 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. 
- 
-Let's assume we have /dev/sdb and /dev/sdc as your external disks. You need to partition the two disks and create one single Linux RAID partition on each of them, i will not detail here the specific commands as they are outside the scope of this guide. 
- 
-Then it's time to create the raid array: 
- 
- > mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 
- 
-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) 
- 
-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. 
- 
-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. 
- 
- 
----- 
-Next to: [[sailing:networksetup|sailing:networksetup]] 
- 
-Prev to: [[sailing:hwossetup|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