Skip to content

Commit 2ba4823

Browse files
committed
tests: allow multiple MDSs in automated tests
Refactor metadata server configuration to support multiple MDS instances in test environment: - Extract common MDS configuration into create_mds_common_cfg() function to reduce code duplication - Add create_sfsmds_cfg_() function for FDB-based MDS setup - Support differentiated port allocation: MDS 0 uses global ports (like Master), additional MDSs use their own local ports (similar to Shadow servers) - Update add_metadata_server_() to use new MDS configuration when FDB backend is enabled - Standardize variable references using ${var} syntax in the modified sections Signed-off-by: guillex <guillex@leil.io>
1 parent 203fbb1 commit 2ba4823

File tree

1 file changed

+42
-16
lines changed

1 file changed

+42
-16
lines changed

tests/tools/saunafs.sh

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ create_bdb_name_storage_entry_() {
355355
fi
356356
}
357357

358-
create_sfsmaster_master_cfg_() {
358+
create_mds_common_cfg_() {
359359
local this_module_cfg_variable="MASTER_${masterserver_id}_EXTRA_CONFIG"
360360
echo "PERSONALITY = master"
361361
echo "SYSLOG_IDENT = master_${masterserver_id}"
@@ -364,13 +364,7 @@ create_sfsmaster_master_cfg_() {
364364
echo "EXPORTS_FILENAME = ${saunafs_info_[master_exports]}"
365365
echo "TOPOLOGY_FILENAME = ${saunafs_info_[master_topology]}"
366366
echo "CUSTOM_GOALS_FILENAME = ${saunafs_info_[master_custom_goals]}"
367-
echo "DATA_PATH = $masterserver_data_path"
368-
echo "MATONT_LISTEN_PORT = ${saunafs_info_[matont]}"
369-
echo "MATOML_LISTEN_PORT = ${saunafs_info_[matoml]}"
370-
echo "MATOCS_LISTEN_PORT = ${saunafs_info_[matocs]}"
371-
echo "MATOCL_LISTEN_PORT = ${saunafs_info_[matocl]}"
372-
echo "MATOTS_LISTEN_PORT = ${saunafs_info_[matots]}"
373-
echo "METADATA_CHECKSUM_INTERVAL = 1"
367+
echo "DATA_PATH = ${masterserver_data_path}"
374368
echo "ADMIN_PASSWORD = ${saunafs_info_[admin_password]}"
375369
create_magic_debug_log_entry_ "master_${masterserver_id}"
376370
echo "${MASTER_EXTRA_CONFIG-}" | tr '|' '\n'
@@ -379,6 +373,37 @@ create_sfsmaster_master_cfg_() {
379373
echo "METADATA_BACKEND = ${saunafs_info_[metadata_backend]}"
380374
}
381375

376+
create_sfsmaster_master_cfg_() {
377+
create_mds_common_cfg_
378+
echo "MATONT_LISTEN_PORT = ${saunafs_info_[matont]}"
379+
echo "MATOML_LISTEN_PORT = ${saunafs_info_[matoml]}"
380+
echo "MATOCS_LISTEN_PORT = ${saunafs_info_[matocs]}"
381+
echo "MATOCL_LISTEN_PORT = ${saunafs_info_[matocl]}"
382+
echo "MATOTS_LISTEN_PORT = ${saunafs_info_[matots]}"
383+
echo "METADATA_CHECKSUM_INTERVAL = 1"
384+
}
385+
386+
create_sfsmds_cfg_() {
387+
create_mds_common_cfg_
388+
# MDS 0 uses global ports (for client/chunkserver connections)
389+
# Other MDSs will use their own local ports (like shadows do)
390+
if [[ ${masterserver_id} -eq 0 ]]; then
391+
echo "MATONT_LISTEN_PORT = ${saunafs_info_[matont]}"
392+
echo "MATOML_LISTEN_PORT = ${saunafs_info_[matoml]}"
393+
echo "MATOCS_LISTEN_PORT = ${saunafs_info_[matocs]}"
394+
echo "MATOCL_LISTEN_PORT = ${saunafs_info_[matocl]}"
395+
echo "MATOTS_LISTEN_PORT = ${saunafs_info_[matots]}"
396+
else
397+
echo "MATONT_LISTEN_PORT = ${masterserver_matont_port}"
398+
echo "MATOML_LISTEN_PORT = ${masterserver_matoml_port}"
399+
echo "MATOCS_LISTEN_PORT = ${masterserver_matocs_port}"
400+
echo "MATOCL_LISTEN_PORT = ${masterserver_matocl_port}"
401+
echo "MATOTS_LISTEN_PORT = ${masterserver_matots_port}"
402+
fi
403+
404+
echo "FDB_CLUSTER_FILE = /tmp/saunafs-fdb-test/conf/fdb.cluster"
405+
}
406+
382407
create_sfsmaster_shadow_cfg_() {
383408
local this_module_cfg_variable="MASTER_${masterserver_id}_EXTRA_CONFIG"
384409
echo "PERSONALITY = shadow"
@@ -388,12 +413,12 @@ create_sfsmaster_shadow_cfg_() {
388413
echo "EXPORTS_FILENAME = ${saunafs_info_[master_exports]}"
389414
echo "TOPOLOGY_FILENAME = ${saunafs_info_[master_topology]}"
390415
echo "CUSTOM_GOALS_FILENAME = ${saunafs_info_[master_custom_goals]}"
391-
echo "DATA_PATH = $masterserver_data_path"
392-
echo "MATONT_LISTEN_PORT = $masterserver_matont_port"
393-
echo "MATOML_LISTEN_PORT = $masterserver_matoml_port"
394-
echo "MATOCS_LISTEN_PORT = $masterserver_matocs_port"
395-
echo "MATOCL_LISTEN_PORT = $masterserver_matocl_port"
396-
echo "MATOTS_LISTEN_PORT = $masterserver_matots_port"
416+
echo "DATA_PATH = ${masterserver_data_path}"
417+
echo "MATONT_LISTEN_PORT = ${masterserver_matont_port}"
418+
echo "MATOML_LISTEN_PORT = ${masterserver_matoml_port}"
419+
echo "MATOCS_LISTEN_PORT = ${masterserver_matocs_port}"
420+
echo "MATOCL_LISTEN_PORT = ${masterserver_matocl_port}"
421+
echo "MATOTS_LISTEN_PORT = ${masterserver_matots_port}"
397422
echo "MASTER_HOST = $(get_ip_addr)"
398423
echo "MASTER_PORT = ${saunafs_info_[matoml]}"
399424
echo "METADATA_CHECKSUM_INTERVAL = 1"
@@ -449,6 +474,7 @@ add_metadata_server_() {
449474
local masterserver_matots_port
450475
local masterserver_data_path=$vardir/master${masterserver_id}
451476
local masterserver_master_cfg=$etcdir/sfsmaster${masterserver_id}_master.cfg
477+
local masterserver_mds_cfg=$etcdir/sfsmaster${masterserver_id}_mds.cfg
452478
local masterserver_shadow_cfg=$etcdir/sfsmaster${masterserver_id}_shadow.cfg
453479
local masterserver_cfg=$etcdir/sfsmaster${masterserver_id}.cfg
454480

@@ -471,8 +497,8 @@ add_metadata_server_() {
471497
test_fail "Wrong personality $personality"
472498
fi
473499
elif [[ "${saunafs_info_[metadata_backend]}" == "FDB" ]]; then
474-
cp "$masterserver_master_cfg" "$masterserver_cfg"
475-
echo "FDB_CLUSTER_FILE = /tmp/saunafs-fdb-test/conf/fdb.cluster" >>"$masterserver_cfg"
500+
create_sfsmds_cfg_ >"$masterserver_mds_cfg"
501+
cp "$masterserver_mds_cfg" "$masterserver_cfg"
476502
fi
477503

478504
saunafs_info_[master${masterserver_id}_shadow_cfg]=$masterserver_shadow_cfg

0 commit comments

Comments
 (0)