• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >虚拟化 > OpenStack安装部署Liberty Neutron

OpenStack安装部署Liberty Neutron

作者:skyWalker_ONLY 字体:[增加 减小] 来源:互联网

本文主要包含安装openstack,neutron,neutron安装,liberty,安装手册等服务器相关知识,skyWalker_ONLY 希望可以进行参考

最近在两台物理机环境中部署了OpenStack的Liberty版本,各个模块都遇到或多或少的问题,但尤以Neutron的问题最让人头疼。尽管OpenStack一直致力于简化Neutron的部署,但对于非网络技术人员来说依然存在着很大的挑战,根本原因还是由于网络自身的复杂性所导致的,因此想要成功部署Neutron还是需要网络基础的,但这并不意味着没有网络基础就不能成功部署Neutron并使其工作。本文将总结Neutron的安装部署步骤,并对遇到的问题进行详细的描述,旨在提供解决问题的思路或者给与一定的启示。

根据官方部署文档的说法,Neutron允许创建由其它OpenStack服务管理的接口设备,并将这样的设备附加到网络,可以实现各种插件或代理以适应不同的网络设备和软件,为OpenStack架构提供足够的灵活性。Neutron主要包括以下组件:

  • Neutron-server:接收并转发API请求到合适的Neutron插件,如linuxbridge-agent。
  • Neutron插件和代理:连接port,创建网络或子网,提供IP地址。根据云计算环境使用的厂商或者技术,这些插件和代理会有所区别。Neutron为思科的虚拟和物理交换机、NEC的OpenFlow产品、Open vSwitch(OVS)、Linux bridging和VMware的NSX产品提供了插件或代理。
  • 消息队列:Neutron使用消息队列在Neutron-server和各种代理之间路由消息,也存储特定插件的状态。主要的消息队列有RabbitMQ、Qpid和ZeroMQ。

Neutron将网络、子网和路由器抽象为对象,每个抽象对象都具有与其对应的物理概念或设备的功能,网络包含子网,路由器在不同的子网和网络之间路由消息。每个路由器有一个连接到网络的网关(Gateway)和许多连接子网的虚拟网卡,连接到相同路由器的子网可以互相访问。这和实际物理环境中路由器的功能是一致的。

无论以何种方式部署Neutron,在创建网络时至少需要创建一个external网络。与其它网络不同的是,external网络不仅仅是虚拟定义网络,它代表了物理的,OpenStack安装之外的外部网络的视图。External网络上的IP地址可以被外部物理网络访问,由于external网络仅仅表示外部网络的视图,因此在该网络总DHCP是禁用的。除了external网络,还要有一个或多个internal网络,VMs直接连接到这些软件定义网络。相同internal网络上的VMs可以互相访问,或连接到相同路由器上不同子网中的VMs也可以互相访问,比如主机A位于子网N1,主机B位于子网N2,N1和N2连接到相同的路由器,那么A和B之间是网络可达的。外部网络访问VMs或VMs访问外部网络的功能有路由器完成,路由器的网关连接external网络,internal网络连接路由器的接口,与实际的物理网络结构相似。可以为internal网络中的ports分配external网络中的IP地址,port指的是连接到子网的连接。通过将external网络中的IP与VMs的ports关联可以实现外部网络对VMs的访问。Neutron也支持安全组。安全组使管理员可以在组内定义防火墙规则,VM可以属于多个安全组,Neutron根据安全组的规则或策略阻塞或允许ports,或VMs允许的通信类型。

 本次将Neutron部署在两台物理机controller和compute上,其中controller做为控制节点(网络节点),compute为计算节点,controller节点已经安装配置了MySQL、RabbitMQ和keystone。首先需要在mysql数据库中创建neutron对应的数据库:

 MariaDB [(none)]> create database neutron; 
Query OK, 1 row affected (0.04 sec) 
MariaDB [(none)]> grant all privileges on neutron.* to 'neutron'@'localhost' identified by 'neutron'; 
Query OK, 0 rows affected (0.24 sec) 
MariaDB [(none)]> grant all privileges on neutron.* to 'neutron'@'%' identified by 'neutron';      
Query OK, 0 rows affected (0.00 sec) 

其次在keystone中创建neutron对应的用户、service和endpoint:

[opst@controller ~]$ source admin-openrc.sh 
[root@controller opst]# openstack user create --domain default --password neutron neutron 
+-----------+----------------------------------+ 
| Field   | Value             | 
+-----------+----------------------------------+ 
| domain_id | default           | 
| enabled  | True             | 
| id    | 24a20abcf4324cfca09484959244aaf7 | 
| name   | neutron           | 
+-----------+------------------------------------+ 
  
