浅谈分布式存储架构:IPFS和HDFS

分布式存储架构是一个复杂的系统工程,针对特定应用的数据存储有不同的系统架构解决方案。不同的存储方法会影响存储性能、存储成本、冗余度、工程复杂性等。

分布式存储的历史

分布式存储最早是由谷歌提出的,其目的是通过廉价的服务器来解决大规模,高并发场景下的 Web 访问问题。它采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于后期服务器扩展。

分布式存储的崛起

分布式存储的兴起与互联网的发展密不可分,互联网公司由于其大数据、轻资产的特点,通常使用大规模分布式存储系统。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式存储系统由数量众多的、低成本和高性价比的普通 PC 服务器通过网络连接而成。由于互联网的业务发展迅猛,使得存储系统架构不能依靠传统的纵向扩展的方式,即先买小型机,不够时再买中型机,甚至大型机。互联网后端的分布式系统要求支持横向扩展,即通过增加普通 PC 服务器来提高存储系统的整体处理能力。另外,随着服务器的不断加入,需要能够在软件层面实现自动负载均衡,使得系统的处理能力得到线性扩展。在这种情况下,分布式存储的成为大多数企业的必然选择。

分布式存储的发展

目前市场中分布式存储系统是很热门的讨论话题,各种企业也倾向于搭建分布式存储系统。那么,分布式系统解决了企业的哪些问题呢?

(1)升级单机处理能力的性价比越来越低;

企业发现通过更换硬件做垂直扩展的方式来提升性能越来越不划算;

(2)单机处理能力存在瓶颈;

单颗处理器有自己的性能瓶颈,即使愿意花更多的钱去买计算能力也买不到了;

(3)出于稳定性和可用性的考虑;

如果采用单击系统,那么在这台机器正常的时候一切 OK ,一旦出问题,那么系统就完全不能用了。当然,可以考虑做容灾备份等方案,而这些方案就会让系统演变为分布式系统了;

(4)云存储和大数据发展的必然要求;

云存储和大数据是构建在分布式存储之上的应用。移动终端的计算能力和存储空间的强烈的需求,使得网盘、相册等云存储应用很快流行起来。云存储的核心还是后端的大规模分布式存储系统。大数据则更近一步,不仅需要存储海量数据,还需要通过合适的计算框架或者工具对这些数据进行分析,抽取其中有价值的部分。如果没有分布式存储,便谈不上对大数据进行分析。

分布式存储的种类

分布式存储包含的种类繁多,除了传统意义上的分布式文件系统、分布式块存储和分布式对象存储外,还包括分布式数据库和分布式缓存等,但其中架构无外乎于三种

A、中间控制节点架构 – 以 HDFS 为代表的架构是典型的代表

B、完全无中心架构 – 计算模式,以 Ceph 为代表的架构是其典型的代表

C、完全无中心架构 – 一致性哈希,以 swift 为代表的架构是其典型的代表

这里我们主要对比下HDFS与IPFS

HDFS的简介

Hadoop 文件系统(Hadoop Distribution File System)是使用分布式文件系统设计开发的,它运行在商品硬件上。与其他分布式系统不同,HDFS 具有高度的容错性,并且使用低成本硬件进行设计。

HDFS 包含大量数据,并提供更轻松的访问。为了存储如此巨大的数据,这些文件存储在多台计算机上。这些文件以冗余方式存储,防止发生故障时使系统免受可能的数据损失,同时HDFS 还使应用程序可用于并行处理。

如果客户端需要从某个文件读取数据,首先从 NameNode 获取该文件的位置,然后从该 NameNode 获取具体的数据。在该架构中 NameNode 通常是主备部署( Secondary NameNode ),而 DataNode 则是由大量节点构成一个集群。由于元数据的访问频度和访问量相对数据都要小很多,因此 NameNode 通常不会成为性能瓶颈,而 DataNode 集群中的数据可以有副本,既可以保证高可用性,可以分散客户端的请求。因此,通过这种分布式存储架构可以通过这种分布式存储架构可以通过横向扩展 datanode 的数量来增加承载能力,也即实现了动态横向扩展的能力。

HDFS的功能

1)数据的分布式存储和处理。

2)Hadoop 提供了一个命令接口来与 HDFS 进行交互。

3)namenode 和 datanode 的内置服务器可帮助用户轻松检查群集的状态。

4)对文件系统数据的流式处理访问。

5)HDFS 提供文件权限和身份验证。

HDFS的架构

下面给出的是 Hadoop 文件系统的体系结构

HDFS的元素

1
Namenod

Namenode是包含 GNU/Linux 操作系统的产品硬件。它是一种可以在产品硬件上运行的软件。具有Namenode的系统充当主服务器,并执行以下任务

1)管理文件系统命名空间

2)调节客户端对文件的访问

3)执行文件系统操作,如重命名、关闭和打开文件和目录。

