sbcli-dev 3.8.85__zip → 3.8.86__zip
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/PKG-INFO +1 -1
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/env_var +1 -1
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/PKG-INFO +1 -1
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/storage_node.py +2 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/rpc_client.py +5 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/storage_node_ops.py +50 -4
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/utils.py +21 -10
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/templates/storage_deploy_spdk.yaml.j2 +3 -3
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/README.md +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/pyproject.toml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/SOURCES.txt +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/dependency_links.txt +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/entry_points.txt +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/requires.txt +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/sbcli_dev.egg-info/top_level.txt +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/setup.cfg +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/setup.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_cli/cli.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_cli/main.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/constants.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/caching_node_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/lvol_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/kv_store.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/events.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/iface.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/pool.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/models/stats.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/cached_lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/main_distr_event_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/new_device_discovery.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/spdk_http_proxy_server.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_failed_migration.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_new_dev_migration.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_node_add.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/snode_client.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/app.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/snode_ops_k8s.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/node_utils.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/snode_app.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/snode_app_k8s.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/delete.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/static/tst.py +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/templates/caching_deploy_spdk.yaml.j2 +0 -0
- {sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_web/utils.py +0 -0
|
@@ -91,6 +91,8 @@ class StorageNode(BaseModel):
|
|
|
91
91
|
"alceml_cpu_index": {"type": int, "default": 0},
|
|
92
92
|
"alceml_worker_cpu_index": {"type": int, "default": 0},
|
|
93
93
|
"distrib_cpu_index": {"type": int, "default": 0},
|
|
94
|
+
"jc_singleton_mask": {"type": int, "default": 0},
|
|
95
|
+
|
|
94
96
|
|
|
95
97
|
"distrib_cpu_mask": {"type": str, "default": ""},
|
|
96
98
|
|
|
@@ -728,6 +728,11 @@ class RPCClient:
|
|
|
728
728
|
params = {"poll_groups_mask": poll_groups_mask}
|
|
729
729
|
return self._request("nvmf_set_config", params)
|
|
730
730
|
|
|
731
|
+
def jc_set_hint_lcpu_mask(self, jc_singleton_mask):
|
|
732
|
+
params = {"hint_lcpu_mask": int(jc_singleton_mask, 16)}
|
|
733
|
+
return self._request("jc_set_hint_lcpu_mask", params)
|
|
734
|
+
|
|
735
|
+
|
|
731
736
|
def thread_get_stats(self):
|
|
732
737
|
return self._request("thread_get_stats")
|
|
733
738
|
|
|
@@ -578,10 +578,13 @@ def _prepare_cluster_devices_partitions(snode, devices):
|
|
|
578
578
|
if not new_device:
|
|
579
579
|
logger.error("failed to create dev stack")
|
|
580
580
|
return False
|
|
581
|
-
|
|
582
|
-
|
|
581
|
+
if nvme.status == NVMeDevice.STATUS_NEW:
|
|
582
|
+
new_device.status = NVMeDevice.STATUS_NEW
|
|
583
|
+
else:
|
|
584
|
+
new_device.cluster_device_order = dev_order
|
|
585
|
+
dev_order += 1
|
|
586
|
+
device_events.device_create(new_device)
|
|
583
587
|
new_devices.append(new_device)
|
|
584
|
-
device_events.device_create(new_device)
|
|
585
588
|
|
|
586
589
|
snode.nvme_devices = new_devices
|
|
587
590
|
|
|
@@ -877,6 +880,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
877
880
|
alceml_worker_cpu_index = 0
|
|
878
881
|
distrib_cpu_index = 0
|
|
879
882
|
|
|
883
|
+
|
|
880
884
|
poller_cpu_cores = []
|
|
881
885
|
|
|
882
886
|
if not spdk_cpu_mask:
|
|
@@ -890,11 +894,13 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
890
894
|
print(f"ERROR: The provided cpu mask {spdk_cpu_mask} has values greater than 63, which is not allowed")
|
|
891
895
|
return False
|
|
892
896
|
if len(spdk_cores) >= 4:
|
|
893
|
-
app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_worker_cpu_cores, distrib_cpu_cores = utils.calculate_core_allocation(
|
|
897
|
+
app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_worker_cpu_cores, distrib_cpu_cores, jc_singleton_core = utils.calculate_core_allocation(
|
|
894
898
|
spdk_cores)
|
|
895
899
|
|
|
896
900
|
pollers_mask = utils.generate_mask(poller_cpu_cores)
|
|
897
901
|
app_thread_mask = utils.generate_mask(app_thread_core)
|
|
902
|
+
if jc_singleton_core:
|
|
903
|
+
jc_singleton_mask = utils.decimal_to_hex_power_of_2(jc_singleton_core[0])
|
|
898
904
|
#spdk_cpu_mask = utils.generate_mask(spdk_cores)
|
|
899
905
|
jm_cpu_mask = utils.generate_mask(jm_cpu_core)
|
|
900
906
|
#distrib_cpu_mask = utils.generate_mask(distrib_cpu_cores)
|
|
@@ -1057,6 +1063,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
1057
1063
|
snode.alceml_cpu_cores = alceml_cpu_cores
|
|
1058
1064
|
snode.alceml_worker_cpu_cores = alceml_worker_cpu_cores
|
|
1059
1065
|
snode.distrib_cpu_cores = distrib_cpu_cores
|
|
1066
|
+
snode.jc_singleton_mask = jc_singleton_mask or 0
|
|
1060
1067
|
|
|
1061
1068
|
snode.poller_cpu_cores = poller_cpu_cores or []
|
|
1062
1069
|
|
|
@@ -1127,6 +1134,13 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
|
1127
1134
|
logger.error("Failed to set nvme options")
|
|
1128
1135
|
return False
|
|
1129
1136
|
|
|
1137
|
+
# 7- set jc singleton mask
|
|
1138
|
+
if snode.jc_singleton_mask:
|
|
1139
|
+
ret = rpc_client.jc_set_hint_lcpu_mask(snode.jc_singleton_mask)
|
|
1140
|
+
if not ret:
|
|
1141
|
+
logger.error("Failed to set jc singleton mask")
|
|
1142
|
+
return False
|
|
1143
|
+
|
|
1130
1144
|
# get new node info after starting spdk
|
|
1131
1145
|
node_info, _ = snode_api.info()
|
|
1132
1146
|
|
|
@@ -1563,6 +1577,13 @@ def restart_storage_node(
|
|
|
1563
1577
|
logger.error("Failed to set nvme options")
|
|
1564
1578
|
return False
|
|
1565
1579
|
|
|
1580
|
+
# 7- set jc singleton mask
|
|
1581
|
+
if snode.jc_singleton_mask:
|
|
1582
|
+
ret = rpc_client.jc_set_hint_lcpu_mask(snode.jc_singleton_mask)
|
|
1583
|
+
if not ret:
|
|
1584
|
+
logger.error("Failed to set jc singleton mask")
|
|
1585
|
+
return False
|
|
1586
|
+
|
|
1566
1587
|
node_info, _ = snode_api.info()
|
|
1567
1588
|
nvme_devs = addNvmeDevices(snode, node_info['spdk_pcie_list'])
|
|
1568
1589
|
if not nvme_devs:
|
|
@@ -2500,6 +2521,31 @@ def recreate_lvstore(snode):
|
|
|
2500
2521
|
return True
|
|
2501
2522
|
|
|
2502
2523
|
|
|
2524
|
+
def get_next_ha_jm_names(current_node):
|
|
2525
|
+
db_controller = DBController(KVStore())
|
|
2526
|
+
jm_list = []
|
|
2527
|
+
if current_node.jm_device:
|
|
2528
|
+
jm_list.append(current_node.jm_device.jm_bdev)
|
|
2529
|
+
else:
|
|
2530
|
+
jm_list.append("JM_LOCAL")
|
|
2531
|
+
|
|
2532
|
+
jm_count = {}
|
|
2533
|
+
for node in db_controller.get_storage_nodes_by_cluster_id(current_node.cluster_id):
|
|
2534
|
+
if node.get_id() == current_node.get_id() or node.status != StorageNode.STATUS_ONLINE:
|
|
2535
|
+
continue
|
|
2536
|
+
if node.jm_device:
|
|
2537
|
+
jm_count[node.jm_device.jm_bdev] = 1 + jm_count.get(node.jm_device.jm_bdev, 0)
|
|
2538
|
+
for rem_jm_device in node.remote_jm_devices:
|
|
2539
|
+
jm_count[rem_jm_device.jm_bdev] = 1 + jm_count.get(rem_jm_device.jm_bdev, 0)
|
|
2540
|
+
|
|
2541
|
+
jm_count = dict(sorted(jm_count.items(), key=lambda x: x[1]))
|
|
2542
|
+
|
|
2543
|
+
jm_list.append(f"remote_{list(jm_count.keys())[0].jm_bdev}n1")
|
|
2544
|
+
jm_list.append(f"remote_{list(jm_count.keys())[1].jm_bdev}n1")
|
|
2545
|
+
|
|
2546
|
+
return jm_list
|
|
2547
|
+
|
|
2548
|
+
|
|
2503
2549
|
def create_lvstore(snode, ndcs, npcs, distr_bs, distr_chunk_bs, page_size_in_blocks, max_size, nodes):
|
|
2504
2550
|
lvstore_stack = []
|
|
2505
2551
|
distrib_list = []
|
|
@@ -350,59 +350,67 @@ def calculate_core_allocation(cpu_cores):
|
|
|
350
350
|
if len(cpu_cores) == 23:
|
|
351
351
|
app_thread_core = [cpu_cores[pos - 1] for pos in [16]]
|
|
352
352
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [17, 22]]
|
|
353
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [6, 7, 8, 14, 15, 18, 19, 20
|
|
353
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [6, 7, 8, 14, 15, 18, 19, 20]]
|
|
354
354
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2, 3]]
|
|
355
355
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [13, 21]]
|
|
356
356
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 9, 10, 11, 12]]
|
|
357
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [23]]
|
|
357
358
|
elif len(cpu_cores) == 21:
|
|
358
359
|
app_thread_core = [cpu_cores[pos - 1] for pos in [14]]
|
|
359
360
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [15, 21]]
|
|
360
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 7, 13, 16, 17
|
|
361
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 7, 13, 16, 17]]
|
|
361
362
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
|
|
362
363
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [12, 20]]
|
|
363
364
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 8, 9, 10, 11, 19]]
|
|
365
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [18]]
|
|
364
366
|
elif len(cpu_cores) == 19:
|
|
365
367
|
app_thread_core = [cpu_cores[pos - 1] for pos in [13]]
|
|
366
368
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [14]]
|
|
367
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 7, 12, 15, 16
|
|
369
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 7, 12, 15, 16]]
|
|
368
370
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
|
|
369
371
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [11, 19]]
|
|
370
372
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 8, 9, 10, 18]]
|
|
373
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [17]]
|
|
371
374
|
elif len(cpu_cores) == 17:
|
|
372
375
|
app_thread_core = [cpu_cores[pos - 1] for pos in [12]]
|
|
373
376
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [13]]
|
|
374
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 11, 14
|
|
377
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [4, 5, 6, 11, 14]]
|
|
375
378
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
|
|
376
379
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [10]]
|
|
377
380
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 7, 8, 9, 16, 17]]
|
|
381
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [15]]
|
|
378
382
|
elif len(cpu_cores) == 15:
|
|
379
383
|
app_thread_core = [cpu_cores[pos - 1] for pos in [11]]
|
|
380
384
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [12]]
|
|
381
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 10, 13
|
|
385
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [5, 6, 10, 13]]
|
|
382
386
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1, 2]]
|
|
383
387
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [9]]
|
|
384
388
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 7, 8, 15]]
|
|
389
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [14]]
|
|
385
390
|
elif len(cpu_cores) == 13:
|
|
386
391
|
app_thread_core = [cpu_cores[pos - 1] for pos in [9]]
|
|
387
392
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [10]]
|
|
388
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 5, 11
|
|
393
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 5, 11]]
|
|
389
394
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
390
395
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [8]]
|
|
391
396
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 6, 7, 13]]
|
|
397
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [12]]
|
|
392
398
|
elif len(cpu_cores) == 11:
|
|
393
399
|
app_thread_core = [cpu_cores[pos - 1] for pos in [8]]
|
|
394
400
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [9]]
|
|
395
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 10
|
|
401
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4, 10]]
|
|
396
402
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
397
403
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [7]]
|
|
398
404
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 5, 6]]
|
|
405
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [11]]
|
|
399
406
|
elif len(cpu_cores) == 9:
|
|
400
407
|
app_thread_core = [cpu_cores[pos - 1] for pos in [7]]
|
|
401
408
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [8]]
|
|
402
|
-
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4
|
|
409
|
+
poller_cpu_cores = [cpu_cores[pos - 1] for pos in [3, 4]]
|
|
403
410
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
404
411
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [4, 9]]
|
|
405
412
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 5, 6]]
|
|
413
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [7]]
|
|
406
414
|
elif len(cpu_cores) == 7:
|
|
407
415
|
app_thread_core = [cpu_cores[pos - 1] for pos in [6]]
|
|
408
416
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [7]]
|
|
@@ -410,6 +418,7 @@ def calculate_core_allocation(cpu_cores):
|
|
|
410
418
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
411
419
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
412
420
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 4]]
|
|
421
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [6]]
|
|
413
422
|
elif len(cpu_cores) == 5:
|
|
414
423
|
app_thread_core = [cpu_cores[pos - 1] for pos in [5]]
|
|
415
424
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [4]]
|
|
@@ -417,6 +426,7 @@ def calculate_core_allocation(cpu_cores):
|
|
|
417
426
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
418
427
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
419
428
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 3]]
|
|
429
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [5]]
|
|
420
430
|
elif len(cpu_cores) == 4:
|
|
421
431
|
app_thread_core = [cpu_cores[pos - 1] for pos in [4]]
|
|
422
432
|
jm_cpu_core = [cpu_cores[pos - 1] for pos in [4]]
|
|
@@ -424,10 +434,11 @@ def calculate_core_allocation(cpu_cores):
|
|
|
424
434
|
alceml_cpu_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
425
435
|
alceml_cpu_worker_cores = [cpu_cores[pos - 1] for pos in [1]]
|
|
426
436
|
distrib_cpu_cores = [cpu_cores[pos - 1] for pos in [2, 3]]
|
|
437
|
+
jc_singleton_core = [cpu_cores[pos - 1] for pos in [4]]
|
|
427
438
|
else:
|
|
428
|
-
app_thread_core = jm_cpu_core = poller_cpu_cores = alceml_cpu_cores = alceml_cpu_worker_cores = distrib_cpu_cores = []
|
|
439
|
+
app_thread_core = jm_cpu_core = poller_cpu_cores = alceml_cpu_cores = alceml_cpu_worker_cores = distrib_cpu_cores = jc_singleton_core = []
|
|
429
440
|
|
|
430
|
-
return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_cpu_worker_cores, distrib_cpu_cores
|
|
441
|
+
return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, alceml_cpu_worker_cores, distrib_cpu_cores, jc_singleton_core
|
|
431
442
|
|
|
432
443
|
|
|
433
444
|
def generate_mask(cores):
|
|
@@ -89,10 +89,10 @@ spec:
|
|
|
89
89
|
mountPath: /script
|
|
90
90
|
resources:
|
|
91
91
|
limits:
|
|
92
|
-
hugepages-2Mi:
|
|
93
|
-
memory:
|
|
92
|
+
hugepages-2Mi: 20Gi
|
|
93
|
+
memory: 10Gi
|
|
94
94
|
requests:
|
|
95
|
-
memory:
|
|
95
|
+
memory: 10Gi
|
|
96
96
|
|
|
97
97
|
- name: spdk-proxy-container
|
|
98
98
|
image: {{ SIMPLYBLOCK_DOCKER_IMAGE }}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/controllers/caching_node_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/clean_local_storage_deploy.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/dashboards/node-exporter.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/cached_lvol_stat_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/capacity_and_stats_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/main_distr_event_collector.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_failed_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
{sbcli_dev-3.8.85 → sbcli_dev-3.8.86}/simplyblock_core/services/tasks_runner_new_dev_migration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|