本文介紹使用qemu-kvm管理vms:
一影涉、Qemu的作用:
- 處理器模擬器
- 仿真各種IO設(shè)備
- 將仿真設(shè)備連接至主機(jī)的物理設(shè)備
- 提供用戶接口
二、qemu-kvm命令
格式:qemu-kvm [options] [disk_image]
1匣缘、選項(xiàng)類別:
標(biāo)準(zhǔn)選項(xiàng)肌厨、塊設(shè)備相關(guān)選項(xiàng)豁陆、顯示選項(xiàng)盒音、網(wǎng)絡(luò)選項(xiàng)、...
(1)譬圣、標(biāo)準(zhǔn)選項(xiàng):
- -machine [type=]name:-machine help來獲取列表厘熟,用于指定模擬的主機(jī)類型诸衔;
- -cpu cpu:-cpu help來獲取列表笨农;用于指定要模擬的CPU型號;
- -smp n[,maxcpus=cpus處理器數(shù)量][,cores=cores內(nèi)核數(shù)量][,threads=threads線程][,sockets=sockets插槽]:指明虛擬機(jī)上vcpu的數(shù)量及拓?fù)洌?/li>
- -boot [order=drives][,once=drives][,menu=on|off] [,splash=sp_name][,splash-time=sp_time][,reboot-timeout=rb_time][,strict=on|off]
- order:各設(shè)備的引導(dǎo)次序:c表示第一塊硬盤竭宰,d表示第一個(gè)光驅(qū)設(shè)備切揭;-boot order=dc,once=d
- -m megs:虛擬機(jī)的內(nèi)存大兴ぁ谐腰;
- -name NAME:當(dāng)前虛擬機(jī)的名稱涩盾,要惟一春霍;
(2)址儒、塊設(shè)備相關(guān)的選項(xiàng):
傳統(tǒng)表示方式:
- -hda/-hdb file:指明IDE總線類型的磁盤映射文件路徑衅疙;第0和第1個(gè)炼蛤;
- -hdc/-hdd file:第2和第3個(gè);
- -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:塊設(shè)備總線類型熄攘,ide, scsi, sd, floppy, virtio,...
- media=TYPE:介質(zhì)類型挪圾,cdrom和disk;
- index=i:設(shè)定同一類型設(shè)備多個(gè)設(shè)備的編號洼畅;
cache=writethrough|writeback|none|directsync|unsafe:緩存方式棚赔;
- format=f:磁盤映像文件的格式靠益;
qemu-img創(chuàng)建磁盤實(shí)例:
#創(chuàng)建一個(gè)磁盤
[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)、顯示選項(xiàng):
- -display type:顯示的類型芋浮,sdl, curses, none和vnc纸巷;
- -nographic:不使用圖形接口;
- -vga [std|cirrus|vmware|qxl|xenfb|none]:模擬出的顯卡的型號何暇;
- -vnc display[,option[,option[,...]]]]:啟動(dòng)一個(gè)vnc server來顯示虛擬機(jī)接口; 讓qemu進(jìn)程監(jiān)聽一個(gè)vnc接口条辟;
display有以下幾種:
-
(1) HOST:N方式
- 在HOST主機(jī)的第N個(gè)桌面號輸出vnc羽嫡;
- 例如5900:1
- 在HOST主機(jī)的第N個(gè)桌面號輸出vnc羽嫡;
(2) unix:/PATH/TO/SOCK_FILE
(3) none不顯示
options:
- password:連接此服務(wù)所需要的密碼;
-monitor stdio:在標(biāo)準(zhǔn)輸出上顯示monitor界面杭棵;
Ctrl-a, c:在console和monitor之間切換魂爪;
Ctrl-a, h
(4)滓侍、網(wǎng)絡(luò)選項(xiàng):
-net nic[,vlan=n][,macaddr=mac][,model=type][,name=str][,addr=str][,vectors=v]
為虛擬機(jī)創(chuàng)建一個(gè)網(wǎng)絡(luò)接口牲芋,并將其添加至指定的VLAN;
- model=type:指明模擬出的網(wǎng)卡的型號夕冲,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網(wǎng)絡(luò)接口連接至vlan n;
- script=file:啟動(dòng)虛擬機(jī)時(shí)要執(zhí)行的腳本蚁阳,默認(rèn)為/etc/qemu-ifup
- downscript=dfile:關(guān)閉虛擬機(jī)時(shí)要執(zhí)行的腳本螺捐,/etc/qemu-ifdown
- ifname=NAME:自定義接口名稱;
(5)赔癌、其它選項(xiàng):
-daemonize:以守護(hù)進(jìn)程運(yùn)行澜沟;
注意:創(chuàng)建磁盤映像文件,用于存放虛擬機(jī)虛擬磁盤刊苍,稀疏格式的正什,實(shí)際占用空間要遠(yuǎn)小于創(chuàng)建聲明空間大泻判印:
示例1:創(chuàng)建虛擬機(jī)實(shí)例
~]# qumu-dmg create -f qcow2 -o preallocation=metadata,size=10G /vms/centos/centos7.img
#查看新創(chuàng)建映像文件信息
~]# 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:創(chuàng)建虛擬機(jī)實(shí)例
#添加一個(gè)網(wǎng)橋
~]# brctl addbr br0
# 查看創(chuàng)建的網(wǎng)橋
~]# brctl show
#將創(chuàng)建的網(wǎng)橋開啟
~]# ifconfig br0 up
#安裝qemu-kvm工具包
~]# yum install qemu-kvm
#由于安裝好的qemu不在/usr/bin/下所以需要鏈接至其下
~]# ln -sv /usr/libexec/qemu-kvm /usr/bin/
#查看所支持模擬機(jī)器的類型
~]# qemu-kvm -machine ?
#查看模擬所支持的cpu的類型
~]# qemu-kvm -cpu ?
CentOS磁盤鏡像文件下載:
https://cloud.centos.org/centos/7/images/
#新建一個(gè)網(wǎng)卡腳本,使虛擬機(jī)網(wǎng)卡自動(dòng)添加網(wǎng)橋
~]# 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
#檢查腳本的語法錯(cuò)誤
~]# bash -n /etc/qemu-ifup
#添加執(zhí)行權(quán)限
~]# chmod +x /etc/qemu-ifup
#創(chuàng)建文件夾旨怠。來存放磁盤鏡像文件
~]# mkdir /data/VMs/c1 -p
# 進(jìn)入此目錄下
~]# cd /data/VMs/c1/ 進(jìn)入此目錄下
#將此鏡像文件下載到本目錄下
~]#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
#創(chuàng)建虛擬機(jī)
~]# 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的端口 已經(jīng)打開了)
通過桌面上的vnc鏈接到本機(jī)的IP地址192.168.1.64:0 (就可以連接上了)
連接上之后,給此虛擬機(jī)添加一個(gè)IP地址:ifconfig eth0 10.0.0.4/16
查看添加的網(wǎng)卡接口位:tap0
遠(yuǎn)程ssh也是可以來凝結(jié)本虛擬機(jī)的迷扇。
如果需要關(guān)閉虛擬機(jī)直接將qemu進(jìn)程殺掉就可以了。
如果再創(chuàng)建一個(gè)虛擬機(jī)器一,vnc的編號要改祈秕;mac地址也要改;磁盤鏡像文件也要添加新的