proxmox: แบ่งปันไดเรกทอรีโฮสต์กับ VMS ผ่าน Virtiofs

/th/images/add-virtiofs-hardware-in-vm-settings.png

ด้วยการเปิดตัว ProxMox VE 8.4 ผู้ใช้ได้รับความสามารถในการสร้างไดเรกทอรีที่ใช้ร่วมกันในระดับโฮสต์ช่วยให้ไฟล์โฮสต์การเข้าถึงโดยตรงจากเครื่องเสมือน (คล้ายกับโฟลเดอร์ที่ใช้ร่วมกันในเวิร์กสเตชัน VMware) VMS สามารถเข้าถึงไดเรกทอรีที่ใช้ร่วมกัน (ไฟล์) บนโฮสต์ ProxMox โดยตรงโดยไม่ต้องผ่านเครือข่ายโดยใช้ระบบไฟล์ Virtiofs บทความนี้อธิบายวิธีการสร้างไดเรกทอรีที่ใช้ร่วมกันบนโฮสต์ ProxMox และติดตั้งในเครื่องเสมือนที่ใช้ Linux หรือ Windows

ด้วยโฟลเดอร์ที่ใช้ร่วมกันคุณสามารถเข้าถึงไฟล์บนโฮสต์ ProxMox ในท้องถิ่นได้อย่างรวดเร็วจาก VM โดยไม่ต้องใช้โปรโตคอลเครือข่ายเช่น SMB หรือ NFS ไดเรกทอรีที่ใช้ร่วมกันบนโฮสต์สามารถมีได้เช่นเครื่องมือระบบรูปภาพไฟล์การกำหนดค่าการอัปเดต ฯลฯ รายการเหล่านี้สามารถเข้าถึงได้โดยไม่ต้องคัดลอกไปยัง VM แต่ละรายการ

โฮสต์ Proxmox ใช้ VirtiofsD daemon ในตัว (ปรากฏใน Proxmox 8.4) เพื่อผ่านไดเรกทอรีท้องถิ่นไปยัง VM

ตรวจสอบเวอร์ชัน proxmox บนโฮสต์:

# pveversion-v

/th/images/pveversion-check-proxmox-version.png

อัปเดต proxmox หากเวอร์ชันน้อยกว่า 8.4

ตรวจสอบว่ามีการติดตั้ง Virtiofsd บนโฮสต์หรือไม่

# dpkg-l | Grep Virtiofsd

สร้างไดเรกทอรีที่ใช้ร่วมกันบนโฮสต์ ProxMox ที่คุณต้องการแบ่งปันกับ VMS

# mkdir/mnt/vmshare

เปิด Proxmox Web UI และนำทางไปยัง DataCenter-> การแมปไดเรกทอรี สร้างการแมปไดเรกทอรีใหม่สำหรับทรัพยากรที่อ้างอิงไดเรกทอรีท้องถิ่น /mnt/vmshare

/th/images/create-directory-mapping-on-a-proxmox-host.png

ถัดไปเพิ่มไดเรกทอรี Virtiofs ที่ใช้ร่วมกันในการตั้งค่าเครื่องเสมือน เปิดการตั้งค่า VM-> ฮาร์ดแวร์-> Virtiofs

/th/images/add-virtiofs-hardware-in-vm-settings.png

เลือกไดเรกทอรีท้องถิ่นที่คุณต้องการผ่านไปยัง VM

/th/images/add-virtiofs-filesystem-passthrough-device.png

VIRTIOFSD รองรับการผ่านของ ACLS และ XATTRs จากวัตถุไดเรกทอรีที่ใช้ร่วมกันไปยัง VM ของแขก สิ่งนี้จะช่วยให้คุณจัดการสิทธิ์การเข้าถึงวัตถุแน่นอนหากระบบไฟล์แขกรองรับพวกเขา (เหมาะสมสำหรับระบบไฟล์ Linux เท่านั้น)

เครื่องเสมือนจริงที่มีเคอร์เนล Linux เวอร์ชัน 5.4 หรือสูงกว่าการสนับสนุน Virtiofs โดยค่าเริ่มต้น ตรวจสอบว่าโหลดไดรเวอร์นี้:

# lsmod | Grep Virtiofs

