分享

OpenStack Nova 安装后的 FlatManager 网络配置及问题解决

hyj 发表于 2014-2-15 14:48:41 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 28689
本帖最后由 pig2 于 2014-3-7 01:34 编辑
这里讲一下:OpenStack Nova 安装后的 FlatManager 网络配置。因为遇到的问题,各种各样,这里只是个人遇到的问题,供大家参考。
在安装的过程中可会遇到的问题:
1.instance在running,但是ping不通,授权也做了,可能的原因是什么?
2.network create会报错,network list也会报同样的错,等遇到问题,该如何查看原因?


OpenStack Nova 的网络设置很复杂,controller 上可以有多个网卡,compute 上也可以有多网卡,controller 和 compute 的网络设置还可以不同,并且每个设置还可以分为 FlatManager, FlatDHCPManager, VlanManager,每个 project 允许不同的网络设置,并且每个 user 可以创建多个 project 和 network。


这里只介绍最简单的一种情况,只有一个网卡、一个 user 创建一个 project 和 network、直接使用现有的局域网 IP 地址不干扰现有网络。就是说把安装好的 OpenStack Nova Controller/Compute 并入到现有的局域网里,在 Nova 上创建的 instance 通过 bridge 使用现有局域网的 IP(而不是另建一个私有网络)。比如 VPSee 实验室现在已经有了 172.16.38.0/23 这个网络,如何利用这个网络和配置 OpenStack Nova 呢?

先检查一下 Nova 的配置文件:
  1. $ sudo vi /etc/nova/nova.conf
  2. --logdir=/var/log/nova
  3. --state_path=/var/lib/nova
  4. --lock_path=/var/lock/nova
  5. --verbose
  6. --s3_host=172.16.39.111
  7. --rabbit_host=172.16.39.111
  8. --cc_host=172.16.39.111
  9. --ec2_url=http://172.16.39.111:8773/services/Cloud
  10. --FAKE_subdomain=ec2
  11. --sql_connection=mysql://root:vpsee@172.16.39.111/nova
  12. --glance_host=172.16.39.111
  13. --image_service=nova.image.glance.GlanceImageService
  14. --my_ip=172.16.39.111
  15. --network_manager=nova.network.manager.FlatManager
  16. --fixed_range=172.16.38.0/23
  17. --num_networks=1
  18. --flat_injected=true
复制代码
看看 bridge 网卡配置是否正确:
  1. $ sudo vi /etc/network/interfaces
  2. auto lo
  3. iface lo inet loopback
  4. auto br100
  5. iface br100 inet static
  6. address 172.16.39.111
  7. netmask 255.255.254.0
  8. gateway 172.16.38.1
  9. bridge_ports eth0
  10. bridge_stp off
  11. bridge_maxwait 0
  12. bridge_fd 0
复制代码
如果修改了上面的配置需要重启 Nova 的各个模块和 Ubuntu 的网络,怕麻烦的话还是直接重启系统吧:
  1. $ sudo reboot
复制代码
如果 nova-manage network list 发现有以前留下的网络需要 delete 掉,删除所有以前残留的网络然后重新创建一个 172.16.38.0/23 新网络:
  1. $ sudo nova-manage network delete 192.168.3.0/24 1 255
  2. $ sudo nova-manage network create 172.16.38.0/23 1 512
  3. $ sudo nova-manage network list
  4. network netmask start address DNS
  5. 172.16.38.0/23 255.255.254.0 172.16.38.2 8.8.4.4
