返回
【51CTO】硬盘容量不均衡导致的缓存盘寿命急速衰减分析
2018-10-23 13:47

Ceph分布式存储在扩展性、可靠性、性能上具备独特的优势,可以实现快速扩展多台服务器,动态伸缩到PB级容量,多副本机制保障数据高可靠,数据均衡分布,并发性能高等场景。目前广泛应用于互联网、科研、教育、制造业、政府等诸多领域。ZStack云平台目前支持对接Ceph分布式存储,使用的是分布式块存储,即使用librbd的块设备接口提供给Qemu访问,进行云主机、云盘的IO读写。

虽然Ceph分布式存储具备上述的优势特点,但在实践中,对硬件的选择及配置均存在特别要求,尤其是硬盘、网络上,如果配置不当,存储的可靠性和性能均会受到影响。
最近在日常巡检一套ZStack生产环境的Ceph分布式存储时,我们发现客户新购的五台服务器的SSD寿命损耗存在异常。具体的现象是使用半年后,服务器带外管理界面看到SSD的寿命损耗只剩下89%,但使用smartctl读取介质损耗参数依然显示为100%。

此时会很疑惑,到底哪个数据更可靠,如果SSD寿命只剩下89%,那么如何去调整优化Ceph分布式存储?


问题回顾

针对这个问题,我们回顾一下这套分布式存储的架构。当时采用了新购+利旧的方案来部署分布式存储。

相应的配置信息如下:

存储池三副本.png

其中,新购的5台机器采用了Intel Xeon E5-2660 v4的CPU,内存为256G,机器整体可插入8块3.5寸硬盘,采用了两块480G SSD硬盘配置RAID1安装系统,采用一块960G SSD做Ceph分布式存储的缓存盘,每个缓存盘对应了5个OSD数据盘,每个缓存分区约160G的容量,每个OSD容量4T。存储采用万兆网络,做链路聚合 LACP Mode 4。

利旧的4台机器采用了Intel Xeon E5-2697 V3的CPU,内存为256G,机器整体可以插入可插入8块2.5寸硬盘,采用了两块480G SSD硬盘配置RAID1安装系统,采用两块480G SSD做Ceph分布式存储的缓存盘,每个缓存盘对应了2个OSD数据盘,每个缓存分区约240G容量,每个OSD容量600G。存储采用万兆网络,做链路聚合 LACP Mode 4。

前五台机器,每台机器配置5块4T硬盘容量,总存储容量100T,后4台,每台机器4块600G容量,总量9.6T。

初期将所有容量规划到同一个存储池中,总裸容量约109T,配置三副本后,容量约36T。

环境主要运行了MySQL,Redis,ELK,Zabbix,Web服务,App服务等业务,合计业务类型主要偏向IOPS密集型业务。业务运行前两个月,整体系统没有任何问题。


SSD寿命参数分析诊断

针对SSD寿命损耗的不一致性,参考SSD的寿命参数,我们进行了以下分析:

Endurance Rating (Lifetime Writes): 生命周期内总写入容量,客户环境使用的960G SSD生命周期内总写入量为1.86 PBW,即最多可写入1.86PB的数据。

DWPD:Device Writes Per Day,硬盘每天写入次数,全盘写入,写满算一次,用于评估硬盘的耐久度。此款960G SSD的官网标称耐久度为1 DWPD,即每天可全盘写入一次。

所以从SSD生命周期总写入量的角度来看,服务器带外管理界面看到的寿命损耗更为合理一些。
结合此硬盘的生命周期总写入量和每天可擦写一次,可了解此硬盘在1.86PB/960G/每天=1860000B/960G=1937天,约5年多的使用时间,与厂商承诺的5年质保的时间一致。

在使用ZStack云平台的IO监控工具及smartctl工具去排查分析960G SSD硬盘的每天写入量,发现每天硬盘的写入量在2.5T以上,接近SSD硬盘容量960G的三倍。
同时分析后4台服务器的SSD缓存盘的硬盘写入量很少,相应的硬盘总寿命未受过多影响。

测试发现,前五台服务器的SSD,IOPS 95%都在3000以上,读写比在15:85,平均读IO块大小为16K左右,写IO块大小为18K左右。而针对前五台服务器的OSD数据盘,IOPS 95%在30左右,读写比为86:14,平均读IO块大小为30K左右,写IO块大小为180K左右。

