文件存储系统|有没有用Java写的轻量级开源的分布式存储系统

文件存储系统|有没有用Java写的轻量级开源的分布式存储系统的第1张示图

① 分布式文件/对象存储系统

分布式存储系统面向海量数据的存储访问与共享需求,提供基于多存储节点的高性能,高可靠和可伸缩性的数据存储和访问能力,实现分布式存储节点上多用户的访问共享。 目前业界比较流行的分布式存储系统如下:HDFS、OpenStack Swift、Ceph、GlusterFS、Lustre、AFS、OSS。

② 企业文件存储系统

我总结一下市面上常见的文档管理功能有:1、历史版本管理:每次修改都会自动添内加一个历史版容本,所以看到的永远是最新版本,也可以回滚至某个历史版本。2、签入签出管理:要编辑一个文档必须先签出,同一时间只能被一个用户签出,避免了多人同时修改产生混乱的问题。3、权限控制:可以基于每个文档或者某一类文档进行权限控制。4、文档模板管理:可以自定义模板并保存在系统中。下次新建的时候可以选择合适的模板。我们对比了天翎、致远、泛微这三个产品,各有各的优势,又有一些不得不存在的小缺陷,天翎基本符合要求,有本地部署和云部署,但是有点贵;致远只能云部署,泛微页面精美,但是操作不够流畅,三家厂商都可以免费体验,这些都是我个人的使用感,试用过后才能知道哪个适合。

③ 一般文件是存储在数据库中好,还是存储在文件系统中比较好呢

以二进制的方式处理。如果使用sqlserver数据库,创建varbinary(max)类型的字段。如果使用oracle数据库,创建blog类型的字段。

④ 系统文件和文件系统的区别是什么

一、指代不同

1、系统文件:是存放操作系统主要文件的文件夹。

2、文件系统:内是操作容系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

二、特点不同

1、系统文件:在安装操作系统过程中自动创建并将相关文件放在对应的文件夹中,这里面的文件直接影响系统的正常运行,多数都不允许随意改变。

2、文件系统:指定命名文件的规则。这些规则包括文件名的字符数最大量,哪种字符可以使用,以及某些系统中文件名后缀可以有多长。文件系统还包括通过目录结构找到文件的指定路径的格式。

三、作用不同

1、系统文件:对维护计算机系统的稳定具有重要作用。

2、文件系统:负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。

⑤ 块储存,对象存储,文件存储的区别和联系

