论文部分内容阅读
随着信息量的爆炸式增长,信息存储技术显得越来越重要。个人计算机磁盘容量也越来越大,企业的存储容量更是以较快的速度增长。许多企业要求它们的数据不仅全面而且可靠。黑客、病毒、硬件设备的失效以及火灾、地震等自然灾害的出现会使系统和数据信息遭到破坏,如果不及时进行恢复,将对企业造成巨大的损失,所以备份容灾技术非常重要。
数据备份等很多操作都需要获取存储系统的瞬时状态,简单的方法是停止用户对存储系统的访问,获取当前时刻数据的完整拷贝。获取数据副本往往需要较长时间,这显然与高性能的需求是背道而驰的。而且随着存储系统规模越来越大,这一矛盾还会更加严重。理想的方式当然是不中断业务处理,以在线的方式完成存储系统状态的保存,因为系统的停机意味着巨大的经济损失。在线备份大多采用快照(Snapshot)技术,目前常见的快照基本技术有:镜像分裂技术,按需拷贝技术,虚拟视图技术和增量快照技术。这些技术或多或少存在一些缺点,主要表现在缺乏灵活性、需要预分配存储空间、无法得到完整的物理副本、系统开销较大等等。
当前业界主流的存储产品都支持快照功能。大部分快照系统采用写前拷贝技术。在创建快照后,当一个磁盘更新请求到达时,写前拷贝被触发,引起至少三次磁盘操作,这大大降低了性能,而且如果在多次快照的情况下,需要将磁盘上的数据拷贝到每一份快照中,这非常耗费时间。另外,存储系统通常采用覆盖写方式,当新的写请求到达时,会通过寻道来查找数据存放的地址。寻道是机械操作,很难提高速度。
为了解决上述问题,本文实现了一种基于LVM2的高性能非写前拷贝快照系统(NCOW)。该系统使用追加写技术来处理写请求操作。追加写有几个优点:可将随机请求转换为连续的请求,消除了寻道操作;可以避免快照后数据更新时的写前拷贝操作,减少了I/O次数。因此利用追加写技术,可以实现NCOW的非写前拷贝快照功能,不仅降低了快照后的I/O开销,还保证了磁盘数据的可靠性。然而新的写方式也引起了一些问题:首先,写方式发生了改变,因此本文重新设计了读写逻辑。其次,每个卷必须维护一个映射表,该映射表存储了从用户地址空间到物理空间的映射关系。映射表有可能太大,不能全部放在内存中。因此,为了减少由于磁盘上元数据存取造成的性能降低,本文设计了元数据cache机制和优化的元数据磁盘布局。再次,为了加速元数据的初始化,还提出了初始化位图方法。初始化位图的扩展版本在创建快照时完全避免了元数据的拷贝。最后,由于采用了追加写的方式,对同一逻辑块的修改不会覆盖旧版本,因此会产生碎片,而且随着时间累积,磁盘上的碎片越来越多,严重降低了磁盘空间的利用率。为了解决这个问题,一个好的碎片整理的算法是必需的。实验结果表明NCOW卷在随机写性能和快照性能上具有明显优势。