Ubuntu 上安装和配置 OpenStack Nova

本贴转自http://www.vpsee.com 

OpenStack 是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspack 开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack 是开源项目,除了有 Rackspace 和 NASA 的大力支持外,后面还有包括 Dell, Citrix, Cisco, Canonical 这些重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先开源云平台 Eucalyptus 的态势。

OpenStack 是 Python 2.6 写的,CentOS 5.6 上默认的是 Python 2.4 的环境并且还有很多依赖关系不容易升级到 2.6,所以在 Ubuntu 上安装会简单一些,而且 Ubuntu 是 OpenStack 的官方首选系统,文档都是按 Ubuntu 写的,所以这里 VPSee 采用最新的 Ubuntu 11.04 Server 64bit 版本来安装和配置 OpenStack Nova. 使用 CentOS 的朋友可以看看:在 CentOS 上安装和配置 OpenStack Nova;如果对其他类似的开源云计算平台感兴趣的话可以看看:在 CentOS 上安装和配置 OpenNebula.

配置网络

在安装完基本的 Ubuntu 11.04 Server 系统后升级和更新整个系统,安装完 bridge-utils 包后重启系统:

$ sudo apt-get update
$ sudo apt-get upgrade

$ sudo apt-get install bridge-utils

$ sudo reboot

配置网桥:

$ sudo vi /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 172.16.39.111
netmask 255.255.254.0
gateway 172.16.38.1

auto br100
iface br100 inet static
bridge_ports eth1
bridge_stp off
bridge_maxwait 0
bridge_fd 0
address 192.168.0.1
netmask 255.255.0.0
broadcast 192.168.255.255

关于 FlatManager 网络配置可参考:OpenStack Nova 安装后的 FlatManager 网络配置。

安装 NTP 服务

OpenStack Nova 需要 NTP 服务器来保持所有节点服务器(Cloud Compute)的时间同步,所以需要在前端控制服务器(Cloud Controller)上安装 NTP 服务器,然后在节点服务器上安装 NTP 客户端保持与前端的同步:

$ sudo apt-get install ntp

$ sudo vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10

$ sudo /etc/init.d/ntp restart

安装和配置 MySQL 数据库

OpenStack Nova 需要数据库的支持,这里选用 MySQL(当然也可以用其他的数据库,比如 PostgreSQL 等):

$ sudo apt-get install mysql-server

修改 MySQL 绑定地址,以便其他的节点服务器也能访问这个数据库:

$ sudo vi /etc/mysql/my.cnf
...
#bind-address           = 127.0.0.1
bind-address            = 0.0.0.0
...

$ sudo /etc/init.d/mysql restart

创建一个名为 nova 的数据库,并设置 root 从任何 IP 访问的权限和密码:

$ sudo mysql -uroot -ppassword -e 'CREATE DATABASE nova;'
$ sudo mysql -uroot -ppassword -e "GRANT ALL PRIVILEGES ON *.* TO \
'root'@'%' WITH GRANT OPTION;"
$ sudo mysql -uroot -ppassword -e "SET PASSWORD FOR \
'root'@'%' = PASSWORD('password');"

安装 Glance 镜像服务

Glance 是个镜像服务器,用来给 OpenStack Nova 提供操作系统镜像(image)服务,提供可选择的操作系统模版(镜像)。

$ sudo apt-get install glance

安装 OpenStack Nova

OpenStack Nova 已经进入 Ubuntu 11.04 源,所以直接安装就可以了,不必源码安装:

$ sudo apt-get install rabbitmq-server nova-common nova-doc python-nova
nova-api nova-network nova-volume nova-objectstore nova-scheduler nova-compute

$ sudo apt-get install -y euca2ools

$ sudo apt-get install -y unzip

配置 Nova:

$ sudo vi /etc/nova/nova.conf
--dhcpbridge_flagfile=/etc/nova/nova.conf
--dhcpbridge=/usr/bin/nova-dhcpbridge
--logdir=/var/log/nova
--state_path=/var/lib/nova
--lock_path=/var/lock/nova
--verbose
--s3_host=172.16.39.111
--rabbit_host=192.168.0.1
--cc_host=192.168.0.1
--ec2_url=http://172.16.39.111:8773/services/Cloud
--fixed_range=192.168.0.0/16
--network_size=8
--FAKE_subdomain=ec2
--routing_source_ip=192.168.0.1
--sql_connection=mysql://root:[email protected]/nova
--glance_host=192.168.0.1
--image_service=nova.image.glance.GlanceImageService

重启 nova 相关服务以便设置生效:

$ sudo restart libvirt-bin; sudo restart nova-network;
sudo restart nova-compute; sudo restart nova-api;
sudo restart nova-objectstore; sudo restart nova-scheduler;
sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry

使用 Nova

开始使用 Nova 前需要创建 nova 数据库表、创建网络、创建管理员帐号、创建云并联到刚才创建的管理员上:

$ sudo nova-manage db sync
$ sudo nova-manage network create 192.168.0.0/24 1 255
$ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27
$ sudo nova-manage user admin vpsee
$ sudo nova-manage project create mycloud vpsee

因为多个管理员可以创建多个不同的云,所以某个云的管理员需要特定的权限才能访问和管理自己的 Nova 云,创建权限信息,并解压到自己的目录里,需要注意的是每次使用 nova 管理云的时候都需要读取 novarc 里面的配置信息:

$ mkdir /home/vpsee/creds
$ sudo nova-manage project zipfile mycloud vpsee /home/vpsee/creds/novacreds.zip

$ cd /home/vpsee/creds
$ unzip novacreds.zip
$ sudo chown -R vpsee:vpsee /home/vpsee/creds/

$ source /home/vpsee/creds/novarc

