使用 libvirt建立和管理KVM虛擬機器

2022-05-04 17:45:13 字數 1950 閱讀 3887

1. libvirt介紹

libvirt是乙個軟體集合,便於使用者管理虛擬機器和其他虛擬化功能,比如儲存和網路介面管理等等。libvirt概括

起來包括乙個api庫、乙個 daemon(libvirtd)和乙個命令列工具(virsh)。

libvirt的主要目標是:提供一種單一的方式管理多種不同的虛擬化提供方式和 hypervisor。

libvirt的主要功能如下:

(1)虛擬機器管理

包括不同的領域生命週期操作,比如:啟動、停止、暫停、儲存、恢復和遷移。

支援多種裝置型別的熱插拔操作,包括:磁碟、網絡卡、記憶體和cpu。

(2)遠端機器支援

只要機器上執行了libvirt daemon,包括遠端機器,所有的libvirt功能就都可以訪問和使用。

支援多種網路遠端傳輸,使用最簡單的ssh,不需要額外配置工作。比如:example.com執行了libvirt,

而且允許ssh訪問,下面的命令列就可以在遠端的主機上使用virsh命令列。

virsh --connect qemu+ssh:

(3)儲存管理

任何執行了libvirt daemon的主機都可以用來管理不同型別的儲存:建立不同格式的檔案映像(qcow2、vmdk、raw等)、掛接nfs共享、列出現有的lvm捲組、建立新的lvm捲組和邏輯卷、對未處理過的磁碟裝置分割槽、掛接iscsi共享,等等等等。因為libvirt可以遠端工作,所有這些都可以通過遠端主機使用。

(4)網路介面管理

任何執行了libvirt daemon的主機都可以用來管理物理和邏輯的網路介面。可以列出現有的介面卡,配置、建立介面,以及橋接、vlan和關聯裝置等,通過netcf都可以支援。

(5)虛擬nat和基於路由的網路

任何執行了libvirt daemon的主機都可以用來管理和建立虛擬網路。libvirt虛擬網路使用防火牆規則作為路由器,讓虛擬機器可以透明訪問主機的網路

2. 使用libvirt建立kvm虛擬機器

(1)製作虛擬機器映象

qemu-img create -f qcow2 test.qcow2 10g

test_ubuntu

//虛擬機器名稱

1048576 //最大記憶體,單位k

1048576 //可用記憶體,單位k

8 //虛擬cpu個數

hvm//光碟啟動

destroy

restart

destroy

/usr/libexec/qemu-kvm

//目的映象路徑

//光碟映象路徑

//虛擬機器網路連線方式

//當前主機網橋的名稱

//為虛擬機器分配mac位址,務必唯一,否則dhcp獲得同樣ip,引起衝突

//vnc方式登入,埠號自動分配,自動加1,可以通過virsh vncdisplay來查詢

virsh define demo.xml //建立虛擬機器

virsh start test_ubuntu //啟動虛擬機器

virsh vncdisplay test_ubuntu //檢視虛擬機器的vnc埠, 然後就可以通過vnc登入來完成虛擬機器的安裝

3. 使用剛才建立好的映象來啟動乙個新的虛擬機器

(1)建立啟動配置檔案,demo.xml如下。

myvm  //建立名為myvm的虛擬機器

1048576

1048576

8hvm

//即harddisk,從磁碟啟動 

destroy

restart

destroy

/usr/libexec/qemu-kvm

//目的映象路徑

//光碟映象路徑

virsh define demo.xml

virsh start myvm

4, 虛擬機器管理

虛擬機器的管理即通過virsh命令來完成,具體命令的使用參見:

libvirt建立和管理KVM虛擬機器

create disk qemu img create f raw test4.raw 8g install virt install name test4 hvm ram 1024 vcpu 2 disk path test4.raw network network default cdrom r...

使用libvirt管理kvm(virsh篇)

一 簡介 virsh是libvirt對應的shell命令。二 環境介紹 os ubuntu 12.04.1 lts 核心 linux 3.2.0 33 generic pae 52 ubuntu smp thu oct 18 16 39 21 utc 2012 i686 i686 i386 gnu ...

使用libvirt管理虛擬機器

在server和client端都安裝libvirt bin 修改服務端的 etc libvirt libvirtd.conf配置檔案,去掉listen tls 0和listen tcp 1前面的 號 在tcp驗證的地方新增auth tcp none 修改 etc default libvirtd b...