您好,登錄后才能下訂單哦!
本篇文章為大家展示了libvirt中怎么創建虛擬機并設置網絡,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
libvirt是基于xen、kvm等虛擬化技術之上的進一步操作封裝,通過他可以快速調用kvm、xen命令快速創建、管理虛擬機。比如libvirt通過xml配置文件的方式記錄kvm創建虛擬機需要的參數,然后每次啟動虛擬機就只需要讀取這個xml的配置信息即可,不需要每次都輸入那么多命令和參數。 他們的關系如下:
1、同樣先判斷機器是否支持虛擬化,然后加載內核模塊。
2、安裝 qemu-kvm 、 libvirt(會自動安裝bridge-utils)
yum install -y qemu-kvm libvirt
3、啟動libvritd守護進程
service libvirtd start
4、使用virsh有兩種方式
直接使用:virsh list --all
virsh 【回車】 進入交互界面
virsh# list --all
5、編寫配置文件
注意:
1、里面的磁盤鏡像和光盤鏡像千萬不要放在root下,要放在/目錄下
2、<os></os>這一行cdrom和hd沒有順序問題
3、vnc端口如果開啟自動獲取,設置為yes和-1,如果想指定端口,就設置為no和具體590X
其實libvirt它是借助于qemu-kvm的功能,在她的基礎之上在進行操作封裝。同時,它把虛擬機的參數都記錄在一個配置文件中,復用這個配置配置文件。
<domain type="kvm"> <!--虛擬機名稱--> <name>kvm1</name> <!--最大內存,mb--> <memory unit="MiB">1024</memory> <!--可用內存,k--> <currentMemory unit="MiB">1024</currentMemory> <!--虛擬cpu個數--> <vcpu>2</vcpu> <!--啟動順序沒有關系--> <os> <type arch="x86_64">hvm</type> <!-- 硬盤啟動 --> <boot dev="hd" /> <!--光盤啟動--> <boot dev="cdrom" /> </os> <features> <acpi /> <apic /> <pae /> </features> <clock offset="localtime" /> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <!--配置磁盤鏡像和光盤鏡像,使用virtio模式,加快讀取速度--> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type="file" device="disk"> <driver name="qemu" type="qcow2" /> <!--目的鏡像>路徑--> <source file="/cloud/centos.qcow2" /> <target dev="vda" bus="virtio" /> </disk> <disk type="file" device="cdrom"> <!--光盤鏡像路徑 --> <source file="/cloud/CentOS-6.6-x86_64-minimal.iso" /> <target dev="hdb" bus="ide" /> </disk> <!--虛擬機網絡配置,綁定到什么網橋上,就是什么網絡,注意:同一網段,網卡不能一樣--> <!--綁定到virbr0,是nat。 這是第一塊網卡,對應eth0--> <interface type="bridge"> <!--指定虛擬機網卡mac地址,可以不設置,自動分配--> <!-- <mac address='06:64:12:00:00:52'/> --> <!--當前主機網橋的名稱--> <source bridge="virbr0" /> <model type='virtio'/> </interface> <!--綁定到br0,是bridge。 這是第二塊網卡,對應eth2--> <interface type="bridge"> <!--指定虛擬機網卡mac地址,可以不設置,自動分配--> <!-- <mac address='06:64:12:00:00:52'/> --> <!--當前主機網橋的名稱--> <source bridge="br0" /> <model type='virtio'/> </interface> <!--鼠標輸入設備--> <input type="mouse" bus="ps2" /> <!--vnc端口號自動分配,可以通過virsh vncdisplay來查詢--> <graphics type="vnc" port="5901" autoport="no" listen="0.0.0.0" keymap="en-us" passwd='abcd'/> <!--vnc端口號自動分配,手動指定分配--> <!-- <graphics type="vnc" port="5901" autoport="no" listen="0.0.0.0" keymap="en-us" passwd='abcd'/> --> </devices> </domain>
1、定義虛擬機(指定配置文件,配置文件會被拷貝到libvirt的一個指定文件夾中)
virsh define /cloud/centos-base.xml
2、virsh 進行管理虛擬機
virsh list --all # 顯示所有虛擬機 --all顯示全部
3、啟動虛擬機
virsh start centos
4、關閉虛擬機
virsh shutdown centos
5、強制關機
virsh destroy centos
6、移除虛擬機
virsh undefine centos
7、顯示vnc端口
virsh vncdisplay centos
8、動態查詢kvm使用資源
top -d 1 | grep kvm
9、查詢kvm進程
ps -aux | grep kvm
10、開機自動啟動虛擬機
virsh autostart centos
11、導出虛擬機centos的硬件配置信息為/cloud/centos.bak.xml
virsh dumpxml centos > /cloud/centos.bak.xml
12、編輯虛擬機配置(配置的是libvirt中的配置文件,而不是我們編寫的那個)
virsh edit centos
13、克隆KVM虛擬機
virt-clone -o Winxp -n winxpclong -f /home/kvm/winxpclong.img (-o 原始客體的名稱-n新客戶端的名稱-f作為新客戶端磁盤映像的新文件)
1、 不再需要brctl和tunctl來手動創建網橋、tap類型的網卡然后再關聯等等步驟,現在只需要使用virsh提供的iface-bridge、iface-unbridge等即可自動創建網橋、網卡,并且綁定到網橋上。最主要的是它會直接ifcfg-eth0和創建一個ifcfg-br0文件,這樣機器重啟后,還是有效的。
2、同樣分成三種網絡模式bridge、nat、hosts-only
bridge和nat模式
nat:virsh啟動就會創建一個nat類型的網橋virbr0,這個網橋的配置信息在 cat /var/lib/libvirt/network/default.xml這里定義。如果定義nat類型的網絡,直接關聯這個網橋即可
bridge:需要利用iface-bridge eth0 br0創建一個網橋并綁定eth0。
3、創建網橋,并且將eth0關聯到網橋上的操作(自動創建網橋br0、并綁定eth0)會修改ifcfg-eth0和創建一個ifcfg-br0的配置文件
virsh iface-bridge eth0 br0
4、編輯虛擬機配置文件,綁定到網橋上(會自動創建一個tap類型的網卡vnet0并綁定到網橋上)
<!--虛擬機網絡配置,綁定到什么網橋上,就是什么網絡,注意:同一網段,網卡不能一樣--> <!--綁定到virbr0,是nat。 這是第一塊網卡,對應eth0--> <interface type="bridge"> <!--指定虛擬機網卡mac地址,可以不設置,自動分配--> <!-- <mac address='06:64:12:00:00:52'/> --> <!--當前主機網橋的名稱--> <source bridge="virbr0" /> <model type='virtio'/> </interface> <!--綁定到br0,是bridge。 這是第二塊網卡,對應eth2--> <interface type="bridge"> <!--指定虛擬機網卡mac地址,可以不設置,自動分配--> <!-- <mac address='06:64:12:00:00:52'/> --> <!--當前主機網橋的名稱--> <source bridge="br0" /> <model type='virtio'/> </interface>
5、和上面一樣定義和啟動虛擬機即可。
啟動虛擬機后,ifconfig會出現一個vnet0的tap類型網卡,是因為上面橋接到br0,自動生成的,它的網卡mac也是自動生成的。br0上面綁定了兩個網卡eth0和vnet0
如果再啟動一個虛擬機綁定到virtbr0上,那么又會自動創建一個tap類型網卡(vnet1),并綁定到virtbr0上。
1、virsh 會自動創建網橋,并綁定eth0到上面,同時修改ifcfg-eth0和創建ifcfg-br0為了下次開機重啟時還能生效。區別于手動brctl操作
2、啟動虛擬機時,鏈接到那個網橋上,哪個網橋就會自動創建一個tap類型的網卡,名稱從vnet0遞增,關閉虛擬機后,會自動刪除這個vnet0
3、xml配置文件定義網卡的時候可以不指定網卡mac,會自動分配,如果手動指定,那么就必須保證同一個網橋上,mac不能重復
4、如果xml中配置多個網卡,那么需要記住順序,第一個是eth0、第二個是eth2。。。。。。,因為綁定到那個網橋上,就需要配置對應網段的ip地址,否則沒法上網
iface-begin iface-commit iface-destroy iface-edit iface-mac iface-rollback iface-unbridge iface-bridge iface-define iface-dumpxml iface-list iface-name iface-start iface-undefine
上述內容就是libvirt中怎么創建虛擬機并設置網絡,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。