xng2012 发表于 2013-12-25 00:59:00

虚拟机(CentOS6.4)Openstack Havana 单网卡 All in One 安装及问题总结

本帖最后由 xng2012 于 2013-12-25 01:50 编辑

一、openstack安装IaaS软件的安装和学习,最头痛的是对硬件条件的要求,很多时候因为对硬件的要求,导致你无法去测试。在Openstack的Grizzly版本里,要求3块网卡,有时候很难满足这样的条件。还有就是网络,很有可能你的网络条件无法满足要求,也是无法测试。那么这种情况到了H版本,已经大大改善,单网卡,网络,你可能只需要一个网段的几个IP地址,就可以装好和测试。这也很好体现了Openstack的网络功能的强悍。目前Neutron网络设置和以前的Nova network 差异很大,全部都是web搞定,非常爽。
基本条件





[*]1台物理服务器,单网卡,机器可联网
[*]网卡IP:10.1.199.8/24, 网关10.1.199.1
[*]10.1.199.210 到10.1.199.220 这段IP,作为Floating IP给虚拟机使用


操作系统CentOS6.4,最小化安装,只支持CentOS6.4以上的版本安装Openstack的Havana。如果你希望测试cinder存储功能,那么建议你单独一个分区,这样性能会很好多。
由于使用Puppet,需要机器设置好FQDN 名字。
# hostname -fg134.chenshake.com网络cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0ONBOOT=yesHWADDR=00:E0:81:D8:42:F6TYPE=EthernetBOOTPROTO=staticIPADDR=10.1.199.8NETMASK=255.255.255.0
确保联网正常。
LVM设置(可选)这主要是为了给cinder-volumes单独一个分区,提高性能。
# df -hFilesystem            SizeUsed Avail Use% Mounted on/dev/sda5             628G979M596G   1% /tmpfs               1.9G   01.9G   0% /dev/shm/dev/sda1             194M   32M153M18% /boot/dev/sda2             193G188M183G   1% /cinder-volume# umount /dev/sda2# pvcreate /dev/sda2Physical volume "/dev/sda2" successfully created# vgcreate cinder-volumes /dev/sda2Volume group "cinder-volumes" successfully created
修改/etc/fstab 去掉cinder-volume的开机挂载,不然会导致你无法重启
sed -i '/cinder-volume/s/^/#/' /etc/fstab设置源cd /etc/yum.repos.d/wget http://mirrors.163.com/.help/CentOS6-Base-163.repoyum list
PackstackPackstack,你可以理解成Redhat用Puppet写的一套脚本
使用RDO源
yum install -y http://rdo.fedorapeople.org/open ... -release-havana.rpm
安装packstack
yum install -y openstack-packstack进行更新
yum -y update系统会更新内核和组件。
重启机器,一定要重启。
安装Openstack直接运行下面命令就可以
packstack--allinone --provision-demo=n如果你设置了一个单独的分区给Cinder使用,那么你就运行下面命令
packstack--allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n如果希望安装Heat
packstack--allinone --provision-demo=n CONFIG_CINDER_VOLUMES_CREATE=n \--os-heat-install=y --os-heat-cfn-install=y重启机器
设置网络这是重点,参考是这篇文档http://openstack.redhat.com/Neutron_with_existing_external_network
我们需要把 /etc/sysconfig/network-scripts/ifcfg-eth0 和 /etc/sysconfig/network-scripts/ifcfg-br-ex 两个文件进行修改。ifcfg-br-ex是安装Openstack的过程中创建的。
源文件
cat /etc/sysconfig/network-scripts/ifcfg-br-ex DEVICE=br-exDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=NETMASK=
修改后
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0ONBOOT=yesHWADDR=00:E0:81:D8:43:BETYPE=OVSPortDEVICETYPE=ovsOVS_BRIDGE=br-ex
ifcfg-br-ex 是一个openvswitch 的连接外网的bridge。
# cat /etc/sysconfig/network-scripts/ifcfg-br-ex DEVICE=br-exDEVICETYPE=ovsTYPE=OVSBridgeBOOTPROTO=staticIPADDR=10.1.199.8NETMASK=255.255.255.0ONBOOT=yes
重启网络
/etc/init.d/network restart
Openstack的安装,就已经装完,剩下的是进入Dashboard进行设置。

Dashboard管理员登陆密码
# cat /root/keystonerc_admin export OS_USERNAME=adminexport OS_TENANT_NAME=adminexport OS_PASSWORD=c22a03c7fb7145faexport OS_AUTH_URL=http://10.1.199.8:35357/v2.0/export PS1='[\u@\h \W(keystone_admin)]\$ '
通过 http://10.1.199.8user:admin 密码看上面,随机生成的。
下面就是用最快的步骤来实现创建一个虚拟机,并且访问外网。
镜像上传一个ubuntu12.04镜像,
http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img

http://www.aboutyun.com/pic/Snap4_thumb1.jpg
创建网络
http://www.aboutyun.com/pic/Snap5_thumb1.jpg

