วิธีลดขนาดของดิสก์ VMware


15

ดิสก์อิมเมจ VMware ของฉันเพิ่มเป็นขนาดฟิสิคัลไฟล์ 5GB แล้ว มันเป็นดิสก์ที่กำลังเติบโตแบบไดนามิกที่มีความจุสูงสุด 8GB ฉันทำความสะอาดบางสิ่งใน Linux distro และตอนนี้ข้างในนั้นใช้พื้นที่ 3GB เห็นได้ชัดว่าขนาดไฟล์จริงไม่หดกลับอัตโนมัติ มีวิธี (ถ้าเป็นไปได้โดยไม่เสียค่าใช้จ่าย) เพื่อลดขนาดดิสก์นี้กลับเป็น ~ 3GB หรือไม่?

ฉันต้องการสิ่งนี้เพื่อให้พอดีกับภาพบนดีวีดี

คำตอบ:


21

มีสามขั้นตอน:

  1. จัดเรียงข้อมูล (ไม่จำเป็นต้องยกเลิกการต่อเชื่อม / ใหม่)

    sudo e4defrag /

    ละเว้นข้อผิดพลาดใด ๆ ไฟล์บางไฟล์เช่น symlink และไฟล์อุปกรณ์ไม่สามารถจัดระเบียบได้

  2. เติมพื้นที่ที่ไม่ได้ใช้ทั้งหมดให้เป็นศูนย์เพื่อให้ VMware รู้ว่ามันไม่ได้ใช้จริง:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  3. เรียกใช้การดำเนินการย่อขนาด:

    sudo vmware-toolbox-cmd disk shrinkonly


นี่เป็นคำตอบที่ถูกต้องสำหรับ VMWare Workstation ขอบคุณคนช่วยฉันมาก!
Clonkex

แก้ไข. ทำงานได้ดีบน VMWare Workstation 14, Centos 7 Guest
odiszapc

1
ระวังถ้าคุณเรียกใช้งานด้วยโวลุ่มภายนอกใด ๆ ที่ติดตั้งอยู่เช่น S3 - คำสั่ง zero fill จะลองสร้าง wipefile ขนาด 256TB ในที่เก็บ S3 ของคุณ ...
paj

ทำงานให้ฉันสำหรับโฮสต์ Windows 10 และแขก Ubuntu 16 ตอนแรกฉันคิดว่าขั้นตอนที่ 3 ควรทำงานบนโฮสต์ แต่ฉันผิด หลังจากทำตามขั้นตอนทั้งหมดแล้วฉันยังเรียกใช้การตรวจสอบระบบไฟล์ตามที่อธิบายไว้ที่นี่: askubuntu.com/a/953750/590877
Alex Che

1
+1 อย่างไรก็ตามฉันคิดว่าการใช้ zerofree สำหรับขั้นตอนที่ 2 จะเร็วขึ้นและสะอาดขึ้นมากขึ้น: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Étienne

15

ฉันพบวิธีแก้ปัญหาแล้ว - คุณต้องกระชับฮาร์ดไดรฟ์ของคุณ:

เครื่องเสมือน - การตั้งค่า - ทั่วไป - ทำความสะอาดเครื่องเสมือน


ว้าว. ในที่สุดฉันก็พบคำตอบนี้ แต่ ... ทำไมการบีบอัดดิสก์เสมือนจึงไม่เรียกคืนพื้นที่ว่างจริง
Wizard79

8
คุณต้องทำสิ่งนี้จากภายใน Ubuntu OS ของแขก (สมมติว่าคุณติดตั้งเครื่องมือ VMware): "vmware-toolbox-cmd disk shrink /" ซึ่งควรทำงาน
DH4

สิ่งนี้ไม่ได้ใช้กับ ESXi เพื่อที่เห็นคำตอบของฉันด้านล่าง
Collin Chaffin

3

เปิด VMware Toolbox ใน guest (เป็น root) และลดขนาดดิสก์ (เอกสาร)


หากคุณไม่มีเครื่องมือ VMware คุณสามารถย่อขนาดดิสก์ด้วยตนเองในสองขั้นตอน ครั้งแรกให้ล้างพื้นที่ว่างในดิสก์เสมือนใช้เครื่องมือเช่นzerofree Zerofree พร้อมใช้งานใน Ubuntuแต่เนื่องจากต้องการให้ระบบไฟล์ guest OS ติดตั้งแบบอ่านอย่างเดียวคุณอาจต้องการเรียกใช้จากซีดีสด รายงานMagic Part ที่รวม zerofree

หลังจาก zeroing พื้นที่ว่างเปิดการตั้งค่าเครื่องเสมือนและกระชับดิสก์เสมือน


