关于数据存储的相关知识,请大家关注“数据存储张”,各大平台同名。
通过《什么是云存储?从对象存储说起》我们对对象存储的历史、概念和基本使用有了一个大概的认识。而且我们以Minio为例,通过单机部署的模式实际操作了一下对象存储的GUI,感受了一下对象存储的用法。
在上例中,对象存储软件部署在一台服务器上,称为一个单机版的对象存储系统。单机版的对象存储系统其实可以非常简单,可以是如下图所示的架构,上层是协议层,用于解析客户端的请求;下层是存储层,用于对设备内的硬盘进行管理,并实现数据的存储。
在实际生产中并不会使用单机部署的对象存储,原因是如果服务器宕机,那么我们就无法访问其中的数据了,也就是所谓的单点故障问题。除了上面说的单点问题外,还有就是单台服务器的处理能力和存储能力有限,通常无法满足互联网大规模访问的性能和容量需求。
所以,对于企业级的对象存储,通常采用的是分布式的架构,也就是数据会被存储在多个节点上。而且对象存储的性能和容量可以与节点总数量有一个近似线性的关系,也就是节点越多,性能越高,容量也越大。
那么如何将数据放置到多个节点呢?这就涉及到两种不同的数据放置方法,一种是分片(Sharding),另外一种称为副本(Replication)。下面我们分别解释一下上面两个概念。