-
Notifications
You must be signed in to change notification settings - Fork 4
feat(node-removal): online node removal as inverse of cluster expansion #1104
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
base: main
Are you sure you want to change the base?
Changes from all commits
6fe376d
ee05e96
084fb3c
2181fad
4e6ff2b
d75b049
ef5170e
f264c3f
ea86f13
515b7fa
e5ab5db
94289eb
42d51bc
9d102ef
2902dc6
2b1f5e7
8f5cc1e
2da6fbd
60f105e
a652d44
fa97530
92dfed1
f845f43
fae68f0
dbec7f5
9a6c108
09ab387
9344d39
4fbc8b4
14036d9
4aaa7a4
87dd225
ce282b8
8521684
61afcdb
fedadb5
f13dbfc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,5 @@ | ||
| SIMPLY_BLOCK_COMMAND_NAME=sbcli-dev | ||
| SIMPLY_BLOCK_VERSION=19.2.34 | ||
|
|
||
| SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:main | ||
| SIMPLY_BLOCK_DOCKER_IMAGE=public.ecr.aws/simply-block/simplyblock:feature-node-removal | ||
| SIMPLY_BLOCK_SPDK_ULTRA_IMAGE=public.ecr.aws/simply-block/ultra:main-latest | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,6 +17,7 @@ class JobSchedule(BaseModel): | |
| FN_FAILED_DEV_MIG = "failed_device_migration" | ||
| FN_NEW_DEV_MIG = "new_device_migration" | ||
| FN_NODE_ADD = "node_add" | ||
| FN_NODE_REMOVAL = "node_removal" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should rename this to |
||
| FN_PORT_ALLOW = "port_allow" | ||
| FN_BALANCING_AFTER_NODE_RESTART = "balancing_on_restart" | ||
| FN_BALANCING_AFTER_DEV_REMOVE = "balancing_on_dev_rem" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -108,6 +108,9 @@ class JMDevice(NVMeDevice): | |
| # the per-leg member partitions. Empty for single-device (no-raid) JMs. | ||
| jm_leg_bdevs: List[str] = [] | ||
| jm_leg_members: List = [] | ||
| # When attaching this JM to a node, override the device name on that node. | ||
| # This is needed when a JM device is removed and needed to be replaced, but the name must be the same. | ||
| override_name_on_node: dict[str, str] = {} # node_id: new_name | ||
|
Comment on lines
+111
to
+113
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ideally we'd provide a single helper |
||
|
|
||
|
|
||
| class RemoteDevice(BaseModel): | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -484,6 +484,20 @@ services: | |
| environment: | ||
| SIMPLYBLOCK_LOG_LEVEL: "$LOG_LEVEL" | ||
|
|
||
| TasksNodeRemovalRunner: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should rename this to |
||
| <<: *service-base | ||
| image: $SIMPLYBLOCK_DOCKER_IMAGE | ||
| command: "python3 simplyblock_core/services/tasks_runner_node_removal.py" | ||
| deploy: | ||
| placement: | ||
| constraints: [node.role == manager] | ||
| volumes: | ||
| - "/etc/foundationdb:/etc/foundationdb" | ||
| networks: | ||
| - hostnet | ||
| environment: | ||
| SIMPLYBLOCK_LOG_LEVEL: "$LOG_LEVEL" | ||
|
|
||
| TasksRunnerClusterExpand: | ||
| <<: *service-base | ||
| image: $SIMPLYBLOCK_DOCKER_IMAGE | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -615,6 +615,7 @@ def _spawn_recovery_shutdown(node): | |
|
|
||
| def _run(): | ||
| try: | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is superfluous |
||
| storage_node_ops.shutdown_storage_node( | ||
| node_id, force=True, keep_auto_restart=True) | ||
| except Exception as e: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This must not be merged to main.