存储的本质|青训营笔记

140 阅读5分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第15天

三种存储方式:DAS、SAN、NAS

三种存储类型:块存储、文件存储、对象存储

1.DAS(Direct-AttachedStorage,直连式存储)

顾名思义,这是一种通过总线适配器直接将硬盘等存储介质连接到主机上的存储方式,在存储设备和主机之间通常没有任何网络设备的参与。可以说DAS是最原始、最基本的存储架构方式,在个人电脑、服务器上也最为常见。DAS的优势在于架构简单、成本低廉、读写效率高等;缺点是容量有限、难于共享,从而容易形成“信息孤岛”。

2.NAS(Network-AttachedStorage,网络存储系统)

NAS是一种提供文件级别访问接口的网络存储系统,通常采用NFS、SMB/CIFS等网络文件共享协议进行文件存取。NAS支持多客户端同时访问,为服务器提供了大容量的集中式存储,从而也方便了服务期间的数据共享。

3.SAN(StorageAreaNetwork,存储区域网络)

通过光纤交换机等高速网络设备在服务器和磁盘阵列等存储设备间搭设专门的存储网络,从而提供高性能的存储系统。

SAN与NAS的区别,在于其提供块(Block)级别的访问接口,一般并不同时提供一个文件系统。通常情况下,服务器需要通过SCSI等访问协议将SAN存储映射为本地磁盘、在其上创建文件系统后进行使用。目前主流的企业级NAS或SAN存储产品一般都可以提供TB级的存储容量,高端的存储产品也可以提供高达几个PB的存储容量。

分布式存储系统部分原理

Quorum机制:

一种权衡一致性和可用性的策略:抽屉式设定更新到一定数目即更新成功。实例HDFS高可用性实现同步数据

假设有N个副本,更新操作wi 在W个副本中更新成功之后,才认为此次更新操作wi 成功。称成功提交的更新操作对应的数据为:“成功提交的数据”。对于读操作而言,至少需要读R个副本才能读到此次更新的数据。其中,W+R>N ,即W和R有重叠。 一般,W+R=N+1。(鸽巢原理)

WARO(Write All Read one)是一种简单的副本控制协议(极端情况),当Client请求向某副本写数据时(更新数据),只有当所有的副本都更新成功之后,这次写操作才算成功,否则视为失败。

从这里可以看出两点:①写操作很脆弱,因为只要有一个副本更新失败,此次写操作就视为失败了。②读操作很简单,因为,所有的副本更新成功,才视为更新成功,从而保证所有的副本一致。这样,只需要读任何一个副本上的数据即可。假设有N个副本,N-1个都宕机了,剩下的那个副本仍能提供读服务;但是只要有一个副本宕机了,写服务就不会成功。

WARO牺牲了更新服务的可用性,最大程度地增强了读服务的可用性。而Quorum就是更新服务和读服务之间进行一个折衷。

中间控制节点架构(分布式存储种类)

以 HDFS ( Hadoop Distribution File System )为代表的架构是典型的代表。在这种架构中,一部分节点 NameNode 是存放管理数据(元数据),另一部分节点 DataNode 存放业务数据,这种类型的服务器负责管理具体数据。这种架构就像公司的层次组织架构, namenode 就如同老板,只管理下属的经理( datanode ),而下属的经理,而经理们来管理节点下本地盘上的数据。

img

CAP理论:

在分布式系统中有个CAP理论,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)

可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)

分区容忍性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。

对于P(分区容忍性)而言,是实际存在 从而无法避免的。因为,分布系统中的处理不是在本机,而是网络中的许多机器相互通信,故网络分区、网络通信故障问题无法避免。因此,只能尽量地在C 和 A 之间寻求平衡。对于数据存储而言,为了提高可用性(Availability),采用了副本备份,比如对于HDFS,默认每块数据存三份。某数据块所在的机器宕机了,就去该数据块副本所在的机器上读取(从这可以看出,数据分布方式是按“数据块”为单位分布的)

存储系统有哪三种 存储系统的特点 - 与非网 (eefocus.com)

【后端专场 学习资料六】第五届字节跳动青训营 - 掘金 (juejin.cn)