手动搭建openstack的痛苦经历
openstack真的是一个十分痛苦的东西,好在有自动部署工具,虽然有自动部署工具可以方便我们部署使用,但是学习的话,第一次最好手动部署,因为手动部署更能我们了解openstack的工作流程和各组建之间的联系。
系统平台cnetos6.7 X86
openstack icehouse
我是按照openstack的原版手册安装的,安装keystone,glance和compute都很顺利,但是到了neutron的时候就痛苦了,google了一下关于neutron的文章,全是说又多么多么的复杂,对于一个新手来说真的是一个莫大的打击啊。(没办法,还是要一步一步的走下去)。在这个过程中失败了许多次,最后弄了两周终于弄好了。
一、注意事项
1、Neutron的配置文件中要把auth_uri换成identity_uri;(其他服务可以用auth_url,但是neutron服务必须要改为identity_url,否则不能正常运行)
2、各配置文件属组应该为相应的服务的运行者用户身份,否则其将无法访问导致服务启动失败;
关于运行虚拟机日志报错NovaException: Unexpected vif_type=binding_failed.:的解决方案
1.出现以上错误首先检查ml2配置文件是否配置正确
2.查看网络节点metadata_agent.ini配置文件是否错误,metadata是负责将对neutron的操作保存在数据库(metadata_agent配置文件填写错误日志不会报错。eg:将admin_tenant_name = service 写成 dmin_tenant_name = service)
3.禁用虚拟机网络功能看是否能够正常运行,如果能运行那么问题出在netron上,如果也不能运行那么就需要检查其他了。
安装glance遇到的问题:
1.部署cinder时要把cinder volumes上的配置文件中volumes_dir=$state_path/volumes 改为volumes_dir=/etc/cinder/volumes
2.将/etc/rc.d/init.d/openstack-cinder-volume 中的配置文件只保留--config-file $config,删除-config-file $distconfig,避免出错
eg: daemon --user cinder --pidfile $pidfile "$exec --config-file $config --logfile $logfile &>/dev/null & echo \$! > $pidfile"
3.cinder voleme节点配置文件中volume_group = stack-volumes-lvmdriver-1项表示默认vg为stack-volumes-lvmdriver,启动cinder volume前必须先创建名为stack-volumes-lvmdriver的卷组。
删除neutron网络的步骤:
1.router-gateway-clear
2.router-interface-delete
3.subnet-delete
4.router-delete
neutron服务遇到的问题:
如果日志不报错但服务不正常,例如实例不能获取到p。
1.用neutron agent-list 查看各组件工作状态是否正常。
如果状态不正常请查看各节点时间是否不同步。(日志不报错,但状态不正常基本上都是时间不同步造成的)
二、总结
①遇到问题一定要冷静,不要放弃,要善于思考。
②openstack的问题一般都是配置文件错误引起的
③尽量将服务多重启几次看是否会报错,有些服务虽然启动的时候显示的ok,但是并未启动起来。
④服务启动后一定要看日志(grep -i 'error')
⑤各主机时间必须同步
附上一张成功后的美图:

手动搭建openstack的痛苦经历的更多相关文章
- QT中QProcess调用命令行的痛苦经历(调用Winrar,设置工作目录,获得输出,注意引号与括号,等等)
QT中QProcess调用命令行的痛苦经历 阅读目录 创建压缩包的方法 在QT中调用命令行 在QT中调用C++创建的dll 在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在Q ...
- WindowsServer2012 R2 64位中文标准版(IIS8.5)下手动搭建PHP环境详细图文教程(二)安装IIS8.5
//来源:http://www.imaoye.com/Technology/WindowsServer2012R264IIS85.html 阿里云服务器ECS Windows Server 2012 ...
- Linux手动搭建LAMP环境
当你看到标题里的“手动搭建”,你是不是会想,难不成还有“自动搭建”?当然......不是,这里的“手动搭建”是指按部就班的搭建Apache.MySQL.PHP环境,是相对于集成软件包而言的.所以你是不 ...
- 使用devstack搭建openstack Newton 版本的坑
国外源访问速度慢怎么办? 使用国外源,加之带宽紧张,搭建过程是很累的,这里推荐大家使用一下源: devstack包源.:http://git.trystack.cn pip源: [global] in ...
- php 手动搭建环境
php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...
- 混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)
1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主 ...
- React 系列文章(1): npm 手动搭建React 运行实例 (新手必看)
摘 要 刚接触React 开发, 在摸索中构建react 运行环境,总会遇到各种坑:本文,将用最短时间解决webpack+react 环境搭建问题. 1.如果你还没有React基础 看这里. 2.如果 ...
- PHP手动搭建环境
php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...
- 手动搭建 redis 集群
转自http://meia.fun/article/1544161420745 手动搭建 redis 集群 redis 基本命令: 启动 redis 服务:redis-server xxx.conf ...
随机推荐
- python2.x和3.x的区别(不定时更新)
python2.x和3.x的区别 文:铁乐与猫 2018.3.16新增博文,为方便以后总结Python2.x与3.x的不同版本之间的区别,随时更新. python原本的宗旨是崇尚优美.清晰.简单.但p ...
- Hyper-v 中 CentOS 连接外网之有线网卡
一.打开虚拟机交换管理器,查看默认的虚拟交换机 如果不是内部网络,则需要新建一个虚拟交换机,新的交换机应该使用内部网络: 二.配置虚拟机使用的交换机.如果 “默认开关” 不是内部网络,需要使用自己新创 ...
- s = sorted(lst,key= func) # 将列表中的元素一个一个传给func,根据func的返回值进行排序
排序函数sorted :语法: sorted(iterable,key=func , reverse )key:排序规则(排序函数),在sorted内部将"可迭代对象"中的每一个元 ...
- FTP工具FileZilla&WinSCP与FTP类库FluentFTP
FileZilla Filezilla分为client和server.其中FileZilla Server是Windows平台下一个小巧的第三方FTP服务器软件,系统资源也占用非常小,可以让你快速简单 ...
- PHP设计模式系列 - 数据访问对象模式
数据访问对象模式 数据访问对象模式描述了如何创建透明访问数据源的对象. 场景设计 设计一个BaseDao基类,实现数据库操作基本的一些query,insert,update方法 在实际使用的过程中,继 ...
- xdebug安装及使用小结
最近安装了一下xedug,并且学习了一下如何使用.安装xdebug的初衷是为了深入研究一下PHP的垃圾回收机制. Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪, ...
- DOM、JDOM、DOM4J的区别
dom是解析xml的底层接口之一(另一种是sax) 而jdom和dom4j则是基于底层api的更高级封装 dom是通用的,而jdom和dom4j则是面向Java语言的 DOM 是 ...
- 最长公共子序列&最长公共子串
首先区别最长公共子串和最长公共子序列 LCS(计算机科学算法:最长公共子序列)_百度百科 最长公共子串,这个子串要求在原字符串中是连续的.而最长公共子序列则并不要求连续. 最长公共子序列: http ...
- Windows10中以管理员身份打开命令提示符
WIN+X+A (要关闭替换) 从任务栏启动 从开始菜单 从资源管理器 连贯即(alt+f+s+a)
- java 项目开启mysql binlog参数后报500错误:
问题: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and ...