Centos7搭建KVM虚拟化平台之基于OVS网桥

2023-05-16

Centos7搭建KVM虚拟化平台之基于OVS网桥


文章目录

  • Centos7搭建KVM虚拟化平台之基于OVS网桥
  • 一、什么是虚拟化技术?为什么要用虚拟化技术?
  • 二、Qemu-KVM基本工作原理分析
  • 三、KVM和Qemu基于OVS网桥的部署
    • 3.1环境准备
      • 3.1.1安装centos7
      • 3.1.2打开centos7虚拟机,确认CPU VT开启
      • 3.1.3.网络配置为桥接模式
    • 3.2安装KVM和Qemu
    • 3.2安装OVS并配置网络
    • 3.3KVM添加虚拟网络br0
    • 3.4图形界面安装虚拟机


一、什么是虚拟化技术?为什么要用虚拟化技术?

对于虚拟化技术,gartner给过一个相对简单但是很准确的定义:就是将不同的资源和逻辑单元剥离,形成松耦合的关系的技术。简而言之,通过虚拟化技术可以将一台计算机虚拟为多台逻辑计算机。在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的,从而显著提高计算机的工作效率。

二、Qemu-KVM基本工作原理分析

广义的KVM实际上包含两部分:
一部分是基于LINUX内核支持的KVM内核模块,另一部分就是经过简化和修改Qemu。

KVM内核模块模拟处理器和内存以支持虚拟机的运行

Qemu主要处理I/O以及为用户提供一个用户空间工具来进行虚拟机的管理。

Qemu本身并不是KVM的一部分,而是一整套完整的虚拟化解决方案,它是纯软件实现的,包括处理器虚拟化、内存虚拟化以及各种虚拟设备的模拟,但因为是纯软件模拟,所以性能相对比较低。

KVM与Qemu相互结合,相辅相成,构成了一个完整的虚拟化平台。


三、KVM和Qemu基于OVS网桥的部署

3.1环境准备

3.1.1安装centos7

在VMware安装centos7,可参照我第一篇博客,参照up主安装时需要注意的是,网络要选择桥接模式,磁盘分区选择自动分区。

注意:磁盘大小30G往上,因为配置完成后要利用Virtual Machine Manger安装虚拟机,博主自己第一次磁盘分小了,导致最后一步无法进行,只好重来。

3.1.2打开centos7虚拟机,确认CPU VT开启

使用命令grep -Ei ‘vmx|svm’ /proc/cpuinfo 查看当前cpu是否支持虚拟化(有输出)。若无输出,可关闭虚拟机,在虚拟机设置->硬件->处理器->虚拟化引擎处勾选 “虚拟化Intel VT-x/EPT或AMD-V/RVI(V)”,点击确定后重启虚拟机,再次输入grep -Ei ‘vmx|svm’ /proc/cpuinfo,出现如下提示信息,则开启成功。

#grep -Ei 'vmx|svm' /proc/cpuinfo

在这里插入图片描述

3.1.3.网络配置为桥接模式

#cd /etc/sysconfig/network-scripts
#查看网卡配置
#cat ifcfg-ens33

在这里我们需要参照物理机(主机)网络,增加IPADDR、NETMASK、GATEWAY{a.b.c.x}、DNS1四项,修改BOOTPROTO、ONBOOT。

IPADDR可选择该网段下的闲置ip,比如设置为a.b.c.11

NETMASK为子网掩码可设置为255.255.255.0。

GATEWAY为路由器下或者共享网络的设备在该局域网下的ip,一般为a.b.c.1。

DNS1参数设置与GATEWAY相同即可。

如何查看物理机网络配置信息?
第一步点击网络,点击属性,下拉查看网络配置即可

在这里插入图片描述

#按照上述信息,编辑网卡
#sudo vim ifcfg-ens33
#再次查看编辑后的网卡配置信息
#cat ifcfg-ens33

配置后的网卡信息如下图所示:
在这里插入图片描述

