使用libvirt管理kvm(virsh篇)
? 一、簡(jiǎn)介
libvirt是Linux上的虛擬化庫(kù),是長(zhǎng)期穩(wěn)定的C語言API,支持KVM/QEMU、Xen、LXC等主流虛擬化方案。鏈接:http://libvirt.org/
virsh是libvirt對(duì)應(yīng)的shell命令。
二、環(huán)境介紹
OS:Ubuntu 12.04.1 LTS
內(nèi)核:Linux 3.2.0-33-generic-pae #52-Ubuntu SMP Thu Oct 18 16:39:21 UTC 2012 i686 i686 i386 GNU/Linux
libvirt:0.9.8
三、準(zhǔn)備工作
ubuntu安裝,直接apt-get install
1、安裝kvm/qemu
sudo apt-get install kvm qemu
2、安裝libvirt
sudo apt-get install libvirt-bin libvirt-dev
3、網(wǎng)橋管理工具
sudo apt-get install bridge-utils
4、統(tǒng)一建模語言
sudo apt-get install uml-utilities
5、vnc 虛擬機(jī)查看工具
sudo apt-get install vncviewer vnc4server
四、創(chuàng)建鏡像
在指定目錄下
執(zhí)行 ?qemu-img create -f raw template.img 3G
這樣就創(chuàng)建了一個(gè)大小為3G的鏡像(img)
有人可能問鏡像是什么東西。簡(jiǎn)單的說,我們?cè)阽R像上啟動(dòng)一個(gè)虛擬機(jī),這個(gè)3G的鏡像就相當(dāng)于這個(gè)虛擬機(jī)對(duì)應(yīng)的磁盤空間。
也有人執(zhí)行 qemu-img create -f qcow2 template.img 3G,(備注:qcow2支持動(dòng)態(tài)擴(kuò)張)來獲得一個(gè)動(dòng)態(tài)擴(kuò)張的鏡像。我沒有用這個(gè)。不同情景下可能這種模式更好,有興趣的朋友自己試一下。
五、libvirt xml配置文件
libvirt(包括virsh)使用xml文件對(duì)虛擬機(jī)進(jìn)行配置,其中包括虛擬機(jī)名稱、分配內(nèi)存、vcpu等多種信息。定義、創(chuàng)建虛擬機(jī)等操作都需要xml配置文件的參與,因此這里先介紹xml配置文件。我編輯了一個(gè)名為template.xml的xml文件,其中定義了一個(gè)名為demo的kvm 虛擬機(jī)。
<domain?type?=?'kvm'>????????//虛擬機(jī)類型,kvm<name>demo</name>????????//虛擬機(jī)名稱<memory>1048576</memory>?//分配內(nèi)存,單位kb<vcpu>1</vcpu>???????????//分配vcpu,單位個(gè)數(shù)<os><type?arch?=?'x86_64'machine?=?'pc'>hvm</type><boot?dev?=?'cdrom'/>?//cd?啟動(dòng)<boot?dev?=?'hd'/>????//硬盤啟動(dòng)</os><features><acpi/><apic/><pae/></features><clock?offset?=?'localtime'/><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><devices><emulator>/usr/bin/kvm</emulator><disk?type?=?'file'?device?=?'disk'>??//對(duì)應(yīng)的鏡像,就是之前使用qemu-img命令新建的img文件,注意路徑要正確<driver?name?=?'qemu'?type?=?'raw'/><source?file?=?'/var/lib/lynn/img/template.img'/><target?dev?=?'hda'?bus?=?'ide'/></disk><disk?type?=?'file'?device?=?'cdrom'>?//可選項(xiàng),iso通常是操作系統(tǒng)的安裝光盤<source?file?=?'/var/lib/lynn/img/template.iso'/><target?dev?=?'hdb'?bus?=?'ide'/></disk><interface?type?=?'bridge'>???????????//libvirt默認(rèn)虛擬機(jī)的網(wǎng)絡(luò)配置是NAT模式,就是虛擬機(jī)與宿主機(jī)的網(wǎng)絡(luò)拓?fù)涫荖AT形式。實(shí)際中,許多開發(fā)者更希望使用網(wǎng)橋模式。<source?bridge?=?'br0'/></interface><input?type?='tablet'?bus='usb'/><input?type?=?'mouse'?bus?=?'ps2'/><graphics?type?=?'vnc'?port?=?'-1'?listen?=?'0.0.0.0'?autoport?=?'yes'?keymap?=?'en-us'/>????//vnc端口系統(tǒng)自動(dòng)配置</devices> </domain>六、查看虛擬機(jī)列表
查看本機(jī)默認(rèn)(kvm)連接的虛擬機(jī):virsh list 。出現(xiàn)如下列信息:
$ virsh list Id 名稱 ? ? ? ? ? ? ? 狀態(tài) ---------------------------------- |
$ virsh list Id 名稱 ? ? ? ? ? ? ? 狀態(tài) ---------------------------------- 1 demo ? ? ? ? ? ? ? ? running |
七、定義、啟動(dòng)、創(chuàng)建虛擬機(jī)
這里以上述template.xml配置文件為例
1、定義虛擬機(jī)
virsh define template.xml
備注:此時(shí)虛擬機(jī)只被定義了,并沒有真正啟動(dòng)。因此此時(shí)執(zhí)行virsh list沒有任何虛擬機(jī)信息
$ virsh list Id 名稱 ? ? ? ? ? ? ? 狀態(tài) ---------------------------------- |
2、啟動(dòng)虛擬機(jī)
virsh start ?demo
啟動(dòng)了由template.xml定義的、名為demo的虛擬機(jī)。此時(shí)執(zhí)行virsh list出現(xiàn)如下信息:
$ virsh list Id 名稱 ? ? ? ? ? ? ? 狀態(tài) ---------------------------------- 1 demo ? ? ? ? ? ? ? ? running |
3、創(chuàng)建虛擬機(jī)
創(chuàng)建虛擬機(jī)的作用相當(dāng)于定義虛擬機(jī)+啟動(dòng)虛擬機(jī)
virsh create template.xml
此時(shí)執(zhí)行virsh list,結(jié)果如下:
$ virsh list Id 名稱 ? ? ? ? ? ? ? 狀態(tài) ---------------------------------- 1 demo ? ? ? ? ? ? ? ? running |
八、通過vnc查看虛擬機(jī)
前面都沒有直觀感受,我們可能需要進(jìn)入虛擬機(jī)內(nèi)部進(jìn)行操作。
1、查看vnc端口
$ virsh vncdisplay demo :0 |
2、通過vnc查看虛擬機(jī)內(nèi)部
$ vncviewer 127.0.0.1:0 |
效果如下:
備注:這個(gè)鏡像是我之前創(chuàng)建好的鏡像,所以已經(jīng)安裝好了操作系統(tǒng)。如果你從頭建了一個(gè)新的鏡像,就需要在虛擬機(jī)內(nèi)安裝操作系統(tǒng)(操作就像在物理機(jī)上安裝os一樣)。
九、關(guān)閉、銷毀、取消定義虛擬機(jī)
1、關(guān)閉虛擬機(jī)
virsh shutdown demo
虛擬機(jī)將慢慢關(guān)閉,就像平時(shí)我們關(guān)閉計(jì)算機(jī)那樣。此步驟與virsh start demo對(duì)應(yīng)
2、取消定義虛擬機(jī)
virsh undefine demo
libvirt取消demo的定義,系統(tǒng)無法在辨識(shí)demo。此步驟與virsh define template.xml對(duì)應(yīng)。
2、銷毀虛擬機(jī)
virsh destroy demo
libvirt直接銷毀demo,取消demo的定義。此步驟之后無法在執(zhí)行virsh undefine demo。
轉(zhuǎn)載于:https://blog.51cto.com/speakingbaicai/1161964
總結(jié)
以上是生活随笔為你收集整理的使用libvirt管理kvm(virsh篇)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转码网址
- 下一篇: 安装vsftpd-3.0.2.tar.g