一,KVM基础

kvm是一种技术,云计算是一种模式,虚拟化是利用相应的技术方法在一台物理机器上将其按照不同的需求划分成多个相同或者不同的虚拟操作系统,并且各个虚拟系统可以同时运行,互不干扰,其中任何一个虚拟系统的损坏都不影响同一物理服务器上的其他虚拟系统。

虚拟化分类

服务器虚拟化-虚拟服务器

桌面虚拟化-瘦客户机连接win7 实现普通办公

存储虚拟化-SAN(基于磁盘)/NAS(NFS/Samba)/GlusterFS

应用虚拟化-将办公软件虚拟化,最典型的就是office

网络虚拟化-SDN

更多待补

二,KVM实验

1,网络

使用kvm 安装虚拟机后,需要为客户机设置网络接口,2种方式:

KVM 客户机网络连接有两种方式:

  • 用户网络(User Networking):让虚拟机访问主机、互联网或本地网络上的资源的简单方法,但是不能从网络或其他的客户机访问客户机,性能上也需要大的调整。NAT方式

NAT方式是kvm安装后的默认方式。它支持主机与虚拟机的互访,同时也支持虚拟机访问互联网,但不支持外界访问虚拟机

由于虚拟接口和物理接口之间没有连接关系,所以虚拟机只能在通过虚拟的网络访问外部世界,无法从网络上定位和访问虚拟主机。virbr0是一个桥接器 ,使用 brctl show 及 route 查看

  • 虚拟网桥(Virtual Bridge):这种方式要比用户网络复杂一些,但是设置好后客户机与互联网,客户机与主机之间的通信都很容易。

以网桥方式连接,客户机可以与子网里面的机器互相通信,可以使虚拟机成为网络中具有独立IP的主机,桥接网络(也叫物理设备共享)被用作把一个物理设备复制到一台虚拟机。网桥多用作高级设置,特别是主机多个网络接口的情况

网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据,适用于主机虚拟化

2,架构如上图

大坑:

实验用的是 CentOS Linux release 7.4.1708 (Core) :

1,yum 安装  libvirt   的版本  libvirt version: 4.5.0, package: 10.el7

systemctl  start  libvirtd 报错:

error : virModuleLoadFile:53 : internal error: Failed to load module '/usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so': /usr/lib64/libvirt/storage-backend/libvirt_storage_backend_rbd.so: undefined symbol: rbd_diff_iterate2

处理:

mv  libvirt_storage_backend_rbd.so{,.bk}

然后可以正常启动。

2,在做网络bond和桥接时总是出错,桥接配置地址后无法正常与外界公网连接

    折腾了一天,后来换了系统,centos 7.6 后正常配置bond和桥,kvm 。

三,操做

1,宿主机准备

四个网卡,2个桥接,一个仅主机模式(可自动分配ip)

  1. # 1,vmware 宿主机cpu开启虚拟化
  2. # 2,确认指令集是否支持kvm
  3. grep -E "vmx|svm" /proc/cpuinfo | wc -l
  4. 2
  5. # 3,安装kvm 工具包
  6. yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install acpid
  7. systemctl start/enable libvirtd
  8. ifconfig virbr0 #查看生成的网卡
  9.  
  10. grep "192.168.122.1" /etc/lib #查看ip 地址
  11. grep "192.168.122.1" /etc/libvirt/ -R #查看ip所在文件,可以修改为指定内网ip

 

2,创建NAT模式虚拟机

  1. ## 提前上传镜像
  2. ll /usr/local/src/CentOS-7-x86_64-Minimal-1810.iso
  3.  
  4. ##创建磁盘
  5. ll /var/lib/libvirt/images/ #默认保存虚拟机磁盘的路径
  6.  
  7. ##创建一个格式为raw大小为10G的裸磁盘
  8. qemu-img create -f raw /var/lib/libvirt/images/CentOS-7-x86_64.raw 10G
  9.  
  10. ##qcow2格式
  11. qemu-img create -f qcow2 /var/lib/libvirt/images/centos.qcow2 10G
  12. #创建默认网络虚拟机,默认为nat模式
  13. virt-install --virt-type kvm --name centos7 --ram 1024 --vcpus 2 \
  14. --cdrom=/usr/local/src/CentOS-7-x86_64-Minimal-1810.iso \
  15. --disk path=/var/lib/libvirt/images/centos.qcow2 \
  16. --network network=default \
  17. --graphics vnc,listen=0.0.0.0 --noautoconsole
  18.  
  19. #--network network=default 网络默认NAT模式