#重启网卡
#sudo systemctl restart network
#打开一个新的终端,ping 百度,检查是否网络桥接成功
#ping www.baidu.com
#若ping通了会有ping地址或者域名的返回信息,则桥接成功。

3.2安装KVM和Qemu

安装kvm、qemu 以及虚拟机图形界面管理工具virt-manager

#sudo yum install kvm qemu-kvm qemu-img virt-manager libvirt libvirt-python python-virtinst libvirt-client virt-install virt-viewer  libgovirt -y

成功后,有如下提示信息:
在这里插入图片描述

3.2安装OVS并配置网络

1.在centos7中浏览器,下载ovs2.8.1 :http://www.openvswitch.org/download/
2.使用命令makdir ovs,本地新建ovs文件夹
3.将下载好的文件,从下载移动到刚刚建好的ovs文件夹
4.在ovs2.8.1所在目录下创建、添加执行权限并使用管理员权限执行安装脚本install_ovs.sh

#新建脚本install_ovs.sh,将下面文本写入脚本,保存并退出
#vim install_ovs.sh

#!/bin/bash
tar -zxvf ./openvswitch-2.8.1.tar.gz && 
cd openvswitch-2.8.1 &&
./configure &&
make &&
make install &&
make modules_install ;
/sbin/modprobe openvswitch && 
/sbin/lsmod | grep openvswitch ;
echo 'export PATH=$PATH:/usr/local/share/openvswitch/scripts' > /etc/profile.d/ovs.sh && 
source /etc/profile.d/ovs.sh && 
ovs-ctl start &&
echo "openvswitch is installed and started successfully" && 
ps -e |grep ovs

查看脚本文件:
在这里插入图片描述

#接着执行如下命令
#chmod +x ./install_ovs.sh
#ls
#执行脚本
#sudo ./install_ovs.sh

安装成功出现如下信息:
在这里插入图片描述

检测是否安装成功:su使用root账号,执行ovs-vsctl show命令(ovs相关命令一般要使用root用户)

#su
#ovs-vsctl show

在这里插入图片描述

配置br0网桥:

1.使用ovs-vsctl add-br br0创建名为br0的网桥
在这里插入图片描述

2.使用ifconfig命令查看以太网卡名及其ip地址
在这里插入图片描述

3.在/etc/sysconfig/network-scripts/目录下创建ifcfg-br0文件(IPADDR {a.b.c.d},GATEWAY {a.b.c.2}根据实际情况填写)具体操作如下:

#cd /etc/sysconfig/network-scripts
#sudo vim ifcfg-br0
#在此文件中,写入以下信息
DEVICE=br0
STP=yes
BOOTPROTO=none
ONBOOT=yes 
TYPE=OVSBridge 
DEVICETYPE=ovs
USERCTL=yes 
PEERDNS=yes 
IPV6INIT=no
IPADDR=根据自己桥接网络实际填写
NETMASK=255.255.255.0
GATEWAY=根据自己桥接网络实际填写
DNS1=根据自己桥接网络实际填写
DNS2=8.8.8.8 
NAME="br0"

4.修改以太网卡对应的配置文件ifcfg-ens33

#cd /etc/sysconfig/network-scripts
#sudo vim ifcfg-ens33

在这里插入图片描述
在这里插入图片描述

检测OVS br0网桥是否配置成功:
1.执行ovs-vsctl add-port br0 ens33 && systemctl restart network
2.ping www.baidu.com能ping通、使用ifconfig命令能够查看到名为br0的网卡且它的ip为之前以太网卡的ip

OVS开机自启:
1.进入/etc/rc.d/目录,并修改该下的rc.local文件 添加以下内容
/usr/local/share/openvswitch/scripts/ovs-ctl start
systemctl restart network
2.使用chmod +x ./rc.local 命令为rc.local 添加可执行权限
在这里插入图片描述

3.3KVM添加虚拟网络br0

1.进入ovs文件夹,创建br0.xml文件 ,加入以下信息

