1

随着业务的发展,服务器存放的文件就越来越多,初期的时候,我们会直接通过扩容来解决这个问题。但是硬盘不可能存放未来所有增量的文件,并且硬盘不可能无限扩容,当硬盘分配完后,要么加硬盘,要么加服务器。
加硬盘可能是比较快的方式,只要在程序中判断在某个时间节点的文件,写入和读取都在指定的盘符就可以了,但是每个机器的接口有限,而且机架可以存放硬盘的位置也有限,当接口或者位置都占用了,空间不足要怎么办?所以可以用很多很多个服务器来存放并管理这些文件。
由于服务器出现问题是不可避免的,比如我们软件的bug、操作系统的bug、硬盘故障、突然断电甚至自然灾害等,所以为了保证数据的安全性,就需要用冗余的办法来存储,也就是说一个文件存放在多个服务器中,比如下图存放2个服务器,这样当服务器1出现问题的时候,我们还可以从服务器2读取文件。冗余的副本越多,数据就越安全,当然存储的服务器成本也越高。
image.png
当存放一段时间后,服务器的情况如下,文件的大小我们是不能控制的,所以每次上传文件的时候,还需要知道这个文件是否大于待上传服务器的可用空间。另外大小不一的文件也不好管理。
image.png
所以一般是把文件分成固定的大小块,比如64M或者128M,然后再上传到服务器。比如下图,把文件分成4块,然后存储在4个服务器中,每个块的副本是3个。
如果说服务器1不可用了,文件1、文件2、文件4在其他服务器还是存在副本的,文件还是安全的。
image.png


大军
847 声望183 粉丝

学而不思则罔,思而不学则殆