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

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