Whamcloud - gitweb
EX-7965 utils: resync-cmd option to lamigo
authorAlex Zhuravlev <bzzz@whamcloud.com>
Tue, 25 Jul 2023 14:55:53 +0000 (17:55 +0300)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 29 Jul 2023 07:55:16 +0000 (07:55 +0000)
so we can change default "lfs mirror resync" to something else,
add extra options, etc.

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Idf445128e811297651e09babc51fb5b0f2b9b20d
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/51757
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lipe/src/lamigo.c
lipe/src/lamigo.h

index 8cc904f..4e70d09 100644 (file)
@@ -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)
index b0f3279..67eb40f 100644 (file)
@@ -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;