创建完成后,进入网络的详细页面
http://www.aboutyun.com/pic/Snap6_thumb1.jpg
添加子网,这是重点
http://www.aboutyun.com/pic/Snap7_thumb1.jpg
子网详情,设置你使用的IP地址范围
http://www.aboutyun.com/pic/Snap8_thumb1.jpg
创建完毕
创建用户你可以使用当前的管理员去创建虚拟机,不过为了更加深入了解,我这里创建一个项目test,用户chenshake来演示
http://www.aboutyun.com/pic/Snap10_thumb1.jpg
创建用户
http://www.aboutyun.com/pic/Snap11_thumb1.jpg
注意选择test项目和Member角色
用户登录使用创建的账号 chenshake登录
创建网络和设置
http://www.aboutyun.com/pic/Snap12_thumb.jpg
虚拟机使用的Fix IP,这个你可以随意设置
http://www.aboutyun.com/pic/Snap13_thumb1.jpg
子网详情,就不需要设置,默认就可以,点击创建。
创建路由器和设置创建一个名字为“ 路由器1”
http://www.aboutyun.com/pic/Snap15_thumb1.jpg

设置路由器的网关
http://chenshake.qiniudn.com/wp-content/uploads/2013/10/Snap16_thumb1.jpg
选择管理员创建的外网网络
http://www.aboutyun.com/pic/Snap17_thumb.jpg
进入路由器详细页面,添加接口
http://www.aboutyun.com/pic/Snap18_thumb1.jpg
就是把路由器和用户自己的网络连接起来
http://www.aboutyun.com/pic/Snap19_thumb1.jpg

查看网络拓扑图
http://www.aboutyun.com/pic/Snap20_thumb1.jpg
设置安全组打开安全组的22和允许ping
http://www.aboutyun.com/pic/Snap21_thumb1.jpg
22端口
http://www.aboutyun.com/pic/Snap22_thumb.jpg
查看全部规则
http://www.aboutyun.com/pic/Snap25_thumb.jpg
创建秘钥
http://www.aboutyun.com/pic/Snap26_thumb2.jpg
秘钥会下载到本地
创建虚拟机
http://www.aboutyun.com/pic/Snap27_thumb2.jpg
云主机类型,不能选择tiny,会导致创建失败,因为不满足镜像的要求。
http://www.aboutyun.com/pic/Snap28_thumb1.jpg
这里不需要设置,我刚才创建的秘钥的名称是:chenshake
http://www.aboutyun.com/pic/Snap29_thumb1.jpg
在可用网络里把网络添加上,点击 “运行”
分配Floating IP
http://www.aboutyun.com/pic/Snap30_thumb.jpg
点击+ 号,申请Floating IP
http://www.aboutyun.com/pic/Snap31_thumb2.jpg
关联
http://www.aboutyun.com/pic/Snap32_thumb2.jpg
看看结果
http://www.aboutyun.com/pic/Snap33_thumb2.jpg
访问虚拟机ping虚拟机
http://www.aboutyun.com/pic/Snap34_thumb2.jpg
ssh虚拟机
Ubuntu虚拟机默认的用户名是ubuntu,只能采用秘钥登陆,无法采用密码登陆,设置SecureCRT(如果使用putty,秘钥需要转换,自己研究)
http://www.aboutyun.com/pic/Snap35_thumb2.jpg
http://www.aboutyun.com/pic/Snap36_thumb2.jpg
http://www.aboutyun.com/pic/Snap37_thumb1.jpg
登陆结果
http://www.aboutyun.com/pic/Snap38_thumb1.jpg




二、问题总结
问题1:
添加用户时候默认配额得自己写
只有添加了内网,再在网络设置处,才有选择外网的选项
服务器会多出来一个virbr0 IP地址192.168.122.1不知道什么时候出来的,没有设置过这个地址,该如何解决?
解决方法:
quota要自己填,是一个bug,目前已经修复。网络设置,按照文章顺序就可以。vibr0的ip,是kvm自带的,不用管。
文档没有太多错误。目前版本至少有2个bug,1:quota,2; 测试boot from volume的时候,会出错错误。正式版本都已经修复。
问题2:
系统安装好后如何继续添加计算节点?
解决方法:
不能,受制于网络。如果添加计算节点,那么控制节点,是不能带计算的。
问题3:
对于OPENSTACK,是CENTOS好还是UBUNTU比较好一点?
答:Redhat更好一些
问题4:
更改了安装时候的ip地址,导致了 dashboard不能访问,不知道该做些什么更改?
解决方法:
首先配置文件里ip的都要改,然后keystone的 token表和endpoint表里的ip也要改,用mysql里的replace 函数替换
问题5:
请问您有过部署Cell的经历吗?
答:受制于硬件,一直都没测试过
问题6:
在分配FLOATING IP端口时没有任何选项?
答:可能是电脑直接连在交换机上了,所以从交换机出来的地址是:131开头这样的地址,所以我就没法分派FLOATING IP了。
问题7:
创建实例的时候任务总是显示Scheduling,我开始以为是我本机配置的问题,结果我用cirros的镜像还是一样。查了log都没有error信息
答:是因为网络没有设置对,所以一直是SCHEDULING到状态。可以使用nova-manage service list,如果nova-compute服务没有启动成功,service start一下就好了。
问题8:
虚拟路由器在接外网时总是在down状态
答:好像显示是down,但是功能是正常的。
问题9:
安装时出现以下错误,重新安装也是这样
ERROR : Error appeared during Puppet run: 192.168.3.111_mysql.pp
Error: mysqladmin -u root password ’2ab02187cc984a2c’ returned 1 instead of one of
数据库不能修改密码
解决方案:
可能是你安装中断了一回,所以后续就错误了。
解决方法:
1. 清除数据库原有密码和删除所有数据库。
# Ensure there is a root user and that we know the password
service mysql stop
cat > /tmp/set_mysql_root_pwd << EOF
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
EOF
# mysql cleanup
/usr/bin/mysqld_safe –init-file=/tmp/set_mysql_root_pwd &
rm /tmp/set_mysql_root_pwd
mysql -uroot -pMyNewPass -e "drop database nova; drop database cinder; drop database keystone; drop database glance;"
service mysql restart
2. 更改root 目录里面的配置文件的密码,然后数据库密码更改为 刚刚设置好的MyNewPass 运行以下命令。肯定可以成功。
packstack –answer-file packstack-answers-20131013-xxxxxx.txt

