一.QEMU、KVM、QEMU-KVM
QEMU提供一系列的硬件模擬設(shè)備(CPU,網(wǎng)卡,磁盤等),客戶機(jī)指令都需要QEMU翻譯,因而性能較差。KVM是linux內(nèi)核提供的虛擬化,可以用來進(jìn)行vCPU的創(chuàng)建與運(yùn)行,虛擬內(nèi)存的地址空間分配,指令執(zhí)行效率較高,但缺少IO設(shè)備的虛擬化。QEMU-KVM就是KVM與QEMU的結(jié)合,KVM負(fù)責(zé)CPU虛擬化+內(nèi)存虛擬化,QEMU模擬其它IO設(shè)備。
二.安裝并創(chuàng)建虛擬機(jī)
安裝qemu-kvm軟件
faramita2016@linux-l9e6:~> zypper install qemu-kvm // Ubuntu系統(tǒng)使用apt-get install qemu-kvm
創(chuàng)建qcow2格式虛擬機(jī)磁盤文件
faramita2016@linux-l9e6:~> qemu-img create -f qcow2 vdisk.img 5G // 磁盤大小5G
使用debian鏡像安裝虛擬機(jī),order=dc優(yōu)先使用CD-ROW(d),后使用硬盤(c),內(nèi)存默認(rèn)128m,使用-m 512指定
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -cdrom debian-9.4.0.iso -hda vdisk.img -boot order=dc

三.設(shè)置虛擬機(jī)使用網(wǎng)橋bridge模式
宿主機(jī)中執(zhí)行,qemu-bridge-helper增加當(dāng)前用戶可執(zhí)行權(quán)限,用來自動(dòng)添加網(wǎng)絡(luò)后端tap設(shè)備
faramita2016@linux-l9e6:~> sudo chmod o+x /usr/lib/qemu-bridge-helper
宿主機(jī)中執(zhí)行,-net nic為虛擬機(jī)創(chuàng)建nic網(wǎng)卡(網(wǎng)絡(luò)前端),-net bridge指定宿主機(jī)中使用網(wǎng)橋(網(wǎng)絡(luò)后端)
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 // 指定網(wǎng)橋br0
虛擬機(jī)中執(zhí)行,編輯/etc/network/interfaces,設(shè)置靜態(tài)IP
root@debian:~# vi /etc/network/interfaces
# The primary network interface
allow-hotplug ens3
#iface ens3 inet dhcp
iface ens3 inet static
address 10.0.0.8
netmask 255.0.0.0
gateway 10.0.0.1
hwaddress ether 52:54:00:12:34:56 // 設(shè)置mac地址,前3組不變
root@debian:~# ifup ens3 // 打開ens3網(wǎng)絡(luò)接口,ifdown關(guān)閉網(wǎng)絡(luò)接口
root@debian:~# /etc/init.d/networking restart // 重啟網(wǎng)絡(luò)服務(wù)
虛擬機(jī)中執(zhí)行,編輯/etc/resolv.conf,設(shè)置DNS
root@debian:~# vi /etc/resolv.conf
nameserver 8.8.8.8 // Google DNS
四.設(shè)置虛擬機(jī)為非圖形模式
虛擬機(jī)中執(zhí)行,編輯/etc/default/grub文件,添加console=ttyS0啟動(dòng)參數(shù)
root@debian:~# vi /etc/default/grub
GRUB_DEFAULT=0 // 默認(rèn)啟動(dòng)項(xiàng)
GRUB_TIMEOUT=0 // 默認(rèn)菜單項(xiàng)停留時(shí)間
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet" // 默認(rèn)內(nèi)核啟動(dòng)參數(shù)
GRUB_CMDLINE_LINUX="console=ttyS0" // 手動(dòng)添加內(nèi)核啟動(dòng)參數(shù),添加console=ttyS0
虛擬機(jī)中執(zhí)行,更新grub配置,并重啟
root@debian:~# update-grub
root@debian:~# shutdown -h now
a.宿主機(jī)中執(zhí)行,添加-nographic參數(shù)創(chuàng)建虛擬機(jī),當(dāng)前shell前臺(tái)創(chuàng)建虛擬機(jī)
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -nographic
b.宿主機(jī)中執(zhí)行,添加-display none -daemonize參數(shù)創(chuàng)建虛擬機(jī),當(dāng)前shell后臺(tái)創(chuàng)建虛擬機(jī)
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -display none -daemonize
五.以只讀方式啟動(dòng)虛擬機(jī)
a.創(chuàng)建一個(gè)快照
用qemu-img命令創(chuàng)建一個(gè)原始鏡像的快照
faramita2016@linux-l9e6:~> qemu-img create -f qcow2 -b vdisk.img snapshot.img
使用快照文件啟動(dòng)虛擬機(jī)
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda snapshot.img -net nic -net bridge,br=br0 -nographic
b.使用臨時(shí)快照
原理:創(chuàng)建一個(gè)臨時(shí)快照,虛擬機(jī)啟動(dòng)之后,自動(dòng)刪除快照文件
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。