多备份是专注于业务数据云端备份、恢复、迁移、存储和归档的云平台(SaaS)应用提供商。其中,为了实现数据的足够安全,我们采用了自主研发的cloud
5技术。
问题的来源
2014年2月份,一位用户匆匆打电话来。提到了他的网站每天有大量的订单产生,他也用多备份备份了他的网站到网盘,但他还是比较担心,万一云盘有问题或停用了(百度云出现过这种情况),是不是他的数据就丢了?他告诉多备份工作人员,他之前的做法是,这些数据他手动备份了好几个地方,但是管理起来很麻烦,容易搞错,有一次甚至直接删除了。
这个用户并非空穴来风,基于网络环境复杂,会出现各种各样的情况,如何建立起数据的容错,纠正,关联机制,对多备份而言是一个重要的技术问题。如果没有一个很好的云端解决方案,用户的重要数据备份上来后,也无法给用户一个很好的可靠性保护承诺,备份也就失去了意义。
这个问题立即得到了产品技术团队的快速响应,在短短的3天之内,就找出了好几套方案,其中从迅雷加盟的一位资深技术专家,提出了用Raid
5技术思想来增强云存储的可靠性,既可以大大提高云存储可靠性,同时还可以提高保存备份结果的速度。
什么是RAID
独立硬盘冗余阵列( RAID , R edundant A rray of I ndependent D isks),简称硬盘阵列。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。在数组中任一颗硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。
RAID比单颗硬盘有以下几个好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘阵列对于计算机来说,看起来就像一个单独的硬盘或逻辑存储单元。常见的有RAID-0,RAID-1,RAID-5,RAID-10。假设一块磁盘的故障率为1%,那么采用最简单的RAID5也可以使数据的故障率降低30倍以上。即故障率将低于0.033%。
在这些技术中,RAID-5是一种储存性能、数据安全和存储成本兼顾的折衷方案。它使用的是Disk Striping(硬盘分区)技术。RAID
5至少需要三颗硬盘 ,RAID
5不是对存储的数据进行备份,而是把数据和相对应的parity(奇偶校验信息)存储到组成RAID5的各个磁盘上,并且parity和相对应的数据分别存储于不同的磁盘上。
当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的parity去恢复被损坏的数据。 (如下图)
多备份cloud 5的诞生
基于传统备份价格高昂,对技术人员精力有限,同时云端备份价格低廉,并且与站点云端主机天然的血脉相承。我们的存储研发专家组考核完技术的可行性后,立即着手于把RAID
5的思想移植到多备份智能代理模式上,实现原理图如下:
把数据按块压缩,划分,加密后,往其中cloud A里写数据,同时会在其余的cloud B或cloud
C写入parity。一旦任何一个云设施数据遭遇不可抗力被毁灭时,我们可以从另外的云设施调用parity来重建数据。也就是只有在同时有两个及以上云端同时出现问题,才可能导致数据的不可用,这样的概率有多小,恐怕工业级的6个9(99.9999%)才足以形容。
继raid 5的模式在多个云平台上应用后,更多的低成本、可靠的存储模式将陆续推出。