<network>
 <name>br0</name> 
 <bridge name="br0"/> 
 <forward mode="bridge"/>
 <virtualport type="openvswitch"/>
</network>

在这里插入图片描述

2.在当前路径下执行:

#virsh net-define ./br0.xml && virsh net-start br0 && virsh net-autostart br0 && virsh net-list --all

在这里插入图片描述

3.4图形界面安装虚拟机

首先,在centos7系统中提前准备好系统镜像文件,或者在线下载centos7镜像文件。

使用virt-manager命令打开Virtual Machine Manger

File-> New Virtual Machine ->Local install media -> Forward

选择系统镜像文件:Browse -> Browse Local 查找并选中提前准备好的系统镜像 -> Open ->Forward

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

内存和cpu数设置:根据实际情况设置,至少1G,1CPU. 点击Forward

硬盘设置:根据实际情况设置 ,点击Forward

填写虚拟机Name,Network selection 选择br0 ,点击Finish

在这里插入图片描述

上下键选择install centos7 ,回车。(当鼠标处于虚拟机内无反应时使用组合建ctrl+alt可退出)

先连接NetWork,NETWORK&HOSTNAME->on->Done ;
INSTALLATION DESTINATION 直接点进去->Done,自动分区
在这里插入图片描述

在这里插入图片描述

SOFTWARE SELECTION部分根据个人需求选择,建议选择GNOME Desktop

时区选择shanghai,点击Begin installation 设置root密码和添加账户

安装完成后,重启登录进入kvm虚拟机系统,测试网络连通
ping www.baidu.com

