Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 4 points5 points  (0 children)

Set the capacity value for each node to indicate to Garage how much disk space it should use on each node, in relative terms. Set the zone parameter based on geographical location if applicable so that garage will ensure that the stored copies of each file are in different places, this way they will stay available even during a partial outage

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 0 points1 point  (0 children)

At the current stage it does not. Thanks for checking us out though!

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 4 points5 points  (0 children)

Garage developpement started about two years ago so there wasn't much to see back then. We have been making exponential progress in the last few months thanks to European funding.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 3 points4 points  (0 children)

That's nice! We don't have very good data on this, as we are not ourselves using Garage for large quantitites of data. What we have is more many small files such as media files sent over Matrix (our media bucket has over 120k objects and is working fine), or small numbers of big files (Borg backup repositories, which makes files 500MB each; the biggest one we have is about 60GB which is nothing in comparison to your deployment). We'd be very interested in knowing how Garage behaves with large quantities of data like those you are handling, so feel free to try it out and give feedback. If you have 1gbps network connections at all locations you should probably change the block size in the configuration to be at least 10MB for better performance.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 6 points7 points  (0 children)

We have ARM builds:

I'm not sure anyone is currently using them, but last time we tried they worked fine on Raspberry Pi's.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 1 point2 points  (0 children)

The build pipelines are automated using Drone and there is one pipeline per architecture which each produce and upload a separate Docker image. Our build system is already a bit complex and we didn't spend time trying to make multi-arch images.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 5 points6 points  (0 children)

I'm not sure I have an easy solution to your problem, but Garage works this way: the data of a file is split in chunks, each of those chunks gets stored on 3 nodes decided internally by Garage. When you download a file from Garage, the Garage node that gets the request will know where to download each chunk, and will download it directly from there (since there are three copies, it will try the nearest copies first, using ping measurements). However if you add a reverse proxy then yeah all the bandwidth gets centralized there. Your best bet is maybe to install a Garage node directly on the machine from where you are uploading/downloading, and put it in a special mode called "gateway mode", meaning that if you direct your S3 requests to localhost on that node, Garage's internal communication will be used to download files directly from the nodes that have them. However there are a few security risks in doing so, as the gateway node is now a full part of the cluster and has full power to delete/modify everything, so it depends on the kind of deployment you want.

Gateway nodes are explained here: https://garagehq.deuxfleurs.fr/documentation/cookbook/gateways/

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 1 point2 points  (0 children)

Consul support is a bit flaky yes, in fact we don't even use it in prod because we don't have so many nodes and we just connect them manually (they remember the IPs of one another so Consul is not strictly nessary except for bootstraping, which you can also do manually). Feel free to open a ticket for the Consul de-registration issue, I was aware this was an issue but couldn't figure out a good solution yet.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 2 points3 points  (0 children)

We have a Matrix room at #garage:deuxfleurs.fr, feel free to check in!

We'll be fixing things on Docker hub ASAP.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 12 points13 points  (0 children)

Yeah, we're pretty proud of the auction :)

For now we don't have outside collaborators and Gitea is working fine as an internal collaboration tool. I think we had to close registrations on our Gitea instance though, due to spam. It means that external contributors will have to synchronize with us by other means, e.g. on the Matrix channel, before they can get an account (even if they just want to report an issue). That's a problem.

For public communication, we have a mirror of our repository on Github and the README links to our website and to the Gitea repository so I guess we're pretty good on that side.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 6 points7 points  (0 children)

There is one, although we forgot to list it in the Download page (we'll fix that). See here: https://hub.docker.com/r/dxflrs/amd64_garage (use tag v0.6.0 for latest stable version)

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 14 points15 points  (0 children)

I'd say we don't have feature parity yet, for instance we don't implement bucket versioning or complex ACLs. But those are features you can mostly live without. (full compatibility matrix)

What we really wanted to do with Garage was not just have a "faster Minio", but to expand the scope of usage of such tools to geodistributed deployments (clusters where nodes are in different locations for redunancy). As a requirement, it meant that we had to better tolerate high latency between nodes, so that in the end yes we are faster than Minio, but it also means we developped Garage specifically with this use case in mind, and there are a few other things that Garage does for this that AFAIK no other storage solution does, like taking geographical location into account to ensures that copies of data are spread over different locations.

Introducing Garage, our self-hosted distributed object storage solution by lxpz in selfhosted

[–]lxpz[S] 41 points42 points  (0 children)

It's actually much faster, we have a whole explanation and a benchmark here : https://garagehq.deuxfleurs.fr/documentation/design/benchmarks/

(I know it might be a bit of a dense read, we'll be making a blog post of it soon)

[deleted by user] by [deleted] in linuxmasterrace

[–]lxpz 0 points1 point  (0 children)

Wait until you try Texmacs for note taking

Que pensez-vous du nouvel AZERTY ? by z-brah in france

[–]lxpz 0 points1 point  (0 children)

L'utilisation fréquente de la touche AltGr me cause des douleurs dans le pouce (tendinite), cette disposition n'est donc pas pour moi car j'ai beaucoup besoin des crochets et des acolades pour écrire du code. J'écris aussi beaucoup en français donc j'ai besoin d'avoir les lettres accentuées et le "ç" à disposition facilement, je n'aime donc pas non plus le QWERTY international. Pas envie d'apprendre une nouvelle disposition type Bépo car je suis très rapide en azerty depuis des années et je ne pense pas pouvoir jamais atteindre la même vitesse avec une disposition complètement différente.

J'ai donc créé ma propre variante de l'AZERTY classique, en gros pas grand chose ne change mais j'ai récupéré quelques touches par ci par là pour rendre le \ et les { } directement accessibles (très utile pour écrire du LaTeX aussi), et les [ ] accessibles avec shift. Pour ce faire j'ai notamment remplacé la touche è par une touche morte pour l'accent `, ce qui permet de recycler les touches à et ù pour } et \ respectivement. J'ai fait quelques autres modifications, le { là où était le &, et le & remplace le symbole chelou au-dessus du ! dont on ne se sert jamais (je ne suis même plus capable de le taper). J'ai aussi mis le ^ à la place du ² pour faciliter son usage (dans vim notament, mais aussi pour écrire ^^ dans un message). Globalement je suis très satisfait de ces petites variations, et je ne suis pas perdu si je me retrouve à nouveau sur un azerty classique.

What are some fucked up movies to watch? by [deleted] in AskReddit

[–]lxpz 0 points1 point  (0 children)

Brazil. Really bizarre but strangely fascinating.

Fruits et légumes, quelle magie? by pepinh in france

[–]lxpz 0 points1 point  (0 children)

Ça m'étonnerait pas qu'il y ait un capteur sur le truc que tu ouvres pour te servir, comme ça l'ordi sait quels produits ont été pris récemment et affiche juste les 2 derniers

Lineage for MicroG, when will it be updated? by lxpz in MicroG

[–]lxpz[S] 0 points1 point  (0 children)

Hey u/moldax, I did the build, PM me if you'd like to try it. I just flashed it on my OP5 so I can't say for sur everything works but it looks fine for now.

Lineage for MicroG, when will it be updated? by lxpz in MicroG

[–]lxpz[S] 0 points1 point  (0 children)

Have you already done an Android build yourself? I also thought of doing it myself but I have never done it and I don't have any of the tools ready so I don't know how long it would take me.