Thu nhỏ đĩa không hoạt động trên khách ESXi


11

EHLO mọi người! Bài đăng đầu tiên của tôi trên mạng StackOverflow :)

Chúng tôi đang chạy một số cơ sở hạ tầng ESXi 5.0 / vCenter để lưu trữ chủ yếu các hệ thống khách Debian 6 / amd64 với các phân vùng ext3 và open-vm-toolsđược biên dịch từ nguồn trên mỗi lỗi debian 471784 .

Có một vấn đề được nhìn thấy đang được nêu ra trên internet, nhưng không có câu trả lời kết luận được đưa ra ở bất cứ đâu.

Khi cố gắng thu nhỏ một đĩa được cung cấp mỏng ở chế độ liên tục độc lập, không có ảnh chụp nhanh, cha mẹ, bản sao nào, tôi luôn gặp phải lỗi sau:

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.

(Nhân tiện, "các yếu tố khác" là gì, và trong số rất nhiều sách trắng và sách hướng dẫn kỹ thuật Hướng dẫn sử dụng? :)

Tôi biết rằng tôi có thể nhồi các phân vùng bằng số không (trên thực tế, tôi sử dụng shred -fuzn0khi xóa các tệp lớn) sau đó tắt máy khách trong câu hỏi và sử dụng các phương pháp khác nhau như vmkfstools, nhân bản hoặc đĩa vMotioning xung quanh trong chế độ cung cấp mỏng, v.v. trong số họ hoặc phải chịu hình phạt thời gian chết cho khách bị trốn tránh, hoặc dẫn đến việc di chuyển dữ liệu không chính đáng giữa kho dữ liệu và / hoặc máy chủ lưu trữ.


Và câu trả lời là: Không thu hẹp theo ESX / ESXi (kể từ phiên bản 5).

Các tài liệu đọc:

QUAN TRỌNG Đĩa thu hẹp không được phép trong các trường hợp sau:

  1. Máy ảo được lưu trữ trên máy chủ ESX / ESXi. ESX / ESXi Server chỉ có thể thu nhỏ kích thước của đĩa ảo khi máy ảo được xuất. Tuy nhiên, không gian bị chiếm bởi đĩa ảo trên máy chủ ESX / ESXi không thay đổi.

  2. Máy ảo có hệ điều hành khách Mac .

  3. Bạn preallocated tất cả các không gian đĩa để đĩa ảo khi bạn tạo ra nó.

  4. Máy ảo chứa ảnh chụp nhanh .

  5. Máy ảo là một bản sao được liên kết hoặc cha mẹ của một bản sao được liên kết.

  6. Đĩa ảo là một đĩa độc lập ở chế độ không liên tục .

  7. Hệ thống tệp là một hệ thống tệp nhật ký , chẳng hạn như hệ thống tệp ext4, xfs hoặc jfs .

Không có thắc mắc có một tùy chọn để thu nhỏ trong VMWare Workstation nhưng không phải trong vSphere client kết nối với một thể hiện ESXi hoặc vCenter.


2
bạn có thể hiển thị một giá trị của khóa cô lập.tools.diskShrink.disable có thể tìm thấy trên tệp vmx không?
cikuraku

1
Nó không có ở đó. Thêm cách ly.tools.diskShrink.disable = "false" không thay đổi gì cả.
NekojiruSou

Câu trả lời:


3

http://www.vmware.com/pdf/vmware-tools-cli.pdf Trang 13:

Thu hẹp đĩa không được phép trong các trường hợp sau:

Máy ảo được lưu trữ trên máy chủ ESX / ESXi. ESX / ESXi Server chỉ có thể thu nhỏ kích thước của đĩa ảo khi máy ảo được xuất. Tuy nhiên, không gian bị chiếm bởi đĩa ảo trên máy chủ ESX / ESXi không thay đổi.


Buồn nhưng là sự thật ...
NekojiruSou

18

Trên thực tế, có một cách để thu nhỏ VM trên ESXi, mặc dù bạn cần tắt VM cho nó. Đây là cách thực hiện:

  1. Không có tất cả không gian chưa sử dụng bên trong VM:

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

  2. Làm tương tự với các điểm gắn kết khác, phân vùng trao đổi, v.v.

  3. Tắt máy ảo.

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

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

Điều này sẽ mất một chút thời gian ... vmkfstools "đục lỗ" bên trong VMDK của bạn, ví dụ: giải phóng tất cả các khối chứa đầy số không, thu nhỏ VMDK của bạn một cách hiệu quả.


6
Đối với Windows, bạn có thể lấy một bản sao của Virtual Server 2005 , trích xuất tệp Precompact.iso từ nó, nó chứa chương trình Procompact.exe sẽ loại bỏ tất cả tốc độ đĩa không sử dụng trong Windows.
Chris S

vmkfstools không hoạt động khi VM nằm trên bộ lưu trữ NFS.
Sven 31415

0

Cách duy nhất để thu nhỏ VMDK trong vSphere ESXi là xuất hoặc di chuyển / Lưu trữ vMotion sang kho dữ liệu khác. Tôi làm điều này rất nhiều với các máy chủ trực tiếp có thể xử lý việc di chuyển (không phải SQL hoặc Exchange). Một quản trị viên máy chủ trước đó đã xây dựng tất cả các máy ảo với các đĩa được cấp phép dày. Tôi di chuyển các VM từ kho dữ liệu này sang kho dữ liệu khác và thay đổi VMDK thành được cung cấp mỏng.

Bạn cũng có thể thực hiện vmkfstools nếu máy chủ ngoại tuyến.


-1

Có thể thu nhỏ đĩa trên ESXi.

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

    find / -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; sync; 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 disk shrinkonly

  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/volumes/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.

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.