其实packstack脚本是支持重复运行,但是all in one的安装,每次生成一个配置文件,导致可能出错,当第二次运行packstack,就需要指定配置文件就可以。
问题10:
安装后选择启动云主机出现
错误:Instance type’s disk is too small for requested image. (HTTP 400) (Request-ID: req-2577ac5f-55aa-4f47-a55e-1fd9f98fc4c1)
错误:无法启动云主机 名字 “VM 1″.
这个问题是出在什么步骤没设置好?/srv/node/device1磁盘空间默认才1G,如何增大?
答:是因为选择的flavor太小,换一个flavor就可以了。
问题11:
关联IP时无法选择待连接的端口,查看日志已找到原因,是云主机状态是error(BIOS 的VT没开启导致)
问题是,上传了一个2K3镜像,建立云主机后读不到启动盘,NO bootable device,这个在哪设置?
答:你是用iso安装操作系统,你需要修改flavor,让那个临时磁盘改成不为零,改成10G,就可以安装。
问题12:
传到本地后可以了,其他步骤也过了,但是在起instance的时候,网络老是ping不通,从/var/log/neutron/dhcp-agent.log 看到有错,“ ERROR neutron.agent.dhcp_agent Unable to enable dhcp”
Instance的console口也看到
2013-11-05 05:42:54,044 – url_helper.py: Calling ‘http://169.254.169.254/2009-04-04/meta-data/instance-id’fail Network is unreachable] 的错误,google找不到什么有用的答案。请问这是什么问题?
答:把host机器重启
问题13:
为什么我用我建立的密钥和ubuntu用户登陆不了虚机呢?
答:密钥对选错了。
问题14:
按照文档的步骤配置的时候,修改HWADDR重启网络后提示” Device eth0 has MAC address E4:1F:13:E1:3E:80, instead of configured address E4:1F:13:E1:3F:48. Ignoring.”, 无法继续, 请教HWADDR设置有何规则?,如何解决?
答:
把mac地址去掉。
问题15:
请问按文档配了之后,从openstack的服务器ping不通虚拟机是什么情况?报:unreachable……等信息
答:
参考一下https://github.com/marafa/openstack/blob/master/openstack-outside.sh 或者 http://openstack.redhat.com/Neutron_with_existing_external_network 简单点说,你需要创建一个 ifcfg-br-ex,把eth0的ip移到上面。
问题16:
openstack默认的/etc/reslov.conf 文件指的nameserver 都是10.10.9.3,私网段是10.10.9.0/24的。不修改nameserver,实例就出不了网,是什么原因?
答:创建私有网络的时候,指定dns,就应该没问题了
问题17:
分配给instance的dns不能用
答:不要再外部网络添加dns,需要在虚拟机那个网络添加dns才可以。




lilili 发表于 2015-10-20 11:14:28


你好,我用packstack在centos7中安装openstack,安装过程没有任何报错,且有安装成功提示信息以及额外信息,但是却不能通过浏览器访问dashboard,请问可能是什么原因呢?

NEOGX 发表于 2015-10-20 11:30:15

lilili 发表于 2015-10-20 11:14
你好,我用packstack在centos7中安装openstack,安装过程没有任何报错,且有安装成功提示信息以及额外信 ...

url正确吗?host配置了没

lilili 发表于 2015-10-20 11:39:26

NEOGX 发表于 2015-10-20 11:30
url正确吗?host配置了没

url正确,host没有配置,具体host设置是

lilili 发表于 2015-10-20 17:20:19

安装openstack后重启网络
/etc/init.d/network restart 失败,提示broken pipe 。。。怎么解决
页: [1]
查看完整版本: 虚拟机(CentOS6.4)Openstack Havana 单网卡 All in One 安装及问题总结