1. 程式人生 > >KVM管理工具

KVM管理工具

vm管理 磁盤映射 路徑 creat arch graph one 第一個 ....

kvm實現方式:

qemu工具:
qemu-kvm
qemu-img

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

基本格式:
qemu-kvm [選項] 磁盤鏡像文件

標準選項:
-machine [type=]name:用於指定模擬的主機類型
-cpu:用於指定模擬的cpu型號
-smp [n]:指定虛擬機上vcpu的數量及拓撲
-boot
  order:各設備的引導次序,c表示第一塊硬盤 d表示第一個光驅設備
   -boot order=dc,once=d
-m megs:虛擬機內存大小[單位是兆]
-name name:當前虛擬機的名稱,要唯一

塊設備相關選項:
-hda/-hdb file:指明IDE總線類型的磁盤映射文件路徑,第0和第一個
-hdc/-hdd file:第2和第3個

-cdrom file:指定要使用光盤映像文件

-drive:file=映像文件路徑 if=type塊設備總線類型{ide|scsi|sd|virtio}
media=type :介質類型
index=i:設定同一類型設備多個設備的編號
cache={writethrough|writeback|none|directsync|unsafe} 換內存方式
1 writethrough:通寫
    數據寫在內存的時候立刻同步到磁盤
2 writeback:回寫
    數據到內存中,什麽時間同步到磁盤中由磁盤緩存機制管理
3 none:不起用
4 directsync:直接同步
    直接存到緩存然後立刻存磁盤
5 unsafe:非安全方式
    盡可能存入內存!數據可靠性不高

format=f:磁盤映像文件格式

顯示選項:
-display type:顯示類型 sdl curses none和vnc
-nographic:不使用圖形接口
-vga [std|cirrus|vmware|qxl|xenfb|none]:模擬出顯卡的型號
-vnc display :啟動一個vnc server來顯示虛擬機接口 讓qemu進程監聽一個vnc接口
    display:
        HOST:N
            在HOST主機的第N個桌面號輸出vnc
        unix:文件路徑
        none
    option:
        password:連接詞服務所需要的密碼

-monitor stdio:在標準輸出上顯示monitior界面
            ctrl-a, c:在console和monitor之間切換
            ctrl-a,h

網絡選項:
    -net nic[vlan=n] [macaddr=mac] [model=type] [name=dir] [add=str] [vectors=v]
            為虛擬機創建一個網絡接口,並將其添加至指定的vlan
            model=type:知名模擬出的網卡型號 
                ne2k_pci
                i82551
                i82557b
                rtl8559er
                e1000
                pcnet
                virtio
            macaddr=mac 指明mac地址
    -net tap:
        通過物理的tap網絡接口連接至vlan
        script=file:啟用虛擬機時要執行的腳本 默認為/etc/qemu-ifup
        downscript=dfile:關閉虛擬機時要執行的腳本 默認為/etc/qemu-ifdown
        ifname=name:自定義接口名稱

腳本示例:
#!/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

其它選項:
-daemonize:以守護進程運行

方便使用--創建軟連接:
ln -sv /usr/libexec/qemu-kvm /usr/bin

創建虛擬機:
1 利用鏡像啟動虛擬機
qemu-kvm -name kvm2 -cpu host -smp 4,socket=2,cores=2,threads=1 -m 128 -drive file=./centos-text.img,format=qcow2,media=disk,if=virtio,cache=writeback -net nic,macaddr=52:54:00:00:00:01,model=virtio -net tap,ifname=vnet0,script=/etc/qemu-ifup -vnc :0 

-name kvm2 --虛擬機名稱
-cpu host:型號和宿主機一樣
-smp 2:給幾顆cpu核心
    socket=2 --幾顆cpu
    cores=2 --每個cpu幾個核心
    threads=1  --線程數
smp=socket*cores*threads

-m 128 ---模擬內存大小

-drive file=./centos-text.img,format=qcow2,media=disk,if=virtio
file=./centos-text.img --鏡像文件路徑
format=qcow2 --磁盤格式
media=disk --類型
if=virtio --半驅動
cache=writeback --磁盤緩存類型
網絡相關:
-net nic,macaddr=52:54:00:00:00:01 --指定mac地址
model=virtio  --指定網卡類型 
-net tap,ifname=vnet0,script=/etc/qemu-ifup -vnc :0 
指定名稱和腳本

安裝vnc:
yum install -y tigervnc

實際應用:
[root@www21:02:44kvm2]#qemu-kvm -name kvm2 -cpu host -smp 4,sockets=2,cores=2,threads=1 -m 128 -drive file=./centos-text.img,format=qcow2,media=disk,if=virtio,cache=writeback -net nic,macaddr=52:54:00:00:00:01,model=virtio -net tap,ifname=anet0,script=/etc/qemu-ifup -vnc :2 -daemonize

使用vnc連接:
vncviewer
輸入虛擬機物理主機IP:2

關閉虛擬機:
kill [pid]
設置虛擬機開機自啟動:
virsh info [虛擬機名稱] --可以查看虛擬機信息
virsh autostart [虛擬機名稱] --開機自啟動

virsh domiflist php --查看虛擬機的網絡接口

................................................
virt-sysprep命令:制作磁盤鏡像模板
-d:指定虛擬機名
--operations:指定移除項 
firewall-rules--防火墻規則

yum install -y libguestfs
yum install -y libguestfs-tools

列出支持的所有操作:
virt-sysgrep --list-operations

如何使用:
virt-sysprep -d [虛擬機名稱]
具體使用:
virt-sysprep -d centos7.0
虛擬機必須關閉!
kimchi工具:
kimchi軟件
https://github.com/kimchi-project

kimchi-2.5.0-0.el7.centos.noarch.rpm
wok-2.5.0-0.el7.centos.noarch.rpm

啟動服務:
systemctl start wokd.service 

默認監聽在8001端口上!

訪問方式:
https://xxxx

用戶密碼就是操作系統上的用戶密碼

提供物理橋相關的網絡:
[root@www02:11:11~]#virsh net-dumpxml default
<network>
  <name>test0</name>
  <forward mode=‘bridge‘/>
  <bridge name=‘test0‘/>
</network>

vim /etc/libvirt/qemu/networks/test0.xml

virsh net-create /etc/libvirt/qemu/networks/test0.xml

KVM管理工具