基于MFS的分布式文件系统方案[实践过程]:

  我先用我的小型linux做为宿主机, 建立了大约36个虚拟机, 包括两个windows2003. 其中以dfs开头的13台xen虚拟机用来做mfs的实验(见图1), 它们用我建立的半虚拟化的小型linux做为客户机.
  然后夏望胜通过VPN拨号, 穿过我家的ADSL, 进入到服务器集群里, 开始布署.
  搭建方法具体可以去看田逸的博客, 在此不再描述.

  实验目的: 旨在于建立一个完整的维护和保障方案(包括:扩容, 灾难和风险应对方法, 快速布署, 培训……), 而不仅仅是安装.
  图1, 大家已看到每个trunkServer我仅仅给64M内存, 跟踪服务器(Master和logger)我给得多一些.
  图2, 显示了一些内存消耗(39M)和硬盘占用(70M)[一块系统盘128M, 挂一4G的数据盘], 这些实验空间用来和流媒体服务器配合使用.
  图3, 显示我用了5台机器做trunkServer. (另3台备用)

  在这个实验中: 小型linux和redhat企业版的C库完全一致, 内核封装了基本的协议支持和防火墙模块, 展开后一共70M的文件系统, 特别易于布署.
  我们用它把所有的通讯原理和运维程序全部沉淀下来, 当在生产机上实施的时候, 我们只需把对应物理机硬件的内核换上, 把对应高内存和硬盘存贮的配置文件换上即完成布署.

  适用范围: trunkServer对于CPU和内存的要求很低, 可以使用低功耗刀片做为载体, 还有一种极端的用法就是: 用一台8个1T的SATA硬盘的廉价服务器, 以一个64M的IDE口的dom硬盘(大约几十块钱)装上我的小型linux作为宿主机启动, 以半虚拟化的小型linux启动8个虚拟机(同一虚拟机镜像, 8个不同配置文件, 分别单独管理8块硬盘.)

  MFS的风险点和加固: 按照官方构架图: 跟踪服务器Master宕机后, 整个集群就不能使用了.
  此处改进1为: 建立两个Master, 一个active, 一个standby, 它们共享一个磁盘柜, 当active的Master宕机, 另一个standby立即取代。
  改进2: 在MFS架构中, 所有trunkServer和client都连向Master, 我们在Master的前端再加一层端口代理层(iptables, fastfwd), 兼作整个集群的健康检查者, 发现问题就推送切换指令.
  改进3: 后端的磁盘柜使用RAID, 或者有冗余热备方案.

图1


图2


图3


  实验环境同生产环境具有很高近似性, 这样我们可以通过破坏性实验, 预知道未来的风险. 例如: 曾出过一次停电, 导致master没有启动, 而truckServer不断连接master, 连接失败的日志很快填满系统日志区...