Skip to content

Commit

Permalink
Users/yegorskii/merge 23 3 (#1807)
Browse files Browse the repository at this point in the history
* add private api call to get storage service config (#1537)

* add private api call to get storage service config

* fix python style checks

* update

* use new ydb registration api (#1495)

* use new ydb regitration api

* fix headers order

* update

* fix tests

* update

* update

* update

* update

* fix include order

* better unit testing

* update

* fix cmakefiles

* refactor node registration (#1640)

* refactor node registration

* update

* update

* update

* use new ydb registration api in filestore + tests (#1661)

* use new ydb registration api in filestore + tests

* remove blank lines

* remove getting configs from cms

* update

* remove some includes

* moved registration parameters to storage config

* update

* update

* update

* update

* update

---------

Co-authored-by: yegorskii <[email protected]>

* fix build

* update

* update

* set items count limit for TTrimBytes transaction (#1647)

* set items count limit for TTrimBytes transaction

* update

* update

* update

* update

* update

* removed blank lines

* add STORAGE_VERIFY to FinishCleanup

* update

* add log tag to tfreshbytes

* more verify macroses

* add newline

---------

Co-authored-by: yegorskii <[email protected]>

* fix build

* update

* update

* update

* fix definitions order

---------

Co-authored-by: yegorskii <[email protected]>
  • Loading branch information
yegorskii and yegorskii committed Aug 19, 2024
1 parent 1fbce29 commit e125081
Show file tree
Hide file tree
Showing 63 changed files with 1,668 additions and 164 deletions.
21 changes: 16 additions & 5 deletions cloud/blockstore/libs/daemon/ydb/bootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#include <cloud/storage/core/libs/iam/iface/client.h>
#include <cloud/storage/core/libs/iam/iface/config.h>
#include <cloud/storage/core/libs/kikimr/actorsystem.h>
#include <cloud/storage/core/libs/kikimr/node_registration_settings.h>
#include <cloud/storage/core/libs/kikimr/node.h>
#include <cloud/storage/core/libs/kikimr/proxy.h>

Expand Down Expand Up @@ -216,18 +217,28 @@ void TBootstrapYdb::InitKikimrService()
Log,
PostponedCriticalEvents);

NCloud::NStorage::TNodeRegistrationSettings settings {
.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts(),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout(),
.PathToGrpcCaFile = Configs->ServerConfig->GetRootCertsFile(),
.PathToGrpcCertFile = GetCertFileFromConfig(*Configs->ServerConfig),
.PathToGrpcPrivateKeyFile = GetCertPrivateKeyFileFromConfig(
*Configs->ServerConfig),
.NodeRegistrationToken = Configs->ServerConfig->GetNodeRegistrationToken(),
.NodeType = Configs->ServerConfig->GetNodeType(),
};

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts {
.Domain = Configs->Options->Domain,
.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir(),
.NodeType = Configs->ServerConfig->GetNodeType(),
.NodeBrokerAddress = Configs->Options->NodeBrokerAddress,
.NodeBrokerPort = Configs->Options->NodeBrokerPort,
.UseNodeBrokerSsl = Configs->Options->UseNodeBrokerSsl,
.InterconnectPort = Configs->Options->InterconnectPort,
.LoadCmsConfigs = Configs->Options->LoadCmsConfigs,
.MaxAttempts = static_cast<int>(
Configs->ServerConfig->GetNodeRegistrationMaxAttempts()),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout()
.Settings = std::move(settings)
};

if (Configs->Options->LocationFile) {
Expand Down
37 changes: 23 additions & 14 deletions cloud/blockstore/libs/disk_agent/bootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -292,20 +292,29 @@ void TBootstrap::InitKikimrService()
Configs->InitDiagnosticsConfig();
Configs->InitSpdkEnvConfig();

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts;
registerOpts.Domain = Configs->Options->Domain;
registerOpts.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir();
registerOpts.NodeType = Configs->Options->NodeType;
registerOpts.NodeBrokerAddress = Configs->Options->NodeBrokerAddress;
registerOpts.NodeBrokerPort = Configs->Options->NodeBrokerPort;
registerOpts.InterconnectPort = Configs->Options->InterconnectPort;
registerOpts.LoadCmsConfigs = Configs->Options->LoadCmsConfigs;
registerOpts.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts();
registerOpts.RegistrationTimeout =
Configs->ServerConfig->GetNodeRegistrationTimeout();
registerOpts.ErrorTimeout =
Configs->ServerConfig->GetNodeRegistrationErrorTimeout();
NCloud::NStorage::TNodeRegistrationSettings settings {
.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts(),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout(),
.PathToGrpcCaFile = Configs->ServerConfig->GetRootCertsFile(),
.PathToGrpcCertFile = GetCertFileFromConfig(*Configs->ServerConfig),
.PathToGrpcPrivateKeyFile = GetCertPrivateKeyFileFromConfig(
*Configs->ServerConfig),
.NodeRegistrationToken = Configs->ServerConfig->GetNodeRegistrationToken(),
.NodeType = Configs->Options->NodeType,
};

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts {
.Domain = Configs->Options->Domain,
.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir(),
.NodeBrokerAddress = Configs->Options->NodeBrokerAddress,
.NodeBrokerPort = Configs->Options->NodeBrokerPort,
.UseNodeBrokerSsl = Configs->Options->UseNodeBrokerSsl,
.InterconnectPort = Configs->Options->InterconnectPort,
.LoadCmsConfigs = Configs->Options->LoadCmsConfigs,
.Settings = std::move(settings)
};

if (Configs->Options->LocationFile) {
NProto::TLocation location;
Expand Down
19 changes: 19 additions & 0 deletions cloud/blockstore/libs/server/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ constexpr TDuration Seconds(int s)
xxx(NbdConnectionTimeout, TDuration, Seconds(86400) )\
xxx(EndpointProxySocketPath, TString, "" )\
xxx(AllowAllRequestsViaUDS, bool, false )\
xxx(NodeRegistrationToken, TString, "root@builtin" )\
xxx(EndpointStorageNotImplementedErrorIsFatal, bool, false )\
xxx(VhostServerTimeoutAfterParentExit, TDuration, Seconds(60) )\
// BLOCKSTORE_SERVER_CONFIG
Expand Down Expand Up @@ -316,4 +317,22 @@ TServerAppConfig::DeprecatedGetRdmaClientConfig() const
return ServerConfig->GetRdmaClientConfig();
}

TString GetCertFileFromConfig(const TServerAppConfig& serverConfig)
{
const auto& certs = serverConfig.GetCerts();
if (certs.empty()) {
return serverConfig.GetCertFile();
}
return certs.front().CertFile;
}

TString GetCertPrivateKeyFileFromConfig(const TServerAppConfig& serverConfig)
{
const auto& certs = serverConfig.GetCerts();
if (certs.empty()) {
return serverConfig.GetCertPrivateKeyFile();
}
return certs.front().CertPrivateKeyFile;
}

} // namespace NCloud::NBlockStore::NServer
5 changes: 5 additions & 0 deletions cloud/blockstore/libs/server/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,9 @@ class TServerAppConfig
bool GetRdmaClientEnabled() const;
};

////////////////////////////////////////////////////////////////////////////////

TString GetCertFileFromConfig(const TServerAppConfig& serverConfig);
TString GetCertPrivateKeyFileFromConfig(const TServerAppConfig& serverConfig);

} // namespace NCloud::NBlockStore::NServer
5 changes: 5 additions & 0 deletions cloud/blockstore/libs/storage/api/volume.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ namespace NCloud::NBlockStore::NStorage {
xxx(GetVolumeInfo, __VA_ARGS__) \
xxx(UpdateVolumeParams, __VA_ARGS__) \
xxx(ChangeStorageConfig, __VA_ARGS__) \
xxx(GetStorageConfig, __VA_ARGS__) \

// BLOCKSTORE_VOLUME_REQUESTS

// requests forwarded from service to volume
Expand Down Expand Up @@ -326,6 +328,9 @@ struct TEvVolume
EvPreparePartitionMigrationRequest = EvBegin + 56,
EvPreparePartitionMigrationResponse = EvBegin + 57,

EvGetStorageConfigRequest = EvBegin + 58,
EvGetStorageConfigResponse = EvBegin + 59,

EvEnd
};

Expand Down
25 changes: 25 additions & 0 deletions cloud/blockstore/libs/storage/protos/volume.proto
Original file line number Diff line number Diff line change
Expand Up @@ -627,3 +627,28 @@ message TChangeStorageConfigResponse
// Result Storage config.
NProto.TStorageServiceConfig StorageConfig = 3;
}

////////////////////////////////////////////////////////////////////////////////
// GetStorageConfig request/response.

message TGetStorageConfigRequest
{
// Optional request headers.
THeaders Headers = 1;

// Label of volume to query its storage config. Or empty to
// query server storage config.
string DiskId = 2;
}

message TGetStorageConfigResponse
{
// Optional error, set only if error happened.
NCloud.NProto.TError Error = 1;

// Request traces.
NCloud.NProto.TTraceInfo Trace = 2;

// Result Storage config.
NProto.TStorageServiceConfig StorageConfig = 3;
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
4 changes: 4 additions & 0 deletions cloud/blockstore/libs/storage/service/service_actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ class TServiceActor final
TResultOrError<NActors::IActorPtr> CreatePartiallySuspendDiskAgentActor(
TRequestInfoPtr requestInfo,
TString input);

TResultOrError<NActors::IActorPtr> CreateGetStorageConfigActor(
TRequestInfoPtr requestInfo,
TString input);
};

////////////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ void TServiceActor::HandleExecuteAction(
{"getdiskagentnodeid", &TServiceActor::CreateGetDiskAgentNodeIdActor },
{"waitdependentdiskstoswitchnode", &TServiceActor::CreateWaitDependentDisksToSwitchNodeActor },
{"partiallysuspenddiskagent", &TServiceActor::CreatePartiallySuspendDiskAgentActor },
{"getstorageconfig", &TServiceActor::CreateGetStorageConfigActor },
};

NProto::TError error;
Expand Down
Loading

0 comments on commit e125081

Please sign in to comment.