《构建高性能Web站点》笔记:8 共享式/分布式文件系统

共享文件系统

  
主流实现:NFS

         a.直接基于RPC协议,client/server通信模型

b.client再把服务端的ip映射为本地磁盘

c.RPC默认使用UDP,在应用层即RPC协议里做差错重传等操作

d.服务端采用多进程模型

e.NFS的性能天花板非常低,在高并发环境下(比如前置10台web服务器,每个web服务器100个并发数)非常容易成为瓶颈

f.唯一的好处就是简单

g.支持异步写。server接到异步写的请求后会立即返回"OK",然后再在后台把文件写入磁盘

文件系统中影响性能的因素:

    1.磁盘吞吐率

    2.服务器的并发处理能力

    3.网络带宽

==========================

共享文件系统很容易成为瓶颈;
替代方案是要让web服务器上也有文件,同时又保证服务器中各个节点上都有相同文件的副本。那怎么创建这些副本呢?  

1. 可以主动地将文件传给别的服务器

  a. 可以通过高级语言里的SSH Client模块 (具体的SSH应用是SCP和SFTP),将文件复制出去

  b. 也可以走Http WebDAV协议(subversion走的就是WebDAV)

2. 也可以被动地轮循别的服务器,下载这段时间内更新过的文件; linux下的rsync就是这样一个工具。

3.另外,文件的复制可以用多级的方式实现。如中心服务器把文件复制到各省服务器,各省再复制到各市等等

==========================

分布式文件系统

   这里的文件的概念不是操作系统中的文件的概念,目录也不是操作系统里的目录(MogileFS甚至没有目录的概念);分布式文件系统自己定义了一套文件的概念,它运行在用户态。

分布式文件系统的作用:

   1.在使用者眼里,一个分布式文件系统是一个单一的整体

   2.但实际上,一个分布式文件系统确可以跨越多台服务器,并在服务器之间进行自动的文件复制

原理:

   1.文件存储在Storage Node中

   2.Storage Node之间可以根据规则自动复制文件

   3.Tracker放在Nodes前端,作为客户端的入口

     a.负载均衡:工作机制类似于dns负载均衡

   b.故障转移

     c.文件寻址

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.