1. 程式人生 > >KVM的qemu-kvm使用

KVM的qemu-kvm使用

del hda exp window 創建 svm ask 桌面協議 cache

KVM: kvm,x86支持硬件輔助虛擬化技術(hvm) grep -E "(vmx|svm)" /proc/cpuinfo [root@dmsag ~]# ll /dev/kvm crw-rw-rw- 1 root kvm 10, 232 Dec 4 19:14 /dev/kvm 查看內核模塊信息 modinfo kvm modinfo kvm-intel 裝載模塊並查看(裝載kvm模塊就會順帶裝載kvm-intel模塊) [root@dmsag ~]# modprobe kvm [root@dmsag ~]# lsmod |grep kvm kvm_intel 174841 0 kvm 578518 1 kvm_intel irqbypass 13503 1 kvm 管理工具棧: qemu-kvm libvirt (通用工具) 管理Kvm虛擬的方案: qemu::由於這個工具不是紅帽推薦使用的支持力度比較小,安裝了qemu-kvm後,它的默認路徑/usr/libexec/ (使用需要創建鏈接) libvirt:: 安裝工具 virt-install (命令行安裝) virt-manager(圖形安裝) 管理工具: virsh virt-manager virt-viewer 使用qemu管理虛機 更接近底層管理。 安裝qemu-kvm yum install qemu-kvm qemu-img -y 創建鏈接指向到默認路徑 [root@dmsag ~]# ln -sv /usr/libexec/qemu-kvm /usr/bin/ ‘/usr/bin/qemu-kvm’ -> ‘/usr/libexec/qemu-kvm’ 查看qemu的使用幫助 qemu-kvm -h qemu-kvm : qemu-kvm 【options】 【disk_image】 qemu-kvm使用文檔 1.使用qemu-kvm管理kvm虛擬機 qemu是一個廣泛使用的開源計算機仿真器和虛擬機,當作為仿真器時,可以再一種架構(如PC機)下運行另一種架構(如RAM)下的 操作系統和程序,而通過動態轉換,其可以獲得很高的運行效率,當作為一個虛擬機時,qemu可以通過直接使用真機的系統資源, 讓虛擬系統能夠獲得物理機的性能表現,qemu支持xen或者kvm模式下的虛擬化,當用kvm時,qemu可以虛擬x86,服務器和嵌入式 powerpc,以及s390的系統。 qemu當運行於主機架構相同的目標架構時可以使用kvm,例如,當在一個x86兼容處理器上運行qemu-system-x86時, 可以利用KVM加速為宿主機和客戶機提供更好的性能。 2.qemu有如下幾個部分組成
  • 處理器模擬器(x86,PowerPC和Sparac)
  • 仿真設備(顯卡,網卡,硬盤,鼠標等)
  • 用於將仿真設備連接至主機設備(真實設備)的通用設備
  • 模擬機的描述信息
  • 調試器
  • 與模擬器交互的用戶接口
3.使用qemu-kvm安裝guest 基於libvirt的工具如virt-manager和virt-install 提供了非常便捷的虛擬機管理接口,但他們事實上經二次開發後又封裝了qemu-kvm的工具,因此,直接使用qemu-kvm命令也能夠完成此前的任務。 Standard options: 標準選項(虛擬機自身,名字 cpu 內存)
  • -name 設定虛擬機的名稱
  • -M machine: 指定要模擬的主機類型,如standard PC,ISA-only,PC或Intel-Mac等 可以使用 qemu-kvm -M ? 查看支持的類型
  • -cpu 指定的不是cpu的顆數,而是指定cpu的類型,可以使用qemu-kvm -cpu ? 查看支持的cpu類型
    • -smp 設定模擬器的SMP架構中CPU的個數等,每個cou的核心數及cpu的socket數目等,pc機上最多可以模擬255顆cpu,maxcpus用於指定熱插入的cpu個數上限
  • -numa opts: 指定模擬多結點的numa設備
  • -fda file
  • -fdb file 使用指定文件(file)作為軟盤鏡像,file為/dev/fd0 表示使用物理軟驅:
  • -hda file
  • -hdb file
  • -hdc file
  • -hdd file
  • -cdrom file : 使用指定file作為CD-ROM鏡像,需要註意的是-cdrom和-hdc不能同時使用:將file指定為/dev/cdrom可以直接使用物理光驅
  • -drive option[,option[,option[....]]]:定義一個硬盤設備:可用子選項有很多。
