三、 如何有效降低迁移过程中的冲突?
分级存储另一个特点,就是会根据数据的访问级别,在不同设备之间进行数据的迁移。如刚开始一些数据是存储在硬盘或者磁盘阵列中的。后来分级存储系统发现其已经有近半年没有被访问了,此时就会将数据从硬盘或者磁盘阵列中迁移到磁带中。这种迁移也叫做降级迁移(将数据从性能高的设备中迁移到性能低的设备中)。相反,当用户在一段时间内突然频繁访问存放在磁带中的数据,此时分级存储系统就会将数据从磁带中迁移到硬盘或者磁盘阵列中,这就叫做升级迁移(数据有慢速存储设备和低一级存储设备往快速存储设备或者高一级存储设备迁移)。
这里需要注意,在迁移的过程中可能会发生冲突。根据笔者的经验,一般来说在降级迁移中设备的输入输出冲突并不是很严重。但是在升级迁移中,则必须要考虑数据迁移带来的I/Q冲突。因为根据测试发现,数据迁移发生的时候,基本上是对应设备I/Q最密集的时候。为此在分级系统设计的时候,必须要考虑到,如何才能够最大程度的降低数据迁移过程中的I/Q冲突,降低对其他用户数居访问的不利影响。现在常用的一种手段是尽量保证只在磁带与磁盘阵列之间进行数据的升级迁移。因为相对来说,可以通过增加硬盘的数量来增加数据输入输出的吞吐量,从而降低I/Q冲突。而减少在磁带与单块硬盘之间的数据迁移操作。根据笔者的测试发现,及时性能最高的硬盘,在发生数据升级迁移的过程中,不可避免的会遇到I/O冲突的情况。
在数据迁移的过程中,除了要考虑数据冲突之外,还需要注意数据的一致性。根据现在的技术,最常用的手段是通过读写锁来确保数据的一致性。系统的迁移进程会为当前的数据块申请读写锁,以保证迁移进程与写操作进程之间的数据一致性。通常情况下,则也是选择分级存储产品中必须要考虑一个指标。
以上提到的这三个内容,不仅仅是大家在部署的时候需要注意的问题,而且在选购产品的时候,也可以以这些标准来进行评估。