DIY Cloud backup 2022 update

Update to the DIY Cloud backup project
2022 update!

In 2017 I built a DIY cloud backup solution (which you can find documented here). This has been running every since but somewhere end of 2021 I decided the used hardware could use a little update.

I’ve been trying to do a video series of basically a re-imagining of the project but I’m having a hard time following it through!

With this post video part 4 (and 5) are going to be released and we are finally heading towards the end of the project!

Below will be article parts to accompany the videos since especially code is easier copy & pasted then having to read and type it from a video!

Part 4 – Install Minio S3 Storage Server

Synopsis of storage setup

It’s explained in detail in the video by the slimmed down version of it is that we’re running Promox as the operating system giving us access to ZFS. We’re using a zRAID2 to have the ability to tolerate 2 drive failures without losing data! Then we’re also using the ZFS system to have the ability to create multiple ZFS datasets combined with settings we can set per dataset such as quotas, etc.

This dataset is the most important part that otherwise isn’t really possible within Minion itself. Yes Minio has gotten many more options over the years and now also partly has the same functionality but the clue here is multi-tenancy. When I get someone a 1TB or 2TB account, I don’t care how many users they want to share that with, how the divide it, amount of users they create, etc. etc.. They can do that all on their own because they each have their own installation of the software and “partitioned” off dataset within ZFS. This way lots of users can use the same server without being able to influence the other users on there.

Hopefully that explains the software stack I’ve chosen and the reasoning behind it!

Used Commands

Creating user “minio”

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

adduser minio
5x blank enter
Y

Creating ZFS dataset on pool

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

In this tutorial our pool is called “HDDmirror” please use whatever name you have called your storage pool!

cd /
cd HDDmirror
zfs create HDDmirror/minio
zfs create HDDmirror/minio/quindor
zfs set quota=100G HDDmirror/minio/quindor
chown -R minio:minio /HDDmirror/minio

Installing the minio application

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

cd /opt
mkdir minio
chown minio:minio minio
cd minio
su minio

wget https://dl.min.io/server/minio/release/linux-amd64/minio

chmod +x minio
ls -l

Test start of minio binary

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

In this part we are still assuming the role as the “minio” user since we never exited above!

MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /HDDmirror/minio/quindor

The URL this command shows is linked to the IP the machine you are working on has, generally it’s port 9001 for the management interface.

The user: admin, the password: password.

Creating a bucket

Please follow the video!

Creating a startup file

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

exit (become root again)
cd /etc/systemd/system
nano minio.quindor.service

Service file details

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/opt/minio/minio

[Service]
WorkingDirectory=/HDDmirror/minio/quindor

User=minio
Group=minio
ProtectProc=invisible

Environmentfile=/HDDmirror/minio/quindor/minio.env
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES

Restart=always
LimitNOFLE=65536
TasksMax=infinity
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy-multi-user.target

Creating the minio environment file

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

nano /HDDmirror/minio/quindor/minio.env
---

MINIO_OPTS="--address :9000 --console-address :9001"
MINIO_ROOT_USER=minioadmin
MINIO_ROOT_PASSWORD=password
MINIO_VOLUMES="/HDDmirror/minio/quindor"

Starting the minio.quindor.service service

(This tutorial assumes you are logged in as the root user otherwise you will need to use “sudo” to execute certain commands!)

systemctl daemon-reload
systemctl start minio.quindor.service
systemctl status minio.quindor.service

 

 

 

 

 

 

Lots of External HDD on a single Power Supply

Sometimes you accumulate a lot of equipment in one spot that all runs on 12v. This can for instance be a rack with multiple switches and routers or, as in my case, 15 External Hard Drives, a USB HUB and some fans that all need 12v. To cut down on the clutter, let’s take out the 18 Adapters to run this and replace them with a single power supply.

Continue reading Lots of External HDD on a single Power Supply

Chia farming info post

I’ve recently started farming Chia using a lot of harddisk space. To me it’s the ultimate system administrators crypto coin since it doesn’t use GPUs and there is a lot involved getting it to run quickly and correctly! This post will serve as an accompanying posts to my videos about the subject.

Continue reading Chia farming info post

4$ Xiaomi Temperature Sensor for Home Assistant

This article is a kind of follow-up on the one I did originally in 2019. ESPhome has improved a lot over time and now there are these 4$ Xiaomi temperature and humidity sensors that can be hacked and then work in the same way. The absolute best way to get per room temperature sensing into Home Assistant in my opinion!

Continue reading 4$ Xiaomi Temperature Sensor for Home Assistant

The video doorbell that does Home Assistant + NVR

I have been searching for a while to replace my current video doorbell solution. Integration with Home Assistant and my NVR software where key in this search. Things like ethernet and POE would be a great bonus. I think I’ve found it so let’s take a look!

Continue reading The video doorbell that does Home Assistant + NVR

Innodisk 3TG6-P 2TB SSD Review

I was in need for some 2.5″ storage for an upcoming project and while looking around I wondered if 2.5″ SSDs has approached the price of physical disks. And while close, even QLC SSDs where still much more expensive. But on ebay I was able to find new 2TB SSDs for around 150$, still more expensive then spinning disk but interesting enough to try it out anyway, let’s see how well they perform! Continue reading Innodisk 3TG6-P 2TB SSD Review

IP camera ethernet water damage, how to repair

As some of you know, I have some IP cameras in my backyard. One of them went offline recently and didn’t come back online. Upon inspecting the connection point between the camera ethernet connector and the patch cable had completely fried because of water damage. Can this Dahua camera still be revived? Let’s replace the ethernet connector and see if it still works!

Continue reading IP camera ethernet water damage, how to repair

Seagate IronWolf 10TB Firmware Fix (CRC errors with ZFS)

I’ve been using Seagate IronWolf disks for a few years now and currently have about 20 in service, most of those are the 10TB (and 12TB) Non-Pro (ST10000VN0004) variety. Most of my experience with them has been great so when the new server build came along I bought a few more to run as my main ZFS pool. Sadly, things didn’t go exactly as planned, but I think I was also able to fix it, so let’s see what happened!

Continue reading Seagate IronWolf 10TB Firmware Fix (CRC errors with ZFS)

My personal blog for pasting random (mostly technology related) things out of my head on (virtual) paper