3
UI กล่องเครื่องมือ vmware ไม่มาก แต่คุณยังสามารถใช้: "ดิสก์ vmware-toolbox-cmd ลดขนาด /" ซึ่งควรทำงาน
DH4

3

ใช้

sudo vmware-toolbox-cmd disk shrinkonly

จากพรอมต์คำสั่งในแขกของ Ubuntu

(ทดสอบบน Ubuntu 14.04 LTS guest + โฮสต์ Windows 10 + VMWare Workstation 12.1.1)


1

VMWare ฮาร์ดดิสก์ปรับขนาด :

ขยายฮาร์ดดิสก์เสมือนแบบไดนามิกใน VMWare เป็นเรื่องง่ายและไม่ไม่ต้องการเครื่องมือบรรทัดคำสั่งที่ตั้งอยู่โดยเริ่มต้นในvmware-vdiskmanager.exeC:\Program Files\VMware\VMware Workstation\

สำหรับการปรับขนาดใช้คำสั่งต่อไปนี้ (เปิดพรอมต์คำสั่งโดยกด WIN + R และป้อน cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

ขั้นตอน :

ขั้นตอนต่อไปนี้คือ:

  • ดาวน์โหลดได้ที่นี่
  • ติดตั้ง
  • เปิด
  • เลือกพาร์ติชันคลิกปรับขนาด / ย้ายลากที่จับให้เต็มความกว้าง
  • คลิกนำไปใช้
  • ยอมรับการรีบูต
  • ในระหว่างการเริ่มต้นอย่ากดปุ่มใด ๆ
  • ปล่อยให้โมดูลบูทขึ้นทำงานได้
  • ตรวจสอบว่าขนาดพาร์ติชันระบบ Windows ของคุณเพิ่มขึ้น

สำหรับบทสรุปภาพของขั้นตอนและข้อมูลเพิ่มเติมโปรดดูที่นี่


1

ขั้นตอนเหล่านี้ทำงานอย่างสมบูรณ์แบบสำหรับฉัน:

1) พื้นที่ที่ไม่ได้ใช้เติมศูนย์

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2) ลดขนาดดิสก์พร้อมกล่องเครื่องมือ vmware

sudo vmware-toolbox-cmd disk shrink /

ทดสอบบน Ubuntu 16.04, VMware Workstation 12.1.0 Player, โฮสต์ Windows 7


0

การลดขนาดดิสก์เป็นไปได้ใน ESXi

  1. ค้นหาไฟล์ขนาดใหญ่และลบทิ้ง

    find / -type f -size + 50M

  2. จัดเรียงข้อมูล (ไม่จำเป็นต้องยกเลิกการต่อเชื่อม / ติดตั้งใหม่) ละเว้นข้อผิดพลาดใด ๆ ไฟล์บางไฟล์เช่น symlink และไฟล์อุปกรณ์ไม่สามารถจัดระเบียบได้

    sudo e4defrag /

  3. เติมพื้นที่ที่ไม่ได้ใช้ทั้งหมดให้เป็นศูนย์เพื่อให้ VMware รู้ว่ามันไม่ได้ใช้จริง:

    วันถ้า = / dev / ศูนย์ของ = wipefile bs = 1M; ซิงค์; rm wipefile

  4. เรียกใช้การดำเนินการย่อขนาด: หาก 4 ล้มเหลวดำเนินการถึง 5

    sudo vmware-toolbox-cmd disk ลดขนาดอย่างเดียว

  5. รีบูตระบบ linux ด้วยตัวเลือกลองและแก้ไขตารางพาร์ติชันด้วย gparted ย่อขนาดระบบไฟล์รูทและลบ & ย้ายพาร์ทิชัน swap ใกล้กับรูทพาร์ติชัน

  6. SSH ถึง ESXi และออกคำสั่งนี้:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. เราจำเป็นต้องแก้ไขไฟล์ * .vmdk หลังจากตัวอักษร RW กำหนดขนาดของดิสก์เสมือน VMware (VMDK)

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. ย้ายข้อมูลไปยังที่เก็บข้อมูลอื่นเพื่อแสดงขนาดใหม่


(1) คำถามไม่ได้เกี่ยวกับการทำให้ระบบไฟล์ใช้งานไม่ได้ มันบอกว่า OP ได้ทำไปแล้ว ดังนั้นfindคำสั่งของคุณไม่เกี่ยวข้องจริงๆ (2) vmkfstools -Kทำอะไร (3) แก้ไขไฟล์ด้วยตนเอง? จริงๆ? (4) ฉันไม่เข้าใจคำแนะนำของคุณสำหรับสิ่งที่ผู้ใช้ต้องการเปลี่ยนแปลงในไฟล์ (5) คุณกำลังพูดเกี่ยวกับการย้ายไปยังที่เก็บข้อมูลอื่น? (0) สิ่งที่คุณพูดส่วนใหญ่ได้รับการคุ้มครองแล้ว …………………………………………………………ทุก…ไม่ตอบด้วยความเห็น แก้ไข  คำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
สกอตต์

