NVDIMM
NVDIMM(non-volatile dual in-line memory module)即为非易失性内存,它是新一代新 型的内存规格,其集成了DRAM和非易失性存储芯片,能够在完全断电的情况下完整的保存内存数据, 下图为各存储介质的性能对比,可见虽然SSD比普通的HDD盘要快100倍,但基于DRAM的NVDIMM要比普通的HDD快100000, 另外SSD还有一个致命的缺点,就是有写入次数的限制,但NVDIMM没有此限制。
图片……???
优点: NVDIMM整合DRAM、Flash、智能系统控制器和电源模块来实现超级内存系统,其超级内存,既具有DRAM的低延
时和无次数限制特性,又获得了Flash的数据长期保存特性,超级电容的减少设计的复杂度和用料成
本,另外DIMM为业界服务器和存储服务器标准插槽,无需定制开发硬件接口
缺点: 技术成熟度不够,另外一个是价格比较贵
疑问:
(1) 为什么FusionStorage的硬件中有8GNVDIMM内存(比较前沿)?
(2) FusionStorage中块存储可以没有NVDIMM存储,但文件和对象的业务都上了NVDIMM存储?
快照技术
传统的为保护数据的安全,会定期对数据进行复制、备份和恢复,但这些操作在一定程度上会影响当前正常的业务性能,因此一般会 使用增全量备份技术和在业务非繁忙来部分规避此问题。对于24 * 7不间断中断业务场景,则使用以上的方式还是有问题,我们需要一种不影响当前业务的备份技术,即备份时间窗口需要缩短接近为0,Snapshot快照和CDP持续数据保护技术则为此应用而产生。
快照的优势是可以在数秒内完成,它定义为指定数据集的一个完全可用拷贝,该拷贝包含了相应数据在某个时间点上的镜像,快照有
以下两种类型:
(1)全量快照
镜像分离(Split Mirror)
(2)增量快照
写时拷贝(Copy-On-Write) COW
写时重定向(Redirect-On-Write) ROW
全量快照
全量快照基于镜像分离快照技术实现,其原理为在快照进行之前会维护一套完整的镜像卷,在快照完成之前,会同时写入源卷和镜像
卷,当到达快照预定完成时间后,镜像卷会阻止写入操作,并快速脱离镜像卷为转为快照卷,这样就获得当前时间点的快照卷信息,快照卷在完成数据复制和备份后,将同步原卷数据,生成新的镜像卷,为下次使用全量快照做准备。
优缺点:
优点: 镜像卷的存在,实现数据安全和离线数据访问,断开镜像卷的时间非常短,因此备份窗口非常小
缺点: 缺乏灵活性,不能在任意时刻进行快照,镜像卷的存在会导致双写,导致性能下降
COW
COW是写时拷贝的简写,即只有在进行快照后的源卷上有改动时,才会将此卷信息拷贝到预留的快照卷中。下面来看看具体怎么操作: (1)生成源数据卷数据指针表,一般情况下卷大小固定,比如Ceph的卷大小为4M (2)创建快照 (3)从源数据卷数据指针表拷贝出快照卷数据指针表 (4)创建快照卷 (5)源数据卷接受命令,包括修改操作 (6)如果有更新操作,则先将源数据卷内容拷贝到已经预留了空间的快照卷中 (7)更新快照卷指针表 (8)更新源数据卷的数据
优点:
COW进行快照的方式,几乎不占用任何存储资源,也不会影响系统性能,创建快照时只是创建快照卷指针,因此速度也非常快。
缺点: 由于COW技术是指在卷有数据变化时,才会发生源数据的拷贝动作,因此修改操作会降低源数据性能,如果对同一个卷进行多次快照 会更进一步降低性能。另外COW只有部分修改之前的源数据,没有变化的源数据无拷贝。
其适合读多写少的场景,也适合只对部分数据修改的应用场景
ROW
ROW是重定向写,它和COW不一样的地方是,被修改的卷信息会被写入到新开辟的空间,而不是源卷中。下面来看看具体怎么操作: (1)创建快照 (2)将自上次快照以来所有的重定向写数据所对应在源数据卷中的数据复制出来生成这个时间点的快照, 然后再将这些重定向 写数据写回到源数据卷中的相应位置//??? (3)源数据卷接受更新操作 (4)开辟一个新的数据卷 (5)将源数据卷数据指针表中被更新的指针重定向到新开辟的数据存储卷 (6)写入更新数据到新开辟的存储空间中
优点:
写操作会开辟新的空间,这样在ROW操作时,不会降低原来的性能
缺点: 重定向快照的一个缺点是,它记录中间的某个时间点的数据,而源数据则是记录最后时间点的修改数据,但在需要删除快照时,则需要将相应快照记录的数据反合入到源数据卷上,换而言之就是COW没有一个完整的快照,如果快照层级越多,则开销会比较大。另外重定向数据分散的比较厉害,导致读性能会有下降。
在传统存储设备上, ROW 快照在多次读写后, 源数据卷的数据被分散, 对于连续读写的性能不如COW. 所以 ROW 比较适合 Write-Intensive(写密集) 类型的存储系统. 但是, 在分布式存储设备上, ROW 的连续读写的性能会比 COW 更加好. 一般而言, 读写性能的瓶颈都在磁盘上. 而分布式存储的特性是数据越是分散到不同的存储设备中, 系统性能越高. 所以 ROW 的源数据卷重定向分散性反而带来了好处. 因此, ROW 逐渐成为了业界的主流.