3,创建bond+桥接

  1. #创建br0桥接网卡,双网卡绑定+ 桥接
  2. #多个网卡绑定,高可用或带宽叠加 宿主机按装
  3. yum -y isntall bridge-utlis
  4. 本机配置
  5. 外网:eth0 eth1
  6. 内网:eth2 eth3
  7. cd /etc/sysconfig/network-scripts
  8.  
  9. ##bond0配置
  10. 1vim ifcfg-bond0
  11. TYPE=Bond
  12. BOOTPROTO=none
  13. DEVICE=bond0
  14. NAME=bond0
  15. ONBOOT=yes
  16. USERCTL=no
  17. BONDING_MASTER=yes
  18. BONDING_OPTS="mode=1 miimon=100"
  19. BRIDGE=br0
  20. #桥接到br0
  21.  
  22. 2vim ifcfg-br0
  23. TYPE=Bridge
  24. BOOTPROTO=static
  25. DEFROUTE=yes
  26. PEERDNS=yes
  27. PEERROUTES=yes
  28. IPV4_FAILURE_FATAL=no
  29. IPV6INIT=yes
  30. IPV6_AUTOCONF=yes
  31. IPV6_DEFROUTE=yes
  32. IPV6_PEERDNS=yes
  33. IPV6_PEERROUTES=yes
  34. IPV6_FAILURE_FATAL=no
  35. NAME=br0
  36. DEVICE=br0
  37. ONBOOT=yes
  38. IPADDR=172.20.134.7
  39. #宿主机ip
  40. NETMASK=255.255.0.0
  41. GATEWAY=172.20.0.1
  42. DNS1=114.114.114.114
  43.  
  44. 3,eth0 配置
  45. vim ifcfg-eth0
  46. TYPE=Ethernet
  47. BOOTPROTO=none
  48. DEVICE=eth0
  49. ONBOOT=yes
  50. USERCTL=no
  51. MASTER=bond0
  52. SLAVE=yes
  53.  
  54. 4,eth1配置
  55. vim ifcfg-eth1
  56. TYPE=Ethernet
  57. BOOTPROTO=none
  58. DEVICE=eth1
  59. ONBOOT=yes
  60. USERCTL=no
  61. MASTER=bond0
  62. SLAVE=yes
  63.  
  64. #bond1 配置
  65. 1vim ifcfg-bond1
  66. BOOTPROTO=static
  67. NAME=bond1
  68. DEVICE=bond1
  69. ONBOOT=yes
  70. BONDING_MASTER=yes
  71. BONDING_OPTS="mode=1 miimon=100"
  72. BRIDGE=br1
  73.  
  74. 2vim ifcfg-br1
  75. TYPE=Bridge
  76. BOOTPROTO=static
  77. NAME=br1
  78. DEVICE=br1
  79. ONBOOT=yes
  80. IPADDR=10.20.200.4
  81. #宿主机私网ip
  82. NETMASK=255.255.255.0
  83.  
  84. 3,eth2 配置
  85. vim ifcfg-eth2
  86. BOOTPROTO=static
  87. NAME=eth2
  88. DEVICE=eth2
  89. ONBOOT=yes
  90. NM_CONTROLLED=no
  91. MASTER=bond1
  92. USERCTL=no
  93. SLAVE=yes
  94.  
  95. 4,eth3配置
  96. vim ifcfg-eth3
  97. BOOTPROTO=static
  98. NAME=eth3
  99. DEVICE=eth3
  100. ONBOOT=yes
  101. NM_CONTROLLED=no
  102. MASTER=bond1
  103. USERCTL=no
  104. SLAVE=yes
  105.  
  106. ##第一个kvm虚拟机
  107. #创建磁盘
  108. qemu-img create -f qcow2 /var/lib/libvirt/images/centos7-bridge.qcow2 10G
  109.  
  110. #创建桥接网络虚拟机
  111. virt-install --virt-type kvm --name bridge-2 --ram 1024 --vcpus 2 \
  112. --cdrom=/data/CentOS-7-x86_64-Minimal-1810.iso \
  113. --disk path=/var/lib/libvirt/images/centos1.qcow2 --network bridge=br0 \
  114. --graphics vnc,listen=0.0.0.0 --noautoconsole
  115.  
  116. ##第二个虚拟机按步骤重复操做
  117. 注意第二台主机的网络模式为--network bridge=br1
  118. 或创建成功后使用virt-manager 图型化更改网卡模式。选择br1
  119.  
  120. ##对于第二台宿主机,可以将第一台的网卡配置文件及镜像复制过去,更改ip,启动虚机后立刻poweroff 后重新启动

  

 笔记本承载不了,开第二台虚拟机kvm卡住。更多后补。

