本次集群安装准备了四台虚拟机:
注意:在将要部署为集群的VM1、VM2、VM3上使用了相同的组名oxp,相同的用户名oxp(组名和用户名可不同),这样方便进行集群部署,减少配置和打包操作!
系统要求:
主要内容: 在VM4上安装ONOS,并向VM1-VM3部署ONOS,形成VM1-VM2-VM3的ONOS集群。并使用Mininet构建的虚拟网络与集群连接,进行相关实验。
参照文章《ubuntu14.04下源码安装ONOS1.3.0》进行。
需要在VM1-VM3上设置sudo,在VM1-VM4上生成SSH密钥,分别执行下面步骤:
首先,在VM1-VM3上执行:
$ sudo visudo
编辑配置,在文件末尾添加行:
user_name ALL=(ALL) NOPASSWD:ALL
在user_name为用户名,本实验中为oxp。Ctrl+O,Ctrl+X保存退出。
其次,在VM1-VM4上进行:
$ ssh-keygen -t rsa
$ cd cd ~/onos/tools/test/cells
$ vim triple.test
triple.test是本次实验新建的配置文件,编辑如下
#ONOS Controller VM instances 1,2,3 and a Mininet VM
export OC1="192.168.0.71"
export OC2="192.168.0.72"
export OC3="192.168.0.73"
export OCN="192.168.0.74" # Mininet VM
# for node clustering
export ONOS_NIC=”192.168.0.*”
#ONOS APPS to load
export ONOS_APPS="drivers,openflow,fwd,proxyarp,mobility"
# ONOS features to load
export ONOS_FEATURES="webconsole,onos-api,onos-core,onos-cli,onos-openflow,onos-app-fwd,onos-app-mobility,onos-app-tvue"
#VM1-VM3 USER && GROUP
export ONOS_USER="oxp"
export ONOS_GROUP="oxp"
$ cell triple.test #应用triple.test中的配置参数,这一步一定要进行!!!
注意:cell文件中最后两行的ONOS_USER和ONOS_GROUP的值分别填写VM1-3的用户名和组名,这里如果与VM1-3的用户名和组名不对应将无法部署!
这里以建立VM4到VM1的SSH的免密登录为例:
$ onos-push-keys $OC1 #OC1的值如triple.test文件中所设定
oxp@192.168.0.71's password: #这里会要求输入密码,即为SSH登录192.168.0.71的密码
按照上面操作依次建立VM4到VM2、VM3的SSH免密登录。
这一步将VM4中安装好的ONOS按照cell的配置打包,打包后的文件可以用来部署到其他机器。
$ onos-package
打包结果如下:
-rw-rw-r-- 1 onos onos 96M Nov 5 14:52 /tmp/onos-1.3.0.onos.tar.gz
这一步将刚才在VM4上打包好的ONOS部署到VM1-VM3三台虚拟机上 以部署到VM1为例,第一次部署时可能会提示输入密码,此时输入SSH到VM1的密码即可:
$ onos-install -f $OC1 #部署到VM1,-f表示强制安装;如果VM1上已经有ONOS在,可以加上此参数
返回结果:
onos start/running, process 23232 表示部署成功
然后,按照上面操作,依次部署到VM2、VM3上。 在以后的部署过程中,可以使用下面的命令简化操作,同时部署三台机器,但第一次部署时应分别执行onos-install:
$ onos-group install -f
返回结果:
onos start/running, process 14508
onos start/running, process 19601
onos start/running, process 25194
说明:ONOS被部署到虚拟机上后,所在的目录为:/opt/onos
可以通过本地和远程两种方式运行集群中的ONOS实例, 方法一,本地运行: 登录onos所在的VM,以VM1为例,在VM1上执行操作:
VM1:$ cd /opt/onos/ #进入ONOS目录
VM1:$ cd /apache-karaf-3.0.3/bin #进入Karaf执行目录
VM1:$ ./karaf clean #运行本地ONOS实例
方法二,远程运行: 在VM4上可以远程开启刚才部署的机器上的ONOS实例,以VM2为例,在VM4上执行操作:
VM4:$ onos $OC2 #运行VM2上的ONOS实例
1.使用Mininet连接到一台ONOS实例
2.登陆web查看
c.进行负载均衡 在mininet中设置一些switch可连接的controller
在ONOS中进行负载均衡