mergerfs
homelab
mergerfs | homelab | |
---|---|---|
164 | 53 | |
3,881 | 7,737 | |
- | - | |
7.7 | 9.1 | |
17 days ago | 10 days ago | |
C++ | Python | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mergerfs
- Mergerfs – A Featureful Union Filesystem
-
How do I use multiple hard drives on Kubuntu for steam?
Have a look at mergerfs.
- mergerfs v2.38.0 released
-
Mergerfs and Snapraid installation
I am planning to use ubuntu server, and I would like to ask an advice: according to snapraid's download page and mergerfs' github page, it seems to be suggested to download directly their source instead of using ubuntu's package manager.
-
The Next Gen Database Servers Powering Let's Encrypt(2021)
Like most people on r/homelab, it started out with Plex. Rough timeline/services below:
0. Got a Synology DS413 with 4x WD Red 3TB drives. Use Playstation Media Server to stream videos from it. Eventually find some Busybox stuff to add various functionality to the NAS, but it had a habit of undoing them periodically, which was frustrating. I also experienced my first and (knock on wood) only drive failure during this time, which concluded without fanfare once the faulty drive was replaced, and the array repaired itself.
1. While teaching self Python as an Electrical Distribution Engineer at a utility, I befriended the IT head, who gave me an ancient (I think Nehalem? Quad-core Xeon) Dell T310. Promptly got more drives, totaling 7, and tried various OS / NAS platforms. I had OpenMediaVault for a while, but got tired of the UI fighting me when I knew how to do things in shell, so I switched to Debian (which it's based on anyway). Moved to MergerFS [0] + SnapRAID [1] for storage management, and Plex for media. I was also tinkering with various Linux stuff on it constantly.
1.1 Got tired of my tinkering breaking things and requiring troubleshooting/fixing (in retrospect, this provided excellent learning), so I installed Proxmox, reinstalled Debian, and made a golden image with everything set up as desired so I could easily revert.
1.2 A friend told me about Docker. I promptly moved Plex over to it, and probably around this time also got the *Arr Stack [2] going.
2. Got a Supermicro X9DRi-LN4F+ in a 2U chassis w/ 12x 3.5" bays. Got faster/bigger CPUs (E5-2680v2), more RAM, more drives, etc. Shifted container management to Docker Compose. Modded the BIOS to allow it to boot from a NVMe drive on a PCIe adapter.
2.1 Shifted to ZFS on Debian. Other than DKMS occasionally losing its mind during kernel upgrades, this worked well.
2.2 Forked [3] some [4] Packer/Ansible projects to suit my needs, made a VM for everything. NAS, Dev, Webserver, Docker host, etc. Other than outgrowing (IMO) MergerFS/SnapRAID, honestly at this point I could have easily stopped, and could to this day revert back to this setup. It was dead reliable and worked extremely well. IIRC I was also playing with Terraform at this time.
2.3 Successfully broke into tech (Associate SRE) as a mid-career shift, due largely (according to the hiring manager) to what I had done with my homelab. Hooray for hobbies paying off.
3. Got a single Dell R620. I think the idea was to install either pfSense or VyOS on it, but that never came to fruition. Networking was from a Unifi USG (their tiny router + firewall + switch) and 8-port switch, with some AC Pro APs.
4. Got two more R620s. Kubernetes all the things. Each one runs Proxmox in a 3-node cluster with two VMs - a control plane, and worker.
4.0.1 Perhaps worth noting here that I thoroughly tested my migration plan via spinning up some VMs in, IIRC, Digital Ocean that mimicked my home setup. I successfully ran it twice, which was good enough for me.
4.1 Played with Ceph via Rook, but a. disliked (and still to this day) running storage for everything out of K8s b. kept getting clock skew between nodes. Someone on Reddit mentioned it was my low-power C-state settings, but since that was saving me something like ~50 watts/node, I didn't want to deal with the higher power/heat. I landed on Longhorn [5] for cluster storage (i.e. anything that wasn't being handled by the ZFS pool), which was fine, but slow. SATA SSDs (used Intel enterprise drives with PLP, if you're wondering) over GBe aren't super fast, but they should be able to exceed 30 MBps.
4.1.1 Again, worth noting that I spent literally a week poring over every bit of Ceph documentation I could find, from the Red Hat stuff to random Wikis and blog posts. It's not something you just jump into, IMO, and most of the horror stories I read boiled down to "you didn't follow the recommended practices."
5. Got a newer Supermicro, an X11SSH-F, thinking that it would save power consumption over the older dual-socket I had for the NAS. It turned out to not make a big difference. For some reason I don't recall, I had a second X9DRi-LN4F+ mobo, so I sold the other one with the faster CPUs, bought some cheaper CPUs for the other one, and bought more drives for it. It's now a backup target that boots up daily to ingest ZFS snapshots. I have 100% on-site backups for everything. Important things (i.e. anything that I can't get from a torrent) are also off-site.
6. Got some Samsung PM863 NVMe SSDs mounted on PCIe adapters for the Dells, and set up Ceph, but this time handled by Proxmox. It's dead easy, and for whatever reason isn't troubled by the same clock skew issues as I had previously. Still in the process of shifting cluster storage from Longhorn, but I have been successfully using Ceph block storage as fast (1 GBe, anyway - a 10G switch is on the horizon) storage for databases.
So specifically, you asked what I do with the hardware. What I do, as far as my family is concerned, is block ads and serve media. On a more useful level, I try things out related to my job, most recently database-related (I moved from SRE to DBRE a year ago). I have MySQL and Postgres running, and am constantly playing with them. Can you actually do a live buffer pool resize in MySQL? (yes) Is XFS actually faster than ext4 for large DROP TABLE operations? (yes, but not by much) Is it faster to shut down a MySQL server and roll back to a previous ZFS snapshot than to rollback a big transaction? (often yes, although obviously a full shutdown has its own problems) Does Postgres suffer from the same write performance issue as MySQL with random PKs like UUIDv4, despite not clustering by default? (yes, but not to the same extent - still enough to matter, and you should use UUIDv7 if you absolutely need them)
I legitimately love this stuff. I could quite easily make do without a fancy enclosed rack and multiple servers, but I like them, so I have them. The fact that it tends to help my professional growth out at the same time is a bonus.
[0]: https://github.com/trapexit/mergerfs
[1]: https://www.snapraid.it
[2]: https://wiki.servarr.com
[3]: https://github.com/stephanGarland/packer-proxmox-templates
[4]: https://github.com/stephanGarland/ansible-initial-server
[5]: https://longhorn.io
- EXT4 corrupted on a Seagate Drive several times. Any help appreciated
-
Merge/Raid HDD documentation
it seems similar to mergerfs https://github.com/trapexit/mergerfs . I havent gone through any code to verify but this is what it seems like
-
Can Rclone be reliably used as a R/W cache or is there something better suited to that task?
Something else to try is mergerfs, https://github.com/trapexit/mergerfs
- Drive Spin Up
-
Looking for a solution to merge storage accross WAN
I use mergerfs for my Google drive, Dropbox and local drives to appear as a single folder structure on my server so my plex doesn't require multiple mappings.
homelab
-
Fastest way to set up an k8s environment ?
K3s is great, I use it on all of my personal clusters (here and here). It's lightweight and very easy to manage.
-
Years unemployed. Managed to get a job and barely hanging on, feeling like treading water. Able to get back on meds soon. Hope things get better.
https://github.com/khuedoan/homelab if you haven't come across it yet. To add to your bookmarks.
-
Kubernetes home lab hardware and learning resources
I have my Kubernetes homelab public on GitHub, everything is automated and defined as code. Hope it will help you get started and see what's possible.
-
Kubernetes dev homelab & NAS
So I 've got inspired by https://github.com/khuedoan/homelab and initially after lurking this sub for a while I came up with a plan to consider some of these solutions: - openmediavault as a VM to use 2x4TB /w ext4 & mergerFS or TrueNAS in RAID1 - I think mergerFS gives more options to increase storage with extra drives later, but I don't plan to hoard lots of data. Also rather opted for tiered cache via SSD to save some power but if such lot of VMs would write this would work? - nextcloud VM to easiely manage files via browser and have mobile app sync for photos with some kind of gallery plugins etc - I think this may be optional if there's other solution as nextcloud seems to not be light. Or something like Seafile would be enough? - kubernetes - k3s/microk8s single VM node or 2 VM nodes - would I need more? and so - can then openmediavault be used as a storage for it like TrueNAS? - Rancher - if used k3s - I quite liked the UI of rancher desktop, more than portainer when I tried with microk8s, but I don't pass on using something else, eg. Lens - Gitea - for hosting code - tekton / teamcity - for running tests and commit build hooks - fluxCD / argoCD - for deploying builds to kubernetes
-
Managed to get these for free!
khuedoan/homelab
-
Homelab Kubernetes demo
Here's my project (running on 4 mini PC) that I'm using for learning and self-hosting https://github.com/khuedoan/homelab, it's fully automated from empty disk to operating services.
-
How Often Do You Fully Reconfigure Your Server, Down to the Operating System?
You can checkout my repo If you'd like to do the same for your homelab (it's also modular so you can just use the OS installation part)
-
What's the Best Wiki for a Self Hosted Home Lab?
Here're the links to the Markdown source and the web view.
-
Most enterprise like homelab options for learning
You can checkout my Kubernetes homelab, it's fully automated from empty disk, very customizable and extensible.
-
Automatically install Linux on all of your servers in parallel without touching them (one command)
You can view the code here: https://github.com/khuedoan/homelab (the ./metal folder)
What are some alternatives?
OpenMediaVault - openmediavault is the next generation network attached storage (NAS) solution based on Debian Linux. Thanks to the modular design of the framework it can be enhanced via plugins. openmediavault is primarily designed to be used in home environments or small home offices.
harvester - Open source hyperconverged infrastructure (HCI) software
Greyhole - Greyhole uses Samba to create a storage pool of all your available hard drives, and allows you to create redundant copies of the files you store.
netboot.xyz - Your favorite operating systems in one place. A network-based bootable operating system installer based on iPXE.
mergerfs-tools - Optional tools to help manage data in a mergerfs pool
devops-exercises - Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions
Seaweed File System - SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding. [Moved to: https://github.com/seaweedfs/seaweedfs]
Netmaker - Netmaker makes networks with WireGuard. Netmaker automates fast, secure, and distributed virtual networks.
chia-plotter-deployment - A Bunch of Scripts to setup a Chia Farm. Focusing on, but not limited to, the MadMax Plotter, and HPool.
yunohost - YunoHost is an operating system aiming to simplify as much as possible the administration of a server. This repository corresponds to the core code, written mostly in Python and Bash.
cloudplow - Automatic rclone remote uploader, with support for multiple remote/folder pairings. UnionFS Cleaner functionality: Deletion of UnionFS whiteout files and their corresponding files on rclone remotes. Automatic remote syncer: Sync between different remotes via a Scaleway server instance, that is created and destroyed at every sync.
kubevirt - Kubernetes Virtualization API and runtime in order to define and manage virtual machines.