Некоторое время назад я создал свою первую 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"