2013年4月4日,已经正式发布了Grizzly版本,目前Ubuntu 12.04的Grizzly的deb包,也基本准备好了,这次Ubuntu的动作真的是很快。以前Folsom版本的时候,由于Quantum的复杂和很多问题,导致网络上有不少问题。Grizzly版本的Quantum,已经做了很大的改进。关于Quantum介绍,可以查看官方wiki
Qauntum 需要通过插件来实现网络管理,有各种的商业插件,目前开源的插件就2个,linux Bridge和Openvswith,这篇文档是针对Bridge,Bridge不支持GRE模式,只支持VLAN和Local两种模式,Local只能用于测试使用。如果是多节点,VLAN模式就需要交换机支持,对端口设置Trunk。
参考英文原文:https://github.com/mseknibilel/OpenStack-Grizzly-Install-Guide
Quantum linux-Bridge 插件介绍:https://wiki.openstack.org/wiki/Quantum-Linux-Bridge-Plugin
我会对原文进行一些调整
- 我的网络环境eth0连接公网,eth1是内网
- 组件需要的数据库,我统一创建
- 通过设置环境变量的办法,使得文章适应不同的场景(例如不同的IP和密码)
文档修改历史
2013年4月10凌晨:Grizzly正式版本的Ubuntu 12.04的包刚刚发布,使用最新的包,已经基本完成安装过程,目前只剩下Dashboard的使用。由于quantum的网络设置比较复杂,需要设置好网络,才能进一步测试。
2013年4月17日:修正了文档几个错误,nova.conf 里quantum的账号设置错误,还有就是quantum没设置 /etc/quantum/dhcp_agent.ini:不过目前还是没法创建虚拟机,非常郁闷。目前看到的情况是:Dashboard里还无法完全管理网络,尤其是bridge模式。
组件和网络拓扑图
Contents
准备环境
操作系统
安装Ubuntu 12.04.2, 最小化安装就可以。目前内核已经升级到3.5,这样应该会减少安装过程的麻烦。
源
默认Ubuntu 12.04的源是Essex版本,我们需要增加Grizzly的源。不过需要你手工添加。源的官方说明
apt-get update apt-get install ubuntu-cloud-keyring
添加Grizzly源
cat <<EOF >>/etc/apt/sources.list deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-proposed/grizzly main deb http://ubuntu-cloud.archive.canonical.com/ubuntu precise-updates/grizzly main EOF
运行下面命令进行更新
apt-get update && apt-get -y dist-upgrade
Hostname
Hostname设置,其实不是必须的,不过养成一个习惯,也方便自己.
root@node08:~# cat /etc/hostname
node08
root@node08:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 node08.chenshake.com node08
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@node08:~# hostname
node08
root@node08:~# hostname -f
node08.chenshake.com
网络
# cat /etc/network/interfaces # This file describes network interfaces avaiulable on your system # and how to activate them. For more information, see interfaces(5). # Modified by convert_static.sh. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.1.199.8 hwaddress ether 00:e0:81:d8:42:f6 netmask 255.255.255.0 network 10.1.199.0 gateway 10.1.199.1 dns-search chenshake.com dns-nameservers 10.1.199.5 auto eth1 iface eth1 inet static address 10.10.10.8 netmask 255.255.255.0
重启网络
/etc/init.d/networking restart
IP转发
sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
echo 1 > /proc/sys/net/ipv4/ip_forward
检查修改结果
# sysctl -p net.ipv4.ip_forward = 1
查看当前机器路由
root@node08:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.1.199.1 0.0.0.0 UG 100 0 0 eth0
10.1.199.0 * 255.255.255.0 U 0 0 0 eth0
10.10.10.0 * 255.255.255.0 U 0 0 0 eth1
NTP服务
apt-get install -y ntp
环境变量
环境变量主要是为了使得文档更加灵活,参数可以设置
cat >/root/novarc <<EOF export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export MYSQL_PASS=password export SERVICE_PASSWORD=password export RABBIT_PASSWORD=password export OS_AUTH_URL="http://localhost:5000/v2.0/" export SERVICE_ENDPOINT="http://localhost:35357/v2.0" export SERVICE_TOKEN=ADMIN export PUBLIC_IP="$(/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d ":")" export LOCAL_IP="$(/sbin/ifconfig eth1 | awk '/inet addr/ {print $2}' | cut -f2 -d ":")" EOF
你可以根据你的需要调整上面password字段.它会自动获得你网卡的IP地址, 你可以根据你的情况调整。
查看novarc
cat /root/novarc export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export MYSQL_PASS=password export SERVICE_PASSWORD=password export RABBIT_PASSWORD=password export OS_AUTH_URL="http://localhost:5000/v2.0/" export SERVICE_ENDPOINT="http://localhost:35357/v2.0" export SERVICE_TOKEN=ADMIN export PUBLIC_IP="10.1.199.8" export LOCAL_IP="10.10.10.8"
让环境变量生效
source novarc
echo "source novarc">>.bashrc
RabbitMQ和相关软件
apt-get -y install rabbitmq-server vlan bridge-utils curl
数据库
Openstack的组件都需要用到mysql
数据库 | 用户 | 密码 |
mysql | root | password |
keystone | keystone | password |
nova | nova | password |
glance | glance | password |
cinder | cinder | password |
quantum | quantum | password |
设置自动安装,无需输入密码
cat <<MYSQL_PRESEED | debconf-set-selections
mysql-server-5.5 mysql-server/root_password password $MYSQL_PASS
mysql-server-5.5 mysql-server/root_password_again password $MYSQL_PASS
mysql-server-5.5 mysql-server/start_on_boot boolean true
MYSQL_PRESEED
安装mysql
apt-get -y install mysql-server python-mysqldb
允许远程访问mysql
sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf
重启服务
service mysql restart
创建数据库
mysql -uroot -p$MYSQL_PASS <<EOF CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%' IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%'IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE cinder; GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'IDENTIFIED BY '$MYSQL_PASS'; CREATE DATABASE quantum; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'%'IDENTIFIED BY '$MYSQL_PASS'; FLUSH PRIVILEGES; EOF
Keystone
安装
apt-get install -y keystone
查看keystone运行状态
service keystone status
编辑 /etc/keystone/keystone.conf
需要注意的是admin_token 默认是ADMIN
[sql] # The SQLAlchemy connection string used to connect to the database #connection = sqlite:////var/lib/keystone/keystone.db connection = mysql://keystone:password@10.10.10.8:3306/keystone [signing] #token_format = PKI token_format = UUID
重启服务和初始化数据库
service keystone restart keystone-manage db_sync
使用脚本导入初始化数据
keystone.sh 和 endpoint.sh,脚本运行过程中,会出现 WARNING: Bypassing authentication using a token & endpoint (authentication credentials are being ignored). 提示,忽略就可以。
wget http://www.chenshake.com/wp-content/uploads/2013/04/keystone.sh_.txt
mv keystone.sh_.txt keystone.sh
bash keystone.sh
导入endpoint
wget http://www.chenshake.com/wp-content/uploads/2013/04/endpoint.sh_.txt
mv endpoint.sh_.txt endpoint.sh
bash endpoint.sh
验证keystone
keystone user-list keystone role-list keystone tenant-list keystone endpoint-list service keystone status
Troubleshooting Keystone
1. 查看 5000 和 35357 端口是否在监听
2. 查看 /var/log/keystone/keystone.log 报错信息
3. keystone.sh 脚本执行错误解决:(检查脚本内容变量设置)
如果你运行上面脚本出现问题,你可以删除数据库再导入数据,运行脚本出错,基本都是环境变量设置有误导致
mysql -uroot -p mysql> drop database keystone; mysql> create database keystone; mysql> quit;
记得需要同步一下数据库
keystone-manage db_sync
Glance
安装
apt-get -y install glance
配置
编辑 /etc/glance/glance-api.conf
#sql_connection = sqlite:////var/lib/glance/glance.sqlite sql_connection = mysql://glance:password@10.10.10.8/glance [keystone_authtoken] auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = glance admin_password = password [paste_deploy] config_file = /etc/glance/glance-api-paste.ini flavor = keystone
重启服务
service glance-api restart
编辑 /etc/glance/glance-registry.conf
#sql_connection = sqlite:////var/lib/glance/glance.sqlite sql_connection = mysql://glance:password@10.10.10.8/glance [keystone_authtoken] auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = glance admin_password = password [paste_deploy] config_file = /etc/glance/glance-registry-paste.ini flavor = keystone
重启服务
service glance-registry restart
同步数据库
glance-manage version_control 0 glance-manage db_sync
验证Glance
glance image-list
下面应该没任何输出,就表示正确。因为目前还没有上传image。
下载Image
我们下载CirrOS的image作为测试使用,只有10M。如果是ubuntu官方的image,220M,并且ubuntu官方的image,都是需要使用密钥登陆。
CirrOS
下载image
wget https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img
上传image
glance image-create --name=cirros-0.3.0-x86_64 --public --container-format=bare \ --disk-format=qcow2 < /root/cirros-0.3.0-x86_64-disk.img
Cirros,是可以使用用户名和密码登陆,也可以使用密钥登陆
user:cirros
password:cubswin:)
Ubuntu官方image
下载image
wget http://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img
上传image
glance image-create --name="Ubuntu 12.04 cloudimg amd64" --public --container-format=ovf \ --disk-format=qcow2 < /root/ubuntu-12.04-server-cloudimg-amd64-disk1.img
user:ubuntu
只能使用密钥登陆。
Quantum
安装
apt-get install -y quantum-server quantum-plugin-linuxbridge quantum-plugin-linuxbridge-agent \ dnsmasq quantum-dhcp-agent quantum-l3-agent
编辑 /etc/quantum/quantum.conf
#core_plugin = quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2 core_plugin = quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2 [keystone_authtoken] auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = quantum admin_password = password signing_dir = /var/lib/quantum/keystone-signing
配置bridge插件 /etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
# Default: tenant_network_type = local # Example: tenant_network_type = vlan tenant_network_type = vlan # Default: network_vlan_ranges = # Example: network_vlan_ranges = physnet1:1000:2999 network_vlan_ranges = physnet1:1000:2999 #sql_connection = sqlite:////var/lib/quantum/linuxbridge.sqlite sql_connection = mysql://quantum:password@10.10.10.8/quantum # Default: physical_interface_mappings = # Example: physical_interface_mappings = physnet1:eth1 physical_interface_mappings = physnet1:eth0
编辑 /etc/quantum/l3_agent.ini:
#interface_driver = quantum.agent.linux.interface.OVSInterfaceDriver interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver # use_namespaces = True use_namespaces = False
编辑 /etc/quantum/dhcp_agent.ini
interface_driver = quantum.agent.linux.interface.BridgeInterfaceDriver
use_namespaces = False
重启quantum所有服务
cd /etc/init.d/; for i in $( ls quantum-* ); do sudo service $i restart; done service dnsmasq restart
验证Quantum
quantum help
看到所有quantum相关的命令,目前quantum没有任何数据
quantum net-list
KVM
安装
apt-get install -y kvm libvirt-bin pm-utils
编辑 /etc/libvirt/qemu.conf ,添加下面内容
cgroup_device_acl = [ "/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet","/dev/net/tun", ]
或者运行命令:这个地方用命令修改有点复杂,还没找到太好的办法。
cat <<EOF>>/etc/libvirt/qemu.conf cgroup_device_acl = [ "/dev/null", "/dev/full", "/dev/zero", "/dev/random", "/dev/urandom", "/dev/ptmx", "/dev/kvm", "/dev/kqemu", "/dev/rtc", "/dev/hpet","/dev/net/tun", ] EOF
删除默认 virtual bridge
virsh net-destroy default virsh net-undefine default
允许迁移
编辑 /etc/libvirt/libvirtd.conf,
#auth_tcp = "sasl" auth_tcp = "none"
或者运行下面命令
sed -i '/#listen_tcp/s/#listen_tcp/listen_tcp/; /#auth_tcp/s/#auth_tcp/auth_tcp/; /auth_tcp/s/sasl/none/' /etc/libvirt/libvirtd.conf
编辑 /etc/init/libvirt-bin.conf
env libvirtd_opts="-d -l"
或者使用命令
sed -i '/env libvirtd_opts/s/-d/-d -l/' /etc/init/libvirt-bin.conf
编辑 /etc/default/libvirt-bin
libvirtd_opts="-d -l"
或者使用命令
sed -i '/libvirtd_opts/s/-d/-d -l/' /etc/default/libvirt-bin
重启服务
service libvirt-bin restart
Nova
安装
apt-get install -y nova-api nova-cert novnc nova-consoleauth nova-scheduler \ nova-novncproxy nova-doc nova-conductor nova-compute-kvm
编辑 /etc/nova/api-paste.ini
[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = nova admin_password = password signing_dir = /tmp/keystone-signing-nova # Workaround for https://bugs.launchpad.net/nova/+bug/1154809 auth_version = v2.0
创建 /etc/nova/nova.conf
cat >/etc/nova/nova.conf <<EOF [DEFAULT] logdir=/var/log/nova state_path=/var/lib/nova lock_path=/run/lock/nova verbose=True api_paste_config=/etc/nova/api-paste.ini compute_scheduler_driver=nova.scheduler.simple.SimpleScheduler rabbit_host=$LOCAL_IP nova_url=http://$LOCAL_IP:8774/v1.1/ sql_connection=mysql://nova:$MYSQL_PASS@$LOCAL_IP/nova root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf # Auth use_deprecated_auth=false auth_strategy=keystone # Imaging service glance_api_servers=$LOCAL_IP:9292 image_service=nova.image.glance.GlanceImageService # Vnc configuration novnc_enabled=true novncproxy_base_url=http://$PUBLIC_IP:6080/vnc_auto.html novncproxy_port=6080 vncserver_proxyclient_address=$LOCAL_IP vncserver_listen=0.0.0.0 # Network settings network_api_class=nova.network.quantumv2.api.API quantum_url=http://$LOCAL_IP:9696 quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=$SERVICE_PASSWORD quantum_admin_auth_url=http://$LOCAL_IP:35357/v2.0 libvirt_vif_driver=nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver linuxnet_interface_driver=nova.network.linux_net.LinuxBridgeInterfaceDriver firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver # Compute # compute_driver=libvirt.LibvirtDriver # Cinder # volume_api_class=nova.volume.cinder.API osapi_volume_listen_port=5900 EOF
编辑 /etc/nova/nova-compute.conf:
[DEFAULT] libvirt_type=kvm compute_driver=libvirt.LibvirtDriver libvirt_vif_type=ethernet libvirt_vif_driver=nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver
同步数据库
nova-manage db sync
重启nova相关服务
cd /etc/init.d/; for i in $( ls nova-* ); do sudo service $i restart; done
查看nova 服务
nova-manage service list
Cinder
安装
apt-get install -y cinder-api cinder-scheduler cinder-volume \ iscsitarget open-iscsi iscsitarget-dkms
配置iscsi服务
sed -i 's/false/true/g' /etc/default/iscsitarget
重启服务
service iscsitarget start service open-iscsi start
编辑 /etc/cinder/api-paste.ini
[filter:authtoken] paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory service_protocol = http service_host = 127.0.0.1 service_port = 5000 auth_host = 127.0.0.1 auth_port = 35357 auth_protocol = http #admin_tenant_name = %SERVICE_TENANT_NAME% #admin_user = %SERVICE_USER% #admin_password = %SERVICE_PASSWORD% admin_tenant_name = service admin_user = cinder admin_password = password
编辑 /etc/cinder/cinder.conf
[DEFAULT]
rootwrap_config=/etc/cinder/rootwrap.conf
sql_connection = mysql://cinder:password@10.10.10.8/cinder
api_paste_config = /etc/cinder/api-paste.ini
iscsi_helper=ietadm
volume_name_template = volume-%s
volume_group = cinder-volumes
verbose = True
auth_strategy = keystone
#osapi_volume_listen_port=5900
同步数据库
cinder-manage db sync
创建一个cinder volume的卷
如果使用文件模拟的方式,其实性能很差,基本是不可用。所以建议采用单独分区来测试
我的硬盘专门一个分区给volume使用
umount /dev/sda7 pvcreate /dev/sda7 vgcreate cinder-volumes /dev/sda7
去掉开机挂载
sed -i '/nova-volume/s/^/#/' /etc/fstab
重启服务
cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i restart; done
查看cinder服务状态
cd /etc/init.d/; for i in $( ls cinder-* ); do sudo service $i status; done
Horizon
安装
apt-get install -y openstack-dashboard memcached
默认的ubuntu的theme一直都有问题,需要删掉。
dpkg --purge openstack-dashboard-ubuntu-theme
重启相关服务
service apache2 restart; service memcached restart
这个时候你就可以直接使用 http://10.1.199.8/horizon 访问
user:admin pass:password
如何使用Dashboard,后续补上。
陈老师,怎么G版本安装到了Glance就没有了,
还有上次问您的问题:安装E版本的时候执行mii-tool命令后网卡出现SIOCGMIIREG on eth0 failed: Input/output error
SIOCGMIIREG on eth0 failed: Input/output error
eth0: negotiated 100baseTx-FD flow-control, link ok
eth1: negotiated 100baseTx-FD, link ok
安装过程基本上没有问题,但是在创建实例的时候无法创建,试了好几次,都是同样的问题,麻烦陈老师指导一下,多谢了!
没写完了,正在调试中。
沙克,请联系我,请教个事情,打你原来北京电话不通了。
陈老师,我在virtualbox虚拟机中按照您的流程安装G版本时,执行keystone.sh脚本时遇到了下列问题:
root@ubuntu:~/grizzly# ./keystone.sh
Traceback (most recent call last):
File “/usr/bin/keystone”, line 9, in
load_entry_point(‘python-keystoneclient==0.2.3’, ‘console_scripts’, ‘keystone’)()
File “/usr/lib/python2.7/dist-packages/keystoneclient/shell.py”, line 498, in main
print >> sys.stderr, e
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 5199-5222: ordinal not in range(128)
能否给些建议?
不胜感激
这个错误真没见过。
感谢关注:)
你应该是在windows下操作的吧?这个错误应该是你在修改参数时 输入法为中文状态导致的
感谢答复,最终未发现问题的根本原因,我的环境是ubuntu 12.04,不过后来我做了下apt-get update/apt-get upgrade,问题就没在出现,我的环境已经可以运行,我使用的的gre模式,陈老师这里是bridge模式
export LC_ALL=C
是不是编码不对
说错了。
应该是重新执行这步:
查看novarc
让环境变量生效
source novarc
echo “source novarc”>>.bashrc
陈老师好!一直关注你的空间。
我们实验室几个一直在研究openstack
E版出来之后已经可以成功部署
F版的我们花了很多时间来部署quantum,但是一直不成功
现在G版的出来了,你安装成功了吗?有什么心得?感谢分享
quantum 我已经安装成功 请看http://hi.baidu.com/wylinux/item/e1cc323af851d0f7e6bb7a5a
真的是要学习一下。
陈老师,您有没有做过windows虚拟机镜像,并上传openstack运行成功的案列,能否教教我们?在网上搜的一些文章,照着做都不行。先谢谢了!!
期待 更进一步的 更新 由于之前一直用的E版本 没接触 Quantum
陈老师您好,您有没有做过windows虚拟机镜像,并上传openstack运行成功的案列,能否教教我们?在网上搜的一些文章,照着做都不行。先谢谢了!!
官方推荐的可以的
陳老師您好,我是台灣大學的研究生,最近正在做有關於Openstack的論文,我依照您的腳本創建到glance部分都沒問題,唯獨在輸入指令glance image-list出現了以下錯誤:Unable to communicate with identity service: {“error”: {“message”: “The request you have made requires authentication.”, “code”: 401, “title”: “Not Authorized”}}. (HTTP 401)看起來是關於權限問題,但礙於不想更動keystone腳本的關係,想請問陳老師要如何解決這個問題?謝謝
坦白说,我刚开始配置Grizzly的时候,按照以前配置glance的方式装glance也遇到这个错误,当时反复看log,也没看到什么错误。现在文档配置glance,应该是没有错误,你完全照做应该是可以了。目前openstack根据错误定位问题还是没有办法的。先确认你的环境变量没问题,还有就是完全参考我的文档来修改那两个配置文件。
先感謝陳老師的回覆,我本身有去/var/log/keystone/keystone.log看過log發現只有 WARNING [keystone.common.wsgi] Authorization failed. The request you have made requires authentication. from 127.0.0.1這個錯誤,因為前面的配置完全是照老師的文件所做,所以不知道這樣應該改哪個部分?謝謝。
那你就把3个文件发到我的邮箱里:novarc, /etc/glance/glance-api.conf /etc/glance/glance-registry.conf 。我的邮箱 shake.chen@gmail.com
陳老師,郵件已經寄出,麻煩您了。
我也遇到了同样的问题,不知道如上问题解决没有,望陈老师能给予说明
我也遇到这个问题了,请问解决了吗?
我也遇到这个问题是我的配置变更出了问题。
老师,先汇报下,我已经78kg了,呵呵“你要坚持啊
昨天按着本文成功的安装了G版本,中间没出现任何问题
但是在dashboard里创建实例时候,立即提示error,我查看service list 都是笑脸
我想问题应该是出现新的功能的使用上,比如我发现网络是需要自创的
那么我想问下原来的fixed ip以及floating ip该如何设置,是不是因为这个原因导致实例创建失败
感觉距离成功就差一点点了,G版看起来果然强大,连拓扑图都能给列出来了,而且还提供了路由的选项,那是不是意味着未来实例之间可以跨网段传输数据?不知到陈老师从10号到今天有没有什么新的进展
期待您的回复““
THX
比较郁闷,我遇到的问题和你一样,还没找到原因。这几天就是更正了一下文档几个小错误。
我刚才参照mskeni大师的文档最后一部分创建了网络,不过还是不行,发现创建的任何网络的shared status都处于FALSE,admin status倒是active,是不是这部分原因的影响?我在youku上看到一个外国兄弟测试的视频,他的状态是YES,也很顺利的创建了实例。是不是我们eth1和eth0之间的配置出现了问题 陈老师?
我也在郁闷这个问题。和网卡eth0 eth1有关的设置就是在quantum的地方。
# Default: physical_interface_mappings =
# Example: physical_interface_mappings = physnet1:eth1
physical_interface_mappings = physnet1:eth0
看来我要考虑一下你的建议。
Longgeek老师那篇文章用的是GRE模式,采用了Openswitch,不知道对我们这个方案有没有参考价值,他里面也提到了很详细的关于网络部分的创建方法,应该像是成功了
对,他采用ovs,是没问题,我和他聊过。改天我验证一次。
可能已经找到错误,nova.conf 里quantum密码设置错误。我马上重装开始测试。
好的,老师,如果有新进展请贴出来,我这边也马上去验证,需要重新安装系统部署对么?
还是不错,我只能等晚上照老外的文档再做一次。
没错,我下午也试了一下,那处密码的确有问题 默认成了service_pass,而我们自己修改的是password,也许不光是这一个地方涉及到了,我晚间也去排查下···ovs和bridge的区别很大么,主要体现在哪一块?
上面有图说明。bridge,只支持vlan。ovs,可以跑GRE。vlan有所谓的数量限制。
没有必要重新安装 删除之前网络 网络重新安装就好
quantum_admin_password=service_pass
这个错误 可害苦 我 了 要不是看了 quantum 的日志 估计我都快要放弃了
这位兄弟,你修正以后,在dashboard里创建network时候的shared状态是false还是yes?
还是false,郁闷。
老师,要不咱试试OVS?你有联系M大师反馈这个问题么?
我会尝试ovs。我毕竟还不是完全按照他的文档来操作,有点改动。我再试一下,如果不行,肯定会提交ticket。
是True 不过之前我一直没有设置这个shared
目前我这边的问题是 所创建的实例 没法路由到 外网 ,同一个route下的实例相互之间可以ping 但是内外都不同
PortsCreate Port Delete Ports
Name Fixed IPs Device Attached Status Admin State 动作
(5e6dac3a)
10.10.0.1
network:router_interface DOWN UP Edit Port More
很郁闷的是 这些都是DOWN
quantum相应日志错误为:
2013-04-18 10:08:35 WARNING [quantum.scheduler.l3_agent_scheduler] L3 agent 87908cd1-737f-49f3-80b9-8a70ae19ca08 is not active
2013-04-18 10:08:35 WARNING [quantum.scheduler.l3_agent_scheduler] No routers compatible with L3 agent configuration on host lost5
2013-04-18 09:18:55 ERROR [quantum.plugins.linuxbridge.agent.linuxbridge_quantum_agent] Failed reporting state!
2013-04-18 09:18:54 ERROR [quantum.agent.l3_agent] Failed reporting state!
你这里的 ERROR [quantum.agent.l3_agent] Failed reporting state!问题解决了没有?我的也是quantum好像不正常
Networks
NetworksCreate Network 删除 Networks
项目 Network Name Subnets Associated Shared Status Admin State 动作
admin
External-net
ext-subnet 49.123.83.1/30
True ACTIVE UP Edit Network More
admin
admin-net
admin-subnet 10.10.0.0/24
True ACTIVE UP Edit Network More
这位兄弟,你使用的是bridge还是ovs模式?可否加下QQ 27495056 保持沟通
bridge 和 OVS都尝试了
如果是True状态应该使用的是ovs模式,如果是bridge模式应该是现实一个yes或者false,有点小区别“`
子网 是shared dhcp 我是 flase
陈老师您好,G版本安装对硬件方面是不是有什么要求,按照您的文档步骤安装为什么安装不成功,目前只有E版本的安装是没有任何问题的,还有就是E版本安装之后很不稳定,创建实例之后如果出现问题解决之后再创建实例就会出错,请问老师有什么办法可以保证E版的稳定性,谢谢了!
如果你跑nova netowork,应该是没问题。所谓不稳定,应该是新功能不完善。
G版已经不用使用Nova network了。dashboard 会依赖quantum的。我在Centos 6.4 上源码安装的G版,目前就网络有问题,虚拟机直接可以Ping通,虚拟机和物理机之前的路由有问题,Ping不通,加QQ沟通:57459267
好,等下联系你。
陈老师,我的服务器是单网卡,G版有没有要求E版中的双网卡啊?
陈老师,问题处理的如何了?我周末尝试了两个方案,分别遇到了一些问题 这里跟您说明一下
一个是jedipunkz这位日本兄弟的grizzly 脚本,我想你在github应该也看到了,我在执行过程中前面都很顺利,但是当脚本运行到ovs安装部分,貌似是在通过ovs给br-ex 添加eth0 端口这条命令之后,eth0便失去连接性,网卡依然连接正常,但就是无法连通外网,导致接下来脚本无法继续下载其他资源,运行失败,这个问题jedipunkz在readme.md里面有提到一点,但是他说的好像不是很明确,希望您有时间验证下···他的f版本脚本写的很好,你翻译之后我们使用都很ok,完美,我在github也给他留言了,希望能得到帮助。
另外一个问题,我又尝试了m大师的第二个方案,就是single node ovs模式,依旧碰到了我们之前的问题,vm创建立即error,网络部分拓扑搭建的顺序和方法应该没有什么问题,就是搭建之后,几个端口都显示down的状态,所以我个人觉得问题就应该出在ovs这块,我对比了下longgeek,jedipunkz以及mskeni的方案,前两者都有在ovs 添加eth0 端口到 br-ex,而mskeni的方案中就没有这个部分,既然longgeek和jedipunkz他们自己都已经验证成功,我们是不是也应该把注意放在这个部分? 我的QQ是 27495056,希望和您长期保持交流
好,已经添加,大家一起看看啥问题。
陈老师 我建了一个群 可以把大家加到里面一起讨论问题 谢谢 群号
192392540 Openstack
陈老师您好,请问按这个文档装完后虚拟机连不上外网是正常的吗?
我是网全按原文档装的。
那个router上显示没有可用的外网设成gateway。
要想那个router连上外网怎么设置?
陈老师,你好!为什么我的安完之后,每次重启,nova-compute都要手动启动才可以?
这个不应该,这是ubuntu的os特点,装完的服务,都是自动启动。
陈老师,我一直在关注您的博客,希望加下QQ,长期保持交流可以吗?我的QQ2683798000
陈老师:
为什么我用你的方法,在同步nova与cinder的数据库时就是错误呢?上面显示无such option:MYSQL_PASS,该如何解决啊?
在 Ubuntu 12.04.02 上折腾了几天,整理了几个问题:
1、apt源中,我没添加 precise-proposed,按官方说法,这是个测试用的源
2、dnsmasq服务需要禁用,否则dhcp问题多多,修改 /etc/default/dnsmasq,将ENABLED设为0,然后停掉服务(service dnsmasq stop)
需要的时候,quantum会自动起dnsmasq进程的。
3、如下修改 /etc/default/quantum-server,否则无法创建flat网络等,且数据库 quantum 都是空的
QUANTUM_PLUGIN_CONFIG=”/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini”
4、修改 /etc/quantum/l3_agent.ini,添加 “external_network_bridge =”,否则 l3-agent.log 中有异常 “The external network bridge ‘br-ex’ does not exist”。
5、修改 /etc/libvirt/libvirtd.conf 下面两项,陈老师的描述里漏了,但是命令里有;)
listen_tls = 0
listen_tcp = 1
6、没有删除 openstack-dashboard-ubuntu-theme,不知道有啥问题啊;)
如此这般,将所有的ERROR都处理掉,还是搞不定网络问题。
我的外部网络为192.168.0.0/24,物理主机IP为192.168.0.11,网关是192.168.0.1。
1、创建一个flat类型的External网络(192.168.0.240/28)后,不论子网在192.168.0内还是其他,从VM中都可以访问到物理网关192.168.1.1
但是从其他主机都无法访问到VM,除非在其他主机上做路由
2、创建vlan类型的网络10.1.1.0/24后,VM始终无法访问物理网关192.168.1.1;
添加一个router,并且将网络添加到router接口后,网关port(10.1.1.1)状态始终是DOWN的,从VM里也ping不通这个网关;
router再加上上面的的ext网关,两个接口的port状态也都是down的。
此外,在/var/log/quantum/server.log里总能发现诸如 “No L3 agents can host the router”、“No routers compatible with L3 agent configuration on host …”、“Fail scheduling network {…}”之类的WARNING。
可能是我的理解还有问题,从VirtuaBox、VMWare、PVE过来的,闹不明白,求解啊!!
你好!我也在安装bridge模式的,但是遇到些问题,想和你交流下可以吗?我的QQ2683798000
我单网卡安装的,连不了外网,其他运行正常,请问,是不是单网卡不可以啊
单网卡肯定是可以的,不过相关的资料没有介绍。
陈沙克老师您好:
在执行glance image-create –name=cirros-0.3.0-x86_64 –public –container-format=bare \
> –disk-format=qcow2 < /root/cirros-0.3.0-x86_64-disk.img
这一句的时候报了connection refused错误,ip的设置应该没有错误,能上外网,我不知道问题出在哪了,希望您能解答一下,谢谢~
Error communicating with http://192.168.0.110:9292 [Errno 111] Connection refused
你看一下你的环境变量设置。
陈老师您好:
我对照您的文档重新安装了一次,这一次安装很顺利,只是dashboard开启之后,建立的instance 的state 为error,我不知道问题出在哪了,盼望您能帮我解答一下,感谢~
我也饱受这个错误折磨。前两天刚测试一次,还是一样。我的理解,应该还是quantum导致的。
请问,您解决这个问题了吗?我也遇到了此问题。
我的情况一样:Error communicating with http://controller:9292 [Errno 111] Connection refused
查了很久,无果、 后来apt-get autoremove -y glance
apt-get install -y glance就好了、 一切正常。
我装的是Havana版的…
没看懂啊。为啥要安装一个kVM呢?
kvm 是基础服务。Openstack只是一系列的管理工具的集合。
陈老师好: 为什么我安装好的环境网页一直访问不了
这应该是你的问题。不过现在的问题是登陆进去创建虚拟机失败。比较郁闷。
我可以创建虚机,而且都成功了,可是一直ping不通,不知道怎么能解决这个问题?
另外ubuntu那个image起来后,用户名是ubuntu,密码是什么?怎么设置呢?
Apache/2.2.22 (Ubuntu) Server at 192.168.2.22 Port 80 每次都是这种错误 我的用nova boot可以创建实例成功
陈老师,你好!quantum里面的qbrxxx设备是用brctl命令创建的吗?
When you configre kvm , you may face below error :
virNetTLSContextCheckCertFile:111 : Cannot read CA certificate ‘/etc/pki/CA/cacert.pem’: No such file or directory
Looks like there could be some configuration issues in libvirtd.conf.
Can you ensure that you have below values set
listen_tls=0
listen_tcp=1
Thanks. I would test it and comfirm it.
hi: 最近在搞这个ceilometer,看了你写的博客有点问题想请教下。 我使用devstack 安装 完成之后。为什么默认情况下 只能获得 image 与 port 的 信息。
image | gauge | image | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image | gauge | image | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image | gauge | image | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| image.download | delta | B | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image.download | delta | B | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image.download | delta | B | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| image.serve | delta | B | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image.serve | delta | B | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image.serve | delta | B | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| image.size | gauge | B | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image.size | gauge | B | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image.size | gauge | B | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| image.update | delta | event | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image.update | delta | event | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image.update | delta | event | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| image.upload | delta | event | a292a054-dc3e-499e-8026-b804c65f5a66 | None | 01e94211fbde468baae4c069fea38952 |
| image.upload | delta | event | bccf2b5a-38b4-4efa-8a50-6a420ea615f9 | None | 01e94211fbde468baae4c069fea38952 |
| image.upload | delta | event | fd34b5a5-08d8-4678-aa39-413fe061c1bc | None | 01e94211fbde468baae4c069fea38952 |
| port | gauge | port | 0eeee0a4-870f-40bc-b377-5ea84755c850 | a637dd0a8b7f4f89b952424deda5bb52 | 01e94211fbde468baae4c069fea38952 |
| port | gauge | port | 605262ba-688b-460c-83cf-b44148e463c2 | a637dd0a8b7f4f89b952424deda5bb52 | 01e94211fbde468baae4c069fea38952 |
| port | gauge | port | 792334fd-45a4-45d8-9d6d-dd812b213dcb | a637dd0a8b7f4f89b952424deda5bb52 | 01e94211fbde468baae4c069fea38952 |
| port | gauge | port | 7bec835c-aa16-42cb-96c8-c6f5de498866 | a637dd0a8b7f4f89b952424deda5bb52 | 01e94211fbde468baae4c069fea38952 |
| port | gauge | port | 95f4d869-60e4-43fb-9dff-368424aae221 | a637dd0a8b7f4f89b952424deda5bb52 | 01e94211fbde468baae4c069fea38952 |
而对于 instance的信息无法获得?
希望能从你那里得到帮助。。谢谢。。。。
你够领先的,对于ceilometer,目前我也只是概念阶段,还没动手去装,关键是他的dashboard还没搞好。
陈老师。你好!请问你的bridge模式最终都ok了吗?
陈老师好,
做opentack G版部署,一台controller, 一个network, 两个compute,共4个节点。虚拟机可以创建成功,通过nova list也可以看到分配给虚拟机的地址,但是登入虚拟机后,用ifconfig查看没有地址,这是怎么回事。系统环境是CentOs x86_64
应该dhcp_agent有问题
好久没搞,等H版本,来个彻底的更正把。
你的ifconfig没有网卡的问题解决了吗?我的也有这个问题,请帮忙回复一下,谢谢!
2014-08-27 17:19:10 DEBUG [quantum.openstack.common.rpc.amqp] received {u’_context_roles’: [u’admin’], u’_context_read_deleted’: u’no’, u’_context_tenant_id’: None, u’args’: {u’agent_state’: {u’agent_state’: {u’topic’: u’N/A’, u’binary’: u’quantum-openvswitch-agent’, u’host’: u’compute-node2.example.com’, u’agent_type’: u’Open vSwitch agent’, u’configurations’: {u’devices’: 1}}}, u’time’: u’2013-08-27T09:19:09.992624′}, u’_unique_id’: u’533aeb052ee54ecf9806545cf7f7262a’, u’_context_is_admin’: True, u’version’: u’1.0′, u’_context_project_id’: None, u’_context_timestamp’: u’2013-08-26 11:34:54.120492′, u’_context_user_id’: None, u’method’: u’report_state’}
2013-08-27 17:19:10 DEBUG [quantum.openstack.common.rpc.amqp] unpacked context: {‘user_id’: None, ‘roles’: [u’admin’], ‘tenant_id’: None, ‘is_admin’: True, ‘timestamp’: u’2013-08-26 11:34:54.120492′, ‘project_id’: None, ‘read_deleted’: u’no’}
2013-08-27 17:19:10 ERROR [quantum.openstack.common.rpc.amqp] Exception during message handling
Traceback (most recent call last):
File “/usr/lib/python2.6/site-packages/quantum/openstack/common/rpc/amqp.py”, line 430, in _process_data
rval = self.proxy.dispatch(ctxt, version, method, **args)
File “/usr/lib/python2.6/site-packages/quantum/common/rpc.py”, line 43, in dispatch
quantum_ctxt, version, method, **kwargs)
File “/usr/lib/python2.6/site-packages/quantum/openstack/common/rpc/dispatcher.py”, line 133, in dispatch
return getattr(proxyobj, method)(ctxt, **kwargs)
File “/usr/lib/python2.6/site-packages/quantum/db/agents_db.py”, line 173, in report_state
plugin.create_or_update_agent(context, agent_state)
File “/usr/lib/python2.6/site-packages/quantum/db/agents_db.py”, line 145, in create_or_update_agent
context, agent[‘agent_type’], agent[‘host’])
File “/usr/lib/python2.6/site-packages/quantum/db/agents_db.py”, line 121, in _get_agent_by_type_and_host
Agent.host == host).one()
File “/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py”, line 2184, in one
ret = list(self)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py”, line 2227, in __iter__
return self._execute_and_instances(context)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/orm/query.py”, line 2242, in _execute_and_instances
result = conn.execute(querycontext.statement, self._params)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py”, line 1449, in execute
params)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py”, line 1584, in _execute_clauseelement
compiled_sql, distilled_params
File “/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py”, line 1698, in _execute_context
context)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py”, line 1691, in _execute_context
context)
File “/usr/lib64/python2.6/site-packages/sqlalchemy/engine/default.py”, line 331, in do_execute
cursor.execute(statement, parameters)
OperationalError: (OperationalError) no such table: agents u’SELECT agents.id AS agents_id, agents.agent_type AS agents_agent_type, agents.binary AS agents_binary, agents.topic AS agents_topic, agents.host AS agents_host, agents.admin_state_up AS agents_admin_state_up, agents.created_at AS agents_created_at, agents.started_at AS agents_started_at, agents.heartbeat_timestamp AS agents_heartbeat_timestamp, agents.description AS agents_description, agents.configurations AS agents_configurations \nFROM agents \nWHERE agents.agent_type = ? AND agents.host = ?’ (u’Open vSwitch agent’, u’compute-node2.example.com’)
是执行quantum-server显示的信息,,可能的原因是什么,谢谢
您的日志对我很有帮助,非常感谢!
我在配置keystone的时候,总是出现如下错误:
执行:bash keystone.sh
错误:’NoneType’ object has no attribute ‘__getitem__’
何解?
Failed to fetch http://ubuntu-cloud.archive.canonical.com/ubuntu/pool/main/n/nova/python-nova_2013.1.4-0ubuntu1.1~cloud0_all.deb 404 Not Found
陈老师,源上没有这个包,python-nova_2013.1.4-0ubuntu1.1~cloud0_all.deb
源上的包名是python-nova_2013.1.4-0ubuntu1~cloud0_all.deb。这个怎么处理啊?
陈老师:
您好!
安装完之后执行glance image-list出现:Error communicating with http://localhost:9292 [Errno 111] Connection refused
已经尝试过apt-get autoremove -y glance 以及apt-get install -y glance ,但依旧无果。