至此完成了KVM和Qemu基于网桥的安装与使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Centos7搭建KVM虚拟化平台之基于OVS网桥 的相关文章

  • BSC(币安智能链)主网链部署

    文章目录 一 BSC主链镜像生成 二 BSC主链容器生成 2 1 下载BSC主网配置文件 2 2 新建初始化创始区块文件脚本 2 3 本地写入创世状态 2 4 新建BSC链启动脚本 2 5 启动BSC主网链 三 查看BSC服务是否部署成功
  • python3.7在centos下安装pygame

    python编程从入门到实践 一书的第二部分开始 需要安装pygame 我用的是centos7 里面有内置的python2 我自己装了python3 7 pip安装pip3 安装过程网上教程很多 但是一般安装的不完全 需要注意的是安装ssl
  • centos libgeos 存储库丢失

    在 centos 7 3 上 最小尝试安装 shapely 或 geopandas 需要访问https github com libgeos libgeoslibgeos 尝试通过安装这个sudo yum install libgeos d
  • Android 模拟器在 Ubuntu 18.04 上因 SIGSEGV 崩溃

    Android Studio版本 Android Studio 3 1 2 内部版本 AI 173 4720617 建于 2018 年 4 月 14 日 它是从 Ubuntu 的 snap 商店安装的 我使用安装了kvm1 在 Ubuntu
  • 使用 JeMalloc 查找 Java 应用程序中的本机内存泄漏

    目前我正在尝试解决 Java 内存问题 我的 Java 应用程序不断使用越来越多的内存 最终它被 Linux OOM 杀手杀死 很可能是本地内存泄漏 因为经过检查 使用 VisualVM 的 JVM 的元空间和堆看起来都不错 使用top命令
  • xinetd 服务调用 python 脚本(无法正确执行)

    我读到了这个 您可以使用 xinetd 添加启动 python 脚本的服务 标准输入和输出将通过网络在所需端口上传输 因此您不需要修改脚本 input raw input 和 print 方法可以正常工作 因此 当建立到 192 168 2
  • 如何在 CentOS 7 上安装最新版本的 Docker [已关闭]

    Closed 这个问题是与编程或软件开发无关 目前不接受答案 我正在尝试在 CentOS 7 64 位系统上安装现代 docker io 版本 1 5 yum 服务器附带的默认 docker io 是 1 3 2 并且 这个版本对于我需要的
  • 以气流用户身份运行气流进程和气流网络服务器

    Problem 我正在 GCP 上设置 Google Compute Engine 虚拟机airflow安装在其上 我现在正在尝试整合airflow with systemd按照以下说明http airflow readthedocs io
  • 陷阱标志(TF)和监视器陷阱标志之间的区别?

    像 GDB 这样的调试功能通过设置 eflags 寄存器的 TF 标志来工作 这会在处理器每次执行指令后引发异常 让 gdb 等工具控制调试 当我们运行虚拟机 Ex 时 在 kvm 的情况下执行以下操作同样 您需要设置一个名为 MONITO
  • 无法在 Linux 机器上通过 ODBC 连接到 informix

    我正在运行 CentOS 7 的虚拟机上工作 并且尝试通过一些 php 使用 ODBC unixODBC 连接到 Informix 数据库 我使用的是 php7 0 并且安装了 unixODBC 2 3 7 以及 informix sdk
  • Xen、QEMU 和 KVM 之间有什么区别?

    我知道Xen使用QEMU 而KVM是QEMU的一个分支 那么 KVM 包括 Xen 添加到 QEMU 中吗 是什么名字 Thanks QEMU 是一个功能强大的模拟器 这意味着它可以模拟多种处理器类型 Xen 使用 QEMUHVM http
  • tcsh 脚本不退出

    我正在运行 CentOS 7 并且 tcsh 脚本出现问题 我有一个名为 quittest 的简单脚本 bin tcsh echo Simple Test exit 0 当我从终端运行 quittest 时 我得到 Simple Test
  • 系统上未安装 docker-runc

    我最近更新了基于 Centos 7 的机器 从那时起 我无法启动任何码头工人 有人对这个问题有经验吗 如果有 你是如何解决的 感谢您的宝贵帮助 错误日志下方 docker run it centos6 labs ompi161 devtoo
  • 无法在 CentOS 7 上的 PHP 中打开 file_put_contents 上的流

    我知道这是许多线程的常见错误 但我厌倦了搜索 但仍然没有解决它 当我尝试运行该函数时文件放置内容我收到以下错误 Warning file put contents test txt failed to open stream Permiss
  • qemu KVM内核模块没有这样的文件或目录

    我目前正在上操作系统课程 我需要使用 qemu 来运行我的教授提供的一个小型操作系统 我正在尝试在 MacBook Air 5 2 上的 virtualbox 上的 ubuntu 12 04 虚拟机中使用 qemu 我知道我遇到的问题可能与
  • 如何使用 devtoolset-8-gcc 安装 gcc8

    我使用的是 CentOS Linux 版本 7 3 1611 其中安装了 gcc 4 8 5 20150623 我正在寻找一种安装较新版本的 gcc 的方法 特别是 8 1 我找到了以下关于如何安装 gcc v7 的网站link 1 htt
  • 如何在 Linux (Red Hat/CentOS) 上更新到特定 R 版本,并保留以前的版本?

    也许更准确的标题是 如何在 Linux Red Hat CentOS 上从就地 EPEL R 安装切换到并行 特定于版本 R 安装 一个 可能是典型的 在 Linux 上升级 R 的故事 History 在过去的某个时刻 我使用由 RHEL
  • qemu kvm:如何获取性能监控中断?

    我在操作系统内核中编写了一些函数 以便在指令计数器溢出时发出性能监控中断 PMI 它在我的机器 Intel core i5 上运行良好 但是当我使用 qemu 在 qemu 上运行它时 qemu system x86 64 enable k
  • 如何在CentOS7中更改docker守护进程根目录

    我在 CentOS7 上运行 docker 我想更改我的基本目录 var lib docker to data docker I found this https docs docker com engine reference comma
  • 如何在 Centos 7 上手动安装 PHP-Zts

    我想安装 pthreads 当我尝试安装时 我会收到此错误 checking for ZTS no configure error pthreads requires ZTS please re compile PHP with ZTS e

随机推荐