From: Alex Zhuravlev Date: Tue, 25 Jul 2023 14:55:53 +0000 (+0300) Subject: EX-7965 utils: resync-cmd option to lamigo X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=590d7d66e06bad2193c136677e989ae1b7ed589d;p=fs%2Flustre-release.git EX-7965 utils: resync-cmd option to lamigo so we can change default "lfs mirror resync" to something else, add extra options, etc. Signed-off-by: Alex Zhuravlev Change-Id: Idf445128e811297651e09babc51fb5b0f2b9b20d Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51757 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- diff --git a/lipe/src/lamigo.c b/lipe/src/lamigo.c index 8cc904f..4e70d09 100644 --- a/lipe/src/lamigo.c +++ b/lipe/src/lamigo.c @@ -76,6 +76,7 @@ #define DEF_THREAD_COUNT 1 #define DEF_AGENT_JOBS 8 #define DEF_MIRROR_CMD "lfs mirror extend -N" +#define DEF_RESYNC_CMD "lfs mirror resync" #define DEF_FAST_POOL "ddn_ssd" #define DEF_SLOW_POOL "ddn_hdd" #define DEF_ALR_PERIODS 16 @@ -249,6 +250,7 @@ struct options opt = { .o_chlg_clear_frequency = 4096, /* XXX: evaluate multithreaded scanning in the future */ .o_mirror_cmd = DEF_MIRROR_CMD, + .o_resync_cmd = DEF_RESYNC_CMD, .o_num_threads = DEF_THREAD_COUNT, .o_pool_refresh = DEF_POOL_REFRESH_INTV, .o_statfs_refresh = DEF_STATFS_REFRESH_INTV, @@ -840,8 +842,8 @@ static void *lamigo_replicate_one(void *args) agent->rag_mountpoint, PFID(&rj->rj_fid)); } else if (resync == AMIGO_RESYNC_RESYNC) { snprintf(cmd, sizeof(cmd), - "lfs mirror resync '%s/.lustre/fid/"DFID"' > /dev/null 2>&1", - agent->rag_mountpoint, + "%s '%s/.lustre/fid/"DFID"'", + opt.o_resync_cmd, agent->rag_mountpoint, PFID(&rj->rj_fid)); } else { LX_ERROR("unknown resync: %d\n", resync); @@ -1942,6 +1944,7 @@ enum { LAMIGO_OPT_JSON_FILE, LAMIGO_OPT_LARGE_IO, LAMIGO_OPT_MIRROR_CMD, + LAMIGO_OPT_RESYNC_CMD, LAMIGO_OPT_OFD_INTERVAL, LAMIGO_OPT_PERIODS, LAMIGO_OPT_PERIOD_TIME, @@ -1983,6 +1986,7 @@ static struct option options[] = { { "mdt", required_argument, NULL, 'm' }, { "min-age", required_argument, NULL, 'a'}, { "mirror-cmd", required_argument, NULL, LAMIGO_OPT_MIRROR_CMD}, + { "resync-cmd", required_argument, NULL, LAMIGO_OPT_RESYNC_CMD}, { "mount", required_argument, NULL, 'M'}, { "mountpoint", required_argument, NULL, 'M' }, { "ofd-interval", required_argument, NULL, LAMIGO_OPT_OFD_INTERVAL}, @@ -2225,6 +2229,9 @@ static void lamigo_process_opt(int c, char *optarg) case LAMIGO_OPT_MIRROR_CMD: opt.o_mirror_cmd = xstrdup(optarg); break; + case LAMIGO_OPT_RESYNC_CMD: + opt.o_resync_cmd = xstrdup(optarg); + break; case LAMIGO_OPT_POOL_REFRESH: opt.o_pool_refresh = strtol(optarg, &endptr, 10); if (*endptr != '\0' || opt.o_pool_refresh < 1) diff --git a/lipe/src/lamigo.h b/lipe/src/lamigo.h index b0f3279..67eb40f 100644 --- a/lipe/src/lamigo.h +++ b/lipe/src/lamigo.h @@ -85,6 +85,7 @@ struct options { int o_chlg_clear_frequency; bool o_rescan; char *o_mirror_cmd; + char *o_resync_cmd; int o_num_threads; int o_pool_refresh; int o_statfs_refresh;