在如今多租户模式的数据中心环境下,虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化,扩展到网络虚拟化。在这种环境下,基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上,串联起了不同虚拟机之间传送的流量。

我在本教程上将演示如何在Ubuntu或Debian上安装和配置KVM和Open vSwitch(OVS)。KVM和Open vSwitch分别是用于如今的数据中心中的最流行的开源虚拟机管理程序和虚拟交换机。

将Open vSwitch安装在Ubuntu或Debian上

虽然OVS以程序包的方式出现在Ubuntu或Debian上,但我在此还是通过源代码来构建OVS,这将拥有最新的功能特性和修正版。

首先,安装用于构建OVS的依赖项。$ sudo apt-get install build-essential libssl-dev linux-headers-$(uname -r)

通过源代码来构建OVS,如下所示。下列步骤将构建OVS内核模块以及OVS用户空间工具。$ wget http://openvswitch.org/releases/openvswitch-1.9.3.tar.gz

$ tar xvfvz openvswitch-1.9.3.tar.gz

$ cd openvswitch-1.9.3

$ ./configure --with-linux=/lib/modules/`uname -r`/build

$ make

接下来,继续在/usr/local/share/下安装OVS用户空间组件:$ sudo make install

下一步是,测试OVS内核模块(安装该模块之前)。为此,先在内核中装入内核模块。$ sudo insmod ./datapath/linux/openvswitch.ko

证实OVS内核模块已成功装入。$ lsmod | grep openvswitch

openvswitch            97934  0

一旦你证实openvswitch.ko已成功装入到内核中,继续安装内核模块,如下所示。$ sudo make modules_install

配置和启动Open vSwitch

创建一个框架式OVS配置数据库。$ sudo mkdir /etc/openvswitch

$ sudo ovsdb-tool create /etc/openvswitch/conf.db ./vswit

chd/vswitch.ovsschema

启动OVS数据库服务器。$ sudo ovsdb-server--remote=punix:/usr/local/var/run/ope

nvswitch/db.sock - remote=db:Open_vSwitch,manager_options

--pidfile --detach

OVS配置数据库初始化。$ sudo ovs-vsctl --no-wait init

最后,启动OVS守护程序。$ sudo ovs-vswitchd --pidfile --detach

将KVM安装在Ubuntu或Debian上

使用apt-get命令,安装KVM和必要的用户空间工具。$ sudo apt-get install qemu-kvm libvirt-bin bridge-utils

virt-manager

将一个普通的非根用户(如alice)添加到libvirtd群组,那样该用户不需要根用户权限,就能启动虚拟机。$ sudo adduser alice libvirtd

退出,重新以该用户身份登录,让群组成员的变更生效。

运行下面这个命令。如果你看到空空如也的虚拟机列表,这意味着KVM已成功设置完毕。$ virsh -c qemu:///system list

Id    Name        State

为KVM配置Open vSwitch

现在是时候创建OVS网桥启动脚本了,那样启动或终止虚拟机时,OVS就能自动配置。

安装依赖项(用户模式Linux实用工具),这些依赖项将用于处理Linux网桥模式。$ sudo apt-get install uml-utilities

创建网桥启动脚本,如下所示。$ sudo vi /etc/openvswitch/ovs-ifup

#!/bin/sh

switch='br0'

/sbin/ifconfig $1 0.0.0.0 up

ovs-vsctl add-port ${switch} $1

$ sudo vi /etc/openvswitch/ovs-ifdown

#!/bin/sh

switch='br0'

/sbin/ifconfig $1 0.0.0.0 down

ovs-vsctl del-port ${switch} $1

$ sudo chmod +x /etc/openvswitch/ovs-if*

然后,创建一个默认的网桥br0,并添加一个物理网络接口,虚拟机将通过这个接口与外部网络进行联系。在该教程中,我假设这类网络接口是eth5。$ sudo ovs-vsctl add-br br0

$ sudo ovs-vsctl add-port br0 eth5

借助KVM启动虚拟机

现在你可以准备启动访客虚拟机了。

我假设,你已经准备好了一个访客虚拟机映像(比如ubuntu-client.img)。使用下面这个命令,启动访客虚拟机。$ sudo kvm -m 1024 -net nic,macaddr=11:11:11:EE:EE:EE -ne

t tap,script=/etc/openvswitch/ovs-ifup,downscript=/etc/op

envswitch/ovs-ifdown -vnc :1 -drive file=/home/dev/p_w_picpaths

/ubuntu-client.img,boot=on

这会创建并启动一个访客虚拟机;一旦访客虚拟机启动,其虚拟接口就自动添加到OVS网桥br0。