每次用 nova 的时候都要用到 novarc 里面的环境变量,每次 source novarc 很麻烦,所以最好加到 .bashrc 里面:

$ cat  /home/vpsee/creds/novarc >> /home/vpsee/.bashrc
$ source /home/vpsee/.bashrc

再次重启 nova 相关的所有服务:

$ sudo restart libvirt-bin; sudo restart nova-network;
sudo restart nova-compute; sudo restart nova-api;
sudo restart nova-objectstore; sudo restart nova-scheduler;
sudo restart nova-volume; sudo restart glance-api; sudo restart glance-registry

如果一切正常的话,应该可以打印出如下的类似信息:

$ euca-describe-availability-zones verbose
AVAILABILITYZONE	nova	available
AVAILABILITYZONE	|- node00
AVAILABILITYZONE	| |- nova-scheduler	enabled :-) 2011-05-22 10:32:31
AVAILABILITYZONE	| |- nova-network	enabled :-) 2011-05-22 10:32:32
AVAILABILITYZONE	| |- nova-compute	enabled :-) 2011-05-22 10:32:24

启动第一个实例

启动实例之前需要先上传一个系统模版,我们称之为镜像(image),自己制作操作系统镜像有点麻烦(请看:为 OpenStack Nova 制作 Ubuntu 镜像 和 为 OpenStack Nova 制作 Windows 镜像。),这里直接使用一个已经做好的 Ubuntu 10.10 版本镜像,下载已经做好的镜像文件并上传到镜像服务器(这里镜像服务器和前端服务器在同一台物理服务器上):

$ wget http://c0179148.cdn1.cloudfiles.rackspacecloud.com/ubuntu1010-UEC-localuser-image.tar.gz

$ uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64

列出云里现有的可以加载的镜像,并以某个镜像(比如编号为 ami-00000003)为模版启动一个实例(操作系统):

$ euca-describe-images
IMAGE	aki-00000001	ubuntu1010-bucket/vmlinuz-2.6.32-28-server.manifest.xml		available	public		x86_64	kernel
IMAGE	ari-00000002	ubuntu1010-bucket/initrd.img-2.6.32-28-server.manifest.xmavailable	public		x86_64	ramdisk
IMAGE	ami-00000003	ubuntu1010-bucket/maverick-server-uec-amd64.img.manifest.xml		available	public		x86_64	machine	aki-00000001	ari-00000002

$ euca-add-keypair mykey > mykey.priv

$ euca-run-instances -k mykey -t m1.tiny ami-00000003

检查一下实例是否成功启动和运行:

$ virsh list
 Id Name                 State
----------------------------------
  1 instance-00000001    running

访问实例

启动实例后怎么访问呢?和访问 VPS 一样,需要 IP 地址然后 ssh 访问,还记得上面的网络配置么,新创建的系统将按照 192.168.0.x 的形式分配 IP,所以 192.168.0.3 就是刚刚 euca-run-instances 创建的实例的 IP 地址:

$ ssh [email protected]

Troubleshooting

解决 DataSourceEc2.py[WARNING]: ‘http://169.254.169.254′ failed: url error 问题。
删除 OpenStack Nova Volume 时遇到的 error_deleting 问题

