浅析分布式存储架构—设计自己的存储- 58同城徐振华

来源:互联网 发布:at域名 编辑:程序博客网 时间:2024/06/05 20:31

浅析分布式存储架构—设计自己的存储- 58同城徐振华 — Presentation Transcript

  • 1. 浅析分布式存储架构—设计自 己的存储 技术中心·架构部 徐振华 2012-02-06
  • 2. 内容概要 • 分布式存储架构介绍和现状 • 需要那些基础知识 高并发服务端架构 常用存储架构比较 • 如何设计分布式存储的架构 分析需求,做好平衡 如何做到RAS(可靠,可用,可扩展); 利用硬件,分级存储
  • 3. 介绍和现状 介绍 • 重点 : 架构 • 理论 : CAP : Consistency Availability Partition tolerance 只能满足其二 BASE :Basically Available(基本可用)Soft state(柔性状态) Eventually consistent(最终一致) ACID (原子性 一致性 隔离性 持久性) I/O五分钟法则 Amdahl定律和Gustafson定律 , 摩尔定律
  • 4. 介绍和现状 现状 • 2011年,Amazon S3服务增加了5000亿份存储对象和文件 技术: SimpleDB , Dynamo • 目前全球累计已经有超过1400亿张照片发布在Facebook网站上 每天平均有超过2.5亿张照片上传至Facebook Facebook目前存储的照片和视频数据量超过100PB(1PB=1024TB) HBase每月存储1350亿条信息 技术: Facebook图片存储系统 HayStack, cassandra,hbase • 2008年 google谷歌网页索引数量突破1万亿 技术: Google Megastore , GFS, bigtable
  • 5. 基础知识 基础知识 • 数据结构 • 网络 • 集群 • 操作系统 • 存储领域 • 其它领域
  • 6. 基础知识 网络 服务器模型 s:1 , c:1 , bio; 一个请求一个线程 s:1 , c:n , nio ;多个请求,一个线程分发 seda :Staged Event-Driven Architecture Select (轮询) 和 epoll (事件驱动 callback); C10K问题,C500K,C**K 本质 方法: I/O模型 职责划分 内核和协议栈优化 目标 :尽量少占用CPU ,提高资源利用率 DRM的目标一致 常用网络库 Netty , Mina, libevent,libev, ACE,ASIO
  • 7. 分布式存储架构 各种IO模型
  • 8. 基础知识 数据结构 主要存储模型 Consistent hash, (去中心化 ) B+ tree , (实时,随机) LSM tree, (批量 顺序) 其它 Bitmap (bloom filter 缓存命中) Dynamo,hbase Merkle Tree (一致性) Dynamo Skip List ( 跳表 lsm变形) leveldb prio_tree (优先搜索树 mmap) mognodb
  • 9. 分布式存储架构 consistent hash
  • 10. 分布式存储架构 B+ tree
  • 11. 分布式存储架构 cassandra 数据存储过程
  • 12. 分布式存储架构 Lsm tree
  • 13. 分布式存储架构 Merkle Tree
  • 14. 基础知识 集群 1 无主 ;Master_slave ; P2P(全主) 操作系统 进程调度 内存管理 文件管理: 存储领域 存储硬件 事务和锁( MVCC 二段提交 三段提交 ,paxos) 常用数字 扇区 512, 内存页4k , 磁盘块大小 4k mtu 1500 其它领域 人工智能 : k_means
  • 15. 基础知识 基础知识应用 • Dynamo 数据同步 , BT下载 Merkle Tree • memcached linux 内存管理 + libevent + (consisten hash )
  • 16. 分布式存储架构 linux vfs体系
  • 17. 如何设计 如何设计架构 • 分析需求,做好平衡 • 使用Kiss原则 , 做到RAS • 设计和充分利用硬件,分级存储 • 实践
  • 18. 如何设计 分析需求,做好平衡 1 分析需求 数据结构 文件 table , object 数据特点 容量大小 访问模式 读写比例,实时读写,顺序读写 实时性 2 平衡 1 CAP理论 , BASE理论/ACID 2 选择存储模型 B+ or LSM 资源利用率和管理 高吞吐和低延迟 随机与顺序 规模与实时 B+ or LSM 3 实践 Mongodb选择
  • 19. 如何设计 原则和目标 原则: kiss unix 设计哲学 目标: RAS RAS: Reliability, Availability, Scalability 高可靠,高可用,高扩展 R:过载控制 : Qos, (随机早期检测) A: 容灾 多副本 (同机柜,机房,数据中心) S 扩容  分片 : a 取模 b 一致性hash c B+ tree 或变种
  • 20. 如何设计 利用硬件,分级存储 数据中心 Facebook开源服务器、数据中心,将开源存储方案, 分级存储 网络延迟 局部性原理  cdn 按对象访问热点进行迁移: 最热的进SSD,中等热度的放SAS,轻热度的存SATA 展望 硬件分离, 你的CPU在一台服务器上,而内存在另外一台服务器,网卡可能 在第三台服务器上
  • 21. 分布式存储架构 facebook数据中心电力布局
  • 22. 分布式存储架构 淘宝cdn分级
  • 23. 分布式存储架构 数据分布
  • 24. 分布式存储架构 实践1: Google Megastore
  • 25. 分布式存储架构 实践2: Facebook Haystack图片存储架构
  • 26. QQ :254181919msn : google_fans@hotmail.comhomesite : http://www.zhuozhe.net Q&A
  • 27. 谢谢
原创粉丝点击