Làm thế nào để giảm kích thước của hình ảnh đĩa máy ảo KVM?


11

Làm thế nào để bạn giảm hoặc thu nhỏ kích thước của đĩa máy ảo KVM?

Tôi đã phân bổ một đĩa ảo 500GB (được lưu trữ tại /var/lib/libvirt/images/vm1.img) và tôi thấy rằng nó quá mức cần thiết, vì vậy bây giờ tôi muốn giải phóng một số dung lượng đó để sử dụng với ảo khác máy móc. Dường như có rất nhiều câu trả lời về cách tăng lưu trữ hình ảnh, nhưng không làm giảm nó. Tôi tìm thấy công cụ thay đổi kích thước , nhưng nó dường như chỉ hoạt động với các phân vùng đĩa thô, không phải hình ảnh đĩa.

Chỉnh sửa: Tôi đang sử dụng LVM với phân vùng được định dạng Ext4.

Chỉnh sửa: Ảnh chụp màn hình GParted hiển thị bố cục parition LVM của tôi. Tôi cần phải làm nhiều hơn nữa sau đó chỉ cần thay đổi kích thước hệ thống tập tin. Tôi biết không có cách nào an toàn để thay đổi kích thước LVM. Và xin đừng nói với tôi để sử dụng pvresize. Mặc dù tên của nó, nó không hỗ trợ thay đổi kích thước LVM.

Ảnh chụp màn hình GParted

Tôi đã thử sudo pvresize /dev/vda5, nhưng nó chỉ nói physical volume "/dev/vda5" changednhưng không thực sự làm giảm kích thước.

Tôi đã thử bắt đầu partedtự đặt kích thước phân vùng (rất nguy hiểm), nhưng thực hiện print allchỉ gây ra lỗi cho tôi "/ dev / sr0 nhãn đĩa không được nhận dạng".

Chỉnh sửa: Bằng cách làm theo các hướng dẫn này , tôi có thể thu nhỏ thành công cả khối lượng logic và vật lý của mình (mặc dù tôi phải nhớ kích hoạt và hủy kích hoạt lvm trước và sau một số lệnh nhất định, mà các hướng dẫn bỏ qua.

Bây giờ GParted đang hiển thị 250G không gian trống chưa phân bổ. Làm cách nào để xóa cái này khỏi hình ảnh đĩa KVM và đưa nó trở lại bộ ảo hóa cơ bản?


Bạn có thực sự cần phải giảm kích thước của đĩa ảo, hoặc sẽ nén nó đủ không? Bạn có thể làm sau với một cái gì đó như qemu-img -O qcow2 vm1.img vm1-compact.qcow2.
Ansgar Wiechers

@AnsgarWiechers, Có, tôi vẫn cần sử dụng đĩa và tôi đã phân bổ nhiều không gian hơn tôi cần.
Cerin

Câu trả lời:


10

Cảm ơn những người đã đăng, nhưng câu trả lời của bạn quá mơ hồ để được giúp đỡ.

Sau nhiều giờ làm việc, cuối cùng tôi cũng tìm thấy một hướng dẫn ( liên kết được điều chỉnh lại ) cung cấp các hướng dẫn từng bước về cách thu nhỏ hệ thống tệp, khối lượng logic và khối lượng vật lý của tôi. Thủ thuật mà hầu hết các hướng dẫn bỏ lỡ là cần phải thực sự xóa các phân vùng vật lý và tạo lại chúng với kích thước chính xác, vì parted không thể thay đổi kích thước phân vùng lvm.

Sau đó tôi đã tìm thấy tài liệu này trên qemu-img, giải thích cách thu nhỏ hình ảnh đĩa ảo có định dạng thô bằng cách chạy:

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G

qemu-img là một công cụ tuyệt vời khi làm việc với hình ảnh đĩa cho kvm. 3 năm sau, liên kết của bạn dường như bị hỏng, ở đây trang hướng dẫn từ die.net linux.die.net/man/1/qemu-img
Louis Loudog Trottier 26/12/17

Và nếu bất cứ ai muốn sự thuận tiện này và bị mắc kẹt (không muốn) một VM .qcow2, hãy chuyển đổi nó trước qemu-img convert -f qcow2 -O raw image.qcow2 image.imgvà sau đó bạn có thể chạy lệnh trên.
oemb1905

4

Bạn cần gì để làm,

  • Sao lưu
  • Thu nhỏ (các) hệ thống tệp * không làm điều này trên hệ thống trực tiếp, tôi khuyên bạn nên sử dụng đĩa CD trực tiếp.
  • Tạo một hình ảnh đĩa mới có kích thước mong muốn.
  • Chạy hệ điều hành trực tiếp, với hình ảnh mới và cũ được đính kèm dưới dạng đĩa cứng (ảo) (không được gắn)
  • Tạo (các) phân vùng mới có cùng kích thước với các phân vùng đã thay đổi kích thước trên đĩa cũ
  • Sử dụng dd để phản chiếu dữ liệu sang phân vùng mới.
  • Bạn có thể cần phải thanh lọc / tái tạo grub (2) để khởi động thành công.

Điều này có thể được thực hiện thông qua cả GUI và CLI

Tài nguyên

Công cụ

  • gparted (liên kết bị bỏ qua do Spam, không đủ đại diện)

Phần khó là "Thu nhỏ hệ thống tập tin". Tôi đang sử dụng LVM mà không có công cụ nào tôi tìm thấy hỗ trợ thay đổi kích thước. Thậm chí không phải là CD Live GParted.
Cerin

Tôi nghĩ rằng điều này bao gồm nó, tôi đã không sử dụng nó vì vậy vui lòng báo cáo tcpdump.com/kb/os/linux/lvm-resizing-guide/shrink.html
daxroc

Có 2 điểm chính để quan sát: 1) Thực hiện theo thứ tự ( đầu tiên thu nhỏ hệ thống tập tin, sau đó thu nhỏ phân vùng, sau đó thu nhỏ đĩa). 2) Quy trình / công cụ để thay đổi kích thước hệ thống tệp phụ thuộc rất nhiều vào hệ thống tệp thực tế (mà OP đã chọn không tiết lộ). Bài viết @daxroc được đăng sẽ không hoạt động đối với các hệ thống tập tin ngoài ext [234].
Ansgar Wiechers