ฉันเป็นคนที่ VMware (ฉันคิดว่าทุกคนพยายามใด ๆ นี้ควรจะเป็น) ดังนั้นไม่เพียง แต่คำตอบนี้เพียงคนเดียวที่ใช้กับ ESXi (ตั้งแต่ ESXi ไม่รองรับการลดขนาด linux แขกผ่าน vmtools) แต่ท้ายที่สุดก็สมบูรณ์แบบ ความรู้สึกกับฉัน จากขั้นตอนที่ 7 ไม่เพียง แต่ไม่จำเป็นเท่านั้น แต่ยังไม่ถูกต้อง เนื่องจากการลดขนาดไม่เปลี่ยนขนาด VOLUME ที่แท้จริงคุณเพียงหยุดหลังจากขั้นตอนที่ 6 ขั้นตอนที่ 8 (การย้ายที่เก็บข้อมูล) จะถูกใช้เมื่อคุณต้องการลดขนาดดิสก์โดยไม่ต้องรัน vmkfstools ซึ่งดูแลโดยใช้แรงบังคับซึ่งเป็นเหตุผลว่า 5a-SHUT DOWN guest
Collin Chaffin

ดูคำตอบของฉันด้านบน cmm-based cmd ที่แสดงรายการในขั้นตอนที่ 5 นั้นไม่ถูกต้องเนื่องจากมันไม่เคยได้รับการสนับสนุน
Collin Chaffin

0

การทำให้ผอมบาง (ลดขนาด) ดิสก์ VMDK บนแขก ESXi / vSphere Linux

หมายเหตุ: "ลดขนาด" มักใช้แทนกันเพื่ออ้างถึงกระบวนการลดขนาดของไฟล์ดิสก์แบบบาง VMware ใช้คำว่า "ลดขนาด" เพื่ออ้างถึงการลดขนาดต้นแบบของดิสก์ที่มีให้กับผู้เยี่ยมชมและ "การทำให้ผอมบาง" เนื่องจากกระบวนการส่วนใหญ่มักจะใช้การปรับขนาดพื้นที่ที่ไม่ได้ใช้ใหม่โดยไม่เปลี่ยนขนาดที่มีอยู่

เนื่องจาก ESXi ไม่รองรับการย่อขนาด vmtools บน Linux แขกจึงต้องใช้ขั้นตอนต่อไปนี้ ดูลิงค์อ้างอิงด้านล่างสำหรับข้อมูลเพิ่มเติม

  1. (ถ้าเป็นไปได้) หยุดแอปพลิเคชันและบริการที่เน้นการเขียนดิสก์ทั้งหมดเนื่องจากขั้นตอนต่อไปนี้จะเติมปริมาณเป้าหมายในไม่ช้า

  2. จัดเรียงข้อมูลปริมาณเป้าหมาย VMDK และละเว้นข้อผิดพลาดใด ๆ ที่เป็น symlink / อุปกรณ์ไฟล์ / etc ไม่สามารถจัดระเบียบได้

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. zero-fill space ที่ไม่ได้ใช้ทั้งหมด:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. ปิดและปิดแขก

  2. SSH ไปยังโฮสต์ ESXi และออกคำสั่งเหล่านี้:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. เปิดเครื่องแขก

แหล่ง

https://kb.vmware.com/s/article/1002019

การลบไฟล์ในระบบไฟล์ส่วนใหญ่จะไม่ลบอย่างสมบูรณ์ เพียงแค่ไฟล์ตารางจะมีการเปลี่ยนแปลง การใช้ยูทิลิตี้ลบไฟล์ที่ปลอดภัยของ freeware มีประโยชน์เช่นยางลบหรือ SDelete เพื่อลบพื้นที่ว่างให้เป็น 'ศูนย์' พื้นที่ว่างบนไดรฟ์ทำให้การล้างพื้นที่ว่างของข้อมูลเป็นไปอย่างมีประสิทธิภาพ เมื่อถึงตอนนั้นดิสก์จะบางลงอย่างถูกต้อง จากนั้นคุณสามารถใช้คำสั่ง vmkfstools -K (ESXi / ESX 4.1 และใหม่กว่า) เพื่อทำการเรียกคืนบล็อกให้สมบูรณ์หรือใช้ Storage vMotion เพื่อโอนย้ายเครื่องเสมือนไปยังที่เก็บข้อมูลด้วยขนาดบล็อก VMFS ที่แตกต่างกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.