Adds NFS support#574
Conversation
UtkarshBhatthere
left a comment
There was a problem hiding this comment.
first round of reviews: some comments and questions. Thanks @claudiubelu!
|
d71e52f to
265c88c
Compare
|
@UtkarshBhatthere Any updates? Can you review please? |
|
@gboutry I will do a detailed review today |
Enabling a second daemon (on a multinode microceph cluster fails)Node 1Node 2Database Dump |
1eee56c to
71b1359
Compare
Adds the following packages to the microceph snap: - nfs-ganesha - nfs-ganesha-ceph - nfs-ganesha-rados-grace Adds nfs-ganesha startup script. Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
Adds the service_groups and grouped_services database tables.
Adds the "services/nfs" API endpoint (PUT / DELETE).
The NFS service can now be enabled on a host. When enabled, microceph
will configure the nfs-ganesha service, and will create related ceph
client, rados pools (".nfs", ".nfs.metadata"), add the node to the
Shared Grace Management Database, and add the service to the
service_groups and grouped_services database as needed.
Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
Adds the following commands: - microceph enable nfs --cluster-id <cluster-id> [--bind-address <ip-address>] [--port <port-num>] [--v4-min-version 0/1/2] [--target <server>] [--wait <bool>] - microceph disable nfs --cluster-id <cluster-id> [--target <server>] The commands will use the "services/nfs" API endpoint. Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
The test will create a single node microceph cluster, enable nfs, create a NFS FS and export, mount it, and create a file on the mount. Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
The test will create a multinode microceph cluster, enable nfs, create a NFS FS and export it, mount it, and create a file on the mount. Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
Signed-off-by: utkarsh bhatt <utkarsh.bhatt@canonical.com>
|
UtkarshBhatthere
left a comment
There was a problem hiding this comment.
lgtm. thanks @claudiubelu
sabaini
left a comment
There was a problem hiding this comment.
Thanks @claudiubelu ! Added some commentary
Added functional tests (single node and multinode). Will add documentation.
Added more logging, and reverts to
Wasn't sure how you envisioned this to be reported exactly, but I see you've added a commit for that, and now it reports
Done, now the service name is
Resolved, added another functional test for the multinode scenario. It passes. |
sabaini
left a comment
There was a problem hiding this comment.
Thanks @claudiubelu!
We will need docs for this too but from a functionality perspective this looks good.
Signed-off-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
Added the documentation update here #583, so we can discuss any changes needed to it there, so we can proceed with merging this. |
|
Thanks for the amazing contribution @claudiubelu 🚀 |
Description
Adds support for enabling NFS clusters in microceph.
Adds the following commands:
microceph enable nfs --cluster-id <cluster-id> [--bind-address <ip-address>] [--port <port-num>] [--v4-min-version 0/1/2] [--target <server>] [--wait <bool>]microceph disable nfs --cluster-id <cluster-id> [--target <server>]Adds the
services/nfsAPI endpoint (PUT/DELETE).Adds the following tables:
service_groups: used to track microceph service clusters.grouped_services: used to track clustered services running on a particular server.Added dependencies in the snap:
nfs-ganeshanfs-ganesha-cephnfs-ganesha-rados-graceType of change
How has this been tested?
Note
All functional changes should accompany corresponding tests (unit tests, functional tests, etc.).
Please describe the addition/modification of tests done to verify this change. Also list any
relevant details for your test configuration.
Contributor checklist
Please check that you have: