Cách giảm kích thước đĩa VMware


14

Đĩa VMware hình ảnh Ubuntu của tôi đã tăng lên kích thước tệp vật lý 5GB. Đây là một đĩa phát triển linh hoạt với dung lượng tối đa 8GB. Tôi đã dọn dẹp một số thứ trong Linux distro và bây giờ bên trong nó chiếm 3GB. Rõ ràng kích thước tệp vật lý không tự động co lại. Có cách nào (nếu có thể miễn phí) để thu nhỏ đĩa này trở lại ~ 3GB không?

Tôi cần điều này để phù hợp với hình ảnh trên DVD.

Câu trả lời:


21

Có ba bước:

  1. Chống phân mảnh (không cần hủy / nhắc lại bất cứ điều gì)

    sudo e4defrag /

    Bỏ qua mọi lỗi. Một số tệp như liên kết tượng trưng và tệp thiết bị không thể được phân mảnh.

  2. Không lấp đầy tất cả không gian chưa sử dụng để VMware biết nó thực sự không được sử dụng:

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

  3. Chạy thao tác thu nhỏ:

    sudo vmware-toolbox-cmd disk shrinkonly


Đây là câu trả lời chính xác cho VMWare Workstation. Cảm ơn người đàn ông, đã giúp tôi rất nhiều!
Clonkex

Chính xác. Hoạt động tốt trên VMWare Workstation 14, Centos 7 Guest
odiszapc

1
hãy cẩn thận nếu bạn chạy nó với bất kỳ khối lượng gắn ngoài nào như S3 - lệnh zero zero sẽ thử và tạo một wipefile 256TB trong thùng S3 của bạn ...
pyjama

Làm việc cho tôi cho máy chủ Windows 10 và khách Ubuntu 16. Lúc đầu tôi nghĩ rằng bước 3 nên được chạy trên máy chủ, nhưng tôi đã sai. Sau tất cả các bước, tôi cũng chạy kiểm tra hệ thống tập tin như được mô tả ở đây: askubfox.com/a/953750/590877
Alex Che

1
+1, tuy nhiên tôi nghĩ rằng sử dụng zerofree cho bước 2 sẽ nhanh hơn và gọn gàng hơn nhiều: manpages.ubfox.com/manpages/xenial/man8/zerofree.8.html
Étienne

15

Tôi đã tìm thấy giải pháp - bạn phải thu gọn ổ cứng của mình:

Máy ảo - Cài đặt - Chung - Dọn dẹp Máy ảo


Ồ Cuối cùng tôi đã tìm thấy câu trả lời này. Nhưng ... tại sao việc nén đĩa ảo không thực sự lấy lại không gian trống?
Wizard79

8
Bạn cần thực hiện việc này từ bên trong hệ điều hành Ubuntu khách (giả sử bạn đã cài đặt VMware Tools): "vmware-toolbox-cmd đĩa thu nhỏ /" sẽ thực hiện công việc.
DH4

Điều này không áp dụng cho ESXi. Đối với điều đó, xem câu trả lời của tôi dưới đây.
Collin Chaffin

3

Mở VMware Toolbox trong máy khách (với quyền root) và thu nhỏ đĩa. (Tài liệu)


Nếu bạn không có VMware Tools, bạn có thể thu nhỏ đĩa theo cách thủ công theo hai bước. Đầu tiên, xóa không gian trống trên đĩa ảo bằng công cụ như zerofree . Zerofree có sẵn trong Ubuntu , nhưng vì nó yêu cầu hệ thống tệp hệ điều hành khách phải được gắn kết chỉ đọc, bạn có thể muốn chạy nó khỏi đĩa CD trực tiếp. Magic chia tay được báo cáo bao gồm zerofree.

Sau khi lấy hết dung lượng trống, mở Cài đặt máy ảo và nén đĩa ảo.


3
UI hộp công cụ vmware không còn nữa, nhưng bạn vẫn có thể sử dụng: "vmware-toolbox-cmd đĩa thu nhỏ /" sẽ thực hiện công việc.
DH4

3

Sử dụng

sudo vmware-toolbox-cmd disk shrinkonly

từ dấu nhắc lệnh trong máy khách Ubuntu của bạn.

(Đã thử nghiệm trên Ubuntu 14.04 LTS khách + Máy chủ Windows 10 + Máy trạm VMWare 12.1.1)


1

Thay đổi kích thước ổ cứng VMWare :

Mở rộng ổ cứng ảo động trong VMWare rất dễ dàng và không còn yêu cầu công cụ dòng lệnh được vmware-vdiskmanager.exeđặt mặc định trong C:\Program Files\VMware\VMware Workstation\.

Để thay đổi kích thước, sử dụng lệnh sau (Mở dấu nhắc lệnh bằng cách nhấn WIN + R và nhập cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Thủ tục :

Các bước sau đây là:

  • Tải về tại đây
  • Tải về
  • Mở
  • Chọn phân vùng, Nhấp vào Thay đổi kích thước / Di chuyển, Kéo tay cầm đến toàn bộ chiều rộng của nó
  • Nhấp vào Áp dụng
  • Đồng ý khởi động lại
  • Trong quá trình khởi động, không nhấn bất kỳ phím nào
  • Hãy để mô-đun khởi động thực hiện nhiệm vụ của nó
  • Kiểm tra xem kích thước phân vùng hệ thống Windows của bạn tăng lên.

Để biết danh sách các bước và thông tin bổ sung, xem tại đây .


0

Những bước này làm việc hoàn hảo cho tôi:

1) Không lấp đầy không gian không sử dụng

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

2) Thu nhỏ đĩa với hộp công cụ vmware

sudo vmware-toolbox-cmd disk shrink /

