Dfs ning

2,861 views

Published on

2011年3月珠三角技术沙龙深圳小沙龙主题

Published in: Technology
2 Comments
9 Likes
Statistics
Notes
  • Excellent indeed!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • http://laiyonghao.com/20110326-techparty-sz/20110326-techparty-sz-05.mp3 mp3 is here. Excellent presentation. thanks~
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,861
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
46
Comments
2
Likes
9
Embeds 0
No embeds

No notes for slide
  • 测试一下双屏浏览 - 在连接了外部显示器或者投影仪的情况下,点击“ 2” 号屏幕,并按照图中高亮标注处选中“将 windows 桌面扩展到该显示器”同时设置适当的分辨率。  在图中高亮的部分选中“显示演讲者视图” 自我介绍一下
  • 淘宝 - 百亿级别文件, 600TB Facebook – 2008 65 亿图片,每张图片 4-5 个文件 每周一亿的上传, Stored on netapp filers
  • 本地文件系统收到容量的限制,硬件的限制,文件系统设计的限制 某些文件系统可以动态扩容 一般的文件系统既不是为大媒体文件优化,也不是为海量小文件优化
  • 特别对于一些 IO 密集型领域: DB / Streaming / 监控 / some Internet service
  • 什么都很贵, SAN / NAS / SAS 硬盘
  • 磁盘损坏率,不要相信 MTBF ,算出来经常是 AFR 1% 不到 实际是 3%-15%
  • SSD - 嵌入式系统 , 写入优化 Record – 是记录方式的,区别于大部分文件系统的 Shard-disk SAN- Redhat GFS 等 DFS - SMB is also known as Common Internet File System (CIFS) DFS-FT MS DFS / DFS-Parallel 没啥好说的,还有下面 DFS-Parallel-FT GoogleFilesystem / CloudStore / Lustre [Laster]
  • 什么是 Posix like ?
  • 核心要素: 便宜 ( 意味着性能一般,容易坏 ) 大文件,顺序读写 高 throughput vs low latency
  • 客户请求 Master 2. Master 返回主块 ( 带有租约 ) 3. Client 推送数据 4. Client 发送写请求 主块分配序号 5. 要求其第二副本块按照同样的顺序写 6. 第二副本块回复写操作 7. 主块回复客户机,包括第二副本的错误都会返回给客户机
  • From LiveJournal
  • Namespace 的查找是一个消耗很大的操作 , NFS 文件句柄缓存 NFS 文件句柄缓存 Facebook have extended the Linux kernel to allow NFS file opens via inode number rather than filename to avoid the NetApp scaling issue. Namespace 可以扁平化
  • Dfs ning

    1. 1. Distributed Filesystem Ning Peng
    2. 2. 定义 <ul><li>A file system (often also written as filesystem ) is a method of storing and organizing computer files and their data. </li></ul><ul><ul><li>Essentially, it organizes these files into a database for the storage, organization, manipulation, and retrieval by the computer's operating system. </li></ul></ul>
    3. 3. Challenge <ul><li>NTFS / EXT3 等工作得很好 </li></ul><ul><li>NFS 在很多场合也还不错 </li></ul><ul><li>但是… </li></ul>
    4. 4. Challenge <ul><li>更高的容量 </li></ul><ul><ul><li>大容量媒体文件 - PB </li></ul></ul><ul><ul><li>海量的文件 – Trillion </li></ul></ul>
    5. 5. Challenge <ul><li>更强的性能 </li></ul>
    6. 6. Challenge <ul><li>更低的价格 </li></ul>
    7. 7. Challange <ul><li>稳定可靠 </li></ul><ul><ul><li>磁盘损坏 </li></ul></ul><ul><ul><li>部件失效:主机,接口,控制器,电源,网络 ... </li></ul></ul>
    8. 8. How to scale <ul><li>本来应该说是 Scale Your Storage </li></ul><ul><li>这个 topic 太大 </li></ul><ul><ul><li>涉及到应用,硬件,网络 </li></ul></ul><ul><ul><li>先简单的谈分布式文件系统 </li></ul></ul><ul><ul><li>谈点穷人的方案 </li></ul></ul>
    9. 9. 看看我们有的文件系统 <ul><li>太多了…看分类吧 </li></ul><ul><ul><li>Disk file systems –ext3/ntfs/zfs/wafl ( 大部分我们熟悉的 ) </li></ul></ul><ul><ul><li>File systems with built in fault-tolerance-zfs/brfs </li></ul></ul><ul><ul><li>File systems optimized for flash memory, solid state media </li></ul></ul><ul><ul><li>Record-oriented file systems </li></ul></ul><ul><ul><li>Shared disk file systems </li></ul></ul><ul><ul><li>Distributed file systems </li></ul></ul><ul><ul><li>Distributed fault-tolerant file systems </li></ul></ul><ul><ul><li>Distributed parallel file systems </li></ul></ul><ul><ul><li>Distributed parallel fault-tolerant file systems </li></ul></ul><ul><ul><ul><li>GoogleFilesystem/CloudStore/Lustre/HDFS </li></ul></ul></ul><ul><ul><li>Peer-to-peer file systems </li></ul></ul><ul><ul><li>Special purpose file systems </li></ul></ul><ul><ul><li>Pseudo- and virtual file systems </li></ul></ul><ul><ul><li>Encrypted file systems </li></ul></ul>
    10. 10. Google File system Like <ul><li>Google File system </li></ul><ul><li>KFS </li></ul><ul><li>HDFS </li></ul><ul><li>Why like? </li></ul><ul><ul><li>Master – chunk 架构 </li></ul></ul><ul><ul><li>POSIX Like Interface </li></ul></ul><ul><ul><li>设计目标一致 </li></ul></ul>
    11. 11. GFS Goal <ul><li>最开始是为爬虫等应用设计的 </li></ul><ul><li>The system is built from many inexpensive commodity components that often fail. </li></ul><ul><li>The system stores a modest number of large Files. </li></ul><ul><li>large streaming reads and small random reads </li></ul><ul><li>The workloads also have many large, sequential writes that append data to Files </li></ul><ul><li>High sustained bandwidth is more important than low latency </li></ul>
    12. 12. GFS Architecture
    13. 13. GFS Architecture <ul><li>文件分块 </li></ul><ul><ul><li>大小 64MB </li></ul></ul><ul><ul><li>为什么是这个大小? </li></ul></ul><ul><li>Master 管理元数据 </li></ul><ul><ul><li>Namespace </li></ul></ul><ul><ul><li>File Attributes </li></ul></ul><ul><ul><li>Chunks , and location </li></ul></ul><ul><li>Single Master ? Yes </li></ul><ul><ul><li>Simple </li></ul></ul>
    14. 14. Master 设计 <ul><li>都放在内存里 </li></ul><ul><ul><li>64MB Chunk -> 64 bytes </li></ul></ul><ul><li>Log & Check Point </li></ul>
    15. 15. 一致性 <ul><li>Master 控制的部分是一致的 </li></ul><ul><ul><li>创建删除文件等 </li></ul></ul><ul><li>串行写 - 一致已定义 </li></ul><ul><li>并行写 – 一致未定义 </li></ul>
    16. 16. Write Process
    17. 17. GFS 限制 <ul><li>显而易见的单点故障点和性能瓶颈 </li></ul><ul><ul><li>从几百 TB 到几十 PB </li></ul></ul><ul><ul><ul><li>更多的 metadata </li></ul></ul></ul><ul><ul><ul><li>更大的容量 </li></ul></ul></ul><ul><ul><ul><li>更多的 housekeeping 工作耗时 </li></ul></ul></ul><ul><ul><li>客户端并发的限制 </li></ul></ul><ul><li>解决 </li></ul><ul><ul><li>Multi-cell / Pratition </li></ul></ul><ul><ul><li>Namespace 层面解决问题 </li></ul></ul>
    18. 18. MogileFS <ul><li>Application level </li></ul><ul><li>No single point of failure </li></ul><ul><li>Automatic file replication </li></ul><ul><li>&quot;Better than RAID&quot; </li></ul><ul><li>Flat Namespace </li></ul><ul><li>Shared-Nothing / No RAID required </li></ul><ul><li>Local filesystem agnostic </li></ul>
    19. 19. MogileFS Overview <ul><li>Application </li></ul><ul><li>Tracker   </li></ul><ul><li>DB </li></ul><ul><ul><li>Metadata & location </li></ul></ul><ul><ul><li>Need HA </li></ul></ul><ul><li>Storage   Nodes </li></ul><ul><ul><li>NFS or HTTP transport </li></ul></ul>
    20. 20. Read Request
    21. 21. MogileFS 特点 <ul><li>和 Google FS like 的相似 </li></ul><ul><ul><li>Metadata 信息 </li></ul></ul><ul><li>不同 </li></ul><ul><ul><li>Chunk replication vs file Replication </li></ul></ul><ul><li>限制 </li></ul><ul><ul><li>DB 是主要的瓶颈 </li></ul></ul>
    22. 22. FastDFS <ul><li>FastDFS 是一个轻量级的开源分布式文件系统 </li></ul><ul><li>FastDFS 主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 </li></ul><ul><li>FastDFS 实现了软件方式的 RAID ,可以使用廉价的 IDE 硬盘进行存储 </li></ul><ul><li>支持存储服务器在线扩容 </li></ul><ul><li>支持相同内容的文件只保存一份,节约磁盘空间 </li></ul><ul><li>FastDFS 只能通过 Client API 访问,不支持 POSIX 访问方式 </li></ul><ul><li>FastDFS 特别适合大中型网站使用,用来存储资源文件(如:图片、文档、音频、视频等等) </li></ul>
    23. 23. FastDFS
    24. 24. FastDFS 构成 <ul><li>Tracker Server </li></ul><ul><ul><li>主要做调度工作,在访问上起负载均衡的作用。记录 storage server 的状态,是连接 Client 和 Storage server 的枢纽。 </li></ul></ul><ul><li>Storage Server </li></ul><ul><ul><li>存储服务器,文件物理内容和 meta data 都保存到存储服务器上 </li></ul></ul><ul><ul><li>Storage Server 构成不同的组 ( 卷 /Volume) </li></ul></ul><ul><ul><li>同组的 Storage Server 的文件是相同的 </li></ul></ul>
    25. 25. FastDFS 基本流程 -PUT <ul><li>client 询问 tracker 上传到的 storage ,不需要附加参数; </li></ul><ul><li>tracker 返回一台可用的 storage ; </li></ul><ul><li>client 直接和 storage 通讯完成文件上传。 </li></ul>
    26. 26. FastDFS 基本流程 -GET <ul><li>client 询问 tracker 下载文件的 storage ,参数为文件标识(卷名和文件名) </li></ul><ul><li>tracker 返回一台可用的 storage ; </li></ul><ul><li>client 直接和 storage 通讯完成文件下载。 </li></ul>
    27. 27. FastDFS 特点 <ul><li>异常的简单高效 </li></ul><ul><ul><li>对等结构 </li></ul></ul><ul><ul><li>分组存取 </li></ul></ul><ul><ul><li>Tracker 的责任很简单 </li></ul></ul><ul><ul><ul><li>只做调度,所以性能不是问题 </li></ul></ul></ul><ul><ul><li>文件不分 CHUNK </li></ul></ul><ul><li>适合于大量小文件存取 </li></ul><ul><li>同一组内的服务器的文件完全相同的 </li></ul><ul><li>组之间没有运行中的动态负载均衡 </li></ul><ul><li>文件名是 FastDFS 指定而非 Client 指定 </li></ul><ul><ul><li>对 ClientApplication 要求较高,限制了使用场景 </li></ul></ul>
    28. 28. DFS 设计考虑因素 <ul><li>Tradeoff … Tradeoff </li></ul><ul><ul><li>高吞吐 、 IOPS </li></ul></ul><ul><ul><li>海量 、 大文件 </li></ul></ul><ul><ul><li>可靠性,可用性 </li></ul></ul><ul><ul><li>易于开发,易于管理,成本 </li></ul></ul><ul><li>我的 File 的类型大小,访问模式 </li></ul><ul><li>我对共享访问的需求 </li></ul><ul><ul><li>特别是一致性 </li></ul></ul><ul><li>我对并行访问的需求 </li></ul>
    29. 29. 我的性能瓶颈在哪里 <ul><li>存储介质 </li></ul><ul><li>读写流程 </li></ul><ul><li>存储路径 </li></ul><ul><li>Cache </li></ul>
    30. 30. DFS 的一些因素的分析 <ul><li>1 st – 我真的需要吗? </li></ul><ul><li>POSIX Interface </li></ul><ul><li>Access mode support </li></ul><ul><li>RAID / Chunk Replication / File Replication </li></ul><ul><li>NameSpace Management </li></ul><ul><li>Metadata Management </li></ul><ul><li>Out-band mode </li></ul><ul><li>Cache </li></ul><ul><li>Access Interface </li></ul><ul><li>MetaServer topo </li></ul><ul><ul><li>Single / Active Standby / Peer / Hash or …… </li></ul></ul>
    31. 31. Reference & Thanks <ul><li>wikipedia </li></ul><ul><li>gfs-sosp2003.pdf </li></ul><ul><li>http://www.danga.com/mogilefs/ </li></ul><ul><li>FastDFS – 余庆 </li></ul>
    32. 32. Q & A <ul><li>msn: pengning_cn #AT# hotmail.com </li></ul><ul><li>谢谢大家! </li></ul>

    ×