pig2 发表于 2015-2-13 19:24:48

openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】

本帖最后由 pig2 于 2015-2-26 17:30 编辑

问题导读
1.OpenStack Block Storage又被称为什么?
2.块存储服务为什么需要两个不同的服务实例?
3.两个服务实例与api endpoint 之间是什么关系?



static/image/hrline/2.gif


接上篇openstack【juno】入门 【dashboard篇】十九:添加dashboard



内容:

[*]OpenStack Block Storage(cinder)
[*]在控制节点安装配置
[*]安装配置cinder node


OpenStack Block存储服务为实例通过不同后台提供block 存储设备。 Block 存储 API 和调度服务运行在控制节点。volume 服务运行在一个或多个存储节点。cinder为实例提供本地存储或则SAN/NAS后台适当的驱动。更多信息查看Configuration Reference.

注意:
本章没有备份manager,因为他依赖于对象服务。

OpenStack 块存储

openstack块存储服务(cinder)为虚拟机增加持久性存储,块存储为管理卷提供基础设施,与openstack 计算提供的实例存储相互作用。这个也启用了volume 快照管理,和volume 类型。

块存储由以下内容组成:

cinder-api

接受一些请求,并把他们发送给 cinder-volume


cinder-volume

直接与块存储服务相互作用,处理比如cinder-scheduler(cinder调度),它通过消息队列直接与这些过程相互作用。cinder-volume服务响应读写请求。cinder-volume通过驱动与可以使用不同供应商的存储设置


cinder-scheduler 守护进程

选择最优节点存储创建卷,与nova-scheduler组件类似

消息队列

块存储之间传递信息


安装配置控制节点

这里描述怎么安装和配置存储服务,代号为cinder,在控制节点上。这个服务至少需要一个存储节点为实例提供卷。

准备
在安装配置cinder之前,必须创建数据库、服务认证、和API endpoints

1.创建数据库,完成下面内容

a.进入mysql
mysql -u root -p

b.创建cinder数据库

CREATE DATABASE cinder;

c.授权
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'CINDER_DBPASS';

CINDER_DBPASS 可以自定义

d.退出mysql
exit操作如下:





2.生效环境变量

source admin-openrc.sh


3.创建keystone认证

a.创建cinder 用户
keystone user-create --name cinder --pass CINDER_PASS


b.给cinder用户授予admin角色
keystone user-role-add --user cinder --tenant service --role admin这里不会有输出内容,所以看不出输出信息


c.创建cinder服务实例
keystone service-create --name cinder --type volume \
--description "OpenStack Block Storage"
keystone service-create --name cinderv2 --type volumev2 \
--description "OpenStack Block Storage"



说明:
块存储服务需要两个不同的服务实例支持api 版本1和版本2


4.创建块存储服务 API endpoints

keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volume / {print $2}') \
--publicurl http://controller:8776/v1/%\(tenant_id\)s \
--internalurl http://controller:8776/v1/%\(tenant_id\)s \
--adminurl http://controller:8776/v1/%\(tenant_id\)s \
--region regionOne



keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \
--publicurl http://controller:8776/v2/%\(tenant_id\)s \
--internalurl http://controller:8776/v2/%\(tenant_id\)s \
--adminurl http://controller:8776/v2/%\(tenant_id\)s \
--region regionOne




说明:
块存储服务需要两个不同的endpoints ,支持api版本1和版本2

安装和配置块存储控制器组件

1.下载并安装
apt-get install cinder-api cinder-scheduler python-cinderclient

2.编辑文件 /etc/cinder/cinder.conf,完成下面内容

sudo nano/etc/cinder/cinder.conf

a.在 部分,配置数据库访问

...
connection = mysql://cinder:CINDER_DBPASS@controller/cinder没有找到[database],这里直接添加

b.在 部分,配置RabbitMQ 消息代理访问

...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS


RABBIT_PASS这里使用的是默认密码


c.在 和 部分,配置认证访问

...
auth_strategy = keystone


...
auth_uri = http://controller:5000/v2.0
identity_uri = http://controller:35357
admin_tenant_name = service
admin_user = cinder
admin_password = CINDER_PASS

注意:注释掉其他 auth_host, auth_port, 和 auth_protocol 选项,以免配置被覆盖。



d.在 部分,配置控制节点管理网络ip地址


...
my_ip = 10.0.0.11

e.(可选)为排除故障,在 部分启用 verbose 日志记录

...
verbose = True





3.同步数据库

su -s /bin/sh -c "cinder-manage db sync" cinder

完成安装

1.重启服务
service cinder-scheduler restart
service cinder-api restart

2.如果有SQLite 数据库,则移除

rm -f /var/lib/cinder/cinder.sqlite





相关内容:

openstack【juno】入门 【准备篇】零:整体介绍

openstack【juno】入门 【准备篇】一: Ubuntu14.04远程连接(ssh安装)

openstack【juno】入门 【准备篇】二::NTP安装

openstack【juno】入门 【准备篇】三:mysql(MariaDB)安装

openstack【juno】入门 【准备篇】四::RabbitMQ 安装

openstack【juno】入门 【keystone篇】五::Keystone部署及介绍

openstack【juno】入门 【keystone篇】六::Keystone使用及遇到问题解决办法

openstack【juno】入门 【keystone篇】七:创建 service entity 和 API endpoint

openstack【juno】入门 【keystone篇】八:新手操作篇(验证操作篇)

openstack【juno】入门 【keystone篇】九:创建openstack客户端环境变量脚本

openstack【juno】入门 【glance 篇】十:glance初步介绍

openstack【juno】入门 【glance 篇】十一:glance安装配置

openstack【juno】入门 【glance 篇】十二:glance安装配置验证及相关操作

openstack【juno】入门 【nova 篇】十三(1):nova简单介绍

openstack【juno】入门 【nova 篇】十三(2):安装配置计算服务

openstack【juno】入门 【网络篇】十四:neutron介绍

openstack【juno】入门 【网络篇】十五:neutron安装部署(控制节点)

openstack【juno】入门 【网络篇】十六:neutron安装部署(网络节点)

openstack【juno】入门 【网络篇】十七:neutron安装部署(计算节点)

openstack【juno】入门 【网络篇】十八:创建实例化网络

openstack【juno】入门 【dashboard篇】十九:添加dashboard

openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】

openstack【juno】入门 【cinder篇】二十一:安装配置块存储节点(cinder)

openstack【juno】入门 【swift篇】二十二:对象存储安装配置【控制节点】

openstack【juno】入门 【swift篇】二十三:安装配置swift节点

openstack【juno】入门 【swift篇】二十四:创建初始rings

openstack【juno】入门 【swift篇】二十五:验证安装(控制节点)

openstack【juno】入门 【实例篇】二十六:创建实例(neutron)

openstack【juno】入门 【总结篇】二十七:openstack排除故障及常见问题记录

openstack【juno】入门 【总结篇】二十八:keystone及网络总结






坟墓头子 发表于 2016-4-12 17:06:08

求助:同步数据库时候,报错    /usr/lib/python2.7/dist-packages/oslo_messaging/_drivers/base.py:20: DeprecationWarning: The oslo namespace package is deprecated. Please use oslo_config instead.
from oslo.config import cfg
之后在控制节点执行cinder service-list,列表中只有cinder-scheduler,没有cinder-volume。
页: [1]
查看完整版本: openstack【juno】入门 【cinder篇】二十:cinder介绍及安装配置【控制节点】