Trong bài viết này, chúng tôi sẽ giới thiệu cách giảm dung lượng tệp đĩa ảo (vmdk) của máy ảo chạy trên VMWare ESXi. Không giống như việc mở rộng đĩa của máy ảo VMWare, bạn có thể thực hiện ngay lập tức mà không cần tắt máy ảo, việc giảm kích thước của tệp vmdk trên VMWare ESXi hypervisor sẽ phức tạp hơn và bạn không thể làm điều đó thông qua vSphere Giao diện đồ họa Web Client. Ứng dụng khách vSphere không cho phép bạn chỉ định kích thước đĩa ảo nhỏ hơn.
Quan trọng . Hướng dẫn này không phải là giải pháp được hỗ trợ chính thức về cách giảm kích thước của đĩa vmdk trong VMWare. Tuy nhiên, tôi đã sử dụng phương pháp này hàng chục lần. VMWare ESXi 6.7 được sử dụng trong bài viết này.
Trước khi giảm kích thước của đĩa ảo, hãy thực hiện như sau trên máy chủ VMWare ESXi của bạn:
- Xóa tất cả ảnh chụp nhanh của máy ảo (nếu không, bạn có thể làm hỏng đĩa ảo);
- Tạo một bản sao lưu đầy đủ của máy ảo hoặc tạo bản sao của vmdk và các tệp phẳng mà bạn muốn thu nhỏ. Sử dụng các lệnh sau:
cp vmname.vmdk backup_vmname.vmdk
cp vmname-flat.vmdk backup_vmname-flat.vmdk
Quy trình giảm kích thước đĩa ảo bao gồm hai bước:
- Thu hẹp phân vùng bên trong hệ điều hành khách;
- Giảm kích thước tệp VMDK của máy ảo VMWare trên kho dữ liệu VMFS (NFS).
Làm cách nào để thu nhỏ kích thước phân vùng trong hệ điều hành khách?
Trước hết, hãy giảm kích thước của phân vùng đĩa trong hệ điều hành khách. Nếu máy ảo của bạn đang chạy HĐH Windows, hãy sử dụng Disk Manager diskmgmt.msc
( Thu nhỏ âm lượng hoạt động có sẵn trong tất cả các phiên bản Windows được hỗ trợ; sdelete
công cụ được sử dụng trong các phiên bản Windows cũ hơn để giảm kích thước phân vùng) hoặc các công cụ của bên thứ ba (như Acronis Disk Director). Nếu bạn không làm điều đó, sau đó hệ thống tệp của bạn có thể gặp sự cố sau khi thu nhỏ kích thước đĩa ảo.
Giả sử, bạn muốn giảm kích thước đĩa đi 40 GB. Vì vậy, kích thước âm lượng phải được giảm đi 40960 MB (40 GB x 1024
). Nhập giá trị này vào trường tương ứng của Âm lượng thu nhỏ Thuật sĩ. Sau khi giảm kích thước phân vùng, sẽ có một số chưa được phân bổ không gian (trong ví dụ của chúng tôi là 40 GB) ở bên phải phân vùng của bạn.
Lưu ý rằng phân vùng OEM hoặc Windows Recovery đôi khi có thể ngăn cản việc mở rộng hoặc thu nhỏ đĩa.
Trong Linux, bạn có thể giảm kích thước phân vùng bằng parted. Nếu khối lượng logic LVM được sử dụng, kịch bản sẽ khác.
Giảm Kích thước Tệp VMDK của Máy ảo VMWare
Sau đó, giảm kích thước của tệp VMDK trên hệ thống tệp VMWare VMFS.
- Tắt máy ảo bạn muốn để giảm kích thước ổ đĩa;
- Sử dụng SSH, kết nối với bảng điều khiển của máy chủ ESXi mà máy ảo đã đăng ký (bạn có thể sử dụng putty hoặc máy khách Windows SSH tích hợp sẵn);
- Truy cập thư mục chứa tệp VMDK của máy ảo của bạn (bạn có thể lấy đường dẫn đến tệp đó trong thuộc tính đĩa ảo của ứng dụng khách vSphere):
cd /vmfs/volumes/datastore/test-VM
- Hiển thị nội dung của tệp cấu hình đĩa ảo (* .vmdk) bằng cat lệnh:
# cat test_vm_3.vmdk
Kích thước của đĩa vmdk được hiển thị trong # mô tả #Extent (sau các ký tự RW). Trong trường hợp này, đó là 167772160 (80 GB *1024*1024*1024 / 512
); - Tôi muốn giảm đĩa VMDK của mình từ 80 xuống 40 GB. Có nghĩa là tôi phải chỉ định 83886080 (
40 GB*1024*1024*1024 / 512
) trong phần Mô tả mức độ. Đặt kích thước mới cho đĩa ảo của bạn bằng trình soạn thảo văn bản (vi hoặc nano); - Tôi đang sử dụng vi:
# vi test_vm_3.vmdk
- Sử dụng phím mũi tên xuống, chuyển đến dòng chứa kích thước đĩa và nhấn
i
(để chỉnh sửa nó). Chỉ định kích thước mới của đĩa ảo. Nhấn ESC để thoát khỏi chế độ chỉnh sửa rồi nhập:wq
-> Enter để lưu các thay đổi; - Sau đó, chỉ cần sao chép hoặc di chuyển (sử dụng Storage vMotion) máy ảo sang một kho dữ liệu khác. Sau khi di chuyển các tệp máy ảo, kích thước mới của đĩa ảo sẽ được hiển thị trong thuộc tính của nó. Mẹo . Nếu bạn chỉ có một máy chủ ESXi, một kho dữ liệu VMFS, thì bạn sẽ không thể sử dụng Storage vMotion. Sau đó, bạn có thể sao chép vmdk bằng lệnh này:
vmkfstools -i test_vm_3.vmdk test_vm_3_newsize.vmdk
Xóa đĩa VMDK nguồn, sao chép đĩa VMDK đang tạo lại và đổi tên bằng cách chỉ định đĩa gốc của nó tên:
rm test_vm_3.vmdk
rm test_vm_3-flat.vmdk
vmkfstools -i test_vm_3_newsize.vmdk test_vm_3.vmdk
- Đảm bảo rằng kích thước mới của đĩa ảo hiện được hiển thị trong thuộc tính VM.
- Sau đó, khởi động máy ảo, đăng nhập hệ điều hành khách và đảm bảo rằng khu vực chưa được phân bổ đã biến mất và kích thước đĩa đã được giảm xuống.
- Giảm kích thước đĩa ảo bằng cách chuyển đổi máy ảo bằng VMware vCenter Converter . Chỉ định kích thước đĩa nhỏ hơn kích thước nguồn để chuyển đổi nó (chúng tôi sẽ hiển thị nó trong phần tiếp theo);
- Bạn có thể sao chép nội dung đĩa ảo bằng phần mềm của bên thứ ba (như Acronis True Image hoặc Symantec Ghost32). Tác vụ này được thực hiện bằng cách thêm một đĩa mới nhỏ hơn vào máy ảo và sao chép nội dung của đĩa lớn hơn vào đó. Sau đó, bạn có thể tháo đĩa lớn hơn.
Thu hẹp VMDK bằng VMware vCenter Converter Standalone
Một cách khác để giảm kích thước đĩa ảo của máy ảo VMWare là sử dụng công cụ GUI miễn phí VMware vCenter Converter Standalone.
Nhược điểm:
- Chuyển đổi V2V chậm;
- Phải có đủ dung lượng trên kho dữ liệu để lưu máy ảo mới;
- Máy ảo mới sẽ có địa chỉ MAC mới.
Ưu điểm:
- Bạn không cần mở bảng điều khiển máy chủ vCenter hoặc ESXi;
- Một bản sao chính xác của một máy ảo đã được tạo;
- Không thể làm hỏng đĩa nguồn trong trường hợp có bất kỳ lỗi nào trong cài đặt tác vụ chuyển đổi.
Chỉ định địa chỉ máy chủ ESXi.
Chọn máy ảo nguồn.
Đặt các thông số của máy ảo mới của bạn.
Chuyển đến chế độ chỉnh sửa đĩa (Dữ liệu để sao chép -> Chỉnh sửa).
Chọn chế độ sao chép: Chọn khối lượng để sao chép .
Chỉ định kích thước đĩa mới cho máy ảo mới của bạn. Như bạn có thể thấy, 48 GB bị chiếm dụng trong hệ điều hành khách và kích thước đĩa là 150 GB. Chúng tôi sẽ giảm kích thước của đĩa ảo xuống còn 60 GB.
Chạy quá trình chuyển đổi VM. Sau đó, bạn có thể tắt nguồn máy ảo và bật máy ảo mới. Đảm bảo rằng kích thước đĩa đã được giảm xuống. Sau đó, máy ảo gốc có thể bị xóa.
Lưu ý . Trong phiên bản Microsoft Hyper-V mới nhất, bạn có thể sử dụng công cụ Hyper – V Online VHDX Resize để tự động thay đổi kích thước (cả mở rộng và thu nhỏ) đĩa ảo.