在optenstack配置nova

原创 2017年10月06日 19:45:59

安装和配置 Compute Service(计算服务)

使用 OpenStack 计算服务托管和管理云计算系统。OpenStack 计算服务是基础架构即服务(IaaS)系统的重要组成部分。

v先决条件

1. 创建数据库,完成下列步骤:

A. 使用数据库命令行客户端,以 root 身份登录数据库服务器。

# mysql -u root -p123

B. 创建 nova_api,nova 和 nova_cell0 数据库:

MariaDB [(none)]> CREATE DATABASEnova_api;

MariaDB [(none)]> CREATE DATABASE nova;

MariaDB [(none)]> CREATE DATABASEnova_cell0;

C. 创建数据库用户 nova,并授予数据库用户nova 访问 nova_api和 nova 数据库的权限。

MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_api.* TO 'nova'@'%' IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGESON nova.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

MariaDB [(none)]>GRANT ALL PRIVILEGES ONnova.* TO 'nova'@'%' IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY '123456';

MariaDB [(none)]> GRANT ALL PRIVILEGESON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY '123456';

替换 NOVA_DBPASS 为一个合适的密码。

D. 退出数据库

2. 执行 admin 凭据脚本,以便以admin 身份执行后续命令:

# . admin-openrc

3. 创建服务凭据,并完成下列步骤:

A. 创建 nova 用户

# openstack user create --domain default--password-prompt nova

B. 添加 admin 角色到 nova 用户和 service 项目

# openstack role add --project service--user nova admin

C. 创建 nova 服务实体:

# openstack service create --name nova--description "OpenStack Compute" compute

4. 创建计算服务的 API 端点:

# openstack endpoint create --regionRegionOne compute public http://controller32:8774/v2.1

# openstack endpoint create --regionRegionOne compute internal http://controller32:8774/v2.1

# openstack endpoint create --regionRegionOne compute admin http://controller32:8774/v2.1

5. 创建 Placement 服务用户

# openstack user create --domain default--password-prompt placement

6. 将 placement 用户以 admin 角色加入到 service项目

# openstack role add --project service--user placement admin

7. 在身份服务的服务目录中,添加placement 服务。

# openstack service create --name placement--description "Placement API" placement

8. 创建 Placement API 服务端点

# openstack endpoint create --regionRegionOne placement public http://controller32:8778

# openstack endpoint create --region RegionOneplacement internal http://controller32:8778

# openstack endpoint create --regionRegionOne placement admin http://controller32:8778

 

v安装配置组件

1. 安装软件包

# yuminstall openstack-nova-api openstack-nova-conductor openstack-nova-consoleopenstack-nova-novncproxy openstack-nova-scheduler openstack-nova-placement-apiopenstack-nova-compute –y

2. 编辑/etc/nova/nova.conf文件并完成下列操作:

A. 在[DEFAULT]小节,只启用compute 和 metadata 的 API。

[DEFAULT]

# ...

enabled_apis = osapi_compute,metadata

B. 在[api_database]和[database]小节,配置数据库访问:

[api_database]

# ...

connection = mysql+pymysql://nova:123456@controller32/nova_api

[database]

# ...

connection = mysql+pymysql://nova:123456@controller32/nova

替换 NOVA_DBPASS 为你的计算服务数据库用户 nova 的密码。

C. 在[DEFAULT]小节配置 RabbitMQ消息队列访问:

[DEFAULT]

# ...

transport_url = rabbit://openstack:123456@controller32

替换 RABBIT_PASS 为 RabbitMQ 用户 openstack 的密码。

D. 在[api]和[keystone_authtoken]小节配置身份服务访问信息:

[api]

# ...

auth_strategy = keystone

[keystone_authtoken]

# ...

auth_uri = http://controller32:5000

auth_url = http://controller32:35357

memcached_servers = controller32:11211

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = nova

password = 123456

替换 NOVA_PASS 为身份服务中用户 nova 的密码。

E. 在[DEFAULT]小节,配置 my_ip 配置项为管理节点的管理接口IP地址。

[DEFAULT]

# ...

my_ip = 10.0.0.10

F. 在[DEFAULT]小节,启用支持neutron 网络服务:

[DEFAULT]

# ...

use_neutron = True

firewall_driver =nova.virt.firewall.NoopFirewallDriver

G. 在[vnc]小节,配置 vnc 代理,使用管理节点的管理接口 IP 地

址:

[vnc]

enabled = true

# ...

vncserver_listen = $my_ip

vncserver_proxyclient_address = $my_ip

novncproxy_base_url = http://controller32:6080/vnc_auto.html

H. 在[glance]小节,配置镜像服务 API的位置:

[glance]

# ...

api_servers = http://controller32:9292

I. 在[oslo_concurrency]小节,配置锁路径:

[oslo_concurrency]

# ...

lock_path = /var/lib/nova/tmp

J. 在[placement]小节,配置 placementAPI 信息:

[placement]

# ...

os_region_name = RegionOne

project_domain_name = Default

project_name = service

auth_type = password

user_domain_name = Default

auth_url = http://controller32:35357/v3

username = placement

password = 123456

替换 PLACEMENT_PASS 为身份服务中用户 placement 的密码。

K. 由于软件包 bug,必须将下列配置添加到文件/etc/httpd/conf.d/00-nova-placement-api.conf中,以启用对 Placement API的访问。

<Directory /usr/bin>

<IfVersion >= 2.4>

Require all granted

</IfVersion>

<IfVersion < 2.4>

Order allow,deny

Allow from all

