先上操作步驟,再介紹原理。
準備工作:
1、cat /proc/cpuinfo | grep vmx //有輸出結果的表示cpu支援虛拟化
2、modprobe kvm //加載核心的kvm子產品
3、
yum -y
install
qemu-kvm virt-manager libvirt vi
rt-
install
4、systemctl stop firewalld---systemctl disabled firewalld //關閉防火牆
5、sed -i "s/SELINUX=enforing/SELINUX=disabled/" /etc/selinux/conf //關閉SELINUX
6、setenforce 0
安裝虛拟機:
1、mkdir /kvmdir
2、qemu-img create -f qcow2 /kvmdir/centos-demo.qcow2 10G //建立虛拟機磁盤
3、mount /dev/cdrom /media //用的是vmare workstation,隻能先挂載鏡像檔案,再考到對應目錄,我用的是centos
4、dd if=/dev/cdrom of=/opt/centos6.5.ios //将鏡像檔案拷貝到/opt/centos6.5.ios,待用
5、virt-install --name centos-demo --virt-type kvm --vcpu 2 --ram 512 --cdrom=/opt/centos6.5.ios --disk path=/kvmdir/centos-demo.qcow2 --network network=default --graphics vnc,listen=0.0.0.0
6、通過vnc連接配接主機ip:5900就可以看到安裝界面(192.168.213.131:5900)
7、virsh list --all //檢視主機上運作虛拟機狀态
以下是裝載部分:
1章 虛拟化KVM
1.1 虛拟化KVM介紹
1.1.1 為什麼學習虛拟化
² 解決資源浪費
² 解決一起使用的資源槍戰沖突
1.1.2 為什麼學習KVM
VMware是收費的(對于企業)對于個人來說是免費的
開源版本KVM
公司使用場景:底層使用KVM,上層使用OpenStack,通過OpenStack管理KVM
1.2 虛拟化的技術演變
1.2.1 軟體模拟
軟體虛拟化 QEMU
1.2.2 虛拟化層翻譯
(1)軟體全虛拟化
軟體捕獲翻譯相當于翻譯官
VMware,有一個專門的虛拟化引擎。通過虛拟化引擎,捕獲虛拟機的指令,并進行處理,這也是為什麼在虛拟機上雖然使用的是實體機一樣的指令,但是虛拟機不能對硬體進行操作的原因,比如重新開機虛拟機不會引起主控端的重新開機。這種解決方案也叫軟體全虛拟化方案。
(2)半虛拟化
虛拟化是另一種類似于全虛拟化的技術,它使用Hypervisor分享存取底層的硬體,但是它的guest作業系統內建了虛拟化方面的代碼。該方法無需重新編譯或引起陷阱,因為作業系統自身能夠與虛拟程序進行很好的協作。
(3)硬體支援的全虛拟化
硬體支援的全虛拟化:硬體支援的虛拟化層翻譯--》kvm==》美國人懂中文了
1.2.3 容器虛拟化
Docker是一個開源的引擎,可以輕松的為任何應用建立一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生産環境中部署,包括VMs(虛拟機)、bare metal、OpenStack 叢集和其他的基礎應用平台。
Docker通常用于如下場景:
² web應用的自動化打包和釋出;
² 自動化測試和持續內建、釋出;
² 在服務型環境中部署和調整資料庫或其他的背景應用;
² 從頭編譯或者擴充現有的OpenShift或Cloud Foundry平台來搭建自己的PaaS環境。
1.2.4 虛拟化的優勢
①更高的資源使用率——虛拟可支援實作實體資源和資源池的動态共享,提高資源使用率,特别是針對那些平均需求遠低于需要為其提供專用資源的不同負載。
②降低管理成本——虛拟可通過以下途徑提高從業人員的效率:減少必須進行管理的實體資源的數量;隐藏實體資源的部分複雜性;通過實作自動化、獲得更好的資訊和實作中央管理來簡化公共管理任務;實作負載管理自動化。另外,虛拟還可以支援在多個平台上使用公共的工具。
③提高使用靈活性——通過虛拟可實作動态的資源部署和重配置,滿足不斷變化的業務需求。
④提高安全性——虛拟可實作較簡單的共享機制無法實作的隔離和劃分,這些特性可實作對資料和服務進行可控和安全的通路。
⑤更高的可用性——虛拟可在不影響使用者的情況下對實體資源進行删除、更新或改變。
⑥更高的可擴充性——根據不同的産品,資源分區和彙聚可支援實作比個體實體資源小得多或大得多的虛拟資源,這意味着您可以在不改變實體資源配置的情況下進行規模調整。
⑦互操作性和投資保護——虛拟資源可提供底層實體資源無法提供的與各種接口和協定的相容性。
⑧改進資源供應——與個體實體資源機關相比,虛拟能夠以更小的機關進行資源配置設定。
1.3 KVM簡介
1.3.1 KVM簡介
KVM 全稱是 基于核心的虛拟機(Kernel-based Virtual Machine),它是一個 Linux 的一個核心子產品,該核心子產品使得 Linux 變成了一個 Hypervisor:
² 它由 Quramnet 開發,該公司于 2008年被 Red Hat 收購。
² 它支援 x86 (32 and 64 位), s390, Powerpc 等 CPU。
² 它從 Linux 2.6.20 起就作為一子產品被包含在 Linux 核心中。
² 它需要支援虛拟化擴充的 CPU。
² 它是完全開源的。
² KVM虛拟機=KVM核心子產品+QEMU模拟器
1.3.2 KVM的架構
KVM是linux核心的子產品,它需要CPU的支援,采用硬體輔助虛拟化技術Intel-VT,AMD-V,記憶體的相關如Intel的EPT和AMD的RVI技術,Guest OS的CPU指令不用再經過Qemu轉譯,直接運作,大大提高了速度,KVM通過/dev/kvm暴露接口,使用者态程式可以通過ioctl函數來通路這個接口。
KVM核心子產品本身隻能提供CPU和記憶體的虛拟化,是以它必須結合QEMU才能構成一個完成的虛拟化技術。
1.3.3 QEMU與KVM
qemu将KVM整合進來,通過ioctl調用/dev/kvm接口,将有關CPU指令的部分交由核心子產品來做。kvm負責cpu虛拟化+記憶體虛拟化,實作了cpu和記憶體的虛拟化,但kvm不能模拟其他裝置。qemu模拟IO裝置(網卡,磁盤等),kvm加上qemu之後就能實作真正意義上伺服器虛拟化。因為用到了上面兩個東西,是以稱之為qemu-kvm。
Qemu模拟其他的硬體,如Network, Disk,同樣會影響這些裝置的性能,于是又産生了pass through半虛拟化裝置virtio_blk, virtio_net,提高裝置性能。
KVM虛拟機是基于linux核心虛拟化,自linux2.6.20之後就內建在linux的各個主要發行版本中。它使用linux自身的排程器進行管理,是以相對于xen,其核心源碼很少。KVM的虛拟化需要硬體的支援(如intel VT技術或者AMD V技術),是基于硬體的完全虛拟化。而xen早期則是基于軟體模拟的para-virtualization,新版本是基于硬體支援的完全虛拟化。
qemu是一種模拟處理器,現在運用最多的就是将KVM和QEMU結合起來。
準确來說,KVM是Linux kernel的一個子產品,可以用指令modprobe去加載KVM子產品。加載了該子產品後,才能進一步通過工具建立虛拟機。但是僅有KVM子產品是不夠的。因為使用者無法直接控制核心去做事情,還必須有一個運作在使用者空間的工具才行。這個使用者空間的工具,kvm開發者選擇了已經成型的開源虛拟化軟體QEMU。說起來QEMU也是一個虛拟化軟體。它的特點是可虛拟不同的CPU。比如說在x86的CPU上可虛拟一個power的CPU,并可利用它編譯出可運作在power上的CPU,并可利用它編譯出可運作在power上的程式。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的使用者空間工具了。是以你會看到,官方提供的KVM下載下傳有兩大部分(qemu和kvm)三個檔案(KVM子產品、QEMU工具以及二者的合集)。也就是說,你可以隻更新KVM子產品,也可以隻更新QEMU工具。
QEMU是一個開源項目,實際就是一台硬體模拟器,可以模拟許多硬體,包括X86架構處理器、AMD64架構處理器等。
QEMU的好處:因為是純軟體模拟,是以可以支援的平台模拟支援的裝置。
QEMU的缺點:是純軟體模拟,是以非常慢。
KVM隻是核心子產品,隻提供CPU和記憶體。是以還使用qemu模拟io裝置如磁盤網卡。
1.3.4 KVM 是實作攔截虛機的 I/O 請求的原理:
現代 CPU 本身了對特殊指令的截獲和重定向的硬體支援,甚至新的硬體會提供額外的資源來幫助軟體實作對關鍵硬體資源的虛拟化進而提高性能。以 X86 平台為例,支援虛拟化技術的 CPU 帶有特别優化過的指令集來控制虛拟化過程。通過這些指令集,VMM 很容易将客戶機置于一種受限制的模式下運作,一旦客戶機視圖通路實體資源,硬體會暫停客戶機的運作,将控制權交回給 VMM 處理。VMM 還可以利用硬體的虛級化增強機制,将客戶機在受限模式下對一些特定資源的通路,完全由硬體重定向到 VMM 指定的虛拟資源,整個過程不需要暫停客戶機的運作和 VMM 的參與。由于虛拟化硬體提供全新的架構,支援作業系統直接在上面運作,無需進行二進制轉換,減少了相關的性能開銷,極大簡化了VMM的設計,使得VMM性能更加強大。從 2005 年開始,Intel 在其處理器産品線中推廣 Intel Virtualization Technology 即 IntelVT 技術。
1.3.5 Libvirt與KVM
libvirt是目前使用最為廣泛的對KVM虛拟機進行管理的工具和API。Libvirtd是一個daemon程序,可以被本地的virsh調用,也可以被遠端的virsh調用,Libvirtd調用qemu-kvm操作虛拟機。
組成 :
n 一套API的lib庫,支援主流的程式設計語言,包括c,python。ruby等。
n libvirtd服務。
n 指令行工具virsh
1.3.6 openstack, kvm, qemu-kvm以及libvirt之間的關系
VM是最底層的hypervisor,它是用來模拟CPU的運作,它缺少了對network和周邊I/O的支援,是以我們是沒法直接用它的。
QEMU-KVM就是一個完整的模拟器,它是建構基于KVM上面的,它提供了完整的網絡和I/O支援。
Openstack不會直接控制qemu-kvm,它會用一個叫libvirt的庫去間接控制qemu-kvm。libvirt提供了跨VM平台的功能,它可以控制除了QEMU之外的模拟器,包括vmware, virtualbox, xen等等。
是以為了openstack的跨VM性,是以openstack隻會用libvirt而不直接用qemu-kvm。libvirt還提供了一些進階的功能,例如pool/vol管理。
1.4 KVM使用
1.4.1 虛拟機/伺服器開啟虛拟化
在BIOS開啟虛拟化
虛拟機版本是新版
虛拟機開啟虛拟化配置
1.4.2 KVM安裝
wget -O
/etc/yum
.repos.d
/CentOS-Base
.repo http:
//mirrors
.aliyun.com
/repo/Centos-7
.repo
//也可以使用本地預設yum源
yum -y
install
qemu-kvm qemu-kvm-tools virt-manager libvirt virt-
install
python-virtinst-0.600.0-29.el6.noarch
# 一套Python的虛拟機安裝工具
gpxe-roms-qemu-0.9.7-6.14.el6.noarch
# 虛拟機iPXE的啟動固件,支援虛拟機從網絡啟動
virt-manager-0.9.0-29.el6.x86_64
# 基于Libvirt的圖像化虛拟機管理軟體,需要圖形界面作業系統
qemu-img-0.12.1.2-2.479.el6.x86_64
# 用于操作虛拟機硬碟鏡像的建立、檢視和格式轉化
libvirt-python-0.10.2-54.el6.x86_64
# libvirt為Python提供的API
qemu-kvm-0.12.1.2-2.479.el6.x86_64
# KVM在使用者空間運作的程式
qemu-kvm-tools-0.12.1.2-2.479.el6.x86_64
libvirt-0.10.2-54.el6.x86_64
# 用于管理虛拟機,它提供了一套虛拟機操作API
libvirt-client-0.10.2-54.el6.x86_64
# Libvirt的用戶端,最重要的功能之一就是就在主控端關機時可以通知虛拟機也關機,使虛拟機系統正常關機,而不是被強制關機,造成資料丢失
virt-
top
-1.0.4-3.15.el6.x86_64
# 類似于top指令,檢視虛拟機的資源使用情況
virt-what-1.11-1.2.el6.x86_64
# 在虛拟機内部執行,檢視虛拟機運作的虛拟化平台
virt-viewer-0.5.6-8.el6.x86_64
# 顯示虛拟機的控制台console
[[email protected] ~]# mkdir -p /application/tools/
[[email protected] ~]# dd if=/dev/sr0 of=/application/tools/CentOS7_2.iso
檢視:
[[email protected] ~]
# lsmod |grep kvm
kvm_intel 162153 0
kvm 525259 1 kvm_intel
[[email protected] ~]
# grep -Eo '(vmx|svm)' /proc/cpuinfo
vmx
vmx
[[email protected] ~]
# cd /application/tools/
[[email protected] tools]
# ls
CentOS-7-x86_64-DVD-1511.iso
啟動服務
systemctl start libvirtd.service
[[email protected] ~]
# mkdir -p /application/kvm_data
[[email protected] ~]
# cd /application/kvm_data
[[email protected] kvm_data]
# qemu-img create -f qcow2 /application/kvm_data/moban.qcow2 20G
Formatting
'/application/kvm_data/moban.qcow2'
,
fmt
=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
[[email protected] kvm_data]
# ll -h
total 196K
-rw-r--r-- 1 root root 193K Oct 23 10:17 moban.qcow2
1.5 建立虛拟機
1.5.1 建立硬碟
1.5.2 安裝虛拟機
[[email protected] ~]
# mkdir -p /application/kvm_data
[[email protected] ~]
# cd /application/kvm_data
[[email protected] kvm_data]
# qemu-img create -f qcow2 /application/kvm_data/moban.qcow2 20G
Formatting
'/application/kvm_data/moban.qcow2'
,
fmt
=qcow2 size=21474836480 encryption=off cluster_size=65536 lazy_refcounts=off
[[email protected] kvm_data]
# ll -h
total 196K
-rw-r--r-- 1 root root 193K Oct 23 10:17 moban.qcow2
[[email protected] kvm_data]
# qemu-img info moban.qcow2
image: moban.qcow2
file
format
: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 196K
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts:
false
[[email protected] kvm_data]
# virt-install --virt-type=kvm --name=c72-moban --vcpus=1 -r 1024 -c /application/tools/CentOS7_2.iso --network bridge=br0 --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/application/kvm_data/moban.qcow2,size=20,format=qcow2
1.5.3 指令使用
[[email protected] kvm_data]
# virsh start c72-moban 開機
Domain c72-moban started
[[email protected] kvm_data]
# virsh list 檢視狀态
Id Name State
----------------------------------------------------
2 c72-moban running
[[email protected] kvm_data]
#
生成kvm虛拟機:virt-
install
檢視在運作的虛拟機:virsh list
檢視所有虛拟機:virsh list --all
檢視kvm虛拟機配置檔案:virsh dumpxml name
啟動kvm虛拟機:virsh start name
正常關機:virsh
shutdown
name
非正常關機(相當于實體機直接拔掉電源):virsh destroy name
删除:virsh undefine name(徹底删除,找不回來了,如果想找回來,需要備份
/etc/libvirt/qemu
的xml檔案)
根據配置檔案定義虛拟機:virsh define
file
-name.xml
挂起,終止:virsh suspend name
恢複挂起狀态:virsh resume name
1.5.4 注意
模闆機配置檔案
[[email protected] ~]
# cd /etc/libvirt/qemu/
[[email protected] qemu]
# ls
c72-moban.xml networks
[[email protected] qemu]
#
磁盤檔案
[[email protected] tools]
# cd /application/kvm_data/
[[email protected] kvm_data]
# ls
moban.qcow2
1.6 磁盤檔案格式介紹
raw和qcow2簡單差別
² raw不支援快照
² qcow2支援快照
1.6.1 raw介紹
老牌的格式了,用一個字來說就是裸,也就是赤裸裸,你随便dd一個file就模拟了一個raw格式的鏡像。由于裸的徹底,性能上來說的話還是不錯的。目前來看,KVM和XEN預設的格式好像還是這個格式。因為其原始,有很多原生的特性,例如直接挂載也是一件簡單的事情。
裸的好處還有就是簡單,支援轉換成其它格式的虛拟機鏡像對裸露的它來說還是很簡單的(如果其它格式需要轉換,有時候還是需要它做為中間格式),空間使用來看,這個很像磁盤,使用多少就是多少(du -h看到的大小就是使用大小),但如果你要把整塊磁盤都拿走的話得全盤拿了(copy鏡像的時候),會比較消耗網絡帶寬和I/O。接下來還有個有趣的問題,如果那天你的硬碟用着用着不夠用了,你咋辦,在買一塊盤。但raw格式的就比較犀利了,可以在原來的盤上追加空間:
dd if=/dev/zero of=zeros.raw bs=1024k count=4096(先建立4G的空間)
cat foresight.img zeros.raw > new-foresight.img(追加到原有的鏡像之後)
當然,好東西是吹出來的,誰用誰知道,還是有挺多問題的。由于原生的裸格式,不支援snapshot也是很正常的。傳說有朋友用版本管理軟體對raw格式的檔案做版本管理進而達到snapshot的能力,估計可行,但沒試過,這裡也不妄加評論。但如果你使用LVM的裸裝置,那就另當别論。說到LVM還是十分的犀利的,當年用LVM做虛拟機的鏡像,那性能杠杠的。而且現在好多兄弟用虛拟化都采用LVM來做的。在LVM上做了很多的優化,國外聽說也有朋友在LVM增量備份方面做了很多的工作。目前來LVM的snapshot、性能、可擴充性方面都還是有相當的效果的。目前來看的話,備份的話也問題不大。就是在虛拟機遷移方面還是有很大的限制。但目前虛拟化的現狀來看,真正需要熱遷移的情況目前需求還不是是否的強烈。雖然使用LVM做虛拟機鏡像的相關公開資料比較少,但目前來看犧牲一點靈活性,換取性能和便于管理還是不錯的選擇。
1.6.2 qcow2
現在比較主流的一種虛拟化鏡像格式,經過一代的優化,目前qcow2的性能上接近raw裸格式的性能,這個也算是redhat的官方管道了,哈哈,希望有朋友能拍他們磚:
對于qcow2的格式,幾點還是比較突出的,qcow2的snapshot,可以在鏡像上做N多個快照:
² 更小的存儲空間,即使是不支援holes的檔案系統也可以(這下du -h和ls -lh看到的就一樣了)
² Copy-on-write support, where the image only represents changes made to an underlying disk image(這個特性SUN ZFS表現的淋漓盡緻)
² 支援多個snapshot,對曆史snapshot進行管理
² 支援zlib的磁盤壓縮
² 支援AES的加密
1.6.3 vmdk
Mware的格式,這個格式說的蛋疼一點就有點牛X,原本VMware就是做虛拟化起家,自己做了一個叢集的VMDK的pool,做了自己的虛拟機鏡像格式。又拉着一些公司搞了一個OVF的統一封包。從性能和功能上來說,vmdk應該算最出色的,由于vmdk結合了VMware的很多能力,目前來看,KVM和XEN使用這種格式的情況不是太多。但就VMware的Esxi來看,它的穩定性和各方面的能力還是可圈可點。
1.7 KVM克隆
通用方法:既能夠本機克隆,也能跨機克隆
前提:關機克隆
[[email protected] qemu]
# virsh list --all 檢視狀态
Id Name State
----------------------------------------------------
- c72-moban shut off
[[email protected] qemu]
#
克隆磁盤檔案
[[email protected] kvm_data]
# virsh dumpxml c72-moban >/tmp/moban.xml
[[email protected] kvm_data]
# cp moban.qcow2 clone.qcow2
[[email protected] kvm_data]
# ll
total 3034052
-rw-r--r-- 1 root root 1553465344 Oct 23 11:34 clone.qcow2
-rw-r--r-- 1 root root 1553465344 Oct 23 11:32 moban.qcow2
[[email protected] kvm_data]
# pwd
/application/kvm_data
[[email protected] kvm_data]
# ll -h
total 2.9G
-rw-r--r-- 1 root root 1.5G Oct 23 11:34 clone.qcow2
-rw-r--r-- 1 root root 1.5G Oct 23 11:32 moban.qcow2
[[email protected] kvm_data]
#
克隆配置檔案
[[email protected] ~]
# sed -i "2s#c72-moban#c72-clone#;3s#.*#<uuid>`uuidgen`</uuid>#;s#moban.qcow2#clone.qcow2#;s#^.*<mac address=.*/># <mac address='52:54:00:e2:f9:5e'/>#" /tmp/moban.xml
對比
[[email protected] ~]
# diff /tmp/moban.xml{,.ori}
2,3c2,3
< <name>c72-clone<
/name
>
< <uuid>39fed509-08ef-4892-b429-3206f9e292ae<
/uuid
>
---
> <name>c72-moban<
/name
>
> <uuid>da066b7c-a502-43b4-b1ae-08f59f6d5225<
/uuid
>
34c34
< <
source
file
=
'/application/kvm_data/clone.qcow2'
/>
---
> <
source
file
=
'/application/kvm_data/moban.qcow2'
/>
67c67
< <mac address=
'52:54:00:e2:f9:5e'
/>
---
> <mac address=
'52:54:00:ae:5e:af'
/>
[[email protected] ~]
#
[[email protected] ~]
# virsh define /tmp/moban.xml
定義域 c72-clone(從
/tmp/moban
.xml)
[[email protected] ~]
# virsh list --all
Id 名稱 狀态
----------------------------------------------------
- c72-clone 關閉
- c72-moban 關閉
[[email protected] ~]
#
開機
[[email protected] ~]
# virsh start c72-clone
域 c72-clone 已開始
[[email protected] ~]
# virsh start c72-moban
域 c72-moban 已開始
[[email protected] ~]# virsh list --all
Id 名稱 狀态
----------------------------------------------------
3 c72-clone running
4 c72-moban running
[[email protected] ~]
#
注意事項
1.克隆的CentOS6虛拟機,首先要做的是:
² 清除網卡配置檔案的UUID和MAC位址,否則克隆後網卡錯亂
² 清空> /etc/udev/rules.d/70-persistent-net.rules,否則克隆後網卡錯亂
² 最後關閉虛拟機,在虛拟機中使用halt指令關機。
2.克隆CentOS7可以直接克隆:
² 清除網卡配置檔案的UUID和MAC位址(不清除網卡也能啟動)
² 關機做克隆
1.8 KVM快照
建立快照(關機做快照節省空間)
[[email protected] ~]
# virsh shutdown c72-moban
域 c72-moban 被關閉
[[email protected] ~]
# virsh shutdown c72-clone
域 c72-clone 被關閉
[[email protected] ~]
#
[[email protected] ~]
# virsh shutdown c72-clone 建立快照
域 c72-clone 被關閉
[[email protected] ~]
# virsh snapshot-create-as c72-clone c72-clone-kuaizhao1
已生成域快照 c72-clone-kuaizhao1
[[email protected] ~]
# virsh snapshot-list c72-clone 檢視快照
名稱 生成時間 狀态
------------------------------------------------------------
c72-clone-kuaizhao1 2017-10-23 12:05:44 +0800 shutoff
[[email protected] ~]
# [[email protected] ~]# virsh snapshot-revert c72-clone c72-clone-kuaizhao1#恢複快照
virsh snapshot-delete c72-clone c72-clone-kuaizhao1
# 删除快照
KVM橋接網絡
預設KVM的網絡是NAT模式,那如何讓KVM的網絡和主控端同網段呢?這就需要橋接網卡了
Bridge方式即虛拟網橋的網絡連接配接方式,是客戶機和子網裡面的機器能夠互相通信。可以使虛拟機成為網絡中具有獨立ip的主機。
橋接網絡(也叫實體裝置共享)被用作把一個實體裝置複制到另一台虛拟機。網橋多用做進階設定,特别是主機多個網絡接口的情況。
#四處需要修改
<name>c72-moban<
/name
>
<uuid>00e0ff50-c410-40d8-a46e-8919199b2828<
/uuid
>
<
source
file
=
'/application/kvm_data/moban.qcow2'
/>
<mac address=
'52:54:00:e2:f9:6e'
/>
[[email protected] ~]
# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-br0} #複制網卡
[[email protected] ~]
# cat>/etc/sysconfig/network-scripts/ifcfg-eth0<<EOF #修改
> DEVICE=eth0
> TYPE=Ethernet
> ONBOOT=
yes
> BRIDGE=br0
> EOF
[[email protected] ~]
#
[[email protected] ~]
# sed -i.ori 's#Ethernet#Bridge#;s#eth0#br0#g' /etc/sysconfig/network-scripts/ifcfg-br0
[[email protected] ~]
# diff /etc/sysconfig/network-scripts/ifcfg-br0{,.ori}
1c1
< TYPE=Bridge
---
> TYPE=Ethernet
7c7
< NAME=br0
---
> NAME=eth0
9c9
< DEVICE=br0
---貓
> DEVICE=eth0
[[email protected] ~]
#
并把ifcfg-br0配置檔案的uuid删除
systemctl restart network
[[email protected] kvm_data]
# brctl show
bridge name bridge
id
STP enabled interfaces
br0 8000.000c29450547 no eth0
virbr0 8000.fe5400e2f95e
yes
vnet0
新建立主機采用橋接網卡将
--network network=default換成--network bridge=br0。
對已經建立的主機,修改成橋接方式。修改配置檔案
a.關閉虛拟機
b.virsh edit c72-moban
給虛拟機再次添加一塊新的網卡,虛拟機需要運作狀态。
virsh attach-interface c72-clone --
type
bridge --
source
br0
[[email protected] qemu]
# virsh --help | grep bridge
iface-bridge 生成橋接裝置并為其附加一個現有網絡裝置
iface-unbridge 分離其輔助裝置後取消定義橋接裝置
[[email protected] qemu]
# virsh iface-bridge eth0 br0