如何在streaming server上做到好的性价比, 稳定性, 可扩展性, 不是一件容易的事情. 比较流行的作法是集群式的client/server结构, 这其中包括存储和运算分离, 即存储用磁盘柜, 运算集中一组高性能单板上, 中间和外围用高性能交换设备进行连接; 另一种是存储和运算绑在一起, 即存储被分割成小单元, 每一个存储单元都具备运算特性, 既可以提供存储业务, 也提供流业务, 这种模式不需要昂贵的中间层交换设备, 所以每个存储单元的业务能力只需在出口处进行汇聚. 这种模式的优点在于可以高效地利用每个存储单元的业务能力, 但又将成本降到最低.
算一笔成本帐, 两种方式来算: per stream和per GBytes storage. 首先是per stream, 如果以单板支持200流(以2~3Mbps作为平均码率)来算, 单流成本即50元RMB, 共10,000元. 如果我们假设cpu板以5000元成本来算, 余下的5000即可以算给storage. 以目前的sata disk市场价, 达到1200G没有问题, 平均下来4.2元/GBytes. 总结一下: 50元/stream, 4.2元/GBytes, 当然, 这其中没有包括交换机的成本(这其中也应按per Gbits带宽来计算).
有了目标和方向, 如何从系统构架的角度来设计这样一个成本规格的streaming server呢?