分级存储管理在电子邮件系统中的研究与应用
周淦淼 谭石强 支和才 有意思吧
  从2004 年Google推出大容量邮箱Gmail开始,大容量邮件系统发展愈来愈热,用户也逐渐养成在邮件系统服务器上备份大量历史邮件的习惯。随着业务的发展,大用户量加上庞大的邮件数,这给邮件存储带来了显著的压力。
    作为免费电子邮件服务的提供商(ICP),用户和邮件量不断增大,应用系统在线处理大量的数据,随着数据量的不断加大,如果都采用传统的在线存储方式,就需要大容量的本地一级硬盘。这样一来一方面投资会相当较大,而且管理起 来也相对较复杂;另一方面由于磁盘中存储的大部分数据访问率并不高,但仍然占据硬盘空间,会导致存取速度下降。在这种情况下,层次化的分级存储管理,可以在性能和价格间作出比较好的平衡。
    所谓分级存储,就是根据数据不同的重要性、访问频次等指标分别存储在不同性能的存储设备上,采取不同的存储方式。这样一方面可大大减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。
 

二、分级存储的三种存储方式

    目前常用于数据存储的存储设备主要有磁盘(包括磁盘阵列)、磁带(包括磁带机和磁带库)和光盘(包括一切CD-R、CD-RW、DVD-R、DVD-RW 等光盘塔和光盘库设备)。从性能上来说,磁盘当然是最好的,光盘次之,最差的是磁带。而从价格上来说,单位容量成本上磁盘最贵、光盘次之,磁带最低。这就为我们不同的应用追求最佳性价比提供了条件,因为这些不同的存储媒介可应用于不同的存储方式中。存储方式有在线存储(OnLine)、近线存储(NearLine)和离线存储(OffLine)。

    1.在线存储(Online)

    在线存储又称工作级的存储,存储设备和所存储的数据时刻保持“在线”状态,是可随意读取的,可满足计算平台对数据访问的速度要求。如我们PC机中常用的磁盘基本上都是采用这种存储形式的。一般在线存储设备为磁盘和磁盘阵列等磁盘设备,价格相对昂贵,但性能最好。

    2.离线存储(Offline)

    离线存储主要是用于对在线存储的数据进行备份,以防范可能发生的数据灾难,因此又称备份级的存储。离线海量存储的典型产品就是磁带或磁带库,价格相对低廉。离线存储介质上的数据在读写时是顺序进行的。当需要读取数据时,需要把带子卷到头,再进行定位。当需要对已写入的数据进行修改时,所有的数据都需要全部进行改写。因此,离线海量存储的访问是慢速度、低效率的。

    3.近线存储(Nearline)

    所谓近线存储,就是指将那些并不是经常用到,或者说数据的访问量并不大的数据存放在性能较低的存储设备上。对这些的设备要求是寻址迅速、传输率高。因此,近线存储对性能要求相对来说并不高,但由于不常用的数据要占总数据量的大多数,这也就意味着近线存储设备首先要保证的是容量。

三、电子邮件中的分级存储架构

    在分级数据存储结构中,磁带库等成本较低的存储资源用来存放访问频率较低的信息,而磁盘或磁盘阵列等成本高、速度快的设备,用来存储经常访问的重要信息。数据分级存储的工作原理是基于数据访问的局部性。通过将不经常访问的数据自动移到存储层次中较低的层次,释放出较高成本的存储空间给更频繁访问的数据,可以获得更好的总体性价比。

    数据访问的局部性同样适用与电子邮件,都适用二八原则,即经常访问的邮件和新邮件约占20%,而那些很少访问的邮件和旧邮件约占80%,考虑到充分利用Online的价值,提出分级存储,即近期的经常访问的邮件存储在高性能的Online上,过期的不经常访问的邮件和垃圾邮件一律压缩后存放在性能较差一点的Nearline设备上,而且后期购入的存储设备绝大部分选择Nearline,备份则直接放入Offline上,结构图如下所示:

 

 

 

