分布式文件系统

更新于 2026年10月13日 版权声明
4.分布式文件系统

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式,一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录。一旦被访问,这个目录对客户机来说就像使用本地驱动器一样。最基本的分布式文件系统有网络文件系统、Andrew系统、KASS系统及DFS系统等。

关系数据库是采用关系模型作为数据组织方式的数据库,其特点在于它将每个具有相同属性的数据独立地存储在一个表中。对任一表而言,用户可以新增、删除和修改表中的数据,而不会影响表中的其他数据。目前,主流的关系数据库有oracle、SQL、Access、db2、sqlserver、sybase等。关系数据库的层次结构可以分为四级,即数据库(Database)、表(Table)与视图、记录(Record)和字段(Field),相应的关系理论中的术语是数据库、关系、元组和属性。

NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系型数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站时已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

NoSQL数据库有以下四大类。(https://www.daowen.com)

键值(Key-Value)存储数据库。这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/Value模型对于IT系统来说的优势在于简单、易部署。但是,如果数据库只对部分值进行查询或更新的话,Key/Value就显得效率低下了。例如,Tokyo Cabinet/Tyrant,Redis,Voldemort,Oracle BDB等。

列存储数据库。这部分数据库通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的,如Cassandra,HBase,Riak。

文档型数据库。文档型数据库的灵感来自Lotus Notes办公软件,而且它同键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许嵌套键值。而且文档型数据库比键值数据库的查询效率更高,如CouchDB,MongoDB。国内也有文档型数据库SequoiaDB,已经开源。

图形(Graph)数据库。图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。例如Neo4J、InfoGrid和Infinite Graph。

因此,我们总结NoSQL数据库在以下这几种情况下比较适用:第一,数据模型比较简单;第二,需要灵活性更强的IT系统;第三,对数据库性能要求较高;第四,不需要高度的数据一致性;第五,对于给定key,比较容易映射复杂值的环境。

✍AI写作