文档章节

openstack-mitaka安装文档-块存储服务

J
 JennerLuo
发布于 2016/08/10 23:48
字数 1792
阅读 53
收藏 0

 

块存储服务概述

OpenStack块存储服务(cinder)给虚拟机添加持久存储。块存储给管理卷提供一个基础设施,并与OpenStac计算服务进行交互从而给云主机实例提供卷。该服务也启用了卷快照和卷类型的管理。

块存储服务由下面组件构成:

cinder-api

接受API请求,并将它们路由到cinder-volume的ation。

cinder-volume

直接和存储服务交互,并处理如cinder-scheduler等。它也这些进程通过消息队列进行交互。Cinder-volume服务反馈读和写请求到块存储服务以维持状态。通过驱动结构它能与各种存储提供商进行交互。

cinder-scheduler daemon

选择最佳的存储供应节点然后在其上创建卷。和nova-scheduler类似。

cinder-backup daemon

cinder-backup服务为备份存储供应程序提供任何类型的卷备份。如cinder-volume服务,它能通过驱动结构与各种存储供应程序交互。

Messaging queue

在各个存储进程之间进行信息转发。

 

安装和配置控制节点

这部分描述如何在控制节点安装块存储服务。此服务要求至少一个额外存储节点来给云主机实例提供卷。

先决条件

1.以下几步完成数据库创建:

l用root账号登陆数据库

mysql -u root -p

l创建cinder数据库

CREATE DATABASE cinder;

l给cinder数据库授权

GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'cinder';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%'  IDENTIFIED BY 'cinder';

l退出数据库

2.加载admin凭证

. admin-openrc

3.创建服务凭证

l创建cinder用户

openstack user create --domain default --password-prompt cinder

l将admin角色添加给cinder用户

openstack role add --project service --user cinder admin

l创建cinder和cinderv2服务entities

openstack service create --name cinder --description "OpenStack Block Storage" volume

openstack service create --name cinderv2 --description "OpenStack Block Storage" volumev2

备注:块存储服务要求两个服务

 

4.创建块存储服务 API endpoints

openstack endpoint create --region RegionOne volume public http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne volume internal http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne volume admin http://controller:8776/v1/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 public http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 internal http://controller:8776/v2/%\(tenant_id\)s

openstack endpoint create --region RegionOne volumev2 admin http://controller:8776/v2/%\(tenant_id\)s

备注:块存储要求为两个服务实体每个都要创建对应的endpoint。

 

安装和配置组件

1.安装软件包

yum install openstack-cinder

2.编辑/etc/cinder/cinder.conf文件,并修改操作:

l在[database]部分,配置数据库访问

