Your SlideShare is downloading. ×
20101126 分布式文件实践经验交流
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

20101126 分布式文件实践经验交流

784
views

Published on

By

By

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
784
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 分布式文件系统实践经验交流 yubai.lk@taobao.com
  • 2. Context• 概述• 一致性模型• 元数据节点• 数据节点• 客户端API• 总结
  • 3. 概述• 应用• 需求• 架构
  • 4. 应用• MapReduce计算 – 高带宽 – 顺序扫描 – 批量顺序追加• 表格系统的底层存储 – 随机读取 – 小记录顺序追加 – 批量顺序追加
  • 5. 需求• 超大规模的数据存储• 易于扩展和迁移• 容灾和自动恢复• 高带宽和低延迟
  • 6. 架构• 数据分块 – 大文件优化• 大容量低配置数据节点 – 12T, sata• 单一元数据节点 – 主备同步 – DNS切换
  • 7. 一致性模型• 以记录为单位读写 – 并发和异步操作 – 记录级别的原子性• 与GFS类似的语义 – 写成功的记录,多个副本强一致 – 写失败的记录,状态不确定 • 多副本一致性状态不确定 • 重复记录问题,需要用户处理
  • 8. 一致性模型• Lease – master元数据与chunk信息一致性检查 – 减小写数据对master带来的压力 – Lease期间Primary Replica主导数据追加
  • 9. 一致性模型• Primary Replica主导的数据追加 – 接受master的lease 分配,并分发给其他副本 – 处理lease释放和续订,并分发给其他副本 – API都将数据发送给Primary Replica – Primary replica决定写入的offset向其他副本分发 数据 • Lease期间的宕机检测和处理 – 心跳检测和Primary汇报其他副本宕机 – 新建chunk
  • 10. 一致性模型• Chunk状态和版本号 – Master在收到数据节点的lease分配成功后升级 自己名字空间的版本号 – 数据节点在收到lease并检查成功后升级自己 chunk的版本号 – Master不根据汇报信息更新自己的版本号,只 删除版本号低于自己的chunk – 数据节点上的Chunk状态 • Readonly ,自己写失败或其他副本写失败 • Cannot copy,版本号低于master
  • 11. 元数据节点• 批量并发操作 – Btree copy on write特性 • 在拷贝出来的根节点上批量修改,提交日志 • 然后提交或回滚修改后的根节点• 运维接口 – 动态信息查询 – 允许人工介入的操作日志和ckeckpoint修正
  • 12. 数据节点• 磁盘io – Async io • libaio – Direct io • 自己实现类似page cache和buffer cache• 预读 – MapReduce读取模式:扫描 – BigTable读取模式:扫描或随机
  • 13. 数据节点• 快速启动 – Chunk元数据定期dump到磁盘 – 配合操作日志则启动时不需要扫描磁盘• 数据和操作日志 – 提高响应能力:不能在buffercache中对齐的数 据不立即写磁盘 – 更新chunk元数据的操作不实时刷新到磁盘 – 仅在打开和关闭chunk的时候更新一次chunk元 数据
  • 14. 数据节点• 多磁盘管理 – 12 * 1T sata盘 – 支持损坏磁盘的热插拔 – 已损坏磁盘不可重新加载 • 软连接• 数据链路 – Pipe line式的数据推送 • API->Primary Replica->Secondary Replica • 跨交换机选择ip地址最近的下一个机器推送 • 同一交换机内随机选择下一个机器推送,避免在小集群 内都选择最近ip造成的瓶颈
  • 15. 数据节点• 文件复用 – chunk文件不立即删除 – 改名复用已删除的文件• 多网卡 – 多网卡地址向master汇报 – 过滤无效地址
  • 16. 客户端API• 异步接口 – Wait / Select – 多异步任务调度• 写操作优先级 – BigTable日志优先• 高级API – 过滤重复记录 – 更像Posix接口 – DFSShell工具
  • 17. 总结• 适应MapReduce和BigTable需求的底层存储• 性能、实时性、可靠性优于HDFS,功能更华丽• TFS – 优势 • 名字空间与元数据空间分离 • 小文件支持 – 不足 • 写操作对namenode压力大 • 不支持并发追加
  • 18. 谢谢!Q&A