sbcli-pre 1.4.1__zip → 1.4.3__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_pre-1.4.1 → sbcli_pre-1.4.3}/PKG-INFO +1 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/env_var +1 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/PKG-INFO +1 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_cli/cli.py +4 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/caching_node_controller.py +23 -21
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/lvol_controller.py +1 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/caching_node.py +1 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_caching_node.py +5 -1
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/README.md +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/pyproject.toml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/SOURCES.txt +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/setup.cfg +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/setup.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_cli/main.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/cluster_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/constants.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/device_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/snapshot_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/kv_store.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/events.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/iface.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/pool.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/stats.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/storage_node.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/rpc_client.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboard.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/db_config_single.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/install_deps.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/objstore.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/snode_client.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/storage_node_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/utils.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/app.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/node_utils.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/snode_app.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/delete.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/tst.py +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
- {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/utils.py +0 -0
@@ -585,6 +585,8 @@ class CLIWrapper:
|
|
585
585
|
sub_command.add_argument("--memory", help='SPDK huge memory allocation, default is Max hugepages available', dest='spdk_mem')
|
586
586
|
sub_command.add_argument("--spdk-image", help='SPDK image uri', dest='spdk_image')
|
587
587
|
sub_command.add_argument("--namespace", help='k8s namespace to deploy on',)
|
588
|
+
sub_command.add_argument("--multipathing", help='Enable multipathing for lvol connection, default: True',
|
589
|
+
type=bool, default=True)
|
588
590
|
|
589
591
|
self.add_sub_command(subparser, 'list', 'List Caching nodes')
|
590
592
|
|
@@ -1067,6 +1069,7 @@ class CLIWrapper:
|
|
1067
1069
|
data_nics = []
|
1068
1070
|
spdk_image = args.spdk_image
|
1069
1071
|
namespace = args.namespace
|
1072
|
+
multipathing = args.multipathing
|
1070
1073
|
|
1071
1074
|
spdk_cpu_mask = None
|
1072
1075
|
if args.spdk_cpu_mask:
|
@@ -1082,7 +1085,7 @@ class CLIWrapper:
|
|
1082
1085
|
return f"SPDK memory:{args.spdk_mem} must be larger than 1G"
|
1083
1086
|
|
1084
1087
|
ret = caching_node_controller.add_node(
|
1085
|
-
cluster_id, node_ip, ifname, data_nics, spdk_cpu_mask, spdk_mem, spdk_image, namespace)
|
1088
|
+
cluster_id, node_ip, ifname, data_nics, spdk_cpu_mask, spdk_mem, spdk_image, namespace, multipathing)
|
1086
1089
|
|
1087
1090
|
if sub_command == "list":
|
1088
1091
|
#cluster_id
|
@@ -74,7 +74,7 @@ def addNvmeDevices(cluster, rpc_client, devs, snode):
|
|
74
74
|
return devices
|
75
75
|
|
76
76
|
|
77
|
-
def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image=None, namespace=None):
|
77
|
+
def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image=None, namespace=None, multipathing=True):
|
78
78
|
db_controller = DBController()
|
79
79
|
kv_store = db_controller.kv_store
|
80
80
|
|
@@ -134,24 +134,23 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
134
134
|
snode.cpu = node_info['cpu_count']
|
135
135
|
snode.cpu_hz = node_info['cpu_hz']
|
136
136
|
snode.memory = node_info['memory']
|
137
|
-
|
137
|
+
snode.multipathing = multipathing
|
138
138
|
|
139
139
|
# check for memory
|
140
140
|
if "memory_details" in node_info and node_info['memory_details']:
|
141
141
|
memory_details = node_info['memory_details']
|
142
142
|
logger.info("Node Memory info")
|
143
|
-
logger.info(f"Total: {utils.humanbytes(memory_details['total'])}")
|
144
|
-
logger.info(f"Free: {utils.humanbytes(memory_details['free'])}")
|
145
|
-
|
143
|
+
logger.info(f"RAM Total: {utils.humanbytes(memory_details['total'])}")
|
144
|
+
logger.info(f"RAM Free: {utils.humanbytes(memory_details['free'])}")
|
145
|
+
logger.info(f"HP Total: {utils.humanbytes(memory_details['huge_total'])}")
|
146
146
|
# huge_free = memory_details['huge_free']
|
147
|
-
|
147
|
+
logger.info(f"HP Free: {utils.humanbytes(memory_details['huge_free'])}")
|
148
148
|
# if huge_free < 1 * 1024 * 1024:
|
149
149
|
# logger.warning(f"Free hugepages are less than 1G: {utils.humanbytes(huge_free)}")
|
150
150
|
if not spdk_mem:
|
151
|
-
spdk_mem = memory_details['
|
151
|
+
spdk_mem = memory_details['huge_free']
|
152
152
|
|
153
|
-
logger.info(f"
|
154
|
-
logger.info("Deploying SPDK")
|
153
|
+
logger.info(f"Deploying SPDK with HP: {utils.humanbytes(spdk_mem)}")
|
155
154
|
results, err = snode_api.spdk_process_start(
|
156
155
|
spdk_cpu_mask, spdk_mem, spdk_image, snode.mgmt_ip,
|
157
156
|
snode.rpc_port, snode.rpc_username, snode.rpc_password, namespace)
|
@@ -174,16 +173,18 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
174
173
|
logger.error("Pod is not running, exiting")
|
175
174
|
return False
|
176
175
|
|
176
|
+
time.sleep(10)
|
177
|
+
|
177
178
|
# creating RPCClient instance
|
178
179
|
rpc_client = RPCClient(
|
179
180
|
snode.mgmt_ip, snode.rpc_port,
|
180
181
|
snode.rpc_username, snode.rpc_password,
|
181
182
|
timeout=60*5, retry=5)
|
182
183
|
|
183
|
-
# get new node info after starting spdk
|
184
|
-
node_info, _ = snode_api.info()
|
185
|
-
mem = node_info['memory_details']['huge_free']
|
186
|
-
logger.info(f"Free Hugepages detected: {utils.humanbytes(mem)}")
|
184
|
+
# # get new node info after starting spdk
|
185
|
+
# node_info, _ = snode_api.info()
|
186
|
+
# mem = node_info['memory_details']['huge_free']
|
187
|
+
# logger.info(f"Free Hugepages detected: {utils.humanbytes(mem)}")
|
187
188
|
|
188
189
|
# adding devices
|
189
190
|
nvme_devs = addNvmeDevices(cluster, rpc_client, node_info['spdk_pcie_list'], snode)
|
@@ -195,16 +196,16 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spd
|
|
195
196
|
snode.write_to_db(db_controller.kv_store)
|
196
197
|
ssd_dev = nvme_devs[0]
|
197
198
|
|
198
|
-
if
|
199
|
+
if spdk_mem < 1024*1024:
|
199
200
|
logger.error("Hugepages must be larger than 1G")
|
200
201
|
return False
|
201
202
|
|
202
|
-
mem =
|
203
|
+
mem = spdk_mem - 1024*1024
|
203
204
|
snode.hugepages = mem
|
204
205
|
logger.info(f"Hugepages to be used: {utils.humanbytes(mem)}")
|
205
206
|
|
206
207
|
ssd_size = ssd_dev.size
|
207
|
-
supported_ssd_size = mem * 100 / 2
|
208
|
+
supported_ssd_size = mem * 100 / 2.25
|
208
209
|
split_factor = math.ceil(ssd_size/supported_ssd_size)
|
209
210
|
|
210
211
|
logger.info(f"Supported SSD size: {utils.humanbytes(supported_ssd_size)}")
|
@@ -416,11 +417,12 @@ def connect(caching_node_id, lvol_id):
|
|
416
417
|
logger.error("Failed to connect to local subsystem")
|
417
418
|
return False
|
418
419
|
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
420
|
+
if cnode.multipathing:
|
421
|
+
snode = db_controller.get_storage_node_by_id(lvol.node_id)
|
422
|
+
for nic in snode.data_nics:
|
423
|
+
ip = nic.ip4_address
|
424
|
+
ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
|
425
|
+
break
|
424
426
|
|
425
427
|
time.sleep(5)
|
426
428
|
cnode_info, _ = cnode_client.info()
|
@@ -611,7 +611,7 @@ def add_lvol_ha(name, size, host_id_or_name, ha_type, pool_id_or_name, use_comp,
|
|
611
611
|
lvol.npcs = distr_npcs
|
612
612
|
lvol.distr_bs = distr_bs
|
613
613
|
lvol.distr_chunk_bs = distr_chunk_bs
|
614
|
-
lvol.distr_page_size = cl.page_size_in_blocks
|
614
|
+
lvol.distr_page_size = (distr_npcs+distr_npcs)*cl.page_size_in_blocks
|
615
615
|
|
616
616
|
lvol.base_bdev = f"distr_{lvol.vuid}_{name}"
|
617
617
|
lvol.top_bdev = lvol.base_bdev
|
@@ -36,6 +36,7 @@ def add_node_to_cluster():
|
|
36
36
|
spdk_mem = None
|
37
37
|
spdk_image = None
|
38
38
|
namespace = None
|
39
|
+
multipathing = True
|
39
40
|
|
40
41
|
if 'spdk_cpu_mask' in cl_data:
|
41
42
|
spdk_cpu_mask = cl_data['spdk_cpu_mask']
|
@@ -52,9 +53,12 @@ def add_node_to_cluster():
|
|
52
53
|
if 'namespace' in cl_data:
|
53
54
|
namespace = cl_data['namespace']
|
54
55
|
|
56
|
+
if 'multipathing' in cl_data:
|
57
|
+
multipathing = bool(cl_data['multipathing'])
|
58
|
+
|
55
59
|
t = threading.Thread(
|
56
60
|
target=caching_node_controller.add_node,
|
57
|
-
args=(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image, namespace))
|
61
|
+
args=(cluster_id, node_ip, iface_name, data_nics_list, spdk_cpu_mask, spdk_mem, spdk_image, namespace, multipathing))
|
58
62
|
t.start()
|
59
63
|
|
60
64
|
return utils.get_response(True)
|
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
|
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_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2
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
|
{sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/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
|
File without changes
|
File without changes
|
{sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/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
|
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
|
File without changes
|
File without changes
|
File without changes
|