author: Chris Noxz <firstname.lastname@example.org>
date: Tue, 28 Jun 2022 10:56:07 +0200
add new article about changing NAS setup
5 files changed, 95 insertions(+)
diff --git a/noxz.tech/articles/index.www b/noxz.tech/articles/index.www
@@ -4,6 +4,14 @@ Articles
+.URL "moving_from_my_hacked_readynas_to_a_raspberry_pi" \
+"Moving from my hacked ReadyNAS to a Raspberry Pi"
+.B "Chris Noxz"
.URL "simple_way_to_filter_email" "Simple way to filter email"
diff --git a/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.assemble b/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.assemble
@@ -0,0 +1,2 @@
diff --git a/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.buildignore b/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/.buildignore
diff --git a/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/disk.png b/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/disk.png
diff --git a/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/index.www b/noxz.tech/articles/moving_from_my_hacked_readynas_to_a_raspberry_pi/index.www
@@ -0,0 +1,85 @@
+Moving from my hacked ReadyNAS to a Raspberry Pi
+.B "Chris Noxz"
+I used to have a hacked/rooted RNRX4000 (ReadyNAS 2100) in which I had replaced
+the original operating system with VoidLinux, having the boot partition on the
+integrated flash memory (100MB). Due to it being noisy and power-consuming, I
+wanted to replace it and found the solution in Argon40’s Argon EON, in which a
+Raspberry Pi is meant to manage SATA-drives connected to it over USB3.
+My initial plan was to use a ZFS setup on the Pi, but I quickly realized that
+this would be a problem. Specifically, ZFS is incompatible with the latest
+kernel version of the Raspberry Pi OS. I could, of course, have
+chosen another distribution with an older kernel version, or have locked the
+release of the kernel in the packet manager. But having this issue early on
+with the knowledge of being forced to manage kernel releases manually and at
+the same time being aware of security concerns of not running updated kernels
+made me think of other solutions.
+So, why not run a simple
+solution using the kernel module
+for detection and mitigation of bit rot? Sounds simple, right? No! Every
+distribution for Raspberry Pi I looked at lacked any support for
+out of the box. So, it was either back to manual kernel management, including
+compiling with support for
+.I dm-integrity ,
+or find another solution.
+I think I have found a good enough solution. By using
+for raid and redundancy together with internal and external backup using
+.ICD borg ,
+I had a pretty solid solution for disk failure and historical archiving. I only
+lacked a solution for bit rot protection.
+So, I did what I usually do and implemented my own solution instead. With the
+inspiration of the corruption detecting program
+and its previous C-reimplemented alternative
+(now implemented in Go), I wrote
+.ICD acst ,
+.I "Actual C-implementation of a Simple shaTag" .
+Well, it's not really an implementation of
+as I have chosen some alternative ways of implementing it. But it is simple and
+written in C, so there is that.
+The idea is to have
+running on a scheduled basis, making sure to compute checksums of each and
+every file on the NAS and, at the same time, detect any change or corruption to
+the actual data. If any such corruption is detected, I can use
+to verify the corruption and, at the same time, ideally, restore the
+non-corrupted version of the file in question.
+I also stumbled upon another problem as I had created and successfully
+assembled and mounted the raid system using
+.ICD mdadm .
+When restarting the NAS, one of the disks would never assemble. After some
+time, too much time in fact, I realised that the disk was too slow to be
+initialized before the operating system tried to assemble the raid set. The
+simple solution to this problem was to add a 5 second delay when booting using
+file. I just appended
+at the end of the command line for booting Linux and \(em voilà \(em both
+disks were now assembling correctly.
+This is the story of me moving from a noisy and power hungry ReadyNAS to an
+arm-based Raspberry Pi, while at the same time writing the code for
+.URL //noxz.tech/software/acst acst .