file=/path/to/somefile :硬盤映像文件路徑 if=interface: 指定硬盤設備所連接的接口類型,即控制器類型,如ide,scsi,sd,mtd,floppy,pflash及virtio等: index=index:設定同一種控制器類型中不通設備的索引號,即標識號: media=media:定義介質類型為硬盤(disk)還是光盤(cdrom) snapshot=snapshot:指定當前硬盤設備是否支持快照功能:on或off cache=cache:定義如何使用物理機緩存來訪問塊數據,其可用值有none,writeback,unsafe和writethrough(通寫) format=format:指定映像文件的格式,具體格式可參見qemu-img命令
  • -boot [order=drivers][,once=drives][,menu=on|off] :定義設備的引導次序,每種設備使用一個字符表示,不通的架構所支持的設備及其表示字符不盡相同,在x86PC架構上,a、b表示軟驅,c表示第一塊硬盤,d表示第一個罐區設備,n-p表示網絡適配器,默認為硬盤設備。
Block device options: 塊設備選項 (磁盤) USB options: USB選項 Display options: 顯示選項
  • -nographic:默認情況下,qemu使用SDL來顯示VGA輸出,而此選項用於禁止圖形接口,此時qemu類似一個簡單的命令行程序,其仿真串口設備將被重定向到控制臺。
  • -curses:禁止圖形接口,並使用curses/ncurses作為交互接口
  • -alt-grab:使用ctrl+alt+shift組合鍵釋放鼠標鍵
  • -sdl: 啟用SDL sdl:Simple DriectMeadia Layer: c語言開發,跨平臺且開源多媒體程序庫文件:在qemu 中使用 -sdl 即可
  • -spice option[,option[...]]:啟用spice遠程桌面協議:其有許多子選項,具體請參照qemu-kvm手冊
  • -vga type:指定要仿真的VGA接口類型常見的類型有:
cirrus: cirrus logic GD5446顯示卡 std: 帶有bochs VBI擴展的標準VGA顯示卡: vmware: VMware SVGA-II 兼容的顯示適配器: qxl:QXL半虛擬化顯示卡:與VGA兼容,在GUEST中安裝qxl驅動後能以很好的方式工作,在使用spice協議時推薦使用此類型 none: 禁用VGA卡;
  • -vnc display[,option[,....]]:默認情況下,qemu使用SDL顯示VGA輸出:使用-vnc選線,可以讓qemu監聽在vnc上,並將VGA輸出重定向到VNC會話,使用此選項時,必須使用-k選項指定鍵盤布局類型,其有許多子選項,具體參考qemu-kvm的手冊
display: 1)host:N 172.16.100.7:1,監聽於172.16.100.7主機的5900+N的端口上 2)unix:/path/to/socket_file 3)none options: password:連接時需要驗證密碼:設定密碼通過monitor接口使用change reverse:“反向”連接至某處於監聽狀態的vncview上: -monitor stdio:表示在表輸入輸出上顯示monitor界面 -nographic ctrl-a,c:在console和monitor之間切換 ctrl-a,h:顯示幫助信息 i386 target only: x86平臺上的專用選項
  • -no-acpi:禁用ACPI功能GuestOS與ACPI出現兼容問題時使用此選項
  • -balloon none:禁用balloon設備
  • -balloon virtio[,addr=addr]:啟用virtio balloon設備
Network options: 網絡選項 網絡屬性相關選項用於定義網絡設備接口類型及其相關的各屬性等信息,這裏只介紹nic,tap和user三種類型網絡接口的屬性,其他類型參考kvm-qemu手冊
  • -net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]:
創建一個新的網卡設備並連接至vlan n中,pc架構上默認的NIC為e1000,macaddr用於為其制定MAC地址,name用於指定一個在監控時顯示的網上設備名稱:emu可以模擬多個類型的網卡設備,如virtio,i82551,i82557b,i82559er,ne2k_isa,pcnet,rtl18139,e1000,smc91c111,lance及macf_fec等:不過,不同平臺架構上,其支持的類型可能只包含前述列表的一部分,可以使用“qemu-kvm -net nic,model=?”來獲取當前平臺支持的類型:
  • -net tap[,vlan=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]:通過物理機的TAP網絡接口連接至vlan n中,使用script=file指定的腳本(默認為/etc/qemu-ifup)來配置當前網絡接口,並使用downscript=file指定的腳本(默認為/etc/qemu-ifdown)來撤銷接口配置:使用script=no和downscript=no可分別用來禁止執行腳本:
  • -net user[,option][,option][,...]:在用戶模式配置網絡棧:其不依賴於管理權限:有效選項有:
