目录
- 一、组件3—计算服务
-
- 1.简介
- 2.安装并配置控制节点
- 3.安装并配置计算节点
- 4.验证操作
- 二、组件4—Networking 服务
-
- 1.简介
- 2.安装并配置控制节点
- 3.控制节点配置网络选项---公共网络
- 4.安装并配置计算节点
- 5.计算节点配置网络选项---公共网络
- 6.验证操作
- 三、启动一个实例(命令行方式)
-
- 1.提供者网络(公共网络)
- 2.在公有网络上创建实例
一、组件3—计算服务
1.简介
参考官网:点击
使用OpenStack计算服务来托管和管理云计算系统。OpenStack计算服务是基础设施即服务(IaaS)系统的主要部分,模块主要由Python实现。OpenStack计算组件请求OpenStack Identity服务进行认证;请求OpenStack Image服务提供磁盘镜像;为OpenStack dashboard提供用户与管理员接口。磁盘镜像访问限制在项目与用户上;配额以每个项目进行设定(例如,每个项目下可以创建多少实例)。OpenStack组件可以在标准硬件上水平大规模扩展,并且下载磁盘镜像启动虚拟机实例。
OpenStack计算服务由下列组件所构成:
- nova-api 服务:
接收和响应来自最终用户的计算API请求。此服务支持OpenStack计算服务API,Amazon EC2 API,以及特殊的管理API用于赋予用户做一些管理的操作。它会强制实施一些规则,发起多数的编排活动,例如运行一个实例。 - nova-api-metadata 服务:
接受来自虚拟机发送的元数据请求。一般在安装nova-network
服务的多主机模式下使用。 nova-compute
服务:
一个持续工作的守护进程,通过Hypervior的API来创建和销毁虚拟机实例。nova-scheduler
服务:
拿到一个来自队列请求虚拟机实例,然后决定那台计算服务器主机来运行它。nova-conductor
模块:
媒介作用于nova-compute
服务与数据库之间。它排除了由nova-compute
服务对云数据库的直接访问。nova-conductor模块可以水平扩展。但是,不要将它部署在运行nova-compute
服务的主机节点上。nova-cert
模块:
服务器守护进程向Nova Cert服务提供X509证书。用来为euca-bundle-image
生成证书。- nova-consoleauth 守护进程:
授权控制台代理所提供的用户令牌。 - nova-novncproxy 守护进程:
提供一个代理,用于访问正在运行的实例,通过VNC协议,支持基于浏览器的novnc客户端。 - nova-spicehtml5proxy 守护进程:
提供一个代理,用于访问正在运行的实例,通过 SPICE 协议,支持基于浏览器的 HTML5 客户端。 - nova-xvpvncproxy 守护进程:提供一个代理,用于访问正在运行的实例,通过VNC协议,支持OpenStack特定的Java客户端。
- nova-cert 守护进程:
X509 证书。 nova
客户端:
用于用户作为租户管理员或最终用户来提交命令。- 队列
一个在守护进程间传递消息的中央集线器。常见实现有RabbitMQ <http://www.rabbitmq.com/>
__ , 以及如Zero MQ <http://www.zeromq.org/>
__等AMQP消息队列。 - SQL数据库:
存储构建时和运行时的状态,为云基础设施。
2.安装并配置控制节点
接下来将描述如何在控制节点上安装和配置 Compute 服务,即 nova。安装和配置 Compute 服务前,必须创建数据库服务的凭据以及 API endpoints。为了创建数据库,必须完成这些步骤。
用数据库连接客户端以 root 用户连接到数据库服务器;
创建 nova_api 和 nova 数据库;
对数据库进行正确的授权。
要创建服务证书,完成这些步骤:
创建 nova 用户:
给 nova 用户添加 admin 角色;
创建 nova 服务实体
创建 Compute 服务 API 端点(public),这一组件的端口为8774
创建 Compute 服务 API 端点(内部)
创建 Compute 服务 API 端点(admin)
安装软件包
编辑/etc/nova/nova.conf
文件
在[DEFAULT]
部分,只启用计算和元数据API
在[api_database]
和[database]
部分,配置数据库的连接:
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列访问
指定消息队列的主机、连接的用户名和密码
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问(keystone)
在 [DEFAULT 部分,配置my_ip
来使用控制节点的管理接口的IP 地址(eth0的地址);
使用 Networking 服务
在[vnc]
部分,配置VNC代理使用控制节点的管理接口IP地址
在 [glance] 区域,配置镜像服务 API 的位置
在 [oslo_concurrency] 部分,配置锁路径
同步Compute 数据库,忽略输出中任何不推荐使用的信息。
启动 Compute 服务并将其设置为随系统启动
列出服务
3.安装并配置计算节点
rhel7.6虚拟机,至少2G的内存;
双网卡 eth0: 172.25.36.6 访问Horizon使用,eth1:激活但不分配ip,neutron使用,云主机访问外网用;
禁用selinux和firewalld;
虚拟机的cpu需要支持kvm虚拟化,CPU 设为直通模式( host-passthrough 是为了虚拟机里支持 kvm 硬件虚拟化)
修改server6的主机名,作为计算节点
进行域名解析
网卡配置文件如下
激活eth1网卡
安装时间同步服务
使用Chrony简单配置服务器之间的时间同步
同步宿主机的时间
启动并自启chrony服务;
查看是否成功
配置yum源
升级包
接下来描述如何在计算节点上安装并配置计算服务;
安装软件包(计算节点来启动云主机,不需要连接数据库(为了安全))
编辑/etc/nova/nova.conf
文件
在[DEFAULT]
和 [oslo_messaging_rabbit]部分,配置RabbitMQ
消息队列的连接
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问
在 [DEFAULT] 部分,配置 my_ip 选项;
使用 Networking 服务:
在[vnc]
部分,启用并配置远程控制台访问(监听所有接口);
服务器组件监听所有的 IP 地址,而代理组件仅仅监听计算节点管理网络接口的 IP 地址;
基本的 URL ,可以使用 web 浏览器访问位于该计算节点上实例的远程控制台的位置。
在 [glance] 区域,配置镜像服务 API 的位置
在 [oslo_concurrency] 部分,配置锁路径
使用如下命令,查看计算节点是否支持虚拟机的硬件加速:
$ egrep -c ‘(vmx|svm)’ /proc/cpuinfo
如果这个命令返回了 one or greater 的值,那么该计算节点支持硬件加速且不需要额外的配置;
如果这个命令返回了 zero 值,那么该计算节点不支持硬件加速。必须配置 libvirt 来使用 QEMU 去代替 KVM
在 /etc/nova/nova.conf 文件的 [libvirt] 区域做出如下的编辑:
启动计算服务及其依赖,并将其配置为随系统自动启动
4.验证操作
列出服务组件,以验证是否成功启动并注册了每个进程;
前三个组件在控制节点(server5),最后一个组件在计算节点(server6)
二、组件4—Networking 服务
1.简介
OpenStack Networking(neutron),允许创建、插入接口设备,这些设备由其他的OpenStack服务管理。插件式的实现可以容纳不同的网络设备和软件,为OpenStack架构与部署提供了灵活性。
它包含下列组件:
- neutron-server:
接收和路由API请求到合适的OpenStack网络插件,以达到预想的目的。 - OpenStack网络插件和代理:
插拔端口,创建网络和子网,以及提供IP地址,这些插件和代理依赖于供应商和技术而不同,OpenStack网络基于插件和代理为Cisco 虚拟和物理交换机、NEC OpenFlow产品,Open vSwitch,Linux bridging以及VMware NSX 产品穿线搭桥。
常见的代理L3(3层),DHCP(动态主机IP地址),以及插件代理。 - 消息队列:
大多数的OpenStack Networking安装都会用到,用于在neutron-server和各种各样的代理进程间路由信息。也为某些特定的插件扮演数据库的角色,以存储网络状态。
OpenStack网络主要和OpenStack计算交互,以提供网络连接到它的实例。
2.安装并配置控制节点
在配置OpenStack网络(neutron)服务之前,必须为其创建一个数据库,服务凭证和API端点,完成下面的步骤以创建数据库。
用数据库连接客户端以 root 用户连接到数据库服务器;
创建neutron
数据库;
对neutron
数据库授予合适的访问权限;
要创建服务证书,完成这些步骤:
创建neutron
用户
添加admin
角色到neutron
用户;
创建neutron
服务实体
创建neutron
服务实体(public),这一组件的端口为9696
创建neutron
服务实体(内部)
创建neutron
服务实体(admin)
3.控制节点配置网络选项—公共网络
我们首先使用公共网络架构来部署网络服务。
安装组件
Networking 服务器组件的配置包括数据库、认证机制、消息队列、拓扑变化通知和插件。
编辑/etc/neutron/neutron.conf
文件
在 [database] 部分,配置数据库访问
在[DEFAULT]
部分,启用ML2插件并禁用其他插件
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问
在[DEFAULT]
和[nova]
部分,配置网络服务来通知计算节点的网络拓扑变化
在 [oslo_concurrency] 部分,配置锁路径
接下来配置 Modular Layer 2 (ML2) 插件,ML2插件使用Linuxbridge机制来为实例创建layer-2虚拟网络基础设施。
编辑/etc/neutron/plugins/ml2/ml2_conf.ini
文件
在[ml2]
部分,启用flat和VLAN网络
禁用私有网络,启用Linuxbridge机制,启用端口安全扩展驱动
在[ml2_type_flat]
部分,配置公共虚拟网络为flat网络
在 [securitygroup]
部分,启用 ipset 增加安全组规则的高效性
接下来,配置Linuxbridge代理,Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件
在[linux_bridge]
部分,将公共虚拟网络和公共物理网络接口对应起来(虚拟主机使用eth1桥接进行通信)
在[vxlan]
部分,禁止VXLAN覆盖网络
在 [securitygroup]
部分,启用安全组并配置 Linuxbridge iptables firewall driver:
接下来配置DHCP代理(这个组件用来给云主机分配ip);
编辑/etc/neutron/dhcp_agent.ini
文件
在[DEFAULT]
部分,配置Linuxbridge驱动接口,DHCP驱动并启用隔离元数据,这样在公共网络上的实例就可以通过网络来访问元数据
接下来配置元数据代理,The :term:metadata agent <Metadata agent>
负责提供配置信息,例如:访问实例的凭证。
编辑/etc/neutron/metadata_agent.ini
文件
在[DEFAULT]
部分,配置元数据主机以及共享密码
为计算节点配置网络服务,编辑/etc/nova/nova.conf
文件
在[neutron]
部分,配置访问参数,启用元数据代理并设置密码
网络服务初始化脚本需要一个超链接 /etc/neutron/plugin.ini指向ML2插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini
。如果超链接不存在,使用下面的命令创建它;
同步数据库
重启计算API 服务;
当系统启动时,启动 Networking 服务并配置它启动(三个代理);
对于两种网络选项。
4.安装并配置计算节点
安装组件
编辑/etc/neutron/neutron.conf
文件
在 “[DEFAULT]” 和 “[oslo_messaging_rabbit]”部分,配置 “RabbitMQ” 消息队列的连接
在 “[DEFAULT]” 和 “[keystone_authtoken]” 部分,配置认证服务访问(keystone认证)
[oslo_concurrency] 部分,配置锁路径
5.计算节点配置网络选项—公共网络
配置Linuxbridge代理,Linuxbridge代理为实例建立layer-2虚拟网络并且处理安全组规则。
编辑/etc/neutron/plugins/ml2/linuxbridge_agent.ini
文件
在[linux_bridge]
部分,将公共虚拟网络和公共物理网络接口对应起来(计算节点上的eth1接口作为云主机的通信)
在[vxlan]
部分,禁止VXLAN覆盖网络
在 [securitygroup]
部分,启用安全组并配置 Linuxbridge iptables firewall driver:
接下来为计算节点配置网络服务。
编辑/etc/nova/nova.conf
文件
在[neutron]
部分,配置访问参数
重启计算服务(由于更改了配置文件);
启动Linuxbridge代理并配置它开机自启动:
6.验证操作
列出加载的扩展来验证neutron-server
进程是否正常启动
使用公共网络,列出代理以验证启动 neutron 代理是否成功(可以看到控制节点启用了三个代理,计算节点启用了一个代理)
三、启动一个实例(命令行方式)
1.提供者网络(公共网络)
点击提供者网络
创建网络(名为provider);
–shared
选项允许所有项目使用虚拟网络
在网络上创建一个子网(名为provider)
openstack自带的flavor其实就是云主机的类型
创建m1.nano规格的主机,默认的最小规格的主机需要512 MB内存。对于环境中计算节点内存不足4 GB的,推荐创建只需要64 MB的m1.nano
规格的主机。若单纯为了测试的目的,应该使用m1.nano
规格的主机来加载CirrOS镜像;
注意:id不能冲突,1个虚拟化cpu,64M内存,一个磁盘,名为m1.nano
生成一个键值对:大部分云镜像支持公共密钥认证而不是传统的密码认证。在启动实例前,必须添加一个公共密钥到计算服务。
首先导入demo
的凭证(切到普通用户操作);
生成和添加秘钥对(将公钥上传到openstack)
验证公钥的添加
增加安全组规则:默认情况下,
default
安全组适用于所有实例并且包括拒绝远程访问实例的防火墙规则。对诸如CirrOS这样的Linux镜像,应该至少允许ICMP (ping) 和安全shell(SSH)规则。
添加规则到 default 安全组:首先允许 ICMP (ping)
其次允许安全 shell (SSH) 的访问
2.在公有网络上创建实例
启动一台实例,必须至少指定一个类型、镜像名称、网络、安全组、密钥和实例名称。
列出可用类型(可以看到m1.nano);
列出可用镜像;
列出可用网络;
列出可用的安全组(default 安全组)
由于我们的镜像版本太高,因此云主机启动有问题。接下来将镜像删除,重新下载源镜像
选择0.3.4版本镜像
使用 QCOW2 磁盘格式, bare 容器格式上传镜像到镜像服务并设置公共可见,这样所有的项目都可以访问它
确认镜像的上传并验证属性
列出可用网络
列出可用类型
启动实例(云主机名为provider-instance)
检查实例的状态;
使用虚拟控制台访问实例:获取 Virtual Network Computing (VNC) 会话URL并从web浏览器访问它:
宿主机进行解析
此时,网页访问上面的URL,去访问云主机
使用cirros登陆,密码为cubswin:);
可以看到云主机成功搭建,分到的ip如下
但此时不能上网
真机打开转发功能
此时云主机可以上网(云主机与虚拟机桥接)
top查看:top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况
计算节点安装如下包(云主机其实就是一个虚拟机)
可以看到计算节点上的云主机的相应信息(云主机的网络接口为eth1)
测试:控制节点远程连接云主机