ในบทความนี้เราจะแสดงวิธีลดขนาดไฟล์ virtual disk (vmdk) ของเครื่องเสมือนที่ทำงานบน VMWare ESXi ต่างจากการขยายดิสก์ของเครื่องเสมือน VMWare ที่คุณสามารถทำได้ทันทีโดยไม่ต้องปิดเครื่องเสมือน การลดขนาดไฟล์ vmdk บนไฮเปอร์ไวเซอร์ VMWare ESXi นั้นซับซ้อนกว่า และคุณไม่สามารถทำได้ผ่าน vSphere อินเทอร์เฟซกราฟิกไคลเอ็นต์เว็บ vSphere Client ไม่อนุญาตให้คุณระบุขนาดดิสก์เสมือนที่เล็กกว่า
สำคัญ . คู่มือนี้ไม่ใช่โซลูชันที่ได้รับการสนับสนุนอย่างเป็นทางการเกี่ยวกับวิธีลดขนาดของดิสก์ vmdk ใน VMWare อย่างไรก็ตาม ฉันใช้วิธีนี้หลายสิบครั้ง VMWare ESXi 6.7 ใช้ในบทความนี้
ก่อนที่จะลดขนาดของดิสก์เสมือน ให้ทำดังต่อไปนี้บนโฮสต์ VMWare ESXi ของคุณ:
- ลบสแน็ปช็อตทั้งหมดของเครื่องเสมือน (มิฉะนั้น คุณอาจสร้างความเสียหายให้กับดิสก์เสมือน)
- สร้างการสำรองข้อมูลเต็มรูปแบบของเครื่องเสมือน หรือสร้างสำเนาของ vmdk และไฟล์แบบเรียบที่คุณต้องการลดขนาด ใช้คำสั่งเหล่านี้:
cp vmname.vmdk backup_vmname.vmdk
cp vmname-flat.vmdk backup_vmname-flat.vmdk
ขั้นตอนการลดขนาดดิสก์เสมือนประกอบด้วยสองขั้นตอน:
- ย่อขนาดพาร์ติชั่นภายใน guest OS;
- ลดขนาดของไฟล์ VMDK ของเครื่องเสมือน VMWare บนที่เก็บข้อมูล VMFS (NFS)
จะย่อขนาดพาร์ติชั่นใน Guest OS ได้อย่างไร
ก่อนอื่น ลดขนาดพาร์ติชั่นดิสก์ในระบบปฏิบัติการแขก หากเครื่องเสมือนของคุณใช้ระบบปฏิบัติการ Windows ให้ใช้ตัวจัดการดิสก์ diskmgmt.msc
(ลดขนาด การดำเนินการมีอยู่ใน Windows เวอร์ชันที่รองรับทั้งหมด sdelete
เครื่องมือที่ใช้ใน Windows รุ่นเก่าเพื่อลดขนาดพาร์ติชัน) หรือเครื่องมือของบุคคลที่สาม (เช่น Acronis Disk Director) ถ้าคุณไม่ทำเช่นนั้น หลังจากนั้น ระบบไฟล์ของคุณอาจหยุดทำงานหลังจากลดขนาดดิสก์เสมือน
สมมติว่าคุณต้องการลดขนาดดิสก์ลง 40 GB ดังนั้นขนาดไดรฟ์ข้อมูลต้องลดลง 40960 MB (40 GB x 1024
). ป้อนค่านี้ในช่องที่เกี่ยวข้องของ Shrink Volume ตัวช่วยสร้าง หลังจากลดขนาดพาร์ติชั่นแล้ว จะมี unallocated . บางส่วน พื้นที่ (40 GB ในตัวอย่างของเรา) ทางด้านขวาของพาร์ติชันของคุณ
โปรดทราบว่าบางครั้งพาร์ติชันการกู้คืนของ OEM หรือ Windows อาจป้องกันการขยายหรือลดขนาดดิสก์
ใน Linux คุณสามารถลดขนาดพาร์ติชั่นโดยใช้ parted หากใช้โลจิคัลวอลุ่ม LVM สถานการณ์จำลองจะแตกต่างกัน
ลดขนาดไฟล์ VMDK ของเครื่องเสมือน VMWare
จากนั้นลดขนาดไฟล์ VMDK บนระบบไฟล์ VMWare VMFS
- ปิดเครื่องเสมือนที่คุณต้องการลดขนาดดิสก์
- ใช้ SSH เชื่อมต่อกับคอนโซลของโฮสต์ ESXi ที่ลงทะเบียน VM (คุณสามารถใช้ putty หรือไคลเอ็นต์ Windows SSH ในตัว)
- ไปที่ไดเร็กทอรีที่ไฟล์ VMDK ของ VM ของคุณตั้งอยู่ (คุณสามารถรับพาธไปยังไดเร็กทอรีในคุณสมบัติดิสก์เสมือนของไคลเอ็นต์ vSphere):
cd /vmfs/volumes/datastore/test-VM
- แสดงเนื้อหาของไฟล์การกำหนดค่าดิสก์เสมือน (*.vmdk) โดยใช้ cat คำสั่ง:
# cat test_vm_3.vmdk
ขนาดของดิสก์ vmdk แสดงใน คำอธิบาย #Extent ส่วน (หลังอักขระ RW) ในกรณีนี้คือ 167772160 (80 GB *1024*1024*1024 / 512
); - ฉันต้องการลดดิสก์ VMDK ของฉันจาก 80 เป็น 40 GB แสดงว่าต้องระบุ 83886080 (
40 GB*1024*1024*1024 / 512
) ในส่วนคำอธิบายขอบเขต กำหนดขนาดใหม่ของดิสก์เสมือนโดยใช้โปรแกรมแก้ไขข้อความ (vi หรือ nano) - ฉันกำลังใช้ vi:
# vi test_vm_3.vmdk
- ใช้แป้นลูกศรลงไปยังบรรทัดที่มีขนาดดิสก์แล้วกด
i
(เพื่อแก้ไข) ระบุขนาดใหม่ของดิสก์เสมือน กด ESC เพื่อออกจากโหมดแก้ไขแล้วพิมพ์:wq
-> Enter เพื่อบันทึกการเปลี่ยนแปลง; - จากนั้นก็แค่โคลนหรือย้าย (โดยใช้ Storage vMotion) เครื่องเสมือนไปยังที่เก็บข้อมูลอื่น หลังจากย้ายไฟล์เครื่องเสมือน ขนาดใหม่ของดิสก์เสมือนจะแสดงในคุณสมบัติ เคล็ดลับ . หากคุณมีโฮสต์ ESXi เพียงโฮสต์เดียว หนึ่ง VMFS datastore คุณจะใช้ Storage vMotion ไม่ได้ จากนั้น คุณสามารถโคลน vmdk โดยใช้คำสั่งนี้:
vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
ลบดิสก์ VMDK ต้นทาง โคลนดิสก์ VMDK ที่รีมอีกครั้งและเปลี่ยนชื่อโดยระบุต้นฉบับ ชื่อ:rm test_vm_3.vmdk
rm test_vm_3-flat.vmdk
vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk - ตรวจสอบให้แน่ใจว่าขณะนี้ขนาดใหม่ของดิสก์เสมือนแสดงอยู่ในคุณสมบัติ VM
- จากนั้นเริ่ม VM เข้าสู่ระบบ guest OS และตรวจสอบให้แน่ใจว่าพื้นที่ที่ไม่ได้จัดสรรหายไป และลดขนาดดิสก์ลง
- การลดขนาดดิสก์เสมือนโดยการแปลงเครื่องเสมือนโดยใช้ VMware vCenter Converter . ระบุขนาดดิสก์ที่เล็กกว่าขนาดต้นทางที่จะแปลง (เราจะแสดงในหัวข้อถัดไป)
- คุณสามารถโคลนเนื้อหาดิสก์เสมือนได้โดยใช้ซอฟต์แวร์ของบริษัทอื่น (เช่น Acronis True Image หรือ Symantec Ghost32) งานนี้ดำเนินการโดยการเพิ่มดิสก์ใหม่ที่มีขนาดเล็กลงในเครื่องเสมือนและการโคลนเนื้อหาของดิสก์ที่มีขนาดใหญ่กว่านั้น คุณสามารถนำดิสก์ที่ใหญ่กว่าออกได้
ย่อ VMDK โดยใช้ VMware vCenter Converter Standalone
อีกวิธีหนึ่งในการลดขนาดดิสก์เสมือนของเครื่องเสมือน VMWare คือการใช้เครื่องมือ GUI ฟรี VMware vCenter Converter Standalone
ข้อเสีย:
- การแปลง V2V ช้า
- ต้องมีพื้นที่ว่างเพียงพอในที่เก็บข้อมูลเพื่อบันทึก VM ใหม่
- เครื่องเสมือนใหม่จะมีที่อยู่ MAC ใหม่
ข้อดี:
- คุณไม่จำเป็นต้องเปิดคอนโซลโฮสต์ vCenter หรือ ESXi
- มีการสร้างสำเนา VM ที่ถูกต้อง
- ดิสก์ต้นทางไม่สามารถเสียหายได้ในกรณีที่มีข้อผิดพลาดในการตั้งค่างานการแปลง
ระบุที่อยู่โฮสต์ ESXi
เลือก VM ต้นทาง
ตั้งค่าพารามิเตอร์ของ VM ใหม่ของคุณ
ไปที่โหมดแก้ไขดิสก์ (ข้อมูลที่จะคัดลอก -> แก้ไข)
เลือกโหมดคัดลอก:เลือกเล่มที่จะคัดลอก .
ระบุขนาดดิสก์ใหม่สำหรับ VM ใหม่ของคุณ อย่างที่คุณเห็น 48 GB ถูกครอบครองใน guest OS และขนาดดิสก์คือ 150 GB เราจะลดขนาดของดิสก์เสมือนเป็น 60 GB
เรียกใช้กระบวนการแปลง VM จากนั้นคุณสามารถปิด VM ต้นทางและเปิดเครื่องใหม่ได้ ตรวจสอบให้แน่ใจว่าขนาดดิสก์ถูกลดขนาดลง หลังจากนั้น VM เดิมอาจถูกลบออก
หมายเหตุ . ใน Microsoft Hyper-V เวอร์ชันล่าสุด คุณสามารถใช้เครื่องมือปรับขนาด Hyper–V Online VHDX เพื่อปรับขนาดดิสก์เสมือนแบบไดนามิก (ทั้งการขยายและย่อขนาด)