Ubuntu
讓 KVM/libvirt 在啟動來賓之前等待網路掛載
我正在管理一個基於 Ubuntu 16.04 的 VM(執行 KVM/libvirt)。該伺服器託管了一些在我們部門內部使用的虛擬機。
所有的VM都使用我們公司的Samba伺服器來儲存各種點點滴滴的數據。
在昨晚的一次停電中,我發現這些機器的啟動速度比他們需要的 Samba 伺服器快得多,這會導致 VM 上的一系列服務出現故障。
我希望能夠指示我的 VM 主機在重新啟動後啟動所有 VM 之前等待 CIFS 伺服器,而不是逐個 VM 修補它(基本上,我想製作 libvirt -guests.service 取決於 mnt-SHARENAME.mount)。
我知道我可以在 /lib/systemd/system/libvirt-guests.service 中添加依賴項,但我不確定這是否是 systemd 認可的方法。有沒有其他的方式來表達依賴?
您可以在它們之間創建一個虛擬的“執行一次”服務。
就我而言,
xinetd
and有問題NFS
(xinetd 在 NFS 文件系統掛載之前啟動,因此某些服務無法啟動)。我用一個文件弄亂了這個/lib/systemd/system/fix-xinetd-nfs-dependency.service
[Unit] Description=Make xinetd wait for NFS otherwise it can not start services After=remote-fs.target Before=xinetd.service [Service] Type=oneshot ExecStart=/bin/true [Install] WantedBy=multi-user.target
一旦您創建了服務(讓
Before
和After
行反映您的要求),那麼您就可以systemctl enable
了……幸運的是,這將在您的虛擬機啟動並且您的 samba 文件系統可用之前執行!