虚拟化KVM


 

 

 

 


第1章 虚拟化KVM

1.1 虚拟化KVM介绍

1.1.1 为何学习虚拟化

²  解决资源浪费python

²  解决一块儿使用的资源枪战冲突linux

1.1.2 为何学习KVM

VMware是收费的(对于企业)对于我的来讲是免费的web

开源版本KVM数据库

公司使用场景:底层使用KVM,上层使用OpenStack,经过OpenStack管理KVM编程

1.2 虚拟化的技术演变

1.2.1 软件模拟

软件虚拟化       QEMU安全

1.2.2 虚拟化层翻译

1)软件全虚拟化ruby

       软件捕获翻译至关于翻译官bash

       VMware,有一个专门的虚拟化引擎。经过虚拟化引擎,捕获虚拟机的指令,并进行处理,这也是为何在虚拟机上虽然使用的是物理机同样的指令,可是虚拟机不能对硬件进行操做的缘由,好比重启虚拟机不会引发宿主机的重启。这种解决方案也叫软件全虚拟化方案。服务器

image.png

2)半虚拟化网络

虚拟化是另外一种相似于全虚拟化的技术,它使用Hypervisor分享存取底层的硬件,可是它的guest操做系统集成了虚拟化方面的代码。该方法无需从新编译或引发陷阱,由于操做系统自身可以与虚拟进程进行很好的协做。

image.png

3)硬件支持的全虚拟化

硬件支持的全虚拟化:硬件支持的虚拟化层翻译--kvm==》美国人懂中文了

 

1.2.3 容器虚拟化

Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、bare metalOpenStack 集群和其余的基础应用平台。

Docker一般用于以下场景:

²  web应用的自动化打包和发布;

²  自动化测试和持续集成、发布;

²  在服务型环境中部署和调整数据库或其余的后台应用;

²  从头编译或者扩展示有的OpenShiftCloud 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的架构

image.png

KVMlinux内核的模块,它须要CPU的支持,采用硬件辅助虚拟化技术Intel-VTAMD-V,内存的相关如IntelEPTAMDRVI技术,Guest OSCPU指令不用再通过Qemu转译,直接运行,大大提升了速度,KVM经过/dev/kvm暴露接口,用户态程序能够经过ioctl函数来访问这个接口。

KVM内核模块自己只能提供CPU和内存的虚拟化,因此它必须结合QEMU才能构成一个完成的虚拟化技术。

image.png

1.3.3 QEMUKVM

qemuKVM整合进来,经过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来作。kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其余设备。qemu模拟IO设备(网卡,磁盘等),kvm加上qemu以后就能实现真正意义上服务器虚拟化。由于用到了上面两个东西,因此称之为qemu-kvm

Qemu模拟其余的硬件,如Network, Disk,一样会影响这些设备的性能,因而又产生了pass through半虚拟化设备virtio_blk, virtio_net,提升设备性能。

