Nfs
使用 systemd 的萬用字元自動掛載
我正在使用 systemd 208 執行 jessie/sid,並嘗試將以下萬用字元 autofs 配置轉換為
/etc/fstab
或.mount
/.automount
定義。$ cat /etc/auto.master /home/* -fstype=nfs homeserver:/exp/home/&
(homeserver 執行一個 Solaris,每個子目錄
/exp/home/
都是一個單獨的共享。)有沒有辦法用 systemd 模擬萬用字元映射?
我想沒有。.mount/.automount 單元名稱必須等於掛載路徑,用 . 轉義
systemd-escape --path
。systemd 中實例化單元的唯一方法是 form 的“模板語法”foo@bar.type
。因此,至少不可能有一個動態實例化的安裝單元。只需使用 autofs。systemd 不是所有東西的替代品。
您可以使用 systemd 的生成器介面。基本上,它會在啟動或重新載入時即時創建服務文件。
我們的集群中有一系列機器(稱為“dema”加上一些數字),它們都導出相同的目錄(它們的物理磁碟)。我使用生成器介面為每台機器創建了一個*.mount和一個.automount*文件:
#!/bin/sh svc_dir=/run/systemd/generator for i in $(seq 1 99); do # this must match the mount path, / is converted to - unit_bn=cluster-dema$i cat << EOF > "${svc_dir}/${unit_bn}.automount" [Unit] Description=dema${i}s localdisks automount point Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator Before=remote-fs.target [Automount] Where=/cluster/dema$i EOF cat << EOF > "${svc_dir}/${unit_bn}.mount" [Unit] Description=dema${i}s localdisks Documentation=file:///usr/lib/systemd/system-generators/dema-automount-generator [Mount] What=dema$i:/localdisks Where=/cluster/dema$i Type=nfs Options=rw,nosuid,nodev,hard,intr,rsize=8192,wsize=8192,noauto,x-systemd.automount EOF ln -s "../${unit_bn}.automount" "${svc_dir}/remote-fs.target.requires" done
該腳本必須放在*/usr/lib/systemd/system-generators和執行檔中。把它放在那里之後,呼叫systemd daemon-reload你應該在/run/systemd/generator中找到這些單元。有在下次重啟時啟動並且可以手動啟動,當然,通過呼叫systemd start oneofthenames.automount*。