四、电子邮件中的分级存储设计与实施

    分级存储管理(HSM)就是要将用户拥有的所有存储资源统一管理,提高每种存储设备的利用率,节约成本。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的数据按指定的策略自动迁移到磁带库等二级大容量存储设备上。当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一级磁盘上,有时也可以直接读取。对于用户来说,上述数据迁移操作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高了。

    在分级存储中,存储的分级是十分明显的,在线、近线与离线存储存放的数据价值不同,如何根据用户数据的不同价值合理利用好每种存储资源是一个不小的挑战。具体怎么管理分级,各个不同的ICP都有自己的原则,一般来说邮件的分级主要考虑两方面:

    一方面是根据Online的容量大小和每天接收到的邮件量,计算出存储到Online上面的邮件的时间段,一般最好是在一个月以上,因为活跃用户一般在这个时间段有操作的可能性比较大。实现方法有,在每台连接Online 的服务器上都跑一个后台服务,闲时扫描存储日志,将一定时间之前的邮件压缩并传送到相应的Nearline上。

    另一方面就是根据附件的大小,小附件邮件尽量存储到Online上,超过一定大小的大附件邮件一般只用一次,而且用户在速度上都有一定的包容心,这种邮件尽量存储在Nearline上面,这种方式在邮件投递的过程中就可以实现。以某ICP(免费电子邮件服务的提供商)的统计数据为例进行设计。该ICP的Online存储容量为47T,Online设备上现有邮件37.7T,日均进信量为400G,日进信量最高值为661G,在实施前的测试中,所有邮件的平均压缩比例为58%,传输并压缩速度为10 封/秒,平均每封邮件的大小是140.92K,每天传输并压缩的邮件量为864000封*140.92K/封=122G。

    1.预测Online 设备保存邮件时间

    根据Online设备的存储容量(47430G)和日均进信量(400G),为了保证不影响入信,需要预留一部分缓冲空间,Online设备的使用率在75%左右比较好,可以得出Online设备上应该保存的邮件时间应该为:

    47430×0.75/400≈89(天)

    但是日均进信这个数远远不能代表现阶段和未来的入信量,如果按照日进信量最高值(661G)进行计算的话,Online设备上应该保存的邮件时间就应该为:

    47430×0.75/661≈54(天)

    折合考虑这两个值并加入入信量每天都增长的大趋势,设计在初期的Online设备保存邮件时间为50 天左右。

    2.预测Online 设备准备入信时的非空闲空间

    Online设备上现有保存邮件,现有Online设备上存储的邮件大小(37.7T),要想在Online设备上入信,需要先将一些邮件迁出,迁出到什么程度呢,这个就是准备入信时的非空闲空间的大小根据所有邮件的平均压缩比例(58%)和每天传输并压缩的邮件量(122G),与日均入信量(400G),可以得出Online设备入信时的非空闲空间比例为:

    (122/(122+400))*100%≈20%

    由此算出,online设备入信时非可用空间为:

    47.43*90%*20%≈8.54T

    但是保守估计应该是按照日最大进信量进行计算,所以其比例应该为:

    (122/(122+661))*100%≈15.6%

    则非空闲空间应该为:

    47.43*90%*15.6%≈6.7T

    3.实施方案

    总体可分四个步骤:

    首先,测试提供的新的邮件存储服务程序,要求能解读2种邮件文件名,即:新入信的没有压缩的邮件,另外一种就是压缩过结尾文件名带有gz 的邮件;

    其次,压缩Nearline上的旧邮件,根据测试数据10 封/秒,所有Nearline设备上压缩邮件预计时间:最少13 天。

    第三,传输并压缩Online设备上的邮件,根据测试数据10封/秒,所有Online设备上的数据传输并压缩预计耗时最少为:19 天。

    第四,对比校验所有旧邮件,根据测试数据,预计耗时:5 天。

    4.实施结果

    上面这些数据是实施前的测试数据,事实上提供了一个专门的快速工具,另外一点是工具传输并压缩,其中需要扫描并修改用户索引数据,但是实行并发操作,而且连接Online设备的多台服务器之间也可以并发执行,其速度更快,每天压缩并传输的邮件量大大超过每天的入信量,所以Online设备上实际上可以立即入信,这样非常好的保证了邮件的质量和邮箱服务的质量,而且充分利用了存储资源,大大的节约了运营和维护成本。

五、结束语

    分级存储管理作为一种能有效降低成本、提高效率的方案已被应用于各个领域,成为各IT 企业追逐技术进步的一个目标。在电子邮件系统中分级存储的应用能够有效地保证邮件系统的安全、稳定、高效和可靠,提升用户的使用体验。

CIO之家 www.ciozj.com 公众号:imciow
关联的文档
也许您喜欢