Назад | Перейти на главную страницу

GFS2: как переименовать имя кластера / lockspace / fsid / имя locktable в Ubuntu 18.04

Некоторое время назад я создал свою первую GFS2 для тестов:

mkfs.gfs2 -t cluster-test:gfs-vol1 -p lock_dlm -j 3 /dev/vg2/gfs-vol1

Из mkfs.gfs2(8) man:

-t имя кластера: замковое пространство

Пара «таблица блокировки» используется для однозначной идентификации этой файловой системы в кластере. Сегмент имени кластера (максимум 32 символа) должен совпадать с именем, данным кластеру в его конфигурации; только членам этого кластера разрешено использовать эту файловую систему. Сегмент замкового пространства (максимум 30 символов) - это уникальное имя файловой системы, используемое для отличия этой файловой системы gfs2. Допустимые имена кластеров и замки могут содержать только буквенно-цифровые символы, дефисы (-) и подчеркивания (_).

После тестирования я хочу изменить имя кластера с cluster-test на cluster-prod. Сначала я изменил конфигурацию totem (cluster_name) в corosync.conf, но после этого монтировать не удалось.

mount: /gfs/gfs-vol1: mount(2) system call failed: Invalid request descriptor.

В dmesg:

kernel: gfs2: fsid=cluster-test:gfs-vol1: Trying to join cluster "lock_dlm", "cluster-test:gfs-vol1"
kernel: dlm: Using TCP for communications
kernel: dlm: dlm cluster name 'cluster-prod' does not match the application cluster name 'cluster-test'
kernel: gfs2: fsid=cluster-test:gfs-vol1: dlm_new_lockspace error -53

Как изменить имя кластера GFS2 в файловой системе, чтобы оно соответствовало dlm / corosync?

Изменить легко (если вы уже знаете, где искать; в моем случае это было не так). Два разных способа:

Трудный путь (мое первое предположение):

gfs2_edit -p sb field sb_locktable cluster-prod:gfs-vol1 /dev/vg2/gfs-vol1

Простой способ (хотя и не очень очевидно / интуитивно понятно, если вы не знаете команду tunegfs2 и связь между «именем таблицы блокировки» и «меткой файловой системы»):

tunegfs2 -L cluster-prod:gfs-vol1 /dev/vg2/gfs-vol1

Это также полезно, если вы хотите изменить "lockproto"