本帖最后由 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
复制代码
b.创建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
复制代码
操作如下:
2.生效环境变量
复制代码
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.在 [database]部分,配置数据库访问
[database]
...
connection = mysql://cinder:CINDER_DBPASS@controller/cinder 复制代码
没有找到[database ],这里直接添加
b.在 [DEFAULT]部分,配置RabbitMQ 消息代理访问
[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = RABBIT_PASS 复制代码
RABBIT_PASS这里使用的是默认密码
c.在 [DEFAULT] 和 [keystone_authtoken] 部分,配置认证访问
[DEFAULT]
...
auth_strategy = keystone
[keystone_authtoken]
...
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.在 [DEFAULT]部分,配置控制节点管理网络ip地址
[DEFAULT]
...
my_ip = 10.0.0.11 复制代码
e.(可选)为排除故障,在 [DEFAULT]部分启用 verbose 日志记录
[DEFAULT]
...
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及网络总结