前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >云计算/云存储---Ceph和Openstack的cinder模块对接方法

云计算/云存储---Ceph和Openstack的cinder模块对接方法

作者头像
yaohong
发布2019-09-11 15:55:44
1.7K0
发布2019-09-11 15:55:44
举报
文章被收录于专栏:姚红专栏姚红专栏

1.创建存储池

在ceph节点中执行如下语句。

代码语言:javascript
复制
#ceph osd pool create volumes 128

2.配置 OPENSTACK 的 CEPH 客户端

在ceph节点两次执行如下语句,两次{your-openstack-server}分别填控制节点和计算节点IP。

如果显示在控制节点和计算节点中没有ceph文件夹,则在两节点中创建对应文件夹。

代码语言:javascript
复制
#ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf < /etc/ceph/ceph.conf

3.安装 CEPH 客户端软件包

控制节点上进行librbd的 Python 绑定

代码语言:javascript
复制
#yum install python-rbd

计算节点和控制节点进行安装 Python 绑定和客户端命令行工具

代码语言:javascript
复制
#yum install ceph-common

#yum install ceph

4.配置 CEPH 客户端认证

在ceph节点为Cinder创建新用户

代码语言:javascript
复制
#ceph auth get-or-create client.cinder mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=volumes'

在ceph节点把 client.cinder的密钥环复制到控制节点,并更改所有权,{your-volume-server}和{your-cinder-volume-server}处填控制节点IP。

代码语言:javascript
复制
#ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring

#ssh {your-cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring 

在ceph节点执行如下语句{your-nova-compute-server}为计算节点IP。

代码语言:javascript
复制
#ceph auth get-or-create client.cinder | ssh {your-nova-compute-server} sudo tee /etc/ceph/ceph.client.cinder.keyring

在ceph节点把client.cinder用户的密钥存进libvirt。libvirt 进程从 Cinder 挂载块设备时要用它访问集群,在运行 nova-compute 的节点上创建一个密钥的临时副本。

{your-compute-node}为计算节点IP。

代码语言:javascript
复制
#ceph auth get-key client.cinder | ssh {your-compute-node} tee  /etc/ceph/client.cinder.key

在计算节点上执行如下语句,把密钥加进 libvirt 、然后删除临时副本。

代码语言:javascript
复制
#uuidgen

记录下产生的数字,将下面的UUIDGEN替换为该数字,并在计算节点执行下列语句

代码语言:javascript
复制
cat > secret.xml <<EOF

<secret ephemeral='no' private='no'>

  <uuid>UUIDGEN</uuid>

  <usage type='ceph'>

        <name>client.cinder secret</name>

  </usage>

</secret>

EOF
代码语言:javascript
复制
#sudo virsh secret-define --file secret.xml

#sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml

执行完后,记录好上面产生的uuidgen,下面还会用到。

5.安装并配置控制节点

5.1先决条件

在控制节点完成下面的步骤以创建数据库:

用数据库连接客户端以 root 用户连接到数据库服务器:

代码语言:javascript
复制
#mysql -u root -p

创建cinde数据库

代码语言:javascript
复制
#CREATE DATABASE cinder;

配置 cinder 数据库的访问权限,下列CINDER_DBPASS用合适的密码替换。

代码语言:javascript
复制
#GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \

  IDENTIFIED BY 'CINDER_DBPASS';

#GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \

  IDENTIFIED BY 'CINDER_DBPASS';

退出数据库。

获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

代码语言:javascript
复制
# . admin-openrc

创建服务证书:

创建一个 cinder 用户:

代码语言:javascript
复制
#openstack user create --domain default --password-prompt cinder

添加 admin 角色到 cinder 用户上。

代码语言:javascript
复制
#openstack role add --project service --user cinder admin

创建 cinder 和 cinderv2 服务实体:

代码语言:javascript
复制
#openstack service create --name cinder \

  --description "OpenStack Block Storage" volume

#openstack service create --name cinderv2 \

  --description "OpenStack Block Storage" volumev2

创建块设备存储服务的 API 入口点:

代码语言:javascript
复制
#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

5.2安装并配置组件

安装软件包

代码语言:javascript
复制
# yum install openstack-cinder

#yum install openstack-cinder targetcli python-keystone

在控制节点上编辑cinder.conf。

代码语言:javascript
复制
#vi /etc/cinder/cinder.conf

添加如下内容:

注意: 1.如果你为 cinder 配置了多后端, [DEFAULT] 节中必须有 glance_api_version = 2

2.[ceph]中的rbd_secret_uuid后面对应填的刚刚记录的uuid。

代码语言:javascript
复制
[DEFAULT]

transport_url = rabbit://openstack:RABBIT_PASS@controller

auth_strategy = keystone

my_ip = 控制节点管理网络的IP

enabled_backends = ceph

glance_api_servers = http://controller:9292

 

[database]

connection = mysql+pymysql://cinder:CINDER_PASS@controller/cinder

 

[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

 

[oslo_concurrency]

lock_path = /var/lib/cinder/tmp
 

[ceph]

volume_driver = cinder.volume.drivers.rbd.RBDDriver

rbd_pool = volumes

rbd_ceph_conf = /etc/ceph/ceph.conf

rbd_flatten_volume_from_snapshot = false

rbd_max_clone_depth = 5

rbd_store_chunk_size = 4

rados_connect_timeout = -1

glance_api_version = 2

rbd_user = cinder

rbd_secret_uuid = a852df2b-55e1-4c1b-9fa2-61e77feaf30f

编辑/etc/nova/nova.conf 添加如下内容:

代码语言:javascript
复制
[cinder]

os_region_name = RegionOne

6.重启 OPENSTACK

在控制节点重启计算API 服务:

代码语言:javascript
复制
# systemctl restart openstack-nova-api.service

启动块设备存储服务,并将其配置为开机自启:

代码语言:javascript
复制
# systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service

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

启动块存储卷服务及其依赖的服务,并将其配置为随系统启动:

代码语言:javascript
复制
# systemctl enable openstack-cinder-volume.service target.service

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

7.验证

在控制节点获得 admin 凭证来获取只有管理员能执行的命令的访问权限:

代码语言:javascript
复制
# . admin-openrc

列出服务组件以验证是否每个进程都成功启动:

代码语言:javascript
复制
# cinder service-list

并且登录界面后可以创建卷

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建存储池
  • 2.配置 OPENSTACK 的 CEPH 客户端
  • 3.安装 CEPH 客户端软件包
  • 4.配置 CEPH 客户端认证
  • 5.安装并配置控制节点
    • 5.1先决条件
      • 5.2安装并配置组件
      • 6.重启 OPENSTACK
      • 7.验证
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档