虛擬化技術QEMU-KVM入門

一.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 
linux

 

三.設置虛擬機使用網橋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,設置靜態IPshell

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 ui

 

五.以只讀方式啓動虛擬機

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 spa

b.使用臨時快照,添加-snapshot參數
原理:建立一個臨時快照,虛擬機啓動以後,自動刪除快照文件
faramita2016@linux-l9e6:~> qemu-kvm -cpu host -hda vdisk.img -net nic -net bridge,br=br0 -snapshot -nographic 翻譯

相關文章
相關標籤/搜索