[root@controller opst]# openstack role add --project service --user neutron admin 
[root@controller opst]# openstack service create --name neutron --description 'The Networking Service' network 
[root@controller opst]# openstack endpoint create --region RegionOne neutron public http://controller:9696 
+--------------+----------------------------------+ 
| Field    | Value             | 
+--------------+----------------------------------+ 
| enabled   | True             | 
| id      | a7aae0431e2948ce8070ddf0a14bbdf8 | 
| interface  | public             | 
| region    | RegionOne          | 
| region_id  | RegionOne         | 
| service_id  | ec4391191490440787799e973b54c816 | 
| service_name | neutron           | 
| service_type | network           | 
| url     | http://controller:9696     | 
+--------------+------------------------------------+ 
[root@controller opst]# openstack endpoint create --region RegionOne neutron internal http://controller:9696 
+--------------+----------------------------------+ 
| Field    | Value             | 
+--------------+----------------------------------+ 
| enabled   | True             | 
| id      | 8599ab44484b4c3dbc12f8c945490cef | 
| interface  | internal            | 
| region    | RegionOne          | 
| region_id  | RegionOne         | 
| service_id  | ec4391191490440787799e973b54c816 | 
| service_name | neutron           | 
| service_type | network           | 
| url     | http://controller:9696     | 
+--------------+-----------------------------------+ 
[root@controller opst]# openstack endpoint create --region RegionOne neutron admin http://controller:9696   
+--------------+----------------------------------+ 
| Field    | Value             | 
+--------------+----------------------------------+ 
| enabled   | True             | 
| id      | 66ef114548e84911873e83949ef76307 | 
| interface  | admin            | 
| region    | RegionOne          | 
| region_id  | RegionOne         | 
| service_id  | ec4391191490440787799e973b54c816 | 
| service_name | neutron           | 
| service_type | network           | 
| url     | http://controller:9696     | 
+--------------+-------------------------------------+ 

完成上述基础服务的配置管理后,要决定Neutron部署架构,可以采用的架构有两种,Provider网络和Self-service网络。Provider网络可能是最简单的Neutron架构,仅支持为VM分配public(Provider)网络,没有自服务网络,路由器或者浮动IP,只有admin或者其他特权用户可以管理Provider网络。Self-service网络支持layer-3服务,允许VMs分配private网络,demo用户或其他非特权用户可以自行管理网络,比如连接self-service网络和provider网络的路由器。另外,浮动IP可以使外部网络,比如Internet,访问VMs。Self-service网络也支持VMs分配public(Provider)网络。

本次部署采用Self-service网络。在控制节点controller部署self-service网络相关安装包,根据操作系统是否已经安装了ebtables或ipset,最后两个安装包可做相应取舍。

[root@controller opst]# yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge python-neutronclient ebtables ipset 

编辑/etc/neutron/neutron.conf:

[DEFAULT] 
verbose = True 
core_plugin = ml2 
service_plugins = router 
allow_overlapping_ips = True 
rpc_backend=rabbit 
auth_strategy = keystone 
  
notify_nova_on_port_status_changes = True 
notify_nova_on_port_data_changes = True 
nova_url = http://controller:8774/v2 
  
[database] 
connection = mysql://neutron:neutron@controller/neutron 
  
[oslo_messaging_rabbit] 
rabbit_host = controller 
rabbit_userid = openstack 
rabbit_password = opst 
  
[keystone_authtoken] 
auth_uri = http://controller:5000 
auth_url = http://controller:35357 
auth_plugin = password 
project_domain_id = default 
user_domain_id = default 
project_name = service 
username = neutron 
password = neutron 
  
[nova] 
auth_url = http://controller:35357 
auth_plugin = password 
project_domain_id = default 
user_domain_id = default 
region_name = RegionOne 
project_name = service 
username = nova 
password = nova 
  
[oslo_concurrency] 
lock_path = /var/lib/tmp/neutron 

编辑/etc/neutron/plugins/ml2/ml2_conf.i

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Openstack安装过程中遇到的问题汇总
  • centos下最简安装openstack——使用packstack详解
  • Fuel 30 分钟快速安装OpenStack(图文教程)
  • CentOS 一键安装Openstack详细介绍
  • OpenStack安装部署Liberty Neutron
  • CentOS系统中一键安装Openstack图文教程

相关文章

  • jenkins构建Docker 镜像实例详解
  • docker compose 服务启动顺序控制的方法
  • 详解docker pull 下来的镜像文件存放的位置
  • MapReduce处理数据去重与数据排序,mapreduce排序
  • docker pure-ftp 搭建ftp服务器的方法
  • 详解Docker 端口映射与容器互联
  • 详解OpenStack之服务端口号
  • virtualbox下osx系统盘扩容方法
  • Docker网络代理设置详解
  • virtualbox不能安装64位系统的解决方法

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Docker Swarm入门实例详解
    • Docker镜像构建的两种方法解析
    • 详解在Docker容器中运行Spring Boot应用
    • 利用Docker制作Nginx+PHP镜像的步骤详解
    • OpenStack Mitaka 版本中的 domain 和 admin详解
    • Windows使用docker打开新窗口error解决办法
    • Docker教程之Ubuntu 安装 Docker详细介绍
    • 购买虚拟服务器的8大注意事项
    • zabbix监控docker容器状态【推荐】
    • Docker 容器虚拟化的实用技巧总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有