现在经常接触客户,也就经常会提到云存储,大家每个人的理解都是不太一样的。那么我就整理一下各家的说法。
大家理解的云存储,我相信一个共同点是:没有容量的限制,不会丢失数据,性能很好,那么时髦点的说法,就是分布式。
首先先介绍一下存储分类,
- 文件存储
- 块存储
- 对象存储
这3种存储,应用的场景是不一样的。
文件存储
这个大家接触的比较多。就是共享文件夹,你可以把文件放进去。外面的Nas设备,就是文件存储。linux下的Samba,也是文件存储。
不过上面的文件存储,都是单机的。容量限制比较大。那么如何实现真正的分布式呢?开源里,gluster在文件存储的分布式,应该是做的***的。
国外有网盘系统,国内也有,底层的存储是使用gluster,作为文件存储的方式。文件存储的方式其实在海量数据的存储上是有点问题,最简单的一个问题就是一个目录下存储的文件过多,超过1k,那么你的性能就很差。
块存储
这个如果你不折腾机器,你一般接触不到。简单点说,你需要格式化,才能使用的设备。经常听到的SAN,就是块存储。
不过SAN的块存储,也是一个容量限制,不支持分布式。开源里,Ceph的块存储上,应该是做的***的。目前块存储应用比较多在虚拟机的文件存储上。目前块存储的分布式的规模,其实并不算太大。
对象存储
这个如果不是搞技术的,一般都没接触过。据说这种存储系统,都是根据google的论文写出来的。这种存储本身就是分布式,支撑海量的数据存储。这和上面两种存储不太一样的地方。
对象存储为啥能支撑海量的数据呢?那么他至少有一个很明显的特点,没有目录的概念,存储文件的安全性,可靠性,是靠软件的保证,而不是靠硬件的冗余来实现的。
可以这样说,国内目前所有的网盘,底层都是使用对象存储的产品。
对象存储适合的使用场景:冷数据的***存储。