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.
Files changed (140) hide show
  1. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/PKG-INFO +1 -1
  2. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/env_var +1 -1
  3. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/PKG-INFO +1 -1
  4. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_cli/cli.py +4 -1
  5. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/caching_node_controller.py +23 -21
  6. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/lvol_controller.py +1 -1
  7. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/caching_node.py +1 -0
  8. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_caching_node.py +5 -1
  9. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/README.md +0 -0
  10. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/pyproject.toml +0 -0
  11. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/SOURCES.txt +0 -0
  12. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/dependency_links.txt +0 -0
  13. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/entry_points.txt +0 -0
  14. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/requires.txt +0 -0
  15. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/sbcli_pre.egg-info/top_level.txt +0 -0
  16. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/setup.cfg +0 -0
  17. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/setup.py +0 -0
  18. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_cli/main.py +0 -0
  19. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/__init__.py +0 -0
  20. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/cluster_ops.py +0 -0
  21. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/cnode_client.py +0 -0
  22. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/compute_node_ops.py +0 -0
  23. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/constants.py +0 -0
  24. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/__init__.py +0 -0
  25. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/cluster_events.py +0 -0
  26. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/device_controller.py +0 -0
  27. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/device_events.py +0 -0
  28. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/events_controller.py +0 -0
  29. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/health_controller.py +0 -0
  30. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/lvol_events.py +0 -0
  31. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/mgmt_events.py +0 -0
  32. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/pool_controller.py +0 -0
  33. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/pool_events.py +0 -0
  34. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/snapshot_controller.py +0 -0
  35. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/snapshot_events.py +0 -0
  36. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/storage_events.py +0 -0
  37. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/tasks_controller.py +0 -0
  38. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/controllers/tasks_events.py +0 -0
  39. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/distr_controller.py +0 -0
  40. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/kv_store.py +0 -0
  41. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/mgmt_node_ops.py +0 -0
  42. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/__init__.py +0 -0
  43. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/base_model.py +0 -0
  44. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/cluster.py +0 -0
  45. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/compute_node.py +0 -0
  46. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/deployer.py +0 -0
  47. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/events.py +0 -0
  48. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/global_settings.py +0 -0
  49. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/iface.py +0 -0
  50. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/job_schedule.py +0 -0
  51. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/lvol_model.py +0 -0
  52. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/mgmt_node.py +0 -0
  53. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/nvme_device.py +0 -0
  54. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/pool.py +0 -0
  55. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/port_stat.py +0 -0
  56. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/snapshot.py +0 -0
  57. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/stats.py +0 -0
  58. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/models/storage_node.py +0 -0
  59. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/pci_utils.py +0 -0
  60. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/rpc_client.py +0 -0
  61. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/__init__.py +0 -0
  62. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
  63. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
  64. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
  65. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/config_docker.sh +0 -0
  66. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboard.yml +0 -0
  67. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
  68. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/devices.json +0 -0
  69. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
  70. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
  71. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
  72. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/dashboards/pools.json +0 -0
  73. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/datasource.yml +0 -0
  74. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/db_config_double.sh +0 -0
  75. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/db_config_single.sh +0 -0
  76. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/deploy_stack.sh +0 -0
  77. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
  78. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
  79. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/haproxy.cfg +0 -0
  80. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/install_deps.sh +0 -0
  81. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/objstore.yml +0 -0
  82. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/prometheus.yml +0 -0
  83. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/run_ssh.sh +0 -0
  84. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/set_db_config.sh +0 -0
  85. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
  86. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/__init__.py +0 -0
  87. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/caching_node_monitor.py +0 -0
  88. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/cap_monitor.py +0 -0
  89. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
  90. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/device_monitor.py +0 -0
  91. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/distr_event_collector.py +0 -0
  92. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/health_check_service.py +0 -0
  93. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/install_service.sh +0 -0
  94. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/log_agg_service.py +0 -0
  95. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/lvol_monitor.py +0 -0
  96. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/lvol_stat_collector.py +0 -0
  97. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
  98. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/port_stat_collector.py +0 -0
  99. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/remove_service.sh +0 -0
  100. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/service_template.service +0 -0
  101. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/storage_node_monitor.py +0 -0
  102. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/tasks_runner_migration.py +0 -0
  103. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/services/tasks_runner_restart.py +0 -0
  104. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/shell_utils.py +0 -0
  105. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/snode_client.py +0 -0
  106. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/storage_node_ops.py +0 -0
  107. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_core/utils.py +0 -0
  108. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/__init__.py +0 -0
  109. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/app.py +0 -0
  110. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/auth_middleware.py +0 -0
  111. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/__init__.py +0 -0
  112. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/caching_node_ops.py +0 -0
  113. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/caching_node_ops_k8s.py +0 -0
  114. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_basic.py +0 -0
  115. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
  116. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
  117. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/snode_ops.py +0 -0
  118. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
  119. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
  120. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_device.py +0 -0
  121. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
  122. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
  123. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_pool.py +0 -0
  124. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
  125. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
  126. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/caching_node_app.py +0 -0
  127. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/caching_node_app_k8s.py +0 -0
  128. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/node_utils.py +0 -0
  129. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/node_webapp.py +0 -0
  130. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/snode_app.py +0 -0
  131. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/delete.py +0 -0
  132. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy.py +0 -0
  133. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy_cnode.yaml +0 -0
  134. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/deploy_spdk.yaml +0 -0
  135. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/is_up.py +0 -0
  136. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/list_deps.py +0 -0
  137. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/rpac.yaml +0 -0
  138. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/static/tst.py +0 -0
  139. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
  140. {sbcli_pre-1.4.1 → sbcli_pre-1.4.3}/simplyblock_web/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.4.1
3
+ Version: 1.4.3
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -1,5 +1,5 @@
1
1
  SIMPLY_BLOCK_COMMAND_NAME=sbcli-pre
2
- SIMPLY_BLOCK_VERSION=1.4.1
2
+ SIMPLY_BLOCK_VERSION=1.4.3
3
3
 
4
4
 
5
5
  SIMPLY_BLOCK_DOCKER_IMAGE=simplyblock/simplyblock:pre-release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: sbcli-pre
3
- Version: 1.4.1
3
+ Version: 1.4.3
4
4
  Summary: CLI for managing SimplyBlock cluster
5
5
  Home-page: https://www.simplyblock.io/
6
6
  Author: Hamdy
@@ -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
- # snode.hugepages = node_info['hugepages']
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
- # logger.info(f"Hugepages Total: {utils.humanbytes(memory_details['huge_total'])}")
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
- # logger.info(f"Hugepages Free: {utils.humanbytes(huge_free)}")
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['free']
151
+ spdk_mem = memory_details['huge_free']
152
152
 
153
- logger.info(f"Trying to set hugepages for: {utils.humanbytes(spdk_mem)}")
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 mem < 1024*1024:
199
+ if spdk_mem < 1024*1024:
199
200
  logger.error("Hugepages must be larger than 1G")
200
201
  return False
201
202
 
202
- mem = int(mem*constants.CACHING_NODE_MEMORY_FACTOR)
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
- snode = db_controller.get_storage_node_by_id(lvol.node_id)
420
- for nic in snode.data_nics:
421
- ip = nic.ip4_address
422
- ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
423
- break
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
@@ -90,6 +90,7 @@ class CachingNode(BaseModel):
90
90
  "cpu_hz": {"type": int, "default": 0},
91
91
  "memory": {"type": int, "default": 0},
92
92
  "hugepages": {"type": int, "default": 0},
93
+ "multipathing": {"type": bool, "default": True},
93
94
 
94
95
  }
95
96
 
@@ -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