你可以使用ovs-vsctl这个命令,核实OVS的状态,如下所示。

这是已启动的虚拟机的远程桌面会话。

哪个Linux发行版运行kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch相关推荐

  1. 如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?

    在如今多租户模式的数据中心环境下,虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化,扩展到网络虚拟化.在这种环境下,基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上,串联起了不同虚拟机 ...

  2. ubuntu使用fail2ban_如何在Ubuntu 20.04上安装和配置Fail2ban

    暴露给Internet的任何服务都有遭受恶意软件攻击的风险. 例如,如果您在可公开访问的网络上运行服务,则攻击者可以使用暴力手段尝试登录您的帐户. Fail2ban是一种工具,可通过监视服务日志中的恶 ...

  3. ar.drone2.0_如何在Ubuntu 20.04上安装和配置Drone

    ar.drone2.0 介绍 (Introduction) Drone is an open-source container-native CI/CD platform written in Go. ...

  4. linux下怎么运行2048,如何在 Linux 中安装 2048 游戏

    流行的移动益智游戏 2048 也可以在 Ubuntu 和 Linux 发行版上玩.啊!你甚至可以在 Linux 终端上玩 2048.如果你的生产率因为这个让人上瘾的游戏下降,请不要怪我. 早在 201 ...

  5. 如何在Ubuntu 18.04上安装和配置NFS服务器

    网络文件系统(NFS)是一种分布式文件系统协议,使您可以通过网络共享远程目录.使用NFS,您可以在系统上挂载远程目录,并像对待本地文件一样使用远程计算机上的文件. NFS协议默认情况下未加密,并且与S ...

  6. 如何在Ubuntu 16.04上安装和配置GitLab

    https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-gitlab-on-ubuntu-16-04 ...

  7. mac如何启用cpu虚拟化_如何在 Ubuntu 18.04 上安装 KVM

    本文最先发布在: 如何在 Ubuntu 18.04 上安装 KVM​www.itcoder.tech KVM(基于内核的虚拟机)是一个内置于Linux内核的开源虚拟化技术.它允许你基于 Linux 或 ...

  8. linux xrdp 远程桌面,详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统.通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样. 这篇指南讲解如何在 Ub ...

  9. ubuntu19 安装git_如何在Ubuntu 20.04上安装Git

    Git是世界上最受欢迎的分布式版本控制系统,被许多开源和商业项目使用.它使您可以与其他开发人员在项目上进行协作,跟踪代码更改,还原到上一阶段,创建分支等. Git最初是由Linux内核的创建者Linu ...

最新文章

  1. perl 命令行备注
  2. css未知尺寸的图片的水平和垂直居中
  3. 上岸 | 震惊!211高校硕士毕业后,我在非洲当酋长!
  4. 迅游科技上演“宫斗” 董事长总裁互相罢免
  5. JBuilder配置JBoss
  6. 【ICLR2020】会议的16篇最佳深度学习论文
  7. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_01-vuejs研究-vuejs介绍
  8. 2017互联网寒冬程序员求职随感
  9. 影响中国信息化全面预算管理的十大案例
  10. 深入java虚拟机 视频_深入理解Java虚拟机全套完整视频教程
  11. 欧拉函数与积性函数(互质数)
  12. 第22章:针对Cloze Tests基于Attention机制的的MRC领域开山之作:Teaching Machines to Read and Comprehend架构设计及完整源码实现
  13. HTML5期末大作业:山河旅行社网站设计——山河旅行社网站(5页) HTML+CSS+JavaScript 学生DW网页 出行 旅途 游玩
  14. 信息安全论学习笔记(一):绪论
  15. truffle unbox react 初始化踩坑
  16. 如何在远程计算机上播放音乐,如何用iPhone远程遥控电脑播放音乐教程
  17. Blast+安装使用的简单流程
  18. ASP.NET Jumpstart:Media Share Library Starter Kit 简介
  19. 一句话解决“ Unable to find a specification for xxxxxx” 问题
  20. 2016年3月26日作业 质量管理和人力资源管理

热门文章

  1. windows安装zabbix客户端
  2. python拦截广告弹窗_你会如何使用Python进行广告拦截?
  3. 多元相关性分析_电子健康素养与中青年脑卒中患者健康行为的相关性分析
  4. 图像处理自相关函数c语言,图像处理实验书.docx
  5. java 共享session_java session共享
  6. Spring AOP功能的实现
  7. Shell脚本实现每个工作日定时执行指定程序
  8. reveal end of document
  9. docker dead but pid file exists 问题
  10. eclipse工具栏sdk和avd图标