sbcli-pre 1.2.13__zip → 1.3.0__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.2.13 → sbcli_pre-1.3.0}/PKG-INFO +1 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/env_var +1 -2
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/PKG-INFO +1 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/cluster_ops.py +2 -2
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/constants.py +3 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/caching_node_controller.py +9 -3
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/device_controller.py +10 -3
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/lvol_controller.py +2 -2
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/snapshot_controller.py +2 -2
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/kv_store.py +3 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/storage_node.py +6 -3
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/rpc_client.py +9 -9
- sbcli_pre-1.3.0/simplyblock_core/scripts/db_config_single.sh +2 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/install_deps.sh +1 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/storage_node_ops.py +54 -20
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/utils.py +26 -22
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/caching_node_ops.py +6 -2
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/caching_node_ops_k8s.py +3 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/node_utils.py +4 -0
- sbcli_pre-1.2.13/simplyblock_core/scripts/db_config_single.sh +0 -1
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/README.md +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/pyproject.toml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/SOURCES.txt +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/dependency_links.txt +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/entry_points.txt +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/requires.txt +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/sbcli_pre.egg-info/top_level.txt +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/setup.cfg +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/setup.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_cli/cli.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_cli/main.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/cnode_client.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/compute_node_ops.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/cluster_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/device_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/events_controller.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/health_controller.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/lvol_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/mgmt_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/pool_controller.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/pool_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/snapshot_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/storage_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/tasks_controller.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/tasks_events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/distr_controller.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/mgmt_node_ops.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/base_model.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/caching_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/cluster.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/compute_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/deployer.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/events.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/global_settings.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/iface.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/job_schedule.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/lvol_model.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/mgmt_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/nvme_device.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/pool.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/port_stat.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/snapshot.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/models/stats.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/pci_utils.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/alerting/alert_resources.yaml.j2 +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/alerting/alert_rules.yaml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/clean_local_storage_deploy.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/config_docker.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/cluster.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/devices.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/lvols.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/node-exporter.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/nodes.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/dashboards/pools.json +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/datasource.yml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/db_config_double.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/deploy_stack.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/docker-compose-swarm-monitoring.yml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/docker-compose-swarm.yml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/haproxy.cfg +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/prometheus.yml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/run_ssh.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/set_db_config.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/scripts/stack_deploy_wait.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/caching_node_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/cap_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/capacity_and_stats_collector.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/device_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/distr_event_collector.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/health_check_service.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/install_service.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/log_agg_service.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/lvol_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/lvol_stat_collector.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/mgmt_node_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/port_stat_collector.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/remove_service.sh +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/service_template.service +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/storage_node_monitor.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/tasks_runner_migration.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/services/tasks_runner_restart.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/shell_utils.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/snode_client.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/app.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/auth_middleware.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/__init__.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_basic.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_caching_docker.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/node_api_caching_ks.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/snode_ops.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_caching_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_cluster.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_deployer.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_device.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_lvol.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_mgmt_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_pool.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_snapshot.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/blueprints/web_api_storage_node.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/caching_node_app.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/caching_node_app_k8s.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/node_webapp.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/snode_app.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/delete.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy_cnode.yaml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/deploy_spdk.yaml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/is_up.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/list_deps.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/rpac.yaml +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/static/tst.py +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/templates/deploy_spdk.yaml.j2 +0 -0
- {sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_web/utils.py +0 -0
@@ -15,7 +15,7 @@ from jinja2 import Environment, FileSystemLoader
|
|
15
15
|
|
16
16
|
from simplyblock_core import utils, scripts, constants, mgmt_node_ops, storage_node_ops
|
17
17
|
from simplyblock_core.controllers import cluster_events, device_controller
|
18
|
-
from simplyblock_core.kv_store import DBController
|
18
|
+
from simplyblock_core.kv_store import DBController, KVStore
|
19
19
|
from simplyblock_core.models.cluster import Cluster
|
20
20
|
from simplyblock_core.models.nvme_device import NVMeDevice
|
21
21
|
from simplyblock_core.models.storage_node import StorageNode
|
@@ -107,7 +107,6 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
|
|
107
107
|
except Exception as e:
|
108
108
|
print(e)
|
109
109
|
|
110
|
-
db_controller = DBController()
|
111
110
|
if not cli_pass:
|
112
111
|
cli_pass = utils.generate_string(10)
|
113
112
|
|
@@ -181,6 +180,7 @@ def create_cluster(blk_size, page_size_in_blocks, cli_pass,
|
|
181
180
|
c.status = Cluster.STATUS_ACTIVE
|
182
181
|
|
183
182
|
c.updated_at = int(time.time())
|
183
|
+
db_controller = DBController(KVStore())
|
184
184
|
c.write_to_db(db_controller.kv_store)
|
185
185
|
|
186
186
|
cluster_events.cluster_create(c)
|
@@ -53,11 +53,13 @@ GRAYLOG_CHECK_INTERVAL_SEC = 60
|
|
53
53
|
FDB_CHECK_INTERVAL_SEC = 60
|
54
54
|
|
55
55
|
SIMPLY_BLOCK_DOCKER_IMAGE = "simplyblock/simplyblock:pre-release"
|
56
|
-
|
56
|
+
SIMPLY_BLOCK_DOCKER_IMAGE_ARM64 = "simplyblock/simplyblock:main-arm64"
|
57
|
+
SIMPLY_BLOCK_CLI_NAME = "sbcli-dev"
|
57
58
|
TASK_EXEC_INTERVAL_SEC = 30
|
58
59
|
TASK_EXEC_RETRY_COUNT = 8
|
59
60
|
|
60
61
|
SIMPLY_BLOCK_SPDK_CORE_IMAGE = "simplyblock/spdk-core:latest"
|
62
|
+
SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64 = "simplyblock/spdk-core:latest-arm64"
|
61
63
|
SIMPLY_BLOCK_SPDK_ULTRA_IMAGE = "simplyblock/spdk:prerelease-latest"
|
62
64
|
|
63
65
|
GELF_PORT = 12201
|
{sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/simplyblock_core/controllers/caching_node_controller.py
RENAMED
@@ -422,6 +422,7 @@ def connect(caching_node_id, lvol_id):
|
|
422
422
|
ret, _ = cnode_client.connect_nvme(ip, "4420", subsystem_nqn)
|
423
423
|
break
|
424
424
|
|
425
|
+
time.sleep(5)
|
425
426
|
cnode_info, _ = cnode_client.info()
|
426
427
|
nvme_devs = cnode_info['nvme_devices']
|
427
428
|
dev_path = None
|
@@ -566,8 +567,11 @@ def deploy(ifname):
|
|
566
567
|
time.sleep(2)
|
567
568
|
|
568
569
|
logger.info("Creating CachingNodeAPI container")
|
570
|
+
cont_image = constants.SIMPLY_BLOCK_DOCKER_IMAGE
|
571
|
+
if utils.get_host_arch() == "aarch64":
|
572
|
+
cont_image = constants.SIMPLY_BLOCK_DOCKER_IMAGE_ARM64
|
569
573
|
container = node_docker.containers.run(
|
570
|
-
|
574
|
+
cont_image,
|
571
575
|
"python simplyblock_web/caching_node_app.py",
|
572
576
|
detach=True,
|
573
577
|
privileged=True,
|
@@ -586,8 +590,10 @@ def deploy(ifname):
|
|
586
590
|
]
|
587
591
|
)
|
588
592
|
logger.info("Pulling SPDK images")
|
589
|
-
|
590
|
-
|
593
|
+
spdk_core = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
|
594
|
+
if utils.get_host_arch() == "aarch64":
|
595
|
+
spdk_core = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
|
596
|
+
node_docker.images.pull(spdk_core)
|
591
597
|
return f"{dev_ip}:5000"
|
592
598
|
|
593
599
|
|
@@ -111,8 +111,15 @@ def _def_create_device_stack(device_obj, snode, force=False):
|
|
111
111
|
alceml_id = device_obj.get_id()
|
112
112
|
alceml_name = get_alceml_name(alceml_id)
|
113
113
|
logger.info(f"adding {alceml_name}")
|
114
|
-
|
115
|
-
|
114
|
+
|
115
|
+
if snode.alceml_cpu_cores:
|
116
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
117
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=2,
|
118
|
+
alceml_cpu_mask=alceml_cpu_mask)
|
119
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
120
|
+
else:
|
121
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=2)
|
122
|
+
|
116
123
|
if not ret:
|
117
124
|
logger.error(f"Failed to create alceml bdev: {alceml_name}")
|
118
125
|
if not force:
|
@@ -150,7 +157,7 @@ def _def_create_device_stack(device_obj, snode, force=False):
|
|
150
157
|
|
151
158
|
if hasattr(device_obj, 'jm_bdev') and device_obj.jm_bdev:
|
152
159
|
ret = rpc_client.bdev_jm_create(device_obj.jm_bdev, device_obj.alceml_bdev,
|
153
|
-
|
160
|
+
jm_cpu_mask=snode.jm_cpu_mask)
|
154
161
|
if not ret:
|
155
162
|
logger.error(f"Failed to create jm bdev: {device_obj.jm_bdev}")
|
156
163
|
if not force:
|
@@ -265,7 +265,7 @@ def add_lvol(name, size, host_id_or_name, pool_id_or_name, use_comp, use_crypto,
|
|
265
265
|
|
266
266
|
# name, vuid, ndcs, npcs, num_blocks, block_size, alloc_names
|
267
267
|
ret = rpc_client.bdev_distrib_create(f"distr_{name}", vuid, distr_ndcs, distr_npcs, num_blocks, distr_bs, jm_names,
|
268
|
-
distr_chunk_bs,
|
268
|
+
distr_chunk_bs, distrib_cpu_mask=snode.distrib_cpu_mask)
|
269
269
|
bdev_stack.append({"type": "distr", "name": f"distr_{name}"})
|
270
270
|
if not ret:
|
271
271
|
logger.error("failed to create Distr bdev")
|
@@ -772,7 +772,7 @@ def _create_bdev_stack(lvol, snode, ha_comm_addrs, ha_inode_self):
|
|
772
772
|
params['jm_names'] = get_jm_names(snode)
|
773
773
|
params['ha_comm_addrs'] = ha_comm_addrs
|
774
774
|
params['ha_inode_self'] = ha_inode_self
|
775
|
-
params['
|
775
|
+
params['distrib_cpu_mask'] = snode.distrib_cpu_mask
|
776
776
|
ret = rpc_client.bdev_distrib_create(**params)
|
777
777
|
if ret:
|
778
778
|
ret = distr_controller.send_cluster_map_to_node(snode)
|
@@ -66,7 +66,7 @@ def add(lvol_id, snapshot_name):
|
|
66
66
|
ret = rpc_client.bdev_distrib_create(
|
67
67
|
base_name, new_vuid, lvol.ndcs, lvol.npcs, num_blocks,
|
68
68
|
lvol.distr_bs, lvol_controller.get_jm_names(snode), lvol.distr_chunk_bs,
|
69
|
-
None, None, lvol.distr_page_size,
|
69
|
+
None, None, lvol.distr_page_size, distrib_cpu_mask=snode.distrib_cpu_mask)
|
70
70
|
if not ret:
|
71
71
|
logger.error("Failed to create Distr bdev")
|
72
72
|
return False, "Failed to create Distr bdev"
|
@@ -260,7 +260,7 @@ def clone(snapshot_id, clone_name, new_size=0):
|
|
260
260
|
ret = rpc_client.bdev_distrib_create(
|
261
261
|
name, new_vuid, lvol.ndcs, lvol.npcs, num_blocks,
|
262
262
|
lvol.distr_bs, jm_names, lvol.distr_chunk_bs, None, None, lvol.distr_page_size,
|
263
|
-
|
263
|
+
distrib_cpu_mask=snode.distrib_cpu_mask)
|
264
264
|
if not ret:
|
265
265
|
msg="Failed to create Distr bdev"
|
266
266
|
logger.error(msg)
|
@@ -186,7 +186,9 @@ class DBController:
|
|
186
186
|
for pool in self.get_pools(cluster_id):
|
187
187
|
if pool.cluster_id == cluster_id:
|
188
188
|
for lv_id in pool.lvols:
|
189
|
-
|
189
|
+
lv = self.get_lvol_by_id(lv_id)
|
190
|
+
if lv:
|
191
|
+
lvols.append(lv)
|
190
192
|
else:
|
191
193
|
lvols = LVol().read_from_db(self.kv_store)
|
192
194
|
return lvols
|
@@ -75,9 +75,12 @@ class StorageNode(BaseModel):
|
|
75
75
|
"spdk_cpu_mask": {"type": str, "default": ""},
|
76
76
|
"app_thread_mask": {"type": str, "default": ""},
|
77
77
|
"pollers_mask": {"type": str, "default": ""},
|
78
|
-
"
|
79
|
-
"
|
80
|
-
"
|
78
|
+
"poller_cpu_cores": {"type": str, "default": ""},
|
79
|
+
"jm_cpu_mask": {"type": str, "default": ""},
|
80
|
+
"alceml_cpu_cores": {"type": List[int], "default": []},
|
81
|
+
"alceml_cpu_index": {"type": int, "default": 0},
|
82
|
+
"distrib_cpu_mask": {"type": str, "default": ""},
|
83
|
+
|
81
84
|
"spdk_mem": {"type": int, "default": 0},
|
82
85
|
"spdk_image": {"type": str, "default": ""},
|
83
86
|
"spdk_debug": {"type": bool, "default": False},
|
@@ -319,7 +319,7 @@ class RPCClient:
|
|
319
319
|
return self._request2("ultra21_bdev_pass_delete", params)
|
320
320
|
|
321
321
|
def bdev_alceml_create(self, alceml_name, nvme_name, uuid, pba_init_mode=3,
|
322
|
-
|
322
|
+
alceml_cpu_mask=""):
|
323
323
|
params = {
|
324
324
|
"name": alceml_name,
|
325
325
|
"cntr_path": nvme_name,
|
@@ -335,13 +335,13 @@ class RPCClient:
|
|
335
335
|
"use_optimized": True,
|
336
336
|
"pba_nbalign": 4096
|
337
337
|
}
|
338
|
-
if
|
339
|
-
params["bdb_lcpu_mask"] = int(
|
338
|
+
if alceml_cpu_mask:
|
339
|
+
params["bdb_lcpu_mask"] = int(alceml_cpu_mask, 16)
|
340
340
|
return self._request("bdev_alceml_create", params)
|
341
341
|
|
342
342
|
def bdev_distrib_create(self, name, vuid, ndcs, npcs, num_blocks, block_size, jm_names,
|
343
343
|
chunk_size, ha_comm_addrs=None, ha_inode_self=None, pba_page_size=2097152,
|
344
|
-
|
344
|
+
distrib_cpu_mask=""):
|
345
345
|
""""
|
346
346
|
// Optional (not specified = no HA)
|
347
347
|
// Comma-separated communication addresses, for each node, e.g. "192.168.10.1:45001,192.168.10.1:32768".
|
@@ -367,8 +367,8 @@ class RPCClient:
|
|
367
367
|
if ha_comm_addrs:
|
368
368
|
params['ha_comm_addrs'] = ha_comm_addrs
|
369
369
|
params['ha_inode_self'] = ha_inode_self
|
370
|
-
if
|
371
|
-
params["bdb_lcpu_mask"] = int(
|
370
|
+
if distrib_cpu_mask:
|
371
|
+
params["bdb_lcpu_mask"] = int(distrib_cpu_mask, 16)
|
372
372
|
|
373
373
|
return self._request("bdev_distrib_create", params)
|
374
374
|
|
@@ -601,14 +601,14 @@ class RPCClient:
|
|
601
601
|
}
|
602
602
|
return self._request("ultra21_lvol_dismount", params)
|
603
603
|
|
604
|
-
def bdev_jm_create(self, name, name_storage1, block_size=4096,
|
604
|
+
def bdev_jm_create(self, name, name_storage1, block_size=4096, jm_cpu_mask=""):
|
605
605
|
params = {
|
606
606
|
"name": name,
|
607
607
|
"name_storage1": name_storage1,
|
608
608
|
"block_size": block_size
|
609
609
|
}
|
610
|
-
if
|
611
|
-
params["bdb_lcpu_mask"] = int(
|
610
|
+
if jm_cpu_mask:
|
611
|
+
params["bdb_lcpu_mask"] = int(jm_cpu_mask, 16)
|
612
612
|
return self._request("bdev_jm_create", params)
|
613
613
|
|
614
614
|
def bdev_jm_delete(self, name):
|
@@ -15,7 +15,7 @@ sudo yum install hostname pkg-config git wget python3-pip yum-utils docker-ce do
|
|
15
15
|
sudo systemctl enable docker
|
16
16
|
sudo systemctl start docker
|
17
17
|
|
18
|
-
sudo docker plugin install rexray/efs --grant-all-permissions EFS_TAG=$INSTANCE_ID REXRAY_PREEMPT=true
|
18
|
+
#sudo docker plugin install rexray/efs --grant-all-permissions EFS_TAG=$INSTANCE_ID REXRAY_PREEMPT=true
|
19
19
|
|
20
20
|
wget https://github.com/apple/foundationdb/releases/download/7.3.3/foundationdb-clients-7.3.3-1.el7.x86_64.rpm -q
|
21
21
|
sudo rpm -U foundationdb-clients-7.3.3-1.el7.x86_64.rpm --quiet --reinstall
|
@@ -241,13 +241,19 @@ def _create_jm_stack_on_raid(rpc_client, jm_nvme_bdevs, snode, after_restart):
|
|
241
241
|
pba_init_mode = 3
|
242
242
|
if after_restart:
|
243
243
|
pba_init_mode = 2
|
244
|
-
|
244
|
+
if snode.alceml_cpu_cores:
|
245
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
246
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, raid_bdev, str(uuid.uuid4()), pba_init_mode=pba_init_mode,
|
247
|
+
alceml_cpu_mask=alceml_cpu_mask)
|
248
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
249
|
+
else:
|
250
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, raid_bdev, str(uuid.uuid4()), pba_init_mode=pba_init_mode)
|
245
251
|
if not ret:
|
246
252
|
logger.error(f"Failed to create alceml bdev: {alceml_name}")
|
247
253
|
return False
|
248
254
|
|
249
255
|
jm_bdev = f"jm_{snode.get_id()}"
|
250
|
-
ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name)
|
256
|
+
ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name, jm_cpu_mask=snode.jm_cpu_mask)
|
251
257
|
if not ret:
|
252
258
|
logger.error(f"Failed to create {jm_bdev}")
|
253
259
|
return False
|
@@ -274,13 +280,20 @@ def _create_jm_stack_on_device(rpc_client, nvme, snode, after_restart):
|
|
274
280
|
pba_init_mode = 3
|
275
281
|
if after_restart:
|
276
282
|
pba_init_mode = 2
|
277
|
-
|
283
|
+
if snode.alceml_cpu_cores:
|
284
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
285
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, nvme.nvme_bdev, alceml_id, pba_init_mode=pba_init_mode,
|
286
|
+
alceml_cpu_mask=alceml_cpu_mask)
|
287
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
288
|
+
else:
|
289
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, nvme.nvme_bdev, alceml_id, pba_init_mode=pba_init_mode)
|
290
|
+
|
278
291
|
if not ret:
|
279
292
|
logger.error(f"Failed to create alceml bdev: {alceml_name}")
|
280
293
|
return False
|
281
294
|
|
282
295
|
jm_bdev = f"jm_{snode.get_id()}"
|
283
|
-
ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name)
|
296
|
+
ret = rpc_client.bdev_jm_create(jm_bdev, alceml_name, jm_cpu_mask=snode.jm_cpu_mask)
|
284
297
|
if not ret:
|
285
298
|
logger.error(f"Failed to create {jm_bdev}")
|
286
299
|
return False
|
@@ -308,8 +321,16 @@ def _create_storage_device_stack(rpc_client, nvme, snode, after_restart):
|
|
308
321
|
pba_init_mode = 3
|
309
322
|
if after_restart:
|
310
323
|
pba_init_mode = 2
|
311
|
-
|
312
|
-
|
324
|
+
|
325
|
+
if snode.alceml_cpu_cores:
|
326
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
327
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=pba_init_mode,
|
328
|
+
alceml_cpu_mask=alceml_cpu_mask)
|
329
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
330
|
+
else:
|
331
|
+
ret = rpc_client.bdev_alceml_create(alceml_name, test_name, alceml_id, pba_init_mode=pba_init_mode)
|
332
|
+
|
333
|
+
|
313
334
|
if not ret:
|
314
335
|
logger.error(f"Failed to create alceml bdev: {alceml_name}")
|
315
336
|
return False
|
@@ -507,13 +528,20 @@ def _prepare_cluster_devices_on_restart(snode):
|
|
507
528
|
return False
|
508
529
|
else:
|
509
530
|
|
510
|
-
|
531
|
+
if snode.alceml_cpu_cores:
|
532
|
+
alceml_cpu_mask = utils.decimal_to_hex_power_of_2(snode.alceml_cpu_cores[snode.alceml_cpu_index])
|
533
|
+
ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, jm_device.nvme_bdev, jm_device.get_id(),
|
534
|
+
pba_init_mode=2, alceml_cpu_mask=alceml_cpu_mask)
|
535
|
+
snode.alceml_cpu_index = (snode.alceml_cpu_index + 1) % len(snode.alceml_cpu_cores)
|
536
|
+
else:
|
537
|
+
ret = rpc_client.bdev_alceml_create(jm_device.alceml_bdev, jm_device.nvme_bdev, jm_device.get_id(),
|
538
|
+
pba_init_mode=2)
|
511
539
|
if not ret:
|
512
540
|
logger.error(f"Failed to create alceml bdev: {jm_device.alceml_bdev}")
|
513
541
|
return False
|
514
542
|
|
515
543
|
jm_bdev = f"jm_{snode.get_id()}"
|
516
|
-
ret = rpc_client.bdev_jm_create(jm_bdev, jm_device.alceml_bdev)
|
544
|
+
ret = rpc_client.bdev_jm_create(jm_bdev, jm_device.alceml_bdev, jm_cpu_mask=snode.jm_cpu_mask)
|
517
545
|
if not ret:
|
518
546
|
logger.error(f"Failed to create {jm_bdev}")
|
519
547
|
return False
|
@@ -612,22 +640,26 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
612
640
|
cpu_count = node_info["cpu_count"]
|
613
641
|
pollers_mask = ""
|
614
642
|
app_thread_mask = ""
|
615
|
-
|
616
|
-
|
643
|
+
jm_cpu_mask = ""
|
644
|
+
alceml_cpu_cores = []
|
645
|
+
alceml_cpu_index = 0
|
646
|
+
distrib_cpu_mask = ""
|
647
|
+
|
648
|
+
poller_cpu_cores = []
|
617
649
|
if cpu_count < 8:
|
618
650
|
mask = (1 << (cpu_count - 1)) - 1
|
619
651
|
mask <<= 1
|
620
652
|
spdk_cpu_mask = f'0x{mask:X}'
|
621
|
-
os_cores = [0]
|
622
653
|
else:
|
623
|
-
|
654
|
+
app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, distrib_cpu_cores = \
|
624
655
|
utils.calculate_core_allocation(cpu_count)
|
625
|
-
spdk_cores =
|
656
|
+
spdk_cores = app_thread_core + jm_cpu_core + poller_cpu_cores + alceml_cpu_cores + distrib_cpu_cores
|
626
657
|
|
627
|
-
pollers_mask = utils.generate_mask(
|
658
|
+
pollers_mask = utils.generate_mask(poller_cpu_cores)
|
628
659
|
app_thread_mask = utils.generate_mask(app_thread_core)
|
629
660
|
spdk_cpu_mask = utils.generate_mask(spdk_cores)
|
630
|
-
|
661
|
+
jm_cpu_mask = utils.generate_mask(jm_cpu_core)
|
662
|
+
distrib_cpu_mask = utils.generate_mask(distrib_cpu_cores)
|
631
663
|
|
632
664
|
# Calculate pool count
|
633
665
|
if ec2_metadata and ec2_metadata.get('instanceType'):
|
@@ -649,7 +681,7 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
649
681
|
number_of_split = num_partitions_per_dev if num_partitions_per_dev else num_partitions_per_dev + 1
|
650
682
|
number_of_alceml_devices = number_of_devices * number_of_split
|
651
683
|
small_pool_count, large_pool_count = utils.calculate_pool_count(
|
652
|
-
number_of_alceml_devices, max_lvol, max_snap, cpu_count, len(
|
684
|
+
number_of_alceml_devices, max_lvol, max_snap, cpu_count, len(poller_cpu_cores) or cpu_count)
|
653
685
|
|
654
686
|
# Calculate minimum huge page memory
|
655
687
|
minimum_hp_memory = utils.calculate_minimum_hp_memory(small_pool_count, large_pool_count, max_lvol, max_snap, cpu_count)
|
@@ -758,9 +790,11 @@ def add_node(cluster_id, node_ip, iface_name, data_nics_list,
|
|
758
790
|
snode.write_to_db(kv_store)
|
759
791
|
snode.app_thread_mask = app_thread_mask or ""
|
760
792
|
snode.pollers_mask = pollers_mask or ""
|
761
|
-
snode.
|
762
|
-
snode.
|
763
|
-
snode.
|
793
|
+
snode.jm_cpu_mask = jm_cpu_mask
|
794
|
+
snode.alceml_cpu_index = alceml_cpu_index
|
795
|
+
snode.alceml_cpu_cores = alceml_cpu_cores
|
796
|
+
snode.distrib_cpu_mask = distrib_cpu_mask
|
797
|
+
snode.poller_cpu_cores = poller_cpu_cores or []
|
764
798
|
|
765
799
|
snode.iobuf_small_pool_count = small_pool_count or 0
|
766
800
|
snode.iobuf_large_pool_count = large_pool_count or 0
|
@@ -1083,7 +1117,7 @@ def restart_storage_node(
|
|
1083
1117
|
number_of_split = snode.num_partitions_per_dev if snode.num_partitions_per_dev else snode.num_partitions_per_dev + 1
|
1084
1118
|
number_of_alceml_devices = number_of_devices * number_of_split
|
1085
1119
|
small_pool_count, large_pool_count = utils.calculate_pool_count(
|
1086
|
-
number_of_alceml_devices, snode.max_lvol, snode.max_snap, snode.cpu, len(snode.
|
1120
|
+
number_of_alceml_devices, snode.max_lvol, snode.max_snap, snode.cpu, len(snode.poller_cpu_cores) or snode.cpu)
|
1087
1121
|
|
1088
1122
|
# Calculate minimum huge page memory
|
1089
1123
|
minimum_hp_memory = utils.calculate_minimum_hp_memory(small_pool_count, large_pool_count, snode.max_lvol, snode.max_snap, snode.cpu)
|
@@ -286,38 +286,32 @@ def calculate_core_allocation(cpu_count):
|
|
286
286
|
'''
|
287
287
|
If number of cpu cores >= 8, tune cpu core mask
|
288
288
|
1. Never use core 0 for spdk.
|
289
|
-
2.
|
290
|
-
3.
|
291
|
-
4.
|
292
|
-
5.
|
289
|
+
2. Core 1 is for app_thread
|
290
|
+
3. Core 2 for Journal manager
|
291
|
+
4. Poller cpu cores are 30% of Available cores
|
292
|
+
5. Alceml cpu cores are 30% of Available cores
|
293
|
+
6. Distribs cpu cores are 40% of Available cores
|
293
294
|
JIRA ticket link/s
|
294
295
|
https://simplyblock.atlassian.net/browse/SFAM-885
|
295
296
|
'''
|
296
297
|
|
297
298
|
all_cores = list(range(0, cpu_count))
|
298
|
-
|
299
|
-
|
300
|
-
os_cores_count = 1
|
301
|
-
else:
|
302
|
-
os_cores_count = 1 + (cpu_count // 8)
|
303
|
-
|
304
|
-
# Calculate os cores
|
305
|
-
os_cores = all_cores[0:os_cores_count]
|
299
|
+
app_thread_core = all_cores[1:2]
|
300
|
+
jm_cpu_core = all_cores[2:3]
|
306
301
|
|
307
302
|
# Calculate available cores
|
308
|
-
available_cores_count = cpu_count -
|
303
|
+
available_cores_count = cpu_count - 3
|
309
304
|
|
310
|
-
# Calculate
|
311
|
-
|
312
|
-
|
305
|
+
# Calculate cpus counts
|
306
|
+
poller_cpus_count = int(available_cores_count * 0.3)
|
307
|
+
alceml_cpus_cout = int(available_cores_count * 0.3)
|
313
308
|
|
314
|
-
#
|
315
|
-
|
309
|
+
# Calculate cpus cores
|
310
|
+
poller_cpu_cores = all_cores[3:poller_cpus_count+3]
|
311
|
+
alceml_cpu_cores = all_cores[3+poller_cpus_count:poller_cpus_count+alceml_cpus_cout+3]
|
312
|
+
distrib_cpu_cores = all_cores[3+poller_cpus_count+alceml_cpus_cout:]
|
316
313
|
|
317
|
-
|
318
|
-
bdb_lcpu_cores = all_cores[os_cores_count + nvme_pollers_count + 1:]
|
319
|
-
|
320
|
-
return os_cores, nvme_pollers_cores, app_thread_core, bdb_lcpu_cores
|
314
|
+
return app_thread_core, jm_cpu_core, poller_cpu_cores, alceml_cpu_cores, distrib_cpu_cores
|
321
315
|
|
322
316
|
|
323
317
|
def generate_mask(cores):
|
@@ -405,3 +399,13 @@ def validate_add_lvol_or_snap_on_node(memory_free, huge_free, max_lvol_or_snap,
|
|
405
399
|
if node_lvol_or_snap_count >= max_lvol_or_snap:
|
406
400
|
return f"You have exceeded the max number of lvol/snap {max_lvol_or_snap}"
|
407
401
|
return ""
|
402
|
+
|
403
|
+
|
404
|
+
def get_host_arch():
|
405
|
+
out, _, _ = shell_utils.run_command("uname -m")
|
406
|
+
return out
|
407
|
+
|
408
|
+
def decimal_to_hex_power_of_2(decimal_number):
|
409
|
+
power_result = 2 ** decimal_number
|
410
|
+
hex_result = hex(power_result)
|
411
|
+
return hex_result
|
@@ -174,6 +174,10 @@ def spdk_process_start():
|
|
174
174
|
time.sleep(2)
|
175
175
|
|
176
176
|
spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
|
177
|
+
|
178
|
+
if node_utils.get_host_arch() == "aarch64":
|
179
|
+
spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
|
180
|
+
|
177
181
|
if 'spdk_image' in data and data['spdk_image']:
|
178
182
|
spdk_image = data['spdk_image']
|
179
183
|
node_docker.images.pull(spdk_image)
|
@@ -201,7 +205,7 @@ def spdk_process_start():
|
|
201
205
|
rpc_password = data['rpc_password']
|
202
206
|
|
203
207
|
container2 = node_docker.containers.run(
|
204
|
-
|
208
|
+
spdk_image,
|
205
209
|
"python /root/scripts/spdk_http_proxy_server.py",
|
206
210
|
name="spdk_proxy",
|
207
211
|
detach=True,
|
@@ -301,7 +305,7 @@ def get_info():
|
|
301
305
|
"system_id": system_id,
|
302
306
|
|
303
307
|
"cpu_count": cpuinfo.get_cpu_info()['count'],
|
304
|
-
"cpu_hz": cpuinfo.get_cpu_info()['hz_advertised'][0],
|
308
|
+
"cpu_hz": cpuinfo.get_cpu_info()['hz_advertised'][0] if 'hz_advertised' in cpuinfo.get_cpu_info() else 1,
|
305
309
|
|
306
310
|
"memory": get_memory(),
|
307
311
|
"hugepages": get_huge_memory(),
|
@@ -112,6 +112,9 @@ def spdk_process_start():
|
|
112
112
|
spdk_mem = 64096
|
113
113
|
|
114
114
|
spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE
|
115
|
+
if node_utils.get_host_arch() == "aarch64":
|
116
|
+
spdk_image = constants.SIMPLY_BLOCK_SPDK_CORE_IMAGE_ARM64
|
117
|
+
|
115
118
|
if 'spdk_image' in data and data['spdk_image']:
|
116
119
|
spdk_image = data['spdk_image']
|
117
120
|
|
@@ -1 +0,0 @@
|
|
1
|
-
fdbcli --exec "configure new single ssd" --timeout 100
|
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.2.13 → sbcli_pre-1.3.0}/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
|
{sbcli_pre-1.2.13 → sbcli_pre-1.3.0}/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_pre-1.2.13 → sbcli_pre-1.3.0}/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
|