Openstack(企业私有云)万里长征第一步——安装
一、前言
单位新进了十几台服务器,建了一个高标准的一体化机房,状似刘姥姥进大观园的我,从机房规划到企业私有云搭建一一重头学来,除了机房泥墙其他基本都涉猎到了。
从企业私有云这个名字就能看出这是多么复杂的一个东西。牵涉到服务器、交换机、防火墙、网络规划、云系统搭建。个个都是厉害的角,用张国荣的话说:“咱什么时候也都成角?”。成角不成角不说,经过十几天的折腾,今天才把OpenStack安装成功,期间经历了酷似炼狱的种种阶段。现简单记录整个安装过程以及踩过的坑,供自己查阅或后来人参考。
二、企业私有云(OpenStack)
想必接触过这块的人都不陌生,到了现在这个年代,你要说你没听说过各种云你简直就是火星来的,从阿里云到微软的Azure到亚马逊云等等。他们的共同特点就是普通用户你不再需要购买实体服务器,只需要从云提供商购买相应的CPU、内存、硬盘、网络就可以有一台自己的服务器。
对于企业而言,建立私有云也是有必要的,可以充分发挥服务器的性能等等优势暂且不提。我个人认为最理想的情况就是企业的每个人都不再需要实体机(当然远程连接的机器还是需要的),每个人根据自己的业务需求,从私有云中划分出相应的配置安装需要的操作系统来进行自己的工作。大家无需再被数据备份等烦扰,也可以轻易的实现远程办公。
这就是OpenStack所实现的功能。其官网对其介绍如下:
OpenStack software controls large pools of compute, storage, and networking resources throughout a datacenter, managed through a dashboard or via the OpenStack API. OpenStack works with popular enterprise and open source technologies making it ideal for heterogeneous infrastructure.
大概是说OpenStack能够简单的管理(分配)大量计算机(整个数据中心)的计算能力(CPU)、存储能力(硬盘、磁盘阵列)、内存。
那么我们只要在整个数据中心搭建起来OpenStack也就实现了搭建企业私有云。看上去很容易吧。孔子曰:“言知之易,行之难。”。万事同理,再简单的事情当你操作的时候都会有各种情况发生,何况是这么复杂的OpenStack。加上之前有多次安装Hadoop集群的惨痛经验,所以在开始之前就做足了心里准备。还好,目前基本初装成功,简单记述之。
三、安装过程
首先在这里要感谢CLOUDMAN,其关于OpenStack安装及使用的一系列博客,给予我们很大的帮助,有兴趣的可以直接拜读,感谢他的无私分享。
3.1 安装操作系统
在这里我选择的是Ubuntu,刚开始想着14.04稳定,就装了14.04。谁知道怎么装OpenStack都报错,后来查看官网才发现16.04比较匹配,又折腾到16.04。查看官方文档确实是很重要的一步。
安装完系统后还需要进行以下操作:
- 网卡设置固定IP
- 将ubuntu的apt源修改为阿里
- 设置hosts
这些我在前面的博客中都有介绍,也可以自行Google之。
3.2 安装OpenStack
1、添加stack用户
sudo useradd -s /bin/bash -d /opt/stack -m stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
2、下载devstack
最重要的就是选择版本,刚开始选择默认分支安装了一个all-in-one模式,一次成功。于是就朝着CLOUNDMAN介绍的controller和compute节点的方式迈进,结果一直报错。今日试了一下ocata版,折腾了几下之后成功。
git clone https://git.openstack.org/openstack-dev/devstack -b stable/ocata
3、创建local.conf
在刚刚clone后的devstack文件中新建local.conf文件,其配置如下:
主节点(controller)配置
[[local|localrc]]
MULTI_HOST=true
HOST_IP=10.0.0.101 # management & api network
LOGFILE=/opt/stack/logs/stack.sh.log
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# enable neutron-ml2-vlan
disable_service n-net
enable_service q-svc,q-agt,q-dhcp,q-l3,q-meta,neutron,q-lbaas,q-fwaas,q-vpn,placement-api
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
LOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
计算节点(compute)配置
[[local|localrc]]
MULTI_HOST=true
HOST_IP=10.0.0.102 # management & api network
# Credentials
ADMIN_PASSWORD=admin
MYSQL_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=abcdefghijklmnopqrstuvwxyz
# Service information
SERVICE_HOST=10.0.0.101
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
Q_HOST=$SERVICE_HOST
KEYSTONE_AUTH_HOST=$SERVICE_HOST
KEYSTONE_SERVICE_HOST=$SERVICE_HOST
CEILOMETER_BACKEND=mongodb
DATABASE_TYPE=mysql
ENABLED_SERVICES=n-cpu,q-agt,neutron
Q_AGENT=linuxbridge
ENABLE_TENANT_VLANS=True
TENANT_VLAN_RANGE=3001:4000
PHYSICAL_NETWORK=default
enable_service placement-api
# vnc config
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_auto.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
LOG_COLOR=False
LOGDIR=$DEST/logs
SCREEN_LOGDIR=$LOGDIR/screen
# use TryStack git mirror
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
SPICE_REPO=http://git.trystack.cn/git/spice/spice-html5.git
此处需要注意的是,经过实际测试其中的HOST_IP和SERVICE_HOST必须输入实际IP地址,不能输入hostname,否则安装不能成功。并且控制节点和计算节点的密码要一致,否则无法启动。
当然你也可以根据自己的云部署需求,选择其他部署方式。
4、修改pip源
注意stack用户和root用户的源都需要修改。分别在/root目录下和/opt/stack目录下新建.pip文件夹,并在此文件夹中创建pip.conf文件,写入以下内容:
[global]
trusted-host=pypi.douban.com
index-url = https://pypi.douban.com/simple
5、执行安装命令
./stack.sh
由于网速(主要是国外网速,这个占失败的主因,没办法,大家都懂)以及一些未知因素等问题,幸运的话会成功,安装时间也会很长,慢慢等待。下面介绍一些失败的情况及应对的方案。
3.3 填各种坑
1、generate-subunit: command not found
这个问题比较常见,按顺序执行以下命令:
sudo apt-get install python-pip
sudo pip install --upgrade pip
sudo pip install -U os-testr
2、generate-subunit ******* fail
这个问题更常见,一般在结束的上面几行会告诉你失败的原因,可以分析失败原因,当然如果你看不明白,可以直接按以下步骤,重试安装。
- 关闭ssh连接,新建连接。(当然重启服务器更好)
- 执行./unstack.sh
- 执行./clean.sh
- 执行./stack.sh重新安装
3、计算节点nova无法启动:compute service on compute node not starting
从ocata版开始需要在计算节点的local.conf中添加下述信息:
enable_service placement-api
4、多次尝试安装均失败
如果你多次安装都失败,建议你直接重装操作系统,这样比分析原因来的要快。而且一旦安装失败,系统的纯洁性已经被破坏了,所以建议直接重装系统,重装一遍系统大概也就20分钟。
四、总结与展望
安装成功OpenStack只是在私有云道路上迈出的万里长征第一步,后面还有许许多多的东西需要涉足。这里只是个开端,与各位共勉。
Openstack(企业私有云)万里长征第一步——安装的更多相关文章
- OpenStack 企业私有云的若干需求(3):多租户和租户间隔离(multi-tenancy and isolation)
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(6):大规模扩展性支持
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(7):电信行业解决方案 NFV
自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云(Hybrid cloud)支持 主流硬件支持.云快速交付 ...
- OpenStack 企业私有云的若干需求(4):混合云支持 (Hybrid Cloud Support)
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(2):自动扩展(Auto-scaling) 支持
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(5):主流硬件支持、云快速交付 和 SLA 保证
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(1):Nova 虚机支持 GPU
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(9): 云管理平台 CMP
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack 企业私有云的若干需求(10):OpenStack 的前景和钱景
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- OpenStack企业私有云新需求(1):Nova 虚机支持 GPU
作者:Sammy Liu 刘世民 本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bar ...
随机推荐
- 老李谈JVM内存模型
老李谈JVM内存模型 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478,咨 ...
- 关于android混淆文件project.properties和proguard-project.txt详解
一直不明白Android开发中的有些文件的具体作用,后来用到了,具体研究了一下,借鉴了一下网上的资料,最后总结下,方便以后查看! 老版本中有这么个文件default.properties,既然是老版本 ...
- hive 动态分区数设置
当对hive分区未做设置时,报错如下: Caused by: org.apache.hadoop.hive.ql.metadata.HiveFatalException: [Error 20004]: ...
- Android 学习笔记之 个人认为最简单的查看Android源码方案
相信很多人都会疑惑如何使用Eclipse ADT查看源码? 下面我们将介绍 如何查看Android源码. 本文有如下优点: 1.不用费心去找Android源码地址:一个字烦,网上的东西杂七杂八的... ...
- java开发中经典的三大框架SSH
首先我们要明白什么是框架为什么用?相信一开始学习编程的时候都会听到什么.什么框架之类的:首先框架是一个软件半成品,都会预先实现一些通用功能,使用框架直接应用这些通用功能而不用重新实现,所以大多数企业都 ...
- 01 The Learning Problem
什么时候适合用机器学习算法? 1.存在某种规则/模式,能够使性能提升,比如准确率: 2.这种规则难以程序化定义,人难以给出准确定义: 3.存在能够反映这种规则的资料. 所以,机器学习就是设计算法A,从 ...
- WCF和ASP.NET Web API在应用上的选择
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...
- shell初步了解
shell的类型 查看用户所用的shell程序,在/etc/passwd 文件中的第七个字段(好像就是最后一个,主要是bash shell) 还有一个默认shell是/bin/sh,它作为默认的系统s ...
- C++中的类继承(4)继承种类之单继承&多继承&菱形继承
单继承是一般的单一继承,一个子类只 有一个直接父类时称这个继承关系为单继承.这种关系比较简单是一对一的关系: 多继承是指 一个子类有两个或以上直接父类时称这个继承关系为多继承.这种继承方式使一个子类可 ...
- Linux查看网络端口
简单的总结一下前段时间学习Linux的成果 查看 TCP 22 端口是否打开1.列出所有端口:[root@Demon proc]# netstat -ntlpActive Internet conne ...