云端磁盘:网络巨头如何存储数据(下)
jim 发表于:12年04月09日 09:47 [编译] 存储在线
微软的Azure DFS
当微软推出Azure平台即服务时,它也面临着一系列类似亚马逊那样的需求——包括大量的多用途存储。但应为它是平台即服务,Azure不会像亚马逊的EC2那样向其客户透露过多内部结构。而且作为一个平台专门建立来服务云客户比为了某个特定任务来建立更有好处。
因此,在一些方面,Azure的存储架构类似于亚马逊的——它的目的是处理各种尺寸的“对象”,表和其他类型的数据,并提供颗粒级的快速访问。替代 了在存储节点自身处理逻辑和物理的数据映射,Azure的存储架构把逻辑和物理数据分区分到了系统的不同层。当传入的数据请求通过一个逻辑地址被分发时, 或“分区”,分布式文件系统自身分解成GB大小的块,或“扩展”。其结果是一种亚马逊和谷歌混合的方法。
如同微软的Brad Calder在他的Azure存储架构概览中描述的那样,Azure使用了一种类似于Dynamo的识别数据位置的验证系统。但不是让应用或服务直接接触 存储节点,请求是通过一个保存数据分区映射的前段层分发的,就类似于HDFS的名字节点。与HDFS不同,Azure使用多个前端服务器,通过它们载入均 衡的请求。前端服务器处理所有的从客户端应用程序的认证请求,并处理与下一层之间的联系——分区层。
每个Azure存储空间的逻辑块都由一个分区服务器管理,它可以追踪哪个DFS区间存储着数据。分区服务器为其特定的存储对象处理读取和写入。这些 对象的物理存储是遍布DFS区间的,因此每个分区服务器都可以访问DFS中的所有区间。除了缓冲前端服务器的读写请求,分区服务器还可以将请求数据缓存在 内存中,因此重复的请求可以在不惊动底层文件系统的情况下得到响应。这将对小的,频繁的请求提高性能,比如呈现一个网页。
每个分区的所有元数据都被复制回一套“分区主”服务器上,如果分区服务器出错会提供信息的备份——如果一台坏了,它的分区会动态传递至其他分区服务器。这些分区主服务区还监视Azure存储集群上每个分区服务器的工作量,分区主服务器可以动态重新分配分区。