[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

将CINDER_DBPASS替换成正确的密码

l在[DEFAULT]和[oslo_messaging_rabbit]部分,配置RabbitMQ消息队列访问

[DEFAULT]
...
rpc_backend = rabbit
 
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

将RABBIT_PASS替换成正确的密码

l在[DEFAULT] and [keystone_authtoken]部分,配置Identity服务访问

[DEFAULT]
...
auth_strategy = keystone
 
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password         
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS

         将CINDER_PASS替换成正确的密码

l在[default]部分,my_ip为控制节点的管理网络IP地址

[DEFAULT]
...
my_ip = 192.168.213.81

l在[oslo_concurrency]部分,配置lock path

[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp

3.同步数据库

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

配置计算服务使用块存储

1.编辑/etc/nova/nova.conf文件并添加下面内容

[cinder]
os_region_name = RegionOne

完成安装

1.重启计算API服务

systemctl restart openstack-nova-api.service

2.启动块存储服务并配置开机启动

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service

安装和配置存储节点

这部分描述如何在存储节点安装块存储服务。为简单起见,这个配置将引用一个带有一个空的本地存储设备的存储节点。此操作指南使用/dev/sdb,但你可以替换成你特定节点不同的值。

该服务在此设备上使用LVM驱动提供逻辑卷,并通过iSCSI端口将它们提供给云主机实例。你可以按照这些指引进行较小的修改,以水平扩展你的环境与额外的存储节点。

 

先决条件

在存储节点开始安装和配置块存储服务前,你必须准备存储设备。

1.安装支持工具包

l安装LVM包

yum install lvm2

l启动LVM元数据服务并配置开机自启动

systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service

2.创建LVM物理卷/dev/sdb

pvcreate /dev/sdb

3.创建LVM卷组cinder-volumes

vgcreate cinder-volumes /dev/sdb

         块存储服务会在这个卷组里创建逻辑卷。

4.只有云主机实例能访问块存储卷。然而,底层操作系统管理与卷相关的设备。默认情况下,LVM卷扫描工具会为包含卷的块存储设备扫描/dev目录。如果项目在他们的卷上使用LVM,扫描工具检测到这些卷,并试图对其进行缓存,缓存这些可导致一系列与底层操作系统和工程量都相关的问题。你必须重新配置LVM来只扫描包含cinder-volume卷组的设备。编辑/etc/lvm/lvm.conf文件并完成下面步骤。

l在devices部分,添加一个filter来接受/dev/sdb设备并拒绝所有的其它设备

devices {
...
filter = [ "a/sdb/", "r/.*/"]

在filter数组里的每一项,以a开头表示接受,以r开头表示拒收,并且包含一个正则表达式设备名。数组必须以r/.*/结尾来拒收任何剩下的设备。你可以用vgs –vvvv命令来测试filters

警告:如果你的存储节点在操作系统盘使用LVM,你必须也添加相关的设备到filter。例如,如果/dev/sda设备包含操作系统:filter = [ "a/sda/", "a/sdb/", "r/.*/"]。

类似的,如果你的计算节点在操作系统盘使用LVM,你必须也要修改这些节点的/etc/lvm/lvm.conf文件里的filter,将操作系统盘包括进去。例如,如果/dev/sda设备包含操作系统:filter = [ "a/sda/", "r/.*/"]

安装和配置组件

1.安装软件包

yum install openstack-cinder targetcli

2.编辑/etc/cinder/cinder.conf文件

l在[database]部分,配置数据库访问

[database]
...
connection = mysql+pymysql://cinder:CINDER_DBPASS@controller/cinder

将CINDER_DBPASS正确的密码

l在[DEFAULT] 和 [oslo_messaging_rabbit]部分,RabbitMQ消息队列

[DEFAULT]
...
rpc_backend = rabbit
 
[oslo_messaging_rabbit]
...
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = RABBIT_PASS

         将RABBIT_PASS正确的密码

l在[DEFAULT] 和 [keystone_authtoken]部分,配置Identity服务访问

[DEFAULT]
...
auth_strategy = keystone
 
[keystone_authtoken]
...
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = CINDER_PASS

         将CINDER_PASS正确的密码

l在[default]部分,配置my_ip

[DEFAULT]
...
my_ip = MANAGEMENT_INTERFACE_IP_ADDRESS

         将MANAGEMENT_INTERFACE_IP_ADDRESS替换成存储节点管理网络接口IP地址。

l在[lvm]部分,配置

[lvm]
...
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm

l在[default]部分,配置

[DEFAULT]
...
enabled_backends = lvm

l在[default]部分,配置

[DEFAULT]
...
glance_api_servers = http://controller:9292

l在[oslo_concurrency]部分,配置

[oslo_concurrency]
...
lock_path = /var/lib/cinder/tmp

完成安装

启动块存储卷服务包括它的依赖,并配置开机启动

systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service

 

验证操作

下列操作在控制节点进行

1.加载admin凭证

. admin-openrc

2.列出服务组件来验证每个进程成功启动

cinder service-list

 

 

 

 

 

 

© 著作权归作者所有

J
粉丝 5
博文 130
码字总数 75981
作品 0
深圳
程序员
私信 提问
安装Openstack的Mitaka版本的swift服务时,swift服务无法启动

你好,我在安装并且配置好Openstack的Mitaka版本的swift服务后,swift服务无法启动。proxy服务运行在controller node上,并且已经正常运行,chrony服务正常同步时间。 swift服务安装环境如下...

jokk
2016/08/19
729
0
OpenStack基础环境 [一]

OpenStack基础环境 [一] OpenStack基础环境 [一] openstack介绍  openstack是一个云平台管理的项目,它不是一个软件。也就是说我们可以使用来管理我们一个数据中心大量资源池。它里面包含了...

Abcdocker
2018/06/26
0
0
OpenStack centos版安装(二)

在OpenStack第一天文档翻译后,丁丁努力坚持每晚抽时间翻译OpenStack官方网站提供的安装与部署指南,本文翻译自官方安装与部署指南的前四章内容,前四章内容主要是对OpenStack整体安装步骤以...

蓝狐乐队
2014/04/18
270
0
OpenStack Mitaka 正式发布

伴随着OpenStack的第十三次发布(mitaka),企业和服务提供商可以获得更好、更强的管理性、可扩展性以及更好的用户体验。感谢来自293家公司的2336贡献者在每一个关键时刻及时的交付Mitaka。 ...

linuxprobe
2016/04/09
2K
2
在centos7上安装openstack mitaka版本

前言:openstack真是一个庞然大物,想要吃透还真不容易,所以在对openstack大概有了一个了解的时候,就应该是部署,虽然openstack的安装方式有rdo或者devstack等一键安装工具,但是最好浅尝辄...

youerning
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部