• KVM 虚拟化


    kvm虚拟化

    Kvm的安装、KVM下的虚拟机安装和相互访问约束

    推荐下载TightVNC
    也可以使用 VNCSever


    一、虚拟化产品介绍

    linux类的虚拟化软件:

    • qemu,软件纯模拟全虚拟化软件,特别慢!
    • xen(半),性能特别好,需要使用专门修改之后的内核
    • KVM,全虚拟机,它有硬件支持cpu,基于内核,而且不需要使用专门的内核

    二、KVM虚拟化软件的安装和内部虚拟机的新建

    (以下命令行操作,均在宿主机上利用VMnet8的虚拟网卡,打开Xshell后,sshroot@内部虚拟机IP后,远程登陆到内部虚拟机上来完成)
    ssh登录架构图

    1. 先查看是否开启硬件辅助虚拟化功能
      在终端执行cat /proc/cpuinfo命令,找到flags部分,如果其中输出有vMX或SVM,即表明支持虚拟化技术。
    root@kvm-node1# cat /proc/cpuinfo | grep vmx
    ##(for Intel CPU)
    root@kvm-node1l#cat /proc/cpuinfo | grep svm
    ##( for AMD CPU)
    root@kvm-node1#lscpu
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 若没有,请将虚拟机的设置中,把 cpu的虚拟化Intel或Amd芯片启用。
    1. 关闭防火墙
    root@kvm-node1 # systemctl stop firewalld
    root@kvm-node1 # systemctl disable firewalld3.     #关闭Selinux
    
    • 1
    • 2
    1. 关闭 SELINUX
    vim /etc/selinux/config
    
    • 1
    • SELINUX=enforcing 改为SELINUX=disabled:wq!保存后退出
    1. 开启路由转发功能,否则新建默认Nat模式的 kvm 虚拟机,不能借助宿主机(外虚拟机)的两块网卡进行数据转发,也不能访问外网。
    • 临时生效: echo"1" >/proc/sys/net/ipv4/ip_forward或sysctl -wnet.ipv4.ip_forward=1
    • 永久生效:vim proc/sys/net/ipv4/ip_forward,改为1,sysctl-p
    1. 安装kvm 的包,需要修改Centos 的源,最好是光盘源,建议采用阿里云镜像的基础源和扩展epel源,同时要更新源 yum clean all && yum makecache
    • libvirt —— 作用是提供相关库文件或api接口
      virt-manager,virt-install,virt-clone —— 作用是虚拟机各种管理
      qemu-kvm —— 作用是 kvm模拟器
    yum install libvirt* virt-* qemu-kvm* -y
    systemctl start libvirtd.service
    systemctl enable libvirtd.service
    systemctl status libvirtd.service
    
    • 1
    • 2
    • 3
    • 4
    1. 准备在虚拟机 Centos7.6(外)中,利用KVM虚拟化技术新建一个内部的虚拟机Centor7.6
      (地址是KVM中的dhcp分配,默认在192.168.122.X这个地址段内)。
      宿主机中三层架构的内虚拟机结构

    (1)在宿主机上完成分发软件TightVNC或者VNC Viewer 4.exe的安装

    注意只装客户端,暂时不需要装服务器端。

    (2)提前做好准备工作,需要把安装内部虚拟机的ISO包,提前拷贝到外虚拟机 Centos7(外)的某个目录中,假设为/opt。

    cd/opt      #建议su切换到root用户,拷贝到opt目录里
    pwd         #用xshell工具最上一栏中自带的Xftp 工具完成,用xftp工具把宿主机硬盘上的CentOS-7-x86_64-DVD-1810.iso拷贝传输到宿主机 Centos7的当前目录/opt。
    ls —ial     #查看CentOS-7-x86_64-DVD-1810.iso是否完整落在/opt目录内
    
    • 1
    • 2
    • 3

    (3)利用安装好KVM以后的virt命令新建一个虚拟机

    virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name INCentos7 --memory 2048 --vcpus 2 --disk /opt/INCentos7.raw,format=raw,size=5 --cdrom/opt/CentOS-7-x86_64-DVD-1810.iso --network networK=default --graphics vnc,listen=0.0.0.0 --noautoconsole
    
    • 1

    注意:

    1. 这条命令中新建虚拟机的磁盘为raw格式,raw为原始数据格式,它不支持做快照,但访问性能好。其他磁盘格式如qcow2为压缩的支持快照,虚拟机的磁盘可以在后期进行转换。
    2. 这条命令按下回车健以后,请马上在宿主机 Win10上打开VNC View4软件的客户端,输入10.0.0.200:0进入KVM的内部虚拟机 Centos7的安装界面,因为是内部虚拟机仅仅做一些简要测试,在安装过在中找们选择最小化安装,以便减少硬盘的磁盘空间,网卡etho生效且地址建议自动获取,默认地址段在192.168.122.x(后续测试要用),安装后需要点击reboot,可能会失去vnc连接。
      在外虚拟机Centos7 的shell中输入virsh list -all,继续输入virsh start
      INCentos7,重新启动内虚拟机。在宿主机上继续用VNC客户端输入10.0.0.200测试连通后,以root 登陆后输入 ip addr进入内虚拟机,以root登录后输入ip addr查看ip地址,ping 10.0.0.200测试连通后,输入 shutdown -h now把内部虚拟机关闭;然后在外部虚拟机上也输入shutdown -h now把外部虚拟机关闭,在宿主机的VMware workstation中新建一个快照,取名为“kvm已装,并含一个Centos内虚拟机”。
    3. kvm的虚拟机管理的两个文件,结构简单,
      虚拟机的磁盘文件
      (/opt/centos7.raw,可以用ll -hdu -smh *来查看大小)
      也称为虚拟机的镜像文件,其存放位置、名称、磁盘类型可以自定义。可用du - sh或ls - lh或者用qemu-img info查看该磁盘文件的详细信息。
      默认的配置文件
      放在/etc/libvirt/qemu/目录下的虚拟机名.xml文件中。
      是系统自动产生并存储在固定路径下,有xml文件前提下,我们可以用virsh list - all命令查看到有虚拟机存在。

    建议虚拟机名字和磁盘文件的取名要保持一致。

    三、宿主机、外虚拟机Centos7和内虚拟机 Centos7之间的相互访问约束

    研究下网络结构:

    1. 物理机有一块物理网卡(有线或无线),二块虚拟网卡,其中 vmware8虚拟网卡地址是10.0.0.1,可以直接访问外虚拟机 Centor7的ens33网卡10.0.0.200;
    2. 外虚拟机有一块ens33网卡,还有一块 Virbro-NIC的虚拟网卡桥接到KVM网桥ip默认为192.168.122.1,可以直接访问内虚拟机 Centos7的 eth0 网卡;
    3. 内虚拟机有一块eth0网卡,IP地址默认为192.168.122.100(最后字节随机)。
      网络结构

    (一)宿主机访问最里面内虚拟机的两种途径方法:

    方法1:
    宿主机xshell里ssh root@10.0.0.200,先登录进外虚拟机 OutCentos7,然后再OutCentos7里面的/bin/bash中输入shell命令, ssh root@192.168.122.100,可登录到最里面的内虚拟机;
    方法2:
    在宿主机上通过VNC 软件的客户端进行连接,外虚拟机 Centos7(IP为10.0.0.200),里面第一台内虚拟机的编号为0,在VWC中输入10.0.0.200:0,即可进入到第一个内虚拟机 Centos7中;

    (二)KVM虚拟机生命周期管理

    (假设虚拟机取名为vmname)
    (1)查看所有虚拟机的状态: virsh list --all
    (2)查看虚拟机的信息: virsh dominfo vmname
    (3)手动启动虚拟机: virsh start vmname
    (4)手动关闭虚拟机: virsh shutdown vmname
    (5)挂起(暂停)虚拟机:virsh suspend vmname
    (6)恢复挂起虚拟机: virsh resume vmname
    (7)断电关闭虚拟机(野蛮,轻易不要用): virsh destroy vmname
    (8〉开启启动虚拟机: virsh autostart vmname
    (9)取消开机启动虚拟机:virsh autostart --disable vmname
    (10)编辑虚拟机的配置文件(位于/etc/libvirt/qemu):
    方法1 virsh edit vmname ,这种编辑方法操作比较安全;
    方法2vim /etc/libvirt/qemu/vmname.xml,这种编辑方法不推荐;
    (11)导出(备份)虚拟机的配置文件: bashvirsh dumpxml vmname >/home/vpsback/vmname.xml
    (12)删除虚拟机(前提是虚拟机先关闭)
    删除之前先做虚拟机的备份:
    (1)virsh dumpxml xmname > /opt/xmname.xml
    (2)cp /opt/xmname.raw /opt/xmname.raw.bak
    方法1:virsh undefine vmname
    删除虚拟机 vmname 的配置文件,默认存储在/etc/libvirt/qemu/vmname.xml
    删除以后虚拟机在虚拟机管理器里面查不到了。但是虚拟机的磁盘文件仍然存在。
    方法2:virsh undefine vmname --storage /opt/vmname. raw
    //删除虚拟机,并同时删除虚拟机的所有磁盘文件,这个命令要慎用!

    (三)虚拟机磁盘的格式转换

    虚拟机磁盘一般有RAWQCOW2两种格式,有各自的应用场景:

    • RAW格式,裸格式,访问性能好,但是它占空间大,对于RAW格式的磁盘文件的不同主机之间的拷贝时间会很长(例如你分配10G大小的raw格式文件,实际占用1.3G,但文件拷贝给其他主机,仍然是10G大小),对RAW格式的磁盘文件进行压缩的时间会很长,不支持快照;类似于我们用数码相机拍视频,默认avi格式的存储。
    • QCOW2格式,磁盘存储采用稀疏文件(硬盘中没有数据的扇区不写入),支持快照,在存储和传输中有优势,但访问性能较差;类似于我们数码相机中mp4格式的视频。

    虚拟机的磁盘格式转换的具体命令:

    1. 关闭虚拟机,virsh shutdown vmname,或virsh destroy vmname
    2. 尝试做快照,提示失败。virsh snapshot-create vmname
    3. 切换到虚拟机的磁盘目录下,进行转换磁盘格式
      qemu-img convert -f raw -0 qcow2 实际磁盘名.raw 实际磁盘名.qcow2
    4. 查看两个文件大小,ll -hdu -smh,或qemu-img info 实际磁盘名.qcow2
    5. 若要启动带qcow2的虚拟机,必须修改在原来的配置文件进行编辑,/disk两处地方修改raw改为qcow2后保存。
    6. 把之前的raw文件重命名做备份: mv 实际磁盘名.raw 实际磁盘名.raw.bak
    7. 重新启动qcow2格式的虚拟机: virsh start vmname
    8. 允许新建一个虚拟机快照:virsh snapshot-create vmname

    (四)虚拟机的快照管理(磁盘格式必须是qcow2)

    (1)先启动磁盘为qcow2格式的虚拟机,virsh start vmname,查看现有应用。
    (2)关闭内虚拟机,新建一个虚拟机快照, virsh snapshot-create vmname
    virsh snapshot-list vmname查看快照信息,有一个快照id号
    (3)再启动内虚拟机,做一些厉害的破坏工作例如rm -rf /lib64/*,虚拟机的环境遭到野蛮的破坏无法正常使用,发现大多数的外部命令例如mv,cp, ps -ef都不能执行,只有内部命令ls或pwd可用,系统已搞崩溃,幸亏我们之前存有快照。
    (4)利用之前的快照进行恢复,virsh snapshot-revert vmname 快照ID号,重新启动虚拟机查看效果,然后在虚拟机上新增一些应用,例如yum install httpd php php-cli -y等,关闭虚拟机,再新建一个虚拟机快照,virsh snapshot-create vmname,这时候我们用virsh snapshot-list查看会有两个快照信息。

    (五)虚拟机的克隆管理(磁盘格式必须是qcow2)

    (1)自动克隆(当前VM必须处于关机状态)

    virsh shutdown vmname
    virt-clone --auto-clone -o vmname -n autonew-vmname
    virsh list --all
    virsh start autonew-vmname
    
    • 1
    • 2
    • 3
    • 4
    • 通过edit配置文档,我们发现原虚拟机和clone后的虚拟机的uuid,mac都是不一样,但是ip地址是一样的。建议登录一个虚拟机后, Shell输入dhclient -r//释放ip, Shell输入dhclient//重新获取一个新的ip。或者直接修改网卡配置文件修改一个新IP地址。

    (2)手工克隆(当前VM必须处于关机状态)

    1. 进入虚拟机的磁盘目录,复制vmname的虚拟机磁盘文件另存为handclone-vmname
    cp vmname.qcow2 handclone-vmname.qcow2
    
    • 1
    1. 备份vmname的虚拟机配置文件,另存为handclone-vmname
    virsh dumpxml vmname > handclone-vmname. xml
    
    • 1
    1. vim修改handnew一vmname 的虚拟机配置文件
    • 修改name,删除mac address,修改uuid, disk虚拟机磁盘路径,其中新的uuid可以用宿主机 uuidgen自动生成
    1. 导入handclone-vmname。
    virsh define handclone-vmname.xml
    virsh list --all
    
    • 1
    • 2

    KVM 的管控——内虚拟机的硬件热添加,硬盘分区格式化挂载和扩容等

    (一)内虚拟机的硬盘热添加

    在外虚拟机中先看看内虚拟机的硬盘概况

    virsh start INCentos7      #启动虚拟机机,热添加就是虚拟机
    
    • 1

    可以是在正常工作状态下,添加或拔出某些硬件。

    virsh dominfo INCentos7    #看看内虚拟机的整体大概
    virsh domblklist INCentos7    #看看内虚拟机的硬盘情况
    
    • 1
    • 2
    cd /opt
    ls -lh INCentos7.qcow2      #查看磁盘文件的空间预留大小
    du -sh INCentos7.qcow2        #查看磁盘文件的实际占用大小
    
    • 1
    • 2
    • 3
    • 当内虚拟机的存储容量不够,我们可以通过以下方法来热添加一块新硬盘:
    • 在外虚拟机中先新建一个新磁盘文件,作为内虚拟机的第二块硬盘。
      (1)qemu-img create -f qcow2 /opt/add01_INCentos7.qcow2 3G
      将新生成的add01_INCentos7.qcow2磁盘添加到虚拟机INCentos7,并作为虚拟机的第二块磁盘 vdb ( virtual disk b),指定磁盘类型为qcow2,并且保存到配置文件中(内虚拟机重启后第二块磁盘还能识别)
      (2) virsh attach-disk INCentos7 /opt/add01_INCentos7.qcow2 vdb --subdriver=qcow2 --persistent
    virsh domblklist INCentos7      #看看内虚拟机的硬盘情况,应该会有第二块硬盘vdb出现
    
    • 1

    进入内虚拟机有两种方法:
    方法1: Win10客户端 vnc登陆到内虚拟机后,ip addr查看内虚拟机 ip;
    方法2: 外虚拟机 ssh root@内虚拟机 ip,登陆到内虚拟机,推荐使用。
    (二)在内虚拟机中,对新挂载的硬盘进行分区、格式化和挂载等操作
    以下均在内虚拟上执行的操作:

    lsblk    #查看新的磁盘情况
    fdisk -l    #查看当下的硬盘分区情况
    fdisk /dev/vdb     #对扩充的新硬盘进行分区,如何分区是一个知识点。
    
    • 1
    • 2
    • 3
    • 以win7操作系统的硬盘分区为例,主分区(系统至少一个主分区存放root,最多4个主分区),扩展分区(只有一个扩展分区,不能直接格式化不能分配给用户),逻辑分区(在扩展分区里再根据需要创建多个逻辑分区)。

    对于热添加硬盘的Linux首次分区,我建议大家把这个硬盘全部用完,依次键入n,p,1,回车,回车, w

    partprobe /dev/vdb       #使新建分区生效
    fdisk -l                        #查看内虚拟机目前的分区情况
    fdisk -l /dev/vdb         #查看新硬盘的分区情况
    mkfs.xfs /dev/vdb1      #对新建的分区vdb1进行格式化
    mkdir /seconddisk-partition        #新建一个挂载目录
    mount /dev/vdb1 /seconddisk-partition      #通过挂载点/seconddisk-partition将分区/dev/vdb1挂载上
    df -h                     #显示内虚拟机所有硬盘的分区情况
    touch /seconddisk-partition/test.txt
    echo “1234” > /seconddisk-partition/test.txt
    cat /seconddisk-partition/test.txt         #测试新硬盘的分区能否读写文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    当然,我们还可以对第二块硬盘不采取分区,而是直接对第二块磁盘进行格式化后挂载使用,这种方法可用于第二块磁盘的扩容
    再现有的环境下,进入内虚拟机后:
    (1) umount /seconddisk-partition #先脱载
    此时若发现有挂载卸载不掉(卸载磁盘有进程在操作),提示有umount target is busy,可按以下多种方法操作:
    方法1: 使用fuser和 kill命令

    yum install psmisc       #安装fuser命令
    fuser -mv /seconddisk-partition      #查看目前正在使用的进程
    kill -g 进程号      #会退出当shell,新开shell再查看
    fuser -mv /seconddisk-partition   #查看目前是否还有使用的进程
    umount/seconddisk-partition      #完成脱载
    
    • 1
    • 2
    • 3
    • 4
    • 5

    方法2: 使用lsof命令处理

    lsof /seconddisk-partition       #查看pid对应的进程号
    kill -g 具体进程号           #杀死对应的进程号
    umount /seconddisk-partition      #完成脱载
    
    • 1
    • 2
    • 3

    方法3: 内虚拟机重新启动(之前是手工挂载,重启后会自动失效)
    (2)fdisk /dev/vdb
    依次键入d,w 删除分区
    (3)fdisk - /dev/vdb #查看硬盘的分区,应该是没有了
    (4)mkfs.xfs -f /dev/vdb #不分区,整个磁盘进行格式化
    (5)mkdir /seconddisk-full
    (6)mount /dev/vdb/seconddisk-full #挂载整个磁盘
    (7)df -h或者fdisk -l #查看磁盘容量或分区
    ( 8 ) touch /seconddisk-full/test.txt && echo “5678" > /seconddisk-full/test.txt && cat /seconddisk-full/test.txt #测试文件进行读写(同上)

    (三)对新挂载的硬盘进行扩容

    • 当前存储是第一块硬盘是INCentos7.qcow2最大容量是5G,
    • 第二块硬盘是add01_INCentos7.qcow2最大容量是3G。
    • 两块硬盘的容量一共是8G。现在内虚拟机的存储容量用着用着还是不够,需要对第二块硬盘进行扩容,但扩容的前提是第二块硬盘事先不能分区,添加成功后直接格式化并且挂载使用,下面实验就是基于此种环境下的扩容操作。
      进入内虚拟机后:
      (1)umount /seconddisk-full #先脱载
      进入外虚拟机后:
      (2)virsh detach-disk INCentos7 vdb --persistent #移除第二块硬盘
      (3) qemu-img resize /opt/add01_INCentos7.qcow2 +4G #扩容新增加4G(总容量为7G),注意如果没有+号是至扩容到4G(总容量为4G)
      (4) virsh attach-disk IlNCentos7 /opt/add01_INCentos7.qcow2 vdb --subdriver qcow2 --persistent #添加硬盘至虚拟机上
      切换进入内虚拟机后:
      (5) mount /dev/vdb /seconddisk-full #重新挂载分区
      (6) xfs_growfs /dev/vdb #扩展磁盘大小,若ext文件系统采用resize2fs /dev/vdb,扩容成功会有信息提示
      (7)df-Th #查看硬盘是否成功扩容至7G 了
      (8) touch /seconddisk-full/class.txt && echo “abcd" > /seconddisk-full/class.txt && cat /seconddisk-full/class.txt #测试文件进行读写(同上)

    (二)KVM的管控—图形可视化管理+网络管理

    (一)KVM图形化管理

    之前我们安装KVM,通常需要三个包:

    1. qemu-kvm软件包,主要提供KVM模拟器;
    2. libvirt包,主要提供相关的库文件或API接口;
    3. virt-manager包,主要提供虚拟机管理;yum install qemu-kvm* libvirt* virt-* -y
    • 之前我们的实验都是基于命令行的方法来管理虚拟机,在实践运维管理中以命令居多,能更好掌握其内在的逻辑关系。但其实KVM虚拟机也是有图形化管理工具,建议在外虚拟机本机上打开kvm的可视化管理工具。
      KVM

    (二) KVM的网络管理

    KVM 默认的连网方式是NAT,当安装好KVM虚拟机后,就会在宿主机上自动安装一个网桥virbr0(管理ip是192.168.122.1),此网桥会把各个虚拟机连接起来,处在同一个网段(默认是192.168.122.X),并且KVM会修改iptables规则,让连接到此网桥的虚拟机访问外网时做一个网络地址转换NAT。
    通常,设置了NAT以后,内网可以主动访问外网,但是外网不能主动访问内网。
    KVM虚拟机的 nat网络模式的完整网络架构
    在外虚拟机上启动两个内虚拟机以后的ip addr信息

    [root@kvmnodel ~]# ip addr
    1: lo:〈LOOPBACK,UP,LOWER_UP〉 mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00: 00 brd 00:00: 00:00: 00: 00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft foreverinet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29: 68: ae:lf brd ff:ff:ff:ff:ff: ff
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute ens33
    valid_lft forever preferred_lft forever
    inet6 fe80: : 9b6d: c6d : 66c3: d42f/64 scope link noprefixroute
    valid_lft forever preferred_lft forever
    3: virbr0:〈BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00: e6:f8: 4a brd ff: ff:ff:ff: ff: ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    valid_lft forever preferred_lft forever
    4: virbr0-nic:<BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DWOWNgroup default qlen 1o00
    link/ether 52:54:00: e6: f8:4a brd ff:ff:ff:ff:ff:ff
    5: vnet0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOonV group default qlen T000
    link/ether fe:54:00:8b: b8:b7 brd ff:ff:ff:ff:ff:ffinet6 fe80: : fc54:ff: fe8b: b8b7/64 scope link
    valid_lft forever preferred_lft forever
    6: vnet1:〈BROADCAST,MULTICAST,UP, LOWER_UP> mtu 1500 qdisc pfifo_fast master virbrl0 state UNKAONN group default qlen 1000
    link/ether fe:54:00:9c: 3d: 48 brd ff: ff: ff: ff: ff: ffinet6 fe80: :fc54:ff: fe9c : 3d48/64 scope link
    valid_lft forever preferred_lft forever
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    然而,在很多应用场景中需要kvm内虚拟机和外虚拟机在同一个网段里,那么默认的NAT模式就不合适了,需要从默认的NAT模式切换到桥接Bridge模式。
    2.1 在网卡的配置文件目录中,配置生成一个新的配置文件ifcfg-br0。以下操作均在外虚拟机上来完成:

    cd /etc/sysconfig/network-scripts/
    cp ifcfg-ens33 ifcfg-br0
    vim ifcfg-br0     #参考下列修改网桥配置后保存
    
    • 1
    • 2
    • 3
    TYPE=bridge
    NAME=br0
    DEVICE=br0
    BOOTPROTO=static
    DEFROUTE=yes
    IPADDR=10.0.0.200
    NETMASK=255.255.255.0
    GATEWAY=10.0.0.254
    DNS1=10.0.0.254
    DNS2=8.8.8.8
    ONBOOT=yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    vim ifcfg-ens33    #参考下列修改网卡配置后保存
    
    • 1
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    BRIDGE=br0
    
    • 1
    • 2
    • 3
    • 4
    systemctl restart network       #重启网络
    ip addr           #假设当前没有开启任何内虚拟机
    
    • 1
    • 2

    外虚拟机上新增一个网桥的网卡信息(假设当前没有开启内虚拟机)

    Lroot@kvmnodel network-scripts]# ip addr
    1: lo:〈LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft foreverinet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: ens33:<BROADCAST,MULTICAST,UP,LOWER_UP〉 mtu 1500 qdisc pfifo_fast master br0O state UP group default glen 100
    link/ether 00:0c:29: 68:ae:1f brd ff:ff:ff:ff:ff:ff
    3: br0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group
    default qlen 1000
    link/ether 00:0c:29:68:ae:1f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.200/24 brd 10.0.0.255 scope global noprefixroute br0valid_lft forever preferred_lft forever
    inet6 fe80::6076:5eff:fede:85b8/64 scope link
    valid_lft forever preferred_lft forever
    4: virbr0:(NO-CARRIER, BROADCAST,MULTICAST,UP〉 mtu 1500 qdisc noqueue state DOWN group default qlen 1l000
    link/ether 52:54:00:e6:f8:4a brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
    5: virbr0-nic:<BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DON group default qlen 1000link/ether 52:54:00:e6:f8:4a brd ff:ff:ff:ff:ff: ff
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    2.2 在外虚拟机上用KVM的可视化管理工具,更改原来INCentos7的网卡模式,从默认的NAT切换为Bridge
    修改网卡模式为bridge
    查看或修改虚拟机的远程桌面采用VNC 方式
    在外虚拟机上启动内虚拟机 INCentos7后,登录或进入内虚拟机 INCentos7后,先查看内虚拟机INCentos7的网卡配置文件,

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="dhcp"
    DEFROUTE="yes"
    NAME="eth0"
    DEVICE="eth0"
    ONBOOT="yes"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    先确保内虚拟机的网卡配置文件是DHCP的分配方式,然后内虚拟机上ip addr
    查看内虚拟机的IP是10.0.0.*的地址段地址并且可以ping通114.114.114.114,而且和宿主机(外虚拟机)在同一个网段,和宿主机(外虚拟机)连接到同一个网桥上了,同时再修改虚拟机 autoclone-INCentos7的网卡模式从NAT到 bridge,查看实验情况。
    至此,桥接模式的kvm虚拟机已配置完成,最后我们来看看桥接KVM虚拟机的整体网络架构图。
    KVM虚拟机的网桥bridge模式的整体网络架构

  • 相关阅读:
    Map接口的实现类---HashMap
    通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarCTF 2019]Easy Calc 1
    淘宝旺旺黑号API接口 信誉
    【无标题】
    LeetCode算法二叉树—108. 将有序数组转换为二叉搜索树
    【QT】day2
    StrictMode卡顿与泄漏检测-StrictMode原理(2)
    css 横向滚动条加高度自适应
    前端面试合集(三——浏览器)
    【python】求先序排列
  • 原文地址:https://blog.csdn.net/qq_54053990/article/details/127583651