⑧ OpenStack高可用集群部署方案(train版)—Cinder

Cinder的核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行处理。它为后端不同的存储设备提供给了统一的接口,不同的块设备服务厂商在Cinder中实现其驱动,可以被Openstack整合管理,nova与cinder的工作原理类似。支持多种 back-end(后端)存储方式,包括 LVM,NFS,Ceph 和其他诸如 EMC、IBM 等商业存储产品和方案。

一篇cinder原理的详细的介绍-密码 xiaoyuanqujing@666
从OpenStack的角度看块存储的世界
分布式存储 Ceph 介绍及原理架构分享 上
分布式存储 Ceph 介绍及原理架构分享 下
三种存储方案 DAS,NAS,SAN在数据库存储上的应用
DAS、SAN、NAS三种存储方式的概念及应用

Cinder各组件功能

  • Cinder-api 是 cinder 服务的 endpoint,提供 rest 接口,负责处理 client 请求,并将 RPC 请求发送至 cinder-scheduler 组件。

  • Cinder-scheduler 负责 cinder 请求调度,其核心部分就是 scheduler_driver, 作为 scheduler manager 的 driver,负责 cinder-volume 具体的调度处理,发送 cinder RPC 请求到选择的 cinder-volume。

  • Cinder-volume 负责具体的 volume 请求处理,由不同后端存储提供 volume 存储空间。目前各大存储厂商已经积极地将存储产品的 driver 贡献到 cinder 社区

十六、Cinder控制节点集群部署

https://docs.openstack.org/cinder/train/install/

1. 创建cinder数据库

在任意控制节点创建数据库,后台数据自动同步;

mysql -u root -pZxzn@2020

create database cinder;
grant all privileges on cinder.* to 'cinder'@'%' identified by 'Zxzn@2020';
grant all privileges on cinder.* to 'cinder'@'localhost' identified by 'Zxzn@2020';
flush privileges;

2. 创建cinder相关服务凭证

在任意控制节点操作,以controller01节点为例;

2.1 创建cinder服务用户

source admin-openrc 
openstack user create --domain default --password Zxzn@2020 cinder

2.2 向cinder用户赋予admin权限

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

2.3 创建cinderv2和cinderv3服务实体

#cinder服务实体类型 "volume"

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

2.4 创建块存储服务API端点

  • 块存储服务需要每个服务实体的端点
  • cinder-api后缀为用户project-id,可通过openstack project list查看
#v2
openstack endpoint create --region RegionOne volumev2 public http://10.15.253.88:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 internal http://10.15.253.88:8776/v2/%\(project_id\)s
openstack endpoint create --region RegionOne volumev2 admin http://10.15.253.88:8776/v2/%\(project_id\)s
#v3
openstack endpoint create --region RegionOne volumev3 public http://10.15.253.88:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 internal http://10.15.253.88:8776/v3/%\(project_id\)s
openstack endpoint create --region RegionOne volumev3 admin http://10.15.253.88:8776/v3/%\(project_id\)s

3. 部署与配置cinder

3.1 安装cinder

在全部控制节点安装cinder服务,以controller01节点为例

yum install openstack-cinder -y

3.2 配置cinder.conf

在全部控制节点操作,以controller01节点为例;注意my_ip参数,根据节点修改;

#备份配置文件/etc/cinder/cinder.conf
cp -a /etc/cinder/cinder.conf{,.bak}
grep -Ev '^$|#' /etc/cinder/cinder.conf.bak > /etc/cinder/cinder.conf
openstack-config --set /etc/cinder/cinder.conf DEFAULT my_ip 10.15.253.163 
openstack-config --set /etc/cinder/cinder.conf DEFAULT auth_strategy keystone
openstack-config --set /etc/cinder/cinder.conf DEFAULT glance_api_servers http://10.15.253.88:9292
openstack-config --set /etc/cinder/cinder.conf DEFAULT osapi_volume_listen '$my_ip'
openstack-config --set /etc/cinder/cinder.conf DEFAULT osapi_volume_listen_port 8776
openstack-config --set /etc/cinder/cinder.conf DEFAULT log_dir /var/log/cinder
#直接连接rabbitmq集群
openstack-config --set /etc/cinder/cinder.conf DEFAULT transport_url rabbit://openstack:Zxzn@2020@controller01:5672,openstack:Zxzn@2020@controller02:5672,openstack:Zxzn@2020@controller03:5672

openstack-config --set /etc/cinder/cinder.conf  database connection mysql+pymysql://cinder:Zxzn@2020@10.15.253.88/cinder

openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  www_authenticate_uri  http://10.15.253.88:5000
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  auth_url  http://10.15.253.88:5000
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  memcached_servers  controller01:11211,controller02:11211,controller03:11211
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  auth_type  password
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  project_domain_name  default
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  user_domain_name  default
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  project_name  service
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  username  cinder
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken  password Zxzn@2020

openstack-config --set /etc/cinder/cinder.conf  oslo_concurrency  lock_path  /var/lib/cinder/tmp

将cinder配置文件拷贝到另外两个控制节点上:

scp -rp /etc/cinder/cinder.conf controller02:/etc/cinder/
scp -rp /etc/cinder/cinder.conf controller03:/etc/cinder/

##controller02上
sed -i "s#10.15.253.163#10.15.253.195#g" /etc/cinder/cinder.conf

##controller03上
sed -i "s#10.15.253.163#10.15.253.227#g" /etc/cinder/cinder.conf

3.3 配置nova.conf使用块存储

在全部控制节点操作,以controller01节点为例;

