利用virsh和xml檔案建立虛擬機器
阿新 • • 發佈:2019-01-29
virsh命令來建立虛擬機器步驟
(1)生成硬碟映象檔案:
格式:raw或qcow2
# qemu-img create -f raw fdisk.img 10G
# qemu-img info fdisk.img
(2)編寫xml配置檔案,這一步在後面做詳細介紹
(3)建立並執行虛擬機器
# sudo apt-get install qemu-kvm
# virsh define vm0.xml //匯入虛擬機器配置
# virsh start vm0 //開啟vm0
# virsh list --all // 顯示所有虛擬機器狀態
# virsh destroy vm0 //銷燬虛擬機器
# virsh undefine vm1 //刪除虛擬機器配置
# virsh dumpxml vm0 //顯示虛擬機器xml配置
其中“vm0.xml”是步驟(2)中建立的xml檔案。
虛擬機器XML檔案
<domain type='kvm'> //如果是Xen,則type=‘xen’
<name>vm0</name> //虛擬機器名稱,同一物理機唯一
<uuid>fd3535db-2558-43e9-b067-314f48211343</uuid> //同一物理機唯一,可用uuidgen生成
<memory>524288</memory>
<currentMemory >524288</currentMemory> //memory這兩個值最好設成一樣
<vcpu>2</vcpu> //虛擬機器可使用的cpu個數,檢視物理機可用CPU個數:cat /proc/cpuinfo |grep processor | wc -l
<os>
<type arch='x86_64' machine='pc-i440fx-vivid'>hvm</type> //arch指出系統架構型別,machine 則是機器型別,檢視機器型別:qemu-system-x86_64 -M ?
<boot dev='hd'/> //啟動介質,第一次需要裝系統可以選擇cdrom光碟啟動
<bootmenu enable='yes'/> //表示啟動按F12進入啟動選單
</os>
<features>
<acpi/> //Advanced Configuration and Power Interface,高階配置與電源介面
<apic/> //Advanced Programmable Interrupt Controller,高階可程式設計中斷控制器
<pae/> //Physical Address Extension,實體地址擴充套件
</features>
<clock offset='localtime'/> //虛擬機器時鐘設定,這裡表示本地本機時間
<on_poweroff>destroy</on_poweroff> //突發事件動作
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices> //裝置配置
<emulator>/usr/bin/kvm</emulator> //如果是Xen則是/usr/lib/xen/binqemu-dm
<disk type='file' device='disk'> //硬碟
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmdev/fdisk.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> //域、匯流排、槽、功能號,slot值同一虛擬機器上唯一
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmdev/fdisk2.img'/>
<target dev='vdb' bus='virtio'/>
</disk>
<disk type='file' device='cdrom'>//光碟
<driver name='qemu' type='raw'/>
<source file='/opt/vm/vmiso/ubuntu-15.10-server-amd64.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
</disk>
/* 利用Linux網橋連線網路 */
<interface type='bridge'>
<mac address='fa:92:01:33:d4:fa'/>
<source bridge='br100'/> //配置的網橋網絡卡名稱
<target dev='vnet0'/> //同一網橋下相同
<alias name='net0'/> //別名,同一網橋下相同
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> //注意slot值唯一
</interface>
/* 利用ovs網橋連線網路 */
<interface type='bridge'>
<source bridge='br-ovs0'/>
<virtualport type='openvswitch'/>
<target dev='tap0'/>
<model type='virtio'/>
</interface>
/* 配置成pci直通虛擬機器連線網路,SR-IOV網絡卡的VF場景 */
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
</source>
</hostdev>
/* 利用vhostuser連線ovs埠 */
<interface type='vhostuser'>
<mac address='fa:92:01:33:d4:fa'/>
<source type='unix' path='/var/run/vhost-user/tap0' mode='client'/>
<model type='virtio'/>
<driver vringbuf='2048'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='network'> //基於虛擬區域網的網路
<mac address='52:54:4a:e1:1c:84'/> //可用命令生成,見下面的補充
<source network='default'/> //預設
<target dev='vnet1'/> //同一虛擬區域網的值相同
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> //注意slot值
</interface>
<graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0' keymap='en-us'/> //配置vnc,windows下可以使用vncviewer登入,獲取vnc埠號:virsh vncdisplay vm0
<listen type='address' address='0.0.0.0'/>
</graphics>
</devices>
</domain>