歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 使用 libvirt創建和管理KVM虛擬機

使用 libvirt創建和管理KVM虛擬機

日期:2017/2/28 15:48:20   编辑:Linux教程

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://[email protected]/system
(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)制作虛擬機鏡像

  1. qemu-img create -f qcow2 test.qcow2 10G
(2)下載並復制iso鏡像到指定目錄,本文將所有鏡像及配置文件放到/var/lib/libvirt/images/目錄下,注意:有些系統因為SELinux的原因,限定了qemu的訪問,所以,可以根據自己需求調整,默認放在/var/lib/libvirt/images/下。
(3)創建安裝配置文件,demo.xml如下,可以根據自己需求更改。

  1. <domain type='kvm'>
  2. <name>test_Ubuntu</name> //虛擬機名稱
  3. <memory>1048576</memory> //最大內存,單位k
  4. <currentMemory>1048576</currentMemory> //可用內存,單位k
  5. <vcpu>8</vcpu> //虛擬cpu個數
  6. <os>
  7. <type arch='x86_64' machine='pc'>hvm</type>
  8. <boot dev='cdrom'/> //光盤啟動
  9. </os>
  10. <features>
  11. <acpi/>
  12. <apic/>
  13. <pae/>
  14. </features>
  15. <clock offset='localtime'/>
  16. <on_poweroff>destroy</on_poweroff>
  17. <on_reboot>restart</on_reboot>
  18. <on_crash>destroy</on_crash>
  19. <devices>
  20. <emulator>/usr/libexec/qemu-kvm</emulator>
  21. <disk type='file' device='disk'>
  22. <driver name='qemu' type='qcow2'/>
  23. <source file='/var/lib/libvirt/images/test.qcow2'/> //目的鏡像路徑
  24. <target dev='hda' bus='ide'/>
  25. </disk>
  26. <disk type='file' device='cdrom'>
  27. <source file='/var/lib/libvirt/images/ubuntu.iso'/> //光盤鏡像路徑
  28. <target dev='hdb' bus='ide'/>
  29. </disk>
  30. <interface type='bridge'> //虛擬機網絡連接方式
  31. <source bridge='kvmbr0'/> //當前主機網橋的名稱
  32. <mac address="00:16:3e:5d:aa:a8"/> //為虛擬機分配mac地址,務必唯一,否則dhcp獲得同樣ip,引起沖突
  33. </interface>
  34. <input type='mouse' bus='ps2'/>
  35. <graphics type='vnc' port='-1' autoport='yes' listen = '0.0.0.0' keymap='en-us'/>//vnc方式登錄,端口號自動分配,自動加1,可以通過virsh vncdisplay來查詢
  36. </devices>
  37. </domain>

  1. virsh define demo.xml //創建虛擬機
  1. virsh start test_ubuntu //啟動虛擬機
  1. virsh vncdisplay test_ubuntu //查看虛擬機的vnc端口, 然後就可以通過vnc登錄來完成虛擬機的安裝
3. 使用剛才創建好的鏡像來啟動一個新的虛擬機
(1)創建啟動配置文件,demo.xml如下。

  1. <domain type='kvm'>
  2. <name>myvm</name> //創建名為myvm的虛擬機
  3. <memory>1048576</memory>
  4. <currentMemory>1048576</currentMemory>
  5. <vcpu>8</vcpu>
  6. <os>
  7. <type arch='x86_64' machine='pc'>hvm</type>
  8. <boot dev='hd'/> //即harddisk,從磁盤啟動
  9. </os>
  10. <features>
  11. <acpi/>
  12. <apic/>
  13. <pae/>
  14. </features>
  15. <clock offset='localtime'/>
  16. <on_poweroff>destroy</on_poweroff>
  17. <on_reboot>restart</on_reboot>
  18. <on_crash>destroy</on_crash>
  19. <devices>
  20. <emulator>/usr/libexec/qemu-kvm</emulator>
  21. <disk type='file' device='disk'>
  22. <driver name='qemu' type='qcow2'/>
  23. <source file='/var/lib/libvirt/images/test.qcow2'/> //目的鏡像路徑
  24. <target dev='hda' bus='ide'/>
  25. </disk>
  26. <disk type='file' device='cdrom'>
  27. <source file='/var/lib/libvirt/images/ubuntu.iso'/> //光盤鏡像路徑
  28. <target dev='hdb' bus='ide'/>
  29. </disk>
  30. <interface type='bridge'>
  31. <source bridge='kvmbr0'/>
  32. <mac address="00:16:3e:5d:aa:a8"/>
  33. </interface>
  34. <input type='mouse' bus='ps2'/>
  35. <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>

  36. </devices>
  37. </domain>
  1. virsh define demo.xml

  2. virsh start myvm
4, 虛擬機管理
虛擬機的管理即通過virsh命令來完成,具體命令的使用參見:http://libvirt.org/sources/virshcmdref/html-single/
Copyright © Linux教程網 All Rights Reserved