Jul 012012
 

以前使用百度空间的文档有不少错误,这次就重新把文档整理一遍,发布到新的blog上。这其实是用windows live writer本地完成,看看效果如何。

这个文档是描述Openstack Essex安装,把所有的服务安装在一台机器上。包括组件Nova,Keystone, Glance, Dashboard.

文档更新记录

  1. 2012年7月9号更新:加上nova-volume,对文档安装了2遍,基本相信不会有问题。(IP改成10.1.199.17)
  2. 2012年7月11日更新:修改nova.conf, 创建网络的时候,加入multi_host=T参数
  3. 2012年7月12日更新: nova和glance的配置文件,采用租户service,用户glance和nova来启动,这应该才是正确设置,这也是参考作者的原文
  4. 2012年7月20日更新:多节点的测试,基本完成。
  5. 2012年7月23日更新:  修改keystone脚本,去掉demo账号,减少大家的困惑. 验证了一遍多节点的安装, 没发现任何的问题. 参考onestack脚本,把一些修改变成sed修改。
  6. 2012年8月1日更新: 调整一下nova.conf, 多节点测试。
  7. 2012年8月7日更新:把nova.conf 和网卡设置,作为附件提供下载,包括控制节点和计算节点。配置文件
  8. 2012年9月4日更新:加上swift集成keystone和glance,修改了nova.conf 文件,由于文档现在支持目录,也调整一下文章标题的编号。
  9. 2012年9月24日更新:估计这次是最后一次调整,Folsom马上就要正式发布,在发布前,把以前文档有遗憾的地方全部调整了。把默认的密码改成password。基本已经验证了一次,没任何的问题。很多朋友安装失败,基本都是因为修改IP地址导致的,这次调整的命令,让安装过程更加方便,IP设置的地方,采用变量,自动调整。已经反复验证了两遍,没发现任何的问题。
  10. 2012年9月25日更新:马上就要过国庆,所以这次真的是最后一次修改。把最后的遗憾解决掉。mysql的安装,已经不需要输入密码。应该已经很灵活。Fix IP,也是采用变量。大家参考文档安装的时候,只需要修改 novarc, 就可以,别的基本都不需要做任何的修改,唯一还需要调整的就是创建floating 网络的时候,需要根据你的情况,设置一下。
  11. 2012年9月26日更新:实在忍不住,把floating IP,fixIP都设置变量,并且fix IP,是直接取eth0的IP地址的前3位合成,这样可以说,算是全部符合我的要求。
  12. 2012年10月8日更新:把服务账户的密码,也是采用变量,export SERVICE_PASSWORD=password, 这样你可以根据自己的需要调整密码。
  13. 2012年10月16日更新:把单节点,多节点,swift的文档测试了一遍,全部都提供sed命令修改,并且IP地址和密码等设置,全部都是用变量。目前swift可以结合glance工作,不过在dashbord里,snapshot的时候,如果image太大,会导致失败。我使用Cirros的image测试是没问题,ubuntu的image是无法snapshot保存到swift上。说明swift还是有地方需要优化。作为一个POC环境搭建,应该算是基本满足需求。目前在我的实验环境下,使用ubuntu内网的源,从安装OS到全部搭建完成,应该不需要超过30分钟。

目前本文档不包括quantum。

机器名 eth0 eth1 说明
node17 10.1.199.17/24 没有IP bridge 控制节点+计算节点+网络节点+volume+ntp 服务器,
FlatDHCP和multi_host=T
swift
node18 10.1.199.18/24 没有IP Bridge 计算节点+网络节点

英文原文   百度空间原文  计算节点安装

文档改动

  1. Nova,Keystone,Glance,采用mysql
  2. Keystone 的endpoint也导入到mysql里

 

 

基本介绍

Openstack的网络比较复杂,也很难理解。大家可以直接看http://www.mirantis.com/blog/openstack-networking-flatmanager-and-flatdhcpmanager/

flat-dhcp-networking-diagrams-4

上图的例子:10.0.0.0/24, 是fix IP的网络。这是multihost=true的设置。这个图是可以很好帮助大家理解Openstack的网络。

  • 我文档和这个图有点不一样,我是使用eth1做为bridge,而不是eth0
  • 虚拟机间互相通讯,是直接通过br100通信
  • 和外网通信,才需要通过另外一块网卡,floating IP。

 

准备系统

安装ubuntu 12.04

最小化安装,只需要安装ssh server就可以。

apt-get update && apt-get -y dist-upgrade

设置网络

Eth0: 10.1.199.17

Eth1: 不需要设置IP

编辑 /etc/network/interfaces,需要注意一点是对于ubuntu 12.04,dns的设置,推荐在网卡设置。

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.1.199.17
hwaddress ether 00:25:90:67:ce:64
netmask 255.255.255.0
network 10.1.199.0
gateway 10.1.199.1
dns-search chenshake.com
dns-nameservers 8.8.8.8

auto eth1
iface eth1 inet manual
up ifconfig eth1 up

查看当前网卡情况

# mii-tool 
eth0: negotiated 1000baseT-FD flow-control, link ok
eth1: negotiated 1000baseT-FD flow-control, link ok

设置hostname (可选)

这是我的习惯,Openstack基本是不需要使用hostname。大家可以忽略。

# cat /etc/hostname 
node17

# cat /etc/hosts
127.0.0.1       localhost
10.1.199.17       node17.chenshake.com    node17

# 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

# hostname
node17

# hostname -f
node17.chenshake.com

 

NTP服务器

对于单节点来说,NTP服务器,并不是必须的。如果是多台机器的环境。就需要设置所有的节点,都吧ntp服务指向相同的一个ntp服务器上。

apt-get -y install ntp

设置NTP

编辑 /etc/ntp.conf ,在 server ntp.ubuntu.com 下添加两行

server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 10

或者直接运行下面命令

sed -i 's/server ntp.ubuntu.com/server ntp.ubuntu.com\nserver 127.127.1.0\nfudge 127.127.1.0 stratum 10/g' /etc/ntp.conf

 

重启NTP服务

service ntp restart

上面设置 server 127.127.1.0 的含义,大家可以参考文档

设置ISCSI (可选)

这是为Nova-volume服务使用的。不过目前nova-volume并不稳定,大家测试一下就可以。未来的Folsom版本,将会有新的组件来替代Nova-volume。

如果你不测试nova volume,可以不安装

apt-get -y install tgt

nova-compute节点,需要安装ISCSI客户端

apt-get install -y open-iscsi open-iscsi-utils

Nova-volume (可选)

如果你没有单独的分区,那么就不建议你测试,采用文件模拟的方式,基本是不可行。

我安装系统的时候,创建了一个nova-volume的分区,我先umount,再创建一个volume,名字为nova-volumes。nova的默认使用的volume的名字就是叫 nova-volumes. 如果你希望改变,就需要指定在nova.conf 文件里。

查看分区情况

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda8       623G  941M  591G   1% /
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           790M  276K  789M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
/dev/sda1       138M   30M  101M  23% /boot
/dev/sda7        97G  188M   92G   1% /nova-volume
/dev/sda6        97G  188M   92G   1% /swift

创建nova-volumes 卷

umount /dev/sda7
pvcreate /dev/sda7
vgcreate nova-volumes /dev/sda7

编辑 /etc/fstab , 注释掉nova-volumes开机加载,否则会导致你开机无法启动。我是安装过程,直接创建了一个nova-volume的分区

sed -i '/nova-volume/s/^/#/' /etc/fstab

 

Bridge

目前Openstack的网络是通过linux的bridge和iptables来实现的。

apt-get -y install bridge-utils

重启网络

/etc/init.d/networking restart

RabbitMQ和Memcache 等

RabbitMQ是用来做调度使用。Memcache是给Dashboard使用。

apt-get install -y rabbitmq-server memcached python-memcache kvm libvirt-bin curl

环境变量

大家经常参考文档安装不成功,基本都是因为你修改的IP地址或者你更改了我文档默认的密码。为了让文档更加灵活,所以需要设置一下环境变量。

你可以根据你的实际情况修改admin的密码和mysql的密码。下面文档和数据库相关的密码都是相同,你只需要修改novarc就可以。

运行完下面的命令,你再对novarc进行修改。

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 FIXED_RANGE=10.0.0.0/24
export FLOATING_RANGE=$(/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d ":" | awk -F "." '{print $1"."$2"."$3}').224/27
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export SERVICE_TOKEN=$(openssl rand -hex 10)
export MASTER="$(/sbin/ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d ":")"
EOF

根据你的需求进行调整,

我的novarc的内容

# cat novarc 
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=password
export MYSQL_PASS=password
export SERVICE_PASSWORD=password
export FIXED_RANGE=10.0.0.0/24
export FLOATING_RANGE=10.1.199.224/27
export OS_AUTH_URL="http://localhost:5000/v2.0/"
export SERVICE_ENDPOINT="http://localhost:35357/v2.0"
export SERVICE_TOKEN=d5d892e6de00a922f9fb
export MASTER="10.1.199.17"

确认没有问题或者进行修改,运行

source novarc
echo "source novarc">>.bashrc

MYSQL

在Openstack组件里,Nova,Keystone, Glance, 都需要用到数据库。所以我们需要创建相关的数据库和用户。

 

应用数据库 数据库用户 密码
mysql root password
nova nova password
glance glance password
keystone keystone password
     
     

 

安装

mysql自动安装

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

Openstack都是Python写的,所以你需要python-mysqldb,安装过程,就不会提示你输入root密码

apt-get install -y mysql-server python-mysqldb

配置

编辑/etc/mysql/my.cnf, 允许网络访问mysql

#bind-address           = 127.0.0.1
bind-address            = 0.0.0.0

或者直接运行下面命令

sed -i 's/127.0.0.1/0.0.0.0/g' /etc/mysql/my.cnf

重启mysql服务

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';
FLUSH PRIVILEGES;
EOF

Keystone

Keystone是Openstack的核心,所有的组件,都需要通过keystone进行认证和授权。

租户(tenant) 用户 密码  
admin admin password  
service nova password  
  glance password  
       
       

安装

apt-get install -y keystone python-keystone python-keystoneclient

配置

编辑/etc/keystone/keystone.conf,需要修改

  • keystone的默认token是ADMIN,我这里修改成随机生成,查看novarc获得
  • 默认是采用sqlite连接,我们需要改成mysql
[DEFAULT]
#bind_host = 0.0.0.0
public_port = 5000
admin_port = 35357
#admin_token = ADMIN
admin_token = d5d892e6de00a922f9fb

[sql]
#connection = sqlite:////var/lib/keystone/keystone.db
connection = mysql://keystone:password@10.1.199.17/keystone

 

或者运行下面命令,很多朋友都是因为修改错误导致错误,建议直接使用下面命令进行修改。

sed -i -e " s/admin_token = ADMIN/admin_token = $SERVICE_TOKEN/g" /etc/keystone/keystone.conf
sed -i '/connection = .*/{s|sqlite:///.*|mysql://'"keystone"':'"$MYSQL_PASS"'@'"$MASTER"'/keystone|g}' /etc/keystone/keystone.conf

重启服务

service keystone restart

同步keystone数据库

keystone-manage db_sync

keystone的数据库,需要导入数据和endpoint,你可以一步一步用命令行导入,可以参考keystone白皮书

为了方便,你可以直接使用下面2个脚本来进行全部的设置。

  1. keystone_data.sh导入用户信息
  2. endpoints.sh 设置endpoint

Keystone Data

wget http://www.chenshake.com/wp-content/uploads/2012/07/keystone_data.sh_.txt
mv keystone_data.sh_.txt keystone_data.sh
bash keystone_data.sh

没任何输出,就表示正确,可以通过下面命令检查

echo $?

显示0,就表示脚本正确运行,千万不要重复运行脚本。

Endpoint 导入

wget http://www.chenshake.com/wp-content/uploads/2012/07/endpoints.sh_.txt
mv endpoints.sh_.txt endpoints.sh
bash endpoints.sh

需要注意的是,这个脚本是假设你的glance服务和swift都是安装相同的服务器,如果你的glance在不同的服务器,你需要调整一下endpoint,可以在数据库里调整。

 

测试

可以使用curl命令来测试。

命令的格式如下

curl -d '{"auth": {"tenantName": "adminTenant", "passwordCredentials":\
{"username": "adminUser", "password": "secretword"}}}' -H "Content-type:\
application/json" http://IP:35357/v2.0/tokens | python -mjson.tool

你需要替换一下。

curl -d '{"auth": {"tenantName": "admin", "passwordCredentials":{"username": "admin", "password": "password"}}}' -H "Content-type:application/json" http://$MASTER:35357/v2.0/tokens | python -mjson.tool

