Proxmox:通過 VirtioFS 與虛擬機共享主機目錄
隨著 Proxmox VE 8.4 的發布,用戶獲得了創建主機級共享目錄,允許從虛擬機直接訪問主機文件(類似於VMware Workstation中的共享文件夾)。虛擬機可以直接訪問Proxmox主機上的共享目錄(文件),無需通過網絡,使用虛擬IOFS文件系統。這篇文章解釋了如何在 Proxmox 主機上創建共享目錄並將其安裝在運行 Linux 或 Windows 的虛擬機中。
通過共享文件夾,您可以從虛擬機快速訪問本地 Proxmox 主機上的文件,而無需使用 SMB 或 NFS 等網絡協議。主機上的共享目錄可以包含系統工具、映像、配置文件、更新等。可以訪問這些項目,而無需將其複製到每個 VM。
Proxmox主機使用內置虛擬軟件守護進程(出現在 Proxmox 8.4 中)將本地目錄傳遞到虛擬機。
檢查主機上的 Proxmox 版本:
# pveversion -v


如果版本低於 8.4,請更新 Proxmox。
檢查主機上是否安裝了 virtiofsd。
# dpkg -l | grep virtiofsd
在要與虛擬機共享的 Proxmox 主機上創建共享目錄。
# mkdir /mnt/VMShare
打開 Proxmox Web UI 並導航至數據中心->目錄映射。為引用本地目錄的資源創建新的目錄映射/mnt/VMShare。


接下來,將共享 VirtioFS 目錄添加到虛擬機設置中。打開虛擬機設置->硬件 -> Virtiofs。


選擇要傳遞到 VM 的本地目錄。


Virtiofsd 支持從共享目錄對像到來賓虛擬機的 ACL 和 XAttr 直通。當然,如果來賓文件系統支持的話,這允許您管理對象訪問權限(僅對 Linux 文件系統有意義)。
閱讀更多:如何將虛擬機從 VMware ESXi 遷移(導入)到 Proxmox
具有 Linux 內核版本 5.4 的虛擬機或更高版本默認支持 VirtIOFS。驗證該驅動程序是否已加載:
# lsmod | grep virtiofs
要使用 VirtioFS 驅動程序在具有 Linux 來賓的 VM 中臨時掛載 Proxmox 主機中的目錄,請在來賓 VM 中運行以下命令:
# mount -t virtiofs VMShare /mnt/hostshare


您還可以向 fstab 添加條目以永久安裝共享目錄。
VMShare /mnt/hostshare virtiofs rw,relatime 0 0
運行 virtiofs mount 命令時,您可能會收到錯誤。
mount: /mnt/hostshare: wrong fs type, bad option, bad superblock on vmshare, missing codepage or helper program, or other error. dmesg(1) may have more information after failed mount system call.


這是因為虛擬機必須至少關閉一次,VirtioFS 虛擬設備才能出現在虛擬機的硬件配置中(僅重新啟動虛擬機是不夠的)。
打開虛擬機後,檢查虛擬機配置,確保出現 Virtio FS 設備。
# qm config 154 --current
virtiofs0: VMShare


在以下環境中使用 VirtioFS運行 Windows 的來賓 VM,你需要安裝VirtioFS 訪客工具,其中包括用於訪問設備的驅動程序。將最新版本的 Virtio ISO 映像裝載到虛擬機中(virtio-win-0.1.271.iso 或更高版本)。運行virtio-win-gt-x64.msi安裝程序並安裝維奧夫斯(Virtio 文件系統)驅動程序。有關更多詳細信息,請參閱有關在 Proxmox 上部署 Windows 來賓虛擬機的文章。

讓我們檢查服務驅動程序是否已安裝以及 Virtio FS 設備是否可以從來賓 Windows 訪問:
Get-Service VirtioFsDrv
Get-PnpDevice | Where { $_.FriendlyName -like "*VirtioFS*" -or $_.FriendlyName -like "*Virtio FS*" }


要在 Windows 中掛載 VirtioFS 目錄,請使用WinFSP工具。 WinFSP(Windows文件系統代理)可以在用戶模式下掛載文件系統,類似於Linux上的FUSE。
下載並安裝 WinFSPhttps://github.com/winfsp/winfsp/releases
有關使用 WinFSP 的更多詳細信息,請參閱有關在 Windows 中通過 SSH (SSHFS) 映射網絡驅動器的文章。
重新啟動VirtIO-FS服務e (VirtioFsSvc)通過Winfsp掛載VirtIO-FS共享文件夾。


在 Windows 來賓虛擬機中,Proxmox 主機的共享目錄將顯示為單獨的網絡驅動器。
對於已安裝 Virtio 共享文件夾的虛擬機,不支持主機之間的實時遷移。
