qemu-kvm、qemu-img命令使用方式

本文介紹使用qemu-kvm管理vms:

一、Qemu的作用:

  • 處理器模擬器
  • 仿真各種IO設備
  • 將仿真設備連接至主機的物理設備
  • 提供用戶接口

二、qemu-kvm命令

格式:qemu-kvm [options] [disk_image]

1、選項類別:

標準選項、塊設備相關選項、顯示選項、網絡選項、...

(1)、標準選項:
  • -machine [type=]name:-machine help來獲取列表,用于指定模擬的主機類型;
  • -cpu cpu:-cpu help來獲取列表;用于指定要模擬的CPU型號;
  • -smp n[,maxcpus=cpus處理器數量][,cores=cores內核數量][,threads=threads線程][,sockets=sockets插槽]:指明虛擬機上vcpu的數量及拓撲;
  • -boot [order=drives][,once=drives][,menu=on|off] [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time][,strict=on|off]
  • order:各設備的引導次序:c表示第一塊硬盤,d表示第一個光驅設備;-boot order=dc,once=d
  • -m megs:虛擬機的內存大小;
  • -name NAME:當前虛擬機的名稱,要惟一;
(2)、塊設備相關的選項:

傳統表示方式:

  • -hda/-hdb file:指明IDE總線類型的磁盤映射文件路徑;第0和第1個;
  • -hdc/-hdd file:第2和第3個;
  • -cdrom file:指定要使用光盤映像文件;
  • -drive [file=file][,if=type][,media=d][,index=i] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f]:
  • file=/PATH/TO/SOME_IMAGE_FIL>E:映像文件路徑;
  • if=TYPE:塊設備總線類型,ide, scsi, sd, floppy, virtio,...
  • media=TYPE:介質類型,cdrom和disk;
  • index=i:設定同一類型設備多個設備的編號;
    cache=writethrough|writeback|none|directsync|unsafe:緩存方式;
  • format=f:磁盤映像文件的格式;

qemu-img創建磁盤實例:

#創建一個磁盤
[root@node-64 ~]# qemu-img create -f qcow2 -o preallocation=metadata,size=2G /vms/cirros/newdisk.qcow2
Formatting '/vms/cirros/newdisk.qcow2', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536 preallocation='metadata' lazy_refcounts=off 
(3)、顯示選項:
  • -display type:顯示的類型,sdl, curses, none和vnc;
  • -nographic:不使用圖形接口;
  • -vga [std|cirrus|vmware|qxl|xenfb|none]:模擬出的顯卡的型號;
  • -vnc display[,option[,option[,...]]]]:啟動一個vnc server來顯示虛擬機接口; 讓qemu進程監聽一個vnc接口;
display有以下幾種:
  • (1) HOST:N方式

    • 在HOST主機的第N個桌面號輸出vnc;
      • 例如5900:1
  • (2) unix:/PATH/TO/SOCK_FILE

  • (3) none不顯示

options:
  • password:連接此服務所需要的密碼;

-monitor stdio:在標準輸出上顯示monitor界面;

Ctrl-a, c:在console和monitor之間切換;
Ctrl-a, h

(4)、網絡選項:

-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
為虛擬機創建一個網絡接口,并將其添加至指定的VLAN;

  • model=type:指明模擬出的網卡的型號,ne2k_pci,i82551,i82557b,i82559er,rtl8139,e1000,pcnet,virtio;

-net nic,model=?

  • macaddr=mac:指明mac地址;52:54:00:

-net tap[,vlan=n][,name=str][,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]:
通過物理的TAP網絡接口連接至vlan n;

  • script=file:啟動虛擬機時要執行的腳本,默認為/etc/qemu-ifup
  • downscript=dfile:關閉虛擬機時要執行的腳本,/etc/qemu-ifdown
  • ifname=NAME:自定義接口名稱;
(5)、其它選項:

-daemonize:以守護進程運行;

注意:創建磁盤映像文件,用于存放虛擬機虛擬磁盤,稀疏格式的,實際占用空間要遠小于創建聲明空間大小:

示例1:創建虛擬機實例

~]# qumu-dmg create -f qcow2 -o preallocation=metadata,size=10G /vms/centos/centos7.img
#查看新創建映像文件信息
~]# qemu-img info centos7.img

~]#  qemu-kvm -name c2 -smp 2,maxcpus=4,sockets=2,cores=2 -m 128 -drive file=/vms/centos/centos7.img,if=virtio -vnc  :1 -daemonize -net nic,model=e1000,macaddr=52:54:00:00:00:11 -net tap,script=/etc/qemu-ifup

示例2:創建虛擬機實例

#添加一個網橋
~]# brctl addbr br0 

# 查看創建的網橋
~]# brctl show 

#將創建的網橋開啟
~]# ifconfig br0 up 

#安裝qemu-kvm工具包
~]# yum install qemu-kvm 

#由于安裝好的qemu不在/usr/bin/下所以需要鏈接至其下
~]# ln -sv /usr/libexec/qemu-kvm /usr/bin/ 

#查看所支持模擬機器的類型
~]# qemu-kvm -machine ?

#查看模擬所支持的cpu的類型
~]# qemu-kvm -cpu ?  

CentOS磁盤鏡像文件下載:
https://cloud.centos.org/centos/7/images/

#新建一個網卡腳本,使虛擬機網卡自動添加網橋
~]# vim  /etc/qemu-ifup  

#!/bin/bash
#
bridge=br0

if [ -n “$1” ];then
ip link set $1 up
sleep 1
brctl addif $bridge $1
[ $? -eq 0 ] && exit 0 || exit 1
else
echo “Error: no interface specified.”
exit 2
fi

#檢查腳本的語法錯誤
~]# bash -n /etc/qemu-ifup   

#添加執行權限
~]# chmod +x /etc/qemu-ifup   

#創建文件夾。來存放磁盤鏡像文件
~]# mkdir /data/VMs/c1   -p 

# 進入此目錄下
~]# cd /data/VMs/c1/   進入此目錄下

#將此鏡像文件下載到本目錄下
~]#wget http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img

#將文件重新命名
~]# mv cirros-0.4.0-x86_64-disk.img c1.img   

#創建虛擬機
~]#  qemu-kvm -name c1 -smp 2 -m 128 -cpu host -drive file=/data/VMs/c1/c1.img,if=virtio,media=disk,cache=writeback,format=qcow2 -net nic,macaddr=52:54:00:00:00:11,model=virtio -net tap,script=/etc/qemu-ifup -vnc :0 (回車查看5900的端口 已經打開了)

通過桌面上的vnc鏈接到本機的IP地址192.168.1.64:0  (就可以連接上了)

連接上之后,給此虛擬機添加一個IP地址:ifconfig eth0 10.0.0.4/16

查看添加的網卡接口位:tap0

遠程ssh也是可以來凝結本虛擬機的。

如果需要關閉虛擬機直接將qemu進程殺掉就可以了。

如果再創建一個虛擬機,vnc的編號要改;mac地址也要改;磁盤鏡像文件也要添加新的

 

參考鏈接:
http://www.178linux.com/103971

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容