你就可以获得一个24小时的token。(注意,上面的脚本没有创建demo用户,所以没法用demo账号去测试)

 "token": {
            "expires": "2012-09-27T02:09:37Z", 
            "id": "c719448800214e189da04772c2f75e23", 
            "tenant": {
                "description": null, 
                "enabled": true, 
                "id": "dc7ca2e51139457dada2d0f7a3719476", 
                "name": "admin"
            }

通过下面命令,可以检查keystone的设置是否正确。

root@node17:~# keystone user-list
+----------------------------------+---------+----------------------+--------+
|                id                | enabled |        email         |  name  |
+----------------------------------+---------+----------------------+--------+
| 1189d15892d24e00827e707bd2b7ab07 | True    | admin@chenshake.com  | admin  |
| cca4a4ed1e8842db99239dc98fb1617f | True    | glance@chenshake.com | glance |
| daccc34eacc7493989cd13df93e7f6bc | True    | swift@chenshake.com  | swift  |
| ee57b02c535d44f48943de13831da232 | True    | nova@chenshake.com   | nova   |
+----------------------------------+---------+----------------------+--------+

 

root@node17:~# keystone endpoint-list
+----------------------------------+-----------+-----------------------------------------------+-----------------------------------------------+------------------------------------------+
|                id                |   region  |                   publicurl                   |                  internalurl                  |                 adminurl                 |
+----------------------------------+-----------+-----------------------------------------------+-----------------------------------------------+------------------------------------------+
| 0b04e1baac1a4c9fb07490e0911192cf | RegionOne | http://10.1.199.17:5000/v2.0 | http://10.1.199.17:5000/v2.0 | http://10.1.199.17:35357/v2.0 |
| 0d3315627d52419fa08095f9def5d7e4 | RegionOne | http://10.1.199.17:8776/v1/%(tenant_id)s | http://10.1.199.17:8776/v1/%(tenant_id)s | http://10.1.199.17:8776/v1/%(tenant_id)s |
| 1c92290cba9f4a278b42dbdf2802096c | RegionOne | http://10.1.199.17:9292/v1 | http://10.1.199.17:9292/v1 | http://10.1.199.17:9292/v1 |
| 56fe83ce20f341d99fc576770c275586 | RegionOne | http://10.1.199.17:8774/v2/%(tenant_id)s | http://10.1.199.17:8774/v2/%(tenant_id)s | http://10.1.199.17:8774/v2/%(tenant_id)s |
| 5fb51aae00684e56818869918f86b564 | RegionOne | http://10.1.199.17:8080/v1/AUTH_%(tenant_id)s | http://10.1.199.17:8080/v1/AUTH_%(tenant_id)s | http://10.1.199.17:8080/v1 |
| aaac7663872d493b85d9e583329be9ed | RegionOne | http://10.1.199.17:8773/services/Cloud | http://10.1.199.17:8773/services/Cloud | http://10.1.199.17:8773/services/Admin |
+----------------------------------+-----------+-----------------------------------------------+-----------------------------------------------+------------------------------------------+

可以使用下面命令来查看结果

keystone tenant-list
keystone user-list
keystone role-list

Glance

Glance是提供镜像管理服务,可以理解成一个中间件,后面的存储可以是本地存储,也可以使用swift存储。

安装

apt-get install -y glance glance-api glance-client glance-common glance-registry python-glance

配置

编辑 /etc/glance/glance-api-paste.ini,/etc/glance/glance-registry-paste.ini,两个文件,都是修改文档最后3行

#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
admin_tenant_name = service
admin_user = glance
admin_password = password

也可以直接运行下面两条命令,实现修改

sed -i -e " s/%SERVICE_TENANT_NAME%/service/g; s/%SERVICE_USER%/glance/g; s/%SERVICE_PASSWORD%/$SERVICE_PASSWORD/g; " /etc/glance/glance-api-paste.ini
sed -i -e " s/%SERVICE_TENANT_NAME%/service/g; s/%SERVICE_USER%/glance/g; s/%SERVICE_PASSWORD%/$SERVICE_PASSWORD/g; " /etc/glance/glance-registry-paste.ini

编辑/etc/glance/glance-registry.conf改成使用mysql验证

#sql_connection = sqlite:////var/lib/glance/glance.sqlite
sql_connection = mysql://glance:password@10.1.199.17/glance

或者运行下面命令实现修改

sed -i '/sql_connection = .*/{s|sqlite:///.*|mysql://'"glance"':'"$MYSQL_PASS"'@'"$MASTER"'/glance|g}' /etc/glance/glance-registry.conf

编辑/etc/glance/glance-registry.conf/etc/glance/glance-api.conf,都在文件末尾添加两行

[paste_deploy]
flavor = keystone

或者运行下面命令,完成修改

cat <<EOF >>/etc/glance/glance-api.conf
[paste_deploy]
flavor = keystone
EOF
cat <<EOF >>/etc/glance/glance-registry.conf 
[paste_deploy]
flavor = keystone
EOF

 

重启glance服务

service glance-api restart && service glance-registry restart

同步glance数据库

# glance-manage version_control 0
# glance-manage db_sync
/usr/lib/python2.7/dist-packages/glance/registry/db/migrate_repo/versions/003_add_disk_format.py:47: SADeprecationWarning: useexisting is deprecated.  Use extend_existing.
  useexisting=True)

看到下面的输出,表示正常的。

重启glance服务

service glance-api restart && service glance-registry restart

测试

glance index

没有输出,表示正常,因为目前还没有镜像。

下载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 add name=cirros-0.3.0-x86_64 is_public=true  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 add name="Ubuntu 12.04 cloudimg amd64" is_public=true container_format=ovf \
disk_format=qcow2 < /root/precise-server-cloudimg-amd64-disk1.img

 

user:ubuntu

只能使用密钥登陆。

查看image

# glance index
ID                                   Name                           Disk Format          Container Format     Size          
------------------------------------ ------------------------------ -------------------- -------------------- --------------
5dcf84a0-b491-4710-8d7a-5531bce0dedc cirros-0.3.0-x86_64            qcow2                bare                        9761280
f4f62d8a-3e5b-4136-8547-ce3cb79771aa Ubuntu 12.04 cloudimg amd64    qcow2                ovf                       230817792

 

Nova

安装

apt-get install -y nova-api nova-cert nova-common nova-objectstore \
nova-scheduler nova-volume nova-consoleauth novnc python-nova python-novaclient \
nova-compute nova-compute-kvm  nova-network

如果你希望控制节点,不打算跑计算服务,装完后,把nova compute的服务停掉也可以。

 

配置

编辑 /etc/nova/api-paste.ini , 修改末尾3行

#admin_tenant_name = %SERVICE_TENANT_NAME%
#admin_user = %SERVICE_USER%
#admin_password = %SERVICE_PASSWORD%
admin_tenant_name = service
admin_user = nova
admin_password = password

或者运行下面命令进行修改

sed -i -e " s/%SERVICE_TENANT_NAME%/service/g; s/%SERVICE_USER%/nova/g; s/%SERVICE_PASSWORD%/$SERVICE_PASSWORD/g; " /etc/nova/api-paste.ini

编辑/etc/nova/nova.conf 文件,

下面是我的nova.conf 文件的配置。需要注意的一点是Essex版本的nova,配置文件不需要前面加上 — 。日后我会逐步调整nova.conf 文件,让他更加可读和方便大家理解。

为了简单,大家直接copy下面内容,运行就可以。

如果你是在虚拟机里安装,你需要吧 libvirt_type=kvm 改成 ibvirt_type=qemu

cat >/etc/nova/nova.conf <<EOF
[DEFAULT]
###### LOGS/STATE
#verbose=True
verbose=False

###### AUTHENTICATION
auth_strategy=keystone

###### SCHEDULER
#--compute_scheduler_driver=nova.scheduler.filter_scheduler.FilterScheduler
scheduler_driver=nova.scheduler.simple.SimpleScheduler

###### VOLUMES
volume_group=nova-volumes
volume_name_template=volume-%08x
iscsi_helper=tgtadm

###### DATABASE
sql_connection=mysql://nova:$MYSQL_PASS@$MASTER/nova

###### COMPUTE
libvirt_type=kvm
#libvirt_type=qemu
connection_type=libvirt
instance_name_template=instance-%08x
api_paste_config=/etc/nova/api-paste.ini
allow_resize_to_same_host=True
libvirt_use_virtio_for_bridges=true
start_guests_on_host_boot=true
resume_guests_state_on_host_boot=true

###### APIS
osapi_compute_extension=nova.api.openstack.compute.contrib.standard_extensions
allow_admin_api=true
s3_host=$MASTER
cc_host=$MASTER

###### RABBITMQ
rabbit_host=$MASTER

###### GLANCE
image_service=nova.image.glance.GlanceImageService
glance_api_servers=$MASTER:9292

###### NETWORK
network_manager=nova.network.manager.FlatDHCPManager
force_dhcp_release=True
dhcpbridge_flagfile=/etc/nova/nova.conf
dhcpbridge=/usr/bin/nova-dhcpbridge
firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver
public_interface=eth0
flat_interface=eth1
flat_network_bridge=br100
fixed_range=$FIXED_RANGE
multi_host=true

###### NOVNC CONSOLE
novnc_enabled=true
novncproxy_base_url= http://$MASTER:6080/vnc_auto.html
vncserver_proxyclient_address=$MASTER
vncserver_listen=$MASTER

########Nova
logdir=/var/log/nova
state_path=/var/lib/nova
lock_path=/var/lock/nova

#####MISC
use_deprecated_auth=false
root_helper=sudo nova-rootwrap
EOF

设置目录权限

chown -R nova:nova /etc/nova

重启所有服务

service rabbitmq-server restart
service libvirt-bin restart
service nova-scheduler restart
service nova-network restart
service nova-cert restart
service nova-compute restart
service nova-api restart
service nova-objectstore restart
service nova-volume restart

由于服务数量比较多,创建一个脚本 restart.sh 来重启所有服务。

#!/bin/bash
for a in rabbitmq-server libvirt-bin nova-network nova-cert nova-compute \
nova-api nova-objectstore nova-scheduler nova-volume \
novnc  nova-consoleauth; do service "$a" stop; done
for a in rabbitmq-server libvirt-bin nova-network nova-cert nova-compute \
nova-api nova-objectstore nova-scheduler nova-volume \
novnc  nova-consoleauth; do service "$a" start; done

运行脚本

bash restart.sh
Stopping rabbitmq-server: rabbitmq-server.
libvirt-bin stop/waiting
nova-network stop/waiting
nova-cert stop/waiting
nova-compute stop/waiting
nova-api stop/waiting
nova-objectstore stop/waiting
nova-scheduler stop/waiting
nova-volume stop/waiting
 * Stopping OpenStack NoVNC proxy nova-novncproxy                 [ OK ] 
nova-consoleauth stop/waiting
Starting rabbitmq-server: SUCCESS
rabbitmq-server.
libvirt-bin start/running, process 9683
nova-network start/running, process 9703
nova-cert start/running, process 9713
nova-compute start/running, process 9724
nova-api start/running, process 9734
nova-objectstore start/running, process 9744
nova-scheduler start/running, process 9759
nova-volume start/running, process 9775
 * Starting OpenStack NoVNC proxy  nova-novncproxy                 [ OK ] 
nova-consoleauth start/running, process 9839

 

同步数据库

nova-manage db sync

会有一堆的输出,不过应该是没问题的。nova数据库里已经有相应的表,就表示正确。

# nova-manage db sync
2012-07-19 18:43:34 WARNING nova.utils [-] /usr/lib/python2.7/dist-packages/sqlalchemy/pool.py:639: SADeprecationWarning: The 'listeners' argument to Pool (and create_engine()) is deprecated.  Use event.listen().
  Pool.__init__(self, creator, **kw)

2012-07-19 18:43:34 WARNING nova.utils [-] /usr/lib/python2.7/dist-packages/sqlalchemy/pool.py:145: SADeprecationWarning: Pool.add_listener is deprecated.  Use event.listen()
  self.add_listener(l)

2012-07-19 18:43:34 AUDIT nova.db.sqlalchemy.fix_dns_domains [-] Applying database fix for Essex dns_domains table.

创建Fix IP

FIX IP,就是分配给虚拟机的实际IP地址。这些数据都会写入数据库。$FIXED_RANGE 在novarc里设置。

nova-manage network create private --fixed_range_v4=$FIXED_RANGE \
 --num_networks=1 --bridge=br100 --bridge_interface=eth1 \