vlan=n:連接至vlan n,默認n=0 name=name:指定接口的顯示名稱,常用語監控模式中: net=addr[/mask]:設定GusetOS可見的IP網絡,掩碼可選,默認為10.0.2.0/8; host=addr:指定GuestOS中看到的物理機的IP地址,默認為網絡中的第二個,即x.x.x.2 dhcpstart=addr:指定DHCP服務地址池中16個地址的起始IP,默認為第16個第31個,即x.x.x.16-x.x.x.31 dns=addr:指定GuestOS可見的dns服務器地址,默認為GuestOS網絡中的第三個地址,即x.x.x.3 tftp=dir:激活內置的tftp服務器,並使用指定的dir作為tftp服務器的默認根目錄 bootfile=file BOOTP文件名稱,用於實現網絡引導GuestOS,如:qemu -hda linux.img -boot n -net user,tftp=/tftpserver/pub,bootfile=/pxelinux.0 Character device options: 字符設備選項(鼠標鍵盤) Device URL Syntax: 基於iscsi的方式加載一個iscsi設備如何使用url指明 Bluetooth(R) options: 藍牙設備選項(桌面虛擬化可能用到,服務器虛擬化用不到) Linux/Multiboot boot specific: linux多啟動特殊設備選項 Debug/Expert options: 專家模式專用選項 快捷鍵 ctrl-alt-f toggle full screen ctrl-alt-n switch to virtual console ‘n‘ ctrl-alt toggle mouse and keyboard grab cirros project:為cloud換將測試vm提供的微縮版Linux: 啟動一個虛擬: qemu-kvm -m 128 -smp 2 -name test -hda /images/kvm/cirros-0.3.4-x86_64-disk.img 用-driver指定磁盤映像文件 qemu-kvm -m 128 -smp 2 -name "test" -drive file=cirros-0.3.4-x86_64-disk.img,if=virtio,media=disk,format=qcow2,cache=writeback 通過cdrom啟動winxp的 安裝 qemu-kvm -name winxp -smp 4,sockets=1,croes=2,threads=2 -m 512 -drive file=/images/kvm/winxp.img,if=ide,media=disk,cache=writeback,format=qcow2 -drive file=/root/winxp_ghost.iso,media=cdrom 指定使用橋接網絡接口 qemu-kvm -m 128 -name test -smp 2 -drive file=/images/kvm/cirros-0.3.4-i386-disk.img,if=virtio,media=disk,cache=writeback,format=qcow2 -net nic -net tap,script=/etc/if-up,downscript=no -nographic 創建磁盤格式 qemu-img create -o ? -f qcow2 /images/window/winxp.qcow2 qemu-img create -o size=20G,preallocation=metadata -f qcow2 /images/window/win10.qcow2 選項說明: -smp 對稱多處理器 if 塊設備的虛擬化方式,virtio 為半虛擬化 media 介質設備類型 cache 指定緩存類型 format 磁盤映像的格式 查看鏡像信息 [root@dmsag kvm]# qemu-img info cirros-0.3.4-x86_64-disk.img image: cirros-0.3.4-x86_64-disk.img file format: qcow2 virtual size: 39M (41126400 bytes) disk size: 13M cluster_size: 65536 Format specific information: compat: 0.10 kvm創建虛機報錯 [root@dmsag kvm]# qemu-kvm -m 128 -smp 2 -name "test" -hda cirros-0.3.4-x86_64-disk.img qemu: could not load PC BIOS ‘bios-256k.bin‘ 技術分享圖片 解決方法: [root@dmsag kvm]# cd /usr/share/seabios [root@dmsag seabios]# ls bios.bin [root@dmsag seabios]# cp bios.bin bios-256k.bin [root@dmsag seabios]# ls bios-256k.bin bios.bin 設置一下xshell的隧道轉發 技術分享圖片 再次創建 [root@dmsag kvm]# qemu-kvm -m 128 -smp 2 -name "test" -hda cirros-0.3.4-x86_64-disk.img VNC server running on `::1:5900‘ ::1 表示只能監聽本機的連接 安裝vnc客戶端 技術分享圖片

[root@dmsag ~]# yum install tigervnc -y

技術分享圖片

切換到管理員用戶

技術分享圖片

查看虛機地址

技術分享圖片

ctl+alt+2 切換到監控視圖下 ctl+alt+1切換到命令行視圖 info命令

技術分享圖片

開啟一個虛擬機實際是在宿主機上創建了一個qemu-kvm進程 ,關閉虛機只需要殺死對應的進程 使用 -hda指定的磁盤太垃圾,所以出現 -driver file=磁盤鏡像 用逗號隔開可以指定一堆選項

KVM的qemu-kvm使用