Я настроил gluserfs на паре серверов, и я могу смонтировать это на моих клиентских машинах. Я также хочу иметь возможность монтировать файловую систему glusterfs на обоих серверах glusterfs при загрузке, когда я отключаю обе машины и запускаю их с нуля.
Эти серверы настроены как кластер с использованием кардиостимулятора. Помимо общей базы данных, pacemaker также предоставляет виртуальный IP-адрес для монтирования файловой системы gluster.
Я могу вручную смонтировать файловую систему на каждом из них после того, как оба сервера будут запущены, с помощью команды:
mount -t glusterfs nodea:/gv0 /data
И это здорово. Но я хочу, чтобы это происходило автоматически при загрузке.
Итак, я попытался добавить запись в fstab:
nodea:/gv0 /data glusterfs _netdev 0 0
Что работает, когда я запускаю команду «mount -a» после того, как кластер запущен и работает. Однако при загрузке он не работает. (Именно так клиентские машины монтируют glusterfs при загрузке, но кластер запущен и работает. Так что, конечно, он работает для них при загрузке.)
Я также попытался создать файл модуля systemd для обработки монтирования glusterfs при загрузке. Мой файл модуля находится в / etc / systemd / system с именем "data.mount" и выглядит так:
# Mounting gluster fs at /data
[Unit]
Description = Automount gluster filesystem
After=pcsd.service
[Mount]
What=nodea:/gv0
Where=/data
Type=glusterfs
[Install]
WantedBy = pcsd.service
Опять же, это работает, когда оба сервера запущены и работают, выполнив команду "
Есть ли способ, чтобы файл модуля systemd проверил, действительно ли он смонтировал файловую систему, а если не повторить попытку, пока это не произойдет?
Есть ли другой способ смонтировать glusterfs при загрузке и проверить, что он действительно установлен?
Вы должны иметь возможность иметь systemd automount, когда это необходимо. У меня тоже были проблемы с монтированием Ubuntu 16.04 при загрузке. Основываясь на этом сообщении я добавил noauto,x-systemd.automount
в свою строку fstab
:
gluster1:/volume1 /storage-pool glusterfs defaults,_netdev,noauto,x-systemd.automount 0 0
Я перезагружал серверы приложений несколько раз каждый, и все они успешно смонтированы. Надеюсь, это вам тоже поможет!
Я пытался решить эту проблему, учитывая отношение LP:
файл: / и т. Д. /systemd/system/glusterfsmounts.service[1142634 provided:[12205 visiblethen you should:
systemctl daemon-reload
systemctl enable glusterfsmounts
and reboot ... был для меня самым лучшим / стабильным
Вы можете использовать сценарий, чтобы удерживать "запущенный" статус службы systemd glusterfs до тех пор, пока тома фактически готовы.
systemctl edit glusterd.service
[Service]
ExecStartPost=/usr/local/sbin/glusterfs-wait
Создайте файл / usr / local / sbin / glusterfs-wait
со следующим:
#!/bin/bash
FAIL=1
until [ $FAIL -eq 0 ]; do
gluster volume status all
FAIL=$?
test $FAIL -ne 0 && sleep 1
done
exit 0
Убедитесь, что этот файл является исполняемым.
Затем создайте переопределение монтирования, например, для / mnt / storage
это будет mnt-storage.mount
, косая черта станет дефисом.
systemctl edit mnt-storage. mount
Если это не сработает и вы только что добавили запись fstab, перезагрузите systemd, чтобы он увидел обновление ( systemctl daemon-reload
).
[Unit]
After=glusterd.service
Wants=glusterd.service