注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

韩国恺的博客

hanguokai.com

 
 
 

日志

 
 

Hotmail存储系统升级  

2011-09-27 13:21:30|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
上周末看到的一篇文章 A petabyte per week ,谈了hotmail新的存储系统,我简要整理下。

内容要点:Hotmail存储层从标准RAID迁移到自己实现的“分布式软件RAID”,主要为成本等方面的考虑。RAID成本大,软件替代硬件,放弃RAID,改用自己实现的JBOD(Just a Bunch Of Disks)。

Hotmail现状
拥有巨大的数据量:10亿邮箱,数百PB数据,并发数十万事务。
基础平台:Windows Server 和 SQL Server
基本要求:效率与安全(即可用性与可靠性)
新系统特点:软件替代硬件、成本低、分布式等

为什么放弃RAID
Hotmail存储系统升级 - hanguokai - 韩国恺的博客
                                              RAID结构
 
RAID是把数据存储在多个磁盘上,尽管理论上单个磁盘坏了还可以自动恢复,但实际上经常是同时失去整个RAID集,尤其是有上千台机器的时候。hotmail之前使用了很长时间的RAID,为了防止整个RAID集失败,数据被复制到多个RAID组上。但是这样实现的可靠性,钱花得很不值。

相关事故 vs 独立事故
比如,飞机上的引擎,许多故障(如机械方面)只会影响单一的引擎,这被称为独立故障。这种情况下,只需要有多于一个即可。如果飞机穿过一大群鸟或没油了,所有的引擎可能同时失败,这被称为相关故障,因为一个事件导致多个故障。类似的,RAID可以处理好单一磁盘故障,但是对于整个机器不可用或RAID控制器失败是没有帮助的。


Just a Bunch of Disks

Hotmail存储系统升级 - hanguokai - 韩国恺的博客
                                                                 JBOD系统结构

新系统确保数据的拷贝存储在独立的硬盘、控制器和机器上。现在需要软件来负责处理原先由硬盘控制器负责的各种事情,包括从硬盘自身的固件错误到不可恢复的读错误等。另外,现在软件必须定期擦洗(scrub)驱动器检查数据“位衰减”(bit rot)。基本上,我们完全用软件构建了一个分布式RAID控制器,替换了工业标准的固件RAID控制器。

JBOD系统要监控硬盘修复、检测失败和诊断修复。软件由一组“看门狗”组成,持续地监控特定类型的失败。如果发现了问题,就发出告警启动自动修复程序。修复程序可以重启机器或重启进程,处理数据损坏或甚至在处理不了时由人工介入。

用软件管理驱动器的主要好处是系统可以准确地知道有多少数据的正确拷贝。如果发现拷贝太少,可以优先修复以避免潜在的危险。如果修复时间太长,可能会把数据整体移动到别的位置上。用RAID也可以有限形式地实现,但是这需要每一个RAID控制器挂上额外的备用驱动器,这会显著增加成本。

存储系统由一组机器组成,每个上有一份数据拷贝和按到达时间组织的日志。机器间时常彼此通信,比较他们的日志,复制任何他们认为在其它机器上没有的数据。这可能是由各种原因导致的,常见的是机器、网络、磁盘方面的失败。如果日志同步差太多,系统会做一次完全的比较或复制。


部署SSD
SSD较贵,但非常快;传统磁盘慢,但是很大、很便宜。
现在磁盘变得更大、更便宜,但是速度却没怎么变。这意味着虽然可以在上面放更多的数据,但是却会跟不上请求的速度。SSD在这方面很有希望,一般磁盘每秒只能处理100次读写操作,而最快的SSD每秒可以处理10万次。然而SSD代价也很大,每G存储的价格比磁盘要贵10-100倍。

Hotmail存储系统升级 - hanguokai - 韩国恺的博客
                                                   Email存储结构                         

Hotmail中Email的元数据和邮件内容是分开存储的。元数据很小,访问很频繁。这样用SSD来存储元数据,用磁盘存储邮件内容。

  评论这张
 
阅读(490)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018