--network_size=256 --multi_host=T

创建floating IP

所谓Floating IP,是亚马逊EC2的定义。简单说,就是公网的IP。他其实是通过类似防火墙类似,做一个映射。实际上是通过iptables来实现映射.

nova-manage floating create --ip_range=$FLOATING_RANGE

重启nova服务

bash restart.sh 
libvirt-bin stop/waiting
nova-network stop/waiting
nova-cert stop/waiting
nova-compute stop/waiting
nova-api stop/waiting
nova-objectstore stop/waiting
nova-scheduler stop/waiting
nova-volume stop/waiting
 * Stopping OpenStack NoVNC proxy nova-novncproxy                                           [ OK ] 
nova-consoleauth stop/waiting
libvirt-bin start/running, process 23232
nova-network start/running, process 23252
nova-cert start/running, process 23262
nova-compute start/running, process 23273
nova-api start/running, process 23285
nova-objectstore start/running, process 23303
nova-scheduler start/running, process 23321
nova-volume start/running, process 23336
 * Starting OpenStack NoVNC proxy  nova-novncproxy                                          [ OK ] 
nova-consoleauth start/running, process 23386

 

 

测试

可以尝试用下面命令去检查nova的状况

nova-manage service list

nova-manage

下面命令可以参考,详细的命令使用,可以参考 Openstack命令集

nova list
nova image-list
nova floating-ip-create
nova flavor-list
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova secgroup-list
nova secgroup-list-rules default

命令行创建虚拟机的过程

nova keypair-add oskey > oskey.priv
chmod 600 oskey.priv
nova flavor-list
nova image-list
nova boot --flavor 2 --key_name oskey --image ea3ffba1-065e-483f-bfe2-c84184ee76be test1
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0

这个时候,你在服务器上可以直接ssh到虚拟机上,ubuntu的虚拟机,用户是ubuntu。虚拟机的Ip

# nova list
+--------------------------------------+-------+--------+------------------+
|                  ID                  |  Name | Status |     Networks     |
+--------------------------------------+-------+--------+------------------+
| 61e93d62-c926-46fa-8e0c-48073b7e58b0 | test1 | ACTIVE | private=10.0.0.2 |
| 6976e539-32d9-48a6-9fb5-28a3cdb55f71 | test2 | ACTIVE | private=10.0.0.4 |
+--------------------------------------+-------+--------+------------------+

在服务器上直接ssh到虚拟机,如果你在远程,就需要分配floating IP。

ssh -i oskey.priv ubuntu@10.0.0.4

登陆虚拟机后,你可以查看一下路由

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.3        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0

显示网关是10.0.0.3,这个时候,你看一下

root@node07:~# ifconfig
br100     Link encap:Ethernet  HWaddr 00:e0:81:d8:4a:23  
          inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ccfc:5aff:fef5:4345/64 Scope:Link

结合上面的那个图,应该可以很好的帮助你的理解。如果你安装多节点,就更容易深入理解。

需要注意的是:br100的IP,需要你创建第一个虚拟机,他才会获得IP。

Dashobard

安装

apt-get install -y apache2 libapache2-mod-wsgi openstack-dashboard

重启nova api

restart nova-api

这个时候,就可以访问dashboard。

测试

登陆dashobard

http://10.1.199.17
user:admin
pass:password

Swift

由于swift的文档比较长,所以单独一个文档

http://www.chenshake.com/swift-single-version/

 

附录

理解project和user关系

上面需要注意的一个地方,就是 project的含义。以前的版本是tenant,租户意思,基本可以理解成企业。

你可以创建用户,用户属于一个project。创建用户的时候,就需要设置密码。

创建虚拟机

下面的流程,是复制我以前的文档,内容是没问题的。

1:设置安全组 Security group

安全组,其实就是虚拟机前面的防护墙。默认是关闭所有的包。需要打开防护墙。为了简单,我们把default的防护墙,端口全部打开。生产环境就不要这样操作。默认是default规则,直接修改default就可以。默认default,是阻止所有的访问。

安全组设置

 

2:创建密钥

为了安全考虑,ubuntu提供的模板,都是采用密钥登录。简单点说,你创建一对公钥和私钥。私钥下载到本地保存,公钥存放在服务器上,创建虚拟机的时候,会把公钥注入到虚拟机里。

这个时候,你如果有私钥,就可以直接登录。

下载私钥

点击create keypair,就会提示你下载私钥。私钥是pem后缀。

3:创建vm

创建vm的时候,你会选择keypair,安全组。

创建完成后,得到其实是一个内网IP

4:floating IP

给虚拟机分配一个 floating IP,可以理解成是公网的IP

关联vm

需要等待大概1分钟,才能看到关联后的结果

floating IP

 

5:ssh 访问vm

这个看你的客户端是什么,linux,SecureCRT,putty,都有所不同。

对于ubuntu提供的image,ssh的用户名是:ubuntu,

SecureCRT 6.x版本

对于6.x版本,已经可以直接使用pem后缀的密钥

secureCRT

putty登录

对于putty,需要对密钥进行转换。

http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

到官方网站下载:PuTTYgen这个工具

PUTTYGEN,通过load,找到刚才下载的私钥,注意,要选择全部文件,才可以找到。通过转换,选择保存私钥就可以

putty

存放到本地。

设置putty使用密钥

putty使用密钥

 

linux客户端ssh登录vm

如果你是linux服务器上,你可以上传密钥到服务器上

ssh -i key_for_openstack.pem ubuntu@192.168.22.34