通常来讲,磁盘阵列都是基于Block块的存储,而所有的NAS产品都是文件级存储。1. 块存储:DAS SANa) DAS(Direct Attach Storage): 是直接连接于主机服务器的一种存储方式,每台服务器有独立的存储设备,每台主机服务器的存储设备无法互通,需要跨主机存取资料室,必须经过相对复杂的设定,若主机分属不同的操作系统,则更复杂。应用:单一网络环境下且数据交换量不大,性能要求不高的环境,技术实现较早。b) SAN(Storage Area Network): 是一种高速(光纤)网络联接专业主机服务器的一种存储方式,此系统会位于主机群的后端,它使用高速I/O联接方式,如:SCSI,ESCON及Fibre-Channels.特点是,代价高、性能好。但是由于SAN系统的价格较高,且可扩展性较差,已不能满足成千上万个CPU规模的系统。应用:对网速要求高、对数据可靠性和安全性要求高、对数据共享的性能要求高的应用环境中。2. 文件存储通常NAS产品都是文件级存储。NAS(Network Attached Storage):是一套网络存储设备,通常直接连在网络上并提供资料存取服务,一套NAS储存设备就如同一个提供数据文件服务的系统,特点是性价比高。它采用NFS或CIFS命令集访问数据,以文件为传输协议,可扩展性好、价格便宜、用户易管理。目前在集群计算中应用较多的NFS文件系统,但由于NAS的协议开销高、带宽低、延迟大,不利于在高性能集群中应用。3. 对象存储:总体上讲,对象存储同时兼具SAN高级直接访问磁盘特点及NAS的分布式共享特点。核心是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(OSD),构建存储系统,每个对象存储设备具备一定的职能,能够自动管理其上的数据分布。对象储存结构组成部分(对象、对象存储设备、元数据服务器、对象存储系统的客户端)3.1 对象一个对象实际就是文件的数据和一组属性信息的组合。3.2 对象存储设备(OSD)OSD具有一定的智能,它有自己的CPU、内存、网络和磁盘系统。OSD提供三个主要功能:包括数据存储和安全访问(1)数据存储 (2)智能分布 (3)每个对象元数据的管理3.3 元数据服务器(Metadata Server , MDS)MDS控制Client与OSD对象的交互,主要提供以下几个功能:(1) 对象存储访问允许Client直接访问对象,OSD接收到请求时先验证该能力,再访问。(2) 文件和目录访问管理MDS在存储系统上构建一个文件结构,限额控制、包括目录、文件的创建、访问控制等(3) Client Cache 一致性为提高性能,在对象存储系统设计时通常支持Client的Cache。因此带来了Cache一致性的问题,当Cache文件发生改变时,将通知Client刷新Cache,以防Cache不一致引发的问题。对象存储:一个文件包含了属性(术语叫matadata元数据,例如该文件的大小、修改时间、存储路径等)以及内容(简称数据)。以往的文件系统,存储过程将文件按文件系统的最小块来打散,再写进硬盘,过程中没有区分元数据(metadata)和数据。而在每个块最后才会告知下一个块的地址,因此只能一个一个读,速度慢。而对象存储则将元数据独立出来,控制节点叫元数据服务器(服务器+对象存储管理软件),里面主要存储对象的属性(主要是对象的数据被打散存放到了那几台分布式服务器中的信息),而其他负责存储数据的分布式服务器叫做OSD,主要负责存储文件的数据部分。当用户访问对象时,会先访问元数据服务器,元数据服务器只负责反馈对象存储在那些OSD。假设反馈文件A存储在B,C,D三台OSD,那么用户就会再次访问三台OSD服务器去读取数据。这时三台OSD同时对外传输数据,因此传输的速度就加快了。OSD服务器数量越多,这种读写速度的提升就越大。另一方面,对象存储软件有专门的文件系统,所以OSD对外又相当于文件服务器,那么就不存在文件共享方面的困难了,也解决了文件共享方面的问题。因此对象存储的出现,很好的结合了块存储与文件存储的优点。为什么还要使用块存储和文件存储:1.有一类应用是需要存储直接裸盘映射的,比如数据库。因为数据库需要存储裸盘映射给自己后,再根据自己的数据库文件系统来对了裸盘进行格式化,因此不能采用其他已经被格式化为某种文件系统的存储。此类更适合块存储。2.对象存储的成本比普通的文件存储还是较高,需要购买专门的对象存储软件以及大容量硬盘。如果对数据量要求不是海量,只是为了作文件共享的时候,直接用文件存储的形式就好了,性价比高。

⑥ 有没有用Java写的轻量级开源的分布式存储系统

以下内容源于分布式内存文件系统:Tachyon 14年9月的文章Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存在tachyon里的文件。把Tachyon是架构在最底层的分布式文件存储和上层的各种计算框架之间的一种中间件。主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率。同时可以减少内存冗余,GC时间等。<img src="https://pic3.mg.com/_b.png" data-rawwidth="810" data-rawheight="311" class="origin_image zh-lightbox-thumb" width="810" data-original="https://pic3.mg.com/_r.png">Tachyon架构Tachyon的架构是传统的Master—slave架构,这里和Hadoop类似,TachyonMaster里WorkflowManager是 Master进程,因为是为了防止单点问题,通过Zookeeper做了HA,可以部署多台Standby Master。Slave是由Worker Daemon和Ramdisk构成。这里个人理解只有Worker Daemon是基于JVM的,Ramdisk是一个off heap memory。Master和Worker直接的通讯协议是Thrift。下图来自Tachyon的作者Haoyuan Li:<img src="https://pic4.mg.com/_b.png" data-rawwidth="854" data-rawheight="571" class="origin_image zh-lightbox-thumb" width="854" data-original="https://pic4.mg.com/_r.png">三、Fault TolerantTachyon是一个分布式文件存储系统,但是如果Tachyon里的容错机制是怎么样的呢?Tachyon使用血统这个我们在Spark里的RDD里已经很熟悉了,这里也有血统这一概念。会使用血统,通过异步的向Tachyon的底层文件系统做Checkpoint。当我们向Tachyon里面写入文件的时候,Tachyon会在后台异步的把这个文件给checkpoint到它的底层存储,比如HDFS,S3.. etc…这里用到了一个Edge的算法,来决定checkpoint的顺序。比较好的策略是每次当前一个checkpoint完成之后,就会checkpoint一个最新生成的文件。当然想Hadoop,Hive这样的中间文件,需要删除的,是不需要checkpoint的。下图来自Tachyon的作者Haoyuan Li:<img src="https://pic1.mg.com/_b.png" data-rawwidth="822" data-rawheight="609" class="origin_image zh-lightbox-thumb" width="822" data-original="https://pic1.mg.com/_r.png">关于重新计算时,资源的分配策略:目前Tachyon支持2种资源分配策略:1、优先级的资源分配策略2、公平调度的分配策略<img src="https://pic2.mg.com/_b.png" data-rawwidth="940" data-rawheight="621" class="origin_image zh-lightbox-thumb" width="940" data-original="https://pic2.mg.com/_r.png">四、总结Tachyon是一个基于内存的分布式文件系统,通常位于分布式存储系统和计算框架直接,可以在不同框架内共享内存,同时可以减少内存冗余和基于Jvm内存计算框架的GC时间。Tachyon也有类似RDD的血统概念,input文件和output文件都是会有血统关系,这样来达到容错。并且Tachyon也利用血统关系,异步的做checkpoint,文件丢失情况下,也能利用两种资源分配策略来优先计算丢失掉的资源。