image.png

     KVM虚拟机是基于linux内核虚拟化,自linux2.6.20以后就集成在linux的各个主要发行版本中。它使用linux自身的调度器进行管理,因此相对于xen,其核心源码不多。KVM的虚拟化须要硬件的支持(如intel VT技术或者AMD V技术),是基于硬件的彻底虚拟化。而xen早期则是基于软件模拟的para-virtualization,新版本是基于硬件支持的彻底虚拟化。

     qemu是一种模拟处理器,如今运用最多的就是将KVMQEMU结合起来。

     准确来讲,KVMLinux kernel的一个模块,能够用命令modprobe去加载KVM模块。加载了该模块后,才能进一步经过工具建立虚拟机。可是仅有KVM模块是不够的。由于用户没法直接控制内核去作事情,还必须有一个运行在用户空间的工具才行。这个用户空间的工具,kvm开发者选择了已经成型的开源虚拟化软件QEMU。提及来QEMU也是一个虚拟化软件。它的特色是可虚拟不一样的CPU。好比说在x86CPU上可虚拟一个powerCPU,并可利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。因此你会看到,官方提供的KVM下载有两大部分(qemukvm)三个文件(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 LibvirtKVM

image.png

 

libvirt是目前使用最为普遍的对KVM虚拟机进行管理的工具和APILibvirtd是一个daemon进程,能够被本地的virsh调用,也能够被远程的virsh调用,Libvirtd调用qemu-kvm操做虚拟机。

组成

n  一套APIlib库,支持主流的编程语言,包括cpythonruby等。

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-kvmlibvirt提供了跨VM平台的功能,它能够控制除了QEMU以外的模拟器,包括vmware, virtualbox xen等等。

因此为了openstack的跨VM性,因此openstack只会用libvirt而不直接用qemu-kvmlibvirt还提供了一些高级的功能,例如pool/vol管理。

image.png

1.4 KVM使用

1.4.1 虚拟机/服务器开启虚拟化

BIOS开启虚拟化

虚拟机版本是新版

虚拟机开启虚拟化配置

image.png

1.4.2 KVM安装

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
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 [root@oldboyedu ~]# mkdir -p /application/tools/ [root@oldboyedu ~]# dd if=/dev/sr0 of=/application/tools/CentOS7_2.iso
查看:
[root@oldboyedu39 ~]# lsmod |grep kvm
kvm_intel             162153  0
kvm                   525259  1 kvm_intel [root@oldboyedu39 ~]#  grep -Eo '(vmx|svm)' /proc/cpuinfo
vmx
vmx [root@oldboyedu39 ~]# cd  /application/tools/
[root@oldboyedu39 tools]# ls
CentOS-7-x86_64-DVD-1511.iso
启动服务
systemctl start libvirtd.service
[root@oldboyedu39 ~]# mkdir -p /application/kvm_data
[root@oldboyedu39 ~]# cd /application/kvm_data
[root@oldboyedu39 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
[root@oldboyedu39 kvm_data]# ll -h
total 196K
-rw-r--r-- 1 root root 193K Oct 23 10:17 moban.qcow2
[root@oldboyedu39 kvm_data]#

 

1.5 建立虚拟机

1.5.1 建立硬盘

image.png

1.5.2 安装虚拟机

[root@oldboyedu39 ~]# mkdir -p /application/kvm_data
[root@oldboyedu39 ~]# cd /application/kvm_data
[root@oldboyedu39 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
[root@oldboyedu39 kvm_data]# ll -h
total 196K
-rw-r--r-- 1 root root 193K Oct 23 10:17 moban.qcow2
[root@oldboyedu39 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
[root@oldboyedu39 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 命令使用

[root@oldboyedu39 kvm_data]# virsh start c72-moban 开机
Domain c72-moban started
 
[root@oldboyedu39 kvm_data]# virsh list 查看状态
 Id    Name                           State
----------------------------------------------------
 2     c72-moban                      running
 
[root@oldboyedu39 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 注意

模板机配置文件
[root@oldboyedu39 ~]# cd /etc/libvirt/qemu/
[root@oldboyedu39 qemu]# ls
c72-moban.xml  networks
[root@oldboyedu39 qemu]#
磁盘文件
[root@oldboyedu39 tools]# cd /application/kvm_data/
[root@oldboyedu39 kvm_data]# ls
moban.qcow2
[root@oldboyedu39 kvm_data]#

 

 

1.6 磁盘文件格式介绍

rawqcow2简单区别

²  raw不支持快照

²  qcow2支持快照

1.6.1 raw介绍

老牌的格式了,用一个字来讲就是裸,也就是赤裸裸,你随便dd一个file就模拟了一个raw格式的镜像。因为裸的完全,性能上来讲的话仍是不错的。目前来看,KVMXEN默认的格式好像仍是这个格式。由于其原始,有不少原生的特性,例如直接挂载也是一件简单的事情。

裸的好处还有就是简单,支持转换成其它格式的虚拟机镜像对裸露的它来讲仍是很简单的(若是其它格式须要转换,有时候仍是须要它作为中间格式),空间使用来看,这个很像磁盘,使用多少就是多少(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增量备份方面作了不少的工做。目前来LVMsnapshot、性能、可扩展性方面都仍是有至关的效果的。目前来看的话,备份的话也问题不大。就是在虚拟机迁移方面仍是有很大的限制。但目前虚拟化的现状来看,真正须要热迁移的状况目前需求还不是是否的强烈。虽然使用LVM作虚拟机镜像的相关公开资料比较少,但目前来看牺牲一点灵活性,换取性能和便于管理仍是不错的选择。

1.6.2 qcow2

如今比较主流的一种虚拟化镜像格式,通过一代的优化,目前qcow2的性能上接近raw裸格式的性能,这个也算是redhat的官方渠道了,哈哈,但愿有朋友能拍他们砖:

对于qcow2的格式,几点仍是比较突出的,qcow2snapshot,能够在镜像上作N多个快照:

²  更小的存储空间,即便是不支持holes的文件系统也能够(这下du -hls -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就是作虚拟化起家,本身作了一个集群的VMDKpool,作了本身的虚拟机镜像格式。又拉着一些公司搞了一个OVF的统一封包。从性能和功能上来讲,vmdk应该算最出色的,因为vmdk结合了VMware的不少能力,目前来看,KVMXEN使用这种格式的状况不是太多。但就VMwareEsxi来看,它的稳定性和各方面的能力仍是可圈可点。

 

1.7 KVM克隆

通用方法:既可以本机克隆,也能跨机克隆

前提:关机克隆

[root@oldboyedu39 qemu]# virsh list --all 查看状态
 Id    Name                           State
----------------------------------------------------
 -     c72-moban                      shut off
 
[root@oldboyedu39 qemu]#
克隆磁盘文件
[root@oldboyedu39 kvm_data]# virsh dumpxml c72-moban >/tmp/moban.xml
[root@oldboyedu39 kvm_data]#  cp moban.qcow2 clone.qcow2
[root@oldboyedu39 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
[root@oldboyedu39 kvm_data]# pwd
/application/kvm_data
[root@oldboyedu39 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
[root@oldboyedu39 kvm_data]#
克隆配置文件
[root@oldboyedu39 ~]# 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
对比
[root@oldboyedu39 ~]# 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'/>
[root@oldboyedu39 ~]#
[root@oldboyedu39 ~]# virsh define /tmp/moban.xml
定义域 c72-clone(从 /tmp/moban.xml)
 
[root@oldboyedu39 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     c72-clone                      关闭
 -     c72-moban                      关闭
 
[root@oldboyedu39 ~]#
开机
[root@oldboyedu39 ~]# virsh start  c72-clone
域 c72-clone 已开始
[root@oldboyedu39 ~]# virsh start  c72-moban
域 c72-moban 已开始
 
[root@oldboyedu39 ~]# [root@oldboyedu39 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 3     c72-clone                      running
 4     c72-moban                      running
 
[root@oldboyedu39 ~]#

image.png

注意事项

1.克隆的CentOS6虚拟机,首先要作的是:

²  清除网卡配置文件的UUIDMAC地址,不然克隆后网卡错乱

²  清空> /etc/udev/rules.d/70-persistent-net.rules,不然克隆后网卡错乱

²  最后关闭虚拟机,在虚拟机中使用halt命令关机。

2.克隆CentOS7能够直接克隆:

²  清除网卡配置文件的UUIDMAC地址(不清除网卡也能启动)

²  关机作克隆

1.8 KVM快照

建立快照(关机作快照节省空间)
[root@oldboyedu39 ~]# virsh shutdown  c72-moban
域 c72-moban 被关闭
[root@oldboyedu39 ~]# virsh shutdown  c72-clone
域 c72-clone 被关闭
[root@oldboyedu39 ~]#
[root@oldboyedu39 ~]# virsh shutdown  c72-clone 建立快照
域 c72-clone 被关闭
[root@oldboyedu39 ~]# virsh snapshot-create-as c72-clone c72-clone-kuaizhao1
已生成域快照 c72-clone-kuaizhao1
[root@oldboyedu39 ~]# virsh snapshot-list c72-clone 查看快照
 名称               生成时间              状态
------------------------------------------------------------
 c72-clone-kuaizhao1  2017-10-23 12:05:44 +0800 shutoff
 
[root@oldboyedu39 ~]# [root@oldboyedu39 ~]# virsh snapshot-revert c72-clone c72-clone-kuaizhao1#恢复快照
virsh snapshot-delete c72-clone c72-clone-kuaizhao1 # 删除快照

1.9 KVM桥接网络

默认KVM的网络是NAT模式,那如何让KVM的网络和宿主机同网段呢?这就须要桥接网卡了

       Bridge方式即虚拟网桥的网络链接方式,是客户机和子网里面的机器可以互相通讯。可使虚拟机成为网络中具备独立ip的主机。

       桥接网络(也叫物理设备共享)被用做把一个物理设备复制到另外一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的状况。

 

image.png

 

#四处须要修改
      <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'/>
[root@oldboyedu39 ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,ifcfg-br0} #复制网卡
[root@oldboyedu39 ~]#  cat>/etc/sysconfig/network-scripts/ifcfg-eth0<<EOF #修改
> DEVICE=eth0
> TYPE=Ethernet
> ONBOOT=yes
> BRIDGE=br0
> EOF
[root@oldboyedu39 ~]#
[root@oldboyedu39 ~]# sed -i.ori 's#Ethernet#Bridge#;s#eth0#br0#g' /etc/sysconfig/network-scripts/ifcfg-br0
[root@oldboyedu39 ~]# diff /etc/sysconfig/network-scripts/ifcfg-br0{,.ori}
1c1
< TYPE=Bridge
---
> TYPE=Ethernet
7c7
< NAME=br0
---
> NAME=eth0
9c9
< DEVICE=br0
---猫
> DEVICE=eth0
[root@oldboyedu39 ~]#  
并把ifcfg-br0配置文件的uuid删除
systemctl restart  network
[root@oldboyedu 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。
对已经建立的主机,修改为桥接方式。修改配置文件


image.png

 

a.关闭虚拟机
b.virsh edit c72-moban
给虚拟机再次添加一块新的网卡,虚拟机须要运行状态。
virsh attach-interface c72-clone --type bridge --source br0
[root@kvm1 qemu]# virsh --help | grep bridge
    iface-bridge                   生成桥接设备并为其附加一个现有网络设备
    iface-unbridge                 分离其辅助设备后取消定义桥接设备
[root@kvm1 qemu]# virsh iface-bridge eth0 br0
相关文章
相关标签/搜索