Страница 1 из 1

Долгий импорт ZFS пула

Добавлено: 2017-09-11 17:59:21
Harun
Собрал двухузловой (active/standby) кластер хранения данных. В момент смены ролей очень продолжительное время импортируется ZFS-пул с большим количеством снэпшотов. Проблема в том, что для каждого снэпшота создается устройство в /dev/vols. В Linux существует переменная «snapdev». Как в FreeBSD отключить видимость снимков? Использую грязный хак:

Код: Выделить всё

--- sys.old/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c    2017-07-21 02:42:01.000000000 +0300
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c    2017-08-10 11:36:19.983718000 +0300
@@ -1593,7 +1593,6 @@
        for (pair = nvlist_next_nvpair(snaps, NULL); pair != NULL;
           pair = nvlist_next_nvpair(snaps, pair)) {
            char *snapname = nvpair_name(pair);
-            zvol_create_minors(snapname);
        }
    }
 #endif
diff -rNPu sys.old/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
--- sys.old/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c    2017-08-10 11:21:51.773021000 +0300
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c    2017-08-10 11:23:56.452271000 +0300
@@ -2905,9 +2905,7 @@
        dsl_dataset_long_hold(os->os_dsl_dataset, FTAG);
        dsl_pool_rele(dmu_objset_pool(os), FTAG);
        error = zvol_create_minor(name);
-        if (error == 0 || error == EEXIST) {
-            error = zvol_create_snapshots(os, name);
-        } else {
+        if (error && error != EEXIST) {
            printf("ZFS WARNING: Unable to create ZVOL %s (error=%d).\n",
               name, error);
Есть ли более элегантный способ?

Долгий импорт ZFS пула

Добавлено: 2017-09-12 14:59:43
skeletor
Аналог snapdir=hidden|visible, но я не думаю, что оно поможет. Скорее всего без патчинга никак.

Долгий импорт ZFS пула

Добавлено: 2017-09-12 15:11:14
Harun
snapdir - это для fs, для томов неприменим.

Долгий импорт ZFS пула

Добавлено: 2017-09-12 15:14:20
skeletor
Да, вы ж спрашивали про аналог snapdev. И это не переменная, а параметр ФС.