任军远cStor超低功耗云存储系统Google文件系统(GFS)Google48%MSN19%Yahoo33%客户端客户端客户端互为备份管理节点GFS主节点GFS主节点C0C1C2C5数据结点1C0C2C5数据结点NC1C5数据结点2…客户端客户端客户端客户端客户端客户端C1Google需要一个支持海量存储的文件系统购置昂贵的分布式文件系统与硬件?Google设计GFS的动机是否可以在一堆廉价且不可靠的硬件上构建可靠的分布式文件系统?硬件出错是正常而非异常系统应当由大量廉价、易损的硬件组成必须保持文件系统整体的可靠性主要负载是流数据读写主要用于程序处理批量数据,而非与用户的交互或随机读写数据写主要是“追加写”,“插入写”非常少需要存储大尺寸的文件存储的文件尺寸可能是GB或TB量级,而且应当能支持存储成千上万的大尺寸文件GFS的假设与目标将文件划分为若干块(Chunk)存储每个块固定大小(64M)通过冗余来提高可靠性每个数据块至少在3个数据块服务器上冗余数据块损坏概率?通过单个master来协调数据访问、元数据存储结构简单,容易保持元数据一致性无缓存Why?GFS的设计思路单一Master,若干ChunkServerGFS的架构1、文件存储方式2、数据读写流程分布式系统设计告诉我们:这是单点故障这是性能瓶颈GFS的解决办法单点故障问题单一Master问题采用多个(如3个)影子Master节点进行热备,一旦主节点损坏,立刻选举一个新的主节点服务GFS的解决办法性能瓶颈问题单一Master问题尽可能减少数据存取中Master的参与程度不使用Master读取数据,仅用于保存元数据客户端缓存元数据采用大尺寸的数据块(64M)数据修改顺序交由PrimaryChunkServer完成Simple,andgoodenough!存储元数据文件系统目录管理与加锁与ChunkServer进行周期性通信发送指令,搜集状态,跟踪数据块的完好性数据块创建、复制及负载均衡对ChunkServer的空间使用和访问速度进行负载均衡对数据块进行复制、分散到ChunkServer上一旦数据块冗余数小于最低数,就发起复制操作平滑数据存储和访问请求的负载Master节点的任务垃圾回收在日志中记录删除操作,并将文件改名隐藏缓慢地回收隐藏文件与传统文件删除相比更简单、更安全陈旧数据块删除探测陈旧的数据块,并删除Master节点的任务采用中心服务器模式可以方便地增加ChunkServerMaster掌握系统内所有ChunkServer的情况,方便进行负载均衡不存在元数据的一致性问题GFS架构的特点不缓存数据GFS的文件操作大部分是流式读写,不存在大量的重复读写,使用Cache对性能提高不大ChunkServer上的数据存取使用本地文件系统,如果某个Chunk读取频繁,文件系统具有Cache从可行性看,Cache与实际数据的一致性维护也极其复杂GFS架构的特点在用户态下实现直接利用ChunkServer的文件系统存取Chunk,实现简单用户态应用调试较为简单,利于开发用户态的GFS不会影响ChunkServer的稳定性提供专用的访问接口未提供标准的POSIX访问接口降低GFS的实现复杂度GFS架构的特点GFS的容错机制ChunkServer容错每个Chunk有多个存储副本(通常是3个),分别存储于不通的服务器上每个Chunk又划分为若干Block(64KB),每个Block对应一个32bit的校验码,保证数据正确(若某个Block错误,则转移至其他Chunk副本)GFS的容错方法GFS的容错机制Master容错三类元数据:命名空间(目录结构)、Chunk与文件名的映射以及Chunk副本的位置信息前两类通过日志提供容错,Chunk副本信息存储于ChunkServer,Master出现故障时可恢复GFS的容错方法超过50个GFS集群每个集群包含数千个存储节点管理着PB(1015Byte)级的数据GFS在Google中的部署巨型、廉价、稳定的数据中心cStor云存储硬件架构cStor云存储软件架构cStor云存储硬件MasterServer(管理服务器)管理整个文件系统,存储各文件的元数据信息,调度各数据存储服务器DataServer(数据存储服务器)存储文件数据,接受管理服务器的调度,为客户端提供数据传输Client(客户端)从管理服务器上获取修改元数据信息,并向数据服务器读写数据cStor云存储软件架构支持master节点双机镜像控制流与数据流的分离Cache机制支持POSIX接口支持加入节点动态扩展支持节点损失实时自适应容错核心技术使用主备双节点方式解决单节点故障问题主备切换时间短,且无数据丢失数据访问不间断,而且性能不受影响支持master节点双机镜像解决了master节点的性能瓶颈问题控制流与数据流的分离master节点在内存中保存metadataChunkserver节点利用本身的文件系统提供的cacheClient节点缓存metadataCache机制客户无需学习专门的API接口可应用在Linux和Windows等各种平台下支持POSIX接口可以任意加入节点(包括硬盘)以扩展容量采用负载均衡策略重新分布数据支持加入节点动态扩展1:1容错技术1:2容错技术高顽存容错技术支持节点损失实时自适应容错cStor云存储界面cStor的性能0100200300400500600使用1个存储节点使用2个存储节点使用4个存储节点使用8个存储节点使用11个存储节点使用15个存储节点cStor性能在某数据中心已经成功应用2年,期间未出现系统故障,节点故障均自动屏蔽。另外还用于数字地球、视频监控、视频点播等领域。cStor云存储的应用基于cStor的云分发系统基于cStor的云处理系统HBaseMap-ReduceZooKeeperNameNodeDataNodesHMasterRegionServerHDFSHive/PigJobTrackerTaskTracker自研的超低功耗云存储硬件节点,功耗仅约为10W(不含硬盘),支持16块硬盘,容量达到32TB以上。在1个标准的42U机架上集成总容量高达1024TB。下一代cStor云存储硬件说明超低功耗云存储节点EMCAtmos云存储名称单机架最大容量是否支持POSIX接口能耗易用性应用适用性是否支持对文件进行修改是否可以单独出售云存储产品是否支持N+M分布式容错大小文件cStor1024T支持5-10W主板承载16个硬盘免学习有配置选项,适用于各类Windows、Linux应用支持可以支持对大小文件都支持的比较好GFS不确定否200W左右需学习API需要修改应用只支持在文件尾追加只卖云存储服务,不卖产品不支持对小文件支持的比较差cStor与GFS的比较谢谢!