所以前五台物理机的SSD缓存盘每天写入量接近官网标称值的三倍,按照生命周期总写入量的损耗预估,前五台服务器的SSD缓存盘寿命可能不到两年。

但后面4台服务器SSD的使用率为何没有提上去,对前五台服务器的SSD进行均衡使用呢。

我们再来了解一下Ceph数据分布的基本原理。Ceph的CRUSH MAP算法,可以实现数据能够均匀地分布在不同容量硬盘的存储节点,Ceph会根据OSD数据盘容量进行权重的计算,并基于存储集群的映射和数据分布策略的placement rules进行哈希计算。同一存储池中,OSD数据盘容量大的,IO请求多,OSD数据盘容量小的,IO请求少。IO请求经由数据的哈希到PG的映射过程,再由PG根据副本数映射到不同的OSD中。如果OSD硬盘不同,那么容量大的硬盘可以处理更多的PG。相应的IO处理就更多。根据相应的IO均衡策略,如果存储池内总容量109T,使用30%的容量,则会在所有的数据盘均平均存储30%的容量,相对于前五台节点采用的4T的数据盘,每个盘存储约1.2T的数据,后四台采用的600G的数据盘,每个盘存储约180G的数据。

所以基于这种硬盘容量的不均衡,导致相应的IO请求也会不均衡,在业务压力大时,后4台机器无法均衡处理整体的IO请求,在分布式规划时,需配置各机器的硬盘配置、网络配置一致。


分布式存储优化方案

针对以上情况,考虑进行以下调整:

检查当前业务使用情况,调整业务的使用方式,将部分非重要业务关闭,降低IO的使用方式,调整后,再监控相应IO的使用情况,发现960G SSD的每天写入量已降低至1.8T,此时业务已无法持续调整。

在业务无法调整的情况下,只能考虑扩容及硬盘调整,在考虑扩容的过程中,还需要考虑后续业务量的增长。

因为当前的存储容量,可以提供当前业务的存储量,但在缓存盘性能上,不足以支撑相应业务的需求,此款960G SSD的每天硬盘写入次数DWPD为1,只能全盘刷入一遍。考虑到硬盘的每天写入量,建议新缓存盘采用新款的960GB SSD,官网的标称值其在生命周期的总写入量在为5.26PBW,每天硬盘的写入量为3DWPD,即每天可擦写三遍。

基于可靠与经济的基本原则,我们考虑以下硬件扩容方案进行扩容:

1. 再新增3台服务器,采用总写入量更高的960GB SSD,480G SSD系统盘,其他配置与原本前五台配置相同;

2. 前五台服务器,也采用总写入量更高的960GB SSD替换原本的960GB SSD,将前五台机器扩容成8台相同配置的机器;

3. 后4台服务器,将缓存盘替换成步骤二移除下来的960GB SSD,此时每台机器可以插入5块数据盘;

4. 后4台服务器,将原本的2.5寸 600G SAS硬盘,变更为2.4T企业版SAS硬盘,目前2.5寸企业级硬盘最大容量受限于2.4T;

5. 存储规划,8台E5-2660的服务器提供5x4Tx8的存储容量,约160T。后4台服务器提供5X2.4Tx4的存储容量,约48T。

6. 前8台单独一个存储池,后4台单独一个存储池,均配置三副本。

存储池160T三副本.png

存储池48T三副本.png

具体的调整方案步骤,可参考以下步骤:

1. 从存储池,移除后4台服务器的硬盘,并关闭这4台机器;

2. 在新购入的三台服务器上,安装部署Ceph存储节点,加入到分布式存储集群的存储池中;

3. 将原本的前五台机器的一台服务器,移除硬盘,移除服务器,等待Ceph存储数据平衡恢复;

4. Ceph平衡完毕后,关闭此服务器,将其上的960G SSD变更为耐久度更高的960G SSD;

5. 重复步骤3-4,完成前五台机器的变更;

6. 变更后4台服务器的硬件,将前五台机器中原本的960G SSD各分配一块到后4台服务器,将每台机器上的600G SAS硬盘更换成5块2.4T的SATA硬盘,添加到Ceph存储,针对这些2.4T硬盘,单独规划一个Ceph存储池;

7. 添加步骤6创建的新存储池到ZStack的Ceph主存储作为数据云盘池,创建数据云盘时使用,在业务使用时,可将部分业务,部署在后4台机器的存储池中;

