立即注册 登录
About云-梭伦科技 返回首页

pig2的个人空间 https://www.aboutyun.com/?61 [收藏] [复制] [分享] [RSS]

日志

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

已有 1550 次阅读2015-2-26 17:58

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







原文:
http://www.aboutyun.com/thread-11653-1-1.html



内容:
  • 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

操作如下:
 




2.生效环境变量

  1. source admin-openrc.sh





3.创建keystone认证

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

 


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"

 
  1. keystone service-create --name cinderv2 --type volumev2 \
  2.   --description "OpenStack Block Storage"

 



说明:
块存储服务需要两个不同的服务实例支持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



 

  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

 




说明:
块存储服务需要两个不同的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

 

完成安装

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

 

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

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



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

关闭

推荐上一条 /2 下一条