全局垃圾回收
存储池中所有数据和元数据都采用ROW(Redirect On Write)方式写入分条,数据写入新存储位置,同时标记老的存储位置的数据为垃圾数据,在系统运行过程中不断对数据覆盖写和修改元数据,存储空间必然会存在大量的碎片,必须要及时垃圾回收,释放出空闲的空间来满足业务数据写入。如果只采用SSD盘内的垃圾回收机制,由于垃圾回收的触发时间不可控,系统性能将受到影响。
为了解决这个问题,OceanStor Dorado采用了全局垃圾回收技术,全局垃圾回收技术是指由控制器统一管理垃圾回收(Garbage Collection, GC)发生的时间,而不是由SSD盘自身来触发垃圾回收。控制器会以CKG为粒度,定期检测垃圾量的比例,当垃圾比例超过某个阈值时,控制器会主动将垃圾比例高的CKG上的有效数据搬迁到新的CKG上,然后对SSD盘下发Trim命令,通知SSD盘这些CKG已不再使用可以进行垃圾回收,这样旧的CKG被回收。
通过全局垃圾回收机制,可以减少垃圾回收过程中移动的数据量,最大限度降低SSD盘垃圾回收对系统性能带来的影响,从而保障系统性能的稳定性。