复制代码
因为有些 IP 地址是我们局域网正在用的,新建的 VM 不能占用这些 IP,所以需要划分一些 IP 留给 OpenStack Nova 用,需要进入数据库后修改 fixed_ips 这个表的 reserved 为 0,比如我们想把 172.16.39.222-226 这5个 IP 留给 OpenStack Nova instances:
  1. $ mysql -u root -p
  2. Enter password:
  3. Welcome to the MySQL monitor. Commands end with ; or \g.
  4. Your MySQL connection id is 135
  5. Server version: 5.1.54-1ubuntu4 (Ubuntu)
  6. Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
  7. This software comes with ABSOLUTELY NO WARRANTY. This is free software,
  8. and you are welcome to modify and redistribute it under the GPL v2 license
  9. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  10. mysql> use nova;
  11. Database changed
  12. mysql> update fixed_ips set reserved = '1';
  13. Query OK, 6 rows affected (0.00 sec)
  14. Rows matched: 1448 Changed: 6 Warnings: 0
  15. mysql> update fixed_ips set reserved = '0' where address='172.16.39.222';
  16. mysql> update fixed_ips set reserved = '0' where address='172.16.39.223';
  17. mysql> update fixed_ips set reserved = '0' where address='172.16.39.224';
  18. mysql> update fixed_ips set reserved = '0' where address='172.16.39.225';
  19. mysql> update fixed_ips set reserved = '0' where address='172.16.39.226';
复制代码
重启 OpenStack Nova 的各个模块,然后新建一个 ubuntu instance 测试一下是否得到了正确的 IP 并能 ping 通网关(172.16.38.1)。



关于网络配置的问题:
问题1:
最近也遇到了ping不通正在运行示例的问题,用的两台机器配置nova的,一台安装了所有的nova服务,作为controller node,第二台只安装了nova-compute,作为compute node。现在只能ping通和ssh访问controller上面的实例,compute node上面的实例ping不通,也不能ssh访问。两台机器都是双网卡。估计是的网络配置有问题。
请教一下,FlatManager的网络配置方式,适用于多台机器么,如果有一台controller 是按您上面说的这种方式,还可以再添加一个compute node吗,compute node 应该如何配置呢?
回答:
可以添加 compute node,也需要 bridge。上面的例子是 controller + compute 的
问题2:
查看实例运行状态时显示如下结果,不知道是为什么?
RESERVATION        r-8m9p2q0p        cloud        default
INSTANCE        i-00000003        ami-00000001         networking        admin (cloud, ubuntu)        0         m1.tiny        2011-10-17T08:10:07Z        nova
RESERVATION        r-ylmip43u        cloud        default
INSTANCE        i-00000004        ami-00000001         networking        admin (cloud, ubuntu)        0         m1.tiny        2011-10-17T08:36:46Z        nova
回答:
instance 停在 networking 状态表示网络不成功,可以通过查看相关日志 nova-networking.log 获得更多信息。RESERVATION 表示当前资源不够分配给 instance,预留。

问题3:
instance虽然running,但是ping不通,授权也做了,不知道该从哪里查找原因呢?

回答:
instance 显示在 running 并不代表就真的在 running,用 virsh 和 vnc 等工具亲自登陆到 instance 虚拟机上看看是不是在运行,并且看看 instance 的网络配置是否正确。

问题4:
所有的原件的是安装到一个机器上,但是只有一个网卡,现在instances 可以running 但是euca-get-consolo-output显示网络不通,想问具体的一个网卡的话是如何分配的.
回答:
这里讲的就是一个网卡的情况,通过 sudo nova-manage network create 172.16.38.0/23 1 512 来分配 IP,并且保证数据库里面有 172.16.38. 这些 IP。

问题5:
执行命令nova-manage network create 10.40.36.0/24 1 512
报错误:
(nova): TRACE: Traceback (most recent call last):
(nova): TRACE: File “/usr/bin/nova-manage”, line 2141, in
(nova): TRACE: main()
(nova): TRACE: File “/usr/bin/nova-manage”, line 2129, in main
(nova): TRACE: fn(*fn_args, **fn_kwargs)
(nova): TRACE: File “/usr/bin/nova-manage”, line 766, in create
(nova): TRACE: raise exception.NetworkNotCreated(req=’–bridge’)
(nova): TRACE: NetworkNotCreated: –bridge is required to create a network.
事实上网桥和您说的是一样配置的,只是根据自己网络环境做了相应的修改,能帮忙分析下问题可能出在哪么?感谢!
回答:
需要有 bridge,用 ifconfig 检查是否有 br100:
br100 Link encap:Ethernet HWaddr 00:0c:29:63:c1:cd
inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe63:c1cd/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2238168 errors:0 dropped:33754 overruns:0 frame:0
TX packets:22841 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:152099001 (952.0 MB) TX bytes:3776648 (93.7 MB)

