aboutsummaryrefslogtreecommitdiff
path: root/blog
diff options
context:
space:
mode:
authorXe <me@christine.website>2021-11-28 02:09:31 +0000
committerXe <me@christine.website>2021-11-28 02:09:34 +0000
commita7b817d99dde80a7302533d37b2a73aef2fd9ed9 (patch)
tree0c9e215ca22e81bc1dc08cd7ff5463c8ed8e44db /blog
parent862060458ece44c0975356225571151be5175e2f (diff)
downloadxesite-nas-writeup.tar.xz
xesite-nas-writeup.zip
NAS writeup first draft done on streamnas-writeup
https://youtu.be/ntTibBgi_Fg Signed-off-by: Xe <me@christine.website>
Diffstat (limited to 'blog')
-rw-r--r--blog/my-homelab-nas-2021-11-29.markdown78
1 files changed, 78 insertions, 0 deletions
diff --git a/blog/my-homelab-nas-2021-11-29.markdown b/blog/my-homelab-nas-2021-11-29.markdown
new file mode 100644
index 0000000..32139b9
--- /dev/null
+++ b/blog/my-homelab-nas-2021-11-29.markdown
@@ -0,0 +1,78 @@
+---
+title: My Homelab NAS on NixOS
+date: 2021-11-29
+---
+
+Recently my husband and I built a NAS to store our Plex library among other
+things. Our home network has had an absurd abundance of slack compute laying
+around (to the point that I am almost unsure what I am going to do with it all),
+but the main thing that the network lacked was a good place to put a lot of
+data. Previously each of our towers had been kitted with 2 4TB rotational drives
+that we ended up sharing our media between. This worked out well enough, but it
+was kind of inconvenient to just use the storage. Things had to be mediated
+between Linux and Windows and it just became a whole mess.
+
+Then the biggest breaking point happened when we started to both get into
+playing roomscale VR with eachother on the internet. Most of the VR stuff works
+on Windows as its primary target, and our home Plex server was on my tower when
+it was booted into Linux. As I did more and more VR, rebooting into Linux for
+our anime nights started to become a chore. So we decided to make a NAS that
+we'd store all that stuff on as well as act as our Plex server so my tower could
+do whatever it wanted.
+
+[Pedantically, most of the VR stuff does work fine on Linux if your distro of
+choice is NOT NixOS. It is kind of annoying.](conversation://Mara/hacker)
+
+We settled on a machine we're calling `itsuki`, the 5th machine in our homelab.
+`itsuki` has a hexacore i5 10600 like the rest of the lab, but differs in the
+amount of ram at only 16 GB of ram. It is inside a Fractal Node 803 case and
+currently lives under my desk. It runs NixOS like the rest of the homelab (save
+`logos`, which runs Windows 11 and has an RTX 2060 in it for other
+experimentation), and installing it was fairly painless.
+
+`itsuki` has 4 8TB 7200 RPM drives in it, which when combined with raidz1 gives
+me effectively 20 TB of redundant storage on top of 32 TB of raw storage. I have
+a few parent datasets that I use for organizing this:
+
+* `rpool/backup` - backups from my homelab and other servers get dumped here for
+ long term storage. This dataset is due to be replicated to rsync.net.
+* `rpool/local` - machine-local storage that should not be backed up to the
+ cloud. This is mainly used for the Nix store because everything there can be
+ recomputed as needed, making backups redundant.
+* `rpool/safe` - Files that can be eligible for cloud backups and things that we
+ would rather keep than lose. Our media library is here as well as our giant
+ data folder imaginatively named `/data`. Some virtual machine disk images live
+ here too as well as `/`, `/home`, `/srv` and `/var`.
+
+[Fun fact: `itsuki` is named after the 5th quintuplet in the Nakano quintuplets
+from the anime The Quintessential Quintuplets. Itsuki's name is a pun on the
+number 5, which fits because the NAS is the 5th node in the
+homelab.](conversation://Cadey/enby)
+
+Installing NixOS was utterly painless. Using a combination of settings from the
+Arch Linux wiki (seriously wish I could get a printed copy of that thing, it's
+worth its weight in gold for how much weird arcane things you can learn from
+it), the NixOS wiki and copying things off of a Synology box's samba
+configuration file, I managed to trick everything into working and now all the
+machines on our tailnet can access the data on the NAS without too much trouble.
+Even iPhones and iPads thanks to the recent addition of SMB mounting on
+iP{hone|ad}OS. It also works over Tailscale too, so I can get into the NAS'
+files anywhere I have an internet connection.
+
+Thanks to a docker-compose manifest for Transmission shoved into a WireGuard
+network, I can also **legally acquire** certain kinds of animated media that
+aren't available in Canada and manage how much I share back over Tailscale too.
+Thanks to Tailscale's Let's Encrypt support I can also create a progressive web
+app that lets me monitor Transmission on the go and give my NAS instructions to
+**legally acquire** more of this media should I want to.
+
+I originally wanted to make this a post about how I set up NixOS and everything,
+but it wasn't actually that big of a deal to do it. It just worked first try
+once I managed to trick the uber gamer Aorus motherboard to shut up about Secure
+Boot and just let me boot off of a damn USB drive. Probably broke Windows
+booting on that thing in the process, but honestly I'd be tempted to consider
+that a security feature to protect the NAS data from Windows booting on the
+machine.
+
+This setup was boring, and honestly for the kind of thing that I was setting up,
+that's very much a good thing.