评论(116 Comments)

  1. 赞!辛苦~

  2. 请问一下VPSEE大神 有没有办法使用非官方源升级到XEN4.1?
    我看非官方源那个网站。说是必须修改KERNEL的一个配置。 怎么修改呢?
    给一点简单的帮助吧

  3. @小宇日志
    看这篇:在 CentOS 5.5 上升级 Xen 到 Xen 3.4.3,可以找到 Xen 4.1 的源。

  4. 大牛,想问一下,在装操作系统的时候,是选择Ubuntu Enterprise Cloud,还是普通安装然后在后面配置选项以勾选virtual machine host??

  5. 问一下,我按照你的做了 到最后ping 虚拟机的ip地址ping不通怎么回事啊

  6. @mioe
    选择 “普通安装“ 就可以,不用选 virtual machine host,后面会用 apt-get install 安装的。

  7. 我最后也是ping不通啊

  8. @vpsee
    IP SAN存储,用于xen环境,您建议买何种接口的硬盘?
    sata、sas还是scsi?

  9. @alfie
    不好给建议,主要看你要做什么、期待什么样的效果以及你的预算。

  10. 当我使用命令:uec-publish-tarball ubunt… mybucket i386
    的时候

    出现一下信息:Unable to run euca-describe-images. Is euca2ools environment set up?请问这是怎么回事?

  11. 我确定我的euca2ools 都装上了
    按照你以前的步骤都一步一步的做了

  12. 请问下,碰到这种情况该怎么解决呢?

    # euca-describe-images
    UnknownError: An unknown error has occurred. Please try your request again.

    nova-scheduler.log:

    TRACE: ProgrammingError: (ProgrammingError) (1146, “Table ‘nova.services’ doesn’t exist”) ‘SELECT services.created_at AS services_created_at, services.updated_at AS services_updated_at, services.delet
    ed_at AS services_deleted_at, services.deleted AS services_deleted, services.id AS services_id, services.host AS services_host, services.`binary` AS services_binary, services.topic AS services_topic, services
    .report_count AS services_report_count, services.disabled AS services_disabled, services.availability_zone AS services_availability_zone \nFROM services \nWHERE services.host = %s AND services.`binary` = %s A
    ND services.deleted = %s \n LIMIT 0, 1′ (‘cgtcloud3′, ‘nova-scheduler’, False)

  13. @likang
    使用前需要加载环境变量:
    $ source /home/vpsee/creds/novarc

  14. @Alice
    检查一下 nova 的众多服务都启动了么、都正常在运行么?

  15. @vpsee
    请问下,我安装了一个控制节点和一个计算节点,但是在计算节点上启动instance的时候不能使用ping和ssh,在控制节点上启动instance时可以正常使用ping和ssh命令。

  16. @Alice
    做了授权没有?
    euca-authorize -P icmp -t -1:-1 default
    euca-authorize -P tcp -p 22 default
    再检查一下是否有2个 dnsmasq 服务同时在运行(如果你只运行了1个 instance 的话),如果不是的话 kill 后再重启服务。
    killall dnsmasq service nova-network restart

  17. @vpsee
    这个授权已经做过了,在控制机本机上是可以正常使用ping和ssh命令的,我的节点机器上只安装的nova-compute服务,节点机器上的instance可以正常启动,但是连接不上。

  18. 这个只是安装了control端吗?nova-compute没有吗?

  19. @jankie
    这个安装了 control+compute,如果要在云里增加 compute node(结点)的话只需要在每台 node (compute) 上安装就可以:
    sudo apt-get install -y nova-common python-nova nova-compute vlan unzip ntp euca2ools

  20. ~/creds# uec-publish-tarball ubuntu-8.04.4-server-uec-amd64.tar.gz mybucket
    2011年 07月 02日 星期六 08:33:53 CST: ====== extracting image ======
    kernel : hardy-server-uec-amd64-vmlinuz-xen
    ramdisk: hardy-server-uec-amd64-initrd-xen
    image : hardy-server-uec-amd64.img
    2011年 07月 02日 星期六 08:34:53 CST: ====== bundle/upload kernel ======
    failed to register hardy-server-uec-amd64-vmlinuz-xen.manifest.xml
    failed: euca-register –name hardy-server-uec-amd64-vmlinuz-xen mybucket/hardy-server-uec-amd64-vmlinuz-xen.manifest.xml
    UnknownError: UnknownError发生了一个未知的错误. 请重试你的请求.9WLRMMS0U8507U4-ALTQfailed to upload kernel

    上传的时候出现这样的提示,换了其他镜像也是一样。请问能帮忙解决一下吗?

  21. @vpsee, 在nova-compute node是否还需要安装hypersisor(KVM)呢?还是说我安装了nova-compute组件后就已经集成了kvm功能呢?另外能否在vpsee.com上展示一下关于openstack的dashboard的图形操作界面给看一下呢?呵呵。
    thanks @vpsee.

  22. @vpsee,在本案例中的control+compute节点上也可以运行instance吗?按照openstack的架构来看,一般来说是要在nova-compute node节点上运行的吧?有点晕,请vpsee指点一下,哈哈。

  23. @vpsee 以計個問題想請教一下
    1.以下 這兩個網卡與網段需要插再同一個HUB還是分開阿
    2.192.168.0.1 這裡如果只是區網並無對外連線是否可行
    3.nova.conf的-fixed_range=192.168.0.0/16 與 sudo nova-manage network create 192.168.0.0/24 1 255 有甚麼關聯 可以設一樣嗎?
    4.sudo nova-manage floating create 10.10.10.2 10.10.10.224/27
    與nova-manage network create 的設定怎麼是不同的網段呢?
    5.可否說明一下你的網路環境

    auto eth0
    iface eth0 inet static
    address 172.16.39.111
    netmask 255.255.254.0
    gateway 172.16.38.1

    auto br100
    iface br100 inet static
    bridge_ports eth1
    bridge_stp off
    bridge_maxwait 0
    bridge_fd 0
    address 192.168.0.1
    netmask 255.255.0.0
    broadcast 192.168.255.255

  24. @jankie
    安装 nova 时会自动包括 kvm. control 和 compute 结点都可以运行 instance,只要 control 上也安装了 nova-compute.

  25. @aaron
    可以在局域网。nova-manage network create 是创建内网网络,nova-manage floating create 是创建外网网络。

  26. @vpsee thanks vpsee :)

  27. @vpsee
    您好,我向跟您请教一下,我的试验机器只有一个网卡的情况下,网络怎么配置啊,我只有eth0,没有eth1.
    谢谢!

  28. 按照这样的方法安装mysql会报错的吧?

    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket 楼主有报错吗 ?

  29. @vpsee
    我与23楼的aaron有相同的疑问,能否解答详细一些吗?特别是nova.conf文件中的配置与你实验环境如何对应的?多谢!

  30. OpenStack在Ubuntu的实现中使用的是哪个VMM啊?

  31. Ubuntu中内置了VMM了不,需要自己安装吗??

  32. 我在ubuntu 上安装的时候在create new network 的时候报错
    raise IndexError(‘index out range for address range size!’)

  33. vpsee你好!实例资源如何修改,实例默认启动内存都是512M,我想修改成1G,怎么操作?

  34. @vpsee
    您好,我已经按照上面所说的步骤配置好openstack,但是访问实例的时候不成功。提示为ssh:connect to host 192.168.0.3 port 22: No route to host

  35. euca-reboot-instances ID 重启一下,应该就可以了。

  36. OpenStack 支持多种 VMM,如 Xen, KVM, VMware ESXi, Citrix XenServer, Microsoft Hyper-V, UML 等。

  37. @dennis
    看一下 nova-manage network create network 的时候各个参数和格式对不对。

  38. @koory
    可以用 nova-manage instance_type create 创建一个 1G 的新类型。

  39. @simpleboy
    你授权了吗?
    euca-authorize -P tcp -p 22 default

  40. $ sudo nova-manage floating create 10.10.10.2 10.10.10.224/27 这个中的IP地址与自己主机的IP地址有什么关系吗?

  41. ssh [email protected]后要求输入密码,密码是什么?我输入mykey不行啊

  42. @hfut
    这是创建 public IP,公网的 IP。

  43. @haha
    是你安装 ubuntu 虚拟机时候自己设置的用户名和密码。

  44. @vpsee
    你好!我平台已經架好~
    但在走訪實例部分用ssh卻一直出現”ssh: connect to host 10.0.0.2 port 22: Connection timed out”
    請問大概是什麼問題呢?
    請問ip部分是利用”euca-describe-instances”後找到running的image後面的ip嗎?
    麻煩您了!
    謝謝!!

  45. vpsee你好。我现在把平台搭建起来了,实例之间能够ping通,但就是无法和外网进行通信,也就是ping不到,请问这是怎么回事呢?需要在compute上再配置点什么吗?

  46. 你好,我按照你的步骤很顺利,但是现在,本机和示例是互通的,如果让实例与外网联通啊?可以具体讲解下吗?
    谢谢

  47. @Cindy
    最常见的问题就是忘了授权:
    euca-authorize -P tcp -p 22 default

  48. Unable to run euca–describe-images. Is environment for euca- set up?还会有什么可能导致此错误?
    需要加载环境变量:
    $ source /home/vpsee/creds/novarc已经加载过了

  49. vpsee你好!在此篇文章的基础上,如何加入一台node节点,部分实例运行在别外一台机器上.

  50. 您好!我先用nova-manage floating create创建了一些IPs,然后在执行euca-allocate-address给实例分配公有地址的时候一直报这个错:UnknownError: An unknown error has occurred. Please try your request again。然后我在nova-api.log里发现输出:
    (nova.api): TRACE: Traceback (most recent call last):
    (nova.api): TRACE: File “/usr/lib/pymodules/python2.7/nova/api/ec2/__init__.py”, line 321, in __call__
    (nova.api): TRACE: result = api_request.invoke(context)
    (nova.api): TRACE: File “/usr/lib/pymodules/python2.7/nova/api/ec2/apirequest.py”, line 150, in invoke
    (nova.api): TRACE: result = method(context, **args)
    (nova.api): TRACE: File “/usr/lib/pymodules/python2.7/nova/api/ec2/cloud.py”, line 795, in allocate_address
    (nova.api): TRACE: public_ip = self.network_api.allocate_floating_ip(context)
    (nova.api): TRACE: File “/usr/lib/pymodules/python2.7/nova/network/api.py”, line 52, in allocate_floating_ip
    (nova.api): TRACE: “args”: {“project_id”: context.project_id}})
    (nova.api): TRACE: File “/usr/lib/pymodules/python2.7/nova/rpc.py”, line 385, in call
    (nova.api): TRACE: raise wait_msg.result
    (nova.api): TRACE: RemoteError: NoMoreAddresses None
    请问您知道是由什么导致的吗?

  51. vpsee@vpsee:~/creds$ euca-describe-availability-zones verbose
    AVAILABILITYZONE nova available
    AVAILABILITYZONE |- vpsee
    AVAILABILITYZONE | |- nova-scheduler enabled XXX None
    AVAILABILITYZONE | |- nova-network enabled XXX None
    AVAILABILITYZONE | |- nova-compute enabled XXX None
    请问您这个输出结果有影响么?是什么原因导致的呢?

  52. @Anonymous
    一般来说这个问题最常见的原因是没有 source novarc,既然你说你加载了环境变量,那可能 API 服务没有启动,你需要确保 OpenStack Nova 的各个服务都能正常启动和运行。

  53. @koory
    在新加的结点上安装 sudo apt-get install nova-compute

  54. @vpsee
    你好,我根据你的步骤进行操作了,我发布了一个实例,且那个实例在running,就是不知道为什么不能ping那个实例,用ssh也登陆不上。另外,我看过/var/log/nova里面的日志,都没有报错,数据库里面的表都没有什么问题。那出现上述情况是什么原因呢?请解答

  55. @vpsee
    你好,我根据你的步骤进行操作了,我发布了一个实例,且那个实例在running,就是不知道为什么不能ping那个实例,用ssh也登陆不上。另外,我看过/var/log/nova里面的日志,都没有报错,数据库里面的表都没有什么问题。那出现上述情况是什么原因呢?请解答

    同问!谢谢!

  56. @babycat
    看看楼上的问题和解答,一般是授权问题。或者你没有在运行实例之前创建网络 nova-manage network create?你实例得到的 IP 地址是什么?

  57. sudo apt-get install -y glance
    正在读取软件包列表… 完成
    正在分析软件包的依赖关系树
    正在读取状态信息… 完成
    E: 无法找到软件包 glance
    请问是什么原因啊?

  58. @vpsee
    看看楼上的问题和解答,一般是授权问题。或者你没有在运行实例之前创建网络 nova-manage network create?你实例得到的 IP 地址是什么?

    网络创建了,nova-manage network create 121.0.30.0/24 1 255,nova-compute节点IP是121.0.16.3,是授权问题吗?我又试了几次不行,授权的时候没有报错,是否nova.conf配置的问题,我的网络是FlagDHCP,–fixed_range=121.0.30.0/24 –network_size=256

  59. 我给实例分配了公有IP并安装了apache,可以ping通,为什么不能通过浏览器访问apache呢?采用的FaltDHCP方式.麻烦楼主给点建议。 谢谢

  60. @babycat
    貌似你用的是 public IP,openstack 上面的 VMs 不能这样直接用 public IP,需要在 nova.conf 里面配置 public_interface=vlan100,你可以试一下 192.168.0. 或 10.0.0. 这样保留的内部 IP。

  61. 我给实例分配了公有IP并安装了apache,可以ping通,为什么不能通过浏览器访问apache呢?采用的FaltDHCP方式.麻烦楼主给点建议。 谢谢

  62. 你好,请问安装玩OpenStack Nova
    ,我想用java做一个开发web,能调用这个做些什么呢?请教,109492927

  63. 请问(19楼)提到在云里增加 compute node(结点)的方法的介绍。在安装软件后,要修改哪些配置来使得Nova-Controller能找到这个新添加的Nova-Compute节点呢,谢谢。

  64. @agent
    你做了 euca-authorize default -P tcp -p 80 -s 0.0.0.0/0 没有?

  65. @vpsee
    openstack的部署架构是怎样的?
    我有两个物理主机跑的是centos5.6 dom0(xen 3.4.3),其中一台起了一个hvm的ubuntu10.04LTS domU,我把控制节点服务安装的该domU中,能否控制那两台物理主机?
    另外,nova-compute可以安装的centos5.6上吗?

  66. 请问:is environment for euca set up?下载玩镜像后,下一步出现这个问题,不知道如何设置,请赐教。
    运行euca-describe-images出现EC2_ACCESS_KEY environment variable must be set
    这个也不会设置,请赐教

  67. connect to host 192.168.0.3 port 22: No route to host

    我看了实例的ID是1,2,我有2哥实例。然后euca-reboot-instances 1或者2,为什么提示无效ID

  68. @ioiioi
    理论上可以安装在 xen hvm domu 上,不过不推荐这种方式。最好用 centos 6.0.

  69. @果维康
    需要 source /home/vpsee/creds/novarc

  70. @emac
    实例应该是类似 i-00000001 的格式,不是 1。

  71. euca-attach-volume issue

    When I attach a volume to running instance with euca-attach-volume getting following error in nova-compute on the compute node in a multiple node setup :

    2011-08-29 21:18:45,738 WARNING nova.volume.driver [-] ISCSI provider_location not stored, using discovery
    2011-08-29 21:18:45,738 DEBUG nova.utils [-] Running cmd (subprocess): sudo iscsiadm -m discovery -t sendtargets -p in01emt16 from (pid=1074) execute /usr/lib/pymodules/python2.7/nova/utils.py:150
    2011-08-29 21:18:45,830 ERROR nova [-] Exception during message handling
    (nova): TRACE: Traceback (most recent call last):
    (nova): TRACE: File “/usr/lib/pymodules/python2.7/nova/volume/driver.py”, line 407, in _get_iscsi_properties
    (nova): TRACE: (volume['name']))
    (nova): TRACE: Error: Could not find iSCSI export for volume volume-00000001

    When I run all the services including nova-compute in single box then there is absolutely no error/issues with euca-attach-volume

    Following is my setup :

    root@in01emt16:~# euca-describe-availability-zones verbose
    AVAILABILITYZONE nova available
    AVAILABILITYZONE |- in01emt16
    AVAILABILITYZONE | |- nova-scheduler enabled :-) 2011-08-28 06:06:18
    AVAILABILITYZONE | |- nova-network enabled :-) 2011-08-28 06:06:19
    AVAILABILITYZONE | |- nova-volume enabled :-) 2011-08-28 06:06:18
    AVAILABILITYZONE |- in01emt17
    AVAILABILITYZONE | |- nova-compute enabled :-) 2011-08-28 06:06:22

    root@in01emt16:~# cat /etc/default/iscsitarget
    ISCSITARGET_ENABLE=true

    root@in01emt16:~# euca-describe-volumes
    VOLUME vol-00000001 1 nova available (proj, in01emt16, None, None) 2011-08-29T12:14:14Z

    root@in01emt16:~# euca-describe-instances
    RESERVATION r-r06zfr6k proj default
    INSTANCE i-0000000a ami-00000002 192.168.3.2 192.168.3.2 running None (proj, in01emt17) 0 m1.small 2011-08-29T15:44:21Z nova

    Firewall is disabled on both nodes :
    root@in01emt16:~# ufw status

    Status: inactive
    root@in01emt17:~# ufw status

    cat /etc/hosts
    127.0.0.1 localhost
    192.168.3.1 in01emt16.xyz.com in01emt16
    192.168.3.2 in01emt17.xyz.com in01emt17

    root@in01emt16:~# cat /etc/nova/nova.conf
    –dhcpbridge_flagfile=/etc/nova/nova.conf
    –dhcpbridge=/usr/bin/nova-dhcpbridge
    –logdir=/var/log/nova
    –state_path=/var/lib/nova
    –lock_path=/var/lock/nova
    –verbose=1
    –s3_host=10.144.199.85
    –rabbit_host=192.168.3.1
    –cc_host=192.168.3.1
    –ec2_path=/services/Cloud
    –ec2_port=8773
    –ec2_scheme=http
    –fixed_range=192.168.0.0/16
    –network_size=8
    –FAKE_subdomain=ec2
    –routing_source_ip=192.168.3.1
    –sql_connection=mysql://root:[email protected]/nova
    –glance_host=192.168.3.1
    –image_service=nova.image.glance.GlanceImageService
    –iscsi_ip_prefix=193.168.3.
    –network_manager=nova.network.manager.FlatDHCPManager
    –flat_interface=eth1
    –flat_injected=False
    –public_interface=eth0
    –flat_network_dhcp_start=192.168.3.3

    Let me know if any additional info is needed.

    Thanks,
    SavSui

  72. 我在做这步时,
    sudo apt-get install python-greenlet python-mysqldb python-nova nova-common nova-doc nova-api nova-network nova-objectstore nova-scheduler nova-compute euca2ools unzip

    出现了以下问题

    正在设置 nova-common (2011.3~rc~20110903.1526-0ubuntu0ppa1~natty1) …
    Traceback (most recent call last):
    File “/usr/bin/nova-manage”, line 89, in
    from nova import vsa
    File “/usr/lib/pymodules/python2.7/nova/vsa/__init__.py”, line 18, in
    from nova.vsa.api import API
    File “/usr/lib/pymodules/python2.7/nova/vsa/api.py”, line 28, in
    from nova import compute
    File “/usr/lib/pymodules/python2.7/nova/compute/__init__.py”, line 19, in
    from nova.compute.api import API
    File “/usr/lib/pymodules/python2.7/nova/compute/api.py”, line 35, in
    from nova import volume
    File “/usr/lib/pymodules/python2.7/nova/volume/__init__.py”, line 19, in
    from nova.volume.api import API
    File “/usr/lib/pymodules/python2.7/nova/volume/api.py”, line 36, in
    flags.DECLARE(‘storage_availability_zone’, ‘nova.volume.manager’)
    File “/usr/lib/pymodules/python2.7/nova/flags.py”, line 245, in DECLARE
    __import__(module_string, globals(), locals())
    File “/usr/lib/pymodules/python2.7/nova/volume/manager.py”, line 50, in
    from nova import manager
    File “/usr/lib/pymodules/python2.7/nova/manager.py”, line 60, in
    from nova.scheduler import api
    File “/usr/lib/pymodules/python2.7/nova/scheduler/api.py”, line 20, in
    from novaclient import v1_1 as novaclient
    ImportError: cannot import name v1_1
    dpkg:处理 nova-common (–configure)时出错:
    子进程 已安装 post-installation 脚本 返回了错误号 1
    dpkg:依赖关系问题使得 nova-api 的配置工作不能继续:
    nova-api 依赖于 nova-common (= 2011.3~rc~20110903.1526-0ubuntu0ppa1~natty1);然而:
    软件包 nova-common 尚未配置。

    请问是什么原因

  73. 在做
    $ uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64

    failed to bundle kernel maverick-server-uec-amd64-vmlinuz-virtual
    certfailed

    不知什么原因,是否有高手可以指点,如何做?

  74. 知道原因了,是因为 pem位置不对,把cert.pem cacert.pem pk.pem 放到/home/用户名/下就行了。

    不过不知到 euca-run-instances -k mykey -t m1.tiny ami-00000003 mykey 是怎么来的

  75. @gonewind
    上面漏掉一个步骤是 add keypairs:
    # euca-add-keypair mykey > mykey.priv

  76. 求教:
    AVAILABILITYZONE nova available
    AVAILABILITYZONE |- chenwd
    AVAILABILITYZONE | |- nova-scheduler enabled XXX None
    AVAILABILITYZONE | |- nova-network enabled XXX None
    AVAILABILITYZONE | |- nova-compute enabled XXX None

    输出这个结果,请问是什么原因造成的。困扰一天了,麻烦指教。谢谢!

  77. @蓝山
    nova 的相关组件没有启动成功,比如 rabbitmq-server 忘了安装?忘了启动?检查 rabbitmq-server, nova-scheduler, nova-network, nova-compute 等的日志。

  78. 你好,我在网上看到你写的有关《在Ubuntu上安装OpenStack Nova》。我是一名Ubuntu新手,按照你所说的办法一步一步顺利的进行着。但现在遇到了问题,配置nova时在终端输入命令$ sudo vi /etc/nova/nova.conf,接着在vi编辑器中输入你所写的那17行配置命令,我是粘贴过去的,因为我怕自己敲错代码。但在保存退出时,出现错误
    “etc/nova/nova.config”
    “etc/nova/nova.config”E212:Can’t open file for writing
    我明明在终端是root权限进入的,为什么还是不能写该文件呢?虚拟机也能连上网,不知该如何解决。还请你帮忙解答,谢谢!

  79. 请问楼主怎么设置etc/network/interfaces 这个文件
    我安装楼主说的步骤修改网络的配置文件后,就不可以上网了。
    还有就是我只有一个etho 没有eth1,改怎么就修改呢?

  80. vpsee您好
    我創建到最後執行euca-run-instances -k mykey -t m1.tiny ami-00000003時有個錯誤訊息為[ 241.676487] nbd15: Receive control failed (result -32)要怎麼解決

  81. @小王
    不清出你的状况,就你留言的文字来看,etc/nova/nova.config 应该是 /etc/nova/nova.conf,不知道你是否手误敲错?

  82. @vincent
    不太清楚,nava 的镜像服务是否启动?看一下 /var/log/nova 里面的日志信息呢?

  83. vpsee你好,我在注册实例到时候出了 下面到问题
    root@ubuntu:/home/vpsee/creds# uec-publish-tarball ubuntu-10.04-server-uec-amd64.tar.gz mybucket
    2011年 09月 28日 星期三 17:08:04 CST: ====== extracting image ======
    Warning: no ramdisk found, assuming ‘–ramdisk none’
    kernel : lucid-server-uec-amd64-vmlinuz-virtual
    ramdisk: none
    image : lucid-server-uec-amd64.img
    2011年 09月 28日 星期三 17:08:28 CST: ====== bundle/upload kernel ======
    failed to bundle kernel lucid-server-uec-amd64-vmlinuz-virtual
    failed: euca-bundle-image –destination /tmp/uec-publish-image.LIg1ui –arch x86_64 –image /tmp/uec-publish-image.LIg1ui/.rename.z5Q6ry/lucid-server-uec-amd64-vmlinuz-virtual –kernel true
    x86_64
    Invalid certfailed to upload kernel

    请问这是什么原因?

  84. 请问vpsee 出现
    root@ubuntu:/home/administrator# ssh -i mykey.priv [email protected]
    ssh: connect to host 192.168.0.2 port 22: Connection refused
    这是什么原因?
    我已经授权 euca-authorize -P icmp -t -1:-1 default
    euca-authorize -P tcp -p 22 default
    而且ping 192.168.0.2也不通,ping网关 172.16.200.190 可以通

  85. @vpsee 遇到和@likang @Anonymous一样的问题,euca已经安装,而且Source也添加进去。您说的查看服务是否已经起来,是哪个服务?如何查看?

  86. @vpsee @likang @Anonymous

    自己摸索了一下,问题已经解决,除了总结一下:
    1)先用sudo nova-manage service list 是否看到各个服务的”:-)” 符号,如果”xxx”,说明服务有问题,我的原因是Nova.conf和Interface网桥配置不合理导致的,我改成了Flat模式
    2)如果服务没有问题,可能是Glance没有安装导致

  87. @heard
    你的问题我也遇到了,我解决了,贴出来,希望对你有帮助:

    问题描述:

    root@ubuntu:/home/vpsee/creds# uec-publish-tarball ubuntu-10.04-server-uec-amd64.tar.gz mybucket
    2011年 09月 28日 星期三 17:08:04 CST: ====== extracting image ======
    Warning: no ramdisk found, assuming ‘–ramdisk none’
    kernel : lucid-server-uec-amd64-vmlinuz-virtual
    ramdisk: none
    image : lucid-server-uec-amd64.img
    2011年 09月 28日 星期三 17:08:28 CST: ====== bundle/upload kernel ======
    failed to bundle kernel lucid-server-uec-amd64-vmlinuz-virtual
    failed: euca-bundle-image –destination /tmp/uec-publish-image.LIg1ui –arch x86_64 –image /tmp/uec-publish-image.LIg1ui/.rename.z5Q6ry/lucid-server-uec-amd64-vmlinuz-virtual –kernel true
    x86_64
    Invalid certfailed to upload kernel

    解决方法,先明确你的认证文件(即cacert.pem cert.pem )存放的地方,我解压出来的认证文件放在/home/kli8/creds下面,

    #vi /home/kli8/creds/.bashrc

    删除掉这一句: NOVA_KEY_DIR=$(pushd $(dirname $BASH_SOURCE)>/dev/null; pwd;popd>/dev/null)
    修改为: NOVA_KEY_DIR=/home/kli8/creds/

    保存并退出,然后重新 source

    #source /home/kli8/.bashrc

    重新加载镜像就可以了

  88. @kli8
    可以通过 nova-manage services list 来看服务是否起来。
    # nova-manage service list
    node01 nova-scheduler enabled :-) 2011-10-06 14:09:07
    node01 nova-network enabled :-) 2011-10-06 14:09:12
    node01 nova-compute enabled :-) 2011-10-06 14:09:11
    node01 nova-volume enabled :-) 2011-10-06 14:09:08

  89. 谢谢kli8你的帮助,上次我的Invalid certfailed to upload kerne问题解决啦,现在主要的问题是实例正常启动啦,也可以ping通,但ssh连接不上,出现了
    root@ubuntu:/home/administrator# ping 172.16.200.183
    PING 172.16.200.183 (172.16.200.183) 56(84) bytes of data.
    64 bytes from 172.16.200.183: icmp_req=1 ttl=64 time=0.230 ms
    64 bytes from 172.16.200.183: icmp_req=2 ttl=64 time=0.212 ms
    64 bytes from 172.16.200.183: icmp_req=3 ttl=64 time=0.226 ms
    64 bytes from 172.16.200.183: icmp_req=4 ttl=64 time=0.425 ms
    ^C
    — 172.16.200.183 ping statistics —
    4 packets transmitted, 4 received, 0% packet loss, time 2999ms
    rtt min/avg/max/mdev = 0.212/0.273/0.425/0.088 ms
    root@ubuntu:/home/administrator# ssh [email protected]
    ssh: connect to host 172.16.200.183 port 22: Connection refused
    出现连接拒绝,我的防火墙也关啦,ufw disable
    请问vpsee大侠这是哪里出啦问题?

  90. 引用@babycat
    貌似你用的是 public IP,openstack 上面的 VMs 不能这样直接用 public IP,需要在 nova.conf 里面配置 public_interface=vlan100,你可以试一下 192.168.0. 或 10.0.0. 这样保留的内部 IP。

    我的情况和这个类似,可是我的unbuntu11.04安装在普通的台式机上,只有一个网卡,也只有一个eth0 public interface ,我的nova.conf内容如下
    –s3_host=172.16.200.187
    –rabbit_host=172.16.200.187
    –cc_host=172.16.200.187
    –ec2_url=http://172.16.200.187:8773/services/Cloud
    –my_ip=172.16.200.187
    –network_manager=nova.network.manager.FlatManager
    –fixed_range=172.16.200.128/24
    –num_networks=1
    –network_size=127
    –flat_injected=true

    –public_interface=eth0
    –flat_interface=eth0

    –FAKE_subdomain=ec2
    –routing_source_ip=172.16.200.187
    –sql_connection=mysql://root:[email protected]/nova
    –glance_host=172.16.200.187
    –image_service=nova.image.glance.GlanceImageService
    计算节点和控制节点都安装在172.16.200.187我的机器上啦,请问@vpsee怎么添加一个192的网络呢?

  91. @heard
    确定实例上安装了 openssh-server 以及正常启动了 sshd?

  92. @heard
    # nova-manage network create 192.168.0.0/24 1 256

  93. 请问博主,CPU不支持硬件虚拟化(也就是不支持KVM)怎么办?

  94. @Anonymous
    如果 cpu 不支持全虚拟话可以用 xen 半虚拟化的方式,openstack nova 支持 kvm(全虚拟化),xen(全虚拟化),xen(半虚拟化),……

  95. @vpsee
    博主能说说大致的步骤吗?非常感谢!!

    因为openstack在ubuntu上默认是使用KVM的,如果想使用XEN,那么,应该在哪里有所不同呢?

  96. @Anonymous
    openstack 默认使用的是 kvm,如果需要改成 xen 需要在 nova.conf 里修改 –libvirt_type 为 xen,然后在相应结点安装 xen 服务器。

  97. @vpsee

    博主,你好,请问能给出一篇在ubuntu 11.10上安装xen的教程吗?

    非常感谢!

  98. 请问文章里提到的这个ubuntu1010-UEC-localuser-image.tar.gz ,我已经成功运行在实例上了。但是ssh后,用什么用户和密码登陆这个实例呢?

  99. @babo
    用户名 ubuntu 密码 ubuntu

  100. @vpsee

    博主,你好。请问euca-describe-availability-zones verbose
    Warning: failed to parse error message from AWS: :1:0: syntax error
    None: None
    是什么问题?

  101. @vps
    请问UEC可以作为domU直接运行在基于centos5.6(xen3.4.3)的dom0中吗?

  102. @ioiioi
    不能直接运行,不过改一下应该可以。

  103. 楼主你好,我初学openstack,然后就跟着你上面的操作一步一步做,想问一下从配置网桥开始我都是照着上面写的,没改任何东西,到nova-manage db sync的时候报错了,是不是上面哪些网络环境配置要根据我自己电脑的情况来的啊??、

  104. @vpsee
    楼主你好。我也是初学openstack.我跟103楼遇到的问题一样,都是在nova-manage db sync的时候报错,报错的内容为:

    Traceback (most recent call last):
    File “/usr/bin/nova-manage”, line 2140, in
    main()
    File “/usr/bin/nova-manage”, line 2079, in main
    argv = FLAGS(sys.argv)
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 109, in __call__
    self._parse()
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 96, in _parse
    unknown = error_catcher.get_unknown_arg(args)
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 68, in get_unknown_arg
    return filter(lambda i: i == a or i.startswith(a + “=”), args)[0]
    IndexError: list index out of range
    我有尝试其他的nova-manage的指令。比如nova-manage db version,报错的反馈都是上面的内容。

    不清楚在网络环境配置方面是否nova.conf数据库配置出错,但没理由其他的指令也是同样的错误反馈的。例如:

    dm@dm-TA890GXB-HD:/var/lib/nova/networks$ sudo nova-manage user admin dming
    Traceback (most recent call last):
    File “/usr/bin/nova-manage”, line 2140, in
    main()
    File “/usr/bin/nova-manage”, line 2079, in main
    argv = FLAGS(sys.argv)
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 109, in __call__
    self._parse()
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 96, in _parse
    unknown = error_catcher.get_unknown_arg(args)
    File “/usr/lib/python2.6/dist-packages/nova/flags.py”, line 68, in get_unknown_arg
    return filter(lambda i: i == a or i.startswith(a + “=”), args)[0]
    IndexError: list index out of range
    希望vpsee能指点一下。。

  105. 哪位大哥上面的这个配成功的而且有时间的留个qq行不

  106. @vpsee
    你好,我在使用euca-的各种命令时,都出现下面的错误:
    Warning: failed to parse error message from AWS: :1:0: syntax error
    None: None

    请问这是什么情况啊?
    谢谢!

  107. 上面这个配成功了openstack怎么使用啊

  108. @vpsee
    你好,我在启动实例时出现下面的情况:
    root@ubuntu:~# virsh list
    Id 名称 状态
    ———————————-

    root@ubuntu:~# euca-run-instances ami-00000003 –kernel aki-00000002 –ramdisk ari-000000001 -k nova_key
    InstanceLimitExceeded: InstanceLimitExceeded: Instance quota exceeded. You can only run 0 more instances of this type.

    请问这是什么情况啊?
    谢谢!

  109. @Anonymous
    你的 instance 类型没有指定(-t m1.tiny),m1.tiny 是 512MB,m1.medium 是 4GB,你的内存是多少?如果不指定 instance 类型的话可能启动的 instance 会超过服务器所能分配的内存。如果你的服务器只有 4GB,当然不能分配一个 4GB 的 instance.

    $ euca-run-instances -k mykey -t m1.tiny ami-00000003

  110. 楼主你好:
    我做到uec-publish-tarball ubuntu1010-UEC-localuser-image.tar.gz ubuntu1010-bucket x86_64这一步时报错说
    WARNING:‘uec-publish-tarball’is now to ‘cloud-publish-tarball’.please update your tools or docs
    Unable to run euca–describe-images.Is environment for euca- set up?

    这是什么问题啊

  111. -k 的mykey 哪里来的
    另外我使用的 image是http://smoser.brickies.net/ubuntu/ttylinux-uec/ 上的ssh上去提示输入密码,我不知道怎么输入。

  112. 这个文档完全不齐全,莫要误导大家了。大家去openstack.org看

  113. @vpsee 你好,我在用nova-manage创建网络的时候就会出现:Command failed, please check log for more info的错误,只有nova-manage db sync是成功的,其余全会报错,这是什么原因呢?

  114. @teacherzhu
    你用的是新版的 openstack,新版 openstack 里面 uec-publish-tarball 命令改成了 cloud-publish-tarball,而且你需要 source novarc 之后才能发布镜像。特别注意,openstack 在飞速发展中,每天都在变化,以前的命令可能都有变化,注意这篇文章的写作时间。

  115. @Anonymous
    看75楼回复。

  116. @vpsee楼主你好,我把uec-publish-tarball 改成cloud-publish-tarball后还是显示Unable to run euca–describe-images.Is environment for euca- set up?
    可是我source /home/vpsee/creds/novarc和source /home/vpsee/.bashrc 这两步都做了,
    euca-describe-availability-zones verbose后也成功显示了组建的运行状态,它还说euca的环境没配好,这怎么解决啊

你可能感兴趣的:(OpenStack,ubuntu,xen,network,centos,interface,服务器)