1. 引言
如何为Ceph分布式存储选择合适的SSD这个问题看似简单,其实内藏不少玄机,不是所有的SSD都适合用,因为SSD有很多我们平时可能没有关注过的一些特性,这些特性会影响Ceph的使用性能或寿命,下面我们一一道来。
2. 如何为Ceph选择SSD?
2.1 - 类别
其实SSD是有分为企业级SSD和消费级SSD,企业级SSD磁盘的参数,如:性能、可靠性、耐久度都不是消费级SSD能比的,所以为Ceph选择合适的SSD规则就是:
不要使用消费级SSD,一定要使用企业级SSD。
按照固态硬盘应用场景的分类,可以分成三种:写入密集型、读取密集型和混合读写型。
写入密集型环境下对SSD耐写度要求高,通常使用MLC存储单元,要求SSD能长时间承受连续写入而不会导致性能严重下降。常用型号:英特尔 SSD DC P3700 系列,DWPD=10 (800G)。
读取密集型应用环境的SSD通常采用TLC甚至更低的存储单元,在NAND技术加持下,容量和耐写度得到了提升,而价格却很低廉。常用型号:英特尔 SSD DC S4500 系列,DWPD=1。
常用型号:混合型其实就是读密集型的基础上,能够承受更大一点的写入,性能依然不能和写密集型的相比。DWPD一般在1-10之间。
如果SSD做为Ceph日志盘使用,那么就选择写入密集性SSD。
2.2 - 耐久度
SSD耐久度就是SSD的寿命,那为什么SSD要有寿命呢,不像HDD没有听过还有耐久度这个参数,那是因为这两种磁盘原理不同,SSD的数据存储原理是使用闪存NAND存储数据,而NAND是有写入次数限制,以浮栅极型NAND闪存为例,闪存是通电与否代表计算机可识别的1、0状态,加电瞬间会产生强大的电场(大于1000万 vt/cm),这么强的电场会破坏隧道氧化层的原子结合,脱离的电子就会上升到浮栅极上以形成电位变化,断电之后电子还会恢复正常位置,这样反复的断电-加压就形成了不同的电位信号。
加电的过程等同于HDD硬盘的数据写入操作,它被称为“Program(编程)”,断电的过程电位恢复,这相当于HDD硬盘的擦除数据,这里成为“Erase(擦除)”,完整的一次P/E循环就是NAND的写入循环,从这里也可以看出SSD要想写入数据就需要恢复默认电位,也就是以“擦除”为前提,这原理最直接的影响就是SSD寿命,因为P/E循环次数是有限的,而不同类型的闪存P/E次数是不一样的。
一般厂家使用DWPD或TBW这两个指标衡量SSD耐久度,下面我们分别介绍下这两个参数:
DWPD:每日整盘写入次数 Drive Writes Per Day (DWPD) ,指在预期寿命内可每日完整写入SSD固态硬盘所有容量的次数,也有的文章写成DW/D也是同样的意思。
TBW/PBW:写入的字节 Terabytes Written (TBW),Petabytes Written(PBW),指在 SSD 使用寿命结束之前指定工作量可以写入 SSD 的总数据量。PBW也有的文章写成是TBW(PB),其实这两个单位是相同的,PBW = TBW(PB) 。
现在大家看到SSD参数用的TBW/PBW会多一些,如下面intel dc p4500 ssd参数:
其实这两个标准是可以相互转换的,通过PBW可以推算出DWPD,反之也可以。
DWPD或DW / D:每日完整写入SSD固态硬盘所有容量的次数。
GB /Day:每天写入的GB。
TBW:写入的总字节数,通常以TB-TBW(TB)或PB-TBW(PB)表示。
PBW :写入PB
S表示磁盘容量(以GB为单位)
T表示保修/使用寿命(以年为单位)
DWPD = GB/day ÷ S
DWPD = (TBW(TB) × 1000) ÷ (S × T × 365)
GB/day = S ×DWPD
GB/day = (TBW(TB) × 1000) ÷ (T × 365)
TBW(TB) = (DWPD × S × T × 365) ÷ 1000
TBW(TB) = (GB/day × T × 365) ÷ 1000
PBW = TBW(PB) = TBW(TB) ÷ 1000
如我们已知一个SSD TBW为1432TB,想计算下DWPD用到以下公式:
DWPD = (TBW(TB) × 1000) ÷ (S × T × 365)
可以算出DWPD为0.43,现通过以公式算出每天写入量:
GB/day = S × DWPD
1800GB × 0.43 = 774
当然如果觉得这么麻烦的话,可以使用在线计算工具,网址如下:https://wintelguy.com/dwpd-tbw-gbday-calc.pl
我们再用这个计算工具检查下上面的结果,可以看到最终结果是一样的。
为什么写入耐久性对SSD很重要呢?因为Ceph使用SSD作为日志盘使用,会有大量的写操作,有可能超过SSD的额定耐久性,也就是超出了SSD的P/E循环次数,所以选择SSD一定要:
选择TBW/PBW或DWPD大的SSD。
因为Ceph写入日志大量使用,最佳选择是包括5年内每天超过10次设备写入(DWPD)的设备,这相当于在整个生命周期内写入的总容量为28PB(PBW)。
2.3 - 断电保护
断电保护几乎是企业级固态硬盘的标配功能,它的作用是在发生意外断电(非正常关机)时,保护板载DRAM缓存中的数据不致丢失。
超级电容器用于断电保护至关重要。在电源故障的情况下,超级电容器的大小必须适当,以允许驱动器将所有正在进行的写入保存到非易失性NAND存储中。
由于固态硬盘的DRAM缓存中除了用户读写的数据缓存之外,还包含了相当大容量的FTL闪存映射表,这张虚拟表对固态硬盘工作极为重要,一旦丢失的话固态硬盘就会变砖(无法被识别),所以必须得有断电保护电容。
选择有断电保护电容的SSD。
2.4 - 性能
如果SSD为作日志盘使用,SSD设备的写入吞吐量额定值应超过该日志设备所服务的所有底层OSD设备的总写入吞吐量额定值,如下图可以查看到该SSD的写吞吐量。
2.5 - 总结
上面总结了几条为Ceph选择SSD的参数,有SSD类别、耐久度、断电保护、性能,断电保护一般企业级的SSD都会有,SSD吞吐量一般SSD也不是相差太多,还有就是SSD类别中其实也隐含了不同的耐久度,所以精简下就是为Ceph选择SSD的最佳实践就是:
选择写入密集性的企业级SSD!!!
来源:oschina
链接:https://my.oschina.net/u/4397718/blog/4653945