Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เครื่องเสมือน

การลดขนาด Virtual Disk VMDK บน VMware ESXi

บทความนี้จะแนะนำวิธีลดขนาด Virtual Disk (ไฟล์ VMDK) ของ VM ที่รันบน VMware ESXi ต่างจากการขยายดิสก์ที่ทำ On-the-fly ได้โดยไม่ต้องปิด VM การลดขนาด VMDK บน ESXi Hypervisor ซับซ้อนกว่า และไม่สามารถทำผ่าน vSphere Web Client GUI ได้ vSphere Client ไม่อนุญาตให้ระบุขนาด Virtual Disk ที่เล็กลง

สำคัญ คู่มือนี้ไม่ใช่วิธีที่ได้รับการสนับสนุนอย่างเป็นทางการจาก VMware แต่ผมใช้วิธีนี้หลายสิบครั้ง บทความใช้ VMware ESXi 6.7

การลดขนาด Virtual Disk VMDK บน VMware ESXi

ก่อนลดขนาด Virtual Disk ให้ทำดังนี้บน VMware ESXi Host:

  1. ลบ Snapshot ทั้งหมดของ VM (มิฉะนั้นอาจทำลาย Virtual Disk)
  2. สร้าง Backup เต็มของ VM หรือ Copy ไฟล์ VMDK และ Flat Files ที่ต้องการลดขนาด:
    cp vmname.vmdk backup_vmname.vmdk
    cp vmname-flat.vmdk backup_vmname-flat.vmdk

ขั้นตอนลดขนาด Virtual Disk ประกอบด้วย 2 ขั้นตอน:

  • ลดขนาด Partition ภายใน Guest OS
  • ลดขนาดไฟล์ VMDK ของ VMware VM บน VMFS (NFS) Datastore

วิธีลดขนาด Partition ใน Guest OS

ลองลดขนาด Disk Partition ใน Guest OS ก่อน ถ้า VM รัน Windows ใช้ Disk Manager diskmgmt.msc (Operation Shrink Volume รองรับทุก Windows Version ที่ยังได้รับการสนับสนุน; Tool sdelete ใช้ใน Windows เก่าๆ) หรือ Tool ภายนอก (เช่น Acronis Disk Director) หากไม่ทำ อาจทำให้ File System Crash หลังลดขนาด Virtual Disk

การลดขนาด Virtual Disk VMDK บน VMware ESXi

สมมติต้องการลดขนาด Disk 40 GB ต้องลด Volume Size ลง 40960 MB (40 GB x 1024) ใส่ค่านี้ใน Wizard Shrink Volume หลังลดขนาด Partition จะมีพื้นที่ Unallocated (40 GB ในตัวอย่าง) ด้านขวาของ Partition

การลดขนาด Virtual Disk VMDK บน VMware ESXi

หมายเหตุ: OEM Partition หรือ Windows Recovery Partition บางครั้งอาจขวางการขยายหรือลดขนาด Disk

การลดขนาด Virtual Disk VMDK บน VMware ESXi

ใน Linux ลดขนาด Partition ได้ด้วย Parted หากใช้ LVM Logical Volumes สถานการณ์จะต่างออกไป

ลดขนาดไฟล์ VMDK ของ VMware Virtual Machine