问题6:
遇到了错误,log如下
2012-02-24 15:26:38,239 CRITICAL nova [-] –bridge is required to create a network.
(nova): TRACE: Traceback (most recent call last):
(nova): TRACE: File “/usr/bin/nova-manage”, line 2141, in
(nova): TRACE: main()
(nova): TRACE: File “/usr/bin/nova-manage”, line 2129, in main
(nova): TRACE: fn(*fn_args, **fn_kwargs)
(nova): TRACE: File “/usr/bin/nova-manage”, line 766, in create
(nova): TRACE: raise exception.NetworkNotCreated(req=’–bridge’)
(nova): TRACE: NetworkNotCreated: –bridge is required to create a network.
本来用的是Flatdhcp,后来改成和你一样的flat模式,但是结果依旧,ifconfig结果表示
br100正常接受和发送数据,请教一下可能是什么问题。
(PS:之前nova-manage create能正常执行,但是实例ping不同,再后来就instance直接一直pending mykey了,就重新装了一遍nova,结network就出问题了,请指教。)
回答:
上面错误提示很清楚 –bridge is required to create a network,需要有 bridge,检查一下是否有 br100,没有的话需要安装 apt-get install bridge-utils 并且配置 /etc/network/interface
$ ifconfig
br100 Link encap:Ethernet HWaddr 00:1b:24:92:a2:42

问题7:
安装了bridge-utils的,ifconfig结果如下:
br100 Link encap:以太网 硬件地址 00:e0:81:b7:27:1a
能正常接收数据的,interfaces文件和你的配置一样的,只是把ip等改成我的固定的ip。
不仅network create会报错,连network list也会报同样的错。
请问这可能和nona.conf文件的配置有关系么?还是其他哪个地方出错,谢谢解答。
回答:
很多原因导致出错,需要看日志 /var/log/nova/nova-network.log 获得进一步出错信息。

问题8:
重启服务后有些服务不启动不了,但是用euca-describe-availability-zones 确能得到和你相似的结果,这是成功了吗,我是在一台机器,单网卡上搭控制结点,下面应该怎么做,需要把这些服务调试成功吗,还是做下面的镜像?
root@ubuntu:~# restart nova-network; restart nova-api; restart nova-objectstore; restart nova-scheduler; restart glance-api;
nova-network start/running, process 3390
nova-api start/running, process 3401
restart: Unknown instance:
restart: Unknown instance:
glance-api start/running, process 3413
root@ubuntu:~# restart glance-registry
glance-registry start/running, process 3416
root@ubuntu:~# euca-describe-availability-zones verboseAVAILABILITYZONE        nova        available
AVAILABILITYZONE        |- ubuntu
AVAILABILITYZONE        | |- nova-scheduler        enabled XXX None
AVAILABILITYZONE        | |- nova-network        enabled XXX None
AVAILABILITYZONE        | |- nova-compute        enabled XXX None
回答:
看上面的输出结果是,没有一个服务成功运行,只有 nova 各个服务组件都正常运行了才能做其他的。




来自群组: openstack技术组

已有(2)人评论

跳转到指定楼层
ssbpls 发表于 2014-2-15 17:02:59
非常详细,谢谢楼主分享。
回复

使用道具 举报

null 发表于 2014-3-19 19:24:06
谢谢楼主分享,确实各种错误都不一样,不过还是很有价值的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条