ในการติดตั้งไดเรกทอรีชั่วคราวจากโฮสต์ proxmox ใน VM ด้วยแขก Linux โดยใช้ไดรเวอร์ Virtiofs ให้เรียกใช้คำสั่งต่อไปนี้ในเกสต์ VM:

# mount-t virtiofs vmshare/mnt/hostshare

/th/images/mount-shared-directory-from-a-proxmox-in-linux-gue.png

นอกจากนี้คุณยังสามารถเพิ่มรายการไปยัง FSTAB เพื่อให้มีการติดตั้งไดเรกทอรีที่ใช้ร่วมกันอย่างถาวร


VMShare /mnt/hostshare virtiofs rw,relatime 0 0


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 Mount คุณอาจได้รับข้อผิดพลาด

/th/images/mount-virtiofs-wrong-fs-type-bad-option-bad-su.png

นี่เป็นเพราะ VM จะต้องปิดอย่างน้อยหนึ่งครั้งสำหรับอุปกรณ์เสมือน Virtiofs ที่จะปรากฏในการกำหนดค่าฮาร์ดแวร์ของ VM (เพียงแค่รีบูต VM ไม่เพียงพอ)

หลังจากเปิด VM ให้ตรวจสอบการกำหนดค่า VM เพื่อให้แน่ใจว่าอุปกรณ์ Virtio FS ปรากฏขึ้น

# QM config 154-ปัจจุบัน


virtiofs0: VMShare

/th/images/check-virtiofs-device-in-proxmox-vm-config.png

ในการใช้ Virtiofs ใน Windows VM ของแขกรับเชิญคุณต้องติดตั้งเครื่องมือรับเชิญ Virtiofs ซึ่งรวมถึงไดรเวอร์สำหรับการเข้าถึงอุปกรณ์ เมานต์เวอร์ชันล่าสุดของภาพ Virtio ISO ลงใน VM (Virtio-WIN-0.1.271.iso หรือใหม่กว่า) เรียกใช้ virtio-win-gt-x64.msi ติดตั้งและติดตั้งไดรเวอร์ VIOFS (ระบบไฟล์ Virtio) สำหรับรายละเอียดเพิ่มเติมดูบทความเกี่ยวกับการปรับใช้เครื่องเสมือนจริงของ Windows Guest บน ProxMox /th/images/install-viofs-virtio-file-system.png

มาตรวจสอบว่ามีการติดตั้งไดรเวอร์บริการและอุปกรณ์ Virtio FS สามารถเข้าถึงได้จากหน้าต่างแขก:

`get-service virtiofsdrv

get-pnpdevice | โดยที่ {$ _. friendlyName-like “virtiofs"-หรือ $ _. friendlyName-like “Virtio fs"} `

/th/images/check-virtiofs-driver-and-service-running.png

ในการติดตั้งไดเรกทอรี Virtiofs ใน Windows ให้ใช้เครื่องมือ WinFSP WinFSP (Proxy ระบบไฟล์ Windows) เปิดใช้งานการติดตั้งระบบไฟล์ในโหมดผู้ใช้ซึ่งคล้ายกับฟิวส์บน Linux

ดาวน์โหลดและติดตั้ง winfsp https://github.com/winfsp/winfsp/releases

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการใช้ WinFSP ให้ดูโพสต์เกี่ยวกับการทำแผนที่เครือข่ายไดรฟ์ผ่าน SSH (SSHFs) ใน Windows

รีสตาร์ท Virtio-FS Servic E (Virtiofssvc) เพื่อติดตั้งโฟลเดอร์ที่ใช้ร่วมกัน Virtio-FS ผ่าน WinFSP

/th/images/mount-shared-directory-from-a-proxmox-host-to-wind.png

ในเครื่องเสมือนของ Windows Guest ไดเรกทอรีที่ใช้ร่วมกันของโฮสต์ ProxMox จะปรากฏเป็นไดรฟ์เครือข่ายแยกต่างหาก

การโยกย้ายสดระหว่างโฮสต์ไม่ได้รับการสนับสนุนสำหรับเครื่องเสมือนจริงด้วยโฟลเดอร์ที่ใช้ร่วมกัน Virtio ที่ติดตั้ง

*ลิงค์แหล่งที่มา:

การปรับใช้เครื่องเสมือนจริงของแขก Windows บน proxmox, https://github.com/winfsp/winfsp/releases