จากนั้นลดขนาดไฟล์ VMDK บน VMware VMFS File System

  1. Shut Down VM ที่ต้องการลดขนาด Disk
  2. SSH เข้า Console ของ ESXi Host ที่ VM ลงทะเบียนอยู่ (ใช้ Putty หรือ Windows SSH Client Built-in)
  3. ไปที่ Directory ที่ไฟล์ VMDK ของ VM อยู่ (ดู Path ได้จาก Properties ของ Virtual Disk ใน vSphere Client):
    cd /vmfs/volumes/datastore/test-VM
    การลดขนาด Virtual Disk VMDK บน VMware ESXi
  4. แสดงเนื้อหาไฟล์ Config Virtual Disk (*.vmdk) ด้วยคำสั่ง cat:
    # cat test_vm_3.vmdk
    ขนาด VMDK Disk แสดงในส่วน #Extent description (หลังตัวอักษร RW) ในที่นี้คือ 167772160 (80 GB *1024*1024*1024 / 512) การลดขนาด Virtual Disk VMDK บน VMware ESXi
  5. ต้องการลด VMDK จาก 80 เป็น 40 GB ต้องระบุ 83886080 (40 GB*1024*1024*1024 / 512) ใน Extent Description Section ตั้งค่าขนาด Virtual Disk ใหม่ด้วย Text Editor (vi หรือ nano)
  6. ใช้ vi: # vi test_vm_3.vmdk
  7. เลื่อนลงบรรทัดที่มีขนาด Disk กด i (เพื่อแก้ไข) ระบุขนาดใหม่ กด ESC ออกจาก Edit Mode แล้วพิมพ์ :wq → Enter เพื่อบันทึก การลดขนาด Virtual Disk VMDK บน VMware ESXi
  8. จากนั้น Clone หรือ Migrate (ใช้ Storage vMotion) VM ไป Datastore อื่น หลังย้ายไฟล์ VM ขนาด Virtual Disk ใหม่จะแสดงใน Properties Tip. หากมี ESXi Host เดียว, Datastore VMFS เดียว ไม่สามารถใช้ Storage vMotion ได้ ให้ Clone VMDK ด้วยคำสั่ง:
    vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
    การลดขนาด Virtual Disk VMDK บน VMware ESXi ลบ Source VMDK Disk, Clone VMDK ที่เหลืออีกครั้ง และ Rename กลับเป็นชื่อเดิม:
    rm test_vm_3.vmdk
    rm test_vm_3-flat.vmdk
    vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk
  9. ตรวจสอบว่า Properties ของ VM แสดงขนาด Virtual Disk ใหม่แล้ว การลดขนาด Virtual Disk VMDK บน VMware ESXi
  10. Start VM, Login Guest OS และตรวจสอบว่า Unallocated Area หายไป และขนาด Disk ลดลงแล้ว การลดขนาด Virtual Disk VMDK บน VMware ESXi

Tip. หากใช้ vmkfstools ในขั้นตอนก่อนหน้า ให้ Reconnect Virtual Disk ใน VM Settings เนื่องจากขนาดใหม่อาจไม่แสดงถูกต้อง Note. วิธีอื่นๆ ที่นิยมใช้ลดขนาด VMDK:

  • ลดขนาด Virtual Disk โดย Convert VM ด้วย VMware vCenter Converter ระบุขนาด Disk น้อยกว่าต้นทาง (จะแสดงในส่วนถัดไป)
  • Clone เนื้อหา Virtual Disk ด้วย Software ภายนอก (เช่น Acronis True Image หรือ Symantec Ghost32) โดยเพิ่ม Disk ใหม่ขนาดเล็กกว่าให้ VM และ Clone เนื้อหา Disk ใหญ่ไปยัง Disk ใหม่ แล้วลบ Disk ใหญ่ทิ้ง

การลดขนาด VMDK ด้วย VMware vCenter Converter Standalone

อีกวิธีหนึ่งคือใช้ Free GUI Tool VMware vCenter Converter Standalone

ข้อเสีย:

  • V2V Conversion ช้า
  • ต้องมีพื้นที่พอสำหรับ VM ใหม่บน Datastore
  • VM ใหม่จะมี MAC Address ใหม่

ข้อดี:

  • ไม่ต้องเปิด Console ของ vCenter หรือ ESXi Host
  • สร้าง Copy ที่เหมือนกันทุกประการ
  • Source Disk ไม่เสียหายแม้จะมี Error ในการตั้งค่า Conversion

Note VM ที่ต้องการ Convert (เปลี่ยนขนาด Disk ฯลฯ) ต้อง Shut Down แล้ว (ใช้ Shut down หรือ Power Off แทน Suspend)

ระบุที่อยู่ ESXi Host

การลดขนาด Virtual Disk VMDK บน VMware ESXi

เลือก Source VM

การลดขนาด Virtual Disk VMDK บน VMware ESXi

ตั้งค่า VM ใหม่

การลดขนาด Virtual Disk VMDK บน VMware ESXi

เข้าโหมดแก้ไข Disk (Data to copy → Edit)

การลดขนาด Virtual Disk VMDK บน VMware ESXi

เลือก Copy Mode: Select volumes to copy

การลดขนาด Virtual Disk VMDK บน VMware ESXi

ระบุขนาด Disk ใหม่สำหรับ VM ใหม่ ตัวอย่าง ใช้พื้นที่ 48 GB ใน Guest OS แต่ Disk Size 150 GB จะลดเหลือ 60 GB

การลดขนาด Virtual Disk VMDK บน VMware ESXi การลดขนาด Virtual Disk VMDK บน VMware ESXi

รันกระบวนการ Convert VM จากนั้น Power Off Source VM และ Power On VM ใหม่ ตรวจสอบว่าขนาด Disk ลดลงแล้ว หลังจากนั้น Original VM อาจลบได้

Note ใน Microsoft Hyper-V เวอร์ชันล่าสุด สามารถใช้ Hyper–V Online VHDX Resize Tool เพื่อ Resize Dynamic (ทั้งขยายและลด) Virtual Disks ได้