配置只涉及nova.conf的[cinder]字段;

openstack-config --set /etc/nova/nova.conf cinder os_region_name RegionOne

3.4 同步cinder数据库

任意控制节点操作;

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

#验证
mysql -ucinder -pZxzn@2020 -e "use cinder;show tables;"

3.5 启动服务并设置开机自启动

全部控制节点操作;修改了nova配置文件,首先需要重启nova服务

systemctl restart openstack-nova-api.service

systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl status openstack-cinder-api.service openstack-cinder-scheduler.service

3.6 控制节点验证

openstack volume service list
#也可以使用 cinder service-list

4. 设置pcs资源

在任意控制节点操作;添加资源cinder-apicinder-scheduler

  • cinder-apicinder-scheduleractive/active模式运行;
  • openstack-nova-volumeactive/passive模式运行
pcs resource create openstack-cinder-api systemd:openstack-cinder-api clone interleave=true
pcs resource create openstack-cinder-scheduler systemd:openstack-cinder-scheduler clone interleave=true

查看资源

pcs resource


十七、Cinder存储节点集群部署

Openstack的存储面临的问题

https://docs.openstack.org/arch-design/

企业上线openstack,必须要思考和解决三方面的难题:
1.控制集群的高可用和负载均衡,保障集群没有单点故障,持续可用,
2.网络的规划和neutron L3的高可用和负载均衡,
3.存储的高可用性和性能问题。

存储openstack中的痛点与难点之一
在上线和运维中,值得考虑和规划的重要点,openstack支持各种存储,包括分布式的文件系统,常见的有:ceph,glusterfs和sheepdog,同时也支持商业的FC存储,如IBM,EMC,NetApp和huawei的专业存储设备,一方面能够满足企业的利旧和资源的统一管理。

Ceph概述
ceph作为近年来呼声最高的统一存储,在云环境下适应而生,ceph成就了openstack和cloudstack这类的开源的平台方案,同时openstack的快速发展,也吸引了越来越多的人参与到ceph的研究中来。ceph在整个社区的活跃度越来越高,越来越多的企业,使用ceph做为openstack的glance,nova,cinder的存储。

ceph是一种统一的分布式文件系统;能够支持三种常用的接口:
1.对象存储接口,兼容于S3,用于存储结构化的数据,如图片,视频,音频等文件,其他对象存储有:S3,Swift,FastDFS等;
2.文件系统接口,通过cephfs来完成,能够实现类似于nfs的挂载文件系统,需要由MDS来完成,类似的文件系存储有:nfs,samba,glusterfs等;
3.块存储,通过rbd实现,专门用于存储云环境下块设备,如openstack的cinder卷存储,这也是目前ceph应用最广泛的地方。


1. 部署与配置cinder

1.1 安装cinder

在全部计算点安装;compute节点已配置好openstack源,如果是分离的cinder节点需要提前做好优化

yum install openstack-cinder targetcli python3-keystone -y

1.2 配置cinder.conf

在全部计算点配置;注意my_ip参数,根据节点修改;

#备份配置文件/etc/cinder/cinder.conf
cp -a /etc/cinder/cinder.conf{,.bak}
grep -Ev '#|^$' /etc/cinder/cinder.conf.bak>/etc/cinder/cinder.conf
openstack-config --set /etc/cinder/cinder.conf  DEFAULT transport_url rabbit://openstack:Zxzn@2020@controller01:5672,openstack:Zxzn@2020@controller02:5672,openstack:Zxzn@2020@controller03:5672
openstack-config --set /etc/cinder/cinder.conf  DEFAULT auth_strategy keystone
openstack-config --set /etc/cinder/cinder.conf  DEFAULT my_ip 10.15.253.162
openstack-config --set /etc/cinder/cinder.conf  DEFAULT enabled_backends lvm
openstack-config --set /etc/cinder/cinder.conf  DEFAULT glance_api_servers http://10.15.253.88:9292
openstack-config --set /etc/cinder/cinder.conf  DEFAULT enabled_backends ceph

openstack-config --set /etc/cinder/cinder.conf  database connection mysql+pymysql://cinder:Zxzn@2020@10.15.253.88/cinder

openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken www_authenticate_uri http://10.15.253.88:5000
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken auth_url http://10.15.253.88:5000
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken memcached_servers controller01:11211,controller02:11211,controller03:11211
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken auth_type password
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken project_domain_name default
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken user_domain_name default
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken project_name service
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken username cinder
openstack-config --set /etc/cinder/cinder.conf  keystone_authtoken password Zxzn@2020

openstack-config --set /etc/cinder/cinder.conf  oslo_concurrency lock_path /var/lib/cinder/tmp

将cinder配置文件拷贝到另外两个计算节点上:

scp -rp /etc/cinder/cinder.conf compute02:/etc/cinder/
scp -rp /etc/cinder/cinder.conf compute03:/etc/cinder/

##compute02上
sed -i "s#10.15.253.162#10.15.253.194#g" /etc/cinder/cinder.conf

##compute03上
sed -i "s#10.15.253.162#10.15.253.226#g" /etc/cinder/cinder.conf

1.3 启动服务并设置开机自启动

全部计算节点操作;

systemctl restart openstack-cinder-volume.service target.service
systemctl enable openstack-cinder-volume.service target.service
systemctl status openstack-cinder-volume.service target.service

1.4 在控制节点进行验证

执行状态检查;此时后端存储服务为ceph,但ceph相关服务尚未启用并集成到cinder-volume,所以服务的状态也是down

openstack volume service list
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352