ubuntu安装openvswitch(ubuntu 安卓模拟器)
Ubuntu 23.10通过APT安装Open vSwitch
欢迎各位,新年好!
在前文讨论过OpenStack的架构时,提及了Open vSwitch作为构建虚拟网络环境的重要组件。然而,近期在CentOS上部署Open vSwitch遇到挑战,因此本文聚焦于如何在Ubuntu 23.10上安装和配置Open vSwitch,为搭建虚拟网络环境提供指导。
首先,进行系统更新确保软件包最新。
接着,查看与Open vSwitch相关的软件包,关注到包含IPsec、PKI、VTEP、DPDK等功能的版本为3.2.0,与最新版本3.2.1稍有差异,但不影响使用。
关键安装包括openvswitch-switch,作为Open vSwitch的核心,提供虚拟交换机功能;openvswitch-common,作为通用组件及依赖库,支持其他Open vSwitch软件包;openvswitch-doc,提供官方文档,包括用户手册和开发者指南。
安装后,确认Open vSwitch已启动,并设置为开机自启动。
检查当前安装的Open vSwitch版本,版本号为3.2.0,内建数据库schema版本为8.4.0,通过ovs-vsctl工具进行配置。
创建名为tietou的Open vSwitch网桥,操作后确认新网桥成功创建。
使用ovs-vsctl工具查看详细信息,确认OVS系统ID、网桥名称、端口等信息,展示Open vSwitch系统运行状态与配置。
至此,Ubuntu 23.10环境下Open vSwitch的安装与基本配置已完成,为构建虚拟化网络环境提供了基础。
如何在Linux发行版上安装和配置KVM和Open vSwitch
在如今多租户模式的数据中心环境下,虚拟化技术正从传统的基于虚拟机管理程序的服务器虚拟化,扩展到网络虚拟化。在这种环境下,基于软件的虚拟交换机通常连同虚拟机管理程序一起部署在服务器上,串联起了不同虚拟机之间传送的流量。
我在本教程上将演示如何在Ubuntu或Debian上安装和配置KVM和Open vSwitch(OVS)。KVM和Open vSwitch分别是用于如今的数据中心中的最流行的开源虚拟机管理程序和虚拟交换机。
将Open vSwitch安装在Ubuntu或Debian上
虽然OVS以程序包的方式出现在Ubuntu或Debian上,但我在此还是通过源代码来构建OVS,这将拥有最新的功能特性和修正版。
首先,安装用于构建OVS的依赖项。
$sudoapt-getinstallbuild-essentiallibssl-devlinux-headers-$(uname-r)
通过源代码来构建OVS,如下所示。下列步骤将构建OVS内核模块以及OVS用户空间工具。
$wget
$tarxvfvzopenvswitch-1.9.3.tar.gz
$cdopenvswitch-1.9.3
$./configure--with-linux=/lib/modules/`uname-r`/build
$make
接下来,继续在/usr/local/share/下安装OVS用户空间组件:
$sudomakeinstall
下一步是,测试OVS内核模块(安装该模块之前)。为此,先在内核中装入内核模块。
$sudoinsmod./datapath/linux/openvswitch.ko
证实OVS内核模块已成功装入。
$lsmod|grepopenvswitch
openvswitch 97934 0
一旦你证实openvswitch.ko已成功装入到内核中,继续安装内核模块,如下所示。
$sudomakemodules_install
配置和启动Open vSwitch
创建一个框架式OVS配置数据库。
$sudomkdir/etc/openvswitch
$sudoovsdb-toolcreate/etc/openvswitch/conf.db./vswit
chd/vswitch.ovsschema
启动OVS数据库服务器。
$sudoovsdb-server--remote=punix:/usr/local/var/run/ope
nvswitch/db.sock-remote=db:Open_vSwitch,manager_options
--pidfile--detach
OVS配置数据库初始化。
$sudoovs-vsctl--no-waitinit
最后,启动OVS守护程序。
$sudoovs-vswitchd--pidfile--detach
将KVM安装在Ubuntu或Debian上
使用apt-get命令,安装KVM和必要的用户空间工具。
$sudoapt-getinstallqemu-kvmlibvirt-binbridge-utils
virt-manager
将一个普通的非根用户(如alice)添加到libvirtd群组,那样该用户不需要根用户权限,就能启动虚拟机。
$sudoadduseralicelibvirtd
退出,重新以该用户身份登录,让群组成员的变更生效。
运行下面这个命令。如果你看到空空如也的虚拟机列表,这意味着KVM已成功设置完毕。
$virsh-cqemu:///systemlist
Id Name State
为KVM配置Open vSwitch
现在是时候创建OVS网桥启动脚本了,那样启动或终止虚拟机时,OVS就能自动配置。
安装依赖项(用户模式Linux实用工具),这些依赖项将用于处理Linux网桥模式。
$sudoapt-getinstalluml-utilities
创建网桥启动脚本,如下所示。
$sudovi/etc/openvswitch/ovs-ifup
#!/bin/sh
switch='br0'
/sbin/ifconfig$10.0.0.0up
ovs-vsctladd-port${switch}$1
$sudovi/etc/openvswitch/ovs-ifdown
#!/bin/sh
switch='br0'
/sbin/ifconfig$10.0.0.0down
ovs-vsctldel-port${switch}$1
$sudochmod+x/etc/openvswitch/ovs-if*
然后,创建一个默认的网桥br0,并添加一个物理网络接口,虚拟机将通过这个接口与外部网络进行联系。在该教程中,我假设这类网络接口是eth5。
$sudoovs-vsctladd-brbr0
$sudoovs-vsctladd-portbr0eth5
借助KVM启动虚拟机
现在你可以准备启动访客虚拟机了。
我假设,你已经准备好了一个访客虚拟机映像(比如ubuntu-client.img)。使用下面这个命令,启动访客虚拟机。
$sudokvm-m1024-netnic,macaddr=11:11:11:EE:EE:EE-ne
ttap,script=/etc/openvswitch/ovs-ifup,downscript=/etc/op
envswitch/ovs-ifdown-vnc:1-drivefile=/home/dev/images
/ubuntu-client.img,boot=on
这会创建并启动一个访客虚拟机;一旦访客虚拟机启动,其虚拟接口就自动添加到OVS网桥br0。
你可以使用ovs-vsctl这个命令,核实OVS的状态,如下所示。
这是已启动的虚拟机的远程桌面会话。
如何安装,配置和使用Neutron的各个组件
设置
实际安装指令在发行版与 OpenStack版本之间有很大区别。一般而言,它们都包含在发行版中。但是,必须完成同样的基本任务。本节介绍了涉及到的一些信息。
系统要求
OpenStack依赖于一种 64位 x86架构;另外,它是为商用硬件而设计的,所以具有极低的系统要求。它可以在配有包含 8GB RAM的单个系统上运行整套 OpenStack项目,但对于任何重大的工作,有必要拥有一个包含至少 8GB RAM、两个 2TB磁盘和两个 Gbit网络适配器的专用计算节点。常常会使用一个控制器主机来运行集中化的 OpenStack Compute组件。在这种情况下,OpenStack Networking服务器可在同一个主机上运行,但同样可以将它部署在一个独立的服务器上。
安装
安装指令取决于发行版本,更具体来讲,取决于您选择的包管理实用程序。在许多情况下,必须声明存储库。所以,举例而言,如果您使用的是 Zypper,那么您要用 zypper ar向 libzypp公开:
# zypper ar-f
出于演示之目的,以下是 Ubuntu、Red Hat(Red Had Enterprise Linux、CentOS、Fedora)和 openSUSE的主要命令:
Ubuntu:安装 neutron-server和访问该 API的客户端:
$sudo apt-get install neutron-server python-neutronclient
安装插件:
$sudo apt-get install neutron-plugin-<plugin-name>
例如:
$sudo apt-get install neutron-plugin-openvswitch-agent
Red Hat:类似于 Ubuntu,您必须同时安装 Neutron服务器和插件—例如:
$sudo yum install openstack-neutron
$sudo yum install openstack-neutron-openvswitch
openSUSE:使用以下命令:
$sudo zypper install openstack-neutron
$sudo zypper install openstack-neutron-openvswitch-agent
配置
大部分插件都需要一个数据库。OpenStack Networking的 Fedora包包含服务器设置实用程序脚本,负责数据库的完整安装和配置:
$sudo neutron-server-setup--plugin openvswitch
但也可以手动配置这些数据库。例如,在 Ubuntu上,您可使用以下命令安装数据库:
$sudo apt-get install mysql-server python-mysqldb python-sqlalchemy
如果已经为其他 OpenStack服务安装了一个数据库,那么您只需要创建一个 Neutron数据库:
$mysql-u<user>-p<pass>-e"create database neutron"
必须在插件的配置文件中指定该数据库。为此,在/etc/neutron/plugins/plugin-name中找到插件配置文件(例如/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini),然后设置连接字符串:
sql_connection= mysql://<user>:<password>@localhost/neutron?charset=utf8
使用场景
一个典型的 OpenStack Networking设置可能很复杂,包含多达 4个不同的物理网络。使用一个管理网络在 OpenStack组件之间执行内部通信。一个数据网络处理实例之间的数据通信。API网络向租户公开了所有 OpenStack API。此外,通常需要一个外部网络来授予访问 VM的 Internet的权限。
在这些物理网络之上,可通过许多方式配置租户需要的虚拟网络。最简单的场景是单个平面网络。也可以有多个平面网络、每个租户的私有网络,并提供商和每租户路由器的组合来管理网络之间的流量。
为了了解如何在实际中使用 OpenStack Networking,我们来看一个简单的场景,其中一个租户创建了一个网络,定义了一个路由器来将从私有网络转发流量,分配该网络的一个子网,并启动一个要与该网络有关联的实例。
以具有 Member角色的用户身份登录到 OpenStack Dashboard。在导航窗格中的 Manage Network下方,单击 Networks,然后单击 Create Network。