web-dev-qa-db-ja.com

Systemdを介したGlusterマウント

ブートにマウントするためにglusterボリュームを取得する必要があります。/etc/fstabに配置しても、信頼できる結果は得られません。

次のsystemdサービスをセットアップします。

[Unit]
Description=Gluster Mount

[Service]
Type=oneshot
ExecStart=/bin/mount /data
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

このサービスが起動時に実行されると、次のように返されます。

root@web1:~# systemctl status gluster-mount.service
â gluster-mount.service - Gluster Mount
   Loaded: loaded (/etc/systemd/system/gluster-mount.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2018-03-13 04:05:43 UTC; 3min 20s ago
  Process: 627 ExecStart=/bin/mount /data (code=exited, status=1/FAILURE)
 Main PID: 627 (code=exited, status=1/FAILURE)

Mar 13 04:05:39 web1 systemd[1]: Starting Gluster     Mount...
Mar 13 04:05:43 web1 systemd[1]: gluster-mount.service: Main process exited, code=exited, status=1/FAILURE
Mar 13 04:05:43 web1 systemd[1]: Failed to start Gluster Mount.
Mar 13 04:05:43 web1 systemd[1]: gluster-mount.service: Unit entered failed state.
Mar 13 04:05:43 web1 systemd[1]: gluster-mount.service: Failed with result 'exit-code'.

ログイン後にこのサービスで「再起動」を発行すると、正常に動作します。何が足りないのですか?

1
Aaron A

そのため、タイプをidleに変更すると問題が解決しました。定義上、idleタイプは、他のすべてがディスパッチされるまで待機してから、そのサービスリクエストを処理します。私はそれがタイミングに関係しているという予感を持っていました、そしてこれは実際に問題を修正した唯一のことでした。

[Unit]
Description=Gluster Mount

[Service]
Type=idle
ExecStart=/bin/mount /data
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
1
Aaron A