您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 开放存储服务架构设计
开放存储服务架构设计吴锦波2012-07-03Agenda什么是开放存储服务开放存储整体设计取舍和教训什么是开放存储服务公共服务高可用性高可靠性设计原则•硬件故障透明•数据的多份拷贝分布在不同机架/机房•易扩展•容量扩容•自劢应对爆发式访问数据中心DataCenter开放存储服务OSS开放结构化数据服务OTS关系型数据库服务RDS开放数据处理处理服务ODPS弹性计算服务ECSLinux云服务引擎ACE集群部署Deployment集群监控Monitoring远程过程调用RemoteProcedureCall安全管理SecurityManagement分布协同服务DistributedCoordinationService资源管理ResourceManagement分布式文件系统DistributedFileSystem任务调度JobSchedulingAgenda什么是开放存储服务开放存储整体设计取舍和教训开放存储服务架构协议接入层Restful协议LBLVS数据访问层Key-Value引擎持久存储层Pangu负载均衡协议处理、访问控制分区、索引持久、冗余、容错协议接入层无状态接入层Server协议解析授权/认证请求路由WebServer+ProtocolModule数据访问层KV引擎--管理分区/索引•KVMaster–管理全局分区(Partition)元信息–数据分区控制–调度分区到KVServer•KVServer–负责若干个分区–通过Pangu存取数据–建立索引•女娲–命名服务–分布式锁服务女娲LockServiceKVServerKVServerKVServerKVMaster持久存储层Pangu--大规模分布式文件系统MMMPaxosCSCSCSCSCS•Master-Slave结构–Master管理元数据,ChunkServer负责Data读写•基于Paxos的多Master,故障恢复小于一分钟•文件分块(Chunk),每块存三份,分布在不同机架•End2End的checksum•磁盘、机器、机架及checksumfail时数据自劢复制开放存储服务架构MMMPaxosCSCSCSCSCS女娲LockServiceKVServerKVServerKVServerKVMasterWS+PMWS+PMWS+PMWS+PM协议接入层数据访问层持久存储层RequestACK什么是开放存储服务•协议接入层•数据访问层•持久存储层开放存储整体设计取舍和教训Agenda协议接入层--路由与协议处理•RESTful格式协议处理–HTTP协议-PUT、GET、HEAD和DELETE四类操作–用户请求抽象成数据访问层操作–业务管理逻辑–资源消耗的计量–多种防攻击策略协议接入层--关键词•Service–OSS提供给用户的虚拟存储空间–在这个虚拟空间中,每个用户可拥有一个到多个Bucket•Bucket–Bucket是OSS的命名空间–BucketName在整个OSS中具有全局唯一性•Object–在OSS中,每个文件都是一个Object•AccessKeyID、AccessKeySecret–安全标识,为访问OSS做签名验证协议接入层架构Tengine终端用户OSSServer数据访问层浏览器、SDK等支持高并发,管道式收发数据,TMD防攻击模块OSS业务逻辑资源消耗计量维护和数据访问层映射逻辑Meta用户文件DataSlice1DataSliceMDataSlice2Meta存储۰۰۰Data存储1Data存储2Data存储N۰۰۰协议接入层—将用户文件映射成数据访问层存储什么是开放存储服务•协议接入层•数据访问层•持久存储层开放存储整体设计取舍和教训Agenda数据访问层--海量对象索引•海量、分布式的Key-Value存储–能扩展到成百上千台服务器–对象能被快速查找、遍历及修改–负载劢态平衡[j,n)KVS1[a,j)KVS2[n.z)KVS3数据访问层--分区元信息•系统初始按字符串序预分成若干份•根据访问信息分裂/合并某些分区•一个分区只能在一个KVServer上被服务•KVMaster维护分区到KVServer的映射关系•Client缓存分区与KVServer映射关系接入层Server[j,n):kvs2KVMaster[a,j):kvs1[j,n):kvs2[n,z):kvs3[n,z):kvs3数据访问层--关键词•Cell–Key-Value对•Block–有序Cell集合–读写Pangu层的最小单元•MemFile–内存中根据key排序的cell集合•YouchaoFile–存放在Pangu中的cell集合–由Block/BlockIndex/BloomFilter组成•Partition–一个MemFile/若干YouchaoFile组成–服务某一个范围的cell集合数据访问层—Append/Dump/MergeMemFileBlockCacheBlockIndexCacheBloomFilterCacheMemoryPanguYouchaoFilesRedoLogFileLogDataFiles数据访问层--读写过程MemFileRedoLogFileMemoryReadYouchaoFilesDumpmemfiletoyouchaofileWritePanguMerge什么是开放存储服务•协议接入层•数据访问层•持久存储层开放存储整体设计取舍和教训Agenda持久存储层Pangu--基本概念•Appendonly的分布式文件系统–类似于文件系统的结构–支持创建/打开/追加/关闭/删除/重命名等操作•偏重于存储大文件–文件内容布局•App-Part•LocalFile•Normal/Log两种文件类型Pangu—数据聚簇模式•对服务访问的数据打标签app,part•相同app,part标签的文件在存储时聚簇Partition1Partition2Partition3Paxos写PanguNormalFilePanguclientMMMCSCSCSCSCreateChunkChunkLocationAppendDataACKAppendAppendACKACKCommitnewlengthPaxos写PanguLogFilePanguclientMMMCSCSCSCSCreateChunkChunkLocationFlushDataACKAgenda什么是开放存储服务•协议接入层•数据访问层•持久存储层开放存储整体设计取舍和教训取舍•数据访问层索引–根据Value大小切分成多级索引,减少merge开销–BlockIndex/BloomFilter分多级,内存更可控–成本:查询大对象需多级索引,不命中cache会变慢•只能追加的持久层–复制、错误恢复相对简单–维护一致性、查错比较容易–成本:需要回收垃圾数据•Normal/LogFile–Normal偏throughput优化–Log偏latency–成本:工程复杂度增加经验与教训•在线升级–Online的互联网存储系统也需要升级•质量–错误模拟测试不能手软–埋点提升错误发生概率并触发大量随机Failover–小概率故障必然会发生–无论多难触发的Bug也会在线上发生云之上的存储服务简单易用,安全可靠规模产生的成本效应谢谢
本文标题:开放存储服务架构设计
链接地址:https://www.777doc.com/doc-1591950 .html