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

doc: endpoints #2488

Merged
merged 2 commits into from
Jan 2, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions doc/blockstore/endpoints/endpoints.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Purpose

Endpoint is an abstraction for interaction with existing volumes.
StartEndpoint creates unix socket which is used for communication
between nbs server and client to configure specified device(e.g. nbd/vhost)

# GRPC API

Available methods:

---

1. ListEndpoints

* The ListEndpoints response includes the EndpointsWereRestored flag,
which indicates whether the persistent endpoints have already been restored
after restart of the blockstore server.

2. StartEndpoint

* UnixSocketPath is mandatory parameter to start new endpoint.
* Persistent flag must be specified to restore endpoint after blockstore-server restart.

3. StopEndpoint

* UnixSocketPath is used as an "endpoint id" to find the endpoint.

4. DescribeEndpoint

* UnixSocketPath is used as an "endpoint id" to find the endpoint.
* Returns the client performance profile.

5. RefreshEndpoint

* UnixSocketPath is used as an "endpoint id" to find the endpoint.
* Reconfigure the underlying device with the new volume size.
* This method is required to enable online volume resizing without the need to recreate endpoints.

6. KickEndpoint

* keyring ID is used to locate the endpoint infromation in the endpoint storage.
* Reload information about endpoint from the endpoint storage.

---

Detailed information about all parameters is available in [proto file](https://github.com/ydb-platform/nbs/blob/main/cloud/blockstore/public/api/protos/endpoints.proto)

# Restoring endpoints

NBS server restores all active persistent endpoints in case of server restart.
Information about active endpoints are stored in the file or keyring.


# Mount conflicts
It is not possible to start two different Read-Write endpoints for the same volume.
In this case StartEndpoint returns MOUNT_CONFLICT error.
Loading