虽然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
openvswitch97934 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
IdNameState
为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。
在Linux中用命令行工具管理KVM虚拟环境的步骤:第一步: 配置存储池Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。本节中,要用它给KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。# man virsh1、用virsh带pool-define-as的命令来定义新的存储池,需要指定名字、类型和类型参数。本例中,将名字取为Spool1,类型为目录。默认情况下可以提供五个参数给该类型:source-hostsource-pathsource-devsource-nametarget对于目录类型,需要用最后一个参数“target”来指定存储池的路径,其它参数项可以用“-”来填充。# virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/" ...在Linux中用命令行工具管理KVM虚拟环境的步骤:第一步: 配置存储池Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。本节中,要用它给KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。# man virsh1、用virsh带pool-define-as的命令来定义新的存储池,需要指定名字、类型和类型参数。本例中,将名字取为Spool1,类型为目录。默认情况下可以提供五个参数给该类型:source-hostsource-pathsource-devsource-nametarget对于目录类型,需要用最后一个参数“target”来指定存储池的路径,其它参数项可以用“-”来填充。# virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/"2、 查看环境中所有的存储池,用以下命令。# virsh pool-list --all3、现在来构造存储池了,用以下命令来构造刚才定义的存储池。# virsh pool-build Spool14、用带pool-start参数的virsh命令来激活并启动刚才创建并构造完成的存储池。# virsh pool-start Spool15、查看环境中存储池的状态,用以下命令。# virsh pool-list --all会发现Spool1的状态变成了已激活。6、对Spool1进行配置,让它每次都能被libvirtd服务自启动。# virsh pool-autostart Spool17、最后来看看新的存储池的信息吧。# virsh pool-info Spool1恭喜,Spool1已经准备好待命,接下来试着创建存储卷来使用它。第二步: 配置存储卷/磁盘映像现在轮到磁盘映像了,用qemu-img命令在Spool1中创建一个新磁盘映像。获取更多细节信息,可以查看man手册。# man qemu-img8、应该在qemu-img命令之后指定“create, check,…”等等 *** 作、磁盘映像格式、想要创建的磁盘映像的路径和大小。# qemu-img create -f raw /mnt/personal-data/SPool1/SVol1.img 10G9、通过使用带info的qemu-img命令,你可以获取到你的新磁盘映像的一些信息。查看存储卷信息警告: 不要用qemu-img命令来修改被运行中的虚拟机或任何其它进程所正在使用的映像,那样映像会被破坏。现在是时候来创建虚拟机了。第三步: 创建虚拟机10、现在到最后一个环节了,在最后一步中,将用virt-install命令来创建虚拟机。virt-install是一个用来创建新的KVM虚拟机命令行工具,它使用“libvirt”管理程序库。想获取更多细节,同样可以查看man手册。# man virt-install要创建新的KVM虚拟机,需要用到带以下所有信息的命令。Name: 虚拟机的名字。Disk Location: 磁盘映像的位置。Graphics : 怎样连接VM,通常是SPICE。vcpu : 虚拟CPU的数量。ram : 以兆字节计算的已分配内存大小。Location : 指定安装源路径。Network : 指定虚拟网络,通常是virbr0网桥。virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-dvd.iso --network bridge=virbr0创建新的虚拟机11、会看到d出一个virt-vierwer窗口,像是在通过它在与虚拟机通信。收起欢迎分享,转载请注明来源:内存溢出
评论列表(0条)