随着IOT、大数据、移动互联等应用的暴涨,产生的数据也越来越多,整个存储市场总量也逐年增长,预计到2021年分布式存储会占到整个存储市场的50%,到2027年,分布式存储会占到整个市场的70%。Ceph则是典型的分布式存储软件的代表。
杉岩数据作为一家软件定义存储商,软件的发展与硬件的结合密必不可分,与华为共建ARM生态是杉岩发展的关键着力点。目前,杉岩数据的对象存储MOS和块存储USP已完成在鲲鹏平台的适配工作,且可进行商用了,以下是杉岩数据在Ceph开发和应用方面的经验分享。
1
Ceph介绍
CLIENT——用户层面:Ceph对外提供的三个服务
1.Block storage即(RDB块存储接口):
如同一个没有格式化的U盘,在第一次接入个人PC时,windows操作系统会弹出一个格式化的请求界面供用户选择参数,如比较重要的文件系统选项,有NTFS、exFAT等文件系统以供选择,格式化完成后的U盘才能进行创建目录、拷贝文件等操作;形象一点的概括:整个块设备可以看成一栋大楼的框架,在进入大楼工作生活前,需要对这栋大楼进行装修,即格式化。而大楼不可能只有一个人,所以需要物业进行管理,物业可以比作一个文件系统。
2.Object storage即(RADOS GW对象存储):
对象存储在大家的生活中也是接触较多的,例如我们平常使用的云盘;或者我们使用的智能手机都有云备份功能,都是基于对象存储的一种业务表现。所以对象存储是为了解决信息化时代海量不规则文件的存储问题。就如世界上没有两片相同的叶子,每个人都会产生不同的信息,如何解决这些独一无二数据的存储,对象存储就是提供了一种解决方法。
3.Flie system文件系统:
把Ceph提供文件系统服务,类比成购买个人电脑的过程,DIY用户可能会买各种硬件、零件组装起来装上操作系统之后才能使用,而电脑商家还会提供一个已经预装好windows系统的整机供用户选择,用户购买之后接通电源开机后可直接使用。Ceph提供的文件系统服务也就类似于这样的一个整机,用户只需将对应的目录挂载到本地即可进行工作。
RGW——对象存储接口
使用这个接口服务需要配合一些客户端软件;当然了,手机上的云备份功能是因为手机操作系统已经内置了APP进行支撑,所以不需要再额外安装软件。
RBD——块存储接口
如果使用的是Linux系统,可以使用内核模块krbd直接在本地直接生成一个块设备供用户使用。针对Windows系统,则可以通过iSCSI协议,虚拟一块硬盘来供用户使用。
RADOS——抽象的对象存储集群
红色的RADOS层是整个Ceph集群的统一抽象层,上面的所有接口数据经过处理后都会以对象的形式保存在集群当中。同时RADOS还确保这些接口数据在整个集群中的一致性,而LIBRADOS,主要是访问RADOS层的接口库。
接下来看看Ceph集群中一些比较重要的组件,还有一些组件,如mgr,mirror等在图中没体现。这些组分布在集群中的各个服务器上;下面简略的说明各个组件的职能:
MON——monitor
第一个是MON,可以认为是集群的大脑,负责集群状态的维护和元数据的管理。
MDS——元数据服务器
MDS是为Ceph FS接口服务提供文件层次结构检索和元数据管理的,如果不需要Ceph FS服务,可以选择不部署该组件。
OSD——对象存储设备
OSD是整个集群中用户数据主要承载的终端设备,用户所有的数据读写请求基本上最终由OSD来负责执行。所以OSD的性能决定了整个上层业务的表现。OSD一般会绑定一个较大的存储空间,例如一块硬盘或一个硬盘分区;而OSD管理存储空间的本地存储接口主要有File Store和Blue Store。当然File Store还需要借助本地文件系统(比如XFS)来管理存储空间。而Blue Store则可以直接接管裸设备,这样就可以减少它的IO路径,以提高性能。
总结一下Ceph,它是一个统一的分布式存储系统。它的设计目标是较好的性能,可靠性和可扩展性。这是因为从Ceph的架构来看,没有专门的缓存层,所以在性能表现并不是很理想。社区也针对这个问题一直在推动分级缓存(tier)功能,但这个功能还没有达到可生产的阶段;所以目前比较通用的做法就是在操作系统层面来缓存Ceph数据;如内核的通用块层使用dm-cache、bcache、enhanceIO等开源软件,在操作系统层面将数据缓存在一个较高速的设备(如SSD),以此提高Ceph的性能。
2
Ceph现有架构与业务存在的问题
Q1:Ceph数据与内核缓存的割裂问题。以BlueStore为例,它将OSD的元数据保存在RockDB中,RockDB又是运行在一个简化的文件系统(Blue FS)之上的,此时可以认为Blue FS的IO就是OSD的元数据,但对于内核缓存来说,它是无法感知OSD下发的数据是有元数据和业务数据之分的。
Q2:内核缓存无法区分OSD业务的热点数据和冷数据,比如用户配置比较典型的三副本存储策略,此时只有主副本数据才会为客户端提供读写服务,而从副本则直接不用缓存即可,但是内核层缓存是没法区分这种差异的。如果使用的是DM Cache,还会在内存中分配一个空间来缓存部分数据,这无还疑会浪费内存资源。
总体来说,内核缓存存在浪费Cache空间,还有Cache命中率不高,频繁刷新缓存导致缓存设备寿命缩短等缺陷。
3
解决方案
在BlueStore下发IO的地方增加一个适配层,用来标记下发IO的类型,在内核缓存入口处增加一个适配层,用来捕捉OSD的IO类型,最后在内核缓存处理时,根据IO类型进行不同的写回、淘汰策略。
例如将三副本中的两个从副本用NOCACHE标签经过适配层随IO请求一起带到内核缓存里去,这样内核缓存就可以不缓存,直接写后备盘。同时可以将BlueFS的IO标记成元数据类型,让其在内核缓存更长时间的驻留。或根据用户业务需求,将用户有比较重要的,且读写频繁的数据,标为高等级,其他不重要的数据标成中或低等级,然后在内核缓存针对高等级数据采用和元数据一样的处理策略;这样就可以根据用户需求来执行不同的淘汰和回写策略。
举例:
BlueStore使用的是Libaio API接口来下发IO请求,此时需要一个IOCB结构体作为下发请求的IO参数,可以通过io_prep_pwrite函数生成iocb结构体之后,把io flag设置到IOCB的Flag结构体当中,作为io_submit的参数,一起提交至内核层;内核在VFS层时捕捉到Direct io时,将flag转换到通用块设备层的BIO结构体里面,比如BIO的bi_rw结构体里面,此时位于通用块层的内核缓存即可捕捉到上层业务标签。内核缓存可根据不同的标签执行不同的回写、分配策略,比如让元数据更久的驻留在缓存当中,或者让高等级的用户数据和元数据执行相同的缓存策略。
4
针对鲲鹏平台的Ceph调优
一、华为鲲鹏处理器与Intel Xeon的差异
二、主流的优化方案
1. 针对跨片NUMA操作场景,限定进程运行在片内NUMA
2. 矢量运算短板借助协处理器补齐
3. 增加进/线程数以及内存操作
三、其他优化手段
四、性能观测工具
五、成果——经过优化后Ceph存储系统性能
IT解决方案
产品品类:
海量对象存储、统一存储平台、超融合一体机、安全存储一体机
产品品型:
超融合一体机:SandStone HyperCube 超融合基础架构一体机
型号 | SC2000入门型 | SC2100通用型 | S3000基础型 | SC3100存储型 | SC3300计算型 |
节点形态 | (2U 4节点) | (2U 1节点) |
应用场景 | 小型企业 私有云建设 | 中型企业 部署核心业务 | 中小企业 部署传统和互联网业务 | 存储需求较大的企业, 可存放冷数据或备份容灾 | 大型企业和 云计算数据中心建设 |
处理器 | 1*英特尔®至强® 处理器8C/16T (型号可配置) | 2*英特尔®至强® 处理器20C/40T (型号可配置) | 2*英特尔®至强® 处理器16C/32T (型号可配置) | 2*英特尔®至强® 处理器20C/40T (型号可配置) | 2*英特尔®至强® 处理器24C/48T (型号可配置) |
内存 | 32GB | 128GB | 64GB | 128GB | 256GB |
缓存盘 | 480GB SSD (可扩展) | 960GB SSD (可扩展) | 960GB SSD (可扩展) | 1.92TB SSD (可扩展) | 1.92TB SSD (可扩展) |
容量盘 | 4.8TB SATA/SAS (可扩展) | 9.6TB SATA/SAS (可扩展) | 24TB SATA/SAS (可扩展) | 60TB SATA/SAS (可扩展) | 24TB SATA/SAS (可扩展) |
*SandStone HyperCube均为3个节点起部署,以上为单节点配置。
安全存储一体机:SandStone HuaYan
型号 | 节点形态 | 应用场景 | 处理器 | 存储 |
DS3000-FT | 2U 1节点 | 中小企业部署传统和互联网业务 | 1*飞腾FT-2000+ 64核2.2GHz | 480GB SSD 20TB SATA/SAS |
DS3300-FT | 大型企业和云计算数据中心建设 | 1*飞腾FT-2000+ 64核2.2GHz | 1.92TB SSD 40TB SATA/SAS |
DS2000-KP | 2U 4节点 | 企业私有云建设 | 2*鲲鹏920 (32/48/64核2.6GHz) | 480GB SSD 4.8TB SATA/SAS |
DS3000-KP | 2U 1节点 | 中小企业部署传统和互联网业务 | 2*鲲鹏920 (32/48/64核2.6GHz) | 480GB SSD 20TB SATA/SAS |
DS3300-KP | 大型企业和云计算数据中心建设 | 2*鲲鹏920 (32/48/64核2.6GHz) | 1.92TB SSD 40TB SATA/SAS |
DS6000-KP | 4U 1节点 | 存储需求较大的企业,可存放冷数据或备份容灾 | 2*鲲鹏920 (32/48/64核2.6GHz) | 180TB SATA/SAS |
DS3000-HY-H620 | 2U 1节点 | 中小企业部署传统和互联网业务 | 2*海光7000系列处理器 | 480GB SSD 20TB SATA/SAS |
DS3300-HY-H620 | 大型企业和云计算数据中心建设 | 2*海光7000系列处理器 | 1.92TB SSD 40TB SATA/SAS |
DS6000-HY-S240 | 4U 1节点 | 存储需求较大的企业,可存放冷数据或备份容灾 | 1*海光7000系列处理器 | 180TB SATA/SAS |
产品品牌:
杉岩sandstone
应用场景:
企业内容管理、人工智能与应用、影像存储、视频监控、大数据存储分析、备份归档、政务云大数据分析系统、党政机关统一文档系统、国产数据备份系统、机要涉密安全存储系统、大型存储资源池、私有云存储、容器云平台、超融合系统、大型存储资源池、私有云存储、容器云平台、超融合系统、值得信赖的软件定义存储厂商、杉岩数据某省大型数据中心、SandStone杉岩数据、关于杉岩 了解杉岩 选择杉岩 SandStone杉岩数据、杉岩数据 OA、OA办公系统、移动办公、办公自动化软件、杉岩分布式存储、杉岩数据公司如何、
解决方案:
金融非结构化数据中台解决方案、金融影像解决方案、医疗私有云解决方案、PACS影像解决方案、电子卷宗解决方案、机巡平台解决方案、CDN视频存储解决方案、校园网盘解决方案、私有云存储解决方案、智慧视频解决方案、机器学习解决方案、容器云存储解决方案、企业内容管理解决方案、杉岩数据校园网盘存储解决方案
更多型号和解决方案请咨询:
成都科汇科技有限公司
地址:四川省成都市武侯区人民南路四段一号时代数码大厦18楼A5
电话咨询热线:400-028-1235
QQ咨询热线: 1325383361
24小时咨询热线:180 8195 0517(微信同号)