最近 server 重新啟動時, docker 上的 service 一直因為 zfs mount 時間點所影響
現在似乎解了, 但這種做法會讓 docker 啟動時間置後些, 之後大概需要改成以 container 來相依 mount point 才行.

Container 會用到一些 volume, 其中一部份是 mount point, 所以需要等這些 mount 完成後, container 再啟動才會正常, 這時候就需要去等待特定路徑成為一個 mount point 後, 再啟動 docker or container, 我的暫時解決方案是增加 docker.service 的相依, 讓它去等待 mount point 出現.

在 /etc/systemd/system 中為 docker.service 加一個 droplet

# cd /etc/systemd/system
# mkdir docker.service.d

Droplet (/etc/systemd/system/docker.service.d/deps.conf) 內容如下

[Unit]
After=zfs.target
RequiresMountsFor=/var/lib/docker /var/lib/cloud

RequiresMountsFor= 來等待 mount points 並增加 systemd units 間的相依
但. 目前來說, 似乎這些 mount point 需要出現在 /etc/fstab 中, 可能 zfs 0.8 的 systemd 相依修正能解決 (只是可能而已).

另外, 如果你有設定 zfs fs 的 mountpoint 的屬性為特定路徑, 想用 mount 命令直接 mount 時, 可這麼做

$ sudo mount -o zfsutil -t zfs rpool/your/fs /your/mount/point

可參考 main mount.zfs