2

Datanode

Datanode是具有 GNU/Linux 操作系统和数据内核软件的产品硬件。对于cluster(群集)中的每个产品硬件/系统,都将有一个数据节点,这些节点管理其系统的数据存储。

1)根据客户端请求在文件系统上执行读写操作。

2)根据 namenode 的说明执行块创建、删除和复制等操作。

3

Block

通常,用户数据存储在 HDFS 的文件中。文件系统中的文件将分为一个或多个片段存储在单个数据节点中。这些文件段称为block。换句话说,HDFS 可以读取或写入的最小数据量称为block。默认块大小为 64MB,可以根据 HDFS 配置进行更改。

HDFS的特点

1、故障检测和恢复 – 由于 HDFS 包含大量产品硬件,组件故障频繁。因此,HDFS 应具有快速自动故障检测和恢复的机制。

2、数据集的管理 – HDFS 每个群集都有数百个节点来管理具有大型数据集的应用程序。

3、数据硬件处理 – 当计算在数据物理附近时,可以高效地完成请求的任务。特别是在涉及大量数据集时,它减少了网络流量并提高了吞吐量。

IPFS的简介

IPFS(Inter Planetary File System),又叫星际文件系统。IPFS在2015年开启,目前已经有5年时间了。IPFS和Filecoin一直热度不断,影响力也是越来越大。在这里我们先撇开区块链部分的Filecoin不谈,重点分析下IPFS在分布式存储方面的应用。

IPFS的工作原理

IPFS从根本上改变了用户搜索的方式。HTTP浏览器搜索文件的时候,首先找到服务器位置,然后使用路径名称在服务器上查找文件,但是通过IPFS协议,用户可以直接搜索内容。

1

搜索方式改变

在IPFS网络里的文件,会被赋予一个哈希值,这个哈希值类似于我们的身份证号,它是从文件内容中被计算出来的。

2
重复内容清理

IPFS网络中会对重复的内容进行去重处理,在保证整个网络存储文件的冗余量的同时保证网络的轻便与快捷。

3
节点存储内容

每个网络节点仅存储它感兴趣的内容,通过索引信息,可帮助确定存储内容的节点。

4
通过节点寻址

查找要查看或下载的文件时,用户需要让网络找到对应内容的存储节点,然后确定所需求的文件内容。

5
IPNS命名系统

用户不需要记住哈希,使用称为 IPNS 的分散命名系统,可以轻松找到每个文件。

从上述的原理中我们可以清晰地看出,在存储方面IPFS与传统的分布式存储是完全不同的,是完全去中心化的。

HDFS与IPFS对比

a 、应用对象

HDFS主要是企业级的应用,针对企业的大文件存储,因为 HDFS 采用的是以元数据的方式进行文件管理,而元数据的相关目录和块等信息保存在 NameNode 的内存中, 文件数量的增加会占用大量的 NameNode 内存。如果存在大量的小文件,会占用大量内存空间,引起整个分布式存储性能下降,所以尽量使用 HDFS 存储大文件比较合适。而IPFS主要是针对个人用户市场,根据个人的文件进行存储,存储的节点越多,存储的文件越多,整个文件系统的稳定性也就越高。

b 、读写频次

HDFS适合低写入,多次读取的业务。HDFS 的数据传输吞吐量比较高,但是数据读取延时比较差,不适合频繁的数据写入。IPFS对于文件的读取和写入具有很强的包容性和扩展性,文件的读取和写入越多,整个基于IPFS的经济生态系统也就越繁荣,在系统中的用户也就越受益。

c 、存储环境

HDFS 采用多副本数据保护机制,使用普通的 X86 服务器就可以保障数据的可靠性,不推荐在虚拟化环境中使用。IPFS使用个人的普通服务器即可作为节点,运行IPFS系统,提供去中心化的存储服务

d、存储系统

HDFS 主要针对大企业,虽是分布式存储,其主要的控制着仍是企业主体,属于一个封闭的存储系统。IPFS完全去中心化的操作,任何企业和个人都可以接入存储网络。

e、寻址方式

HDFS如果客户端需要从某个文件读取数据,首先从 NameNode 获取该文件的位置,然后从该 NameNode 获取具体的数据,IPFS则是直接从内容所在的节点获取文件,是基于内容获取的方式。基于IPFS技术开发的应用也不断出现,IPFS直接整合至Brave浏览器中,将 Hadoop 置于IPFS之上进行p2p数据分析,PeerPad利用IPFS构建无服务器、实时的、离线协作式应用等。在陆续与微软、美国宇航局(NASA)等知名机构、企业建立合作关系后,IPFS的实际应用价值得到了进一步深化。

添加微信免费咨询更多IT信息
微信号:landui07

未经允许不得转载:云技术 » 浅谈分布式存储架构:IPFS和HDFS

赞 (0)