就可以直接登录虚拟机。

  314 Responses to “Ubuntu 12.04 Openstack Essex 安装(单节点)”

  1. 在制作suse10镜像时使用这样的命令kvm -m 4096 -cdrom SLES-10-SP2-DVD-x86_64-GM-DVD1.iso -drive file=suse10.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :2
    通过vnc登录后可以加载镜像,但是会提示找不到硬盘,相同的命令制作centos opensuse都没问题,不知道针对suse10这样比较老的系统问题出在哪里?望不吝赐教。

  2. 陈老师您好,我安装您的步骤一步一步安装的,到glance的时候,执行glance-manage version_control 0
    出错了。前面一直没有问题。不知道是什么原因啊??求解

  3. 陈老师,您好:
    我是用VMware Workstation操作的,安装多次均有错误,请问呢VMware能完整搭建起这个环境么

    • 我反正是没成功过。不过应该还是设置的问题,老外都是在virtualbox下测试。

      • 用esx 5i可以安装成功

      • 要在esxi 5i的系统文件/etc/vmware/config最后添加vhv.allow = “TRUE” 一行。重启 VMware ESXi 后编辑虚拟机选项(需要先关闭虚拟机),打开 Edit virtual machine settings 对话框,在 options 页面的 General Options 选项里把 Guest Operating System 的类型换成 Other 里面的 VMware ESxi 5.x,

        如果是VMware Workstation,
        1.在vmware workstation上的虚拟机需要修改 *.vmx文件
        vcpu.hotadd = “TRUE”
        变更为
        vcpu.hotadd = “FALSE”
        重新启动机器,如果执行命令:
        virsh
        进入控制台就没有问题了。
        2. 修改nova配置文件/etc/nova/nova.conf
        #–libvirt_type=kvm
        更改为qemu
        –libvirt_type=qemu
        3. 修改/etc/nova/nova-compute.conf
        –libvirt_type=qemu

        • 这个我改天一定验证一下。有朋友验证成功,也请回应一下。

          • 这两个我都验证成功过。现在就是在虚拟机上做实验,呵呵

        • “1.在vmware workstation上的虚拟机需要修改 *.vmx文件
          vcpu.hotadd = “TRUE”
          变更为
          vcpu.hotadd = “FALSE”
          重新启动机器,如果执行命令:
          virsh
          进入控制台就没有问题了。”
          *.vmx文件怎么修改啊?

          • 在你的虚拟机所在目录,例如:E:\My Virtual Machines\U12.04_155_openstack_node01\U12.04_155_openstack_node01.vmx
            用UltraEdit-32 打开它,找到vcpu.hotadd = “TRUE” 这一项,把它改成vcpu.hotadd = “FALSE” ,保存即可。

            祝好!

          • 谢谢分享。

        • 你在VMware Workstation上登录dashboard后启动instance成功了没?我怎么Task那一栏老是spawning啊?求指教

          • 还有问下那个

            ”五:Nova

            1:安装
            apt-get install -y nova-api nova-cert nova-common nova-objectstore \
            nova-scheduler nova-volume nova-consoleauth novnc python-nova python-novaclient \
            nova-compute nova-compute-kvm nova-network“
            这里”nova-compute-kvm “要不要改为nova-compute-qemu

          • 仔细按照陈老师的教程装就行了,没问题的,我都装了N遍了。

        • 我是用虚拟机VMware Workstation安装的。老出错,不知道用VMware Workstation该改哪些地方。尤其是不支持KVM的CPU。比如

          RabbitMQ是用来做调度使用。Memcache是给Dashboard使用。
          apt-get install -y rabbitmq-server memcached python-memcache kvm libvirt-bin”这里要不要把KVM改成qemu?求大神指教

  4. 在运行./keystone_data.sh时 出现:
    No handlers could be found for logger “keystoneclient.client”
    Conflict occurred attempting to store tenant. (IntegrityError) (1062, “Duplicate entry ‘admin’ for key ‘name'”) ‘INSERT INTO tenant (id, name, extra) VALUES (%s, %s, %s)’ (’50eadb0c817942febcbedb80c5520956′, ‘admin’, ‘{“enabled”: true, “description”: null}’) (HTTP 409)

    是什么原因造成的?,是不是数据库的问题?

  5. 陈老师,卷附加不到实例,您估计是什么原因呢?

    • 这个应该和你的镜像有关。镜像是你自己做的?

      • 是的,镜像是我自已做的。自已做的镜像是不能附加volume的吗?我查看nova-compute.log,有以下提示:2012-07-24 14:33:08 TRACE nova.rpc.amqp ProcessExecutionError: Unexpected error while running command.
        2012-07-24 14:33:08 TRACE nova.rpc.amqp Command: sudo nova-rootwrap iscsiadm -m node -T iqn.2010-10.org.openstack:volume-00000011 -p 192.168.0.23:3260 –rescan
        2012-07-24 14:33:08 TRACE nova.rpc.amqp Exit code: 255
        2012-07-24 14:33:08 TRACE nova.rpc.amqp Stdout: ”
        2012-07-24 14:33:08 TRACE nova.rpc.amqp Stderr: ‘iscsiadm: No portal found.\n’

        • 就是虚拟机里少一个包导致的。acpiphp。你搜索一下,估计就明白了。

          • 我在虚拟机里运行$ echo ‘acpiphp’ >> /etc/modules,重启虚拟机。
            nova-compute.log出现同样的提示,问题依然未解决。郁闷了两个星期了。

          • 另外,我的镜像也换成了cirros-0.3.0-x86_64-disk.img,系统是实体机,打算今天完完全全安照你的教程再装一遍试试。

      • 终于解决了卷附加不到实例的问题,不是我的镜像问题,用一个文件来充当硬盘这样的方式创建的nova-volumes卷会导致在dashboard里创建的卷附加不到实例的情况,必须在你安装ubuntu系统分区时就创建一个独立的分区,然后再用这个分区来创建一个名为“nova-volumes”的卷,以下是我的步骤:
        # df -h
        Filesystem Size Used Avail Use% Mounted on
        /dev/sda1 28G 1.5G 25G 6% /
        udev 488M 4.0K 488M 1% /dev
        tmpfs 199M 228K 199M 1% /run
        none 5.0M 0 5.0M 0% /run/lock
        none 497M 0 497M 0% /run/shm
        /dev/sda6 21G 432M 19G 3% /nova-volume
        # umount /dev/sda6
        # pvcreate /dev/sda6
        Physical volume “/dev/sda6” successfully created
        # vgcreate nova-volumes /dev/sda6
        Volume group “nova-volumes” successfully created
        编辑 /etc/fstab , 注释掉nova-volumes开机加载,否则会导致你开机无法启动。我是安装过程,直接创建了一个nova-volume的分区

        sed -i ‘/nova-volume/s/^/#/’ /etc/fstab

        ####注意:如果pvcreate /dev/sda7执行不了,则要安装apt-get install lvm2

        • nova-volume 用文件模拟,基本是不可用。所以希望测试nova-volume,就必须用独立的分区。

        • 我用nova-volume, 挂到VM了,但是在VM中看不到vdc, 并且VM也加载了acpiphp,为什么呢?另外 fdisk 我用了 8e,

    • 请问下用虚拟机安装openstack,
      ”五:Nova

      1:安装
      apt-get install -y nova-api nova-cert nova-common nova-objectstore \
      nova-scheduler nova-volume nova-consoleauth novnc python-nova python-novaclient \
      nova-compute nova-compute-kvm nova-network“
      这里”nova-compute-kvm“要不要改成”nova-compute-qemu“???

  6. 安装完成后,登录出现

    Internal Server Error

    An unexpected error occurred while processing your request. Please try your request again.

    我看了下不是密码打错了,因为打错密码 会有提示,请问是什么问题?还是keystone?还是网路的问题?

    帮下忙!!

    • 问题已经解决,目前安装已经成功 。。。

      • 如果是单节点是没问题。多点估计还是有点小问题,我正在修正。

        • -fixed_range_v4=192.168.22.0/24 这个个ip是如何的来的呢?我在创建虚拟机networking失败 时候跟我这个ip设置有问题,这个ip有什么要求,,我是在公司的一台ubuntu12.04桌面系统下安装的,而且是单网卡,这样的话需要注意些什么呢。

      • 请问你是怎么解决的

  7. 创建nova-volume是必须的吗?我的只有/ 和 /home怎么办?

  8. ubuntu镜像都能正确启动并且能够VNC访问,但是windows镜像总是启动错误。制作过程如下:
    创建:kvm-img create -f qcow2 windows_xp.img 20G
    安装:kvm -m 2048 -cdrom windows.iso -drive file=windows.img,if=virtio,index=1 -fda virtio-win-1.1.16.vfd -boot d -net nic -net user -nographic -vnc :5
    上传:glance add name=windows_xp is_public=true container_format=ovf disk_format=qcow2 < windows_xp.img
    启动后状态error

    • windows image还没测试,改天动手做一次吧。windows下的问题,估计还会很多,先把linux image搞定再去挑战这个。

      • Windows镜像问题真多,现在启动正常,状态是active,vnc console能够查看,但是进去后发现网卡装不上,提示有让安装网卡,但是就是安装失败,根本就没网卡啊

        • 你安装的时候,应该要安装两个驱动,一个是硬盘的,一个就是网卡的,你网上搜索一下,很多教程。

  9. 陈老师,你好.
    请问下:
    下载ubuntu官方的镜像生成实例,可以正常运行,但是无法在本地ssh访问???
    访问命令: ssh -i 001.pem ubuntu@192.168.22.2
    报错如下:
    @ WARNING: UNPROTECTED PRIVATE KEY FILE! @

    Permissions 0644 for ‘001.pem’ are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.

  10. 如果陈老师能加上 swift 就太好了,这几天老在折腾这东西,都不成功~~~

    • 我何尝不想加呢?只是我没搞定而已。一直都希望用一台机器,搭建一套完整的poc环境,当然就包括swift。

      • 呵呵,大家加油,有经验的朋友可以分享一下。

      • 其实做实验我还是建议做VMware Workstation来装,搞坏环境了重新把文件覆盖一下就好了,实体机重装太痛苦了。

        • 为了解决这个痛苦,我花了两个月的时间搞cobbler,现在重装系统,10分钟就全部搞定,自动化。

  11. 陈老师!我是借鉴http://yyy3y.blog.51cto.com/3907806/859797此人的安装安装的,但是在nova的时候出现了错误root@essex-controller:~# nova-manage service list
    Binary Host Zone Status State Updated_At
    nova-compute essex-controller nova enabled XXX 2012-08-02 02:34:58
    只起了一个服务,但是初次安装,找不到错误,希望能够指点下可以吗?

    配置文件基本上都是按照他上面教的,只是改了ip。希望指点下。。

  12. 陈老师,您好。我按照官方文档的步骤一步一步的配置完成了,可是在创建instance的时候,instance 的status一直是error,老师,您觉得可能是哪个地方的问题呢?我排查了一天了,还是没有解决。希望老师指点一下。

  13. 陈老师好,按照您的文档(跳过了nova-volume),执行下列nova系列命令的时候,总是提示:ERROR: Malformed request url (HTTP 400),网上找了半天也没发现是什么问题,配置除了ip地址与您的不一样以外,其他的都一样,物理机安装,希望您能指点一下。谢谢

    • 这个错误我没见过。如果你的keystone,glance都没问题的话,你把nova的网络都设置好,看看怎么样。

    • 出现这个,应该还是你有地方没按照文档配置。

    • 请问你解决了这个问题了吗?我执行nova volume-list 时也遇到了这个问题

  14. 陈老师,您有制作fedora16镜像的方法吗,现在我能成功制作了ubuntu110.10,windows2003的镜像,fedora16的镜像就是做不出来,郁闷~~

  15. 陈老师:
    执行完./keystone_data.sh
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)
    usage: keystone [–os_username ]
    [–os_password ]
    [–os_tenant_name ]
    [–os_tenant_id ] [–os_auth_url ]
    [–os_region_name ]
    [–os_identity_api_version ]
    [–token ] [–endpoint ]
    [–username ] [–password ]
    [–tenant_name ] [–auth_url ]
    [–region_name ]
    应该算正常吧。

    • 就是在同步数据库的时候会出现
      root@ubuntu:~# keystone-manage db_sync
      Traceback (most recent call last):
      File “/usr/bin/keystone-manage”, line 28, in
      cli.main(argv=sys.argv, config_files=config_files)
      File “/usr/lib/python2.7/dist-packages/keystone/cli.py”, line 139, in main
      args = CONF(config_files=config_files, args=argv)
      File “/usr/lib/python2.7/dist-packages/keystone/config.py”, line 33, in __call__
      return super(ConfigMixin, self).__call__(*args, **kw)
      File “/usr/lib/python2.7/dist-packages/keystone/openstack/common/cfg.py”, line 773, in __call__
      self._parse_config_files(self.config_file)
      File “/usr/lib/python2.7/dist-packages/keystone/openstack/common/cfg.py”, line 1074, in _parse_config_files
      raise ConfigFileParseError(cpe.filename, cpe.message)
      keystone.openstack.common.cfg.ConfigFileParseError: Failed to parse /etc/keystone/keystone.conf: File contains parsing errors: /etc/keystone/keystone.conf
      [line 21]: ‘ connection = mysql://keystone:password@10.10.9.7/keystone\n’

      • [line 21]: ‘ connection = mysql://keystone:password@10.10.9.7/keystone\n’

        没看到错误,自己检查一下配置。

        • keystone.openstack.common.cfg.ConfigFileParseError: Failed to parse /etc/keystone/keystone.conf: File contains parsing errors: /etc/keystone/keystone.conf
          [line 21]: ‘ connection = mysql://keystone:password@10.10.9.7/keystone\n这个不算错吗,可是在同步数据库的时候就报上面那个错诶。

        • 从开始到同步那个步骤,我除了改了下ip和chenshake其他都一样诶- –

          • keystone 脚本里,有token,默认是chenshake,你修改了,你就需要修改脚本。文档里应该写。

        • 额。。这个肯定改了啊- -一个keystone的租户的问题。。问题不在这里,那个我都改了。。它的报错也是那句‘connection= mysql://keystone:password@10.10.9.7/keystone\n’语法错误。。。。我再看看吧

          • connection = mysql://keystone:password@10.1.199.17/keystone

            正确的是这样写。

        • connection = mysql://keystone:password@10.10.9.7/keystone

          是啊。。我就是ip跟你不同,我发现了一个点,就是/nova-volume 我已经在装机的时候就分了这个逻辑分区了。。结果还按照你的步骤操作了,不知道这个有没有影响。。

          • nova volume和这个没关系。你还是细看那几个地方吧。肯定是有地方没该对。

        • 。。。可是在keystone那个步骤之前除了几个安装就一个建库,根本没有其他的配置文件改了啊,这个我都反复对了很多遍了。。实在是找不出来了。。

        • 我悲剧了。。。我发现原来是
          connection = mysql://keystone:password@10.10.9.7/keystone在这个之前我有一个空格。。结果他识别不了。。心都碎了。。

        • 恩!我知道肯定是哪里有问题,想要老师帮忙排查排查的,嘿嘿!对了,iscsi_ip_prefix=192.168.22这个是你建立brige以后出现的virbr0吧,我的默认是192.168.122.1每个人都不会不同的吧。。这个我相应的修改就行了吧。。

        • 我陈老师,我按照你的方法已经全部安装好了,虚拟机也好了,用的是官方的那个镜像,但是我密钥登录不了,然后直接vnc可以看见登录界面,在tty1端有默认的账号和密码吗?

        • 没办法,我用本地linux登录没问题。。改下权限就行了,可是crt密钥登录一直有问题,我的界面会跟你的有点小出入,在那个public key界面的时候你的.pem下面的md5是输入的还是用产生identity文件后生成的,那个dashboard里面的key对应的是要输入的md5?

          • 你用的是secureCRT5.x,需要6.x,才能直接使用pem的密钥。

        • 我用的是6.2诶。。。我试试下载最新版本去尝试下。。

      • 这个错误是因为沙克的脚本里面SERVICE_TOKEN的值写错了,改在前面生成的值就可以了。

  16. 陈老师好~
    我按照文档装keystone的时候,在进行keystone endpoint-list测试是否安装完好的时候
    出现这个报错:
    No handlers could be found for logger “keystoneclient.client”
    The action you have requested has not been implemented. (HTTP 501)
    这个是我错在哪呢?话说其他几个-list测试倒是没问题

    • 这个就只能你自己查。就那么几个文件。细心点就可以。那么多人都成功装完。

    • # edit /etc/keystone/keystone.conf

      [catalog]
      driver = keystone.catalog.backends.sql.Catalog

      # service keystone restart

  17. 陈老师:
    生成一个instances win2003,无法使用fixed_ip 进行vnc访问,只能使用nova节点IP的5900端口访问,正常情况下使用fixed_ip或者floating ip 能够直接vnc访问吗?
    另外可以补充一下手动分配fixed_ip的方法吗?对于公司内部使用dhcp服务器的环境,flat dhcp模式容易造成冲突,有什么比较好的解决办法吗?

    • 你可以尝试一下nova的flat模式。这样虚拟机就直接从你的网络的dhcp获得IP地址,我的环境下没有dhcp,所以没法测试。
      改flat模式,应该比较简单,可以参考一下,www.vpsee.com 上面有一篇文章专门介绍。自己搜索一下。

  18. openstack怎么实现云主机双网卡 br100桥接物理机eth0(公网) br200交接物理机eth1(私网),实现虚拟机网络公网私网流量分开。创建网络时创建两个网络一个为private,桥接eth0的br100 一个为public,桥接eth1的br200。自己试验过 发现openstack的网络很特殊 出外网需要nat才能出去?虚拟机的公网ip直接不能出去,希望提点建议。谢谢!

  19. 陈老师,您好,按照您的文档我做了两次配置,每次配置完成后,敲nova-manage service list 测试,登录dashobard 测试页面都是正常的,但是每次创建vm后,无法获取floating IP,我通过nova-manage floating list 却可以查看到地址池里相关IP
    请问陈老师,这是怎么回事?
    谢谢

  20. 我来试试,非常感谢!

  21. hi 有试过创建linux镜像吗?创建了一个ubuntu12.04LTS的跟CentOS6.2的镜像 参照官方文档的Image management 《Creating a Linux Image – Ubuntu & Fedora》发现上传一直在注册 状态是killed 提示没有设置openrc 但是这些变量都设置过了。不知有解决办法没。

    • 错误提示:
      Uploading image ‘CentOS-6.2-x86_64-ramdisk’
      Failed to add image. Got error:
      You are not authenticated.
      Details: 401 Unauthorized

      This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.

      Authentication required
      Note: Your image metadata may still be in the registry, but the image’s status will likely be ‘killed’.

      • 还有,我自己做的win2k3的镜像可以上传,并且也可以正常启用实例。官方下载的ubunt12.04的测试的镜像也可以上传并且可以正常启动实例。只是自己做的关于linux的镜像上传都glance都出错。网上也查了些资料,暂时没找到解决办法。

        • @teddy_liu :
          请问win2003生成的实例默认是单网卡么,要想实现双网卡有什么办法?谢谢。

          • 创建双网卡的实例可以操作,但是要是实现双网卡通信,我到现在还没实现。创建双网卡的命令:
            kvm -m 1024 -cdrom cn_win_srv_2003_r2_enterprise_x64_with_sp2_vl_cd1.iso -drive file=windowsserver.img,if=virtio,boot=on -fda virtio-win-1.1.16.vfd -boot order=d,menu=on -usbdevice tablet -nographic -vnc :0
            这个是默认单网卡
            双网卡的话,加-net user –net nic –net nic添加双网卡。
            上面有留言,这个问题我也问过博主,似乎现在实现还有不少问题。
            有什么进展一定要给我回复呀,谢谢~

          • 我说清楚点吧
            nova-manage network create –label=private –fixed_range_v4=172.16.101.0/24 –num_networks=1 –bridge=br100 –bridge_interface=eth0 –network_size=256–multi_host=T
            创建一个私网网段,创建一br100桥接到eth0,预想虚拟机通过该网桥进行私网通信。
            nova-manage network create –label=public –fixed_range_v4=x.x.x.x/x –num_networks=1 –bridge=br200 –bridge_interface=eth1 –network_size=x–multi_host=T
            创建一个公网网段,创建一br200桥接大eth1,预想虚拟机通过该网桥进行外网通信。
            我遇到的问题是,openstack对外通信是通过nat方式(我的网络模式是flatdhcp),我配置br200之后虚拟机的第二个网卡是通过br200出去的,上面配置了公网ip,但是怎么调整网络让网络按照双网卡的模式运行,应该要对openstack网络运行机制得很清楚,我现在还不是很明白。希望能帮到你!

          • 非常感谢您如此详细的解答!
            openstack只是个壳,里面装什么,跑什么应用,在生产环境中如何实现?我觉得研究的方向就应该是这样的。
            话说openstack网络运行机制真的挺闹心的,flat ,flatdhcp ,vlan 这三种网络模式都有必要深入了解下,但是一旦没有博主文章的指导就傻了,我太菜了。。
            感谢teddy_liu !我会认真做几遍,把遇到的问题写下来和大家交流,感谢这个平台!

      • 官方文档中有这样一段描述:
        Bootable Images
        You can register bootable disk images without associating kernel and ramdisk images.
        When you do not want the flexibility of using the same disk image with different kernel/
        ramdisk images, you can go for bootable disk images. This greatly simplifies the process of
        bundling and registering the images. However, the caveats mentioned in the introduction
        to this chapter apply. Please note that the instructions below use server.img and you can
        skip all the cumbersome steps related to extracting the single ext4 partition.

        glance add name=”My Server” is_public=true container_format=ovf disk_format=
        raw < server.img
        直接安装完成后用img文件上传成功运行。
        ubuntu12.04 centos6.2目前都没什么问题。
        大家可以参考下。

  22. 用dashboard管理openstack,进行删除instance、image等涉及到删除的操作,执行后就显示“Internal Server Error An unexpected error occurred while processing your request. Please try your request again.”,但是创建instance,用户,分配IP等其他操作都没有问题!
    在上面的回复中看到了有人出现了相同错误提示,但是具体问题跟我这个还是不一样!
    请大家帮忙分析分析!

    • 如果你照文档做,应该是不会出现这种问题。还有一种可能,你使用了volume服务,instance附加的volume,有可能出现这个问题。

      • 我只是按照自己的情况重新配置了ip和密码,其他步骤都是按照文档完成的,另外在服务列表里看到确实启动了nova-volume服务,但是我应用时并没有给instance挂载volume,也可能出现这个问题吗?

        • 如果虚拟机没挂volume,应该不会导致这个问题。以前Diablo的版本,删除虚拟机会经常出现这种情况。Essex版本,少很多了。你多创建几个虚拟机看看,删除怎么样。可以考虑数据库里删除。参考www.vpsee.com 上面专门有一篇文章介绍如何删除虚拟机。

          • 不仅是删除instance有这个错误,删除image,释放ip都这样,目前都是用命令行在数据库中进行的删除,我重新安装一次再试试吧,我是在esxi 5.0上安装的,跟这个有关系吗?

  23. 陈老师,咨询个问题

    如果我有多个ESXi的物理机器
    需要针对每个ESXi装一个nova-compute的节点来服务它么?

  24. 陈老师:
    您好!我按照您的配置安装完毕,launch了一个Instance后,从server和SecureCRT都可以进入,但是从horizon的VNC和log都无法显示
    Error: Unable to get VNC console for instance
    请问这个是什么问题?

  25. 陈老师,能否提供一个确实可行的制作windows和linux镜像的文档,我从网上找了几个这样的文档,尝试之后都失败了。

    • 其实我前两天尝试来做,结果没成功。下周看看验证一下,那个文档更加简单。更加标准。

  26. 陈老师,第二个网卡没IP怎么弄啊,我把网卡桥接,插上去就有IP,自动获取,是把它设置成本地连接就没IP了吗?

  27. 陈老师,你好:
    我使用ubuntu官网提供的ubuntu-11.10-server-cloudimg-amd64-disk1.img、ubuntu-12.04-server-cloudimg-amd64-disk1.img镜像创建在计算节点的虚拟机都会出现ssh无法连通的问题,使用自定义的镜像没有问题,在控制节点创建的虚拟机也没有问题,iptables的规则中端口都已经开放,key也使用了多个都是一样问题,问题如下(虚拟机可以ping通,telnet 22端口也是没有问题)。
    root@ubuntu-201:~# ssh ubuntu@192.168.22.39
    Read from socket failed: Connection reset by peer
    root@ubuntu-201:~# ssh -i .ssh_bak/id_rsa ubuntu@192.168.22.39
    Read from socket failed: Connection reset by peer

    • 你可以看一下虚拟机的创建过程的log,就是在dashboard里,vnc旁边,可以看到虚拟机创建的log。这个问题是因为你的ssh的公钥没有注入到虚拟机里。这个问题是因为计算节点,没有安装nova-api导致的。

      你最好就是使用mutilhost,计算节点上安装3个服务:nova-api,nova-compute,nova-network。详细你好好参考一下多节点的文档,blog里有。

      • 谢谢,我用ubuntu-12.04-server-cloudimg-amd64-disk1.img创建的虚拟机可以正常访问了,但是用ubuntu-11.10-server-cloudimg-amd64-disk1.img创建的虚拟机,进行ssh的时候报错:Permission denied (publickey),这两个镜像都是从ubuntu官网下载的,我怀疑是这个镜像的配置有问题,请问您那有遇到过这种问题吗?

  28. 陈老师:
    “编辑 /etc/fstab , 注释掉nova-volumes开机加载,否则会导致你开机无法启动。我是安装过程,直接创建了一个nova-volume的分区

    sed -i ‘/nova-volume/s/^/#/’ /etc/fstab”
    这步如果自己建立了一个nova-volume分区是不是就不用注释掉nova-volume了?
    我是个初学者,好多都不会,希望多多指导

  29. 陈老师,
    “Unable to create keypair: Malformed request url”
    Unable to retrieve keypair list.
    Error fetching security_groups: Malformed request url (HTTP 400)
    Error fetching floating ips: Malformed request url (HTTP 400)
    这个错误是什么问题导致的呢?

    • 错误都是你照文档操作导致的。

      • 重新按照你给的文档安装了一次,安装成功,没有报错信息了。用的是VMware workstation 8.0 ,内存768M,nova-volumes是开机挂载的。但是我创建volumes时,状态一直停在creating那里等了一个小时还是没有创建成功,创建的volumes是4G。

        • 我将系统重启后,状态还是没有改变。一直在creating中

          • volume服务,如果你不是一个单独的分区的话,就会出现这种情况。所以不建议你去测试,这不是你设置的问题。

          • 我看到你文档中的说明了。然后我就给系统重新添加了一块硬盘,5G,分区后命名为nova-volumes分区。开机时不管是不是自动挂载该分区都会提示volume server failed.

            安装系统时我没有用LVM,而是直接用的物理磁盘。跟这个有关系?

      • 开机启动的时候提示:“starting nova volume Server [Failed]”

        • 是啊,因为你没修改fstab,文档有写。

          • 陈老师。我是注释掉了。是在注释掉的情况下出的问题。今天发现你的这篇文章做了修改。装的时候发现你endpoints.sh中MYSQL_DATABASE=keystone
            MYSQL_PASSWORD=password
            此处最好改成
            MYSQL_DATABASE=keystone
            MYSQL_PASSWORD=$OS_PASSWORD
            否则,有人不是完全按照你的文章安装,把密码改成自己的密码的时候会出问题。

          • 这样改肯定会好很多。
            以前很多人不成功是因为IP地址的问题,现在如果不成功,基本都是密码的问题。

          • 已经参考你说的,修改了,这样安装应该不容易出错,整个mysql的安装,都是不需要输入密码。全部都是通过环境变量设置。如果再有问题,就该学习一下linux。

  30. 大师,按照你的教程,我执行到apt-get install -y python-keystoneclient时提示找不到python-keystoneclient。我用的USTC 的教育网源,我更换其他更新源还是不到这个包。我去github git安装了python-keystoneclient,再执行keystone_data.sh和endpoint.sh时,均报错:No handlers could be found for logger “keystoneclient.client”
    Unable to communicate with identity service: [Errno 111] Connection refused. (HTTP 400)。
    求指教~~

    • 源的问题,就自己解决吧。

      • 我的问题和你这一篇http://hi.baidu.com/chenshake/item/6795eaf54bee06d742c36af6 里面第七个错误 一模一样,请问最后你怎么解决的哦?

  31. 陈老师:
    整个安装过程已经完成。看上去没有错误。但是新建实例的时候,实例的状态一直是Error,这是什么问题导致的呢?
    Instance Name IP Address Size Status Task Power State
    ubuntu 256MB RAM | 1 VCPU | 0 Disk Error Scheduling No State

    • 你在虚拟机里安装吧,怎么会那么小的内存256m呢

      • 嗯。我是用vm workstation 8.0装的。虚拟机的内存是1.5G,剩余的空内存是400M左右。我用cirros系统测试。估计256够了吧。

      • 陈老师,我将镜像文件换成cirros-0.3.0-i386,还是会出现同样的问题。求解啊。

  32. 我突然想起来了。我虚拟机装的系统是ubuntu 12.4 32bit的。而镜像都是64位的系统。应该是这个问题导致的吧。

  33. 陈老师,OS-EXT-STS:vm_state error ,实例状态还是error。
    日志里有这样的报错信息:
    2012-09-27 09:04:21 WARNING nova.db.sqlalchemy.session [req-0eafb344-ce42-4d7d-8c72-51977b13550d None None] SQL connection failed. 10 attempts left.
    2012-09-27 09:04:31 WARNING nova.db.sqlalchemy.session [req-0eafb344-ce42-4d7d-8c72-51977b13550d None None] SQL connection failed. 9 attempts left.
    但数据库是可以连接的啊。我都测试过了。
    #nova-manage service list命令输出中显示nova-compute 是XXX。
    nova-compute bzubuntu nova enabled XXX None
    但是我的nova-compute 服务是启动状态的。

    • 如果你在物理机器上测试,安装文档操作就不会有这样的问题。自己检查吧。确保各个服务是正常的,否则创建虚拟机一定是错误的。

  34. 陈老师,我检查发现我刚安装好nova后,所有的服务状态都是笑脸,但什么都不操作,过5分钟后nova-compute服务状态就变成XXX了。
    Binary Host Zone Status State Updated_At
    nova-consoleauth bzubuntu nova enabled 🙂 2012-09-27 05:57:32
    nova-cert bzubuntu nova enabled 🙂 2012-09-27 05:57:32
    nova-compute bzubuntu nova enabled XXX None
    nova-scheduler bzubuntu nova enabled 🙂 2012-09-27 05:57:32
    nova-volume bzubuntu nova enabled 🙂 2012-09-27 05:57:33
    nova-network bzubuntu nova enabled 🙂 2012-09-27 05:57:34

    • 2件事情你需要确认

      1:你的机器支持kvm,如果是虚拟机安装openstack,这是可能的。
      2:你安装文档来操作。

      • 虚拟机不支持kvm
        INFO: Your CPU does not support KVM extensions
        KVM acceleration can NOT be used

        我按照文档,在/etc/nova/nova.conf文档中 libvirt_type=qemu

        安装过程完全按照你的文档操作做的。到Glance之前的操作完全没有问题。

        • 其实我自己在虚拟机里装,也是遇到你说的问题。你看看上面的评论,有朋友解决的。看看是否对你有帮助。

          • 陈老师,上面的问题没有解决,控制机里的nova-compute还是XXX,但是我添加了一个计算节点后,计算节点的状态是正常的笑脸。
            现在虚拟机能正常启动了。但是登陆的时候又出问题了。我按照你说的方式创建虚拟机后,通过VNC能够登陆cirros系统,但是通过SecureCRT 7.0不行。在服务器上(控制节点)ssh也不行,密钥的权限是600。出现的报错是:
            #ssh -i ubuntu.priv ubuntu@172.16.0.2
            ssh_rsa_verify: RSA modulus too small: 512 < minimum 768 bits
            key_verify failed for server_host_key

          • Cirros,是可以使用用户名和密码登陆,也可以使用密钥登陆

            user:cirros
            password:cubswin:)

            你把用户名改成cirros,而不是ubuntu

          • 陈老师,我找到昨天的问题原因了。原来我分配的私有地址172.16.0.0/24已经被内网用了,172.16.0.2这个是个防火墙设备。然后我就重新安装了nova,私网地址改为172.16.121.0/24。虚拟机能正常启动了。但这次ping不通分给虚拟机的IP172.16.121.2。我用ifconfig 命令看了一下控制机,没有br100设备。只有
            virbr0 Link encap:Ethernet HWaddr ae:44:53:1f:02:64
            inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
            我已经执行了下面的命令:
            nova-manage network create private –fixed_range_v4=172.16.121.0/24 \
            –num_networks=1 –bridge=br100 –bridge_interface=eth1 \
            –network_size=256 –multi_host=T
            默认的策略组也添加了。

          • 没有br100的设备就不对。你还是看看那个地方有问题。

  35. 陈老师你好,请问
    export OS_TENANT_NAME=admin
    export OS_USERNAME=admin
    这两个变量代表什么呢? 下文没见用到这两个的地方啊?

    • 这两个变量下面用到的地方很多。文档这方面没很好解析。

      1:keystone导入数据,需要用到。 当你运行很多命令的时候,例如 glance index

      glance –username=admin –password=password –tenant=admin –auth_url=http://127.0.0.1:5000/v2.0 index

      通过环境变量,我们简化成

      glance index

  36. 陈老师你好,如果控制节点不装nova-volume和计算服务,步骤”设置ISCSI “和“Nova-volume”就可以跳过去了吧,还有步骤“nova安装”中的nova-volume,nova-compute,nova-compute-kvm ,nova-network四个包就可以不安装了是吧

  37. 陈老师你好,请问如果单网卡配置,生成fix_ip的命令:
    nova-manage network create private –fixed_range_v4=$FIXED_RANGE \
    –num_networks=1 –bridge=br100 –bridge_interface=eth1 \
    里面的”–bridge_interface=eth1“是不要改成eth0啊???

  38. 陈老师!
    root@ubuntu:~# nova-manage service list
    Binary Host Zone Status State Updated_At
    nova-consoleauth ubuntu nova enabled 🙂 2012-10-15 08:24:56
    nova-scheduler ubuntu nova enabled 🙂 2012-10-15 08:24:56
    nova-compute ubuntu nova enabled XXX 2012-10-15 06:31:34
    nova-cert ubuntu nova enabled 🙂 2012-10-15 08:25:12
    nova-volume ubuntu nova enabled 🙂 2012-10-15 08:24:57
    nova-network ubuntu nova enabled 🙂 2012-10-15 08:24:49
    这个nova-compute服务status是enabled的但是状态确实XXX然后我创建的虚拟机都会显示
    rhel-vm1 512MB RAM | 1 VCPU | 0 Disk Error Scheduling No State
    请问这个可能会是什么情况导致的?

    • 当你 nova-manage service list 显示 x,就表明你有问题。这个时候创建虚拟机肯定是错误。自己细心检查一下,看看你那个步骤没做对。

      • 陈老师:
        刚刚我可能没有说清楚,开始是好的,我都已经建立了一台服务器了,但是刚刚有一个虚拟机删不掉,我在数据库中手动修改了才删掉,但是不知道是不是动了什么东西,导致这个服务有问题,我就是想问问nova-compute这个服务对应的是nova表中那个数据,能不能手工改回来,不然的话我就只能重新再做一个计算节点了,但是为了搞清楚整个东西,陈老师能不能帮我给点排查的意见。。

  39. 陈老师,按照步骤搭建环境,在运行endpoint.sh时出现问题,我查看了下,发现运行keystone service-create时成功了但是没有写进数据库,导致后面查询service id的时候为空
    root@Test-OpenStack:~# keystone service-create –name nova –type compute –description ‘OpenStack Compute Service’
    +————-+———————————-+
    | Property | Value |
    +————-+———————————-+
    | description | OpenStack Compute Service |
    | id | 8aa745815b5841c3af6f29327328b7e2 |
    | name | nova |
    | type | compute |
    +————-+———————————-+

    root@Test-OpenStack:~# keystone service-list
    +———————————-+——+———+—————————+
    | id | name | type | description |
    +———————————-+——+———+—————————+
    | 8aa745815b5841c3af6f29327328b7e2 | nova | compute | OpenStack Compute Service |
    +———————————-+——+———+—————————+
    root@Test-OpenStack:~# service keystone restart
    keystone stop/waiting
    keystone start/running, process 5988
    root@Test-OpenStack:~# keystone service-list
    +—-+——+——+————-+
    | id | name | type | description |
    +—-+——+——+————-+
    +—-+——+——+————-+

    这样keystone服务重启后,再查询server list就没有了,请问这是为什么啊?

    • 我今天上午刚测试一次。endpoint的脚本,应该没问题。你记得一定要设置环境变量。不然是会导致失败。
      这是我为了脚本的通用性,你可以在环境变量调整你的设置。

  40. 陈老师:
    其他都已经解决了,就是创建虚拟机的时候报错:
    2012-10-16 13:55:49 TRACE nova.rpc.amqp libvirtError: internal error no supported architecture for os type ‘hvm’

    我是在vshpere的虚拟机下进行的实验,libvirt_type=qemu

    • 这个你就要看看上面的评论,看看有啥办法,应该是vsphere有地方需要设置。

  41. 陈老师:按照你的脚本keystone_data.sh跑的会提示keystone_date.sh: Syntax error: “(” unexpected
    是不是编辑器有什么问题?

  42. 额!就是bash是Bourne shell的增强版,他是基于Bourne shell融合了其他shell的一些特性的,而sh是属于系统管理shell,而且bash完全兼容Bourne shell,这就会造成你调用一些自定义的函数的时候可能sh识别不了,但是bash可以。这是我的一点点理解。。

  43. 额。。刚刚百度了下。。他们说sh是个链接,而dash是个轻量级的bash,省去了很多bash中的内容,故运行时会出现:
    ls -al sh;ls -al bash
    输出结果如下:
    lrwxrwxrwx 1 root root 4 2009-06-08 05:07 sh -> dash
    -rwxr-xr-x 1 root root 702160 2008-05-13 02:33 bash
    如果想直接输入sh命令得到第二种结果,则可 以在/bin目录下执行:sudo ln -fs /bin/bash /bin/sh,强制创建一个符号链接,即可达到上面要求的结果。

  44. 还有个应用的问题想问问你。。不知道这款openstack你有没有测试用过?我自己做了一个rhel6的镜像,然后我发现分区是一个问题,要是分了除/以外的其他分区在做镜像的时候就做不成功,而且很奇怪的是资源调度那里很有问题,虽然我两台服务器都是4核4g的但是我在dashboard里面做虚拟机的时候我发现很奇怪,除了选择默认的(1vcpu/0disk/512ram)的这个选项其他的做虚拟机的时候都会报erro的错,请问下这个是什么问题呢。希望能给个解答

    • 做镜像就是这个要求。创建虚拟机出错,应该还是你配置的问题,完全参考我的文档来做就不会出错。现在的文档,已经很白痴,只需要复制,粘贴就可以。

  45. 是啊。。就是照着你的来的,现在搞的我找不到配置文件是由哪个决定的,你这个文档中肯定不会有说明的,我在/etc/libvirt/qemu里也只能找到我的实例的配置,但是找不到决定的那个配置文件,如果你知道麻烦告诉下我吧。。实在是找不到- –

    • /var/lib/nova/instances

      • 是的 我这里面也查过,就是里面会有一个实例然后里面有一个libvirt.xml文件。。但是我就是不知道这个是已经生产的实例的配置文件还是决定的文件,比如里面有句话

        f44177bb-ccb3-4ff2-a77a-9ae509dabc14
        instance-00000002
        524288

        hvm
        /var/lib/nova/instances/instance-00000002/kernel
        root=/dev/vda console=ttyS0
        /var/lib/nova/instances/instance-00000002/ramdisk

        1

        这里面的vcpu是1是表示我那个已经建立的虚拟机是1还是说只能有一个。

      • 你这个里面的配置文件跟我说的/etc/libvirt/qemu配置文件都是一样的,能不能有其他的方式联系老师,这样沟通比较快点。。能帮忙下吗,如果可以请直接回复我下面的邮件地址

  46. 老师你好,又来麻烦你了,请问打开dashboard里的access and security页面时报错“Error: Error fetching floating ips: The server has either erred or is incapable of performing the requested operation. (HTTP 500)”是什么原因

    • 问题已经找到了 , 我的控制节点不打算装计算服务,所以按照陈老师的说明就没装nova-compute,nova-compute-kvm,nova-network,但就是因为没装nova-network才导致的打开access and security页面报错

      • 看了我的文档有错。其实最好的办法就是吧compute装上,吧服务停止,这样就没事。我马上修改。

        是不是吧nova network装上就可以?

        • 嗯,我试验过再把nova-network卸载掉,就又出现这个问题,再装上之后就ok

  47. 不知您是否配置过Flat Network,我配置了几天还是没搞明白。
    我有一台server,双网卡,eth0连接公网,eth1做了个bridge – br100,bridge的ip是192.168.5.1(无网关)。
    在同一台server运行了一个instance,其IP为192.168.5.2,网关设为192.168.5.1。
    nova.conf里面配置如下:
    flat_interface = eth1
    public_interface = eth0
    flat_network_bridge=br100
    flat_injected=False
    fixed_range=192.168.5.0/24
    目前,在实例中无法ping到192.168.5.1这个网关,而且在公网里面也无法使用ssh访问实例,只能通过VNC使用。
    请您帮忙分析一下原因,非常感谢!

    • 还有个问题想请教您:
      如果我在公网使用ssh访问实例,必须添加route才行吧,但是网关应该用哪个呢?

  48. 多谢您的回复,按照我目前的理解
    用Flat Network,fixed ip的范围必须和public network在同一个网段。
    用FlatDHCP Network, floating ip的范围必须和public network在同一个网段。
    这样的话,访问VM还是要用公网网段的ip,没能节约点ip资源

    • fix IP,其实是让vm可以访问互联网,这个IP段,其实是一个私有IP地址段就可以。
      floating IP,是让互联网可以访问vm。
      做实验,我们就假设eth0的IP是公网的,floating IP range就是你打算分配给虚拟机的公网IP。
      不是所有的vm都需要公网的IP。所有可以节省IP地址。

  49. 沙老师:
    为什么我按照教材,出来的Dashboard,界面中只有System Panel,没有User Dashboard界面呀!

    我哪里可能出错了?

    单网卡!

  50. 陈老师:
    br100,是安装哪个组件出来的

    我只有virbr0,是安装bridge-utils后,出现的

    • 两个网桥br100,virbr0:其中br100是
      实例的网桥,每创建一个实例都会有一个虚拟网卡vnet*生成,实例的内网Ip即floating ip,和vnet*对应,与br100在同一网段;而virbr0是kvm的网桥,用kvm启动的虚拟机(镜像)会自动生成tap*虚拟网卡,与镜像中的eth*对应,没有建立对应关系则网络不通,镜像自动获取的ip与vribr0在同一网段。另外,br100,virbro不在同一网段,最终都与eth0物理网卡相连。

    • 两个网桥在安装完什么组件后出现的,或是运行什么组件成功出现的?

      • virbr0,这个openstack没用到,可以忽略。br100,这个是应该你在安装nova的时候,重启服务创建的。你看看nova.conf 文件,估计就明白

  51. Essex 与网上其它的nova.conf
    它的配置为:
    –cc_host=XXXX

    前面有两个”-“,两者如何区分
    即,我安装是哪个版本

    • 老版本的openstack的nova参数设置需要 加 –, 自从essex开始,就去掉这个了。同时兼容两种格式。
      不过在redhat,nova.conf 文件就只能支持新的格式,不带 —

  52. 陈老师:
    SERVICE_TOKEN=…
    这个变量,除了在keystone.conf中用过一次,还在哪有用

  53. 陈老师:
    启动实例出现:
    (服务器界面)
    [ 1505.817921] block nbd15: receive control failed (result -32)

    这是什么意思!!

    • 执行完成这个后:
      nova boot –flavor 1 –image “cirros” –key_name key1 cloud01

      出现:
      [ 1637.963456] block nbd15: receive control failed (result -32)

      这个是什么原因呀

  54. 陈老师,您好!我现在想用OpenStack搭建个私有云平台,用的是服务器,硬盘空间有1T,尝试了几次后,总会因为分区不合理而出问题,很想得到老师的指导,麻烦您给个分区建议。谢谢!
    wj

  55. 陈老师,你好,我是单机单网卡,搞不太清楚一系列ip地址,br100的ip和eth0的ip一样吗,还有fixed_range是任意一个私有地址段都可以吗,floating_range和本机ip有什么关系,我刚刚接触,问的很菜,谢谢啊!

    • 你还是找两块网卡来装,这样方便你理解很多问题。先装好,再去慢慢理解。想深入,就去看官方的英文文档。

      • 陈老师,在/etc/novarc文件中,service_token是什么,怎么设置

        • 这个token是给keystone设置,随机生成就可以,你创建novarc文件的时候,就应该已经生成一串数字。

          • 陈老师,不好意思,又麻烦您了。
            在创建虚拟机过程中,运行
            # nova boot –flavor 2 –key_name oskey –image ea3ffba1-065e-483f-bfe2-c84184ee76be test1
            出现错误:
            ERROR: No image with a name or ID of ‘ea3ffba1-065e-483f-bfe2-c84184ee76be’ exists.
            我估计是完全照您的文档操作的原因,不清楚–key_name和–image应该设置成什么。
            谢谢老师啊

          • 我把–image设置成image_list里的一个ID,然后查看nova list ,status是bulid,然后运行nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
            ERROR: This rule already exists in group 1 (HTTP 400)
            root@Ivy:/home/ubuntu# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
            ERROR: This rule already exists in group 1 (HTTP 400)
            之后查看nova list,status变成了error,而且network那一栏也没有ip地址了

    • 单网卡我没做过,所以也就不好说。

  56. 陈老师,请教您一个问题,我是按照您的文档一步步操作下来的,在安装好了Nova之后,通过脚本启动相关的服务,同步数据库时,提示一个错误:
    root@openstack_server2:/home/hadoop# service nova-manage db sync
    Command failed,please check log for more info
    CRITICAL nova [-] no such option:MYSQL_PASS

    麻烦您看一下是什么原因导致的?

    • 你细心对着文档来做,就不会有这样的问题,应该是mysql相关的设置有问题。

    • 你是不是直接把陈老师的nova.conf直接复制过去了?你看看在陈老师贴出的nova.conf这一段文本中,有几个地方需要你修改的,改成你自己的配置,不要直接复制过去。。

  57. 陈老师,我执行到下面这一步的时间,出现了一个这样的错误,麻烦您给我看一下是什么原因导致的?
    谢谢

    # nova list
    +————————————–+——-+——–+——————+
    | ID | Name | Status | Networks |
    +————————————–+——-+——–+——————+
    | 61e93d62-c926-46fa-8e0c-48073b7e58b0 | test1 | BUILD| private=10.0.0.2 |
    +————————————–+——-+——–+——————+
    [8390.923769]block nbd15:Receive control failed (result -32)

    • 我也出现这个错误,你解决了不

      QQ:2640293995

      有意一起研究下?

      • 这个问题我已经解决了,当初是在虚拟机搭建时出现的,后来换成物理机了,只要你按照陈老师的步骤仔细做下来,就不会有问题。

    • 虚拟机中不能跑吗?

      我用的是VBox

      • 你可以看一下13楼的情况,虚拟机好像不支KVM。
        我也没用过Vbox,具体情况就不太清楚了,建议改用物理机吧,等都弄熟悉了再尝试用虚拟机。

  58. 陈老师:
    本地SSH出错:
    ssh: connect to host 10.0.0.2 port 22: Connection refused

    可以ping通,10.0.0.2

    这是哪错了!

  59. 陈老师,请问如果多节点安装,用xen作为hypervisor的话,是不是得在PVdomU中安装控制节点(nova-compute和nova-network)呢?控制节点是通过PVdomU来和dom0通信,从而创建其他的domU吗?

  60. 陈老师,我在fedora17上安装的openstack,就是在制作自定义镜像的时候,提示kvm和kvm-img命令都找不到,这是为什么?

  61. 陈老师 你好。前面没都没问题 但是keystone装好后测试的时候 提示 No handlers could be found for logger “keystoneclient.client”
    Invalid user / password (HTTP 401) 不知道哪里错了 谢谢。

    • keystone –debug user-list 加上debug参数看看。你如果完全用我的脚本,就不应该出错,自己细心查一下。

      • 陈老师 你好,我照做了 但是看不出问题在哪里啊。还得你帮忙
        root@HpSer1:/home/hpser1# keystone debug user-list
        usage: keystone [–os_username ]
        [–os_password ]
        [–os_tenant_name ]
        [–os_tenant_id ] [–os_auth_url ]
        [–os_region_name ]
        [–os_identity_api_version ]
        [–token ] [–endpoint ]
        [–username ] [–password ]
        [–tenant_name ] [–auth_url ]
        [–region_name ]

        keystone: error: argument : invalid choice: ‘debug’ (choose from ‘catalog’, ‘ec2-credentials-create’, ‘ec2-credentials-delete’, ‘ec2-credentials-get’, ‘ec2-credentials-list’, ‘endpoint-create’, ‘endpoint-delete’, ‘endpoint-get’, ‘endpoint-list’, ‘role-create’, ‘role-delete’, ‘role-get’, ‘role-list’, ‘service-create’, ‘service-delete’, ‘service-get’, ‘service-list’, ‘tenant-create’, ‘tenant-delete’, ‘tenant-get’, ‘tenant-list’, ‘tenant-update’, ‘token-get’, ‘user-create’, ‘user-delete’, ‘user-get’, ‘user-list’, ‘user-password-update’, ‘user-role-add’, ‘user-role-remove’, ‘user-update’, ‘discover’, ‘help’)
        谢谢陈老师啊,

  62. 请问控制节点重启以后怎么nova-compute服务就启动不了了?

  63. 陈老师你好,请问keystone测试时的”获得一个24小时的token”是什么意思?? token生成后会变化??另外前些天用你的文档安装成功,并且上传了ubuntu镜像,但是放了些天没动后,今天再上传另外一个镜像就不成功了,报错是not authorized,验证keystone时出现了和上面朋友一样的错误
    “keystoneclient.client”
    Invalid user / password (HTTP 401)

  64. 陈老师好,有一个疑问请教您下:
    我现在有3个环境,2个E版本,1个F版本,但是都是 在nova-manage service list的时候,最后一列更新时间总是与本地时间差8个小时呢?

  65. 不知道老师你遇到过这种情况没有:实例建立在控制节点上时可以很顺利建立起来,但是在添加的计算节点上就建立不起来,状态一直是Build

  66. 您好,在用curl测试时,出现如下错误:

    “error”{
    “code”: 401,
    “message”: “Invalid tenant”,
    “title”: “Not Authorized”

    • 检查你的环境变量。

      • 谢谢您的回复。我的环境变量设置如下:
        # cat novarc
        export OS_TENANT_NAME=admin
        export OS_USERNAME=admin
        export OS_PASSWORD=password
        export MYSQL_PASS=password
        export SERVICE_PASSWORD=password
        export FIXED_RANGE=10.0.0.0/24
        export FLOATING_RANGE=58.193.152.224/227
        export OS_AUTH_URL=”http://localhost:5000/v2.0/”
        export SERVICE_ENDPOINT=”http://localhost:35357/v2.0″
        export SERVICE_TOKEN=a2dc64d4ac732d9bcb42
        export MASTER=”58.193.152.32″

        并且,我运行keystone tenant-list,keystone user-list,keystone role-list都能正常显示,运行:curl -d ‘{“auth”: {“passwordCredentials”:{“username”: “admin”, “password”: “password”}}}’ -H “Content-type:application/json” http://$MASTER:35357/v2.0/tokens | python -mjson.tool也能正常显示
        就是运行curl -d ‘{“auth”: {“tenantName”: “admin”, “passwordCredentials”:{“username”: “admin”, “password”: “password”}}}’ -H “Content-type:application/json” http://$MASTER:35357/v2.0/tokens | python -mjson.tool时提示错误

  67. 您好,在上传ubuntu官方镜像后,从哪获得登录密钥?

  68. 您好,在配置/etc/nova/nova.conf前,本来刚装完nova的一系列软件后看进程nova-network,nova-cert,nova-compute等进程是可以看到的。但按您的nova.conf配置完后,重启各进程就提示stop:Unknown instance:了。然后用ps -A查看进程,原来相关的nova进程全都边成了nova-api进程了。这是什么原因呢?

    • 你把nova.conf配置文件中的全局变量全部替换成变量的值就好了,比如$MASTER换成你自己ip,$MYSQL_PASS换成密码的值

  69. 陈老师您好!在运行bash restart.sh后,显示:
    Stopping rabbitmq-server: rabbitmq-server.
    libvirt-bin stop/waiting
    stop: Unknown instance:
    stop: Unknown instance:
    stop: Unknown instance:
    nova-api stop/waiting
    nova-objectstore stop/waiting
    stop: Unknown instance:
    stop: Unknown instance:
    novnc: unrecognized service
    nova-consoleauth stop/waiting
    Starting rabbitmq-server: SUCCESS
    rabbitmq-server.
    libvirt-bin start/running, process 20739
    nova-network start/running, process20759
    nova-cert start/running, process 20774
    nova-compute start/running, process 20792
    nova-api start/running, process 20808
    nova-objectstore start/running, process 20821
    nova-scheduler start/running, process 20836
    nova-volume start/running, process 20846
    novnc: unrecognized service
    nova-consoleauth start/running, process 20859

    并且,上述执行完后,凡是unknown的进程,通过ps -A也不显示该进程,虽然显示重启成功了。即便我单独service xxx start ,然后再执行ps -A也还是不显示

    • 你好 我现在配置的时候也出现了这个问题 请问你是如何修改的啊 谢谢!

  70. 陈老师您好,又得麻烦您!现在我装完dashboard后,输入http://58.193.152.40后提示:-bash: http://58.193.152.40: No such file or directory.这是什么原因啊?

  71. 陈老师:您好!
    请问有没有不需要在线更新软件包的openstack安装方法?

    • 你在线安装一次,把包存放起来就可以。ubuntu默认的包是放在 /var/lib 下的一个目录,你看一下就知道了。

  72. 陈老师您好:
    请教你一个问题,我已经按照你上述的文档整理,安装成功。但是后期我准备安装spice来进行虚拟桌面,但是装完spice后,nova-compute节点启动失败,原因就是
    nova: internal error Cannot find suitable emulator for x86_64
    常见的一个错误,spice用的虚拟化软件好像是qemu-kvm ,可能与nova-compute-kvm有冲突
    在ubuntu上装spice 我是使用如下方法的:http://docs.cslabs.clarkson.edu/wiki/SPICE
    麻烦老师看下,原因是什么,如何调整 libvirt-type这个参数 ,我改为qemu 好像也不太成功。

  73. 我再启动computer服务的时候报这个错 Cannot recv data: Connection reset by peer
    请问为什么呢

  74. 陈老师您好:
    网卡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
    然后每次安装都无法创建实例,显示
    192.168.0.2

    512MB RAM | 1 VCPU | 0 Disk Error Spawning No State
    显示陈老师指点一下什么原因,别的都没有什么问题.
    谢谢了老师

    • ethtool eth0 in place of mii-tool

      • 我用过ethool,但是好像没有用。mii-tool主要是看网卡的状态,状态不对,没有用的。能具体说下你解决这个问题的方法吗?

  75. cloud-setup: failed to read iid from metadata. tried 30
    WARN: /etc/rc3.d/S45-cloud-setup failed
    Starting dropbear sshd: generating rsa key… generating dsa key… OK
    ===== cloud-final: system completely up in 41.96 seconds ====
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    instance-id:
    public-ipv4:
    local-ipv4 :
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    cloud-userdata: failed to read instance id
    WARN: /etc/rc3.d/S99-cloud-userdata failed
    ____ ____ ____
    / __/ __ ____ ____ / __ \/ __/
    / /__ / // __// __// /_/ /\ \
    \___//_//_/ /_/ \____/___/
    http://launchpad.net/cirros

    login as ‘cirros’ user. default password: ‘cubswin:)’. use ‘sudo’ for root.
    cirros login:

    • 这还是设置的问题,vm无法获得密钥。

      • root@ubuntu:~# nova list
        Please enter password for encrypted keyring:
        +————————————–+——–+——–+———————–+
        | ID | Name | Status | Networks |
        +————————————–+——–+——–+———————–+
        | c890b808-3443-4300-8332-ffc5e547fa39 | cirros | ACTIVE | private=192.168.100.2 |
        +————————————–+——–+——–+———————–+
        能看到地址 但是ping不通 ssh也不行
        好像是虚拟机得不到ip地址
        哪里设置有问题,搞几天了没搞定,陈老师帮帮忙

  76. 陈老师您好:我照您在http://hi.baidu.com/chenshake/item/29a7b8c1b96fb82d46d5c0fb

    修改 /etc/profile 最后面加上

    export OS_TENANT_NAME=admin
    export OS_USERNAME=admin
    export OS_PASSWORD=hastexo
    export OS_AUTH_URL=”http://localhost:5000/v2.0/”
    export EC2_URL=$(keystone catalog –service ec2 | awk ‘/ publicURL / { print $4 }’)
    export CREDS=$(keystone ec2-credentials-create)
    export EC2_ACCESS_KEY=$(echo “$CREDS” | awk ‘/ access / { print $4 }’)
    export EC2_SECRET_KEY=$(echo “$CREDS” | awk ‘/ secret / { print $4 }’)

    运行nova list还是出现
    ERROR: You must provide a username via either –os_username or env[OS_USERNAME]
    是还哪里有问题?
    谢谢老师了

    • 修改完profile,你要退出ssh,再登陆才能生效。可以通过expert检查环境变量。我以前的文档可能有错误,你可以参加这个最新的版本。应该是没问题的。

  77. hi~陈老师你好,在建立实例,就是在VNC CONTROL那里都可以看到,但是就是ping不通,也ssh不进去,在命令行下用ssh -i oskey.priv ubuntu@10.0.0.2 这样的命令也是ssh不进去,返回的信息是ssh: connect to host 10.0.0.2 port 22: No route to host。 请问你有没有遇到这种情况 如何解决呢

    • 另外在nova的日志文件中 有这个一个error ,就是Unable to release 10.0.0.2 because vif doesn’t exist

      • IP 10.0.0.2 released that was not leased 还有这么一个warning

        • Essex安装,你按照文档来设置,应该不会有类似的错误。这个还是比较有把握的事情。

          • 遇到和78楼一样的问题,完全按照文档来的,ping不通虚拟机,我vnc登录到虚拟机里面,发现虚拟机没有获得ip,手动修改ip后才行。是不是dhcp有问题啊。

          • 我也是觉得虚拟机实际上没被分到IP,ping那网桥就可以ping通,话说你是怎么用VNC登陆虚拟机的,在WEB上那个VNC还是用自己的VNC软件?

  78. 在vmware中安装 openstack一启动实例 服务器就提示nbd15: Receive control failed result -32

  79. 陈老师,能否发一个你配置好的虚拟机给我。我跑一下试试看行不

  80. 陈老师您好:
    我的虚拟机实例已经创建成功,但是主机ping 虚拟机实例确不通,用ssh也不行,显示的是no route to host…,请问您是什么原因呢?

  81. 陈老师你好,我已经按照你的文档成功创建实例。现在的问题是,我无法ping通我创建的实例,只能ping通与其在同一网段的br100。我注意到你route后的网关是10.0.0.3(与br100的ip相同),可是我看你在interface里将eth0的gateway 设成10.1.199.1,很不理解,我的route及ip route显示如下:
    root@servertest:~# route
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    default 192.168.182.2 0.0.0.0 UG 100 0 0 eth0
    10.0.0.0 * 255.255.255.0 U 0 0 0 br100
    192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
    192.168.182.0 * 255.255.255.0 U 0 0 0 eth0
    root@servertest:~# ip route
    default via 192.168.182.2 dev eth0 metric 100
    10.0.0.0/24 dev br100 proto kernel scope link src 10.0.0.3
    192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
    192.168.182.0/24 dev eth0 proto kernel scope link src 192.168.182.132
    br100是和你相同的
    root@servertest:~# ifconfig
    br100 Link encap:Ethernet HWaddr 00:0c:29:f1:5e:ab
    inet addr:10.0.0.3 Bcast:10.0.0.255 Mask:255.255.255.0
    inet6 addr: fe80::dc53:6eff:fe87:8c97/64 Scope:Link
    这些网络方面的东西我还不是很懂,还请不吝赐教

    • 陈老师,我想知道你用ip ad sh命令后,br100只绑了一个虚拟网桥网关的IP,还是绑了虚拟网桥网关的IP和物理机IP?

    • 您的这个问题解决了吗?我也遇到了同样的问题,我是在单网卡环境下配置的,可以创建实例,可是就是ping不通,也不能ssh上..

      • 还没有。。。这问题都卡了差不多两周了,我还让我同学安装过,也是相同的问题,我怀疑是不是陈老师改了文档的某处地方导致的问题

  82. 大哥们求救啊 ,一模一样的配置,还是不能登入虚拟机 创建 好了 ssh ping vnc 都不行
    ############ debug end ##############
    cloud-setup: failed to read iid from metadata. tried 30
    WARN: /etc/rc3.d/S45-cloud-setup failed
    Starting dropbear sshd: generating rsa key… generating dsa key… OK
    ===== cloud-final: system completely up in 42.28 seconds ====
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    instance-id:
    public-ipv4:
    local-ipv4 :
    wget: can’t connect to remote host (169.254.169.254): Network is unreachable
    cloud-userdata: failed to read instance id
    WARN: /etc/rc3.d/S99-cloud-userdata failed

    日志
    (169.254.169.254): Network is unreachable
    怎么会有这个东西

    • 我也遇到了相同问题,一直没解决

      • 这个问题是很头疼,我也只能等有空验证一次。你可以考虑参考一下另外一个文档,安装folsom,使用脚本的方式。

        • 好的,我试试

          • 陈老师,我用了jedipunkz的openstack_folsom_deploy脚本,装完之后还是ping不通,不过可以VNC上去,然后我一看那个IP,居然是分配了和我主机IP(10.200.8.11)同一网段的IP(10.200.8.12),我直接ping10.200.8.12是不通的,然后我将其IP改为10.0.0.2再PING,终于通了!也能SSH上去!由此可见问题是出在了fix_IP没有实际分配到那些虚拟实例上,不过还是不清楚为什么会这样

          • 看来你的floating ip和fixip设置的问题,把你的网络和floating ip和fixip设置贴出来。

          • 我刚又按照您的文档配置了一遍,依然是无法PING/SSH/VNC,所以只能贴我用的那个脚本的设置了,这是在deploy_with_nova-network.conf设置的
            FIXED_RANGE=”10.0.0.0/24″
            FIXED_START_ADDR=”10.0.0.2″
            FLOATING_RANGE=”10.200.8.28/30″
            NETWORK_SIZE=”256″
            这是在/etc/nova/nova.conf里的network
            # nova-network
            libvirt_use_virtio_for_bridges = True
            network_manager=nova.network.manager.FlatDHCPManager
            dhcpbridge_flagfile=/etc/nova/nova.conf
            dhcpbridge=/usr/bin/nova-dhcpbridge
            public_interface=br100
            flat_interface=eth0
            flat_network_bridge=br100
            fixed_range=10.0.0.0/24
            flat_network_dhcp_start=10.0.0.2
            network_size=256
            force_dhcp_release = True
            flat_injected=false
            use_ipv6=false
            multi_host=True
            还有nova-manage network list
            localadmin@servertest:~/openstack_folsom_deploy$ sudo nova-manage network list
            id IPv4 IPv6 start address DNS1 DNS2 VlanID project uuid
            2013-04-06 21:21:56 DEBUG nova.utils [req-358ed012-983e-4cf6-a896-61f93e1f15d6 None None] backend __get_backend /usr/lib/python2.7/dist-packages/nova/utils.py:506
            1 10.0.0.0/24 None 10.0.0.2 8.8.8.8 8.8.4.4 None None 14066d82-01b1-490a-a4c1-b146f49d13e7
            刚我又创建了一个实例试了一下,依然是分配在我主机IP的下一位地址上,怎么都想不通。。。

  83. 补上我的网络配置,因为脚本用的是单网卡,所以eth0的地址感觉被覆盖了,但实际应该是10.200.8.11,因为我是用putty连接这个IP来控制server的。
    localadmin@servertest:~$ ifconfig
    br100 Link encap:Ethernet HWaddr 00:0c:29:3b:c2:76
    inet addr:10.0.0.3 Bcast:10.0.0.255 Mask:255.255.255.0
    inet6 addr: fe80::d4c7:98ff:feec:ebbe/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:352 errors:0 dropped:0 overruns:0 frame:0
    TX packets:269 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:26234 (26.2 KB) TX bytes:33541 (33.5 KB)

    eth0 Link encap:Ethernet HWaddr 00:0c:29:3b:c2:76
    inet6 addr: fe80::20c:29ff:fe3b:c276/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:382 errors:0 dropped:0 overruns:0 frame:0
    TX packets:267 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:34353 (34.3 KB) TX bytes:33230 (33.2 KB)

    lo Link encap:Local Loopback
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:16436 Metric:1
    RX packets:4842 errors:0 dropped:0 overruns:0 frame:0
    TX packets:4842 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:0
    RX bytes:2027464 (2.0 MB) TX bytes:2027464 (2.0 MB)

    vnet0 Link encap:Ethernet HWaddr fe:16:3e:4d:b0:9b
    inet6 addr: fe80::fc16:3eff:fe4d:b09b/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:32 errors:0 dropped:0 overruns:0 frame:0
    TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:500
    RX bytes:2833 (2.8 KB) TX bytes:4377 (4.3 KB)
    我感觉唯一问题就在于fixed_IP无法DHCP分配到我产生的实例上,通过VNC登陆,手动设置之后,实例完全没问题,可以关联floating_IP,可以访问外网。我看了下评论,之前的人貌似都没遇到这问题,而最近安装的似乎都遇到了这个问题,是不是版本的问题呢?当然这只是我的猜想,如果您能抽出宝贵的时间来验证一下那是最好的了!

    • 您好,请问您解决了么,这个问题我也卡了几周了,也是ping不了,但是手工vnc进去改ip之后就可以

  84. 陈老师您好:
    非常感谢你文档的指导,根据这些文档我已经成功搭建好了OpenStack环境。创建的虚拟机可以ping通,ssh登录都行。本地的vncviewer也是没问题的。目前在web界面的实例里。Instance Console Log信息也都有,但是VNC标签打开会显示Failed to connect to server。能否指点一下会是什么原因?谢谢!

  85. 陈老师您好,我设置网络出现
    SIOCGMIIREG on eth0 failed: Input/output error
    SIOCGMIIREG on eth0 failed: Input/output error
    eth0: negotiated 100baseTx-FD flow-control, link ok
    请问这是什么原因?

  86. 陈老师,我用设置网络不太会 按照DHCP里面来设置IP什么的
    每次restart网络 系统都会死机 ubuntu12.10版本 单节点单网卡
    auto eth0
    iface eth0 inet static
    address 10.108.110.23
    netmask 255.255.255.0
    gateway 10.108.108.1
    dns-nameservers 10.3.9.4

  87. 陈老师你好,请问为什么floating IP只能分配10个,怎么产生更多的floating ip呢?

  88. 前面都正常,当测试登陆dashboard的时候, 只有”it works!” , 什么原因啊? 陈老师.

  89. 陈老师 您好
    请问我在keystone数据库导入数据和endpoint是按照你那个脚本报错:
    Service Unavailable (HTTP 503)
    请问这个是什么原因?

  90. glance index

    Failed to show index. Got error:
    You are not authenticated.
    Details: 401 Unauthorized

    This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.

    Authentication required

    对于这个问题,折腾了一天,还是不晓得原因啊。
    我设置在/etc/glance/glance-api-paste.ini和/etc/glance/glance-registry-paste.ini中也是
    admin_tenant_name = service
    admin_user = glance
    admin_password = glance
    结果一直报这个错误,
    如果我设置成
    admin_tenant_name = admin
    admin_user = admin
    admin_password = admin
    就不会有错误。

  91. 陈老师,我在查看floating ip时,一直处在查询状态,创建虚拟机是一直处在创建状态,是怎么回事呀?

  92. 陈老师,我是在kvm环境上安装ubuntu12.04,然后搭建的openstack环境,照着你的安装步骤,前面都成功了,但是执行nova-manage service list的时候status一列全部显示为xx,非笑脸。不知道是为什么啊,我前面跳过了nova-volume这个步骤。

 Leave a Reply

(required)

(required)