Microsoft Azure offers a bunch of interesting RESTful protocols, providing access to objects (Block Blobs, similar to S3 Objects), disk images (Page Blobs) and file systems (Azure Files). The underlying services seem to map pretty closely to RADOS, RBD and CephFS respectively, so adding support for these protocols to Ceph, despite being a lot of work, should be relatively straightforward.

I've already worked on implementing a C client for these protocols via Elasto, so it might be worth reusing the same code in implementing the server functionality atop the public librados / librbd / libcephfs libraries. The other option would be to use civetweb/rgw, which is already embedded within Ceph for S3/SWIFT gateway support.

Looking for hackers with the skills:

ceph http rest azure c

This project is part of:

Hack Week 16

Activity

  • almost 8 years ago: dmdiss added keyword "c" to this project.
  • almost 8 years ago: dmdiss added keyword "ceph" to this project.
  • almost 8 years ago: dmdiss added keyword "http" to this project.
  • almost 8 years ago: dmdiss added keyword "rest" to this project.
  • almost 8 years ago: dmdiss added keyword "azure" to this project.
  • almost 8 years ago: dmdiss originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources


    Provide personal account sign-in for Himmelblau (Azure Entra Id) by dmulder

    Description

    Himmelblau currently does not support personal account sign-in, but only sign-in for business/school accounts. Adding personal account sign-in would broaden the userbase, and potentially attract more users to Linux from Windows (since they could easily migrate their existing Windows account, etc).

    Goals

    Implement personal account sign-in for libhimmelblau.

    Resources

    gitlab.com/samba-team/libhimmelblau


    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources