这篇文章简要介绍了 Ciab2.0 的安装. 包括硬件, 软件环境的选择, Ciab2.0的实际部署架构, 安装过程等. 下面就先对 Ciab2.0 部署环境做简要介绍.

1. 概述

这一部分来看看 Ciab2.0 部署环境以及部署的所需的软硬件环境.

1.1 整体部署情况

在正式介绍安装之前先说一下, cord-in-a-box2.0(Ciab2.0)的整体部署情况,我们服务器上部署的ciab2.0的各个虚拟机的嵌套情况如下:

上图说明:
prod虚拟机: CORD 官方文档叫这个虚拟机为 目标服务器(target server). 从上图中,我们可以看到CORD的主要组件ONOS, XOS, Openstack 全在prod虚拟机中,也就是 prod 其实几乎是 Ciab2.0 的实体,除了 Openstack 的计算节点

corddev虚拟机: CORD官方称这个主机为构建主机(build host),因为脚本安装过程的很多命令都是从这个主机进行的,该虚拟机为 prod 中各个组件建立提供所需要的 Docker镜像.

上述各组件的关系如下,详细见cord-in-the-cloud

1.2 服务器硬件配置要求

官方推荐配置:

  • 64位 服务器
  • 32GB+RAM
  • 8+ CPU cores
  • 200GB+ 硬盘

推荐配置(原因见下面 Exsi部分):

  • 64位 服务器
  • 64GB+RAM
  • 12+ CPU cores
  • 2TB+ 硬盘

2. 安装Ciab2.0详细步骤

安装步骤分为以下几个步骤:

  1. 安装 Vmware Exsi 6.0服务器端
  2. 使用 Exsi 客户端 vsphere 安装ubutu 14.04 server版本, 并使其支持嵌套虚拟化
  3. 下载ciab2.0安装脚本, 开始安装ciab2.0

2.1 安装Exsi6.0 (可选)

2.1.1 Exsi server端安装简介

基于以下原因选择安装Exsi6.0:

  1. 由于Ciab还处理开发阶段, 系统并不是很稳定,有时系统会崩溃
  2. Ciab安装过程耗时很长,崩溃再安装困难
  3. EXSI 6.0 一键操作就可以拍下虚拟机的快照,利于系统再恢复与开发

上面的推荐配置是根据我们这边服务器的情况推荐的, 因为安装了Exsi6.0,对于内存的要求可能就提高了,就我们这边服务器来说,推荐配置的性能刚刚好,不会很卡. 由于需要拍快照,ciab安装之后 虚拟机划分的虚拟磁盘大小大约为400GB, 为了能存储几个版本的快照,所以需要较大的硬盘空间


当然也可以不安装exsi, 直接在服务器上直接进行后续操作.


安装Exsi过程说明见: Exsi6.0安装手册

2.1.2 配置Exsi6.0 支持嵌套虚拟化

1. 服务器安装Exsi Server端之后, 在个人电脑上安装 客户端 Vsphere 5.5

2. 通过 vsphere 登陆 Exsi server端, 安装 Ubuntu14.04 server版本,为了便于描述, 我们称这个虚拟机为宿主机cord [安装教程]
(http://jingyan.baidu.com/article/bea41d439726c1b4c51be629.html)

 CPU cores全部分配给该虚拟机
 内存全部分配给该虚拟机
 磁盘大小分配450GB

3. 虚拟机cord安装成功之后, 关闭cord虚拟机

4. 使用 vSphere Client 启用 ESXi Shell 访问

使用 vSphere Client 登录到 Exsi, 在清单面板中选择cord虚拟机,单击配置选项卡,再单击安全配置文件。
服务部分中,单击属性。从下面的列表中选择 ESXi Shell:选择启动以启用此服务。选择与主机一起启动与停止选项, 点击启动,启动该服务


5. 配置Exsi6.0支持虚拟化
现在在物理服务器上操作, 按下Alt F2,进入Exsi shell; 输入命令:

find / -name *.vmx

该命令会返回一个文件名,vim编辑该文件,在最后一行添加 vhv.enable = "TRUE"

6. 回到vsphere client端开启cord虚拟机

$ kvm-ok  #查看是否支持嵌套虚拟化

输出
INFO: /dev/kvm exists
KVM acceleration can be used

成功

2.1.3 在cord虚拟机上搭建VPN

原因: 由于Ciab中需要安装各种软件的特定版本, 所以他会在安装过程是使用各种国外的库;我们用的ubuntu14.04现在在添加国外库之后, apt-get update会出现错误导致安装错误, 参照ubuntu14.04 server使用pptp搭建vpn

如果vpn的服务器是站点在国内的话, 建议ubuntu把源换成清华的源.

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiversedeb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiversedeb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main restricted universe multiverse

在上述一切步骤完成之后,进入正题

2.2 Ciab2.0安装

Ciab2.0安装采用的是一键脚本安装, 看起来很简单, 但是刚接触安装过程的时候, 报错了,也很难找到有效的解决方法
为了对于Ciab2.0有更好的了解,下面概述下安装的流程;

2.2.1 CORD软件结构

先来看看下图, 这张图显示了CORD的软件架构, XOS处于最高层, 通过调用OpenStack, ONOS的API实现其将SDN, NFV,Cloud融合的能力, 其中 ONOS, XOS的模块都封装Docker容器中, 这也决定了他们的安装的相对顺序.

2.2.2 Ciab2.0安装过程概括

阶段 耗时 虚拟机内部活动
阶段① 20分钟+ 配置宿主机cord,并下载 Ciab2.0安装过程中所需的配置与库(opencord文件夹中)
阶段② 20分钟+ 通过vagrant建立并配置虚拟机corddev, prod
阶段③ 2小时+ corddev虚拟机下载供prod使用的docker 镜像
阶段④ 30分钟+ corddev下载镜像, 并配置 prod虚拟机,为安装openstack,onos,xos搭建好环境
阶段⑤ 2小时+ 安装 openStack
阶段⑥ 10分钟+ 安装ONOS
阶段⑦ 30分钟+ 安装XOS
阶段⑧ 1小时+ 安装openstack计算节点
阶段⑨ 30分钟+ 运行官方测试, 测试各个组件正常工作

上述时间建立在网速大约是100KB环境下

2.2.3 Ciab2.0 正式安装

下载并运行Ciab2.0的安装脚本

官方安装教程

下载脚本

curl -o ~/cord-in-a-box.sh https://raw.githubusercontent.com/opencord/cord/cord-2.0/scripts/cord-in-a-box.sh

查看脚本选项

bash ~/cord-in-a-box.sh -h

我们选择安装两个计算节点(Ciab2.0最多支持2个),并运行测试案例

-c 选项清除了之前构建的环境, 谨慎使用, 具体如何清除之前构建环境? 看了脚本中的 cleanup 函数就清除了, 请务必看一下。

运行脚本

bash ~/cord-in-a-box.sh -t  -n 2| tee ~/install.out

由于国内一些问题我们需要做更多的工作, 见下

2.2.4 安装过程详解

2.2.4.1 安装 juju-core
  1. Ciab2.0中 Openstack 是使用juju部署, 由于一些原因脚本中安装的版本会导致阶段⑤ juju bootstrap' 卡住很长时间,然后报错\(ERROR upgrade in progress - Juju functionality is limited\),所以我们可以在corddev下载镜像阶段③就把对应的juju版本安装好 (不知道这个问题改进没有:()
ssh prod
sudo apt-add-repository ppa:juju/1.25
sudo apt-get update
sudo apt-cache show juju-core |grep Version
# 下载最新版本,可能会有变化
sudo apt-get install juju-core=1.25.12-0ubuntu1~14.04.2~juju1
2.2.4.2 安装步骤分解

我们先来看下脚本中的安装过程; 我把脚本中的主体部分贴出来.具体见脚本

bootstrap
vagrant_vms_upinstall_head_node
set_up_maas_userif [[ $NUM_COMPUTE_NODES -gt 2 ]]
thenecho "currently max only two compute nodes can be supported..."NUM_COMPUTE_NODES=2
fifor i in `seq 1 $NUM_COMPUTE_NODES`;
doecho adding the compute node: compute-node-$iadd_compute_node compute_node-$i build_compute_node-$i
done
exit 0

安装过程2.2.2

  • 这里把安装过程分为9个阶段, 并且后一个过程依赖于前一个过程
  • 一般来说, 前一个阶段安装成功之后,后面出错了,再次安装时就不需要再次执行出错前的部分了(在脚本中注释了对应函数),所以有必要了解脚本语句对应的安装阶段;
    • 阶段① 对应于脚本中 bootstrap函数
    • 阶段② 对应于脚本中 vagrant_vms_up函数
  • 现在详细说明install_head_node
function install_head_node() {cd $CORDDIR/build# SSH config saved earlier allows us to connect to VM without running 'vagrant'ssh corddev "cd /cord/build; ./gradlew fetch"ssh corddev "cd /cord/build; ./gradlew buildImages"ssh corddev "cd /cord/build; ping -c 3 prod; ./gradlew -PdeployConfig=$VMDIR/$CONFIG -PtargetReg=10.100.198.201:5000 publish"ssh corddev "cd /cord/build; ./gradlew -PdeployConfig=$VMDIR/$CONFIG deploy"
}

下面命令对应于阶段③, 虚拟机corddev下载Docker镜像

ssh corddev "cd /cord/build; ./gradlew fetch"
ssh corddev "cd /cord/build; ./gradlew buildImages"

\(prod\) 从 \(corddev\) 下载一部分Docker镜像, 是阶段④的一部份,这一步一般来说,都会一步成功

ssh corddev "cd /cord/build; ping -c 3 prod; ./gradlew -PdeployConfig=$VMDIR/$CONFIG -PtargetReg=10.100.198.201:5000 publish"

阶段④ ~ 阶段⑦, 都在下面命令中执行

 ssh corddev "cd /cord/build; ./gradlew -PdeployConfig=$VMDIR/$CONFIG deploy"

上述命令可以分解为下面命令:

# 登陆构建主机 corddev 并进入 /cord/build 文件夹
ssh corddev "cd /cord/build"# 依次执行下面命令, 用下面命令
./gradlew –PdeployConfig=config/cord_in_a_box.yml deployBase
./gradlew –PdeployConfig=config/cord_in_a_box.yml deployPlatform
./gradlew –PdeployConfig=config/cord_in_a_box.yml deployOpenstack
./gradlew –PdeployConfig=config/cord_in_a_box.yml deployONOS
./gradlew –PdeployConfig=config/cord_in_a_box.yml deployXOS
./gradlew –PdeployConfig=config/cord_in_a_box.yml setupAutomation 

更进一步了解安装

如果你不满足只用脚本安装或者想更进一步了解安装过程,这一部分就是为你写的. 不过在这里我不会详细说明, 算是抛砖吧.

在运行 cord-in-a-box.sh 脚本时, 脚本做的第一件事就是将构建 Ciab2.0 所需的配置,部署等文件下载到本机命名为 \(opencord\) 的目录下, 目录结构如下:

opencord |--- build |--- onos-apps |--- orchestration 

其中 \(onos-apps\), \(orchestration\) 文件夹包含的是 Ciab2.0 组件的库文件, 我们这里不予考虑. 与 Ciab2.0 构建过程相关的全在 \(build\) 文件夹中. 其中有两个重要的子目录是 \(maas\), \(platform-install\). 阶段⑤之前的构建脚本基本都在\(maas\)文件夹下, 之后的基本都在\(platform-install\)中. 当然最清楚的理解构建过程的方式就是看构建脚本了, 这里采用的是 Gradle项目自动化构建工具 和 Ansible自动化运维工具结合构建起整个 Ciab2.0. 所以简单学习下这两个构建工具将会事半功倍.

关于Ciab2.0的安装就介绍到这里了, 当然安装过程中踩到了各种坑, 其中有一些在CORD的google论坛找到了答案. 由于个人知识水平有限, 难免有纰漏和表述不当的地方, 还望谅解.

转载于:https://www.cnblogs.com/nowgood/p/cordinabox.html

cord-in-a-box 2.0 安装指南相关推荐

  1. Wss 3.0安装指南(一)

    Wss 3.0安装指南(一)                                                                                       ...

  2. 利用python安装opencv_科学网—Anaconda Python PyCharm PyQT5 OpenCV PyTorch TF2.0 安装指南 - 张重生的博文...

    Anaconda Python PyCharm PyQT5 OpenCV PyTorch TF2.0 安装指南与资料汇总 (用Anaconda配置Python集成开发环境,含Python3, PyQT ...

  3. Fly.Box 2.0.2 企业网盘,企业云盘解决方案

    Fly.Box 企业网盘 2.0.2 正式发布 欢迎体验 http://www.flyui.net/download.php 多层组织机构,行业云存储解决方案 Fly.Box企业网盘不仅可以作为一个单 ...

  4. 一键开播 专业直播导播一体机——云犀BOX 4.0新品上市首发

    8月25日,云犀BOX 4.0新品上市首发,作为云犀BOX系列的又一次升级,该产品在音视频同步环出.多平台同步直播.交互体验.产品芯片等诸多功能及硬件层面进行了优化和革新. ​ 全新进化的云犀BOX ...

  5. Topomel Box 2.0 已停止服务

    亲爱的用户,Topomel Box 2.0 已于 2023-03-01 停止服务.服务停止,但真心不变.希望其继任者 3.0 版本能够给您带来全新的使用感受. 如有任何问题,请联系 support@t ...

  6. 武汉秒开网络科技有限公司秒开缓存系统V4.0安装指南(一)

    MQCache 秒开缓存系统V4.0安装指南 更新时间: 2016/04/21 by <devin@MoreQuick.Net> Copyrigt © MoreQuick.Net 2014 ...

  7. conda pip安装在哪里_TensorFlow 2.0 安装指南

    文 /  李锡涵,Google Developers Expert 本文节选自<简单粗暴 TensorFlow 2.0> TensorFlow 2.0 beta1 已经发布.本文详细介绍在 ...

  8. GATE V9.0安装指南

    原文链接: https://opengate.readthedocs.io/en/latest/installation.html 2.1. 关于GATE的一些信息 2.1.1. GATE邮件列表 鼓 ...

  9. Virtual Box+Centos7.0+Kaldi安装

    Kaldi Kaldi是一个强大的语音识别工具库(ASR),主要由Daniel Povey开发和维护.目前支持GMM-HMM.SGMM-HMM.DNN-HMM等多种语音识别的模型的训练和预测.其中DN ...

最新文章

  1. 买个云服务器有啥用_如何用阿里云轻量应用服务器配置一个WordPress网站?
  2. 使用contour自定义等高线值
  3. centos7 ambari2.6.1.5+hdp2.6.4.0 大数据集群安装部署
  4. JAVA笔记(运算符)
  5. 桌面图标及文件夹图标选中后,图标一圈出现白色虚线解决方法
  6. Remoting 配置格式说明(转)
  7. container-with-most-water(最大蓄水问题)
  8. OpenCV学习笔记:反色显示图片、鼠标事件、键盘事件和窗口滑动条操作
  9. 命名时取代基优先顺序_有机化学专题讲解——有机化合物的命名
  10. CVPR(IEEE Conference on Computer Vision and Pattern Recognition)
  11. ORB-SLAM2 地图加载2
  12. Python脚本访问子目录
  13. 小伯利恒之歌(音乐)-Oh Little Town of Bethlehem(Virtual Tour)一次真实的旅行,看看耶稣的家乡...
  14. V-Rep机器人仿真软件模型导入部分
  15. java坦克大战地图_『坦克大战的基本地图系统(一)』Clickteam Fusion系列教程(13)...
  16. linux-什么是Linux系统?linux详解Linux与Windows的区别Linux发行版本及特点介绍
  17. JavaScript实现猜数字游戏(猜一位和四位数字)
  18. python将小写字母转化为大写_python如何定义函数将小写转换为大写
  19. 基于JPEG压缩编码的数据压缩算法的研究与实现(转)
  20. 安卓开发入门教程!终于有人把安卓程序员必学知识点全整理出来了,附答案

热门文章

  1. 错误00932_ORA-00932: inconsistent datatypes: expected - got -
  2. CV顶会最佳论文得主分享:好论文是怎么炼成的?
  3. 手把手教会微信小程序插件开发与引用
  4. Android 每周必看资源
  5. 利用华为ensp完成企业网总部与分部的搭建
  6. c语言程序如何调成夜间模式,原来Windows 10还有这么多隐藏的功能
  7. JAVA代码实现执行CMD命令的方法
  8. 普铁也全面实施电子客票啦
  9. mini2440开发板学习裸机开发——day1 裸机运行LED灯程序
  10. 蓝桥杯.蚂蚁感冒(模拟)