การย่อขนาดดิสก์ไม่สามารถใช้ได้กับแขก ESXi


11

ทุกคน EHLO! โพสต์แรกของฉันในเครือข่าย StackOverflow :)

เรากำลังทำงานบางโครงสร้างพื้นฐาน ESXi 5.0 / vCenter ไปยังโฮสต์ส่วนใหญ่ Debian 6 / amd64 ระบบพักที่มีพาร์ทิชัน ext3 และopen-vm-toolsรวบรวมจากแหล่งที่มาต่อเดเบียนข้อผิดพลาด 471784

มีปัญหาที่เห็นได้รับการยกขึ้นทั่วอินเทอร์เน็ต แต่ไม่มีคำตอบที่สรุปได้ทุกที่

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

root@linux64:~# vmware-toolbox-cmd disk list
Shrink disk is disabled for this virtual machine.

Shrinking is disabled for linked clones, parents of linked clones,
pre-allocated disks, snapshots, or due to other factors.
See the User's manual for more information.

(โดยวิธีการสิ่งที่ "ปัจจัยอื่น ๆ " คืออะไรและตันของเอกสารสีขาวและคู่มือทางเทคนิคเป็นคู่มือผู้ใช้หรือไม่ :)

ฉันรู้ว่าฉันสามารถพาร์ทิชันด้วยศูนย์ (อันที่จริงฉันใช้shred -fuzn0เมื่อลบไฟล์ขนาดใหญ่) จากนั้นปิดแขกที่มีปัญหาและใช้วิธีการต่าง ๆ เช่นการvmkfstoolsโคลนนิ่งหรือ vMotioning ดิสก์ในโหมด thin-provision ฯลฯ แต่ทั้งหมด ของพวกเขาอาจได้รับโทษการหยุดทำงานสำหรับแขกที่กำลังหลบเลี่ยงหรือส่งผลให้มีการย้ายข้อมูลระหว่าง datastores และ / หรือโฮสต์ที่ไม่มีเหตุผล


และคำตอบคือ: ไม่มีการลดขนาดลงภายใต้ ESX / ESXi (เหมือนเวอร์ชั่น 5)

เอกสารอ่าน:

สิ่งสำคัญไม่อนุญาตให้มีการลดขนาดดิสก์ในสถานการณ์ต่อไปนี้:

  1. เครื่องเสมือนโฮสต์บนเซิร์ฟเวอร์ ESX / ESXi เซิร์ฟเวอร์ ESX / ESXiสามารถลดขนาดของดิสก์เสมือนได้เฉพาะเมื่อมีการส่งออกเครื่องเสมือน อย่างไรก็ตามเนื้อที่ว่างบนดิสก์เสมือนบนเซิร์ฟเวอร์ ESX / ESXi ไม่เปลี่ยนแปลง

  2. เครื่องเสมือนมีระบบปฏิบัติการMac guest

  3. คุณปันส่วนพื้นที่ดิสก์ทั้งหมดไปยังดิสก์เสมือนเมื่อคุณสร้างขึ้น

  4. เครื่องเสมือนที่มีภาพรวม

  5. เครื่องเสมือนเป็นโคลนที่เชื่อมโยงหรือ แม่ของโคลนที่เชื่อมโยง

  6. ดิสก์เสมือนเป็นอิสระดิสก์ใน nonpersistentโหมด

  7. ระบบไฟล์เป็นระบบไฟล์ journalingเช่นext4, XFS หรือ jfsระบบไฟล์

ไม่น่าแปลกใจที่มีเป็นตัวเลือกที่จะหดตัวลงใน VMware Workstation แต่ไม่ได้อยู่ในลูกค้า vSphere เชื่อมต่อกับอินสแตนซ์ ESXi หรือ vCenter


2
คุณสามารถแสดงค่าของกุญแจ isol.tools.diskShrink.disable ซึ่งสามารถพบได้ในไฟล์ vmx?
cikuraku

1
มันไม่ได้อยู่ที่นั่น การเพิ่ม isol.tools.diskShrink.disable = "false" ไม่ได้เปลี่ยนแปลงอะไรเลย
NekojiruSou

คำตอบ:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf หน้า 13:

ไม่อนุญาตให้มีการลดขนาดดิสก์ในสถานการณ์ต่อไปนี้:

เครื่องเสมือนโฮสต์บนเซิร์ฟเวอร์ ESX / ESXi เซิร์ฟเวอร์ ESX / ESXi สามารถลดขนาดของดิสก์เสมือนได้เฉพาะเมื่อมีการส่งออกเครื่องเสมือน อย่างไรก็ตามเนื้อที่ว่างบนดิสก์เสมือนบนเซิร์ฟเวอร์ ESX / ESXi ไม่เปลี่ยนแปลง


เศร้า แต่เป็นจริง ...
NekojiruSou

18

ที่จริงแล้วมีวิธีการลดขนาด VM บน ESXi แม้ว่าคุณจะต้องปิด VM สำหรับมัน นี่คือวิธี:

  1. ศูนย์พื้นที่ที่ไม่ได้ใช้ทั้งหมดภายใน VM:

    dd if=/dev/zero bs=1048576 of=/zero ; sync ; rm /zero

  2. ทำเช่นเดียวกันกับจุดยึดอื่น ๆ สลับพาร์ติชั่น ฯลฯ

  3. ปิด VM

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

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

ขั้นตอนนี้จะใช้เวลาสักครู่ ... vmkfstools "punches hole" ใน VMDK ของคุณเช่น deallocates บล็อกทั้งหมดที่เต็มไปด้วยค่าศูนย์ลดจำนวน VMDK ของคุณอย่างมีประสิทธิภาพ


6
สำหรับ Windows คุณสามารถคว้าสำเนาของVirtual Server 2005แยกไฟล์Precompact.isoจากนั้นมีโปรแกรม Procompact.exe ที่จะช่วยลดความเร็วของดิสก์ที่ไม่ได้ใช้ใน Windows
คริส S

vmkfstools ไม่ทำงานเมื่อ VM อยู่ในหน่วยเก็บข้อมูล NFS
Sven

0

วิธีเดียวที่จะลดขนาด VMDK ใน vSphere ESXi คือการส่งออกหรือย้าย / จัดเก็บ vMotion ไปยังที่เก็บข้อมูลอื่น ฉันทำสิ่งนี้มากกับเซิร์ฟเวอร์ที่ใช้งานจริงที่สามารถจัดการการย้ายข้อมูล (ไม่ใช่ SQL หรือ Exchange) ผู้ดูแลระบบเซิร์ฟเวอร์ก่อนหน้านี้สร้าง VMs ทั้งหมดด้วยดิสก์ Thick Provisioned ฉันย้าย VMs จากที่เก็บหนึ่งไปยังอีกที่หนึ่งและเปลี่ยน VMDK เป็นแบบจัดเตรียมบาง ๆ

คุณยังสามารถทำ vmkfstools ได้หากเซิร์ฟเวอร์ออฟไลน์


-1

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

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

    find / -type f -size +50M

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

    sudo e4defrag /

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

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

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

    sudo vmware-toolbox-cmd disk shrinkonly

  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. ย้ายข้อมูลไปยังที่เก็บข้อมูลอื่นเพื่อแสดงขนาดใหม่

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