一、磁盘的初始化

        有没有这样一个疑问:为什么建议在使用RAID之前先对需要加入RAID组磁盘进行初始化?这里所谓的初始化主要是针对原来就有数据的磁盘,针对这样的磁盘加入虚拟化有两种初始化方式,分别是前台初始化和后台初始化。所谓的前台初始化就是在使用前先将磁盘的数据清0,但是在这个清0的过程中,是不能接受其他I/O的;后台虚拟化就是在后台进行清0过程,这个过程允许被打断,比如此时有一个写I/O,那么控制器先对相应的条带进行写操作,操作完成之后再继续清0过程。

二、初始化的好处

        以RAID5为例,如果进行前台初始化的话,会大大提高后续使用过程中的性能,这个过程就类似“磨刀不误砍柴工”,只有先把刀磨好才能再砍柴的时候更快。如果将还有数据的磁盘拿之即用,直接加入到RAID组中就开始使用,就是后台初始化。

        对于RAID5(RAID5 的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,当一个数据盘损坏时,系统可以根据同一条带的其他数据块和对应的校验数据来重建损坏的数据。)来说,使用了后台初始化的话,RAID5的性能一定会受到很大影响。因为每次有新的数据要写入原本存放旧数据的条带的数据块时,就意味着要对这整个条带进行一次校验,为什么呢?因为此时拿之即用的磁盘组成的RAID5时未初始化的,也就导致这个RAID5的校验值是不匹配的,因此写入新的数据就需要对这个数据所要写入的整个条带重新校验,并写入正确的校验值。如果下次写I/O还是写入这个条带,就按照RAID5的正常写入操作即可。