@daxroc, tôi cần giảm cả khối lượng logic và vật lý. Liên kết của bạn chỉ bao gồm giảm âm lượng hợp lý.
Cerin

đã đồng ý. sao lưu, đĩa mới, khôi phục là an toàn và dễ dàng nhất
dyasny

0

Điều này làm việc thực sự tốt cho tôi. Nó nén và thu nhỏ các khối 0 trong ảnh đĩa. Hình ảnh sẽ mở rộng theo thời gian khi nó được viết lại.

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2

-4

Tôi khuyên bạn nên trước khi thực hiện bất kỳ thao tác nào trong số này, bạn hãy sao chép toàn bộ hình ảnh đĩa, sau đó khi tất cả bị hỏng, bạn chỉ cần sao chép lại để bắt đầu lại.

Có 3 điều bạn cần làm:

1) Làm cho hình ảnh đĩa lớn hơn. Trong máy chủ của bạn:

qemu-img thay đổi kích thước foo.qcow2 + 32G

Bây giờ khách của bạn có thể thấy một đĩa lớn hơn, nhưng vẫn có các phân vùng và hệ thống tệp cũ.

2) Làm cho phân vùng bên trong hình ảnh đĩa lớn hơn. Bạn cần khởi động LiveCD trong máy khách của mình vì điều này vì bạn sẽ không thể gây rối với phân vùng được gắn kết. Điều này khá liên quan và có lẽ là phần nguy hiểm nhất. Nó khá nhiều để sao chép ở đây, vì vậy bây giờ tôi sẽ chỉ liên kết. Bạn muốn làm một cái gì đó như thế này:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

HOẶC 2b) tạo phân vùng mới sẽ đơn giản hơn (và an toàn hơn) nếu bạn chỉ muốn có thêm dung lượng lưu trữ. Sử dụng fdisk hoặc cfdisk, hoặc bất cứ điều gì bạn cảm thấy thoải mái - bạn sẽ thấy toàn bộ không gian chưa được phân bổ trên đĩa khách của mình ngay bây giờ.

3) Cuối cùng, nếu bạn thay đổi kích thước phân vùng hiện tại của mình, hãy làm cho hệ thống tệp bên trong phân vùng mới lớn hơn lớn hơn (đây thực sự là trong hướng dẫn được liên kết ở trên). Bên trong khách của bạn:


5
Ông đang cố gắng làm cho hình ảnh nhỏ hơn , không lớn hơn.
Michael Hampton
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.