⑦ 文件存储系统可以存世什么样的文件

没关系你先听下是什么声音!自己认为不重要的就删除!如果某个声音与某个手机程序里的声音一样那说明这个音乐文件是那个程序的声音,删除后程序就没有声音了,比如qq的消息声。exe、rsc、dat等格式不要删

⑧ 哪类储存系统有自己的文件系统

最好保存在C盘之外的其它盘,如D、F等盘。如果电脑出现故障,当恢复出回厂设置或重新安装系统时答,C盘的所有文件将会随着系统的重新安装而被格式化,如果文件保存在C盘或桌面,忘记了备份或电脑进入不了C盘,保存的文件将会全部丢失,因此平时文件最好保存在除C盘之外的其它盘。

⑨ 对象存储、文件存储和块存储有什么区别

对象来存储、文件存储和块存自储区别为:存储设备不同、特点不同、缺点不同。

一、存储设备不同

1、对象存储:对象存储的对应存储设备为swift,键值存储。

2、文件存储:文件存储的对应存储设备为FTP、NFS服务器。

3、块存储:块存储的对应存储设备为cinder,硬盘。

二、特点不同

1、对象存储:对象存储的特点是具备块存储的高速以及文件存储的共享等特性。

2、文件存储:文件存储的特点是一个大文件夹,大家都可以获取文件。

3、块存储:块存储的特点是分区、格式化后,可以使用,与平常主机内置硬盘的方式完全无异。

三、缺点不同

1、对象存储:对象存储的缺点是不兼容多种模式并行。

2、文件存储:文件存储的缺点是传输速率低。

3、块存储:块存储的缺点是不能共享数据。

⑩ 块存储、文件存储、对象存储这三者的本质差别是什么

一、概念及区别

针对不同的应用场景,选择的分布式存储方案也会不同,因此有了对象存储、块存储、文件系统存储。这三者的主要区别在于它们的存储接口:

1. 对象存储:

也就是通常意义的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展,

2. 块存储:

这种接口通常以QEMU Driver或者Kernel Mole的方式存在,这种接口需要实现Linux的BlockDevice的接口或者QEMU提供的BlockDriver接口,如Sheepdog,AWS的EBS,青云的云硬盘和阿里云的盘古系统,还有Ceph的RBD(RBD是Ceph面向块存储的接口)

3. 文件存储:

通常意义是支持POSIX接口,它跟传统的文件系统如Ext4是一个类型的,但区别在于分布式存储提供了并行化的能力,如Ceph的CephFS(CephFS是Ceph面向文件存储的接口),但是有时候又会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。

二、IO特点

按照这三种接口和其应用场景,很容易了解这三种类型的IO特点,括号里代表了它在非分布式情况下的对应:1. 对象存储(键值数据库):

接口简单,一个对象我们可以看成一个文件,只能全写全读,通常以大文件为主,要求足够的IO带宽。

2. 块存储(硬盘):

它的IO特点与传统的硬盘是一致的,一个硬盘应该是能面向通用需求的,即能应付大文件读写,也能处理好小文件读写。但是硬盘的特点是容量大,热点明显。因此块存储主要可以应付热点问题。另外,块存储要求的延迟是最低的。

3. 文件存储(文件系统):

支持文件存储的接口的系统设计跟传统本地文件系统如Ext4这种的特点和难点是一致的,它比块存储具有更丰富的接口,需要考虑目录、文件属性等支持,实现一个支持并行化的文件存储应该是最困难的。但像HDFS、GFS这种自己定义标准的系统,可以通过根据实现来定义接口,会容易一点。

因此,这三种接口分别以非分布式情况下的键值数据库、硬盘和文件系统的IO特点来对应即可。至于冷热、快慢、大小文件而言更接近于业务。但是因为存储系统是通用化实现,通常来说,需要尽量满足各种需求,而接口定义已经一定意义上就砍去了一些需求,如对象存储会以冷存储更多,大文件为主。

未经允许不得转载:山九号 » 文件存储系统|有没有用Java写的轻量级开源的分布式存储系统

赞 (0)