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

我在本教程上将演示如何在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/images

/ubuntu-client.img,boot=on

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

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

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

如何在linux环境下安装kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch?相关推荐

  1. 如何在 Debian、Ubuntu 以及其它 Linux 发行版上安装 ONLYOFFICE 桌面编辑器 v7.2 版本

    如何在 Debian.Ubuntu 以及其它 Linux 发行版上安装 ONLYOFFICE 桌面编辑器 v7.2 版本 ONLYOFFICE Docs 在线编辑器[1]的本地桌面电脑客户端软件版本不 ...

  2. Linux发行版上安装Netbeans IDE的各种方法

    在本文中,您将学习在Ubuntu和其他Linux发行版上安装Netbeans IDE的各种方法. NetBeans是一个开源的集成开发环境,具有良好的跨平台支持.该工具已被Java和C/C ++开发社 ...

  3. 哪个Linux发行版运行kvm,如何在Linux发行版上安装和配置KVM和Open vSwitch

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

  4. linux环境下c语言的学习--linux下的基本操作

    linux环境下c语言学习 星期一 _代表空格 1.在linux下打开一个终端:ctrl+alt+t       多次使用可打开多个终端. 2.创建一个文件夹:mkdir_ abc           ...

  5. linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的,因此在大多数Linux计算机中都默认安装了Python. 1. 检查Python版本 在系统中运行应用程序Terminal(如果是Ubuntu,可按Ctrl+Alt+T ...

  6. linux环境下blastn命令怎么用,Linux环境下通配符及特殊符号使用详解

    Linux环境下通配符及特殊符号使用详解 我们现在来介绍通配符的使用,通过通配符的过滤,快速找到想找的文件和目录,比如/etc/目录下有上千个目录和文件,不使用通配符想找一个目录和文件是非常麻烦的和花 ...

  7. linux环境下如何调鼠标灵敏度,linux怎么设置鼠标灵敏度? linux设置鼠标灵敏度的方法...

    linux下鼠标移动速度太慢了,想要重新设置一下鼠标的灵敏度,该怎么设置呢?下面我们就来看看详细的教程. 方法一.终端下设置(难) 1.在终端界面,用户可以通过xinput来设置鼠标速度.但是deep ...

  8. linux环境下c语言调用lapack,linux系统下C语言调用lapack ,blas库

    在利用C语言编程,经常调用其他的软件包,其中lapack,blas库是最常用的两个库,这里讲下在linux系统下,C语言编程如何调用这两个库: 1.首先讲下blas库的调用,这里以两个向量内积函数为例 ...

  9. linux环境下blastn命令怎么用,Linux下BLAST的安装与使用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 原本计划对几个亚洲棉基因进行blast比对寻找在陆地棉中的同源基因,但是服务器抽风了,导致计划被打乱,不过刚好也乘此机会 ...

最新文章

  1. 算力超越 iPhone,芯片堪比Mac,网友:“买来能干啥?”
  2. optee运行时来了一个REE(linux)中断--代码导读
  3. CodeForces 416B
  4. Oracle新建表时,复制另一张旧表的结构和数据
  5. 课程设计---约瑟夫环
  6. 搭建远程jupyter服务器并从本地连接,有浏览器的地方就有Python!
  7. (新手)使用pandas操作EXCEL
  8. 免安装mysql环境配置、完全卸载和无法启动问题详解
  9. Unity3D button控件
  10. 【工具】telnet用法
  11. oracle数据库统计信息的重要性
  12. 干货——图像分类(上)
  13. Notes Twenty-third days-渗透攻击-红队-红队自研
  14. 千兆级LTE奏响序曲 5G可款款来矣
  15. iOS 给NSString文字中间或底部添加横线
  16. quick-cocos2d-x 飞机大战(打飞机)小demo教程------敌人类
  17. Abbexa 驴抗山羊 IgG (HL) 抗体
  18. 无U盘,无手机遥控,怎么帮助创维电视安装电视直播软件
  19. [英语语法]句法之状语从句
  20. matlab里面的cov函数,如何强制Matlab /八度cov函数使用可选参数

热门文章

  1. Microsoft .NET 框架资源基础 ---摘自:msdn
  2. [转]JavaScript面向对象的特性
  3. elupload获取文件名与路径_Uipath获取文件名,路径,扩展名等操作
  4. python中os操作文件及文件路径
  5. 用gdb调试nasm汇编程序
  6. arduinoesp8266定时器_ESP8266深度睡眠与Arduino IDE(NodeMCU)
  7. 正确地kill java历程
  8. 自考18年4月计算机应用基础,2019年自学考试计算机应用基础试题(18)
  9. oracle 10g r2 for solaris x86,Oracle10g for Solaris9(x86)安装指南
  10. 我是如何解决gitlab 命令行上传需要输密码