Đã thử nghiệm trên Ubuntu 16.04, Trình phát VMware Workstation 12.1.0, Máy chủ Windows 7


0

Có thể thu hẹp đĩa trên ESXi.

  1. Tìm tập tin lớn và xóa chúng.

    tìm / -type f -size + 50M

  2. Chống phân mảnh (không cần hủy / trả lại bất cứ điều gì). Bỏ qua mọi lỗi. Một số tệp như liên kết tượng trưng và tệp thiết bị không thể được phân mảnh.

    sudo e4defrag /

  3. Không lấp đầy tất cả không gian chưa sử dụng để VMware biết nó thực sự không được sử dụng:

    dd if = / dev / zero of = wipefile bs = 1M; đồng bộ hóa; rm wipefile

  4. Chạy thao tác thu nhỏ: Nếu 4 thất bại, tiến hành 5.

    sudo vmware-toolbox-cmd đĩa co lại

  5. Khởi động lại hệ thống linux với tùy chọn thử và chỉnh sửa bảng phân vùng với gparted. Thu nhỏ hệ thống tập tin gốc và xóa và di chuyển phân vùng trao đổi gần với phân vùng gốc.

  6. SSH tới ESXi và ban hành lệnh này:

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

  7. Chúng ta cần chỉnh sửa tệp * .vmdk. Sau các chữ cái RW, xác định kích thước của đĩa ảo VMware (VMDK)

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

  8. Di chuyển nó sang kho dữ liệu khác để phản ánh kích thước mới.


(1) Câu hỏi không phải là làm thế nào để giảm mức sử dụng hệ thống tệp; Nó nói rằng OP đã làm điều đó. Vì vậy, findlệnh của bạn không thực sự có liên quan. (2) Làm gì vmkfstools -K? (3) Chỉnh sửa thủ công một tập tin? Có thật không? (4) Tôi không hiểu hướng dẫn của bạn về những thay đổi người dùng cần thực hiện trong tệp. (5) Bạn đang nói gì về việc di chuyển sang kho dữ liệu khác? (0) Hầu hết những gì bạn nói đã được bảo hiểm. Rất khó khăn khi bạn không trả lời bình luận; chỉnh sửa  câu trả lời của bạn để làm cho nó rõ ràng và đầy đủ hơn.
Scott

Chà, tôi là một người của VMware (tôi nghĩ mọi người cũng cố gắng như vậy) nên câu trả lời này không chỉ áp dụng cho ESXi (vì ESXi KHÔNG hỗ trợ thu nhỏ khách linux qua vmtools) mà cuối cùng cũng hoàn hảo ý nghĩa với tôi Như đã nói, bước 7 không chỉ không cần thiết, nó chỉ không chính xác. Vì việc thu hẹp không thay đổi kích thước ĐIỆN ÁP thực tế, bạn chỉ cần dừng lại sau bước 6. Bước 8 (di chuyển lưu trữ) chỉ được sử dụng khi bạn muốn thu nhỏ đĩa mà KHÔNG chạy vmkfstools, điều này buộc phải giải quyết vấn đề đó là lý do tại sao giải pháp đó cũng yêu cầu bước đó 5a-TẮT XUỐNG khách.
Collin Chaffin

Xem câu trả lời của tôi ở trên. Các cmd dựa trên vmtools được liệt kê trong bước 5 cũng không chính xác vì nó không bao giờ được hỗ trợ (hoặc thậm chí hoạt động) trên kịch bản dựa trên máy chủ BẤT K ES ESXi.
Collin Chaffin

0

Làm loãng (thu nhỏ) đĩa VMDK trên ESXi / vSphere Linux Khách

Lưu ý: "Thu nhỏ" thường được sử dụng thay thế cho nhau để chỉ quy trình giảm kích thước của tệp đĩa mỏng. VMware sử dụng thuật ngữ "thu nhỏ" để chỉ việc giảm kích thước cơ bản của đĩa có sẵn cho khách và "làm mỏng" vì quá trình này thường có xu hướng sử dụng để lấy lại không gian chưa sử dụng mà không thay đổi kích thước sẵn có bên dưới.

Vì ESXi không hỗ trợ thu hẹp dựa trên vmtools trên các máy khách Linux, nên các bước sau đây phải được sử dụng. Xem liên kết tham khảo dưới đây để biết thêm thông tin.

  1. (nếu có thể) Dừng tất cả các ứng dụng và dịch vụ chuyên sâu ghi đĩa vì các bước sau đây sẽ lấp đầy khối lượng đích trong giây lát

  2. (Các) khối lượng phân mảnh trên VMDK đích và bỏ qua mọi lỗi như các liên kết / tệp thiết bị / v.v. không thể phân mảnh.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Không lấp đầy tất cả không gian chưa sử dụng:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Tắt máy và tắt nguồn khách

  2. SSH đến máy chủ ESXi và đưa ra các lệnh sau:

    # 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. Quyền lực của khách

Nguồn

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

Xóa các tệp trong hầu hết các hệ thống tệp sẽ không loại bỏ hoàn toàn chúng; bảng chỉ đơn thuần sẽ được thay đổi. Việc sử dụng các tiện ích xóa tệp an toàn phần mềm miễn phí rất hữu ích, chẳng hạn như Eraser hoặc SDelete để tạo khoảng trống để 'zero' không gian trống trên ổ đĩa, xóa không gian dữ liệu trống một cách hiệu quả. Sau đó, đĩa có thể được làm mỏng đúng cách. Sau đó, bạn có thể sử dụng lệnh vmkfstools -K (ESXi / ESX 4.1 trở lên) để hoàn thành việc lấy lại khối hoặc sử dụng Storage vMotion để di chuyển máy ảo sang kho dữ liệu với kích thước khối VMFS khác nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.