QEMU Image
Image là một file mà đại diện cho dữ liệu trên ổ cứng. Đối với một máy ảo, image là một ổ cứng và nó có thể tạo filesystem riêng cho nó.
1. Các loại file image.
QEMU hỗ trợ nhiều loại file image. Trong đó, qcow2 là loại image thông dụng và linh hoạt nhất, hỗ trợ tính năng copy on write.
Một số loại hay định dạng image mà QEMU có thể sử dụng:
- raw: (mặc định) định dạng raw là một image nhị phân đơn giản. Ở trên file system mà hỗ trợ sparse file, image ở định dạng này sẽ sử dụng không gian mà thực sự được sử dụng bởi dữ liệu được lưu lên nó.
- cow: là định dạng Copy on write. Khi sử dụng Copy on write, không có thay đổi nào được áp dụng vào image(được tạo ra từ 1 image gốc), tất cả các thay đổi được ghi vào một file riêng biệt khỏi image gốc.
- qcow: là định dạng QEMU Copy on write cũ, và được thay thế bởi qcow2.
- qcow2: là định dạng QEMU copy-on-write với nhiều tính năng đặc biệt, như tạo nhiều snapshot, image nhỏ hơn.
- vmdk: Định dạng image của VMWare 3,4 hoặc 6, qemu hỗ trợ định dạng này để trao đổi image với các sản phẩm đó.
- vdi: Định dạng image của Virtualbox 1.1, để trao đổi image.
- vhdx: Định dạng image của HyperV, để trao đổi image với HyperV bản 2012 và mới hơn.
- vpc: Định dạng image cũ của HyperV, để trao đổi image với Virtual PC/Virtual server/ HyperV 2008.
2. Tạo image.
Để tạo một guest OS image, đầu tiên bạn cần tạo một image chống. QEMU có lệnh qemu-img
để tạo và thao tác với dics image. Khi không chỉ định định dạng, nó sẽ tạo raw image. Lệnh sau tạo một image ở định dạng qcow2 và có kích thước là 10G:
qemu-img create -f qcow2 test.qcow2 10G
Cài một hệ điều hành lên image vừa tạo bằng cách tạo một ổ đĩa chứa file iso và boot nó. Lệnh sau tạo một máy ảo với 256 MB ram, sử dụng image vừa tạo và boot một file iso centos 7:
qemu-system-x86_64 -m 256 -hda test.qcow2 -cdrom CentOS-7-x86_64-Minimal-1804.iso -boot d
Thay vì sử dụng file iso để boot, có thể sử dụng ổ đĩa thật như là :/dev/cdrom
hay /dev/dvd
,…
Sử dụng nhiều image.
QEMU hỗ trợ sử dụng 4 image để biểu diễn nhiều ổ đĩa trên máy ảo. Để thêm image trong QEMU, sử dụng các tùy chọn -hda, -hdb, -hdc và -hdd
qemu-system-x86_64 -m 256 -hda winxp.img -hdb pagefile.img -hdc testdata.img -hdd tempfiles.img -enable-kvm
Chú ý: QEMU không hỗ trợ -hdc và -cdrom cùng một lúc.
3. Copy on write.
Copy on write là một kỹ thuật quản lý tài nguyên, cho phép thiết lập một image một lần để có thể sử dụng nhiều lần mà không làm thay đổi chúng. Điều này hữu ích để tạo một môi trường ổn định để từ đó tạo nhiều môi trường khác nhau từ môi trường gốc.
Để tạo ra một image dựa trên một image gốc, ổn định, sử dụng qemu-img
với tùy chọn “backing_file” để nói cho qemu sử dụng image nào làm để copy. Khi máy ảo sử dụng ổ đĩa mới, nó vẫn có thể truy cập tài nguyên trên base image và mọi thay đổi của nó sẽ được lưu trên image mới.
qemu-img create -f qcow2 -o backing_file=test.qcow2 test2.qcow2
qemu -m 256 -hda test2.qcow2 -enable-kvm &
4. Convert image formart.
QEMU hỗ trợ đổi image format cho các image từ định dạng này sang định dạng khác, với một số tùy chọn:
-f fmt
– xác định image format cho input file.
-O fmt
– xác định image format cho output file.
-e
– sử dụng để mã hóa output file
-c
– sử dụng để nén output file
-6
– sử dụng cùng với tùy chọn convert sang vmdk format để có thể tương thích với vmware 6.
Ví dụ convert từ ‘vmdk’ sang ‘qcow2’:
qemu-image convert -O vdi test.qcow2 test.vmdk