8. 添加新购入的三台服务器到ZStack的计算节点集群中,同时用于提供计算资源。

使用上述方案变更,可以解决当前业务场景下,针对原本前5台服务器的每天硬盘写入量3遍,导致SSD寿命加速衰减的情况,又新增了三台服务器进行了计算存储的超融合扩容。针对Ceph容量存储IO请求不均衡的场景,也使用单独的存储池,进行规划,相同容量的硬盘规划到同一存储池,可以实现IO请求的均衡,IO数据的均衡,各SSD的使用也相对均衡,即8台服务器的使用损耗一致,后4台服务器的使用损耗也一致。


结语

综上所述,分布式存储在规划部署时,需要考虑以下方面:

1. 同一存储池的硬盘型号容量应一致,否则不同容量的硬盘在同一存储池,会导致IO请求的不均衡,导致存储分布不均衡,在使用SSD缓存盘的场景会导致使用大容量硬盘对应的SSD IO请求更多,损耗会更快;

2. 业务规划需提前做好评估,针对IOPS,带宽写入进行提前规划,高IO的业务需进行评估,准备的硬件是否可满足业务需求,如果业务需求较高,需使用更高配置硬件或进行相应的硬件扩容;

3. 分布式存储选择SSD时,建议关注SSD的PBW(生命周期总写入量)和DWPD(每天硬盘可写入量),SSD寿命的损耗与其总写入量需要规划考虑业务类型,IO密集型业务应选择更高DWPD的SSD。

升级提醒

若您选择升级至4.0.0及之后版本,请注意以下功能调整:

1. 云路由器全面升级为VPC路由器,云路由网络全面升级为VPC网络,不再单独设云路由器页面。升级全程无感知,相关业务不受任何影响。

2. 企业管理账号体系取代用户组与用户,不再单独设用户/用户组页面,不可再使用用户/用户组账号登录云平台。升级前,请先将“用户组与用户”纳管的账号数据妥善迁移至“企业管理”纳管,再执行升级操作。注意:对于admin创建并具备admin权限的用户账号同步取消,如有需要,可使用企业管理账号体系中的平台管理员实现相同功能。

3. 调整AD/LDAP与账户的对接管理方式,统一由企业管理纳管,不再单独设AD/LDAP页面。升级前,请先将“账户”对接纳管的AD/LDAP账号数据妥善迁移至“企业管理”纳管,再执行升级操作。

如对上述升级提醒有任何疑问或需要升级帮助,请联系ZStack官方技术支持

我已阅读并知晓上述升级提醒。
下载ZStack企业版

您已填写过基本信息?点击这里

姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

下载链接将会通过邮件形式发送至您的邮箱,请谨慎填写。

下载ZStack企业版

还未填写过基本信息?点击这里

邮箱或手机号码格式错误
验证手机号
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
登录观看培训视频
仅对注册用户开放,请 登录 或 填写资料 观看培训视频
填写资料

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io
ZStack认证培训咨询
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

商务联系:

channel@zstack.io
申请ZStack多机版
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。 当您收到电子邮件后,请点击 URL 链接,以完成下载。

下载链接已发送至您的邮箱。

如未收到,请查看您的垃圾邮件、订阅邮件、广告邮件。
或点击下方URL链接 (IE内核浏览器请右键另存为), 完成下载:

感谢您使用 ZStack 产品和服务。

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。

立即体验

联系我们

商务咨询
400-962-2212 转 1
售后咨询
400-962-2212 转 2

回到顶部

产品试用申请
请选择您要试用的产品
ZStack Cloud 企业版
ZStack Ceph企业版
ZStack Cloud 混合云版
ZStack Cube 超融合一体机
ZStack Cloud 基础版
ZStack Mini 边缘计算一体机
ZStack Cloud 标准版
ZStack CMP 多云管理平台
ZStack 信创云平台
ZStack Zaku 容器云平台
请填写您的基本信息
姓名应该不少于两个字符
手机号格式错误
验证码填写错误 获取短信验证码 60 秒后可重发
公司名称不应该少于4个字符
邮箱格式错误

商务咨询:

400-962-2212 转 1

售后咨询:

400-962-2212 转 2

商务联系:

sales@zstack.io

成功提交申请。

我们将安排工作人员尽快与您取得联系。

感谢您使用 ZStack 产品和服务。