</IfVersion>

</Directory>

L. 重启 httpd 服务:

# systemctl restart httpd

大家可以通过status命令来查看服务的状态,如图所示:

3. 初始化 nova_api 数据库:

# su -s /bin/sh -c "nova-manage api_dbsync" nova

4. 注册 cell0 数据库

# su -s /bin/sh -c "nova-managecell_v2 map_cell0" nova

5. 创建 cell1 cell

# su -s /bin/sh -c "nova-managecell_v2 create_cell --name=cell1 --verbose" nova

6. 初始化 nova 数据库

# su -s /bin/sh -c "nova-manage dbsync" nova

7. 验证 nova cell0 和 cell1 已经注册

# nova-manage cell_v2 list_cells

v 完成安装

1. 探测你的计算节点是否支持硬件虚拟机化:

# egrep -c '(vmx|svm)' /proc/cpuinfo

如果结果大于或等于 1,则表示你的计算节点支持硬件虚拟化。如果等于 0,则表示不支持,那么你必须配置 libvirt,用 QEMU 代替KVM。

编辑/etc/nova/nova.conf 文件中的[libvirt]小节:

[libvirt]

# ...

virt_type = qemu

2. 启动计算服务并设置开机自动运行:

#systemctl enable openstack-nova-api.service openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service openstack-nova-conductor.serviceopenstack-nova-novncproxy.service libvirtd.serviceopenstack-nova-compute.service

#systemctl start openstack-nova-api.service openstack-nova-consoleauth.serviceopenstack-nova-scheduler.service openstack-nova-conductor.serviceopenstack-nova-novncproxy.service libvirtd.serviceopenstack-nova-compute.service

v验证操作

在管理节点进行下列操作。

1. 执行 admin 凭据脚本,以便以admin 身份执行后续命令:

# .admin-openrc

2. 通过列出服务组件,确认每一个进程已经成功启动和注册:

#openstack compute service list

3. 列出在身份服务中的端点,以验证与身份服务的连接正常:

openstackcatalog list

4. 列出镜像服务中的镜像,以验证与镜像服务连接正常:

openstackimage list

5. 检查 cells 和 PlacementAPI 工作是否正常

nova-statusupgrade check

版权声明:本文为博主原创文章,未经博主允许不得转载。

Openstack Ocata Nova Cell

Openstack Ocata Nova Cell
  • yenai2008
  • yenai2008
  • 2017年03月09日 10:04
  • 2182

OpenStack Nova-cell服务的介绍和配置

我将先在此篇博客中介绍nova-cell服务的架构和配置,在下一篇博客中,我将具体分析nova-cell的源码。 cell的功能允许我们以更加灵活的分布式的方式实现对OpenStack Compute...
  • gaoxingnengjisuan
  • gaoxingnengjisuan
  • 2013年10月30日 18:07
  • 6050

OpenStack Ocata 安装(四)安装计算(Nova)服务

安装计算(Nova)服务 使用OpenStack Compute来托管和管理云计算系统。 OpenStackCompute可以在标准硬件上横向扩展,并下载图像到启动实例。 Nova下的子类: nova...
  • ChenVast
  • ChenVast
  • 2017年04月30日 20:29
  • 2445

关于nova-manage service list检测服务状态原理

环境:centos6.5 openstack ice版 1、 2、 3、 vim /usr/bin/nova-manage ...
  • tantexian
  • tantexian
  • 2014年09月11日 12:42
  • 39523

Nova虚拟机迁移

这里根据我的配置环境只讲述冷迁移(Migrate Instance)需要进行的计算节点配置而不包含热迁移(Live Migrate Instance),后者需要共享存储及Hypervisor的支持。 ...
  • flyforfreedom2008
  • flyforfreedom2008
  • 2015年05月14日 16:42
  • 1371

Docker容器、镜像、数据卷

Dockerfile中Run指令运行命令时找不到命令 Run cmd 是在/bin/sh环境中执行命令。 Run [“cmd”] 是直接使用系统调用exec执行。 找不到命令时将/bin/sh替...
  • ae5555
  • ae5555
  • 2015年12月15日 13:49
  • 1385

OpenStack之日志

OpenStack日志日志对于一个稳定的系统来说相当重要,对于OpenStack这样一个大型的系统,日志当然也是必不可少,理解Openstack系统的日志对于保证OpenStack环境稳定非常重要。对...
  • henulwj
  • henulwj
  • 2015年08月24日 18:35
  • 9527

nova数据库模块的开发和使用

在nova.db这一块E\F\G\H这几个版本差异不大,但是从G版开始加入了conductor,不允许compute直接访问数据库,所以在compute的代码里调用数据库需要通过conductor。 ...
  • tpiperatgod
  • tpiperatgod
  • 2013年12月25日 18:08
  • 2798

Matika版OpenStack伪生产环境部署-keystone

身份服务概述      OpenStack认证管理服务提供一个单点集成身份验证、授权和服务目录服务。其他OpenStack服务使用认证服务作为一个通用统一的API。此外,服务提供用户的信息,但不包括在...
  • zjluobing
  • zjluobing
  • 2016年05月24日 18:02
  • 2989

浅谈su临时切换用户的实现方法

最近开发Android app需要用到root权限去调用一些shell程序,接触过Linux的同学知道用su这个命令,su的意思是switch user,切换用户。然而在我调用su的时候,授权管理器总...
  • kangear
  • kangear
  • 2013年07月09日 23:11
  • 4339
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在optenstack配置nova
举报原因:
原因补充:

(最多只允许输入30个字)