schoebel / mars

Asynchronous Block-Level Storage Replication
GNU General Public License v2.0
233 stars 35 forks source link

Proposing MARS to upstream #24

Open OSevangelist opened 4 years ago

OSevangelist commented 4 years ago

Hi @schoebel while migrating an old Proxmox Installation with DRDB 8.4 to a six years newer Proxmox release (6.2) for one of our SME clients and after having almost entirely grey hair on finding a reasonable solution with DRBD 9 and Proxmox 6 i all of a sudden passed by your repository and work on MARS.

Great work and absolutely amazing that it runs that big workloads over at 1&1 production servers. Even if we finally decided to go with DRBD 9 in our current case, MARS seems to be exactly the use case one would search for if he runs HA nodes that are distributed in broader distributed networks without direct GBit connections. However, one major showstopper to me always is if there is no reliably addressable source of recompiled binary packages (officially package repository or PPA) but "only" a properly described way to compile it your own.

Now to my question: Wouldn't it be of pretty high importance also for 1&1 to get the entire work upstream and maintained within the scope of the ordinary kernel update processes? Did you or you team mattes ever attempt pushing or say proposing your work upstream ? I know that this would probably fail at the first attempt and having the restively few adopters it has by now, but looking at the technology and the architecture itself that would make a whole lot of sense to me technology-wise and it seems to fill a reasonable gab between lowlevel local technologies as DRBD and higher level distributed software defined storages with CEPH.

Unfortunately at my company we are not really working in the core C development of the Kernel and also lack expertise and seriously large workloads that would make up a good test bed for your technology, but still i wanted to just post my admiration for you having pulled this off. Great job and hope to see that merged to mainline one day! I hope your employer admires your work as well at gives you freedom trying to propose it upstream.

Best Frederik

schoebel commented 4 years ago

Hi Frederik,

much of your question is answered by my last presentation at LCA 2020 (the Kernel Miniconf presentation, not the Sysadmin Miniconf one) this spring, immediately before Corona made travel to Australia / NZ impossible. AFAIK the videos from both my presentations are in the LCA archives, and on Youtube. Look for the right presentation about kernel upstreaming.

Yes, I can fully understand your point. It is even on my 1&1-internal roadmap, but so far many other high-workload tasks are taking precendence all the time, and I am alone (one-man-show). Pretty much a similar situation to your company.

What you or others could do in the meantime: create and maintain rpm and dpkg packages for the major Linux distributions, e.g. in the OBS or similar systems (I don't have time for such tasks). This would be appreciated by many people I know. AFAIK up to now nobody has invested the time to maintain both a pre-patched kernel and a MARS module package (or both in a single package, which would be easier to install).

I hope to get the time for kernel upstreaming some day.

Cheers,

Thomas

fgbreel commented 4 years ago

Hi @schoebel

I found the mars project while looking at the https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770247 page and since I was quite bored due to the pandemic I took some time to learn how to package kernel modules via dkms using git-buildpackage.

In case it might be useful, the code is available at https://github.com/fgbreel/mars/tree/debian/sid/debian

I didn't tested actually using mars with a volume, loading the kernel fails probably because my kernel doesn't has the export symbol patches applied.

Building and installing works well with debian/sid running the debian oldstable kernel 4.9, there are still missing important details such as packaging userspace bins, man pages, watch, etc, but I guess it is a good starting point.

Best, Gabriel Francisco

schoebel commented 4 years ago

Hi Gabriel,

thank you very much!

I just merged your code into the upcoming mars0.1astable115.

Please feel free to send me more updates.

I would be very glad if you (or somebody else) could provide a pre-patched kernel as a package, so that dkms would become really useful.

Without prepatch, the performance is lousy. It might even distract intested people. So the prepatch is very important.

In case there is some place where people could easily download pre-packaged Distro packages, please send me the URLs for inclusion into mars-user-manual.pdf (or directly send me patches for the .lyx file).

Many thanks for your highly welcome help.

Thomas

FelixSchwarz commented 3 years ago

Maybe this thread can be used to gather information regarding upstreaming as this is likely an interesting topic to many potential users:

Previous submissions to LKML:

I think the first review comments from 2014 should give most developers a rough idea what kind of changes (spoiler: pretty fundamental changes) are necessary to get an acceptable upstream solution.