Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Other storage backends? #179

Closed
the-maldridge opened this issue Mar 17, 2021 · 9 comments
Closed

Other storage backends? #179

the-maldridge opened this issue Mar 17, 2021 · 9 comments
Assignees
Labels
feature New feature or request

Comments

@the-maldridge
Copy link

Right now it looks like Zot is a fantastic registry if I want to run it on a single machine. I'm particularly drawn to the LDAP support even though my preferred authentication only speaks LDAP by proxy. What I don't see is a way to run zot horizontally available. Is there no way to run Zot on top of a remote object store or similar option with nonlocal storage?

@rchincha
Copy link
Contributor

@the-maldridge thanks for looking at zot.

As long as remote storage can be locally mounted (eg., [1], [2], [3]), zot can be configured to serve from that mount point. Yes, we don't support ability to manage multiple mount points yet.

About horizontal scaling, from our experience, the network becomes a bottleneck far quicker than CPU and memory and we are thinking about addressing clustering [4] with this in mind.

[1] https://github.com/s3fs-fuse/s3fs-fuse
[2] https://azure.microsoft.com/en-us/services/storage/files/
[3] https://docs.ceph.com/en/latest/man/8/mount.ceph/
[4] #125

@the-maldridge
Copy link
Author

Thanks for the speedy reply. I was most concerned with doing any mountpoints that don't support full POSIX abstraction based on the deduplication via hardlinks, which I don't think work quite right on some of the fuse drivers I use regularly.

I'll keep an eye on #125.

@rchincha
Copy link
Contributor

@the-maldridge pls take a look at: https://github.com/anuvu/zot/releases/tag/v1.2.0
It is an interim solution until we have full clustering (although we consider both complementary)

@the-maldridge
Copy link
Author

I must admit its not super clear what I'm looking at. Can you post a bit more detail about what changed or where I can find more documentation?

@rchincha
Copy link
Contributor

rchincha commented May 21, 2021

I must admit its not super clear what I'm looking at. Can you post a bit more detail about what changed or where I can find more documentation?

To summarize: "Serve multiple storage paths (and backends) using a single zot server"

Perhaps best explained with an example config:
https://github.com/anuvu/zot/blob/master/examples/config-multiple.json

Basically, with this release, it is now possible to store images in multiple mounts/backends each with their own GC and dedupe policies but serve them in a unified way.

Hope this makes it clearer.

@rchincha
Copy link
Contributor

rchincha commented May 21, 2021

Just to add:

Your storage can now be one or more of these:

  1. Local storage
  2. Traditional remote storage such as NFS and CIFS
  3. Cloud storage such as AWS S3 [1], Azure BlobStorage [2]

References:
[1] s3-fuse
[2] azure-storage-fuse

@rchincha rchincha added the feature New feature or request label May 23, 2021
@rchincha
Copy link
Contributor

@the-maldridge would love to hear your feedback, if and when you are able to try this feature out.

@the-maldridge
Copy link
Author

the-maldridge commented May 24, 2021 via email

@rchincha
Copy link
Contributor

rchincha commented Nov 16, 2021

We are making some progress with PR #216. Planning to add support for other vendors as well.
The original proposal of using fuse drivers still holds valid. PR #216 allows us to avoid fuse drivers altogether which is useful when running in containers without privileges (bind mounting /dev/fuse needs SYS_ADMIN capabilities)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants