有时候初创企业需要快速搭建一个文件存储平台,满足企业内项目的图片、视频、文本等文件的存储;并且即使在读写文件的时候,磁盘坏了、服务器宕机了、交换机坏了、机柜掉电了甚至机房挂了,用户还能正常访问。你同时可能希望公司业务快速增长后,访问量猛增的时候能够尽量少的或者不开发代码,通过扩容硬件就能解决问题。为了解决这些问题,我们设计了自己的存储系统WFS。
最基本的分布式文件存储系统需要满足以下几个原则:
1、伸缩性
伸缩性是指系统可以根据需求和成本调整自身处理能力的一种能力。伸缩性常常意味着系统可以改变自己的处理能力以满足更多用户访问、处理更多数据而不会对用户体验造成任何影响,伸缩性不仅需要伸(即扩容),有时候还需要缩(即缩容)
2、可用性
无论是非预期的服务异常还是正常的服务程序维护,都要保证7X24小时内,服务的可用性。一般都是使用SLA(Service Level Agrement)测量系统的高可用性,就是大家经常看到的几个9,比如某知名网站做到4个9以上的可用性,是啥概念呢,就是故障发生到恢复的时间,也就是服务不可用的时间一天内不超过8.66秒,一年内不超过52.56分钟。
衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,以及出现各种不可预期的问题时候,系统整体是否依然可用。
3、避免过度设计
避免过度设计, 早期先构建一个比较合理的抽象架构,满足基本的业务需求,然后迭代的增加新的功能需求;不是一开始就设计好全部功能以应对自己认为可能会出现的功能。好的设计方法一定是可以在后期逐渐添加新功能特性,而不是一开始就开发一个超级大的系统。
有哪些关键的技术点和难点要注意呢?
网络、磁盘、服务器任何一个环节出问题的时候,应该不影响系统的正常使用。
网络断了有备用网络可用切换。
磁盘坏了有备用磁盘可用,换了新磁盘后数据可用自动恢复。
服务器宕机后有备用服务器