分享

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

pig2 发表于 2015-2-13 19:24:48 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 1 70695
本帖最后由 pig2 于 2015-2-26 17:30 编辑
问题导读
1.OpenStack Block Storage又被称为什么?
2.块存储服务为什么需要两个不同的服务实例?
3.两个服务实例与api endpoint 之间是什么关系?






接上篇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
  1. mysql -u root -p
复制代码


b.创建cinder数据库

  1. CREATE DATABASE cinder;
复制代码


c.授权
  1. GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
  2.   IDENTIFIED BY 'CINDER_DBPASS';
  3. GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
  4.   IDENTIFIED BY 'CINDER_DBPASS';
复制代码


CINDER_DBPASS 可以自定义

d.退出mysql
  1. exit
复制代码
操作如下:
1.png




2.生效环境变量

  1. source admin-openrc.sh
复制代码



3.创建keystone认证

a.创建cinder 用户
  1. keystone user-create --name cinder --pass CINDER_PASS
复制代码
2.png


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


c.创建cinder服务实例
  1. keystone service-create --name cinder --type volume \
  2.   --description "OpenStack Block Storage"
复制代码
3.png
  1. keystone service-create --name cinderv2 --type volumev2 \
  2.   --description "OpenStack Block Storage"
复制代码
5.png



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


4.创建块存储服务 API endpoints

  1. keystone endpoint-create \
  2.   --service-id $(keystone service-list | awk '/ volume / {print $2}') \
  3.   --publicurl http://controller:8776/v1/%\(tenant_id\)s \
  4.   --internalurl http://controller:8776/v1/%\(tenant_id\)s \
  5.   --adminurl http://controller:8776/v1/%\(tenant_id\)s \
  6.   --region regionOne
复制代码


4.png

  1. keystone endpoint-create \
  2.   --service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \
  3.   --publicurl http://controller:8776/v2/%\(tenant_id\)s \
  4.   --internalurl http://controller:8776/v2/%\(tenant_id\)s \
  5.   --adminurl http://controller:8776/v2/%\(tenant_id\)s \
  6.   --region regionOne
复制代码
6.png




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

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

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


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

  1. sudo nano  /etc/cinder/cinder.conf
复制代码


a.在 [database]部分,配置数据库访问
  1. [database]
  2. ...
  3. connection = mysql://cinder:CINDER_DBPASS@controller/cinder
复制代码
没有找到[database],这里直接添加

b.在 [DEFAULT]部分,配置RabbitMQ 消息代理访问
  1. [DEFAULT]
  2. ...
  3. rpc_backend = rabbit
  4. rabbit_host = controller
  5. rabbit_password = RABBIT_PASS
复制代码



RABBIT_PASS这里使用的是默认密码


c.在 [DEFAULT] 和 [keystone_authtoken] 部分,配置认证访问
  1. [DEFAULT]
  2. ...
  3. auth_strategy = keystone
  4. [keystone_authtoken]
  5. ...
  6. auth_uri = http://controller:5000/v2.0
  7. identity_uri = http://controller:35357
  8. admin_tenant_name = service
  9. admin_user = cinder
  10. admin_password = CINDER_PASS
复制代码


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



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

  1. [DEFAULT]
  2. ...
  3. my_ip = 10.0.0.11
复制代码


e.(可选)为排除故障,在 [DEFAULT]部分启用 verbose 日志记录
  1. [DEFAULT]
  2. ...
  3. verbose = True
复制代码






3.同步数据库

  1. su -s /bin/sh -c "cinder-manage db sync" cinder
复制代码
7.png

完成安装

1.重启服务
  1. service cinder-scheduler restart
  2. service cinder-api restart
复制代码
8.png

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

  1. 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及网络总结






已有(2)人评论

跳转到指定楼层
坟墓头子 发表于 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。

点评

说明配置有问题呗  发表于 2016-4-12 17:25
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条