kvm:双网卡做bond+桥接的更多相关文章

  1. Linux双网卡绑定bond详解--单网卡绑定多个IP

    Linux双网卡绑定bond详解 1 什么是bond 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术.Kernels 2.4.12及 ...

  2. Debian 16.04 配置双网卡绑定bond

    Debian 16.04 配置双网卡绑定bond Debian 16.04 bonding多网卡配置 安装负载均衡软件 fenslave root@ubuntu:~# apt-get install ...

  3. virtualbox 最小化安装centos7 配置双网卡(nat和桥接)记录----已经过期

    该文章已经过期   请参考另一篇文章:virtualbox 安装centos7 配置桥接网卡,实现主机和虚拟机互通,虚拟机可以访问外网,解决无法上网问题   先说明一下为什么要配置双网卡? 配置nat ...

  4. centos 7 服务器网卡做bond

    前期环境准备 [root@ /root] alibaba cloud#cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@ ...

  5. 网卡做bond 导致丢包

    值班中发现一台服务器报到网关丢包,带宽200M. 用  ethtool bond0 查看网卡带宽信息,发现 Speed 为 3100M ,非 1000 的整数倍或10000的整数倍,感觉不对,因为是做 ...

  6. centos下多网卡做bond脚本

    多网卡或者单网卡形式下的网卡bonding #! /bin/sh #获取当前网卡数 ethnum=`lspci | grep Ethernet | wc -l` echo $ethnum #如果网卡数 ...

  7. Linux下双网卡绑定bond配置实例详解

    本文源自:http://blog.itpub.net/31015730/viewspace-2150185/ 一.什么是bond? 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡冗余,带宽 ...

  8. Linux双网卡绑定bond详解

    参考资料: 1.https://blog.csdn.net/shengerjianku/article/details/79221886

  9. proxmox ve系统绑定上联外网出口bond双网卡

    背景描述:一个客户搭建proxmox ve系统,要求上联出口双网卡绑定bond, proxmox ve下载地址:超链接 记录日期:2020/5/9 前期准备:服务器接好2个网卡 交换机:H3C 1.p ...

随机推荐

  1. codeblocks无法识别的16位程序解决方法

    被codeblocks心态搞崩了,分享一下经验给大家,具体就是无法运行编译好的程序,还有就是调试功能没法用. 查了很多资料,自己搞了一个终极解决方法:1卸载codeblocks,2打开我的电脑,全盘搜 ...

  2. Java中File类的基本用法

    File类的基本用法 java.io.File类:代表文件和目录.在开发中,读取文件.生成文件.删除文件.修改文件的属性时经常会用到此类. File类的常用构造方法:public File(Strin ...

  3. USACO2.2 Preface Numbering【思维+打表】

    这道题乍一看没有什么思路,细看还是没有什么思路 嗯,细看还是可以看出些什么端倪. 不能复合嵌套什么的 总结一下就只有这样3种规则: 1.IXCM最多三个同样连续 加起来2.递减:加起来 注意VLD不连 ...

  4. 第八周课程报告&&实验报告六

    Java实验报告 班级 计科一班 学号 20188390 姓名 宋志豪 实验四 类的继承 实验目的 理解异常的基本概念: 掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 练习捕获异常.声明异常. ...

  5. HDU 1160 FatMouse's Speed (动态规划、最长下降子序列)

    FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  6. neo4j - 查询效率的几种优化思路

    最近在公司实习做的就是优化neo4j图形数据库查询效率的事,公司提供的是一个在Linux上搭建且拥有几亿个节点的数据库.开始一段时间主要是熟悉该数据库的一些基本操作,直到上周才正式开始步入了优化数据库 ...

  7. 图片水印处理-temp

    /media/watermark 简要描述: 用户注册接口 应用场景:比较复杂的水印处理,如需要多次添加水印,或者水印图片本身也需要处理,如果处理相对简单,java项目可以通过dubbo接口Image ...

  8. 【7.9校内test】T2 极值问题

    这个题真的,毫无思路的说,但是我们会打表啊: lz的打表之路: 当然是手写一个暴力啦(*^▽^*)! 然后滚去配置lemon测试一下暴力可以得多少分qwq: 是的40分呢! 然后其实看上面也能看出来一 ...

  9. LOJ167 康托展开 题解

    题面 康托展开: 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩. 康托展开的实质是计算当前排列在所有由小到大全排列中的名次,因此是可逆的. X = A[0] * (n-1)! ...

  10. Python 常用库(随时补充)

    1. Python-RSA使用手册 英文文档见Python-RSA使用手册,主要介绍了Python-RSA的消息的加密解密.文件的加密解密以及签名的方法. Installation 使用pip ins ...