小编给大家分享一下openstack-mitaka中如何安装块存储服务,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
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
看完了这篇文章,相信你对“openstack-mitaka中如何安装块存储服务”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。